@troyio/vite-file-router 0.4.1 → 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.
- package/README.md +664 -536
- package/devtools/app.js +619 -34
- package/devtools/index.html +6 -0
- package/devtools/style.css +456 -102
- package/dist/devtools-app.d.ts +40 -2
- package/dist/devtools.d.ts +25 -0
- package/dist/index.d.ts +20 -0
- package/dist/index.js +523 -40
- package/dist/scanner.d.ts +2 -1
- package/package.json +1 -1
- package/types/index.d.ts +3 -0
package/devtools/style.css
CHANGED
|
@@ -1,31 +1,32 @@
|
|
|
1
1
|
:root {
|
|
2
2
|
color-scheme: light;
|
|
3
|
-
--bg: #
|
|
3
|
+
--bg: #f5f5f5;
|
|
4
4
|
--surface: #ffffff;
|
|
5
|
-
--surface-2: #
|
|
6
|
-
--border: #
|
|
7
|
-
--border-strong: #
|
|
8
|
-
--text: #
|
|
9
|
-
--text-2: #
|
|
10
|
-
--text-3: #
|
|
11
|
-
--accent: #
|
|
12
|
-
--accent-
|
|
13
|
-
--accent-
|
|
14
|
-
--
|
|
15
|
-
--success
|
|
16
|
-
--success-
|
|
17
|
-
--
|
|
18
|
-
--warning
|
|
19
|
-
--warning-
|
|
20
|
-
--
|
|
21
|
-
--danger
|
|
22
|
-
--danger-
|
|
23
|
-
--
|
|
24
|
-
--info-
|
|
25
|
-
--
|
|
26
|
-
--
|
|
27
|
-
--
|
|
28
|
-
--
|
|
5
|
+
--surface-2: #f0f0f0;
|
|
6
|
+
--border: #e3e3e3;
|
|
7
|
+
--border-strong: #c8c8c8;
|
|
8
|
+
--text: #171717;
|
|
9
|
+
--text-2: #4a4a4a;
|
|
10
|
+
--text-3: #737373;
|
|
11
|
+
--accent: #171717;
|
|
12
|
+
--accent-contrast: #ffffff;
|
|
13
|
+
--accent-soft: #ebebeb;
|
|
14
|
+
--accent-text: #171717;
|
|
15
|
+
--success: #3f9a62;
|
|
16
|
+
--success-soft: #f0f0f0;
|
|
17
|
+
--success-text: #4a4a4a;
|
|
18
|
+
--warning: #b7791f;
|
|
19
|
+
--warning-soft: #f0f0f0;
|
|
20
|
+
--warning-text: #8a5a14;
|
|
21
|
+
--danger: #c2413a;
|
|
22
|
+
--danger-soft: #f0f0f0;
|
|
23
|
+
--danger-text: #a3342e;
|
|
24
|
+
--info-soft: #f0f0f0;
|
|
25
|
+
--info-text: #4a4a4a;
|
|
26
|
+
--match: #f0f0f0;
|
|
27
|
+
--shadow: none;
|
|
28
|
+
--ring: 0 0 0 2px #a3a3a3;
|
|
29
|
+
--radius: 0;
|
|
29
30
|
--mono: ui-monospace, "JetBrains Mono", SFMono-Regular, Menlo, Consolas, monospace;
|
|
30
31
|
|
|
31
32
|
font-family: Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
|
|
@@ -41,31 +42,32 @@
|
|
|
41
42
|
@media (prefers-color-scheme: dark) {
|
|
42
43
|
:root {
|
|
43
44
|
color-scheme: dark;
|
|
44
|
-
--bg: #
|
|
45
|
-
--surface: #
|
|
46
|
-
--surface-2: #
|
|
47
|
-
--border: #
|
|
48
|
-
--border-strong: #
|
|
49
|
-
--text: #
|
|
50
|
-
--text-2: #
|
|
51
|
-
--text-3: #
|
|
52
|
-
--accent: #
|
|
53
|
-
--accent-
|
|
54
|
-
--accent-
|
|
55
|
-
--
|
|
56
|
-
--success
|
|
57
|
-
--success-
|
|
58
|
-
--
|
|
59
|
-
--warning
|
|
60
|
-
--warning-
|
|
61
|
-
--
|
|
62
|
-
--danger
|
|
63
|
-
--danger-
|
|
64
|
-
--
|
|
65
|
-
--info-
|
|
66
|
-
--
|
|
45
|
+
--bg: #111111;
|
|
46
|
+
--surface: #171717;
|
|
47
|
+
--surface-2: #212121;
|
|
48
|
+
--border: #2a2a2a;
|
|
49
|
+
--border-strong: #3d3d3d;
|
|
50
|
+
--text: #ededed;
|
|
51
|
+
--text-2: #b5b5b5;
|
|
52
|
+
--text-3: #8a8a8a;
|
|
53
|
+
--accent: #ededed;
|
|
54
|
+
--accent-contrast: #111111;
|
|
55
|
+
--accent-soft: #2a2a2a;
|
|
56
|
+
--accent-text: #ededed;
|
|
57
|
+
--success: #5cb87e;
|
|
58
|
+
--success-soft: #212121;
|
|
59
|
+
--success-text: #b5b5b5;
|
|
60
|
+
--warning: #d9a441;
|
|
61
|
+
--warning-soft: #212121;
|
|
62
|
+
--warning-text: #d9a441;
|
|
63
|
+
--danger: #e0716a;
|
|
64
|
+
--danger-soft: #212121;
|
|
65
|
+
--danger-text: #e0857f;
|
|
66
|
+
--info-soft: #212121;
|
|
67
|
+
--info-text: #b5b5b5;
|
|
68
|
+
--match: #212121;
|
|
67
69
|
--shadow: none;
|
|
68
|
-
--ring: 0 0 0
|
|
70
|
+
--ring: 0 0 0 2px #6b6b6b;
|
|
69
71
|
}
|
|
70
72
|
}
|
|
71
73
|
|
|
@@ -132,9 +134,9 @@ input {
|
|
|
132
134
|
place-items: center;
|
|
133
135
|
width: 30px;
|
|
134
136
|
height: 30px;
|
|
135
|
-
border-radius:
|
|
136
|
-
background:
|
|
137
|
-
color:
|
|
137
|
+
border-radius: 0;
|
|
138
|
+
background: var(--accent);
|
|
139
|
+
color: var(--accent-contrast);
|
|
138
140
|
}
|
|
139
141
|
|
|
140
142
|
h1 {
|
|
@@ -162,7 +164,7 @@ h1 {
|
|
|
162
164
|
gap: 5px;
|
|
163
165
|
padding: 4px 9px;
|
|
164
166
|
border: 1px solid var(--border);
|
|
165
|
-
border-radius:
|
|
167
|
+
border-radius: 0;
|
|
166
168
|
background: var(--surface);
|
|
167
169
|
}
|
|
168
170
|
|
|
@@ -190,7 +192,7 @@ h1 {
|
|
|
190
192
|
align-items: center;
|
|
191
193
|
gap: 7px;
|
|
192
194
|
padding: 4px 10px;
|
|
193
|
-
border-radius:
|
|
195
|
+
border-radius: 0;
|
|
194
196
|
background: var(--surface-2);
|
|
195
197
|
color: var(--text-2);
|
|
196
198
|
font-size: 12px;
|
|
@@ -260,7 +262,7 @@ h1 {
|
|
|
260
262
|
gap: 6px;
|
|
261
263
|
height: 32px;
|
|
262
264
|
border: 1px solid var(--border);
|
|
263
|
-
border-radius:
|
|
265
|
+
border-radius: 0;
|
|
264
266
|
background: var(--surface);
|
|
265
267
|
color: var(--text-2);
|
|
266
268
|
cursor: pointer;
|
|
@@ -292,7 +294,7 @@ h1 {
|
|
|
292
294
|
padding: 0 14px;
|
|
293
295
|
border-color: transparent;
|
|
294
296
|
background: var(--accent);
|
|
295
|
-
color:
|
|
297
|
+
color: var(--accent-contrast);
|
|
296
298
|
font-weight: 600;
|
|
297
299
|
}
|
|
298
300
|
|
|
@@ -313,7 +315,7 @@ h1 {
|
|
|
313
315
|
height: 32px;
|
|
314
316
|
padding: 0 10px;
|
|
315
317
|
border: 1px solid var(--border);
|
|
316
|
-
border-radius:
|
|
318
|
+
border-radius: 0;
|
|
317
319
|
background: var(--surface);
|
|
318
320
|
transition: border-color 120ms, box-shadow 120ms;
|
|
319
321
|
}
|
|
@@ -323,7 +325,7 @@ h1 {
|
|
|
323
325
|
}
|
|
324
326
|
|
|
325
327
|
.field input:focus {
|
|
326
|
-
border-color: var(--
|
|
328
|
+
border-color: var(--border-strong);
|
|
327
329
|
outline: none;
|
|
328
330
|
box-shadow: var(--ring);
|
|
329
331
|
}
|
|
@@ -350,9 +352,14 @@ h1 {
|
|
|
350
352
|
.conflicts {
|
|
351
353
|
margin: 16px 20px 0;
|
|
352
354
|
padding: 12px 14px;
|
|
353
|
-
border: 1px solid
|
|
354
|
-
border-radius:
|
|
355
|
-
background: var(--
|
|
355
|
+
border: 1px solid var(--border);
|
|
356
|
+
border-radius: 0;
|
|
357
|
+
background: var(--surface);
|
|
358
|
+
color: var(--text);
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
.alert,
|
|
362
|
+
.conflicts h2 {
|
|
356
363
|
color: var(--danger-text);
|
|
357
364
|
}
|
|
358
365
|
|
|
@@ -411,7 +418,7 @@ h1 {
|
|
|
411
418
|
.panel {
|
|
412
419
|
min-width: 0;
|
|
413
420
|
border: 1px solid var(--border);
|
|
414
|
-
border-radius:
|
|
421
|
+
border-radius: 0;
|
|
415
422
|
background: var(--surface);
|
|
416
423
|
box-shadow: var(--shadow);
|
|
417
424
|
}
|
|
@@ -471,7 +478,7 @@ h1 {
|
|
|
471
478
|
gap: 6px;
|
|
472
479
|
min-height: 30px;
|
|
473
480
|
padding: 3px 8px 3px 4px;
|
|
474
|
-
border-radius:
|
|
481
|
+
border-radius: 0;
|
|
475
482
|
cursor: pointer;
|
|
476
483
|
user-select: none;
|
|
477
484
|
}
|
|
@@ -485,7 +492,6 @@ h1 {
|
|
|
485
492
|
}
|
|
486
493
|
|
|
487
494
|
.row.matched {
|
|
488
|
-
box-shadow: inset 2px 0 0 var(--accent);
|
|
489
495
|
background: var(--match);
|
|
490
496
|
}
|
|
491
497
|
|
|
@@ -500,7 +506,7 @@ h1 {
|
|
|
500
506
|
height: 18px;
|
|
501
507
|
padding: 0;
|
|
502
508
|
border: 0;
|
|
503
|
-
border-radius:
|
|
509
|
+
border-radius: 0;
|
|
504
510
|
background: none;
|
|
505
511
|
color: var(--text-3);
|
|
506
512
|
cursor: pointer;
|
|
@@ -541,11 +547,13 @@ h1 {
|
|
|
541
547
|
}
|
|
542
548
|
|
|
543
549
|
.segment .param {
|
|
544
|
-
color: var(--
|
|
550
|
+
color: var(--text);
|
|
551
|
+
font-weight: 650;
|
|
545
552
|
}
|
|
546
553
|
|
|
547
554
|
.segment .optional {
|
|
548
|
-
color: var(--
|
|
555
|
+
color: var(--text-2);
|
|
556
|
+
font-style: italic;
|
|
549
557
|
}
|
|
550
558
|
|
|
551
559
|
.segment .group {
|
|
@@ -574,7 +582,7 @@ h1 {
|
|
|
574
582
|
align-items: center;
|
|
575
583
|
height: 20px;
|
|
576
584
|
padding: 0 7px;
|
|
577
|
-
border-radius:
|
|
585
|
+
border-radius: 0;
|
|
578
586
|
background: var(--surface-2);
|
|
579
587
|
color: var(--text-2);
|
|
580
588
|
font-size: 11px;
|
|
@@ -582,10 +590,11 @@ h1 {
|
|
|
582
590
|
white-space: nowrap;
|
|
583
591
|
}
|
|
584
592
|
|
|
585
|
-
.chip-page { background: var(--
|
|
593
|
+
.chip-page { background: var(--surface-2); color: var(--text); }
|
|
586
594
|
.chip-layout { background: var(--info-soft); color: var(--info-text); }
|
|
587
595
|
.chip-loader,
|
|
588
|
-
.chip-action
|
|
596
|
+
.chip-action,
|
|
597
|
+
.chip-middleware { background: var(--success-soft); color: var(--success-text); }
|
|
589
598
|
.chip-loading { background: var(--warning-soft); color: var(--warning-text); }
|
|
590
599
|
.chip-error,
|
|
591
600
|
.chip-notFound { background: var(--danger-soft); color: var(--danger-text); }
|
|
@@ -598,8 +607,8 @@ h1 {
|
|
|
598
607
|
}
|
|
599
608
|
|
|
600
609
|
mark {
|
|
601
|
-
border-radius:
|
|
602
|
-
background:
|
|
610
|
+
border-radius: 0;
|
|
611
|
+
background: var(--accent-soft);
|
|
603
612
|
color: inherit;
|
|
604
613
|
}
|
|
605
614
|
|
|
@@ -651,13 +660,13 @@ mark {
|
|
|
651
660
|
.crumb {
|
|
652
661
|
padding: 2px 7px;
|
|
653
662
|
border: 1px solid var(--border);
|
|
654
|
-
border-radius:
|
|
663
|
+
border-radius: 0;
|
|
655
664
|
background: var(--surface-2);
|
|
656
665
|
cursor: pointer;
|
|
657
666
|
}
|
|
658
667
|
|
|
659
668
|
.crumb:hover {
|
|
660
|
-
border-color: var(--
|
|
669
|
+
border-color: var(--border-strong);
|
|
661
670
|
}
|
|
662
671
|
|
|
663
672
|
.crumb-sep {
|
|
@@ -702,7 +711,7 @@ mark {
|
|
|
702
711
|
display: inline-flex;
|
|
703
712
|
overflow: hidden;
|
|
704
713
|
border: 1px solid var(--border);
|
|
705
|
-
border-radius:
|
|
714
|
+
border-radius: 0;
|
|
706
715
|
font-family: var(--mono);
|
|
707
716
|
font-size: 12px;
|
|
708
717
|
}
|
|
@@ -713,7 +722,7 @@ mark {
|
|
|
713
722
|
|
|
714
723
|
.param-pill span:first-child {
|
|
715
724
|
background: var(--surface-2);
|
|
716
|
-
color: var(--
|
|
725
|
+
color: var(--text-2);
|
|
717
726
|
}
|
|
718
727
|
|
|
719
728
|
.param-pill .missing {
|
|
@@ -729,7 +738,7 @@ mark {
|
|
|
729
738
|
min-width: 0;
|
|
730
739
|
padding: 6px 8px;
|
|
731
740
|
border: 1px solid var(--border);
|
|
732
|
-
border-radius:
|
|
741
|
+
border-radius: 0;
|
|
733
742
|
background: var(--surface);
|
|
734
743
|
color: var(--text);
|
|
735
744
|
font-family: var(--mono);
|
|
@@ -757,8 +766,8 @@ mark {
|
|
|
757
766
|
}
|
|
758
767
|
|
|
759
768
|
.file-link:hover {
|
|
760
|
-
border-color: var(--
|
|
761
|
-
background: var(--
|
|
769
|
+
border-color: var(--border-strong);
|
|
770
|
+
background: var(--surface-2);
|
|
762
771
|
}
|
|
763
772
|
|
|
764
773
|
.file-link:hover svg,
|
|
@@ -767,7 +776,7 @@ mark {
|
|
|
767
776
|
}
|
|
768
777
|
|
|
769
778
|
.file-link.opened {
|
|
770
|
-
|
|
779
|
+
background: var(--surface-2);
|
|
771
780
|
}
|
|
772
781
|
|
|
773
782
|
.muted {
|
|
@@ -806,11 +815,10 @@ mark {
|
|
|
806
815
|
left: 50%;
|
|
807
816
|
z-index: 3;
|
|
808
817
|
padding: 8px 14px;
|
|
809
|
-
border-radius:
|
|
818
|
+
border-radius: 0;
|
|
810
819
|
background: var(--text);
|
|
811
820
|
color: var(--bg);
|
|
812
821
|
font-size: 12px;
|
|
813
|
-
box-shadow: 0 8px 24px rgba(0, 0, 0, 0.2);
|
|
814
822
|
transform: translateX(-50%);
|
|
815
823
|
animation: toast-in 160ms ease;
|
|
816
824
|
}
|
|
@@ -867,7 +875,6 @@ mark {
|
|
|
867
875
|
flex: none;
|
|
868
876
|
border-radius: 50%;
|
|
869
877
|
background: var(--success);
|
|
870
|
-
box-shadow: 0 0 0 3px var(--success-soft);
|
|
871
878
|
}
|
|
872
879
|
|
|
873
880
|
.current-empty {
|
|
@@ -886,7 +893,7 @@ mark {
|
|
|
886
893
|
height: 24px;
|
|
887
894
|
padding: 0 8px;
|
|
888
895
|
border: 1px solid var(--border);
|
|
889
|
-
border-radius:
|
|
896
|
+
border-radius: 0;
|
|
890
897
|
background: var(--surface);
|
|
891
898
|
color: var(--text-2);
|
|
892
899
|
font-size: 11.5px;
|
|
@@ -894,7 +901,7 @@ mark {
|
|
|
894
901
|
}
|
|
895
902
|
|
|
896
903
|
.tab-picker button[aria-pressed="true"] {
|
|
897
|
-
border-color: var(--
|
|
904
|
+
border-color: var(--border-strong);
|
|
898
905
|
background: var(--success-soft);
|
|
899
906
|
color: var(--success-text);
|
|
900
907
|
}
|
|
@@ -910,13 +917,6 @@ mark {
|
|
|
910
917
|
vertical-align: middle;
|
|
911
918
|
}
|
|
912
919
|
|
|
913
|
-
.row.current {
|
|
914
|
-
box-shadow: inset 2px 0 0 var(--success);
|
|
915
|
-
}
|
|
916
|
-
|
|
917
|
-
.row.current.matched {
|
|
918
|
-
box-shadow: inset 2px 0 0 var(--success), inset 4px 0 0 var(--accent);
|
|
919
|
-
}
|
|
920
920
|
|
|
921
921
|
/* Tabs */
|
|
922
922
|
|
|
@@ -925,7 +925,7 @@ mark {
|
|
|
925
925
|
gap: 4px;
|
|
926
926
|
padding: 4px;
|
|
927
927
|
border: 1px solid var(--border);
|
|
928
|
-
border-radius:
|
|
928
|
+
border-radius: 0;
|
|
929
929
|
background: var(--surface);
|
|
930
930
|
}
|
|
931
931
|
|
|
@@ -937,7 +937,7 @@ mark {
|
|
|
937
937
|
gap: 6px;
|
|
938
938
|
height: 30px;
|
|
939
939
|
border: 0;
|
|
940
|
-
border-radius:
|
|
940
|
+
border-radius: 0;
|
|
941
941
|
background: none;
|
|
942
942
|
color: var(--text-2);
|
|
943
943
|
font-weight: 600;
|
|
@@ -957,9 +957,9 @@ mark {
|
|
|
957
957
|
min-width: 18px;
|
|
958
958
|
height: 18px;
|
|
959
959
|
padding: 0 5px;
|
|
960
|
-
border-radius:
|
|
960
|
+
border-radius: 0;
|
|
961
961
|
background: var(--accent);
|
|
962
|
-
color:
|
|
962
|
+
color: var(--accent-contrast);
|
|
963
963
|
font-size: 10.5px;
|
|
964
964
|
line-height: 18px;
|
|
965
965
|
font-variant-numeric: tabular-nums;
|
|
@@ -993,7 +993,7 @@ mark {
|
|
|
993
993
|
display: flex;
|
|
994
994
|
gap: 2px;
|
|
995
995
|
padding: 2px;
|
|
996
|
-
border-radius:
|
|
996
|
+
border-radius: 0;
|
|
997
997
|
background: var(--surface-2);
|
|
998
998
|
}
|
|
999
999
|
|
|
@@ -1001,7 +1001,7 @@ mark {
|
|
|
1001
1001
|
flex: 1;
|
|
1002
1002
|
height: 26px;
|
|
1003
1003
|
border: 0;
|
|
1004
|
-
border-radius:
|
|
1004
|
+
border-radius: 0;
|
|
1005
1005
|
background: none;
|
|
1006
1006
|
color: var(--text-2);
|
|
1007
1007
|
font-size: 12px;
|
|
@@ -1012,7 +1012,6 @@ mark {
|
|
|
1012
1012
|
.segmented button[aria-pressed="true"] {
|
|
1013
1013
|
background: var(--surface);
|
|
1014
1014
|
color: var(--text);
|
|
1015
|
-
box-shadow: 0 1px 2px rgba(16, 24, 40, 0.1);
|
|
1016
1015
|
}
|
|
1017
1016
|
|
|
1018
1017
|
.timeline {
|
|
@@ -1032,7 +1031,7 @@ mark {
|
|
|
1032
1031
|
}
|
|
1033
1032
|
|
|
1034
1033
|
.call {
|
|
1035
|
-
border-radius:
|
|
1034
|
+
border-radius: 0;
|
|
1036
1035
|
}
|
|
1037
1036
|
|
|
1038
1037
|
.call + .call {
|
|
@@ -1047,7 +1046,7 @@ mark {
|
|
|
1047
1046
|
width: 100%;
|
|
1048
1047
|
padding: 8px 10px;
|
|
1049
1048
|
border: 0;
|
|
1050
|
-
border-radius:
|
|
1049
|
+
border-radius: 0;
|
|
1051
1050
|
background: none;
|
|
1052
1051
|
color: inherit;
|
|
1053
1052
|
text-align: left;
|
|
@@ -1113,7 +1112,7 @@ mark {
|
|
|
1113
1112
|
padding: 8px 10px;
|
|
1114
1113
|
overflow: auto;
|
|
1115
1114
|
border: 1px solid var(--border);
|
|
1116
|
-
border-radius:
|
|
1115
|
+
border-radius: 0;
|
|
1117
1116
|
background: var(--surface-2);
|
|
1118
1117
|
font-family: var(--mono);
|
|
1119
1118
|
font-size: 11.5px;
|
|
@@ -1134,3 +1133,358 @@ mark {
|
|
|
1134
1133
|
.call-summary::-webkit-details-marker {
|
|
1135
1134
|
display: none;
|
|
1136
1135
|
}
|
|
1136
|
+
|
|
1137
|
+
/* Missing-file warnings */
|
|
1138
|
+
|
|
1139
|
+
.warnings {
|
|
1140
|
+
margin: 16px 20px 0;
|
|
1141
|
+
border: 1px solid var(--border);
|
|
1142
|
+
background: var(--surface);
|
|
1143
|
+
}
|
|
1144
|
+
|
|
1145
|
+
.warnings > details > summary {
|
|
1146
|
+
display: flex;
|
|
1147
|
+
align-items: baseline;
|
|
1148
|
+
gap: 10px;
|
|
1149
|
+
padding: 10px 14px;
|
|
1150
|
+
cursor: pointer;
|
|
1151
|
+
list-style: none;
|
|
1152
|
+
}
|
|
1153
|
+
|
|
1154
|
+
.warnings > details > summary::-webkit-details-marker {
|
|
1155
|
+
display: none;
|
|
1156
|
+
}
|
|
1157
|
+
|
|
1158
|
+
.warnings > details > summary::before {
|
|
1159
|
+
content: "▸";
|
|
1160
|
+
color: var(--text-3);
|
|
1161
|
+
}
|
|
1162
|
+
|
|
1163
|
+
.warnings > details[open] > summary::before {
|
|
1164
|
+
content: "▾";
|
|
1165
|
+
}
|
|
1166
|
+
|
|
1167
|
+
.warnings h2 {
|
|
1168
|
+
font-size: 13px;
|
|
1169
|
+
}
|
|
1170
|
+
|
|
1171
|
+
.warnings .warning-list {
|
|
1172
|
+
padding: 0 14px 12px;
|
|
1173
|
+
}
|
|
1174
|
+
|
|
1175
|
+
.warning-list {
|
|
1176
|
+
display: grid;
|
|
1177
|
+
gap: 8px;
|
|
1178
|
+
margin: 0 0 12px;
|
|
1179
|
+
padding: 0;
|
|
1180
|
+
list-style: none;
|
|
1181
|
+
}
|
|
1182
|
+
|
|
1183
|
+
.warning {
|
|
1184
|
+
display: grid;
|
|
1185
|
+
gap: 6px;
|
|
1186
|
+
padding: 10px 12px;
|
|
1187
|
+
background: var(--surface-2);
|
|
1188
|
+
}
|
|
1189
|
+
|
|
1190
|
+
.warning p {
|
|
1191
|
+
color: var(--text-2);
|
|
1192
|
+
}
|
|
1193
|
+
|
|
1194
|
+
.warning-head {
|
|
1195
|
+
display: flex;
|
|
1196
|
+
align-items: center;
|
|
1197
|
+
gap: 8px;
|
|
1198
|
+
}
|
|
1199
|
+
|
|
1200
|
+
.warning-route {
|
|
1201
|
+
font-family: var(--mono);
|
|
1202
|
+
font-size: 12px;
|
|
1203
|
+
}
|
|
1204
|
+
|
|
1205
|
+
.chip-warn {
|
|
1206
|
+
background: var(--surface-2);
|
|
1207
|
+
color: var(--warning-text);
|
|
1208
|
+
font-weight: 650;
|
|
1209
|
+
}
|
|
1210
|
+
|
|
1211
|
+
.chip-hint {
|
|
1212
|
+
color: var(--text-3);
|
|
1213
|
+
}
|
|
1214
|
+
|
|
1215
|
+
.warning .chip-warn {
|
|
1216
|
+
background: var(--surface);
|
|
1217
|
+
}
|
|
1218
|
+
|
|
1219
|
+
/* Per-route call stats */
|
|
1220
|
+
|
|
1221
|
+
.data-stats {
|
|
1222
|
+
display: grid;
|
|
1223
|
+
gap: 6px;
|
|
1224
|
+
margin-top: 14px;
|
|
1225
|
+
padding-top: 12px;
|
|
1226
|
+
border-top: 1px solid var(--border);
|
|
1227
|
+
}
|
|
1228
|
+
|
|
1229
|
+
.data-stats h3 {
|
|
1230
|
+
margin: 0;
|
|
1231
|
+
color: var(--text-3);
|
|
1232
|
+
font-size: 11px;
|
|
1233
|
+
font-weight: 600;
|
|
1234
|
+
letter-spacing: 0.04em;
|
|
1235
|
+
text-transform: uppercase;
|
|
1236
|
+
}
|
|
1237
|
+
|
|
1238
|
+
.stat-row {
|
|
1239
|
+
display: flex;
|
|
1240
|
+
flex-wrap: wrap;
|
|
1241
|
+
align-items: center;
|
|
1242
|
+
gap: 4px 10px;
|
|
1243
|
+
font-size: 12px;
|
|
1244
|
+
font-variant-numeric: tabular-nums;
|
|
1245
|
+
}
|
|
1246
|
+
|
|
1247
|
+
.stat-type {
|
|
1248
|
+
min-width: 76px;
|
|
1249
|
+
font-weight: 600;
|
|
1250
|
+
}
|
|
1251
|
+
|
|
1252
|
+
.stat-row .slow {
|
|
1253
|
+
color: var(--warning-text);
|
|
1254
|
+
font-weight: 600;
|
|
1255
|
+
}
|
|
1256
|
+
|
|
1257
|
+
.error-text {
|
|
1258
|
+
color: var(--danger-text);
|
|
1259
|
+
}
|
|
1260
|
+
|
|
1261
|
+
/* Timeline route filter */
|
|
1262
|
+
|
|
1263
|
+
.route-pill {
|
|
1264
|
+
display: flex;
|
|
1265
|
+
align-items: center;
|
|
1266
|
+
justify-content: space-between;
|
|
1267
|
+
gap: 8px;
|
|
1268
|
+
padding: 4px 4px 4px 10px;
|
|
1269
|
+
background: var(--surface-2);
|
|
1270
|
+
font-size: 12px;
|
|
1271
|
+
}
|
|
1272
|
+
|
|
1273
|
+
.route-pill strong {
|
|
1274
|
+
font-family: var(--mono);
|
|
1275
|
+
font-weight: 600;
|
|
1276
|
+
}
|
|
1277
|
+
|
|
1278
|
+
.route-pill button {
|
|
1279
|
+
width: 24px;
|
|
1280
|
+
height: 24px;
|
|
1281
|
+
border: 0;
|
|
1282
|
+
background: none;
|
|
1283
|
+
color: var(--text-3);
|
|
1284
|
+
cursor: pointer;
|
|
1285
|
+
}
|
|
1286
|
+
|
|
1287
|
+
.route-pill button:hover {
|
|
1288
|
+
color: var(--text);
|
|
1289
|
+
}
|
|
1290
|
+
|
|
1291
|
+
/* Call inspector */
|
|
1292
|
+
|
|
1293
|
+
.call-data {
|
|
1294
|
+
display: grid;
|
|
1295
|
+
gap: 6px;
|
|
1296
|
+
}
|
|
1297
|
+
|
|
1298
|
+
.call-data-actions {
|
|
1299
|
+
display: flex;
|
|
1300
|
+
align-items: center;
|
|
1301
|
+
justify-content: flex-end;
|
|
1302
|
+
gap: 10px;
|
|
1303
|
+
font-size: 11.5px;
|
|
1304
|
+
}
|
|
1305
|
+
|
|
1306
|
+
.json {
|
|
1307
|
+
max-height: 320px;
|
|
1308
|
+
padding: 8px 10px;
|
|
1309
|
+
overflow: auto;
|
|
1310
|
+
border: 1px solid var(--border);
|
|
1311
|
+
background: var(--surface-2);
|
|
1312
|
+
font-family: var(--mono);
|
|
1313
|
+
font-size: 11.5px;
|
|
1314
|
+
line-height: 1.6;
|
|
1315
|
+
}
|
|
1316
|
+
|
|
1317
|
+
.json-node > summary {
|
|
1318
|
+
cursor: pointer;
|
|
1319
|
+
list-style: none;
|
|
1320
|
+
}
|
|
1321
|
+
|
|
1322
|
+
.json-node > summary::-webkit-details-marker {
|
|
1323
|
+
display: none;
|
|
1324
|
+
}
|
|
1325
|
+
|
|
1326
|
+
.json-node > summary::before {
|
|
1327
|
+
content: "▸ ";
|
|
1328
|
+
color: var(--text-3);
|
|
1329
|
+
}
|
|
1330
|
+
|
|
1331
|
+
.json-node[open] > summary::before {
|
|
1332
|
+
content: "▾ ";
|
|
1333
|
+
}
|
|
1334
|
+
|
|
1335
|
+
.json-children {
|
|
1336
|
+
padding-left: 14px;
|
|
1337
|
+
}
|
|
1338
|
+
|
|
1339
|
+
.json-row {
|
|
1340
|
+
padding-left: 12px;
|
|
1341
|
+
overflow-wrap: anywhere;
|
|
1342
|
+
}
|
|
1343
|
+
|
|
1344
|
+
.json-key {
|
|
1345
|
+
color: var(--text-2);
|
|
1346
|
+
}
|
|
1347
|
+
|
|
1348
|
+
.json-string {
|
|
1349
|
+
color: var(--text);
|
|
1350
|
+
}
|
|
1351
|
+
|
|
1352
|
+
.json-number,
|
|
1353
|
+
.json-boolean,
|
|
1354
|
+
.json-null {
|
|
1355
|
+
color: var(--text-2);
|
|
1356
|
+
font-weight: 600;
|
|
1357
|
+
}
|
|
1358
|
+
|
|
1359
|
+
.json-preview {
|
|
1360
|
+
color: var(--text-3);
|
|
1361
|
+
}
|
|
1362
|
+
|
|
1363
|
+
.pairs {
|
|
1364
|
+
width: 100%;
|
|
1365
|
+
border-collapse: collapse;
|
|
1366
|
+
font-family: var(--mono);
|
|
1367
|
+
font-size: 11.5px;
|
|
1368
|
+
}
|
|
1369
|
+
|
|
1370
|
+
.pairs th,
|
|
1371
|
+
.pairs td {
|
|
1372
|
+
padding: 4px 8px;
|
|
1373
|
+
border: 1px solid var(--border);
|
|
1374
|
+
text-align: left;
|
|
1375
|
+
vertical-align: top;
|
|
1376
|
+
overflow-wrap: anywhere;
|
|
1377
|
+
}
|
|
1378
|
+
|
|
1379
|
+
.pairs th {
|
|
1380
|
+
width: 35%;
|
|
1381
|
+
background: var(--surface-2);
|
|
1382
|
+
color: var(--text-2);
|
|
1383
|
+
font-weight: 500;
|
|
1384
|
+
}
|
|
1385
|
+
|
|
1386
|
+
.call-headers > summary {
|
|
1387
|
+
color: var(--text-2);
|
|
1388
|
+
cursor: pointer;
|
|
1389
|
+
font-size: 12px;
|
|
1390
|
+
}
|
|
1391
|
+
|
|
1392
|
+
.call-headers[open] > summary {
|
|
1393
|
+
margin-bottom: 6px;
|
|
1394
|
+
}
|
|
1395
|
+
|
|
1396
|
+
.call-error {
|
|
1397
|
+
display: grid;
|
|
1398
|
+
gap: 6px;
|
|
1399
|
+
color: var(--danger-text);
|
|
1400
|
+
}
|
|
1401
|
+
|
|
1402
|
+
.call-stack {
|
|
1403
|
+
color: var(--text-2);
|
|
1404
|
+
}
|
|
1405
|
+
|
|
1406
|
+
/* Open in app */
|
|
1407
|
+
|
|
1408
|
+
.button-quiet {
|
|
1409
|
+
justify-self: start;
|
|
1410
|
+
height: 30px;
|
|
1411
|
+
padding: 0 12px;
|
|
1412
|
+
border: 1px solid var(--border-strong);
|
|
1413
|
+
background: var(--surface);
|
|
1414
|
+
color: var(--text);
|
|
1415
|
+
font-size: 12px;
|
|
1416
|
+
}
|
|
1417
|
+
|
|
1418
|
+
.button-quiet:hover {
|
|
1419
|
+
filter: none;
|
|
1420
|
+
background: var(--surface-2);
|
|
1421
|
+
}
|
|
1422
|
+
|
|
1423
|
+
.button-quiet svg {
|
|
1424
|
+
width: 14px;
|
|
1425
|
+
height: 14px;
|
|
1426
|
+
}
|
|
1427
|
+
|
|
1428
|
+
.open-form {
|
|
1429
|
+
display: grid;
|
|
1430
|
+
gap: 8px;
|
|
1431
|
+
}
|
|
1432
|
+
|
|
1433
|
+
.param-field {
|
|
1434
|
+
display: grid;
|
|
1435
|
+
gap: 3px;
|
|
1436
|
+
font-family: var(--mono);
|
|
1437
|
+
font-size: 12px;
|
|
1438
|
+
}
|
|
1439
|
+
|
|
1440
|
+
.param-field input {
|
|
1441
|
+
height: 30px;
|
|
1442
|
+
padding: 0 8px;
|
|
1443
|
+
border: 1px solid var(--border);
|
|
1444
|
+
background: var(--surface);
|
|
1445
|
+
font-family: var(--mono);
|
|
1446
|
+
font-size: 12px;
|
|
1447
|
+
}
|
|
1448
|
+
|
|
1449
|
+
.param-field input:focus {
|
|
1450
|
+
border-color: var(--border-strong);
|
|
1451
|
+
outline: none;
|
|
1452
|
+
}
|
|
1453
|
+
|
|
1454
|
+
.form-error {
|
|
1455
|
+
color: var(--danger-text);
|
|
1456
|
+
font-size: 12px;
|
|
1457
|
+
}
|
|
1458
|
+
|
|
1459
|
+
.row-open {
|
|
1460
|
+
display: grid;
|
|
1461
|
+
place-items: center;
|
|
1462
|
+
width: 22px;
|
|
1463
|
+
height: 20px;
|
|
1464
|
+
padding: 0;
|
|
1465
|
+
border: 1px solid var(--border);
|
|
1466
|
+
background: var(--surface);
|
|
1467
|
+
color: var(--text-2);
|
|
1468
|
+
cursor: pointer;
|
|
1469
|
+
visibility: hidden;
|
|
1470
|
+
}
|
|
1471
|
+
|
|
1472
|
+
.row:hover .row-open,
|
|
1473
|
+
.row[aria-selected="true"] .row-open,
|
|
1474
|
+
.row-open:focus-visible {
|
|
1475
|
+
visibility: visible;
|
|
1476
|
+
}
|
|
1477
|
+
|
|
1478
|
+
.row-open:hover {
|
|
1479
|
+
color: var(--text);
|
|
1480
|
+
border-color: var(--border-strong);
|
|
1481
|
+
}
|
|
1482
|
+
|
|
1483
|
+
.row-open svg {
|
|
1484
|
+
width: 13px;
|
|
1485
|
+
height: 13px;
|
|
1486
|
+
}
|
|
1487
|
+
|
|
1488
|
+
.result-open {
|
|
1489
|
+
margin-left: auto;
|
|
1490
|
+
}
|