@tutti-os/workbench-surface 0.0.172 → 0.0.174
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/dist/index.d.ts +49 -1
- package/dist/index.js +50 -6
- package/dist/index.js.map +1 -1
- package/package.json +5 -5
package/dist/index.d.ts
CHANGED
|
@@ -608,6 +608,12 @@ interface WorkbenchHostDockEntry {
|
|
|
608
608
|
* `launch` keeps clicks on the launch request path even when matching nodes
|
|
609
609
|
* already exist.
|
|
610
610
|
*/
|
|
611
|
+
/**
|
|
612
|
+
* When false, hides the dock hover-popup "New window" tile even for
|
|
613
|
+
* multi-instance entries. Context-menu "New window" remains available unless
|
|
614
|
+
* the entry is otherwise disabled. Defaults to true.
|
|
615
|
+
*/
|
|
616
|
+
allowNewWindowInDockPopup?: boolean;
|
|
611
617
|
clickBehavior?: "default" | "launch";
|
|
612
618
|
hoverActions?: readonly WorkbenchHostDockEntryAction[];
|
|
613
619
|
icon: ReactNode;
|
|
@@ -923,4 +929,46 @@ declare function getWorkbenchLayoutFrame(surfaceSize: WorkbenchSize, constraints
|
|
|
923
929
|
|
|
924
930
|
declare function selectFocusedWorkbenchNode<TData>(state: WorkbenchState<TData>): WorkbenchNode<TData> | null;
|
|
925
931
|
|
|
926
|
-
|
|
932
|
+
type WorkbenchHostDockNodeState = "closed" | "minimized" | "open";
|
|
933
|
+
interface ResolvedWorkbenchHostDockEntry {
|
|
934
|
+
anchorKey: string;
|
|
935
|
+
dockNodeState: WorkbenchHostDockNodeState;
|
|
936
|
+
entry: WorkbenchHostDockEntry;
|
|
937
|
+
hasMatchingNodes: boolean;
|
|
938
|
+
matchedNodes: WorkbenchNode<WorkbenchHostNodeData>[];
|
|
939
|
+
sectionBreakBefore: boolean;
|
|
940
|
+
}
|
|
941
|
+
type WorkbenchHostDockClickResolution = {
|
|
942
|
+
actionId: string;
|
|
943
|
+
kind: "action";
|
|
944
|
+
} | {
|
|
945
|
+
kind: "blocked";
|
|
946
|
+
} | {
|
|
947
|
+
kind: "focus-node";
|
|
948
|
+
nodeId: string;
|
|
949
|
+
} | {
|
|
950
|
+
kind: "launch";
|
|
951
|
+
} | {
|
|
952
|
+
kind: "open-popup";
|
|
953
|
+
};
|
|
954
|
+
declare function matchWorkbenchDockEntryNode(entry: WorkbenchHostDockEntry, node: WorkbenchNode<WorkbenchHostNodeData>): boolean;
|
|
955
|
+
declare function resolveWorkbenchDockEntries(input: {
|
|
956
|
+
dockEntries: readonly WorkbenchHostDockEntry[];
|
|
957
|
+
minimizedNodeIds: ReadonlySet<string>;
|
|
958
|
+
nodes: readonly WorkbenchNode<WorkbenchHostNodeData>[];
|
|
959
|
+
}): ResolvedWorkbenchHostDockEntry[];
|
|
960
|
+
declare function resolveWorkbenchDockEntryClick(input: {
|
|
961
|
+
entry: WorkbenchHostDockEntry;
|
|
962
|
+
instanceMode?: WorkbenchHostNodeInstanceStrategy["mode"];
|
|
963
|
+
matchedNodes: readonly WorkbenchNode<WorkbenchHostNodeData>[];
|
|
964
|
+
}): WorkbenchHostDockClickResolution;
|
|
965
|
+
declare function canCreateNewWindow(entry: WorkbenchHostDockEntry, instanceMode?: WorkbenchHostNodeInstanceStrategy["mode"]): boolean;
|
|
966
|
+
declare function canCreateNewWindowInDockPopup(entry: WorkbenchHostDockEntry, instanceMode?: WorkbenchHostNodeInstanceStrategy["mode"]): boolean;
|
|
967
|
+
declare function createDockNewWindowLaunchPayload(launchPayload?: unknown): Record<string, unknown>;
|
|
968
|
+
interface CreateMultiInstanceDockEntryOptionsInput {
|
|
969
|
+
allowNewWindowInDockPopup?: boolean;
|
|
970
|
+
}
|
|
971
|
+
declare function createMultiInstanceDockEntryOptions(launchPayload?: unknown, input?: CreateMultiInstanceDockEntryOptionsInput): Pick<WorkbenchHostDockEntry, "allowNewWindowInDockPopup" | "instanceMode" | "launchBehavior" | "launchPayload" | "newWindowLaunchPayload">;
|
|
972
|
+
declare function resolveWorkbenchDockCountBadge(activeNodeCount: number): WorkbenchHostDockEntry["badge"];
|
|
973
|
+
|
|
974
|
+
export { type CreateWorkbenchNodeInput, type CreateWorkbenchSnapshotFromStateOptions, type ResolvedWorkbenchHostDockEntry, type WorkbenchContribution, type WorkbenchController, type WorkbenchDebugDiagnostics, type WorkbenchDisplayMode, WorkbenchDockComponentPreviewFrame, type WorkbenchDockComponentPreviewFrameProps, type WorkbenchDockContext, type WorkbenchDockPlacement, type WorkbenchDockPreviewCache, type WorkbenchDockPreviewCacheKey, type WorkbenchDockPreviewCacheKeyResolver, type WorkbenchDockPreviewContent, type WorkbenchFrame, type WorkbenchFullscreenHeaderMode, WorkbenchHost, type WorkbenchHostActivation, type WorkbenchHostActivationTarget, type WorkbenchHostChromeRenderContext, type WorkbenchHostCloseDialogRequest, type WorkbenchHostCloseDialogScope, type WorkbenchHostCloseDialogVariant, type WorkbenchHostCloseEffect, type WorkbenchHostClosePreparationContext, type WorkbenchHostClosePreparer, type WorkbenchHostDockClickResolution, type WorkbenchHostDockEntry, type WorkbenchHostDockEntryAction, type WorkbenchHostDockEntryBadge, type WorkbenchHostDockEntryDynamicState, type WorkbenchHostDockEntryLaunchBehavior, type WorkbenchHostDockEntryPresentationOverride, type WorkbenchHostDockEntryPresentationOverrides, type WorkbenchHostDockEntryState, type WorkbenchHostDockEntryStateKind, type WorkbenchHostDockEntryStateSource, type WorkbenchHostDockEntryVisibility, type WorkbenchHostDockNodeState, type WorkbenchHostDockPopupItemDescriptor, type WorkbenchHostDockPopupItemInput, type WorkbenchHostExternalStateLookupInput, type WorkbenchHostExternalStateSource, type WorkbenchHostHandle, type WorkbenchHostLaunchFramePolicy, type WorkbenchHostLaunchInput, type WorkbenchHostLaunchReason, type WorkbenchHostLaunchRequest, type WorkbenchHostLaunchResult, type WorkbenchHostMissionControlMode, type WorkbenchHostMissionControlProps, type WorkbenchHostMultiInstanceStrategy, type WorkbenchHostNodeBodyContext, type WorkbenchHostNodeCloseDecision, type WorkbenchHostNodeCloseRequest, type WorkbenchHostNodeData, type WorkbenchHostNodeDefinition, type WorkbenchHostNodeHeaderContext, type WorkbenchHostNodeHeaderFrameRenderKey, type WorkbenchHostNodeHeaderWindowActions, type WorkbenchHostNodeIdentityInput, type WorkbenchHostNodeInstanceStrategy, type WorkbenchHostNodeMinimizedDockCapability, type WorkbenchHostNodeWindowCapabilities, type WorkbenchHostProjectedNode, type WorkbenchHostProjectedNodeSubject, type WorkbenchHostProps, type WorkbenchHostSingleInstanceStrategy, type WorkbenchHostSnapshotRepository, type WorkbenchHostWindowCloseEffectContext, type WorkbenchLayoutConstraints, type WorkbenchLayoutConstraintsInput, type WorkbenchLayoutPreset, type WorkbenchMissionControlAdapter, type WorkbenchMissionControlMode, type WorkbenchMissionControlSnapshot, type WorkbenchNode, type WorkbenchNodeRenderFrame, type WorkbenchNodeSizeConstraints, type WorkbenchQuickLayoutTarget, type WorkbenchRenderNode, type WorkbenchRenderNodeContext, type WorkbenchRenderWindowActions, type WorkbenchRenderWindowHeader, type WorkbenchResolveFullscreenHeaderMode, type WorkbenchResolveWindowChromeMode, type WorkbenchResolveWindowChromeModeContext, type WorkbenchSafeArea, type WorkbenchSize, type WorkbenchState, WorkbenchSurface, type WorkbenchSurfacePresentation, type WorkbenchSurfaceProps, type WorkbenchSurfaceWallpaper, type WorkbenchSurfaceWallpaperFit, type WorkbenchWindowActionContext, WorkbenchWindowChromeI18nRuntime, type WorkbenchWindowChromeMode, type WorkbenchWindowHeaderContext, type WorkbenchWindowManagementConfig, canCreateNewWindow, canCreateNewWindowInDockPopup, createDockNewWindowLaunchPayload, createMultiInstanceDockEntryOptions, createWorkbenchController, createWorkbenchHostLaunchedNodeId, createWorkbenchHostProjectedNodeId, createWorkbenchNode, createWorkbenchNodeFromSnapshot, createWorkbenchSnapshotFromState, createWorkbenchStateFromSnapshot, getWorkbenchLayoutFrame, isEditableShortcutTarget, matchWorkbenchDockEntryNode, resolveWorkbenchDockCountBadge, resolveWorkbenchDockEntries, resolveWorkbenchDockEntryClick, resolveWorkbenchHostPrepareClose, selectFocusedWorkbenchNode, useWorkbenchSelector, workbenchFocusInputActivationType };
|
package/dist/index.js
CHANGED
|
@@ -8094,6 +8094,40 @@ function resolveWorkbenchDockEntryClick(input) {
|
|
|
8094
8094
|
}
|
|
8095
8095
|
return { kind: "launch" };
|
|
8096
8096
|
}
|
|
8097
|
+
function canCreateNewWindow(entry, instanceMode) {
|
|
8098
|
+
const stateKind = entry.state?.kind ?? "enabled";
|
|
8099
|
+
if (stateKind === "disabled" || stateKind === "loading" || stateKind === "unavailable" || (entry.launchBehavior ?? "enabled") !== "enabled") {
|
|
8100
|
+
return false;
|
|
8101
|
+
}
|
|
8102
|
+
return instanceMode === "multi" || entry.newWindowLaunchPayload !== void 0;
|
|
8103
|
+
}
|
|
8104
|
+
function canCreateNewWindowInDockPopup(entry, instanceMode) {
|
|
8105
|
+
if (entry.allowNewWindowInDockPopup === false) {
|
|
8106
|
+
return false;
|
|
8107
|
+
}
|
|
8108
|
+
return canCreateNewWindow(entry, instanceMode);
|
|
8109
|
+
}
|
|
8110
|
+
function createDockNewWindowLaunchPayload(launchPayload) {
|
|
8111
|
+
if (launchPayload && typeof launchPayload === "object" && !Array.isArray(launchPayload)) {
|
|
8112
|
+
return {
|
|
8113
|
+
...launchPayload,
|
|
8114
|
+
openInNewWindow: true
|
|
8115
|
+
};
|
|
8116
|
+
}
|
|
8117
|
+
return { openInNewWindow: true };
|
|
8118
|
+
}
|
|
8119
|
+
function createMultiInstanceDockEntryOptions(launchPayload, input = {}) {
|
|
8120
|
+
return {
|
|
8121
|
+
...input.allowNewWindowInDockPopup === false ? { allowNewWindowInDockPopup: false } : {},
|
|
8122
|
+
instanceMode: "single",
|
|
8123
|
+
launchBehavior: "enabled",
|
|
8124
|
+
...launchPayload === void 0 ? {} : { launchPayload },
|
|
8125
|
+
newWindowLaunchPayload: createDockNewWindowLaunchPayload(launchPayload)
|
|
8126
|
+
};
|
|
8127
|
+
}
|
|
8128
|
+
function resolveWorkbenchDockCountBadge(activeNodeCount) {
|
|
8129
|
+
return activeNodeCount > 1 ? { kind: "count", value: activeNodeCount } : void 0;
|
|
8130
|
+
}
|
|
8097
8131
|
function isWorkbenchDockEntryBlocked(entry) {
|
|
8098
8132
|
const stateKind = entry.state?.kind ?? "enabled";
|
|
8099
8133
|
return stateKind === "disabled" || stateKind === "loading" || stateKind === "unavailable" || (entry.launchBehavior ?? "enabled") !== "enabled";
|
|
@@ -9377,9 +9411,11 @@ function WorkbenchHostDockPopup({
|
|
|
9377
9411
|
resolveDockPreviewCacheKey: resolveDockPreviewCacheKey2,
|
|
9378
9412
|
showAllWindowsLabel,
|
|
9379
9413
|
showCreateNew,
|
|
9414
|
+
showCreateNewInContextMenu,
|
|
9380
9415
|
showOpen,
|
|
9381
9416
|
variant
|
|
9382
9417
|
}) {
|
|
9418
|
+
const resolvedShowCreateNewInContextMenu = showCreateNewInContextMenu ?? showCreateNew;
|
|
9383
9419
|
const resolvedLabelMode = labelMode ?? "hover-overlay";
|
|
9384
9420
|
const resolvedVariant = variant ?? "default";
|
|
9385
9421
|
const isMinimizedStack = resolvedVariant === "minimized-stack";
|
|
@@ -9858,7 +9894,7 @@ function WorkbenchHostDockPopup({
|
|
|
9858
9894
|
children: isContextMenu ? /* @__PURE__ */ jsx11(
|
|
9859
9895
|
WorkbenchHostDockContextMenu,
|
|
9860
9896
|
{
|
|
9861
|
-
canCreateNew:
|
|
9897
|
+
canCreateNew: resolvedShowCreateNewInContextMenu !== false,
|
|
9862
9898
|
canEnterFullscreen: canEnterFullscreen === true,
|
|
9863
9899
|
canShowAllWindows: canShowAllWindows === true,
|
|
9864
9900
|
dockRetention,
|
|
@@ -12339,7 +12375,11 @@ function WorkbenchHostDock({
|
|
|
12339
12375
|
closePopup();
|
|
12340
12376
|
},
|
|
12341
12377
|
quitLabel: i18n.t("dockContextMenu.quit"),
|
|
12342
|
-
showCreateNew:
|
|
12378
|
+
showCreateNew: canCreateNewWindowInDockPopup(
|
|
12379
|
+
popupEntry.entry,
|
|
12380
|
+
dockContextMenuInstanceMode
|
|
12381
|
+
),
|
|
12382
|
+
showCreateNewInContextMenu: canCreateNewWindow(
|
|
12343
12383
|
popupEntry.entry,
|
|
12344
12384
|
dockContextMenuInstanceMode
|
|
12345
12385
|
),
|
|
@@ -12856,10 +12896,6 @@ function WorkbenchHostDockHoverPanel({
|
|
|
12856
12896
|
function resolveDockEntryInstanceMode(entry, nodeDefinitions) {
|
|
12857
12897
|
return entry.instanceMode ?? nodeDefinitions.get(entry.typeId)?.instance?.mode;
|
|
12858
12898
|
}
|
|
12859
|
-
function canCreateNewWindow(entry, instanceMode) {
|
|
12860
|
-
const stateKind = entry.state?.kind ?? "enabled";
|
|
12861
|
-
return instanceMode === "multi" && (entry.launchBehavior ?? "enabled") === "enabled" && stateKind !== "disabled" && stateKind !== "loading" && stateKind !== "unavailable";
|
|
12862
|
-
}
|
|
12863
12899
|
function anchorKeyFromPopupEntry(entry) {
|
|
12864
12900
|
return entry.anchorKey;
|
|
12865
12901
|
}
|
|
@@ -14340,6 +14376,10 @@ export {
|
|
|
14340
14376
|
WorkbenchDockComponentPreviewFrame,
|
|
14341
14377
|
WorkbenchHost,
|
|
14342
14378
|
WorkbenchSurface,
|
|
14379
|
+
canCreateNewWindow,
|
|
14380
|
+
canCreateNewWindowInDockPopup,
|
|
14381
|
+
createDockNewWindowLaunchPayload,
|
|
14382
|
+
createMultiInstanceDockEntryOptions,
|
|
14343
14383
|
createWorkbenchController,
|
|
14344
14384
|
createWorkbenchHostI18nRuntime,
|
|
14345
14385
|
createWorkbenchHostLaunchedNodeId,
|
|
@@ -14351,6 +14391,10 @@ export {
|
|
|
14351
14391
|
createWorkbenchWindowChromeI18nRuntime,
|
|
14352
14392
|
getWorkbenchLayoutFrame,
|
|
14353
14393
|
isEditableShortcutTarget,
|
|
14394
|
+
matchWorkbenchDockEntryNode,
|
|
14395
|
+
resolveWorkbenchDockCountBadge,
|
|
14396
|
+
resolveWorkbenchDockEntries,
|
|
14397
|
+
resolveWorkbenchDockEntryClick,
|
|
14354
14398
|
resolveWorkbenchHostPrepareClose,
|
|
14355
14399
|
selectFocusedWorkbenchNode,
|
|
14356
14400
|
useWorkbenchSelector,
|