@pstdio/workbench 0.8.0 → 0.9.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.
Files changed (44) hide show
  1. package/README.md +39 -317
  2. package/dist/extensions.d.ts +1283 -774
  3. package/dist/extensions.js +1454 -1924
  4. package/dist/extensions.js.map +1 -1
  5. package/dist/file-renderer-view-kfJRY3yR.js +515 -0
  6. package/dist/file-renderer-view-kfJRY3yR.js.map +1 -0
  7. package/dist/index.d.ts +589 -644
  8. package/dist/index.js +5011 -2644
  9. package/dist/index.js.map +1 -1
  10. package/dist/react.d.ts +540 -585
  11. package/dist/react.js +3583 -3424
  12. package/dist/react.js.map +1 -1
  13. package/dist/storage.d.ts +118 -157
  14. package/dist/storage.js +135 -149
  15. package/dist/storage.js.map +1 -1
  16. package/dist/webview-runtime.d.ts +2 -5
  17. package/dist/webview-runtime.js +3 -3
  18. package/dist/webview-runtime.js.map +1 -1
  19. package/dist/workbench-menu-paths-B_QJzcNU.js +12 -0
  20. package/dist/workbench-menu-paths-B_QJzcNU.js.map +1 -0
  21. package/dist/workbench-renderers-DmsrBGC7.js +960 -0
  22. package/dist/workbench-renderers-DmsrBGC7.js.map +1 -0
  23. package/dist/workspaces-DJwFj8uq.js +1872 -0
  24. package/dist/workspaces-DJwFj8uq.js.map +1 -0
  25. package/package.json +6 -41
  26. package/dist/composition-resolver-types-CWykPyEK.js +0 -241
  27. package/dist/composition-resolver-types-CWykPyEK.js.map +0 -1
  28. package/dist/file-renderer-view-B6_iR4EN.js +0 -496
  29. package/dist/file-renderer-view-B6_iR4EN.js.map +0 -1
  30. package/dist/file-section-navigation-CfYqVObc.js +0 -30
  31. package/dist/file-section-navigation-CfYqVObc.js.map +0 -1
  32. package/dist/layout-types-DMoZz38-.js +0 -100
  33. package/dist/layout-types-DMoZz38-.js.map +0 -1
  34. package/dist/surface-map-C1pOTUmF.js +0 -52
  35. package/dist/surface-map-C1pOTUmF.js.map +0 -1
  36. package/dist/testing.d.ts +0 -2443
  37. package/dist/testing.js +0 -58
  38. package/dist/testing.js.map +0 -1
  39. package/dist/workbench-built-ins-BCJ6-fIM.js +0 -1173
  40. package/dist/workbench-built-ins-BCJ6-fIM.js.map +0 -1
  41. package/dist/workbench-menu-paths-D-e7iscN.js +0 -43
  42. package/dist/workbench-menu-paths-D-e7iscN.js.map +0 -1
  43. package/dist/workflow-status-settings-DLiu9FZ0.js +0 -144
  44. package/dist/workflow-status-settings-DLiu9FZ0.js.map +0 -1
package/dist/storage.d.ts CHANGED
@@ -1,20 +1,19 @@
1
- declare type ContributionSource = "module" | "extension";
2
-
3
- declare type ContributionSource_2 = "module" | "extension";
4
-
5
- export declare const createLocalStorageHistoryPersistence: (input: CreateWorkbenchStoragePersistenceInput) => WorkbenchHistoryPersistence;
1
+ import { FileRendererSectionTarget } from '@pstdio/sdk/extensions';
2
+ import { NavigationTargetPage as NavigationTargetPage_2 } from '@pstdio/sdk/extensions';
3
+ import { NavigationTargetPanel as NavigationTargetPanel_2 } from '@pstdio/sdk/extensions';
4
+ import { PageLocation } from '@pstdio/sdk/extensions';
5
+ import { PlacementIdentity } from '@pstdio/sdk/extensions';
6
+ import { ResourceRef } from '@pstdio/sdk/extensions';
6
7
 
7
- export declare const createLocalStorageLastResourcePersistence: (input: CreateLocalStorageLastResourcePersistenceInput) => LastResourcePersistenceAdapter;
8
-
9
- export declare interface CreateLocalStorageLastResourcePersistenceInput extends CreateWorkbenchStoragePersistenceInput {
10
- scope?: string;
11
- }
8
+ declare type ContributionSource = "module" | "extension";
12
9
 
13
10
  export declare const createLocalStorageLayoutPersistence: (input: CreateWorkbenchStoragePersistenceInput) => LayoutPersistenceAdapter;
14
11
 
15
- export declare const createLocalStoragePanelsPersistence: (input: CreateLocalStoragePanelsPersistenceInput) => WorkbenchPanelsPersistenceAdapter;
12
+ export declare const createLocalStoragePageLocationPersistence: (input: CreateWorkbenchStoragePersistenceInput) => WorkbenchPageLocationPersistence;
13
+
14
+ export declare const createLocalStoragePanelMenuStatePersistence: (input: CreateLocalStoragePanelMenuStatePersistenceInput) => WorkbenchPanelMenuStatePersistenceAdapter;
16
15
 
17
- export declare interface CreateLocalStoragePanelsPersistenceInput extends CreateWorkbenchStoragePersistenceInput {
16
+ export declare interface CreateLocalStoragePanelMenuStatePersistenceInput extends CreateWorkbenchStoragePersistenceInput {
18
17
  scope: string;
19
18
  }
20
19
 
@@ -26,11 +25,10 @@ export declare interface CreateLocalStorageTreePersistenceInput extends CreateWo
26
25
 
27
26
  export declare const createLocalStorageWorkbenchPersistence: (input: CreateLocalStorageWorkbenchPersistenceInput) => {
28
27
  snapshotPersistence: WorkbenchPersistenceAdapter;
29
- historyPersistence: WorkbenchHistoryPersistence;
30
- layoutPersistence: LayoutPersistenceAdapter_2;
31
- panelsPersistence: WorkbenchPanelsPersistenceAdapter;
28
+ layoutPersistence: LayoutPersistenceAdapter;
29
+ panelMenuStatePersistence: WorkbenchPanelMenuStatePersistenceAdapter;
30
+ pageLocationPersistence: WorkbenchPageLocationPersistence;
32
31
  treePersistence: TreeRendererPersistenceAdapter;
33
- lastResourcePersistence: LastResourcePersistenceAdapter;
34
32
  sidePanelPersistence: WorkbenchSidePanelPersistenceAdapter;
35
33
  };
36
34
 
@@ -48,18 +46,6 @@ declare interface CreateWorkbenchStoragePersistenceInput {
48
46
  storage?: WorkbenchStorageLike;
49
47
  }
50
48
 
51
- declare interface HistoryStoreState {
52
- entries: readonly WorkbenchNavigationEntry[];
53
- cursor: number;
54
- recentlyClosed: readonly WorkbenchNavigationEntry[];
55
- hydrating: boolean;
56
- }
57
-
58
- declare interface LastResourcePersistenceAdapter {
59
- getLastResource(): ResourceRef | undefined;
60
- setLastResource(resource: ResourceRef | undefined): void;
61
- }
62
-
63
49
  declare interface LayoutPersistenceAdapter {
64
50
  getLayout(scope?: LayoutScope): WorkbenchLayout | undefined;
65
51
  setLayout(layout: WorkbenchLayout, scope?: LayoutScope): void;
@@ -72,50 +58,52 @@ declare interface LayoutPersistenceAdapter {
72
58
  dispose?(): void;
73
59
  }
74
60
 
75
- declare interface LayoutPersistenceAdapter_2 {
76
- getLayout(scope?: LayoutScope_2): WorkbenchLayout_2 | undefined;
77
- setLayout(layout: WorkbenchLayout_2, scope?: LayoutScope_2): void;
78
- listScopes?(projectId: string): LayoutScope_2[];
79
- transformLayouts?(projectId: string, transform: (layout: WorkbenchLayout_2, scope: LayoutScope_2) => WorkbenchLayout_2 | undefined): void;
80
- getCompatibilityMarker?(key: string): string | undefined;
81
- setCompatibilityMarker?(key: string, value: string): void;
82
- advanceWriteGeneration?(): number;
83
- flush?(): void;
84
- dispose?(): void;
85
- }
86
-
87
61
  declare type LayoutScope = string;
88
62
 
89
- declare type LayoutScope_2 = string;
63
+ declare type NavigationTarget = NavigationTargetItem | NavigationTargetCompound;
90
64
 
91
- declare interface PersistedTreeRendererStates {
92
- statesByTreeId: Record<string, TreeRendererState>;
65
+ declare interface NavigationTargetCommand {
66
+ kind: "command";
67
+ commandId: string;
68
+ args?: unknown;
93
69
  }
94
70
 
95
- declare interface PersistedWorkbenchHistory extends Omit<HistoryStoreState, "hydrating"> {
96
- version: 1 | 2;
71
+ declare interface NavigationTargetCompound {
72
+ kind: "compound";
73
+ targets: readonly (NavigationTargetPage | NavigationTargetPanel)[];
97
74
  }
98
75
 
99
- declare interface PersistedWorkbenchPanels {
100
- openByRegionId: Record<string, boolean>;
76
+ declare interface NavigationTargetHref {
77
+ kind: "href";
78
+ href: string;
101
79
  }
102
80
 
103
- declare interface ResourceRef {
104
- kind: string;
105
- uri: string;
106
- id?: string;
107
- label?: string;
108
- icon?: string;
109
- metadata?: Record<string, unknown>;
81
+ declare type NavigationTargetItem = NavigationTargetPage | NavigationTargetPanel | NavigationTargetCommand | NavigationTargetHref;
82
+
83
+ declare type NavigationTargetPage = NavigationTargetPage_2;
84
+
85
+ declare type NavigationTargetPanel = NavigationTargetPanel_2 | NavigationTargetShellPanel;
86
+
87
+ declare interface NavigationTargetShellPanel {
88
+ kind: "panel";
89
+ panel: ShellPlacementRef;
90
+ resource?: NavigationTargetPanel_2["resource"];
91
+ open?: NavigationTargetPanel_2["open"];
92
+ title?: string;
110
93
  }
111
94
 
112
- declare interface ResourceRef_2 {
113
- kind: string;
114
- uri: string;
115
- id?: string;
116
- label?: string;
117
- icon?: string;
118
- metadata?: Record<string, unknown>;
95
+ declare interface PersistedTreeRendererStates {
96
+ statesByTreeId: Record<string, TreeRendererState>;
97
+ }
98
+
99
+ declare interface PersistedWorkbenchPanelMenuState {
100
+ openByMenuId: Record<string, boolean>;
101
+ }
102
+
103
+ /** Core-only panel ref for host-owned shell placements. Extensions cannot address them. */
104
+ declare interface ShellPlacementRef {
105
+ kind: "shell-placement";
106
+ id: string;
119
107
  }
120
108
 
121
109
  declare interface TreeRendererPersistenceAdapter {
@@ -132,18 +120,9 @@ declare interface TreeRendererState {
132
120
 
133
121
  declare type WidgetMountStrategy = "active" | "keep-mounted";
134
122
 
135
- declare type WidgetMountStrategy_2 = "active" | "keep-mounted";
136
-
137
- declare interface WorkbenchClosedSubPanel {
138
- region: WorkbenchPanelRegion;
139
- reference: WorkbenchSubPanelRef;
140
- resource?: ResourceRef;
141
- title?: string;
142
- }
143
-
144
- declare interface WorkbenchHistoryPersistence {
145
- getHistory(scope?: string): PersistedWorkbenchHistory | undefined;
146
- setHistory(state: PersistedWorkbenchHistory, scope?: string): void;
123
+ declare interface WorkbenchCommandTarget {
124
+ commandId: string;
125
+ args?: unknown;
147
126
  }
148
127
 
149
128
  declare interface WorkbenchLayout {
@@ -151,54 +130,46 @@ declare interface WorkbenchLayout {
151
130
  locationSubPanelSelections?: Record<string, Partial<Record<WorkbenchPanelRegion, string>>>;
152
131
  activeWidgetId?: string;
153
132
  activeLocationWidgetId?: string;
154
- activeResourceUri?: string;
133
+ activeResourceKey?: string;
155
134
  }
156
135
 
157
- declare interface WorkbenchLayout_2 {
158
- regions: Record<WorkbenchRegion_2, WorkbenchRegionState_2>;
159
- locationSubPanelSelections?: Record<string, Partial<Record<WorkbenchPanelRegion_2, string>>>;
160
- activeWidgetId?: string;
161
- activeLocationWidgetId?: string;
162
- activeResourceUri?: string;
136
+ declare interface WorkbenchPageLocationPersistence {
137
+ load(projectId: string): PageLocation | undefined;
138
+ save(projectId: string, location: PageLocation): void;
163
139
  }
164
140
 
165
- declare interface WorkbenchLocationRef {
166
- key: string;
167
- modeId?: string;
141
+ declare interface WorkbenchPanelInstance {
142
+ instanceId: string;
143
+ panelId: string;
144
+ placementIdentity?: PlacementIdentity;
168
145
  viewId?: string;
146
+ ownerId?: string;
147
+ source?: ContributionSource;
169
148
  resource?: ResourceRef;
170
- contributionId?: string;
171
- instanceKey?: string;
149
+ section?: FileRendererSectionTarget;
150
+ resourceKey?: string;
151
+ ownerResourceKey?: string;
172
152
  title?: string;
153
+ pinned?: boolean;
154
+ closable: boolean;
155
+ mountStrategy?: WorkbenchPanelMountStrategy;
156
+ hiddenByDefault?: boolean;
157
+ tabRetention?: WorkbenchTabRetention;
158
+ tab?: WorkbenchPanelTab;
173
159
  }
174
160
 
175
- declare interface WorkbenchNavigationEntry {
176
- entryId: string;
177
- recordedAt: number;
178
- location: WorkbenchLocationRef;
179
- selectedSubPanels: Partial<Record<WorkbenchPanelRegion, WorkbenchSubPanelRef>>;
180
- kind: "resource" | "view" | "widget" | "mode";
181
- modeId?: string;
182
- resource?: ResourceRef;
183
- viewId?: string;
184
- widgetId?: string;
185
- contributionId?: string;
186
- title?: string;
187
- closedSubPanel?: WorkbenchClosedSubPanel;
161
+ declare interface WorkbenchPanelMenuStatePersistenceAdapter {
162
+ getMenuStates(scope?: string): PersistedWorkbenchPanelMenuState | undefined;
163
+ setMenuStates(state: PersistedWorkbenchPanelMenuState, scope?: string): void;
188
164
  }
189
165
 
190
- declare type WorkbenchPanelRegion = (typeof workbenchPanelRegions)[number];
166
+ declare type WorkbenchPanelMountStrategy = WidgetMountStrategy;
191
167
 
192
- declare type WorkbenchPanelRegion_2 = (typeof workbenchPanelRegions_2)[number];
168
+ declare type WorkbenchPanelRegion = (typeof workbenchPanelRegions)[number];
193
169
 
194
170
  declare const workbenchPanelRegions: readonly ["main", "secondary", "side"];
195
171
 
196
- declare const workbenchPanelRegions_2: readonly ["main", "secondary", "side"];
197
-
198
- declare interface WorkbenchPanelsPersistenceAdapter {
199
- getPanelStates(scope?: string): PersistedWorkbenchPanels | undefined;
200
- setPanelStates(state: PersistedWorkbenchPanels, scope?: string): void;
201
- }
172
+ declare type WorkbenchPanelTab = WorkbenchWidgetTab;
202
173
 
203
174
  declare interface WorkbenchPersistenceAdapter {
204
175
  getSnapshot(scope?: string): WorkbenchSnapshot | undefined;
@@ -209,11 +180,7 @@ declare interface WorkbenchPersistenceAdapter {
209
180
 
210
181
  declare type WorkbenchRegion = (typeof workbenchRegions)[number];
211
182
 
212
- declare type WorkbenchRegion_2 = (typeof workbenchRegions_2)[number];
213
-
214
- declare const workbenchRegions: readonly ["nav", "activity", "sidenav-header", "sidenav", "main-header", "main-left-menu", "main", "main-right-menu", "secondary-header", "secondary-left-menu", "secondary", "secondary-right-menu", "side-header", "side-left-menu", "side", "side-right-menu", "status", "overlay"];
215
-
216
- declare const workbenchRegions_2: readonly ["nav", "activity", "sidenav-header", "sidenav", "main-header", "main-left-menu", "main", "main-right-menu", "secondary-header", "secondary-left-menu", "secondary", "secondary-right-menu", "side-header", "side-left-menu", "side", "side-right-menu", "status", "overlay"];
183
+ declare const workbenchRegions: readonly ["nav", "activity", "sidenav", "main-header", "main-left-menu", "main", "main-right-menu", "secondary-header", "secondary-left-menu", "secondary", "secondary-right-menu", "side-header", "side-left-menu", "side", "side-right-menu", "status", "overlay"];
217
184
 
218
185
  declare interface WorkbenchRegionState {
219
186
  id: WorkbenchRegion;
@@ -223,14 +190,6 @@ declare interface WorkbenchRegionState {
223
190
  activeWidgetId?: string;
224
191
  }
225
192
 
226
- declare interface WorkbenchRegionState_2 {
227
- id: WorkbenchRegion_2;
228
- visible: boolean;
229
- size?: number;
230
- widgets: WorkbenchWidgetPlacement_2[];
231
- activeWidgetId?: string;
232
- }
233
-
234
193
  declare type WorkbenchSidePanelMode = "floating" | "closed" | "attached";
235
194
 
236
195
  declare interface WorkbenchSidePanelPersistenceAdapter {
@@ -252,27 +211,54 @@ export declare interface WorkbenchStorageLike {
252
211
 
253
212
  export declare const workbenchStoragePersistenceKey: (namespace: string, kind: WorkbenchStoragePersistenceKind, scope: string | undefined) => string;
254
213
 
255
- export declare type WorkbenchStoragePersistenceKind = "history" | "layout" | "layout-compatibility" | "layout-generation" | "layout-resource-index" | "layout-scope-index" | "panels" | "side-panel" | "tree" | "last-resource";
214
+ export declare type WorkbenchStoragePersistenceKind = "layout" | "layout-compatibility" | "layout-generation" | "layout-resource-index" | "layout-scope-index" | "panel-menus" | "page-location" | "side-panel" | "tree";
256
215
 
257
- declare interface WorkbenchSubPanelRef {
258
- contributionId: string;
259
- resourceUri?: string;
260
- instanceKey?: string;
216
+ declare type WorkbenchTabAction = ({
217
+ kind: "command";
218
+ } & WorkbenchCommandTarget) | {
219
+ kind: "navigation";
220
+ target: NavigationTarget;
221
+ };
222
+
223
+ declare interface WorkbenchTabMenuGroup {
224
+ id: string;
225
+ rows: readonly WorkbenchTabMenuRow[];
226
+ }
227
+
228
+ declare interface WorkbenchTabMenuRow {
229
+ id: string;
230
+ label: string;
231
+ icon?: string;
232
+ iconColor?: string;
233
+ selected?: boolean;
234
+ disabled?: boolean;
235
+ action?: WorkbenchTabAction;
261
236
  }
262
237
 
263
238
  declare type WorkbenchTabRetention = "preview" | "persistent";
264
239
 
265
- declare type WorkbenchTabRetention_2 = "preview" | "persistent";
240
+ declare interface WorkbenchTabSnapshot {
241
+ label?: string;
242
+ icon?: string;
243
+ indicator?: {
244
+ icon: string;
245
+ color?: string;
246
+ label?: string;
247
+ };
248
+ menu?: readonly WorkbenchTabMenuGroup[];
249
+ }
266
250
 
267
251
  declare interface WorkbenchWidgetPlacement {
268
252
  widgetId: string;
269
253
  contributionId: string;
254
+ placementIdentity?: PlacementIdentity;
270
255
  viewId?: string;
271
256
  ownerId?: string;
272
257
  source?: ContributionSource;
273
258
  resource?: ResourceRef;
274
- resourceUri?: string;
275
- ownerResourceUri?: string;
259
+ section?: FileRendererSectionTarget;
260
+ resourceKey?: string;
261
+ ownerResourceKey?: string;
276
262
  title?: string;
277
263
  pinned?: boolean;
278
264
  closable?: boolean;
@@ -283,39 +269,14 @@ declare interface WorkbenchWidgetPlacement {
283
269
  role?: WorkbenchWidgetRole;
284
270
  }
285
271
 
286
- declare interface WorkbenchWidgetPlacement_2 {
287
- widgetId: string;
288
- contributionId: string;
289
- viewId?: string;
290
- ownerId?: string;
291
- source?: ContributionSource_2;
292
- resource?: ResourceRef_2;
293
- resourceUri?: string;
294
- ownerResourceUri?: string;
295
- title?: string;
296
- pinned?: boolean;
297
- closable?: boolean;
298
- mountStrategy?: WidgetMountStrategy_2;
299
- hiddenByDefault?: boolean;
300
- tabRetention?: WorkbenchTabRetention_2;
301
- tab?: WorkbenchWidgetTab_2;
302
- role?: WorkbenchWidgetRole_2;
303
- }
304
-
305
272
  declare type WorkbenchWidgetRole = "content" | "location" | "sub-panel" | "panel-menu";
306
273
 
307
- declare type WorkbenchWidgetRole_2 = "content" | "location" | "sub-panel" | "panel-menu";
308
-
309
274
  declare interface WorkbenchWidgetTab {
310
- contentRendererId?: string;
311
- /** Custom actions shown when the user activates an already-active tab. */
312
- customMenuRendererId?: string;
313
- }
314
-
315
- declare interface WorkbenchWidgetTab_2 {
316
- contentRendererId?: string;
317
- /** Custom actions shown when the user activates an already-active tab. */
318
- customMenuRendererId?: string;
275
+ getSnapshot(instance: WorkbenchPanelInstance): WorkbenchTabSnapshot;
276
+ subscribe?(listener: () => void): {
277
+ dispose(): void;
278
+ } | (() => void);
279
+ refreshEvents?: readonly string[];
319
280
  }
320
281
 
321
282
  export { }