@orbit-work/ui 0.1.1 → 0.1.2

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 (794) hide show
  1. package/README.md +59 -57
  2. package/dist/about-window.cjs +271 -1
  3. package/dist/about-window.cjs.map +1 -0
  4. package/dist/about-window.d.cts +20 -2
  5. package/dist/about-window.d.ts +20 -2
  6. package/dist/about-window.js +271 -1
  7. package/dist/about-window.js.map +1 -0
  8. package/dist/appearance-D7uh_ZTy.d.cts +192 -0
  9. package/dist/appearance-D7uh_ZTy.d.ts +192 -0
  10. package/dist/appearance.cjs +39 -1
  11. package/dist/appearance.cjs.map +1 -0
  12. package/dist/appearance.d.cts +1 -1
  13. package/dist/appearance.d.ts +1 -1
  14. package/dist/appearance.js +39 -1
  15. package/dist/appearance.js.map +1 -0
  16. package/dist/browser-annotation-popup.cjs +9 -1
  17. package/dist/browser-annotation-popup.cjs.map +1 -0
  18. package/dist/browser-annotation-popup.d.cts +6 -6
  19. package/dist/browser-annotation-popup.d.ts +6 -6
  20. package/dist/browser-annotation-popup.js +9 -1
  21. package/dist/browser-annotation-popup.js.map +1 -0
  22. package/dist/chunk-66VEV7G2.js +111 -0
  23. package/dist/chunk-66VEV7G2.js.map +1 -0
  24. package/dist/chunk-KRP43SUA.cjs +1130 -0
  25. package/dist/chunk-KRP43SUA.cjs.map +1 -0
  26. package/dist/chunk-QS55W5Q5.cjs +111 -0
  27. package/dist/chunk-QS55W5Q5.cjs.map +1 -0
  28. package/dist/chunk-S3R5QFO4.js +1130 -0
  29. package/dist/chunk-S3R5QFO4.js.map +1 -0
  30. package/dist/chunk-UT5LC6MR.js +38 -0
  31. package/dist/chunk-UT5LC6MR.js.map +1 -0
  32. package/dist/chunk-ZZTEY4YX.cjs +38 -0
  33. package/dist/chunk-ZZTEY4YX.cjs.map +1 -0
  34. package/dist/core.css +7886 -0
  35. package/dist/file-tree.css +85 -0
  36. package/dist/index-nLo7jMlP.d.cts +166 -0
  37. package/dist/index-nLo7jMlP.d.ts +166 -0
  38. package/dist/index.cjs +39161 -26
  39. package/dist/index.cjs.map +1 -0
  40. package/dist/index.d.cts +3785 -3031
  41. package/dist/index.d.ts +3785 -3031
  42. package/dist/index.js +39161 -26
  43. package/dist/index.js.map +1 -0
  44. package/dist/locale.cjs +15 -0
  45. package/dist/locale.cjs.map +1 -0
  46. package/dist/locale.d.cts +28 -0
  47. package/dist/locale.d.ts +28 -0
  48. package/dist/locale.js +15 -0
  49. package/dist/locale.js.map +1 -0
  50. package/dist/office.css +1146 -0
  51. package/dist/slot-core.cjs +200 -0
  52. package/dist/slot-core.cjs.map +1 -0
  53. package/dist/slot-core.d.cts +146 -0
  54. package/dist/slot-core.d.ts +146 -0
  55. package/dist/slot-core.js +200 -0
  56. package/dist/slot-core.js.map +1 -0
  57. package/dist/slot-react.cjs +153 -0
  58. package/dist/slot-react.cjs.map +1 -0
  59. package/dist/slot-react.d.cts +36 -0
  60. package/dist/slot-react.d.ts +36 -0
  61. package/dist/slot-react.js +153 -0
  62. package/dist/slot-react.js.map +1 -0
  63. package/dist/tailwind.css +137 -0
  64. package/dist/workbench.css +9014 -0
  65. package/package.json +112 -47
  66. package/dist/appearance-D5uQ53j3.d.cts +0 -210
  67. package/dist/appearance-D5uQ53j3.d.ts +0 -210
  68. package/dist/chunk-3KT7IU4X.js +0 -13
  69. package/dist/chunk-5VLBKOG7.cjs +0 -194
  70. package/dist/chunk-7YJY64LZ.js +0 -82
  71. package/dist/chunk-EF2BSN3K.cjs +0 -13
  72. package/dist/chunk-GMMYDILD.cjs +0 -82
  73. package/dist/chunk-VG7FQQ7K.js +0 -194
  74. package/dist/fonts/JetBrainsMono-Medium.ttf +0 -0
  75. package/dist/fonts/JetBrainsMono-Regular.ttf +0 -0
  76. package/dist/fonts/SpaceGrotesk-700-latin-ext.woff2 +0 -0
  77. package/dist/fonts/SpaceGrotesk-700-latin.woff2 +0 -0
  78. package/dist/index.css +0 -1
  79. package/dist/orbitwork.css +0 -22145
  80. package/src/components/Layout/AppLayout/AppLayout.stories.tsx +0 -246
  81. package/src/components/Layout/AppLayout/AppLayoutSource.test.mjs +0 -37
  82. package/src/components/Layout/AppLayout/index.tsx +0 -122
  83. package/src/components/Layout/Sidebar/index.tsx +0 -13
  84. package/src/components/Layout/SidebarShell/SidebarShell.stories.tsx +0 -676
  85. package/src/components/Layout/SidebarShell/SidebarShellSource.test.mjs +0 -161
  86. package/src/components/Layout/SidebarShell/index.tsx +0 -326
  87. package/src/components/Layout/index.ts +0 -10
  88. package/src/components/composite/ActionBar/ActionBar.stories.tsx +0 -26
  89. package/src/components/composite/ActionBar/index.tsx +0 -31
  90. package/src/components/composite/ActionStatus/ActionStatus.stories.tsx +0 -60
  91. package/src/components/composite/ActionStatus/index.tsx +0 -21
  92. package/src/components/composite/AskQuestionCardView/AskQuestionCardView.stories.tsx +0 -175
  93. package/src/components/composite/AskQuestionCardView/AskQuestionCardViewSource.test.mjs +0 -92
  94. package/src/components/composite/AskQuestionCardView/index.tsx +0 -119
  95. package/src/components/composite/AssistantChannelCard/AssistantChannelCard.stories.tsx +0 -265
  96. package/src/components/composite/AssistantChannelCard/AssistantChannelCardSource.test.mjs +0 -45
  97. package/src/components/composite/AssistantChannelCard/index.tsx +0 -102
  98. package/src/components/composite/AssistantToggleRow/AssistantToggleRow.stories.tsx +0 -197
  99. package/src/components/composite/AssistantToggleRow/index.tsx +0 -35
  100. package/src/components/composite/AttachmentCard/AttachmentCard.stories.tsx +0 -125
  101. package/src/components/composite/AttachmentCard/index.tsx +0 -80
  102. package/src/components/composite/BackButton/BackButton.stories.tsx +0 -93
  103. package/src/components/composite/BackButton/BackButtonSource.test.mjs +0 -29
  104. package/src/components/composite/BackButton/index.tsx +0 -48
  105. package/src/components/composite/Banner/Banner.stories.tsx +0 -180
  106. package/src/components/composite/Banner/BannerSource.test.mjs +0 -67
  107. package/src/components/composite/Banner/index.tsx +0 -125
  108. package/src/components/composite/BeaconIcons/BeaconIcons.stories.tsx +0 -153
  109. package/src/components/composite/BeaconIcons/index.tsx +0 -265
  110. package/src/components/composite/BeaconSpinner/BeaconSpinner.stories.tsx +0 -144
  111. package/src/components/composite/BeaconSpinner/index.tsx +0 -185
  112. package/src/components/composite/CatalogStates/CatalogEmptyState.stories.tsx +0 -108
  113. package/src/components/composite/CatalogStates/CatalogStates.stories.tsx +0 -53
  114. package/src/components/composite/CatalogStates/CatalogStatesSource.test.mjs +0 -149
  115. package/src/components/composite/CatalogStates/index.tsx +0 -113
  116. package/src/components/composite/Charts/Charts.stories.tsx +0 -174
  117. package/src/components/composite/Charts/ChartsSource.test.mjs +0 -111
  118. package/src/components/composite/Charts/index.tsx +0 -385
  119. package/src/components/composite/CodeBlock/CodeBlock.stories.tsx +0 -308
  120. package/src/components/composite/CodeBlock/CodeFaceSource.test.mjs +0 -89
  121. package/src/components/composite/CodeBlock/index.tsx +0 -300
  122. package/src/components/composite/CodeDiff/CodeDiff.stories.tsx +0 -169
  123. package/src/components/composite/CodeDiff/index.tsx +0 -373
  124. package/src/components/composite/CodePreview/CodePreview.stories.tsx +0 -127
  125. package/src/components/composite/CodePreview/CodePreviewSource.test.mjs +0 -43
  126. package/src/components/composite/CodePreview/index.tsx +0 -98
  127. package/src/components/composite/CommandPalette/CommandPalette.stories.tsx +0 -89
  128. package/src/components/composite/CommandPalette/CommandPaletteSource.test.mjs +0 -61
  129. package/src/components/composite/CommandPalette/index.tsx +0 -310
  130. package/src/components/composite/ContentRecommendation/ContentRecommendation.stories.tsx +0 -300
  131. package/src/components/composite/ContentRecommendation/ContentRecommendationSource.test.mjs +0 -48
  132. package/src/components/composite/ContentRecommendation/index.tsx +0 -116
  133. package/src/components/composite/ContextChip/ContextChip.stories.tsx +0 -123
  134. package/src/components/composite/ContextChip/ContextChipSource.test.mjs +0 -24
  135. package/src/components/composite/ContextChip/index.tsx +0 -25
  136. package/src/components/composite/ContextUsageIndicatorView/ContextUsageIndicatorSizeSource.test.mjs +0 -15
  137. package/src/components/composite/ContextUsageIndicatorView/ContextUsageIndicatorView.stories.tsx +0 -110
  138. package/src/components/composite/ContextUsageIndicatorView/ContextUsageLoadingSource.test.mjs +0 -23
  139. package/src/components/composite/ContextUsageIndicatorView/index.tsx +0 -139
  140. package/src/components/composite/Controls/Controls.stories.tsx +0 -227
  141. package/src/components/composite/Controls/index.tsx +0 -15
  142. package/src/components/composite/CreateProjectDialog/CreateProjectDialog.stories.tsx +0 -56
  143. package/src/components/composite/CreateProjectDialog/index.tsx +0 -70
  144. package/src/components/composite/DataManagementSectionView/DataManagementSectionView.stories.tsx +0 -123
  145. package/src/components/composite/DataManagementSectionView/DataManagementSectionViewSource.test.mjs +0 -45
  146. package/src/components/composite/DataManagementSectionView/index.tsx +0 -110
  147. package/src/components/composite/DataTable/DataTable.stories.tsx +0 -159
  148. package/src/components/composite/DataTable/DataTableSource.test.mjs +0 -96
  149. package/src/components/composite/DataTable/index.tsx +0 -373
  150. package/src/components/composite/DetailChrome/DetailChrome.stories.tsx +0 -61
  151. package/src/components/composite/DetailChrome/DetailChromeSource.test.mjs +0 -31
  152. package/src/components/composite/DetailChrome/index.tsx +0 -94
  153. package/src/components/composite/DetailPanel/DetailPanel.stories.tsx +0 -185
  154. package/src/components/composite/DetailPanel/DetailPanelSource.test.mjs +0 -49
  155. package/src/components/composite/DetailPanel/index.tsx +0 -120
  156. package/src/components/composite/DetailScaffold/DetailScaffold.stories.tsx +0 -203
  157. package/src/components/composite/DetailScaffold/DetailScaffoldSource.test.mjs +0 -38
  158. package/src/components/composite/DetailScaffold/index.tsx +0 -114
  159. package/src/components/composite/Dialog/Dialog.stories.tsx +0 -343
  160. package/src/components/composite/Dialog/DialogSource.test.mjs +0 -130
  161. package/src/components/composite/Dialog/index.tsx +0 -333
  162. package/src/components/composite/DropZone/DropZone.stories.tsx +0 -105
  163. package/src/components/composite/DropZone/DropZoneSource.test.mjs +0 -68
  164. package/src/components/composite/DropZone/index.tsx +0 -196
  165. package/src/components/composite/FSelect/FSelect.stories.tsx +0 -64
  166. package/src/components/composite/FSelect/index.tsx +0 -29
  167. package/src/components/composite/FeedbackContextMenuView/FeedbackContextMenuView.stories.tsx +0 -106
  168. package/src/components/composite/FeedbackContextMenuView/index.tsx +0 -51
  169. package/src/components/composite/FeedbackDialogView/FeedbackDialogView.stories.tsx +0 -291
  170. package/src/components/composite/FeedbackDialogView/index.tsx +0 -95
  171. package/src/components/composite/FileReferenceCard/FileReferenceCard.stories.tsx +0 -364
  172. package/src/components/composite/FileReferenceCard/FileReferenceCardSource.test.mjs +0 -48
  173. package/src/components/composite/FileReferenceCard/index.tsx +0 -122
  174. package/src/components/composite/FilterBar/FilterBar.stories.tsx +0 -167
  175. package/src/components/composite/FilterBar/FilterBarSource.test.mjs +0 -75
  176. package/src/components/composite/FilterBar/index.tsx +0 -206
  177. package/src/components/composite/FormField/FormField.stories.tsx +0 -158
  178. package/src/components/composite/FormField/FormFieldSource.test.mjs +0 -56
  179. package/src/components/composite/FormField/index.tsx +0 -219
  180. package/src/components/composite/HomeBackdrop/HomeBackdrop.stories.tsx +0 -54
  181. package/src/components/composite/HomeBackdrop/HomeBackdropSource.test.mjs +0 -50
  182. package/src/components/composite/HomeBackdrop/index.tsx +0 -53
  183. package/src/components/composite/Icons/Icons.stories.tsx +0 -153
  184. package/src/components/composite/Icons/IconsSource.test.mjs +0 -23
  185. package/src/components/composite/Icons/index.tsx +0 -1361
  186. package/src/components/composite/ImageCard/ImageCard.stories.tsx +0 -54
  187. package/src/components/composite/ImageCard/index.tsx +0 -33
  188. package/src/components/composite/ImagePreview/ImagePreview.stories.tsx +0 -172
  189. package/src/components/composite/ImagePreview/ImagePreviewSource.test.mjs +0 -95
  190. package/src/components/composite/ImagePreview/index.tsx +0 -339
  191. package/src/components/composite/ListRow/ListRow.stories.tsx +0 -257
  192. package/src/components/composite/ListRow/ListRowSource.test.mjs +0 -101
  193. package/src/components/composite/ListRow/index.tsx +0 -309
  194. package/src/components/composite/Markdown/Markdown.stories.tsx +0 -192
  195. package/src/components/composite/Markdown/MarkdownSource.test.mjs +0 -126
  196. package/src/components/composite/Markdown/MarkdownStyleSource.test.mjs +0 -152
  197. package/src/components/composite/Markdown/index.tsx +0 -702
  198. package/src/components/composite/MarkdownPreview/MarkdownPreview.stories.tsx +0 -174
  199. package/src/components/composite/MarkdownPreview/MarkdownPreviewTabsSource.test.mjs +0 -31
  200. package/src/components/composite/MarkdownPreview/MarkdownRenderedStyleSource.test.mjs +0 -84
  201. package/src/components/composite/MarkdownPreview/index.tsx +0 -140
  202. package/src/components/composite/MarkdownPreviewModalView/MarkdownPreviewModalView.stories.tsx +0 -104
  203. package/src/components/composite/MarkdownPreviewModalView/index.tsx +0 -85
  204. package/src/components/composite/MessageFeedbackDialog/MessageFeedbackDialog.stories.tsx +0 -66
  205. package/src/components/composite/MessageFeedbackDialog/index.tsx +0 -115
  206. package/src/components/composite/ModelCatalogErrorState/ModelCatalogErrorState.stories.tsx +0 -101
  207. package/src/components/composite/ModelCatalogErrorState/ModelCatalogRetrySource.test.mjs +0 -86
  208. package/src/components/composite/ModelCatalogErrorState/index.tsx +0 -59
  209. package/src/components/composite/ModelModalityFlow/ModelModalityFlow.stories.tsx +0 -224
  210. package/src/components/composite/ModelModalityFlow/ModelModalityFlowSource.test.mjs +0 -56
  211. package/src/components/composite/ModelModalityFlow/index.tsx +0 -113
  212. package/src/components/composite/ModelPickerList/ModelPickerList.stories.tsx +0 -313
  213. package/src/components/composite/ModelPickerList/index.tsx +0 -142
  214. package/src/components/composite/ModelSelect/ModelSelect.stories.tsx +0 -90
  215. package/src/components/composite/ModelSelect/index.tsx +0 -148
  216. package/src/components/composite/ModelsSettingsSectionView/ModelsSettingsSectionView.stories.tsx +0 -170
  217. package/src/components/composite/ModelsSettingsSectionView/index.tsx +0 -139
  218. package/src/components/composite/NativeControls/NativeControls.stories.tsx +0 -386
  219. package/src/components/composite/NativeControls/NativeControlsStyleSource.test.mjs +0 -63
  220. package/src/components/composite/NativeControls/index.tsx +0 -97
  221. package/src/components/composite/NavMenu/NavMenu.stories.tsx +0 -383
  222. package/src/components/composite/NavMenu/NavMenuSource.test.mjs +0 -56
  223. package/src/components/composite/NavMenu/index.tsx +0 -142
  224. package/src/components/composite/NoPlanPanelView/NoPlanPanelView.stories.tsx +0 -344
  225. package/src/components/composite/NoPlanPanelView/NoPlanPanelViewSource.test.mjs +0 -34
  226. package/src/components/composite/NoPlanPanelView/index.tsx +0 -97
  227. package/src/components/composite/OpenWithButton/OpenWithButton.stories.tsx +0 -78
  228. package/src/components/composite/OpenWithButton/index.tsx +0 -46
  229. package/src/components/composite/OrbitworkLogo/OrbitworkLogo.stories.tsx +0 -192
  230. package/src/components/composite/OrbitworkLogo/index.tsx +0 -207
  231. package/src/components/composite/OrbitworkModal/OrbitworkModal.stories.tsx +0 -58
  232. package/src/components/composite/OrbitworkModal/index.tsx +0 -31
  233. package/src/components/composite/PageHead/PageHead.stories.tsx +0 -235
  234. package/src/components/composite/PageHead/PageHeadSource.test.mjs +0 -76
  235. package/src/components/composite/PageHead/index.tsx +0 -128
  236. package/src/components/composite/PlanFeatureIcon/PlanFeatureIcon.stories.tsx +0 -205
  237. package/src/components/composite/PlanFeatureIcon/PlanFeatureIconSource.test.mjs +0 -38
  238. package/src/components/composite/PlanFeatureIcon/index.tsx +0 -48
  239. package/src/components/composite/PlanSettingsSectionView/PlanSettingsSectionView.stories.tsx +0 -231
  240. package/src/components/composite/PlanSettingsSectionView/PlanSettingsSectionViewSource.test.mjs +0 -85
  241. package/src/components/composite/PlanSettingsSectionView/index.tsx +0 -264
  242. package/src/components/composite/Popover/Popover.stories.tsx +0 -175
  243. package/src/components/composite/Popover/PopoverSource.test.mjs +0 -59
  244. package/src/components/composite/Popover/index.tsx +0 -176
  245. package/src/components/composite/PptxRenderer/ElementDispatcher/index.tsx +0 -70
  246. package/src/components/composite/PptxRenderer/PptxChromeStyleSource.test.mjs +0 -36
  247. package/src/components/composite/PptxRenderer/PptxRenderer.stories.tsx +0 -128
  248. package/src/components/composite/PptxRenderer/PptxSlide/index.tsx +0 -48
  249. package/src/components/composite/PptxRenderer/constants.ts +0 -2
  250. package/src/components/composite/PptxRenderer/elements/AudioElement/index.tsx +0 -48
  251. package/src/components/composite/PptxRenderer/elements/ChartElement/index.tsx +0 -172
  252. package/src/components/composite/PptxRenderer/elements/DiagramElement/index.tsx +0 -46
  253. package/src/components/composite/PptxRenderer/elements/GroupElement/index.tsx +0 -28
  254. package/src/components/composite/PptxRenderer/elements/ImageElement/index.tsx +0 -61
  255. package/src/components/composite/PptxRenderer/elements/MathElement/index.tsx +0 -57
  256. package/src/components/composite/PptxRenderer/elements/ShapeElement/index.tsx +0 -327
  257. package/src/components/composite/PptxRenderer/elements/TableElement/index.tsx +0 -90
  258. package/src/components/composite/PptxRenderer/elements/TextElement/index.tsx +0 -57
  259. package/src/components/composite/PptxRenderer/elements/VideoElement/index.tsx +0 -43
  260. package/src/components/composite/PptxRenderer/index.ts +0 -24
  261. package/src/components/composite/PptxRenderer/types.ts +0 -326
  262. package/src/components/composite/PptxRenderer/utils.ts +0 -129
  263. package/src/components/composite/ProjectSelect/ProjectSelect.stories.tsx +0 -112
  264. package/src/components/composite/ProjectSelect/ProjectSelectSource.test.mjs +0 -34
  265. package/src/components/composite/ProjectSelect/index.tsx +0 -155
  266. package/src/components/composite/RadioCard/RadioCard.stories.tsx +0 -130
  267. package/src/components/composite/RadioCard/RadioCardSource.test.mjs +0 -42
  268. package/src/components/composite/RadioCard/index.tsx +0 -171
  269. package/src/components/composite/RowOverflowMenu/RowOverflowMenu.stories.tsx +0 -113
  270. package/src/components/composite/RowOverflowMenu/RowOverflowMenuSource.test.mjs +0 -59
  271. package/src/components/composite/RowOverflowMenu/index.tsx +0 -101
  272. package/src/components/composite/SandboxPermissionPrompt/SandboxPermissionPrompt.stories.tsx +0 -159
  273. package/src/components/composite/SandboxPermissionPrompt/SandboxPermissionPromptSource.test.mjs +0 -71
  274. package/src/components/composite/SandboxPermissionPrompt/index.tsx +0 -157
  275. package/src/components/composite/SearchInput/SearchInput.stories.tsx +0 -127
  276. package/src/components/composite/SearchInput/index.tsx +0 -91
  277. package/src/components/composite/SearchResult/SearchResult.stories.tsx +0 -305
  278. package/src/components/composite/SearchResult/SearchResultSource.test.mjs +0 -45
  279. package/src/components/composite/SearchResult/index.tsx +0 -148
  280. package/src/components/composite/Section/Section.stories.tsx +0 -148
  281. package/src/components/composite/Section/SectionSource.test.mjs +0 -59
  282. package/src/components/composite/Section/index.tsx +0 -105
  283. package/src/components/composite/SelectionBulkBar/SelectionBulkBar.stories.tsx +0 -111
  284. package/src/components/composite/SelectionBulkBar/SelectionBulkBarSource.test.mjs +0 -44
  285. package/src/components/composite/SelectionBulkBar/index.tsx +0 -99
  286. package/src/components/composite/ShareStrip/ShareStrip.stories.tsx +0 -123
  287. package/src/components/composite/ShareStrip/index.tsx +0 -83
  288. package/src/components/composite/ShortcutSheet/ShortcutSheet.stories.tsx +0 -90
  289. package/src/components/composite/ShortcutSheet/ShortcutSheetSource.test.mjs +0 -49
  290. package/src/components/composite/ShortcutSheet/index.tsx +0 -163
  291. package/src/components/composite/SitesArtifactCardView/SitesArtifactCardView.stories.tsx +0 -328
  292. package/src/components/composite/SitesArtifactCardView/SitesArtifactCardViewSource.test.mjs +0 -45
  293. package/src/components/composite/SitesArtifactCardView/index.tsx +0 -100
  294. package/src/components/composite/Skeleton/Skeleton.stories.tsx +0 -188
  295. package/src/components/composite/Skeleton/SkeletonSource.test.mjs +0 -25
  296. package/src/components/composite/Skeleton/index.tsx +0 -152
  297. package/src/components/composite/Splash/Splash.stories.tsx +0 -150
  298. package/src/components/composite/Splash/index.tsx +0 -229
  299. package/src/components/composite/StatusTag/StatusTag.stories.tsx +0 -66
  300. package/src/components/composite/StatusTag/StatusTagSource.test.mjs +0 -64
  301. package/src/components/composite/StatusTag/index.tsx +0 -78
  302. package/src/components/composite/StepList/StepList.stories.tsx +0 -352
  303. package/src/components/composite/StepList/index.tsx +0 -23
  304. package/src/components/composite/Tag/Tag.stories.tsx +0 -279
  305. package/src/components/composite/Tag/TagSource.test.mjs +0 -67
  306. package/src/components/composite/Tag/index.tsx +0 -229
  307. package/src/components/composite/TimePicker/TimePicker.stories.tsx +0 -91
  308. package/src/components/composite/TimePicker/TimePickerSource.test.mjs +0 -98
  309. package/src/components/composite/TimePicker/index.tsx +0 -208
  310. package/src/components/composite/TitleBar/TitleBar.stories.tsx +0 -329
  311. package/src/components/composite/TitleBar/TitleBarSource.test.mjs +0 -140
  312. package/src/components/composite/TitleBar/index.tsx +0 -350
  313. package/src/components/composite/Toast/Toast.stories.tsx +0 -304
  314. package/src/components/composite/Toast/ToastSource.test.mjs +0 -63
  315. package/src/components/composite/Toast/index.tsx +0 -135
  316. package/src/components/composite/Tooltip/Tooltip.stories.tsx +0 -304
  317. package/src/components/composite/Tooltip/TooltipSource.test.mjs +0 -34
  318. package/src/components/composite/Tooltip/index.tsx +0 -204
  319. package/src/components/composite/TranscriptDividers/TranscriptDividers.stories.tsx +0 -160
  320. package/src/components/composite/TranscriptDividers/TranscriptDividersSource.test.mjs +0 -90
  321. package/src/components/composite/TranscriptDividers/index.tsx +0 -352
  322. package/src/components/composite/WCardShell/WCardShell.stories.tsx +0 -228
  323. package/src/components/composite/WCardShell/index.tsx +0 -101
  324. package/src/components/composite/index.ts +0 -81
  325. package/src/components/domain/artifacts/ArtifactPreviewSidebarView/ArtifactPreviewSidebarView.stories.tsx +0 -128
  326. package/src/components/domain/artifacts/ArtifactPreviewSidebarView/ArtifactPreviewSidebarViewSource.test.mjs +0 -69
  327. package/src/components/domain/artifacts/ArtifactPreviewSidebarView/index.tsx +0 -212
  328. package/src/components/domain/artifacts/index.ts +0 -1
  329. package/src/components/domain/browser/BrowserAnnotationPopupView/BrowserAnnotationPopupView.stories.tsx +0 -211
  330. package/src/components/domain/browser/BrowserAnnotationPopupView/BrowserAnnotationPopupViewSource.test.mjs +0 -82
  331. package/src/components/domain/browser/BrowserAnnotationPopupView/index.tsx +0 -235
  332. package/src/components/domain/browser/BrowserDeviceToolbarView/BrowserDeviceToolbarView.stories.tsx +0 -260
  333. package/src/components/domain/browser/BrowserDeviceToolbarView/BrowserDeviceToolbarViewSource.test.mjs +0 -12
  334. package/src/components/domain/browser/BrowserDeviceToolbarView/index.tsx +0 -154
  335. package/src/components/domain/browser/BrowserFindBarView/BrowserFindBarView.stories.tsx +0 -52
  336. package/src/components/domain/browser/BrowserFindBarView/index.tsx +0 -111
  337. package/src/components/domain/browser/BrowserImportDialogView/BrowserImportDialogView.stories.tsx +0 -89
  338. package/src/components/domain/browser/BrowserImportDialogView/index.tsx +0 -155
  339. package/src/components/domain/browser/BrowserLoadErrorView/BrowserLoadErrorView.stories.tsx +0 -197
  340. package/src/components/domain/browser/BrowserLoadErrorView/BrowserLoadErrorViewSource.test.mjs +0 -29
  341. package/src/components/domain/browser/BrowserLoadErrorView/index.tsx +0 -45
  342. package/src/components/domain/browser/BrowserMoreMenuView/BrowserMoreMenuView.stories.tsx +0 -66
  343. package/src/components/domain/browser/BrowserMoreMenuView/index.tsx +0 -268
  344. package/src/components/domain/browser/BrowserNavBarView/BrowserNavBarView.stories.tsx +0 -149
  345. package/src/components/domain/browser/BrowserNavBarView/index.tsx +0 -156
  346. package/src/components/domain/browser/BrowserTabBarView/index.tsx +0 -18
  347. package/src/components/domain/browser/SubAgentPane/SubAgentPane.stories.tsx +0 -96
  348. package/src/components/domain/browser/SubAgentPane/SubAgentPaneSource.test.mjs +0 -48
  349. package/src/components/domain/browser/SubAgentPane/index.tsx +0 -121
  350. package/src/components/domain/browser/TerminalPane/TerminalPane.stories.tsx +0 -95
  351. package/src/components/domain/browser/TerminalPane/TerminalPaneSource.test.mjs +0 -52
  352. package/src/components/domain/browser/TerminalPane/index.tsx +0 -75
  353. package/src/components/domain/browser/WebPreview/WebPreview.stories.tsx +0 -71
  354. package/src/components/domain/browser/WebPreview/index.tsx +0 -141
  355. package/src/components/domain/browser/WebPreviewConsole/WebPreviewConsole.stories.tsx +0 -61
  356. package/src/components/domain/browser/WebPreviewConsole/WebPreviewConsoleSource.test.mjs +0 -66
  357. package/src/components/domain/browser/WebPreviewConsole/index.tsx +0 -239
  358. package/src/components/domain/browser/WebPreviewDialog/WebPreviewDialog.stories.tsx +0 -288
  359. package/src/components/domain/browser/WebPreviewDialog/WebPreviewDialogSource.test.mjs +0 -62
  360. package/src/components/domain/browser/WebPreviewDialog/index.tsx +0 -82
  361. package/src/components/domain/browser/WebPreviewNav/WebPreviewNav.stories.tsx +0 -462
  362. package/src/components/domain/browser/WebPreviewNav/WebPreviewNavSource.test.mjs +0 -353
  363. package/src/components/domain/browser/WebPreviewNav/index.tsx +0 -351
  364. package/src/components/domain/browser/WebPreviewShell/WebPreviewShell.stories.tsx +0 -226
  365. package/src/components/domain/browser/WebPreviewShell/WebPreviewShellSource.test.mjs +0 -172
  366. package/src/components/domain/browser/WebPreviewShell/index.tsx +0 -324
  367. package/src/components/domain/browser/index.ts +0 -45
  368. package/src/components/domain/chat/AgentLoopSegment/AgentLoopSegment.stories.tsx +0 -107
  369. package/src/components/domain/chat/AgentLoopSegment/AgentLoopSegmentSource.test.mjs +0 -45
  370. package/src/components/domain/chat/AgentLoopSegment/index.tsx +0 -29
  371. package/src/components/domain/chat/AgentTurn/AgentTurn.stories.tsx +0 -162
  372. package/src/components/domain/chat/AgentTurn/AgentTurnSource.test.mjs +0 -98
  373. package/src/components/domain/chat/AgentTurn/beaconContext.ts +0 -37
  374. package/src/components/domain/chat/AgentTurn/index.tsx +0 -226
  375. package/src/components/domain/chat/ArtifactCard/ArtifactCard.stories.tsx +0 -127
  376. package/src/components/domain/chat/ArtifactCard/index.tsx +0 -249
  377. package/src/components/domain/chat/Attachment/Attachment.stories.tsx +0 -235
  378. package/src/components/domain/chat/Attachment/AttachmentSource.test.mjs +0 -160
  379. package/src/components/domain/chat/Attachment/index.tsx +0 -857
  380. package/src/components/domain/chat/AuthorizationCard/AuthorizationCard.stories.tsx +0 -53
  381. package/src/components/domain/chat/AuthorizationCard/AuthorizationCardSource.test.mjs +0 -80
  382. package/src/components/domain/chat/AuthorizationCard/index.tsx +0 -89
  383. package/src/components/domain/chat/ChatBubble/ChatBubble.stories.tsx +0 -32
  384. package/src/components/domain/chat/ChatBubble/index.tsx +0 -24
  385. package/src/components/domain/chat/ChatMessage/ChatMessage.stories.tsx +0 -31
  386. package/src/components/domain/chat/ChatMessage/index.tsx +0 -23
  387. package/src/components/domain/chat/ChatR2ReviewSource.test.mjs +0 -98
  388. package/src/components/domain/chat/ChatThinking/ChatThinking.stories.tsx +0 -125
  389. package/src/components/domain/chat/ChatThinking/index.tsx +0 -55
  390. package/src/components/domain/chat/Chatbot/Chatbot.stories.tsx +0 -49
  391. package/src/components/domain/chat/Chatbot/index.tsx +0 -37
  392. package/src/components/domain/chat/Composer/Composer.stories.tsx +0 -227
  393. package/src/components/domain/chat/Composer/ComposerSource.test.mjs +0 -175
  394. package/src/components/domain/chat/Composer/index.tsx +0 -450
  395. package/src/components/domain/chat/Composer/parts/ComposerAudioSpectrum.stories.tsx +0 -203
  396. package/src/components/domain/chat/Composer/parts/ComposerAudioSpectrum.tsx +0 -110
  397. package/src/components/domain/chat/Composer/parts/ComposerAudioSpectrumSource.test.mjs +0 -54
  398. package/src/components/domain/chat/Composer/parts/ComposerAuthorization.stories.tsx +0 -155
  399. package/src/components/domain/chat/Composer/parts/ComposerAuthorization.tsx +0 -108
  400. package/src/components/domain/chat/Composer/parts/ComposerMentions.stories.tsx +0 -76
  401. package/src/components/domain/chat/Composer/parts/ComposerMentions.tsx +0 -83
  402. package/src/components/domain/chat/Composer/parts/ComposerMentionsSource.test.mjs +0 -85
  403. package/src/components/domain/chat/Composer/parts/ComposerMenu.stories.tsx +0 -266
  404. package/src/components/domain/chat/Composer/parts/ComposerMenu.tsx +0 -232
  405. package/src/components/domain/chat/Composer/parts/ComposerMenuPopover.stories.tsx +0 -166
  406. package/src/components/domain/chat/Composer/parts/ComposerMenuPopover.tsx +0 -87
  407. package/src/components/domain/chat/Composer/parts/ComposerMenuPopoverSource.test.mjs +0 -56
  408. package/src/components/domain/chat/Composer/parts/ComposerPopover.stories.tsx +0 -257
  409. package/src/components/domain/chat/Composer/parts/ComposerPopover.tsx +0 -221
  410. package/src/components/domain/chat/Composer/parts/ComposerPopoverSource.test.mjs +0 -71
  411. package/src/components/domain/chat/Composer/parts/ComposerProjectPicker.stories.tsx +0 -260
  412. package/src/components/domain/chat/Composer/parts/ComposerProjectPicker.tsx +0 -246
  413. package/src/components/domain/chat/Composer/parts/ComposerProjectPickerSource.test.mjs +0 -46
  414. package/src/components/domain/chat/Composer/parts/ComposerQueue.stories.tsx +0 -275
  415. package/src/components/domain/chat/Composer/parts/ComposerQueue.tsx +0 -155
  416. package/src/components/domain/chat/Composer/parts/ComposerQueueSource.test.mjs +0 -95
  417. package/src/components/domain/chat/Composer/parts/ComposerVoiceInput.stories.tsx +0 -77
  418. package/src/components/domain/chat/Composer/parts/ComposerVoiceInput.tsx +0 -70
  419. package/src/components/domain/chat/Composer/parts/mountChip.ts +0 -21
  420. package/src/components/domain/chat/ContextUsage/ContextUsage.stories.tsx +0 -62
  421. package/src/components/domain/chat/ContextUsage/index.tsx +0 -69
  422. package/src/components/domain/chat/ExecutionSummary/ExecutionSummary.stories.tsx +0 -238
  423. package/src/components/domain/chat/ExecutionSummary/ExecutionSummarySource.test.mjs +0 -210
  424. package/src/components/domain/chat/ExecutionSummary/index.tsx +0 -487
  425. package/src/components/domain/chat/Message/Message.stories.tsx +0 -264
  426. package/src/components/domain/chat/Message/index.tsx +0 -44
  427. package/src/components/domain/chat/MessageActions/MessageActions.stories.tsx +0 -132
  428. package/src/components/domain/chat/MessageActions/MessageActionsSource.test.mjs +0 -79
  429. package/src/components/domain/chat/MessageActions/index.tsx +0 -186
  430. package/src/components/domain/chat/PlanCard/PlanCard.stories.tsx +0 -87
  431. package/src/components/domain/chat/PlanCard/index.tsx +0 -170
  432. package/src/components/domain/chat/RichContent/RichContent.stories.tsx +0 -102
  433. package/src/components/domain/chat/RichContent/RichContentSource.test.mjs +0 -82
  434. package/src/components/domain/chat/RichContent/index.tsx +0 -465
  435. package/src/components/domain/chat/SubAgentThread/SubAgentThread.stories.tsx +0 -119
  436. package/src/components/domain/chat/SubAgentThread/index.tsx +0 -104
  437. package/src/components/domain/chat/Thinking/Thinking.stories.tsx +0 -196
  438. package/src/components/domain/chat/Thinking/ThinkingInlineSource.test.mjs +0 -154
  439. package/src/components/domain/chat/Thinking/index.tsx +0 -237
  440. package/src/components/domain/chat/ToolCallRow/ToolCallRow.stories.tsx +0 -105
  441. package/src/components/domain/chat/ToolCallRow/ToolCallRowSource.test.mjs +0 -83
  442. package/src/components/domain/chat/ToolCallRow/index.tsx +0 -113
  443. package/src/components/domain/chat/Transcript/Transcript.stories.tsx +0 -296
  444. package/src/components/domain/chat/Transcript/TranscriptSource.test.mjs +0 -189
  445. package/src/components/domain/chat/Transcript/index.tsx +0 -187
  446. package/src/components/domain/chat/TranscriptSpine/TranscriptSpine.stories.tsx +0 -124
  447. package/src/components/domain/chat/TranscriptSpine/index.tsx +0 -245
  448. package/src/components/domain/chat/UserTurn/UserTurn.stories.tsx +0 -176
  449. package/src/components/domain/chat/UserTurn/UserTurnSource.test.mjs +0 -150
  450. package/src/components/domain/chat/UserTurn/index.tsx +0 -194
  451. package/src/components/domain/chat/index.ts +0 -22
  452. package/src/components/domain/desktop/DesktopAccountMenuView/DesktopAccountMenuView.stories.tsx +0 -116
  453. package/src/components/domain/desktop/DesktopAccountMenuView/DesktopAccountMenuViewSource.test.mjs +0 -80
  454. package/src/components/domain/desktop/DesktopAccountMenuView/index.tsx +0 -355
  455. package/src/components/domain/desktop/DesktopAppearanceSettings/DesktopAppearanceSettings.stories.tsx +0 -96
  456. package/src/components/domain/desktop/DesktopAppearanceSettings/DesktopAppearanceSettingsSource.test.mjs +0 -89
  457. package/src/components/domain/desktop/DesktopAppearanceSettings/index.tsx +0 -155
  458. package/src/components/domain/desktop/DesktopAssistantConfigView/DesktopAssistantConfigView.stories.tsx +0 -275
  459. package/src/components/domain/desktop/DesktopAssistantConfigView/DesktopAssistantConfigViewSource.test.mjs +0 -37
  460. package/src/components/domain/desktop/DesktopAssistantConfigView/index.tsx +0 -221
  461. package/src/components/domain/desktop/DesktopCatalogView/DesktopCatalogView.stories.tsx +0 -537
  462. package/src/components/domain/desktop/DesktopCatalogView/DesktopCatalogViewSource.test.mjs +0 -339
  463. package/src/components/domain/desktop/DesktopCatalogView/index.tsx +0 -1074
  464. package/src/components/domain/desktop/DesktopChatBranchDivider/DesktopChatBranchDivider.stories.tsx +0 -58
  465. package/src/components/domain/desktop/DesktopChatBranchDivider/index.tsx +0 -33
  466. package/src/components/domain/desktop/DesktopChatEmptyStateView/DesktopChatEmptyStateView.stories.tsx +0 -75
  467. package/src/components/domain/desktop/DesktopChatEmptyStateView/DesktopChatEmptyStateViewSource.test.mjs +0 -54
  468. package/src/components/domain/desktop/DesktopChatEmptyStateView/index.tsx +0 -64
  469. package/src/components/domain/desktop/DesktopChatHeaderView/DesktopChatHeaderView.stories.tsx +0 -83
  470. package/src/components/domain/desktop/DesktopChatHeaderView/DesktopChatHeaderViewSource.test.mjs +0 -126
  471. package/src/components/domain/desktop/DesktopChatHeaderView/index.tsx +0 -169
  472. package/src/components/domain/desktop/DesktopChatMessageView/DesktopChatMessageView.stories.tsx +0 -170
  473. package/src/components/domain/desktop/DesktopChatMessageView/DesktopChatMessageViewSource.test.mjs +0 -47
  474. package/src/components/domain/desktop/DesktopChatMessageView/index.tsx +0 -213
  475. package/src/components/domain/desktop/DesktopChatTurnView/DesktopChatTurnView.stories.tsx +0 -498
  476. package/src/components/domain/desktop/DesktopChatTurnView/DesktopChatTurnViewSource.test.mjs +0 -187
  477. package/src/components/domain/desktop/DesktopChatTurnView/index.tsx +0 -490
  478. package/src/components/domain/desktop/DesktopComposer/DesktopComposer.stories.tsx +0 -195
  479. package/src/components/domain/desktop/DesktopComposer/DesktopComposerModelPickerSource.test.mjs +0 -132
  480. package/src/components/domain/desktop/DesktopComposer/DesktopComposerMountChipSource.test.mjs +0 -43
  481. package/src/components/domain/desktop/DesktopComposer/DesktopComposerResponsiveSource.test.mjs +0 -44
  482. package/src/components/domain/desktop/DesktopComposer/DesktopMcpFormThemeSource.test.mjs +0 -30
  483. package/src/components/domain/desktop/DesktopComposer/index.tsx +0 -206
  484. package/src/components/domain/desktop/DesktopConnectorDetailView/DesktopConnectorDetailView.stories.tsx +0 -72
  485. package/src/components/domain/desktop/DesktopConnectorDetailView/DesktopConnectorDetailViewSource.test.mjs +0 -81
  486. package/src/components/domain/desktop/DesktopConnectorDetailView/index.tsx +0 -301
  487. package/src/components/domain/desktop/DesktopHomeView/DesktopHomeView.stories.tsx +0 -103
  488. package/src/components/domain/desktop/DesktopHomeView/DesktopHomeViewSource.test.mjs +0 -51
  489. package/src/components/domain/desktop/DesktopHomeView/index.tsx +0 -122
  490. package/src/components/domain/desktop/DesktopLibraryAuthorizationDialog/DesktopLibraryAuthorizationDialog.stories.tsx +0 -55
  491. package/src/components/domain/desktop/DesktopLibraryAuthorizationDialog/index.tsx +0 -156
  492. package/src/components/domain/desktop/DesktopLibraryPageView/DesktopLibraryPageView.stories.tsx +0 -42
  493. package/src/components/domain/desktop/DesktopLibraryPageView/index.tsx +0 -35
  494. package/src/components/domain/desktop/DesktopLoginView/DesktopLoginView.css +0 -75
  495. package/src/components/domain/desktop/DesktopLoginView/DesktopLoginView.stories.tsx +0 -230
  496. package/src/components/domain/desktop/DesktopLoginView/DesktopLoginViewSource.test.mjs +0 -149
  497. package/src/components/domain/desktop/DesktopLoginView/index.tsx +0 -418
  498. package/src/components/domain/desktop/DesktopOnboardingTourView/DesktopOnboardingTourView.stories.tsx +0 -103
  499. package/src/components/domain/desktop/DesktopOnboardingTourView/DesktopOnboardingTourViewSource.test.mjs +0 -57
  500. package/src/components/domain/desktop/DesktopOnboardingTourView/index.tsx +0 -189
  501. package/src/components/domain/desktop/DesktopPet/DesktopPet.fixture.ts +0 -243
  502. package/src/components/domain/desktop/DesktopPet/DesktopPet.stories.tsx +0 -337
  503. package/src/components/domain/desktop/DesktopPet/DesktopPetSource.test.mjs +0 -191
  504. package/src/components/domain/desktop/DesktopPet/index.tsx +0 -591
  505. package/src/components/domain/desktop/DesktopPetSettings/DesktopPetSettings.stories.tsx +0 -159
  506. package/src/components/domain/desktop/DesktopPetSettings/DesktopPetSettingsSource.test.mjs +0 -76
  507. package/src/components/domain/desktop/DesktopPetSettings/index.tsx +0 -140
  508. package/src/components/domain/desktop/DesktopRunStatusView/DesktopRunStatusView.stories.tsx +0 -166
  509. package/src/components/domain/desktop/DesktopRunStatusView/DesktopRunStatusViewSource.test.mjs +0 -51
  510. package/src/components/domain/desktop/DesktopRunStatusView/index.tsx +0 -34
  511. package/src/components/domain/desktop/DesktopSelectionCard/DesktopSelectionCard.stories.tsx +0 -122
  512. package/src/components/domain/desktop/DesktopSelectionCard/DesktopSelectionCardSource.test.mjs +0 -42
  513. package/src/components/domain/desktop/DesktopSelectionCard/index.tsx +0 -75
  514. package/src/components/domain/desktop/DesktopSettingsMemorySection/DesktopSettingsMemorySection.stories.tsx +0 -225
  515. package/src/components/domain/desktop/DesktopSettingsMemorySection/DesktopSettingsMemorySectionSource.test.mjs +0 -105
  516. package/src/components/domain/desktop/DesktopSettingsMemorySection/index.tsx +0 -340
  517. package/src/components/domain/desktop/DesktopSettingsView/DesktopSettingsView.stories.tsx +0 -177
  518. package/src/components/domain/desktop/DesktopSettingsView/DesktopSettingsViewSource.test.mjs +0 -195
  519. package/src/components/domain/desktop/DesktopSettingsView/index.tsx +0 -176
  520. package/src/components/domain/desktop/DesktopShareSelectionBarView/DesktopShareSelectionBarView.stories.tsx +0 -77
  521. package/src/components/domain/desktop/DesktopShareSelectionBarView/DesktopShareSelectionBarViewSource.test.mjs +0 -76
  522. package/src/components/domain/desktop/DesktopShareSelectionBarView/index.tsx +0 -55
  523. package/src/components/domain/desktop/DesktopSidebarView/DesktopSidebarView.stories.tsx +0 -454
  524. package/src/components/domain/desktop/DesktopSidebarView/DesktopSidebarViewSource.test.mjs +0 -386
  525. package/src/components/domain/desktop/DesktopSidebarView/index.tsx +0 -1075
  526. package/src/components/domain/desktop/DesktopSiteReleasesView/DesktopSiteReleasesView.stories.tsx +0 -369
  527. package/src/components/domain/desktop/DesktopSiteReleasesView/DesktopSiteReleasesViewSource.test.mjs +0 -123
  528. package/src/components/domain/desktop/DesktopSiteReleasesView/index.tsx +0 -392
  529. package/src/components/domain/desktop/DesktopSitesListView/DesktopSitesListView.stories.tsx +0 -244
  530. package/src/components/domain/desktop/DesktopSitesListView/DesktopSitesListViewSource.test.mjs +0 -198
  531. package/src/components/domain/desktop/DesktopSitesListView/index.tsx +0 -417
  532. package/src/components/domain/desktop/DesktopSkillsPageView/DesktopSkillsPageView.stories.tsx +0 -230
  533. package/src/components/domain/desktop/DesktopSkillsPageView/DesktopSkillsPageViewSource.test.mjs +0 -149
  534. package/src/components/domain/desktop/DesktopSkillsPageView/index.tsx +0 -235
  535. package/src/components/domain/desktop/DesktopTaskDetailView/index.tsx +0 -111
  536. package/src/components/domain/desktop/DesktopToolCallView/DesktopToolCallListViewSource.test.mjs +0 -302
  537. package/src/components/domain/desktop/DesktopToolCallView/DesktopToolCallView.stories.tsx +0 -409
  538. package/src/components/domain/desktop/DesktopToolCallView/index.tsx +0 -388
  539. package/src/components/domain/desktop/DesktopWorkbenchShell/DesktopWorkbenchShell.stories.tsx +0 -418
  540. package/src/components/domain/desktop/DesktopWorkbenchShell/DesktopWorkbenchShellSource.test.mjs +0 -151
  541. package/src/components/domain/desktop/DesktopWorkbenchShell/index.tsx +0 -167
  542. package/src/components/domain/desktop/DesktopWorkspacePageView/DesktopWorkspacePageView.stories.tsx +0 -135
  543. package/src/components/domain/desktop/DesktopWorkspacePageView/DesktopWorkspacePageViewSource.test.mjs +0 -57
  544. package/src/components/domain/desktop/DesktopWorkspacePageView/index.tsx +0 -114
  545. package/src/components/domain/desktop/DesktopWorkspaceView/DesktopWorkspaceView.stories.tsx +0 -227
  546. package/src/components/domain/desktop/DesktopWorkspaceView/DesktopWorkspaceViewSource.test.mjs +0 -175
  547. package/src/components/domain/desktop/DesktopWorkspaceView/index.tsx +0 -580
  548. package/src/components/domain/desktop/ResourceManagement/ResourceManagement.stories.tsx +0 -19
  549. package/src/components/domain/desktop/ResourceManagement/ResourceManagementSource.test.mjs +0 -54
  550. package/src/components/domain/desktop/ResourceManagement/SharesList.tsx +0 -323
  551. package/src/components/domain/desktop/ResourceManagement/SnapshotViews.tsx +0 -92
  552. package/src/components/domain/desktop/ResourceManagement/SnapshotViewsSource.test.mjs +0 -15
  553. package/src/components/domain/desktop/ResourceManagement/index.tsx +0 -246
  554. package/src/components/domain/desktop/ShareSettingsDialogView/index.tsx +0 -234
  555. package/src/components/domain/desktop/SidePanelEmpty/SidePanelEmpty.stories.tsx +0 -100
  556. package/src/components/domain/desktop/SidePanelEmpty/SidePanelEmptySource.test.mjs +0 -67
  557. package/src/components/domain/desktop/SidePanelEmpty/index.tsx +0 -113
  558. package/src/components/domain/desktop/StarterCapsules/StarterCapsules.stories.tsx +0 -65
  559. package/src/components/domain/desktop/StarterCapsules/StarterCapsulesSource.test.mjs +0 -43
  560. package/src/components/domain/desktop/StarterCapsules/index.tsx +0 -90
  561. package/src/components/domain/desktop/WorkbenchSidePanel/WorkbenchSidePanel.stories.tsx +0 -59
  562. package/src/components/domain/desktop/WorkbenchSidePanel/WorkbenchSidePanelSource.test.mjs +0 -51
  563. package/src/components/domain/desktop/WorkbenchSidePanel/index.tsx +0 -74
  564. package/src/components/domain/desktop/WorkspaceMigrateConfirm/WorkspaceMigrateConfirm.stories.tsx +0 -79
  565. package/src/components/domain/desktop/WorkspaceMigrateConfirm/WorkspaceMigrateConfirmSource.test.mjs +0 -34
  566. package/src/components/domain/desktop/WorkspaceMigrateConfirm/index.tsx +0 -92
  567. package/src/components/domain/desktop/index.ts +0 -64
  568. package/src/components/domain/files/FileBrowser/FileBrowser.stories.tsx +0 -397
  569. package/src/components/domain/files/FileBrowser/FileBrowserSource.test.mjs +0 -75
  570. package/src/components/domain/files/FileBrowser/index.tsx +0 -221
  571. package/src/components/domain/files/FileIcon/FileIcon.stories.tsx +0 -207
  572. package/src/components/domain/files/FileIcon/FileIconSource.test.mjs +0 -39
  573. package/src/components/domain/files/FileIcon/index.tsx +0 -133
  574. package/src/components/domain/files/FilePreviewContentView/FilePreviewContentView.stories.tsx +0 -242
  575. package/src/components/domain/files/FilePreviewContentView/FilePreviewContentViewSource.test.mjs +0 -44
  576. package/src/components/domain/files/FilePreviewContentView/index.tsx +0 -125
  577. package/src/components/domain/files/FileTree/FileTree.stories.tsx +0 -204
  578. package/src/components/domain/files/FileTree/FileTreeSource.test.mjs +0 -18
  579. package/src/components/domain/files/FileTree/index.tsx +0 -106
  580. package/src/components/domain/files/PreviewDialog/PreviewDialog.stories.tsx +0 -178
  581. package/src/components/domain/files/PreviewDialog/PreviewDialogSource.test.mjs +0 -92
  582. package/src/components/domain/files/PreviewDialog/index.tsx +0 -294
  583. package/src/components/domain/files/index.ts +0 -5
  584. package/src/components/domain/index.ts +0 -8
  585. package/src/components/domain/office/CsvPreview/CsvPreview.stories.tsx +0 -264
  586. package/src/components/domain/office/CsvPreview/CsvPreviewSource.test.mjs +0 -77
  587. package/src/components/domain/office/CsvPreview/index.tsx +0 -224
  588. package/src/components/domain/office/OfficePreview/OfficePreview.stories.tsx +0 -265
  589. package/src/components/domain/office/OfficePreview/OfficePreviewDialog.stories.tsx +0 -71
  590. package/src/components/domain/office/OfficePreview/OfficePreviewDialog.tsx +0 -43
  591. package/src/components/domain/office/OfficePreview/OfficePreviewSource.test.mjs +0 -126
  592. package/src/components/domain/office/OfficePreview/index.tsx +0 -782
  593. package/src/components/domain/office/PdfPreview/PdfPreview.stories.tsx +0 -280
  594. package/src/components/domain/office/PdfPreview/PdfPreviewDialog.stories.tsx +0 -61
  595. package/src/components/domain/office/PdfPreview/PdfPreviewDialog.tsx +0 -61
  596. package/src/components/domain/office/PdfPreview/PdfPreviewSource.test.mjs +0 -70
  597. package/src/components/domain/office/PdfPreview/index.tsx +0 -217
  598. package/src/components/domain/office/index.ts +0 -5
  599. package/src/components/domain/skills/McpServerListView/McpServerListView.stories.tsx +0 -510
  600. package/src/components/domain/skills/McpServerListView/McpServerListViewSource.test.mjs +0 -101
  601. package/src/components/domain/skills/McpServerListView/index.tsx +0 -250
  602. package/src/components/domain/skills/SkillAvatarView/SkillAvatarView.stories.tsx +0 -121
  603. package/src/components/domain/skills/SkillAvatarView/SkillAvatarViewSource.test.mjs +0 -67
  604. package/src/components/domain/skills/SkillAvatarView/index.tsx +0 -112
  605. package/src/components/domain/skills/SkillCardView/SkillCardView.stories.tsx +0 -374
  606. package/src/components/domain/skills/SkillCardView/SkillCardViewSource.test.mjs +0 -35
  607. package/src/components/domain/skills/SkillCardView/index.tsx +0 -88
  608. package/src/components/domain/skills/SkillDetailPanelView/SkillDetailPanelView.stories.tsx +0 -113
  609. package/src/components/domain/skills/SkillDetailPanelView/index.tsx +0 -115
  610. package/src/components/domain/skills/SkillDetailView/SkillDetailView.stories.tsx +0 -274
  611. package/src/components/domain/skills/SkillDetailView/index.tsx +0 -121
  612. package/src/components/domain/skills/SkillImportDialogView/SkillImportDialogView.stories.tsx +0 -128
  613. package/src/components/domain/skills/SkillImportDialogView/SkillImportDialogViewSource.test.mjs +0 -11
  614. package/src/components/domain/skills/SkillImportDialogView/index.tsx +0 -147
  615. package/src/components/domain/skills/ToolDetailModalView/ToolDetailModalView.stories.tsx +0 -160
  616. package/src/components/domain/skills/ToolDetailModalView/ToolDetailModalViewSource.test.mjs +0 -99
  617. package/src/components/domain/skills/ToolDetailModalView/index.tsx +0 -160
  618. package/src/components/domain/skills/index.ts +0 -7
  619. package/src/components/domain/tasks/ScheduledTaskCardView/ScheduledTaskCardView.stories.tsx +0 -120
  620. package/src/components/domain/tasks/ScheduledTaskCardView/ScheduledTaskCardViewSource.test.mjs +0 -40
  621. package/src/components/domain/tasks/ScheduledTaskCardView/index.tsx +0 -135
  622. package/src/components/domain/tasks/ScheduledTaskDeleteDialog/ScheduledTaskDeleteDialog.stories.tsx +0 -56
  623. package/src/components/domain/tasks/ScheduledTaskDeleteDialog/ScheduledTaskDeleteDialogSource.test.mjs +0 -35
  624. package/src/components/domain/tasks/ScheduledTaskDeleteDialog/index.tsx +0 -73
  625. package/src/components/domain/tasks/ScheduledTaskDetailView/ScheduledTaskDetailView.stories.tsx +0 -121
  626. package/src/components/domain/tasks/ScheduledTaskDetailView/ScheduledTaskDetailViewSource.test.mjs +0 -115
  627. package/src/components/domain/tasks/ScheduledTaskDetailView/index.tsx +0 -223
  628. package/src/components/domain/tasks/ScheduledTasksSpaceView/ScheduledTasksSpaceView.stories.tsx +0 -526
  629. package/src/components/domain/tasks/ScheduledTasksSpaceView/ScheduledTasksSpaceViewSource.test.mjs +0 -85
  630. package/src/components/domain/tasks/ScheduledTasksSpaceView/index.tsx +0 -118
  631. package/src/components/domain/tasks/index.ts +0 -4
  632. package/src/components/domain/theme/SkinManager.stories.tsx +0 -43
  633. package/src/components/domain/theme/SkinManagerUI.tsx +0 -382
  634. package/src/components/domain/theme/ThemeDemo.stories.tsx +0 -12
  635. package/src/components/domain/theme/ThemeDemo.tsx +0 -224
  636. package/src/components/index.ts +0 -11
  637. package/src/components/primitives/Avatar/Avatar.stories.tsx +0 -170
  638. package/src/components/primitives/Avatar/AvatarSource.test.mjs +0 -37
  639. package/src/components/primitives/Avatar/index.tsx +0 -180
  640. package/src/components/primitives/BackTop/BackTop.stories.tsx +0 -122
  641. package/src/components/primitives/BackTop/BackTopSource.test.mjs +0 -61
  642. package/src/components/primitives/BackTop/index.tsx +0 -93
  643. package/src/components/primitives/Badge/Badge.stories.tsx +0 -376
  644. package/src/components/primitives/Badge/BadgeSource.test.mjs +0 -27
  645. package/src/components/primitives/Badge/index.tsx +0 -65
  646. package/src/components/primitives/Button/Button.stories.tsx +0 -287
  647. package/src/components/primitives/Button/ButtonSource.test.mjs +0 -84
  648. package/src/components/primitives/Button/index.tsx +0 -216
  649. package/src/components/primitives/Card/Card.stories.tsx +0 -186
  650. package/src/components/primitives/Card/CardSource.test.mjs +0 -73
  651. package/src/components/primitives/Card/index.tsx +0 -137
  652. package/src/components/primitives/Checkbox/Checkbox.stories.tsx +0 -79
  653. package/src/components/primitives/Checkbox/CheckboxSource.test.mjs +0 -43
  654. package/src/components/primitives/Checkbox/index.tsx +0 -87
  655. package/src/components/primitives/Chip/Chip.stories.tsx +0 -149
  656. package/src/components/primitives/Chip/ChipSource.test.mjs +0 -73
  657. package/src/components/primitives/Chip/index.tsx +0 -252
  658. package/src/components/primitives/Divider/Divider.stories.tsx +0 -68
  659. package/src/components/primitives/Divider/DividerSource.test.mjs +0 -26
  660. package/src/components/primitives/Divider/index.tsx +0 -65
  661. package/src/components/primitives/Dropdown/Dropdown.stories.tsx +0 -38
  662. package/src/components/primitives/Dropdown/DropdownSource.test.mjs +0 -23
  663. package/src/components/primitives/Dropdown/index.tsx +0 -29
  664. package/src/components/primitives/EmptyState/EmptyState.stories.tsx +0 -159
  665. package/src/components/primitives/EmptyState/EmptyStateSource.test.mjs +0 -169
  666. package/src/components/primitives/EmptyState/index.tsx +0 -185
  667. package/src/components/primitives/ErrorCard/ErrorCard.stories.tsx +0 -50
  668. package/src/components/primitives/ErrorCard/index.tsx +0 -78
  669. package/src/components/primitives/Field/Field.stories.tsx +0 -208
  670. package/src/components/primitives/Field/FieldSource.test.mjs +0 -70
  671. package/src/components/primitives/Field/index.tsx +0 -297
  672. package/src/components/primitives/InlineMessage/InlineMessage.stories.tsx +0 -137
  673. package/src/components/primitives/InlineMessage/InlineMessageSource.test.mjs +0 -50
  674. package/src/components/primitives/InlineMessage/index.tsx +0 -141
  675. package/src/components/primitives/Input/Input.stories.tsx +0 -30
  676. package/src/components/primitives/Input/index.tsx +0 -12
  677. package/src/components/primitives/Keycap/Keycap.stories.tsx +0 -93
  678. package/src/components/primitives/Keycap/KeycapSource.test.mjs +0 -30
  679. package/src/components/primitives/Keycap/index.tsx +0 -67
  680. package/src/components/primitives/Menu/Menu.stories.tsx +0 -416
  681. package/src/components/primitives/Menu/MenuEmptySource.test.mjs +0 -23
  682. package/src/components/primitives/Menu/MenuSource.test.mjs +0 -207
  683. package/src/components/primitives/Menu/index.tsx +0 -922
  684. package/src/components/primitives/Pagination/Pagination.stories.tsx +0 -77
  685. package/src/components/primitives/Pagination/PaginationSource.test.mjs +0 -24
  686. package/src/components/primitives/Pagination/index.tsx +0 -85
  687. package/src/components/primitives/Pagination/pagination.ts +0 -25
  688. package/src/components/primitives/Pagination/paginationModel.test.mjs +0 -18
  689. package/src/components/primitives/ProgressBar/ProgressBar.stories.tsx +0 -103
  690. package/src/components/primitives/ProgressBar/ProgressBarSource.test.mjs +0 -44
  691. package/src/components/primitives/ProgressBar/index.tsx +0 -68
  692. package/src/components/primitives/Radio/Radio.stories.tsx +0 -84
  693. package/src/components/primitives/Radio/RadioSource.test.mjs +0 -38
  694. package/src/components/primitives/Radio/index.tsx +0 -161
  695. package/src/components/primitives/SegmentedControl/SegmentedControl.stories.tsx +0 -110
  696. package/src/components/primitives/SegmentedControl/SegmentedControlSource.test.mjs +0 -75
  697. package/src/components/primitives/SegmentedControl/index.tsx +0 -188
  698. package/src/components/primitives/Select/Select.stories.tsx +0 -158
  699. package/src/components/primitives/Select/SelectSource.test.mjs +0 -94
  700. package/src/components/primitives/Select/index.tsx +0 -364
  701. package/src/components/primitives/Spinner/index.tsx +0 -58
  702. package/src/components/primitives/Switch/Switch.stories.tsx +0 -64
  703. package/src/components/primitives/Switch/SwitchSource.test.mjs +0 -38
  704. package/src/components/primitives/Switch/index.tsx +0 -84
  705. package/src/components/primitives/Tabs/Tabs.stories.tsx +0 -230
  706. package/src/components/primitives/Tabs/TabsSource.test.mjs +0 -91
  707. package/src/components/primitives/Tabs/index.tsx +0 -183
  708. package/src/components/primitives/index.ts +0 -24
  709. package/src/examples/ResourceManagementExample.tsx +0 -119
  710. package/src/examples/SiteWorkbenchExample.tsx +0 -96
  711. package/src/hooks/index.ts +0 -7
  712. package/src/hooks/useClickOutside.ts +0 -20
  713. package/src/hooks/useDragReorder.ts +0 -29
  714. package/src/hooks/useImeAwareEnter.ts +0 -59
  715. package/src/hooks/useImeAwareEnterSource.test.mjs +0 -65
  716. package/src/hooks/useKeyboard.ts +0 -16
  717. package/src/hooks/usePopover.ts +0 -67
  718. package/src/hooks/useSelectedOptionLocator.ts +0 -33
  719. package/src/hooks/useSidebarResize.ts +0 -107
  720. package/src/hooks/useTenantTheme.ts +0 -53
  721. package/src/hooks/useUnifiedTheme.ts +0 -85
  722. package/src/index.ts +0 -6
  723. package/src/lib/InjectedStyleTokenMirrorSource.test.mjs +0 -67
  724. package/src/lib/about-window.test.mjs +0 -46
  725. package/src/lib/about-window.ts +0 -218
  726. package/src/lib/appearance.test.mjs +0 -283
  727. package/src/lib/appearance.ts +0 -46
  728. package/src/lib/browser-annotation-popup.ts +0 -151
  729. package/src/lib/focusTrap.ts +0 -51
  730. package/src/lib/index.ts +0 -5
  731. package/src/lib/shortcut.test.mjs +0 -100
  732. package/src/lib/shortcut.ts +0 -97
  733. package/src/lib/twMergeOw.ts +0 -18
  734. package/src/lib/utils.ts +0 -6
  735. package/src/screens/Browser.stories.tsx +0 -353
  736. package/src/screens/Chat.stories.tsx +0 -808
  737. package/src/screens/Home.stories.tsx +0 -253
  738. package/src/screens/Login.stories.tsx +0 -134
  739. package/src/screens/McpManager.stories.tsx +0 -159
  740. package/src/screens/Onboarding.stories.tsx +0 -155
  741. package/src/screens/ScheduledTasks.stories.tsx +0 -134
  742. package/src/screens/ScreenFrameSource.test.mjs +0 -77
  743. package/src/screens/SettingsAppearance.stories.tsx +0 -117
  744. package/src/screens/SettingsMemory.stories.tsx +0 -128
  745. package/src/screens/SettingsModels.stories.tsx +0 -228
  746. package/src/screens/SettingsSections.stories.tsx +0 -164
  747. package/src/screens/Share.stories.tsx +0 -202
  748. package/src/screens/SharePage.stories.tsx +0 -29
  749. package/src/screens/Sites.stories.tsx +0 -183
  750. package/src/screens/Skills.stories.tsx +0 -83
  751. package/src/screens/Workspace.stories.tsx +0 -191
  752. package/src/screens/_home.tsx +0 -46
  753. package/src/screens/_screen.tsx +0 -355
  754. package/src/screens/_settingsNav.ts +0 -27
  755. package/src/screens/_skillsCatalog.tsx +0 -372
  756. package/src/theme/SkinDenylistSyncSource.test.mjs +0 -124
  757. package/src/theme/__tests__/skins.test.mjs +0 -84
  758. package/src/theme/core/semanticAdapter.ts +0 -116
  759. package/src/theme/core/skin.ts +0 -605
  760. package/src/theme/core/skinScoped.ts +0 -289
  761. package/src/theme/core/tenantTheme.test.mjs +0 -127
  762. package/src/theme/core/tenantTheme.ts +0 -124
  763. package/src/theme/core/types.ts +0 -60
  764. package/src/theme/core/unifiedTheme.ts +0 -157
  765. package/src/theme/index.ts +0 -33
  766. package/src/theme/providers/BrandingProvider.tsx +0 -57
  767. package/src/theme/providers/ThemeProvider.tsx +0 -221
  768. package/src/theme/skinDs2PropertyGate.test.mjs +0 -109
  769. package/src/theme/skins/index.ts +0 -107
  770. package/src/theme/utils/cssSafety.ts +0 -92
  771. package/src/theme/utils/skinManager.ts +0 -159
  772. package/src/theme/utils/themeApplier.ts +0 -75
  773. package/src/tokens/DesktopSurfacesSweep15Source.test.mjs +0 -77
  774. package/src/tokens/SharedStyleSheetsSource.test.mjs +0 -90
  775. package/src/tokens/TailwindThemeSupplySource.test.mjs +0 -129
  776. package/src/tokens/base.ts +0 -199
  777. package/src/tokens/dark.ts +0 -288
  778. package/src/tokens/index.ts +0 -4
  779. package/src/tokens/light.ts +0 -320
  780. package/src/tokens/tailwind.ts +0 -216
  781. package/src/types/desktop-pet.ts +0 -100
  782. package/src/types/file-browser.ts +0 -51
  783. package/src/types/file-tree.ts +0 -34
  784. package/src/types/index.ts +0 -3
  785. package/src/types/xspreadsheet.d.ts +0 -4
  786. package/src/utils/cn.ts +0 -6
  787. package/src/utils/glyphColor.ts +0 -32
  788. package/src/utils/index.ts +0 -4
  789. package/src/utils/localPathInline.test.mjs +0 -45
  790. package/src/utils/localPathInline.ts +0 -49
  791. package/src/utils/markdownFileRefs.test.mjs +0 -88
  792. package/src/utils/markdownFileRefs.ts +0 -140
  793. package/src/utils/office-excel.ts +0 -452
  794. package/src/utils/shiki.ts +0 -156
@@ -1,416 +0,0 @@
1
- import type { Meta, StoryObj } from "@storybook/react"
2
- import { useState } from "react"
3
- import { Copy, Doc, Download, Edit, Folder, Settings, Share, Sparkles, Sun, Trash } from "../../composite/Icons"
4
- import { Button } from "../Button"
5
- import { SegmentedControl } from "../SegmentedControl"
6
- import { Switch } from "../Switch"
7
- import { MENU_SEPARATOR, Menu, type MenuEntry, MenuSurface } from "./index"
8
-
9
- /**
10
- * Menu — 下拉菜单(DS 2.0 patterns,合并 Dropdown / RowOverflowMenu / DetailOverflowMenu)。
11
- *
12
- * 两个入口:`MenuSurface` 是「面」(自己管开合时用),`Menu` 是「触发器 + 面」。
13
- * 下面前半段展示面的全部形态与状态,后半段展示带触发器的完整菜单。
14
- * 主题不写死:颜色全部走 token,用工具栏的 theme 切换看双主题。
15
- */
16
- const meta = {
17
- title: "Primitives/Menu",
18
- component: MenuSurface,
19
- parameters: { layout: "centered" },
20
- tags: ["autodocs"],
21
- } satisfies Meta<typeof MenuSurface>
22
-
23
- export default meta
24
- type Story = StoryObj<typeof meta>
25
-
26
- const basicItems: MenuEntry[] = [
27
- { key: "edit", label: "重命名" },
28
- { key: "duplicate", label: "创建副本" },
29
- { key: "delete", label: "删除", danger: true },
30
- ]
31
-
32
- const iconItems: MenuEntry[] = [
33
- { key: "open", label: "打开", icon: <Doc /> },
34
- { key: "copy", label: "复制链接", icon: <Copy /> },
35
- { key: "share", label: "分享", icon: <Share /> },
36
- { key: "delete", label: "删除", icon: <Trash />, danger: true },
37
- ]
38
-
39
- /* ---------------------------------------------------------------- *
40
- * MenuSurface — 面
41
- * ---------------------------------------------------------------- */
42
-
43
- export const Default: Story = {
44
- args: { items: basicItems },
45
- }
46
-
47
- export const WithIcons: Story = {
48
- args: { items: iconItems },
49
- }
50
-
51
- export const WithShortcuts: Story = {
52
- name: "带快捷键(Keycap 列)",
53
- args: {
54
- width: 240,
55
- items: [
56
- { key: "new", label: "新建", icon: <Doc />, shortcut: "Ctrl+N" },
57
- { key: "open", label: "打开", icon: <Folder />, shortcut: "Ctrl+O" },
58
- { key: "save", label: "保存", icon: <Download />, shortcut: ["Ctrl", "S"] },
59
- MENU_SEPARATOR,
60
- { key: "settings", label: "设置", icon: <Settings />, shortcut: "Ctrl+," },
61
- ],
62
- },
63
- }
64
-
65
- export const WithDescriptions: Story = {
66
- name: "带说明行",
67
- args: {
68
- width: 260,
69
- items: [
70
- { key: "public", label: "公开", description: "任何拿到链接的人都能看" },
71
- { key: "team", label: "团队内", description: "只有工作区成员能看" },
72
- { key: "private", label: "仅自己", description: "别人看不到,也搜不到" },
73
- ],
74
- },
75
- }
76
-
77
- export const Checked: Story = {
78
- name: "勾选态",
79
- args: {
80
- width: 220,
81
- items: [
82
- { key: "list", label: "列表视图", selected: true },
83
- { key: "grid", label: "网格视图", selected: false },
84
- { key: "board", label: "看板视图", selected: false },
85
- ],
86
- },
87
- }
88
-
89
- export const Grouped: Story = {
90
- name: "分组 + 分隔线",
91
- args: {
92
- width: 240,
93
- items: [
94
- { type: "group", label: "文件" },
95
- { key: "new", label: "新建", icon: <Doc />, shortcut: "Ctrl+N" },
96
- { key: "open", label: "打开", icon: <Folder />, shortcut: "Ctrl+O" },
97
- MENU_SEPARATOR,
98
- { type: "group", label: "危险操作" },
99
- { key: "delete", label: "删除工作区", icon: <Trash />, danger: true },
100
- ],
101
- },
102
- }
103
-
104
- export const LegacyDivider: Story = {
105
- name: "兼容:旧 Dropdown 分隔项",
106
- parameters: {
107
- docs: { description: { story: '旧 items 数组里的 `{ key: "---" }` 仍被识别为分隔线,不用改数据。' } },
108
- },
109
- args: {
110
- items: [
111
- { key: "edit", label: "重命名" },
112
- { key: "---", label: "" },
113
- { key: "delete", label: "删除", danger: true },
114
- ],
115
- },
116
- }
117
-
118
- export const States: Story = {
119
- name: "状态全档",
120
- parameters: {
121
- docs: {
122
- description: {
123
- story:
124
- "default / hover(-pop 档,鼠标划过看)/ press / focus-visible(Tab 或方向键)/ disabled / 选中 / 危险。",
125
- },
126
- },
127
- },
128
- args: {
129
- width: 240,
130
- items: [
131
- { key: "default", label: "常态" },
132
- { key: "selected", label: "选中(打勾)", selected: true },
133
- { key: "active", label: "活动项(不打勾)" },
134
- { key: "disabled", label: "禁用", disabled: true },
135
- MENU_SEPARATOR,
136
- { key: "danger", label: "危险动作", icon: <Trash />, danger: true },
137
- { key: "danger-disabled", label: "危险且禁用", icon: <Trash />, danger: true, disabled: true },
138
- ],
139
- activeKey: "active",
140
- },
141
- }
142
-
143
- export const Searchable: Story = {
144
- name: "带搜索",
145
- args: {
146
- width: 260,
147
- searchable: true,
148
- searchPlaceholder: "搜索模型",
149
- items: Array.from({ length: 12 }, (_, i) => ({
150
- key: `model-${i + 1}`,
151
- label: `Model ${i + 1}`,
152
- selected: i === 2,
153
- })),
154
- },
155
- }
156
-
157
- export const EmptyResult: Story = {
158
- name: "空结果",
159
- parameters: {
160
- docs: { description: { story: "过滤没命中时只给一句 text-3;带主按钮的空态母题走 EmptyState 原语。" } },
161
- },
162
- args: {
163
- width: 240,
164
- searchable: true,
165
- searchValue: "找不到的东西",
166
- items: basicItems,
167
- },
168
- }
169
-
170
- export const HeaderAndFooter: Story = {
171
- name: "眉标 + 页脚",
172
- args: {
173
- width: 260,
174
- header: "当前项目",
175
- items: [
176
- { key: "a", label: "Orbitwork 桌面端", selected: true },
177
- { key: "b", label: "设计系统 2.0" },
178
- ],
179
- footer: (
180
- <Button variant="text" size="sm" className="w-full justify-start">
181
- 新建项目
182
- </Button>
183
- ),
184
- },
185
- }
186
-
187
- export const LongList: Story = {
188
- name: "长列表",
189
- args: {
190
- width: 220,
191
- className: "max-h-72 overflow-y-auto",
192
- items: Array.from({ length: 24 }, (_, i) => ({ key: `item-${i}`, label: `条目 ${i + 1}` })),
193
- },
194
- }
195
-
196
- export const CustomContent: Story = {
197
- name: "自定义内容(children)",
198
- parameters: {
199
- docs: { description: { story: "给了 children 时不加 menu 语义,条目的可读角色由调用方自己负责。" } },
200
- },
201
- args: {
202
- width: 240,
203
- children: (
204
- <div className="px-2 py-3 text-ow-fs-ui text-[color:var(--ow-text-2)]">域内选择器自己渲染条目时走这条路。</div>
205
- ),
206
- },
207
- }
208
-
209
- /* ---------------------------------------------------------------- *
210
- * Menu — 触发器 + 面
211
- * ---------------------------------------------------------------- */
212
-
213
- export const WithTrigger: Story = {
214
- name: "触发器 + 菜单",
215
- parameters: { layout: "padded" },
216
- render: () => (
217
- <div className="flex min-h-64 items-start gap-4">
218
- <Menu trigger={<Button variant="secondary">操作</Button>} items={iconItems} onSelect={() => {}} />
219
- </div>
220
- ),
221
- }
222
-
223
- export const TriggerRenderProp: Story = {
224
- name: "触发器:渲染函数",
225
- parameters: { layout: "padded" },
226
- render: () => (
227
- <div className="flex min-h-64 items-start gap-4">
228
- <Menu
229
- width={200}
230
- items={iconItems}
231
- onSelect={() => {}}
232
- trigger={({ open, triggerProps }) => (
233
- <Button variant="ghost" size="sm" {...triggerProps}>
234
- {open ? "收起菜单" : "展开菜单"}
235
- </Button>
236
- )}
237
- />
238
- </div>
239
- ),
240
- }
241
-
242
- export const AlignEnd: Story = {
243
- name: "右缘对齐(行末「…」)",
244
- parameters: { layout: "padded" },
245
- render: () => (
246
- <div className="flex min-h-64 w-96 justify-end">
247
- <Menu
248
- align="end"
249
- width={180}
250
- ariaLabel="更多操作"
251
- items={[
252
- { key: "edit", label: "编辑", icon: <Edit /> },
253
- { key: "copy", label: "复制链接", icon: <Copy /> },
254
- MENU_SEPARATOR,
255
- { key: "delete", label: "删除", icon: <Trash />, danger: true },
256
- ]}
257
- onSelect={() => {}}
258
- trigger={<Button variant="ghost" size="sm" aria-label="更多操作" icon={<Doc />} />}
259
- />
260
- </div>
261
- ),
262
- }
263
-
264
- export const Controlled: Story = {
265
- name: "受控开合",
266
- parameters: { layout: "padded" },
267
- render: function ControlledMenu() {
268
- const [open, setOpen] = useState(false)
269
- return (
270
- <div className="flex min-h-64 items-start gap-3">
271
- <Menu
272
- open={open}
273
- onOpenChange={setOpen}
274
- items={basicItems}
275
- onSelect={() => {}}
276
- trigger={<Button variant="secondary">受控菜单</Button>}
277
- />
278
- <Button variant="text" size="sm" onClick={() => setOpen((value) => !value)}>
279
- 外部开关:{open ? "开" : "关"}
280
- </Button>
281
- </div>
282
- )
283
- },
284
- }
285
-
286
- export const StaysOpenOnSelect: Story = {
287
- name: "选中不收起(多选)",
288
- parameters: { layout: "padded" },
289
- render: function MultiSelectMenu() {
290
- const [picked, setPicked] = useState<string[]>(["md"])
291
- const toggle = (key: string) =>
292
- setPicked((current) => (current.includes(key) ? current.filter((k) => k !== key) : [...current, key]))
293
- return (
294
- <div className="flex min-h-64 items-start">
295
- <Menu
296
- closeOnSelect={false}
297
- width={220}
298
- items={[
299
- { key: "md", label: "Markdown", selected: picked.includes("md") },
300
- { key: "pdf", label: "PDF", selected: picked.includes("pdf") },
301
- { key: "docx", label: "Word", selected: picked.includes("docx") },
302
- ]}
303
- onSelect={toggle}
304
- trigger={<Button variant="secondary">导出格式</Button>}
305
- />
306
- </div>
307
- )
308
- },
309
- }
310
-
311
- /* ---------------------------------------------------------------- *
312
- * R2 新槽:控件行 / banner 与 bare 眉标
313
- * ---------------------------------------------------------------- */
314
-
315
- export const ControlRows: Story = {
316
- name: "行尾控件 + mono 读数",
317
- parameters: {
318
- docs: {
319
- description: {
320
- story:
321
- '`control` 给行尾放交互控件:该行渲染成 `<div role="menuitem">` 外壳(button 套 button 非法),' +
322
- "控件自己吃掉点击,Tab 在「当前行 → 该行控件 → 下一行」间游走,走到末尾才交还焦点。" +
323
- "`hint` 收 ReactNode,`hintMono` 让它走读数档(mono + tabular-nums),版本号用。",
324
- },
325
- },
326
- },
327
- render: function ControlRowsMenu() {
328
- const [pet, setPet] = useState(true)
329
- const [theme, setTheme] = useState("light")
330
- return (
331
- <MenuSurface
332
- width={280}
333
- ariaLabel="控件行示例"
334
- items={[
335
- { key: "settings", label: "设置", icon: <Settings />, shortcut: "Ctrl+," },
336
- {
337
- key: "pet",
338
- label: "桌面宠物",
339
- icon: <Sparkles />,
340
- control: <Switch checked={pet} onChange={setPet} aria-label="桌面宠物" />,
341
- },
342
- {
343
- key: "theme",
344
- label: "外观",
345
- icon: <Sun />,
346
- control: (
347
- <SegmentedControl
348
- size="sm"
349
- variant="outline"
350
- aria-label="外观"
351
- value={theme}
352
- onChange={setTheme}
353
- options={[
354
- { value: "light", label: "浅色" },
355
- { value: "dark", label: "深色" },
356
- { value: "system", label: "自动" },
357
- ]}
358
- />
359
- ),
360
- },
361
- MENU_SEPARATOR,
362
- { key: "version", label: "检查更新", icon: <Download />, hint: "v1.4.2", hintMono: true },
363
- ]}
364
- onSelect={(key) => {
365
- if (key === "pet") setPet((value) => !value)
366
- }}
367
- />
368
- )
369
- },
370
- }
371
-
372
- export const BannerAndBareHeader: Story = {
373
- name: "banner 槽 + bare 眉标",
374
- parameters: {
375
- docs: {
376
- description: {
377
- story:
378
- '`headerBare` 让 header 原样渲染(不套 CAPS 眉标排版)并标 `role="none"`;' +
379
- '`banner` 是 header 与条目之间的整块自定义内容(套餐井这类),同样 `role="none"` 包裹 —— ' +
380
- '`role="menu"` 的子代只认 menuitem / group / separator,不标 none 会被读屏整块跳过。',
381
- },
382
- },
383
- },
384
- args: {
385
- width: 280,
386
- ariaLabel: "账户菜单示例",
387
- headerBare: true,
388
- header: (
389
- <div className="flex items-center gap-2.5 px-2 pt-2 pb-1.5">
390
- <span className="w-8 h-8 shrink-0 [border-radius:var(--ow-radius-pill)] bg-[var(--ow-surface-2)] inline-flex items-center justify-center text-ow-fs-ui font-medium text-[color:var(--ow-text-2)]">
391
- T
392
- </span>
393
- <span className="flex flex-col min-w-0 gap-0.5">
394
- <span className="text-ow-fs-ui font-semibold text-[color:var(--ow-text)] truncate">Terry</span>
395
- <span className="text-ow-fs-eyebrow font-normal text-[color:var(--ow-text-3)] truncate">
396
- terry@orbitwork.ai
397
- </span>
398
- </span>
399
- </div>
400
- ),
401
- banner: (
402
- <div className="mx-2 mb-1.5 px-3 py-2.5 bg-[var(--ow-surface-2)] [border-radius:var(--ow-radius-md)] flex items-center justify-between gap-2">
403
- <span className="text-ow-fs-ui font-medium text-[color:var(--ow-text)]">体验版</span>
404
- <span className="text-ow-fs-eyebrow font-normal text-[color:var(--ow-text-2)] font-[family-name:var(--ow-font-mono)] tabular-nums">
405
- 1,240 / 2,000
406
- </span>
407
- </div>
408
- ),
409
- items: [
410
- { key: "settings", label: "设置", icon: <Settings /> },
411
- { key: "help", label: "帮助与反馈", icon: <Doc /> },
412
- MENU_SEPARATOR,
413
- { key: "logout", label: "退出登录", icon: <Trash />, danger: true },
414
- ],
415
- },
416
- }
@@ -1,23 +0,0 @@
1
- import assert from "node:assert/strict"
2
- import { readFile } from "node:fs/promises"
3
- import test from "node:test"
4
-
5
- const source = await readFile(new URL("./index.tsx", import.meta.url), "utf8")
6
-
7
- test("§6 / G5:弹层无结果走 EmptyState 的 text 档(原型 L923:一行灰字、无母题)", () => {
8
- assert.ok(source.includes('import { EmptyState } from "../EmptyState"'))
9
- // A5-B4:从 sm 紧凑档改到 text 档——弹层只有一两行高,塞 28px 母题会把面撑成两倍,
10
- // 还让「没搜到」看着像一屏正经空态。度量/字阶/颜色仍由原语给,不是退回手写灰字。
11
- assert.match(source, /<EmptyState message=\{empty\} variant="text" \/>/)
12
- assert.doesNotMatch(source, /<EmptyState size="sm"/)
13
- // 手搓的 text-3 居中小字块退役
14
- assert.doesNotMatch(source, /data-ow-part="empty"\s*\n\s*className="py-4 px-2 text-\[color:var\(--ow-text-3\)\]/)
15
- })
16
-
17
- test('定位钩子 data-ow-part="empty" 保留,调用点与 e2e 不断链', () => {
18
- assert.match(source, /<div data-ow-part="empty">/)
19
- })
20
-
21
- test("默认空态文案仍在(不改对外签名)", () => {
22
- assert.match(source, /empty = "暂无结果"/)
23
- })
@@ -1,207 +0,0 @@
1
- import assert from "node:assert/strict"
2
- import { readFile } from "node:fs/promises"
3
- import test from "node:test"
4
-
5
- const source = await readFile(new URL("./index.tsx", import.meta.url), "utf8")
6
-
7
- // ---------------------------------------------------------------------------
8
- // 立面(COMPONENT-RULES §5 / §7)
9
- // ---------------------------------------------------------------------------
10
-
11
- test("menu surface keeps the DS 2.0 popover facade", () => {
12
- assert.match(source, /bg-\[var\(--ow-popover-bg\)\]/, "面底走 --ow-popover-bg")
13
- // 悬浮层永远保留 1px 边框,影子只属离地之物。
14
- assert.match(source, /border border-\[color:var\(--ow-border\)\]/)
15
- assert.match(source, /shadow-\[var\(--ow-shadow-pop\)\]/)
16
- // 圆角 10 = 菜单档(§7 形状表)。
17
- assert.match(source, /\[border-radius:var\(--ow-radius-menu\)\]/)
18
- // z 一律走 token 梯度,禁裸数字。
19
- assert.match(source, /zIndex: "var\(--ow-z-dropdown\)"/)
20
- assert.doesNotMatch(source, /zIndex:\s*\d/, "z 不许写死数字")
21
- })
22
-
23
- test("rows sit on the popover surface, so they take the -pop interaction tier", () => {
24
- // §5:坐在 --ow-popover-bg 上的行一律 hover-pop → press-pop,不是地面的 hover/press。
25
- assert.match(
26
- source,
27
- /compoundVariants:[\s\S]*?hovered:\s*true[\s\S]*?bg-\[var\(--ow-hover-pop\)\][\s\S]*?active:bg-\[var\(--ow-press-pop\)\]/s,
28
- )
29
- assert.match(source, /bg-\[var\(--ow-error-tint\)\][\s\S]*?active:bg-\[var\(--ow-error-tint-hover\)\]/s)
30
- assert.doesNotMatch(source, /hover:bg-\[var\(--ow-hover\)\]/, "弹层内不许用地面档 hover")
31
- // 行高 32 是常态档(§7 高度表)。
32
- assert.match(source, /hasDescription:\s*\{[\s\S]*?false:\s*"h-8"/s)
33
- })
34
-
35
- test("state completeness — focus-visible ring, per-token disabled, danger, selected", () => {
36
- assert.match(source, /ow-focus-ring/, "§6 focus-visible 必做")
37
- assert.match(source, /disabled:\s*\{\s*true:\s*"cursor-not-allowed text-\[color:var\(--ow-disabled-text\)\]"/s)
38
- // 禁统一透明度禁用态(逐 token 给禁用色)。正则拼出来写,免得这行字面量本身
39
- // 被 check-ds2 的 disabled 规则当成违规命中。
40
- assert.doesNotMatch(source, new RegExp(`disabled:${"opacity"}-`), "禁统一透明度禁用态")
41
- assert.match(source, /danger:\s*\{\s*true:\s*"text-\[color:var\(--ow-error\)\]"/s)
42
- assert.match(source, /selected:\s*\{\s*true:\s*"bg-\[var\(--ow-selected-bg\)\]"/s)
43
- })
44
-
45
- test("motion is the single beacon easing at the 120ms hover tier", () => {
46
- assert.match(source, /ease-\[var\(--ow-ease-beacon\)\]/)
47
- assert.match(source, /duration-\[var\(--ow-dur-1\)\]/)
48
- assert.doesNotMatch(source, /ease-\[var\(--ow-ease-out\)\]/)
49
- // §9:禁缩放、禁位移式 hover 反馈。
50
- assert.doesNotMatch(source, /hover:[a-z-]*(?:scale|translate)-/)
51
- })
52
-
53
- // ---------------------------------------------------------------------------
54
- // 条目形态
55
- // ---------------------------------------------------------------------------
56
-
57
- test("shortcut column renders keycaps, not plain text", () => {
58
- // §7 读数(快捷键)一律 mono + tabular-nums —— Keycap 原语已经包好这两条。
59
- assert.match(source, /import \{ KeycapCombo \} from "\.\.\/Keycap"/)
60
- assert.match(source, /<KeycapCombo[^>]*keys=\{keys\}/)
61
- assert.match(source, /shortcut\?: string \| string\[\]/)
62
- })
63
-
64
- test("selected rows are marked with a real check glyph", () => {
65
- // 暗档 hover-pop 与 current-bg 同值属有意,所以选中项靠勾区分而不是靠底色;
66
- // 勾是 Lucide 系图标,不是 "✓" 字符。
67
- assert.match(source, /import \{ Check \} from "\.\.\/\.\.\/composite\/Icons"/)
68
- assert.match(source, /\{item\.selected && \(\s*<Check/s)
69
- assert.doesNotMatch(source, /✓/, "勾用图标件,不用字符")
70
- })
71
-
72
- test("entries cover separators, group labels and the legacy divider shape", () => {
73
- assert.match(source, /export const MENU_SEPARATOR/)
74
- assert.match(source, /type: "group"/)
75
- // 旧 Dropdown 的 { key: "---" } 分隔项在兼容期必须继续识别,否则老 items 数组会
76
- // 把分隔线渲染成一个空条目。
77
- assert.match(source, /const LEGACY_DIVIDER_KEY = "---"/)
78
- assert.match(source, /entry\.key === LEGACY_DIVIDER_KEY/)
79
- })
80
-
81
- test("menu semantics are on by default for item mode and off for custom children", () => {
82
- assert.match(source, /const semantics = role \?\? \(children \? "none" : "menu"\)/)
83
- assert.match(source, /role=\{semantics === "menu" \? "menu" : undefined\}/)
84
- assert.match(source, /\? "menuitem"\s*:\s*"menuitemcheckbox"/s)
85
- })
86
-
87
- // ---------------------------------------------------------------------------
88
- // 键盘导航
89
- // ---------------------------------------------------------------------------
90
-
91
- test("keyboard navigation is complete", () => {
92
- assert.match(source, /event\.key === "ArrowDown" \|\| event\.key === "ArrowUp"/)
93
- assert.match(source, /event\.key === "Home" \|\| event\.key === "End"/)
94
- assert.match(source, /event\.key === "Enter"/)
95
- assert.match(source, /event\.key === "Escape"/)
96
- assert.match(source, /aria-activedescendant/)
97
- // 首字母跳转:搜索框、行尾控件在场时让位给它们,否则打字(含空格)会被当成跳转键吃掉。
98
- // R2:判据从「只让搜索框」扩到「搜索框 + 控件区」,见文件末尾控件行一节。
99
- assert.match(source, /if \(!inSearch && !inControl && event\.key\.length === 1/)
100
- })
101
-
102
- // ---------------------------------------------------------------------------
103
- // 弹层定位(这几条是组件存在的理由,改回去就等于把 bug 放回来)
104
- // ---------------------------------------------------------------------------
105
-
106
- test("the surface escapes clipping ancestors via a fixed-position portal", () => {
107
- // 菜单常住在带 overflow 的滚动容器里(设置页 .settings__content 是 overflow-y: auto),
108
- // absolute 定位的弹层会被祖先裁掉,而裁剪不是抬 z-index 能解决的。
109
- assert.match(source, /createPortal\(menuContent, document\.body\)/)
110
- assert.match(source, /position: "fixed"/)
111
- // transform/filter 祖先会给 fixed 造出新的包含块,坐标要把那段偏移减回去。
112
- assert.match(source, /findFixedOffsetAncestor/)
113
- // 行末「…」贴右缘,不然长菜单会从行的左边探出去。
114
- assert.match(source, /align === "end" \? anchorRect\.right - dropRect\.width : anchorRect\.left/)
115
- })
116
-
117
- test("outside-click ignores both the trigger and the portalled surface", () => {
118
- // 菜单 portal 之后不在触发器子树里,只判断触发器会让「点菜单项」先关掉菜单,
119
- // click 永远来不及触发 —— 那正是行菜单最初「点了没反应」的形态。
120
- assert.match(source, /anchorRef\.current\?\.contains\(target\) \|\| surfaceRef\.current\?\.contains\(target\)/)
121
- assert.match(source, /document\.addEventListener\("pointerdown", onPointerDown, true\)/)
122
- })
123
-
124
- test("escape returns focus to the trigger", () => {
125
- assert.match(source, /const closeAndRestore = useCallback\(/)
126
- assert.match(source, /focusTrigger\(\)/)
127
- })
128
-
129
- // ---------------------------------------------------------------------------
130
- // R3 中性件
131
- // ---------------------------------------------------------------------------
132
-
133
- test("menu is a neutral pattern — no beacon, no lime", () => {
134
- assert.doesNotMatch(source, /--ow-yellow|--ow-beacon|--ow-accent-dot/)
135
- assert.doesNotMatch(source, /BeaconIcons|BeaconSpinner/)
136
- })
137
-
138
- // ---------------------------------------------------------------------------
139
- // R2 基座:控件行 / hint 读数 / banner 与 bare 眉标(T4 账户菜单的前置)
140
- // ---------------------------------------------------------------------------
141
-
142
- test("行尾控件行是 div role=menuitem,不是 button 套 button", () => {
143
- assert.match(source, /control\?: ReactNode/, "MenuItem 收 control 槽")
144
- // button 里再嵌 button 是非法 HTML,浏览器会把内层拆出去,键盘与读屏一起错位。
145
- assert.match(source, /if \(item\.control\) \{\s*return \(\s*<div/s)
146
- assert.match(source, /\{\.\.\.rowProps\}\s*ref=\{\(node: HTMLDivElement \| null\)/s)
147
- // 行本身不抢 Tab:靠方向键/面内 Tab 程序化聚焦。
148
- assert.match(source, /tabIndex=\{-1\}\s*aria-disabled=\{item\.disabled \|\| undefined\}/s)
149
- // 两种壳共用同一套行属性(立面/状态/事件逐字同构,只差标签)。
150
- assert.match(source, /const rowProps = \{/)
151
- assert.match(source, /const rowContent = \(/)
152
- // 控件区自己吃掉点击,否则开关会被切两次;键盘事件必须继续冒泡(Esc 关面、Tab 游走)。
153
- assert.match(source, /data-ow-part="item-control"[\s\S]*?onClick=\{\(event\) => event\.stopPropagation\(\)\}/s)
154
- assert.doesNotMatch(source, /data-ow-part="item-control"[\s\S]{0,400}?onKeyDown=/s, "控件区不许拦键盘事件")
155
- })
156
-
157
- test("hint 收 ReactNode,hintMono 走读数档", () => {
158
- assert.match(source, /hint\?: ReactNode/)
159
- assert.match(source, /hintMono\?: boolean/)
160
- // §7 读数:mono + tabular-nums;不加 hintMono 的 hint 排版一字不变。
161
- assert.match(source, /item\.hintMono && "font-\[family-name:var\(--ow-font-mono\)\] tabular-nums"/)
162
- })
163
-
164
- test("banner 槽与 bare 眉标都标 role=none", () => {
165
- // role="menu" 的子代只认 menuitem / group / separator,非条目内容不标 none 会被整块跳过。
166
- assert.match(source, /banner\?: ReactNode/)
167
- assert.match(source, /headerBare\?: boolean/)
168
- assert.match(source, /data-ow-part="banner" role="none"/)
169
- assert.match(source, /data-ow-part="header" data-ow-variant="bare" role="none"/)
170
- // bare 档不套眉标排版;眉标档原样保留(六个既有消费方零变化)。
171
- assert.match(source, /headerBare \? \(/)
172
- assert.match(
173
- source,
174
- /className="font-medium text-ow-fs-eyebrow leading-none text-\[color:var\(--ow-eyebrow\)\] px-2 pt-2 pb-1\.5 uppercase tracking-\[var\(--ow-ls-eyebrow\)\]"/,
175
- )
176
- })
177
-
178
- test("Tab:有控件行时面内游走,无控件行仍是离面", () => {
179
- // 旧行为(Tab 即 onClose)是全库其它菜单的现状,只有出现 control 行才改道。
180
- assert.match(source, /if \(!rovingTab\) \{\s*onClose\?\.\(\)/s)
181
- assert.match(source, /const hasControlRow = useMemo\(\(\) => navigable\.some\(\(item\) => !!item\.control\)/)
182
- // 核对(Fable):bare 头部 / banner / footer 里的按钮(复制 ID、升级)也是停靠点,否则键盘够不着;
183
- // 有这三种槽或控件行才游走,都没有时照旧离面。
184
- assert.match(source, /const rovingTab = hasControlRow \|\| \(!!header && headerBare\) \|\| !!banner/)
185
- assert.match(source, /if \(headerBare\) stops\.push\(\.\.\.focusableStops\(slot\("header"\)\)\)/)
186
- assert.match(source, /stops\.push\(\.\.\.focusableStops\(slot\("banner"\)\)\)/)
187
- assert.match(source, /stops\.push\(\.\.\.focusableStops\(slot\("footer"\)\)\)/)
188
- // 控件自己吃掉的键(分段器的 ←→ / Home / End)面不再接手,否则 Home/End 一边切段一边甩焦点。
189
- assert.match(source, /if \(inControl && event\.isDefaultPrevented\(\)\) return/)
190
- // 停靠点顺序:行 → 该行控件 → 下一行;两端才交还焦点。
191
- assert.match(source, /const tabStops = useCallback\(/)
192
- assert.match(source, /stops\.push\(row\)/)
193
- assert.match(source, /if \(index < 0 \|\| next < 0 \|\| next >= stops\.length\) \{\s*onClose\?\.\(\)/s)
194
- assert.match(source, /event\.shiftKey \? -1 : 1/, "Shift+Tab 反向游走")
195
- // roving tabindex 的控件(分段器)内部只有一个 tabIndex=0 的段算停靠点。
196
- assert.match(source, /node\.tabIndex < 0 \|\| node\.hasAttribute\("disabled"\)/)
197
- })
198
-
199
- test("焦点落在行尾控件里时,字符键 / Enter / 空格归控件", () => {
200
- // 判据是「事件源在控件区内」,不是 tagName —— 否则开关上的空格会被首字母跳转吃掉。
201
- assert.match(source, /const inControl = !!target\.closest\?\.\('\[data-ow-part="item-control"\]'\)/)
202
- assert.match(source, /const inSearch = target\.tagName === "INPUT" && !inControl/)
203
- assert.match(source, /event\.key === "Enter" && hoveredKey && !inSearch && !inControl/)
204
- assert.match(source, /if \(!inSearch && !inControl && event\.key\.length === 1/)
205
- // 控件行没有 button 的原生空格触发,补一条;普通行的空格仍走原生 click。
206
- assert.match(source, /event\.key === " " && hoveredKey && !inSearch && !inControl[\s\S]*?row\?\.control/s)
207
- })