@pipelex/mthds-ui 0.5.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.
@@ -0,0 +1,753 @@
1
+ /* src/graph/react/stuff/StuffViewer.css */
2
+ .stuff-viewer {
3
+ --sv-bg: var(--color-bg, #0a0a0a);
4
+ --sv-surface: var(--color-surface, #16213e);
5
+ --sv-surface-hover: var(--color-surface-hover, #1f2b47);
6
+ --sv-border: var(--color-border, #2a3a5a);
7
+ --sv-text: var(--color-text, #e2e8f0);
8
+ --sv-text-muted: var(--color-text-muted, #94a3b8);
9
+ --sv-accent: var(--color-accent, #3b82f6);
10
+ --sv-success: #10b981;
11
+ --sv-success-bg: rgba(16, 185, 129, 0.2);
12
+ --sv-radius: 4px;
13
+ --sv-font-sans: var( --font-sans, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif );
14
+ --sv-font-mono: var(--font-mono, "JetBrains Mono", "Monaco", "Menlo", monospace);
15
+ font-family: var(--sv-font-sans);
16
+ color: var(--sv-text);
17
+ display: flex;
18
+ flex-direction: column;
19
+ height: 100%;
20
+ }
21
+ .stuff-viewer-header {
22
+ display: flex;
23
+ flex-direction: column;
24
+ gap: 2px;
25
+ padding: 12px 16px 8px;
26
+ border-bottom: 1px solid var(--sv-border);
27
+ flex-shrink: 0;
28
+ }
29
+ .stuff-viewer-title {
30
+ font-size: 14px;
31
+ font-weight: 600;
32
+ color: var(--sv-text);
33
+ margin: 0;
34
+ }
35
+ .stuff-viewer-subtitle {
36
+ font-size: 12px;
37
+ color: var(--sv-text-muted);
38
+ margin: 0;
39
+ }
40
+ .stuff-viewer-toolbar {
41
+ display: flex;
42
+ justify-content: space-between;
43
+ align-items: center;
44
+ padding: 8px 16px;
45
+ gap: 8px;
46
+ flex-shrink: 0;
47
+ }
48
+ .stuff-viewer-tabs {
49
+ display: flex;
50
+ gap: 4px;
51
+ }
52
+ .stuff-viewer-tab {
53
+ padding: 5px 10px;
54
+ border-radius: var(--sv-radius);
55
+ cursor: pointer;
56
+ font-size: 12px;
57
+ font-weight: 500;
58
+ background: var(--sv-surface-hover);
59
+ color: var(--sv-text-muted);
60
+ border: none;
61
+ transition: background 0.15s, color 0.15s;
62
+ }
63
+ .stuff-viewer-tab:hover {
64
+ background: var(--sv-border);
65
+ color: var(--sv-text);
66
+ }
67
+ .stuff-viewer-tab--active {
68
+ background: var(--sv-accent);
69
+ color: #fff;
70
+ }
71
+ .stuff-viewer-actions {
72
+ display: flex;
73
+ gap: 4px;
74
+ }
75
+ .stuff-viewer-action-btn {
76
+ display: flex;
77
+ align-items: center;
78
+ justify-content: center;
79
+ width: 28px;
80
+ height: 28px;
81
+ border-radius: var(--sv-radius);
82
+ cursor: pointer;
83
+ background: var(--sv-surface-hover);
84
+ color: var(--sv-text-muted);
85
+ border: none;
86
+ transition: background 0.15s, color 0.15s;
87
+ }
88
+ .stuff-viewer-action-btn:hover {
89
+ background: var(--sv-border);
90
+ color: var(--sv-text);
91
+ }
92
+ .stuff-viewer-action-btn--copied {
93
+ background: var(--sv-success-bg);
94
+ color: var(--sv-success);
95
+ }
96
+ .stuff-viewer-action-btn svg {
97
+ width: 14px;
98
+ height: 14px;
99
+ fill: currentColor;
100
+ }
101
+ .stuff-viewer-content {
102
+ flex: 1;
103
+ overflow: auto;
104
+ padding: 12px 16px 16px;
105
+ min-height: 0;
106
+ }
107
+ .stuff-viewer-pre {
108
+ font-family: var(--sv-font-mono);
109
+ font-size: 11px;
110
+ line-height: 1.5;
111
+ white-space: pre-wrap;
112
+ word-wrap: break-word;
113
+ margin: 0;
114
+ color: var(--sv-text-muted);
115
+ }
116
+ .stuff-viewer-pre--nowrap {
117
+ white-space: pre;
118
+ word-wrap: normal;
119
+ line-height: 1;
120
+ overflow-x: auto;
121
+ padding-right: 20px;
122
+ }
123
+ .stuff-viewer-html {
124
+ font-family: var(--sv-font-sans);
125
+ font-size: 11px;
126
+ color: var(--sv-text-muted);
127
+ line-height: 1.5;
128
+ }
129
+ .stuff-viewer-html table {
130
+ border-collapse: collapse;
131
+ width: 100%;
132
+ }
133
+ .stuff-viewer-html th,
134
+ .stuff-viewer-html td {
135
+ border: 1px solid var(--sv-border);
136
+ padding: 8px 12px;
137
+ text-align: left;
138
+ }
139
+ .stuff-viewer-html th {
140
+ background: var(--sv-surface-hover);
141
+ color: var(--sv-text);
142
+ font-weight: 600;
143
+ }
144
+ .stuff-viewer-html tr:hover {
145
+ background: var(--sv-surface-hover);
146
+ }
147
+ .stuff-viewer-html a {
148
+ color: var(--sv-accent);
149
+ text-decoration: none;
150
+ }
151
+ .stuff-viewer-html a:hover {
152
+ text-decoration: underline;
153
+ }
154
+ .stuff-viewer-html ul {
155
+ list-style: none;
156
+ padding-left: 0;
157
+ margin: 0;
158
+ }
159
+ .stuff-viewer-pdf {
160
+ min-height: 400px;
161
+ height: 100%;
162
+ }
163
+ .stuff-viewer-pdf embed {
164
+ width: 100%;
165
+ height: 100%;
166
+ min-height: 500px;
167
+ border: none;
168
+ }
169
+ .stuff-viewer-image {
170
+ display: flex;
171
+ justify-content: center;
172
+ align-items: center;
173
+ min-height: 200px;
174
+ }
175
+ .stuff-viewer-image img {
176
+ max-width: 100%;
177
+ max-height: 70vh;
178
+ object-fit: contain;
179
+ }
180
+ .stuff-viewer-local-file {
181
+ display: flex;
182
+ align-items: center;
183
+ gap: 12px;
184
+ padding: 16px;
185
+ border-radius: 6px;
186
+ background: var(--sv-surface);
187
+ border: 1px solid var(--sv-border);
188
+ }
189
+ .stuff-viewer-local-file-icon {
190
+ flex-shrink: 0;
191
+ width: 32px;
192
+ height: 32px;
193
+ color: var(--sv-text-muted);
194
+ }
195
+ .stuff-viewer-local-file-icon svg {
196
+ width: 100%;
197
+ height: 100%;
198
+ fill: currentColor;
199
+ }
200
+ .stuff-viewer-local-file-info {
201
+ flex: 1;
202
+ min-width: 0;
203
+ }
204
+ .stuff-viewer-local-file-name {
205
+ font-family: var(--sv-font-mono);
206
+ font-size: 12px;
207
+ color: var(--sv-text);
208
+ overflow: hidden;
209
+ text-overflow: ellipsis;
210
+ white-space: nowrap;
211
+ }
212
+ .stuff-viewer-local-file-hint {
213
+ font-size: 11px;
214
+ color: var(--sv-text-muted);
215
+ margin-top: 2px;
216
+ }
217
+ .stuff-viewer-placeholder {
218
+ color: var(--sv-text-muted);
219
+ font-style: italic;
220
+ font-size: 13px;
221
+ }
222
+
223
+ /* src/graph/react/detail/DetailPanel.css */
224
+ .detail-panel {
225
+ position: absolute;
226
+ top: 0;
227
+ right: 0;
228
+ width: 380px;
229
+ height: 100%;
230
+ background: #111118;
231
+ border-left: 1px solid rgba(255, 255, 255, 0.1);
232
+ z-index: 10;
233
+ display: flex;
234
+ flex-direction: column;
235
+ font-family:
236
+ "Inter",
237
+ -apple-system,
238
+ sans-serif;
239
+ color: #e2e8f0;
240
+ overflow: hidden;
241
+ transition: transform 0.2s ease;
242
+ }
243
+ .detail-panel--closed {
244
+ transform: translateX(100%);
245
+ pointer-events: none;
246
+ }
247
+ .detail-panel-resize-handle {
248
+ position: absolute;
249
+ top: 0;
250
+ left: -6px;
251
+ width: 12px;
252
+ height: 100%;
253
+ cursor: col-resize;
254
+ z-index: 2;
255
+ background: transparent;
256
+ }
257
+ .detail-panel-resize-handle::before {
258
+ content: "";
259
+ position: absolute;
260
+ top: 0;
261
+ left: 5px;
262
+ width: 2px;
263
+ height: 100%;
264
+ background: transparent;
265
+ transition: background 0.15s;
266
+ }
267
+ .detail-panel-resize-handle:hover::before,
268
+ .detail-panel--dragging .detail-panel-resize-handle::before {
269
+ background: rgba(59, 130, 246, 0.5);
270
+ }
271
+ .detail-panel-resize-handle::after {
272
+ content: "";
273
+ position: absolute;
274
+ top: 50%;
275
+ left: 50%;
276
+ transform: translate(-50%, -50%);
277
+ width: 2px;
278
+ height: 24px;
279
+ border-radius: 1px;
280
+ background: transparent;
281
+ transition: background 0.15s;
282
+ }
283
+ .detail-panel-resize-handle:hover::after,
284
+ .detail-panel--dragging .detail-panel-resize-handle::after {
285
+ background: rgba(59, 130, 246, 0.8);
286
+ }
287
+ .detail-panel--dragging {
288
+ transition: none;
289
+ }
290
+ .detail-panel--dragging .detail-panel-content {
291
+ pointer-events: none;
292
+ }
293
+ .detail-panel-close {
294
+ all: unset;
295
+ cursor: pointer;
296
+ position: absolute;
297
+ top: 12px;
298
+ right: 12px;
299
+ width: 24px;
300
+ height: 24px;
301
+ display: flex;
302
+ align-items: center;
303
+ justify-content: center;
304
+ border-radius: 4px;
305
+ color: #64748b;
306
+ font-size: 18px;
307
+ line-height: 1;
308
+ z-index: 3;
309
+ }
310
+ .detail-panel-close:hover {
311
+ color: #94a3b8;
312
+ background: rgba(255, 255, 255, 0.06);
313
+ }
314
+ .detail-panel-content {
315
+ flex: 1;
316
+ overflow-y: auto;
317
+ padding: 20px 16px;
318
+ display: flex;
319
+ flex-direction: column;
320
+ gap: 16px;
321
+ }
322
+ .detail-sticky-header {
323
+ position: sticky;
324
+ top: -20px;
325
+ z-index: 1;
326
+ background: #111118;
327
+ padding-top: 20px;
328
+ margin-top: -20px;
329
+ display: flex;
330
+ flex-direction: column;
331
+ gap: 16px;
332
+ }
333
+ .detail-section-label {
334
+ font-size: 9px;
335
+ font-weight: 700;
336
+ text-transform: uppercase;
337
+ letter-spacing: 0.06em;
338
+ color: #64748b;
339
+ margin-bottom: 6px;
340
+ }
341
+ .detail-header {
342
+ display: flex;
343
+ align-items: center;
344
+ gap: 8px;
345
+ }
346
+ .detail-badge {
347
+ font-size: 10px;
348
+ font-weight: 700;
349
+ text-transform: uppercase;
350
+ letter-spacing: 0.04em;
351
+ padding: 2px 7px;
352
+ border-radius: 4px;
353
+ white-space: nowrap;
354
+ }
355
+ .detail-badge--operator {
356
+ background: #ff6b6b;
357
+ color: #0e0e0e;
358
+ }
359
+ .detail-badge--controller {
360
+ background: #bd93f9;
361
+ color: #0e0e0e;
362
+ }
363
+ .detail-pipe-code {
364
+ font-family:
365
+ "JetBrains Mono",
366
+ "Monaco",
367
+ monospace;
368
+ font-size: 14px;
369
+ font-weight: 600;
370
+ color: #ff6b6b;
371
+ }
372
+ .detail-pipe-code--controller {
373
+ color: #bd93f9;
374
+ }
375
+ .detail-status {
376
+ display: flex;
377
+ align-items: center;
378
+ gap: 8px;
379
+ }
380
+ .detail-status-dot {
381
+ width: 8px;
382
+ height: 8px;
383
+ border-radius: 50%;
384
+ display: inline-block;
385
+ }
386
+ .detail-status-label {
387
+ font-size: 12px;
388
+ font-weight: 600;
389
+ text-transform: capitalize;
390
+ }
391
+ .detail-duration {
392
+ font-size: 11px;
393
+ color: #64748b;
394
+ font-family:
395
+ "JetBrains Mono",
396
+ "Monaco",
397
+ monospace;
398
+ }
399
+ .detail-description {
400
+ font-size: 12px;
401
+ color: #94a3b8;
402
+ line-height: 1.5;
403
+ }
404
+ .detail-io-pill {
405
+ display: flex;
406
+ align-items: center;
407
+ gap: 6px;
408
+ font-size: 11px;
409
+ padding: 3px 8px;
410
+ border-radius: 4px;
411
+ background: rgba(255, 255, 255, 0.04);
412
+ border: 1px solid rgba(255, 255, 255, 0.06);
413
+ }
414
+ .detail-io-name {
415
+ font-family:
416
+ "JetBrains Mono",
417
+ "Monaco",
418
+ monospace;
419
+ color: #e2e8f0;
420
+ }
421
+ .detail-io-concept {
422
+ color: #64748b;
423
+ font-size: 10px;
424
+ }
425
+ .detail-io-list {
426
+ display: flex;
427
+ flex-direction: column;
428
+ gap: 4px;
429
+ }
430
+ .detail-prompt-block {
431
+ font-family:
432
+ "JetBrains Mono",
433
+ "Monaco",
434
+ monospace;
435
+ font-size: 11px;
436
+ color: #94a3b8;
437
+ background: rgba(255, 255, 255, 0.03);
438
+ border: 1px solid rgba(255, 255, 255, 0.06);
439
+ border-radius: 6px;
440
+ padding: 10px 12px;
441
+ white-space: pre-wrap;
442
+ word-break: break-word;
443
+ overflow-y: auto;
444
+ line-height: 1.5;
445
+ }
446
+ .detail-prompt-block--collapsed {
447
+ max-height: 300px;
448
+ }
449
+ .detail-prompt-block--expanded {
450
+ max-height: none;
451
+ overflow-y: visible;
452
+ }
453
+ .detail-prompt-expand-btn {
454
+ all: unset;
455
+ cursor: pointer;
456
+ display: flex;
457
+ align-items: center;
458
+ gap: 4px;
459
+ font-size: 9px;
460
+ color: #64748b;
461
+ padding: 2px 6px;
462
+ border-radius: 3px;
463
+ background: rgba(255, 255, 255, 0.04);
464
+ border: 1px solid rgba(255, 255, 255, 0.06);
465
+ transition: color 0.15s;
466
+ }
467
+ .detail-prompt-expand-btn:hover {
468
+ color: #94a3b8;
469
+ }
470
+ .detail-kv-row {
471
+ display: flex;
472
+ justify-content: space-between;
473
+ align-items: flex-start;
474
+ gap: 12px;
475
+ font-size: 11px;
476
+ padding: 3px 0;
477
+ }
478
+ .detail-kv-key {
479
+ color: #64748b;
480
+ flex-shrink: 0;
481
+ }
482
+ .detail-kv-value {
483
+ font-family:
484
+ "JetBrains Mono",
485
+ "Monaco",
486
+ monospace;
487
+ color: #e2e8f0;
488
+ flex: 1 1 0;
489
+ min-width: 0;
490
+ text-align: right;
491
+ word-break: break-word;
492
+ overflow-wrap: anywhere;
493
+ }
494
+ .detail-field-block {
495
+ display: flex;
496
+ flex-direction: column;
497
+ gap: 4px;
498
+ }
499
+ .detail-field-block-label {
500
+ font-family:
501
+ "JetBrains Mono",
502
+ "Monaco",
503
+ monospace;
504
+ font-size: 10px;
505
+ color: #64748b;
506
+ }
507
+ .detail-field-block-value {
508
+ font-family:
509
+ "JetBrains Mono",
510
+ "Monaco",
511
+ monospace;
512
+ font-size: 11px;
513
+ color: #e2e8f0;
514
+ background: rgba(255, 255, 255, 0.03);
515
+ border: 1px solid rgba(255, 255, 255, 0.06);
516
+ border-radius: 6px;
517
+ padding: 8px 10px;
518
+ white-space: pre-wrap;
519
+ word-break: break-word;
520
+ overflow-wrap: anywhere;
521
+ line-height: 1.5;
522
+ max-height: 240px;
523
+ overflow-y: auto;
524
+ }
525
+ .detail-nested-header {
526
+ display: flex;
527
+ align-items: baseline;
528
+ justify-content: space-between;
529
+ gap: 8px;
530
+ margin-top: 6px;
531
+ margin-bottom: 4px;
532
+ padding: 4px 0 4px 8px;
533
+ border-left: 2px solid rgba(80, 250, 123, 0.35);
534
+ }
535
+ .detail-nested-header-name {
536
+ font-family:
537
+ "JetBrains Mono",
538
+ "Monaco",
539
+ monospace;
540
+ font-size: 11px;
541
+ font-weight: 600;
542
+ color: #e2e8f0;
543
+ }
544
+ .detail-nested-header-meta {
545
+ font-family:
546
+ "JetBrains Mono",
547
+ "Monaco",
548
+ monospace;
549
+ font-size: 9px;
550
+ color: #64748b;
551
+ text-transform: uppercase;
552
+ letter-spacing: 0.04em;
553
+ }
554
+ .detail-schema-table {
555
+ width: 100%;
556
+ font-size: 11px;
557
+ border-collapse: collapse;
558
+ }
559
+ .detail-schema-table th {
560
+ text-align: left;
561
+ font-weight: 700;
562
+ color: #64748b;
563
+ font-size: 9px;
564
+ text-transform: uppercase;
565
+ letter-spacing: 0.06em;
566
+ padding: 4px 6px;
567
+ border-bottom: 1px solid rgba(255, 255, 255, 0.08);
568
+ }
569
+ .detail-schema-table td {
570
+ padding: 4px 6px;
571
+ border-bottom: 1px solid rgba(255, 255, 255, 0.04);
572
+ color: #94a3b8;
573
+ }
574
+ .detail-schema-field {
575
+ font-family:
576
+ "JetBrains Mono",
577
+ "Monaco",
578
+ monospace;
579
+ color: #e2e8f0;
580
+ }
581
+ .detail-schema-type {
582
+ color: #8be9fd;
583
+ }
584
+ .detail-schema-required {
585
+ color: #ff6b6b;
586
+ font-size: 9px;
587
+ }
588
+ .detail-error {
589
+ background: rgba(255, 85, 85, 0.08);
590
+ border: 1px solid rgba(255, 85, 85, 0.2);
591
+ border-radius: 6px;
592
+ padding: 10px 12px;
593
+ }
594
+ .detail-error-type {
595
+ font-size: 12px;
596
+ font-weight: 600;
597
+ color: #ff5555;
598
+ margin-bottom: 4px;
599
+ }
600
+ .detail-error-message {
601
+ font-size: 11px;
602
+ color: #94a3b8;
603
+ line-height: 1.5;
604
+ }
605
+ .detail-error-stack {
606
+ font-family:
607
+ "JetBrains Mono",
608
+ "Monaco",
609
+ monospace;
610
+ font-size: 10px;
611
+ color: #64748b;
612
+ margin-top: 8px;
613
+ max-height: 150px;
614
+ overflow-y: auto;
615
+ white-space: pre-wrap;
616
+ word-break: break-word;
617
+ }
618
+ .detail-steps-list {
619
+ display: flex;
620
+ flex-direction: column;
621
+ gap: 4px;
622
+ }
623
+ .detail-step-item {
624
+ display: flex;
625
+ align-items: center;
626
+ gap: 8px;
627
+ font-size: 11px;
628
+ padding: 4px 8px;
629
+ border-radius: 4px;
630
+ background: rgba(255, 255, 255, 0.03);
631
+ border: 1px solid rgba(255, 255, 255, 0.06);
632
+ }
633
+ .detail-step-index {
634
+ color: #64748b;
635
+ font-size: 10px;
636
+ font-weight: 700;
637
+ min-width: 16px;
638
+ }
639
+ .detail-step-code {
640
+ font-family:
641
+ "JetBrains Mono",
642
+ "Monaco",
643
+ monospace;
644
+ color: #e2e8f0;
645
+ }
646
+ .detail-tags {
647
+ display: flex;
648
+ flex-wrap: wrap;
649
+ gap: 4px;
650
+ }
651
+ .detail-tag {
652
+ font-size: 10px;
653
+ padding: 2px 6px;
654
+ border-radius: 3px;
655
+ background: rgba(255, 255, 255, 0.04);
656
+ border: 1px solid rgba(255, 255, 255, 0.06);
657
+ }
658
+ .detail-tag-key {
659
+ color: #64748b;
660
+ }
661
+ .detail-tag-value {
662
+ color: #e2e8f0;
663
+ font-family:
664
+ "JetBrains Mono",
665
+ "Monaco",
666
+ monospace;
667
+ }
668
+ .detail-concept-code {
669
+ font-family:
670
+ "JetBrains Mono",
671
+ "Monaco",
672
+ monospace;
673
+ font-size: 14px;
674
+ font-weight: 600;
675
+ color: #50fa7b;
676
+ }
677
+ .detail-concept-domain {
678
+ font-size: 11px;
679
+ color: #64748b;
680
+ }
681
+ .detail-refines {
682
+ font-size: 11px;
683
+ color: #94a3b8;
684
+ }
685
+ .detail-refines-code {
686
+ font-family:
687
+ "JetBrains Mono",
688
+ "Monaco",
689
+ monospace;
690
+ color: #8be9fd;
691
+ }
692
+ .detail-not-available {
693
+ font-size: 12px;
694
+ color: #64748b;
695
+ font-style: italic;
696
+ padding: 8px 0;
697
+ }
698
+
699
+ /* src/graph/react/viewer/GraphToolbar.css */
700
+ .graph-toolbar {
701
+ position: absolute;
702
+ top: 8px;
703
+ display: flex;
704
+ align-items: center;
705
+ gap: 4px;
706
+ z-index: 11;
707
+ pointer-events: auto;
708
+ }
709
+ .graph-toolbar-btn {
710
+ all: unset;
711
+ box-sizing: border-box;
712
+ cursor: pointer;
713
+ width: 28px;
714
+ height: 28px;
715
+ display: inline-flex;
716
+ align-items: center;
717
+ justify-content: center;
718
+ border-radius: 6px;
719
+ background: rgba(17, 17, 24, 0.8);
720
+ border: 1px solid rgba(255, 255, 255, 0.1);
721
+ color: #cbd5e1;
722
+ backdrop-filter: blur(6px);
723
+ transition:
724
+ background 0.15s,
725
+ color 0.15s,
726
+ border-color 0.15s;
727
+ }
728
+ .graph-toolbar-btn:hover {
729
+ background: rgba(30, 30, 40, 0.9);
730
+ color: #f1f5f9;
731
+ border-color: rgba(255, 255, 255, 0.18);
732
+ }
733
+ .graph-toolbar-btn:focus-visible {
734
+ outline: 2px solid rgba(59, 130, 246, 0.6);
735
+ outline-offset: 1px;
736
+ }
737
+ .graph-toolbar-btn--active {
738
+ background: #3b82f6;
739
+ border-color: #3b82f6;
740
+ color: #ffffff;
741
+ }
742
+ .graph-toolbar-btn--active:hover {
743
+ background: #2563eb;
744
+ border-color: #2563eb;
745
+ color: #ffffff;
746
+ }
747
+ .graph-toolbar-separator {
748
+ width: 1px;
749
+ height: 18px;
750
+ background: rgba(255, 255, 255, 0.12);
751
+ margin: 0 2px;
752
+ }
753
+ /*# sourceMappingURL=index.css.map */