@workbench-kit/react 0.0.2-prototype.0.2.4 → 0.0.2-prototype.0.2.6
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.
- package/package.json +10 -10
- package/src/brand/TilepaperAppIcon.tsx +181 -181
- package/src/brand/index.ts +2 -2
- package/src/brand/tilepaper-app-icon-geometry.ts +201 -201
- package/src/icons/WorkbenchIcon.tsx +57 -57
- package/src/icons/WorkbenchIconContext.tsx +25 -25
- package/src/icons/file-icon.ts +154 -154
- package/src/icons/index.ts +17 -17
- package/src/icons/resolveWorkbenchIcon.ts +48 -48
- package/src/icons/types.ts +28 -28
- package/src/index.ts +735 -735
- package/src/jdw/JdwPreview.tsx +195 -195
- package/src/jdw/JdwPreviewViewport.tsx +190 -190
- package/src/jdw/JsonCodeEditorPane.tsx +424 -424
- package/src/jdw/builtins/renderBuiltinWidgetLeaf.tsx +130 -130
- package/src/jdw/createBuiltinJdwRegistry.ts +436 -436
- package/src/jdw/cssRenderBackend.tsx +223 -223
- package/src/jdw/document.ts +35 -35
- package/src/jdw/fixtures/jdw-fixtures.ts +52 -52
- package/src/jdw/fixtures/jdw-sample-screens.ts +524 -524
- package/src/jdw/index.ts +50 -50
- package/src/jdw/jdw-preview-viewport.css +41 -41
- package/src/jdw/parse.ts +1 -1
- package/src/jdw/renderJdw.tsx +73 -73
- package/src/json-config/JsonConfigWorkbench.tsx +313 -313
- package/src/json-config/index.ts +6 -6
- package/src/json-config/json-config-editor-state.ts +42 -42
- package/src/layout/ViewEmptyState.tsx +14 -14
- package/src/layout/WorkbenchCanvas.tsx +956 -956
- package/src/layout/WorkbenchFullscreen.tsx +368 -368
- package/src/layout/WorkbenchLayout.tsx +8 -8
- package/src/layout/WorkbenchLayoutBase.tsx +335 -335
- package/src/layout/WorkbenchMediaPreviewViewport.tsx +122 -122
- package/src/layout/WorkbenchPropertyOverrideLabel.tsx +90 -90
- package/src/layout/WorkbenchPropertyPanel.tsx +633 -633
- package/src/layout/WorkbenchPropertySearch.tsx +51 -51
- package/src/layout/WorkbenchTree.tsx +350 -350
- package/src/layout/canvas/canvas-drag-ghost.css +21 -21
- package/src/layout/canvas/canvas-drag-preview-frame.css +15 -15
- package/src/layout/canvas/canvas-drop-indicator.css +16 -16
- package/src/layout/canvas/canvas-frame-handle.css +37 -37
- package/src/layout/canvas/canvas-frame-surface.css +24 -24
- package/src/layout/canvas/canvas-guide-block.css +17 -17
- package/src/layout/canvas/canvas-guide-layer.css +6 -6
- package/src/layout/canvas/canvas-guide-line.css +22 -22
- package/src/layout/canvas/canvas-item-badge.css +23 -23
- package/src/layout/canvas/canvas-item-frame.css +54 -54
- package/src/layout/canvas/canvas-pane-surface.css +9 -9
- package/src/layout/canvas/canvas-placeholder.css +21 -21
- package/src/layout/canvas/canvas-resize-frame.css +9 -9
- package/src/layout/canvas/canvas-resize-handle.css +74 -74
- package/src/layout/canvas/canvas-resize-preview.css +11 -11
- package/src/layout/canvas/canvas-selection-marquee.css +14 -14
- package/src/layout/canvas/canvas-viewport.css +18 -18
- package/src/layout/canvas/index.css +19 -19
- package/src/layout/canvas/preview-canvas.css +144 -144
- package/src/layout/editor/editor-body.css +9 -9
- package/src/layout/editor/editor-bottom-panel.css +44 -44
- package/src/layout/editor/editor-frame.css +14 -14
- package/src/layout/editor/editor-viewport.css +7 -7
- package/src/layout/editor/floating-menu.css +91 -91
- package/src/layout/editor/index.css +10 -10
- package/src/layout/editor/parse-error.css +9 -9
- package/src/layout/editor/problem-item.css +52 -52
- package/src/layout/editor/problem-list.css +7 -7
- package/src/layout/editor/render-surface.css +13 -13
- package/src/layout/fillScrollContract.ts +49 -49
- package/src/layout/fullscreen/fullscreen-backdrop.css +31 -31
- package/src/layout/fullscreen/fullscreen-button.css +44 -44
- package/src/layout/fullscreen/fullscreen-carousel.css +20 -20
- package/src/layout/fullscreen/fullscreen-content.css +8 -8
- package/src/layout/fullscreen/fullscreen-empty.css +16 -16
- package/src/layout/fullscreen/fullscreen-header.css +77 -77
- package/src/layout/fullscreen/fullscreen-hero.css +41 -41
- package/src/layout/fullscreen/fullscreen-nav-button.css +29 -29
- package/src/layout/fullscreen/fullscreen-option.css +83 -83
- package/src/layout/fullscreen/fullscreen-pill-row.css +6 -6
- package/src/layout/fullscreen/fullscreen-pill.css +10 -10
- package/src/layout/fullscreen/fullscreen-root.css +11 -11
- package/src/layout/fullscreen/index.css +13 -13
- package/src/layout/index.ts +156 -156
- package/src/layout/layout-base/banner.css +32 -32
- package/src/layout/layout-base/center.css +7 -7
- package/src/layout/layout-base/column.css +7 -7
- package/src/layout/layout-base/divider.css +5 -5
- package/src/layout/layout-base/empty.css +12 -12
- package/src/layout/layout-base/fill-scroll.css +36 -36
- package/src/layout/layout-base/fill.css +18 -18
- package/src/layout/layout-base/index.css +13 -13
- package/src/layout/layout-base/pane.css +6 -6
- package/src/layout/layout-base/panel-scroll.css +5 -5
- package/src/layout/layout-base/panel-surface.css +14 -14
- package/src/layout/layout-base/root.css +9 -9
- package/src/layout/layout-base/section-title.css +8 -8
- package/src/layout/layout.css +10 -10
- package/src/layout/layoutHelpers.ts +27 -27
- package/src/layout/media/index.css +2 -2
- package/src/layout/media/media-preview-viewport.css +69 -69
- package/src/layout/panel/Panel.tsx +161 -161
- package/src/layout/panel/TemplateGallery.tsx +90 -90
- package/src/layout/panel/WorkbenchAuthoringShell.tsx +57 -57
- package/src/layout/panel/WorkbenchLabeledPane.tsx +81 -81
- package/src/layout/panel/WorkbenchSidebarStack.tsx +15 -15
- package/src/layout/panel/filter-bar.css +59 -59
- package/src/layout/panel/index.css +7 -7
- package/src/layout/panel/index.ts +70 -70
- package/src/layout/panel/preview-pane.css +63 -63
- package/src/layout/panel/template-gallery.css +131 -131
- package/src/layout/panel/workbench-authoring-shell.css +48 -48
- package/src/layout/panel/workbench-labeled-pane.css +69 -69
- package/src/layout/panel/workbench-sidebar-stack.css +18 -18
- package/src/layout/property/color-input.css +8 -8
- package/src/layout/property/color-row.css +6 -6
- package/src/layout/property/index.css +15 -15
- package/src/layout/property/property-card.css +8 -8
- package/src/layout/property/property-grid.css +24 -24
- package/src/layout/property/property-hint.css +4 -4
- package/src/layout/property/property-inline.css +10 -10
- package/src/layout/property/property-key-value.css +29 -29
- package/src/layout/property/property-override-label.css +34 -34
- package/src/layout/property/property-panel.css +20 -20
- package/src/layout/property/property-row.css +17 -17
- package/src/layout/property/property-search.css +43 -43
- package/src/layout/property/property-section.css +97 -97
- package/src/layout/property/property-stack.css +11 -11
- package/src/layout/property/property-toggle.css +14 -14
- package/src/layout/propertyFieldFilter.ts +84 -84
- package/src/layout/sidebar/SideBarViewFrame.tsx +235 -235
- package/src/layout/sidebar/SideBarViewTabStrip.tsx +60 -60
- package/src/layout/sidebar/SideBarViewTitleMenu.tsx +75 -75
- package/src/layout/sidebar/SidebarActionIconBar.tsx +242 -242
- package/src/layout/sidebar/SidebarSectionNestingContext.tsx +21 -21
- package/src/layout/sidebar/SidebarSlotChrome.tsx +32 -32
- package/src/layout/sidebar/SidebarToolbar.tsx +10 -10
- package/src/layout/sidebar/WorkbenchActionSidebar.tsx +73 -73
- package/src/layout/sidebar/WorkbenchSidebarActions.tsx +328 -328
- package/src/layout/sidebar/WorkbenchSidebarSectionStack.tsx +165 -165
- package/src/layout/sidebar/index.css +5 -5
- package/src/layout/sidebar/index.ts +55 -55
- package/src/layout/sidebar/sidebar-chrome.css +95 -95
- package/src/layout/sidebar/sidebar-section-stack.css +25 -25
- package/src/layout/sidebar/sidebar-section.css +124 -124
- package/src/layout/sidebar/sidebar-view.css +290 -290
- package/src/layout/tree/drag-preview.css +25 -25
- package/src/layout/tree/index.css +10 -10
- package/src/layout/tree/template-glyph.css +96 -96
- package/src/layout/tree/tree-action.css +20 -20
- package/src/layout/tree/tree-drag-overlay.css +13 -13
- package/src/layout/tree/tree-drop-line.css +17 -17
- package/src/layout/tree/tree-drop-zone.css +13 -13
- package/src/layout/tree/tree-expander.css +23 -23
- package/src/layout/tree/tree-item.css +93 -93
- package/src/layout/tree/tree.css +49 -49
- package/src/layout/usePreviewViewport.ts +428 -428
- package/src/modal/ConfirmDialog.tsx +61 -61
- package/src/modal/Modal.tsx +213 -213
- package/src/modal/ModalResizeHandles.tsx +40 -40
- package/src/modal/ModalTitlebar.tsx +86 -86
- package/src/modal/modal.css +291 -291
- package/src/modal/modalContainer.ts +36 -36
- package/src/modal/modalPosition.ts +36 -36
- package/src/modal/modalSize.ts +84 -84
- package/src/modal/modalTypes.ts +13 -13
- package/src/modal/useModalContainerViewport.ts +41 -41
- package/src/modal/useModalDrag.ts +118 -118
- package/src/modal/useModalResize.ts +122 -122
- package/src/modal/useModalWindowFrame.ts +122 -122
- package/src/overlay/ContextMenu.tsx +124 -124
- package/src/overlay/clampFixedOverlayPosition.ts +22 -22
- package/src/overlay/context-menu.css +127 -127
- package/src/overlay/index.ts +31 -31
- package/src/overlay/measureAnchoredOverlayPanel.ts +107 -107
- package/src/overlay/overlay.css +2 -2
- package/src/overlay/pointerPassthroughRegion.ts +83 -83
- package/src/overlay/useAnchoredOverlayPanel.ts +222 -222
- package/src/overlay/useClampedFixedOverlayPosition.ts +27 -27
- package/src/overlay/useContextMenuState.ts +59 -59
- package/src/overlay/useFixedOverlayDismiss.ts +49 -49
- package/src/overlay/usePointerPassthroughRegion.ts +87 -87
- package/src/primitives/absolute-box/AbsoluteBox.tsx +46 -46
- package/src/primitives/absolute-box/index.ts +1 -1
- package/src/primitives/badge/Badge.tsx +14 -14
- package/src/primitives/badge/badge.css +20 -20
- package/src/primitives/badge/index.ts +1 -1
- package/src/primitives/button/Button.tsx +45 -45
- package/src/primitives/button/button.css +76 -76
- package/src/primitives/button/index.ts +1 -1
- package/src/primitives/catalog-browse-card/CatalogBrowseCard.tsx +121 -121
- package/src/primitives/catalog-browse-card/catalog-browse-card.css +175 -175
- package/src/primitives/catalog-browse-card/index.ts +1 -1
- package/src/primitives/catalog-browse-pane/CatalogBrowseFacetChips.tsx +59 -59
- package/src/primitives/catalog-browse-pane/CatalogBrowsePane.tsx +360 -360
- package/src/primitives/catalog-browse-pane/catalog-browse-facet-chips.css +8 -8
- package/src/primitives/catalog-browse-pane/catalog-browse-pane.css +84 -84
- package/src/primitives/catalog-browse-pane/filterCatalogBrowseItems.ts +27 -27
- package/src/primitives/catalog-browse-pane/index.ts +3 -3
- package/src/primitives/catalog-filter-overlay/CatalogFilterOverlay.tsx +73 -73
- package/src/primitives/catalog-filter-overlay/catalog-filter-overlay.css +65 -65
- package/src/primitives/catalog-filter-overlay/index.ts +1 -1
- package/src/primitives/checkbox/Checkbox.tsx +40 -40
- package/src/primitives/checkbox/checkbox.css +81 -81
- package/src/primitives/checkbox/index.ts +1 -1
- package/src/primitives/chip/Chip.tsx +43 -43
- package/src/primitives/chip/chip.css +110 -110
- package/src/primitives/chip/index.ts +2 -2
- package/src/primitives/clearable-text-input/ClearableTextInput.tsx +78 -78
- package/src/primitives/clearable-text-input/clearable-text-input.css +15 -15
- package/src/primitives/clearable-text-input/index.ts +1 -1
- package/src/primitives/codicon/Codicon.tsx +20 -20
- package/src/primitives/codicon/index.ts +1 -1
- package/src/primitives/empty-state/EmptyState.tsx +33 -33
- package/src/primitives/empty-state/empty-state.css +20 -20
- package/src/primitives/empty-state/index.ts +1 -1
- package/src/primitives/external-link-button/ExternalLinkButton.tsx +56 -56
- package/src/primitives/external-link-button/index.ts +1 -1
- package/src/primitives/field/Field.tsx +39 -39
- package/src/primitives/field/field.css +51 -51
- package/src/primitives/field/index.ts +1 -1
- package/src/primitives/file-icon/FileIcon.tsx +21 -21
- package/src/primitives/file-icon/index.ts +1 -1
- package/src/primitives/icon-button/IconButton.tsx +37 -37
- package/src/primitives/icon-button/icon-button.css +46 -46
- package/src/primitives/icon-button/index.ts +1 -1
- package/src/primitives/index.ts +265 -265
- package/src/primitives/library-detail-layout/LibraryDetailLayout.tsx +135 -135
- package/src/primitives/library-detail-layout/index.ts +1 -1
- package/src/primitives/library-detail-layout/library-detail-layout.css +169 -169
- package/src/primitives/library-facet-filter-panel/LibraryFacetFilterPanel.tsx +454 -454
- package/src/primitives/library-facet-filter-panel/index.ts +1 -1
- package/src/primitives/library-facet-filter-panel/library-facet-filter-panel.css +205 -205
- package/src/primitives/library-facet-filter-strip/LibraryFacetFilterStrip.tsx +527 -527
- package/src/primitives/library-facet-filter-strip/index.ts +1 -1
- package/src/primitives/library-facet-filter-strip/library-facet-filter-strip.css +31 -31
- package/src/primitives/list/List.tsx +120 -120
- package/src/primitives/list/index.ts +1 -1
- package/src/primitives/list/list-empty-state.css +10 -10
- package/src/primitives/list/list-item.css +93 -93
- package/src/primitives/list/list.css +6 -6
- package/src/primitives/number-input/NumberInput.tsx +235 -235
- package/src/primitives/number-input/index.ts +1 -1
- package/src/primitives/number-input/number-input.css +105 -105
- package/src/primitives/panel-loading/PanelLoading.tsx +29 -29
- package/src/primitives/panel-loading/index.ts +1 -1
- package/src/primitives/panel-loading/panel-loading.css +16 -16
- package/src/primitives/panel-surface/panel-surface.css +77 -77
- package/src/primitives/primitives.css +36 -36
- package/src/primitives/record-media-hero/RecordMediaHero.tsx +81 -81
- package/src/primitives/record-media-hero/index.ts +1 -1
- package/src/primitives/record-media-hero/record-media-hero.css +84 -84
- package/src/primitives/scroll-area/ScrollArea.tsx +200 -200
- package/src/primitives/scroll-area/index.ts +1 -1
- package/src/primitives/scroll-area/scroll-area-overlay.css +69 -69
- package/src/primitives/scroll-area-infinite-load/ScrollAreaInfiniteSentinel.tsx +22 -22
- package/src/primitives/scroll-area-infinite-load/index.ts +2 -2
- package/src/primitives/scroll-area-infinite-load/scroll-area-infinite-sentinel.css +6 -6
- package/src/primitives/scroll-area-infinite-load/useScrollAreaInfiniteLoad.ts +84 -84
- package/src/primitives/searchable-multi-select/SearchableMultiSelect.tsx +378 -378
- package/src/primitives/searchable-multi-select/index.ts +9 -9
- package/src/primitives/searchable-multi-select/overlay.ts +125 -125
- package/src/primitives/searchable-multi-select/searchable-multi-select.css +129 -129
- package/src/primitives/select/Select.tsx +284 -284
- package/src/primitives/select/index.ts +2 -2
- package/src/primitives/select/options.ts +38 -38
- package/src/primitives/select/overlay.ts +82 -82
- package/src/primitives/select/select.app.css +12 -12
- package/src/primitives/select/select.css +177 -177
- package/src/primitives/select/types.ts +18 -18
- package/src/primitives/styles.css +6 -6
- package/src/primitives/tabbed-panels/TabbedPanels.tsx +68 -68
- package/src/primitives/tabbed-panels/index.ts +2 -2
- package/src/primitives/tabbed-panels/tabbed-panels.css +58 -58
- package/src/primitives/text-area/TextArea.tsx +37 -37
- package/src/primitives/text-area/index.ts +1 -1
- package/src/primitives/text-input/TextInput.tsx +34 -34
- package/src/primitives/text-input/index.ts +1 -1
- package/src/primitives/text-input/input.css +54 -54
- package/src/primitives/toolbar/Toolbar.tsx +8 -8
- package/src/primitives/toolbar/index.ts +1 -1
- package/src/primitives/visually-hidden/visually-hidden.css +11 -11
- package/src/primitives/workbench-editor/WorkbenchEditor.tsx +432 -432
- package/src/primitives/workbench-editor/button-group.css +10 -10
- package/src/primitives/workbench-editor/editor-tabs.css +201 -201
- package/src/primitives/workbench-editor/index.ts +1 -1
- package/src/primitives/workbench-editor/resizable-panels.css +53 -53
- package/src/primitives/workbench-editor/segmented-control.css +98 -98
- package/src/primitives/workbench-media-slot/WorkbenchMediaPlaceholder.tsx +25 -25
- package/src/primitives/workbench-media-slot/WorkbenchMediaSlot.tsx +60 -60
- package/src/primitives/workbench-media-slot/index.ts +2 -2
- package/src/primitives/workbench-media-slot/media-slot.css +72 -72
- package/src/primitives/workbench-thumbnail/WorkbenchThumbnail.tsx +38 -38
- package/src/primitives/workbench-thumbnail/index.ts +1 -1
- package/src/primitives/workbench-thumbnail/thumbnail.css +69 -69
- package/src/scrollbars.css +144 -144
- package/src/styles.css +17 -17
- package/src/test-utils/workbenchMonacoMock.tsx +37 -37
- package/src/utils/codicon.ts +17 -17
- package/src/utils/dragMime.ts +89 -89
- package/src/utils/useWorkbenchMediaImage.ts +37 -37
- package/src/widget-asset/WidgetAssetEditor.tsx +142 -142
- package/src/widget-asset/WidgetAssetMetadataForm.tsx +82 -82
- package/src/widget-asset/WidgetAssetModeControls.tsx +42 -42
- package/src/widget-asset/WidgetAssetSourceEditor.tsx +50 -50
- package/src/widget-asset/WidgetAssetWorkbench.tsx +111 -111
- package/src/widget-asset/index.ts +17 -17
- package/src/widget-asset/widget-asset-document.ts +37 -37
- package/src/widget-asset/widget-asset-mode.ts +3 -3
- package/src/widget-studio/builtin-widget-asset-catalog.ts +12 -12
- package/src/widget-studio/create-widget-studio-workspace-editor.tsx +78 -78
- package/src/widget-studio/index.ts +10 -10
- package/src/widget-studio/resolve-widget-studio-asset-catalog.ts +43 -43
- package/src/widget-tree/WidgetAssetPalette.tsx +105 -105
- package/src/widget-tree/WidgetInspectorPanel.tsx +316 -316
- package/src/widget-tree/WidgetSourceEditor.tsx +143 -143
- package/src/widget-tree/WidgetTreeCanvasPreview.tsx +875 -875
- package/src/widget-tree/WidgetTreeLab.tsx +600 -600
- package/src/widget-tree/WidgetTreeModeControls.tsx +73 -73
- package/src/widget-tree/WidgetTreeSidePanel.tsx +39 -39
- package/src/widget-tree/WidgetTreeView.tsx +797 -797
- package/src/widget-tree/WidgetTreeWorkbench.tsx +155 -155
- package/src/widget-tree/WidgetTreeWorkspaceShell.tsx +172 -172
- package/src/widget-tree/demo-registry.ts +32 -32
- package/src/widget-tree/demo-widget-assets.ts +4 -4
- package/src/widget-tree/index.ts +45 -45
- package/src/widget-tree/widget-placement-asset-dnd.ts +35 -35
- package/src/widget-tree/widget-tree-document.ts +14 -14
- package/src/widget-tree/widget-tree-editor-state.ts +40 -40
- package/src/widget-tree/widget-tree-layout.ts +76 -76
- package/src/widget-tree/widget-tree-mode.ts +7 -7
- package/src/widget-tree/widget-tree-play-helpers.ts +85 -85
- package/src/workbench/ActivityBar.tsx +159 -159
- package/src/workbench/ArtifactShell.tsx +397 -397
- package/src/workbench/CommandGroupShell.tsx +131 -131
- package/src/workbench/CommandList.tsx +167 -167
- package/src/workbench/CommandPalette.tsx +417 -417
- package/src/workbench/ConfirmationFlow.tsx +243 -243
- package/src/workbench/MarkdownPreview.tsx +147 -147
- package/src/workbench/ShortcutCommandBridge.tsx +365 -365
- package/src/workbench/SplitView.tsx +485 -485
- package/src/workbench/StatusBar.tsx +180 -180
- package/src/workbench/StructuredArtifactEditor.tsx +205 -205
- package/src/workbench/Timeline.tsx +297 -297
- package/src/workbench/WorkbenchCanvasShell.defaults.ts +106 -106
- package/src/workbench/WorkbenchCanvasShell.model.ts +46 -46
- package/src/workbench/WorkbenchCanvasShell.tsx +827 -827
- package/src/workbench/WorkbenchDesktopTitleBar.tsx +126 -126
- package/src/workbench/WorkbenchEditorTabs.tsx +52 -52
- package/src/workbench/WorkbenchModalPortal.tsx +52 -52
- package/src/workbench/WorkbenchPlatformContext.tsx +31 -31
- package/src/workbench/WorkbenchShell.tsx +192 -192
- package/src/workbench/WorkbenchShellTitleBarLayoutControls.tsx +80 -80
- package/src/workbench/WorkbenchStandaloneShell.tsx +604 -604
- package/src/workbench/WorkbenchThemeProvider.tsx +142 -142
- package/src/workbench/WorkbenchViewEditor.tsx +75 -75
- package/src/workbench/WorkbenchViewSidebar.tsx +85 -85
- package/src/workbench/WorkbenchWindowChromeControls.tsx +290 -290
- package/src/workbench/activityBarOrder.ts +98 -98
- package/src/workbench/appearanceLabels.ts +28 -28
- package/src/workbench/auth/WorkbenchAuthGate.tsx +61 -61
- package/src/workbench/auth/WorkbenchLoginView.tsx +633 -633
- package/src/workbench/auth/auth-flows.css +440 -440
- package/src/workbench/auth/auth.css +3 -3
- package/src/workbench/auth/index.ts +19 -19
- package/src/workbench/auth/profile-modals.css +115 -115
- package/src/workbench/bootstrap/WorkbenchBootstrapGate.tsx +45 -45
- package/src/workbench/bootstrap/WorkbenchBootstrapView.tsx +100 -100
- package/src/workbench/bootstrap/index.ts +12 -12
- package/src/workbench/bootstrap/useWorkbenchBootstrap.ts +130 -130
- package/src/workbench/chat/ChatCommandProposalCard.tsx +115 -115
- package/src/workbench/chat/ChatComposer.tsx +163 -163
- package/src/workbench/chat/ChatConversationBar.tsx +134 -134
- package/src/workbench/chat/ChatHistoryMenu.tsx +171 -171
- package/src/workbench/chat/ChatHistoryMenuRow.tsx +74 -74
- package/src/workbench/chat/ChatMessageCollapsible.tsx +115 -115
- package/src/workbench/chat/ChatMessageItem.tsx +318 -318
- package/src/workbench/chat/ChatMessageList.tsx +134 -134
- package/src/workbench/chat/ChatPanel.tsx +168 -168
- package/src/workbench/chat/ChatPhasedRunProgress.tsx +202 -202
- package/src/workbench/chat/ChatRenameDialog.tsx +77 -77
- package/src/workbench/chat/chat-conversation.css +273 -273
- package/src/workbench/chat/chat-ui.css +1124 -1124
- package/src/workbench/chat/chat.css +3 -3
- package/src/workbench/chat/chatConversation.ts +46 -46
- package/src/workbench/chat/chatHistoryRowMenuItems.ts +29 -29
- package/src/workbench/chat/chatMessageMeta.tsx +252 -252
- package/src/workbench/chat/chatScroll.ts +22 -22
- package/src/workbench/chat/index.ts +64 -64
- package/src/workbench/chat/slashCommand.ts +26 -26
- package/src/workbench/chat/types.ts +45 -45
- package/src/workbench/chat/useCancelRuntimeOnUnmount.ts +60 -60
- package/src/workbench/chat/useChatPrependPagination.ts +233 -233
- package/src/workbench/chat/useChatRuntimeState.ts +64 -64
- package/src/workbench/chat/useSlashCommandSuggest.ts +154 -154
- package/src/workbench/chrome/index.css +6 -6
- package/src/workbench/chrome/workbench-desktop-titlebar.css +60 -60
- package/src/workbench/chrome/workbench-host.css +85 -85
- package/src/workbench/chrome/workbench-layout-regions.css +42 -42
- package/src/workbench/chrome/workbench-platform-chrome.css +142 -142
- package/src/workbench/chrome/workbench-shell-titlebar.css +124 -124
- package/src/workbench/command-execution-policy.ts +61 -61
- package/src/workbench/command-model.ts +275 -275
- package/src/workbench/command-palette/command-palette.css +156 -156
- package/src/workbench/commands.ts +576 -576
- package/src/workbench/editor-tabs/index.ts +22 -22
- package/src/workbench/editor-tabs-dnd.ts +162 -162
- package/src/workbench/editorTabContextMenu.ts +111 -111
- package/src/workbench/hardReset.ts +64 -64
- package/src/workbench/index.ts +675 -675
- package/src/workbench/jdw/jdw-editors.css +4 -4
- package/src/workbench/jdw/jdw.css +2 -2
- package/src/workbench/keyboard.ts +53 -53
- package/src/workbench/management/AccountManagementPanel.tsx +82 -82
- package/src/workbench/management/CommandInspectorPanel.tsx +127 -127
- package/src/workbench/management/CommandManagementPanel.tsx +129 -129
- package/src/workbench/management/CommandManagementSidebar.tsx +318 -318
- package/src/workbench/management/ExtensionManagementPanel.tsx +498 -498
- package/src/workbench/management/ExtensionManagementSidebar.tsx +492 -492
- package/src/workbench/management/IntegrationCommandActions.tsx +78 -78
- package/src/workbench/management/IntegrationSettingsSurface.tsx +290 -290
- package/src/workbench/management/IntegrationsShell.tsx +53 -53
- package/src/workbench/management/KeybindingCaptureField.tsx +142 -142
- package/src/workbench/management/KeybindingManagementPanel.tsx +120 -120
- package/src/workbench/management/LibraryCatalogPickerDialog.tsx +208 -208
- package/src/workbench/management/LibraryFacetFilterDialog.tsx +62 -62
- package/src/workbench/management/ManagementCard.tsx +89 -89
- package/src/workbench/management/ManagementFilterChips.tsx +41 -41
- package/src/workbench/management/ManagementGroup.tsx +56 -56
- package/src/workbench/management/ManagementPanelControls.tsx +43 -43
- package/src/workbench/management/ManagementPanelFrame.tsx +109 -109
- package/src/workbench/management/WorkbenchDialogFrame.tsx +148 -148
- package/src/workbench/management/WorkbenchNotice.tsx +211 -211
- package/src/workbench/management/build-command-management-groups.ts +157 -157
- package/src/workbench/management/command-inspector-uri.ts +26 -26
- package/src/workbench/management/extension-category-display.ts +42 -42
- package/src/workbench/management/format-command-run-state.ts +19 -19
- package/src/workbench/management/index.ts +130 -130
- package/src/workbench/management/integration-command-action.ts +25 -25
- package/src/workbench/management/library-catalog-picker-dialog.css +56 -56
- package/src/workbench/management/library-facet-filter-dialog.css +8 -8
- package/src/workbench/management/management-panel.css +444 -444
- package/src/workbench/management/management.css +4 -4
- package/src/workbench/management/types.ts +126 -126
- package/src/workbench/markdownRemarkPlugins.ts +4 -4
- package/src/workbench/schema/index.ts +47 -47
- package/src/workbench/schema/workbenchDocument.ts +31 -31
- package/src/workbench/schema/workbenchDocumentActions.ts +6 -6
- package/src/workbench/schema/workbenchDocumentAdapter.ts +9 -9
- package/src/workbench/schema/workbenchDocumentPatch.ts +13 -13
- package/src/workbench/schema/workbenchDocumentRenderer.tsx +702 -702
- package/src/workbench/settings/NavigationPanel.tsx +86 -86
- package/src/workbench/settings/SchemaForm.tsx +433 -433
- package/src/workbench/settings/SectionTabPanel.tsx +172 -172
- package/src/workbench/settings/SectionedPanel.tsx +169 -169
- package/src/workbench/settings/StructuredDataForm.tsx +619 -619
- package/src/workbench/settings/StructuredDataSchemaPanel.tsx +811 -811
- package/src/workbench/settings/StructuredDataSchemaPanelEmbed.tsx +21 -21
- package/src/workbench/settings/StructuredDataSchemaPanelFrame.tsx +76 -76
- package/src/workbench/settings/StructuredDataTableView.tsx +127 -127
- package/src/workbench/settings/WorkbenchPanelRegion.tsx +46 -46
- package/src/workbench/settings/WorkbenchSettingsModal.tsx +251 -251
- package/src/workbench/settings/WorkbenchSettingsNav.tsx +57 -57
- package/src/workbench/settings/WorkbenchSettingsSection.tsx +30 -30
- package/src/workbench/settings/extensionSettingsForm.ts +34 -34
- package/src/workbench/settings/index.ts +177 -177
- package/src/workbench/settings/navigation-panel.css +59 -59
- package/src/workbench/settings/panel-region.css +22 -22
- package/src/workbench/settings/schema-form.css +36 -36
- package/src/workbench/settings/schemaFormSettingSpec.ts +177 -177
- package/src/workbench/settings/schemaFormSettingsCategory.tsx +21 -21
- package/src/workbench/settings/section-tab-panel.css +157 -157
- package/src/workbench/settings/sectionScrollSpyDom.ts +139 -139
- package/src/workbench/settings/sectioned-panel.css +162 -162
- package/src/workbench/settings/sectionedPanelScrollSpy.ts +273 -273
- package/src/workbench/settings/settings-responsive.css +58 -58
- package/src/workbench/settings/settings.css +11 -11
- package/src/workbench/settings/settingsCommit.tsx +55 -55
- package/src/workbench/settings/structured-data-form.css +114 -114
- package/src/workbench/settings/structured-data-schema-panel.css +344 -344
- package/src/workbench/settings/structured-data-table-view.css +85 -85
- package/src/workbench/settings/structuredDataFormModel.ts +140 -140
- package/src/workbench/settings/structuredDataSchema.ts +339 -339
- package/src/workbench/settings/structuredDataSchemaDate.ts +197 -197
- package/src/workbench/settings/structuredDataSchemaField.ts +105 -105
- package/src/workbench/settings/structuredDataSchemaSection.ts +74 -74
- package/src/workbench/settings/structuredDataSchemaTable.ts +120 -120
- package/src/workbench/settings/structuredDataSchemaTypes.ts +308 -308
- package/src/workbench/settings/structuredDataSchemaValidation.ts +166 -166
- package/src/workbench/settings/types.ts +16 -16
- package/src/workbench/settings/useSectionScrollSpy.ts +420 -420
- package/src/workbench/settings/workbench-settings-modal.css +273 -273
- package/src/workbench/shell/activity-bar.css +245 -245
- package/src/workbench/shell/confirmation-flow.css +87 -87
- package/src/workbench/shell/index.css +5 -5
- package/src/workbench/shell/split-view.css +188 -188
- package/src/workbench/shell/status-bar.css +141 -141
- package/src/workbench/shell.ts +146 -146
- package/src/workbench/shellPresets.ts +36 -36
- package/src/workbench/shellState.ts +196 -196
- package/src/workbench/shellViewModel.ts +160 -160
- package/src/workbench/sidebarViewPlacementDnd.ts +61 -61
- package/src/workbench/standalone.ts +101 -101
- package/src/workbench/status.ts +133 -133
- package/src/workbench/theme.ts +50 -50
- package/src/workbench/themePresets.ts +191 -191
- package/src/workbench/useDeferredWorkbenchMount.ts +71 -71
- package/src/workbench/useEditorTabsStripDnd.ts +262 -262
- package/src/workbench/useWorkbenchAppearanceDocumentSync.tsx +17 -17
- package/src/workbench/useWorkbenchEditorTabContextMenu.tsx +66 -66
- package/src/workbench/useWorkbenchSidebarActionBarDnd.ts +227 -227
- package/src/workbench/useWorkbenchSidebarLayout.tsx +232 -232
- package/src/workbench/useWorkbenchSidebarViewPlacementDropZone.ts +194 -194
- package/src/workbench/useWorkbenchStandaloneShellStateSync.tsx +112 -112
- package/src/workbench/views/action-list.css +144 -144
- package/src/workbench/views/artifact-preview.css +184 -184
- package/src/workbench/views/command-inspector.css +98 -98
- package/src/workbench/views/command-list.css +356 -356
- package/src/workbench/views/commands-sidebar.css +51 -51
- package/src/workbench/views/extensions-sidebar.css +175 -175
- package/src/workbench/views/multi-provider-explorer.css +182 -182
- package/src/workbench/views/search.css +10 -10
- package/src/workbench/views/timeline.css +239 -239
- package/src/workbench/views/view-hosts.css +37 -37
- package/src/workbench/views/view-sidebar.css +21 -21
- package/src/workbench/views/views.css +12 -12
- package/src/workbench/widgets/widget-tree.css +598 -598
- package/src/workbench/widgets/widgets.css +2 -2
- package/src/workbench/workbench-chrome.css +4 -4
- package/src/workbench/workbenchContextMenu.ts +18 -18
- package/src/workbench/workbenchModalViewState.ts +52 -52
- package/src/workbench/workbenchOverlaysContext.tsx +21 -21
- package/src/workbench/workbenchPlatformChrome.ts +40 -40
- package/src/workbench/workbenchSidebarLayoutContext.ts +46 -46
- package/src/workbench/workbenchStandaloneShellReactContext.tsx +80 -80
- package/src/workbench/workbenchViewRouteState.ts +151 -151
- package/src/workbench/workspace/WorkspaceDraftsContext.tsx +99 -99
- package/src/workbench/workspace/WorkspaceEditor.tsx +165 -165
- package/src/workbench/workspace/WorkspaceEditorPanel.tsx +393 -393
- package/src/workbench/workspace/WorkspaceExplorer.tsx +630 -630
- package/src/workbench/workspace/WorkspaceExplorerPanel.tsx +73 -73
- package/src/workbench/workspace/WorkspaceFileIcon.tsx +23 -23
- package/src/workbench/workspace/WorkspaceHighlightedText.tsx +22 -22
- package/src/workbench/workspace/WorkspacePathLabel.tsx +42 -42
- package/src/workbench/workspace/WorkspaceSearchPanel.tsx +116 -116
- package/src/workbench/workspace/WorkspaceSearchResults.tsx +51 -51
- package/src/workbench/workspace/build-workspace-explorer-nodes.ts +44 -44
- package/src/workbench/workspace/createVirtualWorkspaceExplorerPort.ts +141 -141
- package/src/workbench/workspace/explorer-tree-style.ts +18 -18
- package/src/workbench/workspace/index.ts +169 -169
- package/src/workbench/workspace/json-config-workbench.css +57 -57
- package/src/workbench/workspace/mimeType.ts +45 -45
- package/src/workbench/workspace/monaco-panel.css +71 -71
- package/src/workbench/workspace/path.ts +12 -12
- package/src/workbench/workspace/search.ts +6 -6
- package/src/workbench/workspace/tree.ts +1 -1
- package/src/workbench/workspace/types.ts +10 -10
- package/src/workbench/workspace/useVirtualWorkspace.ts +111 -111
- package/src/workbench/workspace/useWorkspaceExplorerController.ts +490 -490
- package/src/workbench/workspace/workspace-editor.css +235 -235
- package/src/workbench/workspace/workspace-explorer-panel.css +33 -33
- package/src/workbench/workspace/workspace.css +5 -5
- package/src/workbench/workspace/workspaceExplorerController.ts +193 -193
- package/src/workbench/workspace/workspaceJsonDiagnostics.ts +83 -83
- package/src/workbench-menu-surfaces.css +57 -57
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/* workbench/widgets feature styles — Plan A import hub */
|
|
2
|
-
@import './widget-tree.css';
|
|
1
|
+
/* workbench/widgets feature styles — Plan A import hub */
|
|
2
|
+
@import './widget-tree.css';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* Workbench shell and platform chrome */
|
|
2
|
-
@import './shell/index.css';
|
|
3
|
-
@import './chrome/index.css';
|
|
4
|
-
@import './command-palette/command-palette.css';
|
|
1
|
+
/* Workbench shell and platform chrome */
|
|
2
|
+
@import './shell/index.css';
|
|
3
|
+
@import './chrome/index.css';
|
|
4
|
+
@import './command-palette/command-palette.css';
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import type { MouseEvent } from 'react';
|
|
2
|
-
|
|
3
|
-
const NATIVE_CONTEXT_MENU_SELECTOR =
|
|
4
|
-
'input, textarea, select, [contenteditable="true"], .monaco-editor, .workspace-editor__monaco, .cm-editor';
|
|
5
|
-
|
|
6
|
-
export function shouldAllowNativeBrowserContextMenu(target: EventTarget | null): boolean {
|
|
7
|
-
if (!(target instanceof Element)) {
|
|
8
|
-
return false;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
return Boolean(target.closest(NATIVE_CONTEXT_MENU_SELECTOR));
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
export function suppressNativeBrowserContextMenu(event: MouseEvent<HTMLElement>) {
|
|
15
|
-
if (!shouldAllowNativeBrowserContextMenu(event.target)) {
|
|
16
|
-
event.preventDefault();
|
|
17
|
-
}
|
|
18
|
-
}
|
|
1
|
+
import type { MouseEvent } from 'react';
|
|
2
|
+
|
|
3
|
+
const NATIVE_CONTEXT_MENU_SELECTOR =
|
|
4
|
+
'input, textarea, select, [contenteditable="true"], .monaco-editor, .workspace-editor__monaco, .cm-editor';
|
|
5
|
+
|
|
6
|
+
export function shouldAllowNativeBrowserContextMenu(target: EventTarget | null): boolean {
|
|
7
|
+
if (!(target instanceof Element)) {
|
|
8
|
+
return false;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
return Boolean(target.closest(NATIVE_CONTEXT_MENU_SELECTOR));
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export function suppressNativeBrowserContextMenu(event: MouseEvent<HTMLElement>) {
|
|
15
|
+
if (!shouldAllowNativeBrowserContextMenu(event.target)) {
|
|
16
|
+
event.preventDefault();
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -1,52 +1,52 @@
|
|
|
1
|
-
import { useCallback, useEffect, useState } from 'react';
|
|
2
|
-
|
|
3
|
-
export interface UseWorkbenchModalViewStateOptions<TViewId extends string> {
|
|
4
|
-
readonly activeViewId: TViewId;
|
|
5
|
-
readonly fallbackViewId: TViewId;
|
|
6
|
-
readonly modalViewId: TViewId;
|
|
7
|
-
readonly openView: (viewId: TViewId) => void;
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
export interface WorkbenchModalViewState<TViewId extends string> {
|
|
11
|
-
readonly closeModalView: () => void;
|
|
12
|
-
readonly isModalViewActive: boolean;
|
|
13
|
-
readonly isModalViewOpen: boolean;
|
|
14
|
-
readonly openModalView: () => void;
|
|
15
|
-
readonly viewId: TViewId;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
export function useWorkbenchModalViewState<TViewId extends string>({
|
|
19
|
-
activeViewId,
|
|
20
|
-
fallbackViewId,
|
|
21
|
-
modalViewId,
|
|
22
|
-
openView,
|
|
23
|
-
}: UseWorkbenchModalViewStateOptions<TViewId>): WorkbenchModalViewState<TViewId> {
|
|
24
|
-
const isModalViewActive = activeViewId === modalViewId;
|
|
25
|
-
const [isModalViewOpen, setModalViewOpen] = useState(isModalViewActive);
|
|
26
|
-
|
|
27
|
-
useEffect(() => {
|
|
28
|
-
if (isModalViewActive) {
|
|
29
|
-
setModalViewOpen(true);
|
|
30
|
-
}
|
|
31
|
-
}, [isModalViewActive]);
|
|
32
|
-
|
|
33
|
-
const openModalView = useCallback((): void => {
|
|
34
|
-
setModalViewOpen(true);
|
|
35
|
-
}, []);
|
|
36
|
-
|
|
37
|
-
const closeModalView = useCallback((): void => {
|
|
38
|
-
setModalViewOpen(false);
|
|
39
|
-
|
|
40
|
-
if (isModalViewActive) {
|
|
41
|
-
openView(fallbackViewId);
|
|
42
|
-
}
|
|
43
|
-
}, [fallbackViewId, isModalViewActive, openView]);
|
|
44
|
-
|
|
45
|
-
return {
|
|
46
|
-
closeModalView,
|
|
47
|
-
isModalViewActive,
|
|
48
|
-
isModalViewOpen,
|
|
49
|
-
openModalView,
|
|
50
|
-
viewId: modalViewId,
|
|
51
|
-
};
|
|
52
|
-
}
|
|
1
|
+
import { useCallback, useEffect, useState } from 'react';
|
|
2
|
+
|
|
3
|
+
export interface UseWorkbenchModalViewStateOptions<TViewId extends string> {
|
|
4
|
+
readonly activeViewId: TViewId;
|
|
5
|
+
readonly fallbackViewId: TViewId;
|
|
6
|
+
readonly modalViewId: TViewId;
|
|
7
|
+
readonly openView: (viewId: TViewId) => void;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export interface WorkbenchModalViewState<TViewId extends string> {
|
|
11
|
+
readonly closeModalView: () => void;
|
|
12
|
+
readonly isModalViewActive: boolean;
|
|
13
|
+
readonly isModalViewOpen: boolean;
|
|
14
|
+
readonly openModalView: () => void;
|
|
15
|
+
readonly viewId: TViewId;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export function useWorkbenchModalViewState<TViewId extends string>({
|
|
19
|
+
activeViewId,
|
|
20
|
+
fallbackViewId,
|
|
21
|
+
modalViewId,
|
|
22
|
+
openView,
|
|
23
|
+
}: UseWorkbenchModalViewStateOptions<TViewId>): WorkbenchModalViewState<TViewId> {
|
|
24
|
+
const isModalViewActive = activeViewId === modalViewId;
|
|
25
|
+
const [isModalViewOpen, setModalViewOpen] = useState(isModalViewActive);
|
|
26
|
+
|
|
27
|
+
useEffect(() => {
|
|
28
|
+
if (isModalViewActive) {
|
|
29
|
+
setModalViewOpen(true);
|
|
30
|
+
}
|
|
31
|
+
}, [isModalViewActive]);
|
|
32
|
+
|
|
33
|
+
const openModalView = useCallback((): void => {
|
|
34
|
+
setModalViewOpen(true);
|
|
35
|
+
}, []);
|
|
36
|
+
|
|
37
|
+
const closeModalView = useCallback((): void => {
|
|
38
|
+
setModalViewOpen(false);
|
|
39
|
+
|
|
40
|
+
if (isModalViewActive) {
|
|
41
|
+
openView(fallbackViewId);
|
|
42
|
+
}
|
|
43
|
+
}, [fallbackViewId, isModalViewActive, openView]);
|
|
44
|
+
|
|
45
|
+
return {
|
|
46
|
+
closeModalView,
|
|
47
|
+
isModalViewActive,
|
|
48
|
+
isModalViewOpen,
|
|
49
|
+
openModalView,
|
|
50
|
+
viewId: modalViewId,
|
|
51
|
+
};
|
|
52
|
+
}
|
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
import { createContext, useContext, type ReactNode } from 'react';
|
|
2
|
-
|
|
3
|
-
const WorkbenchOverlaysContext = createContext<HTMLElement | null>(null);
|
|
4
|
-
|
|
5
|
-
export function WorkbenchOverlaysProvider({
|
|
6
|
-
children,
|
|
7
|
-
container,
|
|
8
|
-
}: {
|
|
9
|
-
children: ReactNode;
|
|
10
|
-
container: HTMLElement | null;
|
|
11
|
-
}): ReactNode {
|
|
12
|
-
return (
|
|
13
|
-
<WorkbenchOverlaysContext.Provider value={container}>
|
|
14
|
-
{children}
|
|
15
|
-
</WorkbenchOverlaysContext.Provider>
|
|
16
|
-
);
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
export function useWorkbenchOverlaysContainer(): HTMLElement | null {
|
|
20
|
-
return useContext(WorkbenchOverlaysContext);
|
|
21
|
-
}
|
|
1
|
+
import { createContext, useContext, type ReactNode } from 'react';
|
|
2
|
+
|
|
3
|
+
const WorkbenchOverlaysContext = createContext<HTMLElement | null>(null);
|
|
4
|
+
|
|
5
|
+
export function WorkbenchOverlaysProvider({
|
|
6
|
+
children,
|
|
7
|
+
container,
|
|
8
|
+
}: {
|
|
9
|
+
children: ReactNode;
|
|
10
|
+
container: HTMLElement | null;
|
|
11
|
+
}): ReactNode {
|
|
12
|
+
return (
|
|
13
|
+
<WorkbenchOverlaysContext.Provider value={container}>
|
|
14
|
+
{children}
|
|
15
|
+
</WorkbenchOverlaysContext.Provider>
|
|
16
|
+
);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export function useWorkbenchOverlaysContainer(): HTMLElement | null {
|
|
20
|
+
return useContext(WorkbenchOverlaysContext);
|
|
21
|
+
}
|
|
@@ -1,40 +1,40 @@
|
|
|
1
|
-
export type WorkbenchHostPlatform = 'darwin' | 'win32' | 'linux';
|
|
2
|
-
|
|
3
|
-
export type WorkbenchWindowChromeMode = 'platform' | 'generic';
|
|
4
|
-
|
|
5
|
-
export function resolveWorkbenchHostPlatform(
|
|
6
|
-
platformOverride?: WorkbenchHostPlatform | null,
|
|
7
|
-
): WorkbenchHostPlatform {
|
|
8
|
-
if (platformOverride) {
|
|
9
|
-
return platformOverride;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
if (typeof navigator === 'undefined') {
|
|
13
|
-
return 'win32';
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
const platform = navigator.platform?.toLowerCase() ?? '';
|
|
17
|
-
const userAgent = navigator.userAgent?.toLowerCase() ?? '';
|
|
18
|
-
|
|
19
|
-
if (platform.includes('mac') || userAgent.includes('mac')) {
|
|
20
|
-
return 'darwin';
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
if (platform.includes('linux') || userAgent.includes('linux')) {
|
|
24
|
-
return 'linux';
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
return 'win32';
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
export function resolveWorkbenchWindowChromeDataAttributes(
|
|
31
|
-
chrome: WorkbenchWindowChromeMode = 'platform',
|
|
32
|
-
): Record<string, string> | undefined {
|
|
33
|
-
if (chrome !== 'platform') {
|
|
34
|
-
return undefined;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
return {
|
|
38
|
-
'data-workbench-window-chrome': 'platform',
|
|
39
|
-
};
|
|
40
|
-
}
|
|
1
|
+
export type WorkbenchHostPlatform = 'darwin' | 'win32' | 'linux';
|
|
2
|
+
|
|
3
|
+
export type WorkbenchWindowChromeMode = 'platform' | 'generic';
|
|
4
|
+
|
|
5
|
+
export function resolveWorkbenchHostPlatform(
|
|
6
|
+
platformOverride?: WorkbenchHostPlatform | null,
|
|
7
|
+
): WorkbenchHostPlatform {
|
|
8
|
+
if (platformOverride) {
|
|
9
|
+
return platformOverride;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
if (typeof navigator === 'undefined') {
|
|
13
|
+
return 'win32';
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
const platform = navigator.platform?.toLowerCase() ?? '';
|
|
17
|
+
const userAgent = navigator.userAgent?.toLowerCase() ?? '';
|
|
18
|
+
|
|
19
|
+
if (platform.includes('mac') || userAgent.includes('mac')) {
|
|
20
|
+
return 'darwin';
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
if (platform.includes('linux') || userAgent.includes('linux')) {
|
|
24
|
+
return 'linux';
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
return 'win32';
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export function resolveWorkbenchWindowChromeDataAttributes(
|
|
31
|
+
chrome: WorkbenchWindowChromeMode = 'platform',
|
|
32
|
+
): Record<string, string> | undefined {
|
|
33
|
+
if (chrome !== 'platform') {
|
|
34
|
+
return undefined;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
return {
|
|
38
|
+
'data-workbench-window-chrome': 'platform',
|
|
39
|
+
};
|
|
40
|
+
}
|
|
@@ -1,46 +1,46 @@
|
|
|
1
|
-
import { createContext, useContext } from 'react';
|
|
2
|
-
|
|
3
|
-
import type { WorkbenchSidebarSlotId } from '@workbench-kit/platform';
|
|
4
|
-
|
|
5
|
-
export interface WorkbenchSidebarLayoutContextValue<TViewId extends string = string> {
|
|
6
|
-
readonly dropViewOnSlot: (viewId: TViewId, targetSlot: WorkbenchSidebarSlotId) => void;
|
|
7
|
-
readonly placements: Readonly<Record<TViewId, WorkbenchSidebarSlotId>>;
|
|
8
|
-
readonly primaryViewId: TViewId;
|
|
9
|
-
readonly resolveSlotViewIds: (
|
|
10
|
-
slot: WorkbenchSidebarSlotId,
|
|
11
|
-
baseViewIds: readonly TViewId[],
|
|
12
|
-
) => readonly TViewId[];
|
|
13
|
-
readonly secondaryViewId: TViewId;
|
|
14
|
-
readonly selectPrimaryView: (viewId: TViewId) => void;
|
|
15
|
-
readonly selectSecondaryView: (viewId: TViewId) => void;
|
|
16
|
-
readonly setSlotViewOrder: (
|
|
17
|
-
slot: WorkbenchSidebarSlotId,
|
|
18
|
-
orderedViewIds: readonly TViewId[],
|
|
19
|
-
availableViewIds: readonly TViewId[],
|
|
20
|
-
) => void;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
type WorkbenchSidebarLayoutContextStore = WorkbenchSidebarLayoutContextValue<string>;
|
|
24
|
-
|
|
25
|
-
export const WorkbenchSidebarLayoutContext =
|
|
26
|
-
createContext<WorkbenchSidebarLayoutContextStore | null>(null);
|
|
27
|
-
|
|
28
|
-
export function useWorkbenchSidebarLayoutContextValue<
|
|
29
|
-
TViewId extends string,
|
|
30
|
-
>(): WorkbenchSidebarLayoutContextValue<TViewId> | null {
|
|
31
|
-
return useContext(
|
|
32
|
-
WorkbenchSidebarLayoutContext,
|
|
33
|
-
) as WorkbenchSidebarLayoutContextValue<TViewId> | null;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
export function toWorkbenchSidebarLayoutContextValue<TViewId extends string>(
|
|
37
|
-
value: WorkbenchSidebarLayoutContextValue<TViewId>,
|
|
38
|
-
): WorkbenchSidebarLayoutContextStore {
|
|
39
|
-
return value as unknown as WorkbenchSidebarLayoutContextStore;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
export function fromWorkbenchSidebarLayoutContextValue<TViewId extends string>(
|
|
43
|
-
value: WorkbenchSidebarLayoutContextStore,
|
|
44
|
-
): WorkbenchSidebarLayoutContextValue<TViewId> {
|
|
45
|
-
return value as unknown as WorkbenchSidebarLayoutContextValue<TViewId>;
|
|
46
|
-
}
|
|
1
|
+
import { createContext, useContext } from 'react';
|
|
2
|
+
|
|
3
|
+
import type { WorkbenchSidebarSlotId } from '@workbench-kit/platform';
|
|
4
|
+
|
|
5
|
+
export interface WorkbenchSidebarLayoutContextValue<TViewId extends string = string> {
|
|
6
|
+
readonly dropViewOnSlot: (viewId: TViewId, targetSlot: WorkbenchSidebarSlotId) => void;
|
|
7
|
+
readonly placements: Readonly<Record<TViewId, WorkbenchSidebarSlotId>>;
|
|
8
|
+
readonly primaryViewId: TViewId;
|
|
9
|
+
readonly resolveSlotViewIds: (
|
|
10
|
+
slot: WorkbenchSidebarSlotId,
|
|
11
|
+
baseViewIds: readonly TViewId[],
|
|
12
|
+
) => readonly TViewId[];
|
|
13
|
+
readonly secondaryViewId: TViewId;
|
|
14
|
+
readonly selectPrimaryView: (viewId: TViewId) => void;
|
|
15
|
+
readonly selectSecondaryView: (viewId: TViewId) => void;
|
|
16
|
+
readonly setSlotViewOrder: (
|
|
17
|
+
slot: WorkbenchSidebarSlotId,
|
|
18
|
+
orderedViewIds: readonly TViewId[],
|
|
19
|
+
availableViewIds: readonly TViewId[],
|
|
20
|
+
) => void;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
type WorkbenchSidebarLayoutContextStore = WorkbenchSidebarLayoutContextValue<string>;
|
|
24
|
+
|
|
25
|
+
export const WorkbenchSidebarLayoutContext =
|
|
26
|
+
createContext<WorkbenchSidebarLayoutContextStore | null>(null);
|
|
27
|
+
|
|
28
|
+
export function useWorkbenchSidebarLayoutContextValue<
|
|
29
|
+
TViewId extends string,
|
|
30
|
+
>(): WorkbenchSidebarLayoutContextValue<TViewId> | null {
|
|
31
|
+
return useContext(
|
|
32
|
+
WorkbenchSidebarLayoutContext,
|
|
33
|
+
) as WorkbenchSidebarLayoutContextValue<TViewId> | null;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export function toWorkbenchSidebarLayoutContextValue<TViewId extends string>(
|
|
37
|
+
value: WorkbenchSidebarLayoutContextValue<TViewId>,
|
|
38
|
+
): WorkbenchSidebarLayoutContextStore {
|
|
39
|
+
return value as unknown as WorkbenchSidebarLayoutContextStore;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export function fromWorkbenchSidebarLayoutContextValue<TViewId extends string>(
|
|
43
|
+
value: WorkbenchSidebarLayoutContextStore,
|
|
44
|
+
): WorkbenchSidebarLayoutContextValue<TViewId> {
|
|
45
|
+
return value as unknown as WorkbenchSidebarLayoutContextValue<TViewId>;
|
|
46
|
+
}
|
|
@@ -1,80 +1,80 @@
|
|
|
1
|
-
import { createContext, useContext, type ReactElement, type ReactNode } from 'react';
|
|
2
|
-
|
|
3
|
-
import type { WorkbenchStandaloneShellContext } from './WorkbenchStandaloneShell';
|
|
4
|
-
|
|
5
|
-
const WorkbenchStandaloneShellReactContext = createContext<unknown>(null);
|
|
6
|
-
|
|
7
|
-
export interface WorkbenchStandaloneShellStateSnapshot<
|
|
8
|
-
TActivityId extends string = string,
|
|
9
|
-
TTheme extends string = string,
|
|
10
|
-
> {
|
|
11
|
-
activityId: TActivityId;
|
|
12
|
-
isPrimarySidebarVisible: boolean;
|
|
13
|
-
isSettingsOpen: boolean;
|
|
14
|
-
primarySidebarSizePx: number;
|
|
15
|
-
theme: TTheme;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
export type WorkbenchStandaloneShellStateChangeKind =
|
|
19
|
-
'initial' | 'activity' | 'sidebar-visibility' | 'sidebar-size' | 'settings' | 'theme';
|
|
20
|
-
|
|
21
|
-
export interface WorkbenchStandaloneShellStateChange<
|
|
22
|
-
TActivityId extends string = string,
|
|
23
|
-
TTheme extends string = string,
|
|
24
|
-
> {
|
|
25
|
-
kind: WorkbenchStandaloneShellStateChangeKind;
|
|
26
|
-
previous: WorkbenchStandaloneShellStateSnapshot<TActivityId, TTheme> | null;
|
|
27
|
-
next: WorkbenchStandaloneShellStateSnapshot<TActivityId, TTheme>;
|
|
28
|
-
activityChanged: boolean;
|
|
29
|
-
primarySidebarVisibilityChanged: boolean;
|
|
30
|
-
primarySidebarSizeChanged: boolean;
|
|
31
|
-
settingsOpenChanged: boolean;
|
|
32
|
-
themeChanged: boolean;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
export function createWorkbenchStandaloneShellStateSnapshot<
|
|
36
|
-
TActivityId extends string,
|
|
37
|
-
TTheme extends string,
|
|
38
|
-
>(
|
|
39
|
-
context: WorkbenchStandaloneShellContext<TActivityId, TTheme>,
|
|
40
|
-
): WorkbenchStandaloneShellStateSnapshot<TActivityId, TTheme> {
|
|
41
|
-
return {
|
|
42
|
-
activityId: context.activityId,
|
|
43
|
-
isPrimarySidebarVisible: context.isPrimarySidebarVisible,
|
|
44
|
-
isSettingsOpen: context.isSettingsOpen,
|
|
45
|
-
primarySidebarSizePx: context.primarySidebarSizePx,
|
|
46
|
-
theme: context.theme,
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
export function WorkbenchStandaloneShellReactContextProvider<
|
|
51
|
-
TActivityId extends string,
|
|
52
|
-
TTheme extends string,
|
|
53
|
-
>({
|
|
54
|
-
children,
|
|
55
|
-
value,
|
|
56
|
-
}: {
|
|
57
|
-
children: ReactNode;
|
|
58
|
-
value: WorkbenchStandaloneShellContext<TActivityId, TTheme>;
|
|
59
|
-
}): ReactElement {
|
|
60
|
-
return (
|
|
61
|
-
<WorkbenchStandaloneShellReactContext.Provider value={value}>
|
|
62
|
-
{children}
|
|
63
|
-
</WorkbenchStandaloneShellReactContext.Provider>
|
|
64
|
-
);
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
export function useWorkbenchStandaloneShellContext<
|
|
68
|
-
TActivityId extends string = string,
|
|
69
|
-
TTheme extends string = string,
|
|
70
|
-
>(): WorkbenchStandaloneShellContext<TActivityId, TTheme> {
|
|
71
|
-
const context = useContext(WorkbenchStandaloneShellReactContext);
|
|
72
|
-
|
|
73
|
-
if (!context) {
|
|
74
|
-
throw new Error(
|
|
75
|
-
'useWorkbenchStandaloneShellContext must be used within WorkbenchStandaloneShell.',
|
|
76
|
-
);
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
return context as WorkbenchStandaloneShellContext<TActivityId, TTheme>;
|
|
80
|
-
}
|
|
1
|
+
import { createContext, useContext, type ReactElement, type ReactNode } from 'react';
|
|
2
|
+
|
|
3
|
+
import type { WorkbenchStandaloneShellContext } from './WorkbenchStandaloneShell';
|
|
4
|
+
|
|
5
|
+
const WorkbenchStandaloneShellReactContext = createContext<unknown>(null);
|
|
6
|
+
|
|
7
|
+
export interface WorkbenchStandaloneShellStateSnapshot<
|
|
8
|
+
TActivityId extends string = string,
|
|
9
|
+
TTheme extends string = string,
|
|
10
|
+
> {
|
|
11
|
+
activityId: TActivityId;
|
|
12
|
+
isPrimarySidebarVisible: boolean;
|
|
13
|
+
isSettingsOpen: boolean;
|
|
14
|
+
primarySidebarSizePx: number;
|
|
15
|
+
theme: TTheme;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export type WorkbenchStandaloneShellStateChangeKind =
|
|
19
|
+
'initial' | 'activity' | 'sidebar-visibility' | 'sidebar-size' | 'settings' | 'theme';
|
|
20
|
+
|
|
21
|
+
export interface WorkbenchStandaloneShellStateChange<
|
|
22
|
+
TActivityId extends string = string,
|
|
23
|
+
TTheme extends string = string,
|
|
24
|
+
> {
|
|
25
|
+
kind: WorkbenchStandaloneShellStateChangeKind;
|
|
26
|
+
previous: WorkbenchStandaloneShellStateSnapshot<TActivityId, TTheme> | null;
|
|
27
|
+
next: WorkbenchStandaloneShellStateSnapshot<TActivityId, TTheme>;
|
|
28
|
+
activityChanged: boolean;
|
|
29
|
+
primarySidebarVisibilityChanged: boolean;
|
|
30
|
+
primarySidebarSizeChanged: boolean;
|
|
31
|
+
settingsOpenChanged: boolean;
|
|
32
|
+
themeChanged: boolean;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export function createWorkbenchStandaloneShellStateSnapshot<
|
|
36
|
+
TActivityId extends string,
|
|
37
|
+
TTheme extends string,
|
|
38
|
+
>(
|
|
39
|
+
context: WorkbenchStandaloneShellContext<TActivityId, TTheme>,
|
|
40
|
+
): WorkbenchStandaloneShellStateSnapshot<TActivityId, TTheme> {
|
|
41
|
+
return {
|
|
42
|
+
activityId: context.activityId,
|
|
43
|
+
isPrimarySidebarVisible: context.isPrimarySidebarVisible,
|
|
44
|
+
isSettingsOpen: context.isSettingsOpen,
|
|
45
|
+
primarySidebarSizePx: context.primarySidebarSizePx,
|
|
46
|
+
theme: context.theme,
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export function WorkbenchStandaloneShellReactContextProvider<
|
|
51
|
+
TActivityId extends string,
|
|
52
|
+
TTheme extends string,
|
|
53
|
+
>({
|
|
54
|
+
children,
|
|
55
|
+
value,
|
|
56
|
+
}: {
|
|
57
|
+
children: ReactNode;
|
|
58
|
+
value: WorkbenchStandaloneShellContext<TActivityId, TTheme>;
|
|
59
|
+
}): ReactElement {
|
|
60
|
+
return (
|
|
61
|
+
<WorkbenchStandaloneShellReactContext.Provider value={value}>
|
|
62
|
+
{children}
|
|
63
|
+
</WorkbenchStandaloneShellReactContext.Provider>
|
|
64
|
+
);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
export function useWorkbenchStandaloneShellContext<
|
|
68
|
+
TActivityId extends string = string,
|
|
69
|
+
TTheme extends string = string,
|
|
70
|
+
>(): WorkbenchStandaloneShellContext<TActivityId, TTheme> {
|
|
71
|
+
const context = useContext(WorkbenchStandaloneShellReactContext);
|
|
72
|
+
|
|
73
|
+
if (!context) {
|
|
74
|
+
throw new Error(
|
|
75
|
+
'useWorkbenchStandaloneShellContext must be used within WorkbenchStandaloneShell.',
|
|
76
|
+
);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
return context as WorkbenchStandaloneShellContext<TActivityId, TTheme>;
|
|
80
|
+
}
|