@workbench-kit/react 0.0.2-prototype.0.1.4 → 0.0.2-prototype.0.2.11

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 (548) hide show
  1. package/README.md +87 -0
  2. package/package.json +37 -27
  3. package/src/brand/TilepaperAppIcon.tsx +181 -0
  4. package/src/brand/index.ts +2 -0
  5. package/src/brand/tilepaper-app-icon-geometry.ts +201 -0
  6. package/src/icons/WorkbenchIcon.tsx +57 -0
  7. package/src/icons/WorkbenchIconContext.tsx +25 -0
  8. package/src/icons/file-icon.ts +154 -0
  9. package/src/icons/index.ts +17 -0
  10. package/src/icons/resolveWorkbenchIcon.ts +48 -0
  11. package/src/icons/types.ts +28 -0
  12. package/src/index.ts +292 -88
  13. package/src/jdw/JdwPreview.tsx +165 -8
  14. package/src/jdw/JdwPreviewViewport.tsx +190 -0
  15. package/src/jdw/JsonCodeEditorPane.tsx +172 -21
  16. package/src/jdw/builtins/renderBuiltinWidgetLeaf.tsx +101 -0
  17. package/src/jdw/createBuiltinJdwRegistry.ts +330 -5
  18. package/src/jdw/cssRenderBackend.tsx +96 -7
  19. package/src/jdw/document.ts +0 -3
  20. package/src/jdw/fixtures/jdw-sample-screens.ts +10 -8
  21. package/src/jdw/index.ts +9 -4
  22. package/src/jdw/jdw-preview-viewport.css +41 -0
  23. package/src/jdw/renderJdw.tsx +49 -8
  24. package/src/json-config/JsonConfigWorkbench.tsx +12 -15
  25. package/src/layout/ViewEmptyState.tsx +14 -0
  26. package/src/layout/WorkbenchCanvas.tsx +113 -6
  27. package/src/layout/WorkbenchLayout.tsx +3 -0
  28. package/src/layout/WorkbenchLayoutBase.tsx +43 -2
  29. package/src/layout/WorkbenchMediaPreviewViewport.tsx +122 -0
  30. package/src/layout/WorkbenchPropertyOverrideLabel.tsx +90 -0
  31. package/src/layout/WorkbenchPropertyPanel.tsx +153 -17
  32. package/src/layout/WorkbenchPropertySearch.tsx +51 -0
  33. package/src/layout/WorkbenchTree.tsx +9 -10
  34. package/src/layout/canvas/canvas-drag-ghost.css +21 -0
  35. package/src/layout/canvas/canvas-drag-preview-frame.css +15 -0
  36. package/src/layout/canvas/canvas-drop-indicator.css +16 -0
  37. package/src/layout/canvas/canvas-frame-handle.css +37 -0
  38. package/src/layout/canvas/canvas-frame-surface.css +24 -0
  39. package/src/layout/canvas/canvas-guide-block.css +17 -0
  40. package/src/layout/canvas/canvas-guide-layer.css +6 -0
  41. package/src/layout/canvas/canvas-guide-line.css +22 -0
  42. package/src/layout/canvas/canvas-item-badge.css +23 -0
  43. package/src/layout/canvas/canvas-item-frame.css +54 -0
  44. package/src/layout/canvas/canvas-pane-surface.css +9 -0
  45. package/src/layout/canvas/canvas-placeholder.css +21 -0
  46. package/src/layout/canvas/canvas-resize-frame.css +9 -0
  47. package/src/layout/canvas/canvas-resize-handle.css +74 -0
  48. package/src/layout/canvas/canvas-resize-preview.css +11 -0
  49. package/src/layout/canvas/canvas-selection-marquee.css +14 -0
  50. package/src/layout/canvas/canvas-viewport.css +18 -0
  51. package/src/layout/canvas/index.css +19 -0
  52. package/src/layout/canvas/preview-canvas.css +144 -0
  53. package/src/layout/editor/editor-body.css +9 -0
  54. package/src/layout/editor/editor-bottom-panel.css +44 -0
  55. package/src/layout/editor/editor-frame.css +14 -0
  56. package/src/layout/editor/editor-viewport.css +7 -0
  57. package/src/layout/editor/floating-menu.css +91 -0
  58. package/src/layout/editor/index.css +10 -0
  59. package/src/layout/editor/parse-error.css +9 -0
  60. package/src/layout/editor/problem-item.css +52 -0
  61. package/src/layout/editor/problem-list.css +7 -0
  62. package/src/layout/editor/render-surface.css +13 -0
  63. package/src/layout/fillScrollContract.ts +49 -0
  64. package/src/layout/fullscreen/fullscreen-backdrop.css +31 -0
  65. package/src/layout/fullscreen/fullscreen-button.css +44 -0
  66. package/src/layout/fullscreen/fullscreen-carousel.css +20 -0
  67. package/src/layout/fullscreen/fullscreen-content.css +8 -0
  68. package/src/layout/fullscreen/fullscreen-empty.css +16 -0
  69. package/src/layout/fullscreen/fullscreen-header.css +77 -0
  70. package/src/layout/fullscreen/fullscreen-hero.css +41 -0
  71. package/src/layout/fullscreen/fullscreen-nav-button.css +29 -0
  72. package/src/layout/fullscreen/fullscreen-option.css +83 -0
  73. package/src/layout/fullscreen/fullscreen-pill-row.css +6 -0
  74. package/src/layout/fullscreen/fullscreen-pill.css +10 -0
  75. package/src/layout/fullscreen/fullscreen-root.css +11 -0
  76. package/src/layout/fullscreen/index.css +13 -0
  77. package/src/layout/index.ts +165 -0
  78. package/src/layout/layout-base/banner.css +32 -0
  79. package/src/layout/layout-base/center.css +7 -0
  80. package/src/layout/layout-base/column.css +7 -0
  81. package/src/layout/layout-base/divider.css +5 -0
  82. package/src/layout/layout-base/empty.css +12 -0
  83. package/src/layout/layout-base/fill-scroll.css +36 -0
  84. package/src/layout/layout-base/fill.css +18 -0
  85. package/src/layout/layout-base/index.css +13 -0
  86. package/src/layout/layout-base/pane.css +6 -0
  87. package/src/layout/layout-base/panel-scroll.css +5 -0
  88. package/src/layout/layout-base/panel-surface.css +14 -0
  89. package/src/layout/layout-base/root.css +9 -0
  90. package/src/layout/layout-base/section-title.css +8 -0
  91. package/src/layout/layout.css +10 -0
  92. package/src/layout/layoutHelpers.ts +4 -2
  93. package/src/layout/media/index.css +2 -0
  94. package/src/layout/media/media-preview-viewport.css +69 -0
  95. package/src/layout/{Panel.tsx → panel/Panel.tsx} +29 -40
  96. package/src/layout/panel/TemplateGallery.tsx +90 -0
  97. package/src/layout/panel/WorkbenchAuthoringShell.tsx +57 -0
  98. package/src/layout/panel/WorkbenchLabeledPane.tsx +81 -0
  99. package/src/layout/panel/WorkbenchSidebarStack.tsx +15 -0
  100. package/src/layout/panel/filter-bar.css +59 -0
  101. package/src/layout/panel/index.css +7 -0
  102. package/src/layout/panel/index.ts +70 -0
  103. package/src/layout/panel/preview-pane.css +63 -0
  104. package/src/layout/panel/template-gallery.css +131 -0
  105. package/src/layout/panel/workbench-authoring-shell.css +48 -0
  106. package/src/layout/panel/workbench-labeled-pane.css +69 -0
  107. package/src/layout/panel/workbench-sidebar-stack.css +18 -0
  108. package/src/layout/property/color-input.css +8 -0
  109. package/src/layout/property/color-row.css +6 -0
  110. package/src/layout/property/index.css +15 -0
  111. package/src/layout/property/property-card.css +8 -0
  112. package/src/layout/property/property-grid.css +24 -0
  113. package/src/layout/property/property-hint.css +4 -0
  114. package/src/layout/property/property-inline.css +10 -0
  115. package/src/layout/property/property-key-value.css +29 -0
  116. package/src/layout/property/property-override-label.css +34 -0
  117. package/src/layout/property/property-panel.css +20 -0
  118. package/src/layout/property/property-row.css +17 -0
  119. package/src/layout/property/property-search.css +43 -0
  120. package/src/layout/property/property-section.css +97 -0
  121. package/src/layout/property/property-stack.css +11 -0
  122. package/src/layout/property/property-toggle.css +14 -0
  123. package/src/layout/propertyFieldFilter.ts +84 -0
  124. package/src/layout/sidebar/SideBarTree.tsx +301 -0
  125. package/src/layout/sidebar/SideBarViewFrame.tsx +235 -0
  126. package/src/layout/sidebar/SideBarViewTabStrip.tsx +60 -0
  127. package/src/layout/sidebar/SideBarViewTitleMenu.tsx +75 -0
  128. package/src/layout/sidebar/SidebarActionIconBar.tsx +242 -0
  129. package/src/layout/sidebar/SidebarSectionNestingContext.tsx +21 -0
  130. package/src/layout/sidebar/SidebarSlotChrome.tsx +32 -0
  131. package/src/layout/sidebar/SidebarToolbar.tsx +10 -0
  132. package/src/layout/sidebar/WorkbenchActionSidebar.tsx +73 -0
  133. package/src/layout/{WorkbenchSidebarActions.tsx → sidebar/WorkbenchSidebarActions.tsx} +105 -51
  134. package/src/layout/sidebar/WorkbenchSidebarSectionStack.tsx +165 -0
  135. package/src/layout/sidebar/index.css +5 -0
  136. package/src/layout/sidebar/index.ts +68 -0
  137. package/src/layout/sidebar/sidebar-chrome.css +95 -0
  138. package/src/layout/sidebar/sidebar-section-stack.css +25 -0
  139. package/src/layout/sidebar/sidebar-section.css +124 -0
  140. package/src/layout/sidebar/sidebar-view.css +290 -0
  141. package/src/layout/tree/drag-preview.css +25 -0
  142. package/src/layout/tree/index.css +10 -0
  143. package/src/layout/tree/template-glyph.css +96 -0
  144. package/src/layout/tree/tree-action.css +20 -0
  145. package/src/layout/tree/tree-drag-overlay.css +13 -0
  146. package/src/layout/tree/tree-drop-line.css +17 -0
  147. package/src/layout/tree/tree-drop-zone.css +13 -0
  148. package/src/layout/tree/tree-expander.css +23 -0
  149. package/src/layout/tree/tree-item.css +93 -0
  150. package/src/layout/tree/tree.css +49 -0
  151. package/src/layout/usePreviewViewport.ts +428 -0
  152. package/src/modal/ConfirmDialog.tsx +1 -1
  153. package/src/modal/Modal.tsx +184 -311
  154. package/src/modal/ModalResizeHandles.tsx +40 -0
  155. package/src/modal/ModalTitlebar.tsx +86 -0
  156. package/src/modal/modal.css +291 -0
  157. package/src/modal/modalContainer.ts +36 -0
  158. package/src/modal/modalPosition.ts +36 -0
  159. package/src/modal/modalSize.ts +84 -0
  160. package/src/modal/modalTypes.ts +13 -0
  161. package/src/modal/useModalContainerViewport.ts +41 -0
  162. package/src/modal/useModalDrag.ts +118 -0
  163. package/src/modal/useModalFocusTrap.ts +142 -0
  164. package/src/modal/useModalResize.ts +122 -0
  165. package/src/modal/useModalWindowFrame.ts +122 -0
  166. package/src/overlay/ContextMenu.tsx +139 -54
  167. package/src/overlay/clampFixedOverlayPosition.ts +22 -0
  168. package/src/overlay/context-menu.css +129 -0
  169. package/src/overlay/index.ts +31 -0
  170. package/src/overlay/measureAnchoredOverlayPanel.ts +107 -0
  171. package/src/overlay/overlay.css +2 -0
  172. package/src/overlay/pointerPassthroughRegion.ts +83 -0
  173. package/src/overlay/useAnchoredOverlayPanel.ts +222 -0
  174. package/src/overlay/useClampedFixedOverlayPosition.ts +27 -0
  175. package/src/overlay/useContextMenuState.ts +59 -0
  176. package/src/overlay/useFixedOverlayDismiss.ts +49 -0
  177. package/src/overlay/usePointerPassthroughRegion.ts +87 -0
  178. package/src/primitives/{AbsoluteBox.tsx → absolute-box/AbsoluteBox.tsx} +5 -5
  179. package/src/primitives/absolute-box/index.ts +1 -0
  180. package/src/primitives/{Badge.tsx → badge/Badge.tsx} +4 -2
  181. package/src/primitives/badge/badge.css +20 -0
  182. package/src/primitives/badge/index.ts +1 -0
  183. package/src/primitives/{Button.tsx → button/Button.tsx} +7 -6
  184. package/src/primitives/button/button.css +76 -0
  185. package/src/primitives/button/index.ts +1 -0
  186. package/src/primitives/catalog-browse-card/CatalogBrowseCard.tsx +121 -0
  187. package/src/primitives/catalog-browse-card/catalog-browse-card.css +175 -0
  188. package/src/primitives/catalog-browse-card/index.ts +1 -0
  189. package/src/primitives/catalog-browse-pane/CatalogBrowseFacetChips.tsx +59 -0
  190. package/src/primitives/catalog-browse-pane/CatalogBrowsePane.tsx +360 -0
  191. package/src/primitives/catalog-browse-pane/catalog-browse-facet-chips.css +8 -0
  192. package/src/primitives/catalog-browse-pane/catalog-browse-pane.css +84 -0
  193. package/src/primitives/catalog-browse-pane/filterCatalogBrowseItems.ts +27 -0
  194. package/src/primitives/catalog-browse-pane/index.ts +3 -0
  195. package/src/primitives/catalog-filter-overlay/CatalogFilterOverlay.tsx +73 -0
  196. package/src/primitives/catalog-filter-overlay/catalog-filter-overlay.css +65 -0
  197. package/src/primitives/catalog-filter-overlay/index.ts +1 -0
  198. package/src/primitives/checkbox/Checkbox.tsx +40 -0
  199. package/src/primitives/checkbox/checkbox.css +81 -0
  200. package/src/primitives/checkbox/index.ts +1 -0
  201. package/src/primitives/chip/Chip.tsx +43 -0
  202. package/src/primitives/chip/chip.css +110 -0
  203. package/src/primitives/chip/index.ts +2 -0
  204. package/src/primitives/clearable-text-input/ClearableTextInput.tsx +78 -0
  205. package/src/primitives/clearable-text-input/clearable-text-input.css +15 -0
  206. package/src/primitives/clearable-text-input/index.ts +1 -0
  207. package/src/primitives/codicon/Codicon.tsx +20 -0
  208. package/src/primitives/codicon/index.ts +1 -0
  209. package/src/primitives/{EmptyState.tsx → empty-state/EmptyState.tsx} +9 -3
  210. package/src/primitives/empty-state/empty-state.css +20 -0
  211. package/src/primitives/empty-state/index.ts +1 -0
  212. package/src/primitives/external-link-button/ExternalLinkButton.tsx +56 -0
  213. package/src/primitives/external-link-button/index.ts +1 -0
  214. package/src/primitives/{Field.tsx → field/Field.tsx} +2 -1
  215. package/src/primitives/field/field.css +51 -0
  216. package/src/primitives/field/index.ts +1 -0
  217. package/src/primitives/file-icon/FileIcon.tsx +21 -0
  218. package/src/primitives/file-icon/index.ts +1 -0
  219. package/src/primitives/{IconButton.tsx → icon-button/IconButton.tsx} +7 -5
  220. package/src/primitives/icon-button/icon-button.css +46 -0
  221. package/src/primitives/icon-button/index.ts +1 -0
  222. package/src/primitives/index.ts +215 -50
  223. package/src/primitives/library-detail-layout/LibraryDetailLayout.tsx +249 -0
  224. package/src/primitives/library-detail-layout/index.ts +6 -0
  225. package/src/primitives/library-detail-layout/library-detail-layout.css +226 -0
  226. package/src/primitives/library-detail-layout/resolve-hero-cover-media.ts +80 -0
  227. package/src/primitives/library-facet-filter-panel/LibraryFacetFilterPanel.tsx +454 -0
  228. package/src/primitives/library-facet-filter-panel/index.ts +1 -0
  229. package/src/primitives/library-facet-filter-panel/library-facet-filter-panel.css +205 -0
  230. package/src/primitives/library-facet-filter-strip/LibraryFacetFilterStrip.tsx +527 -0
  231. package/src/primitives/library-facet-filter-strip/index.ts +1 -0
  232. package/src/primitives/library-facet-filter-strip/library-facet-filter-strip.css +31 -0
  233. package/src/primitives/{List.tsx → list/List.tsx} +15 -6
  234. package/src/primitives/list/index.ts +1 -0
  235. package/src/primitives/list/list-empty-state.css +10 -0
  236. package/src/primitives/list/list-item.css +93 -0
  237. package/src/primitives/list/list.css +6 -0
  238. package/src/primitives/number-input/NumberInput.tsx +235 -0
  239. package/src/primitives/number-input/index.ts +1 -0
  240. package/src/primitives/number-input/number-input.css +105 -0
  241. package/src/primitives/panel-loading/PanelLoading.tsx +29 -0
  242. package/src/primitives/panel-loading/index.ts +1 -0
  243. package/src/primitives/panel-loading/panel-loading.css +16 -0
  244. package/src/primitives/panel-surface/panel-surface.css +77 -0
  245. package/src/primitives/primitives.css +36 -0
  246. package/src/primitives/record-media-hero/RecordMediaHero.tsx +85 -0
  247. package/src/primitives/record-media-hero/index.ts +1 -0
  248. package/src/primitives/record-media-hero/record-media-hero.css +84 -0
  249. package/src/primitives/scroll-area/ScrollArea.tsx +200 -0
  250. package/src/primitives/scroll-area/index.ts +1 -0
  251. package/src/primitives/scroll-area/scroll-area-overlay.css +69 -0
  252. package/src/primitives/scroll-area-infinite-load/ScrollAreaInfiniteSentinel.tsx +22 -0
  253. package/src/primitives/scroll-area-infinite-load/index.ts +2 -0
  254. package/src/primitives/scroll-area-infinite-load/scroll-area-infinite-sentinel.css +6 -0
  255. package/src/primitives/scroll-area-infinite-load/useScrollAreaInfiniteLoad.ts +84 -0
  256. package/src/primitives/searchable-multi-select/SearchableMultiSelect.tsx +378 -0
  257. package/src/primitives/searchable-multi-select/index.ts +9 -0
  258. package/src/primitives/searchable-multi-select/overlay.ts +125 -0
  259. package/src/primitives/searchable-multi-select/searchable-multi-select.css +129 -0
  260. package/src/primitives/select/Select.tsx +21 -3
  261. package/src/primitives/select/overlay.ts +23 -4
  262. package/src/primitives/select/select.app.css +5 -2
  263. package/src/primitives/select/select.css +49 -12
  264. package/src/primitives/styles.css +3 -952
  265. package/src/primitives/tabbed-panels/TabbedPanels.tsx +68 -0
  266. package/src/primitives/tabbed-panels/index.ts +2 -0
  267. package/src/primitives/tabbed-panels/tabbed-panels.css +58 -0
  268. package/src/primitives/{TextArea.tsx → text-area/TextArea.tsx} +3 -2
  269. package/src/primitives/text-area/index.ts +1 -0
  270. package/src/primitives/{TextInput.tsx → text-input/TextInput.tsx} +3 -2
  271. package/src/primitives/text-input/index.ts +1 -0
  272. package/src/primitives/text-input/input.css +54 -0
  273. package/src/primitives/{Toolbar.tsx → toolbar/Toolbar.tsx} +1 -1
  274. package/src/primitives/toolbar/index.ts +1 -0
  275. package/src/primitives/visually-hidden/visually-hidden.css +11 -0
  276. package/src/primitives/{WorkbenchEditor.tsx → workbench-editor/WorkbenchEditor.tsx} +81 -43
  277. package/src/primitives/workbench-editor/button-group.css +10 -0
  278. package/src/primitives/workbench-editor/editor-tabs.css +201 -0
  279. package/src/primitives/workbench-editor/index.ts +1 -0
  280. package/src/primitives/workbench-editor/resizable-panels.css +53 -0
  281. package/src/primitives/workbench-editor/segmented-control.css +98 -0
  282. package/src/primitives/workbench-media-slot/WorkbenchMediaPlaceholder.tsx +25 -0
  283. package/src/primitives/workbench-media-slot/WorkbenchMediaSlot.tsx +66 -0
  284. package/src/primitives/workbench-media-slot/index.ts +2 -0
  285. package/src/primitives/workbench-media-slot/media-slot.css +72 -0
  286. package/src/primitives/workbench-thumbnail/WorkbenchThumbnail.tsx +38 -0
  287. package/src/primitives/workbench-thumbnail/index.ts +1 -0
  288. package/src/primitives/workbench-thumbnail/thumbnail.css +69 -0
  289. package/src/scrollbars.css +77 -2
  290. package/src/styles.css +13 -7735
  291. package/src/test-utils/workbenchMonacoMock.tsx +37 -0
  292. package/src/utils/dragMime.ts +89 -0
  293. package/src/utils/useWorkbenchMediaImage.ts +37 -0
  294. package/src/widget-asset/WidgetAssetEditor.tsx +9 -7
  295. package/src/widget-asset/WidgetAssetModeControls.tsx +1 -1
  296. package/src/widget-asset/WidgetAssetWorkbench.tsx +5 -6
  297. package/src/widget-studio/create-widget-studio-workspace-editor.tsx +1 -2
  298. package/src/widget-studio/index.ts +4 -1
  299. package/src/widget-studio/resolve-widget-studio-asset-catalog.ts +27 -10
  300. package/src/widget-tree/WidgetAssetPalette.tsx +35 -7
  301. package/src/widget-tree/WidgetInspectorPanel.tsx +53 -3
  302. package/src/widget-tree/WidgetSourceEditor.tsx +90 -3
  303. package/src/widget-tree/WidgetTreeCanvasPreview.tsx +875 -0
  304. package/src/widget-tree/WidgetTreeLab.tsx +411 -83
  305. package/src/widget-tree/WidgetTreeModeControls.tsx +30 -1
  306. package/src/widget-tree/WidgetTreeSidePanel.tsx +24 -34
  307. package/src/widget-tree/WidgetTreeView.tsx +711 -11
  308. package/src/widget-tree/WidgetTreeWorkbench.tsx +59 -15
  309. package/src/widget-tree/WidgetTreeWorkspaceShell.tsx +28 -10
  310. package/src/widget-tree/index.ts +22 -4
  311. package/src/widget-tree/widget-placement-asset-dnd.ts +35 -0
  312. package/src/widget-tree/widget-tree-document.ts +3 -9
  313. package/src/widget-tree/widget-tree-editor-state.ts +40 -0
  314. package/src/widget-tree/widget-tree-layout.ts +48 -3
  315. package/src/widget-tree/widget-tree-play-helpers.ts +69 -58
  316. package/src/workbench/auth/WorkbenchLoginView.tsx +4 -6
  317. package/src/workbench/auth/auth-flows.css +440 -0
  318. package/src/workbench/auth/auth.css +3 -0
  319. package/src/workbench/auth/profile-modals.css +115 -0
  320. package/src/workbench/bootstrap/WorkbenchBootstrapGate.tsx +45 -0
  321. package/src/workbench/bootstrap/WorkbenchBootstrapView.tsx +100 -0
  322. package/src/workbench/bootstrap/index.ts +12 -0
  323. package/src/workbench/bootstrap/useWorkbenchBootstrap.ts +130 -0
  324. package/src/workbench/chat/ChatCommandProposalCard.tsx +115 -0
  325. package/src/workbench/chat/ChatComposer.tsx +32 -34
  326. package/src/workbench/chat/ChatConversationBar.tsx +134 -0
  327. package/src/workbench/chat/ChatHistoryMenu.tsx +171 -0
  328. package/src/workbench/chat/ChatHistoryMenuRow.tsx +74 -0
  329. package/src/workbench/chat/ChatMessageCollapsible.tsx +119 -0
  330. package/src/workbench/chat/ChatMessageItem.tsx +351 -19
  331. package/src/workbench/chat/ChatMessageList.tsx +109 -24
  332. package/src/workbench/chat/ChatPanel.tsx +141 -19
  333. package/src/workbench/chat/ChatPhasedRunProgress.tsx +275 -0
  334. package/src/workbench/chat/ChatRenameDialog.tsx +77 -0
  335. package/src/workbench/chat/chat-conversation.css +273 -0
  336. package/src/workbench/chat/chat-ui.css +1132 -0
  337. package/src/workbench/chat/chat.css +3 -0
  338. package/src/workbench/chat/chatConversation.ts +46 -0
  339. package/src/workbench/chat/chatHistoryRowMenuItems.ts +29 -0
  340. package/src/workbench/chat/chatMessageMeta.tsx +252 -0
  341. package/src/workbench/chat/chatScroll.ts +22 -0
  342. package/src/workbench/chat/index.ts +48 -1
  343. package/src/workbench/chat/slashCommand.ts +5 -7
  344. package/src/workbench/chat/types.ts +35 -0
  345. package/src/workbench/chat/useCancelRuntimeOnUnmount.ts +60 -0
  346. package/src/workbench/chat/useChatPrependPagination.ts +233 -0
  347. package/src/workbench/chat/useChatRuntimeState.ts +3 -15
  348. package/src/workbench/chat/useSlashCommandSuggest.ts +77 -24
  349. package/src/workbench/chrome/WorkbenchModalPortal.tsx +52 -0
  350. package/src/workbench/chrome/WorkbenchPlatformContext.tsx +31 -0
  351. package/src/workbench/chrome/index.css +6 -0
  352. package/src/workbench/chrome/workbench-chrome.css +4 -0
  353. package/src/workbench/chrome/workbench-desktop-titlebar.css +60 -0
  354. package/src/workbench/chrome/workbench-host.css +85 -0
  355. package/src/workbench/chrome/workbench-layout-regions.css +42 -0
  356. package/src/workbench/chrome/workbench-platform-chrome.css +142 -0
  357. package/src/workbench/chrome/workbench-shell-titlebar.css +124 -0
  358. package/src/workbench/chrome/workbenchModalViewState.ts +52 -0
  359. package/src/workbench/chrome/workbenchOverlaysContext.tsx +21 -0
  360. package/src/workbench/chrome/workbenchPlatformChrome.ts +40 -0
  361. package/src/workbench/command-palette/command-palette.css +156 -0
  362. package/src/workbench/commands/CommandGroupShell.tsx +131 -0
  363. package/src/workbench/commands/CommandList.tsx +167 -0
  364. package/src/workbench/commands/CommandPalette.tsx +391 -0
  365. package/src/workbench/{ConfirmationFlow.tsx → commands/ConfirmationFlow.tsx} +6 -8
  366. package/src/workbench/{ShortcutCommandBridge.tsx → commands/ShortcutCommandBridge.tsx} +1 -4
  367. package/src/workbench/commands/command-execution-policy.ts +61 -0
  368. package/src/workbench/commands/command-model.ts +279 -0
  369. package/src/workbench/{commands.ts → commands/commands.ts} +63 -7
  370. package/src/workbench/commands/workbenchContextMenu.ts +18 -0
  371. package/src/workbench/editor/WorkbenchEditorTabs.tsx +52 -0
  372. package/src/workbench/editor/editor-tabs-dnd.ts +162 -0
  373. package/src/workbench/editor/editorTabContextMenu.ts +111 -0
  374. package/src/workbench/editor/useEditorTabsStripDnd.ts +262 -0
  375. package/src/workbench/editor/useWorkbenchEditorTabContextMenu.tsx +66 -0
  376. package/src/workbench/editor-tabs/index.ts +22 -0
  377. package/src/workbench/index.ts +288 -37
  378. package/src/workbench/management/AccountManagementPanel.tsx +82 -0
  379. package/src/workbench/management/CommandInspectorPanel.tsx +127 -0
  380. package/src/workbench/management/CommandManagementPanel.tsx +129 -0
  381. package/src/workbench/management/CommandManagementSidebar.tsx +318 -0
  382. package/src/workbench/management/ExtensionManagementPanel.tsx +527 -0
  383. package/src/workbench/management/ExtensionManagementSidebar.tsx +509 -0
  384. package/src/workbench/management/IntegrationCommandActions.tsx +78 -0
  385. package/src/workbench/management/IntegrationSettingsSurface.tsx +290 -0
  386. package/src/workbench/management/IntegrationsShell.tsx +53 -0
  387. package/src/workbench/management/KeybindingCaptureField.tsx +142 -0
  388. package/src/workbench/management/KeybindingManagementPanel.tsx +120 -0
  389. package/src/workbench/management/LibraryCatalogPickerDialog.tsx +208 -0
  390. package/src/workbench/management/LibraryFacetFilterDialog.tsx +62 -0
  391. package/src/workbench/management/ManagementCard.tsx +89 -0
  392. package/src/workbench/management/ManagementFilterChips.tsx +41 -0
  393. package/src/workbench/management/ManagementGroup.tsx +56 -0
  394. package/src/workbench/management/ManagementPanelControls.tsx +43 -0
  395. package/src/workbench/management/ManagementPanelFrame.tsx +109 -0
  396. package/src/workbench/management/WorkbenchDialogFrame.tsx +148 -0
  397. package/src/workbench/management/WorkbenchNotice.tsx +211 -0
  398. package/src/workbench/management/build-command-management-groups.ts +157 -0
  399. package/src/workbench/management/command-inspector-uri.ts +26 -0
  400. package/src/workbench/management/createWorkbenchNotify.tsx +88 -0
  401. package/src/workbench/management/extension-category-display.ts +42 -0
  402. package/src/workbench/management/extension-install-approval.ts +72 -0
  403. package/src/workbench/management/format-command-run-state.ts +19 -0
  404. package/src/workbench/management/index.ts +144 -0
  405. package/src/workbench/management/integration-command-action.ts +25 -0
  406. package/src/workbench/management/library-catalog-picker-dialog.css +56 -0
  407. package/src/workbench/management/library-facet-filter-dialog.css +8 -0
  408. package/src/workbench/management/management-panel.css +444 -0
  409. package/src/workbench/management/management.css +32 -0
  410. package/src/workbench/management/types.ts +139 -0
  411. package/src/workbench/management/useWorkbenchNotify.ts +10 -0
  412. package/src/workbench/{MarkdownPreview.tsx → markdown/MarkdownPreview.tsx} +26 -15
  413. package/src/workbench/markdown/markdownRemarkPlugins.ts +12 -0
  414. package/src/workbench/markdown/sanitizeMarkdownHref.ts +29 -0
  415. package/src/workbench/schema/index.ts +0 -1
  416. package/src/workbench/settings/NavigationPanel.tsx +41 -2
  417. package/src/workbench/settings/SchemaForm.tsx +20 -7
  418. package/src/workbench/settings/SectionTabPanel.tsx +172 -0
  419. package/src/workbench/settings/SectionedPanel.tsx +40 -286
  420. package/src/workbench/settings/StructuredDataForm.tsx +106 -26
  421. package/src/workbench/settings/StructuredDataSchemaPanel.tsx +345 -93
  422. package/src/workbench/settings/StructuredDataTableView.tsx +2 -2
  423. package/src/workbench/settings/WorkbenchPanelRegion.tsx +1 -1
  424. package/src/workbench/settings/WorkbenchSettingsModal.tsx +116 -62
  425. package/src/workbench/settings/WorkbenchSettingsNav.tsx +3 -3
  426. package/src/workbench/settings/extensionSettingsForm.ts +34 -0
  427. package/src/workbench/settings/index.ts +36 -1
  428. package/src/workbench/settings/navigation-panel.css +59 -0
  429. package/src/workbench/settings/panel-region.css +3 -2
  430. package/src/workbench/settings/schema-form.css +36 -0
  431. package/src/workbench/settings/schemaFormSettingSpec.ts +177 -0
  432. package/src/workbench/settings/schemaFormSettingsCategory.tsx +21 -0
  433. package/src/workbench/settings/section-tab-panel.css +157 -0
  434. package/src/workbench/settings/sectionScrollSpyDom.ts +139 -0
  435. package/src/workbench/settings/sectioned-panel.css +162 -0
  436. package/src/workbench/settings/sectionedPanelScrollSpy.ts +158 -28
  437. package/src/workbench/settings/settings-responsive.css +58 -0
  438. package/src/workbench/settings/settings.css +11 -0
  439. package/src/workbench/settings/settingsCommit.tsx +55 -0
  440. package/src/workbench/settings/structured-data-form.css +114 -0
  441. package/src/workbench/settings/structured-data-schema-panel.css +33 -19
  442. package/src/workbench/settings/structuredDataFormModel.ts +140 -0
  443. package/src/workbench/settings/structuredDataSchema.ts +111 -658
  444. package/src/workbench/settings/structuredDataSchemaDate.ts +197 -0
  445. package/src/workbench/settings/structuredDataSchemaField.ts +105 -0
  446. package/src/workbench/settings/structuredDataSchemaSection.ts +74 -0
  447. package/src/workbench/settings/structuredDataSchemaTable.ts +120 -0
  448. package/src/workbench/settings/structuredDataSchemaTypes.ts +308 -0
  449. package/src/workbench/settings/structuredDataSchemaValidation.ts +166 -0
  450. package/src/workbench/settings/useSectionScrollSpy.ts +420 -0
  451. package/src/workbench/settings/workbench-settings-modal.css +273 -0
  452. package/src/workbench/shell/ActivityBar.tsx +159 -0
  453. package/src/workbench/{ArtifactShell.tsx → shell/ArtifactShell.tsx} +30 -30
  454. package/src/workbench/shell/SplitView.tsx +485 -0
  455. package/src/workbench/{StatusBar.tsx → shell/StatusBar.tsx} +10 -8
  456. package/src/workbench/{StructuredArtifactEditor.tsx → shell/StructuredArtifactEditor.tsx} +9 -9
  457. package/src/workbench/{Timeline.tsx → shell/Timeline.tsx} +19 -24
  458. package/src/workbench/shell/WorkbenchCanvasShell.defaults.ts +106 -0
  459. package/src/workbench/shell/WorkbenchCanvasShell.model.ts +46 -0
  460. package/src/workbench/{WorkbenchCanvasShell.tsx → shell/WorkbenchCanvasShell.tsx} +34 -148
  461. package/src/workbench/shell/WorkbenchDesktopTitleBar.tsx +126 -0
  462. package/src/workbench/shell/WorkbenchShell.tsx +192 -0
  463. package/src/workbench/shell/WorkbenchShellTitleBarLayoutControls.tsx +80 -0
  464. package/src/workbench/shell/WorkbenchStandaloneShell.tsx +604 -0
  465. package/src/workbench/shell/WorkbenchViewEditor.tsx +75 -0
  466. package/src/workbench/shell/WorkbenchViewSidebar.tsx +85 -0
  467. package/src/workbench/shell/WorkbenchWindowChromeControls.tsx +293 -0
  468. package/src/workbench/shell/activity-bar.css +245 -0
  469. package/src/workbench/shell/activityBarOrder.ts +98 -0
  470. package/src/workbench/shell/appearanceLabels.ts +28 -0
  471. package/src/workbench/shell/confirmation-flow.css +87 -0
  472. package/src/workbench/shell/hardReset.ts +64 -0
  473. package/src/workbench/shell/index.css +5 -0
  474. package/src/workbench/shell/shell.ts +152 -0
  475. package/src/workbench/shell/shellPresets.ts +36 -0
  476. package/src/workbench/{shellState.ts → shell/shellState.ts} +16 -23
  477. package/src/workbench/shell/shellViewModel.ts +160 -0
  478. package/src/workbench/shell/sidebarViewPlacementDnd.ts +61 -0
  479. package/src/workbench/shell/split-view.css +188 -0
  480. package/src/workbench/{standalone.ts → shell/standalone.ts} +11 -11
  481. package/src/workbench/shell/status-bar.css +141 -0
  482. package/src/workbench/{status.ts → shell/status.ts} +10 -6
  483. package/src/workbench/shell/useDeferredWorkbenchMount.ts +71 -0
  484. package/src/workbench/shell/useWorkbenchAppearanceDocumentSync.tsx +17 -0
  485. package/src/workbench/shell/useWorkbenchSidebarActionBarDnd.ts +227 -0
  486. package/src/workbench/shell/useWorkbenchSidebarLayout.tsx +232 -0
  487. package/src/workbench/shell/useWorkbenchSidebarViewPlacementDropZone.ts +194 -0
  488. package/src/workbench/shell/useWorkbenchStandaloneShellStateSync.tsx +112 -0
  489. package/src/workbench/shell/workbenchSidebarLayoutContext.ts +46 -0
  490. package/src/workbench/shell/workbenchStandaloneShellReactContext.tsx +80 -0
  491. package/src/workbench/shell/workbenchViewRouteState.ts +151 -0
  492. package/src/workbench/theme/WorkbenchThemeProvider.tsx +142 -0
  493. package/src/workbench/{theme.ts → theme/theme.ts} +9 -3
  494. package/src/workbench/theme/themePresets.ts +192 -0
  495. package/src/workbench/views/action-list.css +144 -0
  496. package/src/workbench/views/artifact-preview.css +184 -0
  497. package/src/workbench/views/command-inspector.css +98 -0
  498. package/src/workbench/views/command-list.css +356 -0
  499. package/src/workbench/views/commands-sidebar.css +51 -0
  500. package/src/workbench/views/extensions-sidebar.css +175 -0
  501. package/src/workbench/views/multi-provider-explorer.css +182 -0
  502. package/src/workbench/views/search.css +10 -0
  503. package/src/workbench/views/timeline.css +239 -0
  504. package/src/workbench/views/view-hosts.css +37 -0
  505. package/src/workbench/views/view-sidebar.css +21 -0
  506. package/src/workbench/views/views.css +12 -0
  507. package/src/workbench/widgets/widget-tree.css +598 -0
  508. package/src/workbench/widgets/widgets.css +2 -0
  509. package/src/workbench/workspace/WorkspaceDraftsContext.tsx +59 -71
  510. package/src/workbench/workspace/WorkspaceEditor.tsx +27 -123
  511. package/src/workbench/workspace/WorkspaceEditorPanel.tsx +68 -9
  512. package/src/workbench/workspace/WorkspaceExplorer.tsx +252 -53
  513. package/src/workbench/workspace/WorkspaceExplorerPanel.tsx +73 -0
  514. package/src/workbench/workspace/WorkspaceFileIcon.tsx +4 -160
  515. package/src/workbench/workspace/WorkspacePathLabel.tsx +42 -0
  516. package/src/workbench/workspace/WorkspaceSearchPanel.tsx +18 -15
  517. package/src/workbench/workspace/WorkspaceSearchResults.tsx +6 -2
  518. package/src/workbench/workspace/build-workspace-explorer-nodes.ts +44 -0
  519. package/src/workbench/workspace/createVirtualWorkspaceExplorerPort.ts +141 -0
  520. package/src/workbench/workspace/explorer-tree-style.ts +18 -0
  521. package/src/workbench/workspace/index.ts +45 -32
  522. package/src/workbench/workspace/json-config-workbench.css +57 -0
  523. package/src/workbench/workspace/monaco-panel.css +71 -0
  524. package/src/workbench/workspace/path.ts +2 -0
  525. package/src/workbench/workspace/useWorkspaceExplorerController.ts +490 -0
  526. package/src/workbench/workspace/workspace-editor.css +235 -0
  527. package/src/workbench/workspace/workspace-explorer-panel.css +33 -0
  528. package/src/workbench/workspace/workspace.css +5 -0
  529. package/src/workbench/workspace/workspaceExplorerController.ts +193 -0
  530. package/src/workbench/workspace/workspaceExplorerKeyboard.ts +109 -0
  531. package/src/workbench/workspace/workspaceJsonDiagnostics.ts +8 -7
  532. package/src/workbench-menu-surfaces.css +57 -0
  533. package/src/jdw/builtins/renderBuiltinWidgetNode.tsx +0 -126
  534. package/src/layout/SideBarViewFrame.tsx +0 -367
  535. package/src/primitives/Checkbox.tsx +0 -21
  536. package/src/primitives/NumberInput.tsx +0 -38
  537. package/src/primitives/ScrollArea.tsx +0 -42
  538. package/src/primitives/Select.tsx +0 -1
  539. package/src/primitives/StatusBar.tsx +0 -46
  540. package/src/primitives/WorkbenchChrome.tsx +0 -424
  541. package/src/workbench/ActivityBar.tsx +0 -52
  542. package/src/workbench/CommandPalette.tsx +0 -819
  543. package/src/workbench/SplitView.tsx +0 -136
  544. package/src/workbench/WorkbenchShell.tsx +0 -74
  545. package/src/workbench/WorkbenchStandaloneShell.tsx +0 -318
  546. package/src/workbench/shell.ts +0 -15
  547. package/src/workbench/workspace/MultiProviderExplorer.tsx +0 -625
  548. /package/src/workbench/{keyboard.ts → commands/keyboard.ts} +0 -0
@@ -1,5 +1,23 @@
1
- export { ActivityBar } from './ActivityBar';
2
- export type { ActivityBarItem, ActivityBarProps } from './ActivityBar';
1
+ export { ActivityBar } from './shell/ActivityBar';
2
+ export type { ActivityBarItem, ActivityBarProps } from './shell/ActivityBar';
3
+ export { createStringDragMime, createTypedDragMime } from '../utils/dragMime';
4
+ export type { TypedDragMime, TypedDragMimeOptions } from '../utils/dragMime';
5
+ export {
6
+ EDITOR_TAB_DRAG_DATA_TYPE,
7
+ getEditorTabDropPosition,
8
+ isEditorTabMoveNoop,
9
+ isEditorTabsScrollerEventTarget,
10
+ normalizeEditorTabReorderIndex,
11
+ readEditorTabDragPayload,
12
+ resolveEditorTabDropTarget,
13
+ resolveEditorTabStripDropTarget,
14
+ } from './editor/editor-tabs-dnd';
15
+ export type { EditorTabDragPayload, EditorTabDropTarget } from './editor/editor-tabs-dnd';
16
+ export { useEditorTabsStripDnd } from './editor/useEditorTabsStripDnd';
17
+ export type {
18
+ UseEditorTabsStripDndOptions,
19
+ UseEditorTabsStripDndResult,
20
+ } from './editor/useEditorTabsStripDnd';
3
21
  export {
4
22
  WorkbenchArtifactModeControls,
5
23
  WorkbenchArtifactPreview,
@@ -10,7 +28,7 @@ export {
10
28
  getWorkbenchPreviewRenderer,
11
29
  getWorkbenchPreviewRendererMatch,
12
30
  selectWorkbenchPreviewRenderer,
13
- } from './ArtifactShell';
31
+ } from './shell/ArtifactShell';
14
32
  export type {
15
33
  WorkbenchArtifactDescriptor,
16
34
  WorkbenchArtifactMode,
@@ -23,7 +41,7 @@ export type {
23
41
  WorkbenchPreviewRendererContext,
24
42
  WorkbenchPreviewRendererMatch,
25
43
  WorkbenchPreviewRendererMatchReason,
26
- } from './ArtifactShell';
44
+ } from './shell/ArtifactShell';
27
45
  export {
28
46
  WorkbenchCommandGroupShell,
29
47
  WorkbenchCommandList,
@@ -34,12 +52,49 @@ export {
34
52
  filterWorkbenchCommands,
35
53
  getNextWorkbenchCommandIndex,
36
54
  getWorkbenchCommandExecutionLabel,
55
+ getWorkbenchCommandExecutionPolicyLabel,
37
56
  getWorkbenchCommandStatusLabel,
38
57
  groupWorkbenchCommands,
58
+ isWorkbenchCommandExecutionPolicy,
39
59
  isWorkbenchCommandRunnable,
40
- } from './CommandPalette';
41
- export { WorkbenchMarkdownPreview } from './MarkdownPreview';
42
- export type { WorkbenchMarkdownPreviewProps } from './MarkdownPreview';
60
+ resolveWorkbenchCommandExecutionPolicy,
61
+ } from './commands/CommandPalette';
62
+ export { WorkbenchMarkdownPreview } from './markdown/MarkdownPreview';
63
+ export type { WorkbenchMarkdownPreviewProps } from './markdown/MarkdownPreview';
64
+ export { sanitizeMarkdownHref } from './markdown/sanitizeMarkdownHref';
65
+ export {
66
+ workbenchMarkdownRemarkPlugins,
67
+ workbenchMarkdownRehypePlugins,
68
+ } from './markdown/markdownRemarkPlugins';
69
+ export {
70
+ ChatCommandProposalCard,
71
+ ChatConversationBar,
72
+ ChatHistoryMenu,
73
+ ChatPanel,
74
+ ChatPhasedRunProgress,
75
+ ChatRenameDialog,
76
+ DEFAULT_RUNTIME_UNMOUNT_CANCELLABLE_STATUSES,
77
+ defaultWorkbenchChatConversationLabels,
78
+ shouldCancelRuntimeOnUnmount,
79
+ useCancelRuntimeOnUnmount,
80
+ } from './chat';
81
+ export type {
82
+ ChatCommandProposal,
83
+ ChatCommandProposalCardProps,
84
+ ChatCommandProposalStatus,
85
+ ChatConversationBarProps,
86
+ ChatHistoryMenuProps,
87
+ ChatPanelProps,
88
+ ChatPhasedRunProgressAction,
89
+ ChatPhasedRunProgressLabels,
90
+ ChatPhasedRunProgressProps,
91
+ ChatRenameDialogProps,
92
+ ChatRunPhase,
93
+ ChatRunPhaseStatus,
94
+ UseCancelRuntimeOnUnmountOptions,
95
+ WorkbenchChatConversation,
96
+ WorkbenchChatConversationLabels,
97
+ } from './chat';
43
98
  export { getSlashCommandQuery, isSlashCommandInput, parseSlashCommand } from './chat/slashCommand';
44
99
  export { useSlashCommandSuggest } from './chat/useSlashCommandSuggest';
45
100
  export type {
@@ -52,9 +107,83 @@ export {
52
107
  isWorkbenchSaveShortcutEvent,
53
108
  useWorkbenchNativeContextMenuGuard,
54
109
  useWorkbenchNativeSaveGuard,
55
- } from './keyboard';
56
- export { resolveWorkbenchTheme, useResolvedWorkbenchTheme } from './theme';
57
- export type { ResolvedWorkbenchTheme } from './theme';
110
+ } from './commands/keyboard';
111
+ export { resolveWorkbenchTheme, useResolvedWorkbenchTheme } from './theme/theme';
112
+ export type { ResolvedWorkbenchTheme } from './theme/theme';
113
+ export { useDeferredWorkbenchMount } from './shell/useDeferredWorkbenchMount';
114
+ export type { UseDeferredWorkbenchMountOptions } from './shell/useDeferredWorkbenchMount';
115
+ export {
116
+ DEFAULT_WORKBENCH_HARD_RESET_CONFIRM_MESSAGE,
117
+ DEFAULT_WORKBENCH_STORAGE_PREFIX,
118
+ performWorkbenchHardReset,
119
+ } from './shell/hardReset';
120
+ export type { WorkbenchHardResetOptions } from './shell/hardReset';
121
+ export {
122
+ applyWorkbenchAppearance,
123
+ applyWorkbenchThemeAttributes,
124
+ applyWorkbenchThemeProviderAttributes,
125
+ DARK_THEME_PRESET_OPTIONS,
126
+ DARK_THEME_PRESET_MANIFEST,
127
+ DEFAULT_DARK_THEME_PRESET,
128
+ DEFAULT_LIGHT_THEME_PRESET,
129
+ isDarkThemePresetId,
130
+ isLightThemePresetId,
131
+ LIGHT_THEME_PRESET_OPTIONS,
132
+ LIGHT_THEME_PRESET_MANIFEST,
133
+ resolveActiveThemePreset,
134
+ resolveWorkbenchThemeProviderAttributes,
135
+ WORKBENCH_COLOR_SCHEME_OPTIONS,
136
+ } from './theme/themePresets';
137
+ export {
138
+ WORKBENCH_APPEARANCE_FIELD_DESCRIPTIONS,
139
+ WORKBENCH_APPEARANCE_FIELD_LABELS,
140
+ } from './shell/appearanceLabels';
141
+ export type {
142
+ DarkThemePresetId,
143
+ LightThemePresetId,
144
+ ResolveWorkbenchThemeProviderAttributesInput,
145
+ ThemePresetId,
146
+ WorkbenchAppearanceSettings,
147
+ WorkbenchColorSchemePreference,
148
+ WorkbenchThemeDocumentAttributes,
149
+ WorkbenchThemeProviderAttributes,
150
+ WorkbenchThemePresetOption,
151
+ WorkbenchThemePresetManifestEntry,
152
+ WorkbenchThemePresetSelection,
153
+ } from './theme/themePresets';
154
+ export {
155
+ applyWorkbenchShellAttributes,
156
+ DEFAULT_SHELL_PRESET,
157
+ isShellPresetId,
158
+ SHELL_PRESET_MANIFEST,
159
+ SHELL_PRESET_OPTIONS,
160
+ } from './shell/shellPresets';
161
+ export type {
162
+ ShellPresetId,
163
+ WorkbenchShellPresetManifestEntry,
164
+ WorkbenchShellPresetOption,
165
+ } from './shell/shellPresets';
166
+ export { WorkbenchThemeProvider } from './theme/WorkbenchThemeProvider';
167
+ export type { WorkbenchThemeProviderProps } from './theme/WorkbenchThemeProvider';
168
+ export { useWorkbenchAppearanceDocumentSync } from './shell/useWorkbenchAppearanceDocumentSync';
169
+ export {
170
+ WorkbenchPlatformProvider,
171
+ useWorkbenchHostPlatform,
172
+ } from './chrome/WorkbenchPlatformContext';
173
+ export type { WorkbenchPlatformProviderProps } from './chrome/WorkbenchPlatformContext';
174
+ export {
175
+ resolveWorkbenchHostPlatform,
176
+ resolveWorkbenchWindowChromeDataAttributes,
177
+ } from './chrome/workbenchPlatformChrome';
178
+ export type {
179
+ WorkbenchHostPlatform,
180
+ WorkbenchWindowChromeMode,
181
+ } from './chrome/workbenchPlatformChrome';
182
+ export {
183
+ WorkbenchWindowChromeControls,
184
+ shouldUseDarwinPlatformChrome,
185
+ } from './shell/WorkbenchWindowChromeControls';
186
+ export type { WorkbenchWindowChromeControlsProps } from './shell/WorkbenchWindowChromeControls';
58
187
  export {
59
188
  WorkbenchShortcutCommandBridge,
60
189
  getWorkbenchShortcutCommandBindings,
@@ -62,12 +191,13 @@ export {
62
191
  matchesWorkbenchShortcut,
63
192
  runWorkbenchShortcutCommand,
64
193
  useWorkbenchShortcutCommands,
65
- } from './ShortcutCommandBridge';
194
+ } from './commands/ShortcutCommandBridge';
66
195
  export type { SlashCommandParseResult } from './chat/slashCommand';
67
196
  export type {
68
197
  WorkbenchCommandDescriptor,
69
198
  WorkbenchCommandDescriptorOverrides,
70
199
  WorkbenchCommandExecution,
200
+ WorkbenchCommandExecutionPolicy,
71
201
  WorkbenchCommandFeedback,
72
202
  WorkbenchCommandFilterInput,
73
203
  WorkbenchCommandGroup,
@@ -83,7 +213,8 @@ export type {
83
213
  WorkbenchCommandSideEffect,
84
214
  WorkbenchCommandStatus,
85
215
  WorkbenchCommandSuggestProps,
86
- } from './CommandPalette';
216
+ } from './commands/CommandPalette';
217
+ export type { ResolveWorkbenchCommandExecutionPolicyInput } from './commands/CommandPalette';
87
218
  export type {
88
219
  UseWorkbenchShortcutCommandsOptions,
89
220
  WorkbenchShortcutCommandBinding,
@@ -95,7 +226,7 @@ export type {
95
226
  WorkbenchShortcutEventLike,
96
227
  WorkbenchShortcutMatchInput,
97
228
  WorkbenchShortcutPlatform,
98
- } from './ShortcutCommandBridge';
229
+ } from './commands/ShortcutCommandBridge';
99
230
  export {
100
231
  WorkbenchConfirmationFlow,
101
232
  getWorkbenchConfirmationButtonVariant,
@@ -104,7 +235,7 @@ export {
104
235
  getWorkbenchConfirmationStatus,
105
236
  getWorkbenchConfirmationVariant,
106
237
  isWorkbenchConfirmationActionDisabled,
107
- } from './ConfirmationFlow';
238
+ } from './commands/ConfirmationFlow';
108
239
  export type {
109
240
  WorkbenchConfirmationAction,
110
241
  WorkbenchConfirmationCancelContext,
@@ -115,7 +246,7 @@ export type {
115
246
  WorkbenchConfirmationReason,
116
247
  WorkbenchConfirmationSideEffect,
117
248
  WorkbenchConfirmationVariant,
118
- } from './ConfirmationFlow';
249
+ } from './commands/ConfirmationFlow';
119
250
  export {
120
251
  WorkbenchAuthGate,
121
252
  WorkbenchLoginBrandMark,
@@ -136,6 +267,16 @@ export type {
136
267
  WorkbenchSignUpSubmitContext,
137
268
  WorkbenchSignUpViewProps,
138
269
  } from './auth';
270
+ export { WorkbenchBootstrapGate, WorkbenchBootstrapView, useWorkbenchBootstrap } from './bootstrap';
271
+ export type {
272
+ WorkbenchBootstrapController,
273
+ WorkbenchBootstrapGateProps,
274
+ WorkbenchBootstrapRunStatus,
275
+ WorkbenchBootstrapTaskDefinition,
276
+ WorkbenchBootstrapTaskStatus,
277
+ WorkbenchBootstrapTaskViewModel,
278
+ WorkbenchBootstrapViewProps,
279
+ } from './bootstrap';
139
280
  export {
140
281
  WORKBENCH_EDITOR_CLOSE_ALL_COMMAND_ID,
141
282
  WORKBENCH_EDITOR_CLOSE_COMMAND_ID,
@@ -144,6 +285,9 @@ export {
144
285
  WORKBENCH_EDITOR_DELETE_COMMAND_ID,
145
286
  WORKBENCH_EDITOR_DISCARD_CHANGES_COMMAND_ID,
146
287
  WORKBENCH_EDITOR_SAVE_COMMAND_ID,
288
+ WORKBENCH_EDITOR_SPLIT_DOWN_COMMAND_ID,
289
+ WORKBENCH_EDITOR_SPLIT_RIGHT_COMMAND_ID,
290
+ WORKBENCH_EDITOR_TOGGLE_PINNED_COMMAND_ID,
147
291
  WORKBENCH_COMMAND_SURFACE_ACTIVITY_BAR,
148
292
  WORKBENCH_COMMAND_SURFACE_EDITOR,
149
293
  WORKBENCH_COMMAND_SURFACE_SEARCH,
@@ -164,6 +308,7 @@ export {
164
308
  createWorkbenchEditorCommands,
165
309
  createWorkbenchEditorTabListMenuEntries,
166
310
  createWorkbenchEditorTabMenuEntries,
311
+ createWorkbenchStandaloneEditorTabMenuEntries,
167
312
  createWorkbenchSearchResultCommands,
168
313
  createWorkbenchSearchResultMenuEntries,
169
314
  createWorkbenchShellCommands,
@@ -173,7 +318,7 @@ export {
173
318
  createWorkbenchWorkspaceFolderMenuEntries,
174
319
  createWorkbenchWorkspaceTargetMenuEntries,
175
320
  getWorkbenchShowActivityCommandId,
176
- } from './commands';
321
+ } from './commands/commands';
177
322
  export type {
178
323
  WorkbenchEditorCommandContext,
179
324
  WorkbenchSearchResultCommandContext,
@@ -182,18 +327,18 @@ export type {
182
327
  WorkbenchShellCommandPresetOptions,
183
328
  WorkbenchCommandSurface,
184
329
  WorkbenchWorkspaceCommandContext,
185
- } from './commands';
330
+ } from './commands/commands';
186
331
  export {
187
332
  initializeWorkbenchShellState,
188
333
  useWorkbenchShellState,
189
334
  workbenchShellStateReducer,
190
- } from './shellState';
335
+ } from './shell/shellState';
191
336
  export type {
192
337
  UseWorkbenchShellStateResult,
193
338
  WorkbenchShellAction,
194
339
  WorkbenchShellInitialState,
195
340
  WorkbenchShellState,
196
- } from './shellState';
341
+ } from './shell/shellState';
197
342
  export {
198
343
  getWorkbenchStatusDescriptor,
199
344
  getWorkbenchStatusLabel,
@@ -203,11 +348,15 @@ export {
203
348
  isWorkbenchStatusDisabled,
204
349
  isWorkbenchStatusUnavailable,
205
350
  workbenchStatusFromLifecycleStatus,
206
- } from './status';
207
- export type { WorkbenchStatus, WorkbenchStatusDescriptor, WorkbenchStatusVariant } from './status';
208
- export { SplitView } from './SplitView';
209
- export type { SplitViewProps } from './SplitView';
210
- export { StatusBar, StatusBarItem, StatusBarSection } from './StatusBar';
351
+ } from './shell/status';
352
+ export type {
353
+ WorkbenchStatus,
354
+ WorkbenchStatusDescriptor,
355
+ WorkbenchStatusVariant,
356
+ } from './shell/status';
357
+ export { SplitView } from './shell/SplitView';
358
+ export type { SplitViewLayoutMode, SplitViewProps } from './shell/SplitView';
359
+ export { StatusBar, StatusBarItem, StatusBarSection } from './shell/StatusBar';
211
360
  export type {
212
361
  StatusBarItemModel,
213
362
  StatusBarItemProps,
@@ -215,7 +364,7 @@ export type {
215
364
  StatusBarSectionAlign,
216
365
  StatusBarSectionModel,
217
366
  StatusBarSectionProps,
218
- } from './StatusBar';
367
+ } from './shell/StatusBar';
219
368
  export {
220
369
  WorkbenchTimeline,
221
370
  WorkbenchTimelineItem,
@@ -224,7 +373,7 @@ export {
224
373
  getWorkbenchTimelineEventLabel,
225
374
  getWorkbenchTimelineEventStatus,
226
375
  getWorkbenchTimelineMetadataEntries,
227
- } from './Timeline';
376
+ } from './shell/Timeline';
228
377
  export type {
229
378
  WorkbenchTimelineEvent,
230
379
  WorkbenchTimelineEventKind,
@@ -236,7 +385,7 @@ export type {
236
385
  WorkbenchTimelineRenderMetadata,
237
386
  WorkbenchTimelineRenderPayload,
238
387
  WorkbenchTimelineVariant,
239
- } from './Timeline';
388
+ } from './shell/Timeline';
240
389
  export {
241
390
  WorkbenchPanelRegion,
242
391
  WorkbenchNavigationPanel,
@@ -251,12 +400,47 @@ export {
251
400
  WorkbenchStructuredDataTextArrayInput,
252
401
  buildWorkbenchStructuredDataTableFromRecords,
253
402
  formatWorkbenchStructuredDataTableCell,
403
+ useWorkbenchSettingsCommit,
254
404
  } from './settings';
405
+ export {
406
+ AccountManagementPanel,
407
+ CommandManagementPanel,
408
+ ExtensionManagementPanel,
409
+ ExtensionManagementSidebar,
410
+ KeybindingManagementPanel,
411
+ ManagementPanelEmptyState,
412
+ ManagementPanelFrame,
413
+ ManagementPanelRunState,
414
+ ManagementPanelSummary,
415
+ ManagementPanelToolbar,
416
+ buildCommandManagementGroups,
417
+ countCommandManagementEntries,
418
+ filterCommandManagementGroups,
419
+ useManagementPanelQuery,
420
+ } from './management';
421
+ export type {
422
+ AccountManagementEntry,
423
+ AccountManagementEntryStatus,
424
+ AccountManagementPanelProps,
425
+ CommandManagementEntry,
426
+ CommandManagementEntryStatus,
427
+ CommandManagementGroup,
428
+ CommandManagementPanelProps,
429
+ CommandManagementRunState,
430
+ ExtensionCatalogBrowseEntry,
431
+ ExtensionManagementEntry,
432
+ ExtensionManagementPanelProps,
433
+ ExtensionManagementSidebarProps,
434
+ KeybindingManagementPanelProps,
435
+ ManagementPanelFrameProps,
436
+ ManagementPanelToolbarProps,
437
+ } from './management';
255
438
  export type {
256
439
  WorkbenchPanelRegionProps,
257
440
  WorkbenchNavigationPanelProps,
258
441
  WorkbenchSectionedPanelItem,
259
442
  WorkbenchSectionedPanelProps,
443
+ WorkbenchSectionedPanelScrollSpyAxis,
260
444
  WorkbenchSchemaFormCancelContext,
261
445
  WorkbenchSchemaFormCheckboxField,
262
446
  WorkbenchSchemaFormErrors,
@@ -269,11 +453,17 @@ export type {
269
453
  WorkbenchSchemaFormOption,
270
454
  WorkbenchSchemaFormProps,
271
455
  WorkbenchSchemaFormSelectField,
456
+ WorkbenchSchemaFormSettingSpec,
457
+ WorkbenchSchemaFormSettingValueType,
458
+ WorkbenchSchemaFormSettingsCategoryInput,
272
459
  WorkbenchSchemaFormSubmitContext,
273
460
  WorkbenchSchemaFormTextField,
274
461
  WorkbenchSchemaFormValues,
275
462
  WorkbenchSettingsCategory,
463
+ WorkbenchSettingsCommitContextValue,
464
+ WorkbenchSettingsCommitMode,
276
465
  WorkbenchSettingsModalProps,
466
+ WorkbenchSettingsPreferenceChange,
277
467
  WorkbenchSettingsScope,
278
468
  WorkbenchStructuredDataFieldType,
279
469
  WorkbenchStructuredDataFieldValue,
@@ -320,13 +510,18 @@ export {
320
510
  appendWorkbenchStructuredDataSchemaTableRow,
321
511
  asWorkbenchStructuredDataRecord,
322
512
  booleanWorkbenchStructuredDataSchemaFieldValue,
513
+ buildWorkbenchStructuredDataSchemaSelectOptions,
323
514
  coerceWorkbenchStructuredDataFormFieldValue,
324
515
  coerceWorkbenchStructuredDataSchemaFieldValue,
325
516
  coerceWorkbenchSchemaFormFieldValue,
517
+ coerceWorkbenchSchemaFormSettingDefaultValue,
326
518
  createWorkbenchStructuredDataSchemaDocumentEmptyRow,
327
519
  createWorkbenchStructuredDataSchemaEmptyRow,
328
520
  createWorkbenchStructuredDataSchemaDocumentSampleData,
329
521
  createWorkbenchStructuredDataSchemaFallbackSection,
522
+ createWorkbenchSchemaFormFieldFromSettingSpec,
523
+ createWorkbenchSchemaFormFieldsFromSettingSpecs,
524
+ createWorkbenchSchemaFormSettingsCategory,
330
525
  formatWorkbenchStructuredDataSchemaValue,
331
526
  formatWorkbenchStructuredDataSchemaLabel,
332
527
  getWorkbenchStructuredDataFormErrors,
@@ -355,6 +550,8 @@ export {
355
550
  getWorkbenchStructuredDataSchemaTablePath,
356
551
  getWorkbenchStructuredDataSchemaTableRowKey,
357
552
  getWorkbenchStructuredDataSchemaTableRows,
553
+ hasWorkbenchStructuredDataSchemaSelectOptions,
554
+ isWorkbenchStructuredDataSchemaColorField,
358
555
  getWorkbenchStructuredDataValue,
359
556
  getWorkbenchSchemaFormErrors,
360
557
  getWorkbenchSchemaFormFieldDefaultValue,
@@ -366,18 +563,73 @@ export {
366
563
  removeWorkbenchStructuredDataSchemaTableRow,
367
564
  setWorkbenchStructuredDataPathOrRootValue,
368
565
  setWorkbenchStructuredDataValue,
566
+ shouldUseWorkbenchStructuredDataSchemaRadioControl,
369
567
  slugWorkbenchStructuredDataSchemaAnchor,
370
568
  stringifyWorkbenchStructuredDataSchemaFieldValue,
569
+ validateWorkbenchStructuredDataSchemaFieldValue,
371
570
  } from './settings';
372
- export { WorkbenchShell } from './WorkbenchShell';
373
- export type { WorkbenchShellProps } from './WorkbenchShell';
374
- export { WorkbenchStandaloneShell } from './WorkbenchStandaloneShell';
375
- export { WorkbenchCanvasShell } from './WorkbenchCanvasShell';
571
+ export { WorkbenchShell } from './shell/WorkbenchShell';
572
+ export type { WorkbenchShellProps } from './shell/WorkbenchShell';
573
+ export { WorkbenchViewEditor } from './shell/WorkbenchViewEditor';
574
+ export type {
575
+ WorkbenchViewEditorDataAttributes,
576
+ WorkbenchViewEditorEmptyState,
577
+ WorkbenchViewEditorEmptyStateProps,
578
+ WorkbenchViewEditorEmptyStateSurfaceProps,
579
+ WorkbenchViewEditorProps,
580
+ } from './shell/WorkbenchViewEditor';
581
+ export { WorkbenchEditorTabs } from './editor/WorkbenchEditorTabs';
582
+ export type { WorkbenchEditorTabsProps } from './editor/WorkbenchEditorTabs';
583
+ export {
584
+ createWorkbenchStandaloneEditorTabCommandContext,
585
+ createWorkbenchStandaloneEditorTabContextMenuItems,
586
+ isWorkbenchEditorTabClosable,
587
+ } from './editor/editorTabContextMenu';
376
588
  export type {
589
+ CreateWorkbenchStandaloneEditorTabCommandContextInput,
590
+ WorkbenchStandaloneEditorTabLike,
591
+ } from './editor/editorTabContextMenu';
592
+ export { useWorkbenchEditorTabContextMenu } from './editor/useWorkbenchEditorTabContextMenu';
593
+ export type {
594
+ UseWorkbenchEditorTabContextMenuOptions,
595
+ UseWorkbenchEditorTabContextMenuResult,
596
+ } from './editor/useWorkbenchEditorTabContextMenu';
597
+ export { WorkbenchViewSidebar } from './shell/WorkbenchViewSidebar';
598
+ export type {
599
+ WorkbenchViewSidebarItem,
600
+ WorkbenchViewSidebarProps,
601
+ } from './shell/WorkbenchViewSidebar';
602
+ export {
603
+ WorkbenchDesktopTitleBar,
604
+ WorkbenchDesktopWindowControls,
605
+ } from './shell/WorkbenchDesktopTitleBar';
606
+ export type {
607
+ WorkbenchDesktopTitleBarProps,
608
+ WorkbenchDesktopWindowControlsProps,
609
+ } from './shell/WorkbenchDesktopTitleBar';
610
+ export { WorkbenchStandaloneShell } from './shell/WorkbenchStandaloneShell';
611
+ export { WorkbenchCanvasShell } from './shell/WorkbenchCanvasShell';
612
+ export type {
613
+ WorkbenchActivityLifecycleCallbackMap,
614
+ WorkbenchActivityLifecycleCallbacks,
615
+ WorkbenchActivityLifecycleEvent,
616
+ WorkbenchPrimarySidebarLifecycle,
617
+ WorkbenchPrimarySidebarLifecycleCallbacks,
618
+ WorkbenchPrimarySidebarLifecycleReason,
377
619
  WorkbenchStandaloneShellContext,
378
620
  WorkbenchStandaloneShellProps,
379
- } from './WorkbenchStandaloneShell';
380
- export type { WorkbenchCanvasShellProps } from './WorkbenchCanvasShell';
621
+ } from './shell/WorkbenchStandaloneShell';
622
+ export {
623
+ createWorkbenchStandaloneShellStateSnapshot,
624
+ useWorkbenchStandaloneShellContext,
625
+ } from './shell/workbenchStandaloneShellReactContext';
626
+ export type {
627
+ WorkbenchStandaloneShellStateChange,
628
+ WorkbenchStandaloneShellStateChangeKind,
629
+ WorkbenchStandaloneShellStateSnapshot,
630
+ } from './shell/workbenchStandaloneShellReactContext';
631
+ export { useWorkbenchStandaloneShellStateSync } from './shell/useWorkbenchStandaloneShellStateSync';
632
+ export type { WorkbenchCanvasShellProps } from './shell/WorkbenchCanvasShell';
381
633
  export type {
382
634
  WorkbenchActivityChangeEvent,
383
635
  WorkbenchActivityDescriptor,
@@ -392,11 +644,10 @@ export type {
392
644
  WorkbenchStatusController,
393
645
  WorkbenchTheme,
394
646
  WorkbenchWorkspaceController,
395
- } from './standalone';
396
- export { StructuredArtifactEditor } from './StructuredArtifactEditor';
397
- export type { StructuredArtifactEditorProps } from './StructuredArtifactEditor';
647
+ } from './shell/standalone';
648
+ export { StructuredArtifactEditor } from './shell/StructuredArtifactEditor';
649
+ export type { StructuredArtifactEditorProps } from './shell/StructuredArtifactEditor';
398
650
  export type {
399
- JsonWorkbenchDocument,
400
651
  WorkbenchDocument,
401
652
  WorkbenchDocumentAdapter,
402
653
  WorkbenchDocumentMeta,
@@ -0,0 +1,82 @@
1
+ import { Badge } from '../../primitives/badge';
2
+ import { Button } from '../../primitives/button';
3
+ import { ManagementCard, ManagementCardList } from './ManagementCard.js';
4
+ import {
5
+ ManagementPanelEmptyState,
6
+ ManagementPanelFrame,
7
+ ManagementPanelSummary,
8
+ } from './ManagementPanelFrame.js';
9
+ import type { AccountManagementPanelProps } from './types.js';
10
+
11
+ export function AccountManagementPanel({
12
+ accounts,
13
+ activeAccountId,
14
+ automationHint = 'Linked accounts are discovered from project integrations. Switching providers and token refresh stay host-controlled.',
15
+ className,
16
+ emptyLabel = 'No linked accounts are available for this project.',
17
+ onSignOut,
18
+ sessionLabel,
19
+ }: AccountManagementPanelProps) {
20
+ const activeAccount =
21
+ accounts.find((account) => account.id === activeAccountId) ??
22
+ accounts.find((account) => account.status === 'active');
23
+
24
+ return (
25
+ <ManagementPanelFrame
26
+ className={className}
27
+ description={automationHint}
28
+ id="workbench-account-management"
29
+ title="Linked Accounts"
30
+ >
31
+ {sessionLabel ? <ManagementPanelSummary>{sessionLabel}</ManagementPanelSummary> : null}
32
+
33
+ {accounts.length === 0 ? (
34
+ <ManagementPanelEmptyState>{emptyLabel}</ManagementPanelEmptyState>
35
+ ) : (
36
+ <ManagementCardList>
37
+ {accounts.map((account) => {
38
+ const isActive = account.id === activeAccount?.id;
39
+
40
+ return (
41
+ <li key={account.id}>
42
+ <ManagementCard
43
+ active={isActive}
44
+ actions={
45
+ onSignOut && isActive ? (
46
+ <Button type="button" variant="danger" onClick={() => onSignOut(account.id)}>
47
+ Sign out
48
+ </Button>
49
+ ) : undefined
50
+ }
51
+ badges={isActive ? <Badge variant="accent">Active</Badge> : undefined}
52
+ layout="stack"
53
+ subtitle={account.email}
54
+ title={account.displayName}
55
+ >
56
+ <dl className="workbench-management-card__details">
57
+ <div>
58
+ <dt>Provider</dt>
59
+ <dd>{account.providerLabel ?? account.providerId}</dd>
60
+ </div>
61
+ <div>
62
+ <dt>Account ID</dt>
63
+ <dd>
64
+ <code>{account.id}</code>
65
+ </dd>
66
+ </div>
67
+ {account.status ? (
68
+ <div>
69
+ <dt>Status</dt>
70
+ <dd>{account.status}</dd>
71
+ </div>
72
+ ) : null}
73
+ </dl>
74
+ </ManagementCard>
75
+ </li>
76
+ );
77
+ })}
78
+ </ManagementCardList>
79
+ )}
80
+ </ManagementPanelFrame>
81
+ );
82
+ }