@qijenchen/design-system 0.1.0-beta.144 → 0.1.0-beta.146

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 (509) hide show
  1. package/dist/components/Accordion/accordion.d.ts +1 -1
  2. package/dist/components/Accordion/accordion.d.ts.map +1 -1
  3. package/dist/components/Accordion/accordion.js +4 -2
  4. package/dist/components/Accordion/accordion.js.map +1 -1
  5. package/dist/components/AgentPanel/agent-panel-fab.d.ts.map +1 -1
  6. package/dist/components/AgentPanel/agent-panel-fab.js +23 -5
  7. package/dist/components/AgentPanel/agent-panel-fab.js.map +1 -1
  8. package/dist/components/AgentPanel/agent-panel.d.ts +1 -1
  9. package/dist/components/AgentPanel/agent-panel.d.ts.map +1 -1
  10. package/dist/components/AgentPanel/agent-panel.js +22 -21
  11. package/dist/components/AgentPanel/agent-panel.js.map +1 -1
  12. package/dist/components/AppShell/app-shell.d.ts +1 -1
  13. package/dist/components/AppShell/app-shell.js +1 -1
  14. package/dist/components/AppShell/app-shell.js.map +1 -1
  15. package/dist/components/Avatar/avatar.d.ts +95 -1
  16. package/dist/components/Avatar/avatar.d.ts.map +1 -1
  17. package/dist/components/Avatar/avatar.js +106 -15
  18. package/dist/components/Avatar/avatar.js.map +1 -1
  19. package/dist/components/Avatar/index.js +14 -2
  20. package/dist/components/Breadcrumb/breadcrumb.d.ts +1 -1
  21. package/dist/components/Breadcrumb/breadcrumb.js +2 -2
  22. package/dist/components/Breadcrumb/breadcrumb.js.map +1 -1
  23. package/dist/components/Button/button.d.ts +2 -2
  24. package/dist/components/Button/button.d.ts.map +1 -1
  25. package/dist/components/Button/button.js +63 -14
  26. package/dist/components/Button/button.js.map +1 -1
  27. package/dist/components/Calendar/calendar.d.ts +26 -7
  28. package/dist/components/Calendar/calendar.d.ts.map +1 -1
  29. package/dist/components/Calendar/calendar.js +195 -35
  30. package/dist/components/Calendar/calendar.js.map +1 -1
  31. package/dist/components/Carousel/carousel.d.ts +1 -1
  32. package/dist/components/Carousel/carousel.d.ts.map +1 -1
  33. package/dist/components/Carousel/carousel.js +1 -2
  34. package/dist/components/Carousel/carousel.js.map +1 -1
  35. package/dist/components/Chart/chart.d.ts +1 -0
  36. package/dist/components/Chart/chart.d.ts.map +1 -1
  37. package/dist/components/Chart/chart.js +8 -0
  38. package/dist/components/Chart/chart.js.map +1 -1
  39. package/dist/components/Checkbox/checkbox.d.ts +1 -1
  40. package/dist/components/Checkbox/checkbox.d.ts.map +1 -1
  41. package/dist/components/Checkbox/checkbox.js +10 -2
  42. package/dist/components/Checkbox/checkbox.js.map +1 -1
  43. package/dist/components/Chip/chip.d.ts +1 -1
  44. package/dist/components/Chip/chip.d.ts.map +1 -1
  45. package/dist/components/Chip/chip.js +4 -2
  46. package/dist/components/Chip/chip.js.map +1 -1
  47. package/dist/components/Combobox/combobox.d.ts +1 -1
  48. package/dist/components/Combobox/combobox.d.ts.map +1 -1
  49. package/dist/components/Combobox/combobox.js +27 -7
  50. package/dist/components/Combobox/combobox.js.map +1 -1
  51. package/dist/components/Command/command.d.ts +1 -1
  52. package/dist/components/Command/command.d.ts.map +1 -1
  53. package/dist/components/Command/command.js +97 -3
  54. package/dist/components/Command/command.js.map +1 -1
  55. package/dist/components/DataTable/cell-registry.d.ts.map +1 -1
  56. package/dist/components/DataTable/cell-registry.js +1 -1
  57. package/dist/components/DataTable/cell-registry.js.map +1 -1
  58. package/dist/components/DataTable/data-table-interaction-layer.d.ts +2 -1
  59. package/dist/components/DataTable/data-table-interaction-layer.d.ts.map +1 -1
  60. package/dist/components/DataTable/data-table-interaction-layer.js +3 -4
  61. package/dist/components/DataTable/data-table-interaction-layer.js.map +1 -1
  62. package/dist/components/DataTable/data-table.d.ts +8 -5
  63. package/dist/components/DataTable/data-table.d.ts.map +1 -1
  64. package/dist/components/DataTable/data-table.js +94 -32
  65. package/dist/components/DataTable/data-table.js.map +1 -1
  66. package/dist/components/DateGrid/date-grid.d.ts +16 -2
  67. package/dist/components/DateGrid/date-grid.d.ts.map +1 -1
  68. package/dist/components/DateGrid/date-grid.js +400 -212
  69. package/dist/components/DateGrid/date-grid.js.map +1 -1
  70. package/dist/components/DateGrid/index.js +5 -1
  71. package/dist/components/DatePicker/date-picker.d.ts.map +1 -1
  72. package/dist/components/DatePicker/date-picker.js +74 -20
  73. package/dist/components/DatePicker/date-picker.js.map +1 -1
  74. package/dist/components/DatePicker/range-preview.d.ts +46 -0
  75. package/dist/components/DatePicker/range-preview.d.ts.map +1 -0
  76. package/dist/components/DatePicker/range-preview.js +41 -0
  77. package/dist/components/DatePicker/range-preview.js.map +1 -0
  78. package/dist/components/Dialog/dialog.d.ts.map +1 -1
  79. package/dist/components/Dialog/dialog.js.map +1 -1
  80. package/dist/components/DropdownMenu/dropdown-menu-keyboard.d.ts +86 -0
  81. package/dist/components/DropdownMenu/dropdown-menu-keyboard.d.ts.map +1 -0
  82. package/dist/components/DropdownMenu/dropdown-menu-keyboard.js +172 -0
  83. package/dist/components/DropdownMenu/dropdown-menu-keyboard.js.map +1 -0
  84. package/dist/components/DropdownMenu/dropdown-menu.d.ts +6 -1
  85. package/dist/components/DropdownMenu/dropdown-menu.d.ts.map +1 -1
  86. package/dist/components/DropdownMenu/dropdown-menu.js +50 -39
  87. package/dist/components/DropdownMenu/dropdown-menu.js.map +1 -1
  88. package/dist/components/Field/field-context.d.ts.map +1 -1
  89. package/dist/components/Field/field-context.js.map +1 -1
  90. package/dist/components/Field/field-wrapper.d.ts +18 -1
  91. package/dist/components/Field/field-wrapper.d.ts.map +1 -1
  92. package/dist/components/Field/field-wrapper.js +39 -10
  93. package/dist/components/Field/field-wrapper.js.map +1 -1
  94. package/dist/components/Field/field.d.ts +3 -2
  95. package/dist/components/Field/field.d.ts.map +1 -1
  96. package/dist/components/Field/field.js +1 -1
  97. package/dist/components/Field/field.js.map +1 -1
  98. package/dist/components/FileItem/file-item.d.ts +26 -2
  99. package/dist/components/FileItem/file-item.d.ts.map +1 -1
  100. package/dist/components/FileItem/file-item.js +82 -25
  101. package/dist/components/FileItem/file-item.js.map +1 -1
  102. package/dist/components/FileItem/index.js +4 -2
  103. package/dist/components/FileUpload/file-upload.d.ts +1 -1
  104. package/dist/components/FileUpload/file-upload.d.ts.map +1 -1
  105. package/dist/components/FileUpload/file-upload.js +132 -55
  106. package/dist/components/FileUpload/file-upload.js.map +1 -1
  107. package/dist/components/FileViewer/file-viewer.d.ts +1 -1
  108. package/dist/components/FileViewer/file-viewer.d.ts.map +1 -1
  109. package/dist/components/FileViewer/file-viewer.js +4 -2
  110. package/dist/components/FileViewer/file-viewer.js.map +1 -1
  111. package/dist/components/InlineEdit/inline-edit.d.ts.map +1 -1
  112. package/dist/components/InlineEdit/inline-edit.js +1 -1
  113. package/dist/components/InlineEdit/inline-edit.js.map +1 -1
  114. package/dist/components/Input/input.d.ts.map +1 -1
  115. package/dist/components/Input/input.js +6 -1
  116. package/dist/components/Input/input.js.map +1 -1
  117. package/dist/components/LinkInput/link-input.d.ts.map +1 -1
  118. package/dist/components/LinkInput/link-input.js +19 -4
  119. package/dist/components/LinkInput/link-input.js.map +1 -1
  120. package/dist/components/NumberInput/number-input.d.ts.map +1 -1
  121. package/dist/components/NumberInput/number-input.js +5 -1
  122. package/dist/components/NumberInput/number-input.js.map +1 -1
  123. package/dist/components/OverflowIndicator/index.js +2 -1
  124. package/dist/components/OverflowIndicator/overflow-indicator.d.ts +19 -1
  125. package/dist/components/OverflowIndicator/overflow-indicator.d.ts.map +1 -1
  126. package/dist/components/OverflowIndicator/overflow-indicator.js +47 -27
  127. package/dist/components/OverflowIndicator/overflow-indicator.js.map +1 -1
  128. package/dist/components/Pagination/pagination.d.ts +1 -1
  129. package/dist/components/Pagination/pagination.js +1 -1
  130. package/dist/components/Pagination/pagination.js.map +1 -1
  131. package/dist/components/PeoplePicker/avatar-stack-overflow.d.ts +7 -6
  132. package/dist/components/PeoplePicker/avatar-stack-overflow.d.ts.map +1 -1
  133. package/dist/components/PeoplePicker/avatar-stack-overflow.js +6 -7
  134. package/dist/components/PeoplePicker/avatar-stack-overflow.js.map +1 -1
  135. package/dist/components/PeoplePicker/people-picker-helpers.d.ts.map +1 -1
  136. package/dist/components/PeoplePicker/people-picker-helpers.js +1 -1
  137. package/dist/components/PeoplePicker/people-picker-helpers.js.map +1 -1
  138. package/dist/components/PeoplePicker/people-picker.js +2 -2
  139. package/dist/components/PeoplePicker/people-picker.js.map +1 -1
  140. package/dist/components/PeoplePicker/person-display.d.ts.map +1 -1
  141. package/dist/components/PeoplePicker/person-display.js +26 -28
  142. package/dist/components/PeoplePicker/person-display.js.map +1 -1
  143. package/dist/components/RadioGroup/radio-group.d.ts +1 -1
  144. package/dist/components/RadioGroup/radio-group.d.ts.map +1 -1
  145. package/dist/components/RadioGroup/radio-group.js +10 -4
  146. package/dist/components/RadioGroup/radio-group.js.map +1 -1
  147. package/dist/components/Rating/rating.d.ts +28 -6
  148. package/dist/components/Rating/rating.d.ts.map +1 -1
  149. package/dist/components/Rating/rating.js +92 -78
  150. package/dist/components/Rating/rating.js.map +1 -1
  151. package/dist/components/ScrollArea/scroll-area.d.ts +1 -1
  152. package/dist/components/ScrollArea/scroll-area.js +1 -1
  153. package/dist/components/ScrollArea/scroll-area.js.map +1 -1
  154. package/dist/components/SegmentedControl/segmented-control.d.ts +1 -1
  155. package/dist/components/SegmentedControl/segmented-control.d.ts.map +1 -1
  156. package/dist/components/SegmentedControl/segmented-control.js +3 -2
  157. package/dist/components/SegmentedControl/segmented-control.js.map +1 -1
  158. package/dist/components/Select/select.js +2 -1
  159. package/dist/components/Select/select.js.map +1 -1
  160. package/dist/components/SelectMenu/index.js +2 -1
  161. package/dist/components/SelectMenu/index.js.map +1 -1
  162. package/dist/components/SelectMenu/select-menu-keyboard.d.ts +59 -0
  163. package/dist/components/SelectMenu/select-menu-keyboard.d.ts.map +1 -0
  164. package/dist/components/SelectMenu/select-menu-keyboard.js +107 -0
  165. package/dist/components/SelectMenu/select-menu-keyboard.js.map +1 -0
  166. package/dist/components/SelectMenu/select-menu.d.ts +1 -22
  167. package/dist/components/SelectMenu/select-menu.d.ts.map +1 -1
  168. package/dist/components/SelectMenu/select-menu.js +18 -34
  169. package/dist/components/SelectMenu/select-menu.js.map +1 -1
  170. package/dist/components/Sidebar/sidebar.d.ts +7 -9
  171. package/dist/components/Sidebar/sidebar.d.ts.map +1 -1
  172. package/dist/components/Sidebar/sidebar.js +165 -49
  173. package/dist/components/Sidebar/sidebar.js.map +1 -1
  174. package/dist/components/Slider/slider.d.ts +1 -1
  175. package/dist/components/Slider/slider.d.ts.map +1 -1
  176. package/dist/components/Slider/slider.js +9 -4
  177. package/dist/components/Slider/slider.js.map +1 -1
  178. package/dist/components/Steps/steps.d.ts.map +1 -1
  179. package/dist/components/Steps/steps.js +41 -23
  180. package/dist/components/Steps/steps.js.map +1 -1
  181. package/dist/components/Switch/switch.d.ts +1 -1
  182. package/dist/components/Switch/switch.d.ts.map +1 -1
  183. package/dist/components/Switch/switch.js +7 -2
  184. package/dist/components/Switch/switch.js.map +1 -1
  185. package/dist/components/Tabs/tabs.d.ts +1 -1
  186. package/dist/components/Tabs/tabs.d.ts.map +1 -1
  187. package/dist/components/Tabs/tabs.js +39 -4
  188. package/dist/components/Tabs/tabs.js.map +1 -1
  189. package/dist/components/Tag/tag.d.ts +1 -1
  190. package/dist/components/Tag/tag.js +1 -1
  191. package/dist/components/Tag/tag.js.map +1 -1
  192. package/dist/components/Textarea/textarea.d.ts.map +1 -1
  193. package/dist/components/Textarea/textarea.js +4 -2
  194. package/dist/components/Textarea/textarea.js.map +1 -1
  195. package/dist/components/TimePicker/time-columns.d.ts.map +1 -1
  196. package/dist/components/TimePicker/time-columns.js +5 -1
  197. package/dist/components/TimePicker/time-columns.js.map +1 -1
  198. package/dist/components/TimePicker/time-picker.d.ts +1 -1
  199. package/dist/components/TimePicker/time-picker.js +1 -1
  200. package/dist/components/TimePicker/time-picker.js.map +1 -1
  201. package/dist/components/TreeView/tree-view.d.ts +9 -5
  202. package/dist/components/TreeView/tree-view.d.ts.map +1 -1
  203. package/dist/components/TreeView/tree-view.js +216 -208
  204. package/dist/components/TreeView/tree-view.js.map +1 -1
  205. package/dist/hooks/use-input-modality.d.ts +12 -17
  206. package/dist/hooks/use-input-modality.d.ts.map +1 -1
  207. package/dist/hooks/use-input-modality.js +4 -34
  208. package/dist/hooks/use-input-modality.js.map +1 -1
  209. package/dist/index.d.ts +3 -0
  210. package/dist/index.d.ts.map +1 -1
  211. package/dist/index.js +20 -2
  212. package/dist/index.js.map +1 -1
  213. package/dist/lib/focus-after-trigger.d.ts +45 -0
  214. package/dist/lib/focus-after-trigger.d.ts.map +1 -0
  215. package/dist/lib/focus-after-trigger.js +66 -0
  216. package/dist/lib/focus-after-trigger.js.map +1 -0
  217. package/dist/lib/roving-list-keyboard.d.ts +193 -0
  218. package/dist/lib/roving-list-keyboard.d.ts.map +1 -0
  219. package/dist/lib/roving-list-keyboard.js +168 -0
  220. package/dist/lib/roving-list-keyboard.js.map +1 -0
  221. package/dist/lib/utils.d.ts.map +1 -1
  222. package/dist/lib/utils.js +6 -1
  223. package/dist/lib/utils.js.map +1 -1
  224. package/dist/patterns/element-anatomy/item-anatomy.d.ts +4 -4
  225. package/dist/patterns/element-anatomy/item-anatomy.d.ts.map +1 -1
  226. package/dist/patterns/element-anatomy/item-anatomy.js +14 -4
  227. package/dist/patterns/element-anatomy/item-anatomy.js.map +1 -1
  228. package/dist/patterns/overlay-surface/overlay-surface.d.ts.map +1 -1
  229. package/dist/patterns/overlay-surface/overlay-surface.js.map +1 -1
  230. package/dist/tokens/categorical-color.d.ts +6 -1
  231. package/dist/tokens/categorical-color.d.ts.map +1 -1
  232. package/dist/tokens/categorical-color.js.map +1 -1
  233. package/dist/tokens/uiSize/icon-size.d.ts +1 -1
  234. package/dist/tokens/uiSize/stack-gap.d.ts +18 -0
  235. package/dist/tokens/uiSize/stack-gap.d.ts.map +1 -0
  236. package/dist/tokens/uiSize/stack-gap.js +5 -0
  237. package/dist/tokens/uiSize/stack-gap.js.map +1 -0
  238. package/ds-canonical/fork/codex/agents/skills/visual-audit/references/audit-architecture.md +1 -1
  239. package/ds-canonical/fork/codex/hooks.json +1 -1
  240. package/ds-canonical/fork/common/closed-tool-execution.mjs +31 -0
  241. package/ds-canonical/fork/consumer/lib/closed-tool-execution.mjs +31 -0
  242. package/ds-canonical/fork/consumer/lock.json +17 -14
  243. package/ds-canonical/fork/consumer/managed-files/2d1ef5617a5ce3c39ad9aae1c42af7d199f9270c0a0ccb490b63d62dbc6913db.blob +31 -0
  244. package/ds-canonical/fork/consumer/managed-files/423729840acdd43c812f17c245b871716c6b60f76e4d3e94864d0e34a815bf8d.blob +9 -0
  245. package/ds-canonical/fork/consumer/managed-files/46f10bc55cdfdf834d0749eebff42ea0bb8576f361b36d2b6ba1851354c50150.blob +189 -38
  246. package/ds-canonical/fork/consumer/managed-files/5a0d134a2645114c8caac20458070b00a7f0fd55b3e8805b7325cb4cf52fa15e.blob +110 -0
  247. package/ds-canonical/fork/consumer/managed-files/5af0a46760af338d51fd0f7950675f8e97f7d2f09386b8818fcd7a58e6654e75.blob +720 -0
  248. package/ds-canonical/fork/consumer/managed-files/61c6aca6d7f04bedbf556eaa9d3043681fe48cbe0e93a8ccb1d69a7c5e23fdcf.blob +6 -1
  249. package/ds-canonical/fork/consumer/managed-files/68bfcddff9c4a16388c248cd34fb66163e9e64b3d809a48ef3984f6ae4ff6d12.blob +211 -0
  250. package/ds-canonical/fork/consumer/managed-files/92e4828cdcb96ff0d01daa16f6885f24045a8e72820665650f2a1890dc3a446c.blob +42 -2
  251. package/ds-canonical/fork/consumer/managed-files/e71c65f45c6af7ce12b6b3c0d8028f185da5b719e2050c9b2a6b243d41ae4878.blob +62 -14
  252. package/ds-canonical/fork/governance.lock +43 -19
  253. package/ds-canonical/fork/hooks/check_consumer_app_invariants.sh +16 -4
  254. package/ds-canonical/fork/hooks/check_consumer_code_quality.sh +3 -1
  255. package/ds-canonical/fork/hooks/check_pattern_invariants.sh +13 -9
  256. package/ds-canonical/fork/launchers/settings-hooks.json +1 -1
  257. package/ds-canonical/fork/manifest.json +17 -11
  258. package/ds-canonical/fork/providers/claude/skills/visual-audit/references/audit-architecture.md +1 -1
  259. package/ds-canonical/fork/providers/codex/hook-config.json +1 -1
  260. package/ds-canonical/fork/providers/codex/skills/visual-audit/references/audit-architecture.md +1 -1
  261. package/ds-canonical/fork/skills/visual-audit/references/audit-architecture.md +1 -1
  262. package/ds-canonical/hooks/check_consumer_app_invariants.sh +16 -4
  263. package/ds-canonical/hooks/check_consumer_code_quality.sh +3 -1
  264. package/ds-canonical/hooks/check_datatable_invariants.sh +4 -1
  265. package/ds-canonical/hooks/check_pattern_invariants.sh +13 -9
  266. package/ds-canonical/hooks/check_plugin_fork_health.sh +8 -1
  267. package/ds-canonical/hooks/check_propose_discipline.sh +8 -1
  268. package/ds-canonical/hooks/check_storybook_addon_packaging.sh +8 -1
  269. package/ds-canonical/hooks/check_substantive_edit_approval_preflight.sh +43 -2
  270. package/ds-canonical/hooks/lib/_overlay_handcraft.sh +5 -2
  271. package/ds-canonical/hooks/registrations.json +12 -7
  272. package/ds-canonical/hooks/session_start_governance_check.sh +16 -0
  273. package/ds-canonical/hooks/tests/test_check_consumer_app_invariants.sh +25 -0
  274. package/ds-canonical/hooks/tests/test_check_consumer_code_quality.sh +4 -0
  275. package/ds-canonical/hooks/tests/test_check_consumer_ds_primitive_misuse.sh +14 -0
  276. package/ds-canonical/hooks/tests/test_check_datatable_invariants.sh +24 -0
  277. package/ds-canonical/hooks/tests/test_check_overlay_handcraft.sh +32 -0
  278. package/ds-canonical/hooks/tests/test_check_pattern_invariants.sh +59 -0
  279. package/ds-canonical/hooks/tests/test_check_plugin_fork_health.sh +32 -1
  280. package/ds-canonical/hooks/tests/test_check_propose_discipline.sh +21 -0
  281. package/ds-canonical/hooks/tests/test_check_storybook_addon_packaging.sh +21 -0
  282. package/ds-canonical/hooks/tests/test_check_substantive_edit_approval_preflight.sh +87 -0
  283. package/ds-canonical/hooks/tests/test_session_start_governance_check.sh +49 -0
  284. package/ds-canonical/references/README.md +12 -6
  285. package/ds-canonical/references/drag-canonical.md +3 -1
  286. package/ds-canonical/references/focus-canonical.md +70 -20
  287. package/ds-canonical/references/hit-area-canonical.md +359 -0
  288. package/ds-canonical/references/item-anatomy-recipe.md +4 -2
  289. package/ds-canonical/references/keyboard-model-canonical.md +559 -0
  290. package/ds-canonical/references/principle-dim-map.json +5 -0
  291. package/ds-canonical/rules/meta-patterns.md +3 -3
  292. package/ds-canonical/rules/story-rules.md +7 -0
  293. package/ds-canonical/skills/design-system-audit/references/audit-prompts.md +1 -1
  294. package/ds-canonical/skills/design-system-audit/references/historical-bugs.md +94 -1
  295. package/ds-canonical/skills/knowledge-prune/SKILL.md +4 -1
  296. package/ds-canonical/skills/visual-audit/references/audit-architecture.md +1 -1
  297. package/ds-story-manifest.json +13 -5
  298. package/package.json +1 -1
  299. package/src/components/Accordion/accordion.anatomy.stories.tsx +3 -3
  300. package/src/components/Accordion/accordion.spec.md +1 -1
  301. package/src/components/Accordion/accordion.tsx +4 -2
  302. package/src/components/AccountMenu/account-menu.spec.md +1 -1
  303. package/src/components/AgentPanel/agent-panel-fab.tsx +26 -7
  304. package/src/components/AgentPanel/agent-panel.anatomy.stories.tsx +1 -1
  305. package/src/components/AgentPanel/agent-panel.spec.md +23 -8
  306. package/src/components/AgentPanel/agent-panel.stories.tsx +1 -1
  307. package/src/components/AgentPanel/agent-panel.tsx +51 -19
  308. package/src/components/Alert/alert.anatomy.stories.tsx +1 -1
  309. package/src/components/AppShell/app-shell.tsx +1 -1
  310. package/src/components/AspectRatio/aspect-ratio.anatomy.stories.tsx +10 -15
  311. package/src/components/Avatar/avatar.anatomy.stories.tsx +23 -26
  312. package/src/components/Avatar/avatar.principles.stories.tsx +10 -10
  313. package/src/components/Avatar/avatar.spec.md +45 -6
  314. package/src/components/Avatar/avatar.stories.tsx +8 -8
  315. package/src/components/Avatar/avatar.tsx +227 -21
  316. package/src/components/Badge/badge.anatomy.stories.tsx +16 -21
  317. package/src/components/Breadcrumb/breadcrumb.anatomy.stories.tsx +3 -3
  318. package/src/components/Breadcrumb/breadcrumb.spec.md +3 -3
  319. package/src/components/Breadcrumb/breadcrumb.stories.tsx +2 -0
  320. package/src/components/Breadcrumb/breadcrumb.tsx +2 -2
  321. package/src/components/BulkActionBar/bulk-action-bar.anatomy.stories.tsx +1 -1
  322. package/src/components/BulkActionBar/bulk-action-bar.principles.stories.tsx +1 -1
  323. package/src/components/BulkActionBar/bulk-action-bar.stories.tsx +4 -2
  324. package/src/components/Button/button.anatomy.stories.tsx +145 -33
  325. package/src/components/Button/button.spec.md +18 -5
  326. package/src/components/Button/button.stories.tsx +4 -0
  327. package/src/components/Button/button.tsx +65 -14
  328. package/src/components/Calendar/calendar.anatomy.stories.tsx +31 -11
  329. package/src/components/Calendar/calendar.principles.stories.tsx +39 -1
  330. package/src/components/Calendar/calendar.spec.md +92 -17
  331. package/src/components/Calendar/calendar.stories.tsx +27 -4
  332. package/src/components/Calendar/calendar.tsx +346 -66
  333. package/src/components/Carousel/carousel.anatomy.stories.tsx +16 -17
  334. package/src/components/Carousel/carousel.spec.md +47 -1
  335. package/src/components/Carousel/carousel.tsx +4 -3
  336. package/src/components/Chart/chart.anatomy.stories.tsx +7 -5
  337. package/src/components/Chart/chart.spec.md +32 -7
  338. package/src/components/Chart/chart.tsx +9 -0
  339. package/src/components/Checkbox/checkbox.anatomy.stories.tsx +21 -28
  340. package/src/components/Checkbox/checkbox.spec.md +4 -2
  341. package/src/components/Checkbox/checkbox.tsx +10 -2
  342. package/src/components/Chip/chip.anatomy.stories.tsx +1 -1
  343. package/src/components/Chip/chip.spec.md +1 -1
  344. package/src/components/Chip/chip.tsx +4 -2
  345. package/src/components/Combobox/combobox.anatomy.stories.tsx +28 -36
  346. package/src/components/Combobox/combobox.spec.md +11 -3
  347. package/src/components/Combobox/combobox.stories.tsx +2 -0
  348. package/src/components/Combobox/combobox.tsx +25 -8
  349. package/src/components/Command/command.spec.md +11 -0
  350. package/src/components/Command/command.tsx +134 -5
  351. package/src/components/DataTable/cell-registry.tsx +2 -1
  352. package/src/components/DataTable/data-table-interaction-layer.tsx +27 -14
  353. package/src/components/DataTable/data-table.anatomy.stories.tsx +1 -1
  354. package/src/components/DataTable/data-table.css +64 -0
  355. package/src/components/DataTable/data-table.spec.md +61 -5
  356. package/src/components/DataTable/data-table.stories.tsx +55 -8
  357. package/src/components/DataTable/data-table.tsx +241 -53
  358. package/src/components/DateGrid/date-grid.anatomy.stories.tsx +4 -4
  359. package/src/components/DateGrid/date-grid.spec.md +207 -3
  360. package/src/components/DateGrid/date-grid.tsx +366 -22
  361. package/src/components/DatePicker/date-picker.anatomy.stories.tsx +33 -30
  362. package/src/components/DatePicker/date-picker.spec.md +37 -6
  363. package/src/components/DatePicker/date-picker.stories.tsx +54 -30
  364. package/src/components/DatePicker/date-picker.tsx +90 -19
  365. package/src/components/DatePicker/range-preview.ts +82 -0
  366. package/src/components/Dialog/dialog.spec.md +1 -1
  367. package/src/components/Dialog/dialog.stories.tsx +13 -5
  368. package/src/components/Dialog/dialog.tsx +3 -1
  369. package/src/components/DropdownMenu/dropdown-menu-keyboard.ts +255 -0
  370. package/src/components/DropdownMenu/dropdown-menu.anatomy.stories.tsx +25 -33
  371. package/src/components/DropdownMenu/dropdown-menu.spec.md +18 -5
  372. package/src/components/DropdownMenu/dropdown-menu.stories.tsx +58 -1
  373. package/src/components/DropdownMenu/dropdown-menu.tsx +70 -33
  374. package/src/components/Field/field-context.ts +4 -2
  375. package/src/components/Field/field-controls.spec.md +2 -2
  376. package/src/components/Field/field-wrapper.tsx +76 -10
  377. package/src/components/Field/field.anatomy.stories.tsx +1 -1
  378. package/src/components/Field/field.spec.md +10 -5
  379. package/src/components/Field/field.stories.tsx +24 -1
  380. package/src/components/Field/field.tsx +7 -4
  381. package/src/components/FileItem/file-item.anatomy.stories.tsx +20 -10
  382. package/src/components/FileItem/file-item.principles.stories.tsx +14 -7
  383. package/src/components/FileItem/file-item.spec.md +50 -48
  384. package/src/components/FileItem/file-item.stories.tsx +43 -28
  385. package/src/components/FileItem/file-item.tsx +184 -50
  386. package/src/components/FileUpload/file-upload.anatomy.stories.tsx +11 -15
  387. package/src/components/FileUpload/file-upload.spec.md +27 -1
  388. package/src/components/FileUpload/file-upload.stories.tsx +35 -0
  389. package/src/components/FileUpload/file-upload.tsx +173 -43
  390. package/src/components/FileViewer/file-viewer.tsx +4 -2
  391. package/src/components/HoverCard/hover-card.stories.tsx +2 -2
  392. package/src/components/InlineEdit/inline-edit.spec.md +2 -0
  393. package/src/components/InlineEdit/inline-edit.tsx +8 -3
  394. package/src/components/Input/input.anatomy.stories.tsx +23 -31
  395. package/src/components/Input/input.spec.md +11 -0
  396. package/src/components/Input/input.tsx +6 -1
  397. package/src/components/LinkInput/link-input.anatomy.stories.tsx +18 -21
  398. package/src/components/LinkInput/link-input.principles.stories.tsx +4 -4
  399. package/src/components/LinkInput/link-input.spec.md +12 -1
  400. package/src/components/LinkInput/link-input.tsx +34 -4
  401. package/src/components/Menu/menu-item.anatomy.stories.tsx +50 -56
  402. package/src/components/Menu/menu-item.spec.md +1 -1
  403. package/src/components/Menu/menu-item.stories.tsx +48 -42
  404. package/src/components/Notice/notice.anatomy.stories.tsx +8 -16
  405. package/src/components/Notice/notice.spec.md +1 -1
  406. package/src/components/NumberInput/number-input.anatomy.stories.tsx +21 -28
  407. package/src/components/NumberInput/number-input.spec.md +2 -0
  408. package/src/components/NumberInput/number-input.tsx +5 -1
  409. package/src/components/OverflowIndicator/overflow-indicator.anatomy.stories.tsx +28 -48
  410. package/src/components/OverflowIndicator/overflow-indicator.spec.md +13 -1
  411. package/src/components/OverflowIndicator/overflow-indicator.stories.tsx +12 -9
  412. package/src/components/OverflowIndicator/overflow-indicator.tsx +32 -12
  413. package/src/components/Pagination/pagination.tsx +1 -1
  414. package/src/components/PeoplePicker/avatar-stack-overflow.ts +14 -13
  415. package/src/components/PeoplePicker/people-picker-helpers.ts +5 -2
  416. package/src/components/PeoplePicker/people-picker.anatomy.stories.tsx +1 -1
  417. package/src/components/PeoplePicker/people-picker.spec.md +4 -2
  418. package/src/components/PeoplePicker/people-picker.stories.tsx +4 -0
  419. package/src/components/PeoplePicker/people-picker.tsx +1 -1
  420. package/src/components/PeoplePicker/person-display.tsx +45 -28
  421. package/src/components/Popover/popover.anatomy.stories.tsx +1 -1
  422. package/src/components/Popover/popover.principles.stories.tsx +3 -12
  423. package/src/components/Popover/popover.spec.md +5 -3
  424. package/src/components/ProfileCard/profile-card.anatomy.stories.tsx +1 -1
  425. package/src/components/ProfileCard/profile-card.spec.md +1 -1
  426. package/src/components/ProgressBar/progress-bar.anatomy.stories.tsx +11 -21
  427. package/src/components/ProgressBar/progress-bar.spec.md +1 -1
  428. package/src/components/RadioGroup/radio-group.anatomy.stories.tsx +17 -24
  429. package/src/components/RadioGroup/radio-group.spec.md +1 -1
  430. package/src/components/RadioGroup/radio-group.tsx +22 -4
  431. package/src/components/Rating/rating.anatomy.stories.tsx +130 -123
  432. package/src/components/Rating/rating.principles.stories.tsx +69 -43
  433. package/src/components/Rating/rating.spec.md +140 -61
  434. package/src/components/Rating/rating.stories.tsx +11 -15
  435. package/src/components/Rating/rating.tsx +125 -115
  436. package/src/components/ScrollArea/scroll-area.anatomy.stories.tsx +1 -1
  437. package/src/components/ScrollArea/scroll-area.principles.stories.tsx +6 -3
  438. package/src/components/ScrollArea/scroll-area.spec.md +1 -1
  439. package/src/components/ScrollArea/scroll-area.stories.tsx +5 -2
  440. package/src/components/ScrollArea/scroll-area.tsx +1 -1
  441. package/src/components/SegmentedControl/segmented-control.anatomy.stories.tsx +1 -1
  442. package/src/components/SegmentedControl/segmented-control.spec.md +2 -2
  443. package/src/components/SegmentedControl/segmented-control.tsx +3 -2
  444. package/src/components/Select/select.anatomy.stories.tsx +26 -35
  445. package/src/components/Select/select.spec.md +3 -2
  446. package/src/components/SelectMenu/select-menu-keyboard.ts +218 -0
  447. package/src/components/SelectMenu/select-menu.anatomy.stories.tsx +6 -17
  448. package/src/components/SelectMenu/select-menu.spec.md +8 -4
  449. package/src/components/SelectMenu/select-menu.tsx +21 -56
  450. package/src/components/SelectionControl/selection-item.anatomy.stories.tsx +9 -33
  451. package/src/components/SelectionControl/selection-item.spec.md +2 -2
  452. package/src/components/Separator/separator.stories.tsx +4 -4
  453. package/src/components/Sheet/sheet.principles.stories.tsx +31 -13
  454. package/src/components/Sidebar/sidebar.anatomy.stories.tsx +1 -1
  455. package/src/components/Sidebar/sidebar.spec.md +71 -5
  456. package/src/components/Sidebar/sidebar.stories.tsx +3 -4
  457. package/src/components/Sidebar/sidebar.tsx +271 -62
  458. package/src/components/Slider/slider.anatomy.stories.tsx +1 -1
  459. package/src/components/Slider/slider.spec.md +5 -5
  460. package/src/components/Slider/slider.tsx +13 -8
  461. package/src/components/Steps/steps.anatomy.stories.tsx +1 -0
  462. package/src/components/Steps/steps.spec.md +69 -21
  463. package/src/components/Steps/steps.stories.tsx +3 -1
  464. package/src/components/Steps/steps.tsx +97 -29
  465. package/src/components/Switch/switch.spec.md +3 -3
  466. package/src/components/Switch/switch.tsx +6 -1
  467. package/src/components/Tabs/tabs.spec.md +5 -1
  468. package/src/components/Tabs/tabs.tsx +42 -3
  469. package/src/components/Tag/tag.anatomy.stories.tsx +24 -28
  470. package/src/components/Tag/tag.spec.md +1 -1
  471. package/src/components/Tag/tag.tsx +1 -1
  472. package/src/components/Textarea/textarea.tsx +3 -1
  473. package/src/components/TimePicker/time-columns.tsx +5 -1
  474. package/src/components/TimePicker/time-picker.spec.md +3 -0
  475. package/src/components/TimePicker/time-picker.tsx +1 -1
  476. package/src/components/Tooltip/tooltip.anatomy.stories.tsx +6 -15
  477. package/src/components/Tooltip/tooltip.principles.stories.tsx +4 -16
  478. package/src/components/Tooltip/tooltip.spec.md +1 -1
  479. package/src/components/TreeView/tree-view.anatomy.stories.tsx +35 -13
  480. package/src/components/TreeView/tree-view.spec.md +64 -38
  481. package/src/components/TreeView/tree-view.stories.tsx +137 -10
  482. package/src/components/TreeView/tree-view.tsx +382 -351
  483. package/src/hooks/use-input-modality.ts +17 -46
  484. package/src/index.ts +17 -0
  485. package/src/lib/README.md +2 -0
  486. package/src/lib/focus-after-trigger.ts +102 -0
  487. package/src/lib/roving-list-keyboard.ts +380 -0
  488. package/src/lib/utils.ts +5 -0
  489. package/src/patterns/element-anatomy/inline-action.spec.md +14 -10
  490. package/src/patterns/element-anatomy/item-anatomy.spec.md +93 -3
  491. package/src/patterns/element-anatomy/item-anatomy.stories.tsx +75 -70
  492. package/src/patterns/element-anatomy/item-anatomy.tsx +17 -6
  493. package/src/patterns/header-canonical/header-canonical.spec.md +1 -1
  494. package/src/patterns/overlay-surface/overlay-surface.spec.md +10 -9
  495. package/src/patterns/overlay-surface/overlay-surface.stories.tsx +2 -0
  496. package/src/patterns/overlay-surface/overlay-surface.tsx +4 -2
  497. package/src/patterns/resize-handle/resize-handle.spec.md +1 -1
  498. package/src/styles/base.css +18 -1
  499. package/src/tokens/categorical-color.ts +6 -1
  500. package/src/tokens/color/color.spec.md +79 -20
  501. package/src/tokens/color/color.stories.tsx +50 -2
  502. package/src/tokens/color/primitives.css +41 -38
  503. package/src/tokens/color/semantic.css +92 -36
  504. package/src/tokens/motion/motion.spec.md +26 -8
  505. package/src/tokens/uiSize/icon-size.ts +1 -1
  506. package/src/tokens/uiSize/stack-gap.ts +17 -0
  507. package/src/tokens/uiSize/uiSize.css +12 -0
  508. package/src/tokens/uiSize/uiSize.spec.md +16 -15
  509. package/src/tokens/uiSize/uiSize.stories.tsx +1 -1
@@ -4,6 +4,7 @@ import * as CollapsiblePrimitive from "@radix-ui/react-collapsible";
4
4
  import { X, ChevronDown, Plus, ArrowUp, Copy, ThumbsUp, ThumbsDown, Pencil, Trash2, MessageSquare, createLucideIcon } from "lucide-react";
5
5
  import { cn } from "../../lib/utils.js";
6
6
  import { useOverlayCoexistence, CoexistenceMask } from "../../lib/overlay-coexistence.js";
7
+ import { useCursorMover } from "../../hooks/use-input-modality.js";
7
8
  import { Button } from "../Button/button.js";
8
9
  import { ButtonDivider } from "../Button/button-group.js";
9
10
  import { ChromeHeader } from "../../patterns/header-canonical/chrome-header.js";
@@ -225,6 +226,7 @@ function HistoryRow({
225
226
  onRename,
226
227
  onDelete
227
228
  }) {
229
+ const cursorByKeyboard = useCursorMover() === "keyboard";
228
230
  return /* @__PURE__ */ jsx(
229
231
  CommandItem,
230
232
  {
@@ -242,23 +244,17 @@ function HistoryRow({
242
244
  className: "!bg-transparent hover:!bg-transparent",
243
245
  startContent: conversation.thinking ? /* @__PURE__ */ jsx(CircularProgress, { size: 16, "aria-label": "回覆中" }) : /* @__PURE__ */ jsx(MessageSquare, { size: 16, "aria-hidden": true, className: "text-fg-muted" }),
244
246
  endContent: (
245
- // 行內動作恆在 DOM(鍵盤 Tab 可達);懸停/focus-visible 淡入=ItemSuffix hoverReveal SSOT。
246
- /* MenuItem 的 endContent slot 內再包 ItemSuffix 只為 hoverReveal(opacity 淡入);兩層同盒
247
+ // 行內動作恆在 DOM;鍵盤用 → 進得去、不在 Tab 路上(B9,Command 的 routeCommandRowKeys 提供);
248
+ // 懸停/focus-visible 瞬間出現(不淡入,待辦總帳 L9)=ItemSuffix hoverReveal SSOT,鍵盤反白這一列時也浮出(cursorByKeyboard)。
249
+ /* MenuItem 的 endContent slot 內再包 ItemSuffix 只為 hoverReveal(opacity 0→1,瞬間);兩層同盒
247
250
  (h-[1lh] items-center ml-auto gap-2),不疊任何位移——非 drift(2026-09-02 覆核實測)。 */
248
- /* @__PURE__ */ jsx(ItemSuffix, { hoverReveal: true, hoverGroup: "menu-item", children: /* @__PURE__ */ jsxs(
249
- "span",
251
+ /* @__PURE__ */ jsx(
252
+ ItemSuffix,
250
253
  {
251
- className: "contents",
252
- onKeyDown: (e) => {
253
- var _a;
254
- const target = e.target;
255
- if ((e.key === "Enter" || e.key === " ") && target.closest("button")) {
256
- e.preventDefault();
257
- e.stopPropagation();
258
- (_a = target.closest("button")) == null ? void 0 : _a.click();
259
- }
260
- },
261
- children: [
254
+ hoverReveal: true,
255
+ hoverGroup: "menu-item",
256
+ className: cursorByKeyboard ? "group-data-[selected=true]/menu-item:opacity-100" : void 0,
257
+ children: /* @__PURE__ */ jsxs("span", { className: "contents", "data-history-row-actions": "", children: [
262
258
  /* @__PURE__ */ jsx(
263
259
  ItemInlineAction,
264
260
  {
@@ -287,9 +283,9 @@ function HistoryRow({
287
283
  }
288
284
  }
289
285
  )
290
- ]
286
+ ] })
291
287
  }
292
- ) })
288
+ )
293
289
  ),
294
290
  children: conversation.title
295
291
  }
@@ -721,8 +717,9 @@ const AgentToolbar = React.forwardRef(
721
717
  {
722
718
  ref,
723
719
  className: cn(
720
+ // 懸停/鍵盤聚焦時「出現」是滑過造成的變化 → 瞬間出現、不淡入(user 2026-09-26 對「全部瞬間」延伸(AI 的題目名)答「確定這樣才是一致設計語言就做」到所有滑過造成的變化;
721
+ // SSOT = tokens/motion/motion.spec.md「hover 回饋不做過渡」;待辦總帳 L9)。訊息進場的淡入是另一件事(內容出現),不在此。
724
722
  "mt-2 flex h-6 items-center gap-2",
725
- "transition-opacity duration-[var(--motion-duration-overlay)] motion-reduce:transition-none",
726
723
  // 常駐(最後一則)= 在流內佔位,底部才能守 --layout-space-bottom;懸停顯示 = 絕對定位於輪距內,
727
724
  // 出現/消失完全不推擠版面(輪距 40 ≥ 8+24+8)。
728
725
  pinned ? "relative opacity-100" : "absolute left-0 top-full opacity-0 group-hover/agent-message:opacity-100 focus-within:opacity-100",
@@ -879,6 +876,8 @@ function initialAnswer(q) {
879
876
  return q.defaultValue ?? ((_a = q.options[0]) == null ? void 0 : _a.value) ?? "";
880
877
  }
881
878
  const splitMulti = (v) => v ? v.split(MULTI_JOIN).filter(Boolean) : [];
879
+ const OPTION_RADIO_HOVER = "group-hover/agent-option:border-border-hover data-[state=checked]:group-hover/agent-option:border-primary-hover data-[state=checked]:group-hover/agent-option:text-primary-hover";
880
+ const OPTION_CHECKBOX_HOVER = "group-hover/agent-option:border-border-hover data-[state=checked]:group-hover/agent-option:bg-primary-hover data-[state=checked]:group-hover/agent-option:border-primary-hover";
882
881
  const AgentDecisionCard = React.forwardRef(
883
882
  ({ questions, onSubmit, onSkip, className, ...props }, ref) => {
884
883
  var _a;
@@ -939,7 +938,7 @@ const AgentDecisionCard = React.forwardRef(
939
938
  var _a2;
940
939
  return (_a2 = document.getElementById(otherInputId)) == null ? void 0 : _a2.focus();
941
940
  }, 0);
942
- const cardClass = "cursor-pointer rounded-md bg-secondary px-3 py-2";
941
+ const cardClass = "group/agent-option cursor-pointer rounded-md bg-secondary px-3 py-2";
943
942
  return /* @__PURE__ */ jsxs(
944
943
  "div",
945
944
  {
@@ -999,7 +998,8 @@ const AgentDecisionCard = React.forwardRef(
999
998
  checked,
1000
999
  onCheckedChange: (next) => toggle(option.value, next === true),
1001
1000
  onClick: (e) => e.stopPropagation(),
1002
- "aria-controls": isOther ? otherInputId : void 0
1001
+ "aria-controls": isOther ? otherInputId : void 0,
1002
+ className: OPTION_CHECKBOX_HOVER
1003
1003
  }
1004
1004
  ),
1005
1005
  label: optionLabel(option),
@@ -1046,7 +1046,8 @@ const AgentDecisionCard = React.forwardRef(
1046
1046
  id: `${optionIdBase}-${option.value}`,
1047
1047
  value: option.value,
1048
1048
  size: "md",
1049
- "aria-controls": isOther ? otherInputId : void 0
1049
+ "aria-controls": isOther ? otherInputId : void 0,
1050
+ className: OPTION_RADIO_HOVER
1050
1051
  }
1051
1052
  ),
1052
1053
  label: optionLabel(option),