@pstdio/workbench 0.38.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,13 +168,20 @@ 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;
179
187
  /** Workspace provider ids a `workspace` param may offer. */
@@ -785,6 +793,211 @@ interface ControlsRendererContribution {
785
793
  subscribe?: (listener: () => void) => Disposable | (() => void);
786
794
  }
787
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
788
1001
  //#region src/core/registries/renderers/data-table-renderer-registry.d.ts
789
1002
  interface DataTableRendererThemeColor {
790
1003
  light: string;
@@ -872,6 +1085,7 @@ interface DataTableRendererSelectionAction {
872
1085
  interface DataTableRendererContribution {
873
1086
  id: string;
874
1087
  title: string;
1088
+ toolbarActions?: ViewToolbarAction[];
875
1089
  resourceKind?: string;
876
1090
  columns?: DataTableRendererColumn[];
877
1091
  selectionMode?: "none" | "multiple";
@@ -1028,7 +1242,6 @@ interface KanbanRendererSavedView {
1028
1242
  title: string;
1029
1243
  settings: KanbanRendererSettings;
1030
1244
  filters: KanbanRendererFilterState;
1031
- isDefault?: boolean;
1032
1245
  }
1033
1246
  type KanbanRendererCreateFieldType = "text" | "longtext" | "markdown" | "number" | "boolean" | "select" | "multi-select" | "files";
1034
1247
  interface KanbanRendererCreateField {
@@ -1090,6 +1303,29 @@ interface ResourceContextAction<TNode = unknown> {
1090
1303
  endContent?: TNode;
1091
1304
  separatorBefore?: boolean;
1092
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
+ }
1093
1329
  //#endregion
1094
1330
  //#region src/core/registries/renderers/kanban-renderer-registry.d.ts
1095
1331
  interface KanbanRendererQueryState {
@@ -1099,6 +1335,7 @@ interface KanbanRendererQueryState {
1099
1335
  interface KanbanRendererContribution<TRow extends KanbanRendererRow = KanbanRendererRow, TNode = unknown, TIcon = unknown> {
1100
1336
  id: string;
1101
1337
  title: string;
1338
+ toolbarActions?: ViewToolbarAction[];
1102
1339
  resourceKind?: string;
1103
1340
  /** Host-owned scope for persisted display settings. */
1104
1341
  storageScope?: string;
@@ -1120,6 +1357,7 @@ interface KanbanRendererContribution<TRow extends KanbanRendererRow = KanbanRend
1120
1357
  /** Initial settings/filters applied when the kanban renderer mounts. */
1121
1358
  defaultSettings?: Partial<KanbanRendererSettings>;
1122
1359
  defaultFilters?: KanbanRendererFilterState;
1360
+ viewsProvider?: KanbanRendererViewsProvider;
1123
1361
  defaultViews?: KanbanRendererSavedView[];
1124
1362
  defaultActiveViewId?: string;
1125
1363
  /**
@@ -1146,202 +1384,6 @@ interface KanbanRendererContribution<TRow extends KanbanRendererRow = KanbanRend
1146
1384
  onColumnAction?: (columnId: string, actionId: string) => Promise<void> | void;
1147
1385
  }
1148
1386
  //#endregion
1149
- //#region src/core/registries/menus/menu-registry.d.ts
1150
- type MenuPath = readonly string[];
1151
- interface MenuItem {
1152
- commandId: string;
1153
- sourceCommandId?: string;
1154
- label?: string;
1155
- description?: string;
1156
- icon?: string;
1157
- iconSrc?: string;
1158
- overflowLabel?: string;
1159
- when?: string;
1160
- group?: string;
1161
- order?: number;
1162
- args?: unknown;
1163
- readOnly?: boolean;
1164
- /** Marks a menu action that navigates outside the app, rendered with a trailing external-link icon. */
1165
- external?: boolean;
1166
- }
1167
- interface RegisteredMenuItem extends MenuItem, RegisteredContributionMetadata {
1168
- path: MenuPath;
1169
- }
1170
- interface MenuRegistryStoreState {
1171
- itemsByPath: Record<string, RegisteredMenuItem[]>;
1172
- }
1173
- interface MenuRegistry {
1174
- menuStore: WorkbenchStore<MenuRegistryStoreState>;
1175
- registerMenuItem(path: MenuPath, item: MenuItem, metadata?: ContributionMetadata): Disposable;
1176
- listMenuItems(path: MenuPath): RegisteredMenuItem[];
1177
- }
1178
- //#endregion
1179
- //#region src/core/registries/renderers/tree-renderer-types.d.ts
1180
- interface TreeQueryContext {
1181
- signal?: AbortSignal;
1182
- /** Publish available sections while the rest of the current read is still loading. */
1183
- onProgress?(sections: TreeViewSection[]): void;
1184
- filter?: string;
1185
- resource?: ResourceRef$1;
1186
- /** Widget/view contribution id for trees rendered through a view-backed widget. */
1187
- viewId?: string;
1188
- }
1189
- interface TreeContext extends TreeQueryContext {
1190
- state: Readonly<TreeRendererState>;
1191
- refresh(): void;
1192
- setSelectedNode(nodeId: string | undefined): void;
1193
- }
1194
- interface TreeAction {
1195
- id: string;
1196
- label?: string;
1197
- icon?: string;
1198
- commandId?: string;
1199
- args?: unknown;
1200
- params?: CommandParamSchema;
1201
- submitLabel?: string;
1202
- when?: string;
1203
- disabled?: boolean;
1204
- run?(args?: unknown): Promise<void> | void;
1205
- }
1206
- type TreeNodeRowVariant = "empty-state";
1207
- interface TreeNodeInlineInput {
1208
- ariaLabel: string;
1209
- defaultValue?: string;
1210
- placeholder?: string;
1211
- onCommit(value: string): Promise<void> | void;
1212
- onCancel?(): void;
1213
- }
1214
- interface TreeNode {
1215
- id: string;
1216
- selected?: boolean;
1217
- /** Host-owned customization boundary. Extension callbacks cannot set it. */
1218
- moveScope?: string;
1219
- label: string;
1220
- icon?: string;
1221
- iconElement?: unknown;
1222
- iconColor?: string;
1223
- iconTooltip?: string;
1224
- endContent?: unknown;
1225
- commandId?: string;
1226
- resource?: ResourceRef$1;
1227
- target?: NavigationTarget$1;
1228
- /** Visual row variant for non-data rows such as placeholders. */
1229
- rowVariant?: TreeNodeRowVariant;
1230
- inlineInput?: TreeNodeInlineInput;
1231
- actions?: TreeAction[];
1232
- contextMenuActions?: TreeAction[];
1233
- contextMenuPath?: MenuPath;
1234
- menuPath?: MenuPath;
1235
- menuPlacement?: "top-start" | "top-end" | "bottom-start" | "bottom-end" | "right-start" | "left-start";
1236
- showContextMenuTrigger?: boolean;
1237
- collapsible?: boolean;
1238
- disabled?: boolean;
1239
- children?: TreeNode[];
1240
- description?: string;
1241
- contextValue?: string;
1242
- hiddenByDefault?: boolean;
1243
- /** When true, the node (e.g. a header/footer row) opts in to the tree's hide/show customization menu. */
1244
- canHide?: boolean;
1245
- /** When false, the node stays fixed within its Sidenav group. */
1246
- canReorder?: boolean;
1247
- /** Allow this node to be moved to another tree location. */
1248
- canDrag?: boolean;
1249
- /** Allow movable nodes to be dropped on this node. */
1250
- canDrop?: boolean;
1251
- }
1252
- interface TreeSectionEmptyState {
1253
- title: string;
1254
- description?: string;
1255
- icon?: string;
1256
- }
1257
- interface TreeViewSection {
1258
- id: string;
1259
- /** Host-owned customization boundary. Extension callbacks cannot set it. */
1260
- moveScope?: string;
1261
- label?: string;
1262
- actions?: TreeAction[];
1263
- collapsible?: boolean;
1264
- emptyState?: TreeSectionEmptyState;
1265
- nodes: TreeNode[];
1266
- hiddenByDefault?: boolean;
1267
- /** When true, the section (category) opts in to the tree's hide/show customization menu. */
1268
- canHide?: boolean;
1269
- /** When false, the section stays fixed within the Sidenav main region. */
1270
- canReorder?: boolean;
1271
- }
1272
- interface TreeMoveEndpoint {
1273
- kind: "section" | "node";
1274
- sectionId: string;
1275
- id: string;
1276
- moveScope?: string;
1277
- }
1278
- type TreeMovePolicy = (move: {
1279
- source: TreeMoveEndpoint;
1280
- destination: TreeMoveEndpoint;
1281
- }) => boolean;
1282
- interface TreeRendererContribution {
1283
- id: string;
1284
- title: string;
1285
- icon?: string;
1286
- searchable?: boolean;
1287
- searchPlaceholder?: string;
1288
- when?: string;
1289
- defaultExpandedSectionIds?: string[];
1290
- defaultExpandedNodeIds?: string[];
1291
- /** Identify the navigation data scope when it differs from the current page resource. */
1292
- getReadKey?(ctx: TreeQueryContext): string;
1293
- getBody(ctx: TreeContext): Promise<TreeViewSection[]> | TreeViewSection[];
1294
- getHeader?(ctx: TreeContext): Promise<TreeViewSection[]> | TreeViewSection[];
1295
- getFooter?(ctx: TreeContext): Promise<TreeViewSection[]> | TreeViewSection[];
1296
- getChildren(node: TreeNode, ctx: TreeContext): Promise<TreeNode[]> | TreeNode[];
1297
- canMove?: TreeMovePolicy;
1298
- moveNode?(source: TreeNode, target: TreeNode | undefined, ctx: TreeContext): Promise<void> | void;
1299
- }
1300
- interface RegisteredTreeRendererContribution extends TreeRendererContribution, RegisteredContributionMetadata {}
1301
- interface TreeRendererState {
1302
- expandedNodeIds: string[];
1303
- expandedSectionIds: string[];
1304
- selectedNodeId?: string;
1305
- loading?: boolean;
1306
- }
1307
- interface TreeRendererRefreshEvent {
1308
- treeId: string;
1309
- }
1310
- interface TreeRendererStoreState {
1311
- trees: Record<string, RegisteredTreeRendererContribution>;
1312
- statesByTreeId: Record<string, TreeRendererState>;
1313
- refreshKeysByTreeId: Record<string, number>;
1314
- }
1315
- interface PersistedTreeRendererStates {
1316
- statesByTreeId: Record<string, TreeRendererState>;
1317
- }
1318
- interface TreeRendererPersistenceAdapter {
1319
- getTreeStates(): PersistedTreeRendererStates | undefined;
1320
- setTreeStates(states: PersistedTreeRendererStates): void;
1321
- }
1322
- type TreeRendererImplementation = (input: WorkbenchPanelRenderInput & {
1323
- treeId: string;
1324
- }) => unknown;
1325
- type TreeRendererRefreshListener = (event: TreeRendererRefreshEvent) => void;
1326
- interface TreeRendererRegistry {
1327
- treeStore: WorkbenchStore<TreeRendererStoreState>;
1328
- registerTreeRenderer(view: TreeRendererContribution, metadata?: ContributionMetadata): Disposable;
1329
- setTreeRendererImplementation(impl: TreeRendererImplementation): void;
1330
- getTreeRenderer(id: string): RegisteredTreeRendererContribution | undefined;
1331
- listTreeRenderers(): RegisteredTreeRendererContribution[];
1332
- getBody(id: string, ctx?: TreeQueryContext): Promise<TreeViewSection[]>;
1333
- getHeader(id: string, ctx?: TreeQueryContext): Promise<TreeViewSection[]>;
1334
- getFooter(id: string, ctx?: TreeQueryContext): Promise<TreeViewSection[]>;
1335
- getChildren(id: string, node: TreeNode, ctx?: TreeQueryContext): Promise<TreeNode[]>;
1336
- getTreeState(id: string): TreeRendererState;
1337
- setNodeExpanded(id: string, nodeId: string, expanded: boolean): void;
1338
- setSectionExpanded(id: string, sectionId: string, expanded: boolean): void;
1339
- setSelectedNode(id: string, nodeId: string | undefined): void;
1340
- setLoading(id: string, loading: boolean): void;
1341
- refresh(id: string): void;
1342
- onDidRefresh(listener: TreeRendererRefreshListener): Disposable;
1343
- }
1344
- //#endregion
1345
1387
  //#region src/core/registries/views/renderer-read-registry.d.ts
1346
1388
  interface RendererReadRequest<T> {
1347
1389
  queryKey: string;
@@ -1358,9 +1400,7 @@ interface RendererReadRegistry {
1358
1400
  bind(key: string): RendererReadBinding;
1359
1401
  dispose(): Promise<void>;
1360
1402
  }
1361
- declare const createRendererReadRegistry: (options?: {
1362
- deadlineMs?: number;
1363
- }) => RendererReadRegistry;
1403
+ declare const createRendererReadRegistry: () => RendererReadRegistry;
1364
1404
  //#endregion
1365
1405
  //#region src/core/registries/views/view-registry.d.ts
1366
1406
  declare const workbenchViewIdContextKey = "workbench.view.id";
@@ -1806,11 +1846,11 @@ interface NavigationTreeContribution {
1806
1846
  }
1807
1847
  interface NavigationTreeRegistry {
1808
1848
  registerContribution(contribution: NavigationTreeContribution): Disposable;
1809
- resolveOwner(kind: NavigationTreeOwner["kind"], id: string): NavigationTreeOwner | undefined;
1849
+ resolveOwner(kind: NavigationTreeOwner["kind"], id: string, slot?: NavigationTreeSlot): NavigationTreeOwner | undefined;
1810
1850
  getReadKey(owner: NavigationTreeOwner, context?: NavigationTreeContext): string;
1811
1851
  getSections(owner: NavigationTreeOwner, slot?: NavigationTreeSlot, context?: NavigationTreeContext): Promise<TreeViewSection[]>;
1812
1852
  getChildren(node: TreeNode, context?: NavigationTreeContext): Promise<TreeNode[]>;
1813
- getDefaultExpandedSectionIds(owner: NavigationTreeOwner): string[];
1853
+ getDefaultExpandedSectionIds(owner: NavigationTreeOwner, slot?: NavigationTreeSlot): string[];
1814
1854
  onDidChange(listener: () => void): Disposable;
1815
1855
  }
1816
1856
  //#endregion
@@ -2357,6 +2397,28 @@ interface WorkbenchCompositionController {
2357
2397
  panelsFor(region: WorkbenchPanelRegion): WorkbenchCompositionRegionPanels;
2358
2398
  }
2359
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
2360
2422
  //#region src/core/registries/layout/surface-map.d.ts
2361
2423
  type AnchorId = "primary" | "secondary" | "attached";
2362
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";
@@ -2391,5 +2453,5 @@ declare const settleReadBatch: <T>(tasks: ((signal: AbortSignal) => Promise<T> |
2391
2453
  /** Commit related stores before their subscribers read the resulting workbench state. */
2392
2454
  declare const batchWorkbenchChanges: <Result>(commit: () => Result) => Result;
2393
2455
  //#endregion
2394
- 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 };
2395
2457
  export {};