@pstdio/workbench 0.7.1 → 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 +1492 -698
  3. package/dist/extensions.js +1679 -1776
  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 +724 -599
  8. package/dist/index.js +5151 -2369
  9. package/dist/index.js.map +1 -1
  10. package/dist/react.d.ts +673 -550
  11. package/dist/react.js +3585 -3335
  12. package/dist/react.js.map +1 -1
  13. package/dist/storage.d.ts +120 -155
  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/icon-B9XolQG8.js +0 -35
  33. package/dist/icon-B9XolQG8.js.map +0 -1
  34. package/dist/layout-types-DMoZz38-.js +0 -100
  35. package/dist/layout-types-DMoZz38-.js.map +0 -1
  36. package/dist/surface-map-C1pOTUmF.js +0 -52
  37. package/dist/surface-map-C1pOTUmF.js.map +0 -1
  38. package/dist/testing.d.ts +0 -2284
  39. package/dist/testing.js +0 -58
  40. package/dist/testing.js.map +0 -1
  41. package/dist/workbench-built-ins-BncLJfQA.js +0 -1175
  42. package/dist/workbench-built-ins-BncLJfQA.js.map +0 -1
  43. package/dist/workbench-menu-paths-Bb0ICxeG.js +0 -20
  44. package/dist/workbench-menu-paths-Bb0ICxeG.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;
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,52 +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;
145
+ viewId?: string;
146
+ ownerId?: string;
147
+ source?: ContributionSource;
168
148
  resource?: ResourceRef;
169
- contributionId?: string;
170
- instanceKey?: string;
149
+ section?: FileRendererSectionTarget;
150
+ resourceKey?: string;
151
+ ownerResourceKey?: string;
171
152
  title?: string;
153
+ pinned?: boolean;
154
+ closable: boolean;
155
+ mountStrategy?: WorkbenchPanelMountStrategy;
156
+ hiddenByDefault?: boolean;
157
+ tabRetention?: WorkbenchTabRetention;
158
+ tab?: WorkbenchPanelTab;
172
159
  }
173
160
 
174
- declare interface WorkbenchNavigationEntry {
175
- entryId: string;
176
- recordedAt: number;
177
- location: WorkbenchLocationRef;
178
- selectedSubPanels: Partial<Record<WorkbenchPanelRegion, WorkbenchSubPanelRef>>;
179
- kind: "resource" | "widget" | "mode";
180
- modeId?: string;
181
- resource?: ResourceRef;
182
- widgetId?: string;
183
- contributionId?: string;
184
- title?: string;
185
- closedSubPanel?: WorkbenchClosedSubPanel;
161
+ declare interface WorkbenchPanelMenuStatePersistenceAdapter {
162
+ getMenuStates(scope?: string): PersistedWorkbenchPanelMenuState | undefined;
163
+ setMenuStates(state: PersistedWorkbenchPanelMenuState, scope?: string): void;
186
164
  }
187
165
 
188
- declare type WorkbenchPanelRegion = (typeof workbenchPanelRegions)[number];
166
+ declare type WorkbenchPanelMountStrategy = WidgetMountStrategy;
189
167
 
190
- declare type WorkbenchPanelRegion_2 = (typeof workbenchPanelRegions_2)[number];
168
+ declare type WorkbenchPanelRegion = (typeof workbenchPanelRegions)[number];
191
169
 
192
170
  declare const workbenchPanelRegions: readonly ["main", "secondary", "side"];
193
171
 
194
- declare const workbenchPanelRegions_2: readonly ["main", "secondary", "side"];
195
-
196
- declare interface WorkbenchPanelsPersistenceAdapter {
197
- getPanelStates(scope?: string): PersistedWorkbenchPanels | undefined;
198
- setPanelStates(state: PersistedWorkbenchPanels, scope?: string): void;
199
- }
172
+ declare type WorkbenchPanelTab = WorkbenchWidgetTab;
200
173
 
201
174
  declare interface WorkbenchPersistenceAdapter {
202
175
  getSnapshot(scope?: string): WorkbenchSnapshot | undefined;
@@ -207,11 +180,7 @@ declare interface WorkbenchPersistenceAdapter {
207
180
 
208
181
  declare type WorkbenchRegion = (typeof workbenchRegions)[number];
209
182
 
210
- declare type WorkbenchRegion_2 = (typeof workbenchRegions_2)[number];
211
-
212
- 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"];
213
-
214
- 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"];
215
184
 
216
185
  declare interface WorkbenchRegionState {
217
186
  id: WorkbenchRegion;
@@ -221,14 +190,6 @@ declare interface WorkbenchRegionState {
221
190
  activeWidgetId?: string;
222
191
  }
223
192
 
224
- declare interface WorkbenchRegionState_2 {
225
- id: WorkbenchRegion_2;
226
- visible: boolean;
227
- size?: number;
228
- widgets: WorkbenchWidgetPlacement_2[];
229
- activeWidgetId?: string;
230
- }
231
-
232
193
  declare type WorkbenchSidePanelMode = "floating" | "closed" | "attached";
233
194
 
234
195
  declare interface WorkbenchSidePanelPersistenceAdapter {
@@ -250,26 +211,54 @@ export declare interface WorkbenchStorageLike {
250
211
 
251
212
  export declare const workbenchStoragePersistenceKey: (namespace: string, kind: WorkbenchStoragePersistenceKind, scope: string | undefined) => string;
252
213
 
253
- 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";
254
215
 
255
- declare interface WorkbenchSubPanelRef {
256
- contributionId: string;
257
- resourceUri?: string;
258
- 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;
259
236
  }
260
237
 
261
238
  declare type WorkbenchTabRetention = "preview" | "persistent";
262
239
 
263
- 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
+ }
264
250
 
265
251
  declare interface WorkbenchWidgetPlacement {
266
252
  widgetId: string;
267
253
  contributionId: string;
254
+ placementIdentity?: PlacementIdentity;
255
+ viewId?: string;
268
256
  ownerId?: string;
269
257
  source?: ContributionSource;
270
258
  resource?: ResourceRef;
271
- resourceUri?: string;
272
- ownerResourceUri?: string;
259
+ section?: FileRendererSectionTarget;
260
+ resourceKey?: string;
261
+ ownerResourceKey?: string;
273
262
  title?: string;
274
263
  pinned?: boolean;
275
264
  closable?: boolean;
@@ -280,38 +269,14 @@ declare interface WorkbenchWidgetPlacement {
280
269
  role?: WorkbenchWidgetRole;
281
270
  }
282
271
 
283
- declare interface WorkbenchWidgetPlacement_2 {
284
- widgetId: string;
285
- contributionId: string;
286
- ownerId?: string;
287
- source?: ContributionSource_2;
288
- resource?: ResourceRef_2;
289
- resourceUri?: string;
290
- ownerResourceUri?: string;
291
- title?: string;
292
- pinned?: boolean;
293
- closable?: boolean;
294
- mountStrategy?: WidgetMountStrategy_2;
295
- hiddenByDefault?: boolean;
296
- tabRetention?: WorkbenchTabRetention_2;
297
- tab?: WorkbenchWidgetTab_2;
298
- role?: WorkbenchWidgetRole_2;
299
- }
300
-
301
272
  declare type WorkbenchWidgetRole = "content" | "location" | "sub-panel" | "panel-menu";
302
273
 
303
- declare type WorkbenchWidgetRole_2 = "content" | "location" | "sub-panel" | "panel-menu";
304
-
305
274
  declare interface WorkbenchWidgetTab {
306
- contentRendererId?: string;
307
- /** Custom actions shown when the user activates an already-active tab. */
308
- customMenuRendererId?: string;
309
- }
310
-
311
- declare interface WorkbenchWidgetTab_2 {
312
- contentRendererId?: string;
313
- /** Custom actions shown when the user activates an already-active tab. */
314
- customMenuRendererId?: string;
275
+ getSnapshot(instance: WorkbenchPanelInstance): WorkbenchTabSnapshot;
276
+ subscribe?(listener: () => void): {
277
+ dispose(): void;
278
+ } | (() => void);
279
+ refreshEvents?: readonly string[];
315
280
  }
316
281
 
317
282
  export { }