@pipelex/mthds-ui 0.6.4 → 0.7.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.
- package/dist/{chunk-FHRUYFGV.js → chunk-ILX53OYM.js} +374 -98
- package/dist/chunk-ILX53OYM.js.map +1 -0
- package/dist/chunk-L24K3TZU.js +1 -0
- package/dist/graph/index.d.ts +62 -7
- package/dist/graph/index.js +20 -4
- package/dist/graph/react/detail/DetailPanel.css +146 -87
- package/dist/graph/react/graph-core.css +153 -76
- package/dist/graph/react/index.css +169 -168
- package/dist/graph/react/index.css.map +1 -1
- package/dist/graph/react/index.d.ts +32 -3
- package/dist/graph/react/index.js +392 -215
- package/dist/graph/react/index.js.map +1 -1
- package/dist/graph/react/stuff/StuffViewer.css +38 -11
- package/dist/graph/react/viewer/GraphToolbar.css +22 -24
- package/dist/index.d.ts +2 -2
- package/dist/index.js +20 -4
- package/dist/shiki/index.d.ts +16 -3
- package/dist/shiki/index.js +226 -15
- package/dist/shiki/index.js.map +1 -1
- package/dist/standalone/graph-standalone.html +368 -207
- package/dist/standalone/graph-viewer.css +359 -198
- package/dist/standalone/graph-viewer.js +9 -9
- package/dist/{types-C7rr1Egj.d.ts → types-DJTrDxjV.d.ts} +29 -10
- package/package.json +3 -1
- package/dist/chunk-FHRUYFGV.js.map +0 -1
- package/dist/chunk-IZ4FH2WM.js +0 -1
- /package/dist/{chunk-IZ4FH2WM.js.map → chunk-L24K3TZU.js.map} +0 -0
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
/* ─── Detail Panel — sliding side panel for node inspection ─────────────── */
|
|
2
|
+
/* Token-only — all colors come from the active theme palette on the */
|
|
3
|
+
/* container. See `graphConfig.ts` for token definitions. */
|
|
2
4
|
|
|
3
5
|
.detail-panel {
|
|
4
6
|
position: absolute;
|
|
@@ -6,13 +8,13 @@
|
|
|
6
8
|
right: 0;
|
|
7
9
|
width: 380px;
|
|
8
10
|
height: 100%;
|
|
9
|
-
background:
|
|
10
|
-
border-left: 1px solid
|
|
11
|
+
background: var(--surface-panel);
|
|
12
|
+
border-left: 1px solid var(--border-default);
|
|
11
13
|
z-index: 10;
|
|
12
14
|
display: flex;
|
|
13
15
|
flex-direction: column;
|
|
14
|
-
font-family:
|
|
15
|
-
color:
|
|
16
|
+
font-family: var(--font-sans);
|
|
17
|
+
color: var(--text-default);
|
|
16
18
|
overflow: hidden;
|
|
17
19
|
transition: transform 0.2s ease;
|
|
18
20
|
}
|
|
@@ -49,7 +51,8 @@
|
|
|
49
51
|
|
|
50
52
|
.detail-panel-resize-handle:hover::before,
|
|
51
53
|
.detail-panel--dragging .detail-panel-resize-handle::before {
|
|
52
|
-
background:
|
|
54
|
+
background: var(--color-accent);
|
|
55
|
+
opacity: 0.6;
|
|
53
56
|
}
|
|
54
57
|
|
|
55
58
|
/* Grip indicator — visible on hover */
|
|
@@ -68,7 +71,7 @@
|
|
|
68
71
|
|
|
69
72
|
.detail-panel-resize-handle:hover::after,
|
|
70
73
|
.detail-panel--dragging .detail-panel-resize-handle::after {
|
|
71
|
-
background:
|
|
74
|
+
background: var(--color-accent);
|
|
72
75
|
}
|
|
73
76
|
|
|
74
77
|
/* Disable transition during drag for smooth resizing */
|
|
@@ -80,33 +83,48 @@
|
|
|
80
83
|
pointer-events: none;
|
|
81
84
|
}
|
|
82
85
|
|
|
86
|
+
/* ─── Close row — scrolls away with the content (intentionally NOT pinned) ─ */
|
|
87
|
+
/* The close button is part of the content's top, not panel chrome: it
|
|
88
|
+
* scrolls out of view with the content, and closing the panel means
|
|
89
|
+
* scrolling back up. The negative margin tucks the following section up
|
|
90
|
+
* beside it so the row doesn't cost a full line of vertical space. */
|
|
91
|
+
|
|
92
|
+
.detail-panel-close-row {
|
|
93
|
+
display: flex;
|
|
94
|
+
justify-content: flex-end;
|
|
95
|
+
/* Pull the next section up by exactly this row's height + the column
|
|
96
|
+
* gap, so the close button sits ON the first content line (concept /
|
|
97
|
+
* pipe header), right-aligned — not on its own line above it. */
|
|
98
|
+
margin-bottom: -40px;
|
|
99
|
+
}
|
|
100
|
+
|
|
83
101
|
.detail-panel-close {
|
|
84
102
|
all: unset;
|
|
85
103
|
cursor: pointer;
|
|
86
|
-
position: absolute;
|
|
87
|
-
top: 12px;
|
|
88
|
-
right: 12px;
|
|
89
104
|
width: 24px;
|
|
90
105
|
height: 24px;
|
|
91
106
|
display: flex;
|
|
92
107
|
align-items: center;
|
|
93
108
|
justify-content: center;
|
|
94
109
|
border-radius: 4px;
|
|
95
|
-
color:
|
|
110
|
+
color: var(--text-dim);
|
|
96
111
|
font-size: 18px;
|
|
97
112
|
line-height: 1;
|
|
98
|
-
z
|
|
113
|
+
/* Above the sticky pipe header (z 1) so the X is visible at rest while
|
|
114
|
+
* sharing its line; on scroll it briefly slides over the stuck header's
|
|
115
|
+
* empty right side before leaving the viewport. */
|
|
116
|
+
z-index: 2;
|
|
99
117
|
}
|
|
100
118
|
|
|
101
119
|
.detail-panel-close:hover {
|
|
102
|
-
color:
|
|
103
|
-
background:
|
|
120
|
+
color: var(--text-muted);
|
|
121
|
+
background: var(--surface-elevated);
|
|
104
122
|
}
|
|
105
123
|
|
|
106
124
|
.detail-panel-content {
|
|
107
125
|
flex: 1;
|
|
108
126
|
overflow-y: auto;
|
|
109
|
-
padding:
|
|
127
|
+
padding: 12px 16px 20px;
|
|
110
128
|
display: flex;
|
|
111
129
|
flex-direction: column;
|
|
112
130
|
gap: 16px;
|
|
@@ -116,11 +134,11 @@
|
|
|
116
134
|
|
|
117
135
|
.detail-sticky-header {
|
|
118
136
|
position: sticky;
|
|
119
|
-
top: -
|
|
137
|
+
top: -12px; /* must mirror .detail-panel-content's top padding */
|
|
120
138
|
z-index: 1;
|
|
121
|
-
background:
|
|
122
|
-
padding-top:
|
|
123
|
-
margin-top: -
|
|
139
|
+
background: var(--surface-panel);
|
|
140
|
+
padding-top: 12px;
|
|
141
|
+
margin-top: -12px;
|
|
124
142
|
display: flex;
|
|
125
143
|
flex-direction: column;
|
|
126
144
|
gap: 16px;
|
|
@@ -133,7 +151,7 @@
|
|
|
133
151
|
font-weight: 700;
|
|
134
152
|
text-transform: uppercase;
|
|
135
153
|
letter-spacing: 0.06em;
|
|
136
|
-
color:
|
|
154
|
+
color: var(--text-dim);
|
|
137
155
|
margin-bottom: 6px;
|
|
138
156
|
}
|
|
139
157
|
|
|
@@ -154,24 +172,24 @@
|
|
|
154
172
|
}
|
|
155
173
|
|
|
156
174
|
.detail-badge--operator {
|
|
157
|
-
background:
|
|
158
|
-
color:
|
|
175
|
+
background: var(--color-pipe);
|
|
176
|
+
color: var(--text-on-accent);
|
|
159
177
|
}
|
|
160
178
|
|
|
161
179
|
.detail-badge--controller {
|
|
162
|
-
background:
|
|
163
|
-
color:
|
|
180
|
+
background: var(--color-batch-item);
|
|
181
|
+
color: var(--text-on-accent);
|
|
164
182
|
}
|
|
165
183
|
|
|
166
184
|
.detail-pipe-code {
|
|
167
|
-
font-family:
|
|
185
|
+
font-family: var(--font-mono);
|
|
168
186
|
font-size: 14px;
|
|
169
187
|
font-weight: 600;
|
|
170
|
-
color:
|
|
188
|
+
color: var(--color-pipe);
|
|
171
189
|
}
|
|
172
190
|
|
|
173
191
|
.detail-pipe-code--controller {
|
|
174
|
-
color:
|
|
192
|
+
color: var(--color-batch-item);
|
|
175
193
|
}
|
|
176
194
|
|
|
177
195
|
.detail-status {
|
|
@@ -195,13 +213,13 @@
|
|
|
195
213
|
|
|
196
214
|
.detail-duration {
|
|
197
215
|
font-size: 11px;
|
|
198
|
-
color:
|
|
199
|
-
font-family:
|
|
216
|
+
color: var(--text-dim);
|
|
217
|
+
font-family: var(--font-mono);
|
|
200
218
|
}
|
|
201
219
|
|
|
202
220
|
.detail-description {
|
|
203
221
|
font-size: 12px;
|
|
204
|
-
color:
|
|
222
|
+
color: var(--text-muted);
|
|
205
223
|
line-height: 1.5;
|
|
206
224
|
}
|
|
207
225
|
|
|
@@ -214,17 +232,17 @@
|
|
|
214
232
|
font-size: 11px;
|
|
215
233
|
padding: 3px 8px;
|
|
216
234
|
border-radius: 4px;
|
|
217
|
-
background:
|
|
218
|
-
border: 1px solid
|
|
235
|
+
background: var(--surface-sunken);
|
|
236
|
+
border: 1px solid var(--border-subtle);
|
|
219
237
|
}
|
|
220
238
|
|
|
221
239
|
.detail-io-name {
|
|
222
|
-
font-family:
|
|
223
|
-
color:
|
|
240
|
+
font-family: var(--font-mono);
|
|
241
|
+
color: var(--text-default);
|
|
224
242
|
}
|
|
225
243
|
|
|
226
244
|
.detail-io-concept {
|
|
227
|
-
color:
|
|
245
|
+
color: var(--text-dim);
|
|
228
246
|
font-size: 10px;
|
|
229
247
|
}
|
|
230
248
|
|
|
@@ -237,11 +255,11 @@
|
|
|
237
255
|
/* ─── Blueprint-specific sections ───────────────────────────────────────── */
|
|
238
256
|
|
|
239
257
|
.detail-prompt-block {
|
|
240
|
-
font-family:
|
|
258
|
+
font-family: var(--font-mono);
|
|
241
259
|
font-size: 11px;
|
|
242
|
-
color:
|
|
243
|
-
background:
|
|
244
|
-
border: 1px solid
|
|
260
|
+
color: var(--text-muted);
|
|
261
|
+
background: var(--surface-sunken);
|
|
262
|
+
border: 1px solid var(--border-subtle);
|
|
245
263
|
border-radius: 6px;
|
|
246
264
|
padding: 10px 12px;
|
|
247
265
|
white-space: pre-wrap;
|
|
@@ -266,16 +284,16 @@
|
|
|
266
284
|
align-items: center;
|
|
267
285
|
gap: 4px;
|
|
268
286
|
font-size: 9px;
|
|
269
|
-
color:
|
|
287
|
+
color: var(--text-dim);
|
|
270
288
|
padding: 2px 6px;
|
|
271
289
|
border-radius: 3px;
|
|
272
|
-
background:
|
|
273
|
-
border: 1px solid
|
|
290
|
+
background: var(--surface-sunken);
|
|
291
|
+
border: 1px solid var(--border-subtle);
|
|
274
292
|
transition: color 0.15s;
|
|
275
293
|
}
|
|
276
294
|
|
|
277
295
|
.detail-prompt-expand-btn:hover {
|
|
278
|
-
color:
|
|
296
|
+
color: var(--text-muted);
|
|
279
297
|
}
|
|
280
298
|
|
|
281
299
|
.detail-kv-row {
|
|
@@ -288,13 +306,13 @@
|
|
|
288
306
|
}
|
|
289
307
|
|
|
290
308
|
.detail-kv-key {
|
|
291
|
-
color:
|
|
309
|
+
color: var(--text-dim);
|
|
292
310
|
flex-shrink: 0; /* label stays at its natural width */
|
|
293
311
|
}
|
|
294
312
|
|
|
295
313
|
.detail-kv-value {
|
|
296
|
-
font-family:
|
|
297
|
-
color:
|
|
314
|
+
font-family: var(--font-mono);
|
|
315
|
+
color: var(--text-default);
|
|
298
316
|
flex: 1 1 0;
|
|
299
317
|
min-width: 0;
|
|
300
318
|
text-align: right;
|
|
@@ -311,17 +329,17 @@
|
|
|
311
329
|
}
|
|
312
330
|
|
|
313
331
|
.detail-field-block-label {
|
|
314
|
-
font-family:
|
|
332
|
+
font-family: var(--font-mono);
|
|
315
333
|
font-size: 10px;
|
|
316
|
-
color:
|
|
334
|
+
color: var(--text-dim);
|
|
317
335
|
}
|
|
318
336
|
|
|
319
337
|
.detail-field-block-value {
|
|
320
|
-
font-family:
|
|
338
|
+
font-family: var(--font-mono);
|
|
321
339
|
font-size: 11px;
|
|
322
|
-
color:
|
|
323
|
-
background:
|
|
324
|
-
border: 1px solid
|
|
340
|
+
color: var(--text-default);
|
|
341
|
+
background: var(--surface-sunken);
|
|
342
|
+
border: 1px solid var(--border-subtle);
|
|
325
343
|
border-radius: 6px;
|
|
326
344
|
padding: 8px 10px;
|
|
327
345
|
white-space: pre-wrap;
|
|
@@ -345,20 +363,20 @@
|
|
|
345
363
|
margin-top: 6px;
|
|
346
364
|
margin-bottom: 4px;
|
|
347
365
|
padding: 4px 0 4px 8px;
|
|
348
|
-
border-left: 2px solid
|
|
366
|
+
border-left: 2px solid var(--color-success);
|
|
349
367
|
}
|
|
350
368
|
|
|
351
369
|
.detail-nested-header-name {
|
|
352
|
-
font-family:
|
|
370
|
+
font-family: var(--font-mono);
|
|
353
371
|
font-size: 11px;
|
|
354
372
|
font-weight: 600;
|
|
355
|
-
color:
|
|
373
|
+
color: var(--text-default);
|
|
356
374
|
}
|
|
357
375
|
|
|
358
376
|
.detail-nested-header-meta {
|
|
359
|
-
font-family:
|
|
377
|
+
font-family: var(--font-mono);
|
|
360
378
|
font-size: 9px;
|
|
361
|
-
color:
|
|
379
|
+
color: var(--text-dim);
|
|
362
380
|
text-transform: uppercase;
|
|
363
381
|
letter-spacing: 0.04em;
|
|
364
382
|
}
|
|
@@ -374,39 +392,39 @@
|
|
|
374
392
|
.detail-schema-table th {
|
|
375
393
|
text-align: left;
|
|
376
394
|
font-weight: 700;
|
|
377
|
-
color:
|
|
395
|
+
color: var(--text-dim);
|
|
378
396
|
font-size: 9px;
|
|
379
397
|
text-transform: uppercase;
|
|
380
398
|
letter-spacing: 0.06em;
|
|
381
399
|
padding: 4px 6px;
|
|
382
|
-
border-bottom: 1px solid
|
|
400
|
+
border-bottom: 1px solid var(--border-default);
|
|
383
401
|
}
|
|
384
402
|
|
|
385
403
|
.detail-schema-table td {
|
|
386
404
|
padding: 4px 6px;
|
|
387
|
-
border-bottom: 1px solid
|
|
388
|
-
color:
|
|
405
|
+
border-bottom: 1px solid var(--border-subtle);
|
|
406
|
+
color: var(--text-muted);
|
|
389
407
|
}
|
|
390
408
|
|
|
391
409
|
.detail-schema-field {
|
|
392
|
-
font-family:
|
|
393
|
-
color:
|
|
410
|
+
font-family: var(--font-mono);
|
|
411
|
+
color: var(--text-default);
|
|
394
412
|
}
|
|
395
413
|
|
|
396
414
|
.detail-schema-type {
|
|
397
|
-
color:
|
|
415
|
+
color: var(--color-accent);
|
|
398
416
|
}
|
|
399
417
|
|
|
400
418
|
.detail-schema-required {
|
|
401
|
-
color:
|
|
419
|
+
color: var(--color-pipe);
|
|
402
420
|
font-size: 9px;
|
|
403
421
|
}
|
|
404
422
|
|
|
405
423
|
/* ─── Error section ─────────────────────────────────────────────────────── */
|
|
406
424
|
|
|
407
425
|
.detail-error {
|
|
408
|
-
background:
|
|
409
|
-
border: 1px solid
|
|
426
|
+
background: var(--color-error-bg);
|
|
427
|
+
border: 1px solid var(--color-error-border);
|
|
410
428
|
border-radius: 6px;
|
|
411
429
|
padding: 10px 12px;
|
|
412
430
|
}
|
|
@@ -414,20 +432,20 @@
|
|
|
414
432
|
.detail-error-type {
|
|
415
433
|
font-size: 12px;
|
|
416
434
|
font-weight: 600;
|
|
417
|
-
color:
|
|
435
|
+
color: var(--color-error);
|
|
418
436
|
margin-bottom: 4px;
|
|
419
437
|
}
|
|
420
438
|
|
|
421
439
|
.detail-error-message {
|
|
422
440
|
font-size: 11px;
|
|
423
|
-
color:
|
|
441
|
+
color: var(--text-muted);
|
|
424
442
|
line-height: 1.5;
|
|
425
443
|
}
|
|
426
444
|
|
|
427
445
|
.detail-error-stack {
|
|
428
|
-
font-family:
|
|
446
|
+
font-family: var(--font-mono);
|
|
429
447
|
font-size: 10px;
|
|
430
|
-
color:
|
|
448
|
+
color: var(--text-dim);
|
|
431
449
|
margin-top: 8px;
|
|
432
450
|
max-height: 150px;
|
|
433
451
|
overflow-y: auto;
|
|
@@ -450,20 +468,20 @@
|
|
|
450
468
|
font-size: 11px;
|
|
451
469
|
padding: 4px 8px;
|
|
452
470
|
border-radius: 4px;
|
|
453
|
-
background:
|
|
454
|
-
border: 1px solid
|
|
471
|
+
background: var(--surface-sunken);
|
|
472
|
+
border: 1px solid var(--border-subtle);
|
|
455
473
|
}
|
|
456
474
|
|
|
457
475
|
.detail-step-index {
|
|
458
|
-
color:
|
|
476
|
+
color: var(--text-dim);
|
|
459
477
|
font-size: 10px;
|
|
460
478
|
font-weight: 700;
|
|
461
479
|
min-width: 16px;
|
|
462
480
|
}
|
|
463
481
|
|
|
464
482
|
.detail-step-code {
|
|
465
|
-
font-family:
|
|
466
|
-
color:
|
|
483
|
+
font-family: var(--font-mono);
|
|
484
|
+
color: var(--text-default);
|
|
467
485
|
}
|
|
468
486
|
|
|
469
487
|
/* ─── Tags/Metrics ──────────────────────────────────────────────────────── */
|
|
@@ -478,48 +496,89 @@
|
|
|
478
496
|
font-size: 10px;
|
|
479
497
|
padding: 2px 6px;
|
|
480
498
|
border-radius: 3px;
|
|
481
|
-
background:
|
|
482
|
-
border: 1px solid
|
|
499
|
+
background: var(--surface-sunken);
|
|
500
|
+
border: 1px solid var(--border-subtle);
|
|
483
501
|
}
|
|
484
502
|
|
|
485
503
|
.detail-tag-key {
|
|
486
|
-
color:
|
|
504
|
+
color: var(--text-dim);
|
|
487
505
|
}
|
|
488
506
|
|
|
489
507
|
.detail-tag-value {
|
|
490
|
-
color:
|
|
491
|
-
font-family:
|
|
508
|
+
color: var(--text-default);
|
|
509
|
+
font-family: var(--font-mono);
|
|
510
|
+
}
|
|
511
|
+
|
|
512
|
+
/* ─── Detail tabs (Data / Structure) ────────────────────────────────────── */
|
|
513
|
+
|
|
514
|
+
.detail-tabs {
|
|
515
|
+
display: flex;
|
|
516
|
+
gap: 2px;
|
|
517
|
+
border-bottom: 1px solid var(--border-default);
|
|
518
|
+
}
|
|
519
|
+
|
|
520
|
+
.detail-tab {
|
|
521
|
+
all: unset;
|
|
522
|
+
cursor: pointer;
|
|
523
|
+
font-size: 11px;
|
|
524
|
+
font-weight: 600;
|
|
525
|
+
color: var(--text-dim);
|
|
526
|
+
padding: 5px 10px;
|
|
527
|
+
border-radius: 4px 4px 0 0;
|
|
528
|
+
border-bottom: 2px solid transparent;
|
|
529
|
+
margin-bottom: -1px;
|
|
530
|
+
transition:
|
|
531
|
+
color 0.15s,
|
|
532
|
+
border-color 0.15s;
|
|
533
|
+
}
|
|
534
|
+
|
|
535
|
+
.detail-tab:hover {
|
|
536
|
+
color: var(--text-muted);
|
|
537
|
+
}
|
|
538
|
+
|
|
539
|
+
.detail-tab--active {
|
|
540
|
+
color: var(--text-default);
|
|
541
|
+
border-bottom-color: var(--color-accent);
|
|
542
|
+
}
|
|
543
|
+
|
|
544
|
+
/* `all: unset` strips the UA focus ring — restore a visible indicator for
|
|
545
|
+
* keyboard users (WCAG 2.4.7) on every unset button in the panel. */
|
|
546
|
+
.detail-tab:focus-visible,
|
|
547
|
+
.detail-panel-close:focus-visible,
|
|
548
|
+
.detail-prompt-expand-btn:focus-visible {
|
|
549
|
+
outline: 2px solid var(--color-accent);
|
|
550
|
+
outline-offset: 2px;
|
|
492
551
|
}
|
|
493
552
|
|
|
494
553
|
/* ─── Concept panel header ──────────────────────────────────────────────── */
|
|
495
554
|
|
|
496
555
|
.detail-concept-code {
|
|
497
|
-
font-family:
|
|
556
|
+
font-family: var(--font-mono);
|
|
498
557
|
font-size: 14px;
|
|
499
558
|
font-weight: 600;
|
|
500
|
-
color:
|
|
559
|
+
color: var(--color-success);
|
|
501
560
|
}
|
|
502
561
|
|
|
503
562
|
.detail-concept-domain {
|
|
504
563
|
font-size: 11px;
|
|
505
|
-
color:
|
|
564
|
+
color: var(--text-dim);
|
|
506
565
|
}
|
|
507
566
|
|
|
508
567
|
.detail-refines {
|
|
509
568
|
font-size: 11px;
|
|
510
|
-
color:
|
|
569
|
+
color: var(--text-muted);
|
|
511
570
|
}
|
|
512
571
|
|
|
513
572
|
.detail-refines-code {
|
|
514
|
-
font-family:
|
|
515
|
-
color:
|
|
573
|
+
font-family: var(--font-mono);
|
|
574
|
+
color: var(--color-accent);
|
|
516
575
|
}
|
|
517
576
|
|
|
518
577
|
/* ─── Not available fallback ────────────────────────────────────────────── */
|
|
519
578
|
|
|
520
579
|
.detail-not-available {
|
|
521
580
|
font-size: 12px;
|
|
522
|
-
color:
|
|
581
|
+
color: var(--text-dim);
|
|
523
582
|
font-style: italic;
|
|
524
583
|
padding: 8px 0;
|
|
525
584
|
}
|