@typlog/ui 0.13.1 → 0.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/components.css CHANGED
@@ -656,6 +656,404 @@
656
656
  background-color: var(--gray-a9);
657
657
  }
658
658
 
659
+ @layer components {
660
+ .ui-Skeleton {
661
+ display: block;
662
+ min-height: var(--space-2);
663
+ border-radius: max(var(--radius-2), var(--radius-full));
664
+ background-color: var(--gray-a3);
665
+ animation: ui-skeleton-pulse 1.5s ease-in-out infinite;
666
+ }
667
+ }
668
+ @keyframes ui-skeleton-pulse {
669
+ 0%,
670
+ 100% {
671
+ opacity: 1;
672
+ }
673
+ 50% {
674
+ opacity: 0.55;
675
+ }
676
+ }
677
+ @media (prefers-reduced-motion: reduce) {
678
+ .ui-Skeleton {
679
+ animation: none;
680
+ }
681
+ }
682
+
683
+ @layer components {
684
+ .ui-Spinner {
685
+ display: inline-flex;
686
+ flex: none;
687
+ align-items: center;
688
+ justify-content: center;
689
+ width: var(--spinner-size);
690
+ height: var(--spinner-size);
691
+ color: var(--accent-9);
692
+ vertical-align: middle;
693
+ }
694
+ .ui-SpinnerGraphic {
695
+ display: block;
696
+ width: 100%;
697
+ height: 100%;
698
+ animation: ui-spin 800ms linear infinite;
699
+ }
700
+ .ui-SpinnerTrack,
701
+ .ui-SpinnerIndicator {
702
+ fill: none;
703
+ stroke-linecap: round;
704
+ stroke-width: var(--spinner-stroke-width);
705
+ }
706
+ .ui-SpinnerTrack {
707
+ stroke: var(--accent-a4);
708
+ }
709
+ .ui-SpinnerIndicator {
710
+ stroke: currentColor;
711
+ stroke-dasharray: 42 56.5;
712
+ stroke-dashoffset: 0;
713
+ }
714
+ }
715
+ .ui-Spinner:where(.r-size-1) {
716
+ --spinner-size: var(--space-3);
717
+ --spinner-stroke-width: 2.5;
718
+ }
719
+ .ui-Spinner:where(.r-size-2) {
720
+ --spinner-size: var(--space-4);
721
+ --spinner-stroke-width: 2.25;
722
+ }
723
+ .ui-Spinner:where(.r-size-3) {
724
+ --spinner-size: var(--space-5);
725
+ --spinner-stroke-width: 2;
726
+ }
727
+ @media (prefers-reduced-motion: reduce) {
728
+ .ui-SpinnerGraphic {
729
+ animation: none;
730
+ }
731
+ }
732
+
733
+ @layer components {
734
+ .ui-Empty {
735
+ display: flex;
736
+ flex-direction: column;
737
+ align-items: center;
738
+ justify-content: center;
739
+ box-sizing: border-box;
740
+ width: 100%;
741
+ padding: var(--empty-padding);
742
+ gap: var(--empty-section-gap);
743
+ border-radius: var(--empty-radius);
744
+ text-align: center;
745
+ }
746
+ }
747
+ .ui-Empty:where(.r-size-1) {
748
+ --empty-padding: var(--space-4);
749
+ --empty-radius: max(var(--radius-2), var(--radius-full));
750
+ --empty-section-gap: var(--space-3);
751
+ --empty-gap: var(--space-1);
752
+ --empty-title-font-size: var(--font-size-3);
753
+ --empty-title-line-height: var(--line-height-3);
754
+ --empty-description-font-size: var(--font-size-2);
755
+ --empty-description-line-height: var(--line-height-2);
756
+ }
757
+ .ui-Empty:where(.r-size-2) {
758
+ --empty-padding: var(--space-6);
759
+ --empty-radius: max(var(--radius-3), var(--radius-full));
760
+ --empty-section-gap: var(--space-4);
761
+ --empty-gap: var(--space-2);
762
+ --empty-title-font-size: var(--font-size-4);
763
+ --empty-title-line-height: var(--line-height-4);
764
+ --empty-description-font-size: var(--font-size-3);
765
+ --empty-description-line-height: var(--line-height-3);
766
+ }
767
+ .ui-Empty:where(.r-size-3) {
768
+ --empty-padding: var(--space-8);
769
+ --empty-radius: max(var(--radius-4), var(--radius-full));
770
+ --empty-section-gap: var(--space-5);
771
+ --empty-gap: var(--space-3);
772
+ --empty-title-font-size: var(--font-size-5);
773
+ --empty-title-line-height: var(--line-height-5);
774
+ --empty-description-font-size: var(--font-size-4);
775
+ --empty-description-line-height: var(--line-height-4);
776
+ }
777
+
778
+ .ui-EmptyHeader {
779
+ display: flex;
780
+ flex-direction: column;
781
+ align-items: center;
782
+ gap: var(--empty-gap);
783
+ }
784
+
785
+ .ui-EmptyMedia {
786
+ display: flex;
787
+ align-items: center;
788
+ justify-content: center;
789
+ color: var(--gray-11);
790
+ }
791
+ .ui-EmptyMedia:where(.r-variant-icon) {
792
+ width: var(--empty-media-size);
793
+ height: var(--empty-media-size);
794
+ border-radius: var(--empty-media-radius);
795
+ background-color: var(--gray-a3);
796
+ color: var(--gray-12);
797
+ }
798
+ .ui-EmptyMedia:where(.r-size-1) {
799
+ --empty-media-size: var(--space-6);
800
+ --empty-media-radius: max(var(--radius-2), var(--radius-full));
801
+ font-size: var(--font-size-3);
802
+ }
803
+ .ui-EmptyMedia:where(.r-size-2) {
804
+ --empty-media-size: var(--space-7);
805
+ --empty-media-radius: max(var(--radius-3), var(--radius-full));
806
+ font-size: var(--font-size-4);
807
+ }
808
+ .ui-EmptyMedia:where(.r-size-3) {
809
+ --empty-media-size: var(--space-8);
810
+ --empty-media-radius: max(var(--radius-4), var(--radius-full));
811
+ font-size: var(--font-size-5);
812
+ }
813
+
814
+ .ui-EmptyTitle {
815
+ margin: 0;
816
+ color: var(--gray-12);
817
+ font-size: var(--empty-title-font-size);
818
+ font-weight: var(--font-weight-semibold);
819
+ line-height: var(--empty-title-line-height);
820
+ }
821
+
822
+ .ui-EmptyDescription {
823
+ max-width: 40rem;
824
+ margin: 0;
825
+ color: var(--gray-11);
826
+ font-size: var(--empty-description-font-size);
827
+ line-height: var(--empty-description-line-height);
828
+ }
829
+
830
+ .ui-EmptyContent {
831
+ display: flex;
832
+ flex-wrap: wrap;
833
+ align-items: center;
834
+ justify-content: center;
835
+ gap: var(--empty-gap);
836
+ }
837
+ @layer components {
838
+ .ui-TreeRoot {
839
+ box-sizing: border-box;
840
+ display: block;
841
+ min-width: 0;
842
+ width: 100%;
843
+ margin: 0;
844
+ padding: var(--space-2);
845
+ overflow-x: auto;
846
+ border: 1px solid var(--gray-a6);
847
+ border-radius: var(--radius-3);
848
+ background-color: var(--color-background);
849
+ color: var(--gray-12);
850
+ list-style: none;
851
+ outline: none;
852
+ }
853
+ .ui-TreeItem {
854
+ display: block;
855
+ min-width: 0;
856
+ margin: 0;
857
+ padding: 0;
858
+ list-style: none;
859
+ outline: none;
860
+ }
861
+ .ui-TreeItemRow {
862
+ box-sizing: border-box;
863
+ display: flex;
864
+ align-items: center;
865
+ position: relative;
866
+ width: -moz-fit-content;
867
+ width: fit-content;
868
+ max-width: 100%;
869
+ min-width: 0;
870
+ height: var(--tree-row-height);
871
+ padding-block: var(--tree-row-padding);
872
+ padding-inline-start: calc((var(--tree-item-level) - 1) * var(--tree-item-indent));
873
+ color: var(--gray-12);
874
+ cursor: default;
875
+ -webkit-user-select: none;
876
+ -moz-user-select: none;
877
+ user-select: none;
878
+ }
879
+ .ui-TreeItemRow::before {
880
+ position: absolute;
881
+ inset-block: 0;
882
+ inset-inline-start: calc(var(--tree-item-indent) / 2 - 0.5px);
883
+ width: calc((var(--tree-item-level) - 1) * var(--tree-item-indent));
884
+ background: repeating-linear-gradient(
885
+ to right,
886
+ var(--tree-guide-color) 0,
887
+ var(--tree-guide-color) 1px,
888
+ transparent 1px var(--tree-item-indent)
889
+ );
890
+ content: '';
891
+ pointer-events: none;
892
+ }
893
+ .ui-TreeItemTarget {
894
+ box-sizing: border-box;
895
+ display: inline-flex;
896
+ align-items: center;
897
+ min-width: 0;
898
+ max-width: 100%;
899
+ gap: var(--tree-item-gap);
900
+ min-height: calc(var(--tree-row-height) - var(--tree-row-padding) * 2);
901
+ padding-inline: var(--tree-target-padding-inline);
902
+ border-radius: var(--tree-item-radius);
903
+ color: inherit;
904
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace;
905
+ line-height: 1.4;
906
+ position: relative;
907
+ z-index: 1;
908
+ }
909
+ .ui-TreeItemIndicator {
910
+ box-sizing: border-box;
911
+ display: inline-flex;
912
+ flex: 0 0 var(--tree-indicator-size);
913
+ align-items: center;
914
+ justify-content: center;
915
+ width: var(--tree-indicator-size);
916
+ height: var(--tree-indicator-size);
917
+ color: var(--gray-9);
918
+ cursor: pointer;
919
+ }
920
+ .ui-TreeItemIndicator:where([data-has-children]) {
921
+ color: var(--gray-11);
922
+ }
923
+ .ui-TreeItemIndicator:where(:not([data-has-children])) {
924
+ visibility: hidden;
925
+ pointer-events: none;
926
+ }
927
+ .ui-TreeItemIndicatorGraphic {
928
+ width: var(--tree-indicator-icon-size);
929
+ height: var(--tree-indicator-icon-size);
930
+ transition: transform 120ms ease;
931
+ }
932
+ .ui-TreeItemIndicator:where([data-expanded]) .ui-TreeItemIndicatorGraphic {
933
+ transform: rotate(90deg);
934
+ }
935
+ .ui-TreeItemIcon {
936
+ display: inline-flex;
937
+ flex: 0 0 var(--tree-icon-size);
938
+ align-items: center;
939
+ justify-content: center;
940
+ width: var(--tree-icon-size);
941
+ height: var(--tree-icon-size);
942
+ color: var(--gray-10);
943
+ }
944
+ .ui-TreeItemIconGraphic,
945
+ .ui-TreeItemTrailingIcon {
946
+ width: var(--tree-icon-graphic-size);
947
+ height: var(--tree-icon-graphic-size);
948
+ }
949
+ .ui-TreeItemText {
950
+ min-width: 0;
951
+ overflow: hidden;
952
+ flex: 1 1 auto;
953
+ font-size: var(--tree-item-font-size);
954
+ line-height: 1.4;
955
+ letter-spacing: var(--tree-item-letter-spacing);
956
+ text-overflow: ellipsis;
957
+ white-space: nowrap;
958
+ }
959
+ .ui-TreeItemTrailing {
960
+ display: inline-flex;
961
+ flex: none;
962
+ align-items: center;
963
+ justify-content: center;
964
+ color: var(--gray-9);
965
+ font-family: var(--default-font-family);
966
+ font-size: var(--font-size-1);
967
+ line-height: var(--line-height-1);
968
+ }
969
+ .ui-TreeItem:where(:not([data-disabled])):where(:hover) .ui-TreeItemRow {
970
+ color: var(--gray-12);
971
+ }
972
+ .ui-TreeItem:where(:not([data-disabled])):where(:hover) .ui-TreeItemTarget {
973
+ background-color: var(--gray-a3);
974
+ }
975
+ .ui-TreeItem:where([data-selected]) .ui-TreeItemTarget {
976
+ background-color: var(--accent-a3);
977
+ color: var(--accent-a11);
978
+ }
979
+ .ui-TreeItem:where([data-selected]) .ui-TreeItemIcon {
980
+ color: var(--accent-a11);
981
+ }
982
+ .ui-TreeItem:where(.r-high-contrast[data-selected]) .ui-TreeItemTarget {
983
+ background-color: var(--accent-a5);
984
+ color: var(--accent-12);
985
+ }
986
+ .ui-TreeItem:where(:focus-visible) .ui-TreeItemTarget {
987
+ outline: 2px solid var(--focus-8);
988
+ outline-offset: -2px;
989
+ }
990
+ .ui-TreeItem:where([data-disabled]) .ui-TreeItemRow {
991
+ color: var(--gray-a8);
992
+ cursor: not-allowed;
993
+ }
994
+ .ui-TreeItem:where([data-disabled]) .ui-TreeItemIndicator {
995
+ cursor: not-allowed;
996
+ }
997
+ .ui-TreeRoot:where(.r-size-1) {
998
+ --tree-row-height: var(--space-5);
999
+ --tree-row-padding: var(--space-1);
1000
+ --tree-item-indent: var(--space-4);
1001
+ --tree-item-gap: var(--space-1);
1002
+ --tree-target-padding-inline: var(--space-1);
1003
+ --tree-indicator-size: var(--space-4);
1004
+ --tree-indicator-icon-size: var(--space-2);
1005
+ --tree-icon-size: var(--space-4);
1006
+ --tree-icon-graphic-size: var(--space-3);
1007
+ --tree-item-font-size: var(--font-size-1);
1008
+ --tree-item-letter-spacing: var(--letter-spacing-1);
1009
+ --tree-item-radius: max(var(--radius-1), var(--radius-full));
1010
+ --tree-guide-color: var(--gray-a5);
1011
+ }
1012
+ .ui-TreeRoot:where(.r-size-2) {
1013
+ --tree-row-height: var(--space-6);
1014
+ --tree-row-padding: var(--space-1);
1015
+ --tree-item-indent: var(--space-5);
1016
+ --tree-item-gap: var(--space-2);
1017
+ --tree-target-padding-inline: var(--space-1);
1018
+ --tree-indicator-size: var(--space-5);
1019
+ --tree-indicator-icon-size: var(--space-3);
1020
+ --tree-icon-size: var(--space-5);
1021
+ --tree-icon-graphic-size: var(--space-4);
1022
+ --tree-item-font-size: var(--font-size-2);
1023
+ --tree-item-letter-spacing: var(--letter-spacing-2);
1024
+ --tree-item-radius: max(var(--radius-2), var(--radius-full));
1025
+ --tree-guide-color: var(--gray-a5);
1026
+ }
1027
+ .ui-TreeRoot:where(.r-size-3) {
1028
+ --tree-row-height: var(--space-7);
1029
+ --tree-row-padding: var(--space-1);
1030
+ --tree-item-indent: var(--space-6);
1031
+ --tree-item-gap: var(--space-2);
1032
+ --tree-target-padding-inline: var(--space-2);
1033
+ --tree-indicator-size: var(--space-6);
1034
+ --tree-indicator-icon-size: var(--space-4);
1035
+ --tree-icon-size: var(--space-6);
1036
+ --tree-icon-graphic-size: var(--space-5);
1037
+ --tree-item-font-size: var(--font-size-3);
1038
+ --tree-item-letter-spacing: var(--letter-spacing-3);
1039
+ --tree-item-radius: max(var(--radius-3), var(--radius-full));
1040
+ --tree-guide-color: var(--gray-a5);
1041
+ }
1042
+ .ui-TreeRoot:where(:dir(rtl)) .ui-TreeItemRow::before {
1043
+ background: repeating-linear-gradient(
1044
+ to left,
1045
+ var(--tree-guide-color) 0,
1046
+ var(--tree-guide-color) 1px,
1047
+ transparent 1px var(--tree-item-indent)
1048
+ );
1049
+ }
1050
+ }
1051
+ @media (prefers-reduced-motion: reduce) {
1052
+ .ui-TreeItemIndicatorGraphic {
1053
+ transition: none;
1054
+ }
1055
+ }
1056
+
659
1057
  .ui-Tooltip {
660
1058
  box-sizing: border-box;
661
1059
  padding: var(--space-1) var(--space-2);
@@ -1202,6 +1600,665 @@ to {
1202
1600
  .ui-NavigationMenuContent:where([data-motion="to-end"]) {
1203
1601
  --navigation-menu-content-animation: exitToRight 250ms ease;
1204
1602
  }
1603
+ @layer components {
1604
+ .ui-SidebarProvider {
1605
+ box-sizing: border-box;
1606
+ display: flex;
1607
+ min-height: 0;
1608
+ min-width: 0;
1609
+ position: relative;
1610
+ width: 100%;
1611
+ }
1612
+ .ui-SidebarProvider:where([data-inset='true']) {
1613
+ background-color: var(--gray-2);
1614
+ }
1615
+ .ui-Sidebar {
1616
+ --sidebar-transition-duration: 200ms;
1617
+
1618
+ align-self: stretch;
1619
+ box-sizing: border-box;
1620
+ flex: 0 0 auto;
1621
+ min-height: 0;
1622
+ min-width: 0;
1623
+ position: relative;
1624
+ transition:
1625
+ margin-inline-end var(--sidebar-transition-duration) ease,
1626
+ margin-inline-start var(--sidebar-transition-duration) ease,
1627
+ transform var(--sidebar-transition-duration) ease;
1628
+ z-index: 1;
1629
+ width: var(--sidebar-width);
1630
+ }
1631
+ .ui-Sidebar:where(.r-collapsible-icon) {
1632
+ transition:
1633
+ margin-inline-end var(--sidebar-transition-duration) ease,
1634
+ margin-inline-start var(--sidebar-transition-duration) ease,
1635
+ transform var(--sidebar-transition-duration) ease,
1636
+ width var(--sidebar-transition-duration) ease;
1637
+ }
1638
+ .ui-Sidebar:where(.r-side-left) {
1639
+ order: 0;
1640
+ }
1641
+ .ui-Sidebar:where(.r-side-right) {
1642
+ order: 2;
1643
+ }
1644
+ .ui-Sidebar:where(.r-variant-inset, .r-variant-floating) {
1645
+ padding: var(--space-2);
1646
+ }
1647
+ .ui-Sidebar:where(.r-collapsible-icon.r-variant-default)[data-collapsed='true'] {
1648
+ width: var(--sidebar-collapsed-width);
1649
+ }
1650
+ .ui-Sidebar:where(.r-collapsible-icon.r-variant-floating, .r-collapsible-icon.r-variant-inset)[data-collapsed='true'] {
1651
+ width: calc(var(--sidebar-collapsed-width) + var(--space-2) + var(--space-2));
1652
+ }
1653
+ .ui-Sidebar:where(.r-collapsible-offcanvas.r-side-left)[data-collapsed='true'] {
1654
+ margin-inline-end: calc(0px - var(--sidebar-width));
1655
+ transform: translateX(calc(0px - var(--sidebar-width) - var(--space-2)));
1656
+ }
1657
+ .ui-Sidebar:where(.r-collapsible-offcanvas.r-side-right)[data-collapsed='true'] {
1658
+ margin-inline-start: calc(0px - var(--sidebar-width));
1659
+ transform: translateX(calc(var(--sidebar-width) + var(--space-2)));
1660
+ }
1661
+ .ui-SidebarPanel {
1662
+ box-sizing: border-box;
1663
+ color: var(--gray-12);
1664
+ display: flex;
1665
+ flex-direction: column;
1666
+ min-height: 0;
1667
+ outline: none;
1668
+ overflow: hidden;
1669
+ position: relative;
1670
+ }
1671
+ .ui-SidebarPanel:where(.r-desktop) {
1672
+ height: 100%;
1673
+ inset-block: 0;
1674
+ }
1675
+ .ui-Sidebar:where(.r-variant-default.r-side-left) > .ui-SidebarPanel:where(.r-desktop),
1676
+ .ui-SidebarPanel:where(.r-mobile.r-variant-default.r-side-left) {
1677
+ border-inline-end: 1px solid var(--gray-a5);
1678
+ }
1679
+ .ui-Sidebar:where(.r-variant-default.r-side-right) > .ui-SidebarPanel:where(.r-desktop),
1680
+ .ui-SidebarPanel:where(.r-mobile.r-variant-default.r-side-right) {
1681
+ border-inline-start: 1px solid var(--gray-a5);
1682
+ }
1683
+ .ui-Sidebar:where(.r-variant-floating) > .ui-SidebarPanel:where(.r-desktop),
1684
+ .ui-SidebarPanel:where(.r-mobile.r-variant-floating) {
1685
+ border-radius: var(--radius-4);
1686
+ box-shadow: var(--shadow-3);
1687
+ }
1688
+ .ui-SidebarHeader,
1689
+ .ui-SidebarFooter {
1690
+ align-items: center;
1691
+ box-sizing: border-box;
1692
+ display: flex;
1693
+ flex: 0 0 auto;
1694
+ gap: var(--space-2);
1695
+ line-height: 1;
1696
+ min-height: calc(3rem * var(--scaling));
1697
+ padding: var(--space-3);
1698
+ }
1699
+ .ui-SidebarBody {
1700
+ box-sizing: border-box;
1701
+ flex: 1 1 auto;
1702
+ min-height: 0;
1703
+ overflow: auto;
1704
+ overscroll-behavior: contain;
1705
+ padding: var(--space-2);
1706
+ }
1707
+ .ui-SidebarInset {
1708
+ background-color: var(--color-background);
1709
+ box-sizing: border-box;
1710
+ flex: 1 1 auto;
1711
+ min-height: 0;
1712
+ min-width: 0;
1713
+ order: 1;
1714
+ position: relative;
1715
+ }
1716
+ .ui-SidebarProvider:where([data-inset='true']) > .ui-SidebarInset {
1717
+ border-radius: var(--radius-4);
1718
+ box-shadow: var(--shadow-3);
1719
+ margin: var(--space-2);
1720
+ overflow: hidden;
1721
+ }
1722
+ .ui-SidebarTrigger {
1723
+ align-items: center;
1724
+ -webkit-appearance: none;
1725
+ -moz-appearance: none;
1726
+ appearance: none;
1727
+ background: transparent;
1728
+ border: 0;
1729
+ border-radius: var(--radius-2);
1730
+ color: var(--gray-11);
1731
+ cursor: pointer;
1732
+ display: inline-flex;
1733
+ height: calc(2rem * var(--scaling));
1734
+ justify-content: center;
1735
+ padding: 0;
1736
+ width: calc(2rem * var(--scaling));
1737
+ }
1738
+ .ui-SidebarTrigger:not([data-disabled]):hover {
1739
+ background-color: var(--gray-a3);
1740
+ color: var(--gray-12);
1741
+ }
1742
+ .ui-SidebarTrigger:focus-visible,
1743
+ .ui-SidebarRail:focus-visible {
1744
+ outline: 2px solid var(--focus-8);
1745
+ outline-offset: 2px;
1746
+ }
1747
+ .ui-SidebarTrigger:where([data-disabled]) {
1748
+ cursor: not-allowed;
1749
+ opacity: 0.5;
1750
+ }
1751
+ .ui-SidebarTriggerIcon {
1752
+ fill: none;
1753
+ height: 1rem;
1754
+ stroke: currentColor;
1755
+ stroke-linecap: round;
1756
+ stroke-linejoin: round;
1757
+ stroke-width: 1.25;
1758
+ width: 1rem;
1759
+ }
1760
+ .ui-SidebarRail {
1761
+ -webkit-appearance: none;
1762
+ -moz-appearance: none;
1763
+ appearance: none;
1764
+ background: transparent;
1765
+ border: 0;
1766
+ cursor: pointer;
1767
+ height: 100%;
1768
+ inset-block: 0;
1769
+ padding: 0;
1770
+ position: absolute;
1771
+ width: 12px;
1772
+ z-index: 2;
1773
+ }
1774
+ .ui-SidebarRail::after {
1775
+ background-color: transparent;
1776
+ content: '';
1777
+ height: 100%;
1778
+ inset-block-start: 0;
1779
+ position: absolute;
1780
+ transition: background-color 120ms ease;
1781
+ width: 2px;
1782
+ }
1783
+ .ui-SidebarRail:hover::after,
1784
+ .ui-SidebarRail:focus-visible::after {
1785
+ background-color: var(--accent-a8);
1786
+ }
1787
+ .ui-Sidebar:where(.r-side-left) .ui-SidebarRail {
1788
+ inset-inline-end: -6px;
1789
+ }
1790
+ .ui-Sidebar:where(.r-side-left) .ui-SidebarRail::after {
1791
+ inset-inline-end: 5px;
1792
+ }
1793
+ .ui-Sidebar:where(.r-side-right) .ui-SidebarRail {
1794
+ inset-inline-start: -6px;
1795
+ }
1796
+ .ui-Sidebar:where(.r-side-right) .ui-SidebarRail::after {
1797
+ inset-inline-start: 5px;
1798
+ }
1799
+ .ui-Sidebar:where(.r-collapsible-none) .ui-SidebarRail,
1800
+ .ui-SidebarPanel:where(.r-mobile) .ui-SidebarRail,
1801
+ .ui-SidebarTrigger:where([data-mobile='false'][data-collapsible='none']) {
1802
+ display: none;
1803
+ }
1804
+ .ui-Sidebar:where(.r-collapsible-icon)[data-collapsed='true'] .ui-SidebarHeader,
1805
+ .ui-Sidebar:where(.r-collapsible-icon)[data-collapsed='true'] .ui-SidebarFooter {
1806
+ justify-content: center;
1807
+ padding-inline: var(--space-2);
1808
+ }
1809
+ .ui-SidebarGroup {
1810
+ display: flex;
1811
+ flex-direction: column;
1812
+ gap: var(--space-1);
1813
+ min-width: 0;
1814
+ }
1815
+ .ui-SidebarGroup + .ui-SidebarGroup {
1816
+ margin-block-start: var(--space-4);
1817
+ }
1818
+ .ui-SidebarGroupLabel {
1819
+ color: var(--gray-10);
1820
+ font-size: var(--font-size-1);
1821
+ font-weight: var(--font-weight-medium);
1822
+ letter-spacing: var(--letter-spacing-1);
1823
+ line-height: var(--line-height-1);
1824
+ overflow: hidden;
1825
+ padding: var(--space-1) var(--space-2);
1826
+ text-overflow: ellipsis;
1827
+ white-space: nowrap;
1828
+ }
1829
+ .ui-SidebarMenu,
1830
+ .ui-SidebarMenuSub {
1831
+ list-style: none;
1832
+ margin: 0;
1833
+ padding: 0;
1834
+ }
1835
+ .ui-SidebarMenu {
1836
+ display: flex;
1837
+ flex-direction: column;
1838
+ gap: var(--sidebar-menu-list-gap);
1839
+ width: 100%;
1840
+ }
1841
+ .ui-SidebarMenu:where(.r-size-1) {
1842
+ --sidebar-menu-list-gap: 0;
1843
+ --sidebar-menu-button-height: calc(1.75rem * var(--scaling));
1844
+ --sidebar-menu-button-padding-block: calc(var(--space-1) / 2);
1845
+ --sidebar-menu-button-padding-inline: var(--space-1);
1846
+ --sidebar-menu-button-gap: var(--space-1);
1847
+ --sidebar-menu-button-font-size: var(--font-size-1);
1848
+ --sidebar-menu-button-line-height: var(--line-height-1);
1849
+ --sidebar-menu-icon-size: calc(0.75rem * var(--scaling));
1850
+ --sidebar-menu-sub-gap: 0;
1851
+ --sidebar-menu-sub-margin-block: 0;
1852
+ --sidebar-menu-sub-margin-inline: var(--space-3);
1853
+ --sidebar-menu-sub-padding-inline: var(--space-1);
1854
+ --sidebar-menu-sub-button-height: calc(1.5rem * var(--scaling));
1855
+ --sidebar-menu-sub-button-padding-block: 0;
1856
+ --sidebar-menu-sub-button-padding-inline: var(--space-1);
1857
+ --sidebar-menu-sub-button-gap: var(--space-1);
1858
+ --sidebar-menu-sub-button-font-size: var(--font-size-1);
1859
+ --sidebar-menu-sub-button-line-height: var(--line-height-1);
1860
+ --sidebar-menu-sub-icon-size: calc(0.6875rem * var(--scaling));
1861
+ }
1862
+ .ui-SidebarMenu:where(.r-size-2) {
1863
+ --sidebar-menu-list-gap: calc(var(--space-1) / 2);
1864
+ --sidebar-menu-button-height: calc(2rem * var(--scaling));
1865
+ --sidebar-menu-button-padding-block: var(--space-1);
1866
+ --sidebar-menu-button-padding-inline: var(--space-2);
1867
+ --sidebar-menu-button-gap: var(--space-2);
1868
+ --sidebar-menu-button-font-size: var(--font-size-1);
1869
+ --sidebar-menu-button-line-height: var(--line-height-1);
1870
+ --sidebar-menu-icon-size: calc(0.875rem * var(--scaling));
1871
+ --sidebar-menu-sub-gap: calc(var(--space-1) / 2);
1872
+ --sidebar-menu-sub-margin-block: calc(var(--space-1) / 2);
1873
+ --sidebar-menu-sub-margin-inline: var(--space-4);
1874
+ --sidebar-menu-sub-padding-inline: var(--space-1);
1875
+ --sidebar-menu-sub-button-height: calc(1.75rem * var(--scaling));
1876
+ --sidebar-menu-sub-button-padding-block: calc(var(--space-1) / 2);
1877
+ --sidebar-menu-sub-button-padding-inline: var(--space-2);
1878
+ --sidebar-menu-sub-button-gap: var(--space-2);
1879
+ --sidebar-menu-sub-button-font-size: var(--font-size-1);
1880
+ --sidebar-menu-sub-button-line-height: var(--line-height-1);
1881
+ --sidebar-menu-sub-icon-size: calc(0.75rem * var(--scaling));
1882
+ }
1883
+ .ui-SidebarMenu:where(.r-size-3) {
1884
+ --sidebar-menu-list-gap: var(--space-1);
1885
+ --sidebar-menu-button-height: calc(2.25rem * var(--scaling));
1886
+ --sidebar-menu-button-padding-block: var(--space-2);
1887
+ --sidebar-menu-button-padding-inline: var(--space-2);
1888
+ --sidebar-menu-button-gap: var(--space-3);
1889
+ --sidebar-menu-button-font-size: var(--font-size-2);
1890
+ --sidebar-menu-button-line-height: var(--line-height-2);
1891
+ --sidebar-menu-icon-size: calc(1rem * var(--scaling));
1892
+ --sidebar-menu-sub-gap: var(--space-1);
1893
+ --sidebar-menu-sub-margin-block: var(--space-1);
1894
+ --sidebar-menu-sub-margin-inline: calc(var(--space-4) + var(--space-1));
1895
+ --sidebar-menu-sub-padding-inline: var(--space-2);
1896
+ --sidebar-menu-sub-button-height: calc(2rem * var(--scaling));
1897
+ --sidebar-menu-sub-button-padding-block: var(--space-1);
1898
+ --sidebar-menu-sub-button-padding-inline: var(--space-2);
1899
+ --sidebar-menu-sub-button-gap: var(--space-3);
1900
+ --sidebar-menu-sub-button-font-size: var(--font-size-1);
1901
+ --sidebar-menu-sub-button-line-height: var(--line-height-1);
1902
+ --sidebar-menu-sub-icon-size: calc(0.875rem * var(--scaling));
1903
+ }
1904
+ .ui-SidebarMenuItem,
1905
+ .ui-SidebarMenuSubItem {
1906
+ min-width: 0;
1907
+ position: relative;
1908
+ }
1909
+ .ui-SidebarMenuButton,
1910
+ .ui-SidebarMenuSubButton {
1911
+ align-items: center;
1912
+ -webkit-appearance: none;
1913
+ -moz-appearance: none;
1914
+ appearance: none;
1915
+ background-color: transparent;
1916
+ border: 0;
1917
+ border-radius: var(--radius-2);
1918
+ box-sizing: border-box;
1919
+ color: var(--gray-11);
1920
+ cursor: pointer;
1921
+ display: flex;
1922
+ font-family: inherit;
1923
+ font-size: var(--sidebar-menu-button-font-size);
1924
+ gap: var(--sidebar-menu-button-gap);
1925
+ justify-content: flex-start;
1926
+ line-height: var(--sidebar-menu-button-line-height);
1927
+ min-height: var(--sidebar-menu-button-height);
1928
+ min-width: 0;
1929
+ overflow: hidden;
1930
+ padding-block: var(--sidebar-menu-button-padding-block);
1931
+ padding-inline: var(--sidebar-menu-button-padding-inline);
1932
+ text-align: start;
1933
+ text-decoration: none;
1934
+ white-space: nowrap;
1935
+ width: 100%;
1936
+ }
1937
+ .ui-SidebarMenuButtonIcon,
1938
+ .ui-SidebarMenuButtonTrailing,
1939
+ .ui-SidebarMenuSubButtonIcon,
1940
+ .ui-SidebarMenuSubButtonTrailing {
1941
+ align-items: center;
1942
+ display: inline-flex;
1943
+ flex: 0 0 auto;
1944
+ justify-content: center;
1945
+ }
1946
+ .ui-SidebarMenuButtonIconGraphic,
1947
+ .ui-SidebarMenuButtonTrailingIcon {
1948
+ height: var(--sidebar-menu-icon-size);
1949
+ width: var(--sidebar-menu-icon-size);
1950
+ }
1951
+ .ui-SidebarMenuSubButtonIconGraphic,
1952
+ .ui-SidebarMenuSubButtonTrailingIcon {
1953
+ height: var(--sidebar-menu-sub-icon-size);
1954
+ width: var(--sidebar-menu-sub-icon-size);
1955
+ }
1956
+ .ui-SidebarMenuButtonText,
1957
+ .ui-SidebarMenuSubButtonText {
1958
+ flex: 1 1 auto;
1959
+ min-width: 0;
1960
+ overflow: hidden;
1961
+ text-overflow: ellipsis;
1962
+ }
1963
+ .ui-SidebarMenuButtonTrailing,
1964
+ .ui-SidebarMenuSubButtonTrailing {
1965
+ margin-inline-start: auto;
1966
+ }
1967
+ .ui-SidebarMenuButtonTrailing > .ui-CollapsibleIndicator {
1968
+ block-size: var(--sidebar-menu-icon-size);
1969
+ color: var(--gray-10);
1970
+ flex: 0 0 auto;
1971
+ font-size: var(--sidebar-menu-icon-size);
1972
+ inline-size: var(--sidebar-menu-icon-size);
1973
+ }
1974
+ .ui-SidebarMenuSubButtonTrailing > .ui-CollapsibleIndicator {
1975
+ block-size: var(--sidebar-menu-sub-icon-size);
1976
+ color: var(--gray-10);
1977
+ flex: 0 0 auto;
1978
+ font-size: var(--sidebar-menu-sub-icon-size);
1979
+ inline-size: var(--sidebar-menu-sub-icon-size);
1980
+ }
1981
+ .ui-SidebarMenuButton .ui-CollapsibleTriggerText {
1982
+ align-items: center;
1983
+ display: flex;
1984
+ gap: var(--sidebar-menu-button-gap);
1985
+ min-width: 0;
1986
+ overflow: hidden;
1987
+ }
1988
+ .ui-SidebarMenuButton > .ui-CollapsibleIndicator {
1989
+ flex: 0 0 auto;
1990
+ }
1991
+ .ui-SidebarMenuButton:not([data-disabled]):hover,
1992
+ .ui-SidebarMenuSubButton:not([data-disabled]):hover {
1993
+ background-color: var(--gray-a3);
1994
+ color: var(--gray-12);
1995
+ }
1996
+ .ui-SidebarMenuButton:where([data-active]),
1997
+ .ui-SidebarMenuSubButton:where([data-active]) {
1998
+ background-color: var(--accent-a3);
1999
+ color: var(--accent-11);
2000
+ font-weight: var(--font-weight-medium);
2001
+ }
2002
+ .ui-SidebarMenuButton:where([data-active]):not([data-disabled]):hover,
2003
+ .ui-SidebarMenuSubButton:where([data-active]):not([data-disabled]):hover {
2004
+ background-color: var(--accent-a4);
2005
+ }
2006
+ .ui-SidebarMenuButton:focus-visible,
2007
+ .ui-SidebarMenuSubButton:focus-visible {
2008
+ outline: 2px solid var(--accent-8);
2009
+ outline-offset: -2px;
2010
+ }
2011
+ .ui-SidebarMenuButton:where([data-disabled]),
2012
+ .ui-SidebarMenuSubButton:where([data-disabled]) {
2013
+ cursor: not-allowed;
2014
+ opacity: 0.5;
2015
+ }
2016
+ .ui-SidebarMenuSub {
2017
+ border-inline-start: 1px solid var(--gray-a5);
2018
+ display: flex;
2019
+ flex-direction: column;
2020
+ gap: var(--sidebar-menu-sub-gap);
2021
+ margin-block: var(--sidebar-menu-sub-margin-block);
2022
+ margin-inline-start: var(--sidebar-menu-sub-margin-inline);
2023
+ padding-inline-start: var(--sidebar-menu-sub-padding-inline);
2024
+ }
2025
+ .ui-SidebarMenuSubButton {
2026
+ font-size: var(--sidebar-menu-sub-button-font-size);
2027
+ gap: var(--sidebar-menu-sub-button-gap);
2028
+ line-height: var(--sidebar-menu-sub-button-line-height);
2029
+ min-height: var(--sidebar-menu-sub-button-height);
2030
+ padding-block: var(--sidebar-menu-sub-button-padding-block);
2031
+ padding-inline: var(--sidebar-menu-sub-button-padding-inline);
2032
+ }
2033
+ .ui-Sidebar:where(.r-collapsible-icon)[data-collapsed='true'] .ui-SidebarGroupLabel,
2034
+ .ui-Sidebar:where(.r-collapsible-icon)[data-collapsed='true'] .ui-SidebarMenuSub {
2035
+ display: none;
2036
+ }
2037
+ .ui-Sidebar:where(.r-collapsible-icon)[data-collapsed='true'] .ui-SidebarMenuButton {
2038
+ block-size: var(--sidebar-menu-button-height);
2039
+ display: flex;
2040
+ gap: 0;
2041
+ inline-size: var(--sidebar-menu-button-height);
2042
+ justify-content: center;
2043
+ margin-inline: auto;
2044
+ padding: 0;
2045
+ position: relative;
2046
+ text-overflow: clip;
2047
+ }
2048
+ .ui-Sidebar:where(.r-collapsible-icon)[data-collapsed='true'] .ui-SidebarMenuButtonText,
2049
+ .ui-Sidebar:where(.r-collapsible-icon)[data-collapsed='true'] .ui-SidebarMenuButtonTrailing {
2050
+ border: 0;
2051
+ clip: rect(0, 0, 0, 0);
2052
+ clip-path: inset(50%);
2053
+ height: 1px;
2054
+ margin: -1px;
2055
+ overflow: hidden;
2056
+ padding: 0;
2057
+ position: absolute;
2058
+ white-space: nowrap;
2059
+ width: 1px;
2060
+ }
2061
+ .ui-Sidebar:where(.r-collapsible-icon)[data-collapsed='true'] .ui-SidebarMenuButton > .ui-CollapsibleIndicator {
2062
+ display: none;
2063
+ }
2064
+ .ui-SidebarOverlay {
2065
+ align-items: stretch;
2066
+ background-color: var(--gray-a8);
2067
+ display: flex;
2068
+ inset: 0;
2069
+ justify-content: flex-start;
2070
+ position: fixed;
2071
+ z-index: 50;
2072
+ }
2073
+ .ui-SidebarOverlay:has(> .ui-SidebarPanel.r-side-right) {
2074
+ justify-content: flex-end;
2075
+ }
2076
+ .ui-SidebarOverlay[data-state='open'] {
2077
+ animation: ui-fade-in 180ms ease-out;
2078
+ }
2079
+ .ui-SidebarOverlay[data-state='closed'] {
2080
+ animation: ui-fade-out 150ms ease-in;
2081
+ }
2082
+ .ui-SidebarPanel:where(.r-mobile) {
2083
+ height: 100%;
2084
+ max-width: calc(100vw - var(--space-4));
2085
+ position: relative;
2086
+ width: var(--sidebar-mobile-width);
2087
+ background-color: var(--color-panel-solid);
2088
+ }
2089
+ .ui-SidebarPanel:where(.r-mobile.r-variant-floating) {
2090
+ height: calc(100% - var(--space-4));
2091
+ margin: var(--space-2);
2092
+ }
2093
+ .ui-SidebarPanel:where(.r-mobile.r-side-left)[data-state='open'] {
2094
+ animation: ui-sidebar-enter-left 200ms ease-out;
2095
+ }
2096
+ .ui-SidebarPanel:where(.r-mobile.r-side-left)[data-state='closed'] {
2097
+ animation: ui-sidebar-exit-left 170ms ease-in;
2098
+ }
2099
+ .ui-SidebarPanel:where(.r-mobile.r-side-right)[data-state='open'] {
2100
+ animation: ui-sidebar-enter-right 200ms ease-out;
2101
+ }
2102
+ .ui-SidebarPanel:where(.r-mobile.r-side-right)[data-state='closed'] {
2103
+ animation: ui-sidebar-exit-right 170ms ease-in;
2104
+ }
2105
+ .ui-SidebarVisuallyHidden {
2106
+ clip: rect(0, 0, 0, 0);
2107
+ clip-path: inset(50%);
2108
+ height: 1px;
2109
+ overflow: hidden;
2110
+ position: absolute;
2111
+ white-space: nowrap;
2112
+ width: 1px;
2113
+ }
2114
+ }
2115
+
2116
+ /* Collapsible contributes behavior inside a menu; SidebarMenu owns its chrome. */
2117
+ .ui-SidebarMenu .ui-CollapsibleRoot[data-state] {
2118
+ background-color: transparent;
2119
+ border-radius: 0;
2120
+ box-shadow: none;
2121
+ color: inherit;
2122
+ font-size: inherit;
2123
+ font-weight: inherit;
2124
+ }
2125
+ .ui-SidebarMenu .ui-CollapsibleTrigger.ui-SidebarMenuButton {
2126
+ align-items: center;
2127
+ -webkit-appearance: none;
2128
+ -moz-appearance: none;
2129
+ appearance: none;
2130
+ background-color: transparent;
2131
+ border: 0;
2132
+ border-radius: var(--radius-2);
2133
+ box-sizing: border-box;
2134
+ color: var(--gray-11);
2135
+ cursor: pointer;
2136
+ display: flex;
2137
+ font-family: inherit;
2138
+ font-size: var(--sidebar-menu-button-font-size);
2139
+ font-weight: var(--font-weight-regular);
2140
+ gap: var(--sidebar-menu-button-gap);
2141
+ height: var(--sidebar-menu-button-height);
2142
+ justify-content: flex-start;
2143
+ line-height: var(--sidebar-menu-button-line-height);
2144
+ margin: 0;
2145
+ min-height: var(--sidebar-menu-button-height);
2146
+ min-width: 0;
2147
+ overflow: hidden;
2148
+ padding-block: var(--sidebar-menu-button-padding-block);
2149
+ padding-inline: var(--sidebar-menu-button-padding-inline);
2150
+ text-align: start;
2151
+ text-decoration: none;
2152
+ white-space: nowrap;
2153
+ width: 100%;
2154
+ }
2155
+ .ui-SidebarMenu .ui-CollapsibleTrigger.ui-SidebarMenuButton:not([data-disabled]):hover {
2156
+ background-color: var(--gray-a3);
2157
+ color: var(--gray-12);
2158
+ }
2159
+ .ui-SidebarMenu .ui-CollapsibleTrigger.ui-SidebarMenuButton:where([data-active]) {
2160
+ background-color: var(--accent-a3);
2161
+ color: var(--accent-11);
2162
+ font-weight: var(--font-weight-medium);
2163
+ }
2164
+ .ui-SidebarMenu .ui-CollapsibleTrigger.ui-SidebarMenuButton:where([data-active]):not([data-disabled]):hover {
2165
+ background-color: var(--accent-a4);
2166
+ }
2167
+ .ui-SidebarMenu .ui-CollapsibleTrigger.ui-SidebarMenuButton:focus-visible {
2168
+ outline: 2px solid var(--accent-8);
2169
+ outline-offset: -2px;
2170
+ }
2171
+ .ui-SidebarMenu .ui-CollapsibleTrigger.ui-SidebarMenuButton:where([data-disabled]) {
2172
+ cursor: not-allowed;
2173
+ opacity: 0.5;
2174
+ }
2175
+ .ui-SidebarMenu .ui-CollapsibleTrigger.ui-SidebarMenuButton > .ui-CollapsibleTriggerText {
2176
+ align-items: center;
2177
+ display: flex;
2178
+ flex: 1 1 auto;
2179
+ font-weight: inherit;
2180
+ gap: var(--sidebar-menu-button-gap);
2181
+ min-width: 0;
2182
+ overflow: hidden;
2183
+ text-align: initial;
2184
+ }
2185
+ .ui-SidebarMenu .ui-CollapsibleTrigger.ui-SidebarMenuButton > .ui-CollapsibleIndicator {
2186
+ align-items: center;
2187
+ block-size: var(--sidebar-menu-icon-size);
2188
+ color: var(--gray-10);
2189
+ display: inline-flex;
2190
+ flex: 0 0 auto;
2191
+ font-size: var(--sidebar-menu-icon-size);
2192
+ inline-size: var(--sidebar-menu-icon-size);
2193
+ }
2194
+ .ui-SidebarMenu .ui-CollapsibleContent {
2195
+ background-color: transparent;
2196
+ border: 0;
2197
+ border-radius: 0;
2198
+ box-shadow: none;
2199
+ color: inherit;
2200
+ font-size: inherit;
2201
+ font-weight: inherit;
2202
+ margin: 0;
2203
+ overflow: hidden;
2204
+ padding: 0;
2205
+ }
2206
+ .ui-Sidebar:where(.r-collapsible-icon)[data-collapsed='true']
2207
+ .ui-SidebarMenu .ui-CollapsibleTrigger.ui-SidebarMenuButton {
2208
+ block-size: var(--sidebar-menu-button-height);
2209
+ display: flex;
2210
+ gap: 0;
2211
+ inline-size: var(--sidebar-menu-button-height);
2212
+ justify-content: center;
2213
+ margin-inline: auto;
2214
+ padding: 0;
2215
+ }
2216
+ .ui-Sidebar:where(.r-collapsible-icon)[data-collapsed='true']
2217
+ .ui-SidebarMenu .ui-CollapsibleTrigger.ui-SidebarMenuButton > .ui-CollapsibleTriggerText {
2218
+ display: contents;
2219
+ }
2220
+ .ui-Sidebar:where(.r-collapsible-icon)[data-collapsed='true']
2221
+ .ui-SidebarMenu .ui-CollapsibleTrigger.ui-SidebarMenuButton > .ui-CollapsibleIndicator {
2222
+ display: none;
2223
+ }
2224
+ @keyframes ui-sidebar-enter-left {
2225
+ from { transform: translateX(-100%);
2226
+ }
2227
+ to { transform: translateX(0);
2228
+ }
2229
+ }
2230
+ @keyframes ui-sidebar-exit-left {
2231
+ from { transform: translateX(0);
2232
+ }
2233
+ to { transform: translateX(-100%);
2234
+ }
2235
+ }
2236
+ @keyframes ui-sidebar-enter-right {
2237
+ from { transform: translateX(100%);
2238
+ }
2239
+ to { transform: translateX(0);
2240
+ }
2241
+ }
2242
+ @keyframes ui-sidebar-exit-right {
2243
+ from { transform: translateX(0);
2244
+ }
2245
+ to { transform: translateX(100%);
2246
+ }
2247
+ }
2248
+ @media (max-width: 1023px) {
2249
+ .ui-SidebarProvider:where([data-inset='true']) > .ui-SidebarInset {
2250
+ border: 0;
2251
+ border-radius: 0;
2252
+ }
2253
+ }
2254
+ @media (prefers-reduced-motion: reduce) {
2255
+ .ui-Sidebar,
2256
+ .ui-SidebarPanel,
2257
+ .ui-SidebarOverlay {
2258
+ animation-duration: 1ms !important;
2259
+ transition-duration: 1ms !important;
2260
+ }
2261
+ }
1205
2262
 
1206
2263
  .ui-root {
1207
2264
  --switch-disabled-blend-mode: multiply;
@@ -2269,6 +3326,128 @@ to {
2269
3326
  height: calc(var(--color-field-size) - var(--text-field-padding));
2270
3327
  }
2271
3328
 
3329
+ @layer components {
3330
+ .ui-PinInputRoot {
3331
+ display: inline-flex;
3332
+ align-items: center;
3333
+ gap: var(--pin-input-gap);
3334
+ box-sizing: border-box;
3335
+ }
3336
+ }
3337
+ .ui-PinInputRoot:where(.r-size-1) {
3338
+ --pin-input-size: var(--space-5);
3339
+ --pin-input-gap: var(--space-1);
3340
+ --pin-input-radius: max(var(--radius-2), var(--radius-full));
3341
+ --pin-input-padding: var(--space-1);
3342
+ font-size: var(--font-size-1);
3343
+ letter-spacing: var(--letter-spacing-1);
3344
+ }
3345
+ .ui-PinInputRoot:where(.r-size-2) {
3346
+ --pin-input-size: var(--space-6);
3347
+ --pin-input-gap: var(--space-2);
3348
+ --pin-input-radius: max(var(--radius-2), var(--radius-full));
3349
+ --pin-input-padding: var(--space-2);
3350
+ font-size: var(--font-size-2);
3351
+ letter-spacing: var(--letter-spacing-2);
3352
+ }
3353
+ .ui-PinInputRoot:where(.r-size-3) {
3354
+ --pin-input-size: var(--space-7);
3355
+ --pin-input-gap: var(--space-2);
3356
+ --pin-input-radius: max(var(--radius-3), var(--radius-full));
3357
+ --pin-input-padding: var(--space-3);
3358
+ font-size: var(--font-size-3);
3359
+ letter-spacing: var(--letter-spacing-3);
3360
+ }
3361
+ .ui-PinInputRoot:where(.r-variant-surface) {
3362
+ --pin-input-border-width: 1px;
3363
+ --pin-input-border-color: var(--gray-a7);
3364
+ --pin-input-focus-color: var(--focus-a8);
3365
+ --pin-input-selection-color: var(--focus-a5);
3366
+ }
3367
+ .ui-PinInputRoot:where(.r-variant-soft) {
3368
+ --pin-input-border-width: 0px;
3369
+ --pin-input-border-color: transparent;
3370
+ --pin-input-focus-color: var(--accent-8);
3371
+ --pin-input-selection-color: var(--accent-a5);
3372
+ }
3373
+
3374
+ @layer components {
3375
+ .ui-PinInputInput {
3376
+ display: inline-flex;
3377
+ align-items: center;
3378
+ justify-content: center;
3379
+ box-sizing: border-box;
3380
+ flex: 0 0 var(--pin-input-size);
3381
+ width: var(--pin-input-size);
3382
+ height: var(--pin-input-size);
3383
+ padding: var(--pin-input-padding);
3384
+ border: var(--pin-input-border-width) solid var(--pin-input-border-color);
3385
+ border-radius: var(--pin-input-radius);
3386
+ outline: none;
3387
+ color: var(--gray-12);
3388
+ background-color: var(--color-surface);
3389
+ font: inherit;
3390
+ line-height: 1;
3391
+ text-align: center;
3392
+ font-variant-numeric: tabular-nums;
3393
+ caret-color: var(--accent-9);
3394
+ -webkit-appearance: none;
3395
+ -moz-appearance: none;
3396
+ appearance: none;
3397
+ }
3398
+ }
3399
+ .ui-PinInputRoot:where(.r-variant-surface) .ui-PinInputInput {
3400
+ background-color: var(--color-surface);
3401
+ }
3402
+ .ui-PinInputRoot:where(.r-variant-soft) .ui-PinInputInput {
3403
+ background-color: var(--accent-a3);
3404
+ color: var(--accent-12);
3405
+ }
3406
+ .ui-PinInputInput:where(:focus, :focus-visible) {
3407
+ box-shadow: 0 0 0 2px var(--pin-input-selection-color);
3408
+ border-color: var(--pin-input-focus-color);
3409
+ }
3410
+ .ui-PinInputInput::-moz-selection {
3411
+ background-color: var(--pin-input-selection-color);
3412
+ }
3413
+ .ui-PinInputInput::selection {
3414
+ background-color: var(--pin-input-selection-color);
3415
+ }
3416
+ .ui-PinInputInput::-moz-placeholder {
3417
+ color: var(--gray-a10);
3418
+ opacity: 1;
3419
+ }
3420
+ .ui-PinInputInput::placeholder {
3421
+ color: var(--gray-a10);
3422
+ opacity: 1;
3423
+ }
3424
+ .ui-PinInputRoot:where(.r-variant-soft) .ui-PinInputInput::-moz-placeholder {
3425
+ color: var(--accent-12);
3426
+ opacity: 0.6;
3427
+ }
3428
+ .ui-PinInputRoot:where(.r-variant-soft) .ui-PinInputInput::placeholder {
3429
+ color: var(--accent-12);
3430
+ opacity: 0.6;
3431
+ }
3432
+ .ui-PinInputInput:where(:disabled, [data-disabled]) {
3433
+ cursor: var(--cursor-disabled);
3434
+ color: var(--gray-a8);
3435
+ background-color: var(--gray-a3);
3436
+ -webkit-text-fill-color: var(--gray-a8);
3437
+ }
3438
+ .ui-PinInputInput:where(:disabled, [data-disabled])::-moz-placeholder {
3439
+ color: var(--gray-a8);
3440
+ }
3441
+ .ui-PinInputInput:where(:disabled, [data-disabled])::placeholder {
3442
+ color: var(--gray-a8);
3443
+ }
3444
+ .ui-PinInputRoot:where(.r-variant-soft) .ui-PinInputInput:where(:disabled, [data-disabled]) {
3445
+ background-color: var(--gray-a3);
3446
+ }
3447
+ .ui-PinInputInput:where([data-complete]) {
3448
+ /* Completion describes input state, not validation success. */
3449
+ }
3450
+
2272
3451
  .ui-SelectContent {
2273
3452
  --scrollarea-scrollbar-vertical-margin-top: var(--select-content-padding);
2274
3453
  --scrollarea-scrollbar-vertical-margin-bottom: var(--select-content-padding);
@@ -3734,12 +4913,12 @@ to {
3734
4913
  text-align: initial;
3735
4914
  gap: var(--collapsible-trigger-gap);
3736
4915
  font-size: var(--collapsible-font-size);
3737
- font-weight: var(--font-weight-medium);
3738
4916
  }
3739
4917
  }
3740
4918
  .ui-CollapsibleTriggerText {
3741
4919
  flex-grow: 1;
3742
4920
  text-align: initial;
4921
+ font-weight: var(--font-weight-medium);
3743
4922
  }
3744
4923
  :where(.ui-CollapsibleRoot:not(.r-variant-ghost)) .ui-CollapsibleTrigger {
3745
4924
  background-color: var(--collapsible-trigger-background-color);