@pstdio/workbench 0.37.0 → 0.39.0

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.
@@ -160,6 +160,7 @@ interface WorkbenchCommandExecutionError {
160
160
  type WorkbenchCommandExecutionErrorListener = (event: WorkbenchCommandExecutionError) => void;
161
161
  interface WorkbenchCommandExecutionContext {
162
162
  resource?: ResourceRef$1;
163
+ signal?: AbortSignal;
163
164
  source?: "panel-add";
164
165
  }
165
166
  interface CommandParamOption {
@@ -167,15 +168,24 @@ interface CommandParamOption {
167
168
  value: string;
168
169
  icon?: string;
169
170
  }
171
+ interface CommandParamOptionSource {
172
+ commandId: string;
173
+ valueField: string;
174
+ labelField: string;
175
+ params?: Record<string, unknown>;
176
+ }
170
177
  interface CommandParamDescriptor {
171
178
  type: string;
172
179
  label?: string;
173
180
  description?: string;
174
181
  required?: boolean;
175
182
  defaultValue?: unknown;
176
- options?: CommandParamOption[];
183
+ options?: CommandParamOption[] | CommandParamOptionSource;
184
+ allowCustomValues?: boolean;
177
185
  templateType?: string;
178
186
  resourceType?: string;
187
+ /** Workspace provider ids a `workspace` param may offer. */
188
+ providers?: string[];
179
189
  accept?: string;
180
190
  multiple?: boolean;
181
191
  metadata?: Record<string, unknown>;
@@ -783,6 +793,211 @@ interface ControlsRendererContribution {
783
793
  subscribe?: (listener: () => void) => Disposable | (() => void);
784
794
  }
785
795
  //#endregion
796
+ //#region src/core/registries/menus/menu-registry.d.ts
797
+ type MenuPath = readonly string[];
798
+ interface MenuItem {
799
+ commandId: string;
800
+ sourceCommandId?: string;
801
+ label?: string;
802
+ description?: string;
803
+ icon?: string;
804
+ iconSrc?: string;
805
+ overflowLabel?: string;
806
+ when?: string;
807
+ group?: string;
808
+ order?: number;
809
+ args?: unknown;
810
+ readOnly?: boolean;
811
+ /** Marks a menu action that navigates outside the app, rendered with a trailing external-link icon. */
812
+ external?: boolean;
813
+ }
814
+ interface RegisteredMenuItem extends MenuItem, RegisteredContributionMetadata {
815
+ path: MenuPath;
816
+ }
817
+ interface MenuRegistryStoreState {
818
+ itemsByPath: Record<string, RegisteredMenuItem[]>;
819
+ }
820
+ interface MenuRegistry {
821
+ menuStore: WorkbenchStore<MenuRegistryStoreState>;
822
+ registerMenuItem(path: MenuPath, item: MenuItem, metadata?: ContributionMetadata): Disposable;
823
+ listMenuItems(path: MenuPath): RegisteredMenuItem[];
824
+ }
825
+ //#endregion
826
+ //#region src/core/registries/renderers/tree-renderer-types.d.ts
827
+ interface TreeQueryContext {
828
+ signal?: AbortSignal;
829
+ /** Publish available sections while the rest of the current read is still loading. */
830
+ onProgress?(sections: TreeViewSection[]): void;
831
+ filter?: string;
832
+ resource?: ResourceRef$1;
833
+ /** Widget/view contribution id for trees rendered through a view-backed widget. */
834
+ viewId?: string;
835
+ }
836
+ interface TreeContext extends TreeQueryContext {
837
+ state: Readonly<TreeRendererState>;
838
+ refresh(): void;
839
+ setSelectedNode(nodeId: string | undefined): void;
840
+ }
841
+ interface TreeAction {
842
+ id: string;
843
+ label?: string;
844
+ icon?: string;
845
+ commandId?: string;
846
+ args?: unknown;
847
+ params?: CommandParamSchema;
848
+ submitLabel?: string;
849
+ when?: string;
850
+ disabled?: boolean;
851
+ run?(args?: unknown): Promise<void> | void;
852
+ }
853
+ type TreeNodeRowVariant = "empty-state";
854
+ interface TreeNodeInlineInput {
855
+ ariaLabel: string;
856
+ defaultValue?: string;
857
+ placeholder?: string;
858
+ onCommit(value: string): Promise<void> | void;
859
+ onCancel?(): void;
860
+ }
861
+ interface TreeNode {
862
+ id: string;
863
+ selected?: boolean;
864
+ /** Host-owned customization boundary. Extension callbacks cannot set it. */
865
+ moveScope?: string;
866
+ label: string;
867
+ icon?: string;
868
+ iconElement?: unknown;
869
+ iconColor?: string;
870
+ iconTooltip?: string;
871
+ endContent?: unknown;
872
+ commandId?: string;
873
+ resource?: ResourceRef$1;
874
+ target?: NavigationTarget$1;
875
+ /** Visual row variant for non-data rows such as placeholders. */
876
+ rowVariant?: TreeNodeRowVariant;
877
+ inlineInput?: TreeNodeInlineInput;
878
+ actions?: TreeAction[];
879
+ contextMenuActions?: TreeAction[];
880
+ contextMenuPath?: MenuPath;
881
+ menuPath?: MenuPath;
882
+ menuPlacement?: "top-start" | "top-end" | "bottom-start" | "bottom-end" | "right-start" | "left-start";
883
+ showContextMenuTrigger?: boolean;
884
+ collapsible?: boolean;
885
+ disabled?: boolean;
886
+ children?: TreeNode[];
887
+ description?: string;
888
+ contextValue?: string;
889
+ hiddenByDefault?: boolean;
890
+ /** When true, the node (e.g. a header/footer row) opts in to the tree's hide/show customization menu. */
891
+ canHide?: boolean;
892
+ /** When false, the node stays fixed within its Sidenav group. */
893
+ canReorder?: boolean;
894
+ /** Show the row only where users pinned it in the header or footer, never in the body. */
895
+ pinnedOnly?: boolean;
896
+ /** Allow this node to be moved to another tree location. */
897
+ canDrag?: boolean;
898
+ /** Allow movable nodes to be dropped on this node. */
899
+ canDrop?: boolean;
900
+ }
901
+ interface TreeSectionEmptyState {
902
+ title: string;
903
+ description?: string;
904
+ icon?: string;
905
+ }
906
+ interface TreeViewSection {
907
+ id: string;
908
+ /** Host-owned customization boundary. Extension callbacks cannot set it. */
909
+ moveScope?: string;
910
+ label?: string;
911
+ /** Names a section without a visible header in the customize menu. */
912
+ menuLabel?: string;
913
+ actions?: TreeAction[];
914
+ collapsible?: boolean;
915
+ emptyState?: TreeSectionEmptyState;
916
+ nodes: TreeNode[];
917
+ hiddenByDefault?: boolean;
918
+ /** When true, the section (category) opts in to the tree's hide/show customization menu. */
919
+ canHide?: boolean;
920
+ /** When false, the section stays fixed within the Sidenav main region. */
921
+ canReorder?: boolean;
922
+ }
923
+ interface TreeMoveEndpoint {
924
+ kind: "section" | "node";
925
+ sectionId: string;
926
+ id: string;
927
+ moveScope?: string;
928
+ }
929
+ type TreeMovePolicy = (move: {
930
+ source: TreeMoveEndpoint;
931
+ destination: TreeMoveEndpoint;
932
+ }) => boolean;
933
+ interface TreeRendererContribution {
934
+ id: string;
935
+ title: string;
936
+ icon?: string;
937
+ searchable?: boolean;
938
+ searchPlaceholder?: string;
939
+ when?: string;
940
+ defaultExpandedSectionIds?: string[];
941
+ defaultExpandedNodeIds?: string[];
942
+ /** Identify the navigation data scope when it differs from the current page resource. */
943
+ getReadKey?(ctx: TreeQueryContext): string;
944
+ getBody(ctx: TreeContext): Promise<TreeViewSection[]> | TreeViewSection[];
945
+ getHeader?(ctx: TreeContext): Promise<TreeViewSection[]> | TreeViewSection[];
946
+ getFooter?(ctx: TreeContext): Promise<TreeViewSection[]> | TreeViewSection[];
947
+ getChildren(node: TreeNode, ctx: TreeContext): Promise<TreeNode[]> | TreeNode[];
948
+ canMove?: TreeMovePolicy;
949
+ moveNode?(source: TreeNode, target: TreeNode | undefined, ctx: TreeContext): Promise<void> | void;
950
+ }
951
+ interface RegisteredTreeRendererContribution extends TreeRendererContribution, RegisteredContributionMetadata {}
952
+ interface TreeRendererState {
953
+ expandedNodeIds: string[];
954
+ expandedSectionIds: string[];
955
+ selectedNodeId?: string;
956
+ loading?: boolean;
957
+ }
958
+ interface TreeRendererRefreshEvent {
959
+ treeId: string;
960
+ }
961
+ interface TreeRendererStoreState {
962
+ trees: Record<string, RegisteredTreeRendererContribution>;
963
+ statesByTreeId: Record<string, TreeRendererState>;
964
+ refreshKeysByTreeId: Record<string, number>;
965
+ }
966
+ interface PersistedTreeRendererStates {
967
+ statesByTreeId: Record<string, TreeRendererState>;
968
+ }
969
+ interface TreeRendererPersistenceAdapter {
970
+ getTreeStates(): PersistedTreeRendererStates | undefined;
971
+ setTreeStates(states: PersistedTreeRendererStates): void;
972
+ }
973
+ type TreeRendererImplementation = (input: WorkbenchPanelRenderInput & {
974
+ treeId: string;
975
+ }) => unknown;
976
+ type TreeRendererRefreshListener = (event: TreeRendererRefreshEvent) => void;
977
+ interface TreeRendererRegistry {
978
+ treeStore: WorkbenchStore<TreeRendererStoreState>;
979
+ registerTreeRenderer(view: TreeRendererContribution, metadata?: ContributionMetadata): Disposable;
980
+ setTreeRendererImplementation(impl: TreeRendererImplementation): void;
981
+ getTreeRenderer(id: string): RegisteredTreeRendererContribution | undefined;
982
+ listTreeRenderers(): RegisteredTreeRendererContribution[];
983
+ getBody(id: string, ctx?: TreeQueryContext): Promise<TreeViewSection[]>;
984
+ getHeader(id: string, ctx?: TreeQueryContext): Promise<TreeViewSection[]>;
985
+ getFooter(id: string, ctx?: TreeQueryContext): Promise<TreeViewSection[]>;
986
+ getChildren(id: string, node: TreeNode, ctx?: TreeQueryContext): Promise<TreeNode[]>;
987
+ getTreeState(id: string): TreeRendererState;
988
+ setNodeExpanded(id: string, nodeId: string, expanded: boolean): void;
989
+ setSectionExpanded(id: string, sectionId: string, expanded: boolean): void;
990
+ setSelectedNode(id: string, nodeId: string | undefined): void;
991
+ setLoading(id: string, loading: boolean): void;
992
+ refresh(id: string): void;
993
+ onDidRefresh(listener: TreeRendererRefreshListener): Disposable;
994
+ }
995
+ //#endregion
996
+ //#region src/core/registries/renderers/view-toolbar-action.d.ts
997
+ interface ViewToolbarAction extends TreeAction {
998
+ presentation?: "primary" | "secondary";
999
+ }
1000
+ //#endregion
786
1001
  //#region src/core/registries/renderers/data-table-renderer-registry.d.ts
787
1002
  interface DataTableRendererThemeColor {
788
1003
  light: string;
@@ -870,6 +1085,7 @@ interface DataTableRendererSelectionAction {
870
1085
  interface DataTableRendererContribution {
871
1086
  id: string;
872
1087
  title: string;
1088
+ toolbarActions?: ViewToolbarAction[];
873
1089
  resourceKind?: string;
874
1090
  columns?: DataTableRendererColumn[];
875
1091
  selectionMode?: "none" | "multiple";
@@ -1026,7 +1242,6 @@ interface KanbanRendererSavedView {
1026
1242
  title: string;
1027
1243
  settings: KanbanRendererSettings;
1028
1244
  filters: KanbanRendererFilterState;
1029
- isDefault?: boolean;
1030
1245
  }
1031
1246
  type KanbanRendererCreateFieldType = "text" | "longtext" | "markdown" | "number" | "boolean" | "select" | "multi-select" | "files";
1032
1247
  interface KanbanRendererCreateField {
@@ -1088,6 +1303,29 @@ interface ResourceContextAction<TNode = unknown> {
1088
1303
  endContent?: TNode;
1089
1304
  separatorBefore?: boolean;
1090
1305
  }
1306
+ interface KanbanRendererViewsSource {
1307
+ views: (KanbanRendererSavedView & {
1308
+ builtIn: boolean;
1309
+ })[];
1310
+ defaultViewId: string;
1311
+ onCreateView: (input: {
1312
+ title: string;
1313
+ settings: KanbanRendererSettings;
1314
+ filters: KanbanRendererFilterState;
1315
+ copyFrom?: string;
1316
+ }) => Promise<KanbanRendererSavedView>;
1317
+ onUpdateView: (id: string, input: {
1318
+ title?: string;
1319
+ settings?: KanbanRendererSettings;
1320
+ filters?: KanbanRendererFilterState;
1321
+ }) => Promise<void>;
1322
+ onDeleteView: (id: string) => Promise<void>;
1323
+ onSetDefaultView: (id: string | null) => Promise<void>;
1324
+ }
1325
+ interface KanbanRendererViewsProvider {
1326
+ getSnapshot: () => KanbanRendererViewsSource | undefined;
1327
+ subscribe: (listener: () => void) => () => void;
1328
+ }
1091
1329
  //#endregion
1092
1330
  //#region src/core/registries/renderers/kanban-renderer-registry.d.ts
1093
1331
  interface KanbanRendererQueryState {
@@ -1097,6 +1335,7 @@ interface KanbanRendererQueryState {
1097
1335
  interface KanbanRendererContribution<TRow extends KanbanRendererRow = KanbanRendererRow, TNode = unknown, TIcon = unknown> {
1098
1336
  id: string;
1099
1337
  title: string;
1338
+ toolbarActions?: ViewToolbarAction[];
1100
1339
  resourceKind?: string;
1101
1340
  /** Host-owned scope for persisted display settings. */
1102
1341
  storageScope?: string;
@@ -1118,6 +1357,7 @@ interface KanbanRendererContribution<TRow extends KanbanRendererRow = KanbanRend
1118
1357
  /** Initial settings/filters applied when the kanban renderer mounts. */
1119
1358
  defaultSettings?: Partial<KanbanRendererSettings>;
1120
1359
  defaultFilters?: KanbanRendererFilterState;
1360
+ viewsProvider?: KanbanRendererViewsProvider;
1121
1361
  defaultViews?: KanbanRendererSavedView[];
1122
1362
  defaultActiveViewId?: string;
1123
1363
  /**
@@ -1144,202 +1384,6 @@ interface KanbanRendererContribution<TRow extends KanbanRendererRow = KanbanRend
1144
1384
  onColumnAction?: (columnId: string, actionId: string) => Promise<void> | void;
1145
1385
  }
1146
1386
  //#endregion
1147
- //#region src/core/registries/menus/menu-registry.d.ts
1148
- type MenuPath = readonly string[];
1149
- interface MenuItem {
1150
- commandId: string;
1151
- sourceCommandId?: string;
1152
- label?: string;
1153
- description?: string;
1154
- icon?: string;
1155
- iconSrc?: string;
1156
- overflowLabel?: string;
1157
- when?: string;
1158
- group?: string;
1159
- order?: number;
1160
- args?: unknown;
1161
- readOnly?: boolean;
1162
- /** Marks a menu action that navigates outside the app, rendered with a trailing external-link icon. */
1163
- external?: boolean;
1164
- }
1165
- interface RegisteredMenuItem extends MenuItem, RegisteredContributionMetadata {
1166
- path: MenuPath;
1167
- }
1168
- interface MenuRegistryStoreState {
1169
- itemsByPath: Record<string, RegisteredMenuItem[]>;
1170
- }
1171
- interface MenuRegistry {
1172
- menuStore: WorkbenchStore<MenuRegistryStoreState>;
1173
- registerMenuItem(path: MenuPath, item: MenuItem, metadata?: ContributionMetadata): Disposable;
1174
- listMenuItems(path: MenuPath): RegisteredMenuItem[];
1175
- }
1176
- //#endregion
1177
- //#region src/core/registries/renderers/tree-renderer-types.d.ts
1178
- interface TreeQueryContext {
1179
- signal?: AbortSignal;
1180
- /** Publish available sections while the rest of the current read is still loading. */
1181
- onProgress?(sections: TreeViewSection[]): void;
1182
- filter?: string;
1183
- resource?: ResourceRef$1;
1184
- /** Widget/view contribution id for trees rendered through a view-backed widget. */
1185
- viewId?: string;
1186
- }
1187
- interface TreeContext extends TreeQueryContext {
1188
- state: Readonly<TreeRendererState>;
1189
- refresh(): void;
1190
- setSelectedNode(nodeId: string | undefined): void;
1191
- }
1192
- interface TreeAction {
1193
- id: string;
1194
- label?: string;
1195
- icon?: string;
1196
- commandId?: string;
1197
- args?: unknown;
1198
- params?: CommandParamSchema;
1199
- submitLabel?: string;
1200
- when?: string;
1201
- disabled?: boolean;
1202
- run?(args?: unknown): Promise<void> | void;
1203
- }
1204
- type TreeNodeRowVariant = "empty-state";
1205
- interface TreeNodeInlineInput {
1206
- ariaLabel: string;
1207
- defaultValue?: string;
1208
- placeholder?: string;
1209
- onCommit(value: string): Promise<void> | void;
1210
- onCancel?(): void;
1211
- }
1212
- interface TreeNode {
1213
- id: string;
1214
- selected?: boolean;
1215
- /** Host-owned customization boundary. Extension callbacks cannot set it. */
1216
- moveScope?: string;
1217
- label: string;
1218
- icon?: string;
1219
- iconElement?: unknown;
1220
- iconColor?: string;
1221
- iconTooltip?: string;
1222
- endContent?: unknown;
1223
- commandId?: string;
1224
- resource?: ResourceRef$1;
1225
- target?: NavigationTarget$1;
1226
- /** Visual row variant for non-data rows such as placeholders. */
1227
- rowVariant?: TreeNodeRowVariant;
1228
- inlineInput?: TreeNodeInlineInput;
1229
- actions?: TreeAction[];
1230
- contextMenuActions?: TreeAction[];
1231
- contextMenuPath?: MenuPath;
1232
- menuPath?: MenuPath;
1233
- menuPlacement?: "top-start" | "top-end" | "bottom-start" | "bottom-end" | "right-start" | "left-start";
1234
- showContextMenuTrigger?: boolean;
1235
- collapsible?: boolean;
1236
- disabled?: boolean;
1237
- children?: TreeNode[];
1238
- description?: string;
1239
- contextValue?: string;
1240
- hiddenByDefault?: boolean;
1241
- /** When true, the node (e.g. a header/footer row) opts in to the tree's hide/show customization menu. */
1242
- canHide?: boolean;
1243
- /** When false, the node stays fixed within its Sidenav group. */
1244
- canReorder?: boolean;
1245
- /** Allow this node to be moved to another tree location. */
1246
- canDrag?: boolean;
1247
- /** Allow movable nodes to be dropped on this node. */
1248
- canDrop?: boolean;
1249
- }
1250
- interface TreeSectionEmptyState {
1251
- title: string;
1252
- description?: string;
1253
- icon?: string;
1254
- }
1255
- interface TreeViewSection {
1256
- id: string;
1257
- /** Host-owned customization boundary. Extension callbacks cannot set it. */
1258
- moveScope?: string;
1259
- label?: string;
1260
- actions?: TreeAction[];
1261
- collapsible?: boolean;
1262
- emptyState?: TreeSectionEmptyState;
1263
- nodes: TreeNode[];
1264
- hiddenByDefault?: boolean;
1265
- /** When true, the section (category) opts in to the tree's hide/show customization menu. */
1266
- canHide?: boolean;
1267
- /** When false, the section stays fixed within the Sidenav main region. */
1268
- canReorder?: boolean;
1269
- }
1270
- interface TreeMoveEndpoint {
1271
- kind: "section" | "node";
1272
- sectionId: string;
1273
- id: string;
1274
- moveScope?: string;
1275
- }
1276
- type TreeMovePolicy = (move: {
1277
- source: TreeMoveEndpoint;
1278
- destination: TreeMoveEndpoint;
1279
- }) => boolean;
1280
- interface TreeRendererContribution {
1281
- id: string;
1282
- title: string;
1283
- icon?: string;
1284
- searchable?: boolean;
1285
- searchPlaceholder?: string;
1286
- when?: string;
1287
- defaultExpandedSectionIds?: string[];
1288
- defaultExpandedNodeIds?: string[];
1289
- /** Identify the navigation data scope when it differs from the current page resource. */
1290
- getReadKey?(ctx: TreeQueryContext): string;
1291
- getBody(ctx: TreeContext): Promise<TreeViewSection[]> | TreeViewSection[];
1292
- getHeader?(ctx: TreeContext): Promise<TreeViewSection[]> | TreeViewSection[];
1293
- getFooter?(ctx: TreeContext): Promise<TreeViewSection[]> | TreeViewSection[];
1294
- getChildren(node: TreeNode, ctx: TreeContext): Promise<TreeNode[]> | TreeNode[];
1295
- canMove?: TreeMovePolicy;
1296
- moveNode?(source: TreeNode, target: TreeNode | undefined, ctx: TreeContext): Promise<void> | void;
1297
- }
1298
- interface RegisteredTreeRendererContribution extends TreeRendererContribution, RegisteredContributionMetadata {}
1299
- interface TreeRendererState {
1300
- expandedNodeIds: string[];
1301
- expandedSectionIds: string[];
1302
- selectedNodeId?: string;
1303
- loading?: boolean;
1304
- }
1305
- interface TreeRendererRefreshEvent {
1306
- treeId: string;
1307
- }
1308
- interface TreeRendererStoreState {
1309
- trees: Record<string, RegisteredTreeRendererContribution>;
1310
- statesByTreeId: Record<string, TreeRendererState>;
1311
- refreshKeysByTreeId: Record<string, number>;
1312
- }
1313
- interface PersistedTreeRendererStates {
1314
- statesByTreeId: Record<string, TreeRendererState>;
1315
- }
1316
- interface TreeRendererPersistenceAdapter {
1317
- getTreeStates(): PersistedTreeRendererStates | undefined;
1318
- setTreeStates(states: PersistedTreeRendererStates): void;
1319
- }
1320
- type TreeRendererImplementation = (input: WorkbenchPanelRenderInput & {
1321
- treeId: string;
1322
- }) => unknown;
1323
- type TreeRendererRefreshListener = (event: TreeRendererRefreshEvent) => void;
1324
- interface TreeRendererRegistry {
1325
- treeStore: WorkbenchStore<TreeRendererStoreState>;
1326
- registerTreeRenderer(view: TreeRendererContribution, metadata?: ContributionMetadata): Disposable;
1327
- setTreeRendererImplementation(impl: TreeRendererImplementation): void;
1328
- getTreeRenderer(id: string): RegisteredTreeRendererContribution | undefined;
1329
- listTreeRenderers(): RegisteredTreeRendererContribution[];
1330
- getBody(id: string, ctx?: TreeQueryContext): Promise<TreeViewSection[]>;
1331
- getHeader(id: string, ctx?: TreeQueryContext): Promise<TreeViewSection[]>;
1332
- getFooter(id: string, ctx?: TreeQueryContext): Promise<TreeViewSection[]>;
1333
- getChildren(id: string, node: TreeNode, ctx?: TreeQueryContext): Promise<TreeNode[]>;
1334
- getTreeState(id: string): TreeRendererState;
1335
- setNodeExpanded(id: string, nodeId: string, expanded: boolean): void;
1336
- setSectionExpanded(id: string, sectionId: string, expanded: boolean): void;
1337
- setSelectedNode(id: string, nodeId: string | undefined): void;
1338
- setLoading(id: string, loading: boolean): void;
1339
- refresh(id: string): void;
1340
- onDidRefresh(listener: TreeRendererRefreshListener): Disposable;
1341
- }
1342
- //#endregion
1343
1387
  //#region src/core/registries/views/renderer-read-registry.d.ts
1344
1388
  interface RendererReadRequest<T> {
1345
1389
  queryKey: string;
@@ -1356,9 +1400,7 @@ interface RendererReadRegistry {
1356
1400
  bind(key: string): RendererReadBinding;
1357
1401
  dispose(): Promise<void>;
1358
1402
  }
1359
- declare const createRendererReadRegistry: (options?: {
1360
- deadlineMs?: number;
1361
- }) => RendererReadRegistry;
1403
+ declare const createRendererReadRegistry: () => RendererReadRegistry;
1362
1404
  //#endregion
1363
1405
  //#region src/core/registries/views/view-registry.d.ts
1364
1406
  declare const workbenchViewIdContextKey = "workbench.view.id";
@@ -1804,11 +1846,11 @@ interface NavigationTreeContribution {
1804
1846
  }
1805
1847
  interface NavigationTreeRegistry {
1806
1848
  registerContribution(contribution: NavigationTreeContribution): Disposable;
1807
- resolveOwner(kind: NavigationTreeOwner["kind"], id: string): NavigationTreeOwner | undefined;
1849
+ resolveOwner(kind: NavigationTreeOwner["kind"], id: string, slot?: NavigationTreeSlot): NavigationTreeOwner | undefined;
1808
1850
  getReadKey(owner: NavigationTreeOwner, context?: NavigationTreeContext): string;
1809
1851
  getSections(owner: NavigationTreeOwner, slot?: NavigationTreeSlot, context?: NavigationTreeContext): Promise<TreeViewSection[]>;
1810
1852
  getChildren(node: TreeNode, context?: NavigationTreeContext): Promise<TreeNode[]>;
1811
- getDefaultExpandedSectionIds(owner: NavigationTreeOwner): string[];
1853
+ getDefaultExpandedSectionIds(owner: NavigationTreeOwner, slot?: NavigationTreeSlot): string[];
1812
1854
  onDidChange(listener: () => void): Disposable;
1813
1855
  }
1814
1856
  //#endregion
@@ -2355,6 +2397,28 @@ interface WorkbenchCompositionController {
2355
2397
  panelsFor(region: WorkbenchPanelRegion): WorkbenchCompositionRegionPanels;
2356
2398
  }
2357
2399
  //#endregion
2400
+ //#region src/core/controllers/page-location/navigation-level-composition.d.ts
2401
+ interface LevelNavigationHost {
2402
+ modes: {
2403
+ getActiveModeId(): string | undefined;
2404
+ };
2405
+ pages: {
2406
+ store: {
2407
+ getState(): {
2408
+ location?: PageLocation;
2409
+ pages: Readonly<Record<string, WorkbenchPageContribution>>;
2410
+ };
2411
+ };
2412
+ };
2413
+ navigationTrees: NavigationTreeRegistry;
2414
+ getPrimaryResource(): ResourceRef | undefined;
2415
+ }
2416
+ declare const createLevelNavigation: (host: LevelNavigationHost) => {
2417
+ getReadKey: () => string;
2418
+ getSections(slot: NavigationTreeSlot, signal?: AbortSignal): Promise<TreeViewSection[]>;
2419
+ getDefaultExpandedSectionIds: () => string[];
2420
+ };
2421
+ //#endregion
2358
2422
  //#region src/core/registries/layout/surface-map.d.ts
2359
2423
  type AnchorId = "primary" | "secondary" | "attached";
2360
2424
  declare const resolveAnchorRegion: (anchorId: AnchorId) => "activity" | "sidenav" | "main" | "secondary" | "side" | "status" | "nav" | "main-header" | "main-left-menu" | "main-right-menu" | "secondary-header" | "secondary-left-menu" | "secondary-right-menu" | "side-header" | "side-left-menu" | "side-right-menu" | "overlay";
@@ -2389,5 +2453,5 @@ declare const settleReadBatch: <T>(tasks: ((signal: AbortSignal) => Promise<T> |
2389
2453
  /** Commit related stores before their subscribers read the resulting workbench state. */
2390
2454
  declare const batchWorkbenchChanges: <Result>(commit: () => Result) => Result;
2391
2455
  //#endregion
2392
- export { WorkbenchStatusBarItem as $, resourceHierarchyCycleCode as $i, AttributeDescriptor as $n, WorkbenchPanelTab as $r, WorkbenchTerminalSessionError as $t, WorkbenchHost as A, CommandRegistry as Ai, createViewRegistry as An, DataTableRendererQueryContext as Ar, WorkbenchNotification as At, ThemePreference as B, ResourceRegistry as Bi, TreeNode as Bn, ControlsRendererLayout as Br, WorkbenchModePlacementRegistry as Bt, WorkbenchModeContribution as C, WorkbenchCommandPaletteController as Ci, WorkbenchViewMenuRegistry as Cn, FileRendererRefreshOrigin as Cr, WorkbenchShellPlacementRegistry as Ct, createWorkbench as D, CommandParamDescriptor as Di, WorkbenchViewContribution as Dn, DataTableRendererColumnRenderer as Dr, WorkbenchOverlayRegistry as Dt, isWorkbenchModePanelAvailable as E, CommandHandler as Ei, WorkbenchViewBody as En, DataTableRendererColumn as Er, WorkbenchOverlayContribution as Et, WorkbenchPagePersistenceScopeInput as F, ResourceBrowseEntry as Fi, createRendererReadRegistry as Fn, DataTableRendererThemeColor as Fr, NavigationTreeContribution as Ft, FileIconThemeFont as G, workbenchResourceMetadataContextKey as Gi, TreeRendererState as Gn, WorkbenchFocusRegionId as Gr, getKeybindingSteps as Gt, ThemePreferenceOption as H, createWorkbenchSelectionResourceMetadata as Hi, TreeQueryContext as Hn, ControlsUpdateValueInput as Hr, Keybinding as Ht, WorkbenchPersistenceAdapter as I, ResourceKindContribution as Ii, TreeAction as In, RegisteredDataTableRendererContribution as Ir, NavigationTreeOwner as It, WorkbenchStatusRegistryState as J, ResourceHierarchyCycle as Ji, MenuPath as Jn, RegisteredWidgetContribution as Jr, CommandPaletteResourceQueryContext as Jt, FileIconThemePreferenceOption as K, workbenchResourceTypeContextKey as Ki, TreeViewSection as Kn, LayoutPersistenceAdapter as Kr, CommandPaletteResourceProvider as Kt, WorkbenchSnapshot as L, ResourceListContext as Li, TreeContext as Ln, ControlsApplyInput as Lr, NavigationTreeRegistry as Lt, WorkbenchModuleContribution as M, WorkbenchCommandExecutionError as Mi, RendererReadBinding as Mn, DataTableRendererRow as Mr, WorkbenchNotificationEvent as Mt, WorkbenchModuleContributionContext as N, WorkbenchBreadcrumbController as Ni, RendererReadRegistry as Nn, DataTableRendererRowAction as Nr, WorkbenchNotificationLevel as Nt, WorkbenchCore as O, CommandParamOption as Oi, WorkbenchViewRegistry as On, DataTableRendererColumnStat as Or, NotificationRegistry as Ot, WorkbenchPagePersistenceScope as P, WorkbenchBreadcrumbItem as Pi, RendererReadRequest as Pn, DataTableRendererSelectionAction as Pr, NavigationTreeContext as Pt, createStatusRegistry as Q, isWorkbenchViewHierarchyNode as Qi, KanbanRendererQueryState as Qn, WorkbenchPanelMountStrategy as Qr, WorkbenchTerminalSessionAdapter as Qt, createWorkbenchInput as R, ResourceProvider as Ri, TreeMoveEndpoint as Rn, ControlsQueryResult$1 as Rr, NavigationTreeSlot as Rt, WorkbenchModeAddablePanelContext as S, NavigationTargetPanel$1 as Si, WorkbenchViewMenuContribution as Sn, FileRendererRefreshEnvelope as Sr, WorkbenchShellPlacementContribution as St, getWorkbenchModePanelForRegion as T, Command as Ti, WorkbenchReactViewBody as Tn, DataTableRendererBadgePalette as Tr, WorkbenchPlaceholderRegistry as Tt, ThemePreferenceTokens as U, getWorkbenchSelectionResourceKeys as Ui, TreeRendererContribution as Un, WorkbenchPanelRenderInput as Ur, KeybindingRegistry as Ut, ThemePreferenceMode as V, createWorkbenchResourceContextValues as Vi, TreeNodeInlineInput as Vn, ControlsResetInput as Vr, WorkbenchOwnedPlacementItem as Vt, FileIconThemeRegistry as W, workbenchResourceIdContextKey as Wi, TreeRendererPersistenceAdapter as Wn, WorkbenchFocusController as Wr, KeybindingSequence as Wt, WorkflowStatus as X, WorkbenchHierarchyNode as Xi, RegisteredMenuItem as Xn, WorkbenchLayout as Xr, CommandPaletteResourceResult as Xt, WorkbenchStatusSetContribution as Y, ResourceHierarchyProvider as Yi, MenuRegistry as Yn, WorkbenchCommandTarget as Yr, CommandPaletteResourceRegistry as Yt, WorkflowStatusAction as Z, WorkbenchViewHierarchyNode as Zi, KanbanRendererContribution as Zn, WorkbenchPanelInstance as Zr, WorkbenchTerminalController as Zt, resolveAnchorRegion as _, NavigationRegistry as _i, WorkbenchPageLocationDiagnostic as _n, ResourceContextAction as _r, PreferenceRegistry as _t, standardResourceIcons as a, matchesContextExpression as aa, WorkbenchTabRetention as ai, WorkbenchTerminalSessionStatus as an, BoardColumnConfig as ar, SchemaSettingsPanel as at, WorkbenchModeActivationResult as b, NavigationTargetCompound as bi, WorkbenchPageContribution as bn, FileRendererContent as br, PreferenceScopeRef as bt, headerLeadingMenuPath as c, WorkbenchWidgetTab as ci, WorkbenchShellOpenRegion as cn, EnumOptionsSource as cr, SettingsPanelBase as ct, workbenchCommandPaletteMenuPath as d, WorkbenchPanelRegion as di, WorkbenchSidePanelMode as dn, KanbanRendererCreateRowConfig as dr, SettingsRegistry as dt, ContributionMetadata as ea, WorkbenchRegionSize as ei, WorkbenchTerminalSessionExit as en, AttributeDisplayDescriptor as er, WorkbenchStatusBarRegistry as et, workbenchRegionTabAddMenuPath as f, WorkbenchRegion as fi, WorkbenchSidePanelPersistenceAdapter as fn, KanbanRendererCreateSubmission as fr, SettingsScope as ft, AnchorId as g, NavigationParser as gi, WorkbenchPageLocationController as gn, KanbanRendererSettings as gr, PreferencePropertySchema as gt, workbenchTopHeaderTrailingMenuPath as h, NavigationDispatcherContext as hi, WorkbenchPageLocationBrowser as hn, KanbanRendererRow as hr, PreferencePersistenceAdapter as ht, StandardResourceIcon as i, ContextKeyValue as ia, WorkbenchTabPosition as ii, WorkbenchTerminalSessionSink as in, BoardColumnAction as ir, CollectionSettingsPanel as it, WorkbenchModuleContext as j, WorkbenchCommandExecutionContext as ji, workbenchViewIdContextKey as jn, DataTableRendererQueryResult as jr, WorkbenchNotificationAction as jt, WorkbenchCoreContributionContext as k, CommandParamSchema as ki, WorkbenchViewRegistryStoreState as kn, DataTableRendererContribution as kr, RegisteredWorkbenchNotification as kt, headerTrailingMenuPath as l, WorkbenchPanelMenuRegion as li, WorkbenchShellRegionState as ln, KanbanRendererCreateField as lr, SettingsPanelContribution as lt, workbenchTopHeaderLeadingMenuPath as m, workbenchRegions as mi, WorkbenchPageBrowserEntry as mn, KanbanRendererOrdering as mr, ViewSettingsPanel as mt, settleReadBatch as n, ContextKeyScope as na, WorkbenchTabMenuGroup as ni, WorkbenchTerminalSessionOpener as nn, AttributeType as nr, WorkbenchStatusBarSlot as nt, DockedWorkbenchRegion$1 as o, WorkbenchStore as oa, WorkbenchTabSnapshot as oi, WorkbenchTerminalState as on, EnumOption as or, SettingsAction as ot, workbenchRegionTabLeadingMenuPath as p, workbenchPanelRegions as pi, WorkbenchPanelMenuStatePersistenceAdapter as pn, KanbanRendererFilterState as pr, SettingsSectionContribution as pt, WorkbenchStatusRegistry as q, workbenchSelectionResourceKeyMetadataKey as qi, MenuItem as qn, RegisteredPlaceholderContribution as qr, CommandPaletteResourceProviderResult as qt, rendererReadKey as r, ContextKeyService as ra, WorkbenchTabMenuRow as ri, WorkbenchTerminalSessionRequest as rn, AttributesSource as rr, createStatusBarRegistry as rt, dockedWorkbenchRegions as s, Disposable as sa, WorkbenchWidgetPlacement as si, WorkbenchShellController as sn, EnumOptions as sr, SettingsCollectionGroupBy as st, batchWorkbenchChanges as t, ContributionSource as ta, WorkbenchTabAction as ti, WorkbenchTerminalSessionModel as tn, AttributeKind as tr, WorkbenchStatusBarRegistryState as tt, resourceContextMenuPath as u, WorkbenchPanelMenuSide as ui, WorkbenchSidePanelPresentation as un, KanbanRendererCreateFieldType as ur, SettingsPanelPreference as ut, defaultPageResourceCodec as v, NavigationTarget$1 as vi, WorkbenchPageLocationPersistence as vn, SortDirection as vr, PreferenceSchemaContribution as vt, WorkbenchModeRegistry as w, WorkbenchCommandPaletteOpenInput as wi, RegisteredWorkbenchView as wn, FileRendererSaveResult as wr, WorkbenchPlaceholderContribution as wt, WorkbenchModeAddablePanel as x, NavigationTargetItem as xi, WorkbenchPlacementPresentation as xn, FileRendererContribution as xr, PreferenceValue as xt, WorkbenchModeActivationContext as y, NavigationTargetCommand as yi, WorkbenchPageNavigationResult as yn, ViewMode as yr, PreferenceScope as yt, ThemeRegistry as z, ResourceRef$1 as zi, TreeMovePolicy as zn, ControlsRendererContribution as zr, WorkbenchModePlacementContribution as zt };
2456
+ export { createStatusRegistry as $, WorkbenchHierarchyNode as $i, KanbanRendererFilterState as $n, WorkbenchLayout as $r, WorkbenchTerminalSessionAdapter as $t, WorkbenchCoreContributionContext as A, CommandParamDescriptor as Ai, WorkbenchViewRegistryStoreState as An, TreeNodeInlineInput as Ar, RegisteredWorkbenchNotification as At, ThemeRegistry as B, ResourceListContext as Bi, AttributeDisplayDescriptor as Bn, ControlsApplyInput as Br, WorkbenchModePlacementContribution as Bt, WorkbenchModeAddablePanelContext as C, NavigationTargetCompound as Ci, WorkbenchViewMenuContribution as Cn, DataTableRendererThemeColor as Cr, WorkbenchShellPlacementContribution as Ct, isWorkbenchModePanelAvailable as D, WorkbenchCommandPaletteOpenInput as Di, WorkbenchViewBody as Dn, TreeMoveEndpoint as Dr, WorkbenchOverlayContribution as Dt, getWorkbenchModePanelForRegion as E, WorkbenchCommandPaletteController as Ei, WorkbenchReactViewBody as En, TreeContext as Er, WorkbenchPlaceholderRegistry as Et, WorkbenchPagePersistenceScope as F, WorkbenchCommandExecutionError as Fi, RendererReadRequest as Fn, TreeViewSection as Fr, NavigationTreeContext as Ft, FileIconThemeRegistry as G, createWorkbenchSelectionResourceMetadata as Gi, BoardColumnConfig as Gn, ControlsUpdateValueInput as Gr, KeybindingSequence as Gt, ThemePreferenceMode as H, ResourceRef$1 as Hi, AttributeType as Hn, ControlsRendererContribution as Hr, WorkbenchOwnedPlacementItem as Ht, WorkbenchPagePersistenceScopeInput as I, WorkbenchBreadcrumbController as Ii, createRendererReadRegistry as In, MenuItem as Ir, NavigationTreeContribution as It, WorkbenchStatusRegistry as J, workbenchResourceMetadataContextKey as Ji, EnumOptionsSource as Jn, WorkbenchFocusRegionId as Jr, CommandPaletteResourceProviderResult as Jt, FileIconThemeFont as K, getWorkbenchSelectionResourceKeys as Ki, EnumOption as Kn, WorkbenchPanelRenderInput as Kr, getKeybindingSteps as Kt, WorkbenchPersistenceAdapter as L, WorkbenchBreadcrumbItem as Li, KanbanRendererContribution as Ln, MenuPath as Lr, NavigationTreeOwner as Lt, WorkbenchModuleContext as M, CommandParamSchema as Mi, workbenchViewIdContextKey as Mn, TreeRendererContribution as Mr, WorkbenchNotificationAction as Mt, WorkbenchModuleContribution as N, CommandRegistry as Ni, RendererReadBinding as Nn, TreeRendererPersistenceAdapter as Nr, WorkbenchNotificationEvent as Nt, createWorkbench as O, Command as Oi, WorkbenchViewContribution as On, TreeMovePolicy as Or, WorkbenchOverlayRegistry as Ot, WorkbenchModuleContributionContext as P, WorkbenchCommandExecutionContext as Pi, RendererReadRegistry as Pn, TreeRendererState as Pr, WorkbenchNotificationLevel as Pt, WorkflowStatusAction as Q, ResourceHierarchyProvider as Qi, KanbanRendererCreateSubmission as Qn, WorkbenchCommandTarget as Qr, WorkbenchTerminalController as Qt, WorkbenchSnapshot as R, ResourceBrowseEntry as Ri, KanbanRendererQueryState as Rn, MenuRegistry as Rr, NavigationTreeRegistry as Rt, WorkbenchModeAddablePanel as S, NavigationTargetCommand as Si, WorkbenchPlacementPresentation as Sn, DataTableRendererSelectionAction as Sr, PreferenceValue as St, WorkbenchModeRegistry as T, NavigationTargetPanel$1 as Ti, RegisteredWorkbenchView as Tn, TreeAction as Tr, WorkbenchPlaceholderContribution as Tt, ThemePreferenceOption as U, ResourceRegistry as Ui, AttributesSource as Un, ControlsRendererLayout as Ur, Keybinding as Ut, ThemePreference as V, ResourceProvider as Vi, AttributeKind as Vn, ControlsQueryResult$1 as Vr, WorkbenchModePlacementRegistry as Vt, ThemePreferenceTokens as W, createWorkbenchResourceContextValues as Wi, BoardColumnAction as Wn, ControlsResetInput as Wr, KeybindingRegistry as Wt, WorkbenchStatusSetContribution as X, workbenchSelectionResourceKeyMetadataKey as Xi, KanbanRendererCreateFieldType as Xn, RegisteredPlaceholderContribution as Xr, CommandPaletteResourceRegistry as Xt, WorkbenchStatusRegistryState as Y, workbenchResourceTypeContextKey as Yi, KanbanRendererCreateField as Yn, LayoutPersistenceAdapter as Yr, CommandPaletteResourceQueryContext as Yt, WorkflowStatus as Z, ResourceHierarchyCycle as Zi, KanbanRendererCreateRowConfig as Zn, RegisteredWidgetContribution as Zr, CommandPaletteResourceResult as Zt, resolveAnchorRegion as _, workbenchRegions as _i, WorkbenchPageLocationController as _n, DataTableRendererContribution as _r, PreferencePropertySchema as _t, standardResourceIcons as a, ContextKeyScope as aa, WorkbenchTabMenuGroup as ai, WorkbenchTerminalSessionSink as an, ResourceContextAction as ar, CollectionSettingsPanel as at, WorkbenchModeActivationContext as b, NavigationRegistry as bi, WorkbenchPageNavigationResult as bn, DataTableRendererRow as br, PreferenceScope as bt, headerLeadingMenuPath as c, matchesContextExpression as ca, WorkbenchTabRetention as ci, WorkbenchShellController as cn, FileRendererContent as cr, SettingsCollectionGroupBy as ct, workbenchCommandPaletteMenuPath as d, WorkbenchWidgetTab as di, WorkbenchSidePanelPresentation as dn, FileRendererRefreshOrigin as dr, SettingsPanelPreference as dt, WorkbenchViewHierarchyNode as ea, WorkbenchPanelInstance as ei, WorkbenchTerminalSessionError as en, KanbanRendererOrdering as er, WorkbenchStatusBarItem as et, workbenchRegionTabAddMenuPath as f, WorkbenchPanelMenuRegion as fi, WorkbenchSidePanelMode as fn, FileRendererSaveResult as fr, SettingsRegistry as ft, AnchorId as g, workbenchPanelRegions as gi, WorkbenchPageLocationBrowser as gn, DataTableRendererColumnStat as gr, PreferencePersistenceAdapter as gt, workbenchTopHeaderTrailingMenuPath as h, WorkbenchRegion as hi, WorkbenchPageBrowserEntry as hn, DataTableRendererColumnRenderer as hr, ViewSettingsPanel as ht, StandardResourceIcon as i, ContributionSource as ia, WorkbenchTabAction as ii, WorkbenchTerminalSessionRequest as in, KanbanRendererViewsSource as ir, createStatusBarRegistry as it, WorkbenchHost as j, CommandParamOption as ji, createViewRegistry as jn, TreeQueryContext as jr, WorkbenchNotification as jt, WorkbenchCore as k, CommandHandler as ki, WorkbenchViewRegistry as kn, TreeNode as kr, NotificationRegistry as kt, headerTrailingMenuPath as l, WorkbenchStore as la, WorkbenchTabSnapshot as li, WorkbenchShellOpenRegion as ln, FileRendererContribution as lr, SettingsPanelBase as lt, workbenchTopHeaderLeadingMenuPath as m, WorkbenchPanelRegion as mi, WorkbenchPanelMenuStatePersistenceAdapter as mn, DataTableRendererColumn as mr, SettingsSectionContribution as mt, settleReadBatch as n, resourceHierarchyCycleCode as na, WorkbenchPanelTab as ni, WorkbenchTerminalSessionModel as nn, KanbanRendererSettings as nr, WorkbenchStatusBarRegistryState as nt, DockedWorkbenchRegion$1 as o, ContextKeyService as oa, WorkbenchTabMenuRow as oi, WorkbenchTerminalSessionStatus as on, SortDirection as or, SchemaSettingsPanel as ot, workbenchRegionTabLeadingMenuPath as p, WorkbenchPanelMenuSide as pi, WorkbenchSidePanelPersistenceAdapter as pn, DataTableRendererBadgePalette as pr, SettingsScope as pt, FileIconThemePreferenceOption as q, workbenchResourceIdContextKey as qi, EnumOptions as qn, WorkbenchFocusController as qr, CommandPaletteResourceProvider as qt, rendererReadKey as r, ContributionMetadata as ra, WorkbenchRegionSize as ri, WorkbenchTerminalSessionOpener as rn, KanbanRendererViewsProvider as rr, WorkbenchStatusBarSlot as rt, dockedWorkbenchRegions as s, ContextKeyValue as sa, WorkbenchTabPosition as si, WorkbenchTerminalState as sn, ViewMode as sr, SettingsAction as st, batchWorkbenchChanges as t, isWorkbenchViewHierarchyNode as ta, WorkbenchPanelMountStrategy as ti, WorkbenchTerminalSessionExit as tn, KanbanRendererRow as tr, WorkbenchStatusBarRegistry as tt, resourceContextMenuPath as u, Disposable as ua, WorkbenchWidgetPlacement as ui, WorkbenchShellRegionState as un, FileRendererRefreshEnvelope as ur, SettingsPanelContribution as ut, defaultPageResourceCodec as v, NavigationDispatcherContext as vi, WorkbenchPageLocationDiagnostic as vn, DataTableRendererQueryContext as vr, PreferenceRegistry as vt, WorkbenchModeContribution as w, NavigationTargetItem as wi, WorkbenchViewMenuRegistry as wn, RegisteredDataTableRendererContribution as wr, WorkbenchShellPlacementRegistry as wt, WorkbenchModeActivationResult as x, NavigationTarget$1 as xi, WorkbenchPageContribution as xn, DataTableRendererRowAction as xr, PreferenceScopeRef as xt, createLevelNavigation as y, NavigationParser as yi, WorkbenchPageLocationPersistence as yn, DataTableRendererQueryResult as yr, PreferenceSchemaContribution as yt, createWorkbenchInput as z, ResourceKindContribution as zi, AttributeDescriptor as zn, RegisteredMenuItem as zr, NavigationTreeSlot as zt };
2393
2457
  export {};