@workbench-kit/react 0.0.2-prototype.0.1.2 → 0.0.2-prototype.0.2.2

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