@teamix-evo/skills 0.12.1 → 0.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/README.md +1 -1
  2. package/manifest.json +11 -28
  3. package/package.json +2 -2
  4. package/src/teamix-evo-code-opentrek/SKILL.md +13 -13
  5. package/src/teamix-evo-code-opentrek/api-layering.md +53 -44
  6. package/src/teamix-evo-code-opentrek/checklist.md +24 -24
  7. package/src/teamix-evo-code-opentrek/file-structure.md +55 -36
  8. package/src/teamix-evo-code-opentrek/forms-and-validation.md +17 -16
  9. package/src/teamix-evo-code-opentrek/reuse-first.md +6 -9
  10. package/src/teamix-evo-code-opentrek/testing.md +14 -14
  11. package/src/teamix-evo-code-uni-manager/SKILL.md +15 -15
  12. package/src/teamix-evo-code-uni-manager/api-layering.md +74 -58
  13. package/src/teamix-evo-code-uni-manager/checklist.md +28 -28
  14. package/src/teamix-evo-code-uni-manager/error-and-loading.md +2 -2
  15. package/src/teamix-evo-code-uni-manager/file-structure.md +77 -62
  16. package/src/teamix-evo-code-uni-manager/forms-and-validation.md +17 -15
  17. package/src/teamix-evo-code-uni-manager/reuse-first.md +7 -10
  18. package/src/teamix-evo-code-uni-manager/routing-and-codesplit.md +1 -1
  19. package/src/teamix-evo-code-uni-manager/testing.md +37 -37
  20. package/src/teamix-evo-design-opentrek/SKILL.md +17 -20
  21. package/src/teamix-evo-design-opentrek/boundaries.md +1 -1
  22. package/src/teamix-evo-design-opentrek/checklist.md +5 -5
  23. package/src/teamix-evo-design-opentrek/components.md +19 -19
  24. package/src/teamix-evo-design-opentrek/examples/standard-card-list.html +1 -1
  25. package/src/teamix-evo-design-opentrek/examples/standard-table-list.html +1 -1
  26. package/src/teamix-evo-design-opentrek/foundations.md +6 -6
  27. package/src/teamix-evo-design-opentrek/pages/dashboard-page/SKILL.md +18 -19
  28. package/src/teamix-evo-design-opentrek/pages/dashboard-page/patterns/dashboard-opentrek.md +6 -6
  29. package/src/teamix-evo-design-opentrek/pages/detail-page/SKILL.md +24 -25
  30. package/src/teamix-evo-design-opentrek/pages/detail-page/patterns/api-doc-detail.md +3 -7
  31. package/src/teamix-evo-design-opentrek/pages/detail-page/patterns/comparison-detail.md +3 -7
  32. package/src/teamix-evo-design-opentrek/pages/detail-page/patterns/monitor-detail.md +3 -7
  33. package/src/teamix-evo-design-opentrek/pages/detail-page/patterns/resource-detail.md +10 -10
  34. package/src/teamix-evo-design-opentrek/pages/form-page/SKILL.md +26 -27
  35. package/src/teamix-evo-design-opentrek/pages/list-page/SKILL.md +35 -36
  36. package/src/teamix-evo-design-opentrek/pages/list-page/_shared/item-card-spec.md +41 -32
  37. package/src/teamix-evo-design-opentrek/pages/list-page/patterns/card-list-opentrek.md +10 -10
  38. package/src/teamix-evo-design-opentrek/pages/list-page/patterns/card-list.md +23 -23
  39. package/src/teamix-evo-design-opentrek/pages/list-page/patterns/standard-list-opentrek.md +8 -8
  40. package/src/teamix-evo-design-opentrek/pages/list-page/patterns/standard-list.md +8 -8
  41. package/src/teamix-evo-design-opentrek/patterns/color-mapping.md +2 -2
  42. package/src/teamix-evo-design-opentrek/patterns/dashboard.md +1 -1
  43. package/src/teamix-evo-design-opentrek/patterns/detail-page.md +9 -9
  44. package/src/teamix-evo-design-opentrek/patterns/form-page.md +6 -6
  45. package/src/teamix-evo-design-opentrek/patterns/list-page.md +9 -9
  46. package/src/teamix-evo-design-opentrek/patterns/page-types.md +3 -3
  47. package/src/teamix-evo-design-opentrek/principles.md +541 -0
  48. package/src/teamix-evo-design-opentrek/rules/common-components.json +206 -76
  49. package/src/teamix-evo-design-opentrek/rules/component-specs.json +2 -2
  50. package/src/teamix-evo-design-opentrek/rules/page-frame.json +197 -193
  51. package/src/teamix-evo-design-opentrek/{generation-flow.md → workflow.md} +141 -22
  52. package/src/teamix-evo-design-uni-manager/SKILL.md +5 -5
  53. package/src/teamix-evo-design-uni-manager/boundaries.md +2 -2
  54. package/src/teamix-evo-design-uni-manager/brand.md +1 -1
  55. package/src/teamix-evo-design-uni-manager/checklist.md +2 -2
  56. package/src/teamix-evo-design-uni-manager/components.md +11 -11
  57. package/src/teamix-evo-design-uni-manager/foundations.md +7 -7
  58. package/src/teamix-evo-design-uni-manager/generation-flow.md +3 -3
  59. package/src/teamix-evo-manage/SKILL.md +111 -709
  60. package/src/teamix-evo-manage/init.md +98 -0
  61. package/src/teamix-evo-manage/migrate.md +100 -0
  62. package/src/teamix-evo-manage/rearchitect-capture-guide.md +174 -0
  63. package/src/teamix-evo-manage/rearchitect.md +373 -0
  64. package/src/teamix-evo-manage/update-component-staging.md +188 -0
  65. package/src/teamix-evo-manage/update-token-rename.md +126 -0
  66. package/src/teamix-evo-manage/update-token-treatment.md +116 -0
  67. package/src/teamix-evo-manage/update.md +213 -0
  68. package/src/teamix-evo-design-opentrek/brand.md +0 -154
  69. package/src/teamix-evo-design-opentrek/pages/list-page/_shared/search-combo-spec.md +0 -194
  70. package/src/teamix-evo-design-opentrek/philosophy.md +0 -98
  71. package/src/teamix-evo-design-opentrek/rules/README.md +0 -39
  72. package/src/teamix-evo-design-opentrek/rules/_assets/OP_AGENT RUNTIME.svg +0 -1
  73. package/src/teamix-evo-design-opentrek/rules/_assets/OP_AI GATEWAY.svg +0 -1
  74. package/src/teamix-evo-design-opentrek/rules/_assets/OP_AI STUDIO.svg +0 -1
  75. package/src/teamix-evo-design-opentrek/rules/_assets/OP_DEV-2.svg +0 -1
  76. package/src/teamix-evo-design-opentrek/rules/_assets/OP_LOGO.svg +0 -1
  77. package/src/teamix-evo-design-opentrek/rules/_assets/OP_OPS.svg +0 -1
  78. package/src/teamix-evo-design-opentrek/rules/layout-rules.json +0 -218
  79. package/src/teamix-evo-design-opentrek/rules/page-header-spec.md +0 -123
  80. package/src/teamix-evo-design-opentrek/rules/sidebar-spec.md +0 -217
  81. package/src/teamix-evo-upgrade/SKILL.md +0 -431
  82. /package/src/teamix-evo-design-opentrek/{rules/boundaries.rules.json → boundaries.json} +0 -0
@@ -1,5 +1,8 @@
1
1
  # 业务卡片三件套完整规格(ItemCard / CardGrid / CardActionBar)
2
2
 
3
+ > **实物组件**: `@teamix-evo/biz-ui` → [`ListCard`](../../../../../../biz-ui/variants/opentrek/list-card/list-card.tsx)
4
+ > AI 生成页面时**必须优先使用 ListCard 组件**(P0 业务组件),仅当 ListCard props 无法覆盖需求时才按本 spec 用原子件拼装(P2 兜底)。
5
+
3
6
  > 本文件自 v7.3 起从 `rules/card-component.json` 下沉至此。`common-components.json` 中 ItemCard/CardGrid/CardActionBar 的 `specRef` 指向本文件。
4
7
  > 三件套用于列表页卡片视图;未来如 Dashboard / Workspace / Overview 需要复用,可直接引用本文件。
5
8
  > **规范唯一来源** — 禁止在其他文件中重复定义卡片三件套的 variants/slots/states/tokens。
@@ -18,14 +21,14 @@
18
21
  | 维度 | 选项 | 默认 | 说明 |
19
22
  |------|------|------|------|
20
23
  | density | minimal / standard / complex | standard | 信息密度,按选型矩阵决定 |
21
- | iconStyle | avatar / tile | avatar | avatar=32×32 圆角(pure-card / standard-card);tile=40×40 大方块(view-toggle) |
24
+ | iconStyle | avatar / tile | avatar | avatar=28×28 圆角(pure-card / standard-card);tile=40×40 大方块(view-toggle) |
22
25
  | titleFontSize | 14px / 16px | — | iconStyle=avatar → 14px/500;iconStyle=tile → 16px/500 |
23
26
 
24
27
  **iconStyle.avatar 详细**:
25
- - size: 32×32(常规/复杂)/ 24×24(极简)
26
- - shape: 圆角矩形 `var(--input-radius)`
28
+ - size: 28×28(常规/复杂)/ 24×24(极简)
29
+ - shape: 圆角矩形 `var(--radius-md)` (8px)
27
30
  - fallback: 首字母色块 + Glossy 光泽(见 §1.6)
28
- - **UI 组件库引用**: `components/avatar` → `Avatar` (size='default'=32px / size='sm'=24px) + `AvatarFallback`
31
+ - **UI 组件库引用**: `components/avatar` → `Avatar` (size='default'=28px / size='sm'=24px) + `AvatarFallback`
29
32
 
30
33
  **iconStyle.tile 详细**:
31
34
  - size: 40×40
@@ -38,15 +41,15 @@
38
41
  | Slot | minimal | standard | complex | 元素与样式 | UI 组件库引用 |
39
42
  |------|---------|----------|---------|-----------|--------------|
40
43
  | **CardTitleRow** | 必需 | 必需 | 必需 | icon + title + [badge] + [statusDot] | `Avatar` + `CardTitle` + `Badge` / `Tag` |
41
- | **CardDescriptionRow** | 禁止 | 必需 | 必需 | text(standard: 12px/lineClamp 1;complex: 14px/lineClamp 2);color: `var(--gray-tertiary)` | `CardDescription` |
44
+ | **CardDescriptionRow** | 禁止 | 必需 | 必需 | text(standard: 12px/lineClamp 1;complex: 14px/lineClamp 2);color: `var(--muted-foreground)` | `CardDescription` |
42
45
  | **CardFieldRow** | 禁止 | 0-2 行(可选) | 2-4 行(可选) | fieldIcon(12×12) + fieldLabel(12px) + fieldValue(14px standard / 12px complex) | 内联 span 元素 |
43
46
  | **CardSupplementaryRow** | 1 行(必需) | 0-1 行(可选) | 1 行(必需) | 元信息:创建人/时间/地域;icon(12×12) + label(12px) + value(12px) | 内联 span + `Tooltip` |
44
47
  | **CardActionBar** | 必需 | 必需 | 必需 | 通过 slot 引用(见 §3) | 组合组件 |
45
48
 
46
49
  **CardTitleRow 元素**:
47
- - icon: minimal=24×24;standard=Avatar 32×32(avatar) / Icon 40×40(tile);complex=Avatar 32×32;borderRadius `var(--input-radius)`;flex-shrink 0
50
+ - icon: minimal=24×24;standard=Avatar 28×28(avatar) / Icon 40×40(tile);complex=Avatar 28×28;borderRadius `var(--radius-md)`;flex-shrink 0
48
51
  - **UI 组件库引用**: `components/avatar` → `Avatar` + `AvatarFallback`
49
- - title: 由 variants.titleFontSize 决定;font-weight 500;color `var(--gray-primary)`;单行 truncate
52
+ - title: 由 variants.titleFontSize 决定;font-weight 500;color `var(--foreground)`;单行 truncate
50
53
  - **UI 组件库引用**: `components/card` → `CardTitle`
51
54
  - **subName**(可选): 12px / 400 / `var(--gray-tertiary)`;margin-top 2px 紧贴 title 下方;用于英文标识(如 "code-generator"/"self-improvement")
52
55
  - **UI 组件库引用**: 原生 `<span>` 或 `components/typography` → `Text`
@@ -74,8 +77,8 @@
74
77
  **CardFieldRow 元素与行内状态指示器**:
75
78
  - fieldIcon(可选): 12-14px inline icon;color `var(--gray-tertiary)`
76
79
  - **UI 组件库引用**: lucide-react 图标(12px size)
77
- - fieldLabel: 12px / `var(--gray-tertiary)` / 后跟中文冒号 ":"
78
- - fieldValue: 12px / `var(--gray-secondary)`(纯文本)
80
+ - fieldLabel: 12px / `var(--muted-foreground)` / 后跟中文冒号 ":"
81
+ - fieldValue: 12px / `var(--muted-foreground)`(纯文本)
79
82
  - **inlineStatus**(可选,替代 fieldValue): 带色彩和图标的状态值
80
83
  - **UI 组件库引用**: `components/tag` → `Tag` (variant='borderless', size='sm') 或内联 span
81
84
 
@@ -92,8 +95,8 @@
92
95
  ```css
93
96
  /* CardFieldRow inline-status */
94
97
  .field-row { display: flex; align-items: center; gap: 4px; font-size: 12px; }
95
- .field-row__label { color: var(--gray-tertiary); white-space: nowrap; }
96
- .field-row__value { color: var(--gray-secondary); }
98
+ .field-row__label { color: var(--muted-foreground); white-space: nowrap; }
99
+ .field-row__value { color: var(--muted-foreground); }
97
100
  .field-row__status { display: inline-flex; align-items: center; gap: 4px; font-weight: 500; }
98
101
  .field-row__status--success { color: var(--success); }
99
102
  .field-row__status--warning { color: var(--warning); }
@@ -118,20 +121,21 @@
118
121
 
119
122
  ### 1.5 states(卡片整体状态)
120
123
 
124
+ > ⚠️ 已与 `ListCard` 实物组件对齐(v7.5+),hover 为渐变边框非 breathing 动画。
125
+
121
126
  | state | border | background | shadow | actionBar |
122
127
  |-------|--------|------------|--------|-----------|
123
- | default | 1px solid `var(--gray-border)` | `var(--card)` | none | 由 actionBarMode 决定:hover-* 隐藏 / always-visible 常驻 |
124
- | hover | 1px solid `var(--primary)` + breathing | `var(--card)` | `var(--shadow-sm)` | 可见 |
125
- | focus | 2px solid `var(--primary)` | `var(--card)` | `var(--shadow-sm)` | 可见 |
128
+ | idle | 1px solid `var(--gray-border)` | `var(--card)` | none | 由 footerMode 决定 |
129
+ | hovered | 渐变 primary 边框 `bg-gradient-to-r from-primary/60 to-primary` + padding-border 技巧 | `var(--card)` | `shadow-[0_4px_8px_0_rgba(0,0,0,0.08)]` | 可见 |
130
+ | selected | outline 2px solid `var(--primary)` | `var(--card)` | none | 隐藏 |
126
131
  | disabled | 1px solid `var(--gray-border)` | `var(--gray-fill)` | none | 隐藏 |
127
- | **selected** | **2px solid `var(--primary)`** | **`var(--card)`** | **none** | 隐藏 |
128
132
 
129
- **hover.breathingBorder CSS**:
130
- ```css
131
- @keyframes breathing { 0%,100% { opacity:0.5 } 50% { opacity:1 } }
132
- .card-hover-breathing { animation: breathing 2s ease-in-out infinite; }
133
+ **hovered 边框实现**(ListCard 渐变边框方案):
134
+ ```html
135
+ <div class="rounded-xl bg-gradient-to-r from-primary/60 to-primary p-px">
136
+ <div class="rounded-[calc(var(--radius-xl)-1px)] bg-card ...">内容</div>
137
+ </div>
133
138
  ```
134
- 应用在 hover 状态下的 border。
135
139
 
136
140
  **clickBehavior**:
137
141
  - 卡片主体点击:跳转 DetailPage 或进入编辑
@@ -149,11 +153,11 @@
149
153
  3. avatar 字段为空 → `name.charAt(0)` hash 到预设色 + 首字母 → 使用 `AvatarFallback`
150
154
 
151
155
  **blockStyle**:
152
- - size: 32×32
153
- - borderRadius: `var(--input-radius)`
156
+ - size: 28×28 (h-7 w-7)
157
+ - borderRadius: `var(--radius-md)` (8px / rounded-md)
154
158
  - textColor: `#fff`
155
159
  - fontWeight: 600
156
- - fontSize: 14px
160
+ - fontSize: 13px
157
161
  - content: `name.charAt(0).toUpperCase()`
158
162
 
159
163
  **glossy 光泽 CSS**(色块右侧叠加半透明白色渐变):
@@ -178,17 +182,19 @@
178
182
 
179
183
  ### 1.8 tokens(设计 token 映射)
180
184
 
185
+ > ⚠️ 以下值已与 `ListCard` 实物组件对齐(v7.5+)。
186
+
181
187
  | 用途 | token |
182
188
  |------|-------|
183
189
  | background | `--card` |
184
- | border | `--gray-border` |
185
- | borderHover | `--primary` |
186
- | shadowHover | `--shadow-sm` |
187
- | radius | `--radius-lg` (12px) |
188
- | iconRadius | `--input-radius` (8px) |
189
- | titleColor | `--gray-primary` |
190
- | fieldColor | `--gray-secondary` |
191
- | descColor | `--gray-tertiary` |
190
+ | border | `--gray-border`(idle)/ 渐变 primary(hovered)/ `outline 2px --primary`(selected) |
191
+ | shadowHover | `shadow-[0_4px_8px_0_rgba(0,0,0,0.08)]` |
192
+ | radius | `--radius-xl` (16px / rounded-xl) |
193
+ | iconSize | 28×28 (h-7 w-7) |
194
+ | iconRadius | `--radius-md` (8px / rounded-md) |
195
+ | titleColor | `--foreground` (text-foreground) |
196
+ | fieldColor | `--muted-foreground` |
197
+ | descColor | `--muted-foreground` |
192
198
  | disabledBg | `--gray-fill` |
193
199
  | transitionDuration | `--duration-normal` (200ms) |
194
200
  | transitionEasing | `--easing-ease` |
@@ -255,10 +261,13 @@
255
261
 
256
262
  ## 3. CardActionBar(卡片操作栏)
257
263
 
264
+ > ⚠️ ListCard 实物组件中操作栏使用 `ButtonGroup` + `variant="link"` 按钮实现(非 slidebar),且通过 `footerMode` 控制显隐。以下规格保留 spec 原始设计意图供 P2 兜底拼装参考。
265
+
258
266
  - **level**: MOLECULAR
259
267
  - **layer**: business
260
268
  - **shadcnImpl**: null
261
- - **UI 组件库引用**: 组合使用 `components/button` `Button` (variant='ghost', size='sm') + `components/dropdown-menu` `DropdownMenu`(溢出操作)+ `components/separator` → `Separator`(按钮间分隔)
269
+ - **ListCard 实现**: `ButtonGroup` + `Button variant="link" size="sm"`,间隔由 ButtonGroup 自带 gap 管理,无 border-right 分隔
270
+ - **P2 拼装引用**: 组合使用 `components/button` → `Button` (variant='ghost', size='sm') + `components/separator` → `Separator`(按钮间分隔)
262
271
  - **场景**:ItemCard 底部的操作栏 — 滑条式 (SlideBar) 设计,白底 + 主要文字色 + 等分宽度(v7.3.1 从主色底调整为白底以提升可读性与表单化一致性)。
263
272
 
264
273
  ### 3.1 props
@@ -25,9 +25,9 @@
25
25
 
26
26
  ```
27
27
  ┌─ PageShell (components/page-shell) ──────────────────────────────────────┐
28
- │ sidebar: Sidebar (components/sidebar)
28
+ │ sidebar: OpSidebar (components/business/op-sidebar)
29
29
  │ children: │
30
- │ ┌─ ContentCard (components/card → Card + CardContent) ──────────────┐
30
+ │ ┌─ OpPageContainer (components/business/op-page-container) ─────────┐
31
31
  │ │ PageHeader (components/page-header → PageHeader + PageHeaderHeading)│ │
32
32
  │ │ 标题: "评估器" / "知识库" / "Skills Hub" / "智能体" │ │
33
33
  │ │ │ │
@@ -74,8 +74,8 @@
74
74
  | 区域 | UI 组件库引用 | 用途 | 必需 |
75
75
  |------|--------------|------|------|
76
76
  | 页面框架 | `components/page-shell` → `PageShell` | L1 级页面壳,sidebar + children | ✅ |
77
- | 侧边导航 | `components/sidebar` → `Sidebar` + `SidebarContent` + `SidebarMenu` + `SidebarMenuItem` + `SidebarMenuButton` | 左侧导航菜单 | ✅ (TWO_COL) |
78
- | 白卡容器 | `components/card` → `Card` + `CardContent` | 内容区白色容器 | ✅ |
77
+ | 侧边导航 | `components/business/op-sidebar` → `OpSidebar` | 左侧导航(OpenTrek 整装侧边栏) | ✅ (TWO_COL) |
78
+ | 页面容器 | `components/business/op-page-container` → `OpPageContainer` | 灰底 + 白卡容器 | ✅ |
79
79
  | 页面标题 | `components/page-header` → `PageHeader` + `PageHeaderHeading` | 标题 18px/500 | ✅ |
80
80
  | Tab 切换 | `components/tabs` → `Tabs` + `TabsList`(variant='line') + `TabsTrigger` + `TabsContent` | 子视图切换 | ✅ |
81
81
  | 主操作按钮 | `components/button` → `Button`(variant='default', color='primary') | "+ 新建XXX" | ✅ |
@@ -85,7 +85,7 @@
85
85
  | 筛选标签 | `components/tag` → `CheckableTag` + `CheckableTagGroup` | 多分类筛选 | 可选 |
86
86
  | 下拉筛选 | `components/select` → `Select` + `SelectTrigger` + `SelectContent` + `SelectItem` | 下拉选择 "全部 ▼" | 可选 |
87
87
  | 卡片网格 | CSS Grid (item-card-spec §2) | 承载 ItemCard | ✅ |
88
- | 业务卡片 | `components/card` → `Card` + `CardHeader` + `CardTitle` + `CardDescription` + `CardContent` + `CardFooter` | 单个数据项 | ✅ |
88
+ | 业务卡片 | `components/business/list-card` → `ListCard` | 单个数据项卡片(三态边框 + hover 操作栏) | ✅ |
89
89
  | 卡片头像 | `components/avatar` → `Avatar` + `AvatarFallback` | 首字母色块 / 图标 | ✅ |
90
90
  | 状态标签 | `components/tag` → `Tag`(variant='status') | 启用/禁用/正常/有风险 | 按业务 |
91
91
  | 版本标签 | `components/badge` → `Badge`(variant='secondary') | v1.0.0 等版本信息 | 按业务 |
@@ -267,9 +267,9 @@
267
267
 
268
268
  ```
269
269
  ┌─ PageShell (components/page-shell) ──────────────────────────────────────┐
270
- │ sidebar: Sidebar (components/sidebar)
270
+ │ sidebar: OpSidebar (components/business/op-sidebar)
271
271
  │ children: │
272
- │ ┌─ ContentCard (components/card → Card + CardContent) ──────────────┐
272
+ │ ┌─ OpPageContainer (components/business/op-page-container) ─────────┐
273
273
  │ │ Breadcrumb (components/breadcrumb → Breadcrumb + BreadcrumbItem): │ │
274
274
  │ │ 记忆体 > 空间共用 │ │
275
275
  │ │ │ │
@@ -345,9 +345,9 @@
345
345
 
346
346
  ```
347
347
  ┌─ PageShell (components/page-shell) ──────────────────────────────────────┐
348
- │ sidebar: Sidebar (components/sidebar)
348
+ │ sidebar: OpSidebar (components/business/op-sidebar)
349
349
  │ children: │
350
- │ ┌─ ContentCard (components/card → Card + CardContent) ──────────────┐
350
+ │ ┌─ OpPageContainer (components/business/op-page-container) ─────────┐
351
351
  │ │ PageHeader (components/page-header): │ │
352
352
  │ │ 标题: "记忆体" │ │
353
353
  │ │ │ │
@@ -381,7 +381,7 @@
381
381
 
382
382
  ## 5. ActionToolbar 组合规则
383
383
 
384
- > 基于 `../_shared/search-combo-spec.md` 通用规则,本节补充 OpenTrek 页面中 ActionToolbar 的实际组合方式。
384
+ > 基于 `common-components.json` → SearchCombo 通用规则,本节补充 OpenTrek 页面中 ActionToolbar 的实际组合方式。
385
385
 
386
386
  ### 5.1 DOM 结构
387
387
 
@@ -3,7 +3,7 @@
3
3
  > 路由自 `../SKILL.md`
4
4
  > 覆盖三种卡片视图子类型:**pure-card** / **standard-card** / **view-toggle**
5
5
  > 核心组件:**CardGrid** > **ItemCard** × N → **CardActionBar**
6
- > 全局规则继承:[L1 框架](../../../rules/page-frame.json) / [布局模式](../../../rules/layout-rules.json) / [CRUD 流转](../../../rules/page-flow.json) / [SearchCombo](../_shared/search-combo-spec.md)
6
+ > 全局规则继承:[L1 框架](../../../rules/page-frame.json) / [CRUD 流转](../../../rules/page-flow.json) / SearchCombo(见 common-components.json)
7
7
  > **业务卡片三件套(ItemCard/CardGrid/CardActionBar)完整规格** → [_shared/item-card-spec.md](../_shared/item-card-spec.md)
8
8
  > **OpenTrek 业务页面组合规则** → [card-list-opentrek.md](./card-list-opentrek.md)
9
9
 
@@ -13,7 +13,7 @@
13
13
 
14
14
  | 术语 | 定位 | 别名 | 规范来源 |
15
15
  |------|------|------|------|
16
- | **ContentCard** | 页面主内容**白色容器**,padding 24px,每页**单例** | 白卡容器 / shadcn-Card | `rules/component-specs.json` C7-Card |
16
+ | **ContentCard** | 页面主内容**白色容器**(由 `OpPageContainer` 内置白卡承载),每页**单例** | 白卡容器 / OpPageContainer 内卡 | `components/business/op-page-container` |
17
17
  | **ItemCard** | CardGrid 内的**单个数据项卡片**,可重复 N 次 | 业务卡片 / 卡片视图列表项 | [item-card-spec.md §1](../_shared/item-card-spec.md) |
18
18
 
19
19
  > **规则**:本 pattern 及任何引用本 pattern 的文档,禁止只写 "Card",必须显式使用 `ContentCard` 或 `ItemCard` 区分。
@@ -27,7 +27,7 @@
27
27
  | 触发关键词 | "纯卡片"/"卡片管理"/"智能体列表" | "卡片列表"/"分类卡片"/"资源卡片" | "视图切换"/"列表卡片切换" |
28
28
  | layout.type | SINGLE_COL | TWO_COL | TWO_COL |
29
29
  | layout 模式 | 模式A-CARD | 模式D-CARD | 模式D + ViewToggle |
30
- | Sidebar | 无 | **有 (240px)** | **有 (240px)** |
30
+ | OpSidebar | 无 | **有 (240px)** | **有 (240px)** |
31
31
  | ViewToggle (ToggleGroup 复用) | 无 | 无 | **必需,ActionToolbar 右侧 Tab 样式** |
32
32
  | ItemCard.density | minimal / standard / complex(按信息量选) | 同 pure-card | 仅 **standard** |
33
33
  | ItemCard.iconStyle | **avatar**(32×32 圆角) | **avatar** | **tile**(40×40 大方块) |
@@ -41,12 +41,12 @@
41
41
 
42
42
  ---
43
43
 
44
- ## 2. 通用布局骨架(三个子类型共享,差异仅 Sidebar / ViewToggle)
44
+ ## 2. 通用布局骨架(三个子类型共享,差异仅 OpSidebar / ViewToggle)
45
45
 
46
46
  ```
47
- ┌─[Sidebar]*─────────┬─────────────────────────────────────────┤
48
- │ │ PageContainer → ContentWrapper
49
- │ * pure-card 无 │ ┌─ ContentCard (白卡容器) ──────────┐
47
+ ┌─[OpSidebar]*──────┬─────────────────────────────────────────┤
48
+ │ │ OpPageContainer
49
+ │ * pure-card 无 │ ┌─ 内置白卡 (bg-card rounded-2xl) ────┐
50
50
  │ │ │ PageHeader (标题 18px/500) │ │
51
51
  │ │ │ ActionToolbar: │ │
52
52
  │ │ │ [创建] [导入] │ │
@@ -65,8 +65,8 @@
65
65
  └────────────────────┴─────────────────────────────────────────┘
66
66
  ```
67
67
 
68
- > Sidebar 由 [`page-frame.json`](../../../rules/page-frame.json) L1 自动继承(TWO_COL 显示 / SINGLE_COL 隐藏),本 pattern 不重复声明。
69
- > ContentCard 内左右对齐遵循 [分层 padding 模型 v7.5](../SKILL.md#5-1-card-内左右对齐稳定规则硬约束)(Card.paddingX 20px 唯一来源)。
68
+ > Sidebar 由 [`page-frame.json`](../../../rules/page-frame.json) L1 自动继承(TWO_COL 显示 / SINGLE_COL 隐藏),本 pattern 不重复声明。OpenTrek 使用 `OpSidebar`(`components/business/op-sidebar`)。
69
+ > OpPageContainer 内白卡的 `p-6`(24px)统一提供内边距,对齐 [分层 padding 模型 v7.5](../SKILL.md#5-1-card-内左右对齐稳定规则硬约束)
70
70
 
71
71
  ### 2.1 ActionToolbar 布局细则(截图实证补充)
72
72
 
@@ -100,14 +100,14 @@
100
100
 
101
101
  | 组件 | 来源规范 | UI 组件库引用 | 子类型适用 |
102
102
  |------|----------|--------------|------------|
103
- | Sidebar | rules/page-frame.json (L1 框架自动继承) | `components/sidebar` | standard-card / view-toggle |
104
- | ContentCard | rules/component-specs.json C7-Card | `components/card` → `Card` + `CardContent` | 全部 |
103
+ | Sidebar | rules/page-frame.json (L1 框架自动继承) | `components/business/op-sidebar` → `OpSidebar` | standard-card / view-toggle |
104
+ | ContentCard | OpPageContainer 内置白卡 | `components/business/op-page-container` → `OpPageContainer` | 全部 |
105
105
  | PageHeader | rules/common-components.json | `components/page-header` → `PageHeader` + `PageHeaderHeading` | 全部 |
106
106
  | ActionToolbar | — | 组合组件(见 [opentrek §5.2](./card-list-opentrek.md#52-组件引用清单)) | 全部 |
107
- | SearchCombo | _shared/search-combo-spec.md | `components/input` → `Input` + `components/select` → `Select` | 全部 |
107
+ | SearchCombo | common-components.json → SearchCombo | `components/input` → `Input` + `components/select` → `Select` | 全部 |
108
108
  | ToggleGroup(胶囊筛选 / ViewToggle 复用) | rules/common-components.json | `components/toggle-group` → `ToggleGroup` + `ToggleGroupItem` | 全部 |
109
109
  | **CardGrid** | [item-card-spec.md §2](../_shared/item-card-spec.md#2-cardgrid卡片网格) | CSS Grid 实现(无对应 UI 组件) | 全部 |
110
- | **ItemCard** × N | [item-card-spec.md §1](../_shared/item-card-spec.md#1-itemcard业务卡片) | `components/card` → `Card` + `CardHeader` + `CardContent` + `CardFooter` | 全部 |
110
+ | **ItemCard** × N | [item-card-spec.md §1](../_shared/item-card-spec.md#1-itemcard业务卡片) | `components/business/list-card` → `ListCard` | 全部 |
111
111
  | **CardActionBar** | [item-card-spec.md §3](../_shared/item-card-spec.md#3-cardactionbar卡片操作栏) | 组合组件 | 全部 |
112
112
  | Pagination | rules/common-components.json | `components/pagination` → `Pagination` + 子组件 | 全部 |
113
113
  | DataTable | _shared/column-meta-rules.md + action-column-spec.md | `components/data-table` | view-toggle 切换列表视图时 |
@@ -132,14 +132,13 @@
132
132
 
133
133
  | 父子关系 | 状态 | 适用子类型 |
134
134
  |----------|------|----------|
135
- | ContentWrapperContentCard | ALLOW | 全部 |
136
- | ContentCardPageHeader / ActionToolbar / CardGrid / Pagination | ALLOW | 全部 |
137
- | ContentCard → DataTable + BulkActionBar | ALLOW | view-toggle(与 CardGrid 同级,切换可见) |
135
+ | OpPageContainerPageHeader / ActionToolbar / CardGrid / Pagination | ALLOW | 全部 |
136
+ | OpPageContainerDataTable + BulkActionBar | ALLOW | view-toggle(与 CardGrid 同级,切换可见) |
138
137
  | ActionToolbar → SearchCombo / ToggleGroup / ViewToggle | ALLOW | 全部(ViewToggle 仅 view-toggle) |
139
- | **CardGrid → ItemCard** | ALLOW | 全部 |
138
+ | **CardGrid → ItemCard (ListCard)** | ALLOW | 全部 |
140
139
  | **ItemCard → CardActionBar** | ALLOW(slot 引用) | 全部 |
141
- | ContentWrapper CardGrid 直挂 | FORBID | 必须经 ContentCard 包裹 |
142
- | ContentCardContentCard | FORBID | 白卡容器为单例 |
140
+ | OpPageContainer 外直挂 CardGrid | FORBID | 必须经 OpPageContainer 包裹 |
141
+ | OpPageContainerOpPageContainer | FORBID | 页面容器为单例 |
143
142
  | ItemCard → ItemCard | FORBID | 业务卡片禁止嵌套 |
144
143
  | CardGrid → 任何非 ItemCard 子节点 | FORBID | Grid 仅承载业务卡片 |
145
144
 
@@ -171,13 +170,13 @@
171
170
  - [ ] CardActionBar.mode ∈ {hover-slidebar, hover-fade, always-visible} 三态之一
172
171
  - [ ] CardActionBar position: absolute(不撑开卡片高度)
173
172
  - [ ] 危险操作(删除)使用 var(--destructive) 底色 + 始终最后位置
174
- - [ ] ContentCard 内左右对齐遵循分层 padding 模型 v7.5(20px 唯一来源)
173
+ - [ ] OpPageContainer 内白卡 `p-6`(24px)统一提供内边距,遵循分层 padding 模型 v7.5
175
174
 
176
175
  ### 子类型差异项
177
176
 
178
177
  | 验证项 | pure-card | standard-card | view-toggle |
179
178
  |--------|-----------|---------------|-------------|
180
- | layout | SINGLE_COL | TWO_COL + Sidebar | TWO_COL + Sidebar |
179
+ | layout | SINGLE_COL | TWO_COL + OpSidebar | TWO_COL + OpSidebar |
181
180
  | ViewToggle 存在性 | ❌ | ❌ | ✅ Tab 样式 |
182
181
  | ItemCard.iconStyle | avatar | avatar | tile |
183
182
  | 标题字号 | 14px | 14px | 16px |
@@ -246,8 +245,9 @@
246
245
  | 组件路径 | 导出组件 | 在卡片列表页中的用途 |
247
246
  |----------|----------|-------------------|
248
247
  | `components/page-shell` | `PageShell` | L1 级页面壳(header + sidebar + children) |
249
- | `components/sidebar` | `Sidebar`, `SidebarProvider`, `SidebarContent`, `SidebarHeader`, `SidebarFooter`, `SidebarGroup`, `SidebarGroupLabel`, `SidebarGroupContent`, `SidebarMenu`, `SidebarMenuItem`, `SidebarMenuButton`, `SidebarMenuSub`, `SidebarMenuSubItem`, `SidebarMenuSubButton`, `SidebarSeparator`, `useSidebar` | 左侧导航菜单 |
250
- | `components/card` | `Card`, `CardHeader`, `CardTitle`, `CardDescription`, `CardAction`, `CardContent`, `CardFooter` | ContentCard 白卡容器 + ItemCard 业务卡片 |
248
+ | `components/business/op-sidebar` | `OpSidebar` | 左侧导航(OpenTrek 整装侧边栏,内置 SidebarProvider) |
249
+ | `components/business/op-page-container` | `OpPageContainer` | 灰底 + 内置白卡页面容器(header + children) |
250
+ | `components/business/list-card` | `ListCard`, `CardStatusBadge` | ItemCard 业务卡片(三态边框 + hover 操作栏) |
251
251
  | `components/page-header` | `PageHeader`, `PageHeaderNav`, `PageHeaderContent`, `PageHeaderHeading`, `PageHeaderDescription`, `PageHeaderActions`, `PageHeaderFooter` | 页面标题区域 |
252
252
  | `components/button` | `Button`, `buttonVariants` | 创建/导入/辅助操作按钮 |
253
253
  | `components/input` | `Input`, `inputVariants` | 搜索输入框 |
@@ -25,9 +25,9 @@
25
25
 
26
26
  ```
27
27
  ┌─ PageShell (components/page-shell) ──────────────────────────────────────┐
28
- │ sidebar: Sidebar (components/sidebar)
28
+ │ sidebar: OpSidebar (components/business/op-sidebar)
29
29
  │ children: │
30
- │ ┌─ ContentCard (components/card → Card + CardContent) ──────────────┐
30
+ │ ┌─ OpPageContainer (components/business/op-page-container) ─────────┐
31
31
  │ │ PageHeader (components/page-header → PageHeader + PageHeaderHeading)│ │
32
32
  │ │ 标题: "上架CoWorker" / "内置资产" / "评测集" / "元数据管理" │ │
33
33
  │ │ │ │
@@ -82,8 +82,8 @@
82
82
 
83
83
  ```
84
84
  ┌─ PageShell ──────────────────────────────────────────────────────────────┐
85
- │ sidebar: Sidebar
86
- │ ┌─ ContentCard ──────────────────────────────────────────────────────┐
85
+ │ sidebar: OpSidebar
86
+ │ ┌─ OpPageContainer ────────────────────────────────────────────────────┐
87
87
  │ │ PageHeader: "操作记录" / "Trace追踪" │ │
88
88
  │ │ │ │
89
89
  │ │ ActionToolbar (flex, nowrap): │ │
@@ -119,8 +119,8 @@
119
119
 
120
120
  ```
121
121
  ┌─ PageShell ──────────────────────────────────────────────────────────────┐
122
- │ sidebar: Sidebar
123
- │ ┌─ ContentCard ──────────────────────────────────────────────────────┐
122
+ │ sidebar: OpSidebar
123
+ │ ┌─ OpPageContainer ────────────────────────────────────────────────────┐
124
124
  │ │ PageHeader: "内置服务" │ │
125
125
  │ │ Tabs: [沙箱管理 | 消息渠道管理 | 数据源管理 | 模型接入] │ │
126
126
  │ │ │ │
@@ -262,8 +262,8 @@
262
262
  | 区域 | UI 组件库引用 | 用途 |
263
263
  |------|--------------|------|
264
264
  | 页面框架 | `components/page-shell` → `PageShell` | L1 级页面壳 |
265
- | 侧边导航 | `components/sidebar` → `Sidebar` + `SidebarContent` + `SidebarMenu` | 左侧导航 |
266
- | 白卡容器 | `components/card` → `Card` + `CardContent` | 内容区白色容器 |
265
+ | 侧边导航 | `components/business/op-sidebar` → `OpSidebar` | 左侧导航(OpenTrek 整装侧边栏) |
266
+ | 页面容器 | `components/business/op-page-container` → `OpPageContainer` | 灰底 + 白卡容器 |
267
267
  | 页面标题 | `components/page-header` → `PageHeader` + `PageHeaderHeading` | 标题 18px/500 |
268
268
  | Tab 切换 | `components/tabs` → `Tabs` + `TabsList`(variant='line') + `TabsTrigger` + `TabsContent` | 子视图切换 |
269
269
  | 主操作按钮 | `components/button` → `Button`(variant='default', color='primary') | "+ 新建XXX" |
@@ -9,7 +9,7 @@
9
9
  ```
10
10
  ┌──────────┬──────────────────────────────────────────────┤
11
11
  │ │ PageHeader │
12
- Sidebar │ 标题(18px/medium) [描述*] + [了解更多 12px] │
12
+ OpSidebar │ 标题(18px/medium) [描述*] + [了解更多 12px] │
13
13
  │ │ ───────────────────────── │
14
14
  │ │ ActionToolbar (单行 flex, nowrap) │
15
15
  │ │ [创建] [批量创建] [全部▼][输入...]🔍 [刷新] │
@@ -26,7 +26,7 @@
26
26
  └──────────┴──────────────────────────────────────────────┘
27
27
  ```
28
28
 
29
- > 注: Sidebar 非必需,有 L2 导航需求时采用 TWO_COL,否则 SINGLE_COL。
29
+ > 注: OpSidebar 非必需,有 L2 导航需求时采用 TWO_COL,否则 SINGLE_COL。
30
30
 
31
31
  ## 2. 必需组件(补充)
32
32
 
@@ -74,7 +74,7 @@
74
74
 
75
75
  ### SearchCombo CSS 实现
76
76
 
77
- > 详细 CSS 规范见 `../_shared/search-combo-spec.md`(容器样式、状态、内部元素)。
77
+ > 详细规范见 `common-components.json` SearchCombo(容器样式、状态、内部元素)。
78
78
 
79
79
  ### 搜索与筛选交互
80
80
 
@@ -165,17 +165,17 @@
165
165
  - 列定义读 `products/polar-db/columns.json`(11列:集群ID/名称/状态/数据库类型/地域/规格/节点数/存储空间/连接地址/到期时间/资源组)
166
166
  - 状态机读 `products/polar-db/states.json`(5种状态:运行中/已停止/创建中/变配中/释放中)
167
167
 
168
- ## 10. 与 PageContainer 模式对照
168
+ ## 10. 与 OpPageContainer 模式对照
169
169
 
170
- > 布局模式定义见 `../../../rules/layout-rules.json`
170
+ > 布局模式定义见 `../../../rules/page-frame.json`
171
171
 
172
172
  标准列表页使用 **模式D(复合模式)**:
173
173
  ```
174
- PageContainerContentWrapper → PageHeader + ActionToolbar + DataTable + BulkActionBar + Pagination
174
+ PageShellOpSidebar + OpPageContainer → PageHeader + ActionToolbar + DataTable + BulkActionBar + Pagination
175
175
  ```
176
176
  当不需要筛选时退化为 **模式B**:
177
177
  ```
178
- PageContainerContentWrapper → PageHeader + DataTable + BulkActionBar + Pagination
178
+ PageShellOpSidebar + OpPageContainer → PageHeader + DataTable + BulkActionBar + Pagination
179
179
  ```
180
180
 
181
181
  ## 11. 验证清单
@@ -184,7 +184,7 @@ PageContainer → ContentWrapper → PageHeader + DataTable + BulkActionBar + Pa
184
184
 
185
185
  | 验证项 | 检查点 | 目标 |
186
186
  |--------|--------|------|
187
- | **Card.paddingX 外侧提供** | Card 白卡容器 `padding: 0 var(--card-padding-x)` (左右 20px);PageHeader / ActionToolbar / BulkActionBar / Pagination 的水平 padding 全部 = 0 | **必须 100% 一致**,非 Table 子组件重复设置 paddingX 即为违反 |
187
+ | **OpPageContainer 内白卡 paddingX** | OpPageContainer 内置白卡 `p-6`(24px);PageHeader / ActionToolbar / BulkActionBar / Pagination 的水平 padding 全部 = 0 | **必须 100% 一致**,非 Table 子组件重复设置 paddingX 即为违反 |
188
188
  | **Table 分层 padding v7.5** | 中间列 th/td paddingX = 12px(列间距 24px);首列 padding-left = **20px**;末列 padding-right = **20px**;首列内容 X = Card 外缘 + 40;末列右缘 X = Card 右缘 - 40;唯一可接受模式:`px-3 first:pl-5 last:pr-5` | 100% |
189
189
  | 表格列 | 列数、类型、宽度、对齐、排序、固定匹配规范 | 全部匹配 |
190
190
  | 列显隐 | 条件列(监控/可用区/组织)按规则显隐 | 正确 |
@@ -1,6 +1,6 @@
1
1
  # Color Mapping — OpenTrek v4.1 语义色映射表
2
2
 
3
- > ⚠️ **Prerequisites**: 你必须由 [generation-flow.md](../generation-flow.md) Step 6(视觉填充)引导到这里,或在翻新路径中处理色彩替换时使用。
3
+ > ⚠️ **Prerequisites**: 你必须由 [workflow.md](../workflow.md) Step 6(视觉填充)引导到这里,或在翻新路径中处理色彩替换时使用。
4
4
 
5
5
  > AI 在写组件代码时**只**消费下表中的 CSS 变量名,**不**直接写色值。Token 真值见 `tokens/tokens.theme.css`,本文件仅做语义到 token 名的映射。
6
6
 
@@ -83,7 +83,7 @@
83
83
 
84
84
  ## 6. Sidebar / Topbar 命名空间
85
85
 
86
- 详见 [sidebar-spec.md §3](../rules/sidebar-spec.md#3-颜色映射v41-品牌化)。**不**使用主色槽(`--color-primary` 等),全部走 `--color-sidebar-*` / `--color-topbar-*`。
86
+ 详见 `common-components.json` → OpSidebar 及 `design-tokens.json` → sidebarRules。**不**使用主色槽(`--color-primary` 等),全部走 `--color-sidebar-*` / `--color-topbar-*`。
87
87
 
88
88
  ---
89
89
 
@@ -1,6 +1,6 @@
1
1
  # Dashboard — 数据概览与监控页
2
2
 
3
- > ⚠️ **Prerequisites**: 你必须已在 [generation-flow.md](../generation-flow.md) Step 2 确认页面类型为 **Dashboard**,并由 Step 3 引导到这里。
3
+ > ⚠️ **Prerequisites**: 你必须已在 [workflow.md](../workflow.md) Step 2 确认页面类型为 **Dashboard**,并由 Step 3 引导到这里。
4
4
 
5
5
  > **完整规范已迁移**:本文件为索引概览,完整生成规范见 [`../pages/dashboard-page/SKILL.md`](../pages/dashboard-page/SKILL.md)。
6
6
  > OpenTrek 业务规则见 [`../pages/dashboard-page/patterns/dashboard-opentrek.md`](../pages/dashboard-page/patterns/dashboard-opentrek.md)。
@@ -15,7 +15,7 @@ description: >
15
15
  > **生成页面时必须读取**:
16
16
  > - `../pages/detail-page/SKILL.md` — 子技能入口(子类型列表 + 属性模型)
17
17
  > - `../pages/detail-page/patterns/{subtype}.md` — 完整骨架 + DOM 结构 + CSS 约束(resource / monitor / api-doc / comparison)
18
- > - `../rules/page-header-spec.md` PageHeader L2 面包屑硬约束
18
+ > - `../rules/common-components.json` PageHeader L2 面包屑硬约束
19
19
  >
20
20
  > 本文件仅用于:(1) 了解详情页子类型概览 (2) 快速判断属于哪个子类型
21
21
 
@@ -50,10 +50,10 @@ description: >
50
50
  | 属性 | 值 | 说明 |
51
51
  |------|-----|------|
52
52
  | layout.type | TWO_COL / SINGLE_COL | 见 `rules/page-frame.json` layoutSelectionRules |
53
- | layout.frame | L2 | 详情页为 L2 级页面,自动继承 Sidebar + PageHeader 面包屑模式 |
53
+ | layout.frame | L2 | 详情页为 L2 级页面,自动继承 OpSidebar + PageHeader 面包屑模式 |
54
54
  | responsive | 768px 侧边栏折叠为抽屉,DescriptionList 列数从 4 降为 2 |
55
55
 
56
- > **框架组件自动继承**:Sidebar、PageHeader 由 `rules/page-frame.json` 统一管理,L2 级页面自动继承。
56
+ > **框架组件自动继承**:OpSidebar、PageHeader 由 `rules/page-frame.json` 统一管理,L2 级页面自动继承。
57
57
 
58
58
  ---
59
59
 
@@ -63,7 +63,7 @@ description: >
63
63
 
64
64
  | 组件 | 引用 | 层级 | 位置 | 说明 |
65
65
  |------|------|------|------|------|
66
- | PageHeader | — | ORGANISM | top | 面包屑模式 + 操作按钮组(详见 `../rules/page-header-spec.md`) |
66
+ | PageHeader | — | ORGANISM | top | 面包屑模式 + 操作按钮组(详见 `common-components.json` → PageHeader) |
67
67
  | DescriptionList | — | ORGANISM | center | 核心展示组件,支持 2/3/4 列布局 |
68
68
  | DescriptionItem | — | ATOMIC | center | 单个键值对单元,6 种交互模式 |
69
69
 
@@ -94,7 +94,7 @@ description: >
94
94
  | Form (ORGANISM) | 禁止在主内容区 | 编辑应通过 Sheet/Dialog/FormPage |
95
95
  | DataTable | 禁止在主内容区 | 关联数据通过 Tabs 子面板展示 |
96
96
  | Chart (ORGANISM) | 禁止替代 DescriptionList | 监控通过 ChartPanel,详见 patterns/monitor-detail.md |
97
- | PageContainer | 禁止嵌套 | 见 layout-rules.json |
97
+ | PageContainer | 禁止嵌套 | 见 page-frame.json |
98
98
  | QueryFilter | 禁止出现 | 详情页无筛选需求 |
99
99
 
100
100
  ---
@@ -116,7 +116,7 @@ description: >
116
116
  | Tabs → TabPane → DescriptionList | ALLOW | Tab 内展示详情 |
117
117
  | Tabs → TabPane → DataTable | ALLOW | Tab 内展示关联资源 |
118
118
  | PageHeader → ActionGroup | ALLOW | 操作按钮组 |
119
- | Sidebar → DescriptionList | FORBID | 描述列表不应在侧边栏 |
119
+ | OpSidebar → DescriptionList | FORBID | 描述列表不应在侧边栏 |
120
120
 
121
121
  > 子类型特有嵌套约束见对应 `patterns/*.md`。
122
122
 
@@ -232,7 +232,7 @@ description: >
232
232
 
233
233
  | 共享规则 | 路径 | 被引用子类型 |
234
234
  |----------|------|-------------|
235
- | PageHeader L1 标题 / L2 面包屑强约束 | `../rules/page-header-spec.md` | 全部 |
235
+ | PageHeader L1 标题 / L2 面包屑强约束 | `../rules/common-components.json` → PageHeader | 全部 |
236
236
 
237
237
  ---
238
238
 
@@ -240,7 +240,7 @@ description: >
240
240
 
241
241
  - **读取路径**:见根技能 `../../SKILL.md` §4.5 三阶段读取决策树
242
242
  - 阶段①:`page-types.json` + `business-mapping.json`
243
- - 阶段②:`page-frame.json` + `layout-rules.json` + `page-flow.json`;匹配子类型后追加 `patterns/{子类型}.md`
243
+ - 阶段②:`page-frame.json` + `page-flow.json`;匹配子类型后追加 `patterns/{子类型}.md`
244
244
  - 阶段③(生成 HTML 时):`design-tokens.json` + `design-tokens.css` + `component-specs.json` + `styling.json` + `../boundaries.md` + `../foundations.md`
245
245
 
246
246
  > `rules/design-tokens.css` 是设计 Token 唯一真相源:生成 HTML 原型时需将 :root 变量块嵌入 `<style>`;React/TSX 需确保已 `@import` 引入。
@@ -256,7 +256,7 @@ description: >
256
256
  | 必需组件 | PageHeader、DescriptionList、DescriptionItem | 100% |
257
257
  | 嵌套约束 | PageContainer → ContentWrapper → Card → PageHeader + 内容 | 无违规 |
258
258
  | 禁止组件 | 无内联表单、DataTable 主内容区、QueryFilter | 0 个 |
259
- | PageHeader | 面包屑模式合规(`../rules/page-header-spec.md` 15 项) | 全部通过 |
259
+ | PageHeader | 面包屑模式合规(`common-components.json` PageHeader.generationChecklist 16 项) | 全部通过 |
260
260
  | ContentCard 表面 (v7.6) | 无 1px border + shadow = var(--shadow-sm) | 0 违规 |
261
261
  | InfoCard 表面 (v7.6) | 模式 A 跟随主卡;模式 B 仅 padding + border-bottom | 0 违规 |
262
262
  | Card 间距 (v7.5) | padding = 0 var(--card-padding-x) = 20px | 正确 |
@@ -49,12 +49,12 @@ description: >
49
49
  | 属性 | 值 | 说明 |
50
50
  | --------------- | ------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------- |
51
51
  | layout.type | SINGLE_COL / GRID | 简单表单 SINGLE_COL,多列表单 GRID |
52
- | layout.frame | L2 | 表单页为 L2 级页面,自动继承 Sidebar(含 Logo+产品名),PageHeader 使用面包屑基础组件模式 |
52
+ | layout.frame | L2 | 表单页为 L2 级页面,自动继承 OpSidebar(含 Logo+产品名),PageHeader 使用面包屑基础组件模式 |
53
53
  | responsive | Desktop: 单列/多列, Tablet: 单列, Mobile: 不推荐 |
54
54
  | form.layout | SINGLE_COL(默认), TWO_COL(多字段), SECTION(分区) |
55
55
  | submit.position | bottom | flex 布局,所有行动点居右排列(justify-content: flex-end),按钮从左到右顺序:取消 → 上一步(如有)→ 下一步/提交 |
56
56
 
57
- > **框架组件自动继承**:Sidebar、Breadcrumb 由 `rules/page-frame.json` 统一管理,L2 级页面自动包含。弹窗表单(Dialog/FormPage)为 L0 级,无框架组件。
57
+ > **框架组件自动继承**:OpSidebar、Breadcrumb 由 `rules/page-frame.json` 统一管理,L2 级页面自动包含。弹窗表单(Dialog/FormPage)为 L0 级,无框架组件。
58
58
 
59
59
  ## 4. 标准布局骨架
60
60
 
@@ -226,7 +226,7 @@ description: >
226
226
  | Form | FieldGroup | ORGANISM | center | 表单容器,替代 div + space-y-\* |
227
227
  | SubmitBar | — | ORGANISM | bottom | 提交操作栏,底部固定 |
228
228
 
229
- > **框架级组件**(自动继承,无需在此声明):Sidebar、Breadcrumb 由 `rules/page-frame.json` 统一管理,L2 级页面自动包含。弹窗表单(Dialog 内)为 L0 级,无框架组件。
229
+ > **框架级组件**(自动继承,无需在此声明):OpSidebar、Breadcrumb 由 `rules/page-frame.json` 统一管理,L2 级页面自动包含。弹窗表单(Dialog 内)为 L0 级,无框架组件。
230
230
 
231
231
  ### 可选组件
232
232
 
@@ -257,7 +257,7 @@ description: >
257
257
  | ----------------- | ------------------------ | ------------------------------------------- |
258
258
  | DataTable | 禁止出现在表单页主内容区 | 如需选择关联数据,用 Dialog + DataTable |
259
259
  | Chart | 禁止出现在表单页 | 图表属于 Dashboard |
260
- | PageContainer | 禁止嵌套 | 见 `rules/layout-rules.json` |
260
+ | PageContainer | 禁止嵌套 | 见 `rules/page-frame.json` |
261
261
  | ListPage | 禁止嵌套 | 表单页是页面级组件 |
262
262
  | 内联 Input | 禁止不在 Field 内 | 所有 Input 必须在 FieldGroup → Field 内(F1) |
263
263
  | 原始 div 表单布局 | 禁止 | 用 FieldGroup + Field 替代(F1) |
@@ -348,7 +348,7 @@ description: >
348
348
 
349
349
  ### 6.5 与 PageContainer 模式对照
350
350
 
351
- > 布局模式定义见 `rules/layout-rules.json`
351
+ > 布局模式定义见 `rules/page-frame.json`
352
352
 
353
353
  表单页使用 **模式 A(直接内容)或模式 B(Card 分组)**:
354
354
 
@@ -367,7 +367,7 @@ PageContainer → ContentWrapper → Breadcrumb + PageHeader + Card[FieldGroup]
367
367
 
368
368
  - **读取路径**:见根技能 `../../SKILL.md` §4.5 三阶段读取决策树
369
369
  - 阶段 ①:`page-types.json` + `business-mapping.json`
370
- - 阶段 ②:`page-frame.json` + `layout-rules.json` + `page-flow.json`
370
+ - 阶段 ②:`page-frame.json` + `page-flow.json`
371
371
  - 阶段 ③(生成 HTML 时):`design-tokens.json` + `design-tokens.css` + `styling.json` + `../boundaries.md` + `../foundations.md`(表单布局精确规格见本文 §8)
372
372
 
373
373
  > `rules/design-tokens.css` 是设计 Token 的唯一真相源(:root 变量定义):生成 HTML 原型时需将 :root 变量块嵌入页面 `<style>` 标签;生成 React/TSX 需确保项目已通过 `@import` 引入该 CSS 文件。