@orbit-work/ui 0.1.0

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 (755) hide show
  1. package/README.md +110 -0
  2. package/dist/about-window.cjs +1 -0
  3. package/dist/about-window.d.cts +12 -0
  4. package/dist/about-window.d.ts +12 -0
  5. package/dist/about-window.js +1 -0
  6. package/dist/appearance-D5uQ53j3.d.cts +210 -0
  7. package/dist/appearance-D5uQ53j3.d.ts +210 -0
  8. package/dist/appearance.cjs +1 -0
  9. package/dist/appearance.d.cts +1 -0
  10. package/dist/appearance.d.ts +1 -0
  11. package/dist/appearance.js +1 -0
  12. package/dist/browser-annotation-popup.cjs +1 -0
  13. package/dist/browser-annotation-popup.d.cts +48 -0
  14. package/dist/browser-annotation-popup.d.ts +48 -0
  15. package/dist/browser-annotation-popup.js +1 -0
  16. package/dist/chunk-3KT7IU4X.js +13 -0
  17. package/dist/chunk-5VLBKOG7.cjs +194 -0
  18. package/dist/chunk-7YJY64LZ.js +82 -0
  19. package/dist/chunk-EF2BSN3K.cjs +13 -0
  20. package/dist/chunk-GMMYDILD.cjs +82 -0
  21. package/dist/chunk-VG7FQQ7K.js +194 -0
  22. package/dist/fonts/JetBrainsMono-Medium.ttf +0 -0
  23. package/dist/fonts/JetBrainsMono-Regular.ttf +0 -0
  24. package/dist/fonts/SpaceGrotesk-500-latin-ext.woff2 +0 -0
  25. package/dist/fonts/SpaceGrotesk-500-latin.woff2 +0 -0
  26. package/dist/fonts/SpaceGrotesk-700-latin-ext.woff2 +0 -0
  27. package/dist/fonts/SpaceGrotesk-700-latin.woff2 +0 -0
  28. package/dist/fonts/ibm-plex-mono-latin-400-italic.woff2 +0 -0
  29. package/dist/fonts/ibm-plex-mono-latin-400.woff2 +0 -0
  30. package/dist/fonts/ibm-plex-mono-latin-500.woff2 +0 -0
  31. package/dist/fonts/ibm-plex-mono-latin-ext-400-italic.woff2 +0 -0
  32. package/dist/fonts/ibm-plex-mono-latin-ext-400.woff2 +0 -0
  33. package/dist/fonts/ibm-plex-mono-latin-ext-500.woff2 +0 -0
  34. package/dist/index.cjs +32 -0
  35. package/dist/index.css +1 -0
  36. package/dist/index.d.cts +10345 -0
  37. package/dist/index.d.ts +10345 -0
  38. package/dist/index.js +32 -0
  39. package/dist/orbitwork.css +22134 -0
  40. package/package.json +119 -0
  41. package/src/components/Layout/AppLayout/AppLayout.stories.tsx +246 -0
  42. package/src/components/Layout/AppLayout/AppLayoutSource.test.mjs +37 -0
  43. package/src/components/Layout/AppLayout/index.tsx +122 -0
  44. package/src/components/Layout/Sidebar/index.tsx +13 -0
  45. package/src/components/Layout/SidebarShell/SidebarShell.stories.tsx +676 -0
  46. package/src/components/Layout/SidebarShell/SidebarShellSource.test.mjs +161 -0
  47. package/src/components/Layout/SidebarShell/index.tsx +326 -0
  48. package/src/components/Layout/index.ts +10 -0
  49. package/src/components/composite/ActionBar/ActionBar.stories.tsx +26 -0
  50. package/src/components/composite/ActionBar/index.tsx +31 -0
  51. package/src/components/composite/ActionStatus/ActionStatus.stories.tsx +60 -0
  52. package/src/components/composite/ActionStatus/index.tsx +21 -0
  53. package/src/components/composite/AskQuestionCardView/AskQuestionCardView.stories.tsx +175 -0
  54. package/src/components/composite/AskQuestionCardView/AskQuestionCardViewSource.test.mjs +92 -0
  55. package/src/components/composite/AskQuestionCardView/index.tsx +119 -0
  56. package/src/components/composite/AssistantChannelCard/AssistantChannelCard.stories.tsx +265 -0
  57. package/src/components/composite/AssistantChannelCard/AssistantChannelCardSource.test.mjs +45 -0
  58. package/src/components/composite/AssistantChannelCard/index.tsx +102 -0
  59. package/src/components/composite/AssistantToggleRow/AssistantToggleRow.stories.tsx +197 -0
  60. package/src/components/composite/AssistantToggleRow/index.tsx +35 -0
  61. package/src/components/composite/AttachmentCard/AttachmentCard.stories.tsx +125 -0
  62. package/src/components/composite/AttachmentCard/index.tsx +80 -0
  63. package/src/components/composite/BackButton/BackButton.stories.tsx +93 -0
  64. package/src/components/composite/BackButton/BackButtonSource.test.mjs +29 -0
  65. package/src/components/composite/BackButton/index.tsx +48 -0
  66. package/src/components/composite/Banner/Banner.stories.tsx +180 -0
  67. package/src/components/composite/Banner/BannerSource.test.mjs +67 -0
  68. package/src/components/composite/Banner/index.tsx +125 -0
  69. package/src/components/composite/BeaconIcons/BeaconIcons.stories.tsx +153 -0
  70. package/src/components/composite/BeaconIcons/index.tsx +265 -0
  71. package/src/components/composite/BeaconSpinner/BeaconSpinner.stories.tsx +144 -0
  72. package/src/components/composite/BeaconSpinner/index.tsx +185 -0
  73. package/src/components/composite/CatalogStates/CatalogEmptyState.stories.tsx +108 -0
  74. package/src/components/composite/CatalogStates/CatalogStates.stories.tsx +53 -0
  75. package/src/components/composite/CatalogStates/CatalogStatesSource.test.mjs +149 -0
  76. package/src/components/composite/CatalogStates/index.tsx +113 -0
  77. package/src/components/composite/Charts/Charts.stories.tsx +174 -0
  78. package/src/components/composite/Charts/ChartsSource.test.mjs +111 -0
  79. package/src/components/composite/Charts/index.tsx +385 -0
  80. package/src/components/composite/CodeBlock/CodeBlock.stories.tsx +308 -0
  81. package/src/components/composite/CodeBlock/CodeFaceSource.test.mjs +89 -0
  82. package/src/components/composite/CodeBlock/index.tsx +300 -0
  83. package/src/components/composite/CodeDiff/CodeDiff.stories.tsx +169 -0
  84. package/src/components/composite/CodeDiff/index.tsx +373 -0
  85. package/src/components/composite/CodePreview/CodePreview.stories.tsx +127 -0
  86. package/src/components/composite/CodePreview/CodePreviewSource.test.mjs +43 -0
  87. package/src/components/composite/CodePreview/index.tsx +98 -0
  88. package/src/components/composite/CommandPalette/CommandPalette.stories.tsx +89 -0
  89. package/src/components/composite/CommandPalette/CommandPaletteSource.test.mjs +61 -0
  90. package/src/components/composite/CommandPalette/index.tsx +310 -0
  91. package/src/components/composite/ContentRecommendation/ContentRecommendation.stories.tsx +300 -0
  92. package/src/components/composite/ContentRecommendation/ContentRecommendationSource.test.mjs +48 -0
  93. package/src/components/composite/ContentRecommendation/index.tsx +116 -0
  94. package/src/components/composite/ContextChip/ContextChip.stories.tsx +123 -0
  95. package/src/components/composite/ContextChip/ContextChipSource.test.mjs +24 -0
  96. package/src/components/composite/ContextChip/index.tsx +25 -0
  97. package/src/components/composite/ContextUsageIndicatorView/ContextUsageIndicatorSizeSource.test.mjs +15 -0
  98. package/src/components/composite/ContextUsageIndicatorView/ContextUsageIndicatorView.stories.tsx +110 -0
  99. package/src/components/composite/ContextUsageIndicatorView/ContextUsageLoadingSource.test.mjs +23 -0
  100. package/src/components/composite/ContextUsageIndicatorView/index.tsx +139 -0
  101. package/src/components/composite/Controls/Controls.stories.tsx +227 -0
  102. package/src/components/composite/Controls/index.tsx +15 -0
  103. package/src/components/composite/CreateProjectDialog/CreateProjectDialog.stories.tsx +56 -0
  104. package/src/components/composite/CreateProjectDialog/index.tsx +70 -0
  105. package/src/components/composite/DataManagementSectionView/DataManagementSectionView.stories.tsx +123 -0
  106. package/src/components/composite/DataManagementSectionView/DataManagementSectionViewSource.test.mjs +45 -0
  107. package/src/components/composite/DataManagementSectionView/index.tsx +110 -0
  108. package/src/components/composite/DataTable/DataTable.stories.tsx +159 -0
  109. package/src/components/composite/DataTable/DataTableSource.test.mjs +96 -0
  110. package/src/components/composite/DataTable/index.tsx +373 -0
  111. package/src/components/composite/DetailChrome/DetailChrome.stories.tsx +61 -0
  112. package/src/components/composite/DetailChrome/DetailChromeSource.test.mjs +31 -0
  113. package/src/components/composite/DetailChrome/index.tsx +94 -0
  114. package/src/components/composite/DetailPanel/DetailPanel.stories.tsx +185 -0
  115. package/src/components/composite/DetailPanel/DetailPanelSource.test.mjs +49 -0
  116. package/src/components/composite/DetailPanel/index.tsx +120 -0
  117. package/src/components/composite/DetailScaffold/DetailScaffold.stories.tsx +203 -0
  118. package/src/components/composite/DetailScaffold/DetailScaffoldSource.test.mjs +38 -0
  119. package/src/components/composite/DetailScaffold/index.tsx +114 -0
  120. package/src/components/composite/Dialog/Dialog.stories.tsx +343 -0
  121. package/src/components/composite/Dialog/DialogSource.test.mjs +130 -0
  122. package/src/components/composite/Dialog/index.tsx +333 -0
  123. package/src/components/composite/DropZone/DropZone.stories.tsx +105 -0
  124. package/src/components/composite/DropZone/DropZoneSource.test.mjs +68 -0
  125. package/src/components/composite/DropZone/index.tsx +196 -0
  126. package/src/components/composite/FSelect/FSelect.stories.tsx +64 -0
  127. package/src/components/composite/FSelect/index.tsx +29 -0
  128. package/src/components/composite/FeedbackContextMenuView/FeedbackContextMenuView.stories.tsx +106 -0
  129. package/src/components/composite/FeedbackContextMenuView/index.tsx +51 -0
  130. package/src/components/composite/FeedbackDialogView/FeedbackDialogView.stories.tsx +291 -0
  131. package/src/components/composite/FeedbackDialogView/index.tsx +95 -0
  132. package/src/components/composite/FileReferenceCard/FileReferenceCard.stories.tsx +364 -0
  133. package/src/components/composite/FileReferenceCard/FileReferenceCardSource.test.mjs +48 -0
  134. package/src/components/composite/FileReferenceCard/index.tsx +122 -0
  135. package/src/components/composite/FilterBar/FilterBar.stories.tsx +167 -0
  136. package/src/components/composite/FilterBar/FilterBarSource.test.mjs +75 -0
  137. package/src/components/composite/FilterBar/index.tsx +206 -0
  138. package/src/components/composite/FormField/FormField.stories.tsx +158 -0
  139. package/src/components/composite/FormField/FormFieldSource.test.mjs +56 -0
  140. package/src/components/composite/FormField/index.tsx +219 -0
  141. package/src/components/composite/HomeBackdrop/HomeBackdrop.stories.tsx +54 -0
  142. package/src/components/composite/HomeBackdrop/HomeBackdropSource.test.mjs +50 -0
  143. package/src/components/composite/HomeBackdrop/index.tsx +53 -0
  144. package/src/components/composite/Icons/Icons.stories.tsx +153 -0
  145. package/src/components/composite/Icons/IconsSource.test.mjs +23 -0
  146. package/src/components/composite/Icons/index.tsx +1347 -0
  147. package/src/components/composite/ImageCard/ImageCard.stories.tsx +54 -0
  148. package/src/components/composite/ImageCard/index.tsx +33 -0
  149. package/src/components/composite/ImagePreview/ImagePreview.stories.tsx +172 -0
  150. package/src/components/composite/ImagePreview/ImagePreviewSource.test.mjs +95 -0
  151. package/src/components/composite/ImagePreview/index.tsx +339 -0
  152. package/src/components/composite/ListRow/ListRow.stories.tsx +257 -0
  153. package/src/components/composite/ListRow/ListRowSource.test.mjs +101 -0
  154. package/src/components/composite/ListRow/index.tsx +309 -0
  155. package/src/components/composite/Markdown/Markdown.stories.tsx +192 -0
  156. package/src/components/composite/Markdown/MarkdownSource.test.mjs +126 -0
  157. package/src/components/composite/Markdown/MarkdownStyleSource.test.mjs +152 -0
  158. package/src/components/composite/Markdown/index.tsx +702 -0
  159. package/src/components/composite/MarkdownPreview/MarkdownPreview.stories.tsx +174 -0
  160. package/src/components/composite/MarkdownPreview/MarkdownPreviewTabsSource.test.mjs +31 -0
  161. package/src/components/composite/MarkdownPreview/MarkdownRenderedStyleSource.test.mjs +84 -0
  162. package/src/components/composite/MarkdownPreview/index.tsx +140 -0
  163. package/src/components/composite/MarkdownPreviewModalView/MarkdownPreviewModalView.stories.tsx +104 -0
  164. package/src/components/composite/MarkdownPreviewModalView/index.tsx +85 -0
  165. package/src/components/composite/MessageFeedbackDialog/MessageFeedbackDialog.stories.tsx +66 -0
  166. package/src/components/composite/MessageFeedbackDialog/index.tsx +115 -0
  167. package/src/components/composite/ModelCatalogErrorState/ModelCatalogErrorState.stories.tsx +101 -0
  168. package/src/components/composite/ModelCatalogErrorState/ModelCatalogRetrySource.test.mjs +86 -0
  169. package/src/components/composite/ModelCatalogErrorState/index.tsx +59 -0
  170. package/src/components/composite/ModelModalityFlow/ModelModalityFlow.stories.tsx +224 -0
  171. package/src/components/composite/ModelModalityFlow/ModelModalityFlowSource.test.mjs +56 -0
  172. package/src/components/composite/ModelModalityFlow/index.tsx +113 -0
  173. package/src/components/composite/ModelPickerList/ModelPickerList.stories.tsx +313 -0
  174. package/src/components/composite/ModelPickerList/index.tsx +142 -0
  175. package/src/components/composite/ModelSelect/ModelSelect.stories.tsx +90 -0
  176. package/src/components/composite/ModelSelect/index.tsx +148 -0
  177. package/src/components/composite/ModelsSettingsSectionView/ModelsSettingsSectionView.stories.tsx +170 -0
  178. package/src/components/composite/ModelsSettingsSectionView/index.tsx +139 -0
  179. package/src/components/composite/NativeControls/NativeControls.stories.tsx +386 -0
  180. package/src/components/composite/NativeControls/NativeControlsStyleSource.test.mjs +63 -0
  181. package/src/components/composite/NativeControls/index.tsx +97 -0
  182. package/src/components/composite/NavMenu/NavMenu.stories.tsx +383 -0
  183. package/src/components/composite/NavMenu/NavMenuSource.test.mjs +56 -0
  184. package/src/components/composite/NavMenu/index.tsx +142 -0
  185. package/src/components/composite/NoPlanPanelView/NoPlanPanelView.stories.tsx +344 -0
  186. package/src/components/composite/NoPlanPanelView/NoPlanPanelViewSource.test.mjs +34 -0
  187. package/src/components/composite/NoPlanPanelView/index.tsx +97 -0
  188. package/src/components/composite/OpenWithButton/OpenWithButton.stories.tsx +78 -0
  189. package/src/components/composite/OpenWithButton/index.tsx +46 -0
  190. package/src/components/composite/OrbitworkLogo/OrbitworkLogo.stories.tsx +192 -0
  191. package/src/components/composite/OrbitworkLogo/index.tsx +207 -0
  192. package/src/components/composite/OrbitworkModal/OrbitworkModal.stories.tsx +58 -0
  193. package/src/components/composite/OrbitworkModal/index.tsx +31 -0
  194. package/src/components/composite/PageHead/PageHead.stories.tsx +235 -0
  195. package/src/components/composite/PageHead/PageHeadSource.test.mjs +76 -0
  196. package/src/components/composite/PageHead/index.tsx +128 -0
  197. package/src/components/composite/PlanFeatureIcon/PlanFeatureIcon.stories.tsx +205 -0
  198. package/src/components/composite/PlanFeatureIcon/PlanFeatureIconSource.test.mjs +38 -0
  199. package/src/components/composite/PlanFeatureIcon/index.tsx +48 -0
  200. package/src/components/composite/PlanSettingsSectionView/PlanSettingsSectionView.stories.tsx +231 -0
  201. package/src/components/composite/PlanSettingsSectionView/PlanSettingsSectionViewSource.test.mjs +85 -0
  202. package/src/components/composite/PlanSettingsSectionView/index.tsx +264 -0
  203. package/src/components/composite/Popover/Popover.stories.tsx +175 -0
  204. package/src/components/composite/Popover/PopoverSource.test.mjs +59 -0
  205. package/src/components/composite/Popover/index.tsx +176 -0
  206. package/src/components/composite/PptxRenderer/ElementDispatcher/index.tsx +70 -0
  207. package/src/components/composite/PptxRenderer/PptxChromeStyleSource.test.mjs +36 -0
  208. package/src/components/composite/PptxRenderer/PptxRenderer.stories.tsx +128 -0
  209. package/src/components/composite/PptxRenderer/PptxSlide/index.tsx +48 -0
  210. package/src/components/composite/PptxRenderer/constants.ts +2 -0
  211. package/src/components/composite/PptxRenderer/elements/AudioElement/index.tsx +48 -0
  212. package/src/components/composite/PptxRenderer/elements/ChartElement/index.tsx +172 -0
  213. package/src/components/composite/PptxRenderer/elements/DiagramElement/index.tsx +46 -0
  214. package/src/components/composite/PptxRenderer/elements/GroupElement/index.tsx +28 -0
  215. package/src/components/composite/PptxRenderer/elements/ImageElement/index.tsx +61 -0
  216. package/src/components/composite/PptxRenderer/elements/MathElement/index.tsx +57 -0
  217. package/src/components/composite/PptxRenderer/elements/ShapeElement/index.tsx +327 -0
  218. package/src/components/composite/PptxRenderer/elements/TableElement/index.tsx +90 -0
  219. package/src/components/composite/PptxRenderer/elements/TextElement/index.tsx +57 -0
  220. package/src/components/composite/PptxRenderer/elements/VideoElement/index.tsx +43 -0
  221. package/src/components/composite/PptxRenderer/index.ts +24 -0
  222. package/src/components/composite/PptxRenderer/types.ts +326 -0
  223. package/src/components/composite/PptxRenderer/utils.ts +129 -0
  224. package/src/components/composite/ProjectSelect/ProjectSelect.stories.tsx +112 -0
  225. package/src/components/composite/ProjectSelect/ProjectSelectSource.test.mjs +34 -0
  226. package/src/components/composite/ProjectSelect/index.tsx +155 -0
  227. package/src/components/composite/RadioCard/RadioCard.stories.tsx +130 -0
  228. package/src/components/composite/RadioCard/RadioCardSource.test.mjs +42 -0
  229. package/src/components/composite/RadioCard/index.tsx +171 -0
  230. package/src/components/composite/RowOverflowMenu/RowOverflowMenu.stories.tsx +113 -0
  231. package/src/components/composite/RowOverflowMenu/RowOverflowMenuSource.test.mjs +59 -0
  232. package/src/components/composite/RowOverflowMenu/index.tsx +101 -0
  233. package/src/components/composite/SandboxPermissionPrompt/SandboxPermissionPrompt.stories.tsx +159 -0
  234. package/src/components/composite/SandboxPermissionPrompt/SandboxPermissionPromptSource.test.mjs +71 -0
  235. package/src/components/composite/SandboxPermissionPrompt/index.tsx +157 -0
  236. package/src/components/composite/SearchInput/SearchInput.stories.tsx +127 -0
  237. package/src/components/composite/SearchInput/index.tsx +91 -0
  238. package/src/components/composite/SearchResult/SearchResult.stories.tsx +305 -0
  239. package/src/components/composite/SearchResult/SearchResultSource.test.mjs +45 -0
  240. package/src/components/composite/SearchResult/index.tsx +148 -0
  241. package/src/components/composite/Section/Section.stories.tsx +148 -0
  242. package/src/components/composite/Section/SectionSource.test.mjs +59 -0
  243. package/src/components/composite/Section/index.tsx +105 -0
  244. package/src/components/composite/SelectionBulkBar/SelectionBulkBar.stories.tsx +111 -0
  245. package/src/components/composite/SelectionBulkBar/SelectionBulkBarSource.test.mjs +44 -0
  246. package/src/components/composite/SelectionBulkBar/index.tsx +99 -0
  247. package/src/components/composite/ShareStrip/ShareStrip.stories.tsx +123 -0
  248. package/src/components/composite/ShareStrip/index.tsx +83 -0
  249. package/src/components/composite/ShortcutSheet/ShortcutSheet.stories.tsx +90 -0
  250. package/src/components/composite/ShortcutSheet/ShortcutSheetSource.test.mjs +49 -0
  251. package/src/components/composite/ShortcutSheet/index.tsx +163 -0
  252. package/src/components/composite/SitesArtifactCardView/SitesArtifactCardView.stories.tsx +328 -0
  253. package/src/components/composite/SitesArtifactCardView/SitesArtifactCardViewSource.test.mjs +45 -0
  254. package/src/components/composite/SitesArtifactCardView/index.tsx +100 -0
  255. package/src/components/composite/Skeleton/Skeleton.stories.tsx +188 -0
  256. package/src/components/composite/Skeleton/SkeletonSource.test.mjs +25 -0
  257. package/src/components/composite/Skeleton/index.tsx +152 -0
  258. package/src/components/composite/Splash/Splash.stories.tsx +150 -0
  259. package/src/components/composite/Splash/index.tsx +229 -0
  260. package/src/components/composite/StatusTag/StatusTag.stories.tsx +66 -0
  261. package/src/components/composite/StatusTag/StatusTagSource.test.mjs +64 -0
  262. package/src/components/composite/StatusTag/index.tsx +78 -0
  263. package/src/components/composite/StepList/StepList.stories.tsx +352 -0
  264. package/src/components/composite/StepList/index.tsx +23 -0
  265. package/src/components/composite/Tag/Tag.stories.tsx +279 -0
  266. package/src/components/composite/Tag/TagSource.test.mjs +67 -0
  267. package/src/components/composite/Tag/index.tsx +229 -0
  268. package/src/components/composite/TimePicker/TimePicker.stories.tsx +91 -0
  269. package/src/components/composite/TimePicker/TimePickerSource.test.mjs +98 -0
  270. package/src/components/composite/TimePicker/index.tsx +208 -0
  271. package/src/components/composite/TitleBar/TitleBar.stories.tsx +329 -0
  272. package/src/components/composite/TitleBar/TitleBarSource.test.mjs +140 -0
  273. package/src/components/composite/TitleBar/index.tsx +350 -0
  274. package/src/components/composite/Toast/Toast.stories.tsx +304 -0
  275. package/src/components/composite/Toast/ToastSource.test.mjs +63 -0
  276. package/src/components/composite/Toast/index.tsx +135 -0
  277. package/src/components/composite/Tooltip/Tooltip.stories.tsx +304 -0
  278. package/src/components/composite/Tooltip/TooltipSource.test.mjs +34 -0
  279. package/src/components/composite/Tooltip/index.tsx +204 -0
  280. package/src/components/composite/TranscriptDividers/TranscriptDividers.stories.tsx +160 -0
  281. package/src/components/composite/TranscriptDividers/TranscriptDividersSource.test.mjs +90 -0
  282. package/src/components/composite/TranscriptDividers/index.tsx +352 -0
  283. package/src/components/composite/WCardShell/WCardShell.stories.tsx +228 -0
  284. package/src/components/composite/WCardShell/index.tsx +101 -0
  285. package/src/components/composite/index.ts +81 -0
  286. package/src/components/domain/artifacts/ArtifactPreviewSidebarView/ArtifactPreviewSidebarView.stories.tsx +128 -0
  287. package/src/components/domain/artifacts/ArtifactPreviewSidebarView/ArtifactPreviewSidebarViewSource.test.mjs +69 -0
  288. package/src/components/domain/artifacts/ArtifactPreviewSidebarView/index.tsx +212 -0
  289. package/src/components/domain/artifacts/index.ts +1 -0
  290. package/src/components/domain/browser/BrowserAnnotationPopupView/BrowserAnnotationPopupView.stories.tsx +211 -0
  291. package/src/components/domain/browser/BrowserAnnotationPopupView/BrowserAnnotationPopupViewSource.test.mjs +82 -0
  292. package/src/components/domain/browser/BrowserAnnotationPopupView/index.tsx +235 -0
  293. package/src/components/domain/browser/BrowserDeviceToolbarView/BrowserDeviceToolbarView.stories.tsx +260 -0
  294. package/src/components/domain/browser/BrowserDeviceToolbarView/BrowserDeviceToolbarViewSource.test.mjs +12 -0
  295. package/src/components/domain/browser/BrowserDeviceToolbarView/index.tsx +154 -0
  296. package/src/components/domain/browser/BrowserFindBarView/BrowserFindBarView.stories.tsx +52 -0
  297. package/src/components/domain/browser/BrowserFindBarView/index.tsx +111 -0
  298. package/src/components/domain/browser/BrowserImportDialogView/BrowserImportDialogView.stories.tsx +89 -0
  299. package/src/components/domain/browser/BrowserImportDialogView/index.tsx +155 -0
  300. package/src/components/domain/browser/BrowserLoadErrorView/BrowserLoadErrorView.stories.tsx +197 -0
  301. package/src/components/domain/browser/BrowserLoadErrorView/BrowserLoadErrorViewSource.test.mjs +29 -0
  302. package/src/components/domain/browser/BrowserLoadErrorView/index.tsx +45 -0
  303. package/src/components/domain/browser/BrowserMoreMenuView/BrowserMoreMenuView.stories.tsx +66 -0
  304. package/src/components/domain/browser/BrowserMoreMenuView/index.tsx +268 -0
  305. package/src/components/domain/browser/BrowserNavBarView/BrowserNavBarView.stories.tsx +149 -0
  306. package/src/components/domain/browser/BrowserNavBarView/index.tsx +156 -0
  307. package/src/components/domain/browser/BrowserTabBarView/index.tsx +18 -0
  308. package/src/components/domain/browser/SubAgentPane/SubAgentPane.stories.tsx +96 -0
  309. package/src/components/domain/browser/SubAgentPane/SubAgentPaneSource.test.mjs +48 -0
  310. package/src/components/domain/browser/SubAgentPane/index.tsx +121 -0
  311. package/src/components/domain/browser/TerminalPane/TerminalPane.stories.tsx +95 -0
  312. package/src/components/domain/browser/TerminalPane/TerminalPaneSource.test.mjs +52 -0
  313. package/src/components/domain/browser/TerminalPane/index.tsx +75 -0
  314. package/src/components/domain/browser/WebPreview/WebPreview.stories.tsx +71 -0
  315. package/src/components/domain/browser/WebPreview/index.tsx +141 -0
  316. package/src/components/domain/browser/WebPreviewConsole/WebPreviewConsole.stories.tsx +61 -0
  317. package/src/components/domain/browser/WebPreviewConsole/WebPreviewConsoleSource.test.mjs +66 -0
  318. package/src/components/domain/browser/WebPreviewConsole/index.tsx +239 -0
  319. package/src/components/domain/browser/WebPreviewDialog/WebPreviewDialog.stories.tsx +288 -0
  320. package/src/components/domain/browser/WebPreviewDialog/WebPreviewDialogSource.test.mjs +62 -0
  321. package/src/components/domain/browser/WebPreviewDialog/index.tsx +82 -0
  322. package/src/components/domain/browser/WebPreviewNav/WebPreviewNav.stories.tsx +462 -0
  323. package/src/components/domain/browser/WebPreviewNav/WebPreviewNavSource.test.mjs +353 -0
  324. package/src/components/domain/browser/WebPreviewNav/index.tsx +351 -0
  325. package/src/components/domain/browser/WebPreviewShell/WebPreviewShell.stories.tsx +226 -0
  326. package/src/components/domain/browser/WebPreviewShell/WebPreviewShellSource.test.mjs +172 -0
  327. package/src/components/domain/browser/WebPreviewShell/index.tsx +324 -0
  328. package/src/components/domain/browser/index.ts +45 -0
  329. package/src/components/domain/chat/AgentLoopSegment/AgentLoopSegment.stories.tsx +107 -0
  330. package/src/components/domain/chat/AgentLoopSegment/AgentLoopSegmentSource.test.mjs +45 -0
  331. package/src/components/domain/chat/AgentLoopSegment/index.tsx +29 -0
  332. package/src/components/domain/chat/AgentTurn/AgentTurn.stories.tsx +162 -0
  333. package/src/components/domain/chat/AgentTurn/AgentTurnSource.test.mjs +98 -0
  334. package/src/components/domain/chat/AgentTurn/beaconContext.ts +37 -0
  335. package/src/components/domain/chat/AgentTurn/index.tsx +226 -0
  336. package/src/components/domain/chat/ArtifactCard/ArtifactCard.stories.tsx +127 -0
  337. package/src/components/domain/chat/ArtifactCard/index.tsx +249 -0
  338. package/src/components/domain/chat/Attachment/Attachment.stories.tsx +235 -0
  339. package/src/components/domain/chat/Attachment/AttachmentSource.test.mjs +160 -0
  340. package/src/components/domain/chat/Attachment/index.tsx +857 -0
  341. package/src/components/domain/chat/AuthorizationCard/AuthorizationCard.stories.tsx +53 -0
  342. package/src/components/domain/chat/AuthorizationCard/AuthorizationCardSource.test.mjs +80 -0
  343. package/src/components/domain/chat/AuthorizationCard/index.tsx +89 -0
  344. package/src/components/domain/chat/ChatBubble/ChatBubble.stories.tsx +32 -0
  345. package/src/components/domain/chat/ChatBubble/index.tsx +24 -0
  346. package/src/components/domain/chat/ChatMessage/ChatMessage.stories.tsx +31 -0
  347. package/src/components/domain/chat/ChatMessage/index.tsx +23 -0
  348. package/src/components/domain/chat/ChatR2ReviewSource.test.mjs +98 -0
  349. package/src/components/domain/chat/ChatThinking/ChatThinking.stories.tsx +125 -0
  350. package/src/components/domain/chat/ChatThinking/index.tsx +55 -0
  351. package/src/components/domain/chat/Chatbot/Chatbot.stories.tsx +49 -0
  352. package/src/components/domain/chat/Chatbot/index.tsx +37 -0
  353. package/src/components/domain/chat/Composer/Composer.stories.tsx +227 -0
  354. package/src/components/domain/chat/Composer/ComposerSource.test.mjs +175 -0
  355. package/src/components/domain/chat/Composer/index.tsx +450 -0
  356. package/src/components/domain/chat/Composer/parts/ComposerAudioSpectrum.stories.tsx +203 -0
  357. package/src/components/domain/chat/Composer/parts/ComposerAudioSpectrum.tsx +110 -0
  358. package/src/components/domain/chat/Composer/parts/ComposerAudioSpectrumSource.test.mjs +54 -0
  359. package/src/components/domain/chat/Composer/parts/ComposerAuthorization.stories.tsx +155 -0
  360. package/src/components/domain/chat/Composer/parts/ComposerAuthorization.tsx +108 -0
  361. package/src/components/domain/chat/Composer/parts/ComposerMentions.stories.tsx +76 -0
  362. package/src/components/domain/chat/Composer/parts/ComposerMentions.tsx +83 -0
  363. package/src/components/domain/chat/Composer/parts/ComposerMentionsSource.test.mjs +85 -0
  364. package/src/components/domain/chat/Composer/parts/ComposerMenu.stories.tsx +266 -0
  365. package/src/components/domain/chat/Composer/parts/ComposerMenu.tsx +232 -0
  366. package/src/components/domain/chat/Composer/parts/ComposerMenuPopover.stories.tsx +166 -0
  367. package/src/components/domain/chat/Composer/parts/ComposerMenuPopover.tsx +87 -0
  368. package/src/components/domain/chat/Composer/parts/ComposerMenuPopoverSource.test.mjs +56 -0
  369. package/src/components/domain/chat/Composer/parts/ComposerPopover.stories.tsx +257 -0
  370. package/src/components/domain/chat/Composer/parts/ComposerPopover.tsx +221 -0
  371. package/src/components/domain/chat/Composer/parts/ComposerPopoverSource.test.mjs +71 -0
  372. package/src/components/domain/chat/Composer/parts/ComposerProjectPicker.stories.tsx +260 -0
  373. package/src/components/domain/chat/Composer/parts/ComposerProjectPicker.tsx +246 -0
  374. package/src/components/domain/chat/Composer/parts/ComposerProjectPickerSource.test.mjs +46 -0
  375. package/src/components/domain/chat/Composer/parts/ComposerQueue.stories.tsx +275 -0
  376. package/src/components/domain/chat/Composer/parts/ComposerQueue.tsx +155 -0
  377. package/src/components/domain/chat/Composer/parts/ComposerQueueSource.test.mjs +95 -0
  378. package/src/components/domain/chat/Composer/parts/ComposerVoiceInput.stories.tsx +77 -0
  379. package/src/components/domain/chat/Composer/parts/ComposerVoiceInput.tsx +70 -0
  380. package/src/components/domain/chat/Composer/parts/mountChip.ts +21 -0
  381. package/src/components/domain/chat/ContextUsage/ContextUsage.stories.tsx +62 -0
  382. package/src/components/domain/chat/ContextUsage/index.tsx +69 -0
  383. package/src/components/domain/chat/ExecutionSummary/ExecutionSummary.stories.tsx +238 -0
  384. package/src/components/domain/chat/ExecutionSummary/ExecutionSummarySource.test.mjs +210 -0
  385. package/src/components/domain/chat/ExecutionSummary/index.tsx +487 -0
  386. package/src/components/domain/chat/Message/Message.stories.tsx +264 -0
  387. package/src/components/domain/chat/Message/index.tsx +44 -0
  388. package/src/components/domain/chat/MessageActions/MessageActions.stories.tsx +132 -0
  389. package/src/components/domain/chat/MessageActions/MessageActionsSource.test.mjs +79 -0
  390. package/src/components/domain/chat/MessageActions/index.tsx +186 -0
  391. package/src/components/domain/chat/PlanCard/PlanCard.stories.tsx +87 -0
  392. package/src/components/domain/chat/PlanCard/index.tsx +170 -0
  393. package/src/components/domain/chat/RichContent/RichContent.stories.tsx +102 -0
  394. package/src/components/domain/chat/RichContent/RichContentSource.test.mjs +82 -0
  395. package/src/components/domain/chat/RichContent/index.tsx +465 -0
  396. package/src/components/domain/chat/SubAgentThread/SubAgentThread.stories.tsx +119 -0
  397. package/src/components/domain/chat/SubAgentThread/index.tsx +104 -0
  398. package/src/components/domain/chat/Thinking/Thinking.stories.tsx +196 -0
  399. package/src/components/domain/chat/Thinking/ThinkingInlineSource.test.mjs +154 -0
  400. package/src/components/domain/chat/Thinking/index.tsx +237 -0
  401. package/src/components/domain/chat/ToolCallRow/ToolCallRow.stories.tsx +105 -0
  402. package/src/components/domain/chat/ToolCallRow/ToolCallRowSource.test.mjs +83 -0
  403. package/src/components/domain/chat/ToolCallRow/index.tsx +113 -0
  404. package/src/components/domain/chat/Transcript/Transcript.stories.tsx +296 -0
  405. package/src/components/domain/chat/Transcript/TranscriptSource.test.mjs +189 -0
  406. package/src/components/domain/chat/Transcript/index.tsx +187 -0
  407. package/src/components/domain/chat/TranscriptSpine/TranscriptSpine.stories.tsx +124 -0
  408. package/src/components/domain/chat/TranscriptSpine/index.tsx +245 -0
  409. package/src/components/domain/chat/UserTurn/UserTurn.stories.tsx +176 -0
  410. package/src/components/domain/chat/UserTurn/UserTurnSource.test.mjs +150 -0
  411. package/src/components/domain/chat/UserTurn/index.tsx +194 -0
  412. package/src/components/domain/chat/index.ts +22 -0
  413. package/src/components/domain/desktop/DesktopAccountMenuView/DesktopAccountMenuView.stories.tsx +116 -0
  414. package/src/components/domain/desktop/DesktopAccountMenuView/DesktopAccountMenuViewSource.test.mjs +80 -0
  415. package/src/components/domain/desktop/DesktopAccountMenuView/index.tsx +355 -0
  416. package/src/components/domain/desktop/DesktopAppearanceSettings/DesktopAppearanceSettings.stories.tsx +96 -0
  417. package/src/components/domain/desktop/DesktopAppearanceSettings/DesktopAppearanceSettingsSource.test.mjs +89 -0
  418. package/src/components/domain/desktop/DesktopAppearanceSettings/index.tsx +155 -0
  419. package/src/components/domain/desktop/DesktopAssistantConfigView/DesktopAssistantConfigView.stories.tsx +275 -0
  420. package/src/components/domain/desktop/DesktopAssistantConfigView/DesktopAssistantConfigViewSource.test.mjs +37 -0
  421. package/src/components/domain/desktop/DesktopAssistantConfigView/index.tsx +221 -0
  422. package/src/components/domain/desktop/DesktopCatalogView/DesktopCatalogView.stories.tsx +537 -0
  423. package/src/components/domain/desktop/DesktopCatalogView/DesktopCatalogViewSource.test.mjs +339 -0
  424. package/src/components/domain/desktop/DesktopCatalogView/index.tsx +1074 -0
  425. package/src/components/domain/desktop/DesktopChatBranchDivider/DesktopChatBranchDivider.stories.tsx +58 -0
  426. package/src/components/domain/desktop/DesktopChatBranchDivider/index.tsx +33 -0
  427. package/src/components/domain/desktop/DesktopChatEmptyStateView/DesktopChatEmptyStateView.stories.tsx +75 -0
  428. package/src/components/domain/desktop/DesktopChatEmptyStateView/DesktopChatEmptyStateViewSource.test.mjs +54 -0
  429. package/src/components/domain/desktop/DesktopChatEmptyStateView/index.tsx +64 -0
  430. package/src/components/domain/desktop/DesktopChatHeaderView/DesktopChatHeaderView.stories.tsx +83 -0
  431. package/src/components/domain/desktop/DesktopChatHeaderView/DesktopChatHeaderViewSource.test.mjs +126 -0
  432. package/src/components/domain/desktop/DesktopChatHeaderView/index.tsx +169 -0
  433. package/src/components/domain/desktop/DesktopChatMessageView/DesktopChatMessageView.stories.tsx +170 -0
  434. package/src/components/domain/desktop/DesktopChatMessageView/DesktopChatMessageViewSource.test.mjs +47 -0
  435. package/src/components/domain/desktop/DesktopChatMessageView/index.tsx +213 -0
  436. package/src/components/domain/desktop/DesktopChatTurnView/DesktopChatTurnView.stories.tsx +498 -0
  437. package/src/components/domain/desktop/DesktopChatTurnView/DesktopChatTurnViewSource.test.mjs +187 -0
  438. package/src/components/domain/desktop/DesktopChatTurnView/index.tsx +490 -0
  439. package/src/components/domain/desktop/DesktopComposer/DesktopComposer.stories.tsx +195 -0
  440. package/src/components/domain/desktop/DesktopComposer/DesktopComposerModelPickerSource.test.mjs +132 -0
  441. package/src/components/domain/desktop/DesktopComposer/DesktopComposerMountChipSource.test.mjs +43 -0
  442. package/src/components/domain/desktop/DesktopComposer/DesktopComposerResponsiveSource.test.mjs +44 -0
  443. package/src/components/domain/desktop/DesktopComposer/DesktopMcpFormThemeSource.test.mjs +30 -0
  444. package/src/components/domain/desktop/DesktopComposer/index.tsx +206 -0
  445. package/src/components/domain/desktop/DesktopConnectorDetailView/DesktopConnectorDetailView.stories.tsx +72 -0
  446. package/src/components/domain/desktop/DesktopConnectorDetailView/DesktopConnectorDetailViewSource.test.mjs +81 -0
  447. package/src/components/domain/desktop/DesktopConnectorDetailView/index.tsx +301 -0
  448. package/src/components/domain/desktop/DesktopHomeView/DesktopHomeView.stories.tsx +103 -0
  449. package/src/components/domain/desktop/DesktopHomeView/DesktopHomeViewSource.test.mjs +51 -0
  450. package/src/components/domain/desktop/DesktopHomeView/index.tsx +122 -0
  451. package/src/components/domain/desktop/DesktopLibraryAuthorizationDialog/DesktopLibraryAuthorizationDialog.stories.tsx +55 -0
  452. package/src/components/domain/desktop/DesktopLibraryAuthorizationDialog/index.tsx +156 -0
  453. package/src/components/domain/desktop/DesktopLibraryPageView/DesktopLibraryPageView.stories.tsx +42 -0
  454. package/src/components/domain/desktop/DesktopLibraryPageView/index.tsx +35 -0
  455. package/src/components/domain/desktop/DesktopLoginView/DesktopLoginView.css +75 -0
  456. package/src/components/domain/desktop/DesktopLoginView/DesktopLoginView.stories.tsx +230 -0
  457. package/src/components/domain/desktop/DesktopLoginView/DesktopLoginViewSource.test.mjs +149 -0
  458. package/src/components/domain/desktop/DesktopLoginView/index.tsx +418 -0
  459. package/src/components/domain/desktop/DesktopOnboardingTourView/DesktopOnboardingTourView.stories.tsx +103 -0
  460. package/src/components/domain/desktop/DesktopOnboardingTourView/DesktopOnboardingTourViewSource.test.mjs +57 -0
  461. package/src/components/domain/desktop/DesktopOnboardingTourView/index.tsx +189 -0
  462. package/src/components/domain/desktop/DesktopPet/DesktopPet.fixture.ts +243 -0
  463. package/src/components/domain/desktop/DesktopPet/DesktopPet.stories.tsx +337 -0
  464. package/src/components/domain/desktop/DesktopPet/DesktopPetSource.test.mjs +191 -0
  465. package/src/components/domain/desktop/DesktopPet/index.tsx +591 -0
  466. package/src/components/domain/desktop/DesktopPetSettings/DesktopPetSettings.stories.tsx +159 -0
  467. package/src/components/domain/desktop/DesktopPetSettings/DesktopPetSettingsSource.test.mjs +76 -0
  468. package/src/components/domain/desktop/DesktopPetSettings/index.tsx +140 -0
  469. package/src/components/domain/desktop/DesktopRunStatusView/DesktopRunStatusView.stories.tsx +166 -0
  470. package/src/components/domain/desktop/DesktopRunStatusView/DesktopRunStatusViewSource.test.mjs +51 -0
  471. package/src/components/domain/desktop/DesktopRunStatusView/index.tsx +34 -0
  472. package/src/components/domain/desktop/DesktopSelectionCard/DesktopSelectionCard.stories.tsx +122 -0
  473. package/src/components/domain/desktop/DesktopSelectionCard/DesktopSelectionCardSource.test.mjs +42 -0
  474. package/src/components/domain/desktop/DesktopSelectionCard/index.tsx +75 -0
  475. package/src/components/domain/desktop/DesktopSettingsMemorySection/DesktopSettingsMemorySection.stories.tsx +225 -0
  476. package/src/components/domain/desktop/DesktopSettingsMemorySection/DesktopSettingsMemorySectionSource.test.mjs +105 -0
  477. package/src/components/domain/desktop/DesktopSettingsMemorySection/index.tsx +340 -0
  478. package/src/components/domain/desktop/DesktopSettingsView/DesktopSettingsView.stories.tsx +177 -0
  479. package/src/components/domain/desktop/DesktopSettingsView/DesktopSettingsViewSource.test.mjs +195 -0
  480. package/src/components/domain/desktop/DesktopSettingsView/index.tsx +176 -0
  481. package/src/components/domain/desktop/DesktopShareSelectionBarView/DesktopShareSelectionBarView.stories.tsx +77 -0
  482. package/src/components/domain/desktop/DesktopShareSelectionBarView/DesktopShareSelectionBarViewSource.test.mjs +76 -0
  483. package/src/components/domain/desktop/DesktopShareSelectionBarView/index.tsx +55 -0
  484. package/src/components/domain/desktop/DesktopSidebarView/DesktopSidebarView.stories.tsx +454 -0
  485. package/src/components/domain/desktop/DesktopSidebarView/DesktopSidebarViewSource.test.mjs +386 -0
  486. package/src/components/domain/desktop/DesktopSidebarView/index.tsx +1072 -0
  487. package/src/components/domain/desktop/DesktopSiteReleasesView/DesktopSiteReleasesView.stories.tsx +369 -0
  488. package/src/components/domain/desktop/DesktopSiteReleasesView/DesktopSiteReleasesViewSource.test.mjs +123 -0
  489. package/src/components/domain/desktop/DesktopSiteReleasesView/index.tsx +392 -0
  490. package/src/components/domain/desktop/DesktopSitesListView/DesktopSitesListView.stories.tsx +244 -0
  491. package/src/components/domain/desktop/DesktopSitesListView/DesktopSitesListViewSource.test.mjs +198 -0
  492. package/src/components/domain/desktop/DesktopSitesListView/index.tsx +417 -0
  493. package/src/components/domain/desktop/DesktopSkillsPageView/DesktopSkillsPageView.stories.tsx +230 -0
  494. package/src/components/domain/desktop/DesktopSkillsPageView/DesktopSkillsPageViewSource.test.mjs +149 -0
  495. package/src/components/domain/desktop/DesktopSkillsPageView/index.tsx +235 -0
  496. package/src/components/domain/desktop/DesktopTaskDetailView/index.tsx +111 -0
  497. package/src/components/domain/desktop/DesktopToolCallView/DesktopToolCallListViewSource.test.mjs +302 -0
  498. package/src/components/domain/desktop/DesktopToolCallView/DesktopToolCallView.stories.tsx +409 -0
  499. package/src/components/domain/desktop/DesktopToolCallView/index.tsx +388 -0
  500. package/src/components/domain/desktop/DesktopWorkbenchShell/DesktopWorkbenchShell.stories.tsx +418 -0
  501. package/src/components/domain/desktop/DesktopWorkbenchShell/DesktopWorkbenchShellSource.test.mjs +151 -0
  502. package/src/components/domain/desktop/DesktopWorkbenchShell/index.tsx +167 -0
  503. package/src/components/domain/desktop/DesktopWorkspacePageView/DesktopWorkspacePageView.stories.tsx +135 -0
  504. package/src/components/domain/desktop/DesktopWorkspacePageView/DesktopWorkspacePageViewSource.test.mjs +57 -0
  505. package/src/components/domain/desktop/DesktopWorkspacePageView/index.tsx +114 -0
  506. package/src/components/domain/desktop/DesktopWorkspaceView/DesktopWorkspaceView.stories.tsx +227 -0
  507. package/src/components/domain/desktop/DesktopWorkspaceView/DesktopWorkspaceViewSource.test.mjs +175 -0
  508. package/src/components/domain/desktop/DesktopWorkspaceView/index.tsx +580 -0
  509. package/src/components/domain/desktop/ResourceManagement/ResourceManagement.stories.tsx +19 -0
  510. package/src/components/domain/desktop/ResourceManagement/ResourceManagementSource.test.mjs +54 -0
  511. package/src/components/domain/desktop/ResourceManagement/SharesList.tsx +323 -0
  512. package/src/components/domain/desktop/ResourceManagement/SnapshotViews.tsx +92 -0
  513. package/src/components/domain/desktop/ResourceManagement/SnapshotViewsSource.test.mjs +15 -0
  514. package/src/components/domain/desktop/ResourceManagement/index.tsx +246 -0
  515. package/src/components/domain/desktop/ShareSettingsDialogView/index.tsx +234 -0
  516. package/src/components/domain/desktop/SidePanelEmpty/SidePanelEmpty.stories.tsx +100 -0
  517. package/src/components/domain/desktop/SidePanelEmpty/SidePanelEmptySource.test.mjs +67 -0
  518. package/src/components/domain/desktop/SidePanelEmpty/index.tsx +113 -0
  519. package/src/components/domain/desktop/StarterCapsules/StarterCapsules.stories.tsx +65 -0
  520. package/src/components/domain/desktop/StarterCapsules/StarterCapsulesSource.test.mjs +43 -0
  521. package/src/components/domain/desktop/StarterCapsules/index.tsx +90 -0
  522. package/src/components/domain/desktop/WorkbenchSidePanel/WorkbenchSidePanel.stories.tsx +59 -0
  523. package/src/components/domain/desktop/WorkbenchSidePanel/WorkbenchSidePanelSource.test.mjs +51 -0
  524. package/src/components/domain/desktop/WorkbenchSidePanel/index.tsx +74 -0
  525. package/src/components/domain/desktop/WorkspaceMigrateConfirm/WorkspaceMigrateConfirm.stories.tsx +79 -0
  526. package/src/components/domain/desktop/WorkspaceMigrateConfirm/WorkspaceMigrateConfirmSource.test.mjs +34 -0
  527. package/src/components/domain/desktop/WorkspaceMigrateConfirm/index.tsx +92 -0
  528. package/src/components/domain/desktop/index.ts +64 -0
  529. package/src/components/domain/files/FileBrowser/FileBrowser.stories.tsx +397 -0
  530. package/src/components/domain/files/FileBrowser/FileBrowserSource.test.mjs +75 -0
  531. package/src/components/domain/files/FileBrowser/index.tsx +221 -0
  532. package/src/components/domain/files/FileIcon/FileIcon.stories.tsx +207 -0
  533. package/src/components/domain/files/FileIcon/FileIconSource.test.mjs +39 -0
  534. package/src/components/domain/files/FileIcon/index.tsx +133 -0
  535. package/src/components/domain/files/FilePreviewContentView/FilePreviewContentView.stories.tsx +242 -0
  536. package/src/components/domain/files/FilePreviewContentView/FilePreviewContentViewSource.test.mjs +44 -0
  537. package/src/components/domain/files/FilePreviewContentView/index.tsx +125 -0
  538. package/src/components/domain/files/FileTree/FileTree.stories.tsx +204 -0
  539. package/src/components/domain/files/FileTree/FileTreeSource.test.mjs +18 -0
  540. package/src/components/domain/files/FileTree/index.tsx +106 -0
  541. package/src/components/domain/files/PreviewDialog/PreviewDialog.stories.tsx +178 -0
  542. package/src/components/domain/files/PreviewDialog/PreviewDialogSource.test.mjs +92 -0
  543. package/src/components/domain/files/PreviewDialog/index.tsx +294 -0
  544. package/src/components/domain/files/index.ts +5 -0
  545. package/src/components/domain/index.ts +8 -0
  546. package/src/components/domain/office/CsvPreview/CsvPreview.stories.tsx +264 -0
  547. package/src/components/domain/office/CsvPreview/CsvPreviewSource.test.mjs +77 -0
  548. package/src/components/domain/office/CsvPreview/index.tsx +224 -0
  549. package/src/components/domain/office/OfficePreview/OfficePreview.stories.tsx +265 -0
  550. package/src/components/domain/office/OfficePreview/OfficePreviewDialog.stories.tsx +71 -0
  551. package/src/components/domain/office/OfficePreview/OfficePreviewDialog.tsx +43 -0
  552. package/src/components/domain/office/OfficePreview/OfficePreviewSource.test.mjs +126 -0
  553. package/src/components/domain/office/OfficePreview/index.tsx +782 -0
  554. package/src/components/domain/office/PdfPreview/PdfPreview.stories.tsx +280 -0
  555. package/src/components/domain/office/PdfPreview/PdfPreviewDialog.stories.tsx +61 -0
  556. package/src/components/domain/office/PdfPreview/PdfPreviewDialog.tsx +61 -0
  557. package/src/components/domain/office/PdfPreview/PdfPreviewSource.test.mjs +70 -0
  558. package/src/components/domain/office/PdfPreview/index.tsx +217 -0
  559. package/src/components/domain/office/index.ts +5 -0
  560. package/src/components/domain/skills/McpServerListView/McpServerListView.stories.tsx +510 -0
  561. package/src/components/domain/skills/McpServerListView/McpServerListViewSource.test.mjs +101 -0
  562. package/src/components/domain/skills/McpServerListView/index.tsx +250 -0
  563. package/src/components/domain/skills/SkillAvatarView/SkillAvatarView.stories.tsx +121 -0
  564. package/src/components/domain/skills/SkillAvatarView/SkillAvatarViewSource.test.mjs +67 -0
  565. package/src/components/domain/skills/SkillAvatarView/index.tsx +112 -0
  566. package/src/components/domain/skills/SkillCardView/SkillCardView.stories.tsx +374 -0
  567. package/src/components/domain/skills/SkillCardView/SkillCardViewSource.test.mjs +35 -0
  568. package/src/components/domain/skills/SkillCardView/index.tsx +88 -0
  569. package/src/components/domain/skills/SkillDetailPanelView/SkillDetailPanelView.stories.tsx +113 -0
  570. package/src/components/domain/skills/SkillDetailPanelView/index.tsx +115 -0
  571. package/src/components/domain/skills/SkillDetailView/SkillDetailView.stories.tsx +274 -0
  572. package/src/components/domain/skills/SkillDetailView/index.tsx +121 -0
  573. package/src/components/domain/skills/SkillImportDialogView/SkillImportDialogView.stories.tsx +128 -0
  574. package/src/components/domain/skills/SkillImportDialogView/SkillImportDialogViewSource.test.mjs +11 -0
  575. package/src/components/domain/skills/SkillImportDialogView/index.tsx +147 -0
  576. package/src/components/domain/skills/ToolDetailModalView/ToolDetailModalView.stories.tsx +160 -0
  577. package/src/components/domain/skills/ToolDetailModalView/ToolDetailModalViewSource.test.mjs +99 -0
  578. package/src/components/domain/skills/ToolDetailModalView/index.tsx +160 -0
  579. package/src/components/domain/skills/index.ts +7 -0
  580. package/src/components/domain/tasks/ScheduledTaskCardView/ScheduledTaskCardView.stories.tsx +120 -0
  581. package/src/components/domain/tasks/ScheduledTaskCardView/ScheduledTaskCardViewSource.test.mjs +40 -0
  582. package/src/components/domain/tasks/ScheduledTaskCardView/index.tsx +135 -0
  583. package/src/components/domain/tasks/ScheduledTaskDeleteDialog/ScheduledTaskDeleteDialog.stories.tsx +56 -0
  584. package/src/components/domain/tasks/ScheduledTaskDeleteDialog/ScheduledTaskDeleteDialogSource.test.mjs +35 -0
  585. package/src/components/domain/tasks/ScheduledTaskDeleteDialog/index.tsx +73 -0
  586. package/src/components/domain/tasks/ScheduledTaskDetailView/ScheduledTaskDetailView.stories.tsx +121 -0
  587. package/src/components/domain/tasks/ScheduledTaskDetailView/ScheduledTaskDetailViewSource.test.mjs +115 -0
  588. package/src/components/domain/tasks/ScheduledTaskDetailView/index.tsx +223 -0
  589. package/src/components/domain/tasks/ScheduledTasksSpaceView/ScheduledTasksSpaceView.stories.tsx +526 -0
  590. package/src/components/domain/tasks/ScheduledTasksSpaceView/ScheduledTasksSpaceViewSource.test.mjs +85 -0
  591. package/src/components/domain/tasks/ScheduledTasksSpaceView/index.tsx +118 -0
  592. package/src/components/domain/tasks/index.ts +4 -0
  593. package/src/components/domain/theme/SkinManager.stories.tsx +43 -0
  594. package/src/components/domain/theme/SkinManagerUI.tsx +382 -0
  595. package/src/components/domain/theme/ThemeDemo.stories.tsx +12 -0
  596. package/src/components/domain/theme/ThemeDemo.tsx +224 -0
  597. package/src/components/index.ts +11 -0
  598. package/src/components/primitives/Avatar/Avatar.stories.tsx +170 -0
  599. package/src/components/primitives/Avatar/AvatarSource.test.mjs +37 -0
  600. package/src/components/primitives/Avatar/index.tsx +180 -0
  601. package/src/components/primitives/BackTop/BackTop.stories.tsx +122 -0
  602. package/src/components/primitives/BackTop/BackTopSource.test.mjs +61 -0
  603. package/src/components/primitives/BackTop/index.tsx +93 -0
  604. package/src/components/primitives/Badge/Badge.stories.tsx +376 -0
  605. package/src/components/primitives/Badge/BadgeSource.test.mjs +27 -0
  606. package/src/components/primitives/Badge/index.tsx +65 -0
  607. package/src/components/primitives/Button/Button.stories.tsx +287 -0
  608. package/src/components/primitives/Button/ButtonSource.test.mjs +84 -0
  609. package/src/components/primitives/Button/index.tsx +216 -0
  610. package/src/components/primitives/Card/Card.stories.tsx +186 -0
  611. package/src/components/primitives/Card/CardSource.test.mjs +73 -0
  612. package/src/components/primitives/Card/index.tsx +137 -0
  613. package/src/components/primitives/Checkbox/Checkbox.stories.tsx +79 -0
  614. package/src/components/primitives/Checkbox/CheckboxSource.test.mjs +43 -0
  615. package/src/components/primitives/Checkbox/index.tsx +87 -0
  616. package/src/components/primitives/Chip/Chip.stories.tsx +149 -0
  617. package/src/components/primitives/Chip/ChipSource.test.mjs +73 -0
  618. package/src/components/primitives/Chip/index.tsx +252 -0
  619. package/src/components/primitives/Divider/Divider.stories.tsx +68 -0
  620. package/src/components/primitives/Divider/DividerSource.test.mjs +26 -0
  621. package/src/components/primitives/Divider/index.tsx +65 -0
  622. package/src/components/primitives/Dropdown/Dropdown.stories.tsx +38 -0
  623. package/src/components/primitives/Dropdown/DropdownSource.test.mjs +23 -0
  624. package/src/components/primitives/Dropdown/index.tsx +29 -0
  625. package/src/components/primitives/EmptyState/EmptyState.stories.tsx +159 -0
  626. package/src/components/primitives/EmptyState/EmptyStateSource.test.mjs +169 -0
  627. package/src/components/primitives/EmptyState/index.tsx +185 -0
  628. package/src/components/primitives/ErrorCard/ErrorCard.stories.tsx +50 -0
  629. package/src/components/primitives/ErrorCard/index.tsx +78 -0
  630. package/src/components/primitives/Field/Field.stories.tsx +208 -0
  631. package/src/components/primitives/Field/FieldSource.test.mjs +70 -0
  632. package/src/components/primitives/Field/index.tsx +297 -0
  633. package/src/components/primitives/InlineMessage/InlineMessage.stories.tsx +137 -0
  634. package/src/components/primitives/InlineMessage/InlineMessageSource.test.mjs +50 -0
  635. package/src/components/primitives/InlineMessage/index.tsx +141 -0
  636. package/src/components/primitives/Input/Input.stories.tsx +30 -0
  637. package/src/components/primitives/Input/index.tsx +12 -0
  638. package/src/components/primitives/Keycap/Keycap.stories.tsx +93 -0
  639. package/src/components/primitives/Keycap/KeycapSource.test.mjs +30 -0
  640. package/src/components/primitives/Keycap/index.tsx +67 -0
  641. package/src/components/primitives/Menu/Menu.stories.tsx +416 -0
  642. package/src/components/primitives/Menu/MenuEmptySource.test.mjs +23 -0
  643. package/src/components/primitives/Menu/MenuSource.test.mjs +207 -0
  644. package/src/components/primitives/Menu/index.tsx +922 -0
  645. package/src/components/primitives/Pagination/Pagination.stories.tsx +77 -0
  646. package/src/components/primitives/Pagination/PaginationSource.test.mjs +24 -0
  647. package/src/components/primitives/Pagination/index.tsx +85 -0
  648. package/src/components/primitives/Pagination/pagination.ts +25 -0
  649. package/src/components/primitives/Pagination/paginationModel.test.mjs +18 -0
  650. package/src/components/primitives/ProgressBar/ProgressBar.stories.tsx +103 -0
  651. package/src/components/primitives/ProgressBar/ProgressBarSource.test.mjs +44 -0
  652. package/src/components/primitives/ProgressBar/index.tsx +68 -0
  653. package/src/components/primitives/Radio/Radio.stories.tsx +84 -0
  654. package/src/components/primitives/Radio/RadioSource.test.mjs +38 -0
  655. package/src/components/primitives/Radio/index.tsx +161 -0
  656. package/src/components/primitives/SegmentedControl/SegmentedControl.stories.tsx +110 -0
  657. package/src/components/primitives/SegmentedControl/SegmentedControlSource.test.mjs +75 -0
  658. package/src/components/primitives/SegmentedControl/index.tsx +188 -0
  659. package/src/components/primitives/Select/Select.stories.tsx +158 -0
  660. package/src/components/primitives/Select/SelectSource.test.mjs +94 -0
  661. package/src/components/primitives/Select/index.tsx +364 -0
  662. package/src/components/primitives/Spinner/index.tsx +58 -0
  663. package/src/components/primitives/Switch/Switch.stories.tsx +64 -0
  664. package/src/components/primitives/Switch/SwitchSource.test.mjs +38 -0
  665. package/src/components/primitives/Switch/index.tsx +84 -0
  666. package/src/components/primitives/Tabs/Tabs.stories.tsx +230 -0
  667. package/src/components/primitives/Tabs/TabsSource.test.mjs +91 -0
  668. package/src/components/primitives/Tabs/index.tsx +183 -0
  669. package/src/components/primitives/index.ts +24 -0
  670. package/src/examples/ResourceManagementExample.tsx +119 -0
  671. package/src/examples/SiteWorkbenchExample.tsx +96 -0
  672. package/src/hooks/index.ts +7 -0
  673. package/src/hooks/useClickOutside.ts +20 -0
  674. package/src/hooks/useDragReorder.ts +29 -0
  675. package/src/hooks/useImeAwareEnter.ts +59 -0
  676. package/src/hooks/useImeAwareEnterSource.test.mjs +65 -0
  677. package/src/hooks/useKeyboard.ts +16 -0
  678. package/src/hooks/usePopover.ts +67 -0
  679. package/src/hooks/useSelectedOptionLocator.ts +33 -0
  680. package/src/hooks/useSidebarResize.ts +107 -0
  681. package/src/hooks/useTenantTheme.ts +53 -0
  682. package/src/hooks/useUnifiedTheme.ts +85 -0
  683. package/src/index.ts +6 -0
  684. package/src/lib/InjectedStyleTokenMirrorSource.test.mjs +67 -0
  685. package/src/lib/about-window.test.mjs +46 -0
  686. package/src/lib/about-window.ts +218 -0
  687. package/src/lib/appearance.test.mjs +283 -0
  688. package/src/lib/appearance.ts +46 -0
  689. package/src/lib/browser-annotation-popup.ts +151 -0
  690. package/src/lib/focusTrap.ts +51 -0
  691. package/src/lib/index.ts +5 -0
  692. package/src/lib/shortcut.test.mjs +100 -0
  693. package/src/lib/shortcut.ts +97 -0
  694. package/src/lib/twMergeOw.ts +18 -0
  695. package/src/lib/utils.ts +6 -0
  696. package/src/screens/Browser.stories.tsx +353 -0
  697. package/src/screens/Chat.stories.tsx +808 -0
  698. package/src/screens/Home.stories.tsx +253 -0
  699. package/src/screens/Login.stories.tsx +134 -0
  700. package/src/screens/McpManager.stories.tsx +159 -0
  701. package/src/screens/Onboarding.stories.tsx +155 -0
  702. package/src/screens/ScheduledTasks.stories.tsx +134 -0
  703. package/src/screens/ScreenFrameSource.test.mjs +77 -0
  704. package/src/screens/SettingsAppearance.stories.tsx +117 -0
  705. package/src/screens/SettingsMemory.stories.tsx +128 -0
  706. package/src/screens/SettingsModels.stories.tsx +228 -0
  707. package/src/screens/SettingsSections.stories.tsx +164 -0
  708. package/src/screens/Share.stories.tsx +202 -0
  709. package/src/screens/SharePage.stories.tsx +29 -0
  710. package/src/screens/Sites.stories.tsx +183 -0
  711. package/src/screens/Skills.stories.tsx +83 -0
  712. package/src/screens/Workspace.stories.tsx +191 -0
  713. package/src/screens/_home.tsx +46 -0
  714. package/src/screens/_screen.tsx +355 -0
  715. package/src/screens/_settingsNav.ts +27 -0
  716. package/src/screens/_skillsCatalog.tsx +372 -0
  717. package/src/theme/SkinDenylistSyncSource.test.mjs +124 -0
  718. package/src/theme/__tests__/skins.test.mjs +84 -0
  719. package/src/theme/core/semanticAdapter.ts +116 -0
  720. package/src/theme/core/skin.ts +605 -0
  721. package/src/theme/core/skinScoped.ts +289 -0
  722. package/src/theme/core/tenantTheme.test.mjs +127 -0
  723. package/src/theme/core/tenantTheme.ts +124 -0
  724. package/src/theme/core/types.ts +60 -0
  725. package/src/theme/core/unifiedTheme.ts +157 -0
  726. package/src/theme/index.ts +33 -0
  727. package/src/theme/providers/BrandingProvider.tsx +57 -0
  728. package/src/theme/providers/ThemeProvider.tsx +221 -0
  729. package/src/theme/skinDs2PropertyGate.test.mjs +109 -0
  730. package/src/theme/skins/index.ts +107 -0
  731. package/src/theme/utils/cssSafety.ts +92 -0
  732. package/src/theme/utils/skinManager.ts +159 -0
  733. package/src/theme/utils/themeApplier.ts +75 -0
  734. package/src/tokens/DesktopSurfacesSweep15Source.test.mjs +77 -0
  735. package/src/tokens/SharedStyleSheetsSource.test.mjs +90 -0
  736. package/src/tokens/TailwindThemeSupplySource.test.mjs +129 -0
  737. package/src/tokens/base.ts +199 -0
  738. package/src/tokens/dark.ts +288 -0
  739. package/src/tokens/index.ts +4 -0
  740. package/src/tokens/light.ts +320 -0
  741. package/src/tokens/tailwind.ts +216 -0
  742. package/src/types/desktop-pet.ts +100 -0
  743. package/src/types/file-browser.ts +51 -0
  744. package/src/types/file-tree.ts +34 -0
  745. package/src/types/index.ts +3 -0
  746. package/src/types/xspreadsheet.d.ts +4 -0
  747. package/src/utils/cn.ts +6 -0
  748. package/src/utils/glyphColor.ts +32 -0
  749. package/src/utils/index.ts +4 -0
  750. package/src/utils/localPathInline.test.mjs +45 -0
  751. package/src/utils/localPathInline.ts +49 -0
  752. package/src/utils/markdownFileRefs.test.mjs +88 -0
  753. package/src/utils/markdownFileRefs.ts +140 -0
  754. package/src/utils/office-excel.ts +452 -0
  755. package/src/utils/shiki.ts +156 -0
package/README.md ADDED
@@ -0,0 +1,110 @@
1
+ # Orbitwork UI
2
+
3
+ Orbitwork Design System 组件库,为 Orbitwork Agent OS 提供丰富的组件、Design Tokens、浅色/深色主题。
4
+
5
+ ## npm 使用
6
+
7
+ ```bash
8
+ npm i @orbit-work/ui
9
+ ```
10
+
11
+ 在 React 应用入口引入样式,并从包根路径导入组件:
12
+
13
+ ```tsx
14
+ import '@orbit-work/ui/styles/orbitwork.css'
15
+ import { Button, ThemeProvider } from '@orbit-work/ui'
16
+
17
+ export default function App() {
18
+ return (
19
+ <ThemeProvider defaultTheme="system">
20
+ <Button variant="primary">Hello Orbitwork UI</Button>
21
+ </ThemeProvider>
22
+ )
23
+ }
24
+ ```
25
+
26
+ 项目需要提供 React 18 或更高版本以及 React DOM 18 或更高版本。
27
+
28
+ ## 目录结构
29
+
30
+ ```text
31
+ packages/ui/
32
+ ├── src/
33
+ │ ├── components/ # React 组件(primitives / composite / domain / Layout)
34
+ │ ├── hooks/ # 通用 Hooks
35
+ │ ├── theme/ # 主题、皮肤(skins)与 ThemeProvider
36
+ │ ├── tokens/ # Design Tokens 定义
37
+ │ ├── lib/ # 独立入口(appearance / about-window / browser-annotation-popup)
38
+ │ └── utils/ # 工具函数
39
+ ├── styles/ # 全局样式与组件样式源文件
40
+ ├── scripts/ # 构建与代码生成脚本
41
+ └── .storybook/ # Storybook 文档站配置
42
+ ```
43
+
44
+ ## 研发与测试规范
45
+
46
+ 开发或修改组件前,Coding Agent 应先阅读以下规范文档:
47
+
48
+ - **研发规范**:仓库根 [`AGENTS.md`](../../AGENTS.md) — 硬性规则、Token 约束、Story 强制、工程纪律
49
+ - **组件开发工作流**:[`.agents/skills/ui-development/`](../../.agents/skills/ui-development/SKILL.md) — 新组件的创建流程与目录约定
50
+ - **测试规范**:[`AGENTS.md`](../../AGENTS.md) 的「测试分层」章节 + [`.agents/skills/ui-quality/`](../../.agents/skills/ui-quality/) — 单元测试与 Storybook 视觉测试标准
51
+
52
+ ## 本地开发
53
+
54
+ 在 `packages/ui/` 目录下执行:
55
+
56
+ ```bash
57
+ pnpm install
58
+ pnpm storybook # 启动文档站(会先生成 tokens)
59
+ pnpm build # 构建组件库(ESM/CJS + 样式产物)
60
+ pnpm typecheck # TypeScript 类型检查
61
+ pnpm test # 运行单元测试
62
+ ```
63
+
64
+ ## DS 2.0 守卫(`pnpm check:ds2`)
65
+
66
+ `scripts/check-ds2.mjs` 扫 `src/components/**` 与 `styles/*.css`(`tokens*.css` 是生成物,跳过;
67
+ `*.test.mjs` 也跳过——源码守卫测试的正文本来就是「被禁写法的正则字面量」),把 DS 2.0 契约里
68
+ **改一次就会全库漂**的那几条钉成 HARD 规则(`exit 1`);另有 WARN 级只打印不拦。
69
+ 规则体在 `scripts/ds2-rules.mjs`(纯函数,可单测),测试在 `scripts/check-ds2.test.mjs`
70
+ (`pnpm test:ds2`,也含在 `pnpm test` 里)。
71
+
72
+ | 规则 | 抓什么 | 正解 |
73
+ | --- | --- | --- |
74
+ | `yellow` | 荧黄/信标极色写死 | 经语义 token 或品牌锁定件取色 |
75
+ | `paper` / `stage` / `term` | 恒定域 token 越出各自语境 | 只在文档纸面 / login·share·splash / 终端语境用 |
76
+ | `primary` | 共享 CSS 里裸引 `--ow-primary` 族 | 见下 `primary-nonpole` |
77
+ | `v1-naming` | V1 token 与类名回流 | DS2 语义 token |
78
+ | `disabled` | 统一透明度禁用态 | 逐 token 禁用色 |
79
+ | `hover-move` | hover 位移/缩放 | hover 只换色 |
80
+ | `shimmer` | 流光扫过动效 | 呼吸(opacity)或静止 |
81
+ | `drift` | `styles/tokens.css` 与设计侧规格 `tokens/ds2-spec.json` 逐值比对 | 改设计仓库后 `--update-spec` 重抽 |
82
+
83
+ W5 防回流批(新增):
84
+
85
+ | 规则 | 抓什么 | 正解 |
86
+ | --- | --- | --- |
87
+ | `radius-literal` | `border-radius: Npx` / `rounded-[Npx]`,N ∉ {0,4,6,8,10,12,16,999,9999};组件层的裸 Tailwind 圆角刻度类(`rounded-md/lg/2xl…`,含侧向变体) | `[border-radius:var(--ow-radius-*)]` 或 ow 圆角类。`rounded-none` / `rounded-full` 不禁;`calc()/min()/max()/clamp()` 里的 px 不计 |
88
+ | `grounded-shadow` | 在贴地面上消费 `var(--ow-shadow-1\|-2)` / `shadow-ow-shadow-1\|2` | §5 平面贴地零影:分层用 `1px var(--ow-border)`。投影只属 popover/menu/modal/dialog/toast/tooltip/pet/floating 等真悬浮层,且要逐条进 allowlist |
89
+ | `bare-transition` | `transition-all/-colors/-opacity/-shadow/-transform/-[…]` 未配 `duration-[var(--ow-dur-*)]`;CSS/内联/`duration-…` 里的字面时长 ∉ {120,200,320}ms | `--ow-dur-1/2/3` + `--ow-ease(-beacon)`。reduced-motion 兜底(0.01ms)、skeleton/呼吸(1.6s)、自转、第三方皮肤在 allowlist |
90
+ | `primary-nonpole` | 组件层的 `var(--ow-primary…)`、全库的 `(bg\|text\|border)-ow-primary*` 类 | §4 行动极唯一:焦点→`--ow-focus-ring`、选中→`--ow-current-bg`/`--ow-control-on`、链接→`--ow-link`、hover→`--ow-hover`、tint→`--ow-info-tint` 族、实底字→`--ow-on-fill`、真主按钮→`--ow-btn-primary-*` |
91
+ | `control-height` | `h-9` / `h-11` / `h-[NNpx]` / `min-h-[NNpx]` 与 `height\|min-height: NNpx`,NN ∈ {22,24,26,30,34,35,36,38,44,46,48} | §7 控件高只有 {28,32,40}:`--ow-h-sm/md/lg`、行高 `--ow-row-h(-dense)`;48 只属标题带,写成 `var(--ow-titlebar-h)`。`max-height`/`line-height` 与算式里的 px 不计 |
92
+ | `unlayered-global` | `styles/*.css` 里 `@layer` 之外、选择器是 `*` 或裸元素名的规则 | 收进 `@layer base { }`。Tailwind v4 里未分层声明永远压过 `@layer utilities`,这种规则会静默压死整库工具类 |
93
+
94
+ ### allowlist
95
+
96
+ `scripts/ds2-allowlist.json`:规则名 → 条目数组,每条都要在 `$reasons` 里写理由
97
+ (测试会验「有条目必有 `$reasons`」)。条目两种写法:
98
+
99
+ ```jsonc
100
+ "src/components/composite/Splash/**", // 整路径豁免
101
+ "styles/desktop-surfaces.css::.scroll-fab" // 只豁免该文件里 scope 含 needle 的命中
102
+ ```
103
+
104
+ `needle` 按子串、大小写不敏感地匹配命中的 **scope**:CSS 命中的 scope 是
105
+ `选择器 { 声明原文 }`,源码命中的 scope 是出事那行。选择器级豁免是新规的必需品——
106
+ `desktop-surfaces.css` 是六千行共享表,整文件豁免等于把规则关掉。
107
+
108
+ 写 `$reasons` 的要求是**说清它凭什么是例外**,不是「历史如此」:`control-height` 要写
109
+ 它为什么不是控件(图标位/头像位/内容缩略盒/只读标签/文本块下限),`grounded-shadow`
110
+ 要写它凭什么算悬浮层,`primary-nonpole` 要写它凭什么占行动极。
@@ -0,0 +1 @@
1
+ 'use strict';var chunk5VLBKOG7_cjs=require('./chunk-5VLBKOG7.cjs');Object.defineProperty(exports,"renderAboutWindowHtml",{enumerable:true,get:function(){return chunk5VLBKOG7_cjs.a}});
@@ -0,0 +1,12 @@
1
+ interface AboutWindowContent {
2
+ version: string;
3
+ notes: string;
4
+ logoSvg: string;
5
+ }
6
+ /**
7
+ * Renders the shared, self-contained content for Orbitwork's native About window.
8
+ * Electron owns the window lifecycle; ow-ui owns its visual structure and CSS.
9
+ */
10
+ declare function renderAboutWindowHtml({ version, notes, logoSvg }: AboutWindowContent): string;
11
+
12
+ export { type AboutWindowContent, renderAboutWindowHtml };
@@ -0,0 +1,12 @@
1
+ interface AboutWindowContent {
2
+ version: string;
3
+ notes: string;
4
+ logoSvg: string;
5
+ }
6
+ /**
7
+ * Renders the shared, self-contained content for Orbitwork's native About window.
8
+ * Electron owns the window lifecycle; ow-ui owns its visual structure and CSS.
9
+ */
10
+ declare function renderAboutWindowHtml({ version, notes, logoSvg }: AboutWindowContent): string;
11
+
12
+ export { type AboutWindowContent, renderAboutWindowHtml };
@@ -0,0 +1 @@
1
+ export{a as renderAboutWindowHtml}from'./chunk-VG7FQQ7K.js';
@@ -0,0 +1,210 @@
1
+ /**
2
+ * Orbitwork skin protocol — aligned with Design project architecture.
3
+ * A skin is a validated JSON document that overrides --ow-* CSS variables
4
+ * at runtime. This module is framework-agnostic.
5
+ */
6
+ type Theme = "light" | "dark" | "system";
7
+ type ResolvedTheme = "light" | "dark";
8
+ /**
9
+ * DS2 皮肤白名单(COMPONENT-RULES §15 · 2026-08-31 裁决):
10
+ * - 可覆盖:中性表面/边框/文字梯度、chat/composer/sidebar 背景类、
11
+ * btn-primary 族(唯一开放的租户品牌色位)。
12
+ * - 已移除(禁覆盖):primary 族(--ow-primary 暗档=荧黄行动极)、link、
13
+ * switchActive(--ow-control-on 无彩选中)、功能色四族、cardRadius/buttonRadius
14
+ * (圆角是品牌定稿)。
15
+ */
16
+ type OrbitworkSkinTokens = {
17
+ backgroundPrimary?: string;
18
+ backgroundSecondary?: string;
19
+ backgroundTertiary?: string;
20
+ backgroundPanel?: string;
21
+ foregroundPrimary?: string;
22
+ foregroundSecondary?: string;
23
+ foregroundMuted?: string;
24
+ foregroundHint?: string;
25
+ borderSubtle?: string;
26
+ borderDefault?: string;
27
+ borderStrong?: string;
28
+ buttonPrimaryBackground?: string;
29
+ buttonPrimaryForeground?: string;
30
+ chatBackground?: string;
31
+ chatBackgroundImage?: string;
32
+ chatBackgroundOverlay?: string;
33
+ chatBackgroundMaskColor?: string;
34
+ chatBackgroundPosition?: "center" | "top" | "bottom" | "left" | "right" | "top left" | "top right" | "bottom left" | "bottom right";
35
+ chatBackgroundSize?: "cover" | "contain" | "auto";
36
+ userBubbleBackground?: string;
37
+ userBubbleForeground?: string;
38
+ userBubbleBorder?: string;
39
+ composerBackground?: string;
40
+ composerBorder?: string;
41
+ sidebarBackground?: string;
42
+ sidebarSelectedBackground?: string;
43
+ };
44
+ /** L2/L3 逃生通道登记项:每条高级样式须登记目标与用途(§15,长期目标清零)。 */
45
+ type OrbitworkSkinRegistryEntry = {
46
+ target: string;
47
+ reason: string;
48
+ };
49
+ type OrbitworkSkin = {
50
+ version: 1;
51
+ id: string;
52
+ name: string;
53
+ description?: string;
54
+ /**
55
+ * @deprecated DS2 §15:圆角是品牌定稿,皮肤不再开放 cardRadius/buttonRadius。
56
+ * 字段仅为旧代码类型兼容保留(空对象),解析路径一律拒绝 common。
57
+ */
58
+ common?: Record<string, never>;
59
+ modes: {
60
+ light?: OrbitworkSkinTokens;
61
+ dark?: OrbitworkSkinTokens;
62
+ };
63
+ contributes?: {
64
+ /** L2: 语义选择器样式(精准定制组件部件) */
65
+ semanticStyles?: string;
66
+ /** L3: 自由补丁(高级用户,需谨慎使用) */
67
+ patches?: string;
68
+ /** L2/L3 登记表:存在 semanticStyles/patches 时必须逐条登记(validate-skin 强制) */
69
+ registry?: OrbitworkSkinRegistryEntry[];
70
+ };
71
+ };
72
+ type SkinValidationResult = {
73
+ ok: true;
74
+ skin: OrbitworkSkin;
75
+ } | {
76
+ ok: false;
77
+ error: string;
78
+ };
79
+ declare const HEX_COLOR: RegExp;
80
+ declare const MAX_ORBITWORK_SKIN_IMAGE_BYTES: number;
81
+ type OrbitworkSkinChatBackgroundMask = {
82
+ color: string;
83
+ strength: number;
84
+ startOpacity: number;
85
+ endOpacity: number;
86
+ };
87
+ /** Six-digit colors retain the original 80% → 50% mask; explicit alpha controls final strength. */
88
+ declare function resolveOrbitworkSkinChatBackgroundMask(value: string): OrbitworkSkinChatBackgroundMask;
89
+ declare function orbitworkSkinChatBackgroundMaskColor(color: string, strength: number): string;
90
+ declare const ORBITWORK_SKIN_CSS_VARIABLES: Readonly<Record<keyof OrbitworkSkinTokens, string>>;
91
+ /**
92
+ * DS2 皮肤禁覆盖清单(COMPONENT-RULES §15 · 2026-08-31 裁决)。
93
+ * 条目以 `*` 结尾表示前缀匹配;其余为精确名(含其 `-` 后缀派生,如
94
+ * `--ow-control-on` 同时覆盖 `--ow-control-on-glyph`)。
95
+ *
96
+ * ⚠️ 同步义务:.claude/skills/ui-theme-skin/scripts/check-skin-ds2.mjs 持有
97
+ * 本清单的副本,两处必须同步修改。
98
+ */
99
+ declare const DS2_SKIN_DENYLIST: readonly ["--ow-beacon", "--ow-beacon-idle", "--ow-accent-dot", "--ow-data-today", "--ow-primary*", "--ow-control-on", "--ow-focus-ring", "--ow-info*", "--ow-success*", "--ow-warning*", "--ow-error*", "--ow-mention*", "--ow-paper", "--ow-stage-*", "--ow-term-*", "--ow-ansi-*", "--ow-radius-*"];
100
+ /**
101
+ * DS2 皮肤禁覆盖 **CSS 属性** 清单(COMPONENT-RULES §5/§7/§9 · W5 终扫补闸)。
102
+ *
103
+ * 背景:`DS2_SKIN_DENYLIST` 是 token 名维度的闸,只认 `--ow-*`。L2/L3 的
104
+ * semanticStyles / patches 里裸写的 `box-shadow: 0 0 20px …`、`border-radius: 18px`、
105
+ * `transform: translateY(-2px)`、`animation: neon-pulse 2s infinite` 完全绕开它——
106
+ * 而这四类恰恰是 2.0 明令收口的三层:贴地零影(§5)、形状表定稿(§7)、
107
+ * 唯一动效语汇=信标(§9)。故对属性维度另立一闸:命中即整块剥除。
108
+ *
109
+ * 条目为属性名前缀(连字符边界):`border-radius` 同时覆盖
110
+ * `border-top-left-radius` 等长写;`transition` 覆盖 `transition-property` 等。
111
+ *
112
+ * ⚠️ 同步义务:.claude/skills/ui-theme-skin/scripts/check-skin-ds2.mjs 持有本清单副本。
113
+ */
114
+ declare const DS2_SKIN_DENIED_PROPERTIES: readonly ["border-radius", "border-top-left-radius", "border-top-right-radius", "border-bottom-left-radius", "border-bottom-right-radius", "box-shadow", "transform", "animation", "transition", "backdrop-filter", "-webkit-backdrop-filter"];
115
+ /**
116
+ * 判断某个 CSS 属性名是否命中属性维度禁覆盖清单。
117
+ * 只按连字符边界做前缀匹配,避免 `animation` 误伤自定义属性 `--animation-x`
118
+ * (自定义属性由 token 维度那一闸单独管)。
119
+ */
120
+ declare function isDs2SkinDeniedProperty(propertyName: string): boolean;
121
+ /**
122
+ * 在一段 CSS 文本里找出第一处命中属性维度禁覆盖清单的声明。
123
+ * 只在「声明位置」匹配(块首/`;`/`{` 之后的标识符 + `:`),选择器与值里的同名词不算。
124
+ */
125
+ declare function findDs2DeniedCssProperty(css: string): string | null;
126
+ /**
127
+ * 值维度禁覆盖(DS2 判据 7「品牌外渐变一律清除」)。
128
+ *
129
+ * ⚠️ 同步义务:与 .claude|.agents/skills/ui-theme-skin/scripts/check-skin-ds2.mjs 的
130
+ * DENIED_VALUE_PATTERNS 为同一清单的副本(见 SkinDenylistSyncSource.test.mjs)。
131
+ *
132
+ * 为什么不是往 DS2_SKIN_DENIED_PROPERTIES 里加 `background`:皮肤本来就该能改底色,
133
+ * 按属性名封会把整类合法覆盖一起封掉。要拦的是**值的形态**——任何 *-gradient()。
134
+ * R2 之前这一层完全没有:glass.ts 的 `body { background: linear-gradient(135deg,
135
+ * rgba(59,130,246,.1), rgba(139,92,246,.1)) }`(V1 蓝紫)是整份皮肤里唯二穿过闸口的
136
+ * 块之一;cyberpunk.ts 的 `userBubbleBackground: "linear-gradient(135deg,#E91E63,#9C27B0)"`
137
+ * 更是走 mode token 直接落到用户气泡上——两条路都得拦。
138
+ */
139
+ declare const DS2_SKIN_DENIED_VALUE_PATTERNS: readonly ["-gradient("];
140
+ /** 判断某个 CSS 值是否命中值维度禁覆盖(渐变)。 */
141
+ declare function isDs2SkinDeniedValue(value: string): boolean;
142
+ /**
143
+ * 在一段 CSS 文本里找出第一处命中值维度禁覆盖的声明值。
144
+ * 只看声明的**值**侧,选择器与注释里的同名词不算(调用方已剥注释)。
145
+ */
146
+ declare function findDs2DeniedCssValue(css: string): string | null;
147
+ /** 锁定件 data-slot 选择器初始清单:L2/L3 内容命中即剥除(字符串匹配)。 */
148
+ declare const DS2_LOCKED_SLOT_SELECTORS: readonly ["beacon-spinner", "orbitwork-mark", "orbitwork-lockup"];
149
+ /** 判断某个 CSS 自定义属性名是否命中 DS2 禁覆盖清单。 */
150
+ declare function isDs2SkinDeniedToken(tokenName: string): boolean;
151
+ /** WCAG 2.x 相对亮度 → 对比度实算(输入为 3/4/6/8 位 hex;alpha 忽略,按不透明计算)。 */
152
+ declare function ds2ContrastRatio(hexA: string, hexB: string): number;
153
+ declare function hasOrbitworkSkinChatBackground(skin: OrbitworkSkin | null | undefined, mode: ResolvedTheme): boolean;
154
+ declare function parseOrbitworkSkin(input: unknown): SkinValidationResult;
155
+ /** Convert a validated embedded image into a CSS value without accepting arbitrary CSS or URLs. */
156
+ declare function orbitworkSkinImageCssValue(value: string | undefined): string | undefined;
157
+ declare function assertKnownKeys(value: Record<string, unknown>, allowed: Set<string>, path: string): void;
158
+ declare function isRecord(value: unknown): value is Record<string, unknown>;
159
+
160
+ declare const BUILTIN_ORBITWORK_SKINS: readonly [OrbitworkSkin, OrbitworkSkin, OrbitworkSkin];
161
+
162
+ /**
163
+ * Scoped skin application — inspired by design project
164
+ *
165
+ * 改进点:
166
+ * 1. 从内联样式改为 <style> 标签注入
167
+ * 2. 使用 html[data-ow-skin] 作用域选择器
168
+ * 3. CSS 层面真正隔离,可通过选择器精准控制
169
+ * 4. 支持 L2/L3 高级样式(语义选择器、自由补丁)
170
+ *
171
+ * 向后兼容:保持与原 applyOrbitworkSkin() 相同的签名和行为
172
+ */
173
+
174
+ /**
175
+ * 作用域化皮肤应用
176
+ *
177
+ * @example
178
+ * applyScopedOrbitworkSkin(document.documentElement, skin, 'light')
179
+ * // 生成: html[data-ow-skin="aurora"] { --ow-primary: #7c3aed; ... }
180
+ */
181
+ declare function applyScopedOrbitworkSkin(target: HTMLElement, skin: OrbitworkSkin | null, mode: ResolvedTheme): void;
182
+ /**
183
+ * 获取当前激活的皮肤 ID
184
+ */
185
+ declare function getActiveSkinId(): string | null;
186
+ /**
187
+ * 检查是否有皮肤激活
188
+ */
189
+ declare function hasSkinActive(): boolean;
190
+
191
+ /**
192
+ * @deprecated Import from './theme' instead. This file re-exports for backward compatibility.
193
+ *
194
+ * 例外:`THEME_OPTIONS`(文件末)是本文件自有的值——设置面与账户菜单共用的主题三格。
195
+ */
196
+
197
+ /**
198
+ * 主题三格(R2 · D4 / 裁决:设置常规段与账户菜单「外观」行共用同一份选项)。
199
+ *
200
+ * 原型的 themeRows 只有「浅色 / 深色」两档、另配一条「显示模式跟随系统」开关;
201
+ * R2 按 Terry 的参考图把三件事收成一排三格——`system` 就是第三格「自动」,
202
+ * 那条开关卡随之撤除。写在这里而不是各件各写一份:设置面(DesktopAppearanceSettings)
203
+ * 与侧栏账户菜单(DesktopAccountMenuView)两处必须同词同序,分叉了就是两套语汇。
204
+ */
205
+ declare const THEME_OPTIONS: Array<{
206
+ value: Theme;
207
+ label: string;
208
+ }>;
209
+
210
+ export { BUILTIN_ORBITWORK_SKINS as B, DS2_LOCKED_SLOT_SELECTORS as D, HEX_COLOR as H, MAX_ORBITWORK_SKIN_IMAGE_BYTES as M, type OrbitworkSkin as O, type ResolvedTheme as R, type SkinValidationResult as S, type Theme as T, DS2_SKIN_DENIED_PROPERTIES as a, DS2_SKIN_DENIED_VALUE_PATTERNS as b, DS2_SKIN_DENYLIST as c, ORBITWORK_SKIN_CSS_VARIABLES as d, type OrbitworkSkinChatBackgroundMask as e, type OrbitworkSkinRegistryEntry as f, type OrbitworkSkinTokens as g, THEME_OPTIONS as h, applyScopedOrbitworkSkin as i, assertKnownKeys as j, ds2ContrastRatio as k, findDs2DeniedCssProperty as l, findDs2DeniedCssValue as m, getActiveSkinId as n, hasOrbitworkSkinChatBackground as o, hasSkinActive as p, isDs2SkinDeniedProperty as q, isDs2SkinDeniedToken as r, isDs2SkinDeniedValue as s, isRecord as t, orbitworkSkinChatBackgroundMaskColor as u, orbitworkSkinImageCssValue as v, parseOrbitworkSkin as w, resolveOrbitworkSkinChatBackgroundMask as x };
@@ -0,0 +1,210 @@
1
+ /**
2
+ * Orbitwork skin protocol — aligned with Design project architecture.
3
+ * A skin is a validated JSON document that overrides --ow-* CSS variables
4
+ * at runtime. This module is framework-agnostic.
5
+ */
6
+ type Theme = "light" | "dark" | "system";
7
+ type ResolvedTheme = "light" | "dark";
8
+ /**
9
+ * DS2 皮肤白名单(COMPONENT-RULES §15 · 2026-08-31 裁决):
10
+ * - 可覆盖:中性表面/边框/文字梯度、chat/composer/sidebar 背景类、
11
+ * btn-primary 族(唯一开放的租户品牌色位)。
12
+ * - 已移除(禁覆盖):primary 族(--ow-primary 暗档=荧黄行动极)、link、
13
+ * switchActive(--ow-control-on 无彩选中)、功能色四族、cardRadius/buttonRadius
14
+ * (圆角是品牌定稿)。
15
+ */
16
+ type OrbitworkSkinTokens = {
17
+ backgroundPrimary?: string;
18
+ backgroundSecondary?: string;
19
+ backgroundTertiary?: string;
20
+ backgroundPanel?: string;
21
+ foregroundPrimary?: string;
22
+ foregroundSecondary?: string;
23
+ foregroundMuted?: string;
24
+ foregroundHint?: string;
25
+ borderSubtle?: string;
26
+ borderDefault?: string;
27
+ borderStrong?: string;
28
+ buttonPrimaryBackground?: string;
29
+ buttonPrimaryForeground?: string;
30
+ chatBackground?: string;
31
+ chatBackgroundImage?: string;
32
+ chatBackgroundOverlay?: string;
33
+ chatBackgroundMaskColor?: string;
34
+ chatBackgroundPosition?: "center" | "top" | "bottom" | "left" | "right" | "top left" | "top right" | "bottom left" | "bottom right";
35
+ chatBackgroundSize?: "cover" | "contain" | "auto";
36
+ userBubbleBackground?: string;
37
+ userBubbleForeground?: string;
38
+ userBubbleBorder?: string;
39
+ composerBackground?: string;
40
+ composerBorder?: string;
41
+ sidebarBackground?: string;
42
+ sidebarSelectedBackground?: string;
43
+ };
44
+ /** L2/L3 逃生通道登记项:每条高级样式须登记目标与用途(§15,长期目标清零)。 */
45
+ type OrbitworkSkinRegistryEntry = {
46
+ target: string;
47
+ reason: string;
48
+ };
49
+ type OrbitworkSkin = {
50
+ version: 1;
51
+ id: string;
52
+ name: string;
53
+ description?: string;
54
+ /**
55
+ * @deprecated DS2 §15:圆角是品牌定稿,皮肤不再开放 cardRadius/buttonRadius。
56
+ * 字段仅为旧代码类型兼容保留(空对象),解析路径一律拒绝 common。
57
+ */
58
+ common?: Record<string, never>;
59
+ modes: {
60
+ light?: OrbitworkSkinTokens;
61
+ dark?: OrbitworkSkinTokens;
62
+ };
63
+ contributes?: {
64
+ /** L2: 语义选择器样式(精准定制组件部件) */
65
+ semanticStyles?: string;
66
+ /** L3: 自由补丁(高级用户,需谨慎使用) */
67
+ patches?: string;
68
+ /** L2/L3 登记表:存在 semanticStyles/patches 时必须逐条登记(validate-skin 强制) */
69
+ registry?: OrbitworkSkinRegistryEntry[];
70
+ };
71
+ };
72
+ type SkinValidationResult = {
73
+ ok: true;
74
+ skin: OrbitworkSkin;
75
+ } | {
76
+ ok: false;
77
+ error: string;
78
+ };
79
+ declare const HEX_COLOR: RegExp;
80
+ declare const MAX_ORBITWORK_SKIN_IMAGE_BYTES: number;
81
+ type OrbitworkSkinChatBackgroundMask = {
82
+ color: string;
83
+ strength: number;
84
+ startOpacity: number;
85
+ endOpacity: number;
86
+ };
87
+ /** Six-digit colors retain the original 80% → 50% mask; explicit alpha controls final strength. */
88
+ declare function resolveOrbitworkSkinChatBackgroundMask(value: string): OrbitworkSkinChatBackgroundMask;
89
+ declare function orbitworkSkinChatBackgroundMaskColor(color: string, strength: number): string;
90
+ declare const ORBITWORK_SKIN_CSS_VARIABLES: Readonly<Record<keyof OrbitworkSkinTokens, string>>;
91
+ /**
92
+ * DS2 皮肤禁覆盖清单(COMPONENT-RULES §15 · 2026-08-31 裁决)。
93
+ * 条目以 `*` 结尾表示前缀匹配;其余为精确名(含其 `-` 后缀派生,如
94
+ * `--ow-control-on` 同时覆盖 `--ow-control-on-glyph`)。
95
+ *
96
+ * ⚠️ 同步义务:.claude/skills/ui-theme-skin/scripts/check-skin-ds2.mjs 持有
97
+ * 本清单的副本,两处必须同步修改。
98
+ */
99
+ declare const DS2_SKIN_DENYLIST: readonly ["--ow-beacon", "--ow-beacon-idle", "--ow-accent-dot", "--ow-data-today", "--ow-primary*", "--ow-control-on", "--ow-focus-ring", "--ow-info*", "--ow-success*", "--ow-warning*", "--ow-error*", "--ow-mention*", "--ow-paper", "--ow-stage-*", "--ow-term-*", "--ow-ansi-*", "--ow-radius-*"];
100
+ /**
101
+ * DS2 皮肤禁覆盖 **CSS 属性** 清单(COMPONENT-RULES §5/§7/§9 · W5 终扫补闸)。
102
+ *
103
+ * 背景:`DS2_SKIN_DENYLIST` 是 token 名维度的闸,只认 `--ow-*`。L2/L3 的
104
+ * semanticStyles / patches 里裸写的 `box-shadow: 0 0 20px …`、`border-radius: 18px`、
105
+ * `transform: translateY(-2px)`、`animation: neon-pulse 2s infinite` 完全绕开它——
106
+ * 而这四类恰恰是 2.0 明令收口的三层:贴地零影(§5)、形状表定稿(§7)、
107
+ * 唯一动效语汇=信标(§9)。故对属性维度另立一闸:命中即整块剥除。
108
+ *
109
+ * 条目为属性名前缀(连字符边界):`border-radius` 同时覆盖
110
+ * `border-top-left-radius` 等长写;`transition` 覆盖 `transition-property` 等。
111
+ *
112
+ * ⚠️ 同步义务:.claude/skills/ui-theme-skin/scripts/check-skin-ds2.mjs 持有本清单副本。
113
+ */
114
+ declare const DS2_SKIN_DENIED_PROPERTIES: readonly ["border-radius", "border-top-left-radius", "border-top-right-radius", "border-bottom-left-radius", "border-bottom-right-radius", "box-shadow", "transform", "animation", "transition", "backdrop-filter", "-webkit-backdrop-filter"];
115
+ /**
116
+ * 判断某个 CSS 属性名是否命中属性维度禁覆盖清单。
117
+ * 只按连字符边界做前缀匹配,避免 `animation` 误伤自定义属性 `--animation-x`
118
+ * (自定义属性由 token 维度那一闸单独管)。
119
+ */
120
+ declare function isDs2SkinDeniedProperty(propertyName: string): boolean;
121
+ /**
122
+ * 在一段 CSS 文本里找出第一处命中属性维度禁覆盖清单的声明。
123
+ * 只在「声明位置」匹配(块首/`;`/`{` 之后的标识符 + `:`),选择器与值里的同名词不算。
124
+ */
125
+ declare function findDs2DeniedCssProperty(css: string): string | null;
126
+ /**
127
+ * 值维度禁覆盖(DS2 判据 7「品牌外渐变一律清除」)。
128
+ *
129
+ * ⚠️ 同步义务:与 .claude|.agents/skills/ui-theme-skin/scripts/check-skin-ds2.mjs 的
130
+ * DENIED_VALUE_PATTERNS 为同一清单的副本(见 SkinDenylistSyncSource.test.mjs)。
131
+ *
132
+ * 为什么不是往 DS2_SKIN_DENIED_PROPERTIES 里加 `background`:皮肤本来就该能改底色,
133
+ * 按属性名封会把整类合法覆盖一起封掉。要拦的是**值的形态**——任何 *-gradient()。
134
+ * R2 之前这一层完全没有:glass.ts 的 `body { background: linear-gradient(135deg,
135
+ * rgba(59,130,246,.1), rgba(139,92,246,.1)) }`(V1 蓝紫)是整份皮肤里唯二穿过闸口的
136
+ * 块之一;cyberpunk.ts 的 `userBubbleBackground: "linear-gradient(135deg,#E91E63,#9C27B0)"`
137
+ * 更是走 mode token 直接落到用户气泡上——两条路都得拦。
138
+ */
139
+ declare const DS2_SKIN_DENIED_VALUE_PATTERNS: readonly ["-gradient("];
140
+ /** 判断某个 CSS 值是否命中值维度禁覆盖(渐变)。 */
141
+ declare function isDs2SkinDeniedValue(value: string): boolean;
142
+ /**
143
+ * 在一段 CSS 文本里找出第一处命中值维度禁覆盖的声明值。
144
+ * 只看声明的**值**侧,选择器与注释里的同名词不算(调用方已剥注释)。
145
+ */
146
+ declare function findDs2DeniedCssValue(css: string): string | null;
147
+ /** 锁定件 data-slot 选择器初始清单:L2/L3 内容命中即剥除(字符串匹配)。 */
148
+ declare const DS2_LOCKED_SLOT_SELECTORS: readonly ["beacon-spinner", "orbitwork-mark", "orbitwork-lockup"];
149
+ /** 判断某个 CSS 自定义属性名是否命中 DS2 禁覆盖清单。 */
150
+ declare function isDs2SkinDeniedToken(tokenName: string): boolean;
151
+ /** WCAG 2.x 相对亮度 → 对比度实算(输入为 3/4/6/8 位 hex;alpha 忽略,按不透明计算)。 */
152
+ declare function ds2ContrastRatio(hexA: string, hexB: string): number;
153
+ declare function hasOrbitworkSkinChatBackground(skin: OrbitworkSkin | null | undefined, mode: ResolvedTheme): boolean;
154
+ declare function parseOrbitworkSkin(input: unknown): SkinValidationResult;
155
+ /** Convert a validated embedded image into a CSS value without accepting arbitrary CSS or URLs. */
156
+ declare function orbitworkSkinImageCssValue(value: string | undefined): string | undefined;
157
+ declare function assertKnownKeys(value: Record<string, unknown>, allowed: Set<string>, path: string): void;
158
+ declare function isRecord(value: unknown): value is Record<string, unknown>;
159
+
160
+ declare const BUILTIN_ORBITWORK_SKINS: readonly [OrbitworkSkin, OrbitworkSkin, OrbitworkSkin];
161
+
162
+ /**
163
+ * Scoped skin application — inspired by design project
164
+ *
165
+ * 改进点:
166
+ * 1. 从内联样式改为 <style> 标签注入
167
+ * 2. 使用 html[data-ow-skin] 作用域选择器
168
+ * 3. CSS 层面真正隔离,可通过选择器精准控制
169
+ * 4. 支持 L2/L3 高级样式(语义选择器、自由补丁)
170
+ *
171
+ * 向后兼容:保持与原 applyOrbitworkSkin() 相同的签名和行为
172
+ */
173
+
174
+ /**
175
+ * 作用域化皮肤应用
176
+ *
177
+ * @example
178
+ * applyScopedOrbitworkSkin(document.documentElement, skin, 'light')
179
+ * // 生成: html[data-ow-skin="aurora"] { --ow-primary: #7c3aed; ... }
180
+ */
181
+ declare function applyScopedOrbitworkSkin(target: HTMLElement, skin: OrbitworkSkin | null, mode: ResolvedTheme): void;
182
+ /**
183
+ * 获取当前激活的皮肤 ID
184
+ */
185
+ declare function getActiveSkinId(): string | null;
186
+ /**
187
+ * 检查是否有皮肤激活
188
+ */
189
+ declare function hasSkinActive(): boolean;
190
+
191
+ /**
192
+ * @deprecated Import from './theme' instead. This file re-exports for backward compatibility.
193
+ *
194
+ * 例外:`THEME_OPTIONS`(文件末)是本文件自有的值——设置面与账户菜单共用的主题三格。
195
+ */
196
+
197
+ /**
198
+ * 主题三格(R2 · D4 / 裁决:设置常规段与账户菜单「外观」行共用同一份选项)。
199
+ *
200
+ * 原型的 themeRows 只有「浅色 / 深色」两档、另配一条「显示模式跟随系统」开关;
201
+ * R2 按 Terry 的参考图把三件事收成一排三格——`system` 就是第三格「自动」,
202
+ * 那条开关卡随之撤除。写在这里而不是各件各写一份:设置面(DesktopAppearanceSettings)
203
+ * 与侧栏账户菜单(DesktopAccountMenuView)两处必须同词同序,分叉了就是两套语汇。
204
+ */
205
+ declare const THEME_OPTIONS: Array<{
206
+ value: Theme;
207
+ label: string;
208
+ }>;
209
+
210
+ export { BUILTIN_ORBITWORK_SKINS as B, DS2_LOCKED_SLOT_SELECTORS as D, HEX_COLOR as H, MAX_ORBITWORK_SKIN_IMAGE_BYTES as M, type OrbitworkSkin as O, type ResolvedTheme as R, type SkinValidationResult as S, type Theme as T, DS2_SKIN_DENIED_PROPERTIES as a, DS2_SKIN_DENIED_VALUE_PATTERNS as b, DS2_SKIN_DENYLIST as c, ORBITWORK_SKIN_CSS_VARIABLES as d, type OrbitworkSkinChatBackgroundMask as e, type OrbitworkSkinRegistryEntry as f, type OrbitworkSkinTokens as g, THEME_OPTIONS as h, applyScopedOrbitworkSkin as i, assertKnownKeys as j, ds2ContrastRatio as k, findDs2DeniedCssProperty as l, findDs2DeniedCssValue as m, getActiveSkinId as n, hasOrbitworkSkinChatBackground as o, hasSkinActive as p, isDs2SkinDeniedProperty as q, isDs2SkinDeniedToken as r, isDs2SkinDeniedValue as s, isRecord as t, orbitworkSkinChatBackgroundMaskColor as u, orbitworkSkinImageCssValue as v, parseOrbitworkSkin as w, resolveOrbitworkSkinChatBackgroundMask as x };
@@ -0,0 +1 @@
1
+ 'use strict';var chunkEF2BSN3K_cjs=require('./chunk-EF2BSN3K.cjs');Object.defineProperty(exports,"BUILTIN_ORBITWORK_SKINS",{enumerable:true,get:function(){return chunkEF2BSN3K_cjs.u}});Object.defineProperty(exports,"MAX_ORBITWORK_SKIN_IMAGE_BYTES",{enumerable:true,get:function(){return chunkEF2BSN3K_cjs.b}});Object.defineProperty(exports,"ORBITWORK_SKIN_CSS_VARIABLES",{enumerable:true,get:function(){return chunkEF2BSN3K_cjs.e}});Object.defineProperty(exports,"THEME_OPTIONS",{enumerable:true,get:function(){return chunkEF2BSN3K_cjs.A}});Object.defineProperty(exports,"applyOrbitworkSkin",{enumerable:true,get:function(){return chunkEF2BSN3K_cjs.x}});Object.defineProperty(exports,"hasOrbitworkSkinChatBackground",{enumerable:true,get:function(){return chunkEF2BSN3K_cjs.p}});Object.defineProperty(exports,"orbitworkSkinChatBackgroundMaskColor",{enumerable:true,get:function(){return chunkEF2BSN3K_cjs.d}});Object.defineProperty(exports,"orbitworkSkinImageCssValue",{enumerable:true,get:function(){return chunkEF2BSN3K_cjs.r}});Object.defineProperty(exports,"parseOrbitworkSkin",{enumerable:true,get:function(){return chunkEF2BSN3K_cjs.q}});Object.defineProperty(exports,"resolveOrbitworkSkinChatBackgroundMask",{enumerable:true,get:function(){return chunkEF2BSN3K_cjs.c}});
@@ -0,0 +1 @@
1
+ export { B as BUILTIN_ORBITWORK_SKINS, M as MAX_ORBITWORK_SKIN_IMAGE_BYTES, d as ORBITWORK_SKIN_CSS_VARIABLES, O as OrbitworkSkin, e as OrbitworkSkinChatBackgroundMask, g as OrbitworkSkinTokens, R as ResolvedTheme, S as SkinValidationResult, h as THEME_OPTIONS, T as Theme, i as applyOrbitworkSkin, o as hasOrbitworkSkinChatBackground, u as orbitworkSkinChatBackgroundMaskColor, v as orbitworkSkinImageCssValue, w as parseOrbitworkSkin, x as resolveOrbitworkSkinChatBackgroundMask } from './appearance-D5uQ53j3.cjs';
@@ -0,0 +1 @@
1
+ export { B as BUILTIN_ORBITWORK_SKINS, M as MAX_ORBITWORK_SKIN_IMAGE_BYTES, d as ORBITWORK_SKIN_CSS_VARIABLES, O as OrbitworkSkin, e as OrbitworkSkinChatBackgroundMask, g as OrbitworkSkinTokens, R as ResolvedTheme, S as SkinValidationResult, h as THEME_OPTIONS, T as Theme, i as applyOrbitworkSkin, o as hasOrbitworkSkinChatBackground, u as orbitworkSkinChatBackgroundMaskColor, v as orbitworkSkinImageCssValue, w as parseOrbitworkSkin, x as resolveOrbitworkSkinChatBackgroundMask } from './appearance-D5uQ53j3.js';
@@ -0,0 +1 @@
1
+ export{u as BUILTIN_ORBITWORK_SKINS,b as MAX_ORBITWORK_SKIN_IMAGE_BYTES,e as ORBITWORK_SKIN_CSS_VARIABLES,A as THEME_OPTIONS,x as applyOrbitworkSkin,p as hasOrbitworkSkinChatBackground,d as orbitworkSkinChatBackgroundMaskColor,r as orbitworkSkinImageCssValue,q as parseOrbitworkSkin,c as resolveOrbitworkSkinChatBackgroundMask}from'./chunk-3KT7IU4X.js';
@@ -0,0 +1 @@
1
+ 'use strict';var chunkGMMYDILD_cjs=require('./chunk-GMMYDILD.cjs');Object.defineProperty(exports,"BROWSER_ANNOTATION_POPUP_STYLES",{enumerable:true,get:function(){return chunkGMMYDILD_cjs.b}});Object.defineProperty(exports,"BROWSER_ANNOTATION_PROPERTY_DEFS",{enumerable:true,get:function(){return chunkGMMYDILD_cjs.a}});