@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,1367 @@
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__workspace {
307
+ display: grid;
308
+ grid-template-columns: minmax(12rem, 15rem) minmax(0, 1fr) minmax(16rem, 20rem);
309
+ gap: 0.75rem;
310
+ min-width: 0;
311
+ align-items: stretch;
312
+ }
313
+
314
+ @media (max-width: 1100px) {
315
+ .workbench-field-remap-flow__workspace {
316
+ grid-template-columns: minmax(0, 1fr) minmax(16rem, 20rem);
317
+ }
318
+
319
+ .workbench-field-remap-convert-palette {
320
+ grid-column: 1 / -1;
321
+ }
322
+ }
323
+
324
+ @media (max-width: 960px) {
325
+ .workbench-field-remap-flow__workspace {
326
+ grid-template-columns: 1fr;
327
+ }
328
+ }
329
+
330
+ .workbench-field-remap-convert-palette {
331
+ display: flex;
332
+ flex-direction: column;
333
+ gap: 0.65rem;
334
+ min-width: 0;
335
+ padding: 0.75rem;
336
+ border: 1px solid var(--vscode-panel-border, var(--color-border));
337
+ border-radius: 0.375rem;
338
+ background: var(--vscode-sideBar-background, var(--color-surface, var(--color-bg)));
339
+ }
340
+
341
+ .workbench-field-remap-convert-palette__header h3,
342
+ .workbench-field-remap-convert-palette__operators h4 {
343
+ margin: 0 0 0.35rem;
344
+ font-size: 0.8rem;
345
+ font-weight: 600;
346
+ text-transform: uppercase;
347
+ letter-spacing: 0.03em;
348
+ }
349
+
350
+ .workbench-field-remap-convert-palette__header p,
351
+ .workbench-field-remap-convert-palette__operators p {
352
+ margin: 0;
353
+ font-size: 0.75rem;
354
+ color: var(--vscode-descriptionForeground, var(--color-text-muted));
355
+ }
356
+
357
+ .workbench-field-remap-convert-palette__list {
358
+ list-style: none;
359
+ margin: 0;
360
+ padding: 0;
361
+ display: flex;
362
+ flex-direction: column;
363
+ gap: 0.35rem;
364
+ max-height: min(22rem, 45vh);
365
+ overflow: auto;
366
+ }
367
+
368
+ .workbench-field-remap-convert-palette__item {
369
+ display: flex;
370
+ flex-direction: column;
371
+ align-items: flex-start;
372
+ gap: 0.15rem;
373
+ width: 100%;
374
+ margin: 0;
375
+ padding: 0.45rem 0.5rem;
376
+ border: 1px solid var(--vscode-panel-border, var(--color-border));
377
+ border-radius: 0.25rem;
378
+ background: var(--vscode-editor-background, var(--color-bg));
379
+ color: inherit;
380
+ text-align: left;
381
+ cursor: pointer;
382
+ font: inherit;
383
+ }
384
+
385
+ .workbench-field-remap-convert-palette__item.is-selected {
386
+ border-color: var(--vscode-focusBorder, var(--color-accent, #3794ff));
387
+ }
388
+
389
+ .workbench-field-remap-convert-palette__item code {
390
+ font-size: 0.7rem;
391
+ word-break: break-all;
392
+ }
393
+
394
+ .workbench-field-remap-convert-palette__operators {
395
+ display: flex;
396
+ flex-direction: column;
397
+ gap: 0.45rem;
398
+ padding-top: 0.5rem;
399
+ border-top: 1px solid var(--vscode-panel-border, var(--color-border));
400
+ }
401
+
402
+ .workbench-field-remap-convert-palette__operator-actions {
403
+ display: flex;
404
+ flex-wrap: wrap;
405
+ gap: 0.35rem;
406
+ }
407
+
408
+ .workbench-field-remap-detail__draft-ports {
409
+ display: grid;
410
+ gap: 0.5rem;
411
+ margin: 0;
412
+ }
413
+
414
+ .workbench-field-remap-detail__draft-ports dt {
415
+ font-size: 0.7rem;
416
+ text-transform: uppercase;
417
+ color: var(--vscode-descriptionForeground, var(--color-text-muted));
418
+ }
419
+
420
+ .workbench-field-remap-detail__draft-ports dd {
421
+ margin: 0;
422
+ }
423
+
424
+ .workbench-field-remap-flow__canvas {
425
+ height: min(40rem, 70vh);
426
+ min-height: 26rem;
427
+ border: 1px solid var(--vscode-panel-border, var(--color-border));
428
+ border-radius: 0.375rem;
429
+ overflow: hidden;
430
+ background: var(--vscode-editor-background, var(--color-bg));
431
+ }
432
+
433
+ /* XYFlow default chrome is light; bind Controls / MiniMap / dots to host tokens. */
434
+ .workbench-field-remap-flow__canvas .react-flow {
435
+ --xy-background-color: var(--vscode-editor-background, var(--color-bg));
436
+ --xy-background-pattern-color: var(--vscode-editorIndentGuide-background, var(--color-border));
437
+ --xy-controls-button-background-color: var(
438
+ --vscode-button-secondaryBackground,
439
+ var(--color-surface)
440
+ );
441
+ --xy-controls-button-background-color-hover: var(
442
+ --vscode-button-secondaryHoverBackground,
443
+ var(--color-bg-muted, var(--color-surface))
444
+ );
445
+ --xy-controls-button-color: var(--vscode-foreground, var(--color-text));
446
+ --xy-controls-button-color-hover: var(--vscode-foreground, var(--color-text));
447
+ --xy-controls-button-border-color: var(--vscode-panel-border, var(--color-border));
448
+ --xy-controls-box-shadow: none;
449
+ --xy-minimap-background-color: var(--vscode-editorWidget-background, var(--color-surface));
450
+ --xy-minimap-mask-background-color: color-mix(
451
+ in srgb,
452
+ var(--vscode-editor-background, var(--color-bg)) 62%,
453
+ transparent
454
+ );
455
+ --xy-minimap-node-background-color: var(
456
+ --vscode-badge-background,
457
+ var(--color-bg-muted, #3c3c3c)
458
+ );
459
+ --xy-minimap-node-stroke-color: var(--vscode-panel-border, var(--color-border));
460
+ --xy-attribution-background-color: transparent;
461
+ }
462
+
463
+ .workbench-field-remap-flow__canvas .react-flow__controls {
464
+ border: 1px solid var(--vscode-panel-border, var(--color-border));
465
+ border-radius: 0.35rem;
466
+ overflow: hidden;
467
+ box-shadow: none;
468
+ }
469
+
470
+ .workbench-field-remap-flow__canvas .react-flow__controls-button {
471
+ background: var(--xy-controls-button-background-color);
472
+ border-bottom-color: var(--vscode-panel-border, var(--color-border));
473
+ fill: var(--xy-controls-button-color);
474
+ }
475
+
476
+ .workbench-field-remap-flow__canvas .react-flow__controls-button:hover {
477
+ background: var(--xy-controls-button-background-color-hover);
478
+ }
479
+
480
+ .workbench-field-remap-flow__canvas .react-flow__controls-button svg {
481
+ fill: currentColor;
482
+ max-width: 12px;
483
+ max-height: 12px;
484
+ }
485
+
486
+ .workbench-field-remap-flow__canvas .react-flow__minimap {
487
+ margin: 0.5rem;
488
+ border: 1px solid var(--vscode-panel-border, var(--color-border));
489
+ border-radius: 0.35rem;
490
+ overflow: hidden;
491
+ box-shadow: none;
492
+ }
493
+
494
+ .workbench-field-remap-flow__canvas .react-flow__node {
495
+ font-size: 0.8rem;
496
+ }
497
+
498
+ .workbench-field-remap-flow-node {
499
+ min-width: 9.5rem;
500
+ max-width: 14rem;
501
+ padding: 0.45rem 0.55rem;
502
+ border: 1px solid var(--vscode-panel-border, var(--color-border));
503
+ border-radius: 0.35rem;
504
+ background: var(--color-surface);
505
+ color: var(--vscode-editor-foreground, var(--color-text));
506
+ box-shadow: none;
507
+ }
508
+
509
+ .workbench-field-remap-flow-node--object {
510
+ min-width: 12.5rem;
511
+ max-width: 18rem;
512
+ padding: 0.4rem 0.35rem 0.45rem;
513
+ }
514
+
515
+ .workbench-field-remap-flow-node--source {
516
+ border-left: 3px solid var(--vscode-charts-blue, #3794ff);
517
+ }
518
+
519
+ .workbench-field-remap-flow-node--target {
520
+ border-right: 3px solid var(--vscode-charts-green, #89d185);
521
+ }
522
+
523
+ .workbench-field-remap-flow-node--transform {
524
+ border-color: var(--vscode-focusBorder, var(--color-accent, #3794ff));
525
+ background: var(--vscode-editor-background, var(--color-bg));
526
+ }
527
+
528
+ .workbench-field-remap-flow-node--transform.is-selected {
529
+ outline: 2px solid var(--vscode-focusBorder, var(--color-accent, #3794ff));
530
+ outline-offset: 1px;
531
+ }
532
+
533
+ .workbench-field-remap-flow-node__header {
534
+ display: flex;
535
+ flex-wrap: wrap;
536
+ align-items: baseline;
537
+ gap: 0.35rem 0.5rem;
538
+ padding: 0.15rem 0.45rem 0.35rem;
539
+ border-bottom: 1px solid var(--vscode-panel-border, var(--color-border));
540
+ margin-bottom: 0.2rem;
541
+ }
542
+
543
+ .workbench-field-remap-flow-node__header strong {
544
+ font-size: 0.85rem;
545
+ }
546
+
547
+ .workbench-field-remap-flow-node__header .workbench-field-remap-flow-node__hint {
548
+ margin-left: auto;
549
+ }
550
+
551
+ .workbench-field-remap-flow-node__title {
552
+ display: flex;
553
+ align-items: center;
554
+ justify-content: space-between;
555
+ gap: 0.35rem;
556
+ font-weight: 600;
557
+ }
558
+
559
+ .workbench-field-remap-flow-node__hint {
560
+ display: block;
561
+ font-size: 0.65rem;
562
+ color: var(--vscode-descriptionForeground, var(--color-text-muted));
563
+ text-transform: uppercase;
564
+ letter-spacing: 0.04em;
565
+ }
566
+
567
+ .workbench-field-remap-flow-node__id {
568
+ display: block;
569
+ margin-top: 0.2rem;
570
+ font-size: 0.68rem;
571
+ color: var(--vscode-descriptionForeground, var(--color-text-muted));
572
+ }
573
+
574
+ .workbench-field-remap-flow-node__ports {
575
+ list-style: none;
576
+ margin: 0;
577
+ padding: 0;
578
+ display: flex;
579
+ flex-direction: column;
580
+ gap: 0.1rem;
581
+ }
582
+
583
+ .workbench-field-remap-flow-node__port {
584
+ position: relative;
585
+ display: flex;
586
+ align-items: center;
587
+ min-height: 1.55rem;
588
+ padding: 0.15rem 0.7rem;
589
+ gap: 0.35rem;
590
+ }
591
+
592
+ .workbench-field-remap-flow-node--source .workbench-field-remap-flow-node__port {
593
+ justify-content: flex-end;
594
+ }
595
+
596
+ .workbench-field-remap-flow-node--target .workbench-field-remap-flow-node__port {
597
+ justify-content: flex-start;
598
+ }
599
+
600
+ .workbench-field-remap-flow-node__port-label {
601
+ display: inline-flex;
602
+ align-items: center;
603
+ gap: 0.3rem;
604
+ min-width: 0;
605
+ font-size: 0.78rem;
606
+ line-height: 1.2;
607
+ }
608
+
609
+ .workbench-field-remap-flow-node__port-label > span:first-child {
610
+ overflow: hidden;
611
+ text-overflow: ellipsis;
612
+ white-space: nowrap;
613
+ }
614
+
615
+ .workbench-field-remap-flow-node__handle {
616
+ width: 8px !important;
617
+ height: 8px !important;
618
+ border-width: 1px !important;
619
+ background: var(--vscode-focusBorder, var(--color-accent, #3794ff)) !important;
620
+ }
621
+
622
+ .workbench-field-remap-flow-node--source .workbench-field-remap-flow-node__handle {
623
+ right: -5px !important;
624
+ }
625
+
626
+ .workbench-field-remap-flow-node--target .workbench-field-remap-flow-node__handle {
627
+ left: -5px !important;
628
+ }
629
+
630
+ .workbench-field-remap-flow__bindings h4 {
631
+ margin: 0 0 0.35rem;
632
+ font-size: 0.75rem;
633
+ font-weight: 600;
634
+ text-transform: uppercase;
635
+ letter-spacing: 0.03em;
636
+ color: var(--vscode-descriptionForeground, var(--color-text-muted));
637
+ }
638
+
639
+ .workbench-field-remap-flow__bindings ul {
640
+ list-style: none;
641
+ margin: 0;
642
+ padding: 0;
643
+ display: flex;
644
+ flex-direction: column;
645
+ gap: 0.25rem;
646
+ }
647
+
648
+ .workbench-field-remap-flow__bindings li {
649
+ display: flex;
650
+ flex-wrap: wrap;
651
+ align-items: center;
652
+ justify-content: space-between;
653
+ gap: 0.5rem;
654
+ padding: 0.35rem 0.5rem;
655
+ border-radius: 0.25rem;
656
+ background: var(--color-surface);
657
+ font-size: 0.8rem;
658
+ }
659
+
660
+ .workbench-field-remap-flow__bindings li.is-selected {
661
+ outline: 1px solid var(--vscode-focusBorder, var(--color-accent, #3794ff));
662
+ }
663
+
664
+ .workbench-field-remap-flow__binding-select {
665
+ flex: 1 1 auto;
666
+ min-width: 0;
667
+ margin: 0;
668
+ padding: 0;
669
+ border: 0;
670
+ background: transparent;
671
+ color: inherit;
672
+ text-align: left;
673
+ cursor: pointer;
674
+ font: inherit;
675
+ }
676
+
677
+ .workbench-field-remap-detail,
678
+ .workbench-field-remap-convert-note {
679
+ display: flex;
680
+ flex-direction: column;
681
+ gap: 0.75rem;
682
+ min-width: 0;
683
+ min-height: 26rem;
684
+ max-height: min(40rem, 70vh);
685
+ overflow: auto;
686
+ padding: 0.75rem;
687
+ border: 1px solid var(--vscode-panel-border, var(--color-border));
688
+ border-radius: 0.375rem;
689
+ background: var(--vscode-sideBar-background, var(--color-surface));
690
+ font-size: 0.8rem;
691
+ }
692
+
693
+ .workbench-field-remap-convert-note {
694
+ border-color: var(--vscode-focusBorder, var(--color-accent, #3794ff));
695
+ background: var(--vscode-editor-background, var(--color-bg));
696
+ }
697
+
698
+ .workbench-field-remap-convert-note__header {
699
+ display: flex;
700
+ align-items: flex-start;
701
+ justify-content: space-between;
702
+ gap: 0.5rem;
703
+ }
704
+
705
+ .workbench-field-remap-convert-note__eyebrow {
706
+ margin: 0 0 0.2rem;
707
+ font-size: 0.7rem;
708
+ font-weight: 600;
709
+ letter-spacing: 0.04em;
710
+ text-transform: uppercase;
711
+ color: var(--vscode-focusBorder, var(--color-accent, #3794ff));
712
+ }
713
+
714
+ .workbench-field-remap-convert-note__header h4,
715
+ .workbench-field-remap-convert-note__section h5 {
716
+ margin: 0 0 0.35rem;
717
+ font-size: 0.75rem;
718
+ font-weight: 600;
719
+ text-transform: uppercase;
720
+ letter-spacing: 0.03em;
721
+ color: var(--vscode-descriptionForeground, var(--color-text-muted));
722
+ }
723
+
724
+ .workbench-field-remap-convert-note__header h4 {
725
+ font-size: 1rem;
726
+ text-transform: none;
727
+ letter-spacing: normal;
728
+ color: var(--vscode-foreground, var(--color-text));
729
+ }
730
+
731
+ .workbench-field-remap-convert-note__binding,
732
+ .workbench-field-remap-convert-note__muted {
733
+ display: block;
734
+ margin: 0.15rem 0 0;
735
+ font-size: 0.75rem;
736
+ word-break: break-all;
737
+ color: var(--vscode-descriptionForeground, var(--color-text-muted));
738
+ }
739
+
740
+ .workbench-field-remap-convert-note__actions {
741
+ display: flex;
742
+ flex-wrap: wrap;
743
+ gap: 0.35rem;
744
+ }
745
+
746
+ .workbench-field-remap-convert-note__section,
747
+ .workbench-field-remap-convert-note__field {
748
+ display: flex;
749
+ flex-direction: column;
750
+ gap: 0.5rem;
751
+ }
752
+
753
+ .workbench-field-remap-convert-note__field {
754
+ gap: 0.2rem;
755
+ }
756
+
757
+ .workbench-field-remap-convert-note select {
758
+ box-sizing: border-box;
759
+ width: 100%;
760
+ margin-top: 0.2rem;
761
+ padding: 0.3rem 0.4rem;
762
+ border: 1px solid var(--vscode-panel-border, var(--color-border));
763
+ border-radius: 0.25rem;
764
+ background: var(--vscode-input-background, var(--color-bg));
765
+ color: var(--vscode-input-foreground, var(--color-text));
766
+ font: inherit;
767
+ }
768
+
769
+ .workbench-field-remap-convert-note__footer {
770
+ margin-top: auto;
771
+ padding-top: 0.5rem;
772
+ border-top: 1px solid var(--vscode-panel-border, var(--color-border));
773
+ }
774
+
775
+ .workbench-field-remap-detail--empty {
776
+ color: var(--vscode-descriptionForeground, var(--color-text-muted));
777
+ }
778
+
779
+ .workbench-field-remap-detail__header {
780
+ display: flex;
781
+ align-items: flex-start;
782
+ justify-content: space-between;
783
+ gap: 0.5rem;
784
+ }
785
+
786
+ .workbench-field-remap-detail__header h4,
787
+ .workbench-field-remap-detail__section h5 {
788
+ margin: 0 0 0.35rem;
789
+ font-size: 0.75rem;
790
+ font-weight: 600;
791
+ text-transform: uppercase;
792
+ letter-spacing: 0.03em;
793
+ color: var(--vscode-descriptionForeground, var(--color-text-muted));
794
+ }
795
+
796
+ .workbench-field-remap-detail__header code,
797
+ .workbench-field-remap-detail__steps code {
798
+ font-size: 0.75rem;
799
+ word-break: break-all;
800
+ }
801
+
802
+ .workbench-field-remap-detail__section {
803
+ display: flex;
804
+ flex-direction: column;
805
+ gap: 0.5rem;
806
+ }
807
+
808
+ .workbench-field-remap-detail__muted {
809
+ margin: 0;
810
+ color: var(--vscode-descriptionForeground, var(--color-text-muted));
811
+ }
812
+
813
+ .workbench-field-remap-detail__steps {
814
+ list-style: none;
815
+ margin: 0;
816
+ padding: 0;
817
+ display: flex;
818
+ flex-direction: column;
819
+ gap: 0.35rem;
820
+ }
821
+
822
+ .workbench-field-remap-detail__steps li {
823
+ display: flex;
824
+ align-items: stretch;
825
+ gap: 0.35rem;
826
+ }
827
+
828
+ .workbench-field-remap-detail__step {
829
+ flex: 1 1 auto;
830
+ display: flex;
831
+ flex-direction: column;
832
+ align-items: flex-start;
833
+ gap: 0.15rem;
834
+ margin: 0;
835
+ padding: 0.4rem 0.5rem;
836
+ border: 1px solid var(--vscode-panel-border, var(--color-border));
837
+ border-radius: 0.25rem;
838
+ background: var(--vscode-editor-background, var(--color-bg));
839
+ color: inherit;
840
+ text-align: left;
841
+ cursor: pointer;
842
+ font: inherit;
843
+ }
844
+
845
+ .workbench-field-remap-detail__step.is-selected {
846
+ border-color: var(--vscode-focusBorder, var(--color-accent, #3794ff));
847
+ }
848
+
849
+ .workbench-field-remap-detail__step-hint {
850
+ font-size: 0.7rem;
851
+ color: var(--vscode-descriptionForeground, var(--color-text-muted));
852
+ }
853
+
854
+ .workbench-field-remap-detail__palette,
855
+ .workbench-field-remap-detail__item-pickers,
856
+ .workbench-field-remap-detail__field {
857
+ display: flex;
858
+ flex-direction: column;
859
+ gap: 0.35rem;
860
+ }
861
+
862
+ .workbench-field-remap-detail__palette {
863
+ flex-direction: row;
864
+ flex-wrap: wrap;
865
+ align-items: flex-end;
866
+ }
867
+
868
+ .workbench-field-remap-detail__palette label,
869
+ .workbench-field-remap-detail__item-pickers label,
870
+ .workbench-field-remap-detail__field {
871
+ flex: 1 1 10rem;
872
+ min-width: 0;
873
+ }
874
+
875
+ .workbench-field-remap-detail select,
876
+ .workbench-field-remap-options input[type='text'],
877
+ .workbench-field-remap-options input[type='number'],
878
+ .workbench-field-remap-options textarea {
879
+ box-sizing: border-box;
880
+ width: 100%;
881
+ margin-top: 0.2rem;
882
+ padding: 0.3rem 0.4rem;
883
+ border: 1px solid var(--vscode-panel-border, var(--color-border));
884
+ border-radius: 0.25rem;
885
+ background: var(--vscode-input-background, var(--color-bg));
886
+ color: var(--vscode-input-foreground, var(--color-text));
887
+ font: inherit;
888
+ }
889
+
890
+ .workbench-field-remap-detail__list-context-bar {
891
+ display: flex;
892
+ align-items: center;
893
+ justify-content: space-between;
894
+ gap: 0.5rem;
895
+ }
896
+
897
+ .workbench-field-remap-detail__item-edges {
898
+ list-style: none;
899
+ margin: 0;
900
+ padding: 0;
901
+ display: flex;
902
+ flex-direction: column;
903
+ gap: 0.25rem;
904
+ }
905
+
906
+ .workbench-field-remap-detail__item-edges li {
907
+ display: flex;
908
+ align-items: center;
909
+ justify-content: space-between;
910
+ gap: 0.35rem;
911
+ }
912
+
913
+ .workbench-field-remap-options {
914
+ display: flex;
915
+ flex-direction: column;
916
+ gap: 0.55rem;
917
+ }
918
+
919
+ .workbench-field-remap-options__field {
920
+ display: flex;
921
+ flex-direction: column;
922
+ gap: 0.2rem;
923
+ }
924
+
925
+ .workbench-field-remap-options__label {
926
+ font-size: 0.75rem;
927
+ color: var(--vscode-descriptionForeground, var(--color-text-muted));
928
+ }
929
+
930
+ .workbench-field-remap-options__empty,
931
+ .workbench-field-remap-options__error {
932
+ margin: 0;
933
+ font-size: 0.75rem;
934
+ }
935
+
936
+ .workbench-field-remap-options__error {
937
+ color: var(--vscode-errorForeground, var(--color-danger));
938
+ }
939
+
940
+ .workbench-field-remap-options__string-map-rows {
941
+ list-style: none;
942
+ margin: 0 0 0.35rem;
943
+ padding: 0;
944
+ display: flex;
945
+ flex-direction: column;
946
+ gap: 0.25rem;
947
+ }
948
+
949
+ .workbench-field-remap-options__string-map-rows li,
950
+ .workbench-field-remap-options__string-map-add {
951
+ display: grid;
952
+ grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto;
953
+ gap: 0.25rem;
954
+ align-items: center;
955
+ }
956
+
957
+ .workbench-field-remap-tree {
958
+ min-width: 0;
959
+ border: 1px solid var(--vscode-panel-border, var(--color-border));
960
+ border-radius: 0.25rem;
961
+ background: var(--vscode-editor-background, var(--color-bg));
962
+ overflow: auto;
963
+ }
964
+
965
+ .workbench-field-remap-tree__title {
966
+ margin: 0;
967
+ padding: 0.5rem 0.65rem;
968
+ border-bottom: 1px solid var(--vscode-panel-border, var(--color-border));
969
+ font-size: 0.75rem;
970
+ font-weight: 600;
971
+ text-transform: uppercase;
972
+ letter-spacing: 0.03em;
973
+ color: var(--vscode-descriptionForeground, var(--color-text-muted));
974
+ }
975
+
976
+ .workbench-field-remap-tree__list,
977
+ .workbench-field-remap-tree__list ul {
978
+ list-style: none;
979
+ margin: 0;
980
+ padding: 0.25rem 0;
981
+ }
982
+
983
+ .workbench-field-remap-tree__row {
984
+ display: flex;
985
+ align-items: center;
986
+ gap: 0.15rem;
987
+ min-height: 1.75rem;
988
+ }
989
+
990
+ .workbench-field-remap-tree__row.is-selected .workbench-field-remap-tree__node {
991
+ background: var(--vscode-list-activeSelectionBackground, var(--color-accent-muted, #2a4a6a));
992
+ color: var(--vscode-list-activeSelectionForeground, var(--color-text));
993
+ }
994
+
995
+ .workbench-field-remap-tree__row.is-mapped .workbench-field-remap-tree__label {
996
+ font-weight: 600;
997
+ }
998
+
999
+ .workbench-field-remap-tree__twistie,
1000
+ .workbench-field-remap-tree__twistie-spacer {
1001
+ width: 1.1rem;
1002
+ flex: 0 0 1.1rem;
1003
+ border: 0;
1004
+ background: transparent;
1005
+ color: inherit;
1006
+ font-size: 0.7rem;
1007
+ line-height: 1;
1008
+ padding: 0;
1009
+ cursor: pointer;
1010
+ }
1011
+
1012
+ .workbench-field-remap-tree__twistie-spacer {
1013
+ cursor: default;
1014
+ }
1015
+
1016
+ .workbench-field-remap-tree__node {
1017
+ display: inline-flex;
1018
+ align-items: center;
1019
+ gap: 0.4rem;
1020
+ flex: 1;
1021
+ min-width: 0;
1022
+ margin: 0 0.25rem 0 0;
1023
+ padding: 0.2rem 0.4rem;
1024
+ border: 0;
1025
+ border-radius: 0.2rem;
1026
+ background: transparent;
1027
+ color: inherit;
1028
+ text-align: left;
1029
+ cursor: pointer;
1030
+ }
1031
+
1032
+ .workbench-field-remap-tree__node:hover {
1033
+ background: var(
1034
+ --vscode-list-hoverBackground,
1035
+ var(--color-surface-hover, rgba(127, 127, 127, 0.12))
1036
+ );
1037
+ }
1038
+
1039
+ .workbench-field-remap-tree__label {
1040
+ overflow: hidden;
1041
+ text-overflow: ellipsis;
1042
+ white-space: nowrap;
1043
+ font-size: 0.85rem;
1044
+ }
1045
+
1046
+ .workbench-field-remap-mapper__list-context {
1047
+ display: flex;
1048
+ flex-direction: column;
1049
+ gap: 0.5rem;
1050
+ padding: 0.5rem 0.65rem;
1051
+ border: 1px solid var(--vscode-focusBorder, var(--color-accent, #3794ff));
1052
+ border-radius: 0.25rem;
1053
+ }
1054
+
1055
+ .workbench-field-remap-mapper__list-context-bar {
1056
+ display: flex;
1057
+ flex-wrap: wrap;
1058
+ align-items: center;
1059
+ gap: 0.5rem;
1060
+ font-size: 0.8rem;
1061
+ }
1062
+
1063
+ .workbench-field-remap-mapper__edges-panel h4 {
1064
+ margin: 0 0 0.35rem;
1065
+ font-size: 0.75rem;
1066
+ font-weight: 600;
1067
+ text-transform: uppercase;
1068
+ letter-spacing: 0.03em;
1069
+ color: var(--vscode-descriptionForeground, var(--color-text-muted));
1070
+ }
1071
+
1072
+ .workbench-field-remap-mapper__edges {
1073
+ list-style: none;
1074
+ margin: 0;
1075
+ padding: 0;
1076
+ display: flex;
1077
+ flex-direction: column;
1078
+ gap: 0.25rem;
1079
+ }
1080
+
1081
+ .workbench-field-remap-mapper__edges li {
1082
+ display: flex;
1083
+ flex-wrap: wrap;
1084
+ align-items: center;
1085
+ justify-content: space-between;
1086
+ gap: 0.5rem;
1087
+ padding: 0.35rem 0.5rem;
1088
+ border-radius: 0.25rem;
1089
+ background: var(--vscode-editor-background, var(--color-bg));
1090
+ font-size: 0.8rem;
1091
+ }
1092
+
1093
+ .workbench-field-remap-mapper__edges code {
1094
+ font-size: 0.78rem;
1095
+ word-break: break-all;
1096
+ }
1097
+
1098
+ .workbench-field-remap-mapper__edge-actions {
1099
+ display: inline-flex;
1100
+ gap: 0.25rem;
1101
+ }
1102
+
1103
+ .workbench-field-remap-flow-node--draft {
1104
+ border-style: dashed;
1105
+ opacity: 0.95;
1106
+ }
1107
+
1108
+ .workbench-field-remap-flow-node--draft .workbench-field-remap-flow-node__title {
1109
+ display: flex;
1110
+ align-items: center;
1111
+ gap: 0.35rem;
1112
+ }
1113
+
1114
+ .workbench-field-remap-flow-node--operator {
1115
+ min-width: 11rem;
1116
+ border-color: var(--vscode-charts-orange, #d18616);
1117
+ }
1118
+
1119
+ .workbench-field-remap-flow-node--operator .workbench-field-remap-flow-node__title {
1120
+ display: flex;
1121
+ align-items: center;
1122
+ gap: 0.35rem;
1123
+ margin-bottom: 0.35rem;
1124
+ }
1125
+
1126
+ .workbench-field-remap-flow-node--operator .workbench-field-remap-flow-node__port--out,
1127
+ .workbench-field-remap-flow-node--operator .workbench-field-remap-flow-node__port--in {
1128
+ display: flex;
1129
+ align-items: center;
1130
+ gap: 0.35rem;
1131
+ margin-top: 0.35rem;
1132
+ }
1133
+
1134
+ .workbench-field-remap-flow-node--operator .workbench-field-remap-flow-node__port--out {
1135
+ justify-content: flex-end;
1136
+ }
1137
+
1138
+ .workbench-field-remap-demo__shapes {
1139
+ display: grid;
1140
+ grid-template-columns: repeat(2, minmax(0, 1fr));
1141
+ gap: 1rem;
1142
+ }
1143
+
1144
+ @media (max-width: 800px) {
1145
+ .workbench-field-remap-demo__shapes {
1146
+ grid-template-columns: 1fr;
1147
+ }
1148
+ }
1149
+
1150
+ .workbench-field-remap-shape-io {
1151
+ display: flex;
1152
+ flex-direction: column;
1153
+ gap: 0.65rem;
1154
+ min-width: 0;
1155
+ padding: 0.75rem;
1156
+ border: 1px solid var(--vscode-panel-border, var(--color-border));
1157
+ border-radius: 0.375rem;
1158
+ background: var(--color-surface);
1159
+ }
1160
+
1161
+ .workbench-field-remap-shape-io__header h3 {
1162
+ margin: 0;
1163
+ font-size: 0.9rem;
1164
+ font-weight: 600;
1165
+ }
1166
+
1167
+ .workbench-field-remap-shape-io__hint {
1168
+ margin: 0.25rem 0 0;
1169
+ font-size: 0.8rem;
1170
+ line-height: 1.4;
1171
+ color: var(--vscode-descriptionForeground, var(--color-text-muted));
1172
+ }
1173
+
1174
+ .workbench-field-remap-shape-io__json-label {
1175
+ display: flex;
1176
+ flex-direction: column;
1177
+ gap: 0.35rem;
1178
+ font-size: 0.8rem;
1179
+ }
1180
+
1181
+ .workbench-field-remap-shape-io__json {
1182
+ box-sizing: border-box;
1183
+ width: 100%;
1184
+ min-height: 8rem;
1185
+ margin: 0;
1186
+ padding: 0.65rem;
1187
+ border: 1px solid var(--vscode-input-border, var(--color-border));
1188
+ border-radius: 0.25rem;
1189
+ background: var(--vscode-input-background, var(--color-input-bg, var(--color-bg)));
1190
+ color: var(--vscode-input-foreground, var(--color-text));
1191
+ font-family: var(
1192
+ --vscode-editor-font-family,
1193
+ ui-monospace,
1194
+ SFMono-Regular,
1195
+ Menlo,
1196
+ Consolas,
1197
+ monospace
1198
+ );
1199
+ font-size: 0.78rem;
1200
+ line-height: 1.4;
1201
+ resize: vertical;
1202
+ }
1203
+
1204
+ .workbench-field-remap-shape-io__actions {
1205
+ display: flex;
1206
+ flex-wrap: wrap;
1207
+ gap: 0.5rem;
1208
+ }
1209
+
1210
+ .workbench-field-remap-shape-io__error {
1211
+ margin: 0;
1212
+ color: var(--vscode-errorForeground, var(--color-danger));
1213
+ font-size: 0.8rem;
1214
+ }
1215
+
1216
+ .workbench-field-remap-shape-io__fields {
1217
+ list-style: none;
1218
+ margin: 0;
1219
+ padding: 0;
1220
+ display: flex;
1221
+ flex-direction: column;
1222
+ gap: 0.35rem;
1223
+ max-height: 14rem;
1224
+ overflow: auto;
1225
+ }
1226
+
1227
+ .workbench-field-remap-shape-io__field {
1228
+ display: flex;
1229
+ flex-wrap: wrap;
1230
+ align-items: center;
1231
+ justify-content: space-between;
1232
+ gap: 0.5rem;
1233
+ padding: 0.35rem 0.5rem;
1234
+ border-radius: 0.25rem;
1235
+ background: var(--vscode-editor-background, var(--color-bg));
1236
+ }
1237
+
1238
+ .workbench-field-remap-shape-io__field-meta {
1239
+ display: flex;
1240
+ flex-direction: column;
1241
+ gap: 0.15rem;
1242
+ min-width: 0;
1243
+ font-size: 0.78rem;
1244
+ }
1245
+
1246
+ .workbench-field-remap-shape-io__field-meta code {
1247
+ word-break: break-all;
1248
+ }
1249
+
1250
+ .workbench-field-remap-shape-io__type {
1251
+ display: inline-flex;
1252
+ align-items: center;
1253
+ gap: 0.35rem;
1254
+ font-size: 0.78rem;
1255
+ }
1256
+
1257
+ .workbench-field-remap-shape-io__type-label {
1258
+ color: var(--vscode-descriptionForeground, var(--color-text-muted));
1259
+ }
1260
+
1261
+ .workbench-field-remap-shape-io__type select {
1262
+ min-width: 7rem;
1263
+ }
1264
+
1265
+ .workbench-field-remap-io-browse {
1266
+ display: grid;
1267
+ grid-template-columns: repeat(2, minmax(0, 1fr));
1268
+ gap: 1rem;
1269
+ width: 100%;
1270
+ }
1271
+
1272
+ @media (max-width: 800px) {
1273
+ .workbench-field-remap-io-browse {
1274
+ grid-template-columns: 1fr;
1275
+ }
1276
+ }
1277
+
1278
+ .workbench-field-remap-io-browse__toggle {
1279
+ display: inline-flex;
1280
+ align-items: center;
1281
+ gap: 0.4rem;
1282
+ margin-bottom: 0.5rem;
1283
+ font-size: 0.85rem;
1284
+ color: var(--vscode-descriptionForeground, var(--color-text-muted));
1285
+ }
1286
+
1287
+ .workbench-field-remap-io-browse__section {
1288
+ display: flex;
1289
+ flex-direction: column;
1290
+ gap: 0.65rem;
1291
+ min-width: 0;
1292
+ }
1293
+
1294
+ .workbench-field-remap-io-browse__section-title {
1295
+ margin: 0;
1296
+ font-size: 0.85rem;
1297
+ font-weight: 600;
1298
+ }
1299
+
1300
+ .workbench-field-remap-io-browse__port {
1301
+ display: flex;
1302
+ flex-direction: column;
1303
+ gap: 0.35rem;
1304
+ padding: 0.5rem 0.65rem;
1305
+ border: 1px solid var(--vscode-widget-border, var(--color-border, #3c3c3c));
1306
+ border-radius: 4px;
1307
+ }
1308
+
1309
+ .workbench-field-remap-io-browse__port-title {
1310
+ display: flex;
1311
+ flex-wrap: wrap;
1312
+ gap: 0.35rem 0.75rem;
1313
+ margin: 0;
1314
+ align-items: baseline;
1315
+ }
1316
+
1317
+ .workbench-field-remap-io-browse__port-id {
1318
+ font-weight: 600;
1319
+ }
1320
+
1321
+ .workbench-field-remap-io-browse__port-meta {
1322
+ font-size: 0.75rem;
1323
+ opacity: 0.75;
1324
+ }
1325
+
1326
+ .workbench-field-remap-io-browse__fields {
1327
+ margin: 0;
1328
+ padding-left: 1rem;
1329
+ list-style: disc;
1330
+ }
1331
+
1332
+ .workbench-field-remap-io-browse__fields .workbench-field-remap-io-browse__fields {
1333
+ margin-top: 0.25rem;
1334
+ }
1335
+
1336
+ .workbench-field-remap-io-browse__row {
1337
+ display: flex;
1338
+ flex-wrap: wrap;
1339
+ gap: 0.35rem 0.75rem;
1340
+ align-items: baseline;
1341
+ }
1342
+
1343
+ .workbench-field-remap-io-browse__path {
1344
+ font-size: 0.8rem;
1345
+ word-break: break-all;
1346
+ }
1347
+
1348
+ .workbench-field-remap-io-browse__meta {
1349
+ display: inline-flex;
1350
+ flex-wrap: wrap;
1351
+ gap: 0.35rem;
1352
+ font-size: 0.75rem;
1353
+ opacity: 0.8;
1354
+ }
1355
+
1356
+ .workbench-field-remap-io-browse__badge {
1357
+ padding: 0.05rem 0.35rem;
1358
+ border-radius: 3px;
1359
+ background: var(--vscode-badge-background, rgba(127, 127, 127, 0.25));
1360
+ color: var(--vscode-badge-foreground, inherit);
1361
+ }
1362
+
1363
+ .workbench-field-remap-io-browse__empty {
1364
+ margin: 0;
1365
+ font-size: 0.8rem;
1366
+ opacity: 0.7;
1367
+ }