@tutti-os/workbench-surface 0.0.17 → 0.0.19

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.
@@ -122,6 +122,15 @@ var workbenchHostEn = {
122
122
  minimize: "Minimize"
123
123
  },
124
124
  closeWindow: "Close {{title}}",
125
+ dockContextMenu: {
126
+ fullscreen: "Full Screen",
127
+ hide: "Minimize",
128
+ keepInDock: "Keep in Dock",
129
+ open: "Open",
130
+ quit: "Quit",
131
+ removeFromDock: "Remove from Dock",
132
+ showAllWindows: "Show All Similar Windows"
133
+ },
125
134
  dockLabel: "Workbench dock",
126
135
  launch: "Open {{title}}",
127
136
  minimizedWindows: "Minimized windows",
@@ -142,6 +151,15 @@ var workbenchHostZhCN = {
142
151
  minimize: "\u6700\u5C0F\u5316"
143
152
  },
144
153
  closeWindow: "\u5173\u95ED {{title}}",
154
+ dockContextMenu: {
155
+ fullscreen: "\u5168\u5C4F",
156
+ hide: "\u6700\u5C0F\u5316",
157
+ keepInDock: "\u5728\u7A0B\u5E8F\u575E\u4E2D\u4FDD\u7559",
158
+ open: "\u6253\u5F00",
159
+ quit: "\u9000\u51FA",
160
+ removeFromDock: "\u4ECE\u7A0B\u5E8F\u575E\u4E2D\u79FB\u9664",
161
+ showAllWindows: "\u663E\u793A\u6240\u6709\u540C\u7C7B\u7A97\u53E3"
162
+ },
145
163
  dockLabel: "\u5DE5\u4F5C\u53F0\u7A0B\u5E8F\u575E",
146
164
  launch: "\u6253\u5F00 {{title}}",
147
165
  minimizedWindows: "\u5DF2\u6700\u5C0F\u5316\u7A97\u53E3",
@@ -189,4 +207,4 @@ export {
189
207
  workbenchHostI18nResources,
190
208
  createWorkbenchHostI18nRuntime
191
209
  };
192
- //# sourceMappingURL=chunk-64XVF4I6.js.map
210
+ //# sourceMappingURL=chunk-B5MSA47V.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/react/workbenchWindowI18n.ts","../src/mission-control/workbenchMissionControlI18n.ts","../src/host/workbenchHostI18n.ts"],"sourcesContent":["import {\n createScopedLocaleObjectsI18nModuleManifest,\n createI18nRuntime,\n createScopedI18nRuntime,\n type I18nDictionary,\n type I18nRuntime\n} from \"@tutti-os/ui-i18n-runtime\";\n\ntype WorkbenchWindowChromeI18nLocale = \"en\" | \"zh-CN\";\nexport const workbenchWindowChromeI18nNamespace = \"workbenchWindowChrome\";\nexport const tuttiI18nModule = createScopedLocaleObjectsI18nModuleManifest({\n localeObjectByLocale: {\n en: \"workbenchWindowChromeEn\",\n \"zh-CN\": \"workbenchWindowChromeZhCN\"\n },\n name: \"workbench-window-chrome\",\n namespace: \"workbenchWindowChrome\",\n sourceRoot: \"packages/workbench/surface/src\"\n});\n\nconst workbenchWindowChromeEn = {\n enterFullscreen: \"Full Screen\",\n exitFullscreen: \"Exit Full Screen\"\n} as const satisfies I18nDictionary;\n\nconst workbenchWindowChromeZhCN = {\n enterFullscreen: \"全屏\",\n exitFullscreen: \"取消全屏\"\n} as const satisfies I18nDictionary;\n\nexport type WorkbenchWindowChromeI18nKey = keyof typeof workbenchWindowChromeEn;\n\nexport type WorkbenchWindowChromeI18nRuntime =\n I18nRuntime<WorkbenchWindowChromeI18nKey>;\n\nconst workbenchWindowChromeDefaults: Record<\n WorkbenchWindowChromeI18nLocale,\n I18nDictionary\n> = {\n en: workbenchWindowChromeEn,\n \"zh-CN\": workbenchWindowChromeZhCN\n};\n\nexport const workbenchWindowChromeI18nResources: Record<\n WorkbenchWindowChromeI18nLocale,\n I18nDictionary\n> = {\n en: {\n [workbenchWindowChromeI18nNamespace]: workbenchWindowChromeDefaults.en\n },\n \"zh-CN\": {\n [workbenchWindowChromeI18nNamespace]: workbenchWindowChromeDefaults[\"zh-CN\"]\n }\n};\n\nconst defaultWorkbenchWindowChromeI18n = createI18nRuntime({\n dictionaries: [workbenchWindowChromeI18nResources.en]\n});\n\nexport function createWorkbenchWindowChromeI18nRuntime(\n runtime: I18nRuntime<string> | undefined\n): WorkbenchWindowChromeI18nRuntime {\n return createScopedI18nRuntime<WorkbenchWindowChromeI18nKey>(\n runtime ?? defaultWorkbenchWindowChromeI18n,\n workbenchWindowChromeI18nNamespace\n );\n}\n","import {\n createScopedLocaleObjectsI18nModuleManifest,\n createI18nRuntime,\n createScopedI18nRuntime,\n type I18nDictionary,\n type I18nRuntime\n} from \"@tutti-os/ui-i18n-runtime\";\n\ntype WorkbenchMissionControlI18nLocale = \"en\" | \"zh-CN\";\n\nexport const workbenchMissionControlI18nNamespace = \"workbenchMissionControl\";\n\nexport const tuttiI18nModule = createScopedLocaleObjectsI18nModuleManifest({\n localeObjectByLocale: {\n en: \"workbenchMissionControlEn\",\n \"zh-CN\": \"workbenchMissionControlZhCN\"\n },\n name: \"workbench-mission-control\",\n namespace: \"workbenchMissionControl\",\n sourceRoot: \"packages/workbench/surface/src\"\n});\n\nconst workbenchMissionControlEn = {\n layoutSelectionHint: \"Select multiple windows to arrange\",\n noAvailableLayout: \"No layout fits the selected windows\",\n presets: {\n balanced: \"Balanced layout\",\n column: \"Vertical equal layout\",\n row: \"Horizontal equal layout\"\n }\n} as const satisfies I18nDictionary;\n\nconst workbenchMissionControlZhCN = {\n layoutSelectionHint: \"请选择多个你要整理布局的窗口\",\n noAvailableLayout: \"当前没有可用布局\",\n presets: {\n balanced: \"智能均衡布局\",\n column: \"垂直等分布局\",\n row: \"水平等分布局\"\n }\n} as const satisfies I18nDictionary;\n\nexport type WorkbenchMissionControlI18nKey =\n | \"layoutSelectionHint\"\n | \"noAvailableLayout\"\n | \"presets.balanced\"\n | \"presets.column\"\n | \"presets.row\";\n\nexport type WorkbenchMissionControlI18nRuntime =\n I18nRuntime<WorkbenchMissionControlI18nKey>;\n\nconst workbenchMissionControlDefaults: Record<\n WorkbenchMissionControlI18nLocale,\n I18nDictionary\n> = {\n en: workbenchMissionControlEn,\n \"zh-CN\": workbenchMissionControlZhCN\n};\n\nexport const workbenchMissionControlI18nResources: Record<\n WorkbenchMissionControlI18nLocale,\n I18nDictionary\n> = {\n en: {\n [workbenchMissionControlI18nNamespace]: workbenchMissionControlDefaults.en\n },\n \"zh-CN\": {\n [workbenchMissionControlI18nNamespace]:\n workbenchMissionControlDefaults[\"zh-CN\"]\n }\n};\n\nconst defaultWorkbenchMissionControlI18n = createI18nRuntime({\n dictionaries: [workbenchMissionControlI18nResources.en]\n});\n\nexport function createWorkbenchMissionControlI18nRuntime(\n runtime: I18nRuntime<string> | undefined\n): WorkbenchMissionControlI18nRuntime {\n return createScopedI18nRuntime<WorkbenchMissionControlI18nKey>(\n runtime ?? defaultWorkbenchMissionControlI18n,\n workbenchMissionControlI18nNamespace\n );\n}\n","import {\n createScopedLocaleObjectsI18nModuleManifest,\n createI18nRuntime,\n createScopedI18nRuntime,\n type I18nDictionary,\n type I18nRuntime\n} from \"@tutti-os/ui-i18n-runtime\";\n\ntype WorkbenchHostI18nLocale = \"en\" | \"zh-CN\";\nexport const workbenchHostI18nNamespace = \"workbenchHost\";\nexport const tuttiI18nModule = createScopedLocaleObjectsI18nModuleManifest({\n localeObjectByLocale: {\n en: \"workbenchHostEn\",\n \"zh-CN\": \"workbenchHostZhCN\"\n },\n name: \"workbench-host\",\n namespace: \"workbenchHost\",\n sourceRoot: \"packages/workbench/surface/src\"\n});\n\nconst workbenchHostEn = {\n actions: {\n close: \"Close\",\n minimize: \"Minimize\"\n },\n closeWindow: \"Close {{title}}\",\n dockContextMenu: {\n fullscreen: \"Full Screen\",\n hide: \"Minimize\",\n keepInDock: \"Keep in Dock\",\n open: \"Open\",\n quit: \"Quit\",\n removeFromDock: \"Remove from Dock\",\n showAllWindows: \"Show All Similar Windows\"\n },\n dockLabel: \"Workbench dock\",\n launch: \"Open {{title}}\",\n minimizedWindows: \"Minimized windows\",\n newWindow: \"New window\",\n scrollDockDown: \"Scroll dock down\",\n scrollDockLeft: \"Scroll dock left\",\n scrollDockRight: \"Scroll dock right\",\n scrollDockUp: \"Scroll dock up\",\n windowStatus: {\n active: \"Active\",\n minimized: \"Minimized\",\n open: \"Open\"\n }\n} as const satisfies I18nDictionary;\n\nconst workbenchHostZhCN = {\n actions: {\n close: \"关闭\",\n minimize: \"最小化\"\n },\n closeWindow: \"关闭 {{title}}\",\n dockContextMenu: {\n fullscreen: \"全屏\",\n hide: \"最小化\",\n keepInDock: \"在程序坞中保留\",\n open: \"打开\",\n quit: \"退出\",\n removeFromDock: \"从程序坞中移除\",\n showAllWindows: \"显示所有同类窗口\"\n },\n dockLabel: \"工作台程序坞\",\n launch: \"打开 {{title}}\",\n minimizedWindows: \"已最小化窗口\",\n newWindow: \"新建窗口\",\n scrollDockDown: \"向下滚动程序坞\",\n scrollDockLeft: \"向左滚动程序坞\",\n scrollDockRight: \"向右滚动程序坞\",\n scrollDockUp: \"向上滚动程序坞\",\n windowStatus: {\n active: \"当前窗口\",\n minimized: \"已最小化\",\n open: \"已打开\"\n }\n} as const satisfies I18nDictionary;\n\nexport type WorkbenchHostI18nKey =\n | \"actions.close\"\n | \"actions.minimize\"\n | \"closeWindow\"\n | \"dockContextMenu.fullscreen\"\n | \"dockContextMenu.hide\"\n | \"dockContextMenu.keepInDock\"\n | \"dockContextMenu.open\"\n | \"dockContextMenu.quit\"\n | \"dockContextMenu.removeFromDock\"\n | \"dockContextMenu.showAllWindows\"\n | \"dockLabel\"\n | \"launch\"\n | \"minimizedWindows\"\n | \"newWindow\"\n | \"scrollDockDown\"\n | \"scrollDockLeft\"\n | \"scrollDockRight\"\n | \"scrollDockUp\"\n | \"windowStatus.active\"\n | \"windowStatus.minimized\"\n | \"windowStatus.open\";\n\nexport type WorkbenchHostI18nRuntime = I18nRuntime<WorkbenchHostI18nKey>;\n\nconst workbenchHostDefaults: Record<WorkbenchHostI18nLocale, I18nDictionary> = {\n en: workbenchHostEn,\n \"zh-CN\": workbenchHostZhCN\n};\n\nexport const workbenchHostI18nResources = {\n en: {\n [workbenchHostI18nNamespace]: workbenchHostDefaults.en\n },\n \"zh-CN\": {\n [workbenchHostI18nNamespace]: workbenchHostDefaults[\"zh-CN\"]\n }\n} as const satisfies Record<WorkbenchHostI18nLocale, I18nDictionary>;\n\nconst defaultWorkbenchHostI18n = createI18nRuntime({\n dictionaries: [workbenchHostI18nResources.en]\n});\n\nexport function createWorkbenchHostI18nRuntime(\n runtime: I18nRuntime<string> | undefined\n): WorkbenchHostI18nRuntime {\n return createScopedI18nRuntime<WorkbenchHostI18nKey>(\n runtime ?? defaultWorkbenchHostI18n,\n workbenchHostI18nNamespace\n );\n}\n"],"mappings":"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","names":["createScopedLocaleObjectsI18nModuleManifest","createI18nRuntime","createScopedI18nRuntime","tuttiI18nModule","createScopedLocaleObjectsI18nModuleManifest","createI18nRuntime","createScopedI18nRuntime","tuttiI18nModule"]}
@@ -1,4 +1,4 @@
1
- export { W as WorkbenchHostI18nKey, a as WorkbenchHostI18nRuntime, b as WorkbenchWindowChromeI18nKey, c as WorkbenchWindowChromeI18nRuntime, d as createWorkbenchHostI18nRuntime, e as createWorkbenchWindowChromeI18nRuntime, w as workbenchHostI18nNamespace, f as workbenchHostI18nResources, g as workbenchWindowChromeI18nNamespace, h as workbenchWindowChromeI18nResources } from '../workbenchHostI18n-5xMPPBkf.js';
1
+ export { W as WorkbenchHostI18nKey, a as WorkbenchHostI18nRuntime, b as WorkbenchWindowChromeI18nKey, c as WorkbenchWindowChromeI18nRuntime, d as createWorkbenchHostI18nRuntime, e as createWorkbenchWindowChromeI18nRuntime, w as workbenchHostI18nNamespace, f as workbenchHostI18nResources, g as workbenchWindowChromeI18nNamespace, h as workbenchWindowChromeI18nResources } from '../workbenchHostI18n-YFXDkIA1.js';
2
2
  import { I18nRuntime, I18nDictionary } from '@tutti-os/ui-i18n-runtime';
3
3
 
4
4
  type WorkbenchMissionControlI18nLocale = "en" | "zh-CN";
@@ -8,7 +8,7 @@ import {
8
8
  workbenchMissionControlI18nResources,
9
9
  workbenchWindowChromeI18nNamespace,
10
10
  workbenchWindowChromeI18nResources
11
- } from "../chunk-64XVF4I6.js";
11
+ } from "../chunk-B5MSA47V.js";
12
12
  export {
13
13
  createWorkbenchHostI18nRuntime,
14
14
  createWorkbenchMissionControlI18nRuntime,
package/dist/index.d.ts CHANGED
@@ -2,8 +2,8 @@ import { WorkbenchFrame as WorkbenchFrame$1, WorkbenchSnapshotDisplayModeV1, Wor
2
2
  import * as react_jsx_runtime from 'react/jsx-runtime';
3
3
  import { HTMLAttributes, ReactNode } from 'react';
4
4
  import { I18nRuntime } from '@tutti-os/ui-i18n-runtime';
5
- import { c as WorkbenchWindowChromeI18nRuntime } from './workbenchHostI18n-5xMPPBkf.js';
6
- export { b as WorkbenchWindowChromeI18nKey, d as createWorkbenchHostI18nRuntime, e as createWorkbenchWindowChromeI18nRuntime, f as workbenchHostI18nResources, g as workbenchWindowChromeI18nNamespace, h as workbenchWindowChromeI18nResources } from './workbenchHostI18n-5xMPPBkf.js';
5
+ import { c as WorkbenchWindowChromeI18nRuntime } from './workbenchHostI18n-YFXDkIA1.js';
6
+ export { b as WorkbenchWindowChromeI18nKey, d as createWorkbenchHostI18nRuntime, e as createWorkbenchWindowChromeI18nRuntime, f as workbenchHostI18nResources, g as workbenchWindowChromeI18nNamespace, h as workbenchWindowChromeI18nResources } from './workbenchHostI18n-YFXDkIA1.js';
7
7
 
8
8
  interface WorkbenchSize {
9
9
  width: number;
@@ -209,6 +209,7 @@ interface WorkbenchSurfacePresentation {
209
209
  frameByNodeId: ReadonlyMap<string, WorkbenchFrame>;
210
210
  interaction?: WorkbenchSurfacePresentationInteraction | null;
211
211
  mode: "mission-control";
212
+ visibleNodeIds: ReadonlySet<string>;
212
213
  }
213
214
  interface WorkbenchSurfacePresentationInteraction {
214
215
  mode: "activate" | "layout";
@@ -230,9 +231,11 @@ interface WorkbenchDockContext<TData = unknown> {
230
231
  launchNodeFromAnchor(anchorKey: string, nodeID: string, launch: () => Promise<string | null | void> | string | null | void): void;
231
232
  registerDockAnchor(anchorKey: string, element: HTMLElement | null): void;
232
233
  shouldAnimateMinimizedDockEnter(nodeID: string): boolean;
234
+ isPendingMinimizedDockNode(nodeID: string): boolean;
233
235
  };
234
236
  }
235
237
  type WorkbenchDockPlacement = "bottom" | "left";
238
+ type WorkbenchMinimizeAnimation = "scale" | "genie" | "off";
236
239
  interface WorkbenchWindowActionContext<TData = unknown> {
237
240
  node: WorkbenchNode<TData>;
238
241
  controller: WorkbenchController<TData>;
@@ -294,6 +297,7 @@ interface WorkbenchSurfaceProps<TData = unknown> {
294
297
  interactive?: boolean;
295
298
  layoutConstraints?: WorkbenchLayoutConstraintsInput;
296
299
  missionControlPhase?: "closed" | "entering" | "open" | "closing";
300
+ minimizeAnimation?: WorkbenchMinimizeAnimation;
297
301
  presentation?: WorkbenchSurfacePresentation | null;
298
302
  renderBackdrop?: () => ReactNode;
299
303
  renderBottomChrome?: () => ReactNode;
@@ -308,6 +312,7 @@ interface WorkbenchSurfaceProps<TData = unknown> {
308
312
  resolveDockAnchorKey?: (node: WorkbenchNode<TData>) => string;
309
313
  resolveDockPreviewCacheKey?: WorkbenchDockPreviewCacheKeyResolver<TData>;
310
314
  shortcutsEnabled?: boolean;
315
+ shouldCaptureNodePreviewImage?: (node: WorkbenchNode<TData>) => boolean;
311
316
  wallpaper?: WorkbenchSurfaceWallpaper;
312
317
  windowChromeMode?: WorkbenchWindowChromeMode | WorkbenchResolveWindowChromeMode<TData>;
313
318
  windowChromeI18n?: WorkbenchWindowChromeI18nRuntime;
@@ -319,7 +324,7 @@ interface WorkbenchSurfaceWallpaper {
319
324
  position?: string;
320
325
  url: string;
321
326
  }
322
- declare function WorkbenchSurface<TData>({ captureNodePreviewImage, className, controller, dockPreviewCache, dockPlacement, interactive, layoutConstraints, missionControlPhase, presentation, renderBackdrop, renderBottomChrome, renderDock, renderNode, renderOverlay, renderTopChrome, renderWindowActions, renderWindowHeader, shouldKeepMinimizedNodeMounted, resolveFullscreenHeaderMode, resolveDockAnchorKey, resolveDockPreviewCacheKey, shortcutsEnabled, wallpaper, windowChromeMode, windowChromeI18n }: WorkbenchSurfaceProps<TData>): react_jsx_runtime.JSX.Element;
327
+ declare function WorkbenchSurface<TData>({ captureNodePreviewImage, className, controller, dockPreviewCache, dockPlacement, interactive, layoutConstraints, missionControlPhase, minimizeAnimation, presentation, renderBackdrop, renderBottomChrome, renderDock, renderNode, renderOverlay, renderTopChrome, renderWindowActions, renderWindowHeader, shouldKeepMinimizedNodeMounted, resolveFullscreenHeaderMode, resolveDockAnchorKey, resolveDockPreviewCacheKey, shortcutsEnabled, shouldCaptureNodePreviewImage, wallpaper, windowChromeMode, windowChromeI18n }: WorkbenchSurfaceProps<TData>): react_jsx_runtime.JSX.Element;
323
328
 
324
329
  interface WorkbenchHostActivation<TPayload = unknown> {
325
330
  payload?: TPayload;
@@ -449,6 +454,12 @@ interface WorkbenchHostDockEntryAction {
449
454
  label: string;
450
455
  pendingLabel?: string;
451
456
  }
457
+ interface WorkbenchHostDockEntryRetentionAction {
458
+ actionId: string;
459
+ disabled?: boolean;
460
+ pendingLabel?: string;
461
+ retained: boolean;
462
+ }
452
463
  type WorkbenchHostDockEntryDiagnostics = Record<string, unknown>;
453
464
  interface WorkbenchHostDockPopupItemInput {
454
465
  externalNodeState?: unknown;
@@ -492,6 +503,7 @@ interface WorkbenchHostDockEntry {
492
503
  id: string;
493
504
  label: string;
494
505
  diagnostics?: WorkbenchHostDockEntryDiagnostics;
506
+ dockRetention?: WorkbenchHostDockEntryRetentionAction;
495
507
  instanceMode?: WorkbenchHostNodeInstanceStrategy["mode"];
496
508
  launchBehavior?: WorkbenchHostDockEntryLaunchBehavior;
497
509
  launchPayload?: unknown;
@@ -506,7 +518,7 @@ interface WorkbenchHostDockEntry {
506
518
  typeId: string;
507
519
  visibility?: WorkbenchHostDockEntryVisibility;
508
520
  }
509
- type WorkbenchHostDockEntryDynamicState = Partial<Pick<WorkbenchHostDockEntry, "attentionToken" | "badge" | "diagnostics" | "hoverActions" | "launchBehavior" | "order" | "state" | "visibility">>;
521
+ type WorkbenchHostDockEntryDynamicState = Partial<Pick<WorkbenchHostDockEntry, "attentionToken" | "badge" | "diagnostics" | "dockRetention" | "hoverActions" | "launchBehavior" | "order" | "state" | "visibility">>;
510
522
  interface WorkbenchHostDockEntryStateSource {
511
523
  getEntryState(entryId: string): WorkbenchHostDockEntryDynamicState | null | undefined;
512
524
  subscribe(listener: () => void): () => void;
@@ -522,10 +534,13 @@ interface WorkbenchHostNodeWindowCapabilities {
522
534
  persists?: boolean;
523
535
  restoreOnLoad?: boolean;
524
536
  }
525
- interface WorkbenchHostNodeMinimizedDockCapability {
537
+ type WorkbenchHostNodeMinimizedDockCapability = {
526
538
  capturePreview?: WorkbenchHostNodePreviewCapture;
527
539
  kind: "snapshot";
528
- }
540
+ } | {
541
+ kind: "component";
542
+ providePreview: WorkbenchHostDockPopupPreviewProvider;
543
+ };
529
544
  interface WorkbenchHostSingleInstanceStrategy {
530
545
  mode?: "single";
531
546
  }
@@ -634,6 +649,7 @@ interface WorkbenchHostHandle {
634
649
  isHydrating?(): boolean;
635
650
  launchNode(input: WorkbenchHostLaunchInput): Promise<string | null>;
636
651
  load(): Promise<void>;
652
+ minimizeNode(nodeId: string): void;
637
653
  requestNodeClose(nodeId: string): void;
638
654
  reconcileProjectedNodes(projectedNodes: readonly WorkbenchHostProjectedNode[]): void;
639
655
  setNodeRuntimeState(nodeId: string, state: unknown): void;
@@ -649,8 +665,13 @@ interface WorkbenchHostChromeRenderContext {
649
665
  }
650
666
  interface WorkbenchHostMissionControlProps {
651
667
  mode: WorkbenchMissionControlMode | null;
668
+ nodeIds?: readonly string[];
652
669
  onRequestClose: () => void;
653
670
  }
671
+ interface WorkbenchHostMissionControlOpenRequest {
672
+ nodeIds?: readonly string[];
673
+ trigger?: "dock-context-menu";
674
+ }
654
675
  interface WorkbenchHostClosePreparationContext {
655
676
  host: WorkbenchHostHandle;
656
677
  workspaceId: string;
@@ -678,6 +699,7 @@ interface WorkbenchHostProps {
678
699
  i18n?: I18nRuntime<string>;
679
700
  layoutConstraints?: WorkbenchLayoutConstraintsInput;
680
701
  missionControl?: WorkbenchHostMissionControlProps;
702
+ minimizeAnimation?: WorkbenchMinimizeAnimation;
681
703
  nodes?: readonly WorkbenchHostNodeDefinition[];
682
704
  onDockEntryAction?: (input: {
683
705
  actionId: string;
@@ -691,6 +713,7 @@ interface WorkbenchHostProps {
691
713
  }) => Promise<void> | void;
692
714
  onLaunchRequest?: (request: WorkbenchHostLaunchRequest) => Promise<WorkbenchHostLaunchResult | null | void> | WorkbenchHostLaunchResult | null | void;
693
715
  onMissionControlAdapterReady?: (adapter: WorkbenchMissionControlAdapter<WorkbenchHostNodeData> | null) => void;
716
+ onMissionControlRequestOpen?: (mode: WorkbenchMissionControlMode, request?: WorkbenchHostMissionControlOpenRequest) => void;
694
717
  onNodeCloseRequest?: (request: WorkbenchHostNodeCloseRequest) => Promise<WorkbenchHostNodeCloseDecision | void> | WorkbenchHostNodeCloseDecision | void;
695
718
  onHandleReady?: (handle: WorkbenchHostHandle | null) => void;
696
719
  projectedNodes?: readonly WorkbenchHostProjectedNode[];
@@ -702,7 +725,7 @@ interface WorkbenchHostProps {
702
725
  workspaceId: string;
703
726
  }
704
727
 
705
- declare function WorkbenchHost({ captureNodePreviewImage, className, contributions, debugDiagnostics, dockPreviewCache, dockPlacement, dockEntries, dockStateSource, externalStateSource, i18n, layoutConstraints, missionControl, nodes, onDockEntryAction, onDockEntryClick, onHandleReady, onLaunchRequest, onMissionControlAdapterReady, onNodeCloseRequest, projectedNodes, renderBottomChrome, renderTopChrome, snapshotRepository, shortcutsEnabled, wallpaper, workspaceId }: WorkbenchHostProps): react_jsx_runtime.JSX.Element;
728
+ declare function WorkbenchHost({ captureNodePreviewImage, className, contributions, debugDiagnostics, dockPreviewCache, dockPlacement, dockEntries, dockStateSource, externalStateSource, i18n, layoutConstraints, missionControl, minimizeAnimation, nodes, onDockEntryAction, onDockEntryClick, onHandleReady, onLaunchRequest, onMissionControlAdapterReady, onMissionControlRequestOpen, onNodeCloseRequest, projectedNodes, renderBottomChrome, renderTopChrome, snapshotRepository, shortcutsEnabled, wallpaper, workspaceId }: WorkbenchHostProps): react_jsx_runtime.JSX.Element;
706
729
 
707
730
  declare function resolveWorkbenchHostPrepareClose(contributions: readonly WorkbenchContribution[]): WorkbenchHostClosePreparer | undefined;
708
731