@forgeax/interface 0.4.1
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/LICENSE +202 -0
- package/NOTICE +9 -0
- package/README.md +111 -0
- package/dist/package/browser/App.css +192 -0
- package/dist/package/browser/App.d.ts +11 -0
- package/dist/package/browser/App.js +11 -0
- package/dist/package/browser/ApplicationDetachedShell.d.ts +13 -0
- package/dist/package/browser/ApplicationDetachedShell.js +10 -0
- package/dist/package/browser/ApplicationShell.d.ts +19 -0
- package/dist/package/browser/ApplicationShell.js +62 -0
- package/dist/package/browser/app-kit.d.ts +1 -0
- package/dist/package/browser/app-kit.js +4 -0
- package/dist/package/browser/appHostBootstrap.d.ts +16 -0
- package/dist/package/browser/appHostBootstrap.js +145 -0
- package/dist/package/browser/application.d.ts +35 -0
- package/dist/package/browser/application.js +64 -0
- package/dist/package/browser/assets/icons/agent-icon.png +0 -0
- package/dist/package/browser/assets/icons/at.svg +3 -0
- package/dist/package/browser/assets/icons/chevron-collapse.svg +3 -0
- package/dist/package/browser/assets/icons/chevron-expand.svg +3 -0
- package/dist/package/browser/assets/icons/chevron-up.svg +3 -0
- package/dist/package/browser/assets/icons/close-x.svg +3 -0
- package/dist/package/browser/assets/icons/close.svg +3 -0
- package/dist/package/browser/assets/icons/copy.svg +4 -0
- package/dist/package/browser/assets/icons/edit.svg +3 -0
- package/dist/package/browser/assets/icons/fullscreen.svg +3 -0
- package/dist/package/browser/assets/icons/pause.svg +4 -0
- package/dist/package/browser/assets/icons/play.svg +3 -0
- package/dist/package/browser/assets/icons/select.svg +3 -0
- package/dist/package/browser/assets/icons/sendMessage-enable.svg +4 -0
- package/dist/package/browser/assets/icons/sendMessage.svg +4 -0
- package/dist/package/browser/assets/icons/status-done.svg +11 -0
- package/dist/package/browser/assets/icons/status-running.svg +10 -0
- package/dist/package/browser/assets/icons/status-waiting.svg +10 -0
- package/dist/package/browser/assets/icons/tool-execute-script.svg +3 -0
- package/dist/package/browser/assets/icons/tool-other.svg +10 -0
- package/dist/package/browser/assets/icons/tool-read-file.svg +3 -0
- package/dist/package/browser/assets/icons/tool-resource-search.svg +3 -0
- package/dist/package/browser/assets/icons/tool-task-todo.svg +4 -0
- package/dist/package/browser/assets/icons/tool-write-file.svg +3 -0
- package/dist/package/browser/boot/SettingsSection.d.ts +14 -0
- package/dist/package/browser/boot/SettingsSection.js +82 -0
- package/dist/package/browser/boot/broadcast.d.ts +2 -0
- package/dist/package/browser/boot/broadcast.js +32 -0
- package/dist/package/browser/boot/driver.d.ts +22 -0
- package/dist/package/browser/boot/driver.js +47 -0
- package/dist/package/browser/boot/store.d.ts +29 -0
- package/dist/package/browser/boot/store.js +114 -0
- package/dist/package/browser/boot/themes.d.ts +19 -0
- package/dist/package/browser/boot/themes.js +21 -0
- package/dist/package/browser/boot/types.d.ts +22 -0
- package/dist/package/browser/boot/types.js +30 -0
- package/dist/package/browser/brand/BrandProvider.d.ts +19 -0
- package/dist/package/browser/brand/BrandProvider.js +35 -0
- package/dist/package/browser/brand/index.d.ts +4 -0
- package/dist/package/browser/brand/index.js +3 -0
- package/dist/package/browser/brand/runtime.d.ts +17 -0
- package/dist/package/browser/brand/runtime.js +71 -0
- package/dist/package/browser/brand/types.d.ts +77 -0
- package/dist/package/browser/brand/types.js +9 -0
- package/dist/package/browser/components/ActivityRail/ActivityRail.css +294 -0
- package/dist/package/browser/components/ActivityRail/ActivityRail.d.ts +2 -0
- package/dist/package/browser/components/ActivityRail/ActivityRail.js +164 -0
- package/dist/package/browser/components/ActivityRail/activity-rail-model.d.ts +18 -0
- package/dist/package/browser/components/ActivityRail/activity-rail-model.js +144 -0
- package/dist/package/browser/components/AgentAvatar/AgentAvatar.d.ts +17 -0
- package/dist/package/browser/components/AgentAvatar/AgentAvatar.js +50 -0
- package/dist/package/browser/components/BuildBadge/BuildBadge.d.ts +1 -0
- package/dist/package/browser/components/BuildBadge/BuildBadge.js +279 -0
- package/dist/package/browser/components/Bus/BusAdminPanel.css +2425 -0
- package/dist/package/browser/components/Bus/BusAdminPanel.d.ts +2 -0
- package/dist/package/browser/components/Bus/BusAdminPanel.js +1385 -0
- package/dist/package/browser/components/Bus/CapabilityOverview.d.ts +3 -0
- package/dist/package/browser/components/Bus/CapabilityOverview.js +50 -0
- package/dist/package/browser/components/ChatColumn/ChatColumn.d.ts +2 -0
- package/dist/package/browser/components/ChatColumn/ChatColumn.js +18 -0
- package/dist/package/browser/components/ChatColumn/SessionTabStrip.d.ts +1 -0
- package/dist/package/browser/components/ChatColumn/SessionTabStrip.js +103 -0
- package/dist/package/browser/components/ChatColumn/useChatWidth.d.ts +5 -0
- package/dist/package/browser/components/ChatColumn/useChatWidth.js +13 -0
- package/dist/package/browser/components/CommandPalette/CommandPalette.css +199 -0
- package/dist/package/browser/components/CommandPalette/CommandPalette.d.ts +2 -0
- package/dist/package/browser/components/CommandPalette/CommandPalette.js +242 -0
- package/dist/package/browser/components/Confirm/ConfirmDialog.d.ts +2 -0
- package/dist/package/browser/components/Confirm/ConfirmDialog.js +113 -0
- package/dist/package/browser/components/ContextMenu/ContextMenu.d.ts +10 -0
- package/dist/package/browser/components/ContextMenu/ContextMenu.js +218 -0
- package/dist/package/browser/components/ContextMenu/menuRegistry.d.ts +18 -0
- package/dist/package/browser/components/ContextMenu/menuRegistry.js +152 -0
- package/dist/package/browser/components/DetachedSurface.d.ts +20 -0
- package/dist/package/browser/components/DetachedSurface.js +102 -0
- package/dist/package/browser/components/DockShell/DockPanelHost.d.ts +4 -0
- package/dist/package/browser/components/DockShell/DockPanelHost.js +7 -0
- package/dist/package/browser/components/DockShell/DockRegion.d.ts +7 -0
- package/dist/package/browser/components/DockShell/DockRegion.js +315 -0
- package/dist/package/browser/components/DockShell/DockShell.css +1018 -0
- package/dist/package/browser/components/DockShell/DockTab.d.ts +3 -0
- package/dist/package/browser/components/DockShell/DockTab.js +139 -0
- package/dist/package/browser/components/DockShell/ExtensionHostPanel.d.ts +9 -0
- package/dist/package/browser/components/DockShell/ExtensionHostPanel.js +68 -0
- package/dist/package/browser/components/DockShell/ExtensionRuntimeFrame.d.ts +14 -0
- package/dist/package/browser/components/DockShell/ExtensionRuntimeFrame.js +56 -0
- package/dist/package/browser/components/DockShell/PanelWindowingBoundary.d.ts +6 -0
- package/dist/package/browser/components/DockShell/PanelWindowingBoundary.js +9 -0
- package/dist/package/browser/components/DockShell/chatDockAnimation.d.ts +45 -0
- package/dist/package/browser/components/DockShell/chatDockAnimation.js +101 -0
- package/dist/package/browser/components/DockShell/chatDockFullscreen.d.ts +17 -0
- package/dist/package/browser/components/DockShell/chatDockFullscreen.js +22 -0
- package/dist/package/browser/components/DockShell/chatDockLayout.d.ts +10 -0
- package/dist/package/browser/components/DockShell/chatDockLayout.js +11 -0
- package/dist/package/browser/components/DockShell/compact-empty-dock-groups.d.ts +16 -0
- package/dist/package/browser/components/DockShell/compact-empty-dock-groups.js +28 -0
- package/dist/package/browser/components/DockShell/crossInstanceDrop.d.ts +1 -0
- package/dist/package/browser/components/DockShell/crossInstanceDrop.js +1 -0
- package/dist/package/browser/components/DockShell/dockResetEpoch.d.ts +2 -0
- package/dist/package/browser/components/DockShell/dockResetEpoch.js +13 -0
- package/dist/package/browser/components/DockShell/dockTitle.d.ts +12 -0
- package/dist/package/browser/components/DockShell/dockTitle.js +36 -0
- package/dist/package/browser/components/DockShell/dockviewRegistry.d.ts +1 -0
- package/dist/package/browser/components/DockShell/dockviewRegistry.js +1 -0
- package/dist/package/browser/components/DockShell/edgeDrawer.d.ts +24 -0
- package/dist/package/browser/components/DockShell/edgeDrawer.js +1144 -0
- package/dist/package/browser/components/DockShell/edgePinStore.d.ts +12 -0
- package/dist/package/browser/components/DockShell/edgePinStore.js +37 -0
- package/dist/package/browser/components/DockShell/extension-editor-bridge.d.ts +13 -0
- package/dist/package/browser/components/DockShell/extension-editor-bridge.js +100 -0
- package/dist/package/browser/components/DockShell/extension-runtime-selection.d.ts +8 -0
- package/dist/package/browser/components/DockShell/extension-runtime-selection.js +6 -0
- package/dist/package/browser/components/DockShell/extensionRuntime.d.ts +17 -0
- package/dist/package/browser/components/DockShell/extensionRuntime.js +84 -0
- package/dist/package/browser/components/DockShell/footer-panel-visibility.d.ts +7 -0
- package/dist/package/browser/components/DockShell/footer-panel-visibility.js +43 -0
- package/dist/package/browser/components/DockShell/footer-panels.d.ts +2 -0
- package/dist/package/browser/components/DockShell/footer-panels.js +7 -0
- package/dist/package/browser/components/DockShell/panelRegistry.d.ts +37 -0
- package/dist/package/browser/components/DockShell/panelRegistry.js +126 -0
- package/dist/package/browser/components/DockShell/panelRenderers.d.ts +325 -0
- package/dist/package/browser/components/DockShell/panelRenderers.js +25 -0
- package/dist/package/browser/components/DockShell/panelTabCommands.d.ts +18 -0
- package/dist/package/browser/components/DockShell/panelTabCommands.js +133 -0
- package/dist/package/browser/components/DockShell/panelWindowing.d.ts +32 -0
- package/dist/package/browser/components/DockShell/panelWindowing.js +42 -0
- package/dist/package/browser/components/DockShell/regions.d.ts +1 -0
- package/dist/package/browser/components/DockShell/regions.js +1 -0
- package/dist/package/browser/components/DockShell/resolveRegion.d.ts +1 -0
- package/dist/package/browser/components/DockShell/resolveRegion.js +1 -0
- package/dist/package/browser/components/DockShell/sanitizeDockLayout.d.ts +3 -0
- package/dist/package/browser/components/DockShell/sanitizeDockLayout.js +46 -0
- package/dist/package/browser/components/DockShell/sideEdgeMove.d.ts +1 -0
- package/dist/package/browser/components/DockShell/sideEdgeMove.js +1 -0
- package/dist/package/browser/components/DockShell/studioTabMenuProvider.d.ts +13 -0
- package/dist/package/browser/components/DockShell/studioTabMenuProvider.js +39 -0
- package/dist/package/browser/components/DockShell/tabContextMenu.d.ts +29 -0
- package/dist/package/browser/components/DockShell/tabContextMenu.js +68 -0
- package/dist/package/browser/components/DockShell/ueDrag/controller.d.ts +80 -0
- package/dist/package/browser/components/DockShell/ueDrag/controller.js +785 -0
- package/dist/package/browser/components/DockShell/ueDrag/geometry.d.ts +94 -0
- package/dist/package/browser/components/DockShell/ueDrag/geometry.js +217 -0
- package/dist/package/browser/components/DockShell/ueDrag/overlay.d.ts +32 -0
- package/dist/package/browser/components/DockShell/ueDrag/overlay.js +206 -0
- package/dist/package/browser/components/DockShell/ueDrag/ueDrag.css +199 -0
- package/dist/package/browser/components/DockShell/useAuxBarWidth.d.ts +5 -0
- package/dist/package/browser/components/DockShell/useAuxBarWidth.js +13 -0
- package/dist/package/browser/components/Drawer/DrawerHostView.css +143 -0
- package/dist/package/browser/components/Drawer/DrawerHostView.d.ts +19 -0
- package/dist/package/browser/components/Drawer/DrawerHostView.js +93 -0
- package/dist/package/browser/components/Drawer/DrawerLauncher.d.ts +12 -0
- package/dist/package/browser/components/Drawer/DrawerLauncher.js +22 -0
- package/dist/package/browser/components/Drawer/useDrawerStore.d.ts +15 -0
- package/dist/package/browser/components/Drawer/useDrawerStore.js +80 -0
- package/dist/package/browser/components/ErrorBoundary.d.ts +55 -0
- package/dist/package/browser/components/ErrorBoundary.js +131 -0
- package/dist/package/browser/components/ExtensionHost/ExtensionIframeHost.d.ts +28 -0
- package/dist/package/browser/components/ExtensionHost/ExtensionIframeHost.js +179 -0
- package/dist/package/browser/components/ExtensionHost/NativeExtensionHost.d.ts +14 -0
- package/dist/package/browser/components/ExtensionHost/NativeExtensionHost.js +152 -0
- package/dist/package/browser/components/Feedback/FeedbackPanel.css +640 -0
- package/dist/package/browser/components/Feedback/FeedbackPanel.d.ts +8 -0
- package/dist/package/browser/components/Feedback/FeedbackPanel.js +118 -0
- package/dist/package/browser/components/Feedback/PassiveFeedback.css +179 -0
- package/dist/package/browser/components/Feedback/PassiveFeedback.d.ts +2 -0
- package/dist/package/browser/components/Feedback/PassiveFeedback.js +218 -0
- package/dist/package/browser/components/Feedback/collect.d.ts +15 -0
- package/dist/package/browser/components/Feedback/collect.js +80 -0
- package/dist/package/browser/components/Feedback/store.d.ts +61 -0
- package/dist/package/browser/components/Feedback/store.js +174 -0
- package/dist/package/browser/components/LangSwitcher/LangSwitcher.css +78 -0
- package/dist/package/browser/components/LangSwitcher/LangSwitcher.d.ts +14 -0
- package/dist/package/browser/components/LangSwitcher/LangSwitcher.js +44 -0
- package/dist/package/browser/components/MainArea/ConsolePanel.d.ts +1 -0
- package/dist/package/browser/components/MainArea/ConsolePanel.js +16 -0
- package/dist/package/browser/components/MainArea/MainArea.css +2130 -0
- package/dist/package/browser/components/MainArea/MainArea.d.ts +2 -0
- package/dist/package/browser/components/MainArea/MainArea.js +20 -0
- package/dist/package/browser/components/MainArea/StandaloneExtensionIframe.d.ts +25 -0
- package/dist/package/browser/components/MainArea/StandaloneExtensionIframe.js +155 -0
- package/dist/package/browser/components/MainArea/SurfacePanels.d.ts +3 -0
- package/dist/package/browser/components/MainArea/SurfacePanels.js +27 -0
- package/dist/package/browser/components/MainArea/TelemetryViewer.css +122 -0
- package/dist/package/browser/components/MainArea/TelemetryViewer.d.ts +36 -0
- package/dist/package/browser/components/MainArea/TelemetryViewer.js +116 -0
- package/dist/package/browser/components/MenuBar/MenuBar.css +186 -0
- package/dist/package/browser/components/MenuBar/MenuBar.d.ts +27 -0
- package/dist/package/browser/components/MenuBar/MenuBar.js +286 -0
- package/dist/package/browser/components/MenuBar/index.d.ts +1 -0
- package/dist/package/browser/components/MenuBar/index.js +1 -0
- package/dist/package/browser/components/MenuBar/menubar-open-state.d.ts +8 -0
- package/dist/package/browser/components/MenuBar/menubar-open-state.js +11 -0
- package/dist/package/browser/components/MenuBar/menubar-surface.d.ts +30 -0
- package/dist/package/browser/components/MenuBar/menubar-surface.js +201 -0
- package/dist/package/browser/components/ModelPicker/index.d.ts +1 -0
- package/dist/package/browser/components/ModelPicker/index.js +1 -0
- package/dist/package/browser/components/ModelPicker/useModelCatalog.d.ts +22 -0
- package/dist/package/browser/components/ModelPicker/useModelCatalog.js +100 -0
- package/dist/package/browser/components/Onboarding/ConnectModelPrompt.d.ts +2 -0
- package/dist/package/browser/components/Onboarding/ConnectModelPrompt.js +40 -0
- package/dist/package/browser/components/Onboarding/Onboarding.css +232 -0
- package/dist/package/browser/components/Onboarding/OnboardingController.d.ts +10 -0
- package/dist/package/browser/components/Onboarding/OnboardingController.js +549 -0
- package/dist/package/browser/components/Onboarding/connect-selection.d.ts +17 -0
- package/dist/package/browser/components/Onboarding/connect-selection.js +18 -0
- package/dist/package/browser/components/Onboarding/home-transition.d.ts +9 -0
- package/dist/package/browser/components/Onboarding/home-transition.js +20 -0
- package/dist/package/browser/components/Onboarding/index.d.ts +4 -0
- package/dist/package/browser/components/Onboarding/index.js +3 -0
- package/dist/package/browser/components/Onboarding/prepareTourShell.d.ts +5 -0
- package/dist/package/browser/components/Onboarding/prepareTourShell.js +11 -0
- package/dist/package/browser/components/Onboarding/project-name.d.ts +17 -0
- package/dist/package/browser/components/Onboarding/project-name.js +29 -0
- package/dist/package/browser/components/Onboarding/types.d.ts +31 -0
- package/dist/package/browser/components/Onboarding/types.js +77 -0
- package/dist/package/browser/components/PageTabs/PageTabStrip.css +221 -0
- package/dist/package/browser/components/PageTabs/PageTabStrip.d.ts +3 -0
- package/dist/package/browser/components/PageTabs/PageTabStrip.js +214 -0
- package/dist/package/browser/components/PageTabs/openablePageTypes.d.ts +9 -0
- package/dist/package/browser/components/PageTabs/openablePageTypes.js +13 -0
- package/dist/package/browser/components/PanelShell/PanelShell.css +517 -0
- package/dist/package/browser/components/PanelShell/PanelShell.d.ts +7 -0
- package/dist/package/browser/components/PanelShell/PanelShell.js +459 -0
- package/dist/package/browser/components/Resize/ResizeHandle.d.ts +1 -0
- package/dist/package/browser/components/Resize/ResizeHandle.js +1 -0
- package/dist/package/browser/components/SceneBackground/SceneBackground.d.ts +2 -0
- package/dist/package/browser/components/SceneBackground/SceneBackground.js +5 -0
- package/dist/package/browser/components/SchemaForm/SchemaForm.css +138 -0
- package/dist/package/browser/components/SchemaForm/SchemaForm.d.ts +17 -0
- package/dist/package/browser/components/SchemaForm/SchemaForm.js +86 -0
- package/dist/package/browser/components/SchemaForm/schema-form-utils.d.ts +30 -0
- package/dist/package/browser/components/SchemaForm/schema-form-utils.js +51 -0
- package/dist/package/browser/components/SettingsPrimitives.d.ts +24 -0
- package/dist/package/browser/components/SettingsPrimitives.js +145 -0
- package/dist/package/browser/components/Sidebar/BusHealthLamp.d.ts +1 -0
- package/dist/package/browser/components/Sidebar/BusHealthLamp.js +72 -0
- package/dist/package/browser/components/Sidebar/FilesPanel.d.ts +1 -0
- package/dist/package/browser/components/Sidebar/FilesPanel.js +234 -0
- package/dist/package/browser/components/Sidebar/Sidebar.css +1393 -0
- package/dist/package/browser/components/Sidebar/Sidebar.d.ts +3 -0
- package/dist/package/browser/components/Sidebar/Sidebar.js +8 -0
- package/dist/package/browser/components/Sidebar/sidebar-types.d.ts +18 -0
- package/dist/package/browser/components/Sidebar/sidebar-types.js +1 -0
- package/dist/package/browser/components/SlotDebugOverlay/SlotDebugOverlay.d.ts +1 -0
- package/dist/package/browser/components/SlotDebugOverlay/SlotDebugOverlay.js +1 -0
- package/dist/package/browser/components/SlotDebugOverlay/hashHue.d.ts +1 -0
- package/dist/package/browser/components/SlotDebugOverlay/hashHue.js +1 -0
- package/dist/package/browser/components/SlotDebugOverlay/index.d.ts +1 -0
- package/dist/package/browser/components/SlotDebugOverlay/index.js +1 -0
- package/dist/package/browser/components/SlotDebugOverlay/isSlotDebugEnabled.d.ts +1 -0
- package/dist/package/browser/components/SlotDebugOverlay/isSlotDebugEnabled.js +1 -0
- package/dist/package/browser/components/StatusBar/FatalBanner.d.ts +25 -0
- package/dist/package/browser/components/StatusBar/FatalBanner.js +52 -0
- package/dist/package/browser/components/StatusBar/GlobalStatusBar.css +304 -0
- package/dist/package/browser/components/StatusBar/InfoPanel.css +174 -0
- package/dist/package/browser/components/StatusBar/InfoPanel.d.ts +19 -0
- package/dist/package/browser/components/StatusBar/InfoPanel.js +128 -0
- package/dist/package/browser/components/StatusBar/StatusChip.css +52 -0
- package/dist/package/browser/components/StatusBar/StatusChip.d.ts +40 -0
- package/dist/package/browser/components/StatusBar/StatusChip.js +13 -0
- package/dist/package/browser/components/StatusBar/StripHostView.d.ts +2 -0
- package/dist/package/browser/components/StatusBar/StripHostView.js +91 -0
- package/dist/package/browser/components/StatusBar/StripPopover.css +58 -0
- package/dist/package/browser/components/StatusBar/StripPopover.d.ts +16 -0
- package/dist/package/browser/components/StatusBar/StripPopover.js +15 -0
- package/dist/package/browser/components/StatusBar/feeds/PulseFeeds.d.ts +16 -0
- package/dist/package/browser/components/StatusBar/feeds/PulseFeeds.js +88 -0
- package/dist/package/browser/components/StatusBar/footer/CheckpointsDrawer.d.ts +4 -0
- package/dist/package/browser/components/StatusBar/footer/CheckpointsDrawer.js +77 -0
- package/dist/package/browser/components/StatusBar/footer/DiagnosticsPopover.d.ts +4 -0
- package/dist/package/browser/components/StatusBar/footer/DiagnosticsPopover.js +108 -0
- package/dist/package/browser/components/StatusBar/footer/EventsDrawer.d.ts +14 -0
- package/dist/package/browser/components/StatusBar/footer/EventsDrawer.js +25 -0
- package/dist/package/browser/components/StatusBar/footer/ForgeaxBuildPopover.d.ts +4 -0
- package/dist/package/browser/components/StatusBar/footer/ForgeaxBuildPopover.js +62 -0
- package/dist/package/browser/components/StatusBar/footer/footer.css +178 -0
- package/dist/package/browser/components/StatusBar/healthBridge.d.ts +38 -0
- package/dist/package/browser/components/StatusBar/healthBridge.js +245 -0
- package/dist/package/browser/components/StatusBar/healthStore.d.ts +80 -0
- package/dist/package/browser/components/StatusBar/healthStore.js +129 -0
- package/dist/package/browser/components/StatusBar/useStatusItem.d.ts +10 -0
- package/dist/package/browser/components/StatusBar/useStatusItem.js +35 -0
- package/dist/package/browser/components/Surfaces/SurfaceKeepAlive.css +34 -0
- package/dist/package/browser/components/Surfaces/SurfaceKeepAliveLayer.d.ts +3 -0
- package/dist/package/browser/components/Surfaces/SurfaceKeepAliveLayer.js +218 -0
- package/dist/package/browser/components/Surfaces/SurfaceOverlay.css +160 -0
- package/dist/package/browser/components/Surfaces/SurfaceOverlay.d.ts +9 -0
- package/dist/package/browser/components/Surfaces/SurfaceOverlay.js +144 -0
- package/dist/package/browser/components/TopBar/AndroidPackageDialog.d.ts +23 -0
- package/dist/package/browser/components/TopBar/AndroidPackageDialog.js +115 -0
- package/dist/package/browser/components/TopBar/FsBrowser.css +156 -0
- package/dist/package/browser/components/TopBar/FsBrowser.d.ts +8 -0
- package/dist/package/browser/components/TopBar/FsBrowser.js +93 -0
- package/dist/package/browser/components/TopBar/GameSwitcher.d.ts +29 -0
- package/dist/package/browser/components/TopBar/GameSwitcher.js +157 -0
- package/dist/package/browser/components/TopBar/IosPackageDialog.d.ts +23 -0
- package/dist/package/browser/components/TopBar/IosPackageDialog.js +115 -0
- package/dist/package/browser/components/TopBar/ProjectSwitcher.d.ts +3 -0
- package/dist/package/browser/components/TopBar/ProjectSwitcher.js +41 -0
- package/dist/package/browser/components/TopBar/PublishOnboarding.css +133 -0
- package/dist/package/browser/components/TopBar/PublishOnboarding.d.ts +10 -0
- package/dist/package/browser/components/TopBar/PublishOnboarding.js +144 -0
- package/dist/package/browser/components/TopBar/SessionSwitcher.d.ts +2 -0
- package/dist/package/browser/components/TopBar/SessionSwitcher.js +124 -0
- package/dist/package/browser/components/TopBar/TopBar.css +1672 -0
- package/dist/package/browser/components/TopBar/TopBar.d.ts +2 -0
- package/dist/package/browser/components/TopBar/TopBar.js +606 -0
- package/dist/package/browser/components/TopBar/publish-options.d.ts +20 -0
- package/dist/package/browser/components/TopBar/publish-options.js +28 -0
- package/dist/package/browser/components/TourOverlay/TourOverlay.css +122 -0
- package/dist/package/browser/components/TourOverlay/TourOverlay.d.ts +26 -0
- package/dist/package/browser/components/TourOverlay/TourOverlay.js +233 -0
- package/dist/package/browser/components/TourOverlay/index.d.ts +2 -0
- package/dist/package/browser/components/TourOverlay/index.js +1 -0
- package/dist/package/browser/components/ownership.d.ts +7 -0
- package/dist/package/browser/components/ownership.js +7 -0
- package/dist/package/browser/components/ui/SearchableMenu.css +143 -0
- package/dist/package/browser/components/ui/SearchableMenu.d.ts +30 -0
- package/dist/package/browser/components/ui/SearchableMenu.js +40 -0
- package/dist/package/browser/components/ui/alert-dialog.d.ts +20 -0
- package/dist/package/browser/components/ui/alert-dialog.js +38 -0
- package/dist/package/browser/components/ui/button.d.ts +11 -0
- package/dist/package/browser/components/ui/button.js +33 -0
- package/dist/package/browser/components/ui/checkbox.d.ts +4 -0
- package/dist/package/browser/components/ui/checkbox.js +8 -0
- package/dist/package/browser/components/ui/command.d.ts +74 -0
- package/dist/package/browser/components/ui/command.js +20 -0
- package/dist/package/browser/components/ui/dialog.d.ts +21 -0
- package/dist/package/browser/components/ui/dialog.js +34 -0
- package/dist/package/browser/components/ui/dropdown-menu.d.ts +18 -0
- package/dist/package/browser/components/ui/dropdown-menu.js +30 -0
- package/dist/package/browser/components/ui/input.d.ts +3 -0
- package/dist/package/browser/components/ui/input.js +8 -0
- package/dist/package/browser/components/ui/label.d.ts +4 -0
- package/dist/package/browser/components/ui/label.js +7 -0
- package/dist/package/browser/components/ui/popover.d.ts +7 -0
- package/dist/package/browser/components/ui/popover.js +10 -0
- package/dist/package/browser/components/ui/select.d.ts +11 -0
- package/dist/package/browser/components/ui/select.js +31 -0
- package/dist/package/browser/components/ui/tabs.d.ts +7 -0
- package/dist/package/browser/components/ui/tabs.js +12 -0
- package/dist/package/browser/components/ui/textarea.d.ts +3 -0
- package/dist/package/browser/components/ui/textarea.js +8 -0
- package/dist/package/browser/components/ui/tooltip.d.ts +7 -0
- package/dist/package/browser/components/ui/tooltip.js +10 -0
- package/dist/package/browser/core/app-shell/catalog-page-extensions.d.ts +28 -0
- package/dist/package/browser/core/app-shell/catalog-page-extensions.js +234 -0
- package/dist/package/browser/core/app-shell/derive-panel-renderers.d.ts +2 -0
- package/dist/package/browser/core/app-shell/derive-panel-renderers.js +17 -0
- package/dist/package/browser/core/app-shell/host.d.ts +31 -0
- package/dist/package/browser/core/app-shell/host.js +188 -0
- package/dist/package/browser/core/app-shell/index.d.ts +7 -0
- package/dist/package/browser/core/app-shell/index.js +8 -0
- package/dist/package/browser/core/app-shell/logger.d.ts +2 -0
- package/dist/package/browser/core/app-shell/logger.js +6 -0
- package/dist/package/browser/core/app-shell/ownership.d.ts +7 -0
- package/dist/package/browser/core/app-shell/ownership.js +7 -0
- package/dist/package/browser/core/app-shell/react/HostProvider.d.ts +10 -0
- package/dist/package/browser/core/app-shell/react/HostProvider.js +35 -0
- package/dist/package/browser/core/app-shell/surface-extension.d.ts +17 -0
- package/dist/package/browser/core/app-shell/surface-extension.js +33 -0
- package/dist/package/browser/core/app-shell/types.d.ts +176 -0
- package/dist/package/browser/core/app-shell/types.js +1 -0
- package/dist/package/browser/core/contextual-keybindings.d.ts +71 -0
- package/dist/package/browser/core/contextual-keybindings.js +198 -0
- package/dist/package/browser/core/extension-foundation/bus.d.ts +2 -0
- package/dist/package/browser/core/extension-foundation/bus.js +3 -0
- package/dist/package/browser/core/extension-foundation/capabilities.d.ts +2 -0
- package/dist/package/browser/core/extension-foundation/capabilities.js +3 -0
- package/dist/package/browser/core/extension-foundation/commands.d.ts +2 -0
- package/dist/package/browser/core/extension-foundation/commands.js +3 -0
- package/dist/package/browser/core/extension-foundation/context-keys.d.ts +2 -0
- package/dist/package/browser/core/extension-foundation/context-keys.js +3 -0
- package/dist/package/browser/core/extension-foundation/contribution-registry.d.ts +2 -0
- package/dist/package/browser/core/extension-foundation/contribution-registry.js +3 -0
- package/dist/package/browser/core/extension-foundation/errors.d.ts +2 -0
- package/dist/package/browser/core/extension-foundation/errors.js +3 -0
- package/dist/package/browser/core/extension-foundation/index.d.ts +8 -0
- package/dist/package/browser/core/extension-foundation/index.js +9 -0
- package/dist/package/browser/core/extension-foundation/loader.d.ts +2 -0
- package/dist/package/browser/core/extension-foundation/loader.js +3 -0
- package/dist/package/browser/core/extension-foundation/storage.d.ts +2 -0
- package/dist/package/browser/core/extension-foundation/storage.js +3 -0
- package/dist/package/browser/core/extension-foundation/types.d.ts +2 -0
- package/dist/package/browser/core/extension-foundation/types.js +1 -0
- package/dist/package/browser/core/extensions/builtin-commands.d.ts +2 -0
- package/dist/package/browser/core/extensions/builtin-commands.js +256 -0
- package/dist/package/browser/core/extensions/builtin-menus.d.ts +2 -0
- package/dist/package/browser/core/extensions/builtin-menus.js +252 -0
- package/dist/package/browser/core/extensions/chrome-drawer.d.ts +3 -0
- package/dist/package/browser/core/extensions/chrome-drawer.js +45 -0
- package/dist/package/browser/core/extensions/chrome-statusbar.d.ts +6 -0
- package/dist/package/browser/core/extensions/chrome-statusbar.js +26 -0
- package/dist/package/browser/core/extensions/detached-agents-browser.d.ts +3 -0
- package/dist/package/browser/core/extensions/detached-agents-browser.js +9 -0
- package/dist/package/browser/core/extensions/detached-files-browser.d.ts +3 -0
- package/dist/package/browser/core/extensions/detached-files-browser.js +6 -0
- package/dist/package/browser/core/extensions/editor-commands.d.ts +2 -0
- package/dist/package/browser/core/extensions/editor-commands.js +182 -0
- package/dist/package/browser/core/extensions/foundation-bus.d.ts +2 -0
- package/dist/package/browser/core/extensions/foundation-bus.js +3 -0
- package/dist/package/browser/core/extensions/foundation-commands.d.ts +2 -0
- package/dist/package/browser/core/extensions/foundation-commands.js +6 -0
- package/dist/package/browser/core/extensions/foundation-storage.d.ts +2 -0
- package/dist/package/browser/core/extensions/foundation-storage.js +3 -0
- package/dist/package/browser/core/extensions/host-commands.d.ts +18 -0
- package/dist/package/browser/core/extensions/host-commands.js +52 -0
- package/dist/package/browser/core/extensions/observability.d.ts +14 -0
- package/dist/package/browser/core/extensions/observability.js +18 -0
- package/dist/package/browser/core/extensions/panels-chat.d.ts +2 -0
- package/dist/package/browser/core/extensions/panels-chat.js +41 -0
- package/dist/package/browser/core/extensions/panels-editor.d.ts +8 -0
- package/dist/package/browser/core/extensions/panels-editor.js +26 -0
- package/dist/package/browser/core/extensions/panels-viewport.d.ts +2 -0
- package/dist/package/browser/core/extensions/panels-viewport.js +20 -0
- package/dist/package/browser/core/extensions/session-client.d.ts +29 -0
- package/dist/package/browser/core/extensions/session-client.js +42 -0
- package/dist/package/browser/core/extensions/slots-corner-agent-picker.d.ts +5 -0
- package/dist/package/browser/core/extensions/slots-corner-agent-picker.js +6 -0
- package/dist/package/browser/core/extensions/slots-main-area-body.d.ts +3 -0
- package/dist/package/browser/core/extensions/slots-main-area-body.js +6 -0
- package/dist/package/browser/core/extensions/slots-sidebar-agents.d.ts +3 -0
- package/dist/package/browser/core/extensions/slots-sidebar-agents.js +6 -0
- package/dist/package/browser/core/extensions/studio-domain-clients.d.ts +12 -0
- package/dist/package/browser/core/extensions/studio-domain-clients.js +15 -0
- package/dist/package/browser/core/extensions/surfaces-scene-editor.d.ts +3 -0
- package/dist/package/browser/core/extensions/surfaces-scene-editor.js +6 -0
- package/dist/package/browser/core/extensions/trajectory.d.ts +2 -0
- package/dist/package/browser/core/extensions/trajectory.js +50 -0
- package/dist/package/browser/core/page-navigation.d.ts +1 -0
- package/dist/package/browser/core/page-navigation.js +1 -0
- package/dist/package/browser/core/page-platform/activity.d.ts +4 -0
- package/dist/package/browser/core/page-platform/activity.js +46 -0
- package/dist/package/browser/core/page-platform/dockview-layout.d.ts +7 -0
- package/dist/package/browser/core/page-platform/dockview-layout.js +63 -0
- package/dist/package/browser/core/page-platform/index.d.ts +8 -0
- package/dist/package/browser/core/page-platform/index.js +8 -0
- package/dist/package/browser/core/page-platform/layout-store.d.ts +18 -0
- package/dist/package/browser/core/page-platform/layout-store.js +54 -0
- package/dist/package/browser/core/page-platform/page-dirty-probe.d.ts +1 -0
- package/dist/package/browser/core/page-platform/page-dirty-probe.js +4 -0
- package/dist/package/browser/core/page-platform/registry.d.ts +3 -0
- package/dist/package/browser/core/page-platform/registry.js +194 -0
- package/dist/package/browser/core/page-platform/resource-editor.d.ts +3 -0
- package/dist/package/browser/core/page-platform/resource-editor.js +74 -0
- package/dist/package/browser/core/page-platform/session.d.ts +10 -0
- package/dist/package/browser/core/page-platform/session.js +327 -0
- package/dist/package/browser/core/page-platform/types.d.ts +242 -0
- package/dist/package/browser/core/page-platform/types.js +10 -0
- package/dist/package/browser/core/panels/context-expression.d.ts +1 -0
- package/dist/package/browser/core/panels/context-expression.js +1 -0
- package/dist/package/browser/core/panels/drawer.d.ts +23 -0
- package/dist/package/browser/core/panels/drawer.js +1 -0
- package/dist/package/browser/core/panels/index.d.ts +7 -0
- package/dist/package/browser/core/panels/index.js +7 -0
- package/dist/package/browser/core/panels/panel-action-registry.d.ts +6 -0
- package/dist/package/browser/core/panels/panel-action-registry.js +62 -0
- package/dist/package/browser/core/panels/panel-control-registry.d.ts +6 -0
- package/dist/package/browser/core/panels/panel-control-registry.js +54 -0
- package/dist/package/browser/core/panels/resolve-panel-action-state.d.ts +10 -0
- package/dist/package/browser/core/panels/resolve-panel-action-state.js +9 -0
- package/dist/package/browser/core/panels/strip.d.ts +40 -0
- package/dist/package/browser/core/panels/strip.js +1 -0
- package/dist/package/browser/core/panels/types.d.ts +143 -0
- package/dist/package/browser/core/panels/types.js +1 -0
- package/dist/package/browser/i18n/index.d.ts +50 -0
- package/dist/package/browser/i18n/index.js +207 -0
- package/dist/package/browser/i18n/locales/en.json +1959 -0
- package/dist/package/browser/i18n/locales/zh.json +1959 -0
- package/dist/package/browser/index.d.ts +2 -0
- package/dist/package/browser/index.js +2 -0
- package/dist/package/browser/lib/a11y-summary.d.ts +17 -0
- package/dist/package/browser/lib/a11y-summary.js +66 -0
- package/dist/package/browser/lib/action-dom-discovery.d.ts +2 -0
- package/dist/package/browser/lib/action-dom-discovery.js +84 -0
- package/dist/package/browser/lib/action-registry.d.ts +94 -0
- package/dist/package/browser/lib/action-registry.js +210 -0
- package/dist/package/browser/lib/aegis.d.ts +40 -0
- package/dist/package/browser/lib/aegis.js +230 -0
- package/dist/package/browser/lib/agent-catalog-url.d.ts +9 -0
- package/dist/package/browser/lib/agent-catalog-url.js +24 -0
- package/dist/package/browser/lib/agent-cli-provider.d.ts +10 -0
- package/dist/package/browser/lib/agent-cli-provider.js +81 -0
- package/dist/package/browser/lib/ai-intents.d.ts +30 -0
- package/dist/package/browser/lib/ai-intents.js +52 -0
- package/dist/package/browser/lib/broadcast-stream.d.ts +17 -0
- package/dist/package/browser/lib/broadcast-stream.js +163 -0
- package/dist/package/browser/lib/browser-prefs-sync.d.ts +16 -0
- package/dist/package/browser/lib/browser-prefs-sync.js +151 -0
- package/dist/package/browser/lib/builtin-actions.d.ts +2 -0
- package/dist/package/browser/lib/builtin-actions.js +558 -0
- package/dist/package/browser/lib/bus.d.ts +25 -0
- package/dist/package/browser/lib/bus.js +71 -0
- package/dist/package/browser/lib/checkpoint-api.d.ts +54 -0
- package/dist/package/browser/lib/checkpoint-api.js +41 -0
- package/dist/package/browser/lib/cli-providers.d.ts +33 -0
- package/dist/package/browser/lib/cli-providers.js +61 -0
- package/dist/package/browser/lib/command-palette-store.d.ts +5 -0
- package/dist/package/browser/lib/command-palette-store.js +22 -0
- package/dist/package/browser/lib/composer-bridge.d.ts +103 -0
- package/dist/package/browser/lib/composer-bridge.js +448 -0
- package/dist/package/browser/lib/dashboard-api.d.ts +104 -0
- package/dist/package/browser/lib/dashboard-api.js +125 -0
- package/dist/package/browser/lib/deep-link-bus.d.ts +10 -0
- package/dist/package/browser/lib/deep-link-bus.js +35 -0
- package/dist/package/browser/lib/dialog.d.ts +40 -0
- package/dist/package/browser/lib/dialog.js +103 -0
- package/dist/package/browser/lib/editor-facts-bus.d.ts +27 -0
- package/dist/package/browser/lib/editor-facts-bus.js +25 -0
- package/dist/package/browser/lib/extension-api.d.ts +140 -0
- package/dist/package/browser/lib/extension-api.js +90 -0
- package/dist/package/browser/lib/file-activity-stream.d.ts +54 -0
- package/dist/package/browser/lib/file-activity-stream.js +123 -0
- package/dist/package/browser/lib/file-family.d.ts +15 -0
- package/dist/package/browser/lib/file-family.js +25 -0
- package/dist/package/browser/lib/game-templates.d.ts +7 -0
- package/dist/package/browser/lib/game-templates.js +15 -0
- package/dist/package/browser/lib/global-shortcuts.d.ts +121 -0
- package/dist/package/browser/lib/global-shortcuts.js +551 -0
- package/dist/package/browser/lib/logSink.d.ts +16 -0
- package/dist/package/browser/lib/logSink.js +128 -0
- package/dist/package/browser/lib/lucide-icon.d.ts +5 -0
- package/dist/package/browser/lib/lucide-icon.js +20 -0
- package/dist/package/browser/lib/menu-registry.d.ts +113 -0
- package/dist/package/browser/lib/menu-registry.js +197 -0
- package/dist/package/browser/lib/model-config.d.ts +89 -0
- package/dist/package/browser/lib/model-config.js +72 -0
- package/dist/package/browser/lib/model-prefs.d.ts +5 -0
- package/dist/package/browser/lib/model-prefs.js +53 -0
- package/dist/package/browser/lib/model-route/index.d.ts +81 -0
- package/dist/package/browser/lib/model-route/index.js +175 -0
- package/dist/package/browser/lib/narrative-copilot.d.ts +20 -0
- package/dist/package/browser/lib/narrative-copilot.js +105 -0
- package/dist/package/browser/lib/native-menu-bridge.d.ts +37 -0
- package/dist/package/browser/lib/native-menu-bridge.js +151 -0
- package/dist/package/browser/lib/page-tab-icons.d.ts +21 -0
- package/dist/package/browser/lib/page-tab-icons.js +64 -0
- package/dist/package/browser/lib/panel-tab-icons.d.ts +21 -0
- package/dist/package/browser/lib/panel-tab-icons.js +49 -0
- package/dist/package/browser/lib/passive-feedback.d.ts +50 -0
- package/dist/package/browser/lib/passive-feedback.js +171 -0
- package/dist/package/browser/lib/perception-stream.d.ts +27 -0
- package/dist/package/browser/lib/perception-stream.js +42 -0
- package/dist/package/browser/lib/platform/index.d.ts +14 -0
- package/dist/package/browser/lib/platform/index.js +13 -0
- package/dist/package/browser/lib/platform/runtime.d.ts +22 -0
- package/dist/package/browser/lib/platform/runtime.js +42 -0
- package/dist/package/browser/lib/platform/shell-adapter.d.ts +24 -0
- package/dist/package/browser/lib/platform/shell-adapter.js +74 -0
- package/dist/package/browser/lib/platform/surface-windowing.d.ts +4 -0
- package/dist/package/browser/lib/platform/surface-windowing.js +16 -0
- package/dist/package/browser/lib/platform/surface.d.ts +13 -0
- package/dist/package/browser/lib/platform/surface.js +27 -0
- package/dist/package/browser/lib/platform/use-surface-windowing.d.ts +1 -0
- package/dist/package/browser/lib/platform/use-surface-windowing.js +6 -0
- package/dist/package/browser/lib/platform/window-manager.d.ts +2 -0
- package/dist/package/browser/lib/platform/window-manager.js +82 -0
- package/dist/package/browser/lib/project-context.d.ts +4 -0
- package/dist/package/browser/lib/project-context.js +42 -0
- package/dist/package/browser/lib/project.d.ts +5 -0
- package/dist/package/browser/lib/project.js +8 -0
- package/dist/package/browser/lib/recent-games.d.ts +24 -0
- package/dist/package/browser/lib/recent-games.js +50 -0
- package/dist/package/browser/lib/repair-builtin-menus.d.ts +6 -0
- package/dist/package/browser/lib/repair-builtin-menus.js +18 -0
- package/dist/package/browser/lib/reply-language.d.ts +9 -0
- package/dist/package/browser/lib/reply-language.js +11 -0
- package/dist/package/browser/lib/resilient-polling.d.ts +9 -0
- package/dist/package/browser/lib/resilient-polling.js +16 -0
- package/dist/package/browser/lib/session-time.d.ts +8 -0
- package/dist/package/browser/lib/session-time.js +40 -0
- package/dist/package/browser/lib/shell-live-data.d.ts +12 -0
- package/dist/package/browser/lib/shell-live-data.js +66 -0
- package/dist/package/browser/lib/sse.d.ts +5 -0
- package/dist/package/browser/lib/sse.js +42 -0
- package/dist/package/browser/lib/storageKeys.d.ts +70 -0
- package/dist/package/browser/lib/storageKeys.js +89 -0
- package/dist/package/browser/lib/surface-store.d.ts +38 -0
- package/dist/package/browser/lib/surface-store.js +62 -0
- package/dist/package/browser/lib/surface.d.ts +56 -0
- package/dist/package/browser/lib/surface.js +225 -0
- package/dist/package/browser/lib/surfaceAnchors.d.ts +16 -0
- package/dist/package/browser/lib/surfaceAnchors.js +76 -0
- package/dist/package/browser/lib/surfaceKeepAliveLayout.d.ts +7 -0
- package/dist/package/browser/lib/surfaceKeepAliveLayout.js +12 -0
- package/dist/package/browser/lib/telemetry-test-prelude.d.ts +0 -0
- package/dist/package/browser/lib/telemetry-test-prelude.js +14 -0
- package/dist/package/browser/lib/text-edit-actions.d.ts +14 -0
- package/dist/package/browser/lib/text-edit-actions.js +184 -0
- package/dist/package/browser/lib/trace.d.ts +34 -0
- package/dist/package/browser/lib/trace.js +273 -0
- package/dist/package/browser/lib/trustedOrigins.d.ts +4 -0
- package/dist/package/browser/lib/trustedOrigins.js +36 -0
- package/dist/package/browser/lib/ui-action-highlight.d.ts +2 -0
- package/dist/package/browser/lib/ui-action-highlight.js +93 -0
- package/dist/package/browser/lib/ui-bridge.d.ts +2 -0
- package/dist/package/browser/lib/ui-bridge.js +224 -0
- package/dist/package/browser/lib/ui-screenshot.d.ts +31 -0
- package/dist/package/browser/lib/ui-screenshot.js +155 -0
- package/dist/package/browser/lib/ui-trajectory.d.ts +47 -0
- package/dist/package/browser/lib/ui-trajectory.js +99 -0
- package/dist/package/browser/lib/use-bus-snapshot.d.ts +3 -0
- package/dist/package/browser/lib/use-bus-snapshot.js +13 -0
- package/dist/package/browser/lib/use-extension-manifest.d.ts +19 -0
- package/dist/package/browser/lib/use-extension-manifest.js +67 -0
- package/dist/package/browser/lib/useConfirmToast.d.ts +26 -0
- package/dist/package/browser/lib/useConfirmToast.js +120 -0
- package/dist/package/browser/lib/utils.d.ts +2 -0
- package/dist/package/browser/lib/utils.js +5 -0
- package/dist/package/browser/lib/vag-action-bridge.d.ts +2 -0
- package/dist/package/browser/lib/vag-action-bridge.js +130 -0
- package/dist/package/browser/main.d.ts +1 -0
- package/dist/package/browser/main.js +157 -0
- package/dist/package/browser/store-parts/domain-clients.d.ts +149 -0
- package/dist/package/browser/store-parts/domain-clients.js +17 -0
- package/dist/package/browser/store-parts/observability.d.ts +4 -0
- package/dist/package/browser/store-parts/observability.js +35 -0
- package/dist/package/browser/store-parts/persistence.d.ts +40 -0
- package/dist/package/browser/store-parts/persistence.js +245 -0
- package/dist/package/browser/store-parts/session-client.d.ts +73 -0
- package/dist/package/browser/store-parts/session-client.js +17 -0
- package/dist/package/browser/store-parts/session-pick.d.ts +8 -0
- package/dist/package/browser/store-parts/session-pick.js +21 -0
- package/dist/package/browser/store-parts/shell.d.ts +5 -0
- package/dist/package/browser/store-parts/shell.js +37 -0
- package/dist/package/browser/store.d.ts +455 -0
- package/dist/package/browser/store.js +890 -0
- package/dist/package/browser/styles/forgeax-preview/agent-avatar.css +69 -0
- package/dist/package/browser/styles/forgeax-preview/aliases.css +21 -0
- package/dist/package/browser/styles/forgeax-preview/chat-popover.css +141 -0
- package/dist/package/browser/styles/forgeax-preview/chat-session.css +896 -0
- package/dist/package/browser/styles/forgeax-preview/composer-port.css +531 -0
- package/dist/package/browser/styles/forgeax-preview/design-tokens.css +25 -0
- package/dist/package/browser/styles/forgeax-preview/index.css +9 -0
- package/dist/package/browser/styles/forgeax-preview/scene-fx.css +117 -0
- package/dist/package/browser/styles/forgeax-preview/shell-layout.css +280 -0
- package/dist/package/browser/styles/forgeax-preview/shell-skin.css +128 -0
- package/dist/package/browser/styles/foundation.tokens.json +2755 -0
- package/dist/package/browser/styles/global.css +196 -0
- package/dist/package/browser/styles/motion.css +558 -0
- package/dist/package/browser/styles/plugin-token-bridge.css +19 -0
- package/dist/package/browser/styles/primitive.css +197 -0
- package/dist/package/browser/styles/semantic.tokens.json +1524 -0
- package/dist/package/browser/styles/tokens.css +304 -0
- package/dist/package/node/App.js +11 -0
- package/dist/package/node/ApplicationDetachedShell.js +10 -0
- package/dist/package/node/ApplicationShell.js +62 -0
- package/dist/package/node/app-kit.js +4 -0
- package/dist/package/node/appHostBootstrap.js +145 -0
- package/dist/package/node/application.js +64 -0
- package/dist/package/node/boot/SettingsSection.js +82 -0
- package/dist/package/node/boot/broadcast.js +32 -0
- package/dist/package/node/boot/driver.js +47 -0
- package/dist/package/node/boot/store.js +114 -0
- package/dist/package/node/boot/themes.js +21 -0
- package/dist/package/node/boot/types.js +30 -0
- package/dist/package/node/brand/BrandProvider.js +35 -0
- package/dist/package/node/brand/index.js +3 -0
- package/dist/package/node/brand/runtime.js +71 -0
- package/dist/package/node/brand/types.js +9 -0
- package/dist/package/node/components/ActivityRail/ActivityRail.js +164 -0
- package/dist/package/node/components/ActivityRail/activity-rail-model.js +144 -0
- package/dist/package/node/components/AgentAvatar/AgentAvatar.js +50 -0
- package/dist/package/node/components/BuildBadge/BuildBadge.js +279 -0
- package/dist/package/node/components/Bus/BusAdminPanel.js +1385 -0
- package/dist/package/node/components/Bus/CapabilityOverview.js +50 -0
- package/dist/package/node/components/ChatColumn/ChatColumn.js +18 -0
- package/dist/package/node/components/ChatColumn/SessionTabStrip.js +103 -0
- package/dist/package/node/components/ChatColumn/useChatWidth.js +13 -0
- package/dist/package/node/components/CommandPalette/CommandPalette.js +242 -0
- package/dist/package/node/components/Confirm/ConfirmDialog.js +113 -0
- package/dist/package/node/components/ContextMenu/ContextMenu.js +218 -0
- package/dist/package/node/components/ContextMenu/menuRegistry.js +152 -0
- package/dist/package/node/components/DetachedSurface.js +102 -0
- package/dist/package/node/components/DockShell/DockPanelHost.js +7 -0
- package/dist/package/node/components/DockShell/DockRegion.js +315 -0
- package/dist/package/node/components/DockShell/DockTab.js +139 -0
- package/dist/package/node/components/DockShell/ExtensionHostPanel.js +68 -0
- package/dist/package/node/components/DockShell/ExtensionRuntimeFrame.js +56 -0
- package/dist/package/node/components/DockShell/PanelWindowingBoundary.js +9 -0
- package/dist/package/node/components/DockShell/chatDockAnimation.js +101 -0
- package/dist/package/node/components/DockShell/chatDockFullscreen.js +22 -0
- package/dist/package/node/components/DockShell/chatDockLayout.js +11 -0
- package/dist/package/node/components/DockShell/compact-empty-dock-groups.js +28 -0
- package/dist/package/node/components/DockShell/crossInstanceDrop.js +1 -0
- package/dist/package/node/components/DockShell/dockResetEpoch.js +13 -0
- package/dist/package/node/components/DockShell/dockTitle.js +36 -0
- package/dist/package/node/components/DockShell/dockviewRegistry.js +1 -0
- package/dist/package/node/components/DockShell/edgeDrawer.js +1144 -0
- package/dist/package/node/components/DockShell/edgePinStore.js +37 -0
- package/dist/package/node/components/DockShell/extension-editor-bridge.js +100 -0
- package/dist/package/node/components/DockShell/extension-runtime-selection.js +6 -0
- package/dist/package/node/components/DockShell/extensionRuntime.js +84 -0
- package/dist/package/node/components/DockShell/footer-panel-visibility.js +43 -0
- package/dist/package/node/components/DockShell/footer-panels.js +7 -0
- package/dist/package/node/components/DockShell/panelRegistry.js +126 -0
- package/dist/package/node/components/DockShell/panelRenderers.js +25 -0
- package/dist/package/node/components/DockShell/panelTabCommands.js +133 -0
- package/dist/package/node/components/DockShell/panelWindowing.js +42 -0
- package/dist/package/node/components/DockShell/regions.js +1 -0
- package/dist/package/node/components/DockShell/resolveRegion.js +1 -0
- package/dist/package/node/components/DockShell/sanitizeDockLayout.js +46 -0
- package/dist/package/node/components/DockShell/sideEdgeMove.js +1 -0
- package/dist/package/node/components/DockShell/studioTabMenuProvider.js +39 -0
- package/dist/package/node/components/DockShell/tabContextMenu.js +68 -0
- package/dist/package/node/components/DockShell/ueDrag/controller.js +785 -0
- package/dist/package/node/components/DockShell/ueDrag/geometry.js +217 -0
- package/dist/package/node/components/DockShell/ueDrag/overlay.js +206 -0
- package/dist/package/node/components/DockShell/useAuxBarWidth.js +13 -0
- package/dist/package/node/components/Drawer/DrawerHostView.js +93 -0
- package/dist/package/node/components/Drawer/DrawerLauncher.js +22 -0
- package/dist/package/node/components/Drawer/useDrawerStore.js +80 -0
- package/dist/package/node/components/ErrorBoundary.js +131 -0
- package/dist/package/node/components/ExtensionHost/ExtensionIframeHost.js +179 -0
- package/dist/package/node/components/ExtensionHost/NativeExtensionHost.js +152 -0
- package/dist/package/node/components/Feedback/FeedbackPanel.js +118 -0
- package/dist/package/node/components/Feedback/PassiveFeedback.js +218 -0
- package/dist/package/node/components/Feedback/collect.js +80 -0
- package/dist/package/node/components/Feedback/store.js +174 -0
- package/dist/package/node/components/LangSwitcher/LangSwitcher.js +44 -0
- package/dist/package/node/components/MainArea/ConsolePanel.js +16 -0
- package/dist/package/node/components/MainArea/MainArea.js +20 -0
- package/dist/package/node/components/MainArea/StandaloneExtensionIframe.js +155 -0
- package/dist/package/node/components/MainArea/SurfacePanels.js +27 -0
- package/dist/package/node/components/MainArea/TelemetryViewer.js +116 -0
- package/dist/package/node/components/MenuBar/MenuBar.js +286 -0
- package/dist/package/node/components/MenuBar/index.js +1 -0
- package/dist/package/node/components/MenuBar/menubar-open-state.js +11 -0
- package/dist/package/node/components/MenuBar/menubar-surface.js +201 -0
- package/dist/package/node/components/ModelPicker/index.js +1 -0
- package/dist/package/node/components/ModelPicker/useModelCatalog.js +100 -0
- package/dist/package/node/components/Onboarding/ConnectModelPrompt.js +40 -0
- package/dist/package/node/components/Onboarding/OnboardingController.js +549 -0
- package/dist/package/node/components/Onboarding/connect-selection.js +18 -0
- package/dist/package/node/components/Onboarding/home-transition.js +20 -0
- package/dist/package/node/components/Onboarding/index.js +3 -0
- package/dist/package/node/components/Onboarding/prepareTourShell.js +11 -0
- package/dist/package/node/components/Onboarding/project-name.js +29 -0
- package/dist/package/node/components/Onboarding/types.js +77 -0
- package/dist/package/node/components/PageTabs/PageTabStrip.js +214 -0
- package/dist/package/node/components/PageTabs/openablePageTypes.js +13 -0
- package/dist/package/node/components/PanelShell/PanelShell.js +459 -0
- package/dist/package/node/components/Resize/ResizeHandle.js +1 -0
- package/dist/package/node/components/SceneBackground/SceneBackground.js +5 -0
- package/dist/package/node/components/SchemaForm/SchemaForm.js +86 -0
- package/dist/package/node/components/SchemaForm/schema-form-utils.js +51 -0
- package/dist/package/node/components/SettingsPrimitives.js +145 -0
- package/dist/package/node/components/Sidebar/BusHealthLamp.js +72 -0
- package/dist/package/node/components/Sidebar/FilesPanel.js +234 -0
- package/dist/package/node/components/Sidebar/Sidebar.js +8 -0
- package/dist/package/node/components/Sidebar/sidebar-types.js +1 -0
- package/dist/package/node/components/SlotDebugOverlay/SlotDebugOverlay.js +1 -0
- package/dist/package/node/components/SlotDebugOverlay/hashHue.js +1 -0
- package/dist/package/node/components/SlotDebugOverlay/index.js +1 -0
- package/dist/package/node/components/SlotDebugOverlay/isSlotDebugEnabled.js +1 -0
- package/dist/package/node/components/StatusBar/FatalBanner.js +52 -0
- package/dist/package/node/components/StatusBar/InfoPanel.js +128 -0
- package/dist/package/node/components/StatusBar/StatusChip.js +13 -0
- package/dist/package/node/components/StatusBar/StripHostView.js +91 -0
- package/dist/package/node/components/StatusBar/StripPopover.js +15 -0
- package/dist/package/node/components/StatusBar/feeds/PulseFeeds.js +88 -0
- package/dist/package/node/components/StatusBar/footer/CheckpointsDrawer.js +77 -0
- package/dist/package/node/components/StatusBar/footer/DiagnosticsPopover.js +108 -0
- package/dist/package/node/components/StatusBar/footer/EventsDrawer.js +25 -0
- package/dist/package/node/components/StatusBar/footer/ForgeaxBuildPopover.js +62 -0
- package/dist/package/node/components/StatusBar/healthBridge.js +245 -0
- package/dist/package/node/components/StatusBar/healthStore.js +129 -0
- package/dist/package/node/components/StatusBar/useStatusItem.js +35 -0
- package/dist/package/node/components/Surfaces/SurfaceKeepAliveLayer.js +218 -0
- package/dist/package/node/components/Surfaces/SurfaceOverlay.js +144 -0
- package/dist/package/node/components/TopBar/AndroidPackageDialog.js +115 -0
- package/dist/package/node/components/TopBar/FsBrowser.js +93 -0
- package/dist/package/node/components/TopBar/GameSwitcher.js +157 -0
- package/dist/package/node/components/TopBar/IosPackageDialog.js +115 -0
- package/dist/package/node/components/TopBar/ProjectSwitcher.js +41 -0
- package/dist/package/node/components/TopBar/PublishOnboarding.js +144 -0
- package/dist/package/node/components/TopBar/SessionSwitcher.js +124 -0
- package/dist/package/node/components/TopBar/TopBar.js +606 -0
- package/dist/package/node/components/TopBar/publish-options.js +28 -0
- package/dist/package/node/components/TourOverlay/TourOverlay.js +233 -0
- package/dist/package/node/components/TourOverlay/index.js +1 -0
- package/dist/package/node/components/ownership.js +7 -0
- package/dist/package/node/components/ui/SearchableMenu.js +40 -0
- package/dist/package/node/components/ui/alert-dialog.js +38 -0
- package/dist/package/node/components/ui/button.js +33 -0
- package/dist/package/node/components/ui/checkbox.js +8 -0
- package/dist/package/node/components/ui/command.js +20 -0
- package/dist/package/node/components/ui/dialog.js +34 -0
- package/dist/package/node/components/ui/dropdown-menu.js +30 -0
- package/dist/package/node/components/ui/input.js +8 -0
- package/dist/package/node/components/ui/label.js +7 -0
- package/dist/package/node/components/ui/popover.js +10 -0
- package/dist/package/node/components/ui/select.js +31 -0
- package/dist/package/node/components/ui/tabs.js +12 -0
- package/dist/package/node/components/ui/textarea.js +8 -0
- package/dist/package/node/components/ui/tooltip.js +10 -0
- package/dist/package/node/core/app-shell/catalog-page-extensions.js +234 -0
- package/dist/package/node/core/app-shell/derive-panel-renderers.js +17 -0
- package/dist/package/node/core/app-shell/host.js +188 -0
- package/dist/package/node/core/app-shell/index.js +8 -0
- package/dist/package/node/core/app-shell/logger.js +6 -0
- package/dist/package/node/core/app-shell/ownership.js +7 -0
- package/dist/package/node/core/app-shell/react/HostProvider.js +35 -0
- package/dist/package/node/core/app-shell/surface-extension.js +33 -0
- package/dist/package/node/core/app-shell/types.js +1 -0
- package/dist/package/node/core/contextual-keybindings.js +198 -0
- package/dist/package/node/core/extension-foundation/bus.js +3 -0
- package/dist/package/node/core/extension-foundation/capabilities.js +3 -0
- package/dist/package/node/core/extension-foundation/commands.js +3 -0
- package/dist/package/node/core/extension-foundation/context-keys.js +3 -0
- package/dist/package/node/core/extension-foundation/contribution-registry.js +3 -0
- package/dist/package/node/core/extension-foundation/errors.js +3 -0
- package/dist/package/node/core/extension-foundation/index.js +9 -0
- package/dist/package/node/core/extension-foundation/loader.js +3 -0
- package/dist/package/node/core/extension-foundation/storage.js +3 -0
- package/dist/package/node/core/extension-foundation/types.js +1 -0
- package/dist/package/node/core/extensions/builtin-commands.js +256 -0
- package/dist/package/node/core/extensions/builtin-menus.js +252 -0
- package/dist/package/node/core/extensions/chrome-drawer.js +45 -0
- package/dist/package/node/core/extensions/chrome-statusbar.js +26 -0
- package/dist/package/node/core/extensions/detached-agents-browser.js +9 -0
- package/dist/package/node/core/extensions/detached-files-browser.js +6 -0
- package/dist/package/node/core/extensions/editor-commands.js +182 -0
- package/dist/package/node/core/extensions/foundation-bus.js +3 -0
- package/dist/package/node/core/extensions/foundation-commands.js +6 -0
- package/dist/package/node/core/extensions/foundation-storage.js +3 -0
- package/dist/package/node/core/extensions/host-commands.js +52 -0
- package/dist/package/node/core/extensions/observability.js +18 -0
- package/dist/package/node/core/extensions/panels-chat.js +41 -0
- package/dist/package/node/core/extensions/panels-editor.js +26 -0
- package/dist/package/node/core/extensions/panels-viewport.js +20 -0
- package/dist/package/node/core/extensions/session-client.js +42 -0
- package/dist/package/node/core/extensions/slots-corner-agent-picker.js +6 -0
- package/dist/package/node/core/extensions/slots-main-area-body.js +6 -0
- package/dist/package/node/core/extensions/slots-sidebar-agents.js +6 -0
- package/dist/package/node/core/extensions/studio-domain-clients.js +15 -0
- package/dist/package/node/core/extensions/surfaces-scene-editor.js +6 -0
- package/dist/package/node/core/extensions/trajectory.js +50 -0
- package/dist/package/node/core/page-navigation.js +1 -0
- package/dist/package/node/core/page-platform/activity.js +46 -0
- package/dist/package/node/core/page-platform/dockview-layout.js +63 -0
- package/dist/package/node/core/page-platform/index.js +8 -0
- package/dist/package/node/core/page-platform/layout-store.js +54 -0
- package/dist/package/node/core/page-platform/page-dirty-probe.js +4 -0
- package/dist/package/node/core/page-platform/registry.js +194 -0
- package/dist/package/node/core/page-platform/resource-editor.js +74 -0
- package/dist/package/node/core/page-platform/session.js +327 -0
- package/dist/package/node/core/page-platform/types.js +10 -0
- package/dist/package/node/core/panels/context-expression.js +1 -0
- package/dist/package/node/core/panels/drawer.js +1 -0
- package/dist/package/node/core/panels/index.js +7 -0
- package/dist/package/node/core/panels/panel-action-registry.js +62 -0
- package/dist/package/node/core/panels/panel-control-registry.js +54 -0
- package/dist/package/node/core/panels/resolve-panel-action-state.js +9 -0
- package/dist/package/node/core/panels/strip.js +1 -0
- package/dist/package/node/core/panels/types.js +1 -0
- package/dist/package/node/i18n/index.js +207 -0
- package/dist/package/node/i18n/locales/en.json +1959 -0
- package/dist/package/node/i18n/locales/zh.json +1959 -0
- package/dist/package/node/index.js +2 -0
- package/dist/package/node/lib/a11y-summary.js +66 -0
- package/dist/package/node/lib/action-dom-discovery.js +84 -0
- package/dist/package/node/lib/action-registry.js +210 -0
- package/dist/package/node/lib/aegis.js +230 -0
- package/dist/package/node/lib/agent-catalog-url.js +24 -0
- package/dist/package/node/lib/agent-cli-provider.js +81 -0
- package/dist/package/node/lib/ai-intents.js +52 -0
- package/dist/package/node/lib/broadcast-stream.js +163 -0
- package/dist/package/node/lib/browser-prefs-sync.js +151 -0
- package/dist/package/node/lib/builtin-actions.js +558 -0
- package/dist/package/node/lib/bus.js +71 -0
- package/dist/package/node/lib/checkpoint-api.js +41 -0
- package/dist/package/node/lib/cli-providers.js +61 -0
- package/dist/package/node/lib/command-palette-store.js +22 -0
- package/dist/package/node/lib/composer-bridge.js +448 -0
- package/dist/package/node/lib/dashboard-api.js +125 -0
- package/dist/package/node/lib/deep-link-bus.js +35 -0
- package/dist/package/node/lib/dialog.js +103 -0
- package/dist/package/node/lib/editor-facts-bus.js +25 -0
- package/dist/package/node/lib/extension-api.js +90 -0
- package/dist/package/node/lib/file-activity-stream.js +123 -0
- package/dist/package/node/lib/file-family.js +25 -0
- package/dist/package/node/lib/game-templates.js +15 -0
- package/dist/package/node/lib/global-shortcuts.js +551 -0
- package/dist/package/node/lib/logSink.js +128 -0
- package/dist/package/node/lib/lucide-icon.js +20 -0
- package/dist/package/node/lib/menu-registry.js +197 -0
- package/dist/package/node/lib/model-config.js +72 -0
- package/dist/package/node/lib/model-prefs.js +53 -0
- package/dist/package/node/lib/model-route/index.js +175 -0
- package/dist/package/node/lib/narrative-copilot.js +105 -0
- package/dist/package/node/lib/native-menu-bridge.js +151 -0
- package/dist/package/node/lib/page-tab-icons.js +64 -0
- package/dist/package/node/lib/panel-tab-icons.js +49 -0
- package/dist/package/node/lib/passive-feedback.js +171 -0
- package/dist/package/node/lib/perception-stream.js +42 -0
- package/dist/package/node/lib/platform/index.js +13 -0
- package/dist/package/node/lib/platform/runtime.js +42 -0
- package/dist/package/node/lib/platform/shell-adapter.js +74 -0
- package/dist/package/node/lib/platform/surface-windowing.js +16 -0
- package/dist/package/node/lib/platform/surface.js +27 -0
- package/dist/package/node/lib/platform/use-surface-windowing.js +6 -0
- package/dist/package/node/lib/platform/window-manager.js +82 -0
- package/dist/package/node/lib/project-context.js +42 -0
- package/dist/package/node/lib/project.js +8 -0
- package/dist/package/node/lib/recent-games.js +50 -0
- package/dist/package/node/lib/repair-builtin-menus.js +18 -0
- package/dist/package/node/lib/reply-language.js +11 -0
- package/dist/package/node/lib/resilient-polling.js +16 -0
- package/dist/package/node/lib/session-time.js +40 -0
- package/dist/package/node/lib/shell-live-data.js +66 -0
- package/dist/package/node/lib/sse.js +42 -0
- package/dist/package/node/lib/storageKeys.js +89 -0
- package/dist/package/node/lib/surface-store.js +62 -0
- package/dist/package/node/lib/surface.js +225 -0
- package/dist/package/node/lib/surfaceAnchors.js +76 -0
- package/dist/package/node/lib/surfaceKeepAliveLayout.js +12 -0
- package/dist/package/node/lib/telemetry-test-prelude.js +14 -0
- package/dist/package/node/lib/text-edit-actions.js +184 -0
- package/dist/package/node/lib/trace.js +273 -0
- package/dist/package/node/lib/trustedOrigins.js +36 -0
- package/dist/package/node/lib/ui-action-highlight.js +93 -0
- package/dist/package/node/lib/ui-bridge.js +224 -0
- package/dist/package/node/lib/ui-screenshot.js +155 -0
- package/dist/package/node/lib/ui-trajectory.js +99 -0
- package/dist/package/node/lib/use-bus-snapshot.js +13 -0
- package/dist/package/node/lib/use-extension-manifest.js +67 -0
- package/dist/package/node/lib/useConfirmToast.js +120 -0
- package/dist/package/node/lib/utils.js +5 -0
- package/dist/package/node/lib/vag-action-bridge.js +130 -0
- package/dist/package/node/main.js +157 -0
- package/dist/package/node/store-parts/domain-clients.js +17 -0
- package/dist/package/node/store-parts/observability.js +35 -0
- package/dist/package/node/store-parts/persistence.js +245 -0
- package/dist/package/node/store-parts/session-client.js +17 -0
- package/dist/package/node/store-parts/session-pick.js +21 -0
- package/dist/package/node/store-parts/shell.js +37 -0
- package/dist/package/node/store.js +890 -0
- package/dist/package/node/styles/foundation.tokens.json +2755 -0
- package/dist/package/node/styles/semantic.tokens.json +1524 -0
- package/dist/package/packages/design/styles/fx-bridge.css +25 -0
- package/dist/package/packages/design/styles/primitive.css +199 -0
- package/dist/package/packages/design/styles/semantic.css +262 -0
- package/dist/package/packages/design/theme.d.ts +15 -0
- package/dist/package/packages/design/theme.js +31 -0
- package/dist/package/packages/design/tokens.css +14 -0
- package/package.json +145 -0
|
@@ -0,0 +1,785 @@
|
|
|
1
|
+
// Unreal-Engine-style dock drag controller.
|
|
2
|
+
//
|
|
3
|
+
// Replaces dockview's native HTML5 tab drag (a floating chip + a single
|
|
4
|
+
// rectangular drop overlay, source panel stays put) with UE's model:
|
|
5
|
+
//
|
|
6
|
+
// 1. LIFT — on drag start the dragged panel is really removed from its grid
|
|
7
|
+
// group (moved into a hidden floating group), so its former siblings
|
|
8
|
+
// REFLOW immediately, exactly like UE. Because the move stays inside the
|
|
9
|
+
// same dockview instance, dockview re-parents the panel's DOM instead of
|
|
10
|
+
// re-mounting it: React state and live iframes/canvases are preserved (no
|
|
11
|
+
// reload flicker).
|
|
12
|
+
// 2. AIM — a body-level overlay (overlay.ts) paints a five-button cross over
|
|
13
|
+
// the group under the cursor plus four dock-to-region buttons at the
|
|
14
|
+
// region edges, and a translucent slab previewing the landing area. Zone
|
|
15
|
+
// selection is discrete (which BUTTON the cursor is over), like UE.
|
|
16
|
+
// 3. DROP — the panel is docked via `moveTo` (same instance) or re-created via
|
|
17
|
+
// `addPanel` (cross instance), honouring the chosen position. ESC or a drop
|
|
18
|
+
// with no active button restores the panel to where it was lifted from.
|
|
19
|
+
//
|
|
20
|
+
// Installed per DockRegion from `onReady` (like installEdgeDrawer); returns a
|
|
21
|
+
// disposer. A single module-level session guards against concurrent drags, and
|
|
22
|
+
// the shared overlay + `getDockRegions()` registry let a drag that begins in one
|
|
23
|
+
// region land in any other (DockShell / AuxBar / ChatDock).
|
|
24
|
+
import { installThresholdPointerDragSession } from '@forgeax/app-shell/react';
|
|
25
|
+
import { getUeOverlay, } from './overlay';
|
|
26
|
+
import { registerGlobalKeydownHandler } from '../../../lib/global-shortcuts';
|
|
27
|
+
import { directorLayout, hitDirector, previewRect, stripInsertion, toGridDirection, unionRect, } from './geometry';
|
|
28
|
+
import { getDockRegions } from '../dockviewRegistry';
|
|
29
|
+
import { compactEmptyDockGroups, relayoutDockContainer, } from '../compact-empty-dock-groups';
|
|
30
|
+
const DRAG_THRESHOLD = 5;
|
|
31
|
+
const OUTER_DRAG_CLASS = 'fx-ue-dragging';
|
|
32
|
+
/** Added while the CHAT panel is being dragged: collapses its fixed shell column
|
|
33
|
+
* (see DockShell.css) so the layout reflows like lifting any grid panel (UE). */
|
|
34
|
+
const CHAT_DRAG_CLASS = 'fx-ue-dragging-chat';
|
|
35
|
+
let session = null;
|
|
36
|
+
let armedPointerDrag = null;
|
|
37
|
+
/** True while a UE drag is in flight — DockRegion uses this to suppress
|
|
38
|
+
* dockview's own drop overlay (`onWillShowOverlay`) so the two never stack. */
|
|
39
|
+
export function isUeDragging() {
|
|
40
|
+
return session !== null;
|
|
41
|
+
}
|
|
42
|
+
function regionEntries() {
|
|
43
|
+
const out = [];
|
|
44
|
+
for (const e of getDockRegions()) {
|
|
45
|
+
if (!(e.wrapEl instanceof HTMLElement))
|
|
46
|
+
continue;
|
|
47
|
+
out.push({ region: e.region, api: e.api, wrapEl: e.wrapEl });
|
|
48
|
+
}
|
|
49
|
+
return out;
|
|
50
|
+
}
|
|
51
|
+
function rectOf(el) {
|
|
52
|
+
if (!el)
|
|
53
|
+
return null;
|
|
54
|
+
const r = el.getBoundingClientRect();
|
|
55
|
+
if (r.width <= 0 || r.height <= 0)
|
|
56
|
+
return null;
|
|
57
|
+
return { x: r.left, y: r.top, width: r.width, height: r.height };
|
|
58
|
+
}
|
|
59
|
+
/** UE-style LIVE preview: rather than hiding the lifted panel, show its REAL DOM
|
|
60
|
+
* over the predicted landing rect (translucent, non-interactive). Because the
|
|
61
|
+
* lift only re-parents the panel into a floating group, this shows the panel's
|
|
62
|
+
* actual render — with NO grid relayout (the layout only changes on drop).
|
|
63
|
+
*
|
|
64
|
+
* We park the lifted carrier in the BODY-LEVEL overlay host so it clears every
|
|
65
|
+
* in-app stacking layer — critically the viewport keep-alive surface (fixed,
|
|
66
|
+
* z 40) that otherwise occludes an in-instance float — and so a single preview
|
|
67
|
+
* works across all dockview instances. Positioned in viewport coordinates
|
|
68
|
+
* (the host is fixed inset:0). Hidden when there's no target. */
|
|
69
|
+
function placeLiftedPreview(rect) {
|
|
70
|
+
const s = session;
|
|
71
|
+
const el = s?.liftedGroupEl;
|
|
72
|
+
if (!s || !el)
|
|
73
|
+
return;
|
|
74
|
+
if (!rect) {
|
|
75
|
+
el.classList.add('fx-ue-lifted--hidden');
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
if (!s.parkedParent) {
|
|
79
|
+
s.parkedParent = el.parentNode;
|
|
80
|
+
s.parkedNext = el.nextSibling;
|
|
81
|
+
getUeOverlay().livePreviewHost().appendChild(el);
|
|
82
|
+
}
|
|
83
|
+
el.classList.remove('fx-ue-lifted--hidden');
|
|
84
|
+
s.styledForPreview = true;
|
|
85
|
+
const st = el.style;
|
|
86
|
+
st.position = 'fixed';
|
|
87
|
+
st.left = `${rect.x}px`;
|
|
88
|
+
st.top = `${rect.y}px`;
|
|
89
|
+
st.right = 'auto';
|
|
90
|
+
st.bottom = 'auto';
|
|
91
|
+
st.width = `${rect.width}px`;
|
|
92
|
+
st.height = `${rect.height}px`;
|
|
93
|
+
}
|
|
94
|
+
/** Return the lifted carrier to its original DOM slot so dockview's own DOM
|
|
95
|
+
* operations (moveTo / removeGroup) run against the tree it expects. */
|
|
96
|
+
function restoreLiftedDom(s) {
|
|
97
|
+
const el = s.liftedGroupEl;
|
|
98
|
+
if (!el || !s.parkedParent)
|
|
99
|
+
return;
|
|
100
|
+
try {
|
|
101
|
+
s.parkedParent.insertBefore(el, s.parkedNext);
|
|
102
|
+
}
|
|
103
|
+
catch { /* noop */ }
|
|
104
|
+
s.parkedParent = null;
|
|
105
|
+
s.parkedNext = null;
|
|
106
|
+
}
|
|
107
|
+
function outerToDirection(pos) {
|
|
108
|
+
switch (pos) {
|
|
109
|
+
case 'top': return 'above';
|
|
110
|
+
case 'bottom': return 'below';
|
|
111
|
+
case 'left': return 'left';
|
|
112
|
+
case 'right': return 'right';
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
/** Find a group by id in an api (post-lift the origin group may be gone). */
|
|
116
|
+
function findGroup(api, groupId) {
|
|
117
|
+
return api.groups.find((g) => g.id === groupId) ?? null;
|
|
118
|
+
}
|
|
119
|
+
function firstGridGroup(api) {
|
|
120
|
+
return api.groups.find((g) => g.api.location.type === 'grid') ?? null;
|
|
121
|
+
}
|
|
122
|
+
// ── Session lifecycle ───────────────────────────────────────────────────────
|
|
123
|
+
function beginDrag(sourceApi, panel, ctx) {
|
|
124
|
+
const origin = {
|
|
125
|
+
api: sourceApi,
|
|
126
|
+
groupId: panel.group.id,
|
|
127
|
+
index: Math.max(0, panel.group.panels.indexOf(panel)),
|
|
128
|
+
component: panel.view?.contentComponent ?? panel.id,
|
|
129
|
+
title: ctx.titleFor(panel.id) ?? panel.title,
|
|
130
|
+
params: panel.params,
|
|
131
|
+
};
|
|
132
|
+
document.documentElement.classList.add(OUTER_DRAG_CLASS);
|
|
133
|
+
// Chat lives in a fixed shell column (ChatDock), not the grid — so lifting it
|
|
134
|
+
// does NOT reflow anything by itself. Collapse the column for the duration of
|
|
135
|
+
// the drag so it reflows away UE-style; endSession removes the marker.
|
|
136
|
+
if (panel.id === 'chat')
|
|
137
|
+
document.documentElement.classList.add(CHAT_DRAG_CLASS);
|
|
138
|
+
// Dragging a footer/edge panel: collapse its drawer flyout first, so the panel
|
|
139
|
+
// tears off from a tidy strip (not a half-open drawer).
|
|
140
|
+
if (panel.group.api.location.type === 'edge') {
|
|
141
|
+
try {
|
|
142
|
+
window.dispatchEvent(new CustomEvent('forgeax:edge-drawer', { detail: { action: 'close' } }));
|
|
143
|
+
}
|
|
144
|
+
catch { /* noop */ }
|
|
145
|
+
}
|
|
146
|
+
// LIFT: move the panel into a floating group so the grid reflows. Same-instance
|
|
147
|
+
// move → DOM re-parent (state preserved: live iframes/canvases survive). The
|
|
148
|
+
// floating CARRIER (its resize-container) starts hidden — no default-position
|
|
149
|
+
// flash — then updateDrag repositions it over the predicted landing rect as a
|
|
150
|
+
// live, translucent preview (or keeps it hidden when there's no target).
|
|
151
|
+
let liftedGroupEl = null;
|
|
152
|
+
try {
|
|
153
|
+
sourceApi.addFloatingGroup(panel);
|
|
154
|
+
const fg = sourceApi.groups.find((g) => g.api.location.type === 'floating' && g.panels.some((pp) => pp.id === panel.id));
|
|
155
|
+
const el = fg?.element ?? panel.group.element ?? null;
|
|
156
|
+
liftedGroupEl = el?.closest('.dv-resize-container') ?? el;
|
|
157
|
+
liftedGroupEl?.classList.add('fx-ue-lifted', 'fx-ue-lifted--hidden');
|
|
158
|
+
}
|
|
159
|
+
catch { /* lift failed — fall back to a non-reflowing drag (panel stays) */ }
|
|
160
|
+
session = {
|
|
161
|
+
sourceApi,
|
|
162
|
+
sourceRegion: ctx.region,
|
|
163
|
+
panel,
|
|
164
|
+
panelId: panel.id,
|
|
165
|
+
ghostTitle: origin.title ?? panel.id,
|
|
166
|
+
origin,
|
|
167
|
+
liftedGroupEl,
|
|
168
|
+
parkedParent: null,
|
|
169
|
+
parkedNext: null,
|
|
170
|
+
styledForPreview: false,
|
|
171
|
+
ctx,
|
|
172
|
+
lastPoint: { x: 0, y: 0 },
|
|
173
|
+
target: null,
|
|
174
|
+
cleanups: [],
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
/** Resolve the dockview grid group under the cursor from live geometry. During a
|
|
178
|
+
* drag, panel content can be returned by elementFromPoint without a
|
|
179
|
+
* `.dv-groupview` ancestor (notably after the lifted carrier is re-parented),
|
|
180
|
+
* so DOM ancestry is not a reliable group boundary. The group rectangles are
|
|
181
|
+
* dockview's layout truth and also handle transparent viewport surfaces. */
|
|
182
|
+
function groupFromPoint(p, isChat) {
|
|
183
|
+
const el = document.elementFromPoint(p.x, p.y);
|
|
184
|
+
const domOnTabs = !!(el && el.closest('.dv-tabs-and-actions-container'));
|
|
185
|
+
let best = null;
|
|
186
|
+
let bestArea = Infinity;
|
|
187
|
+
for (const entry of regionEntries()) {
|
|
188
|
+
if (entry.region === 'ChatDock' && !isChat)
|
|
189
|
+
continue;
|
|
190
|
+
for (const g of entry.api.groups) {
|
|
191
|
+
if (g.api.location.type !== 'grid')
|
|
192
|
+
continue;
|
|
193
|
+
const groupRect = rectOf(g.element);
|
|
194
|
+
if (!groupRect
|
|
195
|
+
|| p.x < groupRect.x || p.x > groupRect.x + groupRect.width
|
|
196
|
+
|| p.y < groupRect.y || p.y > groupRect.y + groupRect.height)
|
|
197
|
+
continue;
|
|
198
|
+
const contentEl = g.element.querySelector('.dv-content-container');
|
|
199
|
+
const contentRect = (contentEl && rectOf(contentEl)) || groupRect;
|
|
200
|
+
const tabsRect = rectOf(g.element.querySelector('.dv-tabs-and-actions-container'));
|
|
201
|
+
const onTabs = domOnTabs || !!(tabsRect
|
|
202
|
+
&& p.x >= tabsRect.x && p.x <= tabsRect.x + tabsRect.width
|
|
203
|
+
&& p.y >= tabsRect.y && p.y <= tabsRect.y + tabsRect.height);
|
|
204
|
+
const area = groupRect.width * groupRect.height;
|
|
205
|
+
if (area < bestArea) {
|
|
206
|
+
bestArea = area;
|
|
207
|
+
best = { entry, group: g, groupRect, contentRect, onTabs };
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
return best;
|
|
212
|
+
}
|
|
213
|
+
// ── Tab strips (grid headers + edge/footer drawers) ─────────────────────────
|
|
214
|
+
// A strip drop is a TAB drop: it has a slot, not a direction. Both the edge
|
|
215
|
+
// strips (left / right / footer) and a grid group's own tab header resolve to
|
|
216
|
+
// the same StripHit, so both preview the landing tab and reorder live.
|
|
217
|
+
const EDGE_SIDES = ['bottom', 'left', 'right', 'top'];
|
|
218
|
+
/** Arm a strip target just before the cursor reaches it. */
|
|
219
|
+
const STRIP_SLACK = 12;
|
|
220
|
+
/** Stand-in band along a region edge for a HIDDEN (empty) edge strip, so the
|
|
221
|
+
* last tab dragged out of a strip can always be dropped back in. */
|
|
222
|
+
const EMPTY_EDGE_BAND = 18;
|
|
223
|
+
function pointNearRect(p, r, slack) {
|
|
224
|
+
return p.x >= r.x - slack && p.x <= r.x + r.width + slack
|
|
225
|
+
&& p.y >= r.y - slack && p.y <= r.y + r.height + slack;
|
|
226
|
+
}
|
|
227
|
+
/** Live `.dv-tab` elements of a strip, in DOM order. Our ghost slot carries its
|
|
228
|
+
* own class, so it is never mistaken for a real tab. */
|
|
229
|
+
function tabElements(tabsEl) {
|
|
230
|
+
return Array.from(tabsEl.querySelectorAll(':scope > .dv-tab'));
|
|
231
|
+
}
|
|
232
|
+
function stripHit(entry, group, host, rect, axis, p, side) {
|
|
233
|
+
const tabsEl = host?.querySelector('.dv-tabs-container') ?? null;
|
|
234
|
+
const tabs = tabsEl ? tabElements(tabsEl).map(rectOf).filter((r) => r !== null) : [];
|
|
235
|
+
return {
|
|
236
|
+
region: entry.region,
|
|
237
|
+
api: entry.api,
|
|
238
|
+
group,
|
|
239
|
+
tabsEl,
|
|
240
|
+
axis,
|
|
241
|
+
rect,
|
|
242
|
+
insertion: stripInsertion(tabs, rect, p, axis),
|
|
243
|
+
side,
|
|
244
|
+
};
|
|
245
|
+
}
|
|
246
|
+
/** Resolve the region + group that owns a given edge (footer / side) drawer. */
|
|
247
|
+
function resolveEdge(side) {
|
|
248
|
+
for (const entry of regionEntries()) {
|
|
249
|
+
const eg = entry.api.getEdgeGroup?.(side);
|
|
250
|
+
if (!eg)
|
|
251
|
+
continue;
|
|
252
|
+
const group = entry.api.groups.find((g) => g.api.id === eg.id);
|
|
253
|
+
if (group)
|
|
254
|
+
return { entry, group };
|
|
255
|
+
}
|
|
256
|
+
return null;
|
|
257
|
+
}
|
|
258
|
+
/** The element carrying an edge group's visible tabs. The BOTTOM strip is
|
|
259
|
+
* relocated into the StatusBar footer host, so its collapsed sliver in the
|
|
260
|
+
* grid is useless as a target; side strips stay in place. */
|
|
261
|
+
function edgeStripHost(side, group) {
|
|
262
|
+
if (side === 'bottom')
|
|
263
|
+
return document.querySelector('[data-fx-dock-bottom-host]');
|
|
264
|
+
return group.element.classList.contains('fx-edge-empty') ? null : group.element;
|
|
265
|
+
}
|
|
266
|
+
/** A strip's real footprint. The footer strip is a StatusBar slot its tabs can
|
|
267
|
+
* OVERFLOW, so neither the slot nor the tabs alone bound it: take the whole
|
|
268
|
+
* status row, which is what the user reads as "the footer strip" — a drop past
|
|
269
|
+
* the last tab then appends instead of missing the target. */
|
|
270
|
+
function stripBounds(host) {
|
|
271
|
+
const parts = [
|
|
272
|
+
rectOf(host),
|
|
273
|
+
rectOf(host.querySelector('.dv-tabs-and-actions-container')),
|
|
274
|
+
rectOf(host.closest('.global-status-bar')),
|
|
275
|
+
].filter((r) => r !== null);
|
|
276
|
+
return parts.length > 0 ? parts.reduce(unionRect) : null;
|
|
277
|
+
}
|
|
278
|
+
function edgeBand(wrap, side) {
|
|
279
|
+
const t = EMPTY_EDGE_BAND;
|
|
280
|
+
switch (side) {
|
|
281
|
+
case 'left': return { x: wrap.x, y: wrap.y, width: t, height: wrap.height };
|
|
282
|
+
case 'right': return { x: wrap.x + wrap.width - t, y: wrap.y, width: t, height: wrap.height };
|
|
283
|
+
case 'top': return { x: wrap.x, y: wrap.y, width: wrap.width, height: t };
|
|
284
|
+
case 'bottom': return { x: wrap.x, y: wrap.y + wrap.height - t, width: wrap.width, height: t };
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
/** Edge/footer strip under the cursor, with the slot the drop would take. */
|
|
288
|
+
function edgeStripHit(p) {
|
|
289
|
+
for (const side of EDGE_SIDES) {
|
|
290
|
+
const found = resolveEdge(side);
|
|
291
|
+
if (!found)
|
|
292
|
+
continue;
|
|
293
|
+
const { entry, group } = found;
|
|
294
|
+
const host = edgeStripHost(side, group);
|
|
295
|
+
const hostRect = host ? stripBounds(host) : null;
|
|
296
|
+
const wrapRect = rectOf(entry.wrapEl);
|
|
297
|
+
const rect = hostRect ?? (wrapRect ? edgeBand(wrapRect, side) : null);
|
|
298
|
+
// Arm a real strip slightly early; the stand-in band gets no slack — it
|
|
299
|
+
// already reaches into the grid, and widening it would swallow the tab
|
|
300
|
+
// header of the group sitting against that edge.
|
|
301
|
+
if (!rect || !pointNearRect(p, rect, hostRect ? STRIP_SLACK : 0))
|
|
302
|
+
continue;
|
|
303
|
+
const axis = side === 'left' || side === 'right' ? 'y' : 'x';
|
|
304
|
+
return stripHit(entry, group, hostRect ? host : null, rect, axis, p, side);
|
|
305
|
+
}
|
|
306
|
+
return null;
|
|
307
|
+
}
|
|
308
|
+
/** A grid group's own tab header, so merging as a tab picks a slot too. */
|
|
309
|
+
function gridStripHit(hovered, p) {
|
|
310
|
+
const host = hovered.group.element.querySelector(':scope > .dv-tabs-and-actions-container');
|
|
311
|
+
const rect = host ? rectOf(host) : null;
|
|
312
|
+
if (!host || !rect)
|
|
313
|
+
return null;
|
|
314
|
+
return stripHit(hovered.entry, hovered.group, host, rect, 'x', p);
|
|
315
|
+
}
|
|
316
|
+
// ── Ghost tab slot ──────────────────────────────────────────────────────────
|
|
317
|
+
// The landing hint for a strip drop is a real element inserted INTO the strip:
|
|
318
|
+
// the neighbouring tabs reflow around it, so dragging along the strip reorders
|
|
319
|
+
// continuously (UE) instead of just appending on drop. It is pointer-events
|
|
320
|
+
// none, so hit-testing (elementFromPoint) and the edge drawer never see it.
|
|
321
|
+
let slotEl = null;
|
|
322
|
+
function syncTabSlot(hit) {
|
|
323
|
+
const s = session;
|
|
324
|
+
if (!s || !hit || !hit.tabsEl) {
|
|
325
|
+
removeTabSlot();
|
|
326
|
+
return;
|
|
327
|
+
}
|
|
328
|
+
if (!slotEl) {
|
|
329
|
+
slotEl = document.createElement('div');
|
|
330
|
+
slotEl.className = 'fx-ue-tab-slot';
|
|
331
|
+
}
|
|
332
|
+
const el = slotEl;
|
|
333
|
+
el.textContent = s.ghostTitle;
|
|
334
|
+
el.dataset.axis = hit.axis;
|
|
335
|
+
const size = hit.axis === 'x' ? hit.insertion.slot.width : hit.insertion.slot.height;
|
|
336
|
+
el.style.setProperty('--fx-ue-slot-size', `${size}px`);
|
|
337
|
+
const ref = tabElements(hit.tabsEl)[hit.insertion.index] ?? null;
|
|
338
|
+
// Re-insert only on a real slot change — an insertBefore every pointermove
|
|
339
|
+
// would restart the CSS transition and flicker.
|
|
340
|
+
if (el.parentElement !== hit.tabsEl || el.nextElementSibling !== ref) {
|
|
341
|
+
hit.tabsEl.insertBefore(el, ref);
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
function removeTabSlot() {
|
|
345
|
+
try {
|
|
346
|
+
slotEl?.remove();
|
|
347
|
+
}
|
|
348
|
+
catch { /* noop */ }
|
|
349
|
+
}
|
|
350
|
+
function updateDrag(p) {
|
|
351
|
+
if (!session)
|
|
352
|
+
return;
|
|
353
|
+
session.lastPoint = p;
|
|
354
|
+
const isChat = session.panelId === 'chat';
|
|
355
|
+
// Edge/footer strips win over the grid director: they only overlap the grid
|
|
356
|
+
// by the arming slack, and their drop is a tab slot, not a split.
|
|
357
|
+
const edge = edgeStripHit(p);
|
|
358
|
+
let active = null;
|
|
359
|
+
let preview = null;
|
|
360
|
+
let previewKind = 'slab';
|
|
361
|
+
let target = null;
|
|
362
|
+
let strip = edge;
|
|
363
|
+
const hovered = edge ? null : groupFromPoint(p, isChat);
|
|
364
|
+
const director = hovered ? directorLayout(hovered.contentRect) : null;
|
|
365
|
+
if (edge) {
|
|
366
|
+
// Dock into the edge/footer strip at the hovered slot. The director stays
|
|
367
|
+
// out of it: an edge drop has no direction, only an order. An empty edge
|
|
368
|
+
// has no strip to open a slot in, so its band is filled instead of framed.
|
|
369
|
+
preview = edge.rect;
|
|
370
|
+
previewKind = edge.tabsEl ? 'strip' : 'slab';
|
|
371
|
+
target = {
|
|
372
|
+
region: edge.region,
|
|
373
|
+
api: edge.api,
|
|
374
|
+
active: null,
|
|
375
|
+
group: edge.group,
|
|
376
|
+
mode: 'edge',
|
|
377
|
+
edgeSide: edge.side,
|
|
378
|
+
index: edge.insertion.index,
|
|
379
|
+
};
|
|
380
|
+
}
|
|
381
|
+
else if (hovered && hovered.onTabs) {
|
|
382
|
+
// Over a grid group's tab header → merge as a tab at the hovered slot.
|
|
383
|
+
strip = gridStripHit(hovered, p);
|
|
384
|
+
if (strip) {
|
|
385
|
+
preview = strip.rect;
|
|
386
|
+
previewKind = 'strip';
|
|
387
|
+
target = {
|
|
388
|
+
region: strip.region,
|
|
389
|
+
api: strip.api,
|
|
390
|
+
active: null,
|
|
391
|
+
group: strip.group,
|
|
392
|
+
mode: 'tab',
|
|
393
|
+
index: strip.insertion.index,
|
|
394
|
+
};
|
|
395
|
+
}
|
|
396
|
+
}
|
|
397
|
+
else if (hovered && director) {
|
|
398
|
+
// The director's center rectangle + four trapezoids pick the drop: center →
|
|
399
|
+
// pop out into an independent window, trapezoid → directional split. Only a
|
|
400
|
+
// split shows a landing preview (slab + live render).
|
|
401
|
+
const pos = hitDirector(director, p);
|
|
402
|
+
if (pos) {
|
|
403
|
+
active = { kind: 'group', pos };
|
|
404
|
+
const mode = pos === 'center' ? 'pop' : 'split';
|
|
405
|
+
preview = mode === 'split' ? previewRect(hovered.contentRect, pos) : null;
|
|
406
|
+
target = { region: hovered.entry.region, api: hovered.entry.api, active, group: hovered.group, mode };
|
|
407
|
+
}
|
|
408
|
+
}
|
|
409
|
+
session.target = target;
|
|
410
|
+
// Reflow the target strip around the incoming tab so the drop is previewed
|
|
411
|
+
// where it will actually land — and reorders as the cursor slides along.
|
|
412
|
+
syncTabSlot(strip);
|
|
413
|
+
// Float the lifted panel's real DOM over the predicted rect so the user
|
|
414
|
+
// previews the actual render, UE-style. Only for a directional SPLIT — pop and
|
|
415
|
+
// strip drops preview through the director / ghost slot instead. Body-level
|
|
416
|
+
// host → works over any group in any instance, above the keep-alive surface.
|
|
417
|
+
placeLiftedPreview(target?.mode === 'split' ? preview : null);
|
|
418
|
+
getUeOverlay().update({
|
|
419
|
+
pointer: p,
|
|
420
|
+
director,
|
|
421
|
+
outer: null,
|
|
422
|
+
active,
|
|
423
|
+
preview,
|
|
424
|
+
previewKind,
|
|
425
|
+
ghostTitle: session.ghostTitle,
|
|
426
|
+
});
|
|
427
|
+
}
|
|
428
|
+
function commit() {
|
|
429
|
+
const s = session;
|
|
430
|
+
if (!s)
|
|
431
|
+
return;
|
|
432
|
+
const { panel, target, origin } = s;
|
|
433
|
+
// Put the carrier back where dockview expects it, and take the ghost slot out
|
|
434
|
+
// of the strip, before any moveTo/removeGroup runs against that DOM.
|
|
435
|
+
restoreLiftedDom(s);
|
|
436
|
+
removeTabSlot();
|
|
437
|
+
try {
|
|
438
|
+
if (target && target.mode === 'pop') {
|
|
439
|
+
// Pop out into a REAL independent window via the shell's existing tear-off
|
|
440
|
+
// (openPanelWindow). Restore the panel to its origin first so it's a normal
|
|
441
|
+
// dock panel the pop-out can detach + close; if no pop-out capability
|
|
442
|
+
// exists it simply stays docked (never lost).
|
|
443
|
+
restoreToOrigin(s);
|
|
444
|
+
s.ctx.popOut?.(s.panelId, s.lastPoint.x, s.lastPoint.y);
|
|
445
|
+
}
|
|
446
|
+
else if (target && target.mode === 'edge' && target.group && target.edgeSide) {
|
|
447
|
+
// Edge/footer dock: merge into the edge group at the previewed slot and
|
|
448
|
+
// re-collapse its drawer, mirroring the legacy onMoveToSide behaviour.
|
|
449
|
+
if (target.api === s.sourceApi) {
|
|
450
|
+
dockIntoEdge(panel, target.api, target.group, target.edgeSide, target.index);
|
|
451
|
+
}
|
|
452
|
+
else {
|
|
453
|
+
relocateCrossInstance(s, target.api, { referenceGroup: target.group, direction: 'within' });
|
|
454
|
+
try {
|
|
455
|
+
target.api.setEdgeGroupVisible?.(target.edgeSide, true);
|
|
456
|
+
}
|
|
457
|
+
catch { /* noop */ }
|
|
458
|
+
}
|
|
459
|
+
}
|
|
460
|
+
else if (target && target.mode === 'tab' && target.group) {
|
|
461
|
+
if (target.api === s.sourceApi) {
|
|
462
|
+
panel.api.moveTo({ group: target.group, position: 'center', index: target.index });
|
|
463
|
+
}
|
|
464
|
+
else {
|
|
465
|
+
relocateCrossInstance(s, target.api, { referenceGroup: target.group, direction: 'within' });
|
|
466
|
+
}
|
|
467
|
+
}
|
|
468
|
+
else if (target && target.active?.kind === 'group' && target.group) {
|
|
469
|
+
if (target.api === s.sourceApi) {
|
|
470
|
+
panel.api.moveTo({ group: target.group, position: target.active.pos });
|
|
471
|
+
}
|
|
472
|
+
else {
|
|
473
|
+
relocateCrossInstance(s, target.api, {
|
|
474
|
+
referenceGroup: target.group,
|
|
475
|
+
direction: toGridDirection(target.active.pos),
|
|
476
|
+
});
|
|
477
|
+
}
|
|
478
|
+
}
|
|
479
|
+
else if (target && target.active?.kind === 'outer') {
|
|
480
|
+
const dir = outerToDirection(target.active.pos);
|
|
481
|
+
if (target.api === s.sourceApi) {
|
|
482
|
+
const g = target.api.addGroup({ direction: dir });
|
|
483
|
+
panel.api.moveTo({ group: g, position: 'center' });
|
|
484
|
+
}
|
|
485
|
+
else {
|
|
486
|
+
relocateCrossInstance(s, target.api, { direction: dir });
|
|
487
|
+
}
|
|
488
|
+
}
|
|
489
|
+
else {
|
|
490
|
+
// No active button → snap back to where it was lifted from.
|
|
491
|
+
restoreToOrigin(s);
|
|
492
|
+
}
|
|
493
|
+
}
|
|
494
|
+
catch {
|
|
495
|
+
try {
|
|
496
|
+
restoreToOrigin(s);
|
|
497
|
+
}
|
|
498
|
+
catch { /* give up quietly */ }
|
|
499
|
+
}
|
|
500
|
+
// Persist the panel→region mapping so the layout store agrees with the DOM.
|
|
501
|
+
// A popped float stays owned by the source region. Use the SESSION's own
|
|
502
|
+
// persist fn (region-agnostic) rather than a module-global last-installed one,
|
|
503
|
+
// which went stale/null whenever a region (e.g. ChatDock) unmounted between
|
|
504
|
+
// drags — the "再次拖动 chat 不落位" class of bug.
|
|
505
|
+
void origin;
|
|
506
|
+
const persistRegion = target && target.mode !== 'pop' ? target.region : s.sourceRegion;
|
|
507
|
+
try {
|
|
508
|
+
s.ctx.moveTo(s.panelId, persistRegion);
|
|
509
|
+
}
|
|
510
|
+
catch { /* noop */ }
|
|
511
|
+
compactAfterUeDragCommit(s);
|
|
512
|
+
endSession();
|
|
513
|
+
}
|
|
514
|
+
/** UE lift/drop can leave zero-panel grid/floating shells that still occupy split
|
|
515
|
+
* space (Material editor: empty right column after moving Asset Properties).
|
|
516
|
+
* Drop targets miss those rects, so strip them before layout persistence. */
|
|
517
|
+
function compactAfterUeDragCommit(s) {
|
|
518
|
+
const apis = new Set([s.sourceApi]);
|
|
519
|
+
if (s.target?.api)
|
|
520
|
+
apis.add(s.target.api);
|
|
521
|
+
for (const api of apis) {
|
|
522
|
+
compactEmptyDockGroups(api);
|
|
523
|
+
}
|
|
524
|
+
requestAnimationFrame(() => {
|
|
525
|
+
for (const entry of regionEntries()) {
|
|
526
|
+
if (apis.has(entry.api))
|
|
527
|
+
relayoutDockContainer(entry.api, entry.wrapEl);
|
|
528
|
+
}
|
|
529
|
+
});
|
|
530
|
+
}
|
|
531
|
+
/** Dock a panel into an edge/footer drawer group, mirroring the legacy
|
|
532
|
+
* onMoveToSide path (DockRegion): make the side visible, merge the panel in at
|
|
533
|
+
* the previewed slot, then re-collapse the drawer. Cross-instance edge docks
|
|
534
|
+
* re-create the panel on the target first. */
|
|
535
|
+
function dockIntoEdge(panel, api, edgeGroup, side, index) {
|
|
536
|
+
try {
|
|
537
|
+
api.setEdgeGroupVisible?.(side, true);
|
|
538
|
+
}
|
|
539
|
+
catch { /* noop */ }
|
|
540
|
+
try {
|
|
541
|
+
edgeGroup.element.classList.remove('fx-edge-empty');
|
|
542
|
+
}
|
|
543
|
+
catch { /* noop */ }
|
|
544
|
+
panel.api.moveTo({ group: edgeGroup, position: 'center', index });
|
|
545
|
+
try {
|
|
546
|
+
edgeGroup.api.collapse?.();
|
|
547
|
+
}
|
|
548
|
+
catch { /* noop */ }
|
|
549
|
+
try {
|
|
550
|
+
panel.api.setActive();
|
|
551
|
+
}
|
|
552
|
+
catch { /* noop */ }
|
|
553
|
+
}
|
|
554
|
+
function restoreToOrigin(s) {
|
|
555
|
+
const { panel, origin } = s;
|
|
556
|
+
const g = findGroup(origin.api, origin.groupId) ?? firstGridGroup(origin.api);
|
|
557
|
+
if (g) {
|
|
558
|
+
panel.api.moveTo({ group: g, position: 'center', index: origin.index });
|
|
559
|
+
try {
|
|
560
|
+
panel.api.setActive();
|
|
561
|
+
}
|
|
562
|
+
catch { /* noop */ }
|
|
563
|
+
}
|
|
564
|
+
// If no grid group survives, the panel stays floating (un-hidden by endSession).
|
|
565
|
+
}
|
|
566
|
+
function relocateCrossInstance(s, targetApi, position) {
|
|
567
|
+
const { origin, panelId } = s;
|
|
568
|
+
// Remove from the source (currently the hidden floating carrier), then add a
|
|
569
|
+
// fresh panel on the target — a cross-instance move is a re-mount by nature.
|
|
570
|
+
try {
|
|
571
|
+
s.panel.api.close();
|
|
572
|
+
}
|
|
573
|
+
catch { /* already gone */ }
|
|
574
|
+
targetApi.addPanel({
|
|
575
|
+
id: panelId,
|
|
576
|
+
component: origin.component,
|
|
577
|
+
title: origin.title,
|
|
578
|
+
params: origin.params,
|
|
579
|
+
position,
|
|
580
|
+
});
|
|
581
|
+
}
|
|
582
|
+
/** After a chat drag the ChatDock column was collapsed with `display:none` (see
|
|
583
|
+
* CHAT_DRAG_CLASS), so dockview couldn't measure it while hidden. When chat
|
|
584
|
+
* lands back in the column (ESC / drop-to-origin) it reappears at a stale size —
|
|
585
|
+
* the classic "half height" — until dockview relayouts against the now-visible
|
|
586
|
+
* container. Force that once on the next frame (same remedy as the F1 re-open
|
|
587
|
+
* path). No-op when the column isn't visible (chat stayed in the centre grid). */
|
|
588
|
+
function relayoutChatDock() {
|
|
589
|
+
requestAnimationFrame(() => {
|
|
590
|
+
for (const e of regionEntries()) {
|
|
591
|
+
if (e.region !== 'ChatDock')
|
|
592
|
+
continue;
|
|
593
|
+
const w = e.wrapEl.clientWidth;
|
|
594
|
+
const h = e.wrapEl.clientHeight;
|
|
595
|
+
if (w > 0 && h > 0) {
|
|
596
|
+
try {
|
|
597
|
+
e.api.layout?.(w, h, true);
|
|
598
|
+
}
|
|
599
|
+
catch { /* noop */ }
|
|
600
|
+
}
|
|
601
|
+
}
|
|
602
|
+
});
|
|
603
|
+
}
|
|
604
|
+
function endSession() {
|
|
605
|
+
const s = session;
|
|
606
|
+
session = null;
|
|
607
|
+
document.documentElement.classList.remove(OUTER_DRAG_CLASS);
|
|
608
|
+
document.documentElement.classList.remove(CHAT_DRAG_CLASS);
|
|
609
|
+
if (s?.panelId === 'chat')
|
|
610
|
+
relayoutChatDock();
|
|
611
|
+
removeTabSlot();
|
|
612
|
+
if (s) {
|
|
613
|
+
try {
|
|
614
|
+
restoreLiftedDom(s);
|
|
615
|
+
}
|
|
616
|
+
catch { /* noop */ }
|
|
617
|
+
try {
|
|
618
|
+
s.liftedGroupEl?.classList.remove('fx-ue-lifted', 'fx-ue-lifted--hidden');
|
|
619
|
+
}
|
|
620
|
+
catch { /* noop */ }
|
|
621
|
+
// Clear ONLY the preview positioning we wrote — never dockview's own float
|
|
622
|
+
// bounds, which a popped-out window relies on to stay visible/placed.
|
|
623
|
+
const st = s.styledForPreview ? s.liftedGroupEl?.style : null;
|
|
624
|
+
if (st) {
|
|
625
|
+
st.position = '';
|
|
626
|
+
st.left = '';
|
|
627
|
+
st.top = '';
|
|
628
|
+
st.right = '';
|
|
629
|
+
st.bottom = '';
|
|
630
|
+
st.width = '';
|
|
631
|
+
st.height = '';
|
|
632
|
+
}
|
|
633
|
+
}
|
|
634
|
+
getUeOverlay().hide();
|
|
635
|
+
for (const c of s?.cleanups ?? []) {
|
|
636
|
+
try {
|
|
637
|
+
c();
|
|
638
|
+
}
|
|
639
|
+
catch { /* noop */ }
|
|
640
|
+
}
|
|
641
|
+
}
|
|
642
|
+
// ── Public install ──────────────────────────────────────────────────────────
|
|
643
|
+
/** Arm a pointer-based UE drag: track the threshold, then run beginDrag →
|
|
644
|
+
* updateDrag → commit. Shared by grid-tab and footer-tab sources. */
|
|
645
|
+
function armPointerDrag(api, panel, event, ctx) {
|
|
646
|
+
if (armedPointerDrag)
|
|
647
|
+
return;
|
|
648
|
+
const armed = {
|
|
649
|
+
sourceApi: api,
|
|
650
|
+
lifecycle: null,
|
|
651
|
+
settled: false,
|
|
652
|
+
};
|
|
653
|
+
armedPointerDrag = armed;
|
|
654
|
+
const lifecycle = installThresholdPointerDragSession({
|
|
655
|
+
target: window,
|
|
656
|
+
pointerId: event.pointerId,
|
|
657
|
+
startX: event.clientX,
|
|
658
|
+
startY: event.clientY,
|
|
659
|
+
threshold: DRAG_THRESHOLD,
|
|
660
|
+
begin: () => {
|
|
661
|
+
beginDrag(api, panel, ctx);
|
|
662
|
+
return { started: true };
|
|
663
|
+
},
|
|
664
|
+
move: (_active, pointer) => updateDrag({
|
|
665
|
+
x: pointer.clientX,
|
|
666
|
+
y: pointer.clientY,
|
|
667
|
+
}),
|
|
668
|
+
end: (_active, reason) => {
|
|
669
|
+
if (reason !== 'pointerup' && session)
|
|
670
|
+
session.target = null;
|
|
671
|
+
commit();
|
|
672
|
+
},
|
|
673
|
+
onSettled: () => {
|
|
674
|
+
armed.settled = true;
|
|
675
|
+
if (armedPointerDrag === armed)
|
|
676
|
+
armedPointerDrag = null;
|
|
677
|
+
},
|
|
678
|
+
registerCancel: (cancel) => registerGlobalKeydownHandler((ke) => {
|
|
679
|
+
if (ke.key !== 'Escape')
|
|
680
|
+
return false;
|
|
681
|
+
ke.preventDefault();
|
|
682
|
+
cancel();
|
|
683
|
+
return true;
|
|
684
|
+
}),
|
|
685
|
+
});
|
|
686
|
+
armed.lifecycle = lifecycle;
|
|
687
|
+
if (armed.settled)
|
|
688
|
+
lifecycle.dispose();
|
|
689
|
+
}
|
|
690
|
+
/** Resolve the panel behind a `.dv-tab` by its DOM order within the tabs
|
|
691
|
+
* container (dockview keeps tab order == panel order per group). */
|
|
692
|
+
function panelForTab(group, tabEl, tabsContainer) {
|
|
693
|
+
const tabs = tabsContainer ? Array.from(tabsContainer.querySelectorAll(':scope > .dv-tab')) : [];
|
|
694
|
+
const index = tabs.indexOf(tabEl);
|
|
695
|
+
return index >= 0
|
|
696
|
+
? group.panels[index]
|
|
697
|
+
: (group.panels.find((pp) => pp.api.group === group) ?? group.panels[0]);
|
|
698
|
+
}
|
|
699
|
+
export function installUeDockDrag(api, wrapEl, ctx) {
|
|
700
|
+
// Dockview's public API exposes richer panel implementations than this
|
|
701
|
+
// controller consumes. Narrow it once at the boundary to the structural
|
|
702
|
+
// drag contract used by both production Dockview and test doubles.
|
|
703
|
+
const dragApi = api;
|
|
704
|
+
// Dockview starts its native HTML5 drag as soon as the pointer crosses its
|
|
705
|
+
// threshold. Install this guard for the whole lifetime of the region, not
|
|
706
|
+
// only after our pointer controller has started, otherwise the native path
|
|
707
|
+
// can win the race and show Dockview's one-sided drop affordance instead of
|
|
708
|
+
// the UE director.
|
|
709
|
+
const preventNativeTabDrag = (e) => {
|
|
710
|
+
if (e.target?.closest('.dv-tab'))
|
|
711
|
+
e.preventDefault();
|
|
712
|
+
};
|
|
713
|
+
const pointerdown = (e) => {
|
|
714
|
+
if (session || armedPointerDrag)
|
|
715
|
+
return;
|
|
716
|
+
if (e.button !== 0)
|
|
717
|
+
return;
|
|
718
|
+
const target = e.target;
|
|
719
|
+
if (!target)
|
|
720
|
+
return;
|
|
721
|
+
// Only genuine tab drags — never the close (X) / pin / pop-out actions.
|
|
722
|
+
const tabEl = target.closest('.dv-tab');
|
|
723
|
+
if (!tabEl || !wrapEl.contains(tabEl))
|
|
724
|
+
return;
|
|
725
|
+
if (target.closest('.dv-default-tab-action, .fx-dock-popout, .fx-edge-pin'))
|
|
726
|
+
return;
|
|
727
|
+
const group = dragApi.groups.find((g) => g.element.contains(tabEl));
|
|
728
|
+
if (!group || group.api.location.type === 'floating')
|
|
729
|
+
return;
|
|
730
|
+
const panel = panelForTab(group, tabEl, tabEl.parentElement);
|
|
731
|
+
if (!panel)
|
|
732
|
+
return;
|
|
733
|
+
armPointerDrag(dragApi, panel, e, ctx);
|
|
734
|
+
};
|
|
735
|
+
// Footer SOURCE: the bottom strip's tabs are relocated OUT of the dockview shell
|
|
736
|
+
// into the footer host (see edgeDrawer), so they never reach `wrapEl`'s handler
|
|
737
|
+
// above. Only the region that owns the bottom edge (DockShell) installs this
|
|
738
|
+
// document-level catcher, mapping a footer tab back to its edge-group panel and
|
|
739
|
+
// starting the SAME UE drag — so footer → main dock uses the new behaviour.
|
|
740
|
+
const footerPointerDown = (e) => {
|
|
741
|
+
if (session || armedPointerDrag)
|
|
742
|
+
return;
|
|
743
|
+
if (e.button !== 0)
|
|
744
|
+
return;
|
|
745
|
+
const target = e.target;
|
|
746
|
+
const tabEl = target?.closest('.dv-tab');
|
|
747
|
+
if (!tabEl || !tabEl.closest('[data-fx-dock-bottom-host]'))
|
|
748
|
+
return;
|
|
749
|
+
if (target?.closest('.dv-default-tab-action, .fx-dock-popout, .fx-edge-pin'))
|
|
750
|
+
return;
|
|
751
|
+
const bottom = resolveEdge('bottom');
|
|
752
|
+
if (!bottom)
|
|
753
|
+
return;
|
|
754
|
+
const panel = panelForTab(bottom.group, tabEl, tabEl.closest('.dv-tabs-container'));
|
|
755
|
+
if (!panel)
|
|
756
|
+
return;
|
|
757
|
+
// A real drag re-parents the tab (leaving the strip), so edgeDrawer's own
|
|
758
|
+
// click handler finds no group and no-ops — no drawer toggle to suppress.
|
|
759
|
+
armPointerDrag(bottom.entry.api, panel, e, ctx);
|
|
760
|
+
};
|
|
761
|
+
const ownsFooter = ctx.region === 'DockShell';
|
|
762
|
+
if (ownsFooter)
|
|
763
|
+
document.addEventListener('pointerdown', footerPointerDown, true);
|
|
764
|
+
document.addEventListener('dragstart', preventNativeTabDrag, true);
|
|
765
|
+
wrapEl.addEventListener('pointerdown', pointerdown, true);
|
|
766
|
+
return () => {
|
|
767
|
+
wrapEl.removeEventListener('pointerdown', pointerdown, true);
|
|
768
|
+
if (ownsFooter)
|
|
769
|
+
document.removeEventListener('pointerdown', footerPointerDown, true);
|
|
770
|
+
document.removeEventListener('dragstart', preventNativeTabDrag, true);
|
|
771
|
+
if (armedPointerDrag?.sourceApi === dragApi) {
|
|
772
|
+
armedPointerDrag.lifecycle?.dispose();
|
|
773
|
+
if (armedPointerDrag?.sourceApi === dragApi)
|
|
774
|
+
armedPointerDrag = null;
|
|
775
|
+
}
|
|
776
|
+
// If this region is unmounting mid-drag, tear the session down safely.
|
|
777
|
+
if (session && session.sourceApi === dragApi) {
|
|
778
|
+
try {
|
|
779
|
+
restoreToOrigin(session);
|
|
780
|
+
}
|
|
781
|
+
catch { /* noop */ }
|
|
782
|
+
endSession();
|
|
783
|
+
}
|
|
784
|
+
};
|
|
785
|
+
}
|