Files
Genarrative/packages/shared/src/components/index.ts
T
lhk229 b60aea4e71
Project CI / AI game creator shell Rust crates (push) Successful in 1m43s
Project CI / AI game creator shell Rust lane 2/2 (push) Failing after 2m7s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m55s
Project CI / AI game creator shell Rust lane 1/2 (push) Failing after 3m23s
Project CI / Frontend tests (push) Successful in 3m3s
Project CI / Repository checks (push) Successful in 3m42s
Project CI / AI game creator shell web tests (push) Successful in 2m3s
Project CI / Backend tests (push) Successful in 6m19s
Project CI / Native shell tests (push) Successful in 8m7s
实现网站游戏评分与评价 (#561)
公开游戏详情页新增评分与评价:登录用户可提交并修改自己对每款游戏的唯一一条 1–10 分评价,评论可空且最多 4000 个 Unicode 码点;游客可分页浏览评价并查看平均分与评分人数。

- 新增私有评价表及共享 DTO/API,事务内校验游戏公开可见性、保证唯一性,并计算分页与全量评分统计;下架或封禁后关闭读写,重新公开及更新版本保留评价。
- 详情页支持编辑预填、取消、提交期间冻结输入、失败保留草稿,以及保存、翻页和账号/游戏切换时的旧响应隔离;复用现有认证与公共组件。
- 同步主规范、里程碑、实施计划、生成绑定、表目录和验收脚本。不扩展 AGC、外部 API、评论审核或评分缓存。

验证:
- 本轮审查复跑前端定向测试 40 项、评价领域测试 2 项,均通过。
- 网站 typecheck、Rust/TypeScript DTO 对齐、SpacetimeDB schema、文档索引、编码与 diff 检查通过。
- 实施文档另记录本地隔离数据库/API 49 项及桌面/移动视口浏览器 smoke 通过;本轮审查未重跑这些运行时验收,也未运行完整测试套件。

发布说明:新增 SpacetimeDB 表,部署时需同步 module 与 API。尚未部署 dev/production,待用户验收。

Reviewed-on: https://git.genarrative.world/git/GenarrativeAI/Genarrative/pulls/561
Co-authored-by: Linghong <ink29535@proton.me>
Co-committed-by: Linghong <ink29535@proton.me>
2026-10-01 19:19:58 +08:00

242 lines
7.4 KiB
TypeScript

export { GameRatingSummaryText } from './GameRatingSummaryText';
export type {
PlatformActionButtonAlign,
PlatformActionButtonProps,
PlatformActionButtonShape,
PlatformActionButtonSize,
PlatformActionButtonSurface,
PlatformActionButtonTone,
} from './PlatformActionButton';
export { PlatformActionButton } from './PlatformActionButton';
export { getPlatformActionButtonClassName } from './platformActionButtonModel';
export type { PlatformAsyncStatePanelProps } from './PlatformAsyncStatePanel';
export { PlatformAsyncStatePanel } from './PlatformAsyncStatePanel';
export type {
PlatformBackActionButtonProps,
PlatformBackActionButtonVariant,
} from './PlatformBackActionButton';
export { PlatformBackActionButton } from './PlatformBackActionButton';
export type { PlatformBadgeProps, PlatformBadgeTone } from './PlatformBadge';
export { PlatformBadge } from './PlatformBadge';
export { getPlatformCategoryChipClassName } from './platformCategoryChipModel';
export type {
PlatformEmptyStateProps,
PlatformEmptyStateSize,
PlatformEmptyStateSurface,
PlatformEmptyStateTone,
} from './PlatformEmptyState';
export { PlatformEmptyState } from './PlatformEmptyState';
export type {
PlatformFieldLabelProps,
PlatformFieldLabelVariant,
} from './PlatformFieldLabel';
export { PlatformFieldLabel } from './PlatformFieldLabel';
export type {
PlatformFilterToolbarProps,
PlatformFilterToolbarTabItem,
} from './PlatformFilterToolbar';
export { PlatformFilterToolbar } from './PlatformFilterToolbar';
export type {
PlatformIconBadgeProps,
PlatformIconBadgeShape,
PlatformIconBadgeSize,
PlatformIconBadgeTone,
} from './PlatformIconBadge';
export { PlatformIconBadge } from './PlatformIconBadge';
export type {
PlatformIconButtonProps,
PlatformIconButtonSize,
PlatformIconButtonVariant,
} from './PlatformIconButton';
export { PlatformIconButton } from './PlatformIconButton';
export type {
PlatformInfoBlockProps,
PlatformInfoBlockVariant,
} from './PlatformInfoBlock';
export { PlatformInfoBlock } from './PlatformInfoBlock';
export type { PlatformModalProps } from './PlatformModal';
export { PlatformModal } from './PlatformModal';
export type {
PlatformNavigableListItemAlign,
PlatformNavigableListItemProps,
} from './PlatformNavigableListItem';
export { PlatformNavigableListItem } from './PlatformNavigableListItem';
export type {
PlatformPillBadgeProps,
PlatformPillBadgeSize,
PlatformPillBadgeTone,
} from './PlatformPillBadge';
export { PlatformPillBadge } from './PlatformPillBadge';
export { getPlatformPillBadgeClassName } from './platformPillBadgeModel';
export type {
PlatformProgressBarProps,
PlatformProgressBarSize,
} from './PlatformProgressBar';
export { PlatformProgressBar } from './PlatformProgressBar';
export type {
PlatformRuntimeStatusShape,
PlatformRuntimeStatusSize,
PlatformRuntimeStatusSurface,
PlatformRuntimeStatusToastProps,
PlatformRuntimeStatusTone,
} from './PlatformRuntimeStatusToast';
export { PlatformRuntimeStatusToast } from './PlatformRuntimeStatusToast';
export type {
PlatformSegmentedTabItem,
PlatformSegmentedTabsColumns,
PlatformSegmentedTabsFrame,
PlatformSegmentedTabsGap,
PlatformSegmentedTabsLayout,
PlatformSegmentedTabsProps,
PlatformSegmentedTabsRadius,
PlatformSegmentedTabsSemantics,
PlatformSegmentedTabsSize,
PlatformSegmentedTabsSurface,
PlatformSegmentedTabsTone,
} from './PlatformSegmentedTabs';
export { PlatformSegmentedTabs } from './PlatformSegmentedTabs';
export type {
PlatformStatGridColumns,
PlatformStatGridDensity,
PlatformStatGridItem,
PlatformStatGridOrder,
PlatformStatGridProps,
PlatformStatGridSurface,
PlatformStatGridTextAlign,
} from './PlatformStatGrid';
export { PlatformStatGrid } from './PlatformStatGrid';
export type { PlatformStatusProps, PlatformStatusTone } from './PlatformStatus';
export { PlatformStatus } from './PlatformStatus';
export type {
PlatformStatusMessageProps,
PlatformStatusMessageSize,
PlatformStatusMessageSurface,
PlatformStatusMessageTone,
} from './PlatformStatusMessage';
export { PlatformStatusMessage } from './PlatformStatusMessage';
export type {
PlatformSubpanelElement,
PlatformSubpanelPadding,
PlatformSubpanelProps,
PlatformSubpanelRadius,
PlatformSubpanelStaticElement,
PlatformSubpanelSurface,
PlatformSubpanelTitleVariant,
} from './PlatformSubpanel';
export { PlatformSubpanel } from './PlatformSubpanel';
export type {
PlatformSelectFieldProps,
PlatformTextFieldProps,
} from './PlatformTextField';
export { PlatformSelectField, PlatformTextField } from './PlatformTextField';
export type {
PlatformToggleRowMode,
PlatformToggleRowProps,
PlatformToggleRowSurface,
} from './PlatformToggleRow';
export { PlatformToggleRow } from './PlatformToggleRow';
export type {
BadgeProps,
BadgeTone,
ButtonProps,
CheckboxProps,
EmptyStateProps,
IconButtonProps,
IconButtonSize,
IconButtonVariant,
LabelProps,
ModalProps,
ProgressBarProps,
SegmentedTabItem,
SegmentedTabsProps,
SelectFieldProps,
SharedButtonSize,
SharedButtonVariant,
SkeletonProps,
StatusProps,
StatusTone,
SubpanelProps,
SwitchProps,
TableProps,
TextFieldProps,
} from './ui';
export {
Badge,
Button,
Checkbox,
Divider,
EmptyState,
IconButton,
Label,
Modal,
ProgressBar,
SegmentedTabs,
SelectField,
Skeleton,
Spinner,
Status,
Subpanel,
Switch,
Table,
TableBody,
TableCaption,
TableCell,
TableFooter,
TableHead,
TableHeader,
TableRow,
TextField,
} from './ui';
export type { BadgeProps as ShadcnBadgeProps } from './ui/badge';
export { badgeVariants, Badge as ShadcnBadge } from './ui/badge';
export type {
ButtonProps as ShadcnButtonProps,
ShadcnButtonSize,
ShadcnButtonVariant,
} from './ui/button';
export { buttonVariants, Button as ShadcnButton } from './ui/button';
export type { CardProps } from './ui/card';
export { Card, CardActions, CardHeader, CardTitle } from './ui/card';
export type { SharedDialogProps } from './ui/dialog';
export {
Dialog,
DialogClose,
DialogContent,
DialogDescription,
DialogFooter,
DialogHeader,
DialogOverlay,
DialogPortal,
DialogTitle,
DialogTrigger,
} from './ui/dialog';
export type { InputProps } from './ui/input';
export { Input, inputVariants } from './ui/input';
export type { SharedSwitchProps } from './ui/switch';
export { SwitchRoot, SwitchThumb } from './ui/switch';
export { Tabs, TabsContent, TabsList, TabsTrigger } from './ui/tabs';
export type { TextareaProps } from './ui/textarea';
export { Textarea } from './ui/textarea';
// Additional platform-prefixed aliases make the package discoverable beside
// existing application adapters while keeping the public API product-neutral.
export type { AgentMessageTone } from './AgentMessageContent';
export { AgentMessageContent } from './AgentMessageContent';
export { AgentProcessSummary } from './AgentProcessSummary';
export { CanvasCardCornerActions } from './CanvasCardCornerActions';
export { OverflowActions } from './OverflowActions';
export type {
ButtonProps as PlatformButtonProps,
SwitchProps as PlatformSwitchProps,
} from './ui';
export {
Button as PlatformButton,
Divider as PlatformDivider,
Spinner as PlatformSpinner,
Switch as PlatformSwitch,
} from './ui';
// 后台管理端 chrome:页面壳、面板、按钮、提示、表格与表单外壳。
// 只承载表现与交互,路由、鉴权和后台接口仍留在 apps/admin-web。
export * from './admin';