@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,1075 +0,0 @@
1
- "use client"
2
-
3
- import { useEffect, useRef, useState } from "react"
4
- import { createPortal } from "react-dom" // ui-imports-guard-disable-line
5
- import { useImeAwareEnter } from "../../../../hooks/useImeAwareEnter"
6
- import type { Theme } from "../../../../lib/appearance"
7
- import { SidebarShell, type SidebarShellPlatform } from "../../../Layout/SidebarShell"
8
- import { CreateProjectDialog } from "../../../composite/CreateProjectDialog"
9
- import { Dialog } from "../../../composite/Dialog"
10
- import {
11
- Archive,
12
- Branch,
13
- ChevDown,
14
- ChevRight,
15
- Clock,
16
- Download,
17
- Edit,
18
- Folder,
19
- Grid,
20
- Icon,
21
- More,
22
- Package,
23
- PanelSidebar,
24
- Plus,
25
- Refresh,
26
- Share,
27
- ThreadDot,
28
- Trash,
29
- } from "../../../composite/Icons"
30
- import { TextField } from "../../../composite/NativeControls"
31
- import { OrbitworkLockup } from "../../../composite/OrbitworkLogo"
32
- import { ProjectSelect } from "../../../composite/ProjectSelect"
33
- import { Avatar, Button } from "../../../primitives"
34
- import { MenuSurface } from "../../../primitives/Menu"
35
- import type { MenuItem } from "../../../primitives/Menu"
36
- import { DesktopAccountMenuView, updateRowText } from "../DesktopAccountMenuView"
37
-
38
- export type DesktopSidebarNavId = "new" | "skills" | "sites" | "cron" | "files" | "library"
39
- export type DesktopSidebarSourceIcon = "WeCom" | "DingTalk" | "Feishu"
40
-
41
- export interface DesktopSidebarThread {
42
- id: string
43
- projectId: string
44
- title: string
45
- active: boolean
46
- running: boolean
47
- /** 运行进度读数(如 "3/7"),mono+tabular-nums 渲染在行尾实心点之后。
48
- * SidebarCurrent 规格·状态极改形:与位置极(图标内信标点)不得同形,永不荧黄。 */
49
- runningCount?: string
50
- unread: boolean
51
- sourceIcon?: DesktopSidebarSourceIcon
52
- sourceLabel?: string
53
- branched?: boolean
54
- archived?: boolean
55
- canArchive?: boolean
56
- }
57
-
58
- export interface DesktopSidebarProject {
59
- id: string
60
- label: string
61
- open: boolean
62
- isDefault: boolean
63
- loadingMore: boolean
64
- canLoadMore: boolean
65
- loadError?: string | null
66
- threads: DesktopSidebarThread[]
67
- }
68
-
69
- export interface DesktopSidebarUser {
70
- name: string
71
- avatarUrl: string
72
- /** 账户菜单头部第二行(邮箱优先,没有就出 id)。 */
73
- email?: string
74
- /**
75
- * 身份键:既是头像无图时的配色取模依据(`primitives/Avatar` 的 data-1..6 轮转),
76
- * 也是账户菜单「复制 ID」复制出去的值。不传=菜单头不出复制钮。
77
- */
78
- id?: string
79
- }
80
-
81
- export type DesktopSidebarUpdateState = "available" | "downloading" | "ready" | "error"
82
-
83
- export interface DesktopSidebarUpdate {
84
- state: DesktopSidebarUpdateState
85
- version: string
86
- percent?: number
87
- }
88
-
89
- export interface DesktopSidebarViewProps {
90
- collapsed: boolean
91
- width: number
92
- /**
93
- * 平台(受控,权威值来自主进程;库侧不嗅探 userAgent)。R2 起它决定折叠钮住在哪:
94
- * `windows` 的钮在通栏带里(本栏无顶行、折叠宽 0),其余平台钮住在**侧栏顶行**
95
- * (mac 顶行带 68 红绿灯让位块,钮落 x=80;linux/web 落 x=8),折叠成 rail(mac 116 / 其余 44)。
96
- * 宿主两处传同一个值:`App.tsx` 的 `DesktopWorkbenchShell.platform` 与本件。缺省不传=不出顶行。
97
- */
98
- platform?: SidebarShellPlatform
99
- /** mac 全屏:红绿灯消失 → 顶行让位块收 0、钮回到 x=8、折叠 rail 收到 44。 */
100
- fullscreen?: boolean
101
- /**
102
- * 折叠后宽度(透传 SidebarShell):缺省按 `platform` 派生 rail(mac 116 / 其余 44);
103
- * **显式传 0=整条卸载**——折叠后不留 rail,顶行折成浮块坐在窗口左上角原坐标供重新展开。
104
- * 桌面宿主「折叠=全部折叠」走 0 这一档。
105
- */
106
- collapsedWidth?: number
107
- /**
108
- * 当前导航项(位置极)。R2 · L1-1-1:原来是 `Exclude<…, "new">`,
109
- * 从签名上就禁掉了「新任务」这一档,于是主屏整屏零位置极——而原型
110
- * (模板 L5008–5013,NAV 首项就是「新任务」)在主屏是把这一行点亮的。
111
- * 宿主 `features/sidebar/Sidebar.tsx` 补 `view === 'home' → 'new'` 即可,见交接单。
112
- */
113
- activeNav?: DesktopSidebarNavId
114
- /**
115
- * 是否在导航里出「我的空间」(A11-B1 · 裁决 16)。
116
- *
117
- * 缺省 **false**:我的空间正在退役——项目文件搬去右栏文件浏览器、记忆搬去设置·记忆段,
118
- * 导航因此长成「新任务 / 插件 / 工作台 / 定时任务」四项(原型模板 689–701)。
119
- * 代码与 `DesktopSidebarNavId` 的 `"files"` 一律保留:宿主路由(apps/desktop
120
- * `features/sidebar/Sidebar.tsx:291` 的 `view === 'workspace' → 'files'`)还在,
121
- * 打开本开关即可原样退回五项。宿主路由退役后本 prop 与 `"files"` 分支一起删。
122
- */
123
- showWorkspaceNav?: boolean
124
- newTaskTitle: string
125
- projects: DesktopSidebarProject[]
126
- user: DesktopSidebarUser
127
- onCollapsedChange: (collapsed: boolean) => void
128
- onWidthChange: (width: number) => void
129
- onNavigate: (target: Exclude<DesktopSidebarNavId, "new">) => void
130
- onOpenSettings: () => void
131
- petVisible?: boolean
132
- onPetVisibleChange?: (visible: boolean) => void
133
- onNewTask: (projectId?: string) => void
134
- onToggleProject: (projectId: string) => void
135
- onLoadMore: (projectId: string) => void
136
- showArchived: boolean
137
- onRefreshProjects: () => void
138
- onShowArchivedChange: (showArchived: boolean) => void
139
- onSelectThread: (threadId: string) => void
140
- onCreateProject: (name: string) => Promise<void>
141
- onCreateProjectForSelection?: (name: string) => Promise<string>
142
- onRenameProject: (projectId: string, name: string) => Promise<void>
143
- onDeleteProject: (projectId: string) => Promise<void>
144
- onOpenProjectDirectory: (projectId: string) => void
145
- onRenameThread: (threadId: string, title: string) => Promise<void>
146
- onMoveThread: (threadId: string, projectId: string) => Promise<void>
147
- onDeleteThread: (threadId: string) => Promise<void>
148
- onArchiveThread: (threadId: string) => Promise<void>
149
- // Share the whole thread as a one-click, share-everything shortcut (no picker).
150
- onShareThread: (threadId: string) => void
151
- onFeedback: () => void
152
- onLogout: () => void
153
- update?: DesktopSidebarUpdate
154
- onUpdateClick?: () => void
155
- onInstallUpdate?: () => Promise<void> | void
156
-
157
- /* ── R2 · 账户菜单「常用能力直出」的数据口(全部可选,缺省即该块不出) ───────
158
- 数据来源见交接单第九节:套餐/积分走计费接口、版本号走 app.getVersion()、
159
- 主题走宿主 theme store(与设置·常规段同一个值)。 */
160
- /** 套餐名 + 行末描边钮(升级 / 充值)。不传=套餐井里不出这一行。 */
161
- plan?: { name: string; action?: { label: string; onClick: () => void } }
162
- /** 积分额度读数(used/limit)。不传=不出读数与额度条;plan 与 credits 都没有则整个井不出。 */
163
- credits?: { used: number; limit: number; label?: string }
164
- /** 版本号,挂在菜单「检查更新」行尾(mono 读数)。 */
165
- version?: string
166
- /** 当前主题(与设置·常规段的三格同一个值)。 */
167
- theme?: Theme
168
- onThemeChange?: (theme: Theme) => void
169
- /** 「记忆」行;不传时回落到 `onOpenSettings()`(宿主再跳记忆段)。 */
170
- onOpenMemory?: () => void
171
- /** 「复制 ID」:组件出 2 秒内联反馈,toast 归宿主。不传+没有 user.id =不出复制钮。 */
172
- onCopyUserId?: (id: string) => void
173
- /** 「检查更新」行。 */
174
- onCheckUpdate?: () => void
175
- }
176
-
177
- type Anchor = { id: string; left: number; top: number }
178
- type ProjectAnchor = Anchor & { label: string; isDefault: boolean }
179
-
180
- export function DesktopSidebarView(props: DesktopSidebarViewProps): React.ReactElement {
181
- const { projects } = props
182
- const { isImeEnter, onCompositionStart, onCompositionEnd } = useImeAwareEnter()
183
- const [creatingProject, setCreatingProject] = useState(false)
184
- const [userMenu, setUserMenu] = useState<{ left: number; top: number; byKeyboard: boolean } | null>(null)
185
- /* R2 核对修(T4):账户行按钮是菜单的触发器——Esc / 选中一行关面后焦点回到它
186
- (WAI-ARIA menu button 口径)。原来关面后焦点掉到 body,键盘用户得从文档头重新 Tab 进来。
187
- 鼠标点遮罩 / 窗口失焦关面不回焦(没有键盘上下文可还)。 */
188
- const userMenuTrigger = useRef<HTMLButtonElement>(null)
189
- const closeUserMenu = (restoreFocus: boolean) => {
190
- setUserMenu(null)
191
- if (restoreFocus) userMenuTrigger.current?.focus()
192
- }
193
- const [threadMenu, setThreadMenu] = useState<Anchor | null>(null)
194
- const [projectMenu, setProjectMenu] = useState<ProjectAnchor | null>(null)
195
- const [projectsMenu, setProjectsMenu] = useState<{ left: number; top: number } | null>(null)
196
- const [renamingThread, setRenamingThread] = useState<{ id: string; value: string } | null>(null)
197
- const [renamingProject, setRenamingProject] = useState<{ id: string; value: string } | null>(null)
198
- const [pendingThreadDelete, setPendingThreadDelete] = useState<DesktopSidebarThread | null>(null)
199
- const [pendingProjectDelete, setPendingProjectDelete] = useState<DesktopSidebarProject | null>(null)
200
- const [pendingMove, setPendingMove] = useState<DesktopSidebarThread | null>(null)
201
- const [deletingProject, setDeletingProject] = useState(false)
202
- const [draggingThreadId, setDraggingThreadId] = useState<string | null>(null)
203
- const [dragOverProjectId, setDragOverProjectId] = useState<string | null>(null)
204
- const [showInstallUpdate, setShowInstallUpdate] = useState(false)
205
- const [installingUpdate, setInstallingUpdate] = useState(false)
206
-
207
- useEffect(() => {
208
- if (!threadMenu && !projectMenu && !projectsMenu) return
209
- const close = () => {
210
- setThreadMenu(null)
211
- setProjectMenu(null)
212
- setProjectsMenu(null)
213
- }
214
- const timer = window.setTimeout(() => window.addEventListener("click", close), 0)
215
- return () => {
216
- window.clearTimeout(timer)
217
- window.removeEventListener("click", close)
218
- }
219
- }, [threadMenu, projectMenu, projectsMenu])
220
-
221
- useEffect(() => {
222
- if (!userMenu) return
223
- const close = () => setUserMenu(null)
224
- // 只有 Escape 关面:菜单已换 MenuSurface 基座,方向键/Home/End/首字母都是它的
225
- // 键盘导航,原来「任意 keydown 就关」会把导航按键一并吃掉。
226
- const closeOnEscape = (event: KeyboardEvent) => {
227
- if (event.key === "Escape") closeUserMenu(true)
228
- }
229
- window.addEventListener("click", close)
230
- window.addEventListener("keydown", closeOnEscape)
231
- window.addEventListener("blur", close)
232
- return () => {
233
- window.removeEventListener("click", close)
234
- window.removeEventListener("keydown", closeOnEscape)
235
- window.removeEventListener("blur", close)
236
- }
237
- }, [userMenu])
238
-
239
- useEffect(() => {
240
- if (props.update?.state !== "ready") setShowInstallUpdate(false)
241
- }, [props.update?.state])
242
-
243
- const threadById = (id: string) => projects.flatMap((project) => project.threads).find((thread) => thread.id === id)
244
- const clearDrag = () => {
245
- setDraggingThreadId(null)
246
- setDragOverProjectId(null)
247
- }
248
- const commitThreadRename = async () => {
249
- if (!renamingThread) return
250
- const pending = renamingThread
251
- const value = pending.value.trim()
252
- setRenamingThread(null)
253
- if (!value) return
254
- try {
255
- await props.onRenameThread(pending.id, value)
256
- } catch {
257
- setRenamingThread(pending)
258
- }
259
- }
260
- const commitProjectRename = async () => {
261
- if (!renamingProject) return
262
- const pending = renamingProject
263
- const value = pending.value.trim()
264
- setRenamingProject(null)
265
- if (!value) return
266
- try {
267
- await props.onRenameProject(pending.id, value)
268
- } catch {
269
- setRenamingProject(pending)
270
- }
271
- }
272
-
273
- return (
274
- <SidebarShell
275
- collapsed={props.collapsed}
276
- onCollapsedChange={props.onCollapsedChange}
277
- width={props.width}
278
- onWidthChange={props.onWidthChange}
279
- minWidth={180}
280
- maxWidth={400}
281
- platform={props.platform}
282
- fullscreen={props.fullscreen}
283
- collapsedWidth={props.collapsedWidth}
284
- >
285
- {/* R2:折叠态本栏整块不渲染(windows 收成 0 宽、其余平台收成只剩顶行的 rail),
286
- 原来这里那枚 `collapsed ? <OrbitworkMark 28/>` 的折叠分支已成死码——rail 宽
287
- (mac 116 = 8+68+4+28+8 / 其余 44 = 8+28+8)被让位块与折叠钮占满,塞不下 mark,
288
- 故整条删除,栏内只留展开态的 lockup。 */}
289
- <div className="owbrand">
290
- <OrbitworkLockup theme="auto" size={20} />
291
- </div>
292
- <nav className="ownav">
293
- {/* R2 · L1-2-1:四枚导航字形逐点照原型(模板 687/692/696/700)——原来是
294
- NewTask(方框带笔)/ Compass(指南针)/ Globe(地球),与原型对不上,
295
- 且那三枚不带 `.dot` 零件,所以「当前项点亮信标点」这条规则在三屏上空转。
296
- 换成信标化字形后点随字形自带:ThreadDot=tasks · PanelSidebar=workspace ·
297
- Clock=schedule 三枚有点,Package(插件)按原型 NAV 表 dot:false 无点。 */}
298
- <NavItem
299
- id="new"
300
- label="新任务"
301
- title={props.newTaskTitle}
302
- active={props.activeNav === "new"}
303
- icon={<ThreadDot />}
304
- onClick={() => props.onNewTask()}
305
- />
306
- {/* A3-B5 命名统一(原型 693/697):「发现」→「插件」、「站点」→「工作台」。
307
- 路由 id(skills / sites)不动,只换面上的字;埋点键 R2 · L3-3-6 起改名
308
- (discover→plugins、workspace→workbench),见 NavItem 里的锚点注。 */}
309
- <NavItem
310
- id="skills"
311
- label="插件"
312
- title="插件"
313
- active={props.activeNav === "skills"}
314
- icon={<Package />}
315
- onClick={() => props.onNavigate("skills")}
316
- />
317
- <NavItem
318
- id="sites"
319
- label="工作台"
320
- title="工作台"
321
- active={props.activeNav === "sites"}
322
- icon={<PanelSidebar />}
323
- onClick={() => props.onNavigate("sites")}
324
- />
325
- <NavItem
326
- id="cron"
327
- label="定时任务"
328
- title="定时任务"
329
- active={props.activeNav === "cron"}
330
- icon={<Clock />}
331
- onClick={() => props.onNavigate("cron")}
332
- />
333
- {/* A11-B1:默认不出(showWorkspaceNav 缺省 false),导航长成四项。
334
- R2 · L1-2-1:workspace 那枚信标字形(PanelSidebar)已归给「工作台」——
335
- 原型里带信标点的 rect 就是工作台那一位;退役中的「我的空间」改用中性 Grid,
336
- 免得开关打开时同一列出现两枚一模一样的图标。
337
- R2 · L3-3-6:`workspace` 这个引导锚点也随之移交工作台(改名 `workbench`),
338
- 本项不再挂锚点。删除条件见 showWorkspaceNav 的文档注释。 */}
339
- {props.showWorkspaceNav && (
340
- <NavItem
341
- id="files"
342
- label="我的空间"
343
- title="我的空间"
344
- active={props.activeNav === "files"}
345
- icon={<Grid />}
346
- onClick={() => props.onNavigate("files")}
347
- />
348
- )}
349
- </nav>
350
-
351
- <div className="owrecent-head" data-tour-anchor="projects">
352
- <div className="t">项目</div>
353
- <div className="owrecent-actions">
354
- <Button
355
- variant="unstyled"
356
- title="更多项目操作"
357
- aria-label="更多项目操作"
358
- onClick={(event) => {
359
- event.stopPropagation()
360
- const rect = event.currentTarget.getBoundingClientRect()
361
- setProjectsMenu({ left: rect.right + 6, top: rect.top })
362
- }}
363
- >
364
- <More />
365
- </Button>
366
- <Button variant="unstyled" title="新建项目" aria-label="新建项目" onClick={() => setCreatingProject(true)}>
367
- <Plus />
368
- </Button>
369
- </div>
370
- </div>
371
- <div className="owprojects">
372
- {projects.map((project) => (
373
- <div key={project.id} className="owproject">
374
- {renamingProject?.id === project.id ? (
375
- <div className="owproject__head renaming">
376
- <Folder className="project-icon" />
377
- <TextField
378
- unstyled
379
- autoFocus
380
- value={renamingProject.value}
381
- onChange={(event) => setRenamingProject({ id: project.id, value: event.target.value })}
382
- onBlur={() => {
383
- void commitProjectRename()
384
- }}
385
- onCompositionStart={onCompositionStart}
386
- onCompositionEnd={onCompositionEnd}
387
- onKeyDown={(event) => {
388
- if (isImeEnter(event)) return
389
- if (event.key === "Enter") void commitProjectRename()
390
- if (event.key === "Escape") setRenamingProject(null)
391
- }}
392
- />
393
- </div>
394
- ) : (
395
- /* DS2 P6-2 口径(同底部账户区 .owuser):行壳只管布局与拖放,行内两枚按钮各拿一个焦点位。
396
- 原来整行是 <Button>,「更多」是它里面的 <span onClick>——键盘够不到,且可点元素套可点元素。 */
397
- <div
398
- className={`owproject__head${project.open ? "" : " collapsed"}${dragOverProjectId === project.id ? " drop-target" : ""}`}
399
- onDragOver={(event) => {
400
- if (!draggingThreadId) return
401
- event.preventDefault()
402
- event.dataTransfer.dropEffect = "move"
403
- setDragOverProjectId(project.id)
404
- }}
405
- onDragLeave={(event) => {
406
- const related = event.relatedTarget
407
- if (related instanceof Node && event.currentTarget.contains(related)) return
408
- setDragOverProjectId((current) => (current === project.id ? null : current))
409
- }}
410
- onDrop={(event) => {
411
- event.preventDefault()
412
- const threadId = event.dataTransfer.getData("application/x-owthread-id") || draggingThreadId
413
- clearDrag()
414
- if (threadId) void props.onMoveThread(threadId, project.id).catch(() => undefined)
415
- }}
416
- >
417
- <Button
418
- variant="unstyled"
419
- className="owproject__head-main"
420
- title={project.label}
421
- aria-expanded={project.open}
422
- onClick={() => props.onToggleProject(project.id)}
423
- >
424
- {/* R2 · L1-1-2:披露箭头在**行首**(原型模板 L714–720 是
425
- 「chev 14 → folder 16 → 名」,行尾什么都没有)。原来它挂在行尾,
426
- 读起来像行末的一枚操作钮,而不是「这一行能展开」。
427
- 展开 ChevDown / 折叠 ChevRight——原来靠一枚 ChevDown 转 -90°,
428
- 现在两枚字形各画各的,与原型逐点一致。 */}
429
- {project.open ? <ChevDown className="caret" /> : <ChevRight className="caret" />}
430
- <Folder className="project-icon" />
431
- <span className="lbl">{project.label}</span>
432
- </Button>
433
- <Button
434
- variant="unstyled"
435
- className="more"
436
- title="项目操作"
437
- aria-label={`${project.label} 的项目操作`}
438
- aria-haspopup="menu"
439
- onClick={(event) => {
440
- event.stopPropagation()
441
- const rect = event.currentTarget.getBoundingClientRect()
442
- setThreadMenu(null)
443
- setProjectMenu({
444
- id: project.id,
445
- label: project.label,
446
- isDefault: project.isDefault,
447
- left: rect.right + 6,
448
- top: rect.top,
449
- })
450
- }}
451
- >
452
- <More />
453
- </Button>
454
- </div>
455
- )}
456
- {project.open && (
457
- <div className="owthreads">
458
- {project.threads.map((thread) =>
459
- renamingThread?.id === thread.id ? (
460
- <div key={thread.id} className="owthread renaming">
461
- <TextField
462
- unstyled
463
- autoFocus
464
- value={renamingThread.value}
465
- onChange={(event) => setRenamingThread({ id: thread.id, value: event.target.value })}
466
- onBlur={() => {
467
- void commitThreadRename()
468
- }}
469
- onCompositionStart={onCompositionStart}
470
- onCompositionEnd={onCompositionEnd}
471
- onKeyDown={(event) => {
472
- if (isImeEnter(event)) return
473
- if (event.key === "Enter") void commitThreadRename()
474
- if (event.key === "Escape") setRenamingThread(null)
475
- }}
476
- />
477
- </div>
478
- ) : (
479
- /* DS2 P6-2 口径(同 .owuser / .owproject__head):行壳只管布局与拖放,
480
- 行主体与行尾「更多」各是一枚真按钮,键盘都够得到。 */
481
- <div
482
- key={thread.id}
483
- className={`owthread${thread.active ? " active" : ""}${draggingThreadId === thread.id ? " dragging" : ""}`}
484
- draggable={!thread.running}
485
- onDragStart={(event) => {
486
- if (thread.running) return
487
- setDraggingThreadId(thread.id)
488
- event.dataTransfer.effectAllowed = "move"
489
- event.dataTransfer.setData("application/x-owthread-id", thread.id)
490
- }}
491
- onDragEnd={clearDrag}
492
- >
493
- <Button
494
- variant="unstyled"
495
- className="owthread__main"
496
- title={thread.title}
497
- onClick={() => props.onSelectThread(thread.id)}
498
- >
499
- {/* R2 · L1-1-3:未读点在**行首**、运行点在行尾(原型模板 L727–733
500
- 就是这两个位置)。原来两颗点都堆在行尾,只靠颜色区分含义——
501
- 位置本身才是第一编码,颜色只是第二编码(R1)。 */}
502
- {thread.unread && <span className="dot" title="未读" aria-label="未读" role="img" />}
503
- <span className="lbl">{thread.title}</span>
504
- {/* §9 呼吸退役后运行点静止:形(实点的有无)+文字(title/aria-label)
505
- 承担 R1 双编码。 */}
506
- {thread.running && (
507
- <span className="run-dot" title="任务正在执行" aria-label="任务正在执行" role="img" />
508
- )}
509
- {thread.running && thread.runningCount && (
510
- <span className="run-cnt" title="任务进度">
511
- {thread.runningCount}
512
- </span>
513
- )}
514
- </Button>
515
- <span
516
- className={`thread-trailing${thread.sourceIcon || thread.branched || thread.archived ? " has-marks" : ""}`}
517
- >
518
- <span className="thread-status-marks">
519
- {thread.sourceIcon && (
520
- <span
521
- className="thread-source-mark"
522
- title={thread.sourceLabel ? `${thread.sourceLabel}会话` : "IM 会话"}
523
- >
524
- <Icon name={thread.sourceIcon} size={16} />
525
- </span>
526
- )}
527
- {thread.branched && (
528
- <span className="thread-branch-mark" title="分支会话">
529
- <Branch />
530
- </span>
531
- )}
532
- {thread.archived && (
533
- <span className="thread-archive-mark" title="已归档">
534
- <Archive />
535
- </span>
536
- )}
537
- </span>
538
- <Button
539
- variant="unstyled"
540
- className="more"
541
- title="更多"
542
- aria-label={`${thread.title} 的更多操作`}
543
- aria-haspopup="menu"
544
- onClick={(event) => {
545
- event.stopPropagation()
546
- const rect = event.currentTarget.getBoundingClientRect()
547
- setProjectMenu(null)
548
- setThreadMenu({ id: thread.id, left: rect.right + 6, top: rect.top })
549
- }}
550
- >
551
- <More />
552
- </Button>
553
- </span>
554
- </div>
555
- ),
556
- )}
557
- {project.threads.length === 0 && (
558
- <Button variant="unstyled" className="owthread-new" onClick={() => props.onNewTask(project.id)}>
559
- <Plus /> 新建任务
560
- </Button>
561
- )}
562
- {project.canLoadMore && (
563
- <Button
564
- variant="unstyled"
565
- className={`owthread-more${project.loadError ? " error" : ""}`}
566
- disabled={project.loadingMore}
567
- onClick={() => props.onLoadMore(project.id)}
568
- >
569
- {/* R2 · L2-1-1:「展开显示」原来是一行没有图标、没有 chevron、
570
- 与会话行同缩进同字号的 --ow-text-3 灰字(浅档 2.29:1),读起来像
571
- 一条被禁用的会话。补一枚 14 的 ChevDown 前置图标(与同族
572
- .owthread-new 的 Plus 同语法),让它读成动作;字色并轨见 CSS。 */}
573
- <ChevDown className="lead" aria-hidden="true" />
574
- {project.loadingMore ? "加载中…" : project.loadError ? "加载失败,点击重试" : "展开显示"}
575
- </Button>
576
- )}
577
- </div>
578
- )}
579
- </div>
580
- ))}
581
- </div>
582
-
583
- {projectsMenu && (
584
- <FloatingMenu anchor={projectsMenu}>
585
- <MenuSurface
586
- width={168}
587
- autoAdjust
588
- items={[
589
- { key: "refresh", label: "刷新", icon: <Refresh /> },
590
- { key: "archived", label: props.showArchived ? "隐藏已归档" : "显示已归档", icon: <Archive /> },
591
- ]}
592
- onSelect={(key) => {
593
- setProjectsMenu(null)
594
- if (key === "refresh") props.onRefreshProjects()
595
- if (key === "archived") props.onShowArchivedChange(!props.showArchived)
596
- }}
597
- />
598
- </FloatingMenu>
599
- )}
600
- {threadMenu && (
601
- <FloatingMenu anchor={threadMenu}>
602
- <MenuSurface
603
- width={160}
604
- autoAdjust
605
- items={[
606
- {
607
- key: "rename",
608
- label: "重命名",
609
- icon: <Edit />,
610
- disabled: Boolean(threadById(threadMenu.id)?.archived),
611
- },
612
- { key: "share", label: "分享", icon: <Share /> },
613
- {
614
- key: "move",
615
- label: "移动",
616
- icon: <Folder />,
617
- disabled: Boolean(threadById(threadMenu.id)?.running || threadById(threadMenu.id)?.archived),
618
- },
619
- ...(!threadById(threadMenu.id)?.archived
620
- ? ([
621
- {
622
- key: "archive",
623
- label: "归档",
624
- icon: <Archive />,
625
- disabled: threadById(threadMenu.id)?.canArchive === false,
626
- },
627
- ] as MenuItem[])
628
- : []),
629
- { key: "delete", label: "删除", icon: <Trash />, danger: true },
630
- ]}
631
- onSelect={(key) => {
632
- const thread = threadById(threadMenu.id)
633
- setThreadMenu(null)
634
- if (!thread) return
635
- if (key === "rename") setRenamingThread({ id: thread.id, value: thread.title })
636
- if (key === "share") props.onShareThread(thread.id)
637
- if (key === "move") setPendingMove(thread)
638
- if (key === "archive") void props.onArchiveThread(thread.id).catch(() => undefined)
639
- if (key === "delete") setPendingThreadDelete(thread)
640
- }}
641
- />
642
- </FloatingMenu>
643
- )}
644
- {projectMenu && (
645
- <FloatingMenu anchor={projectMenu}>
646
- <MenuSurface
647
- width={160}
648
- autoAdjust
649
- items={projectMenuItems(projectMenu.isDefault)}
650
- onSelect={(key) => {
651
- const project = projects.find((item) => item.id === projectMenu.id)
652
- setProjectMenu(null)
653
- if (!project) return
654
- if (key === "new-task") props.onNewTask(project.id)
655
- if (key === "open-dir") props.onOpenProjectDirectory(project.id)
656
- if (key === "rename") setRenamingProject({ id: project.id, value: project.label })
657
- if (key === "delete") setPendingProjectDelete(project)
658
- }}
659
- />
660
- </FloatingMenu>
661
- )}
662
-
663
- {/* DS2 P6-2:底部账户区归 ListRow 语法。原来整行是 <div onClick>,键盘完全够不到,
664
- 且更新胶囊是它内部的 <button>(button 套 button)。按 ListRow 的焦点口径拆开:
665
- 行壳只管布局(.owuser 这个类名同时是 electron-shell.css 的拖拽豁免契约,保留),
666
- 左侧「头像+名字」升为按钮拿一个焦点位,右侧更新胶囊自己是第二个焦点位。 */}
667
- <div className="owuser">
668
- <Button
669
- ref={userMenuTrigger}
670
- variant="unstyled"
671
- className="owuser__main"
672
- aria-haspopup="menu"
673
- aria-expanded={Boolean(userMenu)}
674
- title={props.user.name}
675
- onClick={(event) => {
676
- event.stopPropagation()
677
- if (userMenu) return setUserMenu(null)
678
- const rect = event.currentTarget.getBoundingClientRect()
679
- // Enter/Space 触发的 click detail=0 → 键盘打开,焦点进首行;指针打开只落面本体(R3)
680
- setUserMenu({ left: rect.left, top: rect.top, byKeyboard: event.detail === 0 })
681
- }}
682
- >
683
- {/* R2 · L1-1-4 / L2-1-5:无图时原来是一枚与侧栏底几乎同色的空灰圆
684
- (#EFEEE9 on #F7F6F1);原型 L743 是带首字的 --ow-data-1 实心圆。
685
- 改走 `primitives/Avatar`——它自带 id→data-1..6 的稳定取模与首字回落,
686
- 和账户菜单头部那枚 32 头像同一套实现。行结构(26 头像+名+chevron)不动,
687
- 类名 `av` 保留(CSS 与 electron-shell 的拖拽豁免都按它认)。 */}
688
- <Avatar className="av" size={26} id={props.user.id ?? props.user.name}>
689
- {props.user.avatarUrl ? (
690
- <img
691
- src={props.user.avatarUrl}
692
- alt=""
693
- className="w-full h-full object-cover"
694
- onError={(event) => event.currentTarget.remove()}
695
- />
696
- ) : (
697
- props.user.name.slice(-1)
698
- )}
699
- </Avatar>
700
- <span className="name">{props.user.name}</span>
701
- {!props.update && <ChevRight className="chev" />}
702
- </Button>
703
- {props.update && (
704
- <SidebarUpdateButton
705
- update={props.update}
706
- onClick={() => {
707
- if (props.update?.state === "ready") setShowInstallUpdate(true)
708
- else if (props.update?.state !== "downloading") props.onUpdateClick?.()
709
- }}
710
- />
711
- )}
712
- </div>
713
-
714
- {userMenu &&
715
- createPortal(
716
- <>
717
- <div
718
- className="owusermenu-backdrop"
719
- onClick={(event) => {
720
- event.stopPropagation()
721
- setUserMenu(null)
722
- }}
723
- />
724
- {/* DS2 P6-2:账户菜单收敛到 primitives/Menu 的 MenuSurface(与本文件另外三处菜单同基座)。
725
- 手写的 .mi 行原来 :hover 走全局 --ow-surface 档——弹层上该走 -pop 档,正是 §14
726
- 已知坑「暗主题弹层用全局 hover 档」;MenuSurface 自带 hover-pop/press-pop、
727
- focus-visible、danger 的 error-tint 与键盘导航。.owusermenu 只剩定位+no-drag 壳。
728
- R2(Terry 意见 4):面体整块搬进 `DesktopAccountMenuView`(280 宽,头部+套餐井
729
- +七行常用能力),本文件只留「在哪儿弹、几时关」。宽度 179→280:Home 画框实测
730
- left=38,38+280=318,离 240 侧栏右沿外仍在视口内,不会越出。 */}
731
- <div
732
- className="owusermenu"
733
- style={{ position: "fixed", left: userMenu.left, bottom: window.innerHeight - userMenu.top + 8 }}
734
- onClick={(event) => event.stopPropagation()}
735
- >
736
- <DesktopAccountMenuView
737
- user={props.user}
738
- plan={props.plan}
739
- credits={props.credits}
740
- version={props.version}
741
- update={props.update}
742
- theme={props.theme}
743
- onThemeChange={props.onThemeChange}
744
- petVisible={props.petVisible}
745
- onPetVisibleChange={props.onPetVisibleChange}
746
- onOpenSettings={props.onOpenSettings}
747
- onOpenMemory={props.onOpenMemory}
748
- onCopyUserId={props.onCopyUserId}
749
- /* R2 核对修(T4):菜单「检查更新」行与账户行的更新胶囊说的是同一件事,
750
- 点下去也得走同一条路——原来一律 `onCheckUpdate ?? onUpdateClick`,
751
- 「重启安装」态点了却去 downloadUpdate(宿主 Sidebar.tsx:324 的 onUpdateClick),
752
- 与行尾文字说的事对不上。按胶囊的分支:ready → 安装确认弹窗(再走 onInstallUpdate);
753
- downloading → 行已 disabled,这里只兜底;available / error → onUpdateClick(下载 / 重试);
754
- 没有已知更新 → onCheckUpdate(宿主的「检查更新」),未接线时回落 onUpdateClick。 */
755
- onCheckUpdate={() => {
756
- const state = props.update?.state
757
- if (state === "ready") return setShowInstallUpdate(true)
758
- if (state === "downloading") return
759
- if (props.update) return props.onUpdateClick?.()
760
- ; (props.onCheckUpdate ?? props.onUpdateClick)?.()
761
- }}
762
- onFeedback={props.onFeedback}
763
- onLogout={props.onLogout}
764
- autoFocus={userMenu.byKeyboard ? true : "surface"}
765
- onClose={() => closeUserMenu(true)}
766
- />
767
- </div>
768
- </>,
769
- document.body,
770
- )}
771
- {pendingThreadDelete && (
772
- <ConfirmDialog
773
- title="删除任务"
774
- description={`确定要删除「${pendingThreadDelete.title}」吗?该任务的对话将被移除,此操作无法撤销。`}
775
- onCancel={() => setPendingThreadDelete(null)}
776
- onConfirm={() => {
777
- const id = pendingThreadDelete.id
778
- void props
779
- .onDeleteThread(id)
780
- .then(() => setPendingThreadDelete(null))
781
- .catch(() => undefined)
782
- }}
783
- />
784
- )}
785
- {pendingProjectDelete && (
786
- <ConfirmDialog
787
- title="删除项目"
788
- description={`确定要删除项目「${pendingProjectDelete.label}」吗?项目下的任务将不再显示,但本地工作目录中的文件会保留。`}
789
- pending={deletingProject}
790
- pendingLabel="删除中…"
791
- onCancel={() => setPendingProjectDelete(null)}
792
- onConfirm={() => {
793
- setDeletingProject(true)
794
- void props
795
- .onDeleteProject(pendingProjectDelete.id)
796
- .then(() => setPendingProjectDelete(null))
797
- .catch(() => undefined)
798
- .finally(() => setDeletingProject(false))
799
- }}
800
- />
801
- )}
802
- {showInstallUpdate && props.update?.state === "ready" && (
803
- <UpdateInstallDialog
804
- version={props.update.version}
805
- pending={installingUpdate}
806
- onCancel={() => setShowInstallUpdate(false)}
807
- onConfirm={() => {
808
- setInstallingUpdate(true)
809
- Promise.resolve()
810
- .then(() => props.onInstallUpdate?.())
811
- .catch(() => setInstallingUpdate(false))
812
- }}
813
- />
814
- )}
815
- {creatingProject &&
816
- createPortal(
817
- <CreateProjectDialog
818
- onCancel={() => setCreatingProject(false)}
819
- onSubmit={(name) => props.onCreateProject(name).then(() => setCreatingProject(false))}
820
- />,
821
- document.body,
822
- )}
823
- {/* MoveThreadDialog 内部已走 composite/Dialog(自带 portal),此处不再套一层 createPortal。 */}
824
- {pendingMove && (
825
- <MoveThreadDialog
826
- thread={pendingMove}
827
- projects={projects}
828
- onCreateProject={props.onCreateProjectForSelection}
829
- onCancel={() => setPendingMove(null)}
830
- onSubmit={(projectId) => props.onMoveThread(pendingMove.id, projectId).then(() => setPendingMove(null))}
831
- />
832
- )}
833
- </SidebarShell>
834
- )
835
- }
836
-
837
- function SidebarUpdateButton({
838
- update,
839
- onClick,
840
- }: { update: DesktopSidebarUpdate; onClick: () => void }): React.ReactElement {
841
- const percent = Math.round(Math.max(0, Math.min(100, update.percent ?? 0)))
842
- /* 图标 + 角标小圆点:信息级提示,hover 才上色。ready 态图标换成 Refresh(动作是
843
- 重启安装),与 available 的 Download 形成形状双编码,不靠颜色区分两个可点态;
844
- 状态说明走 title(与账户菜单「检查更新」行同一份 updateRowText)。下载中禁用并
845
- 附百分比读数(读数用墨不用黄),点按行为由宿主按态分发。 */
846
- const { title } = updateRowText(update)
847
- const StateIcon = update.state === "ready" ? Refresh : Download
848
- return (
849
- <button
850
- type="button"
851
- className={`owuser-update ${update.state}`}
852
- title={title}
853
- aria-label={title}
854
- disabled={update.state === "downloading"}
855
- onClick={(event) => {
856
- event.stopPropagation()
857
- onClick()
858
- }}
859
- >
860
- <span className="owuser-update-ic">
861
- <StateIcon />
862
- {update.state !== "downloading" && <i className="owuser-update-dot" aria-hidden="true" />}
863
- </span>
864
- {update.state === "downloading" && <em>{percent}%</em>}
865
- </button>
866
- )
867
- }
868
-
869
- function NavItem({
870
- id,
871
- label,
872
- title,
873
- active,
874
- icon,
875
- onClick,
876
- }: {
877
- id: DesktopSidebarNavId
878
- label: string
879
- title: string
880
- active?: boolean
881
- icon: React.ReactNode
882
- onClick: () => void
883
- }): React.ReactElement {
884
- return (
885
- <Button
886
- variant="unstyled"
887
- className={`ownavitem${active ? " active" : ""}`}
888
- /* R2 · L1-1-1:当前项除了 `.active` 类还要出 `aria-current="page"`——原型模板
889
- L687 每个导航钮都写着 `aria-current="{{ navCurN }}"`,我们只画了底色,
890
- 读屏用户听不出「你在哪一屏」。 */
891
- aria-current={active ? "page" : undefined}
892
- /* R2 · L3-3-6 锚点契约(与 DesktopOnboardingTourView 件头注同一份):
893
- new-task / projects / plugins / workbench / composer。
894
- 原来只映射三枚,工作台(id="sites")根本没有锚点,而「我的空间」(id="files")
895
- 缺省不渲染 → `workspace` 锚点也不存在,宿主 `stepsForAvailableAnchors` 便把
896
- 五步静默砍成三步。旧键 discover / workspace 一并改名,宿主步表同批改,见交接单。 */
897
- data-tour-anchor={
898
- id === "new" ? "new-task" : id === "skills" ? "plugins" : id === "sites" ? "workbench" : undefined
899
- }
900
- onClick={onClick}
901
- title={title}
902
- >
903
- {icon}
904
- <span className="lbl">{label}</span>
905
- </Button>
906
- )
907
- }
908
-
909
- function FloatingMenu({
910
- anchor,
911
- children,
912
- }: { anchor: { left: number; top: number }; children: React.ReactNode }): React.ReactElement {
913
- return (
914
- <div
915
- style={{ position: "fixed", left: anchor.left, top: anchor.top, zIndex: 1000 }}
916
- onClick={(event) => event.stopPropagation()}
917
- >
918
- {children}
919
- </div>
920
- )
921
- }
922
-
923
- function projectMenuItems(isDefault: boolean): MenuItem[] {
924
- return [
925
- { key: "new-task", label: "新建任务", icon: <Plus /> },
926
- { key: "open-dir", label: "打开项目目录", icon: <Folder /> },
927
- ...(!isDefault
928
- ? ([
929
- { key: "rename", label: "重命名", icon: <Edit /> },
930
- { key: "delete", label: "删除", icon: <Trash />, danger: true },
931
- ] as MenuItem[])
932
- : []),
933
- ]
934
- }
935
-
936
- function ConfirmDialog({
937
- title,
938
- description,
939
- pending = false,
940
- pendingLabel = "删除中…",
941
- onCancel,
942
- onConfirm,
943
- }: {
944
- title: string
945
- description: string
946
- pending?: boolean
947
- pendingLabel?: string
948
- onCancel: () => void
949
- onConfirm: () => void
950
- }): React.ReactElement {
951
- // 归口 composite/Dialog:遮罩 --ow-scrim(无 backdrop-blur)、立面 16 圆角 + --ow-shadow-modal + 1px 边,
952
- // 头部图标走 danger 变体的 error tint 徽章(8px 行动档,不再是 48px rounded-full 彩底)。
953
- return (
954
- <Dialog
955
- open
956
- variant="danger"
957
- icon={<Trash aria-hidden="true" />}
958
- title={title}
959
- closable={false}
960
- closeOnOverlayClick={!pending}
961
- closeOnEscape={!pending}
962
- onClose={onCancel}
963
- actions={
964
- <>
965
- <Button variant="secondary" disabled={pending} onClick={onCancel}>
966
- 取消
967
- </Button>
968
- <Button variant="danger" disabled={pending} onClick={onConfirm}>
969
- {pending ? pendingLabel : "删除"}
970
- </Button>
971
- </>
972
- }
973
- >
974
- {description}
975
- </Dialog>
976
- )
977
- }
978
-
979
- function UpdateInstallDialog({
980
- version,
981
- pending,
982
- onCancel,
983
- onConfirm,
984
- }: { version: string; pending: boolean; onCancel: () => void; onConfirm: () => void }): React.ReactElement {
985
- // 归口 composite/Dialog;图标走 plain 裸档(原 bg-ow-primary/10 圆底在暗档是荧黄,会假冒行动极)。
986
- return (
987
- <Dialog
988
- open
989
- icon={<Refresh aria-hidden="true" />}
990
- iconTone="plain"
991
- title="安装更新"
992
- closable={false}
993
- closeOnOverlayClick={!pending}
994
- closeOnEscape={!pending}
995
- onClose={onCancel}
996
- actions={
997
- <>
998
- <Button variant="secondary" disabled={pending} onClick={onCancel}>
999
- 稍后
1000
- </Button>
1001
- <Button variant="primary" disabled={pending} onClick={onConfirm}>
1002
- {pending ? "正在重启…" : "安装并重启"}
1003
- </Button>
1004
- </>
1005
- }
1006
- >
1007
- Orbitwork {version} 已下载完成。安装后应用将自动重启。
1008
- </Dialog>
1009
- )
1010
- }
1011
-
1012
- function MoveThreadDialog({
1013
- thread,
1014
- projects,
1015
- onCreateProject,
1016
- onCancel,
1017
- onSubmit,
1018
- }: {
1019
- thread: DesktopSidebarThread
1020
- projects: DesktopSidebarProject[]
1021
- onCreateProject?: (name: string) => Promise<string>
1022
- onCancel: () => void
1023
- onSubmit: (projectId: string) => Promise<void>
1024
- }): React.ReactElement {
1025
- const [selected, setSelected] = useState("")
1026
- const [submitting, setSubmitting] = useState(false)
1027
- const [error, setError] = useState<string | null>(null)
1028
- const submit = () => {
1029
- if (!selected || submitting) return
1030
- setSubmitting(true)
1031
- setError(null)
1032
- onSubmit(selected)
1033
- .catch((reason) => setError(reason instanceof Error ? reason.message : "移动失败"))
1034
- .finally(() => setSubmitting(false))
1035
- }
1036
- // 归口 composite/Dialog(原手写 modal-host + backdrop-blur 毛玻璃已下线)。
1037
- return (
1038
- <Dialog
1039
- open
1040
- title={`移动任务「${thread.title}」`}
1041
- width={480}
1042
- closable={false}
1043
- onClose={onCancel}
1044
- actions={
1045
- <>
1046
- <Button variant="secondary" disabled={submitting} onClick={onCancel}>
1047
- 取消
1048
- </Button>
1049
- <Button variant="primary" disabled={!selected || submitting} onClick={submit}>
1050
- {submitting ? "移动中…" : "确认"}
1051
- </Button>
1052
- </>
1053
- }
1054
- >
1055
- <ProjectSelect
1056
- value={selected}
1057
- options={projects
1058
- .filter((project) => project.id !== thread.projectId)
1059
- .map((project) => ({ value: project.id, label: project.label }))}
1060
- onChange={setSelected}
1061
- onCreate={onCreateProject}
1062
- placeholder="选择目标项目"
1063
- disabled={submitting}
1064
- />
1065
- {error && (
1066
- <div
1067
- data-ow-part="error"
1068
- className="mt-2 text-ow-error font-normal text-ow-fs-ui leading-[1.4] font-[family-name:var(--ow-font-sans)]"
1069
- >
1070
- {error}
1071
- </div>
1072
- )}
1073
- </Dialog>
1074
- )
1075
- }