@siyahi/ui 0.1.9-next.34 → 0.1.9-next.35
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/DESIGN.md +6 -5
- package/README.md +5 -5
- package/agents/examples/app-sidebar.tsx +0 -2
- package/agents/manifest.json +0 -2
- package/dist/components/registry/niko-table/core/data-table-error-boundary.js +1 -1
- package/dist/components/registry/niko-table/filters/table-faceted-filter.js +2 -2
- package/dist/components/siyahi/scatter-chart.js +1 -1
- package/dist/components/siyahi/status-badge.js +1 -0
- package/dist/components/ui/alert-dialog.d.ts +20 -0
- package/dist/components/ui/alert-dialog.js +94 -0
- package/dist/components/ui/aspect-ratio.d.ts +6 -0
- package/dist/components/ui/aspect-ratio.js +13 -0
- package/dist/components/ui/attachment.d.ts +25 -0
- package/dist/components/ui/attachment.js +104 -0
- package/dist/components/ui/bubble.d.ts +18 -0
- package/dist/components/ui/bubble.js +73 -0
- package/dist/components/ui/button-group.d.ts +12 -0
- package/dist/components/ui/button-group.js +41 -0
- package/dist/components/ui/button.d.ts +1 -1
- package/dist/components/ui/button.js +1 -1
- package/dist/components/ui/carousel.d.ts +30 -0
- package/dist/components/ui/carousel.js +131 -0
- package/dist/components/ui/checkbox.d.ts +5 -0
- package/dist/components/ui/checkbox.js +20 -0
- package/dist/components/ui/combobox.d.ts +26 -0
- package/dist/components/ui/combobox.js +162 -0
- package/dist/components/ui/command.js +1 -1
- package/dist/components/ui/direction.d.ts +2 -0
- package/dist/components/ui/direction.js +1 -0
- package/dist/components/ui/drawer.d.ts +18 -0
- package/dist/components/ui/drawer.js +123 -0
- package/dist/components/ui/empty.d.ts +13 -0
- package/dist/components/ui/empty.js +59 -0
- package/dist/components/ui/field.js +1 -1
- package/dist/components/ui/hover-card.d.ts +7 -0
- package/dist/components/ui/hover-card.js +36 -0
- package/dist/components/ui/input-otp.d.ts +13 -0
- package/dist/components/ui/input-otp.js +46 -0
- package/dist/components/ui/item.d.ts +24 -0
- package/dist/components/ui/item.js +121 -0
- package/dist/components/ui/kbd.d.ts +5 -0
- package/dist/components/ui/kbd.js +19 -0
- package/dist/components/ui/marker.d.ts +12 -0
- package/dist/components/ui/marker.js +43 -0
- package/dist/components/ui/menubar.d.ts +31 -0
- package/dist/components/ui/menubar.js +136 -0
- package/dist/components/ui/message-scroller.d.ts +12 -0
- package/dist/components/ui/message-scroller.js +60 -0
- package/dist/components/ui/message.d.ts +12 -0
- package/dist/components/ui/message.js +49 -0
- package/dist/components/ui/native-select.d.ts +10 -0
- package/dist/components/ui/native-select.js +38 -0
- package/dist/components/ui/navigation-menu.d.ts +13 -0
- package/dist/components/ui/navigation-menu.js +82 -0
- package/dist/components/ui/pagination.d.ts +19 -0
- package/dist/components/ui/pagination.js +80 -0
- package/dist/components/ui/questionnaire.d.ts +21 -0
- package/dist/components/ui/questionnaire.js +170 -0
- package/dist/components/ui/radio-group.d.ts +7 -0
- package/dist/components/ui/radio-group.js +26 -0
- package/dist/components/ui/resizable.d.ts +9 -0
- package/dist/components/ui/resizable.js +28 -0
- package/dist/components/ui/sidebar.js +1 -1
- package/dist/components/ui/spinner.d.ts +4 -0
- package/dist/components/ui/spinner.js +15 -0
- package/dist/components/ui/switch.d.ts +7 -0
- package/dist/components/ui/switch.js +19 -0
- package/dist/components/ui/toast.d.ts +18 -0
- package/dist/components/ui/toast.js +123 -0
- package/dist/components/ui/trace.d.ts +20 -0
- package/dist/components/ui/trace.js +75 -0
- package/dist/index.d.ts +31 -1
- package/dist/index.js +34 -4
- package/package.json +5 -3
- package/styles/siyahi.css +198 -47
- package/agents/report-rules.json +0 -7
- package/report.css +0 -146
package/styles/siyahi.css
CHANGED
|
@@ -24,6 +24,21 @@
|
|
|
24
24
|
*/
|
|
25
25
|
@custom-variant dark (@media (prefers-color-scheme: dark));
|
|
26
26
|
|
|
27
|
+
/*
|
|
28
|
+
* Nothing casts a drop shadow (DESIGN.md, "Floating surfaces lie flat"): every shadow size is transparent, so
|
|
29
|
+
* shadow-md and the rest draw nothing, on a component added later as on the ones here. The sizes stay defined, so
|
|
30
|
+
* a stock shadow class is still a known utility to Tailwind and the lint.
|
|
31
|
+
*/
|
|
32
|
+
@theme {
|
|
33
|
+
--shadow-2xs: 0 0 #0000;
|
|
34
|
+
--shadow-xs: 0 0 #0000;
|
|
35
|
+
--shadow-sm: 0 0 #0000;
|
|
36
|
+
--shadow-md: 0 0 #0000;
|
|
37
|
+
--shadow-lg: 0 0 #0000;
|
|
38
|
+
--shadow-xl: 0 0 #0000;
|
|
39
|
+
--shadow-2xl: 0 0 #0000;
|
|
40
|
+
}
|
|
41
|
+
|
|
27
42
|
@theme inline {
|
|
28
43
|
--font-sans: "Geist Variable", "Geist Fallback", ui-sans-serif, system-ui, sans-serif;
|
|
29
44
|
--font-mono: "Geist Mono Variable", "Geist Mono Fallback", ui-monospace, monospace;
|
|
@@ -325,7 +340,13 @@
|
|
|
325
340
|
[data-slot="calendar"],
|
|
326
341
|
[data-slot="toggle-group"],
|
|
327
342
|
[data-slot="code-block"],
|
|
328
|
-
[data-slot="price-chart"]
|
|
343
|
+
[data-slot="price-chart"],
|
|
344
|
+
[data-slot="button-group"],
|
|
345
|
+
[data-slot="input-otp-group"],
|
|
346
|
+
[data-slot="resizable-panel-group"],
|
|
347
|
+
[data-slot="attachment"],
|
|
348
|
+
[data-slot="bubble"],
|
|
349
|
+
[data-slot="questionnaire"]
|
|
329
350
|
) {
|
|
330
351
|
isolation: isolate;
|
|
331
352
|
}
|
|
@@ -409,11 +430,20 @@
|
|
|
409
430
|
[role="alertdialog"],
|
|
410
431
|
[role="menu"],
|
|
411
432
|
[role="listbox"],
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
433
|
+
input:not(
|
|
434
|
+
[type="checkbox"],
|
|
435
|
+
[type="radio"],
|
|
436
|
+
[type="range"],
|
|
437
|
+
[type="hidden"],
|
|
438
|
+
[type="file"],
|
|
439
|
+
[type="button"],
|
|
440
|
+
[type="submit"],
|
|
441
|
+
[type="reset"],
|
|
442
|
+
[type="color"]
|
|
443
|
+
),
|
|
444
|
+
textarea,
|
|
445
|
+
select,
|
|
446
|
+
[data-slot="select-trigger"]
|
|
417
447
|
),
|
|
418
448
|
[data-slot="slider-thumb"]:has(input:focus-visible) {
|
|
419
449
|
outline: none;
|
|
@@ -421,14 +451,74 @@
|
|
|
421
451
|
inset 0 0 0 2px var(--ring),
|
|
422
452
|
inset 0 0 0 4px var(--background);
|
|
423
453
|
}
|
|
424
|
-
|
|
425
|
-
|
|
454
|
+
/*
|
|
455
|
+
* A field is what HTML makes one, a text input, a textarea or a select, plus Base UI's select trigger, so a field in
|
|
456
|
+
* a component added later is covered without naming it. A field inside a box that holds it (an input group, a
|
|
457
|
+
* combobox's chips) shows its state on that box.
|
|
458
|
+
*/
|
|
459
|
+
:is(
|
|
460
|
+
input:not(
|
|
461
|
+
[type="checkbox"],
|
|
462
|
+
[type="radio"],
|
|
463
|
+
[type="range"],
|
|
464
|
+
[type="hidden"],
|
|
465
|
+
[type="file"],
|
|
466
|
+
[type="button"],
|
|
467
|
+
[type="submit"],
|
|
468
|
+
[type="reset"],
|
|
469
|
+
[type="color"]
|
|
470
|
+
),
|
|
471
|
+
textarea,
|
|
472
|
+
select,
|
|
473
|
+
[data-slot="select-trigger"]
|
|
474
|
+
):not(:is([data-slot="input-group"], [data-slot="combobox-chips"]) *):focus-visible,
|
|
475
|
+
:is([data-slot="input-group"], [data-slot="combobox-chips"]):has(
|
|
476
|
+
:is(
|
|
477
|
+
input:not(
|
|
478
|
+
[type="checkbox"],
|
|
479
|
+
[type="radio"],
|
|
480
|
+
[type="range"],
|
|
481
|
+
[type="hidden"],
|
|
482
|
+
[type="file"],
|
|
483
|
+
[type="button"],
|
|
484
|
+
[type="submit"],
|
|
485
|
+
[type="reset"],
|
|
486
|
+
[type="color"]
|
|
487
|
+
),
|
|
488
|
+
textarea,
|
|
489
|
+
select,
|
|
490
|
+
[data-slot="select-trigger"]
|
|
491
|
+
):focus-visible
|
|
492
|
+
) {
|
|
426
493
|
outline: none;
|
|
427
494
|
border-color: var(--ring);
|
|
428
495
|
box-shadow: inset 0 0 0 1px var(--ring);
|
|
429
496
|
}
|
|
430
|
-
:is(
|
|
431
|
-
|
|
497
|
+
:is(
|
|
498
|
+
input:not(
|
|
499
|
+
[type="checkbox"],
|
|
500
|
+
[type="radio"],
|
|
501
|
+
[type="range"],
|
|
502
|
+
[type="hidden"],
|
|
503
|
+
[type="file"],
|
|
504
|
+
[type="button"],
|
|
505
|
+
[type="submit"],
|
|
506
|
+
[type="reset"],
|
|
507
|
+
[type="color"]
|
|
508
|
+
),
|
|
509
|
+
textarea,
|
|
510
|
+
select,
|
|
511
|
+
[data-slot="select-trigger"]
|
|
512
|
+
):not(:is([data-slot="input-group"], [data-slot="combobox-chips"]) *)[aria-invalid="true"]:focus-visible,
|
|
513
|
+
/* Names the field as the focus rule above does, so this rule outranks it rather than losing on specificity. */
|
|
514
|
+
:is([data-slot="input-group"], [data-slot="combobox-chips"]):has(
|
|
515
|
+
:is(
|
|
516
|
+
input:not([type="checkbox"], [type="radio"], [type="range"], [type="hidden"], [type="file"], [type="button"], [type="submit"], [type="reset"], [type="color"]),
|
|
517
|
+
textarea,
|
|
518
|
+
select,
|
|
519
|
+
[data-slot="select-trigger"]
|
|
520
|
+
)[aria-invalid="true"]:focus-visible
|
|
521
|
+
) {
|
|
432
522
|
border-color: var(--destructive);
|
|
433
523
|
box-shadow: inset 0 0 0 1px var(--destructive);
|
|
434
524
|
}
|
|
@@ -460,17 +550,43 @@ svg :is(rect, circle, path)[tabindex]:focus-visible,
|
|
|
460
550
|
[class~="group/button"][class~="text-destructive"]:focus-visible,
|
|
461
551
|
[data-slot="code-block"][data-variant="destructive"]:has(> [data-slot="code-block-content"]:focus-visible),
|
|
462
552
|
:is(
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
[
|
|
553
|
+
input:not(
|
|
554
|
+
[type="checkbox"],
|
|
555
|
+
[type="radio"],
|
|
556
|
+
[type="range"],
|
|
557
|
+
[type="hidden"],
|
|
558
|
+
[type="file"],
|
|
559
|
+
[type="button"],
|
|
560
|
+
[type="submit"],
|
|
561
|
+
[type="reset"],
|
|
562
|
+
[type="color"]
|
|
563
|
+
),
|
|
564
|
+
textarea,
|
|
565
|
+
select,
|
|
566
|
+
[data-slot="select-trigger"]
|
|
567
|
+
):not(:is([data-slot="input-group"], [data-slot="combobox-chips"]) *)[aria-invalid="true"],
|
|
568
|
+
[class~="group/button"][aria-invalid="true"],
|
|
569
|
+
:is([data-slot="input-group"], [data-slot="combobox-chips"]):has([aria-invalid="true"]) {
|
|
469
570
|
border-color: var(--destructive);
|
|
470
571
|
}
|
|
471
572
|
/* An invalid field also takes a faint wash of the red, so it reads as the one to fix before its message is read. */
|
|
472
|
-
:is(
|
|
473
|
-
|
|
573
|
+
:is(
|
|
574
|
+
input:not(
|
|
575
|
+
[type="checkbox"],
|
|
576
|
+
[type="radio"],
|
|
577
|
+
[type="range"],
|
|
578
|
+
[type="hidden"],
|
|
579
|
+
[type="file"],
|
|
580
|
+
[type="button"],
|
|
581
|
+
[type="submit"],
|
|
582
|
+
[type="reset"],
|
|
583
|
+
[type="color"]
|
|
584
|
+
),
|
|
585
|
+
textarea,
|
|
586
|
+
select,
|
|
587
|
+
[data-slot="select-trigger"]
|
|
588
|
+
):not(:is([data-slot="input-group"], [data-slot="combobox-chips"]) *)[aria-invalid="true"],
|
|
589
|
+
:is([data-slot="input-group"], [data-slot="combobox-chips"]):has([aria-invalid="true"]) {
|
|
474
590
|
background-color: color-mix(in oklab, var(--destructive) var(--field-wash), var(--card));
|
|
475
591
|
}
|
|
476
592
|
|
|
@@ -485,48 +601,86 @@ svg :is(rect, circle, path)[tabindex]:focus-visible,
|
|
|
485
601
|
@apply font-mono text-2xs tracking-wider text-muted-foreground uppercase;
|
|
486
602
|
}
|
|
487
603
|
|
|
488
|
-
/*
|
|
604
|
+
/*
|
|
605
|
+
* A group's label in a menu (dropdown, context, menubar), a select's or a combobox's list or the
|
|
606
|
+
* command palette is a label over its items, set as one.
|
|
607
|
+
*/
|
|
489
608
|
:is(
|
|
490
|
-
[data-slot
|
|
491
|
-
[data-slot="
|
|
609
|
+
[data-slot$="menu-label"],
|
|
610
|
+
[data-slot="menubar-label"],
|
|
492
611
|
[data-slot="select-label"],
|
|
612
|
+
[data-slot="combobox-label"],
|
|
493
613
|
[data-slot="command-group"] [cmdk-group-heading]
|
|
494
614
|
) {
|
|
495
615
|
@apply font-mono text-2xs tracking-wider text-muted-foreground uppercase;
|
|
496
616
|
}
|
|
497
617
|
|
|
498
618
|
/*
|
|
499
|
-
* A
|
|
500
|
-
*
|
|
619
|
+
* A floating surface reads as a sheet of the page, not a bubble over it: no shadow (the theme has none) and the
|
|
620
|
+
* card's hairline for an edge. Stock shadcn edges a menu, a list, a popover, a dialog or a card with a fainter ring
|
|
621
|
+
* (ring-foreground/10, also behind a variant such as data-open:); it takes the hairline wherever it appears, on
|
|
622
|
+
* a component added later too. The
|
|
623
|
+
* chart's tooltip, which Recharts draws, is named.
|
|
501
624
|
*/
|
|
502
|
-
|
|
503
|
-
[data-slot="dropdown-menu-content"],
|
|
504
|
-
[data-slot="dropdown-menu-sub-content"],
|
|
505
|
-
[data-slot="context-menu-content"],
|
|
506
|
-
[data-slot="context-menu-sub-content"],
|
|
507
|
-
[data-slot="select-content"],
|
|
508
|
-
[data-slot="popover-content"],
|
|
509
|
-
[data-slot="dialog-content"],
|
|
510
|
-
[data-slot="sheet-content"],
|
|
511
|
-
[data-slot="chart"] .recharts-tooltip-wrapper > div
|
|
512
|
-
) {
|
|
513
|
-
--tw-shadow: 0 0 #0000;
|
|
625
|
+
[class*="ring-foreground/10"] {
|
|
514
626
|
--tw-ring-color: var(--border);
|
|
627
|
+
}
|
|
628
|
+
[data-slot="chart"] .recharts-tooltip-wrapper > div {
|
|
515
629
|
border-color: var(--border);
|
|
516
630
|
}
|
|
517
631
|
|
|
518
632
|
/*
|
|
519
|
-
* Square
|
|
520
|
-
*
|
|
633
|
+
* Square corners everywhere (DESIGN.md): every element and its ::before and ::after are square, whatever rounding
|
|
634
|
+
* a component asks for (rounded-full, rounded-[4px], hover:rounded-full, after:rounded-full), on a component added
|
|
635
|
+
* later too. Only what is round by nature stays round, by what it is rather than its classes: an avatar, a radio
|
|
636
|
+
* and a radio's dot (a questionnaire's radio choice too), a status dot and a spinner. A chart draws its round marks
|
|
637
|
+
* in SVG, which this does not touch.
|
|
638
|
+
*/
|
|
639
|
+
:not(
|
|
640
|
+
[data-slot^="avatar"],
|
|
641
|
+
[data-slot="message-avatar"],
|
|
642
|
+
[role="radio"],
|
|
643
|
+
[role="radio"] *,
|
|
644
|
+
[data-type="radio"] [data-slot$="indicator"],
|
|
645
|
+
[data-type="radio"] [data-slot$="indicator-dot"],
|
|
646
|
+
[data-slot="status-dot"],
|
|
647
|
+
.animate-spin
|
|
648
|
+
),
|
|
649
|
+
:not(
|
|
650
|
+
[data-slot^="avatar"],
|
|
651
|
+
[data-slot="message-avatar"],
|
|
652
|
+
[role="radio"],
|
|
653
|
+
[role="radio"] *,
|
|
654
|
+
[data-type="radio"] [data-slot$="indicator"],
|
|
655
|
+
[data-type="radio"] [data-slot$="indicator-dot"],
|
|
656
|
+
[data-slot="status-dot"],
|
|
657
|
+
.animate-spin
|
|
658
|
+
)::before,
|
|
659
|
+
:not(
|
|
660
|
+
[data-slot^="avatar"],
|
|
661
|
+
[data-slot="message-avatar"],
|
|
662
|
+
[role="radio"],
|
|
663
|
+
[role="radio"] *,
|
|
664
|
+
[data-type="radio"] [data-slot$="indicator"],
|
|
665
|
+
[data-type="radio"] [data-slot$="indicator-dot"],
|
|
666
|
+
[data-slot="status-dot"],
|
|
667
|
+
.animate-spin
|
|
668
|
+
)::after {
|
|
669
|
+
border-radius: 0;
|
|
670
|
+
}
|
|
671
|
+
|
|
672
|
+
/*
|
|
673
|
+
* Muted text is already the faintest that reads at 4.5:1 (contrast.mjs). Stock shadcn fades it further on some
|
|
674
|
+
* parts (text-muted-foreground/70 on a trace's description), under that bar, so a faded muted class reads as the
|
|
675
|
+
* muted colour itself.
|
|
521
676
|
*/
|
|
522
677
|
:is(
|
|
523
|
-
[
|
|
524
|
-
[
|
|
525
|
-
[
|
|
526
|
-
[
|
|
527
|
-
[data-slot="chart"] :is(.recharts-tooltip-wrapper, .recharts-legend-wrapper) [class~="rounded-[2px]"]
|
|
678
|
+
[class~="text-muted-foreground/50"],
|
|
679
|
+
[class~="text-muted-foreground/60"],
|
|
680
|
+
[class~="text-muted-foreground/70"],
|
|
681
|
+
[class~="text-muted-foreground/80"]
|
|
528
682
|
) {
|
|
529
|
-
|
|
683
|
+
color: var(--muted-foreground);
|
|
530
684
|
}
|
|
531
685
|
|
|
532
686
|
/*
|
|
@@ -808,6 +962,7 @@ div[data-slot="sidebar"]:not([data-side], [data-mobile]) {
|
|
|
808
962
|
[data-slot="toggle"],
|
|
809
963
|
[data-slot="toggle-group-item"],
|
|
810
964
|
[data-slot="select-trigger"],
|
|
965
|
+
[data-slot="native-select"],
|
|
811
966
|
[data-slot="tabs-trigger"],
|
|
812
967
|
[data-slot="input-group-button"]
|
|
813
968
|
) {
|
|
@@ -861,10 +1016,6 @@ div[data-slot="sidebar"]:not([data-side], [data-mobile]) {
|
|
|
861
1016
|
* SectionCards tile keeps its ring, which is important, and an exception
|
|
862
1017
|
* keeps its outline, which is more specific.
|
|
863
1018
|
*/
|
|
864
|
-
[data-slot="card"] {
|
|
865
|
-
--tw-ring-color: var(--border);
|
|
866
|
-
}
|
|
867
|
-
|
|
868
1019
|
@scope (:root, [data-surface="ruled"]) to ([data-surface="card"], [data-surface="open"]) {
|
|
869
1020
|
[data-slot="card"] {
|
|
870
1021
|
--tw-ring-color: transparent;
|
package/agents/report-rules.json
DELETED
package/report.css
DELETED
|
@@ -1,146 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Siyahi report stylesheet, generated from @siyahi/ui styles/siyahi.css.
|
|
3
|
-
* Inline it into a report's <style>. It makes no network requests: Geist is
|
|
4
|
-
* used when the viewer has it installed, and the system font otherwise.
|
|
5
|
-
*/
|
|
6
|
-
:root {
|
|
7
|
-
color-scheme: light dark;
|
|
8
|
-
--radius: 0rem;
|
|
9
|
-
--background: oklch(0.985 0 0);
|
|
10
|
-
--foreground: oklch(0.145 0 0);
|
|
11
|
-
--card: oklch(1 0 0);
|
|
12
|
-
--card-foreground: oklch(0.145 0 0);
|
|
13
|
-
--popover: oklch(1 0 0);
|
|
14
|
-
--popover-foreground: oklch(0.145 0 0);
|
|
15
|
-
--primary: oklch(0.205 0 0);
|
|
16
|
-
--primary-foreground: oklch(0.985 0 0);
|
|
17
|
-
--secondary: oklch(0.97 0 0);
|
|
18
|
-
--secondary-foreground: oklch(0.205 0 0);
|
|
19
|
-
--muted: oklch(0.97 0 0);
|
|
20
|
-
--muted-foreground: oklch(0.51 0 0);
|
|
21
|
-
--accent: oklch(0.97 0 0);
|
|
22
|
-
--accent-foreground: oklch(0.205 0 0);
|
|
23
|
-
--destructive: oklch(0.49 0.19 27.325);
|
|
24
|
-
--border: oklch(0.145 0 0 / 18%);
|
|
25
|
-
--input: oklch(0.64 0 0);
|
|
26
|
-
--ring: oklch(0.145 0 0);
|
|
27
|
-
--positive: oklch(0.527 0.145 150.069);
|
|
28
|
-
--positive-foreground: oklch(0.985 0 0);
|
|
29
|
-
--negative: oklch(0.577 0.235 27.325);
|
|
30
|
-
--negative-foreground: oklch(0.985 0 0);
|
|
31
|
-
--warning: oklch(0.555 0.149 48.998);
|
|
32
|
-
--warning-foreground: oklch(0.985 0 0);
|
|
33
|
-
--heat-1: 12%;
|
|
34
|
-
--heat-2: 24%;
|
|
35
|
-
--heat-3: 36%;
|
|
36
|
-
--heat-4: 48%;
|
|
37
|
-
--heat-5: 60%;
|
|
38
|
-
--wash: 7%;
|
|
39
|
-
--wash-edge: 45%;
|
|
40
|
-
--field-wash: 8%;
|
|
41
|
-
--bar-tint: 50%;
|
|
42
|
-
--link: oklch(0.51 0.2 275);
|
|
43
|
-
--chart-1: oklch(0.4 0.17 275);
|
|
44
|
-
--chart-2: oklch(0.66 0.13 70);
|
|
45
|
-
--chart-3: oklch(0.38 0.13 335);
|
|
46
|
-
--chart-4: oklch(0.65 0.11 235);
|
|
47
|
-
--chart-5: oklch(0.36 0.06 205);
|
|
48
|
-
--sidebar: oklch(0.985 0 0);
|
|
49
|
-
--sidebar-foreground: oklch(0.145 0 0);
|
|
50
|
-
--sidebar-primary: oklch(0.205 0 0);
|
|
51
|
-
--sidebar-primary-foreground: oklch(0.985 0 0);
|
|
52
|
-
--sidebar-accent: oklch(0.97 0 0);
|
|
53
|
-
--sidebar-accent-foreground: oklch(0.45 0.2 275);
|
|
54
|
-
--sidebar-border: oklch(0.145 0 0 / 18%);
|
|
55
|
-
--sidebar-ring: oklch(0.145 0 0);
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
@media (prefers-color-scheme: dark) {
|
|
59
|
-
:root {
|
|
60
|
-
--background: oklch(0.14 0 0);
|
|
61
|
-
--foreground: oklch(0.922 0 0);
|
|
62
|
-
--card: oklch(0.215 0 0);
|
|
63
|
-
--card-foreground: oklch(0.922 0 0);
|
|
64
|
-
--popover: oklch(0.215 0 0);
|
|
65
|
-
--popover-foreground: oklch(0.922 0 0);
|
|
66
|
-
--primary: oklch(0.922 0 0);
|
|
67
|
-
--primary-foreground: oklch(0.205 0 0);
|
|
68
|
-
--secondary: oklch(0.269 0 0);
|
|
69
|
-
--secondary-foreground: oklch(0.922 0 0);
|
|
70
|
-
--muted: oklch(0.269 0 0);
|
|
71
|
-
--muted-foreground: oklch(0.74 0 0);
|
|
72
|
-
--accent: oklch(0.269 0 0);
|
|
73
|
-
--accent-foreground: oklch(0.922 0 0);
|
|
74
|
-
--destructive: oklch(0.8 0.1 22.216);
|
|
75
|
-
--border: oklch(1 0 0 / 20%);
|
|
76
|
-
--input: oklch(0.62 0 0);
|
|
77
|
-
--ring: oklch(0.922 0 0);
|
|
78
|
-
--positive: oklch(0.69 0.16 151.711);
|
|
79
|
-
--positive-foreground: oklch(0.145 0 0);
|
|
80
|
-
--negative: oklch(0.704 0.187 22.216);
|
|
81
|
-
--negative-foreground: oklch(0.145 0 0);
|
|
82
|
-
--warning: oklch(0.828 0.169 84.429);
|
|
83
|
-
--warning-foreground: oklch(0.145 0 0);
|
|
84
|
-
--heat-1: 25%;
|
|
85
|
-
--heat-2: 33.75%;
|
|
86
|
-
--heat-3: 42.5%;
|
|
87
|
-
--heat-4: 51.25%;
|
|
88
|
-
--wash: 12%;
|
|
89
|
-
--wash-edge: 55%;
|
|
90
|
-
--field-wash: 12%;
|
|
91
|
-
--link: oklch(0.75 0.128 275);
|
|
92
|
-
--chart-1: oklch(0.58 0.2 275);
|
|
93
|
-
--chart-2: oklch(0.88 0.08 75);
|
|
94
|
-
--chart-3: oklch(0.58 0.16 335);
|
|
95
|
-
--chart-4: oklch(0.88 0.05 235);
|
|
96
|
-
--chart-5: oklch(0.56 0.08 205);
|
|
97
|
-
--sidebar: oklch(0.145 0 0);
|
|
98
|
-
--sidebar-foreground: oklch(0.922 0 0);
|
|
99
|
-
--sidebar-primary: oklch(0.922 0 0);
|
|
100
|
-
--sidebar-primary-foreground: oklch(0.205 0 0);
|
|
101
|
-
--sidebar-accent: oklch(0.269 0 0);
|
|
102
|
-
--sidebar-accent-foreground: oklch(0.8 0.1 275);
|
|
103
|
-
--sidebar-border: oklch(1 0 0 / 20%);
|
|
104
|
-
--sidebar-ring: oklch(0.922 0 0);
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
*,
|
|
109
|
-
::before,
|
|
110
|
-
::after {
|
|
111
|
-
box-sizing: border-box;
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
body {
|
|
115
|
-
margin: 0;
|
|
116
|
-
padding: 16px;
|
|
117
|
-
background: var(--background);
|
|
118
|
-
color: var(--foreground);
|
|
119
|
-
font-family: "Geist", "Geist Variable", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
|
|
120
|
-
font-size: 14px;
|
|
121
|
-
line-height: 1.5;
|
|
122
|
-
font-variant-numeric: tabular-nums;
|
|
123
|
-
-webkit-font-smoothing: antialiased;
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
code,
|
|
127
|
-
kbd,
|
|
128
|
-
pre,
|
|
129
|
-
samp {
|
|
130
|
-
font-family: "Geist Mono", "Geist Mono Variable", ui-monospace, SFMono-Regular, Menlo, monospace;
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
a {
|
|
134
|
-
color: var(--link);
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
@media (prefers-reduced-motion: reduce) {
|
|
138
|
-
*,
|
|
139
|
-
::before,
|
|
140
|
-
::after {
|
|
141
|
-
animation-duration: 0.01ms !important;
|
|
142
|
-
animation-iteration-count: 1 !important;
|
|
143
|
-
transition-duration: 0.01ms !important;
|
|
144
|
-
scroll-behavior: auto !important;
|
|
145
|
-
}
|
|
146
|
-
}
|