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

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 (93) hide show
  1. package/package.json +49 -0
  2. package/src/chat-ai-mock-proposals.ts +39 -0
  3. package/src/chat-command-input.ts +52 -0
  4. package/src/chat-command-policy.ts +54 -0
  5. package/src/chat-command-surface.tsx +155 -0
  6. package/src/chat-view-data.ts +20 -0
  7. package/src/chat-view.tsx +220 -0
  8. package/src/command-inspector-surface.tsx +46 -0
  9. package/src/commands-view-data.ts +17 -0
  10. package/src/commands-view.tsx +43 -0
  11. package/src/createCommandWorkspaceExplorerPort.ts +86 -0
  12. package/src/devtools/WorkbenchDevtoolsPanel.tsx +124 -0
  13. package/src/devtools/WorkbenchDevtoolsShell.tsx +17 -0
  14. package/src/devtools/index.ts +11 -0
  15. package/src/devtools/use-workbench-devtools-snapshot.ts +84 -0
  16. package/src/devtools/workbench-devtools-snapshot.ts +140 -0
  17. package/src/devtools/workbench-devtools.css +82 -0
  18. package/src/editor-area-dnd.ts +69 -0
  19. package/src/editor-area-model.ts +71 -0
  20. package/src/editor-area.css +454 -0
  21. package/src/editor-area.tsx +676 -0
  22. package/src/editor-host-surface.tsx +634 -0
  23. package/src/editor-pane-visibility.ts +130 -0
  24. package/src/editor-resource.ts +36 -0
  25. package/src/editor-state-storage.ts +193 -0
  26. package/src/editor-tab-context-menu.ts +118 -0
  27. package/src/editor-view-providers.tsx +552 -0
  28. package/src/editor-workspace-file-availability.ts +15 -0
  29. package/src/editor-workspace-reconcile.tsx +28 -0
  30. package/src/explorer-context-menu.ts +114 -0
  31. package/src/explorer-reveal.ts +112 -0
  32. package/src/explorer-view-data.ts +58 -0
  33. package/src/explorer-view.tsx +224 -0
  34. package/src/extension-context-menu.ts +52 -0
  35. package/src/extension-management-model.ts +313 -0
  36. package/src/extensions-view-data.ts +19 -0
  37. package/src/extensions-view.tsx +38 -0
  38. package/src/field-remap-demo.tsx +18 -0
  39. package/src/field-remap-editor-surface.tsx +36 -0
  40. package/src/field-remap-flow-adapter.ts +240 -0
  41. package/src/field-remap-flow.tsx +369 -0
  42. package/src/field-remap-graph.tsx +559 -0
  43. package/src/field-remap-panel.tsx +175 -0
  44. package/src/field-remap-samples.ts +352 -0
  45. package/src/field-remap-tree.tsx +404 -0
  46. package/src/field-remap-view-data.ts +16 -0
  47. package/src/field-remap-view.css +676 -0
  48. package/src/field-remap-view.tsx +86 -0
  49. package/src/index.ts +199 -0
  50. package/src/jdw-lab-view-data.ts +25 -0
  51. package/src/jdw-lab-view.css +21 -0
  52. package/src/jdw-lab-view.tsx +79 -0
  53. package/src/jdw-widget-form-view.tsx +65 -0
  54. package/src/jdw-widget-preview-view.tsx +51 -0
  55. package/src/json-form-source-patch.ts +323 -0
  56. package/src/jsonata-transform.ts +36 -0
  57. package/src/keybinding-management-settings.tsx +16 -0
  58. package/src/keybinding-overrides-storage.ts +57 -0
  59. package/src/management-palette-commands.ts +38 -0
  60. package/src/management-settings-ids.ts +12 -0
  61. package/src/management-settings.tsx +75 -0
  62. package/src/preference-settings-storage.ts +58 -0
  63. package/src/provider.tsx +573 -0
  64. package/src/search-view-data.ts +15 -0
  65. package/src/search-view.tsx +62 -0
  66. package/src/shell-model.tsx +149 -0
  67. package/src/shell-secondary-actions.tsx +59 -0
  68. package/src/shell-settings-constants.ts +9 -0
  69. package/src/shell-settings.tsx +599 -0
  70. package/src/shell-titlebar-layout-controls.tsx +4 -0
  71. package/src/shell-view-host.tsx +199 -0
  72. package/src/shell.tsx +649 -0
  73. package/src/table-mapping-adapter.ts +59 -0
  74. package/src/use-active-workspace-path.ts +15 -0
  75. package/src/use-command-management.ts +191 -0
  76. package/src/use-context-key-revision.ts +18 -0
  77. package/src/use-editor.ts +107 -0
  78. package/src/use-extension-management.ts +193 -0
  79. package/src/use-keybinding-management.ts +130 -0
  80. package/src/use-persisted-workbench-appearance.ts +33 -0
  81. package/src/use-workbench-chat-command-proposals.ts +194 -0
  82. package/src/use-workbench-command-descriptors.ts +41 -0
  83. package/src/workbench-appearance-storage.ts +115 -0
  84. package/src/workbench-command-host.tsx +243 -0
  85. package/src/workbench-command-palette.ts +208 -0
  86. package/src/workbench-keybinding-bridge.ts +54 -0
  87. package/src/workbench-layout-storage.ts +145 -0
  88. package/src/workbench-profile-modal.tsx +118 -0
  89. package/src/workbench-shell-command-registration.ts +58 -0
  90. package/src/workbench-startup-gate.tsx +136 -0
  91. package/src/workbench-status-sections.ts +43 -0
  92. package/src/workbench-user-commands.ts +46 -0
  93. package/src/workspace-view-state.ts +35 -0
@@ -0,0 +1,676 @@
1
+ .workbench-field-remap-view {
2
+ height: 100%;
3
+ }
4
+
5
+ .workbench-field-remap-view__list {
6
+ padding: 0.5rem;
7
+ }
8
+
9
+ .workbench-field-remap-editor-surface {
10
+ box-sizing: border-box;
11
+ flex: 1 1 auto;
12
+ align-self: stretch;
13
+ width: 100%;
14
+ min-width: 0;
15
+ height: 100%;
16
+ color: var(--vscode-editor-foreground, var(--color-text));
17
+ background: var(--vscode-editor-background, var(--color-bg));
18
+ }
19
+
20
+ .workbench-field-remap-demo {
21
+ box-sizing: border-box;
22
+ display: flex;
23
+ flex-direction: column;
24
+ gap: 1rem;
25
+ width: 100%;
26
+ min-width: 0;
27
+ min-height: 0;
28
+ padding: 1.25rem 1.5rem;
29
+ color: var(--vscode-editor-foreground, var(--color-text));
30
+ }
31
+
32
+ .workbench-field-remap-demo__header {
33
+ display: flex;
34
+ flex-direction: column;
35
+ gap: 0.35rem;
36
+ }
37
+
38
+ .workbench-field-remap-demo__title {
39
+ margin: 0;
40
+ font-size: 1.25rem;
41
+ font-weight: 600;
42
+ color: var(--vscode-editor-foreground, var(--color-text));
43
+ }
44
+
45
+ .workbench-field-remap-demo__intro {
46
+ margin: 0;
47
+ color: var(--vscode-descriptionForeground, var(--color-text-muted));
48
+ font-size: 0.875rem;
49
+ line-height: 1.45;
50
+ }
51
+
52
+ .workbench-field-remap-demo__intro code {
53
+ font-size: 0.8em;
54
+ }
55
+
56
+ .workbench-field-remap-demo__error {
57
+ margin: 0;
58
+ color: var(--vscode-errorForeground, var(--color-danger));
59
+ font-size: 0.875rem;
60
+ }
61
+
62
+ .workbench-field-remap-demo__warn {
63
+ margin: 0;
64
+ color: var(--vscode-editorWarning-foreground, var(--color-warning, #b89500));
65
+ font-size: 0.875rem;
66
+ }
67
+
68
+ .workbench-field-remap-demo__panes {
69
+ display: grid;
70
+ grid-template-columns: repeat(2, minmax(0, 1fr));
71
+ gap: 1rem;
72
+ }
73
+
74
+ @media (max-width: 800px) {
75
+ .workbench-field-remap-demo__panes {
76
+ grid-template-columns: 1fr;
77
+ }
78
+ }
79
+
80
+ .workbench-field-remap-demo__pane {
81
+ display: flex;
82
+ flex-direction: column;
83
+ gap: 0.5rem;
84
+ min-width: 0;
85
+ }
86
+
87
+ .workbench-field-remap-demo__pane h3 {
88
+ margin: 0;
89
+ font-size: 0.8rem;
90
+ font-weight: 600;
91
+ letter-spacing: 0.02em;
92
+ text-transform: uppercase;
93
+ color: var(--vscode-descriptionForeground, var(--color-text-muted));
94
+ }
95
+
96
+ .workbench-field-remap-demo__pane pre {
97
+ margin: 0;
98
+ padding: 0.75rem;
99
+ border: 1px solid var(--vscode-panel-border, var(--color-border));
100
+ border-radius: 0.375rem;
101
+ background: var(--vscode-input-background, var(--color-input-bg, var(--color-surface)));
102
+ color: var(--vscode-editor-foreground, var(--color-text));
103
+ font-size: 0.8rem;
104
+ line-height: 1.4;
105
+ overflow: auto;
106
+ white-space: pre-wrap;
107
+ word-break: break-word;
108
+ font-family: var(
109
+ --vscode-editor-font-family,
110
+ ui-monospace,
111
+ SFMono-Regular,
112
+ Menlo,
113
+ Consolas,
114
+ monospace
115
+ );
116
+ }
117
+
118
+ .workbench-field-remap-mapper {
119
+ display: flex;
120
+ flex-direction: column;
121
+ gap: 0.75rem;
122
+ min-height: 22rem;
123
+ padding: 0.75rem;
124
+ border: 1px solid var(--vscode-panel-border, var(--color-border));
125
+ border-radius: 0.375rem;
126
+ background: var(--color-surface);
127
+ }
128
+
129
+ .workbench-field-remap-mapper__hint {
130
+ margin: 0;
131
+ font-size: 0.8rem;
132
+ color: var(--vscode-descriptionForeground, var(--color-text-muted));
133
+ }
134
+
135
+ .workbench-field-remap-mapper__columns {
136
+ display: grid;
137
+ grid-template-columns: repeat(2, minmax(0, 1fr));
138
+ gap: 0.75rem;
139
+ min-height: 14rem;
140
+ }
141
+
142
+ .workbench-field-remap-graph {
143
+ display: grid;
144
+ grid-template-columns: minmax(10rem, 1fr) minmax(18rem, 2.2fr) minmax(10rem, 1fr);
145
+ gap: 0.75rem;
146
+ min-height: 16rem;
147
+ align-items: stretch;
148
+ }
149
+
150
+ @media (max-width: 960px) {
151
+ .workbench-field-remap-graph {
152
+ grid-template-columns: 1fr;
153
+ }
154
+ }
155
+
156
+ .workbench-field-remap-graph__center {
157
+ min-width: 0;
158
+ border: 1px solid var(--vscode-panel-border, var(--color-border));
159
+ border-radius: 0.25rem;
160
+ background: var(--vscode-editor-background, var(--color-bg));
161
+ overflow: auto;
162
+ }
163
+
164
+ .workbench-field-remap-graph__empty {
165
+ margin: 0;
166
+ padding: 0.75rem;
167
+ font-size: 0.8rem;
168
+ color: var(--vscode-descriptionForeground, var(--color-text-muted));
169
+ }
170
+
171
+ .workbench-field-remap-graph__keys {
172
+ list-style: none;
173
+ margin: 0;
174
+ padding: 0.25rem 0;
175
+ }
176
+
177
+ .workbench-field-remap-graph__key {
178
+ display: flex;
179
+ align-items: center;
180
+ gap: 0.35rem;
181
+ width: calc(100% - 0.5rem);
182
+ margin: 0.1rem 0.25rem;
183
+ padding: 0.25rem 0.4rem;
184
+ border: 0;
185
+ border-radius: 0.2rem;
186
+ background: transparent;
187
+ color: inherit;
188
+ text-align: left;
189
+ cursor: pointer;
190
+ font-size: 0.85rem;
191
+ }
192
+
193
+ .workbench-field-remap-graph__key:hover {
194
+ background: var(--vscode-list-hoverBackground, rgba(127, 127, 127, 0.12));
195
+ }
196
+
197
+ .workbench-field-remap-graph__key.is-selected {
198
+ background: var(--vscode-list-activeSelectionBackground, var(--color-accent-muted, #2a4a6a));
199
+ color: var(--vscode-list-activeSelectionForeground, var(--color-text));
200
+ }
201
+
202
+ .workbench-field-remap-graph__key.is-mapped {
203
+ font-weight: 600;
204
+ }
205
+
206
+ .workbench-field-remap-graph__lanes {
207
+ list-style: none;
208
+ margin: 0;
209
+ padding: 0.4rem;
210
+ display: flex;
211
+ flex-direction: column;
212
+ gap: 0.4rem;
213
+ }
214
+
215
+ .workbench-field-remap-graph__lane {
216
+ display: flex;
217
+ flex-wrap: wrap;
218
+ align-items: center;
219
+ gap: 0.35rem;
220
+ padding: 0.45rem 0.5rem;
221
+ border: 1px solid var(--vscode-panel-border, var(--color-border));
222
+ border-radius: 0.25rem;
223
+ background: var(--color-surface);
224
+ }
225
+
226
+ .workbench-field-remap-graph__lane.is-selected {
227
+ border-color: var(--vscode-focusBorder, var(--color-accent, #3794ff));
228
+ }
229
+
230
+ .workbench-field-remap-graph__endpoint {
231
+ max-width: 8rem;
232
+ overflow: hidden;
233
+ text-overflow: ellipsis;
234
+ white-space: nowrap;
235
+ padding: 0.2rem 0.4rem;
236
+ border: 1px solid var(--vscode-panel-border, var(--color-border));
237
+ border-radius: 0.2rem;
238
+ background: var(--vscode-editor-background, var(--color-bg));
239
+ color: inherit;
240
+ font-size: 0.78rem;
241
+ cursor: pointer;
242
+ }
243
+
244
+ .workbench-field-remap-graph__arrow {
245
+ color: var(--vscode-descriptionForeground, var(--color-text-muted));
246
+ font-size: 0.85rem;
247
+ }
248
+
249
+ .workbench-field-remap-graph__nodes {
250
+ display: inline-flex;
251
+ flex-wrap: wrap;
252
+ align-items: center;
253
+ gap: 0.3rem;
254
+ min-width: 0;
255
+ flex: 1;
256
+ }
257
+
258
+ .workbench-field-remap-graph__passthrough {
259
+ padding: 0.15rem 0.4rem;
260
+ border: 1px dashed var(--vscode-panel-border, var(--color-border));
261
+ border-radius: 0.2rem;
262
+ font-size: 0.72rem;
263
+ color: var(--vscode-descriptionForeground, var(--color-text-muted));
264
+ }
265
+
266
+ .workbench-field-remap-graph__node {
267
+ display: inline-flex;
268
+ flex-wrap: wrap;
269
+ align-items: center;
270
+ gap: 0.25rem;
271
+ padding: 0.25rem 0.35rem;
272
+ border: 1px solid var(--vscode-focusBorder, var(--color-accent, #3794ff));
273
+ border-radius: 0.25rem;
274
+ background: var(--vscode-editor-background, var(--color-bg));
275
+ }
276
+
277
+ .workbench-field-remap-graph__node select,
278
+ .workbench-field-remap-graph__node input {
279
+ max-width: 7.5rem;
280
+ padding: 0.15rem 0.25rem;
281
+ border: 1px solid var(--vscode-panel-border, var(--color-border));
282
+ border-radius: 0.15rem;
283
+ background: var(--color-surface);
284
+ color: inherit;
285
+ font-size: 0.72rem;
286
+ }
287
+
288
+ .visually-hidden {
289
+ position: absolute;
290
+ width: 1px;
291
+ height: 1px;
292
+ padding: 0;
293
+ margin: -1px;
294
+ overflow: hidden;
295
+ clip: rect(0, 0, 0, 0);
296
+ white-space: nowrap;
297
+ border: 0;
298
+ }
299
+
300
+ .workbench-field-remap-flow {
301
+ display: flex;
302
+ flex-direction: column;
303
+ gap: 0.75rem;
304
+ }
305
+
306
+ .workbench-field-remap-flow__canvas {
307
+ height: min(40rem, 70vh);
308
+ min-height: 26rem;
309
+ border: 1px solid var(--vscode-panel-border, var(--color-border));
310
+ border-radius: 0.375rem;
311
+ overflow: hidden;
312
+ background: var(--vscode-editor-background, var(--color-bg));
313
+ }
314
+
315
+ /* XYFlow default chrome is light; bind Controls / MiniMap / dots to host tokens. */
316
+ .workbench-field-remap-flow__canvas .react-flow {
317
+ --xy-background-color: var(--vscode-editor-background, var(--color-bg));
318
+ --xy-background-pattern-color: var(--vscode-editorIndentGuide-background, var(--color-border));
319
+ --xy-controls-button-background-color: var(
320
+ --vscode-button-secondaryBackground,
321
+ var(--color-surface)
322
+ );
323
+ --xy-controls-button-background-color-hover: var(
324
+ --vscode-button-secondaryHoverBackground,
325
+ var(--color-bg-muted, var(--color-surface))
326
+ );
327
+ --xy-controls-button-color: var(--vscode-foreground, var(--color-text));
328
+ --xy-controls-button-color-hover: var(--vscode-foreground, var(--color-text));
329
+ --xy-controls-button-border-color: var(--vscode-panel-border, var(--color-border));
330
+ --xy-controls-box-shadow: none;
331
+ --xy-minimap-background-color: var(--vscode-editorWidget-background, var(--color-surface));
332
+ --xy-minimap-mask-background-color: color-mix(
333
+ in srgb,
334
+ var(--vscode-editor-background, var(--color-bg)) 62%,
335
+ transparent
336
+ );
337
+ --xy-minimap-node-background-color: var(
338
+ --vscode-badge-background,
339
+ var(--color-bg-muted, #3c3c3c)
340
+ );
341
+ --xy-minimap-node-stroke-color: var(--vscode-panel-border, var(--color-border));
342
+ --xy-attribution-background-color: transparent;
343
+ }
344
+
345
+ .workbench-field-remap-flow__canvas .react-flow__controls {
346
+ border: 1px solid var(--vscode-panel-border, var(--color-border));
347
+ border-radius: 0.35rem;
348
+ overflow: hidden;
349
+ box-shadow: none;
350
+ }
351
+
352
+ .workbench-field-remap-flow__canvas .react-flow__controls-button {
353
+ background: var(--xy-controls-button-background-color);
354
+ border-bottom-color: var(--vscode-panel-border, var(--color-border));
355
+ fill: var(--xy-controls-button-color);
356
+ }
357
+
358
+ .workbench-field-remap-flow__canvas .react-flow__controls-button:hover {
359
+ background: var(--xy-controls-button-background-color-hover);
360
+ }
361
+
362
+ .workbench-field-remap-flow__canvas .react-flow__controls-button svg {
363
+ fill: currentColor;
364
+ max-width: 12px;
365
+ max-height: 12px;
366
+ }
367
+
368
+ .workbench-field-remap-flow__canvas .react-flow__minimap {
369
+ margin: 0.5rem;
370
+ border: 1px solid var(--vscode-panel-border, var(--color-border));
371
+ border-radius: 0.35rem;
372
+ overflow: hidden;
373
+ box-shadow: none;
374
+ }
375
+
376
+ .workbench-field-remap-flow__canvas .react-flow__node {
377
+ font-size: 0.8rem;
378
+ }
379
+
380
+ .workbench-field-remap-flow-node {
381
+ min-width: 9.5rem;
382
+ max-width: 14rem;
383
+ padding: 0.45rem 0.55rem;
384
+ border: 1px solid var(--vscode-panel-border, var(--color-border));
385
+ border-radius: 0.35rem;
386
+ background: var(--color-surface);
387
+ color: var(--vscode-editor-foreground, var(--color-text));
388
+ box-shadow: none;
389
+ }
390
+
391
+ .workbench-field-remap-flow-node--object {
392
+ min-width: 12.5rem;
393
+ max-width: 18rem;
394
+ padding: 0.4rem 0.35rem 0.45rem;
395
+ }
396
+
397
+ .workbench-field-remap-flow-node--source {
398
+ border-left: 3px solid var(--vscode-charts-blue, #3794ff);
399
+ }
400
+
401
+ .workbench-field-remap-flow-node--target {
402
+ border-right: 3px solid var(--vscode-charts-green, #89d185);
403
+ }
404
+
405
+ .workbench-field-remap-flow-node--transform {
406
+ border-color: var(--vscode-focusBorder, var(--color-accent, #3794ff));
407
+ background: var(--vscode-editor-background, var(--color-bg));
408
+ }
409
+
410
+ .workbench-field-remap-flow-node__header {
411
+ display: flex;
412
+ align-items: baseline;
413
+ gap: 0.5rem;
414
+ padding: 0.15rem 0.45rem 0.35rem;
415
+ border-bottom: 1px solid var(--vscode-panel-border, var(--color-border));
416
+ margin-bottom: 0.2rem;
417
+ }
418
+
419
+ .workbench-field-remap-flow-node__header strong {
420
+ font-size: 0.85rem;
421
+ }
422
+
423
+ .workbench-field-remap-flow-node__title {
424
+ display: flex;
425
+ align-items: center;
426
+ justify-content: space-between;
427
+ gap: 0.35rem;
428
+ font-weight: 600;
429
+ }
430
+
431
+ .workbench-field-remap-flow-node__hint {
432
+ display: block;
433
+ font-size: 0.65rem;
434
+ color: var(--vscode-descriptionForeground, var(--color-text-muted));
435
+ text-transform: uppercase;
436
+ letter-spacing: 0.04em;
437
+ }
438
+
439
+ .workbench-field-remap-flow-node__id {
440
+ display: block;
441
+ margin-top: 0.2rem;
442
+ font-size: 0.68rem;
443
+ color: var(--vscode-descriptionForeground, var(--color-text-muted));
444
+ }
445
+
446
+ .workbench-field-remap-flow-node__ports {
447
+ list-style: none;
448
+ margin: 0;
449
+ padding: 0;
450
+ display: flex;
451
+ flex-direction: column;
452
+ gap: 0.1rem;
453
+ }
454
+
455
+ .workbench-field-remap-flow-node__port {
456
+ position: relative;
457
+ display: flex;
458
+ align-items: center;
459
+ min-height: 1.55rem;
460
+ padding: 0.15rem 0.7rem;
461
+ gap: 0.35rem;
462
+ }
463
+
464
+ .workbench-field-remap-flow-node--source .workbench-field-remap-flow-node__port {
465
+ justify-content: flex-end;
466
+ }
467
+
468
+ .workbench-field-remap-flow-node--target .workbench-field-remap-flow-node__port {
469
+ justify-content: flex-start;
470
+ }
471
+
472
+ .workbench-field-remap-flow-node__port-label {
473
+ display: inline-flex;
474
+ align-items: center;
475
+ gap: 0.3rem;
476
+ min-width: 0;
477
+ font-size: 0.78rem;
478
+ line-height: 1.2;
479
+ }
480
+
481
+ .workbench-field-remap-flow-node__port-label > span:first-child {
482
+ overflow: hidden;
483
+ text-overflow: ellipsis;
484
+ white-space: nowrap;
485
+ }
486
+
487
+ .workbench-field-remap-flow-node__handle {
488
+ width: 8px !important;
489
+ height: 8px !important;
490
+ border-width: 1px !important;
491
+ background: var(--vscode-focusBorder, var(--color-accent, #3794ff)) !important;
492
+ }
493
+
494
+ .workbench-field-remap-flow-node--source .workbench-field-remap-flow-node__handle {
495
+ right: -5px !important;
496
+ }
497
+
498
+ .workbench-field-remap-flow-node--target .workbench-field-remap-flow-node__handle {
499
+ left: -5px !important;
500
+ }
501
+
502
+ .workbench-field-remap-flow__bindings h4 {
503
+ margin: 0 0 0.35rem;
504
+ font-size: 0.75rem;
505
+ font-weight: 600;
506
+ text-transform: uppercase;
507
+ letter-spacing: 0.03em;
508
+ color: var(--vscode-descriptionForeground, var(--color-text-muted));
509
+ }
510
+
511
+ .workbench-field-remap-flow__bindings ul {
512
+ list-style: none;
513
+ margin: 0;
514
+ padding: 0;
515
+ display: flex;
516
+ flex-direction: column;
517
+ gap: 0.25rem;
518
+ }
519
+
520
+ .workbench-field-remap-flow__bindings li {
521
+ display: flex;
522
+ flex-wrap: wrap;
523
+ align-items: center;
524
+ justify-content: space-between;
525
+ gap: 0.5rem;
526
+ padding: 0.35rem 0.5rem;
527
+ border-radius: 0.25rem;
528
+ background: var(--color-surface);
529
+ font-size: 0.8rem;
530
+ }
531
+
532
+ .workbench-field-remap-tree {
533
+ min-width: 0;
534
+ border: 1px solid var(--vscode-panel-border, var(--color-border));
535
+ border-radius: 0.25rem;
536
+ background: var(--vscode-editor-background, var(--color-bg));
537
+ overflow: auto;
538
+ }
539
+
540
+ .workbench-field-remap-tree__title {
541
+ margin: 0;
542
+ padding: 0.5rem 0.65rem;
543
+ border-bottom: 1px solid var(--vscode-panel-border, var(--color-border));
544
+ font-size: 0.75rem;
545
+ font-weight: 600;
546
+ text-transform: uppercase;
547
+ letter-spacing: 0.03em;
548
+ color: var(--vscode-descriptionForeground, var(--color-text-muted));
549
+ }
550
+
551
+ .workbench-field-remap-tree__list,
552
+ .workbench-field-remap-tree__list ul {
553
+ list-style: none;
554
+ margin: 0;
555
+ padding: 0.25rem 0;
556
+ }
557
+
558
+ .workbench-field-remap-tree__row {
559
+ display: flex;
560
+ align-items: center;
561
+ gap: 0.15rem;
562
+ min-height: 1.75rem;
563
+ }
564
+
565
+ .workbench-field-remap-tree__row.is-selected .workbench-field-remap-tree__node {
566
+ background: var(--vscode-list-activeSelectionBackground, var(--color-accent-muted, #2a4a6a));
567
+ color: var(--vscode-list-activeSelectionForeground, var(--color-text));
568
+ }
569
+
570
+ .workbench-field-remap-tree__row.is-mapped .workbench-field-remap-tree__label {
571
+ font-weight: 600;
572
+ }
573
+
574
+ .workbench-field-remap-tree__twistie,
575
+ .workbench-field-remap-tree__twistie-spacer {
576
+ width: 1.1rem;
577
+ flex: 0 0 1.1rem;
578
+ border: 0;
579
+ background: transparent;
580
+ color: inherit;
581
+ font-size: 0.7rem;
582
+ line-height: 1;
583
+ padding: 0;
584
+ cursor: pointer;
585
+ }
586
+
587
+ .workbench-field-remap-tree__twistie-spacer {
588
+ cursor: default;
589
+ }
590
+
591
+ .workbench-field-remap-tree__node {
592
+ display: inline-flex;
593
+ align-items: center;
594
+ gap: 0.4rem;
595
+ flex: 1;
596
+ min-width: 0;
597
+ margin: 0 0.25rem 0 0;
598
+ padding: 0.2rem 0.4rem;
599
+ border: 0;
600
+ border-radius: 0.2rem;
601
+ background: transparent;
602
+ color: inherit;
603
+ text-align: left;
604
+ cursor: pointer;
605
+ }
606
+
607
+ .workbench-field-remap-tree__node:hover {
608
+ background: var(
609
+ --vscode-list-hoverBackground,
610
+ var(--color-surface-hover, rgba(127, 127, 127, 0.12))
611
+ );
612
+ }
613
+
614
+ .workbench-field-remap-tree__label {
615
+ overflow: hidden;
616
+ text-overflow: ellipsis;
617
+ white-space: nowrap;
618
+ font-size: 0.85rem;
619
+ }
620
+
621
+ .workbench-field-remap-mapper__list-context {
622
+ display: flex;
623
+ flex-direction: column;
624
+ gap: 0.5rem;
625
+ padding: 0.5rem 0.65rem;
626
+ border: 1px solid var(--vscode-focusBorder, var(--color-accent, #3794ff));
627
+ border-radius: 0.25rem;
628
+ }
629
+
630
+ .workbench-field-remap-mapper__list-context-bar {
631
+ display: flex;
632
+ flex-wrap: wrap;
633
+ align-items: center;
634
+ gap: 0.5rem;
635
+ font-size: 0.8rem;
636
+ }
637
+
638
+ .workbench-field-remap-mapper__edges-panel h4 {
639
+ margin: 0 0 0.35rem;
640
+ font-size: 0.75rem;
641
+ font-weight: 600;
642
+ text-transform: uppercase;
643
+ letter-spacing: 0.03em;
644
+ color: var(--vscode-descriptionForeground, var(--color-text-muted));
645
+ }
646
+
647
+ .workbench-field-remap-mapper__edges {
648
+ list-style: none;
649
+ margin: 0;
650
+ padding: 0;
651
+ display: flex;
652
+ flex-direction: column;
653
+ gap: 0.25rem;
654
+ }
655
+
656
+ .workbench-field-remap-mapper__edges li {
657
+ display: flex;
658
+ flex-wrap: wrap;
659
+ align-items: center;
660
+ justify-content: space-between;
661
+ gap: 0.5rem;
662
+ padding: 0.35rem 0.5rem;
663
+ border-radius: 0.25rem;
664
+ background: var(--vscode-editor-background, var(--color-bg));
665
+ font-size: 0.8rem;
666
+ }
667
+
668
+ .workbench-field-remap-mapper__edges code {
669
+ font-size: 0.78rem;
670
+ word-break: break-all;
671
+ }
672
+
673
+ .workbench-field-remap-mapper__edge-actions {
674
+ display: inline-flex;
675
+ gap: 0.25rem;
676
+ }