@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.
@@ -1,31 +1,32 @@
1
1
  :root {
2
2
  color-scheme: light;
3
- --bg: #f7f8fa;
3
+ --bg: #f5f5f5;
4
4
  --surface: #ffffff;
5
- --surface-2: #f2f4f7;
6
- --border: #e4e7ec;
7
- --border-strong: #d0d5dd;
8
- --text: #101828;
9
- --text-2: #475467;
10
- --text-3: #667085;
11
- --accent: #6d4aff;
12
- --accent-soft: #f0ecff;
13
- --accent-text: #5b36f2;
14
- --success: #12b76a;
15
- --success-soft: #e7f8ef;
16
- --success-text: #067647;
17
- --warning: #f79009;
18
- --warning-soft: #fef4e6;
19
- --warning-text: #b54708;
20
- --danger: #f04438;
21
- --danger-soft: #fef0ef;
22
- --danger-text: #b42318;
23
- --info-soft: #eaf2ff;
24
- --info-text: #1858c7;
25
- --match: rgba(109, 74, 255, 0.08);
26
- --shadow: 0 1px 2px rgba(16, 24, 40, 0.05);
27
- --ring: 0 0 0 3px rgba(109, 74, 255, 0.22);
28
- --radius: 10px;
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: #0b0c10;
45
- --surface: #121318;
46
- --surface-2: #1a1b22;
47
- --border: #23252e;
48
- --border-strong: #30333f;
49
- --text: #ecedf2;
50
- --text-2: #b4b7c3;
51
- --text-3: #868a99;
52
- --accent: #8b6dff;
53
- --accent-soft: rgba(139, 109, 255, 0.14);
54
- --accent-text: #b9a6ff;
55
- --success: #32d583;
56
- --success-soft: rgba(50, 213, 131, 0.12);
57
- --success-text: #6ce9a6;
58
- --warning: #fdb022;
59
- --warning-soft: rgba(253, 176, 34, 0.12);
60
- --warning-text: #fec84b;
61
- --danger: #f97066;
62
- --danger-soft: rgba(249, 112, 102, 0.12);
63
- --danger-text: #fda29b;
64
- --info-soft: rgba(83, 151, 255, 0.14);
65
- --info-text: #84adff;
66
- --match: rgba(139, 109, 255, 0.12);
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 3px rgba(139, 109, 255, 0.3);
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: 8px;
136
- background: linear-gradient(135deg, var(--accent), #b06dff);
137
- color: #fff;
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: 999px;
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: 999px;
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: 8px;
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: #fff;
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: 8px;
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(--accent);
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 color-mix(in srgb, var(--danger) 35%, transparent);
354
- border-radius: var(--radius);
355
- background: var(--danger-soft);
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: var(--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: 7px;
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: 4px;
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(--info-text);
550
+ color: var(--text);
551
+ font-weight: 650;
545
552
  }
546
553
 
547
554
  .segment .optional {
548
- color: var(--warning-text);
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: 999px;
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(--accent-soft); color: var(--accent-text); }
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 { background: var(--success-soft); color: var(--success-text); }
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: 3px;
602
- background: color-mix(in srgb, var(--warning) 30%, transparent);
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: 6px;
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(--accent);
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: 6px;
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(--info-text);
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: 7px;
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(--accent);
761
- background: var(--accent-soft);
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
- border-color: var(--success);
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: 8px;
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: 999px;
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(--success);
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: var(--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: 7px;
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: 999px;
960
+ border-radius: 0;
961
961
  background: var(--accent);
962
- color: #fff;
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: 8px;
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: 6px;
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: 8px;
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: 8px;
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: 7px;
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
+ }