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

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 (1760) hide show
  1. package/AGENTS.md +8 -0
  2. package/CLAUDE.md +5 -0
  3. package/README.md +13 -19
  4. package/cli-init.mjs +118 -0
  5. package/dist/components/Accordion/accordion.d.ts +3 -3
  6. package/dist/components/Accordion/accordion.d.ts.map +1 -1
  7. package/dist/components/Accordion/accordion.js +4 -1
  8. package/dist/components/Accordion/accordion.js.map +1 -1
  9. package/dist/components/Accordion/index.d.ts +2 -0
  10. package/dist/components/Accordion/index.d.ts.map +1 -0
  11. package/dist/components/Accordion/index.js +9 -0
  12. package/dist/components/Accordion/index.js.map +1 -0
  13. package/dist/components/AccountMenu/account-menu.d.ts +86 -0
  14. package/dist/components/AccountMenu/account-menu.d.ts.map +1 -0
  15. package/dist/components/AccountMenu/account-menu.js +64 -0
  16. package/dist/components/AccountMenu/account-menu.js.map +1 -0
  17. package/dist/components/AccountMenu/index.d.ts +2 -0
  18. package/dist/components/AccountMenu/index.d.ts.map +1 -0
  19. package/dist/components/AccountMenu/index.js +6 -0
  20. package/dist/components/AccountMenu/index.js.map +1 -0
  21. package/dist/components/Alert/alert.d.ts +7 -2
  22. package/dist/components/Alert/alert.d.ts.map +1 -1
  23. package/dist/components/Alert/alert.js +12 -8
  24. package/dist/components/Alert/alert.js.map +1 -1
  25. package/dist/components/Alert/index.d.ts +2 -0
  26. package/dist/components/Alert/index.d.ts.map +1 -0
  27. package/dist/components/Alert/index.js +7 -0
  28. package/dist/components/Alert/index.js.map +1 -0
  29. package/dist/components/AppShell/_demo-helpers.d.ts +3 -1
  30. package/dist/components/AppShell/_demo-helpers.d.ts.map +1 -1
  31. package/dist/components/AppShell/app-shell.d.ts +4 -4
  32. package/dist/components/AppShell/app-shell.d.ts.map +1 -1
  33. package/dist/components/AppShell/app-shell.js +32 -11
  34. package/dist/components/AppShell/app-shell.js.map +1 -1
  35. package/dist/components/AppShell/index.d.ts +2 -0
  36. package/dist/components/AppShell/index.d.ts.map +1 -0
  37. package/dist/components/AppShell/index.js +7 -0
  38. package/dist/components/AppShell/index.js.map +1 -0
  39. package/dist/components/AspectRatio/aspect-ratio.d.ts +3 -2
  40. package/dist/components/AspectRatio/aspect-ratio.d.ts.map +1 -1
  41. package/dist/components/AspectRatio/aspect-ratio.js +4 -2
  42. package/dist/components/AspectRatio/aspect-ratio.js.map +1 -1
  43. package/dist/components/AspectRatio/index.d.ts +2 -0
  44. package/dist/components/AspectRatio/index.d.ts.map +1 -0
  45. package/dist/components/AspectRatio/index.js +6 -0
  46. package/dist/components/AspectRatio/index.js.map +1 -0
  47. package/dist/components/Avatar/avatar.d.ts +14 -7
  48. package/dist/components/Avatar/avatar.d.ts.map +1 -1
  49. package/dist/components/Avatar/avatar.js +24 -30
  50. package/dist/components/Avatar/avatar.js.map +1 -1
  51. package/dist/components/Avatar/index.d.ts +2 -0
  52. package/dist/components/Avatar/index.d.ts.map +1 -0
  53. package/dist/components/Avatar/index.js +6 -0
  54. package/dist/components/Avatar/index.js.map +1 -0
  55. package/dist/components/Badge/badge.d.ts +21 -9
  56. package/dist/components/Badge/badge.d.ts.map +1 -1
  57. package/dist/components/Badge/badge.js +9 -6
  58. package/dist/components/Badge/badge.js.map +1 -1
  59. package/dist/components/Badge/index.d.ts +2 -0
  60. package/dist/components/Badge/index.d.ts.map +1 -0
  61. package/dist/components/Badge/index.js +7 -0
  62. package/dist/components/Badge/index.js.map +1 -0
  63. package/dist/components/Breadcrumb/breadcrumb.d.ts +16 -3
  64. package/dist/components/Breadcrumb/breadcrumb.d.ts.map +1 -1
  65. package/dist/components/Breadcrumb/breadcrumb.js +21 -53
  66. package/dist/components/Breadcrumb/breadcrumb.js.map +1 -1
  67. package/dist/components/Breadcrumb/index.d.ts +2 -0
  68. package/dist/components/Breadcrumb/index.d.ts.map +1 -0
  69. package/dist/components/Breadcrumb/index.js +12 -0
  70. package/dist/components/Breadcrumb/index.js.map +1 -0
  71. package/dist/components/BulkActionBar/bulk-action-bar.d.ts +7 -4
  72. package/dist/components/BulkActionBar/bulk-action-bar.d.ts.map +1 -1
  73. package/dist/components/BulkActionBar/bulk-action-bar.js +8 -8
  74. package/dist/components/BulkActionBar/bulk-action-bar.js.map +1 -1
  75. package/dist/components/BulkActionBar/index.d.ts +2 -0
  76. package/dist/components/BulkActionBar/index.d.ts.map +1 -0
  77. package/dist/components/BulkActionBar/index.js +7 -0
  78. package/dist/components/BulkActionBar/index.js.map +1 -0
  79. package/dist/components/Button/button-group.d.ts +2 -2
  80. package/dist/components/Button/button-group.d.ts.map +1 -1
  81. package/dist/components/Button/button-group.js +2 -2
  82. package/dist/components/Button/button-group.js.map +1 -1
  83. package/dist/components/Button/button.d.ts +15 -14
  84. package/dist/components/Button/button.d.ts.map +1 -1
  85. package/dist/components/Button/button.js +94 -52
  86. package/dist/components/Button/button.js.map +1 -1
  87. package/dist/components/Button/index.d.ts +3 -0
  88. package/dist/components/Button/index.d.ts.map +1 -0
  89. package/dist/components/Button/index.js +11 -0
  90. package/dist/components/Button/index.js.map +1 -0
  91. package/dist/components/Calendar/calendar.d.ts +22 -19
  92. package/dist/components/Calendar/calendar.d.ts.map +1 -1
  93. package/dist/components/Calendar/calendar.js +169 -135
  94. package/dist/components/Calendar/calendar.js.map +1 -1
  95. package/dist/components/Calendar/index.d.ts +2 -0
  96. package/dist/components/Calendar/index.d.ts.map +1 -0
  97. package/dist/components/Calendar/index.js +6 -0
  98. package/dist/components/Calendar/index.js.map +1 -0
  99. package/dist/components/Carousel/carousel.d.ts +15 -9
  100. package/dist/components/Carousel/carousel.d.ts.map +1 -1
  101. package/dist/components/Carousel/carousel.js +86 -47
  102. package/dist/components/Carousel/carousel.js.map +1 -1
  103. package/dist/components/Carousel/index.d.ts +2 -0
  104. package/dist/components/Carousel/index.d.ts.map +1 -0
  105. package/dist/components/Carousel/index.js +11 -0
  106. package/dist/components/Carousel/index.js.map +1 -0
  107. package/dist/components/Chart/chart.d.ts +2 -2
  108. package/dist/components/Chart/chart.d.ts.map +1 -1
  109. package/dist/components/Chart/chart.js +5 -2
  110. package/dist/components/Chart/chart.js.map +1 -1
  111. package/dist/components/Chart/index.d.ts +2 -0
  112. package/dist/components/Chart/index.d.ts.map +1 -0
  113. package/dist/components/Chart/index.js +11 -0
  114. package/dist/components/Chart/index.js.map +1 -0
  115. package/dist/components/Checkbox/checkbox-group.d.ts +2 -1
  116. package/dist/components/Checkbox/checkbox-group.d.ts.map +1 -1
  117. package/dist/components/Checkbox/checkbox-group.js +21 -14
  118. package/dist/components/Checkbox/checkbox-group.js.map +1 -1
  119. package/dist/components/Checkbox/checkbox.d.ts +20 -11
  120. package/dist/components/Checkbox/checkbox.d.ts.map +1 -1
  121. package/dist/components/Checkbox/checkbox.js +117 -18
  122. package/dist/components/Checkbox/checkbox.js.map +1 -1
  123. package/dist/components/Checkbox/index.d.ts +3 -0
  124. package/dist/components/Checkbox/index.d.ts.map +1 -0
  125. package/dist/components/Checkbox/index.js +10 -0
  126. package/dist/components/Checkbox/index.js.map +1 -0
  127. package/dist/components/Chip/chip.d.ts +14 -8
  128. package/dist/components/Chip/chip.d.ts.map +1 -1
  129. package/dist/components/Chip/chip.js +48 -14
  130. package/dist/components/Chip/chip.js.map +1 -1
  131. package/dist/components/Chip/index.d.ts +2 -0
  132. package/dist/components/Chip/index.d.ts.map +1 -0
  133. package/dist/components/Chip/index.js +8 -0
  134. package/dist/components/Chip/index.js.map +1 -0
  135. package/dist/components/CircularProgress/circular-progress.d.ts +2 -3
  136. package/dist/components/CircularProgress/circular-progress.d.ts.map +1 -1
  137. package/dist/components/CircularProgress/circular-progress.js +4 -3
  138. package/dist/components/CircularProgress/circular-progress.js.map +1 -1
  139. package/dist/components/CircularProgress/index.d.ts +2 -0
  140. package/dist/components/CircularProgress/index.d.ts.map +1 -0
  141. package/dist/components/CircularProgress/index.js +6 -0
  142. package/dist/components/CircularProgress/index.js.map +1 -0
  143. package/dist/components/Coachmark/coachmark-story-helpers.d.ts +22 -0
  144. package/dist/components/Coachmark/coachmark-story-helpers.d.ts.map +1 -0
  145. package/dist/components/Coachmark/coachmark.d.ts +15 -6
  146. package/dist/components/Coachmark/coachmark.d.ts.map +1 -1
  147. package/dist/components/Coachmark/coachmark.js +12 -4
  148. package/dist/components/Coachmark/coachmark.js.map +1 -1
  149. package/dist/components/Coachmark/index.d.ts +2 -0
  150. package/dist/components/Coachmark/index.d.ts.map +1 -0
  151. package/dist/components/Coachmark/index.js +6 -0
  152. package/dist/components/Coachmark/index.js.map +1 -0
  153. package/dist/components/Combobox/combobox.d.ts +39 -15
  154. package/dist/components/Combobox/combobox.d.ts.map +1 -1
  155. package/dist/components/Combobox/combobox.js +120 -57
  156. package/dist/components/Combobox/combobox.js.map +1 -1
  157. package/dist/components/Combobox/index.d.ts +2 -0
  158. package/dist/components/Combobox/index.d.ts.map +1 -0
  159. package/dist/components/Combobox/index.js +6 -0
  160. package/dist/components/Combobox/index.js.map +1 -0
  161. package/dist/components/Command/command.d.ts +7 -3
  162. package/dist/components/Command/command.d.ts.map +1 -1
  163. package/dist/components/Command/command.js +23 -10
  164. package/dist/components/Command/command.js.map +1 -1
  165. package/dist/components/Command/index.d.ts +2 -0
  166. package/dist/components/Command/index.d.ts.map +1 -0
  167. package/dist/components/Command/index.js +14 -0
  168. package/dist/components/Command/index.js.map +1 -0
  169. package/dist/components/DataTable/active-editor-controller.d.ts +4 -3
  170. package/dist/components/DataTable/active-editor-controller.d.ts.map +1 -1
  171. package/dist/components/DataTable/cell-registry.d.ts +5 -5
  172. package/dist/components/DataTable/cell-registry.d.ts.map +1 -1
  173. package/dist/components/DataTable/cell-registry.js +88 -94
  174. package/dist/components/DataTable/cell-registry.js.map +1 -1
  175. package/dist/components/DataTable/column-types.d.ts +11 -21
  176. package/dist/components/DataTable/column-types.d.ts.map +1 -1
  177. package/dist/components/DataTable/column-types.js.map +1 -1
  178. package/dist/components/DataTable/data-table-column-visibility-panel.d.ts +1 -1
  179. package/dist/components/DataTable/data-table-column-visibility-panel.d.ts.map +1 -1
  180. package/dist/components/DataTable/data-table-column-visibility-panel.js +190 -0
  181. package/dist/components/DataTable/data-table-column-visibility-panel.js.map +1 -0
  182. package/dist/components/DataTable/data-table-filter-group.d.ts +51 -0
  183. package/dist/components/DataTable/data-table-filter-group.d.ts.map +1 -0
  184. package/dist/components/DataTable/data-table-filter-group.js +159 -0
  185. package/dist/components/DataTable/data-table-filter-group.js.map +1 -0
  186. package/dist/components/DataTable/data-table-filter-labels.d.ts +44 -0
  187. package/dist/components/DataTable/data-table-filter-labels.d.ts.map +1 -0
  188. package/dist/components/DataTable/data-table-filter-labels.js +55 -0
  189. package/dist/components/DataTable/data-table-filter-labels.js.map +1 -0
  190. package/dist/components/DataTable/data-table-filter-panel.d.ts +11 -2
  191. package/dist/components/DataTable/data-table-filter-panel.d.ts.map +1 -1
  192. package/dist/components/DataTable/data-table-filter-panel.js +307 -0
  193. package/dist/components/DataTable/data-table-filter-panel.js.map +1 -0
  194. package/dist/components/DataTable/data-table-filter-value-picker.d.ts +32 -0
  195. package/dist/components/DataTable/data-table-filter-value-picker.d.ts.map +1 -0
  196. package/dist/components/DataTable/data-table-filter-value-picker.js +205 -0
  197. package/dist/components/DataTable/data-table-filter-value-picker.js.map +1 -0
  198. package/dist/components/DataTable/data-table-interaction-layer.d.ts +17 -20
  199. package/dist/components/DataTable/data-table-interaction-layer.d.ts.map +1 -1
  200. package/dist/components/DataTable/data-table-interaction-layer.js +1 -3
  201. package/dist/components/DataTable/data-table-interaction-layer.js.map +1 -1
  202. package/dist/components/DataTable/data-table-sort-manager.js +140 -0
  203. package/dist/components/DataTable/data-table-sort-manager.js.map +1 -0
  204. package/dist/components/DataTable/data-table.d.ts +66 -15
  205. package/dist/components/DataTable/data-table.d.ts.map +1 -1
  206. package/dist/components/DataTable/data-table.js +358 -181
  207. package/dist/components/DataTable/data-table.js.map +1 -1
  208. package/dist/components/DataTable/filter-operators.d.ts +1 -1
  209. package/dist/components/DataTable/filter-operators.js +140 -0
  210. package/dist/components/DataTable/filter-operators.js.map +1 -0
  211. package/dist/components/DataTable/filter-tree.d.ts +6 -1
  212. package/dist/components/DataTable/filter-tree.d.ts.map +1 -1
  213. package/dist/components/DataTable/filter-tree.js +318 -0
  214. package/dist/components/DataTable/filter-tree.js.map +1 -0
  215. package/dist/components/DataTable/index.d.ts +5 -0
  216. package/dist/components/DataTable/index.d.ts.map +1 -0
  217. package/dist/components/DataTable/index.js +21 -0
  218. package/dist/components/DataTable/index.js.map +1 -0
  219. package/dist/components/DataTable/lib/column-meta.js +25 -0
  220. package/dist/components/DataTable/lib/column-meta.js.map +1 -0
  221. package/dist/components/DateGrid/date-grid.d.ts +23 -19
  222. package/dist/components/DateGrid/date-grid.d.ts.map +1 -1
  223. package/dist/components/DateGrid/date-grid.js +57 -9
  224. package/dist/components/DateGrid/date-grid.js.map +1 -1
  225. package/dist/components/DateGrid/index.d.ts +2 -0
  226. package/dist/components/DateGrid/index.d.ts.map +1 -0
  227. package/dist/components/DateGrid/index.js +6 -0
  228. package/dist/components/DateGrid/index.js.map +1 -0
  229. package/dist/components/DatePicker/date-picker.d.ts +12 -12
  230. package/dist/components/DatePicker/date-picker.d.ts.map +1 -1
  231. package/dist/components/DatePicker/date-picker.js +412 -309
  232. package/dist/components/DatePicker/date-picker.js.map +1 -1
  233. package/dist/components/DatePicker/index.d.ts +2 -0
  234. package/dist/components/DatePicker/index.d.ts.map +1 -0
  235. package/dist/components/DatePicker/index.js +8 -0
  236. package/dist/components/DatePicker/index.js.map +1 -0
  237. package/dist/components/DescriptionList/description-list.d.ts +6 -6
  238. package/dist/components/DescriptionList/description-list.d.ts.map +1 -1
  239. package/dist/components/DescriptionList/description-list.js +11 -10
  240. package/dist/components/DescriptionList/description-list.js.map +1 -1
  241. package/dist/components/DescriptionList/index.d.ts +2 -0
  242. package/dist/components/DescriptionList/index.d.ts.map +1 -0
  243. package/dist/components/DescriptionList/index.js +7 -0
  244. package/dist/components/DescriptionList/index.js.map +1 -0
  245. package/dist/components/Dialog/dialog.d.ts +22 -5
  246. package/dist/components/Dialog/dialog.d.ts.map +1 -1
  247. package/dist/components/Dialog/dialog.js +44 -23
  248. package/dist/components/Dialog/dialog.js.map +1 -1
  249. package/dist/components/Dialog/index.d.ts +2 -0
  250. package/dist/components/Dialog/index.d.ts.map +1 -0
  251. package/dist/components/Dialog/index.js +16 -0
  252. package/dist/components/Dialog/index.js.map +1 -0
  253. package/dist/components/DropdownMenu/dropdown-menu.d.ts +19 -10
  254. package/dist/components/DropdownMenu/dropdown-menu.d.ts.map +1 -1
  255. package/dist/components/DropdownMenu/dropdown-menu.js +78 -28
  256. package/dist/components/DropdownMenu/dropdown-menu.js.map +1 -1
  257. package/dist/components/DropdownMenu/index.d.ts +2 -0
  258. package/dist/components/DropdownMenu/index.d.ts.map +1 -0
  259. package/dist/components/DropdownMenu/index.js +21 -0
  260. package/dist/components/DropdownMenu/index.js.map +1 -0
  261. package/dist/components/Empty/empty.d.ts +11 -3
  262. package/dist/components/Empty/empty.d.ts.map +1 -1
  263. package/dist/components/Empty/empty.js +7 -7
  264. package/dist/components/Empty/empty.js.map +1 -1
  265. package/dist/components/Empty/index.d.ts +2 -0
  266. package/dist/components/Empty/index.d.ts.map +1 -0
  267. package/dist/components/Empty/index.js +6 -0
  268. package/dist/components/Empty/index.js.map +1 -0
  269. package/dist/components/Field/field-context.d.ts +111 -4
  270. package/dist/components/Field/field-context.d.ts.map +1 -1
  271. package/dist/components/Field/field-context.js +70 -0
  272. package/dist/components/Field/field-context.js.map +1 -1
  273. package/dist/components/Field/field-edit-keys.d.ts +21 -0
  274. package/dist/components/Field/field-edit-keys.d.ts.map +1 -0
  275. package/dist/components/Field/field-edit-keys.js +19 -0
  276. package/dist/components/Field/field-edit-keys.js.map +1 -0
  277. package/dist/components/Field/field-types.d.ts +22 -3
  278. package/dist/components/Field/field-types.d.ts.map +1 -1
  279. package/dist/components/Field/field-types.js.map +1 -1
  280. package/dist/components/Field/field-wrapper.d.ts +24 -6
  281. package/dist/components/Field/field-wrapper.d.ts.map +1 -1
  282. package/dist/components/Field/field-wrapper.js +98 -74
  283. package/dist/components/Field/field-wrapper.js.map +1 -1
  284. package/dist/components/Field/field.d.ts +7 -4
  285. package/dist/components/Field/field.d.ts.map +1 -1
  286. package/dist/components/Field/field.js +38 -5
  287. package/dist/components/Field/field.js.map +1 -1
  288. package/dist/components/Field/index.d.ts +3 -0
  289. package/dist/components/Field/index.d.ts.map +1 -0
  290. package/dist/components/Field/index.js +14 -0
  291. package/dist/components/Field/index.js.map +1 -0
  292. package/dist/components/Field/use-form-validation.d.ts +92 -0
  293. package/dist/components/Field/use-form-validation.d.ts.map +1 -0
  294. package/dist/components/Field/use-form-validation.js +137 -0
  295. package/dist/components/Field/use-form-validation.js.map +1 -0
  296. package/dist/components/FieldControlGroup/field-control-group.d.ts +8 -11
  297. package/dist/components/FieldControlGroup/field-control-group.d.ts.map +1 -1
  298. package/dist/components/FieldControlGroup/field-control-group.js +2 -2
  299. package/dist/components/FieldControlGroup/field-control-group.js.map +1 -1
  300. package/dist/components/FieldControlGroup/index.d.ts +2 -0
  301. package/dist/components/FieldControlGroup/index.d.ts.map +1 -0
  302. package/dist/components/FieldControlGroup/index.js +6 -0
  303. package/dist/components/FieldControlGroup/index.js.map +1 -0
  304. package/dist/components/FileItem/file-item.d.ts +12 -2
  305. package/dist/components/FileItem/file-item.d.ts.map +1 -1
  306. package/dist/components/FileItem/file-item.js +26 -14
  307. package/dist/components/FileItem/file-item.js.map +1 -1
  308. package/dist/components/FileItem/index.d.ts +2 -0
  309. package/dist/components/FileItem/index.d.ts.map +1 -0
  310. package/dist/components/FileItem/index.js +6 -0
  311. package/dist/components/FileItem/index.js.map +1 -0
  312. package/dist/components/FileUpload/file-upload.d.ts +33 -14
  313. package/dist/components/FileUpload/file-upload.d.ts.map +1 -1
  314. package/dist/components/FileUpload/file-upload.js +85 -25
  315. package/dist/components/FileUpload/file-upload.js.map +1 -1
  316. package/dist/components/FileUpload/index.d.ts +2 -0
  317. package/dist/components/FileUpload/index.d.ts.map +1 -0
  318. package/dist/components/FileUpload/index.js +6 -0
  319. package/dist/components/FileUpload/index.js.map +1 -0
  320. package/dist/components/FileViewer/can-render-image.d.ts +6 -0
  321. package/dist/components/FileViewer/can-render-image.d.ts.map +1 -0
  322. package/dist/components/FileViewer/can-render-image.js +11 -0
  323. package/dist/components/FileViewer/can-render-image.js.map +1 -0
  324. package/dist/components/FileViewer/file-viewer.d.ts +4 -4
  325. package/dist/components/FileViewer/file-viewer.d.ts.map +1 -1
  326. package/dist/components/FileViewer/file-viewer.js +80 -40
  327. package/dist/components/FileViewer/file-viewer.js.map +1 -1
  328. package/dist/components/FileViewer/image-renderer.d.ts +0 -5
  329. package/dist/components/FileViewer/image-renderer.d.ts.map +1 -1
  330. package/dist/components/FileViewer/image-renderer.js +23 -10
  331. package/dist/components/FileViewer/image-renderer.js.map +1 -1
  332. package/dist/components/FileViewer/index.d.ts +2 -0
  333. package/dist/components/FileViewer/index.d.ts.map +1 -0
  334. package/dist/components/FileViewer/index.js +7 -0
  335. package/dist/components/FileViewer/index.js.map +1 -0
  336. package/dist/components/HoverCard/hover-card.d.ts +9 -5
  337. package/dist/components/HoverCard/hover-card.d.ts.map +1 -1
  338. package/dist/components/HoverCard/hover-card.js +12 -5
  339. package/dist/components/HoverCard/hover-card.js.map +1 -1
  340. package/dist/components/HoverCard/index.d.ts +2 -0
  341. package/dist/components/HoverCard/index.d.ts.map +1 -0
  342. package/dist/components/HoverCard/index.js +8 -0
  343. package/dist/components/HoverCard/index.js.map +1 -0
  344. package/dist/components/InlineEdit/index.d.ts +2 -0
  345. package/dist/components/InlineEdit/index.d.ts.map +1 -0
  346. package/dist/components/InlineEdit/index.js +5 -0
  347. package/dist/components/InlineEdit/index.js.map +1 -0
  348. package/dist/components/InlineEdit/inline-edit.d.ts +71 -0
  349. package/dist/components/InlineEdit/inline-edit.d.ts.map +1 -0
  350. package/dist/components/InlineEdit/inline-edit.js +238 -0
  351. package/dist/components/InlineEdit/inline-edit.js.map +1 -0
  352. package/dist/components/Input/index.d.ts +2 -0
  353. package/dist/components/Input/index.d.ts.map +1 -0
  354. package/dist/components/Input/index.js +6 -0
  355. package/dist/components/Input/index.js.map +1 -0
  356. package/dist/components/Input/input.d.ts +31 -10
  357. package/dist/components/Input/input.d.ts.map +1 -1
  358. package/dist/components/Input/input.js +67 -30
  359. package/dist/components/Input/input.js.map +1 -1
  360. package/dist/components/LinkInput/index.d.ts +2 -0
  361. package/dist/components/LinkInput/index.d.ts.map +1 -0
  362. package/dist/components/LinkInput/index.js +6 -0
  363. package/dist/components/LinkInput/index.js.map +1 -0
  364. package/dist/components/LinkInput/link-input.d.ts +9 -9
  365. package/dist/components/LinkInput/link-input.d.ts.map +1 -1
  366. package/dist/components/LinkInput/link-input.js +40 -37
  367. package/dist/components/LinkInput/link-input.js.map +1 -1
  368. package/dist/components/Menu/index.d.ts +2 -0
  369. package/dist/components/Menu/index.d.ts.map +1 -0
  370. package/dist/components/Menu/index.js +9 -0
  371. package/dist/components/Menu/index.js.map +1 -0
  372. package/dist/components/Menu/menu-item.d.ts +20 -4
  373. package/dist/components/Menu/menu-item.d.ts.map +1 -1
  374. package/dist/components/Menu/menu-item.js +34 -8
  375. package/dist/components/Menu/menu-item.js.map +1 -1
  376. package/dist/components/Notice/index.d.ts +2 -0
  377. package/dist/components/Notice/index.d.ts.map +1 -0
  378. package/dist/components/Notice/index.js +8 -0
  379. package/dist/components/Notice/index.js.map +1 -0
  380. package/dist/components/Notice/notice.d.ts +35 -7
  381. package/dist/components/Notice/notice.d.ts.map +1 -1
  382. package/dist/components/Notice/notice.js +32 -10
  383. package/dist/components/Notice/notice.js.map +1 -1
  384. package/dist/components/NumberInput/index.d.ts +2 -0
  385. package/dist/components/NumberInput/index.d.ts.map +1 -0
  386. package/dist/components/NumberInput/index.js +7 -0
  387. package/dist/components/NumberInput/index.js.map +1 -0
  388. package/dist/components/NumberInput/number-input.d.ts +5 -5
  389. package/dist/components/NumberInput/number-input.d.ts.map +1 -1
  390. package/dist/components/NumberInput/number-input.js +40 -18
  391. package/dist/components/NumberInput/number-input.js.map +1 -1
  392. package/dist/components/OverflowIndicator/index.d.ts +2 -0
  393. package/dist/components/OverflowIndicator/index.d.ts.map +1 -0
  394. package/dist/components/OverflowIndicator/index.js +6 -0
  395. package/dist/components/OverflowIndicator/index.js.map +1 -0
  396. package/dist/components/OverflowIndicator/overflow-indicator.d.ts +6 -2
  397. package/dist/components/OverflowIndicator/overflow-indicator.d.ts.map +1 -1
  398. package/dist/components/OverflowIndicator/overflow-indicator.js +11 -7
  399. package/dist/components/OverflowIndicator/overflow-indicator.js.map +1 -1
  400. package/dist/components/Pagination/index.d.ts +2 -0
  401. package/dist/components/Pagination/index.d.ts.map +1 -0
  402. package/dist/components/Pagination/index.js +6 -0
  403. package/dist/components/Pagination/index.js.map +1 -0
  404. package/dist/components/Pagination/pagination.d.ts +49 -0
  405. package/dist/components/Pagination/pagination.d.ts.map +1 -0
  406. package/dist/components/Pagination/pagination.js +182 -0
  407. package/dist/components/Pagination/pagination.js.map +1 -0
  408. package/dist/components/PeoplePicker/avatar-stack-overflow.d.ts +1 -1
  409. package/dist/components/PeoplePicker/avatar-stack-overflow.js.map +1 -1
  410. package/dist/components/PeoplePicker/index.d.ts +2 -0
  411. package/dist/components/PeoplePicker/index.d.ts.map +1 -0
  412. package/dist/components/PeoplePicker/index.js +15 -0
  413. package/dist/components/PeoplePicker/index.js.map +1 -0
  414. package/dist/components/PeoplePicker/people-picker-helpers.d.ts.map +1 -1
  415. package/dist/components/PeoplePicker/people-picker-helpers.js +2 -2
  416. package/dist/components/PeoplePicker/people-picker-helpers.js.map +1 -1
  417. package/dist/components/PeoplePicker/people-picker.d.ts +19 -10
  418. package/dist/components/PeoplePicker/people-picker.d.ts.map +1 -1
  419. package/dist/components/PeoplePicker/people-picker.js +87 -62
  420. package/dist/components/PeoplePicker/people-picker.js.map +1 -1
  421. package/dist/components/PeoplePicker/person-display.d.ts +18 -11
  422. package/dist/components/PeoplePicker/person-display.d.ts.map +1 -1
  423. package/dist/components/PeoplePicker/person-display.js +27 -22
  424. package/dist/components/PeoplePicker/person-display.js.map +1 -1
  425. package/dist/components/Popover/index.d.ts +2 -0
  426. package/dist/components/Popover/index.d.ts.map +1 -0
  427. package/dist/components/Popover/index.js +14 -0
  428. package/dist/components/Popover/index.js.map +1 -0
  429. package/dist/components/Popover/popover.d.ts +2 -2
  430. package/dist/components/Popover/popover.d.ts.map +1 -1
  431. package/dist/components/Popover/popover.js +72 -42
  432. package/dist/components/Popover/popover.js.map +1 -1
  433. package/dist/components/ProfileCard/index.d.ts +2 -0
  434. package/dist/components/ProfileCard/index.d.ts.map +1 -0
  435. package/dist/components/ProfileCard/index.js +8 -0
  436. package/dist/components/ProfileCard/index.js.map +1 -0
  437. package/dist/components/{NameCard/name-card.d.ts → ProfileCard/profile-card.d.ts} +34 -20
  438. package/dist/components/ProfileCard/profile-card.d.ts.map +1 -0
  439. package/dist/components/{NameCard/name-card.js → ProfileCard/profile-card.js} +27 -16
  440. package/dist/components/ProfileCard/profile-card.js.map +1 -0
  441. package/dist/components/ProgressBar/index.d.ts +2 -0
  442. package/dist/components/ProgressBar/index.d.ts.map +1 -0
  443. package/dist/components/ProgressBar/index.js +6 -0
  444. package/dist/components/ProgressBar/index.js.map +1 -0
  445. package/dist/components/ProgressBar/progress-bar.d.ts +2 -2
  446. package/dist/components/ProgressBar/progress-bar.js +3 -3
  447. package/dist/components/ProgressBar/progress-bar.js.map +1 -1
  448. package/dist/components/RadioGroup/index.d.ts +2 -0
  449. package/dist/components/RadioGroup/index.d.ts.map +1 -0
  450. package/dist/components/RadioGroup/index.js +8 -0
  451. package/dist/components/RadioGroup/index.js.map +1 -0
  452. package/dist/components/RadioGroup/radio-group.d.ts +18 -12
  453. package/dist/components/RadioGroup/radio-group.d.ts.map +1 -1
  454. package/dist/components/RadioGroup/radio-group.js +104 -35
  455. package/dist/components/RadioGroup/radio-group.js.map +1 -1
  456. package/dist/components/Rating/index.d.ts +2 -0
  457. package/dist/components/Rating/index.d.ts.map +1 -0
  458. package/dist/components/Rating/index.js +6 -0
  459. package/dist/components/Rating/index.js.map +1 -0
  460. package/dist/components/Rating/rating.d.ts +6 -2
  461. package/dist/components/Rating/rating.d.ts.map +1 -1
  462. package/dist/components/Rating/rating.js +17 -10
  463. package/dist/components/Rating/rating.js.map +1 -1
  464. package/dist/components/ScrollArea/index.d.ts +2 -0
  465. package/dist/components/ScrollArea/index.d.ts.map +1 -0
  466. package/dist/components/ScrollArea/index.js +7 -0
  467. package/dist/components/ScrollArea/index.js.map +1 -0
  468. package/dist/components/ScrollArea/scroll-area.d.ts +16 -4
  469. package/dist/components/ScrollArea/scroll-area.d.ts.map +1 -1
  470. package/dist/components/ScrollArea/scroll-area.js +9 -6
  471. package/dist/components/ScrollArea/scroll-area.js.map +1 -1
  472. package/dist/components/SegmentedControl/index.d.ts +2 -0
  473. package/dist/components/SegmentedControl/index.d.ts.map +1 -0
  474. package/dist/components/SegmentedControl/index.js +9 -0
  475. package/dist/components/SegmentedControl/index.js.map +1 -0
  476. package/dist/components/SegmentedControl/segmented-control.d.ts +8 -7
  477. package/dist/components/SegmentedControl/segmented-control.d.ts.map +1 -1
  478. package/dist/components/SegmentedControl/segmented-control.js +31 -20
  479. package/dist/components/SegmentedControl/segmented-control.js.map +1 -1
  480. package/dist/components/Select/index.d.ts +2 -0
  481. package/dist/components/Select/index.d.ts.map +1 -0
  482. package/dist/components/Select/index.js +6 -0
  483. package/dist/components/Select/index.js.map +1 -0
  484. package/dist/components/Select/select.d.ts +70 -13
  485. package/dist/components/Select/select.d.ts.map +1 -1
  486. package/dist/components/Select/select.js +250 -80
  487. package/dist/components/Select/select.js.map +1 -1
  488. package/dist/components/SelectMenu/index.d.ts +2 -0
  489. package/dist/components/SelectMenu/index.d.ts.map +1 -0
  490. package/dist/components/SelectMenu/index.js +8 -0
  491. package/dist/components/SelectMenu/index.js.map +1 -0
  492. package/dist/components/SelectMenu/select-menu.d.ts +60 -10
  493. package/dist/components/SelectMenu/select-menu.d.ts.map +1 -1
  494. package/dist/components/SelectMenu/select-menu.js +208 -93
  495. package/dist/components/SelectMenu/select-menu.js.map +1 -1
  496. package/dist/components/SelectionControl/boolean-value.d.ts +11 -0
  497. package/dist/components/SelectionControl/boolean-value.d.ts.map +1 -0
  498. package/dist/components/SelectionControl/boolean-value.js +23 -0
  499. package/dist/components/SelectionControl/boolean-value.js.map +1 -0
  500. package/dist/components/SelectionControl/index.d.ts +3 -0
  501. package/dist/components/SelectionControl/index.d.ts.map +1 -0
  502. package/dist/components/SelectionControl/index.js +9 -0
  503. package/dist/components/SelectionControl/index.js.map +1 -0
  504. package/dist/components/SelectionControl/selection-item.d.ts +5 -1
  505. package/dist/components/SelectionControl/selection-item.d.ts.map +1 -1
  506. package/dist/components/SelectionControl/selection-item.js +3 -1
  507. package/dist/components/SelectionControl/selection-item.js.map +1 -1
  508. package/dist/components/Separator/index.d.ts +2 -0
  509. package/dist/components/Separator/index.d.ts.map +1 -0
  510. package/dist/components/Separator/index.js +6 -0
  511. package/dist/components/Separator/index.js.map +1 -0
  512. package/dist/components/Separator/separator.d.ts +2 -2
  513. package/dist/components/Separator/separator.js +4 -3
  514. package/dist/components/Separator/separator.js.map +1 -1
  515. package/dist/components/Sheet/index.d.ts +2 -0
  516. package/dist/components/Sheet/index.d.ts.map +1 -0
  517. package/dist/components/Sheet/index.js +18 -0
  518. package/dist/components/Sheet/index.js.map +1 -0
  519. package/dist/components/Sheet/sheet.d.ts +15 -8
  520. package/dist/components/Sheet/sheet.d.ts.map +1 -1
  521. package/dist/components/Sheet/sheet.js +9 -5
  522. package/dist/components/Sheet/sheet.js.map +1 -1
  523. package/dist/components/Sidebar/index.d.ts +2 -0
  524. package/dist/components/Sidebar/index.d.ts.map +1 -0
  525. package/dist/components/Sidebar/index.js +24 -0
  526. package/dist/components/Sidebar/index.js.map +1 -0
  527. package/dist/components/Sidebar/sidebar.d.ts +14 -9
  528. package/dist/components/Sidebar/sidebar.d.ts.map +1 -1
  529. package/dist/components/Sidebar/sidebar.js +49 -29
  530. package/dist/components/Sidebar/sidebar.js.map +1 -1
  531. package/dist/components/Skeleton/index.d.ts +2 -0
  532. package/dist/components/Skeleton/index.d.ts.map +1 -0
  533. package/dist/components/Skeleton/index.js +6 -0
  534. package/dist/components/Skeleton/index.js.map +1 -0
  535. package/dist/components/Skeleton/skeleton.d.ts +2 -2
  536. package/dist/components/Skeleton/skeleton.js +4 -3
  537. package/dist/components/Skeleton/skeleton.js.map +1 -1
  538. package/dist/components/Slider/index.d.ts +2 -0
  539. package/dist/components/Slider/index.d.ts.map +1 -0
  540. package/dist/components/Slider/index.js +7 -0
  541. package/dist/components/Slider/index.js.map +1 -0
  542. package/dist/components/Slider/slider.d.ts +7 -7
  543. package/dist/components/Slider/slider.d.ts.map +1 -1
  544. package/dist/components/Slider/slider.js +38 -16
  545. package/dist/components/Slider/slider.js.map +1 -1
  546. package/dist/components/Steps/index.d.ts +2 -0
  547. package/dist/components/Steps/index.d.ts.map +1 -0
  548. package/dist/components/Steps/index.js +12 -0
  549. package/dist/components/Steps/index.js.map +1 -0
  550. package/dist/components/Steps/steps.d.ts +8 -6
  551. package/dist/components/Steps/steps.d.ts.map +1 -1
  552. package/dist/components/Steps/steps.js +73 -31
  553. package/dist/components/Steps/steps.js.map +1 -1
  554. package/dist/components/Switch/index.d.ts +2 -0
  555. package/dist/components/Switch/index.d.ts.map +1 -0
  556. package/dist/components/Switch/index.js +7 -0
  557. package/dist/components/Switch/index.js.map +1 -0
  558. package/dist/components/Switch/switch.d.ts +20 -18
  559. package/dist/components/Switch/switch.d.ts.map +1 -1
  560. package/dist/components/Switch/switch.js +93 -23
  561. package/dist/components/Switch/switch.js.map +1 -1
  562. package/dist/components/Tabs/index.d.ts +2 -0
  563. package/dist/components/Tabs/index.d.ts.map +1 -0
  564. package/dist/components/Tabs/index.js +10 -0
  565. package/dist/components/Tabs/index.js.map +1 -0
  566. package/dist/components/Tabs/tabs.d.ts +14 -11
  567. package/dist/components/Tabs/tabs.d.ts.map +1 -1
  568. package/dist/components/Tabs/tabs.js +141 -55
  569. package/dist/components/Tabs/tabs.js.map +1 -1
  570. package/dist/components/Tag/index.d.ts +2 -0
  571. package/dist/components/Tag/index.d.ts.map +1 -0
  572. package/dist/components/Tag/index.js +7 -0
  573. package/dist/components/Tag/index.js.map +1 -0
  574. package/dist/components/Tag/tag.d.ts +39 -23
  575. package/dist/components/Tag/tag.d.ts.map +1 -1
  576. package/dist/components/Tag/tag.js +70 -63
  577. package/dist/components/Tag/tag.js.map +1 -1
  578. package/dist/components/Textarea/index.d.ts +2 -0
  579. package/dist/components/Textarea/index.d.ts.map +1 -0
  580. package/dist/components/Textarea/index.js +7 -0
  581. package/dist/components/Textarea/index.js.map +1 -0
  582. package/dist/components/Textarea/textarea.d.ts +23 -16
  583. package/dist/components/Textarea/textarea.d.ts.map +1 -1
  584. package/dist/components/Textarea/textarea.js +110 -72
  585. package/dist/components/Textarea/textarea.js.map +1 -1
  586. package/dist/components/TimePicker/index.d.ts +2 -0
  587. package/dist/components/TimePicker/index.d.ts.map +1 -0
  588. package/dist/components/TimePicker/index.js +6 -0
  589. package/dist/components/TimePicker/index.js.map +1 -0
  590. package/dist/components/TimePicker/time-columns.d.ts.map +1 -1
  591. package/dist/components/TimePicker/time-columns.js +43 -36
  592. package/dist/components/TimePicker/time-columns.js.map +1 -1
  593. package/dist/components/TimePicker/time-picker.d.ts +8 -7
  594. package/dist/components/TimePicker/time-picker.d.ts.map +1 -1
  595. package/dist/components/TimePicker/time-picker.js +71 -53
  596. package/dist/components/TimePicker/time-picker.js.map +1 -1
  597. package/dist/components/Toast/index.d.ts +2 -0
  598. package/dist/components/Toast/index.d.ts.map +1 -0
  599. package/dist/components/Toast/index.js +7 -0
  600. package/dist/components/Toast/index.js.map +1 -0
  601. package/dist/components/Toast/toast.d.ts +2 -2
  602. package/dist/components/Toast/toast.d.ts.map +1 -1
  603. package/dist/components/Toast/toast.js +9 -5
  604. package/dist/components/Toast/toast.js.map +1 -1
  605. package/dist/components/Tooltip/index.d.ts +2 -0
  606. package/dist/components/Tooltip/index.d.ts.map +1 -0
  607. package/dist/components/Tooltip/index.js +9 -0
  608. package/dist/components/Tooltip/index.js.map +1 -0
  609. package/dist/components/Tooltip/tooltip.d.ts +2 -2
  610. package/dist/components/Tooltip/tooltip.d.ts.map +1 -1
  611. package/dist/components/Tooltip/tooltip.js +57 -25
  612. package/dist/components/Tooltip/tooltip.js.map +1 -1
  613. package/dist/components/TreeView/index.d.ts +2 -0
  614. package/dist/components/TreeView/index.d.ts.map +1 -0
  615. package/dist/components/TreeView/index.js +8 -0
  616. package/dist/components/TreeView/index.js.map +1 -0
  617. package/dist/components/TreeView/tree-view.d.ts +70 -13
  618. package/dist/components/TreeView/tree-view.d.ts.map +1 -1
  619. package/dist/components/TreeView/tree-view.js +273 -24
  620. package/dist/components/TreeView/tree-view.js.map +1 -1
  621. package/dist/hooks/use-controllable.d.ts.map +1 -1
  622. package/dist/hooks/use-controllable.js +4 -2
  623. package/dist/hooks/use-controllable.js.map +1 -1
  624. package/dist/hooks/use-is-touch-device.d.ts.map +1 -1
  625. package/dist/hooks/use-is-touch-device.js +3 -1
  626. package/dist/hooks/use-is-touch-device.js.map +1 -1
  627. package/dist/hooks/use-overflow-items.d.ts +10 -6
  628. package/dist/hooks/use-overflow-items.d.ts.map +1 -1
  629. package/dist/hooks/use-overflow-items.js.map +1 -1
  630. package/dist/hooks/use-truncated.d.ts +27 -0
  631. package/dist/hooks/use-truncated.d.ts.map +1 -0
  632. package/dist/hooks/use-truncated.js +57 -0
  633. package/dist/hooks/use-truncated.js.map +1 -0
  634. package/dist/index.d.ts +119 -67
  635. package/dist/index.d.ts.map +1 -1
  636. package/dist/index.js +130 -160
  637. package/dist/index.js.map +1 -1
  638. package/dist/lib/drag-visual.d.ts +2 -2
  639. package/dist/lib/drag-visual.js.map +1 -1
  640. package/dist/lib/utils.d.ts +1 -0
  641. package/dist/lib/utils.d.ts.map +1 -1
  642. package/dist/lib/utils.js +24 -2
  643. package/dist/lib/utils.js.map +1 -1
  644. package/dist/patterns/element-anatomy/index.d.ts +3 -0
  645. package/dist/patterns/element-anatomy/index.d.ts.map +1 -0
  646. package/dist/patterns/element-anatomy/index.js +22 -0
  647. package/dist/patterns/element-anatomy/index.js.map +1 -0
  648. package/dist/patterns/element-anatomy/item-anatomy.d.ts +29 -13
  649. package/dist/patterns/element-anatomy/item-anatomy.d.ts.map +1 -1
  650. package/dist/patterns/element-anatomy/item-anatomy.js +80 -32
  651. package/dist/patterns/element-anatomy/item-anatomy.js.map +1 -1
  652. package/dist/patterns/element-anatomy/truncated-text.d.ts +27 -0
  653. package/dist/patterns/element-anatomy/truncated-text.d.ts.map +1 -0
  654. package/dist/patterns/element-anatomy/truncated-text.js +16 -0
  655. package/dist/patterns/element-anatomy/truncated-text.js.map +1 -0
  656. package/dist/patterns/header-canonical/chrome-header.d.ts +20 -4
  657. package/dist/patterns/header-canonical/chrome-header.d.ts.map +1 -1
  658. package/dist/patterns/header-canonical/chrome-header.js +4 -2
  659. package/dist/patterns/header-canonical/chrome-header.js.map +1 -1
  660. package/dist/patterns/header-canonical/index.d.ts +2 -0
  661. package/dist/patterns/header-canonical/index.d.ts.map +1 -0
  662. package/dist/patterns/header-canonical/index.js +6 -0
  663. package/dist/patterns/header-canonical/index.js.map +1 -0
  664. package/dist/patterns/horizontal-overflow/index.d.ts +2 -0
  665. package/dist/patterns/horizontal-overflow/index.d.ts.map +1 -0
  666. package/dist/patterns/horizontal-overflow/index.js +14 -0
  667. package/dist/patterns/horizontal-overflow/index.js.map +1 -0
  668. package/dist/patterns/overlay-surface/index.d.ts +2 -0
  669. package/dist/patterns/overlay-surface/index.d.ts.map +1 -0
  670. package/dist/patterns/overlay-surface/index.js +8 -0
  671. package/dist/patterns/overlay-surface/index.js.map +1 -0
  672. package/dist/patterns/overlay-surface/overlay-surface.d.ts +12 -2
  673. package/dist/patterns/overlay-surface/overlay-surface.d.ts.map +1 -1
  674. package/dist/patterns/overlay-surface/overlay-surface.js +6 -2
  675. package/dist/patterns/overlay-surface/overlay-surface.js.map +1 -1
  676. package/dist/patterns/resize-handle/index.d.ts +2 -0
  677. package/dist/patterns/resize-handle/index.d.ts.map +1 -0
  678. package/dist/patterns/resize-handle/index.js +5 -0
  679. package/dist/patterns/resize-handle/index.js.map +1 -0
  680. package/dist/patterns/resize-handle/resize-handle.d.ts +9 -11
  681. package/dist/patterns/resize-handle/resize-handle.d.ts.map +1 -1
  682. package/dist/patterns/resize-handle/resize-handle.js +3 -6
  683. package/dist/patterns/resize-handle/resize-handle.js.map +1 -1
  684. package/dist/story-governance/category-matrix.d.ts +35 -0
  685. package/dist/story-governance/category-matrix.d.ts.map +1 -0
  686. package/dist/tokens/categorical-color.d.ts +60 -0
  687. package/dist/tokens/categorical-color.d.ts.map +1 -0
  688. package/dist/tokens/categorical-color.js +125 -0
  689. package/dist/tokens/categorical-color.js.map +1 -0
  690. package/dist/tokens/motion/motion.d.ts +8 -7
  691. package/dist/tokens/motion/motion.d.ts.map +1 -1
  692. package/dist/tokens/motion/motion.js +6 -6
  693. package/dist/tokens/motion/motion.js.map +1 -1
  694. package/dist/tokens/motion/overlay-motion.d.ts +19 -0
  695. package/dist/tokens/motion/overlay-motion.d.ts.map +1 -0
  696. package/dist/tokens/motion/overlay-motion.js +9 -0
  697. package/dist/tokens/motion/overlay-motion.js.map +1 -0
  698. package/dist/tokens/uiSize/icon-size.d.ts +3 -4
  699. package/dist/tokens/uiSize/icon-size.d.ts.map +1 -1
  700. package/dist/tokens/uiSize/icon-size.js +5 -0
  701. package/dist/tokens/uiSize/icon-size.js.map +1 -0
  702. package/ds-canonical/adapters/claude/agents/README.md +58 -0
  703. package/ds-canonical/adapters/claude/agents/canonical-reviewer.md +14 -0
  704. package/ds-canonical/adapters/claude-root-instructions.md +24 -0
  705. package/ds-canonical/adapters/claude-settings-base.json +169 -0
  706. package/ds-canonical/commands/README.md +21 -0
  707. package/ds-canonical/fork/AGENTS.md +127 -0
  708. package/ds-canonical/fork/CLAUDE.md +54 -0
  709. package/ds-canonical/fork/codex/agents/skills/bug-fix-rhythm/SKILL.md +207 -0
  710. package/ds-canonical/fork/codex/agents/skills/code-quality-audit/SKILL.md +71 -0
  711. package/ds-canonical/fork/codex/agents/skills/delivery-handoff/SKILL.md +244 -0
  712. package/ds-canonical/fork/codex/agents/skills/delivery-handoff/references/flow-diagram.md +180 -0
  713. package/ds-canonical/fork/codex/agents/skills/delivery-handoff/references/handoff-template.md +177 -0
  714. package/ds-canonical/fork/codex/agents/skills/delivery-handoff/references/inventory-checklist.md +196 -0
  715. package/ds-canonical/fork/codex/agents/skills/independent-review/SKILL.md +43 -0
  716. package/ds-canonical/fork/codex/agents/skills/independent-review/agents/openai.yaml +4 -0
  717. package/ds-canonical/fork/codex/agents/skills/independent-review/references/evidence-contract.md +24 -0
  718. package/ds-canonical/fork/codex/agents/skills/performance-audit/SKILL.md +114 -0
  719. package/ds-canonical/fork/codex/agents/skills/product-ui-audit/SKILL.md +244 -0
  720. package/ds-canonical/fork/codex/agents/skills/product-ui-audit/references/audit-checks.md +250 -0
  721. package/ds-canonical/fork/codex/agents/skills/product-ui-audit/references/common-misuses.md +329 -0
  722. package/ds-canonical/fork/codex/agents/skills/product-ui-audit/references/report-template.md +163 -0
  723. package/ds-canonical/fork/codex/agents/skills/propose-options/SKILL.md +190 -0
  724. package/ds-canonical/fork/codex/agents/skills/prototype/SKILL.md +246 -0
  725. package/ds-canonical/fork/codex/agents/skills/prototype/references/audit-checks.md +39 -0
  726. package/ds-canonical/fork/codex/agents/skills/prototype/references/benchmark-sources.md +94 -0
  727. package/ds-canonical/fork/codex/agents/skills/prototype/references/checkpoints.md +200 -0
  728. package/ds-canonical/fork/codex/agents/skills/prototype/references/evaluation-matrix.md +142 -0
  729. package/ds-canonical/fork/codex/agents/skills/prototype/references/ooux-template.md +198 -0
  730. package/ds-canonical/fork/codex/agents/skills/prototype/references/proposal-template.md +230 -0
  731. package/ds-canonical/fork/codex/agents/skills/scan-similar-bugs/SKILL.md +212 -0
  732. package/ds-canonical/fork/codex/agents/skills/ux-audit/SKILL.md +135 -0
  733. package/ds-canonical/fork/codex/agents/skills/visual-audit/SKILL.md +259 -0
  734. package/ds-canonical/fork/codex/agents/skills/visual-audit/output/.gitkeep +0 -0
  735. package/ds-canonical/fork/codex/agents/skills/visual-audit/references/audit-architecture.md +101 -0
  736. package/ds-canonical/fork/codex/agents/skills/visual-audit/references/visual-checklist.md +297 -0
  737. package/ds-canonical/fork/codex/agents/skills/visual-audit/references/world-class-benchmarks.md +198 -0
  738. package/ds-canonical/fork/codex/hooks.json +57 -0
  739. package/ds-canonical/fork/common/closed-tool-execution.mjs +1001 -0
  740. package/ds-canonical/fork/common/instruction.md +127 -0
  741. package/ds-canonical/fork/consumer/governance-check.mjs +3147 -0
  742. package/ds-canonical/fork/consumer/lib/closed-tool-execution.mjs +1001 -0
  743. package/ds-canonical/fork/consumer/lock.json +188 -0
  744. package/ds-canonical/fork/consumer/lock.schema.json +338 -0
  745. package/ds-canonical/fork/consumer/managed-files/0235cf6b3fd402a3717881dc205b5bf77aed7632e7d7d6f1811a40e3033bd816.blob +145 -0
  746. package/ds-canonical/fork/consumer/managed-files/145aab4b4fc470fc9ba7679b4a1d87d4f6a6d604940bd40f8d675c8af696498f.blob +47 -0
  747. package/ds-canonical/fork/consumer/managed-files/189e551431181e4a88783c02130d2787b801ef731c86e35bcde89a7313aa020e.blob +149 -0
  748. package/ds-canonical/fork/consumer/managed-files/24ad71c8613ddcf6fd23818cb3bb477a1fb6d83af4550b0bad43099813088686.blob +28 -0
  749. package/ds-canonical/fork/consumer/managed-files/2d1ef5617a5ce3c39ad9aae1c42af7d199f9270c0a0ccb490b63d62dbc6913db.blob +1001 -0
  750. package/ds-canonical/fork/consumer/managed-files/3625e02235cf166a50649a4d704cfb68fead69d0e168c481df013ebae9f6be25.blob +1412 -0
  751. package/ds-canonical/fork/consumer/managed-files/3ddedc67b464bdfe3dde9803a2d917920c96d633678b802eee638a44cd47366a.blob +8 -0
  752. package/ds-canonical/fork/consumer/managed-files/423729840acdd43c812f17c245b871716c6b60f76e4d3e94864d0e34a815bf8d.blob +348 -0
  753. package/ds-canonical/fork/consumer/managed-files/46f10bc55cdfdf834d0749eebff42ea0bb8576f361b36d2b6ba1851354c50150.blob +487 -0
  754. package/ds-canonical/fork/consumer/managed-files/475fba657eaeb8abd88f60635f3eadab27a9d0d3114ba4fffc65f43a2a0fe6e2.blob +124 -0
  755. package/ds-canonical/fork/consumer/managed-files/61c6aca6d7f04bedbf556eaa9d3043681fe48cbe0e93a8ccb1d69a7c5e23fdcf.blob +113 -0
  756. package/ds-canonical/fork/consumer/managed-files/63061e05969667005020166ea2ae7df3c96663f7a928e7dd3eebc1471022df56.blob +2454 -0
  757. package/ds-canonical/fork/consumer/managed-files/65410b66e8799a560e07b71779c186fed2a0ef50575ac44745df7a0938a9c2b4.blob +317 -0
  758. package/ds-canonical/fork/consumer/managed-files/6929a3c8bb4d69c507720b4754aeb339c6cbb8ff655e0a381d76606d64695e38.blob +393 -0
  759. package/ds-canonical/fork/consumer/managed-files/6b746628ac11fcccbe277ef6fea94cc2a7b90ea2822e83536eae80d5ee4b3fa5.blob +167 -0
  760. package/ds-canonical/fork/consumer/managed-files/76d485470d30ff014afacf7ce643763de9f4f956d9fc8128dbc1814774cf2e63.blob +671 -0
  761. package/ds-canonical/fork/consumer/managed-files/7937321877e5c34c27dae36c0d507d21cd42fa3f46a8f11a284b8b4a52b6faa4.blob +84 -0
  762. package/ds-canonical/fork/consumer/managed-files/794bb911ba8ebef58ab0d44a55b9968a19d2c62bcfb310b1ee3a84166f087f21.blob +880 -0
  763. package/ds-canonical/fork/consumer/managed-files/7b17835d0ceb17cdcdcaf930540a3e5d0943a34a747ac43c12ca8cd485c11581.blob +44 -0
  764. package/ds-canonical/fork/consumer/managed-files/7eb6cc60abfdabaf6617c336058fad1454ccde08889295767bfd9b7fd153cc6e.blob +778 -0
  765. package/ds-canonical/fork/consumer/managed-files/81037efa5b3b9f4a875704005fb268acdc9233bb901f44902e4e37e1da92b8e3.blob +46 -0
  766. package/ds-canonical/fork/consumer/managed-files/884721550b56308812b20917adac7a12f36fdb4ecda6b02460a7f5a219c0c966.blob +78 -0
  767. package/ds-canonical/fork/consumer/managed-files/91f414b9462ddc1e4be1d4c6ca4ac7a7340a6eec9e98ee109cbc049d3b354b6a.blob +36 -0
  768. package/ds-canonical/fork/consumer/managed-files/92e4828cdcb96ff0d01daa16f6885f24045a8e72820665650f2a1890dc3a446c.blob +121 -0
  769. package/ds-canonical/fork/consumer/managed-files/93a89f16f6717d1e4e4e27ec20ef916e3355c7aa890ca74cd9b12db30d8a899f.blob +36 -0
  770. package/ds-canonical/fork/consumer/managed-files/974521d6b8fe796ea4c58b3c78b0c2b8a1be262b97100d77aaf4cc9c7724bcab.blob +45 -0
  771. package/ds-canonical/fork/consumer/managed-files/9791c85388d2e2e2bd564e2550fadc3351c4c960a47ce838098afcba7544eb90.blob +959 -0
  772. package/ds-canonical/fork/consumer/managed-files/a448d2222133335c30e6fda5116e26a40db3283a19d62ccc0663c30d272262a7.blob +174 -0
  773. package/ds-canonical/fork/consumer/managed-files/ab072e7f2eca51f0e18a5e18c4b333260ee5d219a12cc6df5bb2d683f0b2734d.blob +2636 -0
  774. package/ds-canonical/fork/consumer/managed-files/bc44cabad181f766611dab6a8f52d81100afadd50ac59799015e8ba7bf46d9eb.blob +597 -0
  775. package/ds-canonical/fork/consumer/managed-files/c4aa767f11714467de0038a2149cf78074baddc17fc6a9e074b6aed7544c6f3c.blob +80 -0
  776. package/ds-canonical/fork/consumer/managed-files/c893e9b734b162f4c631fef871128c16a9ab565f796a0e76d7f320f821f220f5.blob +41 -0
  777. package/ds-canonical/fork/consumer/managed-files/cd9c61f8ff24fb9bcc3663e346e2cfa419cfb84e02aae18d3dc66dd192681696.blob +9 -0
  778. package/ds-canonical/fork/consumer/managed-files/da2ad2737315d25a5300905ddefd62f1695056a8a1af155c5b34170ad9923bce.blob +38 -0
  779. package/ds-canonical/fork/consumer/managed-files/e1b11160d6c4043002d2cbff6d9a4ae551698a96137773c4244dadfac152fcb0.blob +222 -0
  780. package/ds-canonical/fork/consumer/managed-files/e26057408661597aac4a57cdf7e30e2f9d0afb1b9a2dbbb692c3805cd9028ca5.blob +250 -0
  781. package/ds-canonical/fork/consumer/managed-files/e68ae1915965d8e17d4b2441c00c2b97fe062ea308ae8535c9eebb2fc16fa245.blob +20 -0
  782. package/ds-canonical/fork/consumer/managed-files/e71c65f45c6af7ce12b6b3c0d8028f185da5b719e2050c9b2a6b243d41ae4878.blob +182 -0
  783. package/ds-canonical/fork/consumer/managed-files/e813096d69c49812e40e00be9ac8fa14d77f0ec1f97ab4c45cb096b3bedd35de.blob +3 -0
  784. package/ds-canonical/fork/consumer/managed-files/e930ebca6fd8eeb30802aac0930efae7bcc44cc0996f24de07c11ca6a081fedf.blob +277 -0
  785. package/ds-canonical/fork/consumer/managed-files/ea94e914d5c8acb84ad7660e5bda0f01b6ccc8cf96b0f6b1ce048f8938d0f5b5.blob +47 -0
  786. package/ds-canonical/fork/consumer/managed-files/f4db6e616d5229aa7e700c6a3ace022cb9d90baae74e38ca65fce617f18e0d9b.blob +110 -0
  787. package/ds-canonical/fork/consumer/managed-files/faa128c26102415dc5345e68698efbbd28a395c35ee278dceae044cf430692b2.blob +11 -0
  788. package/ds-canonical/fork/governance.lock +1688 -0
  789. package/ds-canonical/fork/hooks/_log-fire.sh +143 -0
  790. package/ds-canonical/fork/hooks/block_prototype_imports.py +241 -0
  791. package/ds-canonical/fork/hooks/check_chrome_header_avatar_canonical.sh +106 -0
  792. package/ds-canonical/fork/hooks/check_consumer_app_invariants.sh +532 -0
  793. package/ds-canonical/fork/hooks/check_consumer_code_quality.sh +173 -0
  794. package/ds-canonical/fork/hooks/check_ds_anchor_preflight.sh +219 -0
  795. package/ds-canonical/fork/hooks/check_dynamic_tailwind_class.sh +57 -0
  796. package/ds-canonical/fork/hooks/check_escape_marker_abuse.sh +211 -0
  797. package/ds-canonical/fork/hooks/check_field_family_invariants.sh +376 -0
  798. package/ds-canonical/fork/hooks/check_fork_product_quality.sh +38 -0
  799. package/ds-canonical/fork/hooks/check_item_list_gap.sh +56 -0
  800. package/ds-canonical/fork/hooks/check_layout_space_magic_numbers.sh +138 -0
  801. package/ds-canonical/fork/hooks/check_opacity_token_usage.sh +319 -0
  802. package/ds-canonical/fork/hooks/check_pattern_invariants.sh +294 -0
  803. package/ds-canonical/fork/hooks/check_sidebar_menu_button_implicit_wrap.sh +99 -0
  804. package/ds-canonical/fork/hooks/check_story_determinism.sh +39 -0
  805. package/ds-canonical/fork/hooks/check_story_invariants.sh +400 -0
  806. package/ds-canonical/fork/hooks/check_tabs_content_chrome_body_double_gap.sh +241 -0
  807. package/ds-canonical/fork/hooks/check_tailwind_wildcard_in_docs.sh +86 -0
  808. package/ds-canonical/fork/hooks/inject_deploy_url_after_push.sh +333 -0
  809. package/ds-canonical/fork/hooks/lib/_hook_integrity.sh +158 -0
  810. package/ds-canonical/fork/hooks/lib/_provider_paths.sh +162 -0
  811. package/ds-canonical/fork/launchers/approval-evidence.mjs +1131 -0
  812. package/ds-canonical/fork/launchers/authority-decision-evidence.mjs +413 -0
  813. package/ds-canonical/fork/launchers/canonical-order.mjs +8 -0
  814. package/ds-canonical/fork/launchers/fork-governance-dispatcher.sh +154 -0
  815. package/ds-canonical/fork/launchers/format-provider-hook-output.mjs +25 -0
  816. package/ds-canonical/fork/launchers/independent-review.mjs +490 -0
  817. package/ds-canonical/fork/launchers/inject_fork_governance_preamble.sh +99 -0
  818. package/ds-canonical/fork/launchers/normalize-provider-event.mjs +355 -0
  819. package/ds-canonical/fork/launchers/product-hook-dispatch-runtime.mjs +1067 -0
  820. package/ds-canonical/fork/launchers/provider-hook-normalization.mjs +1640 -0
  821. package/ds-canonical/fork/launchers/provider-hook-output-transport.mjs +525 -0
  822. package/ds-canonical/fork/launchers/settings-hooks.json +35 -0
  823. package/ds-canonical/fork/manifest.json +1983 -0
  824. package/ds-canonical/fork/providers/claude/hook-config.json +327 -0
  825. package/ds-canonical/fork/providers/claude/instruction.md +54 -0
  826. package/ds-canonical/fork/providers/claude/skills/bug-fix-rhythm/SKILL.md +207 -0
  827. package/ds-canonical/fork/providers/claude/skills/code-quality-audit/SKILL.md +71 -0
  828. package/ds-canonical/fork/providers/claude/skills/delivery-handoff/SKILL.md +244 -0
  829. package/ds-canonical/fork/providers/claude/skills/delivery-handoff/references/flow-diagram.md +180 -0
  830. package/ds-canonical/fork/providers/claude/skills/delivery-handoff/references/handoff-template.md +177 -0
  831. package/ds-canonical/fork/providers/claude/skills/delivery-handoff/references/inventory-checklist.md +196 -0
  832. package/ds-canonical/fork/providers/claude/skills/independent-review/SKILL.md +43 -0
  833. package/ds-canonical/fork/providers/claude/skills/independent-review/agents/openai.yaml +4 -0
  834. package/ds-canonical/fork/providers/claude/skills/independent-review/references/evidence-contract.md +24 -0
  835. package/ds-canonical/fork/providers/claude/skills/performance-audit/SKILL.md +114 -0
  836. package/ds-canonical/fork/providers/claude/skills/product-ui-audit/SKILL.md +244 -0
  837. package/ds-canonical/fork/providers/claude/skills/product-ui-audit/references/audit-checks.md +250 -0
  838. package/ds-canonical/fork/providers/claude/skills/product-ui-audit/references/common-misuses.md +329 -0
  839. package/ds-canonical/fork/providers/claude/skills/product-ui-audit/references/report-template.md +163 -0
  840. package/ds-canonical/fork/providers/claude/skills/propose-options/SKILL.md +190 -0
  841. package/ds-canonical/fork/providers/claude/skills/prototype/SKILL.md +246 -0
  842. package/ds-canonical/fork/providers/claude/skills/prototype/references/audit-checks.md +39 -0
  843. package/ds-canonical/fork/providers/claude/skills/prototype/references/benchmark-sources.md +94 -0
  844. package/ds-canonical/fork/providers/claude/skills/prototype/references/checkpoints.md +200 -0
  845. package/ds-canonical/fork/providers/claude/skills/prototype/references/evaluation-matrix.md +142 -0
  846. package/ds-canonical/fork/providers/claude/skills/prototype/references/ooux-template.md +198 -0
  847. package/ds-canonical/fork/providers/claude/skills/prototype/references/proposal-template.md +230 -0
  848. package/ds-canonical/fork/providers/claude/skills/scan-similar-bugs/SKILL.md +212 -0
  849. package/ds-canonical/fork/providers/claude/skills/ux-audit/SKILL.md +135 -0
  850. package/ds-canonical/fork/providers/claude/skills/visual-audit/SKILL.md +259 -0
  851. package/ds-canonical/fork/providers/claude/skills/visual-audit/output/.gitkeep +0 -0
  852. package/ds-canonical/fork/providers/claude/skills/visual-audit/references/audit-architecture.md +101 -0
  853. package/ds-canonical/fork/providers/claude/skills/visual-audit/references/visual-checklist.md +297 -0
  854. package/ds-canonical/fork/providers/claude/skills/visual-audit/references/world-class-benchmarks.md +198 -0
  855. package/ds-canonical/fork/providers/codex/hook-config.json +57 -0
  856. package/ds-canonical/fork/providers/codex/skills/bug-fix-rhythm/SKILL.md +207 -0
  857. package/ds-canonical/fork/providers/codex/skills/code-quality-audit/SKILL.md +71 -0
  858. package/ds-canonical/fork/providers/codex/skills/delivery-handoff/SKILL.md +244 -0
  859. package/ds-canonical/fork/providers/codex/skills/delivery-handoff/references/flow-diagram.md +180 -0
  860. package/ds-canonical/fork/providers/codex/skills/delivery-handoff/references/handoff-template.md +177 -0
  861. package/ds-canonical/fork/providers/codex/skills/delivery-handoff/references/inventory-checklist.md +196 -0
  862. package/ds-canonical/fork/providers/codex/skills/independent-review/SKILL.md +43 -0
  863. package/ds-canonical/fork/providers/codex/skills/independent-review/agents/openai.yaml +4 -0
  864. package/ds-canonical/fork/providers/codex/skills/independent-review/references/evidence-contract.md +24 -0
  865. package/ds-canonical/fork/providers/codex/skills/performance-audit/SKILL.md +114 -0
  866. package/ds-canonical/fork/providers/codex/skills/product-ui-audit/SKILL.md +244 -0
  867. package/ds-canonical/fork/providers/codex/skills/product-ui-audit/references/audit-checks.md +250 -0
  868. package/ds-canonical/fork/providers/codex/skills/product-ui-audit/references/common-misuses.md +329 -0
  869. package/ds-canonical/fork/providers/codex/skills/product-ui-audit/references/report-template.md +163 -0
  870. package/ds-canonical/fork/providers/codex/skills/propose-options/SKILL.md +190 -0
  871. package/ds-canonical/fork/providers/codex/skills/prototype/SKILL.md +246 -0
  872. package/ds-canonical/fork/providers/codex/skills/prototype/references/audit-checks.md +39 -0
  873. package/ds-canonical/fork/providers/codex/skills/prototype/references/benchmark-sources.md +94 -0
  874. package/ds-canonical/fork/providers/codex/skills/prototype/references/checkpoints.md +200 -0
  875. package/ds-canonical/fork/providers/codex/skills/prototype/references/evaluation-matrix.md +142 -0
  876. package/ds-canonical/fork/providers/codex/skills/prototype/references/ooux-template.md +198 -0
  877. package/ds-canonical/fork/providers/codex/skills/prototype/references/proposal-template.md +230 -0
  878. package/ds-canonical/fork/providers/codex/skills/scan-similar-bugs/SKILL.md +212 -0
  879. package/ds-canonical/fork/providers/codex/skills/ux-audit/SKILL.md +135 -0
  880. package/ds-canonical/fork/providers/codex/skills/visual-audit/SKILL.md +259 -0
  881. package/ds-canonical/fork/providers/codex/skills/visual-audit/output/.gitkeep +0 -0
  882. package/ds-canonical/fork/providers/codex/skills/visual-audit/references/audit-architecture.md +101 -0
  883. package/ds-canonical/fork/providers/codex/skills/visual-audit/references/visual-checklist.md +297 -0
  884. package/ds-canonical/fork/providers/codex/skills/visual-audit/references/world-class-benchmarks.md +198 -0
  885. package/ds-canonical/fork/references/story-baseline-registry.json +123 -0
  886. package/ds-canonical/fork/references/story-baseline-registry.schema.json +145 -0
  887. package/ds-canonical/fork/references/utility-registry.json +377 -0
  888. package/ds-canonical/fork/references/utility-registry.schema.json +373 -0
  889. package/ds-canonical/fork/review/canonical-order.mjs +8 -0
  890. package/ds-canonical/fork/review/provider-review-binding.mjs +2377 -0
  891. package/ds-canonical/fork/skills/bug-fix-rhythm/SKILL.md +196 -0
  892. package/ds-canonical/fork/skills/code-quality-audit/SKILL.md +69 -0
  893. package/ds-canonical/fork/skills/delivery-handoff/SKILL.md +242 -0
  894. package/ds-canonical/fork/skills/delivery-handoff/references/flow-diagram.md +180 -0
  895. package/ds-canonical/fork/skills/delivery-handoff/references/handoff-template.md +177 -0
  896. package/ds-canonical/fork/skills/delivery-handoff/references/inventory-checklist.md +196 -0
  897. package/ds-canonical/fork/skills/independent-review/SKILL.md +37 -0
  898. package/ds-canonical/fork/skills/independent-review/agents/openai.yaml +4 -0
  899. package/ds-canonical/fork/skills/independent-review/references/evidence-contract.md +24 -0
  900. package/ds-canonical/fork/skills/performance-audit/SKILL.md +112 -0
  901. package/ds-canonical/fork/skills/product-ui-audit/SKILL.md +242 -0
  902. package/ds-canonical/fork/skills/product-ui-audit/references/audit-checks.md +250 -0
  903. package/ds-canonical/fork/skills/product-ui-audit/references/common-misuses.md +329 -0
  904. package/ds-canonical/fork/skills/product-ui-audit/references/report-template.md +163 -0
  905. package/ds-canonical/fork/skills/propose-options/SKILL.md +179 -0
  906. package/ds-canonical/fork/skills/prototype/SKILL.md +244 -0
  907. package/ds-canonical/fork/skills/prototype/references/audit-checks.md +39 -0
  908. package/ds-canonical/fork/skills/prototype/references/benchmark-sources.md +94 -0
  909. package/ds-canonical/fork/skills/prototype/references/checkpoints.md +200 -0
  910. package/ds-canonical/fork/skills/prototype/references/evaluation-matrix.md +142 -0
  911. package/ds-canonical/fork/skills/prototype/references/ooux-template.md +198 -0
  912. package/ds-canonical/fork/skills/prototype/references/proposal-template.md +230 -0
  913. package/ds-canonical/fork/skills/scan-similar-bugs/SKILL.md +201 -0
  914. package/ds-canonical/fork/skills/ux-audit/SKILL.md +133 -0
  915. package/ds-canonical/fork/skills/visual-audit/SKILL.md +248 -0
  916. package/ds-canonical/fork/skills/visual-audit/output/.gitkeep +0 -0
  917. package/ds-canonical/fork/skills/visual-audit/references/audit-architecture.md +101 -0
  918. package/ds-canonical/fork/skills/visual-audit/references/visual-checklist.md +297 -0
  919. package/ds-canonical/fork/skills/visual-audit/references/world-class-benchmarks.md +198 -0
  920. package/ds-canonical/hooks/README.md +159 -0
  921. package/ds-canonical/hooks/_log-fire.sh +143 -0
  922. package/ds-canonical/hooks/auto_regen_ds_barrel.sh +90 -0
  923. package/ds-canonical/hooks/block_prototype_imports.py +241 -0
  924. package/ds-canonical/hooks/check_audit_post_report_validator.sh +237 -0
  925. package/ds-canonical/hooks/check_audit_sample_escape.sh +76 -0
  926. package/ds-canonical/hooks/check_benchmark_citation.sh +108 -0
  927. package/ds-canonical/hooks/check_canonical_propagation.sh +248 -0
  928. package/ds-canonical/hooks/check_chrome_header_avatar_canonical.sh +106 -0
  929. package/ds-canonical/hooks/check_codex_brief_invariants.sh +192 -0
  930. package/ds-canonical/hooks/check_codex_collab_5step.sh +114 -0
  931. package/ds-canonical/hooks/check_consumer_app_invariants.sh +532 -0
  932. package/ds-canonical/hooks/check_consumer_code_quality.sh +173 -0
  933. package/ds-canonical/hooks/check_datatable_invariants.sh +261 -0
  934. package/ds-canonical/hooks/check_dim_count_drift.sh +73 -0
  935. package/ds-canonical/hooks/check_ds_anchor_preflight.sh +219 -0
  936. package/ds-canonical/hooks/check_dynamic_tailwind_class.sh +57 -0
  937. package/ds-canonical/hooks/check_escape_marker_abuse.sh +211 -0
  938. package/ds-canonical/hooks/check_field_controls_contracts.sh +139 -0
  939. package/ds-canonical/hooks/check_field_family_invariants.sh +376 -0
  940. package/ds-canonical/hooks/check_file_size_budget.sh +78 -0
  941. package/ds-canonical/hooks/check_full_story_visual_interaction_sweep.sh +111 -0
  942. package/ds-canonical/hooks/check_item_list_gap.sh +56 -0
  943. package/ds-canonical/hooks/check_layout_space_magic_numbers.sh +138 -0
  944. package/ds-canonical/hooks/check_main_branch_workbench.sh +52 -0
  945. package/ds-canonical/hooks/check_naming_and_abstraction.sh +176 -0
  946. package/ds-canonical/hooks/check_opacity_token_usage.sh +319 -0
  947. package/ds-canonical/hooks/check_orphan_ds_css.sh +96 -0
  948. package/ds-canonical/hooks/check_overlay_open_focus_escape_probe.sh +110 -0
  949. package/ds-canonical/hooks/check_pattern_invariants.sh +294 -0
  950. package/ds-canonical/hooks/check_peoplepicker_ssot_drift.sh +56 -0
  951. package/ds-canonical/hooks/check_pixel_quantified_audit.sh +55 -0
  952. package/ds-canonical/hooks/check_plugin_fork_health.sh +271 -0
  953. package/ds-canonical/hooks/check_propose_discipline.sh +234 -0
  954. package/ds-canonical/hooks/check_propose_pre_grep_verify.sh +72 -0
  955. package/ds-canonical/hooks/check_propose_without_benchmark.sh +71 -0
  956. package/ds-canonical/hooks/check_select_all_canonical.sh +58 -0
  957. package/ds-canonical/hooks/check_sidebar_menu_button_implicit_wrap.sh +99 -0
  958. package/ds-canonical/hooks/check_solo_workflow.sh +248 -0
  959. package/ds-canonical/hooks/check_spec_class_drift.sh +102 -0
  960. package/ds-canonical/hooks/check_ssot_header_declaration.sh +56 -0
  961. package/ds-canonical/hooks/check_story_determinism.sh +39 -0
  962. package/ds-canonical/hooks/check_story_invariants.sh +1073 -0
  963. package/ds-canonical/hooks/check_storybook_addon_packaging.sh +201 -0
  964. package/ds-canonical/hooks/check_substantive_edit_approval_preflight.sh +184 -0
  965. package/ds-canonical/hooks/check_tabs_content_chrome_body_double_gap.sh +241 -0
  966. package/ds-canonical/hooks/check_tailwind_wildcard_in_docs.sh +86 -0
  967. package/ds-canonical/hooks/check_wrapper_primitive_schema_drift.sh +107 -0
  968. package/ds-canonical/hooks/chrome_header_dispatcher.sh +105 -0
  969. package/ds-canonical/hooks/enforce_home_charter.sh +65 -0
  970. package/ds-canonical/hooks/governance_control_plane.sh +15 -0
  971. package/ds-canonical/hooks/inject_deploy_url_after_push.sh +333 -0
  972. package/ds-canonical/hooks/inject_pending_self_audit.sh +251 -0
  973. package/ds-canonical/hooks/lib/_app_shell_primary_header_consistency.sh +148 -0
  974. package/ds-canonical/hooks/lib/_approval_re.sh +32 -0
  975. package/ds-canonical/hooks/lib/_chrome_header_handcraft.sh +121 -0
  976. package/ds-canonical/hooks/lib/_code_quality.sh +73 -0
  977. package/ds-canonical/hooks/lib/_cva_default_sync.sh +67 -0
  978. package/ds-canonical/hooks/lib/_governance_coverage_check.sh +76 -0
  979. package/ds-canonical/hooks/lib/_hardcoded_strings.sh +166 -0
  980. package/ds-canonical/hooks/lib/_header_with_tabs_border.sh +107 -0
  981. package/ds-canonical/hooks/lib/_hook_integrity.sh +158 -0
  982. package/ds-canonical/hooks/lib/_layout_space_canonical.sh +56 -0
  983. package/ds-canonical/hooks/lib/_overlay_handcraft.sh +160 -0
  984. package/ds-canonical/hooks/lib/_person_data_richness.sh +42 -0
  985. package/ds-canonical/hooks/lib/_provider_paths.sh +162 -0
  986. package/ds-canonical/hooks/lib/_story_compile_drift.sh +48 -0
  987. package/ds-canonical/hooks/lib/_tab_lg_chrome_header_equal.sh +290 -0
  988. package/ds-canonical/hooks/lib/_token_hygiene.sh +130 -0
  989. package/ds-canonical/hooks/lib/approval-evidence.mjs +1131 -0
  990. package/ds-canonical/hooks/lib/audit-report-validator.mjs +118 -0
  991. package/ds-canonical/hooks/lib/provider-marker-regex.mjs +23 -0
  992. package/ds-canonical/hooks/lib/tsx-governance-analysis.mjs +410 -0
  993. package/ds-canonical/hooks/log_governance_fires.sh +82 -0
  994. package/ds-canonical/hooks/log_skill_invokes.sh +42 -0
  995. package/ds-canonical/hooks/post_edit_dispatcher.sh +140 -0
  996. package/ds-canonical/hooks/registrations.json +488 -0
  997. package/ds-canonical/hooks/registrations.schema.json +58 -0
  998. package/ds-canonical/hooks/retired/2026-06-11-prune-merge/check_addon_subdir_ship.sh +76 -0
  999. package/ds-canonical/hooks/retired/2026-06-11-prune-merge/check_consumer_app_story_title.sh +81 -0
  1000. package/ds-canonical/hooks/retired/2026-06-11-prune-merge/check_consumer_ds_primitive_misuse.sh +120 -0
  1001. package/ds-canonical/hooks/retired/2026-06-11-prune-merge/check_consumer_no_ds_catalog.sh +101 -0
  1002. package/ds-canonical/hooks/retired/2026-06-11-prune-merge/check_consumer_story_baseline.sh +76 -0
  1003. package/ds-canonical/hooks/retired/2026-06-11-prune-merge/check_data_table_size_num_to_meta_width.sh +68 -0
  1004. package/ds-canonical/hooks/retired/2026-06-11-prune-merge/check_fork_user_plugin_install.sh +79 -0
  1005. package/ds-canonical/hooks/retired/2026-06-11-prune-merge/check_plugin_freshness.sh +68 -0
  1006. package/ds-canonical/hooks/retired/2026-06-11-prune-merge/check_propose_cite_required.sh +88 -0
  1007. package/ds-canonical/hooks/retired/2026-06-11-prune-merge/check_propose_plain_chinese.sh +74 -0
  1008. package/ds-canonical/hooks/retired/2026-06-11-prune-merge/check_storybook_addon_preset_cjs.sh +87 -0
  1009. package/ds-canonical/hooks/retired/check_anatomy_section_numbering.sh +106 -0
  1010. package/ds-canonical/hooks/retired/check_avatar_hovercard.sh +90 -0
  1011. package/ds-canonical/hooks/retired/check_button_icon_literal.sh.retired-2026-04-28 +38 -0
  1012. package/ds-canonical/hooks/retired/check_container_breathing.sh +142 -0
  1013. package/ds-canonical/hooks/retired/check_governance_compliance.sh +61 -0
  1014. package/ds-canonical/hooks/retired/check_icon_only_padding_formula.sh +104 -0
  1015. package/ds-canonical/hooks/retired/check_item_content_primitive.sh +150 -0
  1016. package/ds-canonical/hooks/retired/check_item_list_gap.sh +153 -0
  1017. package/ds-canonical/hooks/retired/check_sideoffset_canonical.sh +65 -0
  1018. package/ds-canonical/hooks/retired/check_spec_iteration_tag.sh +87 -0
  1019. package/ds-canonical/hooks/retired/check_ssot_consultation.sh +88 -0
  1020. package/ds-canonical/hooks/retired/check_sync_update.sh +20 -0
  1021. package/ds-canonical/hooks/retired/check_third_party_dom_verified.sh +95 -0
  1022. package/ds-canonical/hooks/retired/enforce_home_charter.sh +125 -0
  1023. package/ds-canonical/hooks/retired/post_edit_canonical_interrogate.sh +109 -0
  1024. package/ds-canonical/hooks/retired/pre_edit_spec_check.sh +68 -0
  1025. package/ds-canonical/hooks/retired/pre_new_component_spec.sh +39 -0
  1026. package/ds-canonical/hooks/retired/pre_write_subsumption_check.sh +112 -0
  1027. package/ds-canonical/hooks/retired/stop_meta_self_audit.sh.retired-2026-05-13 +76 -0
  1028. package/ds-canonical/hooks/retired/tests/test_check_anatomy_section_numbering.sh +14 -0
  1029. package/ds-canonical/hooks/retired/tests/test_check_avatar_hovercard.sh +15 -0
  1030. package/ds-canonical/hooks/retired/tests/test_check_container_breathing.sh +15 -0
  1031. package/ds-canonical/hooks/retired/tests/test_check_governance_compliance.sh +15 -0
  1032. package/ds-canonical/hooks/retired/tests/test_check_icon_only_padding_formula.sh +79 -0
  1033. package/ds-canonical/hooks/retired/tests/test_check_item_content_primitive.sh +15 -0
  1034. package/ds-canonical/hooks/retired/tests/test_check_item_list_gap.sh +163 -0
  1035. package/ds-canonical/hooks/retired/tests/test_check_sideoffset_canonical.sh +15 -0
  1036. package/ds-canonical/hooks/retired/tests/test_check_spec_iteration_tag.sh +15 -0
  1037. package/ds-canonical/hooks/retired/tests/test_check_ssot_consultation.sh +15 -0
  1038. package/ds-canonical/hooks/retired/tests/test_check_sync_update.sh +14 -0
  1039. package/ds-canonical/hooks/retired/tests/test_check_third_party_dom_verified.sh +15 -0
  1040. package/ds-canonical/hooks/retired/tests/test_enforce_home_charter.sh +15 -0
  1041. package/ds-canonical/hooks/retired/tests/test_pre_edit_spec_check.sh +15 -0
  1042. package/ds-canonical/hooks/retired/tests/test_pre_new_component_spec.sh +15 -0
  1043. package/ds-canonical/hooks/retired/tests/test_pre_write_subsumption_check.sh +63 -0
  1044. package/ds-canonical/hooks/session_start_governance_check.sh +348 -0
  1045. package/ds-canonical/hooks/stop_audit_content_quality.sh +20 -0
  1046. package/ds-canonical/hooks/stop_extract_canonical_rules.sh +20 -0
  1047. package/ds-canonical/hooks/stop_passive_logging.sh +396 -0
  1048. package/ds-canonical/hooks/stop_self_audit.sh +686 -0
  1049. package/ds-canonical/hooks/tests/KNOWN-BROKEN.md +15 -0
  1050. package/ds-canonical/hooks/tests/fixtures/transcripts/claude-transcript-jsonl-v1.jsonl +3 -0
  1051. package/ds-canonical/hooks/tests/fixtures/transcripts/claude-transcript-jsonl-v2.jsonl +3 -0
  1052. package/ds-canonical/hooks/tests/registration-output-contracts.mjs +151 -0
  1053. package/ds-canonical/hooks/tests/run-all.sh +106 -0
  1054. package/ds-canonical/hooks/tests/test_auto_regen_ds_barrel.sh +224 -0
  1055. package/ds-canonical/hooks/tests/test_block_prototype_imports.sh +315 -0
  1056. package/ds-canonical/hooks/tests/test_check_addon_subdir_ship.sh +171 -0
  1057. package/ds-canonical/hooks/tests/test_check_app_shell_primary_header_consistency.sh +334 -0
  1058. package/ds-canonical/hooks/tests/test_check_audit_post_report_validator.sh +278 -0
  1059. package/ds-canonical/hooks/tests/test_check_audit_sample_escape.sh +93 -0
  1060. package/ds-canonical/hooks/tests/test_check_benchmark_citation.sh +115 -0
  1061. package/ds-canonical/hooks/tests/test_check_canonical_propagation.sh +184 -0
  1062. package/ds-canonical/hooks/tests/test_check_chrome_header_avatar_canonical.sh +198 -0
  1063. package/ds-canonical/hooks/tests/test_check_chrome_header_handcraft.sh +239 -0
  1064. package/ds-canonical/hooks/tests/test_check_code_quality.sh +15 -0
  1065. package/ds-canonical/hooks/tests/test_check_codex_brief_invariants.sh +375 -0
  1066. package/ds-canonical/hooks/tests/test_check_codex_collab_5step.sh +140 -0
  1067. package/ds-canonical/hooks/tests/test_check_consumer_app_invariants.sh +140 -0
  1068. package/ds-canonical/hooks/tests/test_check_consumer_app_story_title.sh +164 -0
  1069. package/ds-canonical/hooks/tests/test_check_consumer_code_quality.sh +86 -0
  1070. package/ds-canonical/hooks/tests/test_check_consumer_ds_primitive_misuse.sh +352 -0
  1071. package/ds-canonical/hooks/tests/test_check_consumer_no_ds_catalog.sh +214 -0
  1072. package/ds-canonical/hooks/tests/test_check_consumer_story_baseline.sh +209 -0
  1073. package/ds-canonical/hooks/tests/test_check_cva_default_sync.sh +15 -0
  1074. package/ds-canonical/hooks/tests/test_check_data_table_size_num_to_meta_width.sh +71 -0
  1075. package/ds-canonical/hooks/tests/test_check_datatable_invariants.sh +236 -0
  1076. package/ds-canonical/hooks/tests/test_check_dim_count_drift.sh +103 -0
  1077. package/ds-canonical/hooks/tests/test_check_ds_anchor_preflight.sh +150 -0
  1078. package/ds-canonical/hooks/tests/test_check_dynamic_tailwind_class.sh +76 -0
  1079. package/ds-canonical/hooks/tests/test_check_escape_marker_abuse.sh +226 -0
  1080. package/ds-canonical/hooks/tests/test_check_field_controls_contracts.sh +126 -0
  1081. package/ds-canonical/hooks/tests/test_check_field_family_invariants.sh +284 -0
  1082. package/ds-canonical/hooks/tests/test_check_file_size_budget.sh +94 -0
  1083. package/ds-canonical/hooks/tests/test_check_fork_user_plugin_install.sh +151 -0
  1084. package/ds-canonical/hooks/tests/test_check_full_story_visual_interaction_sweep.sh +200 -0
  1085. package/ds-canonical/hooks/tests/test_check_hardcoded_strings.sh +14 -0
  1086. package/ds-canonical/hooks/tests/test_check_header_with_tabs_border.sh +220 -0
  1087. package/ds-canonical/hooks/tests/test_check_item_list_gap.sh +44 -0
  1088. package/ds-canonical/hooks/tests/test_check_layout_space_canonical.sh +73 -0
  1089. package/ds-canonical/hooks/tests/test_check_layout_space_magic_numbers.sh +206 -0
  1090. package/ds-canonical/hooks/tests/test_check_main_branch_workbench.sh +82 -0
  1091. package/ds-canonical/hooks/tests/test_check_naming_and_abstraction.sh +153 -0
  1092. package/ds-canonical/hooks/tests/test_check_opacity_token_usage.sh +255 -0
  1093. package/ds-canonical/hooks/tests/test_check_orphan_ds_css.sh +228 -0
  1094. package/ds-canonical/hooks/tests/test_check_overlay_handcraft.sh +126 -0
  1095. package/ds-canonical/hooks/tests/test_check_overlay_open_focus_escape_probe.sh +191 -0
  1096. package/ds-canonical/hooks/tests/test_check_pattern_invariants.sh +244 -0
  1097. package/ds-canonical/hooks/tests/test_check_peoplepicker_ssot_drift.sh +108 -0
  1098. package/ds-canonical/hooks/tests/test_check_person_data_richness.sh +58 -0
  1099. package/ds-canonical/hooks/tests/test_check_pixel_quantified_audit.sh +142 -0
  1100. package/ds-canonical/hooks/tests/test_check_plugin_fork_health.sh +62 -0
  1101. package/ds-canonical/hooks/tests/test_check_propose_cite_required.sh +181 -0
  1102. package/ds-canonical/hooks/tests/test_check_propose_discipline.sh +69 -0
  1103. package/ds-canonical/hooks/tests/test_check_propose_plain_chinese.sh +129 -0
  1104. package/ds-canonical/hooks/tests/test_check_propose_pre_grep_verify.sh +117 -0
  1105. package/ds-canonical/hooks/tests/test_check_propose_without_benchmark.sh +100 -0
  1106. package/ds-canonical/hooks/tests/test_check_select_all_canonical.sh +125 -0
  1107. package/ds-canonical/hooks/tests/test_check_sidebar_menu_button_implicit_wrap.sh +224 -0
  1108. package/ds-canonical/hooks/tests/test_check_solo_workflow.sh +279 -0
  1109. package/ds-canonical/hooks/tests/test_check_spec_class_drift.sh +163 -0
  1110. package/ds-canonical/hooks/tests/test_check_ssot_header_declaration.sh +72 -0
  1111. package/ds-canonical/hooks/tests/test_check_story_anatomy.sh +266 -0
  1112. package/ds-canonical/hooks/tests/test_check_story_category.sh +267 -0
  1113. package/ds-canonical/hooks/tests/test_check_story_compile_drift.sh +15 -0
  1114. package/ds-canonical/hooks/tests/test_check_story_determinism.sh +39 -0
  1115. package/ds-canonical/hooks/tests/test_check_story_invariants.sh +900 -0
  1116. package/ds-canonical/hooks/tests/test_check_story_name_jargon.sh +74 -0
  1117. package/ds-canonical/hooks/tests/test_check_story_slot_split.sh +156 -0
  1118. package/ds-canonical/hooks/tests/test_check_storybook_addon_packaging.sh +89 -0
  1119. package/ds-canonical/hooks/tests/test_check_storybook_addon_preset_cjs.sh +200 -0
  1120. package/ds-canonical/hooks/tests/test_check_substantive_edit_approval_preflight.sh +694 -0
  1121. package/ds-canonical/hooks/tests/test_check_tab_lg_chrome_header_equal.sh +223 -0
  1122. package/ds-canonical/hooks/tests/test_check_tabs_content_chrome_body_double_gap.sh +76 -0
  1123. package/ds-canonical/hooks/tests/test_check_tailwind_wildcard_in_docs.sh +182 -0
  1124. package/ds-canonical/hooks/tests/test_check_token_hygiene.sh +69 -0
  1125. package/ds-canonical/hooks/tests/test_check_wrapper_primitive_schema_drift.sh +175 -0
  1126. package/ds-canonical/hooks/tests/test_chrome_header_dispatcher.sh +125 -0
  1127. package/ds-canonical/hooks/tests/test_enforce_home_charter.sh +131 -0
  1128. package/ds-canonical/hooks/tests/test_governance_control_plane.sh +66 -0
  1129. package/ds-canonical/hooks/tests/test_governance_coverage_check.sh +88 -0
  1130. package/ds-canonical/hooks/tests/test_hook_integrity_classification.sh +217 -0
  1131. package/ds-canonical/hooks/tests/test_inject_deploy_url_after_push.sh +276 -0
  1132. package/ds-canonical/hooks/tests/test_inject_pending_self_audit.sh +230 -0
  1133. package/ds-canonical/hooks/tests/test_log_governance_fires.sh +126 -0
  1134. package/ds-canonical/hooks/tests/test_log_skill_invokes.sh +76 -0
  1135. package/ds-canonical/hooks/tests/test_post_edit_dispatcher.sh +265 -0
  1136. package/ds-canonical/hooks/tests/test_provider_peer_symmetry.sh +76 -0
  1137. package/ds-canonical/hooks/tests/test_registration_output_contracts.sh +20 -0
  1138. package/ds-canonical/hooks/tests/test_session_start_governance_check.sh +266 -0
  1139. package/ds-canonical/hooks/tests/test_stop_audit_content_quality.sh +75 -0
  1140. package/ds-canonical/hooks/tests/test_stop_capture_metrics.sh +173 -0
  1141. package/ds-canonical/hooks/tests/test_stop_extract_canonical_rules.sh +75 -0
  1142. package/ds-canonical/hooks/tests/test_stop_governance_drift_check.sh +135 -0
  1143. package/ds-canonical/hooks/tests/test_stop_harvest_corrections.sh +10 -0
  1144. package/ds-canonical/hooks/tests/test_stop_passive_logging.sh +201 -0
  1145. package/ds-canonical/hooks/tests/test_stop_repository_command_context.sh +38 -0
  1146. package/ds-canonical/hooks/tests/test_stop_self_audit.sh +452 -0
  1147. package/ds-canonical/hooks/tests/test_stop_tsc_sanity.sh +10 -0
  1148. package/ds-canonical/references/README.md +46 -0
  1149. package/ds-canonical/references/audit-coverage-vs-24-checklist.md +74 -0
  1150. package/ds-canonical/references/build-ui-canonicals.md +73 -0
  1151. package/ds-canonical/references/certified-surfaces.md +51 -0
  1152. package/ds-canonical/references/composition-fidelity.md +47 -0
  1153. package/ds-canonical/references/cva-patterns.md +41 -0
  1154. package/ds-canonical/references/drag-canonical.md +331 -0
  1155. package/ds-canonical/references/failure-class-registry.json +153 -0
  1156. package/ds-canonical/references/governance-audit-coverage.md +33 -0
  1157. package/ds-canonical/references/item-anatomy-recipe.md +225 -0
  1158. package/ds-canonical/references/naming-conventions.md +57 -0
  1159. package/ds-canonical/references/preflight-gate-baseline.json +216 -0
  1160. package/ds-canonical/references/principle-dim-map.json +637 -0
  1161. package/ds-canonical/references/props-naming.md +60 -0
  1162. package/ds-canonical/references/scenario-definition.md +146 -0
  1163. package/ds-canonical/references/spec-rules.md +58 -0
  1164. package/ds-canonical/references/ssot-consultation.md +63 -0
  1165. package/ds-canonical/references/ssot-index.md +41 -0
  1166. package/ds-canonical/references/story-baseline-registry.json +123 -0
  1167. package/ds-canonical/references/story-baseline-registry.schema.json +145 -0
  1168. package/ds-canonical/references/structural-token-retention.md +39 -0
  1169. package/ds-canonical/references/tailwind-gotchas.md +87 -0
  1170. package/ds-canonical/references/ui-dev-rules.md +81 -0
  1171. package/ds-canonical/rules/README.md +39 -0
  1172. package/ds-canonical/rules/meta-patterns.md +87 -0
  1173. package/ds-canonical/rules/self-verify.md +62 -0
  1174. package/ds-canonical/rules/spec-rules.md +25 -0
  1175. package/ds-canonical/rules/story-rules.md +67 -0
  1176. package/ds-canonical/rules/ui-development.md +95 -0
  1177. package/ds-canonical/skills/README.md +100 -0
  1178. package/ds-canonical/skills/bug-fix-rhythm/SKILL.md +194 -0
  1179. package/ds-canonical/skills/canonical-reviewer/SKILL.md +29 -0
  1180. package/ds-canonical/skills/code-quality-audit/SKILL.md +67 -0
  1181. package/ds-canonical/skills/codex-collab/SKILL.md +32 -0
  1182. package/ds-canonical/skills/codex-collab/references/brief-template.md +42 -0
  1183. package/ds-canonical/skills/codex-collab/references/transport.md +39 -0
  1184. package/ds-canonical/skills/codify-corrections/SKILL.md +185 -0
  1185. package/ds-canonical/skills/codify-principle/SKILL.md +152 -0
  1186. package/ds-canonical/skills/component-quality-gate/SKILL.md +102 -0
  1187. package/ds-canonical/skills/component-quality-gate/references/checklist.md +79 -0
  1188. package/ds-canonical/skills/deep-audit-cross-codex/SKILL.md +42 -0
  1189. package/ds-canonical/skills/deep-audit-cross-codex/references/phase-a-workflow.md +57 -0
  1190. package/ds-canonical/skills/deep-audit-cross-codex/references/phase-b-codex-brief.md +51 -0
  1191. package/ds-canonical/skills/deep-audit-cross-codex/references/skill-relationships-antipatterns-benchmarks.md +28 -0
  1192. package/ds-canonical/skills/deep-audit-cross-codex/references/triage-rubric.md +26 -0
  1193. package/ds-canonical/skills/deep-audit-cross-codex/references/upstream-directives-r-mapping.md +34 -0
  1194. package/ds-canonical/skills/delivery-handoff/SKILL.md +240 -0
  1195. package/ds-canonical/skills/delivery-handoff/references/flow-diagram.md +180 -0
  1196. package/ds-canonical/skills/delivery-handoff/references/handoff-template.md +177 -0
  1197. package/ds-canonical/skills/delivery-handoff/references/inventory-checklist.md +196 -0
  1198. package/ds-canonical/skills/design-system-audit/SKILL.md +388 -0
  1199. package/ds-canonical/skills/design-system-audit/references/audit-prompts.md +1346 -0
  1200. package/ds-canonical/skills/design-system-audit/references/checkpoints.md +249 -0
  1201. package/ds-canonical/skills/design-system-audit/references/historical-bugs.md +240 -0
  1202. package/ds-canonical/skills/design-system-audit/references/principle-audit-protocol.md +383 -0
  1203. package/ds-canonical/skills/design-system-audit/references/rule-placement.md +176 -0
  1204. package/ds-canonical/skills/ensure-canonical/SKILL.md +198 -0
  1205. package/ds-canonical/skills/governance-health/SKILL.md +152 -0
  1206. package/ds-canonical/skills/governance-status/SKILL.md +30 -0
  1207. package/ds-canonical/skills/independent-review/SKILL.md +37 -0
  1208. package/ds-canonical/skills/independent-review/agents/openai.yaml +4 -0
  1209. package/ds-canonical/skills/independent-review/references/evidence-contract.md +24 -0
  1210. package/ds-canonical/skills/knowledge-prune/SKILL.md +246 -0
  1211. package/ds-canonical/skills/knowledge-prune/references/phase-z-cross-repo-ssot-propagation.md +14 -0
  1212. package/ds-canonical/skills/knowledge-prune/references/prune-dimensions-d5-d10.md +56 -0
  1213. package/ds-canonical/skills/knowledge-prune/references/world-class-prune-alignment.md +7 -0
  1214. package/ds-canonical/skills/new-component/SKILL.md +178 -0
  1215. package/ds-canonical/skills/new-component/references/new-component-checklist.md +86 -0
  1216. package/ds-canonical/skills/performance-audit/SKILL.md +110 -0
  1217. package/ds-canonical/skills/product-ui-audit/SKILL.md +240 -0
  1218. package/ds-canonical/skills/product-ui-audit/references/audit-checks.md +249 -0
  1219. package/ds-canonical/skills/product-ui-audit/references/common-misuses.md +329 -0
  1220. package/ds-canonical/skills/product-ui-audit/references/report-template.md +163 -0
  1221. package/ds-canonical/skills/propose-options/SKILL.md +177 -0
  1222. package/ds-canonical/skills/prototype/SKILL.md +242 -0
  1223. package/ds-canonical/skills/prototype/references/audit-checks.md +38 -0
  1224. package/ds-canonical/skills/prototype/references/benchmark-sources.md +94 -0
  1225. package/ds-canonical/skills/prototype/references/checkpoints.md +200 -0
  1226. package/ds-canonical/skills/prototype/references/evaluation-matrix.md +141 -0
  1227. package/ds-canonical/skills/prototype/references/ooux-template.md +198 -0
  1228. package/ds-canonical/skills/prototype/references/proposal-template.md +229 -0
  1229. package/ds-canonical/skills/scan-similar-bugs/SKILL.md +199 -0
  1230. package/ds-canonical/skills/story-auto-compile-migrate/SKILL.md +160 -0
  1231. package/ds-canonical/skills/story-writing/SKILL.md +122 -0
  1232. package/ds-canonical/skills/story-writing/references/anatomy-standard.md +217 -0
  1233. package/ds-canonical/skills/story-writing/references/category-templates.md +174 -0
  1234. package/ds-canonical/skills/story-writing/references/example-selection.md +70 -0
  1235. package/ds-canonical/skills/story-writing/references/self-check.md +20 -0
  1236. package/ds-canonical/skills/ux-audit/SKILL.md +133 -0
  1237. package/ds-canonical/skills/visual-audit/SKILL.md +246 -0
  1238. package/ds-canonical/skills/visual-audit/output/.gitkeep +0 -0
  1239. package/ds-canonical/skills/visual-audit/references/audit-architecture.md +100 -0
  1240. package/ds-canonical/skills/visual-audit/references/visual-checklist.md +297 -0
  1241. package/ds-canonical/skills/visual-audit/references/world-class-benchmarks.md +198 -0
  1242. package/ds-canonical/templates/_README.md +22 -0
  1243. package/ds-canonical/templates/consumer-governance.md +78 -0
  1244. package/ds-canonical/templates/dashboard-app.tsx +186 -0
  1245. package/ds-canonical/templates/product-launchers/fork-governance-dispatcher.sh +154 -0
  1246. package/ds-canonical/templates/product-launchers/format-provider-hook-output.mjs +25 -0
  1247. package/ds-canonical/templates/product-launchers/independent-review.mjs +490 -0
  1248. package/ds-canonical/templates/product-launchers/inject_fork_governance_preamble.sh +99 -0
  1249. package/ds-canonical/templates/product-launchers/normalize-provider-event.mjs +355 -0
  1250. package/ds-canonical/templates/product-launchers/product-hook-dispatch-runtime.mjs +1067 -0
  1251. package/ds-canonical/templates/product-provider-wiring.json +80 -0
  1252. package/ds-canonical/templates/product-provider-wiring.schema.json +151 -0
  1253. package/ds-story-manifest.json +1717 -0
  1254. package/llms-full.txt +450 -0
  1255. package/llms.txt +74 -0
  1256. package/package.json +48 -11
  1257. package/src/components/Accordion/accordion.anatomy.stories.tsx +496 -0
  1258. package/src/components/Accordion/accordion.principles.stories.tsx +365 -0
  1259. package/src/components/Accordion/accordion.spec.md +140 -0
  1260. package/src/components/Accordion/accordion.stories.tsx +192 -0
  1261. package/src/components/Accordion/accordion.tsx +11 -3
  1262. package/src/components/Accordion/index.ts +5 -0
  1263. package/src/components/AccountMenu/account-menu.anatomy.stories.tsx +115 -0
  1264. package/src/components/AccountMenu/account-menu.principles.stories.tsx +99 -0
  1265. package/src/components/AccountMenu/account-menu.spec.md +101 -0
  1266. package/src/components/AccountMenu/account-menu.stories.tsx +61 -0
  1267. package/src/components/AccountMenu/account-menu.tsx +170 -0
  1268. package/src/components/AccountMenu/index.ts +5 -0
  1269. package/src/components/Alert/alert.anatomy.stories.tsx +241 -0
  1270. package/src/components/Alert/alert.principles.stories.tsx +214 -0
  1271. package/src/components/Alert/alert.spec.md +200 -0
  1272. package/src/components/Alert/alert.stories.tsx +139 -0
  1273. package/src/components/Alert/alert.tsx +19 -8
  1274. package/src/components/Alert/index.ts +5 -0
  1275. package/src/components/AppShell/_demo-helpers.tsx +107 -28
  1276. package/src/components/AppShell/app-shell.anatomy.stories.tsx +185 -0
  1277. package/src/components/AppShell/app-shell.principles.stories.tsx +140 -0
  1278. package/src/components/AppShell/app-shell.spec.md +366 -0
  1279. package/src/components/AppShell/app-shell.stories.tsx +441 -0
  1280. package/src/components/AppShell/app-shell.tsx +58 -24
  1281. package/src/components/AppShell/index.ts +5 -0
  1282. package/src/components/AspectRatio/aspect-ratio.anatomy.stories.tsx +208 -0
  1283. package/src/components/AspectRatio/aspect-ratio.principles.stories.tsx +303 -0
  1284. package/src/components/AspectRatio/aspect-ratio.spec.md +147 -0
  1285. package/src/components/AspectRatio/aspect-ratio.stories.tsx +88 -0
  1286. package/src/components/AspectRatio/aspect-ratio.tsx +6 -3
  1287. package/src/components/AspectRatio/index.ts +5 -0
  1288. package/src/components/Avatar/avatar.anatomy.stories.tsx +705 -0
  1289. package/src/components/Avatar/avatar.principles.stories.tsx +249 -0
  1290. package/src/components/Avatar/avatar.spec.md +292 -0
  1291. package/src/components/Avatar/avatar.stories.tsx +152 -0
  1292. package/src/components/Avatar/avatar.tsx +85 -64
  1293. package/src/components/Avatar/index.ts +5 -0
  1294. package/src/components/Badge/badge.anatomy.stories.tsx +591 -0
  1295. package/src/components/Badge/badge.principles.stories.tsx +391 -0
  1296. package/src/components/Badge/badge.spec.md +401 -0
  1297. package/src/components/Badge/badge.stories.tsx +82 -0
  1298. package/src/components/Badge/badge.tsx +38 -14
  1299. package/src/components/Badge/index.ts +5 -0
  1300. package/src/components/Breadcrumb/breadcrumb.anatomy.stories.tsx +462 -0
  1301. package/src/components/Breadcrumb/breadcrumb.principles.stories.tsx +353 -0
  1302. package/src/components/Breadcrumb/breadcrumb.spec.md +270 -0
  1303. package/src/components/Breadcrumb/breadcrumb.stories.tsx +377 -0
  1304. package/src/components/Breadcrumb/breadcrumb.tsx +43 -86
  1305. package/src/components/Breadcrumb/index.ts +5 -0
  1306. package/src/components/BulkActionBar/bulk-action-bar.anatomy.stories.tsx +225 -0
  1307. package/src/components/BulkActionBar/bulk-action-bar.principles.stories.tsx +254 -0
  1308. package/src/components/BulkActionBar/bulk-action-bar.spec.md +239 -0
  1309. package/src/components/BulkActionBar/bulk-action-bar.stories.tsx +120 -0
  1310. package/src/components/BulkActionBar/bulk-action-bar.tsx +26 -18
  1311. package/src/components/BulkActionBar/index.ts +5 -0
  1312. package/src/components/Button/button-group.tsx +4 -4
  1313. package/src/components/Button/button.anatomy.stories.tsx +729 -0
  1314. package/src/components/Button/button.principles.stories.tsx +370 -0
  1315. package/src/components/Button/button.spec.md +464 -0
  1316. package/src/components/Button/button.stories.tsx +368 -0
  1317. package/src/components/Button/button.tsx +109 -55
  1318. package/src/components/Button/index.ts +6 -0
  1319. package/src/components/Calendar/calendar.anatomy.stories.tsx +224 -0
  1320. package/src/components/Calendar/calendar.principles.stories.tsx +152 -0
  1321. package/src/components/Calendar/calendar.spec.md +268 -0
  1322. package/src/components/Calendar/calendar.stories.tsx +91 -0
  1323. package/src/components/Calendar/calendar.tsx +189 -134
  1324. package/src/components/Calendar/index.ts +5 -0
  1325. package/src/components/Carousel/carousel.anatomy.stories.tsx +517 -0
  1326. package/src/components/Carousel/carousel.principles.stories.tsx +334 -0
  1327. package/src/components/Carousel/carousel.spec.md +289 -0
  1328. package/src/components/Carousel/carousel.stories.tsx +121 -0
  1329. package/src/components/Carousel/carousel.tsx +134 -53
  1330. package/src/components/Carousel/index.ts +5 -0
  1331. package/src/components/Chart/chart.anatomy.stories.tsx +310 -0
  1332. package/src/components/Chart/chart.principles.stories.tsx +436 -0
  1333. package/src/components/Chart/chart.spec.md +174 -0
  1334. package/src/components/Chart/chart.stories.tsx +262 -0
  1335. package/src/components/Chart/chart.tsx +10 -3
  1336. package/src/components/Chart/index.ts +5 -0
  1337. package/src/components/Checkbox/checkbox-group.tsx +28 -16
  1338. package/src/components/Checkbox/checkbox.anatomy.stories.tsx +614 -0
  1339. package/src/components/Checkbox/checkbox.principles.stories.tsx +216 -0
  1340. package/src/components/Checkbox/checkbox.spec.md +368 -0
  1341. package/src/components/Checkbox/checkbox.stories.tsx +117 -0
  1342. package/src/components/Checkbox/checkbox.tsx +189 -32
  1343. package/src/components/Checkbox/index.ts +6 -0
  1344. package/src/components/Chip/chip.anatomy.stories.tsx +442 -0
  1345. package/src/components/Chip/chip.principles.stories.tsx +228 -0
  1346. package/src/components/Chip/chip.spec.md +241 -0
  1347. package/src/components/Chip/chip.stories.tsx +88 -0
  1348. package/src/components/Chip/chip.tsx +68 -19
  1349. package/src/components/Chip/index.ts +5 -0
  1350. package/src/components/CircularProgress/circular-progress.anatomy.stories.tsx +177 -0
  1351. package/src/components/CircularProgress/circular-progress.principles.stories.tsx +265 -0
  1352. package/src/components/CircularProgress/circular-progress.spec.md +269 -0
  1353. package/src/components/CircularProgress/circular-progress.stories.tsx +145 -0
  1354. package/src/components/CircularProgress/circular-progress.tsx +4 -5
  1355. package/src/components/CircularProgress/index.ts +5 -0
  1356. package/src/components/Coachmark/coachmark-story-helpers.tsx +39 -0
  1357. package/src/components/Coachmark/coachmark.anatomy.stories.tsx +356 -0
  1358. package/src/components/Coachmark/coachmark.principles.stories.tsx +356 -0
  1359. package/src/components/Coachmark/coachmark.spec.md +238 -0
  1360. package/src/components/Coachmark/coachmark.stories.tsx +216 -0
  1361. package/src/components/Coachmark/coachmark.tsx +36 -10
  1362. package/src/components/Coachmark/index.ts +5 -0
  1363. package/src/components/Combobox/combobox.anatomy.stories.tsx +926 -0
  1364. package/src/components/Combobox/combobox.principles.stories.tsx +238 -0
  1365. package/src/components/Combobox/combobox.spec.md +206 -0
  1366. package/src/components/Combobox/combobox.stories.tsx +157 -0
  1367. package/src/components/Combobox/combobox.tsx +198 -88
  1368. package/src/components/Combobox/index.ts +5 -0
  1369. package/src/components/Command/command.anatomy.stories.tsx +107 -0
  1370. package/src/components/Command/command.principles.stories.tsx +86 -0
  1371. package/src/components/Command/command.spec.md +182 -0
  1372. package/src/components/Command/command.stories.tsx +312 -0
  1373. package/src/components/Command/command.tsx +28 -12
  1374. package/src/components/Command/index.ts +5 -0
  1375. package/src/components/DataTable/active-editor-controller.ts +4 -3
  1376. package/src/components/DataTable/cell-registry.tsx +158 -119
  1377. package/src/components/DataTable/column-types.ts +14 -18
  1378. package/src/components/DataTable/data-table-column-visibility-panel.tsx +21 -8
  1379. package/src/components/DataTable/data-table-filter-group.tsx +248 -0
  1380. package/src/components/DataTable/data-table-filter-labels.ts +100 -0
  1381. package/src/components/DataTable/data-table-filter-panel.tsx +73 -441
  1382. package/src/components/DataTable/data-table-filter-value-picker.tsx +254 -0
  1383. package/src/components/DataTable/data-table-interaction-layer.tsx +26 -29
  1384. package/src/components/DataTable/data-table-sort-manager.tsx +6 -6
  1385. package/src/components/DataTable/data-table.anatomy.stories.tsx +522 -0
  1386. package/src/components/DataTable/data-table.css +5 -6
  1387. package/src/components/DataTable/data-table.principles.stories.tsx +271 -0
  1388. package/src/components/DataTable/data-table.spec.md +535 -0
  1389. package/src/components/DataTable/data-table.stories.tsx +2311 -0
  1390. package/src/components/DataTable/data-table.tsx +665 -274
  1391. package/src/components/DataTable/filter-operators.spec.md +269 -0
  1392. package/src/components/DataTable/filter-operators.ts +1 -1
  1393. package/src/components/DataTable/filter-tree.ts +194 -44
  1394. package/src/components/DataTable/index.ts +8 -0
  1395. package/src/components/DateGrid/date-grid.anatomy.stories.tsx +587 -0
  1396. package/src/components/DateGrid/date-grid.principles.stories.tsx +344 -0
  1397. package/src/components/DateGrid/date-grid.spec.md +221 -0
  1398. package/src/components/DateGrid/date-grid.stories.tsx +204 -0
  1399. package/src/components/DateGrid/date-grid.tsx +87 -26
  1400. package/src/components/DateGrid/index.ts +5 -0
  1401. package/src/components/DatePicker/date-picker.anatomy.stories.tsx +952 -0
  1402. package/src/components/DatePicker/date-picker.principles.stories.tsx +205 -0
  1403. package/src/components/DatePicker/date-picker.spec.md +339 -0
  1404. package/src/components/DatePicker/date-picker.stories.tsx +365 -0
  1405. package/src/components/DatePicker/date-picker.tsx +368 -190
  1406. package/src/components/DatePicker/index.ts +5 -0
  1407. package/src/components/DescriptionList/description-list.anatomy.stories.tsx +254 -0
  1408. package/src/components/DescriptionList/description-list.principles.stories.tsx +309 -0
  1409. package/src/components/DescriptionList/description-list.spec.md +220 -0
  1410. package/src/components/DescriptionList/description-list.stories.tsx +113 -0
  1411. package/src/components/DescriptionList/description-list.tsx +16 -14
  1412. package/src/components/DescriptionList/index.ts +5 -0
  1413. package/src/components/Dialog/dialog.anatomy.stories.tsx +485 -0
  1414. package/src/components/Dialog/dialog.principles.stories.tsx +313 -0
  1415. package/src/components/Dialog/dialog.spec.md +225 -0
  1416. package/src/components/Dialog/dialog.stories.tsx +544 -0
  1417. package/src/components/Dialog/dialog.tsx +81 -36
  1418. package/src/components/Dialog/index.ts +5 -0
  1419. package/src/components/DropdownMenu/dropdown-menu.anatomy.stories.tsx +971 -0
  1420. package/src/components/DropdownMenu/dropdown-menu.principles.stories.tsx +341 -0
  1421. package/src/components/DropdownMenu/dropdown-menu.spec.md +268 -0
  1422. package/src/components/DropdownMenu/dropdown-menu.stories.tsx +272 -0
  1423. package/src/components/DropdownMenu/dropdown-menu.tsx +152 -40
  1424. package/src/components/DropdownMenu/index.ts +5 -0
  1425. package/src/components/Empty/empty.anatomy.stories.tsx +275 -0
  1426. package/src/components/Empty/empty.principles.stories.tsx +314 -0
  1427. package/src/components/Empty/empty.spec.md +215 -0
  1428. package/src/components/Empty/empty.stories.tsx +69 -0
  1429. package/src/components/Empty/empty.tsx +20 -8
  1430. package/src/components/Empty/index.ts +5 -0
  1431. package/src/components/Field/field-context.ts +196 -4
  1432. package/src/components/Field/field-controls.spec.md +446 -0
  1433. package/src/components/Field/field-edit-keys.ts +66 -0
  1434. package/src/components/Field/field-types.ts +71 -20
  1435. package/src/components/Field/field-wrapper.tsx +139 -89
  1436. package/src/components/Field/field.anatomy.stories.tsx +547 -0
  1437. package/src/components/Field/field.principles.stories.tsx +255 -0
  1438. package/src/components/Field/field.spec.md +470 -0
  1439. package/src/components/Field/field.stories.tsx +747 -0
  1440. package/src/components/Field/field.tsx +64 -11
  1441. package/src/components/Field/form-validation.spec.md +179 -0
  1442. package/src/components/Field/index.ts +6 -0
  1443. package/src/components/Field/use-form-validation.ts +270 -0
  1444. package/src/components/FieldControlGroup/field-control-group.anatomy.stories.tsx +119 -0
  1445. package/src/components/FieldControlGroup/field-control-group.principles.stories.tsx +121 -0
  1446. package/src/components/FieldControlGroup/field-control-group.spec.md +199 -0
  1447. package/src/components/FieldControlGroup/field-control-group.stories.tsx +162 -0
  1448. package/src/components/FieldControlGroup/field-control-group.tsx +13 -15
  1449. package/src/components/FieldControlGroup/index.ts +5 -0
  1450. package/src/components/FileItem/file-item.anatomy.stories.tsx +346 -0
  1451. package/src/components/FileItem/file-item.principles.stories.tsx +276 -0
  1452. package/src/components/FileItem/file-item.spec.md +497 -0
  1453. package/src/components/FileItem/file-item.stories.tsx +276 -0
  1454. package/src/components/FileItem/file-item.tsx +57 -28
  1455. package/src/components/FileItem/index.ts +5 -0
  1456. package/src/components/FileUpload/file-upload.anatomy.stories.tsx +446 -0
  1457. package/src/components/FileUpload/file-upload.principles.stories.tsx +312 -0
  1458. package/src/components/FileUpload/file-upload.spec.md +167 -0
  1459. package/src/components/FileUpload/file-upload.stories.tsx +199 -0
  1460. package/src/components/FileUpload/file-upload.tsx +115 -34
  1461. package/src/components/FileUpload/index.ts +5 -0
  1462. package/src/components/FileViewer/can-render-image.ts +15 -0
  1463. package/src/components/FileViewer/file-viewer.anatomy.stories.tsx +1130 -0
  1464. package/src/components/FileViewer/file-viewer.principles.stories.tsx +636 -0
  1465. package/src/components/FileViewer/file-viewer.spec.md +386 -0
  1466. package/src/components/FileViewer/file-viewer.stories.tsx +413 -0
  1467. package/src/components/FileViewer/file-viewer.tsx +142 -59
  1468. package/src/components/FileViewer/image-renderer.tsx +38 -15
  1469. package/src/components/FileViewer/index.ts +5 -0
  1470. package/src/components/HoverCard/hover-card.anatomy.stories.tsx +151 -0
  1471. package/src/components/HoverCard/hover-card.principles.stories.tsx +230 -0
  1472. package/src/components/HoverCard/hover-card.spec.md +167 -0
  1473. package/src/components/HoverCard/hover-card.stories.tsx +304 -0
  1474. package/src/components/HoverCard/hover-card.tsx +23 -6
  1475. package/src/components/HoverCard/index.ts +5 -0
  1476. package/src/components/InlineEdit/index.ts +5 -0
  1477. package/src/components/InlineEdit/inline-edit.anatomy.stories.tsx +184 -0
  1478. package/src/components/InlineEdit/inline-edit.principles.stories.tsx +142 -0
  1479. package/src/components/InlineEdit/inline-edit.spec.md +186 -0
  1480. package/src/components/InlineEdit/inline-edit.stories.tsx +258 -0
  1481. package/src/components/InlineEdit/inline-edit.tsx +436 -0
  1482. package/src/components/Input/index.ts +5 -0
  1483. package/src/components/Input/input.anatomy.stories.tsx +780 -0
  1484. package/src/components/Input/input.principles.stories.tsx +260 -0
  1485. package/src/components/Input/input.spec.md +202 -0
  1486. package/src/components/Input/input.stories.tsx +147 -0
  1487. package/src/components/Input/input.tsx +102 -45
  1488. package/src/components/LinkInput/index.ts +5 -0
  1489. package/src/components/LinkInput/link-input.anatomy.stories.tsx +748 -0
  1490. package/src/components/LinkInput/link-input.principles.stories.tsx +182 -0
  1491. package/src/components/LinkInput/link-input.spec.md +148 -0
  1492. package/src/components/LinkInput/link-input.stories.tsx +132 -0
  1493. package/src/components/LinkInput/link-input.tsx +89 -66
  1494. package/src/components/Menu/index.ts +5 -0
  1495. package/src/components/Menu/menu-item.anatomy.stories.tsx +780 -0
  1496. package/src/components/Menu/menu-item.principles.stories.tsx +81 -0
  1497. package/src/components/Menu/menu-item.spec.md +312 -0
  1498. package/src/components/Menu/menu-item.stories.tsx +242 -0
  1499. package/src/components/Menu/menu-item.tsx +68 -11
  1500. package/src/components/Notice/index.ts +5 -0
  1501. package/src/components/Notice/notice.anatomy.stories.tsx +615 -0
  1502. package/src/components/Notice/notice.principles.stories.tsx +102 -0
  1503. package/src/components/Notice/notice.spec.md +172 -0
  1504. package/src/components/Notice/notice.stories.tsx +257 -0
  1505. package/src/components/Notice/notice.tsx +55 -16
  1506. package/src/components/NumberInput/index.ts +5 -0
  1507. package/src/components/NumberInput/number-input.anatomy.stories.tsx +822 -0
  1508. package/src/components/NumberInput/number-input.principles.stories.tsx +206 -0
  1509. package/src/components/NumberInput/number-input.spec.md +145 -0
  1510. package/src/components/NumberInput/number-input.stories.tsx +149 -0
  1511. package/src/components/NumberInput/number-input.tsx +65 -31
  1512. package/src/components/OverflowIndicator/index.ts +5 -0
  1513. package/src/components/OverflowIndicator/overflow-indicator.anatomy.stories.tsx +555 -0
  1514. package/src/components/OverflowIndicator/overflow-indicator.principles.stories.tsx +76 -0
  1515. package/src/components/OverflowIndicator/overflow-indicator.spec.md +129 -0
  1516. package/src/components/OverflowIndicator/overflow-indicator.stories.tsx +222 -0
  1517. package/src/components/OverflowIndicator/overflow-indicator.tsx +22 -7
  1518. package/src/components/Pagination/index.ts +5 -0
  1519. package/src/components/Pagination/pagination.anatomy.stories.tsx +143 -0
  1520. package/src/components/Pagination/pagination.principles.stories.tsx +81 -0
  1521. package/src/components/Pagination/pagination.spec.md +150 -0
  1522. package/src/components/Pagination/pagination.stories.tsx +94 -0
  1523. package/src/components/Pagination/pagination.tsx +263 -0
  1524. package/src/components/PeoplePicker/avatar-stack-overflow.ts +1 -1
  1525. package/src/components/PeoplePicker/index.ts +5 -0
  1526. package/src/components/PeoplePicker/people-picker-helpers.ts +5 -5
  1527. package/src/components/PeoplePicker/people-picker.anatomy.stories.tsx +437 -0
  1528. package/src/components/PeoplePicker/people-picker.principles.stories.tsx +196 -0
  1529. package/src/components/PeoplePicker/people-picker.spec.md +294 -0
  1530. package/src/components/PeoplePicker/people-picker.stories.tsx +162 -0
  1531. package/src/components/PeoplePicker/people-picker.tsx +188 -105
  1532. package/src/components/PeoplePicker/person-display.tsx +69 -46
  1533. package/src/components/Popover/index.ts +5 -0
  1534. package/src/components/Popover/popover.anatomy.stories.tsx +282 -0
  1535. package/src/components/Popover/popover.principles.stories.tsx +316 -0
  1536. package/src/components/Popover/popover.spec.md +210 -0
  1537. package/src/components/Popover/popover.stories.tsx +116 -0
  1538. package/src/components/Popover/popover.tsx +106 -47
  1539. package/src/components/ProfileCard/index.ts +5 -0
  1540. package/src/components/ProfileCard/profile-card.anatomy.stories.tsx +493 -0
  1541. package/src/components/ProfileCard/profile-card.principles.stories.tsx +225 -0
  1542. package/src/components/ProfileCard/profile-card.spec.md +190 -0
  1543. package/src/components/ProfileCard/profile-card.stories.tsx +53 -0
  1544. package/src/components/{NameCard/name-card.tsx → ProfileCard/profile-card.tsx} +66 -39
  1545. package/src/components/ProgressBar/index.ts +5 -0
  1546. package/src/components/ProgressBar/progress-bar.anatomy.stories.tsx +441 -0
  1547. package/src/components/ProgressBar/progress-bar.principles.stories.tsx +326 -0
  1548. package/src/components/ProgressBar/progress-bar.spec.md +240 -0
  1549. package/src/components/ProgressBar/progress-bar.stories.tsx +133 -0
  1550. package/src/components/ProgressBar/progress-bar.tsx +4 -4
  1551. package/src/components/README.md +1 -0
  1552. package/src/components/RadioGroup/index.ts +5 -0
  1553. package/src/components/RadioGroup/radio-group.anatomy.stories.tsx +672 -0
  1554. package/src/components/RadioGroup/radio-group.principles.stories.tsx +163 -0
  1555. package/src/components/RadioGroup/radio-group.spec.md +149 -0
  1556. package/src/components/RadioGroup/radio-group.stories.tsx +100 -0
  1557. package/src/components/RadioGroup/radio-group.tsx +187 -65
  1558. package/src/components/Rating/index.ts +5 -0
  1559. package/src/components/Rating/rating.anatomy.stories.tsx +498 -0
  1560. package/src/components/Rating/rating.principles.stories.tsx +296 -0
  1561. package/src/components/Rating/rating.spec.md +222 -0
  1562. package/src/components/Rating/rating.stories.tsx +119 -0
  1563. package/src/components/Rating/rating.tsx +37 -18
  1564. package/src/components/ScrollArea/index.ts +5 -0
  1565. package/src/components/ScrollArea/scroll-area.anatomy.stories.tsx +451 -0
  1566. package/src/components/ScrollArea/scroll-area.principles.stories.tsx +331 -0
  1567. package/src/components/ScrollArea/scroll-area.spec.md +148 -0
  1568. package/src/components/ScrollArea/scroll-area.stories.tsx +243 -0
  1569. package/src/components/ScrollArea/scroll-area.tsx +24 -7
  1570. package/src/components/SegmentedControl/index.ts +5 -0
  1571. package/src/components/SegmentedControl/segmented-control.anatomy.stories.tsx +295 -0
  1572. package/src/components/SegmentedControl/segmented-control.principles.stories.tsx +284 -0
  1573. package/src/components/SegmentedControl/segmented-control.spec.md +296 -0
  1574. package/src/components/SegmentedControl/segmented-control.stories.tsx +33 -0
  1575. package/src/components/SegmentedControl/segmented-control.tsx +44 -24
  1576. package/src/components/Select/index.ts +5 -0
  1577. package/src/components/Select/select.anatomy.stories.tsx +834 -0
  1578. package/src/components/Select/select.principles.stories.tsx +312 -0
  1579. package/src/components/Select/select.spec.md +359 -0
  1580. package/src/components/Select/select.stories.tsx +246 -0
  1581. package/src/components/Select/select.tsx +362 -94
  1582. package/src/components/SelectMenu/index.ts +5 -0
  1583. package/src/components/SelectMenu/select-menu.anatomy.stories.tsx +830 -0
  1584. package/src/components/SelectMenu/select-menu.principles.stories.tsx +106 -0
  1585. package/src/components/SelectMenu/select-menu.spec.md +241 -0
  1586. package/src/components/SelectMenu/select-menu.stories.tsx +143 -0
  1587. package/src/components/SelectMenu/select-menu.tsx +262 -32
  1588. package/src/components/SelectionControl/boolean-value.tsx +39 -0
  1589. package/src/components/SelectionControl/index.ts +6 -0
  1590. package/src/components/SelectionControl/selection-item.anatomy.stories.tsx +582 -0
  1591. package/src/components/SelectionControl/selection-item.principles.stories.tsx +77 -0
  1592. package/src/components/SelectionControl/selection-item.spec.md +142 -0
  1593. package/src/components/SelectionControl/selection-item.stories.tsx +137 -0
  1594. package/src/components/SelectionControl/selection-item.tsx +8 -2
  1595. package/src/components/Separator/index.ts +5 -0
  1596. package/src/components/Separator/separator.anatomy.stories.tsx +125 -0
  1597. package/src/components/Separator/separator.principles.stories.tsx +141 -0
  1598. package/src/components/Separator/separator.spec.md +115 -0
  1599. package/src/components/Separator/separator.stories.tsx +106 -0
  1600. package/src/components/Separator/separator.tsx +2 -2
  1601. package/src/components/Sheet/index.ts +5 -0
  1602. package/src/components/Sheet/sheet.anatomy.stories.tsx +269 -0
  1603. package/src/components/Sheet/sheet.principles.stories.tsx +353 -0
  1604. package/src/components/Sheet/sheet.spec.md +147 -0
  1605. package/src/components/Sheet/sheet.stories.tsx +168 -0
  1606. package/src/components/Sheet/sheet.tsx +24 -14
  1607. package/src/components/Sidebar/index.ts +5 -0
  1608. package/src/components/Sidebar/sidebar.anatomy.stories.tsx +776 -0
  1609. package/src/components/Sidebar/sidebar.principles.stories.tsx +507 -0
  1610. package/src/components/Sidebar/sidebar.spec.md +724 -0
  1611. package/src/components/Sidebar/sidebar.stories.tsx +531 -0
  1612. package/src/components/Sidebar/sidebar.tsx +100 -49
  1613. package/src/components/Skeleton/index.ts +5 -0
  1614. package/src/components/Skeleton/skeleton.anatomy.stories.tsx +145 -0
  1615. package/src/components/Skeleton/skeleton.principles.stories.tsx +234 -0
  1616. package/src/components/Skeleton/skeleton.spec.md +105 -0
  1617. package/src/components/Skeleton/skeleton.stories.tsx +130 -0
  1618. package/src/components/Skeleton/skeleton.tsx +2 -2
  1619. package/src/components/Slider/index.ts +5 -0
  1620. package/src/components/Slider/slider.anatomy.stories.tsx +237 -0
  1621. package/src/components/Slider/slider.principles.stories.tsx +250 -0
  1622. package/src/components/Slider/slider.spec.md +304 -0
  1623. package/src/components/Slider/slider.stories.tsx +111 -0
  1624. package/src/components/Slider/slider.tsx +82 -25
  1625. package/src/components/Steps/index.ts +5 -0
  1626. package/src/components/Steps/steps.anatomy.stories.tsx +448 -0
  1627. package/src/components/Steps/steps.principles.stories.tsx +300 -0
  1628. package/src/components/Steps/steps.spec.md +484 -0
  1629. package/src/components/Steps/steps.stories.tsx +300 -0
  1630. package/src/components/Steps/steps.tsx +98 -36
  1631. package/src/components/Switch/index.ts +5 -0
  1632. package/src/components/Switch/switch.anatomy.stories.tsx +227 -0
  1633. package/src/components/Switch/switch.principles.stories.tsx +177 -0
  1634. package/src/components/Switch/switch.spec.md +239 -0
  1635. package/src/components/Switch/switch.stories.tsx +92 -0
  1636. package/src/components/Switch/switch.tsx +136 -40
  1637. package/src/components/Tabs/index.ts +5 -0
  1638. package/src/components/Tabs/tabs.anatomy.stories.tsx +424 -0
  1639. package/src/components/Tabs/tabs.principles.stories.tsx +291 -0
  1640. package/src/components/Tabs/tabs.spec.md +303 -0
  1641. package/src/components/Tabs/tabs.stories.tsx +147 -0
  1642. package/src/components/Tabs/tabs.tsx +205 -66
  1643. package/src/components/Tag/index.ts +5 -0
  1644. package/src/components/Tag/tag.anatomy.stories.tsx +667 -0
  1645. package/src/components/Tag/tag.principles.stories.tsx +270 -0
  1646. package/src/components/Tag/tag.spec.md +296 -0
  1647. package/src/components/Tag/tag.stories.tsx +88 -0
  1648. package/src/components/Tag/tag.tsx +119 -80
  1649. package/src/components/Textarea/index.ts +5 -0
  1650. package/src/components/Textarea/textarea.anatomy.stories.tsx +310 -0
  1651. package/src/components/Textarea/textarea.principles.stories.tsx +192 -0
  1652. package/src/components/Textarea/textarea.spec.md +172 -0
  1653. package/src/components/Textarea/textarea.stories.tsx +53 -0
  1654. package/src/components/Textarea/textarea.tsx +153 -82
  1655. package/src/components/TimePicker/index.ts +5 -0
  1656. package/src/components/TimePicker/time-columns.tsx +13 -2
  1657. package/src/components/TimePicker/time-picker.anatomy.stories.tsx +283 -0
  1658. package/src/components/TimePicker/time-picker.principles.stories.tsx +133 -0
  1659. package/src/components/TimePicker/time-picker.spec.md +291 -0
  1660. package/src/components/TimePicker/time-picker.stories.tsx +193 -0
  1661. package/src/components/TimePicker/time-picker.tsx +119 -60
  1662. package/src/components/Toast/index.ts +5 -0
  1663. package/src/components/Toast/toast.anatomy.stories.tsx +323 -0
  1664. package/src/components/Toast/toast.principles.stories.tsx +216 -0
  1665. package/src/components/Toast/toast.spec.md +181 -0
  1666. package/src/components/Toast/toast.stories.tsx +132 -0
  1667. package/src/components/Toast/toast.tsx +15 -9
  1668. package/src/components/Tooltip/index.ts +5 -0
  1669. package/src/components/Tooltip/tooltip.anatomy.stories.tsx +422 -0
  1670. package/src/components/Tooltip/tooltip.principles.stories.tsx +204 -0
  1671. package/src/components/Tooltip/tooltip.spec.md +158 -0
  1672. package/src/components/Tooltip/tooltip.stories.tsx +81 -0
  1673. package/src/components/Tooltip/tooltip.tsx +58 -12
  1674. package/src/components/TreeView/index.ts +5 -0
  1675. package/src/components/TreeView/tree-view.anatomy.stories.tsx +436 -0
  1676. package/src/components/TreeView/tree-view.principles.stories.tsx +223 -0
  1677. package/src/components/TreeView/tree-view.spec.md +423 -0
  1678. package/src/components/TreeView/tree-view.stories.tsx +325 -0
  1679. package/src/components/TreeView/tree-view.tsx +450 -45
  1680. package/src/hooks/use-controllable.ts +7 -2
  1681. package/src/hooks/use-is-touch-device.ts +8 -1
  1682. package/src/hooks/use-overflow-items.ts +10 -6
  1683. package/src/hooks/use-truncated.ts +111 -0
  1684. package/src/index.ts +618 -71
  1685. package/src/lib/drag-visual.ts +2 -2
  1686. package/src/lib/utils.ts +21 -1
  1687. package/src/patterns/README.md +15 -11
  1688. package/src/patterns/action-bar/action-bar.spec.md +475 -0
  1689. package/src/patterns/action-bar/action-bar.stories.tsx +615 -0
  1690. package/src/patterns/element-anatomy/element-anatomy.spec.md +217 -0
  1691. package/src/patterns/element-anatomy/index.ts +6 -0
  1692. package/src/patterns/element-anatomy/inline-action.spec.md +326 -0
  1693. package/src/patterns/element-anatomy/item-anatomy.spec.md +1062 -0
  1694. package/src/patterns/element-anatomy/item-anatomy.stories.tsx +1644 -0
  1695. package/src/patterns/element-anatomy/item-anatomy.tsx +144 -53
  1696. package/src/patterns/element-anatomy/truncated-text.spec.md +68 -0
  1697. package/src/patterns/element-anatomy/truncated-text.tsx +61 -0
  1698. package/src/patterns/header-canonical/chrome-header.tsx +26 -6
  1699. package/src/patterns/header-canonical/header-canonical.css +3 -4
  1700. package/src/patterns/header-canonical/header-canonical.spec.md +339 -0
  1701. package/src/patterns/header-canonical/header-canonical.stories.tsx +253 -0
  1702. package/src/patterns/header-canonical/index.ts +5 -0
  1703. package/src/patterns/horizontal-overflow/horizontal-overflow.spec.md +212 -0
  1704. package/src/patterns/horizontal-overflow/horizontal-overflow.stories.tsx +139 -0
  1705. package/src/patterns/horizontal-overflow/index.ts +5 -0
  1706. package/src/patterns/overlay-surface/index.ts +5 -0
  1707. package/src/patterns/overlay-surface/overlay-surface.spec.md +465 -0
  1708. package/src/patterns/overlay-surface/overlay-surface.stories.tsx +132 -0
  1709. package/src/patterns/overlay-surface/overlay-surface.tsx +36 -17
  1710. package/src/patterns/resize-handle/index.ts +5 -0
  1711. package/src/patterns/resize-handle/resize-handle.spec.md +118 -0
  1712. package/src/patterns/resize-handle/resize-handle.stories.tsx +69 -0
  1713. package/src/patterns/resize-handle/resize-handle.tsx +13 -18
  1714. package/src/story-governance/category-matrix.json +132 -0
  1715. package/src/story-governance/category-matrix.ts +55 -0
  1716. package/src/styles/base.css +92 -0
  1717. package/src/styles/tokens.css +14 -0
  1718. package/src/tokens/README.md +7 -2
  1719. package/src/tokens/categorical-color.ts +164 -0
  1720. package/src/tokens/color/color.spec.md +799 -0
  1721. package/src/tokens/color/color.stories.tsx +363 -0
  1722. package/src/tokens/color/primitives.css +23 -7
  1723. package/src/tokens/color/semantic.css +39 -16
  1724. package/src/tokens/density/density.spec.md +130 -0
  1725. package/src/tokens/density/density.stories.tsx +253 -0
  1726. package/src/tokens/elevation/elevation.spec.md +78 -0
  1727. package/src/tokens/elevation/elevation.stories.tsx +98 -0
  1728. package/src/tokens/layoutSpace/layoutSpace.css +1 -1
  1729. package/src/tokens/layoutSpace/layoutSpace.spec.md +327 -0
  1730. package/src/tokens/layoutSpace/layoutSpace.stories.tsx +75 -0
  1731. package/src/tokens/motion/motion.css +33 -21
  1732. package/src/tokens/motion/motion.spec.md +121 -0
  1733. package/src/tokens/motion/motion.stories.tsx +195 -0
  1734. package/src/tokens/motion/motion.ts +8 -7
  1735. package/src/tokens/motion/overlay-motion.ts +26 -0
  1736. package/src/tokens/opacity/opacity.spec.md +73 -0
  1737. package/src/tokens/opacity/opacity.stories.tsx +65 -0
  1738. package/src/tokens/orphan-tokens.spec.md +128 -0
  1739. package/src/tokens/radius/radius.spec.md +126 -0
  1740. package/src/tokens/radius/radius.stories.tsx +86 -0
  1741. package/src/tokens/token-system.spec.md +241 -0
  1742. package/src/tokens/typography/typography.css +1 -1
  1743. package/src/tokens/typography/typography.spec.md +206 -0
  1744. package/src/tokens/typography/typography.stories.tsx +133 -0
  1745. package/src/tokens/uiSize/icon-size.ts +3 -4
  1746. package/src/tokens/uiSize/uiSize.css +38 -1
  1747. package/src/tokens/uiSize/uiSize.spec.md +467 -0
  1748. package/src/tokens/uiSize/uiSize.stories.tsx +105 -0
  1749. package/src/tokens/utility-registry.json +377 -0
  1750. package/src/tokens/utility-registry.schema.json +373 -0
  1751. package/tools/README.md +9 -0
  1752. package/tools/codemods/cli.mjs +93 -0
  1753. package/tools/codemods/index.mjs +582 -0
  1754. package/tools/shared/safe-filesystem.mjs +371 -0
  1755. package/tools/visual-baseline/cli.mjs +97 -0
  1756. package/tools/visual-baseline/index.mjs +522 -0
  1757. package/dist/components/NameCard/name-card.d.ts.map +0 -1
  1758. package/dist/components/NameCard/name-card.js.map +0 -1
  1759. package/src/styles/preset.css +0 -31
  1760. /package/dist/{react-day-picker.css → index.css} +0 -0
package/AGENTS.md ADDED
@@ -0,0 +1,8 @@
1
+ # `@qijenchen/design-system` package scope
2
+
3
+ This file is a **scoped augmentation**, not a second repository or product-governance SSOT.
4
+
5
+ - Inside the design-system monorepo, inherit the repository-root `AGENTS.md`; do not restate or override it here. Author governance only in the canonical owners classified by `infra/governance/protected-root-classification.json`, then regenerate the declared build graph.
6
+ - Inside an installed npm package, treat every file under `node_modules/@qijenchen/design-system` as immutable release material. Never patch it in place; fix the upstream DS source, publish an immutable exact version/BOM, and upgrade the consumer through its governed PR flow.
7
+ - Consumer product governance comes from the authenticated `ds-canonical/fork/manifest.json` snapshot materialized into the consumer repository. This package-scoped file is navigation only and must never substitute for that snapshot, its lock, provider adapters, verifier, or protected CI.
8
+ - Rules, hooks, skills, commands, and provider views under this package follow the same owner/output boundary: `ds-canonical/` is the shipped canonical corpus; generated `.claude`, `.codex`, and `.agents` views are rebuildable adapters and are not edit targets.
package/CLAUDE.md ADDED
@@ -0,0 +1,5 @@
1
+ @AGENTS.md
2
+
3
+ # Claude Code package-scope adapter
4
+
5
+ The import above loads only the concise package augmentation. In the author monorepo, repository-wide Claude instructions are already inherited from the root `CLAUDE.md`; in an installed package, consumer governance still comes from the authenticated `ds-canonical/fork` snapshot rather than this file.
package/README.md CHANGED
@@ -12,29 +12,21 @@ Tailwind v4 + React 18+ project required. License: UNLICENSED (internal use).
12
12
 
13
13
  ## Quick start(consumer side)
14
14
 
15
- ### 推薦:1-line preset(beta.9+,零偏移即取即用)
15
+ ### CSS entry — 3 line setup(Tailwind v4 canonical)
16
16
 
17
17
  ```css
18
18
  /* globals.css (or main.css / src/index.css) */
19
- @import '@qijenchen/design-system/styles/preset';
20
- ```
21
-
22
- 這 1 行展開等於:`tailwindcss` + DS tokens + `@source` directive(自動 scan DS source 產出 utility class)。Consumer 0 config,**Button 立即正確 render with 所有設計準則樣式**。
23
-
24
- > 為何要 preset:Tailwind v4 預設只掃 `src/**` 不掃 `node_modules`。沒 preset 的 `@source`,DS 元件內用的 `h-field-md` / `bg-primary-hover` 等 class 不會被產出 → 元件純文字無樣式。preset 把 setup 收成 1 行。
25
-
26
- ### 替代:4 步驟手動 setup(beta.8 或想自己管 Tailwind scan source)
27
-
28
- ```css
29
- /* globals.css */
30
19
  @import 'tailwindcss';
31
20
  @import '@qijenchen/design-system/styles/tokens';
32
-
33
- /* 必要:讓 Tailwind v4 掃 DS 元件原始碼產生 utility class */
34
21
  @source '../node_modules/@qijenchen/design-system/src/**/*.{js,ts,jsx,tsx}';
35
22
  ```
36
23
 
37
- > ⚠️ 漏 `@source` → 元件看起來像沒套樣式。
24
+ 3 行皆必要:
25
+ 1. `@import 'tailwindcss'` — Tailwind v4 entry
26
+ 2. `@import '@qijenchen/design-system/styles/tokens'` — DS token system(`@theme inline` + color / spacing / typography / radius)
27
+ 3. `@source '../node_modules/...'` — **不能省**。Tailwind v4 預設只掃 `src/**` 不掃 `node_modules`,沒這行 DS 元件內用的 `h-field-md` / `bg-primary-hover` 等 class 不會被產出 → 元件純文字無樣式。
28
+
29
+ > 為何不能合 1 行 preset?Tailwind v4 `@source` directive 在從 `node_modules` 來的 imported CSS 內不被正確 resolve(本 DS 試過 preset.css 失敗),consumer 必須 inline 寫 `@source` 在自己的 entry CSS。對齊 Material UI / Polaris / shadcn 慣例(各自 README 都要 consumer 寫 Tailwind config)。
38
30
 
39
31
  ### 2. App-level Provider(必要)
40
32
 
@@ -84,7 +76,7 @@ import { Button, Avatar, Dialog } from '@qijenchen/design-system'
84
76
  <Dialog>...</Dialog>
85
77
  ```
86
78
 
87
- **只用 top barrel import**(對齊 Material UI canonical)。`./components/<Name>` subpath 目前未支援 v1.0.0 stable 才會開啟( cross-component export name collision rename 完成)。
79
+ **預設用 top barrel import**(對齊 Material UI canonical)。需要更窄的 import surface 時,也支援 `@qijenchen/design-system/components/<Name>` / `patterns/<Name>` / `hooks/<name>` subpath( package `exports`)。
88
80
 
89
81
  Tree-shake 透過 `sideEffects: ["**/*.css"]` 配置自動 work,unused JS 被 bundler 剝除。
90
82
 
@@ -114,7 +106,7 @@ Token `--font-sans` stack = `Roboto, -apple-system, BlinkMacSystemFont, "Segoe U
114
106
 
115
107
  ## Storybook(consumer 看 DS 元件用法)
116
108
 
117
- - Production:**https://ajenchen.github.io/design-system/**
109
+ - Production:**https://ajenchen-design-system.netlify.app/**(GH Pages mirror: <https://ajenchen.github.io/design-system/>)
118
110
  - 看每個元件的「展示」/「設計規格」/「設計原則」3 層 stories
119
111
 
120
112
  ---
@@ -123,10 +115,11 @@ Token `--font-sans` stack = `Roboto, -apple-system, BlinkMacSystemFont, "Segoe U
123
115
 
124
116
  | 路徑 | 內容 |
125
117
  |---|---|
126
- | `@qijenchen/design-system` | Top barrel — components / patterns / hooks / lib utilities |
118
+ | `@qijenchen/design-system` | Top barrel — components / patterns / hooks / lib utilities / token JS mirrors。**策展後 front-door**(2026-07-14 API 策展):named re-exports,`*Meta`(componentMeta 建置/稽核 metadata)與 internal 單元不在此 |
119
+ | `@qijenchen/design-system/components/<Dir>`、`…/patterns/<dir>` | Per-component subpath — 完整 `export *`(含 `*Meta`;internal 單元「包裝後 + 自行確認」的唯一管道)|
127
120
  | `@qijenchen/design-system/styles/tokens` | CSS aggregator(全 token + Tailwind `@theme inline`)|
128
121
  | `@qijenchen/design-system/hooks/<name>` | 單一 hook subpath |
129
- | `@qijenchen/design-system/tokens/<category>` | Token JS 模組(eg `motion`, `icon-size`)— CSS 透過 `styles/tokens` aggregator |
122
+ | `@qijenchen/design-system/tokens/<path>` | Token JS 模組(編譯品;eg `tokens/motion/motion`、`tokens/uiSize/icon-size`)— 原始 `.ts` / `.spec.md` 不經此路徑曝露;CSS 透過 `styles/tokens` aggregator |
130
123
 
131
124
  **禁** import:
132
125
  - `@qijenchen/design-system/src/...`(internal source path,未來 SSOT 結構改會壞)
@@ -142,6 +135,7 @@ Token `--font-sans` stack = `Roboto, -apple-system, BlinkMacSystemFont, "Segoe U
142
135
  | `react-dom` | `>= 18.0.0` | peer |
143
136
  | `tailwindcss` | `>= 4.0.0` | peer,Tailwind v4 only |
144
137
  | `lucide-react` | `>= 0.400.0` | peer(consumer 已裝,DS 不重複,避免 hoisting 雙裝)|
138
+ | Document direction | **LTR only** | RTL 不在目前支援矩陣;元件可能使用 physical left/right、LTR scrollLeft 與未鏡像 directional icons。consumer 不得把 `dir="rtl"` 視為已支援。若未來要支援,必須以 DS-wide proposal 同步 tokens、layout、icons、keyboard/scroll behavior 與 visual/a11y matrix,不能逐元件局部宣稱。|
145
139
 
146
140
  ---
147
141
 
package/cli-init.mjs ADDED
@@ -0,0 +1,118 @@
1
+ #!/usr/bin/env node
2
+ // cli-init.mjs — `npx @qijenchen/design-system-init` consumer-side 1-cmd setup
3
+ //
4
+ // What it does:
5
+ // 1. Symlink consumer-cwd/.claude/design-system → node_modules/@qijenchen/design-system/ds-canonical
6
+ // → Claude Code 自動 load DS skills / hooks / rules / references / commands
7
+ // 2. Symlink consumer-cwd/CLAUDE.design-system.md → node_modules/@qijenchen/design-system/CLAUDE.md
8
+ // → Consumer 自己的 CLAUDE.md import this for inherit DS mindset
9
+ // 3. Print consumer should add to their entry CSS(3-line setup)
10
+ //
11
+ // Why symlink not copy:
12
+ // `npm update @qijenchen/design-system` 自動 sync 全部 SSOT(consumer 不用再跑)
13
+ // per user 2026-05-25「每次手動更新 package 都能獲取最新跟 ds repo 同步的 ssot 等所有檔案」
14
+ //
15
+ // Idempotent: re-run safe(skip if symlink exists pointing same place).
16
+
17
+ import { existsSync, mkdirSync, symlinkSync, readlinkSync, lstatSync, unlinkSync, writeFileSync } from 'node:fs'
18
+ import { join, relative, dirname } from 'node:path'
19
+ import { fileURLToPath } from 'node:url'
20
+
21
+ const CWD = process.cwd()
22
+ const __dirname = dirname(fileURLToPath(import.meta.url))
23
+ // 本檔 ship 在 package root(package.json bin: "./cli-init.mjs")→ __dirname 即
24
+ // node_modules/@qijenchen/design-system/。2026-07-16 修(PNG §4 疑點證實為 bug):原
25
+ // `join(__dirname, '..')` 指到 node_modules/@qijenchen/ → 所有 source「not found」→
26
+ // init 全程靜默 skip(symlink 一個都沒建,假成功)。
27
+ const PACKAGE_ROOT = __dirname
28
+
29
+ function ensureSymlink(from, to, label) {
30
+ const fromAbs = join(CWD, from)
31
+ const toAbs = join(PACKAGE_ROOT, to)
32
+ if (!existsSync(toAbs)) {
33
+ console.warn(`⚠️ source not found: ${toAbs} — skip ${label}`)
34
+ return
35
+ }
36
+ mkdirSync(dirname(fromAbs), { recursive: true })
37
+ if (existsSync(fromAbs) || lstatSync(fromAbs, { throwIfNoEntry: false })) {
38
+ // Check if it's already the right symlink
39
+ try {
40
+ const current = readlinkSync(fromAbs)
41
+ const expected = relative(dirname(fromAbs), toAbs)
42
+ if (current === expected) {
43
+ console.log(`✓ ${label} already in sync(${from})`)
44
+ return
45
+ }
46
+ // Wrong target — remove + redo
47
+ unlinkSync(fromAbs)
48
+ } catch {
49
+ console.warn(`⚠️ ${from} exists but not a symlink — skip(remove manually if you want to re-link)`)
50
+ return
51
+ }
52
+ }
53
+ const relPath = relative(dirname(fromAbs), toAbs)
54
+ symlinkSync(relPath, fromAbs, 'dir')
55
+ console.log(`✓ linked ${label}: ${from} → ${relPath}`)
56
+ }
57
+
58
+ console.log('═══ @qijenchen/design-system init ═══')
59
+ console.log(`Consumer cwd: ${CWD}`)
60
+ console.log(`Package root: ${PACKAGE_ROOT}`)
61
+ console.log('')
62
+
63
+ // 1. Symlink DS canonical → .claude/design-system/
64
+ ensureSymlink('.claude/design-system', 'ds-canonical', 'DS canonical(skills/hooks/rules/references/commands)')
65
+
66
+ // 2. Symlink DS CLAUDE.md → CLAUDE.design-system.md
67
+ // Consumer's own CLAUDE.md can `@import` or reference this file.
68
+ const dsCLAUDEsrc = join(PACKAGE_ROOT, 'CLAUDE.md')
69
+ if (existsSync(dsCLAUDEsrc)) {
70
+ const dest = join(CWD, 'CLAUDE.design-system.md')
71
+ if (!existsSync(dest)) {
72
+ const rel = relative(dirname(dest), dsCLAUDEsrc)
73
+ symlinkSync(rel, dest)
74
+ console.log(`✓ linked CLAUDE.design-system.md → ${rel}`)
75
+ } else {
76
+ console.log(`✓ CLAUDE.design-system.md already exists(skip)`)
77
+ }
78
+ }
79
+
80
+ // 3. AGENTS.md 投影到 consumer root(PNG P2.4:Codex 等 AGENTS.md 標準 agent 原生 discovery)
81
+ // Consumer-owned:存在則 skip + 提示 merge,絕不覆蓋。內容 = pointer stub(指 npm 內
82
+ // DS AGENTS.md 本體 → npm update 自動最新,stub 零 drift;對齊 ADR-1 禁 symlink 作唯一機制)。
83
+ const consumerAgents = join(CWD, 'AGENTS.md')
84
+ if (existsSync(join(PACKAGE_ROOT, 'AGENTS.md'))) {
85
+ if (!existsSync(consumerAgents)) {
86
+ writeFileSync(consumerAgents, `# AI agent instructions(this repo consumes @qijenchen/design-system)
87
+
88
+ <!-- generated once by qijenchen-ds-init;consumer-owned — 建立後歸你維護,可自由增寫。 -->
89
+
90
+ 本 repo 消費 \`@qijenchen/design-system\`。**寫 UI / 設計決策前先讀 DS 治理核心**(隨 npm update 自動最新):
91
+
92
+ - \`node_modules/@qijenchen/design-system/AGENTS.md\` — DS 治理核心(mindset / SSOT 消費 / 命名 / 4-Family)
93
+ - \`node_modules/@qijenchen/design-system/ds-canonical/\` — rules / references / skills 全文
94
+ - \`node_modules/@qijenchen/design-system/src/components/<Name>/<name>.spec.md\` + \`.stories.tsx\` — 元件何時用 / 官方 composition
95
+
96
+ (在下方加入你產品自己的 instructions。)
97
+ `)
98
+ console.log('✓ created AGENTS.md(pointer stub → DS 治理核心;consumer-owned,可自由增寫)')
99
+ } else {
100
+ console.log('✓ AGENTS.md already exists(skip;如要吃 DS 治理,手動 merge 一行指路 node_modules/@qijenchen/design-system/AGENTS.md)')
101
+ }
102
+ }
103
+
104
+ console.log('')
105
+ console.log('═══ Next steps ═══')
106
+ console.log('1. Add to your entry CSS(globals.css):')
107
+ console.log(' @import \'tailwindcss\';')
108
+ console.log(' @import \'@qijenchen/design-system/styles/tokens\';')
109
+ console.log(' @source \'../node_modules/@qijenchen/design-system/src/**/*.{js,ts,jsx,tsx}\';')
110
+ console.log('')
111
+ console.log('2. Wrap your app root in <TooltipProvider>:')
112
+ console.log(' import { TooltipProvider } from \'@qijenchen/design-system\'')
113
+ console.log(' <TooltipProvider><App /></TooltipProvider>')
114
+ console.log('')
115
+ console.log('3. Restart your Claude Code session to pick up newly-linked .claude/design-system/.')
116
+ console.log(' Claude 自動 load DS skills / hooks / rules / references / commands。')
117
+ console.log('')
118
+ console.log('All Done. Future `npm update @qijenchen/design-system` 會 auto-sync all SSOT via symlink.')
@@ -19,14 +19,14 @@ import * as AccordionPrimitive from '@radix-ui/react-accordion';
19
19
  */
20
20
  declare const Accordion: React.ForwardRefExoticComponent<(AccordionPrimitive.AccordionSingleProps | AccordionPrimitive.AccordionMultipleProps) & React.RefAttributes<HTMLDivElement>>;
21
21
  declare const AccordionItem: React.ForwardRefExoticComponent<Omit<AccordionPrimitive.AccordionItemProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
22
- declare const AccordionTrigger: React.ForwardRefExoticComponent<Omit<AccordionPrimitive.AccordionTriggerProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
23
- declare const AccordionContent: React.ForwardRefExoticComponent<Omit<AccordionPrimitive.AccordionContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
22
+ declare const AccordionTrigger: React.ForwardRefExoticComponent<Omit<Omit<AccordionPrimitive.AccordionTriggerProps & React.RefAttributes<HTMLButtonElement>, "ref">, "asChild"> & React.RefAttributes<HTMLButtonElement>>;
23
+ declare const AccordionContent: React.ForwardRefExoticComponent<Omit<Omit<AccordionPrimitive.AccordionContentProps & React.RefAttributes<HTMLDivElement>, "ref">, "asChild"> & React.RefAttributes<HTMLDivElement>>;
24
24
  export declare const accordionMeta: {
25
25
  readonly component: "Accordion";
26
26
  readonly family: null;
27
27
  readonly variants: {};
28
28
  readonly sizes: {};
29
- readonly states: readonly ["default", "hover", "active", "focus-visible", "disabled"];
29
+ readonly states: readonly ["default", "hover", "focus-visible", "disabled"];
30
30
  readonly tokens: {
31
31
  readonly bg: readonly [];
32
32
  readonly fg: readonly ["text-fg-disabled", "text-fg-muted", "text-fg-secondary", "text-foreground"];
@@ -1 +1 @@
1
- {"version":3,"file":"accordion.d.ts","sourceRoot":"","sources":["../../../src/components/Accordion/accordion.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,kBAAkB,MAAM,2BAA2B,CAAA;AAI/D;;;;;;;;;;;;;;;;GAgBG;AAEH,QAAA,MAAM,SAAS,8JAA0B,CAAA;AAEzC,QAAA,MAAM,aAAa,iKASjB,CAAA;AAGF,QAAA,MAAM,gBAAgB,0KA2BpB,CAAA;AAGF,QAAA,MAAM,gBAAgB,oKAcpB,CAAA;AAKF,eAAO,MAAM,aAAa;;;;;;;;;;;CAehB,CAAA;AAEV,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,CAAA"}
1
+ {"version":3,"file":"accordion.d.ts","sourceRoot":"","sources":["../../../src/components/Accordion/accordion.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,kBAAkB,MAAM,2BAA2B,CAAA;AAI/D;;;;;;;;;;;;;;;;GAgBG;AAEH,QAAA,MAAM,SAAS,8JAA0B,CAAA;AAEzC,QAAA,MAAM,aAAa,iKASjB,CAAA;AAGF,QAAA,MAAM,gBAAgB,2LAiCpB,CAAA;AAGF,QAAA,MAAM,gBAAgB,qLAgBpB,CAAA;AAKF,eAAO,MAAM,aAAa;;;;;;;;;;;CAehB,CAAA;AAEV,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,CAAA"}
@@ -24,6 +24,9 @@ const AccordionTrigger = React.forwardRef(({ className, children, ...props }, re
24
24
  "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
25
25
  // AccordionTrigger 單一 text-style 列 → semantic `text-fg-disabled`(非 opacity);Button canonical 對齊
26
26
  "disabled:text-fg-disabled disabled:pointer-events-none",
27
+ // 2026-05-31 M24:disabled 時 chevron(icon 載體)亦降 text-fg-disabled,不停留 text-fg-muted
28
+ //(muted=neutral-7 比 disabled=neutral-6 深 → 層級顛倒)。覆寫 chevron 自身 text-fg-muted。
29
+ "disabled:[&>svg]:text-fg-disabled",
27
30
  "[&[data-state=open]>svg]:rotate-180",
28
31
  className
29
32
  ),
@@ -61,7 +64,7 @@ const accordionMeta = {
61
64
  // non-family composite / overlay / layout
62
65
  variants: {},
63
66
  sizes: {},
64
- states: ["default", "hover", "active", "focus-visible", "disabled"],
67
+ states: ["default", "hover", "focus-visible", "disabled"],
65
68
  tokens: {
66
69
  bg: [],
67
70
  fg: ["text-fg-disabled", "text-fg-muted", "text-fg-secondary", "text-foreground"],
@@ -1 +1 @@
1
- {"version":3,"file":"accordion.js","sources":["../../../src/components/Accordion/accordion.tsx"],"sourcesContent":["import * as React from 'react'\nimport * as AccordionPrimitive from '@radix-ui/react-accordion'\nimport { ChevronDown } from 'lucide-react'\nimport { cn } from '@/lib/utils'\n\n/**\n * Accordion — Radix Accordion + 本 DS token\n *\n * 結構對齊 shadcn/ui accordion(Accordion / AccordionItem / AccordionTrigger /\n * AccordionContent),但視覺全改本 DS token。\n *\n * ── 視覺差異 vs shadcn 預設 ──\n * Shadcn 預設 hover 加底線(web 早期 link style),本 DS 改為文字色 tint\n * (`hover:text-fg-secondary`)——維持現代 SaaS 質感(Notion / Linear / Stripe 皆不用\n * 底線),但保留 hover 顏色變化作為可點擊提示(user 決策 2026-04-20)。\n * Chevron 用 Lucide + 本 DS icon size(16px),rotate 動畫 200ms。\n *\n * ── 使用情境 ──\n * FAQ / settings section 收合 / 多區塊表單分組 / 進階選項可隱藏。\n * 不用於「單純顯示 / 隱藏單一區塊」(那是 Collapsible,本 DS 尚未建立;用 details 或\n * 自組 toggle),Accordion 是「多個 item 可互斥或獨立收合」的 pattern。\n */\n\nconst Accordion = AccordionPrimitive.Root\n\nconst AccordionItem = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Item>\n>(({ className, ...props }, ref) => (\n <AccordionPrimitive.Item\n ref={ref}\n className={cn('border-b border-divider', className)}\n {...props}\n />\n))\nAccordionItem.displayName = 'AccordionItem'\n\nconst AccordionTrigger = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n <AccordionPrimitive.Header className=\"flex\">\n <AccordionPrimitive.Trigger\n ref={ref}\n className={cn(\n 'flex flex-1 items-center justify-between gap-2',\n 'py-4 text-body font-medium text-foreground text-left',\n 'transition-colors hover:text-fg-secondary',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',\n // AccordionTrigger 單一 text-style 列 → semantic `text-fg-disabled`(非 opacity);Button canonical 對齊\n 'disabled:text-fg-disabled disabled:pointer-events-none',\n \"[&[data-state=open]>svg]:rotate-180\",\n className,\n )}\n {...props}\n >\n {children}\n <ChevronDown\n size={16}\n className=\"shrink-0 text-fg-muted transition-transform duration-200\"\n aria-hidden\n />\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n))\nAccordionTrigger.displayName = 'AccordionTrigger'\n\nconst AccordionContent = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n <AccordionPrimitive.Content\n ref={ref}\n className={cn(\n 'overflow-hidden text-body text-fg-secondary',\n 'data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down',\n )}\n {...props}\n >\n <div className={cn('pb-4', className)}>{children}</div>\n </AccordionPrimitive.Content>\n))\nAccordionContent.displayName = 'AccordionContent'\n\n// Story auto-compile metadata — Phase 1 mechanical migration(2026-04-24)\n// Phase 2 fill needed: purpose descriptions + when rationale + world-class refs\nexport const accordionMeta = {\n component: 'Accordion',\n family: null, // non-family composite / overlay / layout\n variants: {\n\n },\n sizes: {\n\n },\n states: ['default', 'hover', 'active', 'focus-visible', 'disabled'],\n tokens: {\n bg: [],\n fg: ['text-fg-disabled', 'text-fg-muted', 'text-fg-secondary', 'text-foreground'],\n ring: ['ring-ring'],\n },\n} as const\n\nexport { Accordion, AccordionItem, AccordionTrigger, AccordionContent }\n"],"names":[],"mappings":";;;;;AAuBA,MAAM,YAAY,mBAAmB;AAErC,MAAM,gBAAgB,MAAM,WAG1B,CAAC,EAAE,WAAW,GAAG,MAAA,GAAS,QAC1B;AAAA,EAAC,mBAAmB;AAAA,EAAnB;AAAA,IACC;AAAA,IACA,WAAW,GAAG,2BAA2B,SAAS;AAAA,IACjD,GAAG;AAAA,EAAA;AACN,CACD;AACD,cAAc,cAAc;AAE5B,MAAM,mBAAmB,MAAM,WAG7B,CAAC,EAAE,WAAW,UAAU,GAAG,MAAA,GAAS,QACpC,oBAAC,mBAAmB,QAAnB,EAA0B,WAAU,QACnC,UAAA;AAAA,EAAC,mBAAmB;AAAA,EAAnB;AAAA,IACC;AAAA,IACA,WAAW;AAAA,MACT;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,MAEA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAED,GAAG;AAAA,IAEH,UAAA;AAAA,MAAA;AAAA,MACD;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,MAAM;AAAA,UACN,WAAU;AAAA,UACV,eAAW;AAAA,QAAA;AAAA,MAAA;AAAA,IACb;AAAA,EAAA;AACF,GACF,CACD;AACD,iBAAiB,cAAc;AAE/B,MAAM,mBAAmB,MAAM,WAG7B,CAAC,EAAE,WAAW,UAAU,GAAG,SAAS,QACpC;AAAA,EAAC,mBAAmB;AAAA,EAAnB;AAAA,IACC;AAAA,IACA,WAAW;AAAA,MACT;AAAA,MACA;AAAA,IAAA;AAAA,IAED,GAAG;AAAA,IAEJ,8BAAC,OAAA,EAAI,WAAW,GAAG,QAAQ,SAAS,GAAI,SAAA,CAAS;AAAA,EAAA;AACnD,CACD;AACD,iBAAiB,cAAc;AAIxB,MAAM,gBAAgB;AAAA,EAC3B,WAAW;AAAA,EACX,QAAQ;AAAA;AAAA,EACR,UAAU,CAAA;AAAA,EAGV,OAAO,CAAA;AAAA,EAGP,QAAQ,CAAC,WAAW,SAAS,UAAU,iBAAiB,UAAU;AAAA,EAClE,QAAQ;AAAA,IACN,IAAI,CAAA;AAAA,IACJ,IAAI,CAAC,oBAAoB,iBAAiB,qBAAqB,iBAAiB;AAAA,IAChF,MAAM,CAAC,WAAW;AAAA,EAAA;AAEtB;"}
1
+ {"version":3,"file":"accordion.js","sources":["../../../src/components/Accordion/accordion.tsx"],"sourcesContent":["import * as React from 'react'\nimport * as AccordionPrimitive from '@radix-ui/react-accordion'\nimport { ChevronDown } from 'lucide-react'\nimport { cn } from '@/lib/utils'\n\n/**\n * Accordion — Radix Accordion + 本 DS token\n *\n * 結構對齊 shadcn/ui accordion(Accordion / AccordionItem / AccordionTrigger /\n * AccordionContent),但視覺全改本 DS token。\n *\n * ── 視覺差異 vs shadcn 預設 ──\n * Shadcn 預設 hover 加底線(web 早期 link style),本 DS 改為文字色 tint\n * (`hover:text-fg-secondary`)——維持現代 SaaS 質感(Notion / Linear / Stripe 皆不用\n * 底線),但保留 hover 顏色變化作為可點擊提示(user 決策 2026-04-20)。\n * Chevron 用 Lucide + 本 DS icon size(16px),rotate 動畫 200ms。\n *\n * ── 使用情境 ──\n * FAQ / settings section 收合 / 多區塊表單分組 / 進階選項可隱藏。\n * 不用於「單純顯示 / 隱藏單一區塊」(那是 Collapsible,本 DS 尚未建立;用 details 或\n * 自組 toggle),Accordion 是「多個 item 可互斥或獨立收合」的 pattern。\n */\n\nconst Accordion = AccordionPrimitive.Root\n\nconst AccordionItem = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Item>\n>(({ className, ...props }, ref) => (\n <AccordionPrimitive.Item\n ref={ref}\n className={cn('border-b border-divider', className)}\n {...props}\n />\n))\nAccordionItem.displayName = 'AccordionItem'\n\nconst AccordionTrigger = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Trigger>,\n // asChild 不對外開放:Trigger 固定渲染 children + ChevronDown 兩個子節點,傳 asChild\n // 會讓 Radix Slot 觸發 React.Children.only runtime 錯(見 CLAUDE.md 失敗記憶索引\n // 「asChild 分支內部仍渲染多 children」)。固定 anatomy 見 accordion.spec.md「邊界狀態」。\n Omit<React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Trigger>, 'asChild'>\n>(({ className, children, ...props }, ref) => (\n <AccordionPrimitive.Header className=\"flex\">\n <AccordionPrimitive.Trigger\n ref={ref}\n className={cn(\n 'flex flex-1 items-center justify-between gap-2',\n 'py-4 text-body font-medium text-foreground text-left',\n 'transition-colors hover:text-fg-secondary',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',\n // AccordionTrigger 單一 text-style 列 → semantic `text-fg-disabled`(非 opacity);Button canonical 對齊\n 'disabled:text-fg-disabled disabled:pointer-events-none',\n // 2026-05-31 M24:disabled 時 chevron(icon 載體)亦降 text-fg-disabled,不停留 text-fg-muted\n //(muted=neutral-7 比 disabled=neutral-6 深 → 層級顛倒)。覆寫 chevron 自身 text-fg-muted。\n 'disabled:[&>svg]:text-fg-disabled',\n \"[&[data-state=open]>svg]:rotate-180\",\n className,\n )}\n {...props}\n >\n {children}\n <ChevronDown\n size={16}\n className=\"shrink-0 text-fg-muted transition-transform duration-200\"\n aria-hidden\n />\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n))\nAccordionTrigger.displayName = 'AccordionTrigger'\n\nconst AccordionContent = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Content>,\n // asChild 不對外開放:Content 固定以內層 <div className=\"pb-4\"> 包住 children,傳 asChild\n // 只會讓 Slot clone 該內層 div,consumer 元素無法成為 Content host(等同無效 API)。\n Omit<React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Content>, 'asChild'>\n>(({ className, children, ...props }, ref) => (\n <AccordionPrimitive.Content\n ref={ref}\n className={cn(\n 'overflow-hidden text-body text-fg-secondary',\n 'data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down',\n )}\n {...props}\n >\n <div className={cn('pb-4', className)}>{children}</div>\n </AccordionPrimitive.Content>\n))\nAccordionContent.displayName = 'AccordionContent'\n\n// Story auto-compile metadata — Phase 1 mechanical migration(2026-04-24)\n// Phase 2 fill needed: purpose descriptions + when rationale + world-class refs\nexport const accordionMeta = {\n component: 'Accordion',\n family: null, // non-family composite / overlay / layout\n variants: {\n\n },\n sizes: {\n\n },\n states: ['default', 'hover', 'focus-visible', 'disabled'],\n tokens: {\n bg: [],\n fg: ['text-fg-disabled', 'text-fg-muted', 'text-fg-secondary', 'text-foreground'],\n ring: ['ring-ring'],\n },\n} as const\n\nexport { Accordion, AccordionItem, AccordionTrigger, AccordionContent }\n"],"names":[],"mappings":";;;;;AAuBA,MAAM,YAAY,mBAAmB;AAErC,MAAM,gBAAgB,MAAM,WAG1B,CAAC,EAAE,WAAW,GAAG,MAAA,GAAS,QAC1B;AAAA,EAAC,mBAAmB;AAAA,EAAnB;AAAA,IACC;AAAA,IACA,WAAW,GAAG,2BAA2B,SAAS;AAAA,IACjD,GAAG;AAAA,EAAA;AACN,CACD;AACD,cAAc,cAAc;AAE5B,MAAM,mBAAmB,MAAM,WAM7B,CAAC,EAAE,WAAW,UAAU,GAAG,MAAA,GAAS,QACpC,oBAAC,mBAAmB,QAAnB,EAA0B,WAAU,QACnC,UAAA;AAAA,EAAC,mBAAmB;AAAA,EAAnB;AAAA,IACC;AAAA,IACA,WAAW;AAAA,MACT;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,MAEA;AAAA;AAAA;AAAA,MAGA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAED,GAAG;AAAA,IAEH,UAAA;AAAA,MAAA;AAAA,MACD;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,MAAM;AAAA,UACN,WAAU;AAAA,UACV,eAAW;AAAA,QAAA;AAAA,MAAA;AAAA,IACb;AAAA,EAAA;AACF,GACF,CACD;AACD,iBAAiB,cAAc;AAE/B,MAAM,mBAAmB,MAAM,WAK7B,CAAC,EAAE,WAAW,UAAU,GAAG,SAAS,QACpC;AAAA,EAAC,mBAAmB;AAAA,EAAnB;AAAA,IACC;AAAA,IACA,WAAW;AAAA,MACT;AAAA,MACA;AAAA,IAAA;AAAA,IAED,GAAG;AAAA,IAEJ,8BAAC,OAAA,EAAI,WAAW,GAAG,QAAQ,SAAS,GAAI,SAAA,CAAS;AAAA,EAAA;AACnD,CACD;AACD,iBAAiB,cAAc;AAIxB,MAAM,gBAAgB;AAAA,EAC3B,WAAW;AAAA,EACX,QAAQ;AAAA;AAAA,EACR,UAAU,CAAA;AAAA,EAGV,OAAO,CAAA;AAAA,EAGP,QAAQ,CAAC,WAAW,SAAS,iBAAiB,UAAU;AAAA,EACxD,QAAQ;AAAA,IACN,IAAI,CAAA;AAAA,IACJ,IAAI,CAAC,oBAAoB,iBAAiB,qBAAqB,iBAAiB;AAAA,IAChF,MAAM,CAAC,WAAW;AAAA,EAAA;AAEtB;"}
@@ -0,0 +1,2 @@
1
+ export * from './accordion';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Accordion/index.ts"],"names":[],"mappings":"AAIA,cAAc,aAAa,CAAA"}
@@ -0,0 +1,9 @@
1
+ import { Accordion, AccordionContent, AccordionItem, AccordionTrigger, accordionMeta } from "./accordion.js";
2
+ export {
3
+ Accordion,
4
+ AccordionContent,
5
+ AccordionItem,
6
+ AccordionTrigger,
7
+ accordionMeta
8
+ };
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -0,0 +1,86 @@
1
+ /**
2
+ * AccountMenu — 全域 chrome「自己的帳號入口」(24px avatar 觸發 + 帳號選單)
3
+ *
4
+ * ── 定位 ──
5
+ * Primary-header 派 globalHeader 右側(desktop)/ mobile Sheet SidebarHeader 右側的
6
+ * 帳號入口成品元件:點 avatar 開「個人資料 / 設定 / 登出」navigation 選單。
7
+ * 是「自己」的入口,不是看「別人」的 ProfileCard(後者預設動作 Chat/通話,語義是聯絡某人)。
8
+ * **Placement-agnostic**:哪個 mode 放哪裡是 consumer 職責,放置 canonical owner =
9
+ * `../AppShell/app-shell.spec.md`「帳號入口(Account entry)放置 SSOT」(本元件不收 mode prop,
10
+ * 不複製該 SSOT;consumer 讀 `useAppShell().layout` + `useSidebar().isMobile` 決定放置)。
11
+ *
12
+ * ── 實作基礎 ──
13
+ * 消費:Avatar(raw size=24 trigger)+ DropdownMenu(Trigger asChild / Content / Group / Label / Item)
14
+ * 對應 pattern:patterns/header-canonical(4.5 chrome header avatar SSOT)
15
+ *
16
+ * ── 消費的 SSOT ──
17
+ * - components: [Avatar, DropdownMenu(DropdownMenuTrigger/Content/Group/Label/Item)]
18
+ * - patterns: [header-canonical 4.5(chrome header avatar = raw `<Avatar size={24}>`,非 ItemAvatar)]
19
+ * - tokens: [--chrome-header-avatar-size(JS 端 24 literal sync), --ring(focus-visible ring canonical)]
20
+ * - spec refs: app-shell.spec.md「帳號入口(Account entry)放置 SSOT」/ header-canonical.spec.md 4.5
21
+ * / dropdown-menu.spec.md / profile-card.spec.md(近親分界:看別人 vs 自己)
22
+ *
23
+ * 升級歷程:2026-06-17 `AppShell/_demo-helpers.tsx` demo helper 誕生(user directive)→
24
+ * 2026-07-30 F9 升 public:app-shell.spec.md + sidebar.spec.md 兩處 canonical 都 mandate
25
+ * 消費本元件,「文件教得到、import 拿不到」= DT-EXPORT 斷鏈同款缺口(gen-component-indexes.mjs
26
+ * 檔頭 anchor),npm consumer 被迫整包重造。世界級對照:Atlassian `@atlaskit/atlassian-navigation`
27
+ * 出貨專門 `Profile` 元件作 top bar 帳號 trigger(ProfileProps = IconButtonProps,選單內容
28
+ * composition;https://unpkg.com/@atlaskit/atlassian-navigation/dist/types/index.d.ts +
29
+ * dist/types/components/Profile/types.d.ts);shadcn / Primer 走 DropdownMenu / ActionMenu
30
+ * composition recipe(https://ui.shadcn.com/docs/components/dropdown-menu「An account switcher
31
+ * dropdown triggered by an avatar」/ https://primer.style/components/action-menu)。本元件 =
32
+ * Atlassian 專門元件 + shadcn canonical 內容組(Label(user)+ Groups)的收斂。
33
+ */
34
+ import * as React from 'react';
35
+ import { type AvatarData } from '../../components/Avatar/avatar';
36
+ export interface AccountMenuUser {
37
+ /** 顯示名(選單 Label 區;alt 未傳時同時作 avatar alt fallback) */
38
+ name: string;
39
+ /**
40
+ * Avatar 資料(消費既有 `AvatarData` type)。`hoverCard` 刻意排除:帳號入口是「自己」,
41
+ * 不掛 ProfileCard(per app-shell.spec.md 帳號入口 SSOT「不用 ProfileCard」);
42
+ * `alt` 可省,fallback `name`。
43
+ */
44
+ avatar?: Omit<AvatarData, 'hoverCard' | 'alt'> & {
45
+ alt?: string;
46
+ };
47
+ }
48
+ export interface AccountMenuProps {
49
+ /** 當前登入使用者 */
50
+ user: AccountMenuUser;
51
+ /** 「個人資料」item handler(default 選單消費;命名對齊 `PersonData.onViewProfile` 既有 canonical) */
52
+ onViewProfile?: () => void;
53
+ /** 「設定」item handler(default 選單消費) */
54
+ onOpenSettings?: () => void;
55
+ /** 「登出」item handler(default 選單消費) */
56
+ onSignOut?: () => void;
57
+ /**
58
+ * 取代 default 選單內容(自組 `DropdownMenuGroup` / `DropdownMenuItem`;i18n / 產品自訂項走這)。
59
+ * Identity Label(user.name)恆由本元件渲染於選單頂(對齊 shadcn account 例 Label(user)慣例);
60
+ * 傳入 children 時三個 default callback 不再消費。
61
+ */
62
+ children?: React.ReactNode;
63
+ /** 選單對齊(轉傳 DropdownMenuContent `align`)。預設 `'end'`:右上入口靠右展開(demo baseline) */
64
+ align?: 'start' | 'center' | 'end';
65
+ /** Trigger aria-label(i18n override,對齊 Avatar `badgeAriaLabel` pattern)。預設「帳號與設定」 */
66
+ triggerAriaLabel?: string;
67
+ /** 預設展開(uncontrolled,Radix passthrough)。Storybook OpenSnapshot(M15 visual-audit coverable)用 */
68
+ defaultOpen?: boolean;
69
+ }
70
+ export declare function AccountMenu({ user, onViewProfile, onOpenSettings, onSignOut, children, align, triggerAriaLabel, defaultOpen, }: AccountMenuProps): import("react/jsx-runtime").JSX.Element;
71
+ export declare namespace AccountMenu {
72
+ var displayName: string;
73
+ }
74
+ export declare const accountMenuMeta: {
75
+ readonly component: "AccountMenu";
76
+ readonly family: null;
77
+ readonly variants: {};
78
+ readonly sizes: {};
79
+ readonly states: readonly ["default", "focus-visible"];
80
+ readonly tokens: {
81
+ readonly bg: readonly [];
82
+ readonly fg: readonly [];
83
+ readonly ring: readonly ["--ring"];
84
+ };
85
+ };
86
+ //# sourceMappingURL=account-menu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-menu.d.ts","sourceRoot":"","sources":["../../../src/components/AccountMenu/account-menu.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EAAU,KAAK,UAAU,EAAE,MAAM,0CAA0C,CAAA;AAYlF,MAAM,WAAW,eAAe;IAC9B,qDAAqD;IACrD,IAAI,EAAE,MAAM,CAAA;IACZ;;;;OAIG;IACH,MAAM,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,WAAW,GAAG,KAAK,CAAC,GAAG;QAAE,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAClE;AAED,MAAM,WAAW,gBAAgB;IAC/B,cAAc;IACd,IAAI,EAAE,eAAe,CAAA;IACrB,oFAAoF;IACpF,aAAa,CAAC,EAAE,MAAM,IAAI,CAAA;IAC1B,qCAAqC;IACrC,cAAc,CAAC,EAAE,MAAM,IAAI,CAAA;IAC3B,qCAAqC;IACrC,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B,8EAA8E;IAC9E,KAAK,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAA;IAClC,qFAAqF;IACrF,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,+FAA+F;IAC/F,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AAID,wBAAgB,WAAW,CAAC,EAC1B,IAAI,EACJ,aAAa,EACb,cAAc,EACd,SAAS,EACT,QAAQ,EACR,KAAa,EACb,gBAA0B,EAC1B,WAAW,GACZ,EAAE,gBAAgB,2CA6DlB;yBAtEe,WAAW;;;AA2E3B,eAAO,MAAM,eAAe;;;;;;;;;;;CAWlB,CAAA"}
@@ -0,0 +1,64 @@
1
+ import { jsxs, jsx, Fragment } from "react/jsx-runtime";
2
+ import { User, Settings, LogOut } from "lucide-react";
3
+ import { Avatar } from "../Avatar/avatar.js";
4
+ import { DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuGroup, DropdownMenuLabel, DropdownMenuItem } from "../DropdownMenu/dropdown-menu.js";
5
+ function AccountMenu({
6
+ user,
7
+ onViewProfile,
8
+ onOpenSettings,
9
+ onSignOut,
10
+ children,
11
+ align = "end",
12
+ triggerAriaLabel = "帳號與設定",
13
+ defaultOpen
14
+ }) {
15
+ if (process.env.NODE_ENV !== "production" && !children && !onViewProfile && !onOpenSettings && !onSignOut) {
16
+ console.warn(
17
+ "[DS AccountMenu] default 選單項未接 onViewProfile/onOpenSettings/onSignOut——item 點擊無反應。請傳入 callback 或自組 children。"
18
+ );
19
+ }
20
+ const avatar = user.avatar ?? {};
21
+ return /* @__PURE__ */ jsxs(DropdownMenu, { defaultOpen, children: [
22
+ /* @__PURE__ */ jsx(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsx(
23
+ "button",
24
+ {
25
+ type: "button",
26
+ "aria-label": triggerAriaLabel,
27
+ className: "flex items-center justify-center rounded-full focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-1",
28
+ children: /* @__PURE__ */ jsx(Avatar, { size: 24, ...avatar, alt: avatar.alt ?? user.name })
29
+ }
30
+ ) }),
31
+ /* @__PURE__ */ jsx(DropdownMenuContent, { align, children: children ? /* @__PURE__ */ jsxs(Fragment, { children: [
32
+ /* @__PURE__ */ jsx(DropdownMenuGroup, { children: /* @__PURE__ */ jsx(DropdownMenuLabel, { children: user.name }) }),
33
+ children
34
+ ] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
35
+ /* @__PURE__ */ jsxs(DropdownMenuGroup, { children: [
36
+ /* @__PURE__ */ jsx(DropdownMenuLabel, { children: user.name }),
37
+ /* @__PURE__ */ jsx(DropdownMenuItem, { startIcon: User, onSelect: onViewProfile, children: "個人資料" }),
38
+ /* @__PURE__ */ jsx(DropdownMenuItem, { startIcon: Settings, onSelect: onOpenSettings, children: "設定" })
39
+ ] }),
40
+ /* @__PURE__ */ jsx(DropdownMenuGroup, { children: /* @__PURE__ */ jsx(DropdownMenuItem, { startIcon: LogOut, onSelect: onSignOut, children: "登出" }) })
41
+ ] }) })
42
+ ] });
43
+ }
44
+ AccountMenu.displayName = "AccountMenu";
45
+ const accountMenuMeta = {
46
+ component: "AccountMenu",
47
+ family: null,
48
+ // composite(trigger = chrome header 24px avatar;浮層 = DropdownMenu Family 1 消費者)
49
+ variants: {},
50
+ sizes: {},
51
+ // trigger avatar 24px density-fixed(header-canonical.spec.md 4.5),無 size 軸 → 兩欄留空為 intentional
52
+ states: ["default", "focus-visible"],
53
+ tokens: {
54
+ bg: [],
55
+ fg: [],
56
+ ring: ["--ring"]
57
+ // trigger focus-visible ring canonical
58
+ }
59
+ };
60
+ export {
61
+ AccountMenu,
62
+ accountMenuMeta
63
+ };
64
+ //# sourceMappingURL=account-menu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-menu.js","sources":["../../../src/components/AccountMenu/account-menu.tsx"],"sourcesContent":["/**\n * AccountMenu — 全域 chrome「自己的帳號入口」(24px avatar 觸發 + 帳號選單)\n *\n * ── 定位 ──\n * Primary-header 派 globalHeader 右側(desktop)/ mobile Sheet SidebarHeader 右側的\n * 帳號入口成品元件:點 avatar 開「個人資料 / 設定 / 登出」navigation 選單。\n * 是「自己」的入口,不是看「別人」的 ProfileCard(後者預設動作 Chat/通話,語義是聯絡某人)。\n * **Placement-agnostic**:哪個 mode 放哪裡是 consumer 職責,放置 canonical owner =\n * `../AppShell/app-shell.spec.md`「帳號入口(Account entry)放置 SSOT」(本元件不收 mode prop,\n * 不複製該 SSOT;consumer 讀 `useAppShell().layout` + `useSidebar().isMobile` 決定放置)。\n *\n * ── 實作基礎 ──\n * 消費:Avatar(raw size=24 trigger)+ DropdownMenu(Trigger asChild / Content / Group / Label / Item)\n * 對應 pattern:patterns/header-canonical(4.5 chrome header avatar SSOT)\n *\n * ── 消費的 SSOT ──\n * - components: [Avatar, DropdownMenu(DropdownMenuTrigger/Content/Group/Label/Item)]\n * - patterns: [header-canonical 4.5(chrome header avatar = raw `<Avatar size={24}>`,非 ItemAvatar)]\n * - tokens: [--chrome-header-avatar-size(JS 端 24 literal sync), --ring(focus-visible ring canonical)]\n * - spec refs: app-shell.spec.md「帳號入口(Account entry)放置 SSOT」/ header-canonical.spec.md 4.5\n * / dropdown-menu.spec.md / profile-card.spec.md(近親分界:看別人 vs 自己)\n *\n * 升級歷程:2026-06-17 `AppShell/_demo-helpers.tsx` demo helper 誕生(user directive)→\n * 2026-07-30 F9 升 public:app-shell.spec.md + sidebar.spec.md 兩處 canonical 都 mandate\n * 消費本元件,「文件教得到、import 拿不到」= DT-EXPORT 斷鏈同款缺口(gen-component-indexes.mjs\n * 檔頭 anchor),npm consumer 被迫整包重造。世界級對照:Atlassian `@atlaskit/atlassian-navigation`\n * 出貨專門 `Profile` 元件作 top bar 帳號 trigger(ProfileProps = IconButtonProps,選單內容\n * composition;https://unpkg.com/@atlaskit/atlassian-navigation/dist/types/index.d.ts +\n * dist/types/components/Profile/types.d.ts);shadcn / Primer 走 DropdownMenu / ActionMenu\n * composition recipe(https://ui.shadcn.com/docs/components/dropdown-menu「An account switcher\n * dropdown triggered by an avatar」/ https://primer.style/components/action-menu)。本元件 =\n * Atlassian 專門元件 + shadcn canonical 內容組(Label(user)+ Groups)的收斂。\n */\nimport * as React from 'react'\nimport { User, Settings, LogOut } from 'lucide-react'\nimport { Avatar, type AvatarData } from '@/design-system/components/Avatar/avatar'\nimport {\n DropdownMenu,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuGroup,\n} from '@/design-system/components/DropdownMenu/dropdown-menu'\n\n// ── Types ───────────────────────────────────────────────────────────────────\n\nexport interface AccountMenuUser {\n /** 顯示名(選單 Label 區;alt 未傳時同時作 avatar alt fallback) */\n name: string\n /**\n * Avatar 資料(消費既有 `AvatarData` type)。`hoverCard` 刻意排除:帳號入口是「自己」,\n * 不掛 ProfileCard(per app-shell.spec.md 帳號入口 SSOT「不用 ProfileCard」);\n * `alt` 可省,fallback `name`。\n */\n avatar?: Omit<AvatarData, 'hoverCard' | 'alt'> & { alt?: string }\n}\n\nexport interface AccountMenuProps {\n /** 當前登入使用者 */\n user: AccountMenuUser\n /** 「個人資料」item handler(default 選單消費;命名對齊 `PersonData.onViewProfile` 既有 canonical) */\n onViewProfile?: () => void\n /** 「設定」item handler(default 選單消費) */\n onOpenSettings?: () => void\n /** 「登出」item handler(default 選單消費) */\n onSignOut?: () => void\n /**\n * 取代 default 選單內容(自組 `DropdownMenuGroup` / `DropdownMenuItem`;i18n / 產品自訂項走這)。\n * Identity Label(user.name)恆由本元件渲染於選單頂(對齊 shadcn account 例 Label(user)慣例);\n * 傳入 children 時三個 default callback 不再消費。\n */\n children?: React.ReactNode\n /** 選單對齊(轉傳 DropdownMenuContent `align`)。預設 `'end'`:右上入口靠右展開(demo baseline) */\n align?: 'start' | 'center' | 'end'\n /** Trigger aria-label(i18n override,對齊 Avatar `badgeAriaLabel` pattern)。預設「帳號與設定」 */\n triggerAriaLabel?: string\n /** 預設展開(uncontrolled,Radix passthrough)。Storybook OpenSnapshot(M15 visual-audit coverable)用 */\n defaultOpen?: boolean\n}\n\n// ── AccountMenu ─────────────────────────────────────────────────────────────\n\nexport function AccountMenu({\n user,\n onViewProfile,\n onOpenSettings,\n onSignOut,\n children,\n align = 'end',\n triggerAriaLabel = '帳號與設定',\n defaultOpen,\n}: AccountMenuProps) {\n // Dev-mode warning(對齊 ProfileCardDefaultActions dev-warn 先例):default 選單項沒接任何\n // handler = item 點了永遠沒反應;production 必接 callback 或自組 children。\n if (\n process.env.NODE_ENV !== 'production' &&\n !children &&\n !onViewProfile &&\n !onOpenSettings &&\n !onSignOut\n ) {\n // eslint-disable-next-line no-console\n console.warn(\n '[DS AccountMenu] default 選單項未接 onViewProfile/onOpenSettings/onSignOut——item 點擊無反應。請傳入 callback 或自組 children。'\n )\n }\n const avatar = user.avatar ?? {}\n return (\n <DropdownMenu defaultOpen={defaultOpen}>\n <DropdownMenuTrigger asChild>\n {/* 互動感由 focus-visible ring 提供(無 hover bg,chrome 輕量 entry),不放大到 field height\n — per app-shell.spec.md「Avatar 尺寸 + 邊距」+ header-canonical.spec.md 4.5 */}\n <button\n type=\"button\"\n aria-label={triggerAriaLabel}\n className=\"flex items-center justify-center rounded-full focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-1\"\n >\n {/* 24 per header-canonical.spec.md 4.5 chrome header avatar canonical(brand + account 同尺寸); sync with --chrome-header-avatar-size */}\n <Avatar size={24} {...avatar} alt={avatar.alt ?? user.name} />\n </button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align={align}>\n {children ? (\n <>\n <DropdownMenuGroup>\n <DropdownMenuLabel>{user.name}</DropdownMenuLabel>\n </DropdownMenuGroup>\n {children}\n </>\n ) : (\n <>\n {/* Default 選單集合 = app-shell.spec.md「入口開什麼」canonical(個人資料 / 設定 / 登出,\n 登出獨立 group — 破壞性動作分區,對齊 GitHub / Gmail / Slack 帳號選單慣例) */}\n <DropdownMenuGroup>\n <DropdownMenuLabel>{user.name}</DropdownMenuLabel>\n <DropdownMenuItem startIcon={User} onSelect={onViewProfile}>\n 個人資料\n </DropdownMenuItem>\n <DropdownMenuItem startIcon={Settings} onSelect={onOpenSettings}>\n 設定\n </DropdownMenuItem>\n </DropdownMenuGroup>\n <DropdownMenuGroup>\n <DropdownMenuItem startIcon={LogOut} onSelect={onSignOut}>\n 登出\n </DropdownMenuItem>\n </DropdownMenuGroup>\n </>\n )}\n </DropdownMenuContent>\n </DropdownMenu>\n )\n}\nAccountMenu.displayName = 'AccountMenu'\n\n// Story auto-compile metadata — F9 public 升級(2026-07-30)\n// Phase 2 fill needed: purpose descriptions + when rationale\nexport const accountMenuMeta = {\n component: 'AccountMenu',\n family: null, // composite(trigger = chrome header 24px avatar;浮層 = DropdownMenu Family 1 消費者)\n variants: {},\n sizes: {}, // trigger avatar 24px density-fixed(header-canonical.spec.md 4.5),無 size 軸 → 兩欄留空為 intentional\n states: ['default', 'focus-visible'],\n tokens: {\n bg: [],\n fg: [],\n ring: ['--ring'], // trigger focus-visible ring canonical\n },\n} as const\n"],"names":[],"mappings":";;;;AAmFO,SAAS,YAAY;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,QAAQ;AAAA,EACR,mBAAmB;AAAA,EACnB;AACF,GAAqB;AAGnB,MACE,QAAQ,IAAI,aAAa,gBACzB,CAAC,YACD,CAAC,iBACD,CAAC,kBACD,CAAC,WACD;AAEA,YAAQ;AAAA,MACN;AAAA,IAAA;AAAA,EAEJ;AACA,QAAM,SAAS,KAAK,UAAU,CAAA;AAC9B,SACE,qBAAC,gBAAa,aACZ,UAAA;AAAA,IAAA,oBAAC,qBAAA,EAAoB,SAAO,MAG1B,UAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,cAAY;AAAA,QACZ,WAAU;AAAA,QAGV,UAAA,oBAAC,QAAA,EAAO,MAAM,IAAK,GAAG,QAAQ,KAAK,OAAO,OAAO,KAAK,KAAA,CAAM;AAAA,MAAA;AAAA,IAAA,GAEhE;AAAA,IACA,oBAAC,qBAAA,EAAoB,OAClB,UAAA,WACC,qBAAA,UAAA,EACE,UAAA;AAAA,MAAA,oBAAC,mBAAA,EACC,UAAA,oBAAC,mBAAA,EAAmB,UAAA,KAAK,MAAK,GAChC;AAAA,MACC;AAAA,IAAA,EAAA,CACH,IAEA,qBAAA,UAAA,EAGE,UAAA;AAAA,MAAA,qBAAC,mBAAA,EACC,UAAA;AAAA,QAAA,oBAAC,mBAAA,EAAmB,eAAK,KAAA,CAAK;AAAA,4BAC7B,kBAAA,EAAiB,WAAW,MAAM,UAAU,eAAe,UAAA,QAE5D;AAAA,4BACC,kBAAA,EAAiB,WAAW,UAAU,UAAU,gBAAgB,UAAA,KAAA,CAEjE;AAAA,MAAA,GACF;AAAA,MACA,oBAAC,qBACC,UAAA,oBAAC,kBAAA,EAAiB,WAAW,QAAQ,UAAU,WAAW,UAAA,KAAA,CAE1D,EAAA,CACF;AAAA,IAAA,EAAA,CACF,EAAA,CAEJ;AAAA,EAAA,GACF;AAEJ;AACA,YAAY,cAAc;AAInB,MAAM,kBAAkB;AAAA,EAC7B,WAAW;AAAA,EACX,QAAQ;AAAA;AAAA,EACR,UAAU,CAAA;AAAA,EACV,OAAO,CAAA;AAAA;AAAA,EACP,QAAQ,CAAC,WAAW,eAAe;AAAA,EACnC,QAAQ;AAAA,IACN,IAAI,CAAA;AAAA,IACJ,IAAI,CAAA;AAAA,IACJ,MAAM,CAAC,QAAQ;AAAA;AAAA,EAAA;AAEnB;"}
@@ -0,0 +1,2 @@
1
+ export * from './account-menu';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/AccountMenu/index.ts"],"names":[],"mappings":"AAIA,cAAc,gBAAgB,CAAA"}
@@ -0,0 +1,6 @@
1
+ import { AccountMenu, accountMenuMeta } from "./account-menu.js";
2
+ export {
3
+ AccountMenu,
4
+ accountMenuMeta
5
+ };
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -10,13 +10,18 @@ export interface AlertProps extends Omit<React.HTMLAttributes<HTMLDivElement>, '
10
10
  title: React.ReactNode;
11
11
  description?: React.ReactNode;
12
12
  endContent?: React.ReactNode;
13
+ /**
14
+ * 顯示關閉鈕(預設 true)。**需同時傳 `onDismiss` 才會渲染 X** — Alert 是 controlled-only
15
+ * (不自我移除),無 handler 的 X 是死按鈕(2026-07-05 D4;對齊 Polaris Banner / Ant Alert)。
16
+ * 條件判斷 SSOT 在 Notice(notice.tsx `showDismiss`),Alert 原樣 forward。
17
+ */
13
18
  dismissible?: boolean;
14
19
  onDismiss?: () => void;
15
20
  }
16
21
  declare const Alert: React.ForwardRefExoticComponent<AlertProps & React.RefAttributes<HTMLDivElement>>;
17
22
  export declare const alertMeta: {
18
23
  readonly component: "Alert";
19
- readonly family: null;
24
+ readonly family: 2;
20
25
  readonly variants: {
21
26
  readonly neutral: {
22
27
  readonly purpose: "中性提示(系統公告、非緊急說明);無情緒色";
@@ -35,7 +40,7 @@ export declare const alertMeta: {
35
40
  };
36
41
  };
37
42
  readonly sizes: {};
38
- readonly states: readonly ["default", "hover", "active", "focus-visible", "disabled"];
43
+ readonly states: readonly ["default"];
39
44
  readonly tokens: {
40
45
  readonly bg: readonly ["bg-error", "bg-error-subtle", "bg-info", "bg-info-subtle", "bg-muted", "bg-success", "bg-success-subtle", "bg-surface-raised", "bg-warning", "bg-warning-subtle"];
41
46
  readonly fg: readonly ["text-foreground"];
@@ -1 +1 @@
1
- {"version":3,"file":"alert.d.ts","sourceRoot":"","sources":["../../../src/components/Alert/alert.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAEjE,OAAO,EAA8C,KAAK,aAAa,EAAE,MAAM,0CAA0C,CAAA;AA2CzH,QAAA,MAAM,aAAa;;8EAQjB,CAAA;AAEF,MAAM,WAAW,UACf,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC,EACzD,YAAY,CAAC,OAAO,aAAa,CAAC;IACpC,OAAO,CAAC,EAAE,aAAa,CAAA;IACvB,UAAU,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAA;IAC/B,KAAK,EAAE,KAAK,CAAC,SAAS,CAAA;IACtB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC7B,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC5B,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;CACvB;AAGD,QAAA,MAAM,KAAK,mFA2FV,CAAA;AAMD,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkBZ,CAAA;AAEV,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,CAAA"}
1
+ {"version":3,"file":"alert.d.ts","sourceRoot":"","sources":["../../../src/components/Alert/alert.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAEjE,OAAO,EAA8C,KAAK,aAAa,EAAE,MAAM,0CAA0C,CAAA;AA8CzH,QAAA,MAAM,aAAa;;8EAQjB,CAAA;AAEF,MAAM,WAAW,UACf,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC,EACzD,YAAY,CAAC,OAAO,aAAa,CAAC;IACpC,OAAO,CAAC,EAAE,aAAa,CAAA;IACvB,UAAU,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAA;IAC/B,KAAK,EAAE,KAAK,CAAC,SAAS,CAAA;IACtB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC7B,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC5B;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;CACvB;AAGD,QAAA,MAAM,KAAK,mFA8FV,CAAA;AAMD,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkBZ,CAAA;AAEV,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,CAAA"}
@@ -5,10 +5,10 @@ import { cn } from "../../lib/utils.js";
5
5
  import { useInverseTheme, SUBTLE_ICON_COLOR, Notice } from "../Notice/notice.js";
6
6
  const SUBTLE_CONTAINER = {
7
7
  neutral: "bg-muted border border-border",
8
- info: "bg-info-subtle border border-[var(--info-hover)]",
9
- success: "bg-success-subtle border border-[var(--success-hover)]",
10
- warning: "bg-warning-subtle border border-[var(--warning-hover)]",
11
- error: "bg-error-subtle border border-[var(--error-hover)]"
8
+ info: "bg-info-subtle border border-[var(--info-text)]",
9
+ success: "bg-success-subtle border border-[var(--success-text)]",
10
+ warning: "bg-warning-subtle border border-[var(--warning-text)]",
11
+ error: "bg-error-subtle border border-[var(--error-text)]"
12
12
  };
13
13
  const SOLID_HUE_BG = {
14
14
  info: "bg-info",
@@ -39,7 +39,10 @@ const Alert = React.forwardRef(
39
39
  title,
40
40
  description,
41
41
  endContent,
42
- dismissible = true,
42
+ // 2026-07-05 D4:不 destructure-default(原 `= true` 會把「consumer 沒傳」materialize 成顯式
43
+ // true,讓 Notice 的 dev-warn 無法分辨消費端矛盾)。等效預設 true 由 Notice showDismiss
44
+ // `!== false` 承擔,行為不變;X 僅在同時傳 onDismiss 時渲染(SSOT 在 notice.tsx)。
45
+ dismissible,
43
46
  onDismiss,
44
47
  className,
45
48
  ...props
@@ -106,8 +109,8 @@ const Alert = React.forwardRef(
106
109
  Alert.displayName = "Alert";
107
110
  const alertMeta = {
108
111
  component: "Alert",
109
- family: null,
110
- // non-family composite / overlay / layout
112
+ family: 2,
113
+ // List item(對齊 alert.spec.md frontmatter family: 2)
111
114
  variants: {
112
115
  neutral: { purpose: "中性提示(系統公告、非緊急說明);無情緒色" },
113
116
  info: { purpose: "資訊性提示(版本更新、流程說明);藍色 hue" },
@@ -116,7 +119,8 @@ const alertMeta = {
116
119
  error: { purpose: "錯誤但非阻斷(系統錯誤可重試、API 失敗摘要);aria-live=assertive" }
117
120
  },
118
121
  sizes: {},
119
- states: ["default", "hover", "active", "focus-visible", "disabled"],
122
+ states: ["default"],
123
+ // 2026-06-11 R2:Alert 本體無互動 state(spec L183 明文無 disabled;dismiss 互動屬內部 Button),
120
124
  tokens: {
121
125
  bg: ["bg-error", "bg-error-subtle", "bg-info", "bg-info-subtle", "bg-muted", "bg-success", "bg-success-subtle", "bg-surface-raised", "bg-warning", "bg-warning-subtle"],
122
126
  fg: ["text-foreground"],