@stainlessdev/docs-xray 0.1.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,1032 @@
1
+ /* X-ray Page Styles */
2
+
3
+ /* Reduce spacing on X-ray page */
4
+ body:has(.xray-page) {
5
+ overflow: hidden;
6
+ }
7
+
8
+ body:has(.xray-page) .stl-page-nav-container {
9
+ display: none;
10
+ }
11
+
12
+ body:has(.xray-page) h1#_top {
13
+ display: none;
14
+ }
15
+
16
+ body:has(.xray-page) .content-panel {
17
+ max-width: 100%;
18
+ width: 100%;
19
+ }
20
+
21
+ .xray-page {
22
+ max-width: 100%;
23
+ height: calc(100vh - 140px);
24
+ display: flex;
25
+ flex-direction: column;
26
+ gap: 1rem;
27
+ overflow: hidden;
28
+ --xray-list-size: clamp(320px, 30%, 440px);
29
+ --xray-payload-bg: rgb(245, 247, 250);
30
+ --xray-payload-header-bg: rgb(235, 238, 243);
31
+ }
32
+
33
+ :root[data-theme='dark'] .xray-page {
34
+ --xray-payload-bg: rgb(27, 30, 37);
35
+ --xray-payload-header-bg: rgb(33, 37, 44);
36
+ }
37
+
38
+ .xray-page * {
39
+ margin-top: 0;
40
+ }
41
+
42
+ .xray-page__header {
43
+ display: grid;
44
+ grid-template-columns: var(--xray-list-size) minmax(0, 1fr);
45
+ align-items: center;
46
+ column-gap: 1rem;
47
+ gap: 1rem;
48
+ }
49
+
50
+ .xray-page__title {
51
+ margin: 0;
52
+ font-size: var(--stl-typography-text-h1);
53
+ font-weight: 600;
54
+ color: var(--stl-color-foreground);
55
+ }
56
+
57
+ .xray-page__search {
58
+ grid-column: 2;
59
+ display: flex;
60
+ justify-content: flex-end;
61
+ }
62
+
63
+ .xray-page__content {
64
+ display: grid;
65
+ grid-template-columns: var(--xray-list-size) minmax(0, 1fr);
66
+ grid-template-rows: minmax(0, 1fr);
67
+ column-gap: 1rem;
68
+ flex: 1;
69
+ min-height: 0;
70
+ }
71
+
72
+ .xray-page__list-panel {
73
+ grid-column: 1;
74
+ min-width: 0;
75
+ min-height: 0;
76
+ transition: none;
77
+ }
78
+
79
+ .xray-page__list-header {
80
+ display: flex;
81
+ align-items: center;
82
+ justify-content: space-between;
83
+ padding: 0 0.75rem;
84
+ min-height: 48px;
85
+ border-bottom: 1px solid var(--stl-color-border);
86
+ }
87
+
88
+ .xray-page__list-title {
89
+ font-size: 0.75rem;
90
+ font-weight: 600;
91
+ letter-spacing: 0.04em;
92
+ text-transform: uppercase;
93
+ color: var(--stl-color-foreground-muted);
94
+ line-height: 1;
95
+ }
96
+
97
+ .xray-page__list-header-actions {
98
+ display: flex;
99
+ align-items: center;
100
+ gap: 0.5rem;
101
+ margin-left: auto;
102
+ }
103
+
104
+ .xray-page__new-requests-btn {
105
+ display: inline-flex;
106
+ align-items: center;
107
+ gap: 0.35rem;
108
+ padding: 0.25rem 0.5rem;
109
+ font-size: 0.75rem;
110
+ font-weight: 600;
111
+ color: white;
112
+ background-color: var(--stl-color-green, #22c55e);
113
+ border: none;
114
+ border-radius: var(--stl-ui-layout-border-radius-xs);
115
+ cursor: pointer;
116
+ transition: background-color 0.15s;
117
+ }
118
+
119
+ .xray-page__new-requests-btn:hover {
120
+ background-color: var(--stl-color-green-hover, #16a34a);
121
+ }
122
+
123
+ .xray-page__new-requests-btn svg {
124
+ flex-shrink: 0;
125
+ }
126
+
127
+ .xray-page__list-toggle {
128
+ display: inline-flex;
129
+ align-items: center;
130
+ justify-content: center;
131
+ width: 24px;
132
+ height: 24px;
133
+ padding: 0;
134
+ border-radius: var(--stl-ui-layout-border-radius-xs);
135
+ border: 1px solid var(--stl-color-border);
136
+ background-color: transparent;
137
+ color: var(--stl-color-foreground);
138
+ cursor: pointer;
139
+ flex-shrink: 0;
140
+ }
141
+
142
+ .xray-page__list-toggle:hover {
143
+ background-color: var(--stl-color-muted-background);
144
+ }
145
+
146
+ .xray-page__list-toggle.is-hidden {
147
+ display: none;
148
+ }
149
+
150
+ .xray-page--with-detail .xray-page__content {
151
+ grid-template-columns: var(--xray-list-size) minmax(0, 1fr);
152
+ }
153
+
154
+ .xray-page--list-collapsed .xray-page__content {
155
+ grid-template-columns: 0 minmax(0, 1fr);
156
+ column-gap: 0;
157
+ }
158
+
159
+ .xray-page--list-collapsed .xray-page__list-panel {
160
+ opacity: 0;
161
+ pointer-events: none;
162
+ }
163
+
164
+ .xray-page--list-collapsed .xray-page__header {
165
+ grid-template-columns: minmax(0, 1fr) auto;
166
+ }
167
+
168
+ .xray-page--list-collapsed .xray-page__search {
169
+ grid-column: 2;
170
+ justify-content: flex-end;
171
+ }
172
+
173
+ .xray-page__detail-panel {
174
+ grid-column: 2;
175
+ width: auto;
176
+ min-width: 0;
177
+ border: 1px solid transparent;
178
+ border-radius: var(--stl-ui-layout-border-radius-sml);
179
+ display: flex;
180
+ flex-direction: column;
181
+ min-height: 0;
182
+ overflow: auto;
183
+ opacity: 1;
184
+ pointer-events: auto;
185
+ transition: none;
186
+ }
187
+
188
+ .xray-page__detail-panel {
189
+ border-color: var(--stl-color-border);
190
+ }
191
+
192
+
193
+ .xray-page--list-collapsed {
194
+ --xray-list-size: 0px;
195
+ }
196
+
197
+ .xray-page__search {
198
+ position: relative;
199
+ }
200
+
201
+ .xray-page__search-container {
202
+ display: flex;
203
+ align-items: center;
204
+ position: relative;
205
+ background-color: var(--stl-color-background);
206
+ border: 1px solid var(--stl-color-border);
207
+ border-radius: var(--stl-ui-layout-border-radius-sml);
208
+ padding: 0.125rem;
209
+ padding-left: 0.75rem;
210
+ max-width: 280px;
211
+ }
212
+
213
+ .xray-page__search-container:focus-within {
214
+ border-color: var(--stl-color-accent);
215
+ }
216
+
217
+ .xray-page__search-container:has(.xray-page__search-input--error) {
218
+ border-color: var(--stl-color-red-foreground);
219
+ }
220
+
221
+ .xray-page__search-input {
222
+ flex: 1;
223
+ padding: 0.25rem 0;
224
+ font-size: 0.8125rem;
225
+ font-family: var(--stl-typography-font);
226
+ background: transparent;
227
+ border: none;
228
+ color: var(--stl-color-foreground);
229
+ outline: none;
230
+ min-width: 0;
231
+ }
232
+
233
+ .xray-page__search-input::placeholder {
234
+ color: var(--stl-color-foreground-muted);
235
+ }
236
+
237
+ .xray-page__search-btn {
238
+ display: flex;
239
+ align-items: center;
240
+ justify-content: center;
241
+ width: 28px;
242
+ height: 28px;
243
+ padding: 0;
244
+ background-color: var(--stl-color-muted);
245
+ color: var(--stl-color-foreground-muted);
246
+ border: none;
247
+ border-radius: var(--stl-ui-layout-border-radius-xs);
248
+ cursor: pointer;
249
+ flex-shrink: 0;
250
+ }
251
+
252
+ .xray-page__search-btn:hover:not(:disabled) {
253
+ background-color: var(--stl-color-accent);
254
+ color: white;
255
+ }
256
+
257
+ .xray-page__search-btn:disabled {
258
+ opacity: 0.5;
259
+ cursor: not-allowed;
260
+ }
261
+
262
+ .xray-page__search-error {
263
+ position: absolute;
264
+ top: 100%;
265
+ left: 1rem;
266
+ margin-top: 0.25rem;
267
+ font-size: 0.75rem;
268
+ color: var(--stl-color-red-foreground);
269
+ }
270
+
271
+ .xray-page__list-container {
272
+ border: 1px solid var(--stl-color-border);
273
+ border-radius: var(--stl-ui-layout-border-radius-sml);
274
+ overflow: hidden;
275
+ display: flex;
276
+ flex-direction: column;
277
+ height: 100%;
278
+ }
279
+
280
+ .xray-page__empty {
281
+ padding: 3rem 2rem;
282
+ text-align: center;
283
+ color: var(--stl-color-foreground-muted);
284
+ }
285
+
286
+ .xray-page__empty p {
287
+ margin: 0;
288
+ }
289
+
290
+ .xray-page__empty-hint {
291
+ font-size: 0.875rem;
292
+ margin-top: 0.5rem !important;
293
+ }
294
+
295
+ .xray-page__loading {
296
+ padding: 3rem 2rem;
297
+ text-align: center;
298
+ color: var(--stl-color-foreground-muted);
299
+ }
300
+
301
+ .xray-page__list {
302
+ list-style: none;
303
+ margin: 0;
304
+ padding: 0;
305
+ display: flex;
306
+ flex-direction: column;
307
+ gap: 0;
308
+ overflow: auto;
309
+ flex: 1;
310
+ }
311
+
312
+ .xray-page__item {
313
+ margin: 0;
314
+ border-bottom: 1px solid var(--stl-color-border);
315
+ }
316
+
317
+ .xray-page__item:last-child {
318
+ border-bottom: none;
319
+ }
320
+
321
+ .xray-page__item-link {
322
+ display: flex;
323
+ align-items: center;
324
+ gap: 0.75rem;
325
+ padding: 0.5rem 0.75rem;
326
+ color: inherit;
327
+ text-decoration: none;
328
+ transition: background-color 0.15s;
329
+ }
330
+
331
+ .xray-page__item-link:hover {
332
+ background-color: var(--stl-color-muted-background);
333
+ }
334
+
335
+ .xray-page__item-link--selected {
336
+ background-color: var(--stl-color-accent-muted-background, var(--stl-color-muted));
337
+ }
338
+
339
+ .xray-page__item-link--selected:hover {
340
+ background-color: var(--stl-color-accent-muted-background, var(--stl-color-muted));
341
+ }
342
+
343
+ .xray-page__status-badge {
344
+ display: inline-flex;
345
+ align-items: center;
346
+ gap: 0.375rem;
347
+ font-weight: 600;
348
+ font-family: var(--stl-typography-font-mono, monospace);
349
+ font-size: 0.75rem;
350
+ flex-shrink: 0;
351
+ }
352
+
353
+ .xray-page__status-dot {
354
+ width: 8px;
355
+ height: 8px;
356
+ border-radius: 50%;
357
+ flex-shrink: 0;
358
+ }
359
+
360
+ .xray-page__status-badge.xray-page__status--success {
361
+ color: var(--stl-color-green-foreground);
362
+ }
363
+
364
+ .xray-page__status-badge.xray-page__status--success .xray-page__status-dot {
365
+ background-color: var(--stl-color-green-foreground);
366
+ }
367
+
368
+ .xray-page__status-badge.xray-page__status--warning {
369
+ color: var(--stl-color-red-foreground);
370
+ }
371
+
372
+ .xray-page__status-badge.xray-page__status--warning .xray-page__status-dot {
373
+ background-color: var(--stl-color-red-foreground);
374
+ }
375
+
376
+ .xray-page__status-badge.xray-page__status--error {
377
+ color: #dc2626;
378
+ }
379
+
380
+ .xray-page__status-badge.xray-page__status--error .xray-page__status-dot {
381
+ background-color: #dc2626;
382
+ }
383
+
384
+ .xray-page__endpoint {
385
+ display: flex;
386
+ align-items: center;
387
+ gap: 0.5rem;
388
+ flex: 1;
389
+ min-width: 0;
390
+ overflow: hidden;
391
+ color: var(--stl-color-foreground);
392
+ }
393
+
394
+ .xray-page__method {
395
+ font-weight: 600;
396
+ font-size: 0.75rem;
397
+ color: var(--stl-color-foreground);
398
+ flex-shrink: 0;
399
+ }
400
+
401
+ .xray-page__path {
402
+ font-family: var(--stl-typography-font-mono, monospace);
403
+ font-size: 0.8125rem;
404
+ color: var(--stl-color-foreground);
405
+ overflow: hidden;
406
+ text-overflow: ellipsis;
407
+ white-space: nowrap;
408
+ }
409
+
410
+ .xray-page__time {
411
+ color: var(--stl-color-foreground-muted);
412
+ font-size: 0.75rem;
413
+ flex-shrink: 0;
414
+ }
415
+
416
+ .xray-page__request-id {
417
+ font-family: var(--stl-typography-font-mono, monospace);
418
+ }
419
+
420
+ .xray-page__copy-wrapper {
421
+ position: relative;
422
+ display: inline-flex;
423
+ align-items: center;
424
+ }
425
+
426
+ .xray-page__copy-btn {
427
+ display: inline-flex;
428
+ align-items: center;
429
+ justify-content: center;
430
+ width: 20px;
431
+ height: 20px;
432
+ margin-left: 0.125rem;
433
+ padding: 0;
434
+ background: transparent;
435
+ border: none;
436
+ border-radius: var(--stl-ui-layout-border-radius-xs);
437
+ color: var(--stl-color-foreground-muted);
438
+ cursor: pointer;
439
+ }
440
+
441
+ .xray-page__copy-btn:hover {
442
+ background-color: var(--stl-color-muted);
443
+ color: var(--stl-color-foreground);
444
+ }
445
+
446
+ .xray-page__copy-toast {
447
+ position: absolute;
448
+ left: 100%;
449
+ margin-left: 0.5rem;
450
+ padding: 0.25rem 0.5rem;
451
+ font-size: 0.75rem;
452
+ color: var(--stl-color-foreground);
453
+ background-color: var(--stl-color-muted);
454
+ border-radius: var(--stl-ui-layout-border-radius-xs);
455
+ white-space: nowrap;
456
+ }
457
+
458
+ /* Detail panel styles */
459
+ .xray-page__detail-header {
460
+ display: flex;
461
+ align-items: center;
462
+ justify-content: space-between;
463
+ padding: 1rem;
464
+ position: sticky;
465
+ top: 0;
466
+ background-color: var(--stl-color-background);
467
+ z-index: 1;
468
+ }
469
+
470
+ .xray-page__detail-toggle {
471
+ display: inline-flex;
472
+ align-items: center;
473
+ justify-content: center;
474
+ width: 24px;
475
+ height: 24px;
476
+ padding: 0;
477
+ border-radius: var(--stl-ui-layout-border-radius-xs);
478
+ border: 1px solid var(--stl-color-border);
479
+ background-color: transparent;
480
+ color: var(--stl-color-foreground);
481
+ cursor: pointer;
482
+ }
483
+
484
+ .xray-page__detail-toggle:hover {
485
+ background-color: var(--stl-color-muted-background);
486
+ }
487
+
488
+ .xray-page__detail-title {
489
+ display: flex;
490
+ align-items: center;
491
+ gap: 0.5rem;
492
+ font-weight: 600;
493
+ font-size: 1.125rem;
494
+ }
495
+
496
+ .xray-page__detail-title .xray-page__method {
497
+ font-size: 1rem;
498
+ color: var(--stl-color-foreground-muted);
499
+ }
500
+
501
+ .xray-page__detail-path {
502
+ font-family: var(--stl-typography-font-mono, monospace);
503
+ font-size: 1rem;
504
+ color: var(--stl-color-foreground);
505
+ }
506
+
507
+ .xray-page__detail-close {
508
+ display: flex;
509
+ align-items: center;
510
+ justify-content: center;
511
+ width: 28px;
512
+ height: 28px;
513
+ margin: 0;
514
+ padding: 0;
515
+ background: transparent;
516
+ border: none;
517
+ border-radius: var(--stl-ui-layout-border-radius-xs);
518
+ color: var(--stl-color-foreground-muted);
519
+ cursor: pointer;
520
+ text-decoration: none;
521
+ }
522
+
523
+ .xray-page__detail-close:hover {
524
+ background-color: var(--stl-color-muted-background);
525
+ color: var(--stl-color-foreground);
526
+ }
527
+
528
+ .xray-page__detail-info {
529
+ display: flex;
530
+ flex-direction: column;
531
+ gap: 0.5rem;
532
+ padding: 0 1rem 1rem;
533
+ font-size: 0.8125rem;
534
+ }
535
+
536
+ .xray-page__detail-row {
537
+ display: flex;
538
+ align-items: center;
539
+ gap: 0.5rem;
540
+ }
541
+
542
+ .xray-page__detail-row-icon {
543
+ width: 16px;
544
+ height: 16px;
545
+ display: flex;
546
+ align-items: center;
547
+ justify-content: center;
548
+ flex-shrink: 0;
549
+ }
550
+
551
+ .xray-page__detail-row-icon.xray-page__status-dot {
552
+ width: 8px;
553
+ height: 8px;
554
+ margin: 0 4px;
555
+ border-radius: 50%;
556
+ }
557
+
558
+ .xray-page__detail-row-icon.xray-page__status--success {
559
+ background-color: var(--stl-color-green-foreground);
560
+ }
561
+
562
+ .xray-page__detail-row-icon.xray-page__status--warning {
563
+ background-color: var(--stl-color-red-foreground);
564
+ }
565
+
566
+ .xray-page__detail-row-icon.xray-page__status--error {
567
+ background-color: #dc2626;
568
+ }
569
+
570
+ .xray-page__detail-row-icon img {
571
+ width: 12px;
572
+ height: 12px;
573
+ }
574
+
575
+ .xray-page__detail-row-label {
576
+ color: var(--stl-color-foreground-muted);
577
+ flex-shrink: 0;
578
+ min-width: 80px;
579
+ }
580
+
581
+ .xray-page__detail-row-sub {
582
+ margin-left: calc(16px + 0.5rem + 80px + 0.5rem);
583
+ font-size: 0.75rem;
584
+ color: var(--stl-color-foreground-muted);
585
+ font-family: var(--stl-typography-font-mono, monospace);
586
+ word-break: break-all;
587
+ }
588
+
589
+ .xray-page__detail-row-value {
590
+ color: var(--stl-color-foreground);
591
+ }
592
+
593
+ .xray-page__detail-row-value.xray-page__status--success {
594
+ color: var(--stl-color-green-foreground);
595
+ }
596
+
597
+ .xray-page__detail-row-value.xray-page__status--warning {
598
+ color: var(--stl-color-red-foreground);
599
+ }
600
+
601
+ .xray-page__detail-row-value.xray-page__status--error {
602
+ color: #dc2626;
603
+ }
604
+
605
+ .xray-page__current-ip-pin {
606
+ display: inline-flex;
607
+ align-items: center;
608
+ justify-content: center;
609
+ padding: 0;
610
+ background: none;
611
+ border: none;
612
+ cursor: pointer;
613
+ }
614
+
615
+ .xray-page__current-ip-badge {
616
+ display: inline-block;
617
+ margin-left: 0.5rem;
618
+ padding: 0.125rem 0.4rem;
619
+ font-size: 0.6875rem;
620
+ font-weight: 500;
621
+ color: white;
622
+ background-color: var(--stl-color-accent);
623
+ border-radius: var(--stl-ui-layout-border-radius-xs);
624
+ white-space: nowrap;
625
+ opacity: 0;
626
+ transition: opacity 0.15s;
627
+ }
628
+
629
+ .xray-page__detail-row:has(.xray-page__current-ip-pin:hover) .xray-page__current-ip-badge,
630
+ .xray-page__detail-row:has(.xray-page__current-ip-pin:focus) .xray-page__current-ip-badge {
631
+ opacity: 1;
632
+ }
633
+
634
+ .xray-page__detail-location-link {
635
+ color: var(--stl-color-accent);
636
+ word-break: break-all;
637
+ }
638
+
639
+ .xray-page__detail-location-link:hover {
640
+ text-decoration: underline;
641
+ }
642
+
643
+ .xray-page__endpoint-link {
644
+ color: var(--stl-color-accent);
645
+ text-decoration: none;
646
+ }
647
+
648
+ .xray-page__endpoint-link:hover {
649
+ text-decoration: underline;
650
+ }
651
+
652
+ .xray-page__detail-body {
653
+ display: flex;
654
+ flex-direction: column;
655
+ }
656
+
657
+ .xray-page__detail-tabs {
658
+ display: inline-flex;
659
+ gap: 0.15rem;
660
+ padding: 0.2rem;
661
+ margin: 0.5rem 1rem 0;
662
+ border: 1px solid var(--stl-color-border);
663
+ border-radius: 999px;
664
+ background-color: var(--stl-color-muted);
665
+ align-items: center;
666
+ width: fit-content;
667
+ }
668
+
669
+ .xray-page__detail-tab {
670
+ display: inline-flex;
671
+ align-items: center;
672
+ gap: 0.25rem;
673
+ padding: 0.15rem 0.7rem;
674
+ font-size: 0.6875rem;
675
+ font-weight: 600;
676
+ color: var(--stl-color-foreground-muted);
677
+ background: transparent;
678
+ border: 1px solid transparent;
679
+ border-radius: 999px;
680
+ cursor: pointer;
681
+ transition:
682
+ background-color 0.15s,
683
+ color 0.15s,
684
+ border-color 0.15s;
685
+ }
686
+
687
+ .xray-page__detail-tab:hover {
688
+ color: var(--stl-color-foreground);
689
+ background-color: var(--stl-color-muted);
690
+ }
691
+
692
+ .xray-page__detail-tab--active {
693
+ color: var(--stl-color-foreground);
694
+ background-color: var(--stl-color-background);
695
+ border-color: transparent;
696
+ }
697
+
698
+ .xray-page__detail-panel-body {
699
+ padding: 0.5rem 1rem 1rem;
700
+ }
701
+
702
+ .xray-page__detail-stack {
703
+ display: flex;
704
+ flex-direction: column;
705
+ gap: 1rem;
706
+ }
707
+
708
+ @media (min-width: 96rem) {
709
+ .xray-page__detail-stack {
710
+ display: grid;
711
+ grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
712
+ align-items: start;
713
+ }
714
+
715
+ .xray-page__detail-block--headers {
716
+ grid-column: 1;
717
+ }
718
+
719
+ .xray-page__detail-block--payload {
720
+ grid-column: 2;
721
+ }
722
+ }
723
+
724
+ .xray-page__detail-block {
725
+ display: flex;
726
+ flex-direction: column;
727
+ gap: 0.5rem;
728
+ min-height: 0;
729
+ }
730
+
731
+ .xray-page__detail-block-label {
732
+ display: flex;
733
+ align-items: center;
734
+ gap: 0.75rem;
735
+ font-size: 0.6875rem;
736
+ font-weight: 600;
737
+ color: var(--stl-color-foreground-muted);
738
+ text-transform: uppercase;
739
+ letter-spacing: 0.05em;
740
+ }
741
+
742
+ .xray-page__detail-block-header {
743
+ display: flex;
744
+ align-items: center;
745
+ justify-content: space-between;
746
+ gap: 0.75rem;
747
+ }
748
+
749
+ .xray-page__detail-block--payload .xray-page__detail-block-header {
750
+ background-color: var(--xray-payload-header-bg);
751
+ border: 1px solid var(--stl-color-border);
752
+ border-bottom: none;
753
+ border-radius: var(--stl-ui-layout-border-radius-sml) var(--stl-ui-layout-border-radius-sml) 0 0;
754
+ padding: 0.45rem 0.75rem;
755
+ }
756
+
757
+ .xray-page__detail-block--payload {
758
+ gap: 0;
759
+ }
760
+
761
+ .xray-page__detail-block-actions {
762
+ display: inline-flex;
763
+ align-items: center;
764
+ gap: 0.5rem;
765
+ }
766
+
767
+ .xray-page__detail-block-toggle {
768
+ display: inline-flex;
769
+ align-items: center;
770
+ gap: 0.5rem;
771
+ padding: 0;
772
+ background: transparent;
773
+ border: none;
774
+ cursor: pointer;
775
+ color: var(--stl-color-foreground-muted);
776
+ }
777
+
778
+ .xray-page__detail-block-toggle:hover {
779
+ color: var(--stl-color-foreground);
780
+ }
781
+
782
+ .xray-page__detail-block-count {
783
+ font-size: 0.6875rem;
784
+ font-family: var(--stl-typography-font-mono, monospace);
785
+ color: var(--stl-color-foreground-muted);
786
+ }
787
+
788
+ .xray-page__detail-block-chevron {
789
+ display: inline-flex;
790
+ align-items: center;
791
+ justify-content: center;
792
+ transition: transform 0.15s ease;
793
+ }
794
+
795
+ .xray-page__detail-block-chevron.is-open {
796
+ transform: rotate(180deg);
797
+ }
798
+
799
+ .xray-page__detail-pill {
800
+ font-size: 0.6875rem;
801
+ font-weight: 600;
802
+ color: var(--stl-color-foreground);
803
+ background-color: var(--stl-color-muted);
804
+ border: 1px solid var(--stl-color-border);
805
+ border-radius: var(--stl-ui-layout-border-radius-xs);
806
+ padding: 0.125rem 0.4rem;
807
+ text-transform: uppercase;
808
+ letter-spacing: 0.04em;
809
+ }
810
+
811
+ .xray-page__detail-copy {
812
+ display: inline-flex;
813
+ align-items: center;
814
+ justify-content: center;
815
+ width: 22px;
816
+ height: 22px;
817
+ padding: 0;
818
+ background: transparent;
819
+ border: 1px solid var(--stl-color-border);
820
+ border-radius: var(--stl-ui-layout-border-radius-xs);
821
+ color: var(--stl-color-foreground-muted);
822
+ cursor: pointer;
823
+ }
824
+
825
+ .xray-page__detail-copy:hover {
826
+ background-color: var(--stl-color-muted-background);
827
+ color: var(--stl-color-foreground);
828
+ }
829
+
830
+ .xray-page__detail-copy-toast {
831
+ font-size: 0.6875rem;
832
+ color: var(--stl-color-foreground-muted);
833
+ }
834
+
835
+ .xray-page__detail-empty {
836
+ padding: 0.2rem 0;
837
+ font-size: 0.75rem;
838
+ color: var(--stl-color-foreground-muted);
839
+ font-style: italic;
840
+ }
841
+
842
+ .xray-page__detail-code {
843
+ flex: 1;
844
+ margin: 0;
845
+ padding: 0;
846
+ background-color: transparent;
847
+ border-radius: 0;
848
+ overflow: auto;
849
+ font-size: 0.75rem;
850
+ line-height: 1.5;
851
+ }
852
+
853
+ .xray-page__payload {
854
+ position: relative;
855
+ border: 1px solid var(--stl-color-border);
856
+ border-top: none;
857
+ border-radius: 0 0 var(--stl-ui-layout-border-radius-sml) var(--stl-ui-layout-border-radius-sml);
858
+ background-color: var(--xray-payload-bg);
859
+ padding: 0.4rem 0 0;
860
+ }
861
+
862
+ .xray-page__payload--empty {
863
+ padding: 0.75rem;
864
+ min-height: 120px;
865
+ }
866
+
867
+ .xray-page__payload-actions {
868
+ position: absolute;
869
+ top: 0.5rem;
870
+ right: 0.5rem;
871
+ display: inline-flex;
872
+ align-items: center;
873
+ gap: 0.5rem;
874
+ z-index: 1;
875
+ }
876
+
877
+ .xray-page__detail-code code {
878
+ font-family: var(--stl-typography-font-mono, monospace);
879
+ color: var(--stl-color-foreground);
880
+ white-space: pre-wrap;
881
+ word-break: break-word;
882
+ }
883
+
884
+ /* Shiki output styling */
885
+ .xray-page__detail-code .shiki {
886
+ margin: 0;
887
+ padding: 0;
888
+ background: transparent !important;
889
+ background-color: transparent !important;
890
+ border: none !important;
891
+ box-shadow: none !important;
892
+ overflow: visible;
893
+ }
894
+
895
+ .xray-page__detail-code .shiki code {
896
+ counter-reset: line;
897
+ }
898
+
899
+ .xray-page__detail-code .shiki span {
900
+ color: var(--shiki-light);
901
+ }
902
+
903
+ :root[data-theme='dark'] .xray-page__detail-code .shiki span {
904
+ color: var(--shiki-dark);
905
+ }
906
+
907
+ .xray-page__detail-code .shiki code .line::before {
908
+ counter-increment: line;
909
+ content: counter(line);
910
+ display: inline-block;
911
+ width: 2ch;
912
+ margin-right: 1.5ch;
913
+ text-align: right;
914
+ color: var(--stl-color-foreground-muted);
915
+ }
916
+
917
+ .xray-page__headers {
918
+ display: grid;
919
+ grid-template-columns: fit-content(360px) minmax(0, 1fr);
920
+ column-gap: 0.5rem;
921
+ row-gap: 0.35rem;
922
+ font-family: var(--stl-typography-font-mono, monospace);
923
+ font-size: 0.75rem;
924
+ }
925
+
926
+ .xray-page__header-row {
927
+ display: contents;
928
+ }
929
+
930
+ .xray-page__header-name {
931
+ color: var(--stl-color-foreground-muted);
932
+ font-weight: 600;
933
+ min-width: 0;
934
+ max-width: 100%;
935
+ white-space: nowrap;
936
+ overflow: hidden;
937
+ text-overflow: ellipsis;
938
+ padding: 0.2rem 0;
939
+ }
940
+
941
+ .xray-page__header-value {
942
+ color: var(--stl-color-foreground);
943
+ word-break: break-word;
944
+ padding: 0.2rem 0;
945
+ }
946
+
947
+ .xray-page__detail-placeholder {
948
+ padding: 2rem;
949
+ text-align: center;
950
+ color: var(--stl-color-foreground-muted);
951
+ }
952
+
953
+ @media (prefers-reduced-motion: reduce) {
954
+ .xray-page__content,
955
+ .xray-page__detail-panel,
956
+ .xray-page__list-panel {
957
+ transition: none;
958
+ }
959
+ }
960
+
961
+ .xray-page__loading-overlay {
962
+ position: fixed;
963
+ top: 0;
964
+ left: 0;
965
+ right: 0;
966
+ bottom: 0;
967
+ background-color: rgba(0, 0, 0, 0.3);
968
+ display: flex;
969
+ align-items: center;
970
+ justify-content: center;
971
+ z-index: 100;
972
+ }
973
+
974
+ .xray-page__loading-overlay span {
975
+ padding: 1rem 2rem;
976
+ background-color: var(--stl-color-background);
977
+ border-radius: var(--stl-ui-layout-border-radius-sml);
978
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
979
+ }
980
+
981
+ .xray-page__login-banner {
982
+ padding: 3rem 2rem;
983
+ text-align: center;
984
+ color: var(--stl-color-foreground-muted);
985
+ }
986
+
987
+ .xray-page__login-banner p:first-child {
988
+ font-weight: 600;
989
+ color: var(--stl-color-foreground);
990
+ margin: 0;
991
+ }
992
+
993
+ .xray-page__login-hint {
994
+ font-size: 0.875rem;
995
+ margin: 0.5rem 0 0 0;
996
+ }
997
+
998
+ .xray-not-configured {
999
+ padding: 2rem;
1000
+ text-align: center;
1001
+ color: var(--stl-color-foreground-muted);
1002
+ }
1003
+
1004
+ .xray-not-configured h2 {
1005
+ margin: 0 0 1rem 0;
1006
+ color: var(--stl-color-foreground);
1007
+ }
1008
+
1009
+ .xray-not-configured pre {
1010
+ display: inline-block;
1011
+ margin-top: 1rem;
1012
+ padding: 0.75rem 1rem;
1013
+ background-color: var(--stl-color-muted);
1014
+ border-radius: var(--stl-ui-layout-border-radius-sml);
1015
+ }
1016
+
1017
+ /* X-ray tab badge */
1018
+ .xray-tab-badge {
1019
+ display: inline-flex;
1020
+ align-items: center;
1021
+ justify-content: center;
1022
+ min-width: 18px;
1023
+ height: 18px;
1024
+ padding: 0 5px;
1025
+ margin-left: 6px;
1026
+ font-size: 11px;
1027
+ font-weight: 600;
1028
+ color: white;
1029
+ background-color: var(--stl-color-green);
1030
+ border-radius: 9px;
1031
+ line-height: 1;
1032
+ }