@orbit-work/ui 0.1.2-preview.0 → 0.1.3

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 (810) 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.cjs +41 -1
  9. package/dist/appearance.cjs.map +1 -0
  10. package/dist/appearance.d.cts +7 -1
  11. package/dist/appearance.d.ts +7 -1
  12. package/dist/appearance.js +41 -1
  13. package/dist/appearance.js.map +1 -0
  14. package/dist/brand-preview.cjs +14 -0
  15. package/dist/brand-preview.cjs.map +1 -0
  16. package/dist/brand-preview.d.cts +13 -0
  17. package/dist/brand-preview.d.ts +13 -0
  18. package/dist/brand-preview.js +14 -0
  19. package/dist/brand-preview.js.map +1 -0
  20. package/dist/browser-annotation-popup.cjs +9 -1
  21. package/dist/browser-annotation-popup.cjs.map +1 -0
  22. package/dist/browser-annotation-popup.d.cts +6 -6
  23. package/dist/browser-annotation-popup.d.ts +6 -6
  24. package/dist/browser-annotation-popup.js +9 -1
  25. package/dist/browser-annotation-popup.js.map +1 -0
  26. package/dist/chunk-66VEV7G2.js +111 -0
  27. package/dist/chunk-66VEV7G2.js.map +1 -0
  28. package/dist/chunk-JC7BHKS4.cjs +734 -0
  29. package/dist/chunk-JC7BHKS4.cjs.map +1 -0
  30. package/dist/chunk-K7ONUTLA.cjs +240 -0
  31. package/dist/chunk-K7ONUTLA.cjs.map +1 -0
  32. package/dist/chunk-KTNWR3H5.js +399 -0
  33. package/dist/chunk-KTNWR3H5.js.map +1 -0
  34. package/dist/chunk-LSGO6AQR.js +734 -0
  35. package/dist/chunk-LSGO6AQR.js.map +1 -0
  36. package/dist/chunk-Q7B4M5GC.cjs +399 -0
  37. package/dist/chunk-Q7B4M5GC.cjs.map +1 -0
  38. package/dist/chunk-QS55W5Q5.cjs +111 -0
  39. package/dist/chunk-QS55W5Q5.cjs.map +1 -0
  40. package/dist/chunk-UT5LC6MR.js +38 -0
  41. package/dist/chunk-UT5LC6MR.js.map +1 -0
  42. package/dist/chunk-ZXMHCL6D.js +240 -0
  43. package/dist/chunk-ZXMHCL6D.js.map +1 -0
  44. package/dist/chunk-ZZTEY4YX.cjs +38 -0
  45. package/dist/chunk-ZZTEY4YX.cjs.map +1 -0
  46. package/dist/core.css +7895 -0
  47. package/dist/core.scoped.css +7888 -0
  48. package/dist/file-tree.css +85 -0
  49. package/dist/index-nLo7jMlP.d.cts +166 -0
  50. package/dist/index-nLo7jMlP.d.ts +166 -0
  51. package/dist/index.cjs +38996 -26
  52. package/dist/index.cjs.map +1 -0
  53. package/dist/index.d.cts +3797 -3027
  54. package/dist/index.d.ts +3797 -3027
  55. package/dist/index.js +38996 -26
  56. package/dist/index.js.map +1 -0
  57. package/dist/locale.cjs +15 -0
  58. package/dist/locale.cjs.map +1 -0
  59. package/dist/locale.d.cts +28 -0
  60. package/dist/locale.d.ts +28 -0
  61. package/dist/locale.js +15 -0
  62. package/dist/locale.js.map +1 -0
  63. package/dist/office.css +1146 -0
  64. package/dist/slot-core.cjs +200 -0
  65. package/dist/slot-core.cjs.map +1 -0
  66. package/dist/slot-core.d.cts +146 -0
  67. package/dist/slot-core.d.ts +146 -0
  68. package/dist/slot-core.js +200 -0
  69. package/dist/slot-core.js.map +1 -0
  70. package/dist/slot-react.cjs +153 -0
  71. package/dist/slot-react.cjs.map +1 -0
  72. package/dist/slot-react.d.cts +36 -0
  73. package/dist/slot-react.d.ts +36 -0
  74. package/dist/slot-react.js +153 -0
  75. package/dist/slot-react.js.map +1 -0
  76. package/dist/tailwind.css +137 -0
  77. package/dist/unifiedTheme-DQ-sETKO.d.cts +201 -0
  78. package/dist/unifiedTheme-DQ-sETKO.d.ts +201 -0
  79. package/dist/workbench.css +9023 -0
  80. package/package.json +126 -47
  81. package/dist/appearance-D5uQ53j3.d.cts +0 -210
  82. package/dist/appearance-D5uQ53j3.d.ts +0 -210
  83. package/dist/chunk-3KT7IU4X.js +0 -13
  84. package/dist/chunk-5VLBKOG7.cjs +0 -194
  85. package/dist/chunk-7YJY64LZ.js +0 -82
  86. package/dist/chunk-EF2BSN3K.cjs +0 -13
  87. package/dist/chunk-GMMYDILD.cjs +0 -82
  88. package/dist/chunk-VG7FQQ7K.js +0 -194
  89. package/dist/fonts/JetBrainsMono-Medium.ttf +0 -0
  90. package/dist/fonts/JetBrainsMono-Regular.ttf +0 -0
  91. package/dist/fonts/SpaceGrotesk-700-latin-ext.woff2 +0 -0
  92. package/dist/fonts/SpaceGrotesk-700-latin.woff2 +0 -0
  93. package/dist/index.css +0 -1
  94. package/dist/orbitwork.css +0 -22209
  95. package/src/components/Layout/AppLayout/AppLayout.stories.tsx +0 -246
  96. package/src/components/Layout/AppLayout/AppLayoutSource.test.mjs +0 -37
  97. package/src/components/Layout/AppLayout/index.tsx +0 -122
  98. package/src/components/Layout/Sidebar/index.tsx +0 -13
  99. package/src/components/Layout/SidebarShell/SidebarShell.stories.tsx +0 -676
  100. package/src/components/Layout/SidebarShell/SidebarShellSource.test.mjs +0 -161
  101. package/src/components/Layout/SidebarShell/index.tsx +0 -326
  102. package/src/components/Layout/index.ts +0 -10
  103. package/src/components/composite/ActionBar/ActionBar.stories.tsx +0 -26
  104. package/src/components/composite/ActionBar/index.tsx +0 -31
  105. package/src/components/composite/ActionStatus/ActionStatus.stories.tsx +0 -60
  106. package/src/components/composite/ActionStatus/index.tsx +0 -21
  107. package/src/components/composite/AskQuestionCardView/AskQuestionCardView.stories.tsx +0 -175
  108. package/src/components/composite/AskQuestionCardView/AskQuestionCardViewSource.test.mjs +0 -92
  109. package/src/components/composite/AskQuestionCardView/index.tsx +0 -119
  110. package/src/components/composite/AssistantChannelCard/AssistantChannelCard.stories.tsx +0 -265
  111. package/src/components/composite/AssistantChannelCard/AssistantChannelCardSource.test.mjs +0 -45
  112. package/src/components/composite/AssistantChannelCard/index.tsx +0 -102
  113. package/src/components/composite/AssistantToggleRow/AssistantToggleRow.stories.tsx +0 -197
  114. package/src/components/composite/AssistantToggleRow/index.tsx +0 -35
  115. package/src/components/composite/AttachmentCard/AttachmentCard.stories.tsx +0 -125
  116. package/src/components/composite/AttachmentCard/index.tsx +0 -80
  117. package/src/components/composite/BackButton/BackButton.stories.tsx +0 -93
  118. package/src/components/composite/BackButton/BackButtonSource.test.mjs +0 -29
  119. package/src/components/composite/BackButton/index.tsx +0 -48
  120. package/src/components/composite/Banner/Banner.stories.tsx +0 -180
  121. package/src/components/composite/Banner/BannerSource.test.mjs +0 -67
  122. package/src/components/composite/Banner/index.tsx +0 -125
  123. package/src/components/composite/BeaconIcons/BeaconIcons.stories.tsx +0 -153
  124. package/src/components/composite/BeaconIcons/index.tsx +0 -265
  125. package/src/components/composite/BeaconSpinner/BeaconSpinner.stories.tsx +0 -144
  126. package/src/components/composite/BeaconSpinner/index.tsx +0 -185
  127. package/src/components/composite/CatalogStates/CatalogEmptyState.stories.tsx +0 -108
  128. package/src/components/composite/CatalogStates/CatalogStates.stories.tsx +0 -53
  129. package/src/components/composite/CatalogStates/CatalogStatesSource.test.mjs +0 -149
  130. package/src/components/composite/CatalogStates/index.tsx +0 -113
  131. package/src/components/composite/Charts/Charts.stories.tsx +0 -174
  132. package/src/components/composite/Charts/ChartsSource.test.mjs +0 -111
  133. package/src/components/composite/Charts/index.tsx +0 -385
  134. package/src/components/composite/CodeBlock/CodeBlock.stories.tsx +0 -308
  135. package/src/components/composite/CodeBlock/CodeFaceSource.test.mjs +0 -89
  136. package/src/components/composite/CodeBlock/index.tsx +0 -300
  137. package/src/components/composite/CodeDiff/CodeDiff.stories.tsx +0 -169
  138. package/src/components/composite/CodeDiff/index.tsx +0 -373
  139. package/src/components/composite/CodePreview/CodePreview.stories.tsx +0 -127
  140. package/src/components/composite/CodePreview/CodePreviewSource.test.mjs +0 -43
  141. package/src/components/composite/CodePreview/index.tsx +0 -98
  142. package/src/components/composite/CommandPalette/CommandPalette.stories.tsx +0 -89
  143. package/src/components/composite/CommandPalette/CommandPaletteSource.test.mjs +0 -61
  144. package/src/components/composite/CommandPalette/index.tsx +0 -310
  145. package/src/components/composite/ContentRecommendation/ContentRecommendation.stories.tsx +0 -300
  146. package/src/components/composite/ContentRecommendation/ContentRecommendationSource.test.mjs +0 -48
  147. package/src/components/composite/ContentRecommendation/index.tsx +0 -116
  148. package/src/components/composite/ContextChip/ContextChip.stories.tsx +0 -123
  149. package/src/components/composite/ContextChip/ContextChipSource.test.mjs +0 -24
  150. package/src/components/composite/ContextChip/index.tsx +0 -25
  151. package/src/components/composite/ContextUsageIndicatorView/ContextUsageIndicatorSizeSource.test.mjs +0 -15
  152. package/src/components/composite/ContextUsageIndicatorView/ContextUsageIndicatorView.stories.tsx +0 -110
  153. package/src/components/composite/ContextUsageIndicatorView/ContextUsageLoadingSource.test.mjs +0 -23
  154. package/src/components/composite/ContextUsageIndicatorView/index.tsx +0 -139
  155. package/src/components/composite/Controls/Controls.stories.tsx +0 -227
  156. package/src/components/composite/Controls/index.tsx +0 -15
  157. package/src/components/composite/CreateProjectDialog/CreateProjectDialog.stories.tsx +0 -56
  158. package/src/components/composite/CreateProjectDialog/index.tsx +0 -70
  159. package/src/components/composite/DataManagementSectionView/DataManagementSectionView.stories.tsx +0 -123
  160. package/src/components/composite/DataManagementSectionView/DataManagementSectionViewSource.test.mjs +0 -45
  161. package/src/components/composite/DataManagementSectionView/index.tsx +0 -110
  162. package/src/components/composite/DataTable/DataTable.stories.tsx +0 -159
  163. package/src/components/composite/DataTable/DataTableSource.test.mjs +0 -96
  164. package/src/components/composite/DataTable/index.tsx +0 -373
  165. package/src/components/composite/DetailChrome/DetailChrome.stories.tsx +0 -61
  166. package/src/components/composite/DetailChrome/DetailChromeSource.test.mjs +0 -31
  167. package/src/components/composite/DetailChrome/index.tsx +0 -94
  168. package/src/components/composite/DetailPanel/DetailPanel.stories.tsx +0 -185
  169. package/src/components/composite/DetailPanel/DetailPanelSource.test.mjs +0 -49
  170. package/src/components/composite/DetailPanel/index.tsx +0 -120
  171. package/src/components/composite/DetailScaffold/DetailScaffold.stories.tsx +0 -203
  172. package/src/components/composite/DetailScaffold/DetailScaffoldSource.test.mjs +0 -38
  173. package/src/components/composite/DetailScaffold/index.tsx +0 -114
  174. package/src/components/composite/Dialog/Dialog.stories.tsx +0 -343
  175. package/src/components/composite/Dialog/DialogSource.test.mjs +0 -130
  176. package/src/components/composite/Dialog/index.tsx +0 -333
  177. package/src/components/composite/DropZone/DropZone.stories.tsx +0 -105
  178. package/src/components/composite/DropZone/DropZoneSource.test.mjs +0 -68
  179. package/src/components/composite/DropZone/index.tsx +0 -196
  180. package/src/components/composite/FSelect/FSelect.stories.tsx +0 -64
  181. package/src/components/composite/FSelect/index.tsx +0 -29
  182. package/src/components/composite/FeedbackContextMenuView/FeedbackContextMenuView.stories.tsx +0 -106
  183. package/src/components/composite/FeedbackContextMenuView/index.tsx +0 -51
  184. package/src/components/composite/FeedbackDialogView/FeedbackDialogView.stories.tsx +0 -291
  185. package/src/components/composite/FeedbackDialogView/index.tsx +0 -95
  186. package/src/components/composite/FileReferenceCard/FileReferenceCard.stories.tsx +0 -364
  187. package/src/components/composite/FileReferenceCard/FileReferenceCardSource.test.mjs +0 -48
  188. package/src/components/composite/FileReferenceCard/index.tsx +0 -122
  189. package/src/components/composite/FilterBar/FilterBar.stories.tsx +0 -167
  190. package/src/components/composite/FilterBar/FilterBarSource.test.mjs +0 -75
  191. package/src/components/composite/FilterBar/index.tsx +0 -206
  192. package/src/components/composite/FormField/FormField.stories.tsx +0 -158
  193. package/src/components/composite/FormField/FormFieldSource.test.mjs +0 -56
  194. package/src/components/composite/FormField/index.tsx +0 -219
  195. package/src/components/composite/HomeBackdrop/HomeBackdrop.stories.tsx +0 -54
  196. package/src/components/composite/HomeBackdrop/HomeBackdropSource.test.mjs +0 -50
  197. package/src/components/composite/HomeBackdrop/index.tsx +0 -53
  198. package/src/components/composite/Icons/Icons.stories.tsx +0 -153
  199. package/src/components/composite/Icons/IconsSource.test.mjs +0 -23
  200. package/src/components/composite/Icons/index.tsx +0 -1367
  201. package/src/components/composite/ImageCard/ImageCard.stories.tsx +0 -54
  202. package/src/components/composite/ImageCard/index.tsx +0 -33
  203. package/src/components/composite/ImagePreview/ImagePreview.stories.tsx +0 -172
  204. package/src/components/composite/ImagePreview/ImagePreviewSource.test.mjs +0 -95
  205. package/src/components/composite/ImagePreview/index.tsx +0 -339
  206. package/src/components/composite/ListRow/ListRow.stories.tsx +0 -257
  207. package/src/components/composite/ListRow/ListRowSource.test.mjs +0 -101
  208. package/src/components/composite/ListRow/index.tsx +0 -309
  209. package/src/components/composite/Markdown/Markdown.stories.tsx +0 -192
  210. package/src/components/composite/Markdown/MarkdownSource.test.mjs +0 -126
  211. package/src/components/composite/Markdown/MarkdownStyleSource.test.mjs +0 -167
  212. package/src/components/composite/Markdown/index.tsx +0 -702
  213. package/src/components/composite/MarkdownPreview/MarkdownPreview.stories.tsx +0 -174
  214. package/src/components/composite/MarkdownPreview/MarkdownPreviewTabsSource.test.mjs +0 -31
  215. package/src/components/composite/MarkdownPreview/MarkdownRenderedStyleSource.test.mjs +0 -84
  216. package/src/components/composite/MarkdownPreview/index.tsx +0 -140
  217. package/src/components/composite/MarkdownPreviewModalView/MarkdownPreviewModalView.stories.tsx +0 -104
  218. package/src/components/composite/MarkdownPreviewModalView/index.tsx +0 -85
  219. package/src/components/composite/MessageFeedbackDialog/MessageFeedbackDialog.stories.tsx +0 -66
  220. package/src/components/composite/MessageFeedbackDialog/index.tsx +0 -115
  221. package/src/components/composite/ModelCatalogErrorState/ModelCatalogErrorState.stories.tsx +0 -101
  222. package/src/components/composite/ModelCatalogErrorState/ModelCatalogRetrySource.test.mjs +0 -86
  223. package/src/components/composite/ModelCatalogErrorState/index.tsx +0 -59
  224. package/src/components/composite/ModelModalityFlow/ModelModalityFlow.stories.tsx +0 -224
  225. package/src/components/composite/ModelModalityFlow/ModelModalityFlowSource.test.mjs +0 -56
  226. package/src/components/composite/ModelModalityFlow/index.tsx +0 -113
  227. package/src/components/composite/ModelPickerList/ModelPickerList.stories.tsx +0 -313
  228. package/src/components/composite/ModelPickerList/index.tsx +0 -142
  229. package/src/components/composite/ModelSelect/ModelSelect.stories.tsx +0 -90
  230. package/src/components/composite/ModelSelect/index.tsx +0 -148
  231. package/src/components/composite/ModelsSettingsSectionView/ModelsSettingsSectionView.stories.tsx +0 -170
  232. package/src/components/composite/ModelsSettingsSectionView/index.tsx +0 -139
  233. package/src/components/composite/NativeControls/NativeControls.stories.tsx +0 -386
  234. package/src/components/composite/NativeControls/NativeControlsStyleSource.test.mjs +0 -63
  235. package/src/components/composite/NativeControls/index.tsx +0 -97
  236. package/src/components/composite/NavMenu/NavMenu.stories.tsx +0 -383
  237. package/src/components/composite/NavMenu/NavMenuSource.test.mjs +0 -56
  238. package/src/components/composite/NavMenu/index.tsx +0 -142
  239. package/src/components/composite/NoPlanPanelView/NoPlanPanelView.stories.tsx +0 -344
  240. package/src/components/composite/NoPlanPanelView/NoPlanPanelViewSource.test.mjs +0 -34
  241. package/src/components/composite/NoPlanPanelView/index.tsx +0 -97
  242. package/src/components/composite/OpenWithButton/OpenWithButton.stories.tsx +0 -78
  243. package/src/components/composite/OpenWithButton/index.tsx +0 -46
  244. package/src/components/composite/OrbitworkLogo/OrbitworkLogo.stories.tsx +0 -192
  245. package/src/components/composite/OrbitworkLogo/index.tsx +0 -207
  246. package/src/components/composite/OrbitworkModal/OrbitworkModal.stories.tsx +0 -58
  247. package/src/components/composite/OrbitworkModal/index.tsx +0 -31
  248. package/src/components/composite/PageHead/PageHead.stories.tsx +0 -235
  249. package/src/components/composite/PageHead/PageHeadSource.test.mjs +0 -76
  250. package/src/components/composite/PageHead/index.tsx +0 -128
  251. package/src/components/composite/PlanFeatureIcon/PlanFeatureIcon.stories.tsx +0 -205
  252. package/src/components/composite/PlanFeatureIcon/PlanFeatureIconSource.test.mjs +0 -38
  253. package/src/components/composite/PlanFeatureIcon/index.tsx +0 -48
  254. package/src/components/composite/PlanSettingsSectionView/PlanSettingsSectionView.stories.tsx +0 -231
  255. package/src/components/composite/PlanSettingsSectionView/PlanSettingsSectionViewSource.test.mjs +0 -85
  256. package/src/components/composite/PlanSettingsSectionView/index.tsx +0 -264
  257. package/src/components/composite/Popover/Popover.stories.tsx +0 -175
  258. package/src/components/composite/Popover/PopoverSource.test.mjs +0 -59
  259. package/src/components/composite/Popover/index.tsx +0 -176
  260. package/src/components/composite/PptxRenderer/ElementDispatcher/index.tsx +0 -70
  261. package/src/components/composite/PptxRenderer/PptxChromeStyleSource.test.mjs +0 -36
  262. package/src/components/composite/PptxRenderer/PptxRenderer.stories.tsx +0 -128
  263. package/src/components/composite/PptxRenderer/PptxSlide/index.tsx +0 -48
  264. package/src/components/composite/PptxRenderer/constants.ts +0 -2
  265. package/src/components/composite/PptxRenderer/elements/AudioElement/index.tsx +0 -48
  266. package/src/components/composite/PptxRenderer/elements/ChartElement/index.tsx +0 -172
  267. package/src/components/composite/PptxRenderer/elements/DiagramElement/index.tsx +0 -46
  268. package/src/components/composite/PptxRenderer/elements/GroupElement/index.tsx +0 -28
  269. package/src/components/composite/PptxRenderer/elements/ImageElement/index.tsx +0 -61
  270. package/src/components/composite/PptxRenderer/elements/MathElement/index.tsx +0 -57
  271. package/src/components/composite/PptxRenderer/elements/ShapeElement/index.tsx +0 -327
  272. package/src/components/composite/PptxRenderer/elements/TableElement/index.tsx +0 -90
  273. package/src/components/composite/PptxRenderer/elements/TextElement/index.tsx +0 -57
  274. package/src/components/composite/PptxRenderer/elements/VideoElement/index.tsx +0 -43
  275. package/src/components/composite/PptxRenderer/index.ts +0 -24
  276. package/src/components/composite/PptxRenderer/types.ts +0 -326
  277. package/src/components/composite/PptxRenderer/utils.ts +0 -129
  278. package/src/components/composite/ProjectSelect/ProjectSelect.stories.tsx +0 -112
  279. package/src/components/composite/ProjectSelect/ProjectSelectSource.test.mjs +0 -34
  280. package/src/components/composite/ProjectSelect/index.tsx +0 -155
  281. package/src/components/composite/RadioCard/RadioCard.stories.tsx +0 -130
  282. package/src/components/composite/RadioCard/RadioCardSource.test.mjs +0 -42
  283. package/src/components/composite/RadioCard/index.tsx +0 -171
  284. package/src/components/composite/RowOverflowMenu/RowOverflowMenu.stories.tsx +0 -113
  285. package/src/components/composite/RowOverflowMenu/RowOverflowMenuSource.test.mjs +0 -59
  286. package/src/components/composite/RowOverflowMenu/index.tsx +0 -101
  287. package/src/components/composite/SandboxPermissionPrompt/SandboxPermissionPrompt.stories.tsx +0 -159
  288. package/src/components/composite/SandboxPermissionPrompt/SandboxPermissionPromptSource.test.mjs +0 -71
  289. package/src/components/composite/SandboxPermissionPrompt/index.tsx +0 -157
  290. package/src/components/composite/SearchInput/SearchInput.stories.tsx +0 -127
  291. package/src/components/composite/SearchInput/index.tsx +0 -91
  292. package/src/components/composite/SearchResult/SearchResult.stories.tsx +0 -305
  293. package/src/components/composite/SearchResult/SearchResultSource.test.mjs +0 -45
  294. package/src/components/composite/SearchResult/index.tsx +0 -148
  295. package/src/components/composite/Section/Section.stories.tsx +0 -148
  296. package/src/components/composite/Section/SectionSource.test.mjs +0 -59
  297. package/src/components/composite/Section/index.tsx +0 -105
  298. package/src/components/composite/SelectionBulkBar/SelectionBulkBar.stories.tsx +0 -111
  299. package/src/components/composite/SelectionBulkBar/SelectionBulkBarSource.test.mjs +0 -44
  300. package/src/components/composite/SelectionBulkBar/index.tsx +0 -99
  301. package/src/components/composite/ShareStrip/ShareStrip.stories.tsx +0 -123
  302. package/src/components/composite/ShareStrip/index.tsx +0 -83
  303. package/src/components/composite/ShortcutSheet/ShortcutSheet.stories.tsx +0 -90
  304. package/src/components/composite/ShortcutSheet/ShortcutSheetSource.test.mjs +0 -49
  305. package/src/components/composite/ShortcutSheet/index.tsx +0 -163
  306. package/src/components/composite/SitesArtifactCardView/SitesArtifactCardView.stories.tsx +0 -328
  307. package/src/components/composite/SitesArtifactCardView/SitesArtifactCardViewSource.test.mjs +0 -45
  308. package/src/components/composite/SitesArtifactCardView/index.tsx +0 -100
  309. package/src/components/composite/Skeleton/Skeleton.stories.tsx +0 -188
  310. package/src/components/composite/Skeleton/SkeletonSource.test.mjs +0 -25
  311. package/src/components/composite/Skeleton/index.tsx +0 -152
  312. package/src/components/composite/Splash/Splash.stories.tsx +0 -150
  313. package/src/components/composite/Splash/index.tsx +0 -229
  314. package/src/components/composite/StatusTag/StatusTag.stories.tsx +0 -66
  315. package/src/components/composite/StatusTag/StatusTagSource.test.mjs +0 -64
  316. package/src/components/composite/StatusTag/index.tsx +0 -78
  317. package/src/components/composite/StepList/StepList.stories.tsx +0 -352
  318. package/src/components/composite/StepList/index.tsx +0 -23
  319. package/src/components/composite/Tag/Tag.stories.tsx +0 -279
  320. package/src/components/composite/Tag/TagSource.test.mjs +0 -67
  321. package/src/components/composite/Tag/index.tsx +0 -229
  322. package/src/components/composite/TimePicker/TimePicker.stories.tsx +0 -91
  323. package/src/components/composite/TimePicker/TimePickerSource.test.mjs +0 -98
  324. package/src/components/composite/TimePicker/index.tsx +0 -208
  325. package/src/components/composite/TitleBar/TitleBar.stories.tsx +0 -329
  326. package/src/components/composite/TitleBar/TitleBarSource.test.mjs +0 -140
  327. package/src/components/composite/TitleBar/index.tsx +0 -350
  328. package/src/components/composite/Toast/Toast.stories.tsx +0 -304
  329. package/src/components/composite/Toast/ToastSource.test.mjs +0 -63
  330. package/src/components/composite/Toast/index.tsx +0 -135
  331. package/src/components/composite/Tooltip/Tooltip.stories.tsx +0 -304
  332. package/src/components/composite/Tooltip/TooltipSource.test.mjs +0 -34
  333. package/src/components/composite/Tooltip/index.tsx +0 -204
  334. package/src/components/composite/TranscriptDividers/TranscriptDividers.stories.tsx +0 -160
  335. package/src/components/composite/TranscriptDividers/TranscriptDividersSource.test.mjs +0 -90
  336. package/src/components/composite/TranscriptDividers/index.tsx +0 -352
  337. package/src/components/composite/WCardShell/WCardShell.stories.tsx +0 -228
  338. package/src/components/composite/WCardShell/index.tsx +0 -101
  339. package/src/components/composite/index.ts +0 -81
  340. package/src/components/domain/artifacts/ArtifactPreviewSidebarView/ArtifactPreviewSidebarView.stories.tsx +0 -128
  341. package/src/components/domain/artifacts/ArtifactPreviewSidebarView/ArtifactPreviewSidebarViewSource.test.mjs +0 -69
  342. package/src/components/domain/artifacts/ArtifactPreviewSidebarView/index.tsx +0 -212
  343. package/src/components/domain/artifacts/index.ts +0 -1
  344. package/src/components/domain/browser/BrowserAnnotationPopupView/BrowserAnnotationPopupView.stories.tsx +0 -211
  345. package/src/components/domain/browser/BrowserAnnotationPopupView/BrowserAnnotationPopupViewSource.test.mjs +0 -82
  346. package/src/components/domain/browser/BrowserAnnotationPopupView/index.tsx +0 -235
  347. package/src/components/domain/browser/BrowserDeviceToolbarView/BrowserDeviceToolbarView.stories.tsx +0 -260
  348. package/src/components/domain/browser/BrowserDeviceToolbarView/BrowserDeviceToolbarViewSource.test.mjs +0 -12
  349. package/src/components/domain/browser/BrowserDeviceToolbarView/index.tsx +0 -154
  350. package/src/components/domain/browser/BrowserFindBarView/BrowserFindBarView.stories.tsx +0 -52
  351. package/src/components/domain/browser/BrowserFindBarView/index.tsx +0 -111
  352. package/src/components/domain/browser/BrowserImportDialogView/BrowserImportDialogView.stories.tsx +0 -89
  353. package/src/components/domain/browser/BrowserImportDialogView/index.tsx +0 -155
  354. package/src/components/domain/browser/BrowserLoadErrorView/BrowserLoadErrorView.stories.tsx +0 -197
  355. package/src/components/domain/browser/BrowserLoadErrorView/BrowserLoadErrorViewSource.test.mjs +0 -29
  356. package/src/components/domain/browser/BrowserLoadErrorView/index.tsx +0 -45
  357. package/src/components/domain/browser/BrowserMoreMenuView/BrowserMoreMenuView.stories.tsx +0 -66
  358. package/src/components/domain/browser/BrowserMoreMenuView/index.tsx +0 -268
  359. package/src/components/domain/browser/BrowserNavBarView/BrowserNavBarView.stories.tsx +0 -149
  360. package/src/components/domain/browser/BrowserNavBarView/index.tsx +0 -156
  361. package/src/components/domain/browser/BrowserTabBarView/index.tsx +0 -18
  362. package/src/components/domain/browser/SubAgentPane/SubAgentPane.stories.tsx +0 -96
  363. package/src/components/domain/browser/SubAgentPane/SubAgentPaneSource.test.mjs +0 -48
  364. package/src/components/domain/browser/SubAgentPane/index.tsx +0 -121
  365. package/src/components/domain/browser/TerminalPane/TerminalPane.stories.tsx +0 -95
  366. package/src/components/domain/browser/TerminalPane/TerminalPaneSource.test.mjs +0 -52
  367. package/src/components/domain/browser/TerminalPane/index.tsx +0 -75
  368. package/src/components/domain/browser/WebPreview/WebPreview.stories.tsx +0 -71
  369. package/src/components/domain/browser/WebPreview/index.tsx +0 -141
  370. package/src/components/domain/browser/WebPreviewConsole/WebPreviewConsole.stories.tsx +0 -61
  371. package/src/components/domain/browser/WebPreviewConsole/WebPreviewConsoleSource.test.mjs +0 -66
  372. package/src/components/domain/browser/WebPreviewConsole/index.tsx +0 -239
  373. package/src/components/domain/browser/WebPreviewDialog/WebPreviewDialog.stories.tsx +0 -288
  374. package/src/components/domain/browser/WebPreviewDialog/WebPreviewDialogSource.test.mjs +0 -62
  375. package/src/components/domain/browser/WebPreviewDialog/index.tsx +0 -82
  376. package/src/components/domain/browser/WebPreviewNav/WebPreviewNav.stories.tsx +0 -462
  377. package/src/components/domain/browser/WebPreviewNav/WebPreviewNavSource.test.mjs +0 -353
  378. package/src/components/domain/browser/WebPreviewNav/index.tsx +0 -351
  379. package/src/components/domain/browser/WebPreviewShell/WebPreviewShell.stories.tsx +0 -226
  380. package/src/components/domain/browser/WebPreviewShell/WebPreviewShellSource.test.mjs +0 -172
  381. package/src/components/domain/browser/WebPreviewShell/index.tsx +0 -324
  382. package/src/components/domain/browser/index.ts +0 -45
  383. package/src/components/domain/chat/AgentLoopSegment/AgentLoopSegment.stories.tsx +0 -107
  384. package/src/components/domain/chat/AgentLoopSegment/AgentLoopSegmentSource.test.mjs +0 -45
  385. package/src/components/domain/chat/AgentLoopSegment/index.tsx +0 -29
  386. package/src/components/domain/chat/AgentTurn/AgentTurn.stories.tsx +0 -162
  387. package/src/components/domain/chat/AgentTurn/AgentTurnSource.test.mjs +0 -98
  388. package/src/components/domain/chat/AgentTurn/beaconContext.ts +0 -37
  389. package/src/components/domain/chat/AgentTurn/index.tsx +0 -226
  390. package/src/components/domain/chat/ArtifactCard/ArtifactCard.stories.tsx +0 -127
  391. package/src/components/domain/chat/ArtifactCard/index.tsx +0 -249
  392. package/src/components/domain/chat/Attachment/Attachment.stories.tsx +0 -235
  393. package/src/components/domain/chat/Attachment/AttachmentSource.test.mjs +0 -160
  394. package/src/components/domain/chat/Attachment/index.tsx +0 -857
  395. package/src/components/domain/chat/AuthorizationCard/AuthorizationCard.stories.tsx +0 -53
  396. package/src/components/domain/chat/AuthorizationCard/AuthorizationCardSource.test.mjs +0 -80
  397. package/src/components/domain/chat/AuthorizationCard/index.tsx +0 -89
  398. package/src/components/domain/chat/ChatBubble/ChatBubble.stories.tsx +0 -32
  399. package/src/components/domain/chat/ChatBubble/index.tsx +0 -24
  400. package/src/components/domain/chat/ChatMessage/ChatMessage.stories.tsx +0 -31
  401. package/src/components/domain/chat/ChatMessage/index.tsx +0 -23
  402. package/src/components/domain/chat/ChatR2ReviewSource.test.mjs +0 -98
  403. package/src/components/domain/chat/ChatThinking/ChatThinking.stories.tsx +0 -125
  404. package/src/components/domain/chat/ChatThinking/index.tsx +0 -55
  405. package/src/components/domain/chat/Chatbot/Chatbot.stories.tsx +0 -49
  406. package/src/components/domain/chat/Chatbot/index.tsx +0 -37
  407. package/src/components/domain/chat/Composer/Composer.stories.tsx +0 -227
  408. package/src/components/domain/chat/Composer/ComposerSource.test.mjs +0 -175
  409. package/src/components/domain/chat/Composer/index.tsx +0 -450
  410. package/src/components/domain/chat/Composer/parts/ComposerAudioSpectrum.stories.tsx +0 -203
  411. package/src/components/domain/chat/Composer/parts/ComposerAudioSpectrum.tsx +0 -110
  412. package/src/components/domain/chat/Composer/parts/ComposerAudioSpectrumSource.test.mjs +0 -54
  413. package/src/components/domain/chat/Composer/parts/ComposerAuthorization.stories.tsx +0 -155
  414. package/src/components/domain/chat/Composer/parts/ComposerAuthorization.tsx +0 -108
  415. package/src/components/domain/chat/Composer/parts/ComposerMentions.stories.tsx +0 -76
  416. package/src/components/domain/chat/Composer/parts/ComposerMentions.tsx +0 -83
  417. package/src/components/domain/chat/Composer/parts/ComposerMentionsSource.test.mjs +0 -85
  418. package/src/components/domain/chat/Composer/parts/ComposerMenu.stories.tsx +0 -266
  419. package/src/components/domain/chat/Composer/parts/ComposerMenu.tsx +0 -232
  420. package/src/components/domain/chat/Composer/parts/ComposerMenuPopover.stories.tsx +0 -166
  421. package/src/components/domain/chat/Composer/parts/ComposerMenuPopover.tsx +0 -87
  422. package/src/components/domain/chat/Composer/parts/ComposerMenuPopoverSource.test.mjs +0 -56
  423. package/src/components/domain/chat/Composer/parts/ComposerPopover.stories.tsx +0 -257
  424. package/src/components/domain/chat/Composer/parts/ComposerPopover.tsx +0 -221
  425. package/src/components/domain/chat/Composer/parts/ComposerPopoverSource.test.mjs +0 -71
  426. package/src/components/domain/chat/Composer/parts/ComposerProjectPicker.stories.tsx +0 -260
  427. package/src/components/domain/chat/Composer/parts/ComposerProjectPicker.tsx +0 -246
  428. package/src/components/domain/chat/Composer/parts/ComposerProjectPickerSource.test.mjs +0 -46
  429. package/src/components/domain/chat/Composer/parts/ComposerQueue.stories.tsx +0 -275
  430. package/src/components/domain/chat/Composer/parts/ComposerQueue.tsx +0 -155
  431. package/src/components/domain/chat/Composer/parts/ComposerQueueSource.test.mjs +0 -95
  432. package/src/components/domain/chat/Composer/parts/ComposerVoiceInput.stories.tsx +0 -77
  433. package/src/components/domain/chat/Composer/parts/ComposerVoiceInput.tsx +0 -70
  434. package/src/components/domain/chat/Composer/parts/mountChip.ts +0 -21
  435. package/src/components/domain/chat/ContextUsage/ContextUsage.stories.tsx +0 -62
  436. package/src/components/domain/chat/ContextUsage/index.tsx +0 -69
  437. package/src/components/domain/chat/ExecutionSummary/ExecutionSummary.stories.tsx +0 -238
  438. package/src/components/domain/chat/ExecutionSummary/ExecutionSummarySource.test.mjs +0 -210
  439. package/src/components/domain/chat/ExecutionSummary/index.tsx +0 -487
  440. package/src/components/domain/chat/Message/Message.stories.tsx +0 -264
  441. package/src/components/domain/chat/Message/index.tsx +0 -44
  442. package/src/components/domain/chat/MessageActions/MessageActions.stories.tsx +0 -132
  443. package/src/components/domain/chat/MessageActions/MessageActionsSource.test.mjs +0 -79
  444. package/src/components/domain/chat/MessageActions/index.tsx +0 -186
  445. package/src/components/domain/chat/PlanCard/PlanCard.stories.tsx +0 -87
  446. package/src/components/domain/chat/PlanCard/index.tsx +0 -170
  447. package/src/components/domain/chat/RichContent/RichContent.stories.tsx +0 -102
  448. package/src/components/domain/chat/RichContent/RichContentSource.test.mjs +0 -82
  449. package/src/components/domain/chat/RichContent/index.tsx +0 -465
  450. package/src/components/domain/chat/SubAgentThread/SubAgentThread.stories.tsx +0 -119
  451. package/src/components/domain/chat/SubAgentThread/index.tsx +0 -104
  452. package/src/components/domain/chat/Thinking/Thinking.stories.tsx +0 -196
  453. package/src/components/domain/chat/Thinking/ThinkingInlineSource.test.mjs +0 -154
  454. package/src/components/domain/chat/Thinking/index.tsx +0 -237
  455. package/src/components/domain/chat/ToolCallRow/ToolCallRow.stories.tsx +0 -105
  456. package/src/components/domain/chat/ToolCallRow/ToolCallRowSource.test.mjs +0 -83
  457. package/src/components/domain/chat/ToolCallRow/index.tsx +0 -113
  458. package/src/components/domain/chat/Transcript/Transcript.stories.tsx +0 -296
  459. package/src/components/domain/chat/Transcript/TranscriptSource.test.mjs +0 -189
  460. package/src/components/domain/chat/Transcript/index.tsx +0 -187
  461. package/src/components/domain/chat/TranscriptSpine/TranscriptSpine.stories.tsx +0 -124
  462. package/src/components/domain/chat/TranscriptSpine/index.tsx +0 -245
  463. package/src/components/domain/chat/UserTurn/UserTurn.stories.tsx +0 -176
  464. package/src/components/domain/chat/UserTurn/UserTurnSource.test.mjs +0 -150
  465. package/src/components/domain/chat/UserTurn/index.tsx +0 -194
  466. package/src/components/domain/chat/index.ts +0 -22
  467. package/src/components/domain/desktop/DesktopAccountMenuView/DesktopAccountMenuView.stories.tsx +0 -116
  468. package/src/components/domain/desktop/DesktopAccountMenuView/DesktopAccountMenuViewSource.test.mjs +0 -80
  469. package/src/components/domain/desktop/DesktopAccountMenuView/index.tsx +0 -355
  470. package/src/components/domain/desktop/DesktopAppearanceSettings/DesktopAppearanceSettings.stories.tsx +0 -96
  471. package/src/components/domain/desktop/DesktopAppearanceSettings/DesktopAppearanceSettingsSource.test.mjs +0 -89
  472. package/src/components/domain/desktop/DesktopAppearanceSettings/index.tsx +0 -155
  473. package/src/components/domain/desktop/DesktopAssistantConfigView/DesktopAssistantConfigView.stories.tsx +0 -275
  474. package/src/components/domain/desktop/DesktopAssistantConfigView/DesktopAssistantConfigViewSource.test.mjs +0 -37
  475. package/src/components/domain/desktop/DesktopAssistantConfigView/index.tsx +0 -221
  476. package/src/components/domain/desktop/DesktopCatalogView/DesktopCatalogView.stories.tsx +0 -537
  477. package/src/components/domain/desktop/DesktopCatalogView/DesktopCatalogViewSource.test.mjs +0 -339
  478. package/src/components/domain/desktop/DesktopCatalogView/index.tsx +0 -1074
  479. package/src/components/domain/desktop/DesktopChatBranchDivider/DesktopChatBranchDivider.stories.tsx +0 -58
  480. package/src/components/domain/desktop/DesktopChatBranchDivider/index.tsx +0 -33
  481. package/src/components/domain/desktop/DesktopChatEmptyStateView/DesktopChatEmptyStateView.stories.tsx +0 -75
  482. package/src/components/domain/desktop/DesktopChatEmptyStateView/DesktopChatEmptyStateViewSource.test.mjs +0 -54
  483. package/src/components/domain/desktop/DesktopChatEmptyStateView/index.tsx +0 -64
  484. package/src/components/domain/desktop/DesktopChatHeaderView/DesktopChatHeaderView.stories.tsx +0 -83
  485. package/src/components/domain/desktop/DesktopChatHeaderView/DesktopChatHeaderViewSource.test.mjs +0 -126
  486. package/src/components/domain/desktop/DesktopChatHeaderView/index.tsx +0 -169
  487. package/src/components/domain/desktop/DesktopChatMessageView/DesktopChatMessageView.stories.tsx +0 -170
  488. package/src/components/domain/desktop/DesktopChatMessageView/DesktopChatMessageViewSource.test.mjs +0 -47
  489. package/src/components/domain/desktop/DesktopChatMessageView/index.tsx +0 -213
  490. package/src/components/domain/desktop/DesktopChatTurnView/DesktopChatTurnView.stories.tsx +0 -498
  491. package/src/components/domain/desktop/DesktopChatTurnView/DesktopChatTurnViewSource.test.mjs +0 -187
  492. package/src/components/domain/desktop/DesktopChatTurnView/index.tsx +0 -490
  493. package/src/components/domain/desktop/DesktopComposer/DesktopComposer.stories.tsx +0 -195
  494. package/src/components/domain/desktop/DesktopComposer/DesktopComposerModelPickerSource.test.mjs +0 -132
  495. package/src/components/domain/desktop/DesktopComposer/DesktopComposerMountChipSource.test.mjs +0 -43
  496. package/src/components/domain/desktop/DesktopComposer/DesktopComposerResponsiveSource.test.mjs +0 -44
  497. package/src/components/domain/desktop/DesktopComposer/DesktopMcpFormThemeSource.test.mjs +0 -30
  498. package/src/components/domain/desktop/DesktopComposer/index.tsx +0 -206
  499. package/src/components/domain/desktop/DesktopConnectorDetailView/DesktopConnectorDetailView.stories.tsx +0 -72
  500. package/src/components/domain/desktop/DesktopConnectorDetailView/DesktopConnectorDetailViewSource.test.mjs +0 -81
  501. package/src/components/domain/desktop/DesktopConnectorDetailView/index.tsx +0 -301
  502. package/src/components/domain/desktop/DesktopHomeView/DesktopHomeView.stories.tsx +0 -103
  503. package/src/components/domain/desktop/DesktopHomeView/DesktopHomeViewSource.test.mjs +0 -51
  504. package/src/components/domain/desktop/DesktopHomeView/index.tsx +0 -122
  505. package/src/components/domain/desktop/DesktopLibraryAuthorizationDialog/DesktopLibraryAuthorizationDialog.stories.tsx +0 -55
  506. package/src/components/domain/desktop/DesktopLibraryAuthorizationDialog/DesktopLibraryAuthorizationDialogSource.test.mjs +0 -22
  507. package/src/components/domain/desktop/DesktopLibraryAuthorizationDialog/index.tsx +0 -171
  508. package/src/components/domain/desktop/DesktopLibraryPageView/DesktopLibraryPageView.stories.tsx +0 -49
  509. package/src/components/domain/desktop/DesktopLibraryPageView/index.tsx +0 -49
  510. package/src/components/domain/desktop/DesktopLoginView/DesktopLoginView.css +0 -75
  511. package/src/components/domain/desktop/DesktopLoginView/DesktopLoginView.stories.tsx +0 -230
  512. package/src/components/domain/desktop/DesktopLoginView/DesktopLoginViewSource.test.mjs +0 -156
  513. package/src/components/domain/desktop/DesktopLoginView/index.tsx +0 -432
  514. package/src/components/domain/desktop/DesktopOnboardingTourView/DesktopOnboardingTourView.stories.tsx +0 -103
  515. package/src/components/domain/desktop/DesktopOnboardingTourView/DesktopOnboardingTourViewSource.test.mjs +0 -57
  516. package/src/components/domain/desktop/DesktopOnboardingTourView/index.tsx +0 -189
  517. package/src/components/domain/desktop/DesktopPet/DesktopPet.fixture.ts +0 -243
  518. package/src/components/domain/desktop/DesktopPet/DesktopPet.stories.tsx +0 -337
  519. package/src/components/domain/desktop/DesktopPet/DesktopPetSource.test.mjs +0 -191
  520. package/src/components/domain/desktop/DesktopPet/index.tsx +0 -591
  521. package/src/components/domain/desktop/DesktopPetSettings/DesktopPetSettings.stories.tsx +0 -159
  522. package/src/components/domain/desktop/DesktopPetSettings/DesktopPetSettingsSource.test.mjs +0 -76
  523. package/src/components/domain/desktop/DesktopPetSettings/index.tsx +0 -140
  524. package/src/components/domain/desktop/DesktopRunStatusView/DesktopRunStatusView.stories.tsx +0 -166
  525. package/src/components/domain/desktop/DesktopRunStatusView/DesktopRunStatusViewSource.test.mjs +0 -51
  526. package/src/components/domain/desktop/DesktopRunStatusView/index.tsx +0 -34
  527. package/src/components/domain/desktop/DesktopSelectionCard/DesktopSelectionCard.stories.tsx +0 -122
  528. package/src/components/domain/desktop/DesktopSelectionCard/DesktopSelectionCardSource.test.mjs +0 -42
  529. package/src/components/domain/desktop/DesktopSelectionCard/index.tsx +0 -75
  530. package/src/components/domain/desktop/DesktopSettingsMemorySection/DesktopSettingsMemorySection.stories.tsx +0 -225
  531. package/src/components/domain/desktop/DesktopSettingsMemorySection/DesktopSettingsMemorySectionSource.test.mjs +0 -105
  532. package/src/components/domain/desktop/DesktopSettingsMemorySection/index.tsx +0 -340
  533. package/src/components/domain/desktop/DesktopSettingsView/DesktopSettingsView.stories.tsx +0 -177
  534. package/src/components/domain/desktop/DesktopSettingsView/DesktopSettingsViewSource.test.mjs +0 -195
  535. package/src/components/domain/desktop/DesktopSettingsView/index.tsx +0 -176
  536. package/src/components/domain/desktop/DesktopShareSelectionBarView/DesktopShareSelectionBarView.stories.tsx +0 -77
  537. package/src/components/domain/desktop/DesktopShareSelectionBarView/DesktopShareSelectionBarViewSource.test.mjs +0 -76
  538. package/src/components/domain/desktop/DesktopShareSelectionBarView/index.tsx +0 -55
  539. package/src/components/domain/desktop/DesktopSidebarView/DesktopSidebarView.stories.tsx +0 -454
  540. package/src/components/domain/desktop/DesktopSidebarView/DesktopSidebarViewSource.test.mjs +0 -388
  541. package/src/components/domain/desktop/DesktopSidebarView/index.tsx +0 -1111
  542. package/src/components/domain/desktop/DesktopSiteReleasesView/DesktopSiteReleasesView.stories.tsx +0 -369
  543. package/src/components/domain/desktop/DesktopSiteReleasesView/DesktopSiteReleasesViewSource.test.mjs +0 -123
  544. package/src/components/domain/desktop/DesktopSiteReleasesView/index.tsx +0 -392
  545. package/src/components/domain/desktop/DesktopSitesListView/DesktopSitesListView.stories.tsx +0 -244
  546. package/src/components/domain/desktop/DesktopSitesListView/DesktopSitesListViewSource.test.mjs +0 -198
  547. package/src/components/domain/desktop/DesktopSitesListView/index.tsx +0 -417
  548. package/src/components/domain/desktop/DesktopSkillsPageView/DesktopSkillsPageView.stories.tsx +0 -230
  549. package/src/components/domain/desktop/DesktopSkillsPageView/DesktopSkillsPageViewSource.test.mjs +0 -149
  550. package/src/components/domain/desktop/DesktopSkillsPageView/index.tsx +0 -235
  551. package/src/components/domain/desktop/DesktopTaskDetailView/index.tsx +0 -111
  552. package/src/components/domain/desktop/DesktopToolCallView/DesktopToolCallListViewSource.test.mjs +0 -302
  553. package/src/components/domain/desktop/DesktopToolCallView/DesktopToolCallView.stories.tsx +0 -409
  554. package/src/components/domain/desktop/DesktopToolCallView/index.tsx +0 -388
  555. package/src/components/domain/desktop/DesktopWorkbenchShell/DesktopWorkbenchShell.stories.tsx +0 -418
  556. package/src/components/domain/desktop/DesktopWorkbenchShell/DesktopWorkbenchShellSource.test.mjs +0 -151
  557. package/src/components/domain/desktop/DesktopWorkbenchShell/index.tsx +0 -167
  558. package/src/components/domain/desktop/DesktopWorkspacePageView/DesktopWorkspacePageView.stories.tsx +0 -135
  559. package/src/components/domain/desktop/DesktopWorkspacePageView/DesktopWorkspacePageViewSource.test.mjs +0 -57
  560. package/src/components/domain/desktop/DesktopWorkspacePageView/index.tsx +0 -114
  561. package/src/components/domain/desktop/DesktopWorkspaceView/DesktopWorkspaceView.stories.tsx +0 -227
  562. package/src/components/domain/desktop/DesktopWorkspaceView/DesktopWorkspaceViewSource.test.mjs +0 -175
  563. package/src/components/domain/desktop/DesktopWorkspaceView/index.tsx +0 -580
  564. package/src/components/domain/desktop/ResourceManagement/ResourceManagement.stories.tsx +0 -19
  565. package/src/components/domain/desktop/ResourceManagement/ResourceManagementSource.test.mjs +0 -54
  566. package/src/components/domain/desktop/ResourceManagement/SharesList.tsx +0 -323
  567. package/src/components/domain/desktop/ResourceManagement/SnapshotViews.tsx +0 -92
  568. package/src/components/domain/desktop/ResourceManagement/SnapshotViewsSource.test.mjs +0 -15
  569. package/src/components/domain/desktop/ResourceManagement/index.tsx +0 -246
  570. package/src/components/domain/desktop/ShareSettingsDialogView/index.tsx +0 -234
  571. package/src/components/domain/desktop/SidePanelEmpty/SidePanelEmpty.stories.tsx +0 -100
  572. package/src/components/domain/desktop/SidePanelEmpty/SidePanelEmptySource.test.mjs +0 -67
  573. package/src/components/domain/desktop/SidePanelEmpty/index.tsx +0 -113
  574. package/src/components/domain/desktop/StarterCapsules/StarterCapsules.stories.tsx +0 -65
  575. package/src/components/domain/desktop/StarterCapsules/StarterCapsulesSource.test.mjs +0 -43
  576. package/src/components/domain/desktop/StarterCapsules/index.tsx +0 -90
  577. package/src/components/domain/desktop/WorkbenchSidePanel/WorkbenchSidePanel.stories.tsx +0 -59
  578. package/src/components/domain/desktop/WorkbenchSidePanel/WorkbenchSidePanelSource.test.mjs +0 -51
  579. package/src/components/domain/desktop/WorkbenchSidePanel/index.tsx +0 -74
  580. package/src/components/domain/desktop/WorkspaceMigrateConfirm/WorkspaceMigrateConfirm.stories.tsx +0 -79
  581. package/src/components/domain/desktop/WorkspaceMigrateConfirm/WorkspaceMigrateConfirmSource.test.mjs +0 -34
  582. package/src/components/domain/desktop/WorkspaceMigrateConfirm/index.tsx +0 -92
  583. package/src/components/domain/desktop/index.ts +0 -64
  584. package/src/components/domain/files/FileBrowser/FileBrowser.stories.tsx +0 -397
  585. package/src/components/domain/files/FileBrowser/FileBrowserSource.test.mjs +0 -75
  586. package/src/components/domain/files/FileBrowser/index.tsx +0 -221
  587. package/src/components/domain/files/FileIcon/FileIcon.stories.tsx +0 -207
  588. package/src/components/domain/files/FileIcon/FileIconSource.test.mjs +0 -39
  589. package/src/components/domain/files/FileIcon/index.tsx +0 -133
  590. package/src/components/domain/files/FilePreviewContentView/FilePreviewContentView.stories.tsx +0 -242
  591. package/src/components/domain/files/FilePreviewContentView/FilePreviewContentViewSource.test.mjs +0 -44
  592. package/src/components/domain/files/FilePreviewContentView/index.tsx +0 -125
  593. package/src/components/domain/files/FileTree/FileTree.stories.tsx +0 -204
  594. package/src/components/domain/files/FileTree/FileTreeSource.test.mjs +0 -18
  595. package/src/components/domain/files/FileTree/index.tsx +0 -106
  596. package/src/components/domain/files/PreviewDialog/PreviewDialog.stories.tsx +0 -178
  597. package/src/components/domain/files/PreviewDialog/PreviewDialogSource.test.mjs +0 -92
  598. package/src/components/domain/files/PreviewDialog/index.tsx +0 -294
  599. package/src/components/domain/files/index.ts +0 -5
  600. package/src/components/domain/index.ts +0 -8
  601. package/src/components/domain/office/CsvPreview/CsvPreview.stories.tsx +0 -264
  602. package/src/components/domain/office/CsvPreview/CsvPreviewSource.test.mjs +0 -77
  603. package/src/components/domain/office/CsvPreview/index.tsx +0 -224
  604. package/src/components/domain/office/OfficePreview/OfficePreview.stories.tsx +0 -265
  605. package/src/components/domain/office/OfficePreview/OfficePreviewDialog.stories.tsx +0 -71
  606. package/src/components/domain/office/OfficePreview/OfficePreviewDialog.tsx +0 -43
  607. package/src/components/domain/office/OfficePreview/OfficePreviewSource.test.mjs +0 -126
  608. package/src/components/domain/office/OfficePreview/index.tsx +0 -782
  609. package/src/components/domain/office/PdfPreview/PdfPreview.stories.tsx +0 -280
  610. package/src/components/domain/office/PdfPreview/PdfPreviewDialog.stories.tsx +0 -61
  611. package/src/components/domain/office/PdfPreview/PdfPreviewDialog.tsx +0 -61
  612. package/src/components/domain/office/PdfPreview/PdfPreviewSource.test.mjs +0 -70
  613. package/src/components/domain/office/PdfPreview/index.tsx +0 -217
  614. package/src/components/domain/office/index.ts +0 -5
  615. package/src/components/domain/skills/McpServerListView/McpServerListView.stories.tsx +0 -510
  616. package/src/components/domain/skills/McpServerListView/McpServerListViewSource.test.mjs +0 -101
  617. package/src/components/domain/skills/McpServerListView/index.tsx +0 -250
  618. package/src/components/domain/skills/SkillAvatarView/SkillAvatarView.stories.tsx +0 -121
  619. package/src/components/domain/skills/SkillAvatarView/SkillAvatarViewSource.test.mjs +0 -67
  620. package/src/components/domain/skills/SkillAvatarView/index.tsx +0 -112
  621. package/src/components/domain/skills/SkillCardView/SkillCardView.stories.tsx +0 -374
  622. package/src/components/domain/skills/SkillCardView/SkillCardViewSource.test.mjs +0 -35
  623. package/src/components/domain/skills/SkillCardView/index.tsx +0 -88
  624. package/src/components/domain/skills/SkillDetailPanelView/SkillDetailPanelView.stories.tsx +0 -113
  625. package/src/components/domain/skills/SkillDetailPanelView/index.tsx +0 -115
  626. package/src/components/domain/skills/SkillDetailView/SkillDetailView.stories.tsx +0 -274
  627. package/src/components/domain/skills/SkillDetailView/index.tsx +0 -121
  628. package/src/components/domain/skills/SkillImportDialogView/SkillImportDialogView.stories.tsx +0 -128
  629. package/src/components/domain/skills/SkillImportDialogView/SkillImportDialogViewSource.test.mjs +0 -11
  630. package/src/components/domain/skills/SkillImportDialogView/index.tsx +0 -147
  631. package/src/components/domain/skills/ToolDetailModalView/ToolDetailModalView.stories.tsx +0 -160
  632. package/src/components/domain/skills/ToolDetailModalView/ToolDetailModalViewSource.test.mjs +0 -99
  633. package/src/components/domain/skills/ToolDetailModalView/index.tsx +0 -160
  634. package/src/components/domain/skills/index.ts +0 -7
  635. package/src/components/domain/tasks/ScheduledTaskCardView/ScheduledTaskCardView.stories.tsx +0 -120
  636. package/src/components/domain/tasks/ScheduledTaskCardView/ScheduledTaskCardViewSource.test.mjs +0 -40
  637. package/src/components/domain/tasks/ScheduledTaskCardView/index.tsx +0 -135
  638. package/src/components/domain/tasks/ScheduledTaskDeleteDialog/ScheduledTaskDeleteDialog.stories.tsx +0 -56
  639. package/src/components/domain/tasks/ScheduledTaskDeleteDialog/ScheduledTaskDeleteDialogSource.test.mjs +0 -35
  640. package/src/components/domain/tasks/ScheduledTaskDeleteDialog/index.tsx +0 -73
  641. package/src/components/domain/tasks/ScheduledTaskDetailView/ScheduledTaskDetailView.stories.tsx +0 -121
  642. package/src/components/domain/tasks/ScheduledTaskDetailView/ScheduledTaskDetailViewSource.test.mjs +0 -115
  643. package/src/components/domain/tasks/ScheduledTaskDetailView/index.tsx +0 -223
  644. package/src/components/domain/tasks/ScheduledTasksSpaceView/ScheduledTasksSpaceView.stories.tsx +0 -526
  645. package/src/components/domain/tasks/ScheduledTasksSpaceView/ScheduledTasksSpaceViewSource.test.mjs +0 -85
  646. package/src/components/domain/tasks/ScheduledTasksSpaceView/index.tsx +0 -118
  647. package/src/components/domain/tasks/index.ts +0 -4
  648. package/src/components/domain/theme/SkinManager.stories.tsx +0 -43
  649. package/src/components/domain/theme/SkinManagerUI.tsx +0 -382
  650. package/src/components/domain/theme/ThemeDemo.stories.tsx +0 -12
  651. package/src/components/domain/theme/ThemeDemo.tsx +0 -224
  652. package/src/components/index.ts +0 -11
  653. package/src/components/primitives/Avatar/Avatar.stories.tsx +0 -170
  654. package/src/components/primitives/Avatar/AvatarSource.test.mjs +0 -37
  655. package/src/components/primitives/Avatar/index.tsx +0 -180
  656. package/src/components/primitives/BackTop/BackTop.stories.tsx +0 -122
  657. package/src/components/primitives/BackTop/BackTopSource.test.mjs +0 -61
  658. package/src/components/primitives/BackTop/index.tsx +0 -93
  659. package/src/components/primitives/Badge/Badge.stories.tsx +0 -376
  660. package/src/components/primitives/Badge/BadgeSource.test.mjs +0 -27
  661. package/src/components/primitives/Badge/index.tsx +0 -65
  662. package/src/components/primitives/Button/Button.stories.tsx +0 -287
  663. package/src/components/primitives/Button/ButtonSource.test.mjs +0 -84
  664. package/src/components/primitives/Button/index.tsx +0 -219
  665. package/src/components/primitives/Card/Card.stories.tsx +0 -186
  666. package/src/components/primitives/Card/CardSource.test.mjs +0 -73
  667. package/src/components/primitives/Card/index.tsx +0 -137
  668. package/src/components/primitives/Checkbox/Checkbox.stories.tsx +0 -79
  669. package/src/components/primitives/Checkbox/CheckboxSource.test.mjs +0 -43
  670. package/src/components/primitives/Checkbox/index.tsx +0 -87
  671. package/src/components/primitives/Chip/Chip.stories.tsx +0 -149
  672. package/src/components/primitives/Chip/ChipSource.test.mjs +0 -73
  673. package/src/components/primitives/Chip/index.tsx +0 -252
  674. package/src/components/primitives/Divider/Divider.stories.tsx +0 -68
  675. package/src/components/primitives/Divider/DividerSource.test.mjs +0 -26
  676. package/src/components/primitives/Divider/index.tsx +0 -65
  677. package/src/components/primitives/Dropdown/Dropdown.stories.tsx +0 -38
  678. package/src/components/primitives/Dropdown/DropdownSource.test.mjs +0 -23
  679. package/src/components/primitives/Dropdown/index.tsx +0 -29
  680. package/src/components/primitives/EmptyState/EmptyState.stories.tsx +0 -159
  681. package/src/components/primitives/EmptyState/EmptyStateSource.test.mjs +0 -169
  682. package/src/components/primitives/EmptyState/index.tsx +0 -185
  683. package/src/components/primitives/ErrorCard/ErrorCard.stories.tsx +0 -50
  684. package/src/components/primitives/ErrorCard/index.tsx +0 -78
  685. package/src/components/primitives/Field/Field.stories.tsx +0 -208
  686. package/src/components/primitives/Field/FieldSource.test.mjs +0 -70
  687. package/src/components/primitives/Field/index.tsx +0 -297
  688. package/src/components/primitives/InlineMessage/InlineMessage.stories.tsx +0 -137
  689. package/src/components/primitives/InlineMessage/InlineMessageSource.test.mjs +0 -50
  690. package/src/components/primitives/InlineMessage/index.tsx +0 -141
  691. package/src/components/primitives/Input/Input.stories.tsx +0 -30
  692. package/src/components/primitives/Input/index.tsx +0 -12
  693. package/src/components/primitives/Keycap/Keycap.stories.tsx +0 -93
  694. package/src/components/primitives/Keycap/KeycapSource.test.mjs +0 -30
  695. package/src/components/primitives/Keycap/index.tsx +0 -67
  696. package/src/components/primitives/Menu/Menu.stories.tsx +0 -416
  697. package/src/components/primitives/Menu/MenuEmptySource.test.mjs +0 -23
  698. package/src/components/primitives/Menu/MenuSource.test.mjs +0 -207
  699. package/src/components/primitives/Menu/index.tsx +0 -923
  700. package/src/components/primitives/Pagination/Pagination.stories.tsx +0 -77
  701. package/src/components/primitives/Pagination/PaginationSource.test.mjs +0 -24
  702. package/src/components/primitives/Pagination/index.tsx +0 -85
  703. package/src/components/primitives/Pagination/pagination.ts +0 -25
  704. package/src/components/primitives/Pagination/paginationModel.test.mjs +0 -18
  705. package/src/components/primitives/ProgressBar/ProgressBar.stories.tsx +0 -103
  706. package/src/components/primitives/ProgressBar/ProgressBarSource.test.mjs +0 -44
  707. package/src/components/primitives/ProgressBar/index.tsx +0 -68
  708. package/src/components/primitives/Radio/Radio.stories.tsx +0 -84
  709. package/src/components/primitives/Radio/RadioSource.test.mjs +0 -38
  710. package/src/components/primitives/Radio/index.tsx +0 -161
  711. package/src/components/primitives/SegmentedControl/SegmentedControl.stories.tsx +0 -110
  712. package/src/components/primitives/SegmentedControl/SegmentedControlSource.test.mjs +0 -75
  713. package/src/components/primitives/SegmentedControl/index.tsx +0 -188
  714. package/src/components/primitives/Select/Select.stories.tsx +0 -158
  715. package/src/components/primitives/Select/SelectSource.test.mjs +0 -94
  716. package/src/components/primitives/Select/index.tsx +0 -406
  717. package/src/components/primitives/Spinner/index.tsx +0 -58
  718. package/src/components/primitives/Switch/Switch.stories.tsx +0 -64
  719. package/src/components/primitives/Switch/SwitchSource.test.mjs +0 -38
  720. package/src/components/primitives/Switch/index.tsx +0 -84
  721. package/src/components/primitives/Tabs/Tabs.stories.tsx +0 -230
  722. package/src/components/primitives/Tabs/TabsSource.test.mjs +0 -91
  723. package/src/components/primitives/Tabs/index.tsx +0 -183
  724. package/src/components/primitives/index.ts +0 -24
  725. package/src/examples/ResourceManagementExample.tsx +0 -119
  726. package/src/examples/SiteWorkbenchExample.tsx +0 -96
  727. package/src/hooks/index.ts +0 -7
  728. package/src/hooks/useClickOutside.ts +0 -20
  729. package/src/hooks/useDragReorder.ts +0 -29
  730. package/src/hooks/useImeAwareEnter.ts +0 -59
  731. package/src/hooks/useImeAwareEnterSource.test.mjs +0 -65
  732. package/src/hooks/useKeyboard.ts +0 -16
  733. package/src/hooks/usePopover.ts +0 -67
  734. package/src/hooks/useSelectedOptionLocator.ts +0 -33
  735. package/src/hooks/useSidebarResize.ts +0 -107
  736. package/src/hooks/useTenantTheme.ts +0 -53
  737. package/src/hooks/useUnifiedTheme.ts +0 -85
  738. package/src/index.ts +0 -6
  739. package/src/lib/InjectedStyleTokenMirrorSource.test.mjs +0 -67
  740. package/src/lib/about-window.test.mjs +0 -46
  741. package/src/lib/about-window.ts +0 -218
  742. package/src/lib/appearance.test.mjs +0 -283
  743. package/src/lib/appearance.ts +0 -46
  744. package/src/lib/browser-annotation-popup.ts +0 -151
  745. package/src/lib/focusTrap.ts +0 -51
  746. package/src/lib/index.ts +0 -5
  747. package/src/lib/shortcut.test.mjs +0 -100
  748. package/src/lib/shortcut.ts +0 -97
  749. package/src/lib/twMergeOw.ts +0 -18
  750. package/src/lib/utils.ts +0 -6
  751. package/src/screens/Browser.stories.tsx +0 -353
  752. package/src/screens/Chat.stories.tsx +0 -808
  753. package/src/screens/Home.stories.tsx +0 -253
  754. package/src/screens/Login.stories.tsx +0 -134
  755. package/src/screens/McpManager.stories.tsx +0 -159
  756. package/src/screens/Onboarding.stories.tsx +0 -155
  757. package/src/screens/ScheduledTasks.stories.tsx +0 -134
  758. package/src/screens/ScreenFrameSource.test.mjs +0 -77
  759. package/src/screens/SettingsAppearance.stories.tsx +0 -117
  760. package/src/screens/SettingsMemory.stories.tsx +0 -128
  761. package/src/screens/SettingsModels.stories.tsx +0 -228
  762. package/src/screens/SettingsSections.stories.tsx +0 -164
  763. package/src/screens/Share.stories.tsx +0 -202
  764. package/src/screens/SharePage.stories.tsx +0 -29
  765. package/src/screens/Sites.stories.tsx +0 -183
  766. package/src/screens/Skills.stories.tsx +0 -83
  767. package/src/screens/Workspace.stories.tsx +0 -191
  768. package/src/screens/_home.tsx +0 -46
  769. package/src/screens/_screen.tsx +0 -355
  770. package/src/screens/_settingsNav.ts +0 -27
  771. package/src/screens/_skillsCatalog.tsx +0 -372
  772. package/src/theme/SkinDenylistSyncSource.test.mjs +0 -124
  773. package/src/theme/__tests__/skins.test.mjs +0 -84
  774. package/src/theme/core/semanticAdapter.ts +0 -116
  775. package/src/theme/core/skin.ts +0 -605
  776. package/src/theme/core/skinScoped.ts +0 -289
  777. package/src/theme/core/tenantTheme.test.mjs +0 -127
  778. package/src/theme/core/tenantTheme.ts +0 -124
  779. package/src/theme/core/types.ts +0 -60
  780. package/src/theme/core/unifiedTheme.ts +0 -157
  781. package/src/theme/index.ts +0 -33
  782. package/src/theme/providers/BrandingProvider.tsx +0 -57
  783. package/src/theme/providers/ThemeProvider.tsx +0 -221
  784. package/src/theme/skinDs2PropertyGate.test.mjs +0 -109
  785. package/src/theme/skins/index.ts +0 -107
  786. package/src/theme/utils/cssSafety.ts +0 -92
  787. package/src/theme/utils/skinManager.ts +0 -159
  788. package/src/theme/utils/themeApplier.ts +0 -75
  789. package/src/tokens/DesktopSurfacesSweep15Source.test.mjs +0 -77
  790. package/src/tokens/SharedStyleSheetsSource.test.mjs +0 -90
  791. package/src/tokens/TailwindThemeSupplySource.test.mjs +0 -129
  792. package/src/tokens/base.ts +0 -199
  793. package/src/tokens/dark.ts +0 -288
  794. package/src/tokens/index.ts +0 -4
  795. package/src/tokens/light.ts +0 -320
  796. package/src/tokens/tailwind.ts +0 -216
  797. package/src/types/desktop-pet.ts +0 -100
  798. package/src/types/file-browser.ts +0 -51
  799. package/src/types/file-tree.ts +0 -34
  800. package/src/types/index.ts +0 -3
  801. package/src/types/xspreadsheet.d.ts +0 -4
  802. package/src/utils/cn.ts +0 -6
  803. package/src/utils/glyphColor.ts +0 -32
  804. package/src/utils/index.ts +0 -4
  805. package/src/utils/localPathInline.test.mjs +0 -45
  806. package/src/utils/localPathInline.ts +0 -49
  807. package/src/utils/markdownFileRefs.test.mjs +0 -88
  808. package/src/utils/markdownFileRefs.ts +0 -140
  809. package/src/utils/office-excel.ts +0 -452
  810. package/src/utils/shiki.ts +0 -156
@@ -0,0 +1,200 @@
1
+ // src/slot/core.ts
2
+ function defineSlot(kind, mode) {
3
+ return { kind, mode };
4
+ }
5
+ var EMPTY_ENTRIES = Object.freeze([]);
6
+ function assertKnownRegistrationKeys(value, kind) {
7
+ const allowed = /* @__PURE__ */ new Set([
8
+ "name",
9
+ "locale",
10
+ "inject",
11
+ ...kind === "list" ? ["id", "order"] : [],
12
+ ...kind === "keyed" ? ["key"] : []
13
+ ]);
14
+ const unknown = Object.keys(value).find((key) => !allowed.has(key));
15
+ if (unknown) throw new Error(`Slot "${value.name}" registration contains unsupported field: ${unknown}`);
16
+ }
17
+ function cellOf(entry) {
18
+ if (entry.kind === "list") return entry.id;
19
+ if (entry.kind === "keyed") return entry.key;
20
+ return "single";
21
+ }
22
+ function createSlotCore() {
23
+ const declarations = /* @__PURE__ */ new Map();
24
+ const entries = /* @__PURE__ */ new Map();
25
+ const listeners = /* @__PURE__ */ new Map();
26
+ const versions = /* @__PURE__ */ new Map();
27
+ let sequence = 0;
28
+ const notify = (name) => {
29
+ versions.set(name, (versions.get(name) ?? 0) + 1);
30
+ for (const listener of listeners.get(name) ?? []) listener();
31
+ };
32
+ return {
33
+ declare(name, decl) {
34
+ if (declarations.has(name)) throw new Error(`Slot "${name}" is already declared`);
35
+ const token = Symbol(name);
36
+ declarations.set(name, { token, kind: decl.kind });
37
+ entries.set(name, []);
38
+ notify(name);
39
+ let disposed = false;
40
+ return () => {
41
+ if (disposed) return;
42
+ disposed = true;
43
+ if (declarations.get(name)?.token !== token) return;
44
+ declarations.delete(name);
45
+ entries.delete(name);
46
+ notify(name);
47
+ };
48
+ },
49
+ register(options, renderer) {
50
+ const declaration = declarations.get(options.name);
51
+ if (!declaration) throw new Error(`Slot "${options.name}" must be declared before registration`);
52
+ if (typeof renderer !== "function") throw new Error(`Slot "${options.name}" renderer must be a function`);
53
+ const raw = options;
54
+ const order = raw.order ?? 0;
55
+ if (!Number.isFinite(order)) throw new Error(`Slot "${options.name}" order must be a finite number`);
56
+ if (raw.inject !== void 0 && typeof raw.inject !== "function") {
57
+ throw new Error(`Slot "${options.name}" inject must be a function`);
58
+ }
59
+ if (declaration.kind === "single" && (raw.id !== void 0 || raw.key !== void 0 || raw.order !== void 0)) {
60
+ throw new Error(`Single slot "${options.name}" does not accept id, key, or order`);
61
+ }
62
+ if (declaration.kind === "list") {
63
+ if (typeof raw.id !== "string" || raw.id.trim() === "") {
64
+ throw new Error(`List slot "${options.name}" requires a non-empty id`);
65
+ }
66
+ if (raw.key !== void 0) throw new Error(`List slot "${options.name}" does not accept key`);
67
+ }
68
+ if (declaration.kind === "keyed") {
69
+ if (typeof raw.key !== "string" || raw.key.trim() === "") {
70
+ throw new Error(`Keyed slot "${options.name}" requires a non-empty key`);
71
+ }
72
+ if (raw.id !== void 0 || raw.order !== void 0) {
73
+ throw new Error(`Keyed slot "${options.name}" does not accept id or order`);
74
+ }
75
+ }
76
+ assertKnownRegistrationKeys(raw, declaration.kind);
77
+ const entry = {
78
+ name: options.name,
79
+ kind: declaration.kind,
80
+ ...raw.id !== void 0 ? { id: raw.id } : {},
81
+ ...raw.key !== void 0 ? { key: raw.key } : {},
82
+ order,
83
+ ...raw.locale !== void 0 ? { locale: raw.locale } : {},
84
+ ...raw.inject !== void 0 ? { inject: raw.inject } : {},
85
+ renderer,
86
+ sequence: sequence++
87
+ };
88
+ const current = entries.get(options.name) ?? [];
89
+ const cell = cellOf(entry);
90
+ if (declaration.kind === "list" && current.some((candidate) => cellOf(candidate) === cell && candidate.order !== order)) {
91
+ throw new Error(`List slot "${options.name}" cell "${cell}" must use one shared order`);
92
+ }
93
+ current.push(entry);
94
+ entries.set(options.name, current);
95
+ notify(options.name);
96
+ let disposed = false;
97
+ return () => {
98
+ if (disposed) return;
99
+ disposed = true;
100
+ const active = entries.get(options.name);
101
+ if (!active) return;
102
+ const index = active.indexOf(entry);
103
+ if (index < 0) return;
104
+ active.splice(index, 1);
105
+ notify(options.name);
106
+ };
107
+ },
108
+ entriesOf(name, kind) {
109
+ const declaration = declarations.get(name);
110
+ if (!declaration) return EMPTY_ENTRIES;
111
+ if (declaration.kind !== kind) {
112
+ throw new Error(`Slot "${name}" is ${declaration.kind}, not ${kind}`);
113
+ }
114
+ const current = entries.get(name);
115
+ if (!current?.length) return EMPTY_ENTRIES;
116
+ const firstSequenceByCell = /* @__PURE__ */ new Map();
117
+ for (const entry of current) {
118
+ const cell = cellOf(entry);
119
+ if (!firstSequenceByCell.has(cell)) firstSequenceByCell.set(cell, entry.sequence);
120
+ }
121
+ return [...current].sort((left, right) => {
122
+ if (kind === "list" && left.order !== right.order) return left.order - right.order;
123
+ const leftCell = cellOf(left);
124
+ const rightCell = cellOf(right);
125
+ if (leftCell !== rightCell) {
126
+ if (kind === "list") {
127
+ const leftSequence = firstSequenceByCell.get(leftCell) ?? left.sequence;
128
+ const rightSequence = firstSequenceByCell.get(rightCell) ?? right.sequence;
129
+ return leftSequence - rightSequence;
130
+ }
131
+ return leftCell.localeCompare(rightCell);
132
+ }
133
+ return right.sequence - left.sequence;
134
+ });
135
+ },
136
+ subscribe(name, callback) {
137
+ let slotListeners = listeners.get(name);
138
+ if (!slotListeners) {
139
+ slotListeners = /* @__PURE__ */ new Set();
140
+ listeners.set(name, slotListeners);
141
+ }
142
+ slotListeners.add(callback);
143
+ let disposed = false;
144
+ return () => {
145
+ if (disposed) return;
146
+ disposed = true;
147
+ slotListeners?.delete(callback);
148
+ if (slotListeners?.size === 0) listeners.delete(name);
149
+ };
150
+ },
151
+ versionOf(name) {
152
+ return versions.get(name) ?? 0;
153
+ }
154
+ };
155
+ }
156
+
157
+ // src/slot/map.ts
158
+ var WORKBENCH_KEYED_SLOT_KEYS = {
159
+ "workbench.settings.section": [
160
+ "general",
161
+ "appearance",
162
+ "usage",
163
+ "models",
164
+ "auth",
165
+ "security",
166
+ "assistant",
167
+ "memory",
168
+ "keys",
169
+ "about"
170
+ ],
171
+ "widget.card": ["subtasks", "scheduled", "todo"]
172
+ };
173
+ var WORKBENCH_SLOT_DECLARATIONS = {
174
+ "workbench.login": defineSlot("single", "replacement"),
175
+ "workbench.sidebar.footer": defineSlot("list", "insertion"),
176
+ "workbench.settings.section": defineSlot("keyed", "wrapper"),
177
+ "workbench.view.chat": defineSlot("single", "wrapper"),
178
+ "workbench.view.skills": defineSlot("single", "wrapper"),
179
+ "workbench.view.sites": defineSlot("single", "wrapper"),
180
+ "workbench.view.scheduled-tasks": defineSlot("single", "wrapper"),
181
+ "workbench.view.library": defineSlot("single", "wrapper"),
182
+ "workbench.view.task-detail": defineSlot("single", "wrapper"),
183
+ "workbench.composer.action": defineSlot("list", "insertion"),
184
+ "palette.group": defineSlot("list", "insertion"),
185
+ "widget.card": defineSlot("keyed", "wrapper")
186
+ };
187
+ function declareWorkbenchSlots(core) {
188
+ const disposers = Object.entries(WORKBENCH_SLOT_DECLARATIONS).map(([name, declaration]) => core.declare(name, declaration));
189
+ return () => {
190
+ for (let index = disposers.length - 1; index >= 0; index -= 1) disposers[index]?.();
191
+ };
192
+ }
193
+ export {
194
+ WORKBENCH_KEYED_SLOT_KEYS,
195
+ WORKBENCH_SLOT_DECLARATIONS,
196
+ createSlotCore,
197
+ declareWorkbenchSlots,
198
+ defineSlot
199
+ };
200
+ //# sourceMappingURL=slot-core.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/slot/core.ts","../src/slot/map.ts"],"sourcesContent":["import type { WorkbenchSlotMap } from \"./map\"\n\nexport type SlotKind = \"single\" | \"list\" | \"keyed\"\nexport type SlotMode = \"replacement\" | \"wrapper\" | \"insertion\"\n\nexport type SlotTranslator<Key extends string = string> = (\n key: Key,\n values?: Readonly<Record<string, string | number>>,\n) => string\n\n/**\n * Slot declaration metadata. The function-shaped phantom fields preserve the\n * owner, entry-key, and child-slot types without adding runtime dependencies.\n */\nexport type SlotDecl<\n Kind extends SlotKind,\n Owner extends object,\n EntryKey extends string = never,\n Child extends string = never,\n> = {\n readonly kind: Kind\n /** Stable composition semantics exposed by the host for this slot. */\n readonly mode: SlotMode\n readonly __types?: readonly [owner: Owner, entryKey: EntryKey, child: Child]\n}\n\nexport function defineSlot<\n Kind extends SlotKind,\n Owner extends object,\n EntryKey extends string = never,\n Child extends string = never,\n>(kind: Kind, mode: SlotMode): SlotDecl<Kind, Owner, EntryKey, Child> {\n return { kind, mode }\n}\n\n/** Public host slot map retained as a named interface for downstream extension. */\nexport interface SlotMap extends WorkbenchSlotMap {}\n\nexport type SlotName = keyof SlotMap & string\nexport type SlotDeclOf<Name extends SlotName> = SlotMap[Name]\nexport type SlotOwnerOf<Name extends SlotName> = SlotDeclOf<Name> extends SlotDecl<SlotKind, infer Owner, any, any>\n ? Owner\n : never\nexport type SlotEntryKeyOf<Name extends SlotName> = SlotDeclOf<Name> extends SlotDecl<\n SlotKind,\n object,\n infer EntryKey,\n any\n>\n ? EntryKey\n : never\nexport type SlotChildOf<Name extends SlotName> = SlotDeclOf<Name> extends SlotDecl<SlotKind, object, any, infer Child>\n ? Child\n : never\n\ntype SlotRenderArguments<Child extends SlotName> = {\n [Name in Child]: [name: Name, owner: SlotOwnerOf<Name>, fallback?: unknown]\n}[Child]\n\nexport type SlotRenderFunction<Child extends SlotName = SlotName> = (...args: SlotRenderArguments<Child>) => unknown\n\nexport type SlotProps<Name extends SlotName> = SlotOwnerOf<Name> & {\n /** Scoped bridge supplied by the owner; registered components never receive SlotCore. */\n renderSlot: SlotRenderFunction<Extract<SlotChildOf<Name>, SlotName>>\n /** Namespace-aware translator. Without a locale namespace it returns the key. */\n t: SlotTranslator\n}\n\nexport type SlotRenderer<Props extends object = Record<string, unknown>> = (props: Props) => unknown\nexport type SlotInjectFactory<Injected extends object = Readonly<Record<string, unknown>>> = () => Injected\n\ntype CommonRegisterOptions<Name extends SlotName> = {\n name: Name\n /** Optional dictionary namespace supplied to the renderer's t function. */\n locale?: string\n}\n\nexport type RegisterOptions<Name extends SlotName> = SlotDeclOf<Name>[\"kind\"] extends \"list\"\n ? CommonRegisterOptions<Name> & { id: string; order?: number; key?: never }\n : SlotDeclOf<Name>[\"kind\"] extends \"keyed\"\n ? CommonRegisterOptions<Name> & { key: SlotEntryKeyOf<Name>; id?: never; order?: never }\n : CommonRegisterOptions<Name> & { id?: never; key?: never; order?: never }\n\nexport type SlotEntry = {\n readonly name: string\n readonly kind: SlotKind\n readonly id?: string\n readonly key?: string\n readonly order: number\n readonly locale?: string\n /** Registration-private values and callbacks resolved at the render boundary. */\n readonly inject?: SlotInjectFactory\n readonly renderer: SlotRenderer\n readonly sequence: number\n}\n\nexport interface SlotCore {\n declare<Name extends SlotName>(name: Name, decl: SlotDeclOf<Name>): () => void\n register<Name extends SlotName, Injected extends object = object>(\n options: RegisterOptions<Name> & { inject?: SlotInjectFactory<Injected> },\n renderer: SlotRenderer<SlotProps<Name> & Injected>,\n ): () => void\n entriesOf(name: string, kind: SlotKind): readonly SlotEntry[]\n subscribe(name: string, callback: () => void): () => void\n versionOf(name: string): number\n}\n\ntype Declaration = {\n readonly token: symbol\n readonly kind: SlotKind\n}\n\ntype RuntimeRegisterOptions = {\n name: string\n id?: string\n key?: string\n order?: number\n inject?: SlotInjectFactory\n locale?: string\n}\n\nconst EMPTY_ENTRIES: readonly SlotEntry[] = Object.freeze([])\n\nfunction assertKnownRegistrationKeys(value: RuntimeRegisterOptions, kind: SlotKind): void {\n const allowed = new Set([\n \"name\",\n \"locale\",\n \"inject\",\n ...(kind === \"list\" ? [\"id\", \"order\"] : []),\n ...(kind === \"keyed\" ? [\"key\"] : []),\n ])\n const unknown = Object.keys(value).find((key) => !allowed.has(key))\n if (unknown) throw new Error(`Slot \"${value.name}\" registration contains unsupported field: ${unknown}`)\n}\n\nfunction cellOf(entry: Pick<SlotEntry, \"kind\" | \"id\" | \"key\">): string {\n if (entry.kind === \"list\") return entry.id as string\n if (entry.kind === \"keyed\") return entry.key as string\n return \"single\"\n}\n\nexport function createSlotCore(): SlotCore {\n const declarations = new Map<string, Declaration>()\n const entries = new Map<string, SlotEntry[]>()\n const listeners = new Map<string, Set<() => void>>()\n const versions = new Map<string, number>()\n let sequence = 0\n\n const notify = (name: string) => {\n versions.set(name, (versions.get(name) ?? 0) + 1)\n for (const listener of listeners.get(name) ?? []) listener()\n }\n\n return {\n declare(name, decl) {\n if (declarations.has(name)) throw new Error(`Slot \"${name}\" is already declared`)\n const token = Symbol(name)\n declarations.set(name, { token, kind: decl.kind })\n entries.set(name, [])\n notify(name)\n\n let disposed = false\n return () => {\n if (disposed) return\n disposed = true\n if (declarations.get(name)?.token !== token) return\n declarations.delete(name)\n entries.delete(name)\n notify(name)\n }\n },\n\n register(options, renderer) {\n const declaration = declarations.get(options.name)\n if (!declaration) throw new Error(`Slot \"${options.name}\" must be declared before registration`)\n if (typeof renderer !== \"function\") throw new Error(`Slot \"${options.name}\" renderer must be a function`)\n\n const raw = options as RuntimeRegisterOptions\n const order = raw.order ?? 0\n if (!Number.isFinite(order)) throw new Error(`Slot \"${options.name}\" order must be a finite number`)\n if (raw.inject !== undefined && typeof raw.inject !== \"function\") {\n throw new Error(`Slot \"${options.name}\" inject must be a function`)\n }\n\n if (declaration.kind === \"single\" && (raw.id !== undefined || raw.key !== undefined || raw.order !== undefined)) {\n throw new Error(`Single slot \"${options.name}\" does not accept id, key, or order`)\n }\n if (declaration.kind === \"list\") {\n if (typeof raw.id !== \"string\" || raw.id.trim() === \"\") {\n throw new Error(`List slot \"${options.name}\" requires a non-empty id`)\n }\n if (raw.key !== undefined) throw new Error(`List slot \"${options.name}\" does not accept key`)\n }\n if (declaration.kind === \"keyed\") {\n if (typeof raw.key !== \"string\" || raw.key.trim() === \"\") {\n throw new Error(`Keyed slot \"${options.name}\" requires a non-empty key`)\n }\n if (raw.id !== undefined || raw.order !== undefined) {\n throw new Error(`Keyed slot \"${options.name}\" does not accept id or order`)\n }\n }\n assertKnownRegistrationKeys(raw, declaration.kind)\n\n const entry: SlotEntry = {\n name: options.name,\n kind: declaration.kind,\n ...(raw.id !== undefined ? { id: raw.id } : {}),\n ...(raw.key !== undefined ? { key: raw.key } : {}),\n order,\n ...(raw.locale !== undefined ? { locale: raw.locale } : {}),\n ...(raw.inject !== undefined ? { inject: raw.inject } : {}),\n renderer: renderer as SlotRenderer,\n sequence: sequence++,\n }\n const current = entries.get(options.name) ?? []\n const cell = cellOf(entry)\n if (\n declaration.kind === \"list\" &&\n current.some((candidate) => cellOf(candidate) === cell && candidate.order !== order)\n ) {\n throw new Error(`List slot \"${options.name}\" cell \"${cell}\" must use one shared order`)\n }\n current.push(entry)\n entries.set(options.name, current)\n notify(options.name)\n\n let disposed = false\n return () => {\n if (disposed) return\n disposed = true\n const active = entries.get(options.name)\n if (!active) return\n const index = active.indexOf(entry)\n if (index < 0) return\n active.splice(index, 1)\n notify(options.name)\n }\n },\n\n entriesOf(name, kind) {\n const declaration = declarations.get(name)\n if (!declaration) return EMPTY_ENTRIES\n if (declaration.kind !== kind) {\n throw new Error(`Slot \"${name}\" is ${declaration.kind}, not ${kind}`)\n }\n const current = entries.get(name)\n if (!current?.length) return EMPTY_ENTRIES\n const firstSequenceByCell = new Map<string, number>()\n for (const entry of current) {\n const cell = cellOf(entry)\n if (!firstSequenceByCell.has(cell)) firstSequenceByCell.set(cell, entry.sequence)\n }\n return [...current].sort((left, right) => {\n if (kind === \"list\" && left.order !== right.order) return left.order - right.order\n const leftCell = cellOf(left)\n const rightCell = cellOf(right)\n if (leftCell !== rightCell) {\n if (kind === \"list\") {\n const leftSequence = firstSequenceByCell.get(leftCell) ?? left.sequence\n const rightSequence = firstSequenceByCell.get(rightCell) ?? right.sequence\n return leftSequence - rightSequence\n }\n return leftCell.localeCompare(rightCell)\n }\n // The host registers first-party fallbacks before applying its single,\n // reviewed OEM entry. Newest-first is therefore OEM candidate → official\n // content without exposing candidate ranking to public registrations.\n return right.sequence - left.sequence\n })\n },\n\n subscribe(name, callback) {\n let slotListeners = listeners.get(name)\n if (!slotListeners) {\n slotListeners = new Set()\n listeners.set(name, slotListeners)\n }\n slotListeners.add(callback)\n let disposed = false\n return () => {\n if (disposed) return\n disposed = true\n slotListeners?.delete(callback)\n if (slotListeners?.size === 0) listeners.delete(name)\n }\n },\n\n versionOf(name) {\n return versions.get(name) ?? 0\n },\n }\n}\n","import type { ReactNode } from \"react\"\nimport type { DesktopLoginViewProps } from \"../components/domain/desktop/DesktopLoginView\"\nimport type { HostPlatform } from \"../platform\"\nimport { type SlotCore, type SlotDecl, defineSlot } from \"./core\"\n\nexport interface SidebarFooterOwnerProps {\n platform: HostPlatform\n fullscreen: boolean\n}\n\nexport interface SettingsSectionOwnerProps {\n activeId: string\n onClose: () => void\n /** First-party section content; OEM renderers may preserve, replace, or wrap it. */\n content: ReactNode\n}\n\nexport interface WorkbenchViewOwnerProps {\n active: boolean\n}\n\nexport interface ComposableWorkbenchViewOwnerProps extends WorkbenchViewOwnerProps {\n /** First-party view content; OEM renderers may preserve, replace, or wrap it. */\n content: ReactNode\n}\n\nexport interface ChatViewOwnerProps extends ComposableWorkbenchViewOwnerProps {\n platform: HostPlatform\n}\n\nexport interface PaletteGroupOwnerProps {\n query: string\n anchorRect: DOMRect | null\n onClose: () => void\n}\n\nexport interface ComposerActionOwnerProps {\n disabled: boolean\n layout: \"toolbar-start\"\n}\n\nexport interface WidgetOwnerProps extends ComposableWorkbenchViewOwnerProps {}\n\nexport const WORKBENCH_KEYED_SLOT_KEYS = {\n \"workbench.settings.section\": [\n \"general\",\n \"appearance\",\n \"usage\",\n \"models\",\n \"auth\",\n \"security\",\n \"assistant\",\n \"memory\",\n \"keys\",\n \"about\",\n ],\n \"widget.card\": [\"subtasks\", \"scheduled\", \"todo\"],\n} as const\n\nexport type SettingsSectionKey = (typeof WORKBENCH_KEYED_SLOT_KEYS)[\"workbench.settings.section\"][number]\nexport type WidgetKey = (typeof WORKBENCH_KEYED_SLOT_KEYS)[\"widget.card\"][number]\n\nexport interface WorkbenchSlotMap {\n \"workbench.login\": SlotDecl<\"single\", DesktopLoginViewProps>\n \"workbench.sidebar.footer\": SlotDecl<\"list\", SidebarFooterOwnerProps>\n \"workbench.settings.section\": SlotDecl<\"keyed\", SettingsSectionOwnerProps, SettingsSectionKey>\n \"workbench.view.chat\": SlotDecl<\"single\", ChatViewOwnerProps, never, \"palette.group\">\n \"workbench.view.skills\": SlotDecl<\"single\", ComposableWorkbenchViewOwnerProps>\n \"workbench.view.sites\": SlotDecl<\"single\", ComposableWorkbenchViewOwnerProps>\n \"workbench.view.scheduled-tasks\": SlotDecl<\"single\", ComposableWorkbenchViewOwnerProps>\n \"workbench.view.library\": SlotDecl<\"single\", ComposableWorkbenchViewOwnerProps>\n \"workbench.view.task-detail\": SlotDecl<\"single\", ComposableWorkbenchViewOwnerProps>\n \"workbench.composer.action\": SlotDecl<\"list\", ComposerActionOwnerProps>\n \"palette.group\": SlotDecl<\"list\", PaletteGroupOwnerProps>\n \"widget.card\": SlotDecl<\"keyed\", WidgetOwnerProps, WidgetKey>\n}\n\nexport const WORKBENCH_SLOT_DECLARATIONS = {\n \"workbench.login\": defineSlot<\"single\", DesktopLoginViewProps>(\"single\", \"replacement\"),\n \"workbench.sidebar.footer\": defineSlot<\"list\", SidebarFooterOwnerProps>(\"list\", \"insertion\"),\n \"workbench.settings.section\": defineSlot<\"keyed\", SettingsSectionOwnerProps, SettingsSectionKey>(\"keyed\", \"wrapper\"),\n \"workbench.view.chat\": defineSlot<\"single\", ChatViewOwnerProps, never, \"palette.group\">(\"single\", \"wrapper\"),\n \"workbench.view.skills\": defineSlot<\"single\", ComposableWorkbenchViewOwnerProps>(\"single\", \"wrapper\"),\n \"workbench.view.sites\": defineSlot<\"single\", ComposableWorkbenchViewOwnerProps>(\"single\", \"wrapper\"),\n \"workbench.view.scheduled-tasks\": defineSlot<\"single\", ComposableWorkbenchViewOwnerProps>(\"single\", \"wrapper\"),\n \"workbench.view.library\": defineSlot<\"single\", ComposableWorkbenchViewOwnerProps>(\"single\", \"wrapper\"),\n \"workbench.view.task-detail\": defineSlot<\"single\", ComposableWorkbenchViewOwnerProps>(\"single\", \"wrapper\"),\n \"workbench.composer.action\": defineSlot<\"list\", ComposerActionOwnerProps>(\"list\", \"insertion\"),\n \"palette.group\": defineSlot<\"list\", PaletteGroupOwnerProps>(\"list\", \"insertion\"),\n \"widget.card\": defineSlot<\"keyed\", WidgetOwnerProps, WidgetKey>(\"keyed\", \"wrapper\"),\n} as const satisfies WorkbenchSlotMap\n\nexport function declareWorkbenchSlots(core: SlotCore): () => void {\n const disposers = (\n Object.entries(WORKBENCH_SLOT_DECLARATIONS) as Array<\n [keyof WorkbenchSlotMap & string, WorkbenchSlotMap[keyof WorkbenchSlotMap]]\n >\n ).map(([name, declaration]) => core.declare(name, declaration))\n\n return () => {\n for (let index = disposers.length - 1; index >= 0; index -= 1) disposers[index]?.()\n }\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,153 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; } var _class;// src/slot/react.tsx
2
+
3
+
4
+
5
+
6
+
7
+
8
+
9
+
10
+
11
+ var _react = require('react');
12
+ var _jsxruntime = require('react/jsx-runtime');
13
+ var SlotCoreContext = _react.createContext.call(void 0, null);
14
+ var SlotTranslateContext = _react.createContext.call(void 0, (_namespace, key) => key);
15
+ function SlotProvider({ children, core, translate }) {
16
+ const translation = _nullishCoalesce(translate, () => ( ((_namespace, key) => key)));
17
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SlotCoreContext.Provider, { value: core, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SlotTranslateContext.Provider, { value: translation, children }) });
18
+ }
19
+ function useHostSlotCore() {
20
+ const core = _react.useContext.call(void 0, SlotCoreContext);
21
+ if (!core) throw new Error("SlotOutlet must be used inside SlotProvider");
22
+ return core;
23
+ }
24
+ var SlotErrorBoundary = (_class = class extends _react.Component {constructor(...args) { super(...args); _class.prototype.__init.call(this); }
25
+ __init() {this.state = { failed: false }}
26
+ static getDerivedStateFromError() {
27
+ return { failed: true };
28
+ }
29
+ componentDidCatch(error, _info) {
30
+ try {
31
+ this.props.onError(error, this.props.entry);
32
+ } catch (e) {
33
+ }
34
+ this.props.onFailed();
35
+ }
36
+ render() {
37
+ return this.state.failed ? null : this.props.children;
38
+ }
39
+ }, _class);
40
+ function CandidateRenderer({
41
+ entry,
42
+ owner,
43
+ renderSlot,
44
+ translate
45
+ }) {
46
+ const injected = _optionalChain([entry, 'access', _ => _.inject, 'optionalCall', _2 => _2()]);
47
+ if (injected !== void 0 && (injected === null || typeof injected !== "object" || Array.isArray(injected))) {
48
+ throw new Error(`Slot "${entry.name}" inject must return an object`);
49
+ }
50
+ for (const key of Object.keys(_nullishCoalesce(injected, () => ( {})))) {
51
+ if (key === "renderSlot" || key === "t" || Object.hasOwn(owner, key)) {
52
+ throw new Error(`Slot "${entry.name}" inject conflicts with owner prop: ${key}`);
53
+ }
54
+ }
55
+ const Renderer = entry.renderer;
56
+ const t = (key, values) => translate(entry.locale, key, values);
57
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Renderer, { ...injected, ...owner, renderSlot, t });
58
+ }
59
+ function CandidateCell({ candidates, fallback = null, owner, renderSlot, translate, onError }) {
60
+ const [failedCount, setFailedCount] = _react.useState.call(void 0, 0);
61
+ const entry = candidates[failedCount];
62
+ if (!entry) return fallback;
63
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
64
+ SlotErrorBoundary,
65
+ {
66
+ entry,
67
+ onError,
68
+ onFailed: () => setFailedCount((count) => count + 1),
69
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CandidateRenderer, { entry, owner, renderSlot, translate })
70
+ },
71
+ entry.sequence
72
+ );
73
+ }
74
+ function groupByCell(entries) {
75
+ const cells = /* @__PURE__ */ new Map();
76
+ for (const entry of entries) {
77
+ const cell = entry.kind === "list" ? entry.id : entry.kind === "keyed" ? entry.key : "single";
78
+ const candidates = cells.get(cell);
79
+ if (candidates) candidates.push(entry);
80
+ else cells.set(cell, [entry]);
81
+ }
82
+ return [...cells.entries()];
83
+ }
84
+ function SlotOutlet({
85
+ name,
86
+ owner,
87
+ entryKey,
88
+ fallback,
89
+ renderSlot = () => null,
90
+ onError = (error, entry) => console.error(`[SlotOutlet] ${entry.name} failed`, error)
91
+ }) {
92
+ const core = useHostSlotCore();
93
+ const translate = _react.useContext.call(void 0, SlotTranslateContext);
94
+ const subscribe = _react.useCallback.call(void 0, (callback) => core.subscribe(name, callback), [core, name]);
95
+ const getSnapshot = _react.useCallback.call(void 0, () => core.versionOf(name), [core, name]);
96
+ const version = _react.useSyncExternalStore.call(void 0, subscribe, getSnapshot, getSnapshot);
97
+ const entries = _react.useMemo.call(void 0, () => {
98
+ for (const kind2 of ["single", "list", "keyed"]) {
99
+ try {
100
+ return core.entriesOf(name, kind2);
101
+ } catch (e2) {
102
+ }
103
+ }
104
+ return [];
105
+ }, [core, name, version]);
106
+ if (entries.length === 0) return _nullishCoalesce(fallback, () => ( null));
107
+ const kind = _optionalChain([entries, 'access', _3 => _3[0], 'optionalAccess', _4 => _4.kind]);
108
+ const ownerRecord = owner;
109
+ if (kind === "single") {
110
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
111
+ CandidateCell,
112
+ {
113
+ candidates: entries,
114
+ fallback,
115
+ owner: ownerRecord,
116
+ renderSlot,
117
+ translate,
118
+ onError
119
+ },
120
+ `${name}:single:${version}`
121
+ );
122
+ }
123
+ if (kind === "keyed") {
124
+ const candidates = entries.filter((entry) => entry.key === entryKey);
125
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
126
+ CandidateCell,
127
+ {
128
+ candidates,
129
+ fallback,
130
+ owner: ownerRecord,
131
+ renderSlot,
132
+ translate,
133
+ onError
134
+ },
135
+ `${name}:${String(entryKey)}:${version}`
136
+ );
137
+ }
138
+ return groupByCell(entries).map(
139
+ ([cell, candidates]) => _react.createElement.call(void 0, CandidateCell, {
140
+ key: `${name}:${cell}:${version}`,
141
+ candidates,
142
+ owner: ownerRecord,
143
+ renderSlot,
144
+ translate,
145
+ onError
146
+ })
147
+ );
148
+ }
149
+
150
+
151
+
152
+ exports.SlotOutlet = SlotOutlet; exports.SlotProvider = SlotProvider;
153
+ //# sourceMappingURL=slot-react.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/Users/wowzin/projects/orbit/packages/ui/dist/slot-react.cjs","../src/slot/react.tsx"],"names":[],"mappings":"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","file":"/Users/wowzin/projects/orbit/packages/ui/dist/slot-react.cjs","sourcesContent":[null,"\"use client\"\n\nimport {\n Component,\n type ComponentType,\n type ErrorInfo,\n type ReactNode,\n createContext,\n createElement,\n useCallback,\n useContext,\n useMemo,\n useState,\n useSyncExternalStore,\n} from \"react\"\nimport type {\n SlotChildOf,\n SlotCore,\n SlotDeclOf,\n SlotEntry,\n SlotEntryKeyOf,\n SlotName,\n SlotOwnerOf,\n SlotRenderFunction,\n SlotTranslator,\n} from \"./core\"\n\nexport type SlotDiagnostics = (error: Error, entry: SlotEntry) => void\nexport type SlotTranslate = (\n namespace: string | undefined,\n key: string,\n values?: Readonly<Record<string, string | number>>,\n) => string\n\nconst SlotCoreContext = createContext<SlotCore | null>(null)\nconst SlotTranslateContext = createContext<SlotTranslate>((_namespace, key) => key)\n\nexport interface SlotProviderProps {\n children: ReactNode\n core: SlotCore\n translate?: SlotTranslate\n}\n\nexport function SlotProvider({ children, core, translate }: SlotProviderProps) {\n const translation = translate ?? ((_namespace: string | undefined, key: string) => key)\n return (\n <SlotCoreContext.Provider value={core}>\n <SlotTranslateContext.Provider value={translation}>{children}</SlotTranslateContext.Provider>\n </SlotCoreContext.Provider>\n )\n}\n\nfunction useHostSlotCore(): SlotCore {\n const core = useContext(SlotCoreContext)\n if (!core) throw new Error(\"SlotOutlet must be used inside SlotProvider\")\n return core\n}\n\ntype ErrorBoundaryProps = {\n children: ReactNode\n entry: SlotEntry\n onError: SlotDiagnostics\n onFailed: () => void\n}\n\ntype ErrorBoundaryState = { failed: boolean }\n\nclass SlotErrorBoundary extends Component<ErrorBoundaryProps, ErrorBoundaryState> {\n state: ErrorBoundaryState = { failed: false }\n\n static getDerivedStateFromError(): ErrorBoundaryState {\n return { failed: true }\n }\n\n componentDidCatch(error: Error, _info: ErrorInfo): void {\n try {\n this.props.onError(error, this.props.entry)\n } catch {\n // Diagnostics are observational. A broken reporter must never prevent\n // the next candidate or first-party fallback from rendering.\n }\n this.props.onFailed()\n }\n\n render(): ReactNode {\n return this.state.failed ? null : this.props.children\n }\n}\n\ntype CandidateCellProps = {\n candidates: readonly SlotEntry[]\n fallback?: ReactNode\n owner: Readonly<Record<string, unknown>>\n renderSlot: SlotRenderFunction<any>\n translate: SlotTranslate\n onError: SlotDiagnostics\n}\n\nfunction CandidateRenderer({\n entry,\n owner,\n renderSlot,\n translate,\n}: Pick<CandidateCellProps, \"owner\" | \"renderSlot\" | \"translate\"> & { entry: SlotEntry }) {\n const injected = entry.inject?.()\n if (injected !== undefined && (injected === null || typeof injected !== \"object\" || Array.isArray(injected))) {\n throw new Error(`Slot \"${entry.name}\" inject must return an object`)\n }\n for (const key of Object.keys(injected ?? {})) {\n if (key === \"renderSlot\" || key === \"t\" || Object.hasOwn(owner, key)) {\n throw new Error(`Slot \"${entry.name}\" inject conflicts with owner prop: ${key}`)\n }\n }\n\n const Renderer = entry.renderer as ComponentType<Record<string, unknown>>\n const t: SlotTranslator = (key, values) => translate(entry.locale, key, values)\n return <Renderer {...injected} {...owner} renderSlot={renderSlot} t={t} />\n}\n\nfunction CandidateCell({ candidates, fallback = null, owner, renderSlot, translate, onError }: CandidateCellProps) {\n const [failedCount, setFailedCount] = useState(0)\n const entry = candidates[failedCount]\n if (!entry) return fallback\n\n return (\n <SlotErrorBoundary\n key={entry.sequence}\n entry={entry}\n onError={onError}\n onFailed={() => setFailedCount((count) => count + 1)}\n >\n <CandidateRenderer entry={entry} owner={owner} renderSlot={renderSlot} translate={translate} />\n </SlotErrorBoundary>\n )\n}\n\ntype CommonSlotOutletProps<Name extends SlotName> = {\n name: Name\n owner: SlotOwnerOf<Name>\n fallback?: ReactNode\n renderSlot?: SlotRenderFunction<Extract<SlotChildOf<Name>, SlotName>>\n onError?: SlotDiagnostics\n}\n\nexport type SlotOutletProps<Name extends SlotName> = SlotDeclOf<Name>[\"kind\"] extends \"keyed\"\n ? CommonSlotOutletProps<Name> & { entryKey: SlotEntryKeyOf<Name> }\n : CommonSlotOutletProps<Name> & { entryKey?: never }\n\nfunction groupByCell(entries: readonly SlotEntry[]): Array<[string, SlotEntry[]]> {\n const cells = new Map<string, SlotEntry[]>()\n for (const entry of entries) {\n const cell =\n entry.kind === \"list\" ? (entry.id as string) : entry.kind === \"keyed\" ? (entry.key as string) : \"single\"\n const candidates = cells.get(cell)\n if (candidates) candidates.push(entry)\n else cells.set(cell, [entry])\n }\n return [...cells.entries()]\n}\n\nexport function SlotOutlet<Name extends SlotName>({\n name,\n owner,\n entryKey,\n fallback,\n renderSlot = () => null,\n onError = (error, entry) => console.error(`[SlotOutlet] ${entry.name} failed`, error),\n}: SlotOutletProps<Name>) {\n const core = useHostSlotCore()\n const translate = useContext(SlotTranslateContext)\n const subscribe = useCallback((callback: () => void) => core.subscribe(name, callback), [core, name])\n const getSnapshot = useCallback(() => core.versionOf(name), [core, name])\n const version = useSyncExternalStore(subscribe, getSnapshot, getSnapshot)\n\n const entries = useMemo(() => {\n for (const kind of [\"single\", \"list\", \"keyed\"] as const) {\n try {\n return core.entriesOf(name, kind)\n } catch {\n // The runtime declaration is authoritative; try the next kind.\n }\n }\n return []\n }, [core, name, version])\n\n if (entries.length === 0) return fallback ?? null\n const kind = entries[0]?.kind\n const ownerRecord = owner as Readonly<Record<string, unknown>>\n\n if (kind === \"single\") {\n return (\n <CandidateCell\n key={`${name}:single:${version}`}\n candidates={entries}\n fallback={fallback}\n owner={ownerRecord}\n renderSlot={renderSlot}\n translate={translate}\n onError={onError}\n />\n )\n }\n\n if (kind === \"keyed\") {\n const candidates = entries.filter((entry) => entry.key === entryKey)\n return (\n <CandidateCell\n key={`${name}:${String(entryKey)}:${version}`}\n candidates={candidates}\n fallback={fallback}\n owner={ownerRecord}\n renderSlot={renderSlot}\n translate={translate}\n onError={onError}\n />\n )\n }\n\n return groupByCell(entries).map(([cell, candidates]) =>\n createElement(CandidateCell, {\n key: `${name}:${cell}:${version}`,\n candidates,\n owner: ownerRecord,\n renderSlot,\n translate,\n onError,\n }),\n )\n}\n"]}
@@ -0,0 +1,36 @@
1
+ import * as react from 'react';
2
+ import { ReactNode } from 'react';
3
+ import { SlotEntry, SlotName, SlotDeclOf, SlotOwnerOf, SlotRenderFunction, SlotChildOf, SlotEntryKeyOf, SlotCore } from './slot-core.cjs';
4
+ import './index-nLo7jMlP.cjs';
5
+
6
+ type SlotDiagnostics = (error: Error, entry: SlotEntry) => void;
7
+ type SlotTranslate = (namespace: string | undefined, key: string, values?: Readonly<Record<string, string | number>>) => string;
8
+ interface SlotProviderProps {
9
+ children: ReactNode;
10
+ core: SlotCore;
11
+ translate?: SlotTranslate;
12
+ }
13
+ declare function SlotProvider({ children, core, translate }: SlotProviderProps): react.JSX.Element;
14
+ type CandidateCellProps = {
15
+ candidates: readonly SlotEntry[];
16
+ fallback?: ReactNode;
17
+ owner: Readonly<Record<string, unknown>>;
18
+ renderSlot: SlotRenderFunction<any>;
19
+ translate: SlotTranslate;
20
+ onError: SlotDiagnostics;
21
+ };
22
+ type CommonSlotOutletProps<Name extends SlotName> = {
23
+ name: Name;
24
+ owner: SlotOwnerOf<Name>;
25
+ fallback?: ReactNode;
26
+ renderSlot?: SlotRenderFunction<Extract<SlotChildOf<Name>, SlotName>>;
27
+ onError?: SlotDiagnostics;
28
+ };
29
+ type SlotOutletProps<Name extends SlotName> = SlotDeclOf<Name>["kind"] extends "keyed" ? CommonSlotOutletProps<Name> & {
30
+ entryKey: SlotEntryKeyOf<Name>;
31
+ } : CommonSlotOutletProps<Name> & {
32
+ entryKey?: never;
33
+ };
34
+ declare function SlotOutlet<Name extends SlotName>({ name, owner, entryKey, fallback, renderSlot, onError, }: SlotOutletProps<Name>): string | number | bigint | boolean | Iterable<ReactNode> | Promise<string | number | bigint | boolean | react.ReactPortal | react.ReactElement<unknown, string | react.JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | react.JSX.Element | react.FunctionComponentElement<CandidateCellProps>[] | null;
35
+
36
+ export { type SlotDiagnostics, SlotOutlet, type SlotOutletProps, SlotProvider, type SlotProviderProps, type SlotTranslate };
@@ -0,0 +1,36 @@
1
+ import * as react from 'react';
2
+ import { ReactNode } from 'react';
3
+ import { SlotEntry, SlotName, SlotDeclOf, SlotOwnerOf, SlotRenderFunction, SlotChildOf, SlotEntryKeyOf, SlotCore } from './slot-core.js';
4
+ import './index-nLo7jMlP.js';
5
+
6
+ type SlotDiagnostics = (error: Error, entry: SlotEntry) => void;
7
+ type SlotTranslate = (namespace: string | undefined, key: string, values?: Readonly<Record<string, string | number>>) => string;
8
+ interface SlotProviderProps {
9
+ children: ReactNode;
10
+ core: SlotCore;
11
+ translate?: SlotTranslate;
12
+ }
13
+ declare function SlotProvider({ children, core, translate }: SlotProviderProps): react.JSX.Element;
14
+ type CandidateCellProps = {
15
+ candidates: readonly SlotEntry[];
16
+ fallback?: ReactNode;
17
+ owner: Readonly<Record<string, unknown>>;
18
+ renderSlot: SlotRenderFunction<any>;
19
+ translate: SlotTranslate;
20
+ onError: SlotDiagnostics;
21
+ };
22
+ type CommonSlotOutletProps<Name extends SlotName> = {
23
+ name: Name;
24
+ owner: SlotOwnerOf<Name>;
25
+ fallback?: ReactNode;
26
+ renderSlot?: SlotRenderFunction<Extract<SlotChildOf<Name>, SlotName>>;
27
+ onError?: SlotDiagnostics;
28
+ };
29
+ type SlotOutletProps<Name extends SlotName> = SlotDeclOf<Name>["kind"] extends "keyed" ? CommonSlotOutletProps<Name> & {
30
+ entryKey: SlotEntryKeyOf<Name>;
31
+ } : CommonSlotOutletProps<Name> & {
32
+ entryKey?: never;
33
+ };
34
+ declare function SlotOutlet<Name extends SlotName>({ name, owner, entryKey, fallback, renderSlot, onError, }: SlotOutletProps<Name>): string | number | bigint | boolean | Iterable<ReactNode> | Promise<string | number | bigint | boolean | react.ReactPortal | react.ReactElement<unknown, string | react.JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | react.JSX.Element | react.FunctionComponentElement<CandidateCellProps>[] | null;
35
+
36
+ export { type SlotDiagnostics, SlotOutlet, type SlotOutletProps, SlotProvider, type SlotProviderProps, type SlotTranslate };
@@ -0,0 +1,153 @@
1
+ // src/slot/react.tsx
2
+ import {
3
+ Component,
4
+ createContext,
5
+ createElement,
6
+ useCallback,
7
+ useContext,
8
+ useMemo,
9
+ useState,
10
+ useSyncExternalStore
11
+ } from "react";
12
+ import { jsx } from "react/jsx-runtime";
13
+ var SlotCoreContext = createContext(null);
14
+ var SlotTranslateContext = createContext((_namespace, key) => key);
15
+ function SlotProvider({ children, core, translate }) {
16
+ const translation = translate ?? ((_namespace, key) => key);
17
+ return /* @__PURE__ */ jsx(SlotCoreContext.Provider, { value: core, children: /* @__PURE__ */ jsx(SlotTranslateContext.Provider, { value: translation, children }) });
18
+ }
19
+ function useHostSlotCore() {
20
+ const core = useContext(SlotCoreContext);
21
+ if (!core) throw new Error("SlotOutlet must be used inside SlotProvider");
22
+ return core;
23
+ }
24
+ var SlotErrorBoundary = class extends Component {
25
+ state = { failed: false };
26
+ static getDerivedStateFromError() {
27
+ return { failed: true };
28
+ }
29
+ componentDidCatch(error, _info) {
30
+ try {
31
+ this.props.onError(error, this.props.entry);
32
+ } catch {
33
+ }
34
+ this.props.onFailed();
35
+ }
36
+ render() {
37
+ return this.state.failed ? null : this.props.children;
38
+ }
39
+ };
40
+ function CandidateRenderer({
41
+ entry,
42
+ owner,
43
+ renderSlot,
44
+ translate
45
+ }) {
46
+ const injected = entry.inject?.();
47
+ if (injected !== void 0 && (injected === null || typeof injected !== "object" || Array.isArray(injected))) {
48
+ throw new Error(`Slot "${entry.name}" inject must return an object`);
49
+ }
50
+ for (const key of Object.keys(injected ?? {})) {
51
+ if (key === "renderSlot" || key === "t" || Object.hasOwn(owner, key)) {
52
+ throw new Error(`Slot "${entry.name}" inject conflicts with owner prop: ${key}`);
53
+ }
54
+ }
55
+ const Renderer = entry.renderer;
56
+ const t = (key, values) => translate(entry.locale, key, values);
57
+ return /* @__PURE__ */ jsx(Renderer, { ...injected, ...owner, renderSlot, t });
58
+ }
59
+ function CandidateCell({ candidates, fallback = null, owner, renderSlot, translate, onError }) {
60
+ const [failedCount, setFailedCount] = useState(0);
61
+ const entry = candidates[failedCount];
62
+ if (!entry) return fallback;
63
+ return /* @__PURE__ */ jsx(
64
+ SlotErrorBoundary,
65
+ {
66
+ entry,
67
+ onError,
68
+ onFailed: () => setFailedCount((count) => count + 1),
69
+ children: /* @__PURE__ */ jsx(CandidateRenderer, { entry, owner, renderSlot, translate })
70
+ },
71
+ entry.sequence
72
+ );
73
+ }
74
+ function groupByCell(entries) {
75
+ const cells = /* @__PURE__ */ new Map();
76
+ for (const entry of entries) {
77
+ const cell = entry.kind === "list" ? entry.id : entry.kind === "keyed" ? entry.key : "single";
78
+ const candidates = cells.get(cell);
79
+ if (candidates) candidates.push(entry);
80
+ else cells.set(cell, [entry]);
81
+ }
82
+ return [...cells.entries()];
83
+ }
84
+ function SlotOutlet({
85
+ name,
86
+ owner,
87
+ entryKey,
88
+ fallback,
89
+ renderSlot = () => null,
90
+ onError = (error, entry) => console.error(`[SlotOutlet] ${entry.name} failed`, error)
91
+ }) {
92
+ const core = useHostSlotCore();
93
+ const translate = useContext(SlotTranslateContext);
94
+ const subscribe = useCallback((callback) => core.subscribe(name, callback), [core, name]);
95
+ const getSnapshot = useCallback(() => core.versionOf(name), [core, name]);
96
+ const version = useSyncExternalStore(subscribe, getSnapshot, getSnapshot);
97
+ const entries = useMemo(() => {
98
+ for (const kind2 of ["single", "list", "keyed"]) {
99
+ try {
100
+ return core.entriesOf(name, kind2);
101
+ } catch {
102
+ }
103
+ }
104
+ return [];
105
+ }, [core, name, version]);
106
+ if (entries.length === 0) return fallback ?? null;
107
+ const kind = entries[0]?.kind;
108
+ const ownerRecord = owner;
109
+ if (kind === "single") {
110
+ return /* @__PURE__ */ jsx(
111
+ CandidateCell,
112
+ {
113
+ candidates: entries,
114
+ fallback,
115
+ owner: ownerRecord,
116
+ renderSlot,
117
+ translate,
118
+ onError
119
+ },
120
+ `${name}:single:${version}`
121
+ );
122
+ }
123
+ if (kind === "keyed") {
124
+ const candidates = entries.filter((entry) => entry.key === entryKey);
125
+ return /* @__PURE__ */ jsx(
126
+ CandidateCell,
127
+ {
128
+ candidates,
129
+ fallback,
130
+ owner: ownerRecord,
131
+ renderSlot,
132
+ translate,
133
+ onError
134
+ },
135
+ `${name}:${String(entryKey)}:${version}`
136
+ );
137
+ }
138
+ return groupByCell(entries).map(
139
+ ([cell, candidates]) => createElement(CandidateCell, {
140
+ key: `${name}:${cell}:${version}`,
141
+ candidates,
142
+ owner: ownerRecord,
143
+ renderSlot,
144
+ translate,
145
+ onError
146
+ })
147
+ );
148
+ }
149
+ export {
150
+ SlotOutlet,
151
+ SlotProvider
152
+ };
153
+ //# sourceMappingURL=slot-react.js.map