@tutti-os/workbench-surface 0.0.147 → 0.0.149
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/README.md +7 -0
- package/dist/index.d.ts +5 -2
- package/dist/index.js +12 -2
- package/dist/index.js.map +1 -1
- package/package.json +6 -6
package/README.md
CHANGED
|
@@ -61,6 +61,13 @@ Entries may also provide host-owned popup metadata through
|
|
|
61
61
|
`resolvePopupItem(...)` and `capturePopupItemPreview(...)`, plus custom badge
|
|
62
62
|
content when the default count or status shapes are not enough.
|
|
63
63
|
|
|
64
|
+
Presentation-only changes to merged Dock entries belong in
|
|
65
|
+
`dockEntryPresentationOverrides`. `WorkbenchHost` applies these overrides by
|
|
66
|
+
entry id after contributions and explicit entries are merged, preserving Dock
|
|
67
|
+
order without changing contribution nodes or rebuilding the host session. Use
|
|
68
|
+
this seam for host-owned visibility and retention presentation; keep product
|
|
69
|
+
preference persistence in the consuming host.
|
|
70
|
+
|
|
64
71
|
Dock, shortcut, and command opens flow through `launchNode(...)` and the
|
|
65
72
|
optional `onLaunchRequest(...)` callback. The host may create a business
|
|
66
73
|
instance asynchronously, then return the shell identity, title, default frame,
|
package/dist/index.d.ts
CHANGED
|
@@ -622,6 +622,8 @@ interface WorkbenchHostDockEntry {
|
|
|
622
622
|
typeId: string;
|
|
623
623
|
visibility?: WorkbenchHostDockEntryVisibility;
|
|
624
624
|
}
|
|
625
|
+
type WorkbenchHostDockEntryPresentationOverride = Readonly<Partial<Pick<WorkbenchHostDockEntry, "dockRetention" | "visibility">>>;
|
|
626
|
+
type WorkbenchHostDockEntryPresentationOverrides = Readonly<Record<string, WorkbenchHostDockEntryPresentationOverride>>;
|
|
625
627
|
type WorkbenchHostDockEntryDynamicState = Partial<Pick<WorkbenchHostDockEntry, "attentionToken" | "badge" | "diagnostics" | "dockRetention" | "hoverActions" | "launchBehavior" | "order" | "state" | "visibility">>;
|
|
626
628
|
interface WorkbenchHostDockEntryStateSource {
|
|
627
629
|
getEntryState(entryId: string): WorkbenchHostDockEntryDynamicState | null | undefined;
|
|
@@ -812,6 +814,7 @@ interface WorkbenchHostProps {
|
|
|
812
814
|
dockPreviewCache?: WorkbenchDockPreviewCache;
|
|
813
815
|
dockPlacement?: WorkbenchDockPlacement;
|
|
814
816
|
dockEntries?: readonly WorkbenchHostDockEntry[];
|
|
817
|
+
dockEntryPresentationOverrides?: WorkbenchHostDockEntryPresentationOverrides;
|
|
815
818
|
dockStateSource?: WorkbenchHostDockEntryStateSource;
|
|
816
819
|
externalStateSource?: WorkbenchHostExternalStateSource;
|
|
817
820
|
i18n?: I18nRuntime<string>;
|
|
@@ -844,7 +847,7 @@ interface WorkbenchHostProps {
|
|
|
844
847
|
workspaceId: string;
|
|
845
848
|
}
|
|
846
849
|
|
|
847
|
-
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, windowManagement, workspaceId }: WorkbenchHostProps): react_jsx_runtime.JSX.Element;
|
|
850
|
+
declare function WorkbenchHost({ captureNodePreviewImage, className, contributions, debugDiagnostics, dockPreviewCache, dockPlacement, dockEntryPresentationOverrides, dockEntries, dockStateSource, externalStateSource, i18n, layoutConstraints, missionControl, minimizeAnimation, nodes, onDockEntryAction, onDockEntryClick, onHandleReady, onLaunchRequest, onMissionControlAdapterReady, onMissionControlRequestOpen, onNodeCloseRequest, projectedNodes, renderBottomChrome, renderTopChrome, snapshotRepository, shortcutsEnabled, wallpaper, windowManagement, workspaceId }: WorkbenchHostProps): react_jsx_runtime.JSX.Element;
|
|
848
851
|
|
|
849
852
|
declare function resolveWorkbenchHostPrepareClose(contributions: readonly WorkbenchContribution[]): WorkbenchHostClosePreparer | undefined;
|
|
850
853
|
|
|
@@ -885,4 +888,4 @@ declare function getWorkbenchLayoutFrame(surfaceSize: WorkbenchSize, constraints
|
|
|
885
888
|
|
|
886
889
|
declare function selectFocusedWorkbenchNode<TData>(state: WorkbenchState<TData>): WorkbenchNode<TData> | null;
|
|
887
890
|
|
|
888
|
-
export { type CreateWorkbenchNodeInput, type CreateWorkbenchSnapshotFromStateOptions, type WorkbenchContribution, type WorkbenchController, type WorkbenchDebugDiagnostics, type WorkbenchDisplayMode, 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 WorkbenchHostDockEntry, type WorkbenchHostDockEntryAction, type WorkbenchHostDockEntryBadge, type WorkbenchHostDockEntryDynamicState, type WorkbenchHostDockEntryLaunchBehavior, type WorkbenchHostDockEntryState, type WorkbenchHostDockEntryStateKind, type WorkbenchHostDockEntryStateSource, type WorkbenchHostDockEntryVisibility, 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 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, createWorkbenchController, createWorkbenchHostLaunchedNodeId, createWorkbenchHostProjectedNodeId, createWorkbenchNode, createWorkbenchNodeFromSnapshot, createWorkbenchSnapshotFromState, createWorkbenchStateFromSnapshot, getWorkbenchLayoutFrame, isEditableShortcutTarget, resolveWorkbenchHostPrepareClose, selectFocusedWorkbenchNode, useWorkbenchSelector, workbenchFocusInputActivationType };
|
|
891
|
+
export { type CreateWorkbenchNodeInput, type CreateWorkbenchSnapshotFromStateOptions, type WorkbenchContribution, type WorkbenchController, type WorkbenchDebugDiagnostics, type WorkbenchDisplayMode, 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 WorkbenchHostDockEntry, type WorkbenchHostDockEntryAction, type WorkbenchHostDockEntryBadge, type WorkbenchHostDockEntryDynamicState, type WorkbenchHostDockEntryLaunchBehavior, type WorkbenchHostDockEntryPresentationOverride, type WorkbenchHostDockEntryPresentationOverrides, type WorkbenchHostDockEntryState, type WorkbenchHostDockEntryStateKind, type WorkbenchHostDockEntryStateSource, type WorkbenchHostDockEntryVisibility, 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 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, createWorkbenchController, createWorkbenchHostLaunchedNodeId, createWorkbenchHostProjectedNodeId, createWorkbenchNode, createWorkbenchNodeFromSnapshot, createWorkbenchSnapshotFromState, createWorkbenchStateFromSnapshot, getWorkbenchLayoutFrame, isEditableShortcutTarget, resolveWorkbenchHostPrepareClose, selectFocusedWorkbenchNode, useWorkbenchSelector, workbenchFocusInputActivationType };
|
package/dist/index.js
CHANGED
|
@@ -5644,11 +5644,19 @@ function resolveWorkbenchSurfaceWallpaperBackgroundSize(fit) {
|
|
|
5644
5644
|
// src/host/hostConfig.ts
|
|
5645
5645
|
function resolveWorkbenchHostDockEntries(props) {
|
|
5646
5646
|
const contributions = props.contributions ?? [];
|
|
5647
|
-
|
|
5647
|
+
const mergedEntries = mergeByKey(
|
|
5648
5648
|
contributions.flatMap((contribution) => contribution.dockEntries ?? []),
|
|
5649
5649
|
props.dockEntries ?? [],
|
|
5650
5650
|
(entry) => entry.id
|
|
5651
5651
|
);
|
|
5652
|
+
const presentationOverrides = props.dockEntryPresentationOverrides;
|
|
5653
|
+
if (!presentationOverrides) {
|
|
5654
|
+
return mergedEntries;
|
|
5655
|
+
}
|
|
5656
|
+
return mergedEntries.map((entry) => {
|
|
5657
|
+
const presentationOverride = presentationOverrides[entry.id];
|
|
5658
|
+
return presentationOverride ? { ...entry, ...presentationOverride } : entry;
|
|
5659
|
+
});
|
|
5652
5660
|
}
|
|
5653
5661
|
function resolveWorkbenchHostRuntimeConfig(props) {
|
|
5654
5662
|
const contributions = props.contributions ?? [];
|
|
@@ -13846,6 +13854,7 @@ function WorkbenchHost({
|
|
|
13846
13854
|
debugDiagnostics,
|
|
13847
13855
|
dockPreviewCache,
|
|
13848
13856
|
dockPlacement,
|
|
13857
|
+
dockEntryPresentationOverrides,
|
|
13849
13858
|
dockEntries,
|
|
13850
13859
|
dockStateSource,
|
|
13851
13860
|
externalStateSource,
|
|
@@ -13889,9 +13898,10 @@ function WorkbenchHost({
|
|
|
13889
13898
|
const hostDockEntries = useMemo8(
|
|
13890
13899
|
() => resolveWorkbenchHostDockEntries({
|
|
13891
13900
|
contributions,
|
|
13901
|
+
dockEntryPresentationOverrides,
|
|
13892
13902
|
dockEntries
|
|
13893
13903
|
}),
|
|
13894
|
-
[contributions, dockEntries]
|
|
13904
|
+
[contributions, dockEntries, dockEntryPresentationOverrides]
|
|
13895
13905
|
);
|
|
13896
13906
|
const missionControlMode = missionControl?.mode ?? null;
|
|
13897
13907
|
const missionControlNodeIds = missionControl?.nodeIds;
|