jev-devtools 0.0.0-stage → 0.1.1

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,993 @@
1
+ .jev-devtools {
2
+ color-scheme: dark;
3
+ font:
4
+ 12px system-ui,
5
+ sans-serif;
6
+ color: #eee8ed;
7
+ }
8
+ .jev-devtools,
9
+ .jev-devtools * {
10
+ box-sizing: border-box;
11
+ }
12
+ .jev-devtools button,
13
+ .jev-devtools input,
14
+ .jev-devtools select,
15
+ .jev-devtools textarea {
16
+ font: inherit;
17
+ color: inherit;
18
+ border: 1px solid #3b303d;
19
+ border-radius: 5px;
20
+ background: #17121b;
21
+ }
22
+ .jev-devtools button {
23
+ padding: 7px 11px;
24
+ cursor: pointer;
25
+ }
26
+ .jev-devtools button:disabled {
27
+ opacity: 0.45;
28
+ cursor: default;
29
+ }
30
+ .jev-devtools input,
31
+ .jev-devtools select {
32
+ padding: 8px;
33
+ width: 100%;
34
+ }
35
+ .jev-devtools button:hover:not(:disabled) {
36
+ border-color: #e551ba;
37
+ }
38
+ .jev-devtools :is(button, input, select, textarea, summary):focus-visible {
39
+ outline: 2px solid #e551ba;
40
+ outline-offset: 3px;
41
+ }
42
+ .jev-devtools .eyebrow {
43
+ font-size: 10px;
44
+ letter-spacing: 0.12em;
45
+ color: #bc9db5;
46
+ text-transform: uppercase;
47
+ }
48
+ .jev-devtools .jev-inspector {
49
+ height: 100%;
50
+ display: flex;
51
+ color: #eee8ed;
52
+ background: #0d0a0f;
53
+ font:
54
+ 12px "DM Sans",
55
+ sans-serif;
56
+ min-height: 0;
57
+ overflow: hidden;
58
+ }
59
+ .jev-devtools .jev-inspector h2 {
60
+ font-size: 15px;
61
+ margin: 0;
62
+ font-weight: 600;
63
+ }
64
+ .jev-devtools .jev-inspector h3 {
65
+ font-size: 13px;
66
+ margin: 0 0 8px;
67
+ }
68
+ .jev-devtools .jev-inspector code,
69
+ .jev-devtools .jev-inspector pre {
70
+ font:
71
+ 11px "JetBrains Mono",
72
+ monospace;
73
+ }
74
+ .jev-devtools .jev-inspector pre {
75
+ line-height: 1.7;
76
+ white-space: pre-wrap;
77
+ overflow-wrap: anywhere;
78
+ max-height: 460px;
79
+ overflow: auto;
80
+ background: #100d13;
81
+ padding: 16px;
82
+ border: 1px solid #2e2533;
83
+ border-radius: 5px;
84
+ }
85
+ .jev-devtools .jev-inspector .muted {
86
+ color: #a89bac;
87
+ font-size: 11px;
88
+ line-height: 1.6;
89
+ }
90
+ .jev-devtools .request-list {
91
+ flex: 0 0 300px;
92
+ border-right: 1px solid #302634;
93
+ display: flex;
94
+ flex-direction: column;
95
+ min-height: 0;
96
+ }
97
+ .jev-devtools .request-list > header {
98
+ padding: 17px 14px;
99
+ display: flex;
100
+ justify-content: space-between;
101
+ align-items: center;
102
+ }
103
+ .jev-devtools .request-list h2 span {
104
+ font-size: 11px;
105
+ color: #b796ad;
106
+ margin-left: 5px;
107
+ }
108
+ .jev-devtools .request-list button {
109
+ font-size: 11px;
110
+ }
111
+ .jev-devtools .list-filters {
112
+ display: flex;
113
+ gap: 7px;
114
+ padding: 0 12px 12px;
115
+ }
116
+ .jev-devtools .list-filters input {
117
+ min-width: 0;
118
+ }
119
+ .jev-devtools .list-filters select {
120
+ width: 86px;
121
+ font-size: 11px;
122
+ }
123
+ .jev-devtools .request-items {
124
+ overflow: auto;
125
+ flex: 1;
126
+ }
127
+ .jev-devtools .request-row {
128
+ display: flex;
129
+ align-items: center;
130
+ gap: 8px;
131
+ width: 100%;
132
+ text-align: left;
133
+ border: 0;
134
+ border-top: 1px solid #251d2a;
135
+ border-radius: 0;
136
+ background: transparent;
137
+ padding: 16px 12px;
138
+ }
139
+ .jev-devtools .request-row.selected {
140
+ background: #251423;
141
+ box-shadow: inset 2px 0 #e551ba;
142
+ }
143
+ .jev-devtools .request-row strong {
144
+ display: block;
145
+ font-size: 12px;
146
+ font-weight: 500;
147
+ }
148
+ .jev-devtools .request-row small {
149
+ display: block;
150
+ font-size: 10px;
151
+ color: #a99aac;
152
+ margin-top: 6px;
153
+ }
154
+ .jev-devtools .row-status {
155
+ font-size: 9px;
156
+ color: #ad9bb0;
157
+ margin-left: auto;
158
+ }
159
+ .jev-devtools .status-dot {
160
+ width: 6px;
161
+ height: 6px;
162
+ display: inline-block;
163
+ border-radius: 50%;
164
+ background: #b09ab7;
165
+ flex-shrink: 0;
166
+ }
167
+ .jev-devtools .status-dot.success {
168
+ background: #b3c79c;
169
+ }
170
+ .jev-devtools .status-dot.pending {
171
+ background: #e551ba;
172
+ }
173
+ .jev-devtools .status-dot.error {
174
+ background: #ee8e85;
175
+ }
176
+ .jev-devtools .request-list footer {
177
+ padding: 12px;
178
+ color: #9e8ea5;
179
+ border-top: 1px solid #302634;
180
+ font-size: 10px;
181
+ display: flex;
182
+ gap: 7px;
183
+ }
184
+ .jev-devtools .request-detail {
185
+ flex: 1;
186
+ min-width: 0;
187
+ display: flex;
188
+ flex-direction: column;
189
+ }
190
+ .jev-devtools .detail-header {
191
+ display: flex;
192
+ align-items: center;
193
+ justify-content: space-between;
194
+ gap: 20px;
195
+ padding: 18px 24px 10px;
196
+ }
197
+ .jev-devtools .detail-header h2 {
198
+ margin-top: 6px;
199
+ }
200
+ .jev-devtools .metrics {
201
+ display: flex;
202
+ gap: 24px;
203
+ font:
204
+ 12px "JetBrains Mono",
205
+ monospace;
206
+ white-space: nowrap;
207
+ }
208
+ .jev-devtools .metrics small {
209
+ display: block;
210
+ font:
211
+ 9px "DM Sans",
212
+ sans-serif;
213
+ color: #97879f;
214
+ margin-top: 6px;
215
+ }
216
+ .jev-devtools .detail-meta {
217
+ display: flex;
218
+ gap: 20px;
219
+ flex-wrap: wrap;
220
+ padding: 0 24px 14px;
221
+ color: #a08aa5;
222
+ }
223
+ .jev-devtools .detail-meta code {
224
+ font-size: 10px;
225
+ }
226
+ .jev-devtools .detail-tabs {
227
+ display: flex;
228
+ gap: 20px;
229
+ border-bottom: 1px solid #302634;
230
+ padding: 0 24px;
231
+ }
232
+ .jev-devtools .detail-tabs button {
233
+ border: 0;
234
+ border-radius: 0;
235
+ background: none;
236
+ padding: 10px 0;
237
+ color: #a89bac;
238
+ font-size: 11px;
239
+ }
240
+ .jev-devtools .detail-tabs button[aria-pressed="true"] {
241
+ box-shadow: inset 0 -2px #e551ba;
242
+ color: #f5c1e6;
243
+ }
244
+ .jev-devtools .detail-body {
245
+ overflow: auto;
246
+ flex: 1;
247
+ min-height: 0;
248
+ padding: 16px 24px 28px;
249
+ background-image: radial-gradient(#342337 0.6px, transparent 0.6px);
250
+ background-size: 16px 16px;
251
+ }
252
+ .jev-devtools .request-flow {
253
+ display: flex;
254
+ align-items: center;
255
+ gap: 40px;
256
+ padding: 14px 0 20px;
257
+ }
258
+ .jev-devtools .state-node {
259
+ position: relative;
260
+ flex: 0 0 160px;
261
+ border: 1px solid #e551ba;
262
+ padding: 20px 15px;
263
+ background: #1f1320;
264
+ border-radius: 6px;
265
+ }
266
+ .jev-devtools .state-node h3 {
267
+ margin-top: 12px;
268
+ }
269
+ .jev-devtools .state-node p {
270
+ color: #b69db3;
271
+ line-height: 1.5;
272
+ }
273
+ .jev-devtools .state-node code {
274
+ font-size: 10px;
275
+ }
276
+ .jev-devtools .state-node:after {
277
+ content: "";
278
+ position: absolute;
279
+ left: 100%;
280
+ top: 50%;
281
+ width: 20px;
282
+ border-top: 1px solid #7f416d;
283
+ }
284
+ .jev-devtools .question-branches {
285
+ border-left: 1px solid #7f416d;
286
+ padding-left: 20px;
287
+ display: grid;
288
+ grid-template-columns: repeat(3, minmax(160px, 1fr));
289
+ gap: 12px;
290
+ flex: 1;
291
+ position: relative;
292
+ }
293
+ .jev-devtools .question-node {
294
+ position: relative;
295
+ border: 1px solid #75516c;
296
+ border-radius: 6px;
297
+ padding: 15px;
298
+ background: #110d14;
299
+ min-width: 0;
300
+ }
301
+ .jev-devtools .question-node:before {
302
+ content: "";
303
+ position: absolute;
304
+ right: 100%;
305
+ top: 50%;
306
+ width: 21px;
307
+ border-top: 1px solid #7f416d;
308
+ }
309
+ .jev-devtools .question-branches .question-node:not(:first-child):before {
310
+ display: none;
311
+ }
312
+ .jev-devtools .question-node header {
313
+ display: flex;
314
+ align-items: center;
315
+ justify-content: space-between;
316
+ gap: 8px;
317
+ }
318
+ .jev-devtools .question-node header h3 {
319
+ margin: 0;
320
+ overflow-wrap: anywhere;
321
+ }
322
+ .jev-devtools .type {
323
+ font:
324
+ 9px "JetBrains Mono",
325
+ monospace;
326
+ color: #e59acc;
327
+ border: 1px solid #5e3654;
328
+ border-radius: 3px;
329
+ padding: 3px 5px;
330
+ }
331
+ .jev-devtools .instructions {
332
+ font-size: 11px;
333
+ color: #b8a6bc;
334
+ line-height: 1.5;
335
+ }
336
+ .jev-devtools .answer-value {
337
+ display: block;
338
+ font-size: 20px;
339
+ font-weight: 500;
340
+ margin: 15px 0;
341
+ color: #f0c7e5;
342
+ }
343
+ .jev-devtools .answer-value small {
344
+ font-size: 10px;
345
+ color: #b5a1ba;
346
+ }
347
+ .jev-devtools .probability {
348
+ margin: 10px 0;
349
+ font-size: 10px;
350
+ }
351
+ .jev-devtools .probability > div:first-child {
352
+ display: flex;
353
+ justify-content: space-between;
354
+ gap: 5px;
355
+ margin-bottom: 5px;
356
+ }
357
+ .jev-devtools .probability b {
358
+ font-weight: 400;
359
+ color: #d8abc9;
360
+ }
361
+ .jev-devtools .bar {
362
+ height: 4px;
363
+ background: #302033;
364
+ border-radius: 2px;
365
+ overflow: hidden;
366
+ }
367
+ .jev-devtools .bar i {
368
+ display: block;
369
+ height: 100%;
370
+ background: #e551ba;
371
+ }
372
+ .jev-devtools .confidence {
373
+ font-size: 10px;
374
+ color: #a68cac;
375
+ border-top: 1px solid #302634;
376
+ padding-top: 10px;
377
+ display: flex;
378
+ justify-content: space-between;
379
+ }
380
+ .jev-devtools .confidence b {
381
+ color: #d1bad2;
382
+ font-weight: 400;
383
+ }
384
+ .jev-devtools details {
385
+ margin-top: 12px;
386
+ font-size: 10px;
387
+ color: #b7a0bd;
388
+ }
389
+ .jev-devtools summary {
390
+ cursor: pointer;
391
+ }
392
+ .jev-devtools .standalone {
393
+ margin-bottom: 14px;
394
+ max-width: 750px;
395
+ }
396
+ .jev-devtools .standalone:before {
397
+ display: none;
398
+ }
399
+ .jev-devtools .standalone .answer {
400
+ max-width: 450px;
401
+ }
402
+ .jev-devtools .box-preview {
403
+ position: relative;
404
+ margin-top: 14px;
405
+ min-height: 80px;
406
+ background: #19121c;
407
+ }
408
+ .jev-devtools .box-preview img {
409
+ width: 100%;
410
+ display: block;
411
+ }
412
+ .jev-devtools .bounding-box {
413
+ position: absolute;
414
+ border: 1.5px solid #e551ba;
415
+ background: #e551ba15;
416
+ }
417
+ .jev-devtools .coordinates {
418
+ display: block;
419
+ font-size: 9px !important;
420
+ line-height: 1.5;
421
+ margin-top: 8px;
422
+ color: #ac93b0;
423
+ }
424
+ .jev-devtools .context-image {
425
+ max-width: 400px;
426
+ width: 100%;
427
+ border: 1px solid #75516c;
428
+ border-radius: 6px;
429
+ }
430
+ .jev-devtools .empty {
431
+ padding: 20px;
432
+ color: #a294a8;
433
+ line-height: 1.7;
434
+ }
435
+ .jev-devtools .empty-detail {
436
+ margin: auto;
437
+ padding: 40px;
438
+ text-align: center;
439
+ color: #b2a0ba;
440
+ }
441
+ .jev-devtools .empty-symbol {
442
+ font-size: 36px;
443
+ color: #e551ba;
444
+ display: block;
445
+ margin-bottom: 20px;
446
+ }
447
+ .jev-devtools .empty-detail p {
448
+ font-size: 12px;
449
+ line-height: 1.8;
450
+ }
451
+ .jev-devtools .error-banner {
452
+ border: 1px solid #874b50;
453
+ background: #31191e;
454
+ padding: 12px;
455
+ line-height: 1.5;
456
+ margin-bottom: 16px;
457
+ }
458
+ .jev-devtools .warning {
459
+ color: #e2b97d;
460
+ }
461
+ .jev-devtools .jev-inspector table {
462
+ border-collapse: collapse;
463
+ width: 100%;
464
+ text-align: left;
465
+ }
466
+ .jev-devtools .jev-inspector th,
467
+ .jev-devtools .jev-inspector td {
468
+ border-bottom: 1px solid #302634;
469
+ padding: 14px;
470
+ }
471
+ .jev-devtools .flow-dot {
472
+ display: none;
473
+ }
474
+ .jev-devtools .pending .flow-dot {
475
+ display: block;
476
+ position: absolute;
477
+ right: -23px;
478
+ top: calc(50% - 3px);
479
+ width: 6px;
480
+ height: 6px;
481
+ background: #e551ba;
482
+ border-radius: 50%;
483
+ animation: jev-inspector-pulse 1s infinite;
484
+ }
485
+ @keyframes jev-inspector-pulse {
486
+ 50% {
487
+ opacity: 0.2;
488
+ transform: scale(0.7);
489
+ }
490
+ }
491
+ @media (prefers-reduced-motion: reduce) {
492
+ .jev-devtools .pending .flow-dot {
493
+ animation: none;
494
+ }
495
+ }
496
+ @media (max-width: 1100px) {
497
+ .jev-devtools .question-branches {
498
+ grid-template-columns: 1fr;
499
+ }
500
+ .jev-devtools .question-branches .question-node:not(:first-child):before {
501
+ display: block;
502
+ }
503
+ .jev-devtools .request-flow {
504
+ align-items: flex-start;
505
+ }
506
+ .jev-devtools .state-node {
507
+ margin-top: 45px;
508
+ }
509
+ .jev-devtools .metrics {
510
+ gap: 12px;
511
+ }
512
+ .jev-devtools .request-list {
513
+ flex-basis: 250px;
514
+ }
515
+ }
516
+ @media (max-width: 700px) {
517
+ .jev-devtools .jev-inspector {
518
+ flex-direction: column;
519
+ }
520
+ .jev-devtools .request-list {
521
+ flex-basis: 140px;
522
+ flex-shrink: 0;
523
+ border-right: 0;
524
+ border-bottom: 1px solid #302634;
525
+ }
526
+ .jev-devtools .request-list > header {
527
+ padding: 6px 12px;
528
+ }
529
+ .jev-devtools .request-list footer {
530
+ display: none;
531
+ }
532
+ .jev-devtools .list-filters {
533
+ padding-bottom: 6px;
534
+ }
535
+ .jev-devtools .request-items {
536
+ display: flex;
537
+ }
538
+ .jev-devtools .request-row {
539
+ min-width: 240px;
540
+ padding: 8px 12px;
541
+ }
542
+ .jev-devtools .request-detail {
543
+ min-height: 0;
544
+ }
545
+ .jev-devtools .detail-header {
546
+ padding: 12px;
547
+ }
548
+ .jev-devtools .detail-meta,
549
+ .jev-devtools .detail-tabs {
550
+ padding-left: 12px;
551
+ padding-right: 12px;
552
+ }
553
+ .jev-devtools .detail-body {
554
+ padding: 12px;
555
+ }
556
+ .jev-devtools .metrics {
557
+ display: none;
558
+ }
559
+ .jev-devtools .state-node {
560
+ flex-basis: 115px;
561
+ padding: 12px;
562
+ }
563
+ .jev-devtools .request-flow {
564
+ gap: 25px;
565
+ }
566
+ .jev-devtools .state-node:after {
567
+ width: 12px;
568
+ }
569
+ .jev-devtools .question-branches {
570
+ padding-left: 12px;
571
+ }
572
+ .jev-devtools .question-node:before {
573
+ width: 13px;
574
+ }
575
+ .jev-devtools .question-node {
576
+ padding: 12px;
577
+ }
578
+ }
579
+
580
+ .jev-devtools .request-flow {
581
+ flex-direction: column;
582
+ align-items: stretch;
583
+ gap: 24px;
584
+ }
585
+ .jev-devtools .state-node {
586
+ flex: auto;
587
+ width: fit-content;
588
+ align-self: center;
589
+ padding: 12px 24px;
590
+ text-align: center;
591
+ margin: 0;
592
+ }
593
+ .jev-devtools .state-node h3 {
594
+ display: inline-block;
595
+ margin: 0 12px;
596
+ }
597
+ .jev-devtools .state-node p {
598
+ display: inline-block;
599
+ margin: 0 12px 0 0;
600
+ font-size: 11px;
601
+ }
602
+ .jev-devtools .state-node .eyebrow {
603
+ display: none;
604
+ }
605
+ .jev-devtools .state-node:after {
606
+ left: 50%;
607
+ top: 100%;
608
+ width: 0;
609
+ height: 24px;
610
+ border-top: 0;
611
+ border-left: 1px solid #7f416d;
612
+ }
613
+ .jev-devtools .question-branches {
614
+ border-left: 0;
615
+ border-top: 1px solid #7f416d;
616
+ padding: 20px 0 0;
617
+ grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
618
+ }
619
+ .jev-devtools .question-node:before,
620
+ .jev-devtools .question-branches .question-node:not(:first-child):before {
621
+ display: block;
622
+ right: auto;
623
+ left: 50%;
624
+ top: -21px;
625
+ width: 0;
626
+ height: 20px;
627
+ border-top: 0;
628
+ border-left: 1px solid #7f416d;
629
+ }
630
+ .jev-devtools .standalone:before {
631
+ display: none;
632
+ }
633
+ .jev-devtools .flow-caption {
634
+ margin-top: 0;
635
+ }
636
+ .jev-devtools .pending .flow-dot {
637
+ right: auto;
638
+ left: calc(50% - 3px);
639
+ top: calc(100% + 10px);
640
+ }
641
+ @media (max-width: 900px) {
642
+ .jev-devtools .question-branches {
643
+ grid-template-columns: 1fr;
644
+ }
645
+ .jev-devtools .question-node:before,
646
+ .jev-devtools .question-branches .question-node:not(:first-child):before {
647
+ height: 12px;
648
+ top: -13px;
649
+ }
650
+ .jev-devtools .question-branches .question-node:first-child:before {
651
+ height: 20px;
652
+ top: -21px;
653
+ }
654
+ .jev-devtools .state-node {
655
+ padding: 10px;
656
+ }
657
+ .jev-devtools .state-node p {
658
+ display: block;
659
+ margin: 6px 0;
660
+ }
661
+ .jev-devtools .state-node h3 {
662
+ font-size: 12px;
663
+ }
664
+ }
665
+
666
+ .jev-devtools.jev-drawer {
667
+ position: fixed;
668
+ z-index: 1000;
669
+ inset: auto 0 0;
670
+ display: flex;
671
+ flex-direction: column;
672
+ background: #0d0a0f;
673
+ color: #eee8ed;
674
+ border-top: 1px solid #604058;
675
+ box-shadow: 0 -12px 48px #0005;
676
+ font:
677
+ 12px "DM Sans",
678
+ sans-serif;
679
+ }
680
+ .jev-devtools.jev-drawer[hidden],
681
+ .jev-devtools.jev-drawer-trigger[hidden] {
682
+ display: none;
683
+ }
684
+ .jev-devtools .jev-drawer-resize {
685
+ position: absolute;
686
+ z-index: 1;
687
+ top: -6px;
688
+ width: 100%;
689
+ height: 12px;
690
+ cursor: ns-resize;
691
+ touch-action: none;
692
+ display: flex;
693
+ justify-content: center;
694
+ align-items: center;
695
+ }
696
+ .jev-devtools .jev-drawer-resize span {
697
+ width: 42px;
698
+ height: 3px;
699
+ border-radius: 3px;
700
+ background: #79506f;
701
+ }
702
+ .jev-devtools .jev-drawer-resize:hover span,
703
+ .jev-devtools .jev-drawer-resize:focus-visible span {
704
+ background: #e551ba;
705
+ }
706
+ .jev-devtools .jev-drawer-resize:focus-visible {
707
+ outline: 2px solid #e551ba;
708
+ outline-offset: -2px;
709
+ }
710
+ .jev-devtools .jev-drawer-header {
711
+ display: flex;
712
+ justify-content: space-between;
713
+ align-items: center;
714
+ flex: 0 0 46px;
715
+ padding: 0 16px;
716
+ border-bottom: 1px solid #302634;
717
+ }
718
+ .jev-devtools .jev-drawer-header strong {
719
+ display: flex;
720
+ align-items: center;
721
+ gap: 9px;
722
+ font-weight: 600;
723
+ }
724
+ .jev-devtools .jev-mark {
725
+ color: #e551ba;
726
+ font-size: 21px;
727
+ }
728
+ .jev-devtools .jev-drawer-header > div {
729
+ display: flex;
730
+ align-items: center;
731
+ gap: 10px;
732
+ }
733
+ .jev-devtools .jev-drawer-header button {
734
+ background: transparent;
735
+ border-color: transparent;
736
+ font-size: 11px;
737
+ color: #c4afc8;
738
+ }
739
+ .jev-devtools .jev-drawer-header .jev-drawer-close {
740
+ font-size: 22px;
741
+ line-height: 1;
742
+ padding: 4px 8px;
743
+ }
744
+ .jev-devtools .jev-drawer-content {
745
+ flex: 1;
746
+ min-height: 0;
747
+ overflow: hidden;
748
+ }
749
+ .jev-devtools.jev-drawer-trigger {
750
+ position: fixed;
751
+ bottom: 18px;
752
+ right: 18px;
753
+ z-index: 1000;
754
+ display: flex;
755
+ align-items: center;
756
+ gap: 9px;
757
+ padding: 10px 16px;
758
+ border: 1px solid #a24487;
759
+ background: #211321;
760
+ color: #f1cbe6;
761
+ font:
762
+ 600 13px "DM Sans",
763
+ sans-serif;
764
+ box-shadow: 0 4px 20px #0005;
765
+ }
766
+ .jev-devtools.jev-drawer-trigger span {
767
+ color: #e551ba;
768
+ font-size: 20px;
769
+ }
770
+ /* Baseline cards and authored left-to-right composition from the lab's Jev presets. */
771
+ .jev-devtools .lab-flow-toolbar {
772
+ display: flex;
773
+ align-items: center;
774
+ justify-content: space-between;
775
+ gap: 12px;
776
+ margin-bottom: 14px;
777
+ flex-wrap: wrap;
778
+ }
779
+ .jev-devtools .lab-flow-toolbar label {
780
+ display: flex;
781
+ gap: 10px;
782
+ align-items: center;
783
+ font-size: 11px;
784
+ min-width: 0;
785
+ }
786
+ .jev-devtools .lab-flow-toolbar select {
787
+ width: auto;
788
+ max-width: 240px;
789
+ font-size: 11px;
790
+ }
791
+ .jev-devtools .lab-flow-toolbar > div {
792
+ display: flex;
793
+ gap: 8px;
794
+ align-items: center;
795
+ }
796
+ .jev-devtools .lab-flow-toolbar button {
797
+ font-size: 11px;
798
+ }
799
+ .jev-devtools .lab-flow-toolbar output {
800
+ font-size: 11px;
801
+ min-width: 35px;
802
+ text-align: center;
803
+ }
804
+ .jev-devtools .lab-flow-viewport {
805
+ overflow: auto;
806
+ max-height: 65vh;
807
+ background: #0d0a0f;
808
+ border: 1px solid #302634;
809
+ border-radius: 8px;
810
+ }
811
+ .jev-devtools .lab-flow-canvas {
812
+ position: relative;
813
+ transform-origin: top left;
814
+ font-family: system-ui, sans-serif;
815
+ color: #f5f3f6;
816
+ }
817
+ .jev-devtools .lab-connections {
818
+ position: absolute;
819
+ inset: 0;
820
+ overflow: visible;
821
+ }
822
+ .jev-devtools .lab-connections path {
823
+ fill: none;
824
+ stroke: #645a68;
825
+ stroke-width: 1;
826
+ }
827
+ .jev-devtools .lab-connections path.active {
828
+ stroke: #968592;
829
+ }
830
+ .jev-devtools .lab-connections text {
831
+ fill: #b7b1bc;
832
+ font:
833
+ 12px ui-monospace,
834
+ monospace;
835
+ }
836
+ .jev-devtools .lab-flow-dot {
837
+ fill: #e551ba;
838
+ }
839
+ .jev-devtools .lab-card {
840
+ position: absolute;
841
+ border: 1.3px solid #f5f3f6;
842
+ border-radius: 14px;
843
+ padding: 20px;
844
+ background: #0d0a0f;
845
+ overflow: hidden;
846
+ }
847
+ .jev-devtools .lab-eyebrow {
848
+ display: block;
849
+ color: #e551ba;
850
+ font:
851
+ 500 10px ui-monospace,
852
+ monospace;
853
+ letter-spacing: 1px;
854
+ margin: 0 0 10px;
855
+ }
856
+ .jev-devtools .lab-card h3 {
857
+ font-size: 18px;
858
+ font-weight: 500;
859
+ line-height: 1.25;
860
+ margin: 0 0 16px;
861
+ overflow: hidden;
862
+ white-space: nowrap;
863
+ text-overflow: ellipsis;
864
+ }
865
+ .jev-devtools .lab-card p {
866
+ font-size: 15px;
867
+ line-height: 1.4;
868
+ margin: 10px 0;
869
+ }
870
+ .jev-devtools .lab-copy {
871
+ display: -webkit-box;
872
+ -webkit-line-clamp: 5;
873
+ -webkit-box-orient: vertical;
874
+ overflow: hidden;
875
+ overflow-wrap: anywhere;
876
+ }
877
+ .jev-devtools .lab-probability {
878
+ margin: 17px 0;
879
+ }
880
+ .jev-devtools .lab-probability > div:first-child {
881
+ display: flex;
882
+ justify-content: space-between;
883
+ gap: 10px;
884
+ margin-bottom: 9px;
885
+ font-size: 15px;
886
+ }
887
+ .jev-devtools .lab-probability span {
888
+ overflow: hidden;
889
+ white-space: nowrap;
890
+ text-overflow: ellipsis;
891
+ }
892
+ .jev-devtools .lab-probability code {
893
+ font:
894
+ 13px ui-monospace,
895
+ monospace;
896
+ }
897
+ .jev-devtools .lab-track {
898
+ height: 7px;
899
+ border-radius: 4px;
900
+ background: #f5f3f61a;
901
+ overflow: hidden;
902
+ }
903
+ .jev-devtools .lab-track i {
904
+ display: block;
905
+ height: 100%;
906
+ border-radius: 4px;
907
+ background: #e551ba;
908
+ }
909
+ .jev-devtools .lab-track i.lab-alternative {
910
+ opacity: 0.35;
911
+ }
912
+ .jev-devtools .lab-card .lab-result {
913
+ font-size: 14px;
914
+ margin-top: 24px;
915
+ }
916
+ .jev-devtools .lab-card .lab-small {
917
+ font-size: 12px;
918
+ color: #b7b1bc;
919
+ margin-top: 20px;
920
+ }
921
+ .jev-devtools .lab-idle {
922
+ opacity: 0.65;
923
+ }
924
+ .jev-devtools .lab-scale {
925
+ position: relative;
926
+ margin-top: 18px;
927
+ border-top: 1px solid #b7b1bc;
928
+ display: flex;
929
+ justify-content: space-between;
930
+ padding-top: 9px;
931
+ }
932
+ .jev-devtools .lab-scale > span {
933
+ position: absolute;
934
+ top: -5px;
935
+ width: 9px;
936
+ height: 9px;
937
+ border-radius: 50%;
938
+ background: #e551ba;
939
+ transform: translateX(-50%);
940
+ }
941
+ .jev-devtools .lab-big {
942
+ display: block;
943
+ font-size: 36px;
944
+ font-weight: 500;
945
+ margin-top: 26px;
946
+ }
947
+ .jev-devtools .lab-endpoints {
948
+ display: flex;
949
+ justify-content: space-between;
950
+ font-size: 12px;
951
+ color: #b7b1bc;
952
+ margin-top: 10px;
953
+ }
954
+ .jev-devtools .lab-image {
955
+ position: relative;
956
+ }
957
+ .jev-devtools .lab-image img {
958
+ display: block;
959
+ width: 100%;
960
+ }
961
+ .jev-devtools .lab-box {
962
+ position: absolute;
963
+ border: 1.5px solid #e551ba;
964
+ background: #e551ba15;
965
+ }
966
+ .jev-devtools .lab-source-image {
967
+ width: 100%;
968
+ max-height: 105px;
969
+ object-fit: contain;
970
+ }
971
+ .jev-devtools .lab-coordinates {
972
+ font-family: ui-monospace, monospace;
973
+ }
974
+ @media (prefers-reduced-motion: reduce) {
975
+ .jev-devtools .lab-flow-dot {
976
+ display: none;
977
+ }
978
+ }
979
+ /* The public TypeSafe mark travels with the package, independent of host assets. */
980
+ .jev-devtools .typesafe-mark {
981
+ display: inline-block;
982
+ flex: 0 0 23px;
983
+ width: 23px;
984
+ height: 32px;
985
+ overflow: hidden;
986
+ line-height: 0;
987
+ }
988
+ .jev-devtools .typesafe-mark img {
989
+ display: block;
990
+ height: 32px;
991
+ width: auto;
992
+ max-width: none;
993
+ }