@le-space/ui 0.6.41 → 0.6.43
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/package.json +3 -3
- package/react/index.js +199 -116
- package/shared/index.d.ts +1 -1
- package/shared/index.js +1 -1
- package/styles.css +90 -16
- package/svelte/SponsorRelayFab.svelte +165 -76
- package/svelte/components/AccordionSection.svelte +6 -6
- package/svelte/components/CopyButton.svelte +12 -4
- package/svelte/components/LauncherButton.svelte +33 -9
- package/svelte/components/StatusLed.svelte +8 -4
- package/svelte/styles/theme.css +90 -16
package/styles.css
CHANGED
|
@@ -1,21 +1,95 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Relay Button widget theme — Le-Space brand system (Style Guide V1.0).
|
|
3
|
+
* Dark ("Deep Space") is the default. Light mode activates when the host
|
|
4
|
+
* page sets `data-theme="light"` (Docusaurus convention) or
|
|
5
|
+
* `data-relay-theme="light"` on any ancestor element.
|
|
6
|
+
*
|
|
7
|
+
* The widget uses a compact type scale (13px body) instead of the 16px web
|
|
8
|
+
* scale from the style guide — see docs/reference/branding for the rationale.
|
|
9
|
+
*/
|
|
1
10
|
:root {
|
|
11
|
+
/* Typography — Inter for UI text, JetBrains Mono for labels/status/code. */
|
|
2
12
|
--relay-font-heading:
|
|
3
|
-
"
|
|
13
|
+
"Inter", -apple-system, "Segoe UI", Roboto, sans-serif;
|
|
4
14
|
--relay-font-body:
|
|
5
|
-
"
|
|
15
|
+
"Inter", -apple-system, "Segoe UI", Roboto, sans-serif;
|
|
6
16
|
--relay-font-mono:
|
|
7
|
-
"
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
--relay-
|
|
11
|
-
--relay-
|
|
12
|
-
--relay-
|
|
13
|
-
--relay-
|
|
14
|
-
--relay-
|
|
15
|
-
--relay-
|
|
16
|
-
--relay-
|
|
17
|
-
--relay-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
--relay-
|
|
17
|
+
"JetBrains Mono", ui-monospace, "SFMono-Regular", "Noto Sans Mono", Menlo, monospace;
|
|
18
|
+
|
|
19
|
+
/* Core palette (dark) */
|
|
20
|
+
--relay-deep-space: #0b0e15;
|
|
21
|
+
--relay-nebula: #141926;
|
|
22
|
+
--relay-horizon: #232b3d;
|
|
23
|
+
--relay-starlight: #edf1f8;
|
|
24
|
+
--relay-stardust: #a8b3c7;
|
|
25
|
+
--relay-comet: #6b7690;
|
|
26
|
+
--relay-coral: #ff6b5b;
|
|
27
|
+
--relay-cyan: #58c7f3;
|
|
28
|
+
|
|
29
|
+
/* Semantic colors */
|
|
30
|
+
--relay-success: #3edc97;
|
|
31
|
+
--relay-warning: #ffc24b;
|
|
32
|
+
--relay-danger: #ff4d6a;
|
|
33
|
+
--relay-info: #58c7f3;
|
|
34
|
+
|
|
35
|
+
/* Component tokens */
|
|
36
|
+
--relay-panel-bg: rgba(20, 25, 38, 0.97);
|
|
37
|
+
--relay-panel-border: var(--relay-horizon);
|
|
38
|
+
--relay-panel-shadow: 0 28px 80px rgba(4, 6, 12, 0.55);
|
|
39
|
+
--relay-text: var(--relay-starlight);
|
|
40
|
+
--relay-muted: var(--relay-stardust);
|
|
41
|
+
--relay-text-dim: var(--relay-comet);
|
|
42
|
+
--relay-surface: rgba(11, 14, 21, 0.55);
|
|
43
|
+
--relay-surface-border: var(--relay-horizon);
|
|
44
|
+
--relay-field-bg: rgba(11, 14, 21, 0.85);
|
|
45
|
+
--relay-accent: var(--relay-coral);
|
|
46
|
+
--relay-accent-contrast: #0b0e15;
|
|
47
|
+
--relay-link: var(--relay-cyan);
|
|
48
|
+
|
|
49
|
+
/* Launcher: the brand lockup as a button — Deep Space pill. */
|
|
50
|
+
--relay-launcher-bg: linear-gradient(135deg, #10151f 0%, #0b0e15 100%);
|
|
51
|
+
--relay-launcher-border: var(--relay-horizon);
|
|
52
|
+
--relay-launcher-text: var(--relay-starlight);
|
|
53
|
+
--relay-launcher-shadow: 0 18px 40px rgba(4, 6, 12, 0.5);
|
|
54
|
+
--relay-launcher-badge-bg: rgba(20, 25, 38, 0.92);
|
|
55
|
+
--relay-launcher-badge-border: var(--relay-horizon);
|
|
56
|
+
--relay-backdrop-accent: rgba(255, 107, 91, 0.14);
|
|
57
|
+
|
|
58
|
+
/* Legacy status aliases (kept for host-page overrides) */
|
|
59
|
+
--relay-blue: var(--relay-info);
|
|
60
|
+
--relay-red: var(--relay-danger);
|
|
61
|
+
--relay-yellow: var(--relay-warning);
|
|
62
|
+
--relay-green: var(--relay-success);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
:root[data-theme="light"],
|
|
66
|
+
[data-theme="light"],
|
|
67
|
+
[data-relay-theme="light"] {
|
|
68
|
+
--relay-coral: #e8503f;
|
|
69
|
+
--relay-cyan: #0e86c4;
|
|
70
|
+
--relay-success: #0f9d6a;
|
|
71
|
+
--relay-warning: #a8690a;
|
|
72
|
+
--relay-danger: #d5365a;
|
|
73
|
+
--relay-info: #0e86c4;
|
|
74
|
+
|
|
75
|
+
--relay-panel-bg: rgba(255, 255, 255, 0.98);
|
|
76
|
+
--relay-panel-border: #d9e0ec;
|
|
77
|
+
--relay-panel-shadow: 0 28px 80px rgba(20, 27, 46, 0.18);
|
|
78
|
+
--relay-text: #141b2e;
|
|
79
|
+
--relay-muted: #4d5a74;
|
|
80
|
+
--relay-text-dim: #6b7690;
|
|
81
|
+
--relay-surface: rgba(20, 27, 46, 0.04);
|
|
82
|
+
--relay-surface-border: #d9e0ec;
|
|
83
|
+
--relay-field-bg: #ffffff;
|
|
84
|
+
--relay-accent: var(--relay-coral);
|
|
85
|
+
--relay-accent-contrast: #ffffff;
|
|
86
|
+
--relay-link: var(--relay-cyan);
|
|
87
|
+
|
|
88
|
+
--relay-launcher-bg: linear-gradient(135deg, #ffffff 0%, #f2f5fa 100%);
|
|
89
|
+
--relay-launcher-border: #d9e0ec;
|
|
90
|
+
--relay-launcher-text: #141b2e;
|
|
91
|
+
--relay-launcher-shadow: 0 18px 40px rgba(20, 27, 46, 0.16);
|
|
92
|
+
--relay-launcher-badge-bg: rgba(20, 27, 46, 0.05);
|
|
93
|
+
--relay-launcher-badge-border: #d9e0ec;
|
|
94
|
+
--relay-backdrop-accent: rgba(232, 80, 63, 0.1);
|
|
21
95
|
}
|
|
@@ -449,12 +449,14 @@ export let apiHosts = undefined
|
|
|
449
449
|
max-height: calc(100vh - 12.5rem);
|
|
450
450
|
overflow: auto;
|
|
451
451
|
border: 1px solid var(--relay-panel-border);
|
|
452
|
-
border-radius:
|
|
452
|
+
border-radius: 0.625rem;
|
|
453
453
|
background: var(--relay-panel-bg);
|
|
454
454
|
box-shadow: var(--relay-panel-shadow);
|
|
455
455
|
color: var(--relay-text);
|
|
456
456
|
padding: 1rem;
|
|
457
457
|
font-family: var(--relay-font-body);
|
|
458
|
+
font-size: 0.8125rem;
|
|
459
|
+
line-height: 1.5;
|
|
458
460
|
}
|
|
459
461
|
|
|
460
462
|
.panel-head,
|
|
@@ -474,9 +476,9 @@ export let apiHosts = undefined
|
|
|
474
476
|
gap: 0.28rem;
|
|
475
477
|
margin: 0.25rem 0 0.8rem;
|
|
476
478
|
padding: 0.7rem 0.85rem;
|
|
477
|
-
border-radius:
|
|
478
|
-
background:
|
|
479
|
-
border: 1px solid rgba(
|
|
479
|
+
border-radius: 0.625rem;
|
|
480
|
+
background: rgba(88, 199, 243, 0.08);
|
|
481
|
+
border: 1px solid rgba(88, 199, 243, 0.22);
|
|
480
482
|
}
|
|
481
483
|
|
|
482
484
|
.polling-head {
|
|
@@ -486,12 +488,12 @@ export let apiHosts = undefined
|
|
|
486
488
|
}
|
|
487
489
|
|
|
488
490
|
.polling-row strong {
|
|
489
|
-
font-size: 0.
|
|
491
|
+
font-size: 0.8125rem;
|
|
490
492
|
}
|
|
491
493
|
|
|
492
494
|
.polling-row small {
|
|
493
|
-
color: var(--relay-
|
|
494
|
-
line-height: 1.
|
|
495
|
+
color: var(--relay-muted);
|
|
496
|
+
line-height: 1.4;
|
|
495
497
|
}
|
|
496
498
|
|
|
497
499
|
.rootfs-blocker {
|
|
@@ -499,19 +501,30 @@ export let apiHosts = undefined
|
|
|
499
501
|
gap: 0.55rem;
|
|
500
502
|
margin-top: 1rem;
|
|
501
503
|
padding: 0.9rem;
|
|
502
|
-
border: 1px solid rgba(
|
|
503
|
-
border-radius:
|
|
504
|
-
background: rgba(
|
|
505
|
-
color:
|
|
504
|
+
border: 1px solid rgba(255, 77, 106, 0.5);
|
|
505
|
+
border-radius: 0.625rem;
|
|
506
|
+
background: rgba(255, 77, 106, 0.1);
|
|
507
|
+
color: var(--relay-text);
|
|
508
|
+
}
|
|
509
|
+
|
|
510
|
+
.rootfs-blocker strong {
|
|
511
|
+
color: var(--relay-danger);
|
|
506
512
|
}
|
|
507
513
|
|
|
508
514
|
.rootfs-blocker p,
|
|
509
515
|
.rootfs-blocker small { margin: 0; line-height: 1.45; }
|
|
510
|
-
.rootfs-reference { overflow-wrap: anywhere; font-size: 0.
|
|
516
|
+
.rootfs-reference { overflow-wrap: anywhere; font-size: 0.6875rem; font-family: var(--relay-font-mono); }
|
|
511
517
|
.rootfs-actions { display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; }
|
|
512
|
-
.rootfs-actions .refresh { padding: 0.
|
|
513
|
-
.rootfs-actions a { color:
|
|
514
|
-
|
|
518
|
+
.rootfs-actions .refresh { padding: 0.5rem 0.7rem; }
|
|
519
|
+
.rootfs-actions a { color: var(--relay-link); font-size: 0.75rem; }
|
|
520
|
+
|
|
521
|
+
.primary.blocked {
|
|
522
|
+
border-color: rgba(255, 77, 106, 0.45);
|
|
523
|
+
background: var(--relay-surface);
|
|
524
|
+
color: var(--relay-muted);
|
|
525
|
+
box-shadow: none;
|
|
526
|
+
cursor: not-allowed;
|
|
527
|
+
}
|
|
515
528
|
|
|
516
529
|
.eyebrow,
|
|
517
530
|
.field span,
|
|
@@ -519,17 +532,25 @@ export let apiHosts = undefined
|
|
|
519
532
|
.mono-block span,
|
|
520
533
|
.instance-grid span,
|
|
521
534
|
.section-head small {
|
|
522
|
-
color: var(--relay-
|
|
523
|
-
font-
|
|
535
|
+
color: var(--relay-comet);
|
|
536
|
+
font-family: var(--relay-font-mono);
|
|
537
|
+
font-weight: 700;
|
|
538
|
+
font-size: 0.6563rem;
|
|
524
539
|
text-transform: uppercase;
|
|
525
540
|
letter-spacing: 0.08em;
|
|
526
541
|
}
|
|
527
542
|
|
|
543
|
+
.eyebrow {
|
|
544
|
+
color: var(--relay-accent);
|
|
545
|
+
}
|
|
546
|
+
|
|
528
547
|
.eyebrow-version {
|
|
529
|
-
font-
|
|
548
|
+
font-family: var(--relay-font-mono);
|
|
549
|
+
font-weight: 400;
|
|
550
|
+
font-size: 0.625rem;
|
|
530
551
|
letter-spacing: 0.04em;
|
|
531
552
|
text-transform: none;
|
|
532
|
-
color:
|
|
553
|
+
color: var(--relay-comet);
|
|
533
554
|
}
|
|
534
555
|
|
|
535
556
|
h2,
|
|
@@ -540,62 +561,80 @@ export let apiHosts = undefined
|
|
|
540
561
|
}
|
|
541
562
|
|
|
542
563
|
h2 {
|
|
543
|
-
font-size: 1.
|
|
564
|
+
font-size: 1.125rem;
|
|
565
|
+
font-weight: 700;
|
|
566
|
+
letter-spacing: -0.01em;
|
|
567
|
+
color: var(--relay-text);
|
|
568
|
+
}
|
|
569
|
+
|
|
570
|
+
h3 {
|
|
571
|
+
font-size: 0.9375rem;
|
|
572
|
+
font-weight: 600;
|
|
544
573
|
}
|
|
545
574
|
|
|
546
575
|
.refresh,
|
|
547
576
|
.primary,
|
|
548
577
|
.delete,
|
|
549
578
|
.warning {
|
|
550
|
-
border-radius: 0.
|
|
551
|
-
padding: 0.
|
|
579
|
+
border-radius: 0.5rem;
|
|
580
|
+
padding: 0.65rem 0.9rem;
|
|
552
581
|
cursor: pointer;
|
|
553
|
-
font-
|
|
582
|
+
font-family: var(--relay-font-body);
|
|
583
|
+
font-size: 0.8125rem;
|
|
584
|
+
font-weight: 600;
|
|
554
585
|
line-height: 1.1;
|
|
586
|
+
transition: filter 150ms ease, border-color 150ms ease;
|
|
555
587
|
}
|
|
556
588
|
|
|
557
589
|
.refresh {
|
|
558
|
-
border: 1px solid
|
|
590
|
+
border: 1px solid var(--relay-surface-border);
|
|
559
591
|
color: var(--relay-text);
|
|
560
|
-
background:
|
|
561
|
-
|
|
562
|
-
|
|
592
|
+
background: var(--relay-surface);
|
|
593
|
+
}
|
|
594
|
+
|
|
595
|
+
.refresh:hover:not(:disabled) {
|
|
596
|
+
border-color: var(--relay-cyan);
|
|
563
597
|
}
|
|
564
598
|
|
|
565
599
|
.primary {
|
|
566
600
|
width: 100%;
|
|
567
|
-
border: 1px solid
|
|
568
|
-
background:
|
|
569
|
-
color:
|
|
570
|
-
|
|
601
|
+
border: 1px solid transparent;
|
|
602
|
+
background: var(--relay-accent);
|
|
603
|
+
color: var(--relay-accent-contrast);
|
|
604
|
+
font-weight: 700;
|
|
605
|
+
box-shadow: 0 10px 24px rgba(255, 107, 91, 0.22);
|
|
606
|
+
}
|
|
607
|
+
|
|
608
|
+
.primary:hover:not(:disabled) {
|
|
609
|
+
filter: brightness(1.06);
|
|
571
610
|
}
|
|
572
611
|
|
|
573
612
|
.delete {
|
|
574
|
-
border: 1px solid rgba(
|
|
575
|
-
background:
|
|
576
|
-
color:
|
|
613
|
+
border: 1px solid rgba(255, 77, 106, 0.45);
|
|
614
|
+
background: transparent;
|
|
615
|
+
color: var(--relay-danger);
|
|
577
616
|
}
|
|
578
617
|
|
|
579
618
|
.warning {
|
|
580
|
-
border: 1px solid rgba(
|
|
581
|
-
background:
|
|
582
|
-
color:
|
|
619
|
+
border: 1px solid rgba(255, 194, 75, 0.45);
|
|
620
|
+
background: transparent;
|
|
621
|
+
color: var(--relay-warning);
|
|
583
622
|
}
|
|
584
623
|
|
|
585
624
|
.chip-confirmed {
|
|
586
|
-
|
|
587
|
-
color:
|
|
625
|
+
border-color: rgba(62, 220, 151, 0.45);
|
|
626
|
+
color: var(--relay-success);
|
|
588
627
|
display: inline-flex;
|
|
589
628
|
align-items: center;
|
|
590
629
|
gap: 0.32rem;
|
|
591
630
|
}
|
|
592
631
|
|
|
593
632
|
.chip-dot-confirmed {
|
|
594
|
-
width: 0.
|
|
595
|
-
height: 0.
|
|
633
|
+
width: 0.42rem;
|
|
634
|
+
height: 0.42rem;
|
|
596
635
|
border-radius: 999px;
|
|
597
|
-
background:
|
|
598
|
-
box-shadow: 0 0 0 3px rgba(
|
|
636
|
+
background: var(--relay-success);
|
|
637
|
+
box-shadow: 0 0 0 3px rgba(62, 220, 151, 0.18);
|
|
599
638
|
}
|
|
600
639
|
|
|
601
640
|
.status-strip,
|
|
@@ -610,10 +649,10 @@ export let apiHosts = undefined
|
|
|
610
649
|
.metric-card {
|
|
611
650
|
display: grid;
|
|
612
651
|
gap: 0.3rem;
|
|
613
|
-
border: 1px solid
|
|
614
|
-
border-radius:
|
|
652
|
+
border: 1px solid var(--relay-surface-border);
|
|
653
|
+
border-radius: 0.625rem;
|
|
615
654
|
padding: 0.8rem;
|
|
616
|
-
background:
|
|
655
|
+
background: var(--relay-surface);
|
|
617
656
|
}
|
|
618
657
|
|
|
619
658
|
.status-pill {
|
|
@@ -622,13 +661,25 @@ export let apiHosts = undefined
|
|
|
622
661
|
gap: 0.7rem;
|
|
623
662
|
}
|
|
624
663
|
|
|
664
|
+
.status-pill strong,
|
|
665
|
+
.metric-card strong {
|
|
666
|
+
font-size: 0.8125rem;
|
|
667
|
+
}
|
|
668
|
+
|
|
669
|
+
.status-pill small,
|
|
670
|
+
.metric-card small {
|
|
671
|
+
color: var(--relay-muted);
|
|
672
|
+
font-size: 0.6875rem;
|
|
673
|
+
line-height: 1.4;
|
|
674
|
+
}
|
|
675
|
+
|
|
625
676
|
.orphan-box {
|
|
626
677
|
display: grid;
|
|
627
678
|
gap: 0.7rem;
|
|
628
679
|
padding: 0.85rem;
|
|
629
|
-
border-radius:
|
|
630
|
-
border: 1px solid rgba(
|
|
631
|
-
background:
|
|
680
|
+
border-radius: 0.625rem;
|
|
681
|
+
border: 1px solid rgba(255, 77, 106, 0.3);
|
|
682
|
+
background: rgba(255, 77, 106, 0.06);
|
|
632
683
|
}
|
|
633
684
|
|
|
634
685
|
.orphan-head {
|
|
@@ -636,18 +687,23 @@ export let apiHosts = undefined
|
|
|
636
687
|
gap: 0.2rem;
|
|
637
688
|
}
|
|
638
689
|
|
|
690
|
+
.orphan-head strong {
|
|
691
|
+
color: var(--relay-danger);
|
|
692
|
+
}
|
|
693
|
+
|
|
639
694
|
.orphan-head small {
|
|
640
|
-
color:
|
|
641
|
-
line-height: 1.
|
|
695
|
+
color: var(--relay-muted);
|
|
696
|
+
line-height: 1.4;
|
|
642
697
|
}
|
|
643
698
|
|
|
644
699
|
.orphan-card {
|
|
645
700
|
display: grid;
|
|
646
701
|
gap: 0.35rem;
|
|
647
702
|
padding: 0.75rem;
|
|
648
|
-
border-radius: 0.
|
|
649
|
-
background:
|
|
650
|
-
border: 1px solid
|
|
703
|
+
border-radius: 0.5rem;
|
|
704
|
+
background: var(--relay-surface);
|
|
705
|
+
border: 1px solid var(--relay-surface-border);
|
|
706
|
+
font-size: 0.75rem;
|
|
651
707
|
}
|
|
652
708
|
|
|
653
709
|
.orphan-title {
|
|
@@ -657,9 +713,10 @@ export let apiHosts = undefined
|
|
|
657
713
|
.alert {
|
|
658
714
|
margin: 0.8rem 0 0;
|
|
659
715
|
padding: 0.75rem 0.85rem;
|
|
660
|
-
border-radius: 0.
|
|
661
|
-
|
|
662
|
-
|
|
716
|
+
border-radius: 0.5rem;
|
|
717
|
+
border: 1px solid rgba(255, 77, 106, 0.3);
|
|
718
|
+
background: rgba(255, 77, 106, 0.1);
|
|
719
|
+
color: var(--relay-danger);
|
|
663
720
|
}
|
|
664
721
|
|
|
665
722
|
.status-text {
|
|
@@ -681,8 +738,8 @@ export let apiHosts = undefined
|
|
|
681
738
|
|
|
682
739
|
.field small {
|
|
683
740
|
color: var(--relay-muted);
|
|
684
|
-
font-size: 0.
|
|
685
|
-
line-height: 1.
|
|
741
|
+
font-size: 0.6875rem;
|
|
742
|
+
line-height: 1.4;
|
|
686
743
|
}
|
|
687
744
|
|
|
688
745
|
.field.wide {
|
|
@@ -691,17 +748,17 @@ export let apiHosts = undefined
|
|
|
691
748
|
|
|
692
749
|
.accordion {
|
|
693
750
|
margin-top: 0.9rem;
|
|
694
|
-
border: 1px solid var(--relay-
|
|
695
|
-
border-radius:
|
|
696
|
-
background:
|
|
751
|
+
border: 1px solid var(--relay-surface-border);
|
|
752
|
+
border-radius: 0.625rem;
|
|
753
|
+
background: var(--relay-surface);
|
|
697
754
|
}
|
|
698
755
|
|
|
699
756
|
.accordion summary {
|
|
700
757
|
cursor: pointer;
|
|
701
758
|
list-style: none;
|
|
702
|
-
padding: 0.
|
|
759
|
+
padding: 0.75rem 0.9rem;
|
|
703
760
|
color: var(--relay-text);
|
|
704
|
-
font: 700 0.
|
|
761
|
+
font: 700 0.6875rem/1.1 var(--relay-font-mono);
|
|
705
762
|
text-transform: uppercase;
|
|
706
763
|
letter-spacing: 0.08em;
|
|
707
764
|
}
|
|
@@ -711,7 +768,7 @@ export let apiHosts = undefined
|
|
|
711
768
|
}
|
|
712
769
|
|
|
713
770
|
.accordion-body {
|
|
714
|
-
padding: 0 0.
|
|
771
|
+
padding: 0 0.9rem 0.9rem;
|
|
715
772
|
}
|
|
716
773
|
|
|
717
774
|
.advanced-grid {
|
|
@@ -723,12 +780,19 @@ export let apiHosts = undefined
|
|
|
723
780
|
select,
|
|
724
781
|
textarea {
|
|
725
782
|
width: 100%;
|
|
726
|
-
border: 1px solid
|
|
727
|
-
border-radius: 0.
|
|
728
|
-
background:
|
|
783
|
+
border: 1px solid var(--relay-surface-border);
|
|
784
|
+
border-radius: 0.5rem;
|
|
785
|
+
background: var(--relay-field-bg);
|
|
729
786
|
color: var(--relay-text);
|
|
730
|
-
padding: 0.
|
|
731
|
-
font: 500 0.
|
|
787
|
+
padding: 0.65rem 0.8rem;
|
|
788
|
+
font: 500 0.8125rem/1.4 var(--relay-font-body);
|
|
789
|
+
}
|
|
790
|
+
|
|
791
|
+
input:focus-visible,
|
|
792
|
+
select:focus-visible,
|
|
793
|
+
textarea:focus-visible {
|
|
794
|
+
outline: 2px solid var(--relay-cyan);
|
|
795
|
+
outline-offset: 1px;
|
|
732
796
|
}
|
|
733
797
|
|
|
734
798
|
textarea,
|
|
@@ -736,6 +800,11 @@ export let apiHosts = undefined
|
|
|
736
800
|
font-family: var(--relay-font-mono);
|
|
737
801
|
}
|
|
738
802
|
|
|
803
|
+
.mono-block strong {
|
|
804
|
+
font-size: 0.75rem;
|
|
805
|
+
overflow-wrap: anywhere;
|
|
806
|
+
}
|
|
807
|
+
|
|
739
808
|
.actions,
|
|
740
809
|
.deployment-box,
|
|
741
810
|
.instances {
|
|
@@ -749,11 +818,21 @@ export let apiHosts = undefined
|
|
|
749
818
|
gap: 0.3rem;
|
|
750
819
|
}
|
|
751
820
|
|
|
821
|
+
.deployment-box strong {
|
|
822
|
+
font-family: var(--relay-font-mono);
|
|
823
|
+
font-size: 0.75rem;
|
|
824
|
+
}
|
|
825
|
+
|
|
752
826
|
.instance-grid {
|
|
753
827
|
grid-template-columns: 1fr 1fr;
|
|
754
828
|
margin: 0.75rem 0;
|
|
755
829
|
}
|
|
756
830
|
|
|
831
|
+
.instance-grid strong {
|
|
832
|
+
font-size: 0.8125rem;
|
|
833
|
+
overflow-wrap: anywhere;
|
|
834
|
+
}
|
|
835
|
+
|
|
757
836
|
.chip-row {
|
|
758
837
|
display: flex;
|
|
759
838
|
gap: 0.4rem;
|
|
@@ -761,11 +840,16 @@ export let apiHosts = undefined
|
|
|
761
840
|
}
|
|
762
841
|
|
|
763
842
|
.chip {
|
|
843
|
+
border: 1px solid var(--relay-surface-border);
|
|
764
844
|
border-radius: 999px;
|
|
765
|
-
padding: 0.
|
|
766
|
-
background:
|
|
767
|
-
color: var(--relay-
|
|
768
|
-
font-
|
|
845
|
+
padding: 0.22rem 0.55rem;
|
|
846
|
+
background: transparent;
|
|
847
|
+
color: var(--relay-muted);
|
|
848
|
+
font-family: var(--relay-font-mono);
|
|
849
|
+
font-weight: 700;
|
|
850
|
+
font-size: 0.6563rem;
|
|
851
|
+
text-transform: uppercase;
|
|
852
|
+
letter-spacing: 0.06em;
|
|
769
853
|
}
|
|
770
854
|
|
|
771
855
|
.link-row {
|
|
@@ -775,9 +859,14 @@ export let apiHosts = undefined
|
|
|
775
859
|
}
|
|
776
860
|
|
|
777
861
|
.link-row a {
|
|
778
|
-
color:
|
|
862
|
+
color: var(--relay-link);
|
|
779
863
|
text-decoration: none;
|
|
780
|
-
font-weight:
|
|
864
|
+
font-weight: 600;
|
|
865
|
+
font-size: 0.8125rem;
|
|
866
|
+
}
|
|
867
|
+
|
|
868
|
+
.link-row a:hover {
|
|
869
|
+
text-decoration: underline;
|
|
781
870
|
}
|
|
782
871
|
|
|
783
872
|
.empty {
|
|
@@ -12,17 +12,17 @@
|
|
|
12
12
|
|
|
13
13
|
<style>
|
|
14
14
|
.accordion {
|
|
15
|
-
border: 1px solid var(--relay-
|
|
16
|
-
border-radius:
|
|
17
|
-
background:
|
|
15
|
+
border: 1px solid var(--relay-surface-border);
|
|
16
|
+
border-radius: 0.625rem;
|
|
17
|
+
background: var(--relay-surface);
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
summary {
|
|
21
21
|
cursor: pointer;
|
|
22
22
|
list-style: none;
|
|
23
|
-
padding: 0.
|
|
23
|
+
padding: 0.75rem 0.9rem;
|
|
24
24
|
color: var(--relay-text);
|
|
25
|
-
font: 700 0.
|
|
25
|
+
font: 700 0.6875rem/1.1 var(--relay-font-mono);
|
|
26
26
|
text-transform: uppercase;
|
|
27
27
|
letter-spacing: 0.08em;
|
|
28
28
|
}
|
|
@@ -32,6 +32,6 @@
|
|
|
32
32
|
}
|
|
33
33
|
|
|
34
34
|
.accordion-body {
|
|
35
|
-
padding: 0 0.
|
|
35
|
+
padding: 0 0.9rem 0.9rem;
|
|
36
36
|
}
|
|
37
37
|
</style>
|
|
@@ -20,12 +20,20 @@
|
|
|
20
20
|
|
|
21
21
|
<style>
|
|
22
22
|
.copy-button {
|
|
23
|
-
border: 1px solid
|
|
23
|
+
border: 1px solid var(--relay-surface-border);
|
|
24
24
|
border-radius: 999px;
|
|
25
|
-
background:
|
|
26
|
-
color: var(--relay-
|
|
25
|
+
background: transparent;
|
|
26
|
+
color: var(--relay-muted);
|
|
27
27
|
padding: 0.28rem 0.7rem;
|
|
28
|
-
font:
|
|
28
|
+
font: 700 0.6563rem/1 var(--relay-font-mono);
|
|
29
|
+
text-transform: uppercase;
|
|
30
|
+
letter-spacing: 0.06em;
|
|
29
31
|
cursor: pointer;
|
|
32
|
+
transition: color 150ms ease, border-color 150ms ease;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.copy-button:hover {
|
|
36
|
+
color: var(--relay-text);
|
|
37
|
+
border-color: var(--relay-cyan);
|
|
30
38
|
}
|
|
31
39
|
</style>
|
|
@@ -5,22 +5,45 @@
|
|
|
5
5
|
</script>
|
|
6
6
|
|
|
7
7
|
<button class={`launcher ${mode} ${open ? 'open' : ''}`} type="button" on:click={onToggle}>
|
|
8
|
+
<svg class="mark" viewBox="0 0 32 32" aria-hidden="true" focusable="false">
|
|
9
|
+
<line x1="17" y1="15.4" x2="19.6" y2="13" class="mark-link" stroke-width="2.4" stroke-linecap="round" />
|
|
10
|
+
<circle cx="11.5" cy="20.5" r="7" class="mark-node" />
|
|
11
|
+
<circle cx="23.5" cy="9.5" r="4.2" fill="none" class="mark-peer" stroke-width="2.8" />
|
|
12
|
+
</svg>
|
|
8
13
|
<span>Relay Button</span>
|
|
9
14
|
</button>
|
|
10
15
|
|
|
11
16
|
<style>
|
|
12
17
|
.launcher {
|
|
13
|
-
|
|
18
|
+
display: inline-flex;
|
|
19
|
+
align-items: center;
|
|
20
|
+
gap: 0.5rem;
|
|
21
|
+
border: 1px solid var(--relay-launcher-border);
|
|
14
22
|
border-radius: 999px;
|
|
15
|
-
padding: 0.
|
|
16
|
-
background:
|
|
17
|
-
color:
|
|
18
|
-
box-shadow:
|
|
19
|
-
font: 700 0.
|
|
23
|
+
padding: 0.75rem 1.1rem;
|
|
24
|
+
background: var(--relay-launcher-bg);
|
|
25
|
+
color: var(--relay-launcher-text);
|
|
26
|
+
box-shadow: var(--relay-launcher-shadow);
|
|
27
|
+
font: 700 0.78rem/1 var(--relay-font-mono);
|
|
20
28
|
letter-spacing: 0.08em;
|
|
21
29
|
text-transform: uppercase;
|
|
22
30
|
cursor: pointer;
|
|
23
|
-
transition: transform 180ms ease;
|
|
31
|
+
transition: transform 180ms ease, border-color 180ms ease;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.mark {
|
|
35
|
+
width: 1.15rem;
|
|
36
|
+
height: 1.15rem;
|
|
37
|
+
flex: none;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.mark-node {
|
|
41
|
+
fill: var(--relay-coral);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.mark-peer,
|
|
45
|
+
.mark-link {
|
|
46
|
+
stroke: var(--relay-cyan);
|
|
24
47
|
}
|
|
25
48
|
|
|
26
49
|
.launcher.floating {
|
|
@@ -33,12 +56,13 @@
|
|
|
33
56
|
.launcher.inline {
|
|
34
57
|
position: relative;
|
|
35
58
|
z-index: auto;
|
|
36
|
-
padding: 0.
|
|
37
|
-
font-size: 0.
|
|
59
|
+
padding: 0.5rem 0.85rem;
|
|
60
|
+
font-size: 0.72rem;
|
|
38
61
|
}
|
|
39
62
|
|
|
40
63
|
.launcher:hover,
|
|
41
64
|
.launcher.open {
|
|
42
65
|
transform: translateY(-2px) scale(1.02);
|
|
66
|
+
border-color: var(--relay-cyan);
|
|
43
67
|
}
|
|
44
68
|
</style>
|