@workbench-kit/shell-react 0.0.2-prototype.0.2.10

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 (105) hide show
  1. package/README.md +98 -0
  2. package/package.json +51 -0
  3. package/src/chat/ai-mock-proposals.ts +39 -0
  4. package/src/chat/command-input.ts +52 -0
  5. package/src/chat/command-policy.ts +54 -0
  6. package/src/chat/command-surface.tsx +155 -0
  7. package/src/chat/use-chat-command-proposals.ts +194 -0
  8. package/src/chat/view-data.ts +20 -0
  9. package/src/chat/view.tsx +220 -0
  10. package/src/commands/inspector-surface.tsx +46 -0
  11. package/src/commands/use-command-descriptors.ts +41 -0
  12. package/src/commands/use-context-key-revision.ts +18 -0
  13. package/src/commands/view-data.ts +17 -0
  14. package/src/commands/view.tsx +43 -0
  15. package/src/devtools/WorkbenchDevtoolsPanel.tsx +124 -0
  16. package/src/devtools/WorkbenchDevtoolsShell.tsx +17 -0
  17. package/src/devtools/index.ts +11 -0
  18. package/src/devtools/use-workbench-devtools-snapshot.ts +84 -0
  19. package/src/devtools/workbench-devtools-snapshot.ts +140 -0
  20. package/src/devtools/workbench-devtools.css +82 -0
  21. package/src/editor/area-dnd.ts +69 -0
  22. package/src/editor/area-model.ts +71 -0
  23. package/src/editor/area.css +454 -0
  24. package/src/editor/area.tsx +676 -0
  25. package/src/editor/host-surface.tsx +691 -0
  26. package/src/editor/markdown-document-view-data.ts +16 -0
  27. package/src/editor/pane-visibility.ts +130 -0
  28. package/src/editor/resource.ts +36 -0
  29. package/src/editor/state-storage.ts +182 -0
  30. package/src/editor/tab-context-menu.ts +118 -0
  31. package/src/editor/use-editor.ts +138 -0
  32. package/src/editor/view-providers.tsx +504 -0
  33. package/src/editor/workspace-file-availability.ts +15 -0
  34. package/src/editor/workspace-reconcile.tsx +31 -0
  35. package/src/explorer/context-menu.ts +114 -0
  36. package/src/explorer/create-command-workspace-explorer-port.ts +86 -0
  37. package/src/explorer/reveal.ts +112 -0
  38. package/src/explorer/search-view-data.ts +15 -0
  39. package/src/explorer/search-view.tsx +65 -0
  40. package/src/explorer/use-active-workspace-path.ts +15 -0
  41. package/src/explorer/view-data.ts +58 -0
  42. package/src/explorer/view.tsx +227 -0
  43. package/src/extensions/context-menu.ts +52 -0
  44. package/src/extensions/management-model.ts +313 -0
  45. package/src/extensions/use-extension-management.ts +241 -0
  46. package/src/extensions/view-data.ts +19 -0
  47. package/src/extensions/view.tsx +63 -0
  48. package/src/field-remap/chrome-labels.ts +74 -0
  49. package/src/field-remap/convert-note-editor.tsx +206 -0
  50. package/src/field-remap/convert-palette.tsx +126 -0
  51. package/src/field-remap/demo.tsx +105 -0
  52. package/src/field-remap/detail-panel.tsx +659 -0
  53. package/src/field-remap/editor-surface.tsx +36 -0
  54. package/src/field-remap/flow-adapter.ts +838 -0
  55. package/src/field-remap/flow-ops.ts +442 -0
  56. package/src/field-remap/flow.tsx +948 -0
  57. package/src/field-remap/graph.tsx +559 -0
  58. package/src/field-remap/index.ts +88 -0
  59. package/src/field-remap/io-class-browse.tsx +145 -0
  60. package/src/field-remap/jsonata-transform.ts +166 -0
  61. package/src/field-remap/panel.tsx +466 -0
  62. package/src/field-remap/samples.ts +507 -0
  63. package/src/field-remap/shape-io-editor.tsx +170 -0
  64. package/src/field-remap/table-mapping-adapter.ts +59 -0
  65. package/src/field-remap/transform-options-editor.tsx +312 -0
  66. package/src/field-remap/tree.tsx +404 -0
  67. package/src/field-remap/view-data.ts +16 -0
  68. package/src/field-remap/view.css +1367 -0
  69. package/src/field-remap/view.tsx +86 -0
  70. package/src/index.ts +294 -0
  71. package/src/jdw/document-view-data.ts +31 -0
  72. package/src/jdw/json-form-source-patch.ts +323 -0
  73. package/src/jdw/lab-view-data.ts +25 -0
  74. package/src/jdw/lab-view.css +21 -0
  75. package/src/jdw/lab-view.tsx +79 -0
  76. package/src/jdw/widget-form-view.tsx +68 -0
  77. package/src/jdw/widget-preview-view.tsx +54 -0
  78. package/src/management/keybinding-overrides-storage.ts +49 -0
  79. package/src/management/keybinding-settings.tsx +16 -0
  80. package/src/management/palette-commands.ts +38 -0
  81. package/src/management/preference-settings-storage.ts +50 -0
  82. package/src/management/settings-ids.ts +12 -0
  83. package/src/management/settings.tsx +96 -0
  84. package/src/management/use-command-management.ts +191 -0
  85. package/src/management/use-keybinding-management.ts +130 -0
  86. package/src/shell/model.tsx +149 -0
  87. package/src/shell/provider.tsx +606 -0
  88. package/src/shell/secondary-actions.tsx +59 -0
  89. package/src/shell/settings-constants.ts +9 -0
  90. package/src/shell/settings.tsx +599 -0
  91. package/src/shell/shell.tsx +680 -0
  92. package/src/shell/titlebar-layout-controls.tsx +4 -0
  93. package/src/shell/view-host.tsx +212 -0
  94. package/src/workbench/appearance-storage.ts +107 -0
  95. package/src/workbench/command-host.tsx +243 -0
  96. package/src/workbench/command-palette.ts +208 -0
  97. package/src/workbench/keybinding-bridge.ts +54 -0
  98. package/src/workbench/layout-storage.ts +134 -0
  99. package/src/workbench/profile-modal.tsx +118 -0
  100. package/src/workbench/shell-command-registration.ts +58 -0
  101. package/src/workbench/startup-gate.tsx +136 -0
  102. package/src/workbench/status-sections.ts +43 -0
  103. package/src/workbench/use-persisted-appearance.ts +33 -0
  104. package/src/workbench/user-commands.ts +46 -0
  105. package/src/workbench/workspace-view-state.ts +35 -0
@@ -0,0 +1,454 @@
1
+ .workbench-editor-area {
2
+ display: flex;
3
+ flex-direction: column;
4
+ height: 100%;
5
+ min-height: 0;
6
+ background: var(--vscode-editor-background, var(--color-bg));
7
+ }
8
+
9
+ .workbench-editor-area--empty {
10
+ display: grid;
11
+ place-items: center;
12
+ }
13
+
14
+ .workbench-editor-area__empty {
15
+ color: var(--color-text-muted);
16
+ font-size: var(--font-size-sm, 0.875rem);
17
+ }
18
+
19
+ .workbench-editor-area__missing-resource {
20
+ display: flex;
21
+ flex: 1;
22
+ align-items: center;
23
+ justify-content: center;
24
+ min-height: 0;
25
+ padding: 24px;
26
+ }
27
+
28
+ .workbench-editor-area__missing-resource-body {
29
+ max-width: 32rem;
30
+ color: var(--color-text-muted);
31
+ text-align: center;
32
+ }
33
+
34
+ .workbench-editor-area__missing-resource-title {
35
+ margin: 0 0 8px;
36
+ color: var(--vscode-foreground, var(--color-text));
37
+ font-size: 1rem;
38
+ font-weight: 600;
39
+ }
40
+
41
+ .workbench-editor-area__missing-resource-message,
42
+ .workbench-editor-area__missing-resource-path {
43
+ margin: 0 0 8px;
44
+ font-size: var(--font-size-sm, 0.875rem);
45
+ }
46
+
47
+ .workbench-editor-area__missing-resource-path {
48
+ font-family: var(--font-family-mono, monospace);
49
+ word-break: break-all;
50
+ }
51
+
52
+ .workbench-editor-area__missing-resource-close {
53
+ margin-top: 12px;
54
+ padding: 6px 12px;
55
+ border: 1px solid var(--vscode-button-border, var(--color-border));
56
+ border-radius: 4px;
57
+ background: var(--vscode-button-secondaryBackground, var(--color-bg-subtle));
58
+ color: var(--vscode-button-secondaryForeground, var(--color-text));
59
+ cursor: pointer;
60
+ font: inherit;
61
+ }
62
+
63
+ .workbench-editor-area__missing-resource-close:hover {
64
+ background: var(--vscode-button-secondaryHoverBackground, var(--color-bg-muted));
65
+ }
66
+
67
+ .workbench-editor-area__content {
68
+ display: flex;
69
+ flex-direction: column;
70
+ flex: 1;
71
+ min-height: 0;
72
+ overflow: hidden;
73
+ }
74
+
75
+ .workbench-editor-area__group-split.ui-workbench-split-view {
76
+ width: 100%;
77
+ height: 100%;
78
+ }
79
+
80
+ .workbench-editor-area__group-pane {
81
+ position: relative;
82
+ display: flex;
83
+ flex: 1;
84
+ flex-direction: column;
85
+ min-width: 0;
86
+ min-height: 0;
87
+ background: var(--vscode-editor-background, var(--color-bg));
88
+ }
89
+
90
+ .workbench-editor-area__group-body {
91
+ position: relative;
92
+ display: flex;
93
+ flex: 1;
94
+ min-width: 0;
95
+ min-height: 0;
96
+ }
97
+
98
+ .workbench-editor-area__drop-overlay {
99
+ position: absolute;
100
+ inset: 0;
101
+ z-index: 3;
102
+ pointer-events: none;
103
+ }
104
+
105
+ .workbench-editor-area__group-pane[data-drop-side='left'] .workbench-editor-area__drop-overlay {
106
+ right: 50%;
107
+ background: var(
108
+ --vscode-editorGroup-dropBackground,
109
+ color-mix(in srgb, var(--vscode-focusBorder, var(--color-focus-border)) 18%, transparent)
110
+ );
111
+ outline: 1px dashed var(--vscode-focusBorder, var(--color-focus-border));
112
+ outline-offset: -2px;
113
+ }
114
+
115
+ .workbench-editor-area__group-pane[data-drop-side='right'] .workbench-editor-area__drop-overlay {
116
+ left: 50%;
117
+ background: var(
118
+ --vscode-editorGroup-dropBackground,
119
+ color-mix(in srgb, var(--vscode-focusBorder, var(--color-focus-border)) 18%, transparent)
120
+ );
121
+ outline: 1px dashed var(--vscode-focusBorder, var(--color-focus-border));
122
+ outline-offset: -2px;
123
+ }
124
+
125
+ .workbench-editor-area__group-pane[data-drop-side='top'] .workbench-editor-area__drop-overlay {
126
+ bottom: 50%;
127
+ background: var(
128
+ --vscode-editorGroup-dropBackground,
129
+ color-mix(in srgb, var(--vscode-focusBorder, var(--color-focus-border)) 18%, transparent)
130
+ );
131
+ outline: 1px dashed var(--vscode-focusBorder, var(--color-focus-border));
132
+ outline-offset: -2px;
133
+ }
134
+
135
+ .workbench-editor-area__group-pane[data-drop-side='bottom'] .workbench-editor-area__drop-overlay {
136
+ top: 50%;
137
+ background: var(
138
+ --vscode-editorGroup-dropBackground,
139
+ color-mix(in srgb, var(--vscode-focusBorder, var(--color-focus-border)) 18%, transparent)
140
+ );
141
+ outline: 1px dashed var(--vscode-focusBorder, var(--color-focus-border));
142
+ outline-offset: -2px;
143
+ }
144
+
145
+ .workbench-editor-area__group-pane[data-drop-side='center'] .workbench-editor-area__drop-overlay {
146
+ background: var(
147
+ --vscode-editorGroup-dropBackground,
148
+ color-mix(in srgb, var(--vscode-focusBorder, var(--color-focus-border)) 12%, transparent)
149
+ );
150
+ outline: 1px dashed var(--vscode-focusBorder, var(--color-focus-border));
151
+ outline-offset: -2px;
152
+ }
153
+
154
+ .workbench-editor-area__group-actions {
155
+ display: flex;
156
+ flex-shrink: 0;
157
+ align-items: center;
158
+ gap: 4px;
159
+ height: 100%;
160
+ }
161
+
162
+ .workbench-editor-area__host {
163
+ box-sizing: border-box;
164
+ flex: 1;
165
+ min-width: 0;
166
+ height: 100%;
167
+ min-height: 0;
168
+ padding: 16px;
169
+ }
170
+
171
+ .workbench-editor-area__text-editor {
172
+ display: flex;
173
+ flex: 1;
174
+ flex-direction: column;
175
+ min-width: 0;
176
+ height: 100%;
177
+ min-height: 0;
178
+ }
179
+
180
+ .workbench-editor-area__mode-toolbar-outlet {
181
+ display: flex;
182
+ flex-shrink: 0;
183
+ align-items: center;
184
+ height: 100%;
185
+ }
186
+
187
+ .workbench-editor-area__view-toolbar {
188
+ box-sizing: border-box;
189
+ display: flex;
190
+ flex-shrink: 0;
191
+ gap: 2px;
192
+ align-items: center;
193
+ height: 100%;
194
+ }
195
+
196
+ .workbench-editor-area__view-button.ui-icon-button {
197
+ color: var(--vscode-tab-inactiveForeground, var(--color-text-muted));
198
+ opacity: 0.62;
199
+ }
200
+
201
+ .workbench-editor-area__view-button.ui-icon-button .codicon {
202
+ font-size: 15px;
203
+ }
204
+
205
+ .workbench-editor-area__view-button.ui-icon-button:hover {
206
+ opacity: 1;
207
+ background: var(--vscode-toolbar-hoverBackground, var(--color-bg-hover));
208
+ color: var(--vscode-tab-hoverForeground, var(--vscode-foreground, var(--color-text)));
209
+ }
210
+
211
+ .workbench-editor-area__view-button.ui-icon-button[aria-pressed='true'],
212
+ .workbench-editor-area__view-button.ui-icon-button[aria-checked='true'],
213
+ .workbench-editor-area__view-button--active.ui-icon-button {
214
+ opacity: 1;
215
+ color: var(--vscode-tab-activeForeground, var(--color-text));
216
+ background: color-mix(
217
+ in srgb,
218
+ var(--vscode-tab-activeForeground, var(--color-text)) 14%,
219
+ transparent
220
+ );
221
+ border-color: color-mix(
222
+ in srgb,
223
+ var(--vscode-focusBorder, var(--color-focus-border, var(--color-accent))) 35%,
224
+ transparent
225
+ );
226
+ }
227
+
228
+ .workbench-editor-area__view-button.ui-icon-button[aria-pressed='true']:hover,
229
+ .workbench-editor-area__view-button.ui-icon-button[aria-checked='true']:hover,
230
+ .workbench-editor-area__view-button--active.ui-icon-button:hover {
231
+ background: color-mix(
232
+ in srgb,
233
+ var(--vscode-tab-activeForeground, var(--color-text)) 20%,
234
+ transparent
235
+ );
236
+ }
237
+
238
+ .workbench-editor-area__text-editor-body {
239
+ display: flex;
240
+ flex: 1;
241
+ flex-direction: column;
242
+ min-width: 0;
243
+ min-height: 0;
244
+ }
245
+
246
+ .workbench-editor-area__text-editor-body > *:last-child {
247
+ flex: 1;
248
+ min-width: 0;
249
+ min-height: 0;
250
+ }
251
+
252
+ .workbench-editor-area__split.ui-workbench-split-view {
253
+ width: 100%;
254
+ height: 100%;
255
+ }
256
+
257
+ .workbench-editor-area__split-pane {
258
+ display: flex;
259
+ flex: 1;
260
+ min-width: 0;
261
+ min-height: 0;
262
+ }
263
+
264
+ .workbench-editor-area__source-pane {
265
+ display: flex;
266
+ flex: 1;
267
+ min-width: 0;
268
+ min-height: 0;
269
+ }
270
+
271
+ .workbench-editor-area__source-pane .workbench-monaco-panel {
272
+ --panel-bg: var(--vscode-editor-background, var(--color-bg));
273
+ background: var(--vscode-editor-background, var(--color-bg));
274
+ }
275
+
276
+ .workbench-editor-area__source-pane .workbench-monaco-panel,
277
+ .workbench-editor-area__source-pane .workbench-monaco-panel__body {
278
+ box-sizing: border-box;
279
+ flex: 1;
280
+ min-width: 0;
281
+ min-height: 0;
282
+ }
283
+
284
+ .workbench-editor-area__source-pane .workbench-monaco-panel,
285
+ .workbench-editor-area__source-pane .workspace-editor__monaco {
286
+ box-sizing: border-box;
287
+ min-width: 0;
288
+ min-height: 0;
289
+ height: 100%;
290
+ }
291
+
292
+ .workbench-editor-area__source-pane .workbench-monaco-panel__body {
293
+ padding: 0;
294
+ border: 0;
295
+ }
296
+
297
+ .workbench-editor-area__editor-loading {
298
+ display: grid;
299
+ flex: 1;
300
+ min-width: 0;
301
+ min-height: 0;
302
+ place-items: center;
303
+ color: var(--color-text-muted);
304
+ font-size: var(--font-size-sm, 0.875rem);
305
+ }
306
+
307
+ .workbench-editor-area__preview-pane {
308
+ flex: 1;
309
+ min-width: 0;
310
+ min-height: 0;
311
+ padding: 16px;
312
+ background: var(--vscode-editor-background, var(--color-bg));
313
+ }
314
+
315
+ .workbench-editor-area__preview-pane:has(.ui-jdw-preview-viewport) {
316
+ padding: 0;
317
+ overflow: hidden;
318
+ }
319
+
320
+ .workbench-editor-area__jdw-preview,
321
+ .workbench-editor-area__jdw-preview-viewport,
322
+ .workbench-editor-area__preview-pane .ui-jdw-preview-viewport-host {
323
+ min-height: 100%;
324
+ height: 100%;
325
+ }
326
+
327
+ .workbench-editor-area__form,
328
+ .workbench-editor-area__form-placeholder {
329
+ box-sizing: border-box;
330
+ flex: 1 1 auto;
331
+ align-self: stretch;
332
+ min-width: 0;
333
+ min-height: 0;
334
+ width: 100%;
335
+ padding: 16px;
336
+ }
337
+
338
+ .workbench-editor-area__form {
339
+ padding: 0;
340
+ }
341
+
342
+ .workbench-editor-area__form-grid {
343
+ --workbench-editor-form-indent: 14px;
344
+ box-sizing: border-box;
345
+ display: grid;
346
+ grid-template-columns: minmax(9rem, 34%) minmax(12rem, 1fr);
347
+ column-gap: 20px;
348
+ row-gap: 4px;
349
+ align-items: start;
350
+ align-content: start;
351
+ width: 100%;
352
+ max-width: 960px;
353
+ min-height: min-content;
354
+ padding: 16px;
355
+ }
356
+
357
+ .workbench-editor-area__form-field {
358
+ display: contents;
359
+ }
360
+
361
+ .workbench-editor-area__form-label {
362
+ grid-column: 1;
363
+ align-self: start;
364
+ padding-block: 7px;
365
+ padding-inline-start: calc(
366
+ var(--workbench-editor-form-depth, 0) * var(--workbench-editor-form-indent)
367
+ );
368
+ color: var(--color-text-muted);
369
+ font-size: var(--font-size-sm, 0.875rem);
370
+ line-height: 1.4;
371
+ overflow-wrap: anywhere;
372
+ text-align: end;
373
+ }
374
+
375
+ .workbench-editor-area__form-control,
376
+ .workbench-editor-area__form-readonly {
377
+ grid-column: 2;
378
+ align-self: start;
379
+ }
380
+
381
+ .workbench-editor-area__form-control.ui-input,
382
+ .workbench-editor-area__form-control.ui-select {
383
+ width: 100%;
384
+ max-width: 640px;
385
+ min-width: 0;
386
+ }
387
+
388
+ .workbench-editor-area__form-readonly {
389
+ box-sizing: border-box;
390
+ min-width: 0;
391
+ max-width: 640px;
392
+ padding: 5px 8px;
393
+ border: 1px solid var(--vscode-input-border, var(--color-border));
394
+ border-radius: var(--radius-sm, 4px);
395
+ background: var(--vscode-input-background, var(--color-bg));
396
+ color: var(--vscode-descriptionForeground, var(--color-text-muted));
397
+ font-family: ui-monospace, SFMono-Regular, Consolas, 'Liberation Mono', monospace;
398
+ font-size: var(--font-size-xs, 0.75rem);
399
+ line-height: 1.5;
400
+ }
401
+
402
+ .workbench-editor-area__form-group-header {
403
+ grid-column: 1 / -1;
404
+ display: flex;
405
+ align-items: center;
406
+ gap: 8px;
407
+ min-width: 0;
408
+ margin-top: 8px;
409
+ padding-top: 8px;
410
+ padding-inline-start: calc(
411
+ var(--workbench-editor-form-depth, 0) * var(--workbench-editor-form-indent)
412
+ );
413
+ border-top: 1px solid var(--vscode-editorGroup-border, var(--color-border));
414
+ }
415
+
416
+ .workbench-editor-area__form-grid > .workbench-editor-area__form-group-header {
417
+ margin-top: 0;
418
+ padding-top: 0;
419
+ border-top: 0;
420
+ }
421
+
422
+ .workbench-editor-area__form-group-header .workbench-editor-area__form-label {
423
+ grid-column: auto;
424
+ padding-block: 0;
425
+ padding-inline-start: 0;
426
+ color: var(--color-text);
427
+ font-weight: 600;
428
+ text-align: start;
429
+ }
430
+
431
+ .workbench-editor-area__form-badge {
432
+ flex-shrink: 0;
433
+ padding: 1px 6px;
434
+ border-radius: var(--radius-sm, 4px);
435
+ background: var(--vscode-badge-background, var(--color-bg-elevated));
436
+ color: var(--vscode-badge-foreground, var(--color-text-muted));
437
+ font-size: var(--font-size-xs, 0.75rem);
438
+ line-height: 1.4;
439
+ }
440
+
441
+ .workbench-editor-area__form-empty {
442
+ grid-column: 2;
443
+ align-self: start;
444
+ padding-block: 4px;
445
+ color: var(--color-text-muted);
446
+ font-size: var(--font-size-sm, 0.875rem);
447
+ }
448
+
449
+ .workbench-editor-area__form-placeholder p {
450
+ margin: 0 0 8px;
451
+ color: var(--color-text-muted);
452
+ font-size: var(--font-size-sm, 0.875rem);
453
+ line-height: 1.5;
454
+ }