@qijenchen/design-system 0.1.0-beta.10 → 0.1.0-beta.13

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 (307) hide show
  1. package/CLAUDE.md +201 -0
  2. package/README.md +7 -15
  3. package/cli-init.mjs +90 -0
  4. package/ds-canonical/commands/README.md +26 -0
  5. package/ds-canonical/commands/gov-status.md +79 -0
  6. package/ds-canonical/hooks/README.md +145 -0
  7. package/ds-canonical/hooks/_log-fire.sh +44 -0
  8. package/ds-canonical/hooks/block_prototype_imports.py +111 -0
  9. package/ds-canonical/hooks/check_app_shell_primary_header_consistency.sh +68 -0
  10. package/ds-canonical/hooks/check_audit_post_report_validator.sh +88 -0
  11. package/ds-canonical/hooks/check_audit_sample_escape.sh +73 -0
  12. package/ds-canonical/hooks/check_benchmark_citation.sh +106 -0
  13. package/ds-canonical/hooks/check_canonical_propagation.sh +189 -0
  14. package/ds-canonical/hooks/check_chrome_header_handcraft.sh +70 -0
  15. package/ds-canonical/hooks/check_codex_brief_invariants.sh +83 -0
  16. package/ds-canonical/hooks/check_codex_collab_5step.sh +108 -0
  17. package/ds-canonical/hooks/check_datatable_invariants.sh +117 -0
  18. package/ds-canonical/hooks/check_dim_count_drift.sh +72 -0
  19. package/ds-canonical/hooks/check_field_controls_contracts.sh +110 -0
  20. package/ds-canonical/hooks/check_field_family_invariants.sh +205 -0
  21. package/ds-canonical/hooks/check_file_size_budget.sh +60 -0
  22. package/ds-canonical/hooks/check_header_with_tabs_border.sh +87 -0
  23. package/ds-canonical/hooks/check_main_branch_workbench.sh +93 -0
  24. package/ds-canonical/hooks/check_naming_and_abstraction.sh +165 -0
  25. package/ds-canonical/hooks/check_opacity_token_usage.sh +149 -0
  26. package/ds-canonical/hooks/check_pattern_invariants.sh +194 -0
  27. package/ds-canonical/hooks/check_peoplepicker_ssot_drift.sh +56 -0
  28. package/ds-canonical/hooks/check_pixel_quantified_audit.sh +53 -0
  29. package/ds-canonical/hooks/check_propose_plain_chinese.sh +74 -0
  30. package/ds-canonical/hooks/check_propose_pre_grep_verify.sh +70 -0
  31. package/ds-canonical/hooks/check_select_all_canonical.sh +58 -0
  32. package/ds-canonical/hooks/check_solo_workflow.sh +258 -0
  33. package/ds-canonical/hooks/check_spec_class_drift.sh +88 -0
  34. package/ds-canonical/hooks/check_story_invariants.sh +612 -0
  35. package/ds-canonical/hooks/check_substantive_edit_approval_preflight.sh +105 -0
  36. package/ds-canonical/hooks/check_tab_lg_chrome_header_equal.sh +66 -0
  37. package/ds-canonical/hooks/check_wrapper_primitive_schema_drift.sh +104 -0
  38. package/ds-canonical/hooks/enforce_home_charter.sh +44 -0
  39. package/ds-canonical/hooks/inject_pending_self_audit.sh +204 -0
  40. package/ds-canonical/hooks/lib/_approval_re.sh +33 -0
  41. package/ds-canonical/hooks/lib/_code_quality.sh +73 -0
  42. package/ds-canonical/hooks/lib/_cva_default_sync.sh +69 -0
  43. package/ds-canonical/hooks/lib/_governance_coverage_check.sh +49 -0
  44. package/ds-canonical/hooks/lib/_hardcoded_strings.sh +163 -0
  45. package/ds-canonical/hooks/lib/_layout_space_canonical.sh +56 -0
  46. package/ds-canonical/hooks/lib/_overlay_handcraft.sh +141 -0
  47. package/ds-canonical/hooks/lib/_person_data_richness.sh +42 -0
  48. package/ds-canonical/hooks/lib/_story_compile_drift.sh +48 -0
  49. package/ds-canonical/hooks/lib/_token_hygiene.sh +95 -0
  50. package/ds-canonical/hooks/log_governance_fires.sh +50 -0
  51. package/ds-canonical/hooks/log_skill_invokes.sh +41 -0
  52. package/ds-canonical/hooks/post_edit_dispatcher.sh +62 -0
  53. package/ds-canonical/hooks/retired/check_anatomy_section_numbering.sh +106 -0
  54. package/ds-canonical/hooks/retired/check_avatar_hovercard.sh +90 -0
  55. package/ds-canonical/hooks/retired/check_button_icon_literal.sh.retired-2026-04-28 +38 -0
  56. package/ds-canonical/hooks/retired/check_container_breathing.sh +142 -0
  57. package/ds-canonical/hooks/retired/check_governance_compliance.sh +61 -0
  58. package/ds-canonical/hooks/retired/check_icon_only_padding_formula.sh +104 -0
  59. package/ds-canonical/hooks/retired/check_item_content_primitive.sh +150 -0
  60. package/ds-canonical/hooks/retired/check_item_list_gap.sh +153 -0
  61. package/ds-canonical/hooks/retired/check_sideoffset_canonical.sh +65 -0
  62. package/ds-canonical/hooks/retired/check_spec_iteration_tag.sh +87 -0
  63. package/ds-canonical/hooks/retired/check_ssot_consultation.sh +88 -0
  64. package/ds-canonical/hooks/retired/check_sync_update.sh +20 -0
  65. package/ds-canonical/hooks/retired/check_third_party_dom_verified.sh +95 -0
  66. package/ds-canonical/hooks/retired/enforce_home_charter.sh +125 -0
  67. package/ds-canonical/hooks/retired/post_edit_canonical_interrogate.sh +109 -0
  68. package/ds-canonical/hooks/retired/pre_edit_spec_check.sh +68 -0
  69. package/ds-canonical/hooks/retired/pre_new_component_spec.sh +39 -0
  70. package/ds-canonical/hooks/retired/pre_write_subsumption_check.sh +112 -0
  71. package/ds-canonical/hooks/retired/stop_meta_self_audit.sh.retired-2026-05-13 +76 -0
  72. package/ds-canonical/hooks/retired/tests/test_check_anatomy_section_numbering.sh +14 -0
  73. package/ds-canonical/hooks/retired/tests/test_check_avatar_hovercard.sh +15 -0
  74. package/ds-canonical/hooks/retired/tests/test_check_container_breathing.sh +15 -0
  75. package/ds-canonical/hooks/retired/tests/test_check_governance_compliance.sh +15 -0
  76. package/ds-canonical/hooks/retired/tests/test_check_icon_only_padding_formula.sh +79 -0
  77. package/ds-canonical/hooks/retired/tests/test_check_item_content_primitive.sh +15 -0
  78. package/ds-canonical/hooks/retired/tests/test_check_item_list_gap.sh +163 -0
  79. package/ds-canonical/hooks/retired/tests/test_check_sideoffset_canonical.sh +15 -0
  80. package/ds-canonical/hooks/retired/tests/test_check_spec_iteration_tag.sh +15 -0
  81. package/ds-canonical/hooks/retired/tests/test_check_ssot_consultation.sh +15 -0
  82. package/ds-canonical/hooks/retired/tests/test_check_sync_update.sh +14 -0
  83. package/ds-canonical/hooks/retired/tests/test_check_third_party_dom_verified.sh +15 -0
  84. package/ds-canonical/hooks/retired/tests/test_enforce_home_charter.sh +15 -0
  85. package/ds-canonical/hooks/retired/tests/test_pre_edit_spec_check.sh +15 -0
  86. package/ds-canonical/hooks/retired/tests/test_pre_new_component_spec.sh +15 -0
  87. package/ds-canonical/hooks/retired/tests/test_pre_write_subsumption_check.sh +63 -0
  88. package/ds-canonical/hooks/session_start_governance_check.sh +263 -0
  89. package/ds-canonical/hooks/stop_passive_logging.sh +322 -0
  90. package/ds-canonical/hooks/stop_self_audit.sh +450 -0
  91. package/ds-canonical/hooks/tests/KNOWN-BROKEN.md +15 -0
  92. package/ds-canonical/hooks/tests/run-all.sh +76 -0
  93. package/ds-canonical/hooks/tests/test_block_prototype_imports.sh +143 -0
  94. package/ds-canonical/hooks/tests/test_check_app_shell_primary_header_consistency.sh +140 -0
  95. package/ds-canonical/hooks/tests/test_check_audit_post_report_validator.sh +115 -0
  96. package/ds-canonical/hooks/tests/test_check_audit_sample_escape.sh +93 -0
  97. package/ds-canonical/hooks/tests/test_check_benchmark_citation.sh +115 -0
  98. package/ds-canonical/hooks/tests/test_check_canonical_propagation.sh +133 -0
  99. package/ds-canonical/hooks/tests/test_check_chrome_header_handcraft.sh +123 -0
  100. package/ds-canonical/hooks/tests/test_check_code_quality.sh +15 -0
  101. package/ds-canonical/hooks/tests/test_check_codex_collab_5step.sh +96 -0
  102. package/ds-canonical/hooks/tests/test_check_cva_default_sync.sh +15 -0
  103. package/ds-canonical/hooks/tests/test_check_datatable_invariants.sh +122 -0
  104. package/ds-canonical/hooks/tests/test_check_dim_count_drift.sh +98 -0
  105. package/ds-canonical/hooks/tests/test_check_field_controls_contracts.sh +126 -0
  106. package/ds-canonical/hooks/tests/test_check_field_family_invariants.sh +194 -0
  107. package/ds-canonical/hooks/tests/test_check_file_size_budget.sh +32 -0
  108. package/ds-canonical/hooks/tests/test_check_hardcoded_strings.sh +14 -0
  109. package/ds-canonical/hooks/tests/test_check_header_with_tabs_border.sh +110 -0
  110. package/ds-canonical/hooks/tests/test_check_layout_space_canonical.sh +73 -0
  111. package/ds-canonical/hooks/tests/test_check_main_branch_workbench.sh +147 -0
  112. package/ds-canonical/hooks/tests/test_check_naming_and_abstraction.sh +136 -0
  113. package/ds-canonical/hooks/tests/test_check_opacity_token_usage.sh +110 -0
  114. package/ds-canonical/hooks/tests/test_check_overlay_handcraft.sh +126 -0
  115. package/ds-canonical/hooks/tests/test_check_pattern_invariants.sh +148 -0
  116. package/ds-canonical/hooks/tests/test_check_peoplepicker_ssot_drift.sh +108 -0
  117. package/ds-canonical/hooks/tests/test_check_person_data_richness.sh +58 -0
  118. package/ds-canonical/hooks/tests/test_check_pixel_quantified_audit.sh +142 -0
  119. package/ds-canonical/hooks/tests/test_check_propose_plain_chinese.sh +126 -0
  120. package/ds-canonical/hooks/tests/test_check_propose_pre_grep_verify.sh +117 -0
  121. package/ds-canonical/hooks/tests/test_check_select_all_canonical.sh +125 -0
  122. package/ds-canonical/hooks/tests/test_check_solo_workflow.sh +201 -0
  123. package/ds-canonical/hooks/tests/test_check_spec_class_drift.sh +135 -0
  124. package/ds-canonical/hooks/tests/test_check_story_anatomy.sh.broken +197 -0
  125. package/ds-canonical/hooks/tests/test_check_story_category.sh.broken +187 -0
  126. package/ds-canonical/hooks/tests/test_check_story_compile_drift.sh +15 -0
  127. package/ds-canonical/hooks/tests/test_check_story_invariants.sh +209 -0
  128. package/ds-canonical/hooks/tests/test_check_story_name_jargon.sh.broken +53 -0
  129. package/ds-canonical/hooks/tests/test_check_story_slot_split.sh +156 -0
  130. package/ds-canonical/hooks/tests/test_check_substantive_edit_approval_preflight.sh +176 -0
  131. package/ds-canonical/hooks/tests/test_check_tab_lg_chrome_header_equal.sh +138 -0
  132. package/ds-canonical/hooks/tests/test_check_token_hygiene.sh +21 -0
  133. package/ds-canonical/hooks/tests/test_check_wrapper_primitive_schema_drift.sh +169 -0
  134. package/ds-canonical/hooks/tests/test_enforce_home_charter.sh +77 -0
  135. package/ds-canonical/hooks/tests/test_inject_pending_self_audit.sh +125 -0
  136. package/ds-canonical/hooks/tests/test_log_governance_fires.sh +10 -0
  137. package/ds-canonical/hooks/tests/test_log_skill_invokes.sh +7 -0
  138. package/ds-canonical/hooks/tests/test_post_edit_dispatcher.sh +108 -0
  139. package/ds-canonical/hooks/tests/test_session_start_governance_check.sh +143 -0
  140. package/ds-canonical/hooks/tests/test_stop_capture_metrics.sh +95 -0
  141. package/ds-canonical/hooks/tests/test_stop_governance_drift_check.sh.broken +125 -0
  142. package/ds-canonical/hooks/tests/test_stop_harvest_corrections.sh +10 -0
  143. package/ds-canonical/hooks/tests/test_stop_passive_logging.sh +100 -0
  144. package/ds-canonical/hooks/tests/test_stop_self_audit.sh +76 -0
  145. package/ds-canonical/hooks/tests/test_stop_tsc_sanity.sh +10 -0
  146. package/ds-canonical/references/README.md +43 -0
  147. package/ds-canonical/references/audit-coverage-vs-24-checklist.md +74 -0
  148. package/ds-canonical/references/build-ui-canonicals.md +69 -0
  149. package/ds-canonical/references/cva-patterns.md +41 -0
  150. package/ds-canonical/references/drag-canonical.md +331 -0
  151. package/ds-canonical/references/item-anatomy-recipe.md +225 -0
  152. package/ds-canonical/references/naming-conventions.md +56 -0
  153. package/ds-canonical/references/principle-dim-map.json +515 -0
  154. package/ds-canonical/references/props-naming.md +45 -0
  155. package/ds-canonical/references/spec-rules.md +58 -0
  156. package/ds-canonical/references/ssot-consultation.md +63 -0
  157. package/ds-canonical/references/ssot-index.md +40 -0
  158. package/ds-canonical/references/story-baseline-registry.json +79 -0
  159. package/ds-canonical/references/structural-token-retention.md +42 -0
  160. package/ds-canonical/references/tailwind-gotchas.md +87 -0
  161. package/ds-canonical/references/ui-dev-rules.md +60 -0
  162. package/ds-canonical/rules/README.md +34 -0
  163. package/ds-canonical/rules/meta-patterns.md +87 -0
  164. package/ds-canonical/rules/self-verify.md +53 -0
  165. package/ds-canonical/rules/spec-rules.md +25 -0
  166. package/ds-canonical/rules/story-rules.md +56 -0
  167. package/ds-canonical/rules/ui-development.md +87 -0
  168. package/ds-canonical/skills/README.md +88 -0
  169. package/ds-canonical/skills/bug-fix-rhythm/SKILL.md +181 -0
  170. package/ds-canonical/skills/code-quality-audit/SKILL.md +63 -0
  171. package/ds-canonical/skills/codex-collab/SKILL.md +249 -0
  172. package/ds-canonical/skills/codex-collab/references/brief-template.md +48 -0
  173. package/ds-canonical/skills/codex-collab/references/transport.md +58 -0
  174. package/ds-canonical/skills/codify-corrections/SKILL.md +184 -0
  175. package/ds-canonical/skills/codify-principle/SKILL.md +151 -0
  176. package/ds-canonical/skills/component-quality-gate/SKILL.md +102 -0
  177. package/ds-canonical/skills/component-quality-gate/references/checklist.md +79 -0
  178. package/ds-canonical/skills/deep-audit-cross-codex/SKILL.md +247 -0
  179. package/ds-canonical/skills/deep-audit-cross-codex/references/phase-a-workflow.md +123 -0
  180. package/ds-canonical/skills/deep-audit-cross-codex/references/phase-b-codex-brief.md +165 -0
  181. package/ds-canonical/skills/deep-audit-cross-codex/references/triage-rubric.md +91 -0
  182. package/ds-canonical/skills/delivery-handoff/SKILL.md +229 -0
  183. package/ds-canonical/skills/delivery-handoff/references/flow-diagram.md +180 -0
  184. package/ds-canonical/skills/delivery-handoff/references/handoff-template.md +177 -0
  185. package/ds-canonical/skills/delivery-handoff/references/inventory-checklist.md +196 -0
  186. package/ds-canonical/skills/design-system-audit/SKILL.md +343 -0
  187. package/ds-canonical/skills/design-system-audit/references/audit-prompts.md +1260 -0
  188. package/ds-canonical/skills/design-system-audit/references/checkpoints.md +240 -0
  189. package/ds-canonical/skills/design-system-audit/references/historical-bugs.md +240 -0
  190. package/ds-canonical/skills/design-system-audit/references/principle-audit-protocol.md +364 -0
  191. package/ds-canonical/skills/design-system-audit/references/rule-placement.md +175 -0
  192. package/ds-canonical/skills/design-system-audit/references/spec-template.md +66 -0
  193. package/ds-canonical/skills/ensure-canonical/SKILL.md +196 -0
  194. package/ds-canonical/skills/governance-health/SKILL.md +146 -0
  195. package/ds-canonical/skills/knowledge-prune/SKILL.md +303 -0
  196. package/ds-canonical/skills/new-component/SKILL.md +170 -0
  197. package/ds-canonical/skills/new-component/references/new-component-checklist.md +85 -0
  198. package/ds-canonical/skills/performance-audit/SKILL.md +107 -0
  199. package/ds-canonical/skills/product-ui-audit/SKILL.md +230 -0
  200. package/ds-canonical/skills/product-ui-audit/references/audit-checks.md +246 -0
  201. package/ds-canonical/skills/product-ui-audit/references/common-misuses.md +329 -0
  202. package/ds-canonical/skills/product-ui-audit/references/report-template.md +159 -0
  203. package/ds-canonical/skills/propose-options/SKILL.md +177 -0
  204. package/ds-canonical/skills/prototype/SKILL.md +244 -0
  205. package/ds-canonical/skills/prototype/references/audit-checks.md +37 -0
  206. package/ds-canonical/skills/prototype/references/benchmark-sources.md +94 -0
  207. package/ds-canonical/skills/prototype/references/checkpoints.md +191 -0
  208. package/ds-canonical/skills/prototype/references/evaluation-matrix.md +141 -0
  209. package/ds-canonical/skills/prototype/references/ooux-template.md +198 -0
  210. package/ds-canonical/skills/prototype/references/proposal-template.md +229 -0
  211. package/ds-canonical/skills/scan-similar-bugs/SKILL.md +198 -0
  212. package/ds-canonical/skills/story-auto-compile-migrate/SKILL.md +159 -0
  213. package/ds-canonical/skills/story-writing/SKILL.md +122 -0
  214. package/ds-canonical/skills/story-writing/references/anatomy-standard.md +217 -0
  215. package/ds-canonical/skills/story-writing/references/category-templates.md +174 -0
  216. package/ds-canonical/skills/story-writing/references/example-selection.md +70 -0
  217. package/ds-canonical/skills/story-writing/references/self-check.md +20 -0
  218. package/ds-canonical/skills/ux-audit/SKILL.md +130 -0
  219. package/ds-canonical/skills/visual-audit/SKILL.md +245 -0
  220. package/ds-canonical/skills/visual-audit/output/.gitkeep +0 -0
  221. package/ds-canonical/skills/visual-audit/references/audit-architecture.md +100 -0
  222. package/ds-canonical/skills/visual-audit/references/visual-checklist.md +297 -0
  223. package/ds-canonical/skills/visual-audit/references/world-class-benchmarks.md +198 -0
  224. package/package.json +9 -5
  225. package/src/components/Accordion/accordion.spec.md +114 -0
  226. package/src/components/Alert/alert.spec.md +197 -0
  227. package/src/components/AppShell/app-shell.spec.md +331 -0
  228. package/src/components/AspectRatio/aspect-ratio.spec.md +134 -0
  229. package/src/components/Avatar/avatar.spec.md +329 -0
  230. package/src/components/Badge/badge.spec.md +380 -0
  231. package/src/components/Breadcrumb/breadcrumb.spec.md +257 -0
  232. package/src/components/BulkActionBar/bulk-action-bar.spec.md +210 -0
  233. package/src/components/Button/button.spec.md +460 -0
  234. package/src/components/Calendar/calendar.spec.md +242 -0
  235. package/src/components/Carousel/carousel.spec.md +253 -0
  236. package/src/components/Chart/chart.spec.md +155 -0
  237. package/src/components/Checkbox/checkbox.spec.md +344 -0
  238. package/src/components/Chip/chip.spec.md +237 -0
  239. package/src/components/CircularProgress/circular-progress.spec.md +268 -0
  240. package/src/components/Coachmark/coachmark.spec.md +230 -0
  241. package/src/components/Combobox/combobox.spec.md +180 -0
  242. package/src/components/Command/command.spec.md +171 -0
  243. package/src/components/DataTable/data-table.spec.md +525 -0
  244. package/src/components/DateGrid/date-grid.spec.md +215 -0
  245. package/src/components/DatePicker/date-picker.spec.md +334 -0
  246. package/src/components/DescriptionList/description-list.spec.md +214 -0
  247. package/src/components/Dialog/dialog.spec.md +202 -0
  248. package/src/components/DropdownMenu/dropdown-menu.spec.md +250 -0
  249. package/src/components/Empty/empty.spec.md +214 -0
  250. package/src/components/Field/field-controls.spec.md +338 -0
  251. package/src/components/Field/field.spec.md +438 -0
  252. package/src/components/Field/form-validation.spec.md +152 -0
  253. package/src/components/FieldControlGroup/field-control-group.spec.md +176 -0
  254. package/src/components/FileItem/file-item.spec.md +467 -0
  255. package/src/components/FileUpload/file-upload.spec.md +123 -0
  256. package/src/components/FileViewer/file-viewer.spec.md +373 -0
  257. package/src/components/HoverCard/hover-card.spec.md +157 -0
  258. package/src/components/Input/input.spec.md +193 -0
  259. package/src/components/LinkInput/link-input.spec.md +130 -0
  260. package/src/components/Menu/menu-item.spec.md +290 -0
  261. package/src/components/NameCard/name-card.spec.md +171 -0
  262. package/src/components/Notice/notice.spec.md +149 -0
  263. package/src/components/NumberInput/number-input.spec.md +126 -0
  264. package/src/components/OverflowIndicator/overflow-indicator.spec.md +120 -0
  265. package/src/components/PeoplePicker/people-picker.spec.md +263 -0
  266. package/src/components/Popover/popover.spec.md +198 -0
  267. package/src/components/ProgressBar/progress-bar.spec.md +232 -0
  268. package/src/components/RadioGroup/radio-group.spec.md +141 -0
  269. package/src/components/Rating/rating.spec.md +208 -0
  270. package/src/components/ScrollArea/scroll-area.spec.md +145 -0
  271. package/src/components/SegmentedControl/segmented-control.spec.md +295 -0
  272. package/src/components/Select/select.spec.md +299 -0
  273. package/src/components/SelectMenu/select-menu.spec.md +220 -0
  274. package/src/components/SelectionControl/selection-item.spec.md +128 -0
  275. package/src/components/Separator/separator.spec.md +109 -0
  276. package/src/components/Sheet/sheet.spec.md +148 -0
  277. package/src/components/Sidebar/sidebar.spec.md +713 -0
  278. package/src/components/Skeleton/skeleton.spec.md +104 -0
  279. package/src/components/Slider/slider.spec.md +353 -0
  280. package/src/components/Steps/steps.spec.md +465 -0
  281. package/src/components/Switch/switch.spec.md +215 -0
  282. package/src/components/Tabs/tabs.spec.md +314 -0
  283. package/src/components/Tag/tag.spec.md +282 -0
  284. package/src/components/Textarea/textarea.spec.md +151 -0
  285. package/src/components/TimePicker/time-picker.spec.md +279 -0
  286. package/src/components/Toast/toast.spec.md +177 -0
  287. package/src/components/Tooltip/tooltip.spec.md +139 -0
  288. package/src/components/TreeView/tree-view.spec.md +374 -0
  289. package/src/patterns/action-bar/action-bar.spec.md +458 -0
  290. package/src/patterns/element-anatomy/element-anatomy.spec.md +215 -0
  291. package/src/patterns/element-anatomy/inline-action.spec.md +315 -0
  292. package/src/patterns/element-anatomy/item-anatomy.spec.md +1042 -0
  293. package/src/patterns/header-canonical/header-canonical.spec.md +285 -0
  294. package/src/patterns/horizontal-overflow/horizontal-overflow.spec.md +191 -0
  295. package/src/patterns/overlay-surface/overlay-surface.spec.md +428 -0
  296. package/src/patterns/resize-handle/resize-handle.spec.md +109 -0
  297. package/src/tokens/color/color.spec.md +804 -0
  298. package/src/tokens/density/density.spec.md +127 -0
  299. package/src/tokens/elevation/elevation.spec.md +81 -0
  300. package/src/tokens/layoutSpace/layoutSpace.spec.md +314 -0
  301. package/src/tokens/motion/motion.spec.md +97 -0
  302. package/src/tokens/opacity/opacity.spec.md +78 -0
  303. package/src/tokens/orphan-tokens.spec.md +117 -0
  304. package/src/tokens/radius/radius.spec.md +123 -0
  305. package/src/tokens/typography/typography.spec.md +202 -0
  306. package/src/tokens/uiSize/uiSize.spec.md +438 -0
  307. package/src/styles/preset.css +0 -31
@@ -0,0 +1,180 @@
1
+ # Flow Diagram — Mermaid UI Flow 指引
2
+
3
+ ---
4
+
5
+ ## 為什麼用 Mermaid
6
+
7
+ - **Text-based**:可 git diff / review / version control
8
+ - **Storybook 支援**:`mdx` 可直接 render;純 `tsx` story 用 `<pre>` 包 mermaid source + 指引
9
+ - **世界級工具支援**:GitHub / Notion / GitLab / Confluence 都 render
10
+ - **Export**:可 export PNG / SVG / PDF 交付給不進 Storybook 的 stakeholder
11
+
12
+ ---
13
+
14
+ ## 基本語法
15
+
16
+ ### flowchart(最常用)
17
+
18
+ ```mermaid
19
+ flowchart TD
20
+ Start([使用者進入 checkout]) --> Cart[Cart Review]
21
+ Cart -->|修改| Edit[Edit Item Dialog]
22
+ Edit --> Cart
23
+ Cart -->|確認| Pay[Payment Step]
24
+ Pay -->|信用卡| Card[Card Form]
25
+ Pay -->|轉帳| Bank[Bank Info]
26
+ Card --> Confirm[Confirm Dialog]
27
+ Bank --> Confirm
28
+ Confirm -->|下單| Success([訂單成立])
29
+ Confirm -->|取消| Cart
30
+ ```
31
+
32
+ Nodes:
33
+ - `[Text]` = rectangle(主 screen / modal)
34
+ - `([Text])` = stadium(流程起點 / 終點)
35
+ - `{Text}` = rhombus(決策點)
36
+ - `((Text))` = circle(特殊節點,如 async operation)
37
+
38
+ Edges:
39
+ - `-->` arrow
40
+ - `-->|label|` arrow with label(e.g., 條件)
41
+ - `-.->` dashed(非主路徑 / optional)
42
+ - `==>` thick(強調 / primary 路徑)
43
+
44
+ ### sequenceDiagram(互動時序)
45
+
46
+ ```mermaid
47
+ sequenceDiagram
48
+ User->>UI: 點「套用」
49
+ UI->>API: POST /discount
50
+ API-->>UI: 200 + discount data
51
+ UI->>UI: 更新 state
52
+ UI-->>User: 顯示「已套用」
53
+ ```
54
+
55
+ 適合:非同步互動 / API 時序 / 多 actor 流程。
56
+
57
+ ### stateDiagram(狀態機)
58
+
59
+ ```mermaid
60
+ stateDiagram-v2
61
+ [*] --> Idle
62
+ Idle --> Loading: click apply
63
+ Loading --> Applied: 200
64
+ Loading --> Error: 4xx/5xx
65
+ Applied --> Idle: click clear
66
+ Error --> Idle: dismiss
67
+ ```
68
+
69
+ 適合:元件 / feature 的狀態機(idle / loading / success / error)。
70
+
71
+ ---
72
+
73
+ ## 世界級 reference
74
+
75
+ 對標世界級設計 handoff 的 flow 品質:
76
+
77
+ - **Shopify Polaris Pattern pages**: 每 pattern 有 `flow` section 用 SVG,我們用 Mermaid
78
+ - **Material Design Guidelines**: 流程圖 + 截圖並列
79
+ - **Stripe Documentation**: Payment Flow 用 Mermaid + inline code
80
+ - **Figma Design Process blog posts**: Journey map + flow 混合
81
+
82
+ ---
83
+
84
+ ## 原則
85
+
86
+ ### 1. 一張圖涵蓋一個 feature,不超過 20 個 nodes
87
+
88
+ > 20+ nodes → 拆成多個 sub-flow diagram。
89
+
90
+ ### 2. 標示 **error path**(非 happy path)
91
+
92
+ > 只畫 happy path = handoff 失真。user 也要知道錯誤 / 邊界 case 流向何處。
93
+
94
+ ### 3. 決策點標清楚
95
+
96
+ > 用 `-->|label|` 寫條件,避免邊無敘述。
97
+
98
+ ### 4. Start / End 用 stadium node
99
+
100
+ > `([Start])` / `([End])` 讓讀者知道邊界。
101
+
102
+ ### 5. 搭配 spec sheet 引用
103
+
104
+ > Node text 應對應 spec sheet 的 screen / modal 名稱,讀者一眼看出對應。
105
+
106
+ ---
107
+
108
+ ## 範本 — Checkout 完整 flow
109
+
110
+ ```mermaid
111
+ flowchart TD
112
+ Start([進入 /checkout]) --> AuthCheck{已登入?}
113
+ AuthCheck -->|否| Login[Login Screen]
114
+ Login --> Start
115
+ AuthCheck -->|是| CartCheck{購物車有 item?}
116
+ CartCheck -->|否| Empty[Empty Cart Screen]
117
+ Empty -->|回去購物| End1([exit to /products])
118
+ CartCheck -->|是| Review[Cart Review Screen]
119
+
120
+ Review -->|點 item| Edit[Edit Item Dialog]
121
+ Edit -->|save| Review
122
+ Edit -->|cancel| Review
123
+
124
+ Review -->|輸入折扣| Discount{折扣有效?}
125
+ Discount -->|否| DiscountError[顯示 error]
126
+ DiscountError --> Review
127
+ Discount -->|是| Review
128
+
129
+ Review -->|下一步| Payment[Payment Selection]
130
+ Payment -->|信用卡| CardForm[Card Form]
131
+ Payment -->|轉帳| BankInfo[Bank Instructions]
132
+ Payment -->|超商| StoreInfo[Store Instructions]
133
+
134
+ CardForm --> Validate{valid?}
135
+ Validate -->|否| CardError[Inline errors]
136
+ CardError --> CardForm
137
+ Validate -->|是| Confirm[Confirm Dialog]
138
+
139
+ BankInfo --> Confirm
140
+ StoreInfo --> Confirm
141
+
142
+ Confirm -->|確認下單| Submit[POST /order]
143
+ Submit --> SubmitCheck{success?}
144
+ SubmitCheck -->|是| Success([訂單成立 / 跳 /orders/:id])
145
+ SubmitCheck -->|否| RetryToast[Toast: 請稍後再試]
146
+ RetryToast --> Confirm
147
+
148
+ Confirm -->|取消| Payment
149
+ ```
150
+
151
+ ---
152
+
153
+ ## Edge case 節點命名慣例
154
+
155
+ - `XxxError` = 錯誤狀態(顯示 Alert / Notice)
156
+ - `XxxEmpty` = 空狀態(顯示 Empty 元件)
157
+ - `XxxLoading` = 載入中
158
+ - `XxxRetry` = 可重試狀態
159
+ - `XxxSkipped` = 跳過(optional flow)
160
+
161
+ 讓讀者一眼看出節點是 happy 還是 edge。
162
+
163
+ ---
164
+
165
+ ## 集成 Storybook
166
+
167
+ Storybook 8+ 支援 MDX,可直接寫 mermaid code block:
168
+
169
+ ````mdx
170
+ # Checkout Flow
171
+
172
+ ```mermaid
173
+ flowchart TD
174
+ Start --> End
175
+ ```
176
+ ````
177
+
178
+ 純 tsx story 可用 `<pre>{mermaidSource}</pre>` + 外部 render tool,或用 `mermaid.js` npm lib runtime render。
179
+
180
+ 一般推薦 MDX 方式,Storybook 原生支援。
@@ -0,0 +1,177 @@
1
+ # Handoff Template — Storybook page + Markdown spec
2
+
3
+ ---
4
+
5
+ ## Storybook Handoff Page 結構
6
+
7
+ 位置: `src/app/features/{feature-slug}/{feature-slug}.handoff.stories.tsx`
8
+
9
+ Title: `Features/{Feature Name}/Handoff`
10
+
11
+ 每個 handoff page 5 個 story(5 tab):
12
+
13
+ ```tsx
14
+ const meta: Meta = {
15
+ title: 'Features/Checkout/Handoff',
16
+ parameters: { layout: 'fullscreen' },
17
+ }
18
+ export default meta
19
+
20
+ export const Overview: Story = {
21
+ name: '0. Overview',
22
+ render: () => <OverviewPage />,
23
+ }
24
+
25
+ export const UIFlow: Story = {
26
+ name: '1. UI Flow',
27
+ render: () => <FlowDiagram />, // Mermaid render
28
+ }
29
+
30
+ export const Inventory: Story = {
31
+ name: '2. Inventory',
32
+ render: () => <InventoryTables />, // Component / Token / a11y
33
+ }
34
+
35
+ export const Screens: Story = {
36
+ name: '3. Screens',
37
+ render: () => <ScreenGrid />, // 每 screen 的 preview + link
38
+ }
39
+
40
+ export const SpecSheets: Story = {
41
+ name: '4. Spec Sheets',
42
+ render: () => <SpecTabs />, // per-screen detail
43
+ }
44
+ ```
45
+
46
+ ---
47
+
48
+ ## Per-screen Markdown Spec 範本
49
+
50
+ 每 screen 一份,組合為完整 feature 的 spec sheet:
51
+
52
+ ```markdown
53
+ # Screen: {Name}
54
+
55
+ **Storybook**: `Features/{Feature}/{Screen}`
56
+ **Source**: `src/app/features/{slug}/{Screen}.tsx`
57
+ **Route**: `/{path}`
58
+
59
+ ## 用途(Why)
60
+
61
+ {1-2 sentence 敘述 user 會在此頁做什麼}
62
+
63
+ ## 進入條件(Entry conditions)
64
+
65
+ - {e.g., 已登入 + 購物車有 ≥1 item}
66
+ - {e.g., 付款方式已選擇}
67
+
68
+ ## 主要元件(Components used)
69
+
70
+ | Component | Count | Purpose |
71
+ |-----------|-------|---------|
72
+ | Button | 3 | CTA + 次要 action |
73
+ | Input | 1 | 折扣碼輸入 |
74
+ | ... | | |
75
+
76
+ ## 狀態(States)
77
+
78
+ ### default
79
+ {正常載入後的畫面描述 + 截圖}
80
+
81
+ ### empty
82
+ {無資料時的 fallback}
83
+
84
+ ### error
85
+ {錯誤情境處理}
86
+
87
+ ### loading
88
+ {載入中 skeleton / spinner}
89
+
90
+ ## 互動(Interactions)
91
+
92
+ | Action | Element | Result |
93
+ |--------|---------|--------|
94
+ | 點 Apply | Button | POST /discount |
95
+ | 按 Esc | 任何 Dialog | 關閉 |
96
+ | ... | | |
97
+
98
+ ## A11y
99
+
100
+ - ✓ icon-only 元件均有 aria-label
101
+ - ✓ Dialog 有 DialogTitle + DialogDescription
102
+ - ✓ keyboard tab order 正確
103
+ - ⚠ {如有未達標項,明列 + 說明}
104
+
105
+ ## 邊界(Edge cases)
106
+
107
+ - {e.g., 折扣碼超過總額 → capped}
108
+ - {e.g., 網路斷線 → toast + retry}
109
+ - {e.g., 超過 N items → 分頁}
110
+
111
+ ## 業務規則(Business rules)
112
+
113
+ - {e.g., VIP 折扣上限 30%}
114
+ - {e.g., 免運門檻 NT$1000}
115
+
116
+ ## Related
117
+
118
+ - Next step: [Screen Y]
119
+ - Alternative: [Screen Z]
120
+ - Design source: [Explorations/ folder](...)
121
+ ```
122
+
123
+ ---
124
+
125
+ ## Overview story render 範本
126
+
127
+ ```tsx
128
+ function OverviewPage() {
129
+ return (
130
+ <div className="max-w-4xl mx-auto p-8 flex flex-col gap-6">
131
+ <h1 className="text-h1 font-medium">Checkout Feature Handoff</h1>
132
+ <p className="text-body-lg text-fg-secondary">
133
+ 使用者從購物車到下單的完整結帳流程。包含 3 screens、4 modals、支援信用卡 / 銀行轉帳 /
134
+ 超商付款 3 種付款方式。
135
+ </p>
136
+
137
+ <div className="border-t border-divider pt-6">
138
+ <h2 className="text-h2 font-medium mb-3">Audience</h2>
139
+ <ul className="list-disc pl-5 text-body">
140
+ <li>工程團隊:實作參考 + test case 來源</li>
141
+ <li>QA:邊界 case checklist</li>
142
+ <li>PM:業務規則確認</li>
143
+ </ul>
144
+ </div>
145
+
146
+ <div className="border-t border-divider pt-6">
147
+ <h2 className="text-h2 font-medium mb-3">Status</h2>
148
+ <div className="grid grid-cols-3 gap-3">
149
+ <StatCard label="元件消費" value="12" caption="既有 DS" />
150
+ <StatCard label="新元件" value="0" caption="零污染" />
151
+ <StatCard label="A11y" value="✓" caption="WCAG AA" />
152
+ </div>
153
+ </div>
154
+
155
+ <div className="border-t border-divider pt-6">
156
+ <h2 className="text-h2 font-medium mb-3">Navigation</h2>
157
+ <ul className="list-disc pl-5 text-body">
158
+ <li>Tab 1: UI Flow — Mermaid diagram</li>
159
+ <li>Tab 2: Inventory — 元件 / token / a11y 報告</li>
160
+ <li>Tab 3: Screens — 每 screen preview + link</li>
161
+ <li>Tab 4: Spec Sheets — per-screen detail</li>
162
+ </ul>
163
+ </div>
164
+ </div>
165
+ )
166
+ }
167
+ ```
168
+
169
+ ---
170
+
171
+ ## 設計原則
172
+
173
+ 1. **target audience driven**: 語氣深度因 audience 調整。工程語氣精準 / PM 語氣情境 / 設計語氣對標
174
+ 2. **每段可獨立被引用**: per-screen spec 可單獨丟給 team member,不需看其他頁
175
+ 3. **不重複 DS spec**: 元件的行為 / variant 由 `components/*/spec.md` owning,handoff 只寫 **feature-level** 使用
176
+ 4. **截圖 / preview 是 Storybook render 即可**: 不要 mockup,直接看真實 code 的 output
177
+ 5. **Edge case 必寫**: handoff 不寫 edge case = 實作 + QA 會踩坑
@@ -0,0 +1,196 @@
1
+ # Inventory Checklist — 元件 / token / a11y grep pattern
2
+
3
+ Phase 1 inventory 生成的具體 grep + 統計方法。
4
+
5
+ ---
6
+
7
+ ## Component Inventory
8
+
9
+ ### 步驟 1: grep 所有 import
10
+
11
+ ```bash
12
+ grep -rhnE "^import.*@/design-system/components/" {target} | \
13
+ sed -E 's/.*components\/([A-Z][a-zA-Z]+)\/.*/\1/' | \
14
+ sort | uniq -c | sort -rn
15
+ ```
16
+
17
+ 輸出:每個 DS 元件被 import 幾次。
18
+
19
+ ### 步驟 2: count JSX usage
20
+
21
+ 每個 component 精確使用次數(非 import):
22
+
23
+ ```bash
24
+ for comp in Button Input Dialog Empty ScrollArea ...; do
25
+ count=$(grep -rhnE "<$comp\b" {target} | wc -l)
26
+ echo "$comp: $count"
27
+ done
28
+ ```
29
+
30
+ ### 步驟 3: 輸出 table
31
+
32
+ ```markdown
33
+ ## Components Used (12)
34
+
35
+ | Component | Count | Files |
36
+ |-----------|-------|-------|
37
+ | Button | 12 | Checkout.tsx, Summary.tsx, ... |
38
+ | Input | 3 | PaymentForm.tsx |
39
+ | Dialog | 2 | ConfirmDialog.tsx, EditDialog.tsx |
40
+ | Empty | 1 | EmptyCart.tsx |
41
+ | ProgressBar | 1 | UploadingBanner.tsx |
42
+ | ScrollArea | 1 | ItemList.tsx |
43
+ | ... | | |
44
+ ```
45
+
46
+ ---
47
+
48
+ ## Token Inventory
49
+
50
+ ### CSS variable usage
51
+
52
+ ```bash
53
+ grep -rohnE 'var\(--[a-z-]+\)' {target} | \
54
+ sort | uniq -c | sort -rn
55
+ ```
56
+
57
+ ### Semantic token utility class
58
+
59
+ ```bash
60
+ grep -rohnE '\b(bg|text|border|fill|stroke|ring)-(primary|primary-hover|primary-subtle|primary-text|info|info-hover|info-subtle|info-text|error|error-hover|error-subtle|error-text|success|success-hover|success-subtle|success-text|warning|warning-hover|warning-subtle|warning-text|foreground|fg-secondary|fg-muted|fg-disabled|neutral-hover|neutral-active|neutral-selected|surface|surface-raised|canvas|muted|secondary|border|border-hover|divider|overlay|tooltip|notification|chart-[1-5])\b' {target} | \
61
+ awk -F: '{print $NF}' | sort | uniq -c | sort -rn
62
+ ```
63
+
64
+ ### 輸出 table
65
+
66
+ ```markdown
67
+ ## Tokens Used (24)
68
+
69
+ | Token | Usage | Primary consumer |
70
+ |-------|-------|------------------|
71
+ | --primary | 8 | 主 CTA |
72
+ | --fg-secondary | 14 | 次要文字 |
73
+ | --error | 3 | 錯誤狀態 |
74
+ | --surface-raised | 5 | Dialog / Popover bg |
75
+ | ... | | |
76
+ ```
77
+
78
+ ---
79
+
80
+ ## Layout primitives 消費報告
81
+
82
+ 每類 primitive 用了幾次 + 哪些地方:
83
+
84
+ ```bash
85
+ # Empty
86
+ grep -rhnE '<Empty\b' {target} | wc -l
87
+
88
+ # ScrollArea
89
+ grep -rhnE '<ScrollArea\b' {target} | wc -l
90
+
91
+ # AspectRatio
92
+ grep -rhnE '<AspectRatio\b' {target} | wc -l
93
+
94
+ # item-layout (MenuItem etc.)
95
+ grep -rhnE '<(MenuItem|TreeItem|SidebarMenuButton|ItemIcon|ItemAvatar|ItemLabel|ItemSuffix)\b' {target} | wc -l
96
+
97
+ # overlay-surface (Dialog/Popover auto consume)
98
+ grep -rhnE '<(DialogHeader|DialogBody|DialogFooter|PopoverHeader|PopoverBody|PopoverFooter)\b' {target} | wc -l
99
+ ```
100
+
101
+ 輸出:
102
+
103
+ ```markdown
104
+ ## Layout primitives used
105
+
106
+ | Primitive | Count | Note |
107
+ |-----------|-------|------|
108
+ | Empty | 1 | EmptyCart.tsx |
109
+ | item-layout | 5 | via MenuItem(3) / TreeItem(2) |
110
+ | overlay-surface | 4 | via Dialog sub-components |
111
+ | ScrollArea | 1 | ItemList.tsx |
112
+ | AspectRatio | 0 | 本 feature 無 media container |
113
+ | Horizontal-overflow | 0 | 本 feature 無水平溢出 |
114
+ | Field-wrapper | 3 | via Input(3) |
115
+ ```
116
+
117
+ ---
118
+
119
+ ## A11y Checklist
120
+
121
+ ### 自動掃描(visible)
122
+
123
+ ```bash
124
+ # icon-only 無 aria-label
125
+ grep -rnE '(iconOnly|startIcon=\{)' {target} | \
126
+ xargs -I {} sh -c 'echo {} | grep -v "aria-label"'
127
+
128
+ # 非 button 綁 onClick
129
+ grep -rnE '<(div|span)[^>]*onClick=' {target}
130
+
131
+ # Dialog 是否有 DialogTitle
132
+ grep -rlE '<DialogContent>' {target} | \
133
+ xargs -I {} grep -L 'DialogTitle' {}
134
+ ```
135
+
136
+ ### 人工 review(本 skill AI 無法判)
137
+
138
+ | Check | Status | Note |
139
+ |-------|--------|------|
140
+ | Color contrast WCAG AA | ? | 需 Storybook 視覺 + axe plugin |
141
+ | Keyboard navigation tab order | ? | 需實際操作 |
142
+ | Screen reader announce 正確 | ? | 需 VoiceOver / NVDA 測試 |
143
+ | Focus trap 在 Modal 內 | ✓ | Radix 自動處理 |
144
+ | Esc 關閉 Modal | ✓ | Radix 自動處理 |
145
+
146
+ 輸出:
147
+
148
+ ```markdown
149
+ ## A11y Status
150
+
151
+ ### Auto-scanned (visible issues)
152
+
153
+ | Check | Status |
154
+ |-------|--------|
155
+ | icon-only 有 aria-label | ✓ 全過(12/12) |
156
+ | 非 button 綁 onClick | ✓ 無 |
157
+ | Dialog 有 Title | ✓ 2/2 |
158
+
159
+ ### Manual review needed
160
+
161
+ - [ ] Color contrast(run axe in Storybook)
162
+ - [ ] Keyboard navigation test
163
+ - [ ] Screen reader test
164
+ ```
165
+
166
+ ---
167
+
168
+ ## 新增的元件 / token
169
+
170
+ 若 feature 過程中**新增**到 design-system/,在 inventory 特別標示:
171
+
172
+ ```markdown
173
+ ## New additions to DS (本 feature 過程新增)
174
+
175
+ | Added | File | Motivation |
176
+ |-------|------|-----------|
177
+ | Coachmark | packages/design-system/src/components/Coachmark/ | onboarding tour 需求 |
178
+ | --chart-accent | packages/design-system/src/tokens/color/semantic.css | data viz 擴充 |
179
+ ```
180
+
181
+ 讓 stakeholder 看得出「這 feature 帶動了 DS 擴充」的成本。
182
+
183
+ ---
184
+
185
+ ## 範本輸出順序
186
+
187
+ inventory 結果編排:
188
+
189
+ 1. **Overview**(feature 規模:X screens / Y modals)
190
+ 2. **Components Used**(按 count 由高至低)
191
+ 3. **Tokens Used**(按 count 由高至低,分色 / 字 / 間距 / shadow 四類)
192
+ 4. **Layout primitives**(全表)
193
+ 5. **A11y**(auto + manual two tables)
194
+ 6. **New additions**(若有)
195
+
196
+ 如此 stakeholder 一分鐘可掃完,三分鐘可讀懂 feature 全景。