cetec-design-system 2.2.2-next.0 → 2.3.7

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.
Files changed (36) hide show
  1. package/dist/{cetec-preset-CcvrY8wh.js → cetec-preset-CZJA5UR0.js} +1696 -1331
  2. package/dist/cetec-preset-CZJA5UR0.js.map +1 -0
  3. package/dist/index.js +12655 -9360
  4. package/dist/index.js.map +1 -1
  5. package/dist/panda.buildinfo.json +461 -365
  6. package/dist/playroom-static.css +68887 -180258
  7. package/dist/preset.js +1 -1
  8. package/dist/specs/recipes.json +126 -25
  9. package/dist/styles.css +1315 -642
  10. package/dist/types/index.d.ts +3001 -273
  11. package/dist/types/preset.d.ts +15 -0
  12. package/package.json +6 -1
  13. package/src/recipes/autocomplete.ts +266 -0
  14. package/src/recipes/calendar.ts +92 -0
  15. package/src/recipes/chip.ts +6 -0
  16. package/src/recipes/dateMenus.ts +40 -0
  17. package/src/recipes/dateTimeMenus.ts +43 -0
  18. package/src/recipes/menu.ts +13 -1
  19. package/src/recipes/modal.ts +1 -1
  20. package/src/recipes/recipes-slot.ts +7 -2
  21. package/src/recipes/segmentedFields.ts +192 -0
  22. package/src/recipes/segmentedInputs.ts +106 -0
  23. package/src/recipes/text.ts +32 -28
  24. package/src/recipes/timeMenus.ts +110 -0
  25. package/src/styles/primitives/zIndex.ts +1 -0
  26. package/src/styles/semantics/colors.ts +44 -0
  27. package/src/styles/semantics/zIndex.ts +2 -0
  28. package/src/styles/utilities/conditions.ts +1 -0
  29. package/src/styles/utilities/transitions.ts +2 -1
  30. package/src/utils/dsChain.ts +113 -0
  31. package/src/utils/dsComponent.ts +44 -0
  32. package/src/utils/dsPart.ts +41 -0
  33. package/src/utils/splitProps.ts +15 -0
  34. package/dist/cetec-preset-CcvrY8wh.js.map +0 -1
  35. package/src/recipes/datePicker.ts +0 -230
  36. package/src/recipes/timePicker.ts +0 -206
@@ -593,658 +593,119 @@ const filtersProperty = defineUtility({
593
593
  className: "filters",
594
594
  values: "filters"
595
595
  });
596
- const animations = defineTokens.animations({
597
- spin: {
598
- value: "spin 1s linear infinite"
599
- },
600
- ping: {
601
- value: "ping 1s cubic-bezier(0, 0, 0.2, 1) infinite"
602
- },
603
- pulse: {
604
- value: "pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite"
605
- },
606
- bounce: {
607
- value: "bounce 1s infinite"
596
+ const durations = defineTokens.durations({
597
+ fastest: {
598
+ value: "50ms"
608
599
  },
609
- skeletonWave: {
610
- value: "skeletonWave 2s linear 0.5s infinite"
611
- }
612
- });
613
- const aspectRatios = defineTokens.aspectRatios({
614
- square: {
615
- value: "1 / 1"
600
+ faster: {
601
+ value: "100ms"
616
602
  },
617
- landscape: {
618
- value: "4 / 3"
603
+ fast: {
604
+ value: "150ms"
619
605
  },
620
- portrait: {
621
- value: "3 / 4"
606
+ normal: {
607
+ value: "200ms"
622
608
  },
623
- wide: {
624
- value: "16 / 9"
609
+ slow: {
610
+ value: "300ms"
625
611
  },
626
- ultrawide: {
627
- value: "18 / 5"
612
+ slower: {
613
+ value: "400ms"
628
614
  },
629
- golden: {
630
- value: "1.618 / 1"
615
+ slowest: {
616
+ value: "500ms"
631
617
  }
632
618
  });
633
- const blurs = defineTokens.blurs({
634
- sm: {
635
- value: "{sizes.4}"
636
- },
637
- base: {
638
- value: "{sizes.8}"
639
- },
640
- md: {
641
- value: "{sizes.12}"
619
+ const easings = defineTokens.easings({
620
+ default: {
621
+ value: "cubic-bezier(0.4, 0, 0.2, 1)"
642
622
  },
643
- lg: {
644
- value: "{sizes.16}"
623
+ linear: {
624
+ value: "linear"
645
625
  },
646
- xl: {
647
- value: "{sizes.24}"
626
+ in: {
627
+ value: "cubic-bezier(0.4, 0, 1, 1)"
648
628
  },
649
- "2xl": {
650
- value: "{sizes.40}"
629
+ out: {
630
+ value: "cubic-bezier(0, 0, 0.2, 1)"
651
631
  },
652
- "3xl": {
653
- value: "{sizes.64}"
632
+ "in-out": {
633
+ value: "cubic-bezier(0.4, 0, 0.2, 1)"
654
634
  }
655
635
  });
656
- const borders = defineTokens.borders({
657
- default: {
658
- value: "{borderWidths.1} solid {colors.border}"
636
+ const transitionProperties = {
637
+ all: {
638
+ value: "all"
659
639
  },
660
- bold: {
661
- value: "{borderWidths.2} solid {colors.border.bold}"
640
+ common: {
641
+ value: "background-color, border-color, color, fill, stroke, opacity, box-shadow, transform"
662
642
  },
663
- inverse: {
664
- value: "{borderWidths.1} solid {colors.border.inverse}"
643
+ colors: {
644
+ value: "background-color, border-color, color, fill, stroke"
665
645
  },
666
- disabled: {
667
- value: "{borderWidths.1} solid {colors.border.disabled}"
646
+ opacity: {
647
+ value: "opacity"
668
648
  },
669
- input: {
670
- value: "{borderWidths.1} solid {colors.border.input}"
649
+ shadow: {
650
+ value: "box-shadow"
671
651
  },
672
- focused: {
673
- value: "{borderWidths.2} solid {colors.border.focused}"
652
+ transform: {
653
+ value: "transform"
674
654
  },
675
- success: {
676
- value: "{borderWidths.1} solid {colors.border.success}"
655
+ position: {
656
+ value: "top, right, bottom, left"
677
657
  },
678
- warning: {
679
- value: "{borderWidths.1} solid {colors.border.warning}"
658
+ size: {
659
+ value: "width, height"
680
660
  },
681
- danger: {
682
- value: "{borderWidths.1} solid {colors.border.danger}"
661
+ spacing: {
662
+ value: "margin, padding"
683
663
  },
684
- info: {
685
- value: "{borderWidths.1} solid {colors.border.info}"
664
+ outline: {
665
+ value: "outline, outline-color, outline-offset"
686
666
  },
687
- none: {
688
- value: "none"
667
+ border: {
668
+ value: "border, border-color"
689
669
  }
690
- });
691
- const borderWidths = defineTokens.borderWidths({
692
- "0": { value: "{sizes.0}" },
693
- "1": { value: "{sizes.1}" },
694
- "2": { value: "{sizes.2}" },
695
- "4": { value: "{sizes.4}" },
696
- "8": { value: "{sizes.8}" },
697
- "16": { value: "{sizes.16}" }
698
- });
699
- const colors$1 = defineTokens.colors({
700
- transparent: { value: "transparent" },
701
- current: { value: "currentColor" },
702
- inherit: { value: "inherit" },
703
- neutral: {
704
- "0": { value: "#FFFFFF" },
705
- "10": { value: "#F8F8F8" },
706
- "20": { value: "#F0F1F2" },
707
- "30": { value: "#DDDEE1" },
708
- "40": { value: "#B7B9BE" },
709
- "50": { value: "#8C8F97" },
710
- "60": { value: "#7D818A" },
711
- "70": { value: "#6B6E76" },
712
- "80": { value: "#505258" },
713
- "90": { value: "#3B3D42" },
714
- "100": { value: "#292A2E" },
715
- "110": { value: "#1E1F21" }
670
+ };
671
+ ({
672
+ all: {
673
+ value: `${transitionProperties.all} ${durations.normal} ${easings.default}`
716
674
  },
717
- neutralA: {
718
- "10": { value: "#17171708" },
719
- "20": { value: "#1717170F" },
720
- "30": { value: "#17171724" },
721
- "40": { value: "#1717174A" },
722
- "50": { value: "#17171775" }
675
+ common: {
676
+ value: `${transitionProperties.common} ${durations.normal} ${easings.default}`
723
677
  },
724
- darkNeutral: {
725
- "0": { value: "#18191A" },
726
- "10": { value: "#1F1F21" },
727
- "20": { value: "#242528" },
728
- "25": { value: "#2B2C2F" },
729
- "30": { value: "#303134" },
730
- "35": { value: "#3D3F43" },
731
- "40": { value: "#4B4D51" },
732
- "50": { value: "#63666B" },
733
- "60": { value: "#7E8188" },
734
- "70": { value: "#96999E" },
735
- "80": { value: "#A9ABAF" },
736
- "90": { value: "#BFC1C4" },
737
- "100": { value: "#CECFD2" },
738
- "110": { value: "#E2E3E4" },
739
- "120": { value: "#F1F1F2" }
678
+ colors: {
679
+ value: `${transitionProperties.colors} ${durations.normal} ${easings.default}`
740
680
  },
741
- darkNeutralA: {
742
- "-10": { value: "#01040475" },
743
- "10": { value: "#BDBDBD0A" },
744
- "20": { value: "#CECED912" },
745
- "25": { value: "#D9DAE71A" },
746
- "30": { value: "#E3E4F21F" },
747
- "35": { value: "#E8EDFD2E" },
748
- "40": { value: "#E5E9F640" },
749
- "50": { value: "#E9F0FB5C" }
681
+ opacity: {
682
+ value: `${transitionProperties.opacity} ${durations.normal} ${easings.default}`
750
683
  },
751
- slate: {
752
- "0": { value: "#FFFFFF" },
753
- "1": { value: "#FAFAFA" },
754
- "2": { value: "#F9F8F6" },
755
- "3": { value: "#F7F5F3" },
756
- "4": { value: "#F6F3EF" },
757
- "5": { value: "#F4F0EB" },
758
- "10": { value: "#E3E1DE" },
759
- "20": { value: "#CBCAC8" },
760
- "30": { value: "#AFADAB" },
761
- "40": { value: "#939190" },
762
- "50": { value: "#767675" },
763
- "60": { value: "#5F5F5E" },
764
- "70": { value: "#474747" },
765
- "80": { value: "#2E2E2E" },
766
- "90": { value: "#1E1E1E" },
767
- "100": { value: "#000000" }
684
+ shadow: {
685
+ value: `${transitionProperties.shadow} ${durations.normal} ${easings.default}`
768
686
  },
769
- slate_inverse: {
770
- "0": { value: "#000000" },
771
- "1": { value: "#383838" },
772
- "2": { value: "#474643" },
773
- "3": { value: "#53504c" },
774
- "4": { value: "#5d5954" },
775
- "5": { value: "#66605e" },
776
- "10": { value: "#8a8985" },
777
- "20": { value: "#acabaa" },
778
- "30": { value: "#cbc8c4" },
779
- "40": { value: "#dfdcdb" },
780
- "50": { value: "#eaeaea" },
781
- "60": { value: "#f2f2f2" },
782
- "70": { value: "#f8f8f8" },
783
- "80": { value: "#fcfcfc" },
784
- "90": { value: "#fefefe" },
785
- "100": { value: "#ffffff" }
687
+ transform: {
688
+ value: `${transitionProperties.transform} ${durations.normal} ${easings.default}`
786
689
  },
787
- gold: {
788
- "1": { value: "#FFFCF4" },
789
- "2": { value: "#FFF9E9" },
790
- "3": { value: "#FEF6DE" },
791
- "4": { value: "#FEF3D3" },
792
- "5": { value: "#FEF0C8" },
793
- "10": { value: "#FFE396" },
794
- "15": { value: "#ffd162" },
795
- "20": { value: "#FFBE2E" },
796
- "30": { value: "#E5A000" },
797
- "40": { value: "#C2850C" },
798
- "50": { value: "#936F38" },
799
- "60": { value: "#7A591A" },
800
- "70": { value: "#5C410A" },
801
- "80": { value: "#3B2B15" },
802
- "90": { value: "#1E1100" }
690
+ position: {
691
+ value: `${transitionProperties.position} ${durations.normal} ${easings.default}`
803
692
  },
804
- blue: {
805
- "1": { value: "#FAFDFF" },
806
- "2": { value: "#F6FBFF" },
807
- "3": { value: "#F1F9FF" },
808
- "4": { value: "#EDF7FF" },
809
- "5": { value: "#E8F5FF" },
810
- "10": { value: "#CFE8FF" },
811
- "20": { value: "#A1D3FF" },
812
- "30": { value: "#58B4FF" },
813
- "40": { value: "#2491FF" },
814
- "50": { value: "#0076DA" },
815
- "60": { value: "#005EA2" },
816
- "70": { value: "#0B4778" },
817
- "80": { value: "#112F4E" },
818
- "90": { value: "#11181D" }
819
- },
820
- green: {
821
- "1": { value: "#F8FEF4" },
822
- "2": { value: "#F1FDE9" },
823
- "3": { value: "#EBFBDD" },
824
- "4": { value: "#E4FAD2" },
825
- "5": { value: "#DDF9C7" },
826
- "10": { value: "#C5EE93" },
827
- "20": { value: "#98D035" },
828
- "30": { value: "#7FB135" },
829
- "40": { value: "#719F2A" },
830
- "50": { value: "#538200" },
831
- "60": { value: "#466C04" },
832
- "70": { value: "#2F4A0B" },
833
- "80": { value: "#243413" },
834
- "90": { value: "#0D1400" }
835
- },
836
- yellow: {
837
- "1": { value: "#FFFDF3" },
838
- "2": { value: "#FFFBE7" },
839
- "3": { value: "#FFF9DA" },
840
- "4": { value: "#FFF7CE" },
841
- "5": { value: "#FFF5C2" },
842
- "10": { value: "#FEE685" },
843
- "20": { value: "#FACE00" },
844
- "30": { value: "#DDAA01" },
845
- "40": { value: "#B38C00" },
846
- "50": { value: "#947100" },
847
- "60": { value: "#776017" },
848
- "70": { value: "#5C4809" },
849
- "80": { value: "#422D19" },
850
- "90": { value: "#1C0B00" }
851
- },
852
- red: {
853
- "1": { value: "#FFF9FA" },
854
- "2": { value: "#FFF3F5" },
855
- "3": { value: "#FFEEF0" },
856
- "4": { value: "#FFE8EB" },
857
- "5": { value: "#FFE2E6" },
858
- "10": { value: "#FFB1B8" },
859
- "20": { value: "#FF7F8A" },
860
- "30": { value: "#FF4D5B" },
861
- "40": { value: "#FE1D2D" },
862
- "50": { value: "#E50513" },
863
- "60": { value: "#B3000E" },
864
- "70": { value: "#810009" },
865
- "80": { value: "#4F0004" },
866
- "90": { value: "#200000" }
867
- },
868
- tomato: {
869
- "5": { value: "#FFF3F2" },
870
- "10": { value: "#FDE0DB" },
871
- "20": { value: "#FDB8AE" },
872
- "30": { value: "#FF8D7B" },
873
- "40": { value: "#FB5A47" },
874
- "50": { value: "#E52207" },
875
- "60": { value: "#B50909" },
876
- "70": { value: "#8B0A03" },
877
- "80": { value: "#5C1111" },
878
- "90": { value: "#200100" }
879
- },
880
- tan: {
881
- "5": { value: "#F5F0E6" },
882
- "10": { value: "#F1E5CD" },
883
- "20": { value: "#DEC69A" },
884
- "30": { value: "#C7A97B" },
885
- "40": { value: "#AD8B65" },
886
- "50": { value: "#8E704F" },
887
- "60": { value: "#6B5947" },
888
- "70": { value: "#4D4438" },
889
- "80": { value: "#322D26" },
890
- "90": { value: "#191714" }
891
- },
892
- orange: {
893
- "5": { value: "#FFF9F3" },
894
- "10": { value: "#FDDFBF" },
895
- "20": { value: "#FAC58C" },
896
- "30": { value: "#F8AA58" },
897
- "40": { value: "#F59025" },
898
- "50": { value: "#DC760A" },
899
- "60": { value: "#AB5C08" },
900
- "70": { value: "#7A4105" },
901
- "80": { value: "#492703" },
902
- "90": { value: "#180D01" }
903
- },
904
- pear: {
905
- "5": { value: "#FDFDF6" },
906
- "10": { value: "#F3F6CE" },
907
- "20": { value: "#E9EEA6" },
908
- "30": { value: "#E0E77E" },
909
- "40": { value: "#D6E056" },
910
- "50": { value: "#BFC93E" },
911
- "60": { value: "#9CA437" },
912
- "70": { value: "#797F2F" },
913
- "80": { value: "#565A28" },
914
- "90": { value: "#333520" }
915
- },
916
- grass: {
917
- "5": { value: "#F5FBF7" },
918
- "10": { value: "#CBEBD3" },
919
- "20": { value: "#A1DAAE" },
920
- "30": { value: "#76CA8A" },
921
- "40": { value: "#4CB965" },
922
- "50": { value: "#34A24E" },
923
- "60": { value: "#2F8543" },
924
- "70": { value: "#2A6838" },
925
- "80": { value: "#244A2D" },
926
- "90": { value: "#1F2D22" }
927
- },
928
- mint: {
929
- "5": { value: "#F5FDFB" },
930
- "10": { value: "#CFF5EA" },
931
- "20": { value: "#A9ECD9" },
932
- "30": { value: "#83E4C8" },
933
- "40": { value: "#5DDBB7" },
934
- "50": { value: "#45C4A0" },
935
- "60": { value: "#3C9F83" },
936
- "70": { value: "#327965" },
937
- "80": { value: "#295448" },
938
- "90": { value: "#1F2E2A" }
939
- },
940
- cyan: {
941
- "5": { value: "#E7F6F8" },
942
- "10": { value: "#CCECF2" },
943
- "20": { value: "#99DEEA" },
944
- "30": { value: "#5DC0D1" },
945
- "40": { value: "#449DAC" },
946
- "50": { value: "#168092" },
947
- "60": { value: "#2A646D" },
948
- "70": { value: "#2C4A4E" },
949
- "80": { value: "#203133" },
950
- "90": { value: "#111819" }
951
- },
952
- indigo: {
953
- "5": { value: "#F9FAFD" },
954
- "10": { value: "#CFD4EB" },
955
- "20": { value: "#A5AEDA" },
956
- "30": { value: "#7A89C8" },
957
- "40": { value: "#5063B7" },
958
- "50": { value: "#384CA1" },
959
- "60": { value: "#334388" },
960
- "70": { value: "#2E3A6E" },
961
- "80": { value: "#293155" },
962
- "90": { value: "#24283B" }
963
- },
964
- purple: {
965
- "5": { value: "#F5F3FF" },
966
- "10": { value: "#DDD1FD" },
967
- "20": { value: "#C6B0FB" },
968
- "30": { value: "#AE8EF9" },
969
- "40": { value: "#976DF7" },
970
- "50": { value: "#7F55E3" },
971
- "60": { value: "#6746BD" },
972
- "70": { value: "#4E3897" },
973
- "80": { value: "#362971" },
974
- "90": { value: "#1E1B4B" }
975
- },
976
- violet: {
977
- "5": { value: "#FDF4FF" },
978
- "10": { value: "#F4CAFB" },
979
- "20": { value: "#EBA0F6" },
980
- "30": { value: "#E276F2" },
981
- "40": { value: "#D94CED" },
982
- "50": { value: "#C531DA" },
983
- "60": { value: "#A626B7" },
984
- "70": { value: "#871B94" },
985
- "80": { value: "#690F71" },
986
- "90": { value: "#4A044E" }
987
- },
988
- pink: {
989
- "5": { value: "#FFF9FB" },
990
- "10": { value: "#FDDDE9" },
991
- "20": { value: "#FBC1D7" },
992
- "30": { value: "#FAA6C5" },
993
- "40": { value: "#F88AB3" },
994
- "50": { value: "#E3739D" },
995
- "60": { value: "#BC6283" },
996
- "70": { value: "#94506A" },
997
- "80": { value: "#6D3F50" },
998
- "90": { value: "#452D36" }
693
+ size: {
694
+ value: `${transitionProperties.size} ${durations.normal} ${easings.default}`
999
695
  },
1000
- rose: {
1001
- "5": { value: "#FFF1F2" },
1002
- "10": { value: "#FFCDDC" },
1003
- "20": { value: "#FFA8C5" },
1004
- "30": { value: "#FF84AF" },
1005
- "40": { value: "#FF5F98" },
1006
- "50": { value: "#EB4580" },
1007
- "60": { value: "#C33566" },
1008
- "70": { value: "#9C254D" },
1009
- "80": { value: "#741533" },
1010
- "90": { value: "#4C0519" }
696
+ spacing: {
697
+ value: `${transitionProperties.spacing} ${durations.normal} ${easings.default}`
1011
698
  },
1012
- magenta: {
1013
- "5": { value: "#FEF6FA" },
1014
- "10": { value: "#FACEE6" },
1015
- "20": { value: "#F6A6D2" },
1016
- "30": { value: "#F37EBE" },
1017
- "40": { value: "#EF56AA" },
1018
- "50": { value: "#DA3E94" },
1019
- "60": { value: "#B4377C" },
1020
- "70": { value: "#8F3064" },
1021
- "80": { value: "#69284C" },
1022
- "90": { value: "#432134" }
699
+ outline: {
700
+ value: `${transitionProperties.outline} ${durations.normal} ${easings.default}`
1023
701
  },
1024
- shadow: {
1025
- "8": { value: "hsl(0deg 0% 0% / 0.08)" },
1026
- "16": { value: "hsl(0deg 0% 0% / 0.16)" },
1027
- "24": { value: "hsl(0deg 0% 0% / 0.24)" },
1028
- "32": { value: "hsl(0deg 0% 0% / 0.32)" },
1029
- "40": { value: "hsl(0deg 0% 0% / 0.40)" },
1030
- "48": { value: "hsl(0deg 0% 0% / 0.48)" },
1031
- "56": { value: "hsl(0deg 0% 0% / 0.56)" },
1032
- "64": { value: "hsl(0deg 0% 0% / 0.64)" }
702
+ border: {
703
+ value: `${transitionProperties.border} ${durations.normal} ${easings.default}`
1033
704
  }
1034
705
  });
1035
- const durations = defineTokens.durations({
1036
- fastest: {
1037
- value: "50ms"
1038
- },
1039
- faster: {
1040
- value: "100ms"
1041
- },
1042
- fast: {
1043
- value: "150ms"
1044
- },
1045
- normal: {
1046
- value: "200ms"
1047
- },
1048
- slow: {
1049
- value: "300ms"
1050
- },
1051
- slower: {
1052
- value: "400ms"
1053
- },
1054
- slowest: {
1055
- value: "500ms"
1056
- }
1057
- });
1058
- const easings = defineTokens.easings({
1059
- default: {
1060
- value: "cubic-bezier(0.4, 0, 0.2, 1)"
1061
- },
1062
- linear: {
1063
- value: "linear"
1064
- },
1065
- in: {
1066
- value: "cubic-bezier(0.4, 0, 1, 1)"
1067
- },
1068
- out: {
1069
- value: "cubic-bezier(0, 0, 0.2, 1)"
1070
- },
1071
- "in-out": {
1072
- value: "cubic-bezier(0.4, 0, 0.2, 1)"
1073
- }
1074
- });
1075
- const fonts = defineTokens.fonts({
1076
- heading: {
1077
- value: "'Ruda Variable', Source Sans, Geneva, Tahoma, Verdana, sans-serif;"
1078
- },
1079
- body: { value: "'Recursive Variable', Geneva, Tahoma, Verdana, sans-serif;" },
1080
- mono: {
1081
- value: "'Recursive Variable', Andale Mono, monaco, Consolas, Lucida Console, monospace;"
1082
- }
1083
- });
1084
- const fontSizes$2 = defineTokens.fontSizes({
1085
- "10": { value: "{sizes.10}" },
1086
- "12": { value: "{sizes.12}" },
1087
- "14": { value: "{sizes.14}" },
1088
- "16": { value: "{sizes.16}" },
1089
- "20": { value: "{sizes.20}" },
1090
- "24": { value: "{sizes.24}" },
1091
- "32": { value: "{sizes.32}" },
1092
- "40": { value: "{sizes.40}" },
1093
- "48": { value: "{sizes.48}" },
1094
- "64": { value: "{sizes.64}" },
1095
- "72": { value: "{sizes.72}" },
1096
- "80": { value: "{sizes.80}" },
1097
- "96": { value: "{sizes.96}" }
1098
- });
1099
- const fontWeights$1 = defineTokens.fontWeights({
1100
- light: { value: 300 },
1101
- normal: { value: 400 },
1102
- medium: { value: 500 },
1103
- bold: { value: 700 },
1104
- black: { value: 900 }
1105
- });
1106
- const letterSpacings = defineTokens.letterSpacings({
1107
- tighter: {
1108
- value: "-0.05em"
1109
- },
1110
- tight: {
1111
- value: "-0.025em"
1112
- },
1113
- normal: {
1114
- value: "0em"
1115
- },
1116
- wide: {
1117
- value: "0.025em"
1118
- },
1119
- wider: {
1120
- value: "0.05em"
1121
- },
1122
- widest: {
1123
- value: "0.1em"
1124
- }
1125
- });
1126
- const lineHeights = defineTokens.lineHeights({
1127
- none: {
1128
- value: "1"
1129
- },
1130
- tight: {
1131
- value: "calc(1em + 0.25rem)"
1132
- // 4
1133
- },
1134
- default: {
1135
- value: "calc(1em + 0.5rem)"
1136
- // 8
1137
- },
1138
- loose: {
1139
- value: "calc(1em + 0.75rem)"
1140
- // 12
1141
- }
1142
- });
1143
- const numericSizes = {
1144
- "0": { value: "0" },
1145
- "1": { value: "0.0625rem" },
1146
- "2": { value: "0.125rem" },
1147
- "3": { value: "0.1875rem" },
1148
- "4": { value: "0.25rem" },
1149
- "5": { value: "0.3125rem" },
1150
- "6": { value: "0.375rem" },
1151
- "7": { value: "0.4375rem" },
1152
- "8": { value: "0.5rem" },
1153
- "9": { value: "0.5625rem" },
1154
- "10": { value: "0.625rem" },
1155
- "12": { value: "0.75rem" },
1156
- "14": { value: "0.875rem" },
1157
- "16": { value: "1rem" },
1158
- "18": { value: "1.125rem" },
1159
- "20": { value: "1.25rem" },
1160
- "22": { value: "1.375rem" },
1161
- "24": { value: "1.5rem" },
1162
- "28": { value: "1.75rem" },
1163
- "32": { value: "2rem" },
1164
- "40": { value: "2.5rem" },
1165
- "48": { value: "3rem" },
1166
- "56": { value: "3.5rem" },
1167
- "64": { value: "4rem" },
1168
- "72": { value: "4.5rem" },
1169
- "80": { value: "5rem" },
1170
- "88": { value: "5.5rem" },
1171
- "96": { value: "6rem" },
1172
- "104": { value: "6.5rem" },
1173
- "112": { value: "7rem" },
1174
- "120": { value: "7.5rem" },
1175
- "128": { value: "8rem" },
1176
- "136": { value: "8.5rem" },
1177
- "144": { value: "9rem" },
1178
- "152": { value: "9.5rem" },
1179
- "160": { value: "10rem" },
1180
- "168": { value: "10.5rem" },
1181
- "176": { value: "11rem" },
1182
- "184": { value: "11.5rem" },
1183
- "192": { value: "12rem" },
1184
- "200": { value: "12.5rem" },
1185
- "208": { value: "13rem" },
1186
- "216": { value: "13.5rem" },
1187
- "224": { value: "14rem" },
1188
- "232": { value: "14.5rem" },
1189
- "240": { value: "15rem" },
1190
- "248": { value: "15.5rem" },
1191
- "256": { value: "16rem" },
1192
- "264": { value: "16.5rem" },
1193
- "272": { value: "17rem" },
1194
- "280": { value: "17.5rem" }
1195
- };
1196
- const utilitySizes = {
1197
- full: { value: "100%" },
1198
- half: { value: "50%" },
1199
- min: { value: "min-content" },
1200
- max: { value: "max-content" },
1201
- fit: { value: "fit-content" },
1202
- prose: { value: "65ch" },
1203
- auto: { value: "auto" }
1204
- };
1205
- const containerSizeTokens = {
1206
- "2xs": { value: "16rem" },
1207
- // 256px
1208
- xs: { value: "20rem" },
1209
- // 320px
1210
- sm: { value: "24rem" },
1211
- // 384px
1212
- md: { value: "28rem" },
1213
- // 448px
1214
- lg: { value: "32rem" },
1215
- // 512px
1216
- xl: { value: "36rem" },
1217
- // 576px
1218
- "2xl": { value: "42rem" },
1219
- // 672px
1220
- "3xl": { value: "48rem" },
1221
- // 768px
1222
- "4xl": { value: "56rem" },
1223
- // 896px
1224
- "5xl": { value: "64rem" },
1225
- // 1024px
1226
- "6xl": { value: "72rem" },
1227
- // 1152px
1228
- "7xl": { value: "80rem" },
1229
- // 1280px
1230
- "8xl": { value: "90rem" }
1231
- // 1440px
1232
- };
1233
- const sizes = defineTokens.sizes({
1234
- ...numericSizes,
1235
- ...utilitySizes,
1236
- ...containerSizeTokens
1237
- });
1238
- const radii = defineTokens.radii({
1239
- "0": { value: "{sizes.0}" },
1240
- "1": { value: "{sizes.1}" },
1241
- "2": { value: "{sizes.2}" },
1242
- "3": { value: "{sizes.3}" },
1243
- "4": { value: "{sizes.4}" },
1244
- "8": { value: "{sizes.8}" },
1245
- "16": { value: "{sizes.16}" },
1246
- "100": { value: utilitySizes["full"].value },
1247
- "999": { value: "999px" }
706
+ const transitionProperty = defineUtility({
707
+ className: "transition-property",
708
+ values: "transitions"
1248
709
  });
1249
710
  const sizeToken = (value) => `{sizes.${value}}`;
1250
711
  const colorToken = (value) => `{${value}}`;
@@ -1285,164 +746,31 @@ const getBoxShadowPrimitive = (name) => joinShadowLayers(
1285
746
  formatBoxShadowLayer,
1286
747
  ", "
1287
748
  );
1288
- const shadows$1 = defineTokens.shadows({
1289
- zeroBase: {
1290
- value: getBoxShadowPrimitive("zero")
1291
- },
1292
- raisedBase: {
1293
- value: getBoxShadowPrimitive("raised")
1294
- },
1295
- elevatedBase: {
1296
- value: getBoxShadowPrimitive("elevated")
1297
- },
1298
- overlayBase: {
1299
- value: getBoxShadowPrimitive("overlay")
1300
- },
1301
- overflowBase: {
1302
- value: getBoxShadowPrimitive("overflow")
1303
- }
1304
- });
1305
- const spacing$1 = defineTokens.spacing({
1306
- ...numericSizes,
1307
- ...utilitySizes
1308
- });
1309
- const zIndex$1 = defineTokens.zIndex({
1310
- "-1": { value: -1 },
1311
- "0": { value: 0 },
1312
- "1": { value: 1 },
1313
- "2": { value: 2 },
1314
- "3": { value: 3 },
1315
- "4": { value: 4 },
1316
- "5": { value: 5 },
1317
- "10": { value: 10 },
1318
- "1000": { value: 1e3 },
1319
- "1100": { value: 1100 },
1320
- "1101": { value: 1101 },
1321
- "1200": { value: 1200 }
1322
- });
1323
- const tokens = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1324
- __proto__: null,
1325
- animations,
1326
- aspectRatios,
1327
- blurs,
1328
- borderWidths,
1329
- borders,
1330
- colors: colors$1,
1331
- containerSizeTokens,
1332
- durations,
1333
- easings,
1334
- fontSizes: fontSizes$2,
1335
- fontWeights: fontWeights$1,
1336
- fonts,
1337
- letterSpacings,
1338
- lineHeights,
1339
- numericSizes,
1340
- radii,
1341
- shadows: shadows$1,
1342
- sizes,
1343
- spacing: spacing$1,
1344
- utilitySizes,
1345
- zIndex: zIndex$1
1346
- }, Symbol.toStringTag, { value: "Module" }));
1347
- const transitionProperties = {
1348
- all: {
1349
- value: "all"
1350
- },
1351
- common: {
1352
- value: "background-color, border-color, color, fill, stroke, opacity, box-shadow, transform"
1353
- },
1354
- colors: {
1355
- value: "background-color, border-color, color, fill, stroke"
1356
- },
1357
- opacity: {
1358
- value: "opacity"
1359
- },
1360
- shadow: {
1361
- value: "box-shadow"
1362
- },
1363
- transform: {
1364
- value: "transform"
1365
- },
1366
- position: {
1367
- value: "top, right, bottom, left"
1368
- },
1369
- size: {
1370
- value: "width, height"
1371
- },
1372
- spacing: {
1373
- value: "margin, padding"
1374
- },
1375
- outline: {
1376
- value: "outline, outline-color, outline-offset"
1377
- },
1378
- border: {
1379
- value: "border, border-color"
1380
- }
1381
- };
1382
- ({
1383
- all: {
1384
- value: `${transitionProperties.all} ${durations.normal} ${easings.default}`
1385
- },
1386
- common: {
1387
- value: `${transitionProperties.common} ${durations.normal} ${easings.default}`
1388
- },
1389
- colors: {
1390
- value: `${transitionProperties.colors} ${durations.normal} ${easings.default}`
1391
- },
1392
- opacity: {
1393
- value: `${transitionProperties.opacity} ${durations.normal} ${easings.default}`
1394
- },
1395
- shadow: {
1396
- value: `${transitionProperties.shadow} ${durations.normal} ${easings.default}`
1397
- },
1398
- transform: {
1399
- value: `${transitionProperties.transform} ${durations.normal} ${easings.default}`
1400
- },
1401
- position: {
1402
- value: `${transitionProperties.position} ${durations.normal} ${easings.default}`
1403
- },
1404
- size: {
1405
- value: `${transitionProperties.size} ${durations.normal} ${easings.default}`
1406
- },
1407
- spacing: {
1408
- value: `${transitionProperties.spacing} ${durations.normal} ${easings.default}`
1409
- },
1410
- outline: {
1411
- value: `${transitionProperties.outline} ${durations.normal} ${easings.default}`
1412
- },
1413
- border: {
1414
- value: `${transitionProperties.border} ${durations.normal} ${easings.default}`
1415
- }
1416
- });
1417
- const transitionProperty = defineUtility({
1418
- className: "transition-property",
1419
- values: "transitions"
1420
- });
1421
- const dropShadowValues = {
1422
- zero: "zero",
1423
- raised: "raised",
1424
- elevated: "elevated",
1425
- overlay: "overlay"
1426
- };
1427
- const resolveDropShadowValue = (value, token) => elevationShadowDefinitions[value].map((layer) => {
1428
- const x = token(`sizes.${layer.x}`);
1429
- const y = token(`sizes.${layer.y}`);
1430
- const blur = token(`sizes.${layer.blur}`);
1431
- const color = token(layer.color);
1432
- if (!x || !y || !blur || !color) {
1433
- throw new Error(`Unable to resolve dropShadow token for ${value}`);
1434
- }
1435
- return `drop-shadow(${x} ${y} ${blur} ${color})`;
1436
- }).join(" ");
1437
- const dropShadowProperty = defineUtility({
1438
- className: "drop-shadow",
1439
- group: "Effect",
1440
- values: dropShadowValues,
1441
- transform(value, ctx) {
1442
- return {
1443
- filter: filterAutoValue,
1444
- "--drop-shadow": resolveDropShadowValue(value, ctx.token)
1445
- };
749
+ const dropShadowValues = {
750
+ zero: "zero",
751
+ raised: "raised",
752
+ elevated: "elevated",
753
+ overlay: "overlay"
754
+ };
755
+ const resolveDropShadowValue = (value, token) => elevationShadowDefinitions[value].map((layer) => {
756
+ const x = token(`sizes.${layer.x}`);
757
+ const y = token(`sizes.${layer.y}`);
758
+ const blur = token(`sizes.${layer.blur}`);
759
+ const color = token(layer.color);
760
+ if (!x || !y || !blur || !color) {
761
+ throw new Error(`Unable to resolve dropShadow token for ${value}`);
762
+ }
763
+ return `drop-shadow(${x} ${y} ${blur} ${color})`;
764
+ }).join(" ");
765
+ const dropShadowProperty = defineUtility({
766
+ className: "drop-shadow",
767
+ group: "Effect",
768
+ values: dropShadowValues,
769
+ transform(value, ctx) {
770
+ return {
771
+ filter: filterAutoValue,
772
+ "--drop-shadow": resolveDropShadowValue(value, ctx.token)
773
+ };
1446
774
  }
1447
775
  });
1448
776
  const globalBaseStyles = {
@@ -3958,7 +3286,7 @@ var marginValues = (theme) => ({
3958
3286
  auto: "auto",
3959
3287
  ...theme("spacing")
3960
3288
  });
3961
- var spacing = {
3289
+ var spacing$1 = {
3962
3290
  padding: {
3963
3291
  className: "p",
3964
3292
  shorthand: "p",
@@ -4687,7 +4015,7 @@ var utilities = Object.assign(
4687
4015
  layout,
4688
4016
  display,
4689
4017
  flexGrid,
4690
- spacing,
4018
+ spacing$1,
4691
4019
  outline,
4692
4020
  focusRing,
4693
4021
  divide,
@@ -4800,6 +4128,28 @@ const textareaRecipe = defineRecipe({
4800
4128
  size: "md"
4801
4129
  }
4802
4130
  });
4131
+ const fontSizes$2 = defineTokens.fontSizes({
4132
+ "10": { value: "{sizes.10}" },
4133
+ "12": { value: "{sizes.12}" },
4134
+ "14": { value: "{sizes.14}" },
4135
+ "16": { value: "{sizes.16}" },
4136
+ "20": { value: "{sizes.20}" },
4137
+ "24": { value: "{sizes.24}" },
4138
+ "32": { value: "{sizes.32}" },
4139
+ "40": { value: "{sizes.40}" },
4140
+ "48": { value: "{sizes.48}" },
4141
+ "64": { value: "{sizes.64}" },
4142
+ "72": { value: "{sizes.72}" },
4143
+ "80": { value: "{sizes.80}" },
4144
+ "96": { value: "{sizes.96}" }
4145
+ });
4146
+ const fontWeights$1 = defineTokens.fontWeights({
4147
+ light: { value: 300 },
4148
+ normal: { value: 400 },
4149
+ medium: { value: 500 },
4150
+ bold: { value: 700 },
4151
+ black: { value: 900 }
4152
+ });
4803
4153
  const textBase = {
4804
4154
  ...globalBaseStyles,
4805
4155
  fontFamily: "body",
@@ -5827,53 +5177,703 @@ const tagRecipe = defineRecipe({
5827
5177
  }
5828
5178
  ]
5829
5179
  });
5830
- const radioInputBase = {
5831
- display: "flex",
5832
- alignItems: "flex-start",
5833
- gap: "4",
5834
- "&.cetec-label": {
5835
- fontSize: "16",
5836
- lineHeight: "default"
5180
+ const radioInputBase = {
5181
+ display: "flex",
5182
+ alignItems: "flex-start",
5183
+ gap: "4",
5184
+ "&.cetec-label": {
5185
+ fontSize: "16",
5186
+ lineHeight: "default"
5187
+ },
5188
+ _disabled: {
5189
+ opacity: 0.4,
5190
+ cursor: "not-allowed"
5191
+ },
5192
+ _groupDisabled: {
5193
+ opacity: 1
5194
+ // let FormField handle disabled state opacity
5195
+ }
5196
+ };
5197
+ const radioInputRecipe = defineRecipe({
5198
+ className: "radioInput",
5199
+ jsx: ["RadioInput"],
5200
+ base: radioInputBase,
5201
+ variants: {}
5202
+ });
5203
+ const checkboxInputBase = {
5204
+ ...globalBaseStyles,
5205
+ display: "flex",
5206
+ alignItems: "start",
5207
+ gap: "4",
5208
+ "&.cetec-label": {
5209
+ fontSize: "16",
5210
+ lineHeight: "default"
5211
+ },
5212
+ _disabled: {
5213
+ opacity: 0.4,
5214
+ cursor: "not-allowed"
5215
+ },
5216
+ _groupDisabled: {
5217
+ opacity: 1
5218
+ // let FormField handle disabled state opacity
5219
+ }
5220
+ };
5221
+ const checkboxInputRecipe = defineRecipe({
5222
+ className: "checkboxInput",
5223
+ jsx: ["CheckboxInput"],
5224
+ base: checkboxInputBase,
5225
+ variants: {}
5226
+ });
5227
+ const animations = defineTokens.animations({
5228
+ spin: {
5229
+ value: "spin 1s linear infinite"
5230
+ },
5231
+ ping: {
5232
+ value: "ping 1s cubic-bezier(0, 0, 0.2, 1) infinite"
5233
+ },
5234
+ pulse: {
5235
+ value: "pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite"
5236
+ },
5237
+ bounce: {
5238
+ value: "bounce 1s infinite"
5239
+ },
5240
+ skeletonWave: {
5241
+ value: "skeletonWave 2s linear 0.5s infinite"
5242
+ }
5243
+ });
5244
+ const aspectRatios = defineTokens.aspectRatios({
5245
+ square: {
5246
+ value: "1 / 1"
5247
+ },
5248
+ landscape: {
5249
+ value: "4 / 3"
5250
+ },
5251
+ portrait: {
5252
+ value: "3 / 4"
5253
+ },
5254
+ wide: {
5255
+ value: "16 / 9"
5256
+ },
5257
+ ultrawide: {
5258
+ value: "18 / 5"
5259
+ },
5260
+ golden: {
5261
+ value: "1.618 / 1"
5262
+ }
5263
+ });
5264
+ const blurs = defineTokens.blurs({
5265
+ sm: {
5266
+ value: "{sizes.4}"
5267
+ },
5268
+ base: {
5269
+ value: "{sizes.8}"
5270
+ },
5271
+ md: {
5272
+ value: "{sizes.12}"
5273
+ },
5274
+ lg: {
5275
+ value: "{sizes.16}"
5276
+ },
5277
+ xl: {
5278
+ value: "{sizes.24}"
5279
+ },
5280
+ "2xl": {
5281
+ value: "{sizes.40}"
5282
+ },
5283
+ "3xl": {
5284
+ value: "{sizes.64}"
5285
+ }
5286
+ });
5287
+ const borders = defineTokens.borders({
5288
+ default: {
5289
+ value: "{borderWidths.1} solid {colors.border}"
5290
+ },
5291
+ bold: {
5292
+ value: "{borderWidths.2} solid {colors.border.bold}"
5293
+ },
5294
+ inverse: {
5295
+ value: "{borderWidths.1} solid {colors.border.inverse}"
5296
+ },
5297
+ disabled: {
5298
+ value: "{borderWidths.1} solid {colors.border.disabled}"
5299
+ },
5300
+ input: {
5301
+ value: "{borderWidths.1} solid {colors.border.input}"
5302
+ },
5303
+ focused: {
5304
+ value: "{borderWidths.2} solid {colors.border.focused}"
5305
+ },
5306
+ success: {
5307
+ value: "{borderWidths.1} solid {colors.border.success}"
5308
+ },
5309
+ warning: {
5310
+ value: "{borderWidths.1} solid {colors.border.warning}"
5311
+ },
5312
+ danger: {
5313
+ value: "{borderWidths.1} solid {colors.border.danger}"
5314
+ },
5315
+ info: {
5316
+ value: "{borderWidths.1} solid {colors.border.info}"
5317
+ },
5318
+ none: {
5319
+ value: "none"
5320
+ }
5321
+ });
5322
+ const borderWidths = defineTokens.borderWidths({
5323
+ "0": { value: "{sizes.0}" },
5324
+ "1": { value: "{sizes.1}" },
5325
+ "2": { value: "{sizes.2}" },
5326
+ "4": { value: "{sizes.4}" },
5327
+ "8": { value: "{sizes.8}" },
5328
+ "16": { value: "{sizes.16}" }
5329
+ });
5330
+ const colors$1 = defineTokens.colors({
5331
+ transparent: { value: "transparent" },
5332
+ current: { value: "currentColor" },
5333
+ inherit: { value: "inherit" },
5334
+ neutral: {
5335
+ "0": { value: "#FFFFFF" },
5336
+ "10": { value: "#F8F8F8" },
5337
+ "20": { value: "#F0F1F2" },
5338
+ "30": { value: "#DDDEE1" },
5339
+ "40": { value: "#B7B9BE" },
5340
+ "50": { value: "#8C8F97" },
5341
+ "60": { value: "#7D818A" },
5342
+ "70": { value: "#6B6E76" },
5343
+ "80": { value: "#505258" },
5344
+ "90": { value: "#3B3D42" },
5345
+ "100": { value: "#292A2E" },
5346
+ "110": { value: "#1E1F21" }
5347
+ },
5348
+ neutralA: {
5349
+ "10": { value: "#17171708" },
5350
+ "20": { value: "#1717170F" },
5351
+ "30": { value: "#17171724" },
5352
+ "40": { value: "#1717174A" },
5353
+ "50": { value: "#17171775" }
5354
+ },
5355
+ darkNeutral: {
5356
+ "0": { value: "#18191A" },
5357
+ "10": { value: "#1F1F21" },
5358
+ "20": { value: "#242528" },
5359
+ "25": { value: "#2B2C2F" },
5360
+ "30": { value: "#303134" },
5361
+ "35": { value: "#3D3F43" },
5362
+ "40": { value: "#4B4D51" },
5363
+ "50": { value: "#63666B" },
5364
+ "60": { value: "#7E8188" },
5365
+ "70": { value: "#96999E" },
5366
+ "80": { value: "#A9ABAF" },
5367
+ "90": { value: "#BFC1C4" },
5368
+ "100": { value: "#CECFD2" },
5369
+ "110": { value: "#E2E3E4" },
5370
+ "120": { value: "#F1F1F2" }
5371
+ },
5372
+ darkNeutralA: {
5373
+ "-10": { value: "#01040475" },
5374
+ "10": { value: "#BDBDBD0A" },
5375
+ "20": { value: "#CECED912" },
5376
+ "25": { value: "#D9DAE71A" },
5377
+ "30": { value: "#E3E4F21F" },
5378
+ "35": { value: "#E8EDFD2E" },
5379
+ "40": { value: "#E5E9F640" },
5380
+ "50": { value: "#E9F0FB5C" }
5381
+ },
5382
+ slate: {
5383
+ "0": { value: "#FFFFFF" },
5384
+ "1": { value: "#FAFAFA" },
5385
+ "2": { value: "#F9F8F6" },
5386
+ "3": { value: "#F7F5F3" },
5387
+ "4": { value: "#F6F3EF" },
5388
+ "5": { value: "#F4F0EB" },
5389
+ "10": { value: "#E3E1DE" },
5390
+ "20": { value: "#CBCAC8" },
5391
+ "30": { value: "#AFADAB" },
5392
+ "40": { value: "#939190" },
5393
+ "50": { value: "#767675" },
5394
+ "60": { value: "#5F5F5E" },
5395
+ "70": { value: "#474747" },
5396
+ "80": { value: "#2E2E2E" },
5397
+ "90": { value: "#1E1E1E" },
5398
+ "100": { value: "#000000" }
5399
+ },
5400
+ slate_inverse: {
5401
+ "0": { value: "#000000" },
5402
+ "1": { value: "#383838" },
5403
+ "2": { value: "#474643" },
5404
+ "3": { value: "#53504c" },
5405
+ "4": { value: "#5d5954" },
5406
+ "5": { value: "#66605e" },
5407
+ "10": { value: "#8a8985" },
5408
+ "20": { value: "#acabaa" },
5409
+ "30": { value: "#cbc8c4" },
5410
+ "40": { value: "#dfdcdb" },
5411
+ "50": { value: "#eaeaea" },
5412
+ "60": { value: "#f2f2f2" },
5413
+ "70": { value: "#f8f8f8" },
5414
+ "80": { value: "#fcfcfc" },
5415
+ "90": { value: "#fefefe" },
5416
+ "100": { value: "#ffffff" }
5417
+ },
5418
+ gold: {
5419
+ "1": { value: "#FFFCF4" },
5420
+ "2": { value: "#FFF9E9" },
5421
+ "3": { value: "#FEF6DE" },
5422
+ "4": { value: "#FEF3D3" },
5423
+ "5": { value: "#FEF0C8" },
5424
+ "10": { value: "#FFE396" },
5425
+ "15": { value: "#ffd162" },
5426
+ "20": { value: "#FFBE2E" },
5427
+ "30": { value: "#E5A000" },
5428
+ "40": { value: "#C2850C" },
5429
+ "50": { value: "#936F38" },
5430
+ "60": { value: "#7A591A" },
5431
+ "70": { value: "#5C410A" },
5432
+ "80": { value: "#3B2B15" },
5433
+ "90": { value: "#1E1100" }
5434
+ },
5435
+ blue: {
5436
+ "1": { value: "#FAFDFF" },
5437
+ "2": { value: "#F6FBFF" },
5438
+ "3": { value: "#F1F9FF" },
5439
+ "4": { value: "#EDF7FF" },
5440
+ "5": { value: "#E8F5FF" },
5441
+ "10": { value: "#CFE8FF" },
5442
+ "20": { value: "#A1D3FF" },
5443
+ "30": { value: "#58B4FF" },
5444
+ "40": { value: "#2491FF" },
5445
+ "50": { value: "#0076DA" },
5446
+ "60": { value: "#005EA2" },
5447
+ "70": { value: "#0B4778" },
5448
+ "80": { value: "#112F4E" },
5449
+ "90": { value: "#11181D" }
5450
+ },
5451
+ green: {
5452
+ "1": { value: "#F8FEF4" },
5453
+ "2": { value: "#F1FDE9" },
5454
+ "3": { value: "#EBFBDD" },
5455
+ "4": { value: "#E4FAD2" },
5456
+ "5": { value: "#DDF9C7" },
5457
+ "10": { value: "#C5EE93" },
5458
+ "20": { value: "#98D035" },
5459
+ "30": { value: "#7FB135" },
5460
+ "40": { value: "#719F2A" },
5461
+ "50": { value: "#538200" },
5462
+ "60": { value: "#466C04" },
5463
+ "70": { value: "#2F4A0B" },
5464
+ "80": { value: "#243413" },
5465
+ "90": { value: "#0D1400" }
5466
+ },
5467
+ yellow: {
5468
+ "1": { value: "#FFFDF3" },
5469
+ "2": { value: "#FFFBE7" },
5470
+ "3": { value: "#FFF9DA" },
5471
+ "4": { value: "#FFF7CE" },
5472
+ "5": { value: "#FFF5C2" },
5473
+ "10": { value: "#FEE685" },
5474
+ "20": { value: "#FACE00" },
5475
+ "30": { value: "#DDAA01" },
5476
+ "40": { value: "#B38C00" },
5477
+ "50": { value: "#947100" },
5478
+ "60": { value: "#776017" },
5479
+ "70": { value: "#5C4809" },
5480
+ "80": { value: "#422D19" },
5481
+ "90": { value: "#1C0B00" }
5482
+ },
5483
+ red: {
5484
+ "1": { value: "#FFF9FA" },
5485
+ "2": { value: "#FFF3F5" },
5486
+ "3": { value: "#FFEEF0" },
5487
+ "4": { value: "#FFE8EB" },
5488
+ "5": { value: "#FFE2E6" },
5489
+ "10": { value: "#FFB1B8" },
5490
+ "20": { value: "#FF7F8A" },
5491
+ "30": { value: "#FF4D5B" },
5492
+ "40": { value: "#FE1D2D" },
5493
+ "50": { value: "#E50513" },
5494
+ "60": { value: "#B3000E" },
5495
+ "70": { value: "#810009" },
5496
+ "80": { value: "#4F0004" },
5497
+ "90": { value: "#200000" }
5498
+ },
5499
+ tomato: {
5500
+ "5": { value: "#FFF3F2" },
5501
+ "10": { value: "#FDE0DB" },
5502
+ "20": { value: "#FDB8AE" },
5503
+ "30": { value: "#FF8D7B" },
5504
+ "40": { value: "#FB5A47" },
5505
+ "50": { value: "#E52207" },
5506
+ "60": { value: "#B50909" },
5507
+ "70": { value: "#8B0A03" },
5508
+ "80": { value: "#5C1111" },
5509
+ "90": { value: "#200100" }
5510
+ },
5511
+ tan: {
5512
+ "5": { value: "#F5F0E6" },
5513
+ "10": { value: "#F1E5CD" },
5514
+ "20": { value: "#DEC69A" },
5515
+ "30": { value: "#C7A97B" },
5516
+ "40": { value: "#AD8B65" },
5517
+ "50": { value: "#8E704F" },
5518
+ "60": { value: "#6B5947" },
5519
+ "70": { value: "#4D4438" },
5520
+ "80": { value: "#322D26" },
5521
+ "90": { value: "#191714" }
5522
+ },
5523
+ orange: {
5524
+ "5": { value: "#FFF9F3" },
5525
+ "10": { value: "#FDDFBF" },
5526
+ "20": { value: "#FAC58C" },
5527
+ "30": { value: "#F8AA58" },
5528
+ "40": { value: "#F59025" },
5529
+ "50": { value: "#DC760A" },
5530
+ "60": { value: "#AB5C08" },
5531
+ "70": { value: "#7A4105" },
5532
+ "80": { value: "#492703" },
5533
+ "90": { value: "#180D01" }
5534
+ },
5535
+ pear: {
5536
+ "5": { value: "#FDFDF6" },
5537
+ "10": { value: "#F3F6CE" },
5538
+ "20": { value: "#E9EEA6" },
5539
+ "30": { value: "#E0E77E" },
5540
+ "40": { value: "#D6E056" },
5541
+ "50": { value: "#BFC93E" },
5542
+ "60": { value: "#9CA437" },
5543
+ "70": { value: "#797F2F" },
5544
+ "80": { value: "#565A28" },
5545
+ "90": { value: "#333520" }
5546
+ },
5547
+ grass: {
5548
+ "5": { value: "#F5FBF7" },
5549
+ "10": { value: "#CBEBD3" },
5550
+ "20": { value: "#A1DAAE" },
5551
+ "30": { value: "#76CA8A" },
5552
+ "40": { value: "#4CB965" },
5553
+ "50": { value: "#34A24E" },
5554
+ "60": { value: "#2F8543" },
5555
+ "70": { value: "#2A6838" },
5556
+ "80": { value: "#244A2D" },
5557
+ "90": { value: "#1F2D22" }
5558
+ },
5559
+ mint: {
5560
+ "5": { value: "#F5FDFB" },
5561
+ "10": { value: "#CFF5EA" },
5562
+ "20": { value: "#A9ECD9" },
5563
+ "30": { value: "#83E4C8" },
5564
+ "40": { value: "#5DDBB7" },
5565
+ "50": { value: "#45C4A0" },
5566
+ "60": { value: "#3C9F83" },
5567
+ "70": { value: "#327965" },
5568
+ "80": { value: "#295448" },
5569
+ "90": { value: "#1F2E2A" }
5570
+ },
5571
+ cyan: {
5572
+ "5": { value: "#E7F6F8" },
5573
+ "10": { value: "#CCECF2" },
5574
+ "20": { value: "#99DEEA" },
5575
+ "30": { value: "#5DC0D1" },
5576
+ "40": { value: "#449DAC" },
5577
+ "50": { value: "#168092" },
5578
+ "60": { value: "#2A646D" },
5579
+ "70": { value: "#2C4A4E" },
5580
+ "80": { value: "#203133" },
5581
+ "90": { value: "#111819" }
5582
+ },
5583
+ indigo: {
5584
+ "5": { value: "#F9FAFD" },
5585
+ "10": { value: "#CFD4EB" },
5586
+ "20": { value: "#A5AEDA" },
5587
+ "30": { value: "#7A89C8" },
5588
+ "40": { value: "#5063B7" },
5589
+ "50": { value: "#384CA1" },
5590
+ "60": { value: "#334388" },
5591
+ "70": { value: "#2E3A6E" },
5592
+ "80": { value: "#293155" },
5593
+ "90": { value: "#24283B" }
5594
+ },
5595
+ purple: {
5596
+ "5": { value: "#F5F3FF" },
5597
+ "10": { value: "#DDD1FD" },
5598
+ "20": { value: "#C6B0FB" },
5599
+ "30": { value: "#AE8EF9" },
5600
+ "40": { value: "#976DF7" },
5601
+ "50": { value: "#7F55E3" },
5602
+ "60": { value: "#6746BD" },
5603
+ "70": { value: "#4E3897" },
5604
+ "80": { value: "#362971" },
5605
+ "90": { value: "#1E1B4B" }
5606
+ },
5607
+ violet: {
5608
+ "5": { value: "#FDF4FF" },
5609
+ "10": { value: "#F4CAFB" },
5610
+ "20": { value: "#EBA0F6" },
5611
+ "30": { value: "#E276F2" },
5612
+ "40": { value: "#D94CED" },
5613
+ "50": { value: "#C531DA" },
5614
+ "60": { value: "#A626B7" },
5615
+ "70": { value: "#871B94" },
5616
+ "80": { value: "#690F71" },
5617
+ "90": { value: "#4A044E" }
5618
+ },
5619
+ pink: {
5620
+ "5": { value: "#FFF9FB" },
5621
+ "10": { value: "#FDDDE9" },
5622
+ "20": { value: "#FBC1D7" },
5623
+ "30": { value: "#FAA6C5" },
5624
+ "40": { value: "#F88AB3" },
5625
+ "50": { value: "#E3739D" },
5626
+ "60": { value: "#BC6283" },
5627
+ "70": { value: "#94506A" },
5628
+ "80": { value: "#6D3F50" },
5629
+ "90": { value: "#452D36" }
5630
+ },
5631
+ rose: {
5632
+ "5": { value: "#FFF1F2" },
5633
+ "10": { value: "#FFCDDC" },
5634
+ "20": { value: "#FFA8C5" },
5635
+ "30": { value: "#FF84AF" },
5636
+ "40": { value: "#FF5F98" },
5637
+ "50": { value: "#EB4580" },
5638
+ "60": { value: "#C33566" },
5639
+ "70": { value: "#9C254D" },
5640
+ "80": { value: "#741533" },
5641
+ "90": { value: "#4C0519" }
5642
+ },
5643
+ magenta: {
5644
+ "5": { value: "#FEF6FA" },
5645
+ "10": { value: "#FACEE6" },
5646
+ "20": { value: "#F6A6D2" },
5647
+ "30": { value: "#F37EBE" },
5648
+ "40": { value: "#EF56AA" },
5649
+ "50": { value: "#DA3E94" },
5650
+ "60": { value: "#B4377C" },
5651
+ "70": { value: "#8F3064" },
5652
+ "80": { value: "#69284C" },
5653
+ "90": { value: "#432134" }
5654
+ },
5655
+ shadow: {
5656
+ "8": { value: "hsl(0deg 0% 0% / 0.08)" },
5657
+ "16": { value: "hsl(0deg 0% 0% / 0.16)" },
5658
+ "24": { value: "hsl(0deg 0% 0% / 0.24)" },
5659
+ "32": { value: "hsl(0deg 0% 0% / 0.32)" },
5660
+ "40": { value: "hsl(0deg 0% 0% / 0.40)" },
5661
+ "48": { value: "hsl(0deg 0% 0% / 0.48)" },
5662
+ "56": { value: "hsl(0deg 0% 0% / 0.56)" },
5663
+ "64": { value: "hsl(0deg 0% 0% / 0.64)" }
5664
+ }
5665
+ });
5666
+ const fonts = defineTokens.fonts({
5667
+ heading: {
5668
+ value: "'Ruda Variable', Source Sans, Geneva, Tahoma, Verdana, sans-serif;"
5837
5669
  },
5838
- _disabled: {
5839
- opacity: 0.4,
5840
- cursor: "not-allowed"
5670
+ body: { value: "'Recursive Variable', Geneva, Tahoma, Verdana, sans-serif;" },
5671
+ mono: {
5672
+ value: "'Recursive Variable', Andale Mono, monaco, Consolas, Lucida Console, monospace;"
5673
+ }
5674
+ });
5675
+ const letterSpacings = defineTokens.letterSpacings({
5676
+ tighter: {
5677
+ value: "-0.05em"
5841
5678
  },
5842
- _groupDisabled: {
5843
- opacity: 1
5844
- // let FormField handle disabled state opacity
5679
+ tight: {
5680
+ value: "-0.025em"
5681
+ },
5682
+ normal: {
5683
+ value: "0em"
5684
+ },
5685
+ wide: {
5686
+ value: "0.025em"
5687
+ },
5688
+ wider: {
5689
+ value: "0.05em"
5690
+ },
5691
+ widest: {
5692
+ value: "0.1em"
5845
5693
  }
5846
- };
5847
- const radioInputRecipe = defineRecipe({
5848
- className: "radioInput",
5849
- jsx: ["RadioInput"],
5850
- base: radioInputBase,
5851
- variants: {}
5852
5694
  });
5853
- const checkboxInputBase = {
5854
- ...globalBaseStyles,
5855
- display: "flex",
5856
- alignItems: "start",
5857
- gap: "4",
5858
- "&.cetec-label": {
5859
- fontSize: "16",
5860
- lineHeight: "default"
5695
+ const lineHeights = defineTokens.lineHeights({
5696
+ none: {
5697
+ value: "1"
5861
5698
  },
5862
- _disabled: {
5863
- opacity: 0.4,
5864
- cursor: "not-allowed"
5699
+ tight: {
5700
+ value: "calc(1em + 0.25rem)"
5701
+ // 4
5865
5702
  },
5866
- _groupDisabled: {
5867
- opacity: 1
5868
- // let FormField handle disabled state opacity
5703
+ default: {
5704
+ value: "calc(1em + 0.5rem)"
5705
+ // 8
5706
+ },
5707
+ loose: {
5708
+ value: "calc(1em + 0.75rem)"
5709
+ // 12
5869
5710
  }
5711
+ });
5712
+ const numericSizes = {
5713
+ "0": { value: "0" },
5714
+ "1": { value: "0.0625rem" },
5715
+ "2": { value: "0.125rem" },
5716
+ "3": { value: "0.1875rem" },
5717
+ "4": { value: "0.25rem" },
5718
+ "5": { value: "0.3125rem" },
5719
+ "6": { value: "0.375rem" },
5720
+ "7": { value: "0.4375rem" },
5721
+ "8": { value: "0.5rem" },
5722
+ "9": { value: "0.5625rem" },
5723
+ "10": { value: "0.625rem" },
5724
+ "12": { value: "0.75rem" },
5725
+ "14": { value: "0.875rem" },
5726
+ "16": { value: "1rem" },
5727
+ "18": { value: "1.125rem" },
5728
+ "20": { value: "1.25rem" },
5729
+ "22": { value: "1.375rem" },
5730
+ "24": { value: "1.5rem" },
5731
+ "28": { value: "1.75rem" },
5732
+ "32": { value: "2rem" },
5733
+ "40": { value: "2.5rem" },
5734
+ "48": { value: "3rem" },
5735
+ "56": { value: "3.5rem" },
5736
+ "64": { value: "4rem" },
5737
+ "72": { value: "4.5rem" },
5738
+ "80": { value: "5rem" },
5739
+ "88": { value: "5.5rem" },
5740
+ "96": { value: "6rem" },
5741
+ "104": { value: "6.5rem" },
5742
+ "112": { value: "7rem" },
5743
+ "120": { value: "7.5rem" },
5744
+ "128": { value: "8rem" },
5745
+ "136": { value: "8.5rem" },
5746
+ "144": { value: "9rem" },
5747
+ "152": { value: "9.5rem" },
5748
+ "160": { value: "10rem" },
5749
+ "168": { value: "10.5rem" },
5750
+ "176": { value: "11rem" },
5751
+ "184": { value: "11.5rem" },
5752
+ "192": { value: "12rem" },
5753
+ "200": { value: "12.5rem" },
5754
+ "208": { value: "13rem" },
5755
+ "216": { value: "13.5rem" },
5756
+ "224": { value: "14rem" },
5757
+ "232": { value: "14.5rem" },
5758
+ "240": { value: "15rem" },
5759
+ "248": { value: "15.5rem" },
5760
+ "256": { value: "16rem" },
5761
+ "264": { value: "16.5rem" },
5762
+ "272": { value: "17rem" },
5763
+ "280": { value: "17.5rem" }
5870
5764
  };
5871
- const checkboxInputRecipe = defineRecipe({
5872
- className: "checkboxInput",
5873
- jsx: ["CheckboxInput"],
5874
- base: checkboxInputBase,
5875
- variants: {}
5765
+ const utilitySizes = {
5766
+ full: { value: "100%" },
5767
+ half: { value: "50%" },
5768
+ min: { value: "min-content" },
5769
+ max: { value: "max-content" },
5770
+ fit: { value: "fit-content" },
5771
+ prose: { value: "65ch" },
5772
+ auto: { value: "auto" }
5773
+ };
5774
+ const containerSizeTokens = {
5775
+ "2xs": { value: "16rem" },
5776
+ // 256px
5777
+ xs: { value: "20rem" },
5778
+ // 320px
5779
+ sm: { value: "24rem" },
5780
+ // 384px
5781
+ md: { value: "28rem" },
5782
+ // 448px
5783
+ lg: { value: "32rem" },
5784
+ // 512px
5785
+ xl: { value: "36rem" },
5786
+ // 576px
5787
+ "2xl": { value: "42rem" },
5788
+ // 672px
5789
+ "3xl": { value: "48rem" },
5790
+ // 768px
5791
+ "4xl": { value: "56rem" },
5792
+ // 896px
5793
+ "5xl": { value: "64rem" },
5794
+ // 1024px
5795
+ "6xl": { value: "72rem" },
5796
+ // 1152px
5797
+ "7xl": { value: "80rem" },
5798
+ // 1280px
5799
+ "8xl": { value: "90rem" }
5800
+ // 1440px
5801
+ };
5802
+ const sizes = defineTokens.sizes({
5803
+ ...numericSizes,
5804
+ ...utilitySizes,
5805
+ ...containerSizeTokens
5806
+ });
5807
+ const radii = defineTokens.radii({
5808
+ "0": { value: "{sizes.0}" },
5809
+ "1": { value: "{sizes.1}" },
5810
+ "2": { value: "{sizes.2}" },
5811
+ "3": { value: "{sizes.3}" },
5812
+ "4": { value: "{sizes.4}" },
5813
+ "8": { value: "{sizes.8}" },
5814
+ "16": { value: "{sizes.16}" },
5815
+ "100": { value: utilitySizes["full"].value },
5816
+ "999": { value: "999px" }
5817
+ });
5818
+ const shadows$1 = defineTokens.shadows({
5819
+ zeroBase: {
5820
+ value: getBoxShadowPrimitive("zero")
5821
+ },
5822
+ raisedBase: {
5823
+ value: getBoxShadowPrimitive("raised")
5824
+ },
5825
+ elevatedBase: {
5826
+ value: getBoxShadowPrimitive("elevated")
5827
+ },
5828
+ overlayBase: {
5829
+ value: getBoxShadowPrimitive("overlay")
5830
+ },
5831
+ overflowBase: {
5832
+ value: getBoxShadowPrimitive("overflow")
5833
+ }
5834
+ });
5835
+ const spacing = defineTokens.spacing({
5836
+ ...numericSizes,
5837
+ ...utilitySizes
5838
+ });
5839
+ const zIndex$1 = defineTokens.zIndex({
5840
+ "-1": { value: -1 },
5841
+ "0": { value: 0 },
5842
+ "1": { value: 1 },
5843
+ "2": { value: 2 },
5844
+ "3": { value: 3 },
5845
+ "4": { value: 4 },
5846
+ "5": { value: 5 },
5847
+ "10": { value: 10 },
5848
+ "1000": { value: 1e3 },
5849
+ "1100": { value: 1100 },
5850
+ "1101": { value: 1101 },
5851
+ "1200": { value: 1200 }
5876
5852
  });
5853
+ const tokens = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
5854
+ __proto__: null,
5855
+ animations,
5856
+ aspectRatios,
5857
+ blurs,
5858
+ borderWidths,
5859
+ borders,
5860
+ colors: colors$1,
5861
+ containerSizeTokens,
5862
+ durations,
5863
+ easings,
5864
+ fontSizes: fontSizes$2,
5865
+ fontWeights: fontWeights$1,
5866
+ fonts,
5867
+ letterSpacings,
5868
+ lineHeights,
5869
+ numericSizes,
5870
+ radii,
5871
+ shadows: shadows$1,
5872
+ sizes,
5873
+ spacing,
5874
+ utilitySizes,
5875
+ zIndex: zIndex$1
5876
+ }, Symbol.toStringTag, { value: "Module" }));
5877
5877
  const sizeVariants = Object.fromEntries(
5878
5878
  Object.keys(numericSizes).map((key) => [key, { w: key }])
5879
5879
  );
@@ -7434,7 +7434,12 @@ const chipRecipe = defineSlotRecipe({
7434
7434
  aspectRatio: "square",
7435
7435
  ...buttonStyles,
7436
7436
  w: "calc(var(--slot-size) + (var(--slot-px) * 2))",
7437
- h: "calc(var(--slot-size) + (var(--slot-px) * 2))"
7437
+ h: "calc(var(--slot-size) + (var(--slot-px) * 2))",
7438
+ _icon: {
7439
+ fill: "icon.decorative",
7440
+ width: "var(--slot-size)",
7441
+ height: "var(--slot-size)"
7442
+ }
7438
7443
  },
7439
7444
  slot: {
7440
7445
  display: "inline-flex",
@@ -7883,18 +7888,71 @@ const modalRecipe = defineSlotRecipe({
7883
7888
  position: "centered"
7884
7889
  }
7885
7890
  });
7886
- const datePickerBase = {
7891
+ const breadcrumbsRecipe = defineSlotRecipe({
7892
+ className: "breadcrumbs",
7893
+ jsx: ["Breadcrumbs"],
7894
+ slots: ["wrapper", "slash", "linkSegment", "currentSegment"],
7895
+ base: {
7896
+ wrapper: {
7897
+ ...globalBaseStyles,
7898
+ display: "flex",
7899
+ gap: "6",
7900
+ alignItems: "center",
7901
+ fontFamily: "mono",
7902
+ fontSize: "14",
7903
+ "& li": {
7904
+ display: "flex",
7905
+ gap: "6",
7906
+ alignItems: "center"
7907
+ }
7908
+ },
7909
+ slash: {
7910
+ fontFamily: "mono",
7911
+ fontSize: "14",
7912
+ color: "text.placeholder"
7913
+ },
7914
+ linkSegment: {
7915
+ fontFamily: "mono",
7916
+ fontSize: "14",
7917
+ color: "text.subtlest",
7918
+ fontWeight: "normal",
7919
+ whiteSpace: "nowrap",
7920
+ _hover: {
7921
+ color: "link"
7922
+ },
7923
+ _focusVisible: {
7924
+ color: "blue.50"
7925
+ }
7926
+ },
7927
+ currentSegment: {
7928
+ fontFamily: "mono",
7929
+ fontSize: "14",
7930
+ color: "text",
7931
+ fontWeight: "bold",
7932
+ whiteSpace: "nowrap"
7933
+ }
7934
+ }
7935
+ });
7936
+ const selectBase = {
7887
7937
  root: {
7938
+ "--icon-size": "token(sizes.24)",
7939
+ "--icon-margin": "token(sizes.3)",
7940
+ "--input-icon-padding": "token(sizes.10)",
7888
7941
  display: "inline-flex",
7889
7942
  flexDirection: "column",
7890
- position: "relative"
7943
+ position: "relative",
7944
+ minWidth: "0",
7945
+ maxW: "full",
7946
+ width: "fit"
7891
7947
  },
7892
- // The segmented input container — visually identical to textinput
7893
- input: {
7948
+ trigger: {
7949
+ position: "relative",
7894
7950
  display: "inline-flex",
7895
7951
  alignItems: "center",
7896
- gap: "0",
7897
- width: "full",
7952
+ width: "fit",
7953
+ minWidth: "0",
7954
+ maxWidth: "full",
7955
+ pe: "var(--input-icon-padding)",
7898
7956
  borderWidth: "1",
7899
7957
  borderStyle: "solid",
7900
7958
  borderColor: "border.input",
@@ -7905,14 +7963,17 @@ const datePickerBase = {
7905
7963
  outlineColor: "transparent",
7906
7964
  bg: "bg.input",
7907
7965
  color: "text",
7908
- fontFamily: "mono",
7966
+ fontFamily: "body",
7909
7967
  lineHeight: "default",
7910
- cursor: "text",
7911
- userSelect: "none",
7968
+ cursor: "pointer",
7969
+ overflow: "hidden",
7912
7970
  transitionDuration: "fast",
7913
7971
  transitionProperty: "background, border-color, outline-color",
7914
7972
  transitionTimingFunction: "default",
7915
- _focusWithin: {
7973
+ _hover: {
7974
+ bg: "bg.input.hovered"
7975
+ },
7976
+ _focusVisible: {
7916
7977
  bg: "bg.input.pressed",
7917
7978
  borderColor: "border.focused",
7918
7979
  outlineColor: "border.focused"
@@ -7934,7 +7995,7 @@ const datePickerBase = {
7934
7995
  _hover: {
7935
7996
  borderColor: "border.danger"
7936
7997
  },
7937
- _focusWithin: {
7998
+ _focusVisible: {
7938
7999
  borderColor: "border.danger",
7939
8000
  outlineColor: "border.danger"
7940
8001
  },
@@ -7944,424 +8005,599 @@ const datePickerBase = {
7944
8005
  }
7945
8006
  }
7946
8007
  },
7947
- // Individual focusable segment span (MM, DD, YYYY)
7948
- segment: {
7949
- display: "inline-flex",
7950
- alignItems: "center",
7951
- justifyContent: "center",
7952
- outline: "none",
7953
- borderRadius: "2",
7954
- cursor: "default",
7955
- userSelect: "none",
7956
- fontFamily: "mono",
7957
- fontVariantsProperty: "mono",
7958
- fontVariantNumeric: "tabular-nums",
7959
- minWidth: "1.5em",
7960
- textAlign: "center",
7961
- color: "text",
7962
- _focusVisible: {
7963
- bg: "bg.neutral.hovered"
7964
- },
7965
- _groupDisabled: {
7966
- color: "text.disabled"
7967
- }
7968
- },
7969
- // The "/" or " " literal between date segments
7970
- separator: {
7971
- color: "text.placeholder",
7972
- userSelect: "none",
7973
- display: "inline-flex",
7974
- alignItems: "center"
7975
- },
7976
- // The floating calendar container
7977
- popover: {
7978
- display: "flex",
7979
- flexDirection: "column",
7980
- bg: "surface.overlay",
7981
- borderWidth: "1",
7982
- borderStyle: "solid",
7983
- borderColor: "border",
7984
- borderRadius: "8",
7985
- boxShadow: "overlay",
7986
- zIndex: 1e3,
7987
- width: "280",
7988
- overflow: "hidden",
7989
- outline: "none"
7990
- },
7991
- // Month/year navigation row
7992
- calendarHeader: {
7993
- fontFamily: "mono",
8008
+ content: {
7994
8009
  display: "flex",
7995
8010
  alignItems: "center",
7996
- justifyContent: "space-between",
7997
- px: "8",
7998
- py: "8",
7999
- borderBottom: "default",
8000
- gap: "4"
8011
+ minWidth: "0",
8012
+ width: "full",
8013
+ flex: "1"
8001
8014
  },
8002
- // 7-column grid for the days
8003
- calendarGrid: {
8004
- display: "grid",
8005
- gridTemplateColumns: "repeat(7, 1fr)",
8006
- gap: "2",
8007
- px: "8",
8008
- py: "4",
8009
- pb: "8"
8015
+ value: {
8016
+ flex: 1,
8017
+ minWidth: "0",
8018
+ textAlign: "left",
8019
+ truncate: true,
8020
+ color: "text"
8021
+ },
8022
+ placeholder: {
8023
+ flex: 1,
8024
+ minWidth: "0",
8025
+ textAlign: "left",
8026
+ truncate: true,
8027
+ color: "text.placeholder"
8010
8028
  },
8011
- // Su Mo Tu We Th Fr Sa column headers
8012
- weekdayLabel: {
8029
+ chips: {
8013
8030
  display: "flex",
8014
8031
  alignItems: "center",
8015
- justifyContent: "center",
8016
- userSelect: "none"
8032
+ gap: "4",
8033
+ minWidth: "0",
8034
+ width: "full",
8035
+ flex: "1",
8036
+ overflowX: "auto",
8037
+ overflowY: "hidden",
8038
+ scrollbarWidth: "thin"
8017
8039
  },
8018
- // Individual day button in the grid
8019
- day: {
8040
+ icon: {
8041
+ position: "absolute",
8042
+ top: "50%",
8043
+ right: "1",
8044
+ display: "inline-flex",
8020
8045
  alignItems: "center",
8021
8046
  justifyContent: "center",
8022
- fontFamily: "mono",
8023
- width: "32",
8024
- height: "32",
8025
- _today: {
8026
- fontWeight: "bold",
8027
- color: "text.selected",
8028
- bg: "bg.selected"
8047
+ width: "var(--icon-size)",
8048
+ height: "var(--icon-size)",
8049
+ marginInline: "var(--icon-margin)",
8050
+ transform: "translateY(-50%)",
8051
+ bg: "bg.input",
8052
+ fill: "icon.decorative",
8053
+ pointerEvents: "none",
8054
+ transitionDuration: "fast",
8055
+ transitionProperty: "all",
8056
+ transitionTimingFunction: "default",
8057
+ _icon: {
8058
+ width: "var(--icon-size)",
8059
+ height: "var(--icon-size)",
8060
+ transitionDuration: "fast",
8061
+ transitionProperty: "all",
8062
+ transitionTimingFunction: "default"
8029
8063
  },
8030
- _selected: {
8031
- bg: "bg.selected.bold",
8032
- color: "text.inverse",
8033
- _hover: {
8034
- bg: "bg.selected.bold.hovered"
8035
- },
8036
- _today: {
8037
- bg: "bg.selected.bold",
8038
- color: "text.inverse"
8039
- }
8064
+ _peerHover: {
8065
+ bg: "bg.input.hovered"
8040
8066
  },
8041
- _unavailable: {
8042
- color: "text.disabled",
8043
- cursor: "not-allowed",
8044
- pointerEvents: "none",
8045
- _hover: {
8046
- bg: "transparent"
8067
+ _open: {
8068
+ "& > svg": {
8069
+ transform: "rotate(-180deg)",
8070
+ transformOrigin: "center"
8047
8071
  }
8048
8072
  }
8049
8073
  }
8050
8074
  };
8051
- const datePickerVariants = {
8075
+ const selectVariants = {
8052
8076
  size: {
8053
8077
  sm: {
8054
- input: {
8078
+ root: {
8079
+ "--icon-size": "token(sizes.22)",
8080
+ "--icon-margin": "token(sizes.2)",
8081
+ "--input-icon-padding": "[26px]"
8082
+ },
8083
+ content: {
8055
8084
  py: "0",
8056
- px: "8",
8085
+ ps: "8",
8057
8086
  fontSize: "14"
8087
+ },
8088
+ chips: {
8089
+ gap: "3",
8090
+ py: "2"
8058
8091
  }
8059
8092
  },
8060
8093
  md: {
8061
- input: {
8094
+ root: {
8095
+ "--icon-size": "token(sizes.24)",
8096
+ "--icon-margin": "token(sizes.3)",
8097
+ "--input-icon-padding": "[31px]"
8098
+ },
8099
+ content: {
8062
8100
  py: "3",
8063
- px: "10",
8101
+ ps: "10",
8064
8102
  fontSize: "16"
8103
+ },
8104
+ chips: {
8105
+ gap: "4",
8106
+ py: "5"
8065
8107
  }
8066
8108
  },
8067
8109
  lg: {
8068
- input: {
8110
+ root: {
8111
+ "--icon-size": "token(sizes.24)",
8112
+ "--icon-margin": "token(sizes.5)",
8113
+ "--input-icon-padding": "[34px]"
8114
+ },
8115
+ content: {
8069
8116
  py: "7",
8070
- px: "12",
8117
+ ps: "12",
8071
8118
  fontSize: "16"
8119
+ },
8120
+ chips: {
8121
+ gap: "5",
8122
+ py: "0"
8072
8123
  }
8073
8124
  },
8074
8125
  xl: {
8075
- input: {
8126
+ root: {
8127
+ "--icon-size": "token(sizes.28)",
8128
+ "--icon-margin": "token(sizes.7)",
8129
+ "--input-icon-padding": "[42px]"
8130
+ },
8131
+ content: {
8076
8132
  py: "9",
8077
- px: "16",
8133
+ ps: "16",
8078
8134
  fontSize: "20"
8135
+ },
8136
+ chips: {
8137
+ gap: "6",
8138
+ py: "2"
8139
+ }
8140
+ }
8141
+ },
8142
+ multiple: {
8143
+ true: {
8144
+ trigger: {
8145
+ alignItems: "flex-start"
8146
+ },
8147
+ content: {
8148
+ alignItems: "flex-start"
8149
+ }
8150
+ }
8151
+ },
8152
+ autoSize: {
8153
+ true: {
8154
+ trigger: {
8155
+ height: "auto"
8156
+ },
8157
+ value: {
8158
+ whiteSpace: "normal",
8159
+ textWrap: "wrap",
8160
+ overflow: "visible",
8161
+ textOverflow: "clip"
8162
+ },
8163
+ placeholder: {
8164
+ whiteSpace: "normal",
8165
+ textWrap: "wrap",
8166
+ overflow: "visible",
8167
+ textOverflow: "clip"
8168
+ },
8169
+ chips: {
8170
+ flexWrap: "wrap",
8171
+ overflowX: "visible",
8172
+ overflowY: "visible"
8173
+ }
8174
+ },
8175
+ false: {
8176
+ chips: {
8177
+ flexWrap: "nowrap"
8079
8178
  }
8080
8179
  }
8081
8180
  }
8082
8181
  };
8083
- const datePickerRecipe = defineSlotRecipe({
8084
- className: "datePicker",
8085
- jsx: ["DatePicker", "DateRangePicker"],
8182
+ const selectRecipe = defineSlotRecipe({
8183
+ className: "select",
8184
+ jsx: ["Select"],
8086
8185
  slots: [
8087
8186
  "root",
8088
- "input",
8089
- "segment",
8090
- "separator",
8091
- "popover",
8092
- "calendarHeader",
8093
- "navButton",
8094
- "calendarGrid",
8095
- "weekdayLabel",
8096
- "day"
8187
+ "trigger",
8188
+ "content",
8189
+ "value",
8190
+ "placeholder",
8191
+ "chips",
8192
+ "icon"
8097
8193
  ],
8098
- base: datePickerBase,
8099
- variants: datePickerVariants,
8194
+ base: selectBase,
8195
+ variants: selectVariants,
8100
8196
  defaultVariants: {
8101
8197
  size: "md"
8102
8198
  }
8103
8199
  });
8104
- const timePickerBase = {
8200
+ const kbdRecipe = defineSlotRecipe({
8201
+ className: "kbd",
8202
+ slots: ["kbdGroup", "key"],
8203
+ base: {
8204
+ kbdGroup: {
8205
+ display: "inline-flex",
8206
+ alignItems: "center",
8207
+ gap: "2",
8208
+ verticalAlign: "middle"
8209
+ },
8210
+ key: {
8211
+ display: "inline-flex",
8212
+ alignItems: "center",
8213
+ justifyContent: "center",
8214
+ gap: "1",
8215
+ h: "16",
8216
+ w: "fit",
8217
+ minW: "16",
8218
+ rounded: "6",
8219
+ cornerShape: "squircle",
8220
+ bg: "bg.neutral",
8221
+ px: "4",
8222
+ fontFamily: "mono",
8223
+ fontVariant: "mono",
8224
+ lineHeight: "tight",
8225
+ fontWeight: "bold",
8226
+ textTransform: "uppercase",
8227
+ color: "text.subtle",
8228
+ userSelect: "none",
8229
+ pointerEvents: "none",
8230
+ fontSize: "10"
8231
+ }
8232
+ },
8233
+ variants: {
8234
+ variant: {
8235
+ default: {
8236
+ key: {
8237
+ fontSize: "10"
8238
+ }
8239
+ },
8240
+ symbol: {
8241
+ key: {
8242
+ fontSize: "12"
8243
+ }
8244
+ }
8245
+ }
8246
+ },
8247
+ defaultVariants: {
8248
+ variant: "default"
8249
+ }
8250
+ });
8251
+ const validationStyles = {
8252
+ danger: {
8253
+ borderColor: "border.danger",
8254
+ outlineColor: "border.danger"
8255
+ },
8256
+ success: {
8257
+ borderColor: "border.success",
8258
+ outlineColor: "border.success"
8259
+ }
8260
+ };
8261
+ const autocompleteBase = {
8105
8262
  root: {
8263
+ ...globalBaseStyles,
8264
+ "--control-py": "token(sizes.3)",
8265
+ "--control-px": "token(sizes.10)",
8266
+ "--control-fs": "token(sizes.16)",
8267
+ "--control-min-height": "token(sizes.32)",
8268
+ "--value-gap": "token(sizes.4)",
8269
+ "--input-min-width": "token(sizes.80)",
8270
+ "--loading-size": "token(sizes.20)",
8271
+ position: "relative",
8106
8272
  display: "inline-flex",
8107
8273
  flexDirection: "column",
8108
- position: "relative"
8274
+ width: "full",
8275
+ minWidth: "0",
8276
+ maxWidth: "full",
8277
+ fontFamily: "body",
8278
+ lineHeight: "default",
8279
+ _disabled: {
8280
+ opacity: 0.4,
8281
+ cursor: "not-allowed"
8282
+ },
8283
+ _groupDisabled: {
8284
+ opacity: 1
8285
+ }
8109
8286
  },
8110
- // The segmented input container — visually identical to textinput
8111
- input: {
8112
- display: "inline-flex",
8287
+ control: {
8288
+ position: "relative",
8289
+ display: "flex",
8113
8290
  alignItems: "center",
8114
- gap: "2",
8115
8291
  width: "full",
8292
+ minWidth: "0",
8293
+ minHeight: "var(--control-min-height)",
8294
+ py: "var(--control-py)",
8295
+ ps: "var(--control-px)",
8296
+ pe: "var(--control-px)",
8297
+ bg: "surface",
8298
+ color: "text",
8116
8299
  borderWidth: "1",
8117
8300
  borderStyle: "solid",
8118
8301
  borderColor: "border.input",
8119
8302
  borderRadius: "4",
8120
- outlineWidth: "2",
8121
- outlineOffset: "-1",
8303
+ outlineWidth: "1",
8122
8304
  outlineStyle: "solid",
8123
8305
  outlineColor: "transparent",
8124
- bg: "bg.input",
8125
- color: "text",
8126
- fontFamily: "mono",
8127
- lineHeight: "default",
8128
8306
  cursor: "text",
8129
- userSelect: "none",
8130
8307
  transitionDuration: "fast",
8131
8308
  transitionProperty: "background, border-color, outline-color",
8132
8309
  transitionTimingFunction: "default",
8133
8310
  _focusWithin: {
8134
- bg: "bg.input.pressed",
8135
8311
  borderColor: "border.focused",
8136
8312
  outlineColor: "border.focused"
8137
8313
  },
8138
8314
  _open: {
8139
- bg: "bg.input.pressed",
8140
8315
  borderColor: "border.focused",
8141
8316
  outlineColor: "border.focused"
8142
8317
  },
8318
+ _error: validationStyles.danger,
8319
+ _invalid: validationStyles.danger,
8320
+ _valid: validationStyles.success,
8143
8321
  _disabled: {
8144
8322
  bg: "bg.disabled",
8145
8323
  borderColor: "border.disabled",
8146
8324
  color: "text.disabled",
8147
8325
  cursor: "not-allowed",
8148
- pointerEvents: "none"
8149
- },
8150
- _error: {
8151
- borderColor: "border.danger",
8152
- _hover: {
8153
- borderColor: "border.danger"
8154
- },
8326
+ pointerEvents: "none",
8155
8327
  _focusWithin: {
8156
- borderColor: "border.danger",
8157
- outlineColor: "border.danger"
8158
- },
8159
- _open: {
8160
- borderColor: "border.danger",
8161
- outlineColor: "border.danger"
8328
+ borderColor: "border.disabled",
8329
+ outlineColor: "transparent"
8162
8330
  }
8163
8331
  }
8164
8332
  },
8165
- // Individual focusable segment span (HH, MM, AM/PM)
8166
- segment: {
8167
- display: "inline-flex",
8333
+ valueContainer: {
8334
+ display: "flex",
8168
8335
  alignItems: "center",
8169
- justifyContent: "center",
8170
- outline: "none",
8171
- borderRadius: "2",
8172
- cursor: "default",
8173
- userSelect: "none",
8174
- fontFamily: "mono",
8175
- fontVariantsProperty: "mono",
8176
- fontVariantNumeric: "tabular-nums",
8177
- minWidth: "1.5em",
8178
- textAlign: "center",
8336
+ alignContent: "center",
8337
+ flex: "1",
8338
+ flexWrap: "wrap",
8339
+ minWidth: "0",
8340
+ gap: "var(--value-gap)"
8341
+ },
8342
+ input: {
8343
+ flexGrow: "1",
8344
+ flexShrink: "0",
8345
+ flexBasis: "var(--input-min-width)",
8346
+ minWidth: "var(--input-min-width)",
8347
+ maxWidth: "full",
8348
+ p: "0",
8349
+ marginBlock: "-3",
8350
+ bg: "transparent",
8179
8351
  color: "text",
8180
- _focusVisible: {
8181
- bg: "bg.neutral.hovered"
8352
+ fontFamily: "body",
8353
+ fontSize: "var(--control-fs)",
8354
+ lineHeight: "default",
8355
+ border: "none",
8356
+ outline: "none",
8357
+ _placeholder: {
8358
+ color: "text.placeholder"
8182
8359
  },
8183
- _groupDisabled: {
8184
- color: "text.disabled"
8360
+ _disabled: {
8361
+ color: "text.disabled",
8362
+ cursor: "not-allowed"
8185
8363
  }
8186
8364
  },
8187
- // The ":" separator between time segments
8188
- separator: {
8189
- color: "text.placeholder",
8190
- userSelect: "none",
8365
+ token: {
8366
+ minWidth: "0",
8367
+ maxWidth: "full",
8368
+ flex: "0 1 auto"
8369
+ },
8370
+ overflowIndicator: {
8191
8371
  display: "inline-flex",
8192
- alignItems: "center"
8372
+ alignItems: "center",
8373
+ flexShrink: "0",
8374
+ minHeight: "var(--loading-size)",
8375
+ px: "6",
8376
+ bg: "bg.neutral",
8377
+ color: "text.subtle",
8378
+ borderRadius: "999",
8379
+ fontSize: "14",
8380
+ fontWeight: "medium",
8381
+ lineHeight: "default",
8382
+ whiteSpace: "nowrap"
8193
8383
  },
8194
- // The floating time list container
8195
- popover: {
8196
- display: "flex",
8197
- flexDirection: "row",
8198
- bg: "surface.overlay",
8199
- borderWidth: "1",
8200
- borderStyle: "solid",
8201
- borderColor: "border",
8202
- borderRadius: "8",
8203
- boxShadow: "overlay",
8204
- zIndex: 1e3,
8205
- overflow: "hidden",
8206
- outline: "none",
8207
- w: "fit"
8384
+ loadingIndicator: {
8385
+ display: "inline-flex",
8386
+ alignItems: "center",
8387
+ alignSelf: "center",
8388
+ flexShrink: "0",
8389
+ ms: "var(--control-py)",
8390
+ width: "var(--loading-size)",
8391
+ height: "var(--loading-size)",
8392
+ _icon: {
8393
+ width: "var(--loading-size)",
8394
+ height: "var(--loading-size)"
8395
+ }
8208
8396
  },
8209
- // A single scrollable column (hours, minutes, or AM/PM)
8210
- column: {
8211
- display: "flex",
8212
- flexDirection: "column",
8397
+ listbox: {
8398
+ ...globalBaseStyles,
8399
+ width: "full",
8400
+ maxHeight: "192",
8213
8401
  overflowY: "auto",
8214
- flex: 1,
8215
- maxHeight: "200",
8216
- scrollSnapType: "y mandatory",
8217
- borderRight: "default",
8218
- minW: "56",
8219
- textAlign: "center",
8220
- _last: {
8221
- borderRight: "none"
8222
- },
8223
- // Hide scrollbar visually but keep functionality
8224
- "&::-webkit-scrollbar": {
8225
- display: "none"
8226
- },
8227
- scrollbarWidth: "none",
8228
- msOverflowStyle: "none"
8402
+ bg: "surface",
8403
+ borderRadius: "4",
8404
+ boxShadow: "overlay",
8405
+ outline: "none",
8406
+ zIndex: "elevated"
8229
8407
  },
8230
- // Optional column header (e.g. "Hr", "Min")
8231
- columnLabel: {
8408
+ status: {
8232
8409
  display: "flex",
8233
8410
  alignItems: "center",
8234
- justifyContent: "center",
8235
- py: "4",
8236
- px: "8",
8237
- fontSize: "11",
8238
- fontWeight: "medium",
8239
- color: "text.subtlest",
8240
- textTransform: "uppercase",
8241
- letterSpacing: "widest",
8242
- borderBottom: "default",
8243
- position: "sticky",
8244
- top: "0",
8245
- bg: "surface.overlay",
8246
- zIndex: 1,
8247
- userSelect: "none"
8411
+ width: "full",
8412
+ minHeight: "40",
8413
+ px: "12",
8414
+ py: "8",
8415
+ color: "text.subtle",
8416
+ fontSize: "14",
8417
+ lineHeight: "default"
8418
+ },
8419
+ liveRegion: {
8420
+ srOnly: true
8248
8421
  }
8249
8422
  };
8250
- const timePickerVariants = {
8423
+ const autocompleteVariants = {
8251
8424
  size: {
8252
8425
  sm: {
8253
- input: {
8254
- py: "0",
8255
- px: "8",
8256
- fontSize: "14"
8426
+ root: {
8427
+ "--control-py": "token(sizes.0)",
8428
+ "--control-px": "token(sizes.8)",
8429
+ "--control-fs": "token(sizes.14)",
8430
+ "--control-min-height": "token(sizes.24)",
8431
+ "--value-gap": "token(sizes.3)",
8432
+ "--input-min-width": "token(sizes.64)",
8433
+ "--loading-size": "token(sizes.16)"
8257
8434
  }
8258
8435
  },
8259
8436
  md: {
8260
- input: {
8261
- py: "3",
8262
- px: "10",
8263
- fontSize: "16"
8437
+ root: {
8438
+ "--control-py": "token(sizes.3)",
8439
+ "--control-px": "token(sizes.10)",
8440
+ "--control-fs": "token(sizes.16)",
8441
+ "--control-min-height": "token(sizes.32)",
8442
+ "--value-gap": "token(sizes.4)",
8443
+ "--input-min-width": "token(sizes.80)",
8444
+ "--loading-size": "token(sizes.20)"
8264
8445
  }
8265
8446
  },
8266
8447
  lg: {
8267
- input: {
8268
- py: "7",
8269
- px: "12",
8270
- fontSize: "16"
8448
+ root: {
8449
+ "--control-py": "token(sizes.7)",
8450
+ "--control-px": "token(sizes.12)",
8451
+ "--control-fs": "token(sizes.16)",
8452
+ "--control-min-height": "token(sizes.40)",
8453
+ "--value-gap": "token(sizes.5)",
8454
+ "--input-min-width": "token(sizes.96)",
8455
+ "--loading-size": "token(sizes.20)"
8271
8456
  }
8272
8457
  },
8273
8458
  xl: {
8274
- input: {
8275
- py: "9",
8276
- px: "16",
8277
- fontSize: "20"
8459
+ root: {
8460
+ "--control-py": "token(sizes.9)",
8461
+ "--control-px": "token(sizes.16)",
8462
+ "--control-fs": "token(sizes.20)",
8463
+ "--control-min-height": "token(sizes.48)",
8464
+ "--value-gap": "token(sizes.6)",
8465
+ "--input-min-width": "token(sizes.112)",
8466
+ "--loading-size": "token(sizes.24)"
8278
8467
  }
8279
8468
  }
8280
8469
  }
8281
8470
  };
8282
- const timePickerRecipe = defineSlotRecipe({
8283
- className: "timePicker",
8284
- jsx: ["TimePicker", "TimeRangePicker"],
8471
+ const autocompleteRecipe = defineSlotRecipe({
8472
+ className: "autocomplete",
8473
+ jsx: ["Autocomplete"],
8285
8474
  slots: [
8286
8475
  "root",
8476
+ "control",
8477
+ "valueContainer",
8287
8478
  "input",
8288
- "segment",
8289
- "separator",
8290
- "popover",
8291
- "column",
8292
- "columnLabel"
8479
+ "token",
8480
+ "overflowIndicator",
8481
+ "loadingIndicator",
8482
+ "listbox",
8483
+ "status",
8484
+ "liveRegion"
8293
8485
  ],
8294
- base: timePickerBase,
8295
- variants: timePickerVariants,
8486
+ base: autocompleteBase,
8487
+ variants: autocompleteVariants,
8296
8488
  defaultVariants: {
8297
8489
  size: "md"
8298
8490
  }
8299
8491
  });
8300
- const breadcrumbsRecipe = defineSlotRecipe({
8301
- className: "breadcrumbs",
8302
- jsx: ["Breadcrumbs"],
8303
- slots: ["wrapper", "slash", "linkSegment", "currentSegment"],
8304
- base: {
8305
- wrapper: {
8306
- ...globalBaseStyles,
8307
- display: "flex",
8308
- gap: "6",
8309
- alignItems: "center",
8310
- fontFamily: "mono",
8311
- fontSize: "14",
8312
- "& li": {
8313
- display: "flex",
8314
- gap: "6",
8315
- alignItems: "center"
8316
- }
8492
+ const segmentedInputsBase = {
8493
+ root: {
8494
+ ...globalBaseStyles,
8495
+ display: "inline-flex",
8496
+ alignItems: "center",
8497
+ gap: "0",
8498
+ width: "fit",
8499
+ color: "text",
8500
+ fontFamily: "mono",
8501
+ lineHeight: "default",
8502
+ cursor: "text",
8503
+ userSelect: "none",
8504
+ flexGrow: "0",
8505
+ flexShrink: "0",
8506
+ flexBasis: "fit",
8507
+ minW: "0",
8508
+ _disabled: {
8509
+ color: "text.disabled",
8510
+ cursor: "not-allowed",
8511
+ pointerEvents: "none"
8512
+ }
8513
+ },
8514
+ // Individual focusable segment span (MM, DD, YYYY, HH, AM/PM, ...)
8515
+ segment: {
8516
+ display: "inline-flex",
8517
+ alignItems: "center",
8518
+ justifyContent: "center",
8519
+ outline: "none",
8520
+ borderRadius: "2",
8521
+ cursor: "default",
8522
+ userSelect: "none",
8523
+ fontFamily: "mono",
8524
+ fontVariantsProperty: "mono",
8525
+ fontVariantNumeric: "tabular-nums",
8526
+ textAlign: "center",
8527
+ color: "text",
8528
+ _focus: {
8529
+ bg: "bg.accent.gold.subtlest/75"
8317
8530
  },
8318
- slash: {
8319
- fontFamily: "mono",
8320
- fontSize: "14",
8321
- color: "text.placeholder"
8531
+ _groupDisabled: {
8532
+ color: "text.disabled"
8533
+ }
8534
+ },
8535
+ // The "/" or ":" or " " literal between segments. `minWidth: '0.75em'`
8536
+ // is a deliberate floor, not decoration — the " " separators (minute/AM-PM,
8537
+ // and the gap between a DateTimeInput's date/time halves) render at 0
8538
+ // layout width in the Recursive Variable font at this size/axis regardless
8539
+ // of `whiteSpace: 'pre'` (confirmed: real space character, zero measured
8540
+ // width) — a font-rendering quirk, not a whitespace-collapsing bug. The
8541
+ // floor keeps the visual gap independent of what the glyph itself measures.
8542
+ separator: {
8543
+ color: "text.placeholder",
8544
+ textAlign: "center",
8545
+ userSelect: "none",
8546
+ whiteSpace: "pre",
8547
+ minWidth: "0.75em",
8548
+ display: "inline-flex",
8549
+ alignItems: "center",
8550
+ justifyContent: "center",
8551
+ "&[data-gap=none]": {
8552
+ minWidth: "0",
8553
+ px: "0"
8322
8554
  },
8323
- linkSegment: {
8324
- fontFamily: "mono",
8325
- fontSize: "14",
8326
- color: "text.subtlest",
8327
- fontWeight: "normal",
8328
- whiteSpace: "nowrap",
8329
- _hover: {
8330
- color: "link"
8331
- },
8332
- _focusVisible: {
8333
- color: "blue.50"
8334
- }
8555
+ "&[data-gap=tight]": {
8556
+ minWidth: "0.5em",
8557
+ px: "1"
8335
8558
  },
8336
- currentSegment: {
8337
- fontFamily: "mono",
8338
- fontSize: "14",
8339
- color: "text",
8340
- fontWeight: "bold",
8341
- whiteSpace: "nowrap"
8559
+ "&[data-gap=normal]": {
8560
+ minWidth: "0.75em",
8561
+ px: "1"
8562
+ },
8563
+ "&[data-gap=loose]": {
8564
+ minWidth: "1.25em",
8565
+ px: "2"
8342
8566
  }
8343
8567
  }
8568
+ };
8569
+ const segmentedInputsVariants = {
8570
+ size: {
8571
+ sm: { root: { fontSize: "14" } },
8572
+ md: { root: { fontSize: "16" } },
8573
+ lg: { root: { fontSize: "16" } },
8574
+ xl: { root: { fontSize: "20" } }
8575
+ }
8576
+ };
8577
+ const segmentedInputsRecipe = defineSlotRecipe({
8578
+ className: "segmentedInputs",
8579
+ jsx: ["SegmentedInputs", "SegmentedInput", "SegmentedDate", "SegmentedTime"],
8580
+ slots: ["root", "segment", "separator"],
8581
+ base: segmentedInputsBase,
8582
+ variants: segmentedInputsVariants,
8583
+ defaultVariants: {
8584
+ size: "md"
8585
+ }
8344
8586
  });
8345
- const selectBase = {
8346
- root: {
8347
- "--icon-size": "token(sizes.24)",
8348
- "--icon-margin": "token(sizes.3)",
8349
- "--input-icon-padding": "token(sizes.10)",
8350
- display: "inline-flex",
8351
- flexDirection: "column",
8352
- position: "relative",
8353
- minWidth: "0",
8354
- maxW: "full",
8355
- width: "fit"
8356
- },
8357
- trigger: {
8587
+ const segmentedFieldsBase = {
8588
+ container: {
8589
+ ...globalBaseStyles,
8590
+ "--input-py": "token(sizes.3)",
8591
+ "--input-px": "token(sizes.10)",
8592
+ "--slot-size": "token(sizes.20)",
8593
+ "--slot-px": "token(sizes.6)",
8358
8594
  position: "relative",
8359
- display: "inline-flex",
8595
+ display: "flex",
8360
8596
  alignItems: "center",
8361
- width: "fit",
8362
- minWidth: "0",
8363
- maxWidth: "full",
8364
- pe: "var(--input-icon-padding)",
8597
+ width: "full",
8598
+ py: "var(--input-py)",
8599
+ px: "var(--input-px)",
8600
+ bg: "bg.input",
8365
8601
  borderWidth: "1",
8366
8602
  borderStyle: "solid",
8367
8603
  borderColor: "border.input",
@@ -8370,19 +8606,10 @@ const selectBase = {
8370
8606
  outlineOffset: "-1",
8371
8607
  outlineStyle: "solid",
8372
8608
  outlineColor: "transparent",
8373
- bg: "bg.input",
8374
- color: "text",
8375
- fontFamily: "body",
8376
- lineHeight: "default",
8377
- cursor: "pointer",
8378
- overflow: "hidden",
8379
8609
  transitionDuration: "fast",
8380
8610
  transitionProperty: "background, border-color, outline-color",
8381
8611
  transitionTimingFunction: "default",
8382
- _hover: {
8383
- bg: "bg.input.hovered"
8384
- },
8385
- _focusVisible: {
8612
+ "&:focus-within:not(:has(button:focus))": {
8386
8613
  bg: "bg.input.pressed",
8387
8614
  borderColor: "border.focused",
8388
8615
  outlineColor: "border.focused"
@@ -8395,277 +8622,413 @@ const selectBase = {
8395
8622
  _disabled: {
8396
8623
  bg: "bg.disabled",
8397
8624
  borderColor: "border.disabled",
8398
- color: "text.disabled",
8399
8625
  cursor: "not-allowed",
8400
8626
  pointerEvents: "none"
8401
8627
  },
8402
8628
  _error: {
8403
8629
  borderColor: "border.danger",
8404
- _hover: {
8405
- borderColor: "border.danger"
8406
- },
8407
- _focusVisible: {
8630
+ "&:focus-within:not(:has(button:focus))": {
8408
8631
  borderColor: "border.danger",
8409
8632
  outlineColor: "border.danger"
8410
- },
8411
- _open: {
8633
+ }
8634
+ },
8635
+ _invalid: {
8636
+ borderColor: "border.danger",
8637
+ "&:focus-within:not(:has(button:focus))": {
8412
8638
  borderColor: "border.danger",
8413
8639
  outlineColor: "border.danger"
8414
8640
  }
8415
8641
  }
8416
8642
  },
8417
- content: {
8418
- display: "flex",
8419
- alignItems: "center",
8420
- minWidth: "0",
8421
- width: "full",
8422
- flex: "1"
8423
- },
8424
- value: {
8425
- flex: 1,
8426
- minWidth: "0",
8427
- textAlign: "left",
8428
- truncate: true,
8429
- color: "text"
8430
- },
8431
- placeholder: {
8432
- flex: 1,
8433
- minWidth: "0",
8434
- textAlign: "left",
8435
- truncate: true,
8436
- color: "text.placeholder"
8437
- },
8438
- chips: {
8439
- display: "flex",
8440
- alignItems: "center",
8441
- gap: "4",
8442
- minWidth: "0",
8443
- width: "full",
8444
- flex: "1",
8445
- overflowX: "auto",
8446
- overflowY: "hidden",
8447
- scrollbarWidth: "thin"
8448
- },
8449
- icon: {
8450
- position: "absolute",
8451
- top: "50%",
8452
- right: "1",
8643
+ slot: {
8453
8644
  display: "inline-flex",
8454
8645
  alignItems: "center",
8455
- justifyContent: "center",
8456
- width: "var(--icon-size)",
8457
- height: "var(--icon-size)",
8458
- marginInline: "var(--icon-margin)",
8459
- transform: "translateY(-50%)",
8460
- bg: "bg.input",
8461
- fill: "icon.decorative",
8462
- pointerEvents: "none",
8463
8646
  transitionDuration: "fast",
8464
8647
  transitionProperty: "all",
8465
8648
  transitionTimingFunction: "default",
8466
- _icon: {
8467
- width: "var(--icon-size)",
8468
- height: "var(--icon-size)",
8469
- transitionDuration: "fast",
8470
- transitionProperty: "all",
8471
- transitionTimingFunction: "default"
8649
+ flex: "0 0 var(--slot-size)",
8650
+ px: "var(--slot-px)",
8651
+ fill: "icon.decorative",
8652
+ pointerEvents: "none",
8653
+ zIndex: 1
8654
+ },
8655
+ buttonSlot: {
8656
+ display: "inline-flex",
8657
+ alignItems: "center",
8658
+ flex: "0 0 var(--slot-size)",
8659
+ px: "0",
8660
+ zIndex: 1,
8661
+ m: "-1"
8662
+ }
8663
+ };
8664
+ const segmentedFieldsVariants = {
8665
+ size: {
8666
+ sm: {
8667
+ container: {
8668
+ "--input-py": "token(sizes.0)",
8669
+ "--input-px": "token(sizes.8)",
8670
+ "--slot-size": "token(sizes.16)",
8671
+ "--slot-px": "token(sizes.4)"
8672
+ }
8472
8673
  },
8473
- _peerHover: {
8474
- bg: "bg.input.hovered"
8674
+ md: {
8675
+ container: {
8676
+ "--input-py": "token(sizes.3)",
8677
+ "--input-px": "token(sizes.10)",
8678
+ "--slot-size": "token(sizes.20)",
8679
+ "--slot-px": "token(sizes.6)"
8680
+ }
8475
8681
  },
8476
- _open: {
8477
- "& > svg": {
8478
- transform: "rotate(-180deg)",
8479
- transformOrigin: "center"
8682
+ lg: {
8683
+ container: {
8684
+ "--input-py": "token(sizes.7)",
8685
+ "--input-px": "token(sizes.12)",
8686
+ "--slot-size": "token(sizes.24)",
8687
+ "--slot-px": "token(sizes.8)"
8688
+ }
8689
+ },
8690
+ xl: {
8691
+ container: {
8692
+ "--input-py": "token(sizes.9)",
8693
+ "--input-px": "token(sizes.16)",
8694
+ "--slot-size": "token(sizes.28)",
8695
+ "--slot-px": "token(sizes.10)"
8480
8696
  }
8481
8697
  }
8482
- }
8483
- };
8484
- const selectVariants = {
8485
- size: {
8486
- sm: {
8487
- root: {
8488
- "--icon-size": "token(sizes.22)",
8489
- "--icon-margin": "token(sizes.2)",
8490
- "--input-icon-padding": "[26px]"
8491
- },
8492
- content: {
8493
- py: "0",
8494
- ps: "8",
8495
- fontSize: "14"
8496
- },
8497
- chips: {
8498
- gap: "3",
8499
- py: "2"
8698
+ },
8699
+ field: {
8700
+ date: {
8701
+ container: {
8702
+ minW: "128"
8500
8703
  }
8501
8704
  },
8502
- md: {
8503
- root: {
8504
- "--icon-size": "token(sizes.24)",
8505
- "--icon-margin": "token(sizes.3)",
8506
- "--input-icon-padding": "[31px]"
8507
- },
8508
- content: {
8509
- py: "3",
8510
- ps: "10",
8511
- fontSize: "16"
8512
- },
8513
- chips: {
8514
- gap: "4",
8515
- py: "5"
8705
+ time: {
8706
+ container: {
8707
+ minW: "104"
8516
8708
  }
8517
8709
  },
8518
- lg: {
8519
- root: {
8520
- "--icon-size": "token(sizes.24)",
8521
- "--icon-margin": "token(sizes.5)",
8522
- "--input-icon-padding": "[34px]"
8523
- },
8524
- content: {
8525
- py: "7",
8526
- ps: "12",
8527
- fontSize: "16"
8528
- },
8529
- chips: {
8530
- gap: "5",
8531
- py: "0"
8710
+ dateTime: {
8711
+ container: {
8712
+ minW: "216"
8713
+ }
8714
+ }
8715
+ },
8716
+ range: {
8717
+ date: {
8718
+ container: {
8719
+ minW: "248"
8532
8720
  }
8533
8721
  },
8534
- xl: {
8535
- root: {
8536
- "--icon-size": "token(sizes.28)",
8537
- "--icon-margin": "token(sizes.7)",
8538
- "--input-icon-padding": "[42px]"
8539
- },
8540
- content: {
8541
- py: "9",
8542
- ps: "16",
8543
- fontSize: "20"
8544
- },
8545
- chips: {
8546
- gap: "6",
8547
- py: "2"
8722
+ time: {
8723
+ container: {
8724
+ minW: "200"
8548
8725
  }
8549
8726
  }
8550
8727
  },
8551
- multiple: {
8728
+ before: {
8552
8729
  true: {
8553
- trigger: {
8554
- alignItems: "flex-start"
8730
+ container: {
8731
+ ps: "0"
8555
8732
  },
8556
- content: {
8557
- alignItems: "flex-start"
8733
+ buttonSlot: {
8734
+ "& button": {
8735
+ borderTopRightRadius: "0",
8736
+ borderBottomRightRadius: "0"
8737
+ }
8558
8738
  }
8559
8739
  }
8560
8740
  },
8561
- autoSize: {
8741
+ after: {
8562
8742
  true: {
8563
- trigger: {
8564
- height: "auto"
8565
- },
8566
- value: {
8567
- whiteSpace: "normal",
8568
- textWrap: "wrap",
8569
- overflow: "visible",
8570
- textOverflow: "clip"
8571
- },
8572
- placeholder: {
8573
- whiteSpace: "normal",
8574
- textWrap: "wrap",
8575
- overflow: "visible",
8576
- textOverflow: "clip"
8743
+ container: {
8744
+ pe: "0"
8577
8745
  },
8578
- chips: {
8579
- flexWrap: "wrap",
8580
- overflowX: "visible",
8581
- overflowY: "visible"
8582
- }
8583
- },
8584
- false: {
8585
- chips: {
8586
- flexWrap: "nowrap"
8746
+ buttonSlot: {
8747
+ "& button": {
8748
+ borderTopLeftRadius: "0",
8749
+ borderBottomLeftRadius: "0"
8750
+ }
8587
8751
  }
8588
8752
  }
8589
8753
  }
8590
8754
  };
8591
- const selectRecipe = defineSlotRecipe({
8592
- className: "select",
8593
- jsx: ["Select"],
8594
- slots: [
8595
- "root",
8596
- "trigger",
8597
- "content",
8598
- "value",
8599
- "placeholder",
8600
- "chips",
8601
- "icon"
8755
+ const segmentedFieldsRecipe = defineSlotRecipe({
8756
+ className: "segmentedFields",
8757
+ jsx: [
8758
+ "SegmentedFields",
8759
+ "DateInput",
8760
+ "DateRangeInput",
8761
+ "TimeInput",
8762
+ "TimeRangeInput",
8763
+ "DateTimeInput"
8602
8764
  ],
8603
- base: selectBase,
8604
- variants: selectVariants,
8765
+ slots: ["container", "slot", "buttonSlot"],
8766
+ base: segmentedFieldsBase,
8767
+ variants: segmentedFieldsVariants,
8605
8768
  defaultVariants: {
8606
8769
  size: "md"
8607
8770
  }
8608
8771
  });
8609
- const kbdRecipe = defineSlotRecipe({
8610
- className: "kbd",
8611
- slots: ["kbdGroup", "key"],
8772
+ const calendarRecipe = defineSlotRecipe({
8773
+ className: "calendar",
8774
+ jsx: ["Calendar"],
8775
+ slots: ["root", "header", "grid", "weekdayLabel", "day", "monthYearGrid"],
8612
8776
  base: {
8613
- kbdGroup: {
8614
- display: "inline-flex",
8777
+ root: {
8778
+ ...globalBaseStyles,
8779
+ display: "flex",
8780
+ flexDirection: "column",
8781
+ alignItems: "flex-start",
8782
+ bg: "surface",
8783
+ width: "278"
8784
+ },
8785
+ header: {
8786
+ display: "flex",
8615
8787
  alignItems: "center",
8616
- gap: "2",
8617
- verticalAlign: "middle"
8788
+ justifyContent: "space-between",
8789
+ gap: "4",
8790
+ width: "full",
8791
+ p: "8",
8792
+ borderBottom: "default",
8793
+ fontFamily: "mono",
8794
+ fontVariantsProperty: "mono"
8618
8795
  },
8619
- key: {
8620
- display: "inline-flex",
8796
+ grid: {
8797
+ display: "grid",
8798
+ gridTemplateColumns: "repeat(7, minmax(0, 1fr))",
8799
+ gap: "4",
8800
+ width: "fit",
8801
+ p: "8",
8802
+ mx: "auto"
8803
+ },
8804
+ weekdayLabel: {
8805
+ display: "flex",
8806
+ alignItems: "center",
8807
+ justifyContent: "center",
8808
+ userSelect: "none"
8809
+ },
8810
+ day: {
8811
+ position: "relative",
8621
8812
  alignItems: "center",
8622
8813
  justifyContent: "center",
8623
- gap: "1",
8624
- h: "16",
8625
- w: "fit",
8626
- minW: "16",
8627
- rounded: "6",
8628
- cornerShape: "squircle",
8629
- bg: "bg.neutral",
8630
- px: "4",
8631
8814
  fontFamily: "mono",
8632
- fontVariant: "mono",
8633
- lineHeight: "tight",
8634
- fontWeight: "bold",
8635
- textTransform: "uppercase",
8636
- color: "text.subtle",
8637
- userSelect: "none",
8638
- pointerEvents: "none",
8639
- fontSize: "10"
8815
+ width: "32",
8816
+ height: "32",
8817
+ minWidth: "32",
8818
+ _today: {
8819
+ outline: "1px solid {colors.border.focused}",
8820
+ outlineOffset: "1"
8821
+ },
8822
+ _unavailable: {
8823
+ color: "text.disabled",
8824
+ cursor: "not-allowed",
8825
+ pointerEvents: "none",
8826
+ _hover: {
8827
+ bg: "transparent"
8828
+ }
8829
+ }
8830
+ },
8831
+ monthYearGrid: {
8832
+ display: "grid",
8833
+ gridTemplateColumns: "repeat(3, minmax(0, 1fr))",
8834
+ gap: "4",
8835
+ width: "full",
8836
+ p: "8"
8640
8837
  }
8641
8838
  },
8642
8839
  variants: {
8643
- variant: {
8644
- default: {
8645
- key: {
8646
- fontSize: "10"
8840
+ type: {
8841
+ days: {},
8842
+ months: {
8843
+ day: {
8844
+ width: "auto",
8845
+ px: "8"
8647
8846
  }
8648
8847
  },
8649
- symbol: {
8650
- key: {
8651
- fontSize: "12"
8848
+ years: {
8849
+ day: {
8850
+ width: "auto",
8851
+ px: "8"
8652
8852
  }
8653
8853
  }
8654
8854
  }
8655
8855
  },
8656
8856
  defaultVariants: {
8657
- variant: "default"
8857
+ type: "days"
8858
+ }
8859
+ });
8860
+ const dateMenusBase = {
8861
+ // Row wrapper for DateRangeMenu's two Calendar instances.
8862
+ calendars: {
8863
+ display: "flex",
8864
+ alignItems: "stretch"
8865
+ },
8866
+ // Vertical rule between the two calendars.
8867
+ calendarsDivider: {
8868
+ width: "1",
8869
+ alignSelf: "stretch",
8870
+ bg: "border"
8871
+ },
8872
+ // Right-aligned Cancel/Apply pair for the pending range selection.
8873
+ footer: {
8874
+ display: "flex",
8875
+ justifyContent: "flex-end",
8876
+ alignItems: "center",
8877
+ gap: "8",
8878
+ borderTopWidth: "1",
8879
+ borderTopStyle: "solid",
8880
+ borderColor: "border",
8881
+ px: "16",
8882
+ py: "8"
8883
+ }
8884
+ };
8885
+ const dateMenusRecipe = defineSlotRecipe({
8886
+ className: "dateMenus",
8887
+ jsx: ["DateMenus", "DateMenu", "DateRangeMenu"],
8888
+ slots: ["calendars", "calendarsDivider", "footer"],
8889
+ base: dateMenusBase
8890
+ });
8891
+ const timeMenusBase = {
8892
+ // Row of columns (HR | MIN | AM-PM), doubled with its own divider for range.
8893
+ // minH: '0' overrides the flexbox default of min-height:auto on a flex
8894
+ // item, which otherwise floors this box at its content's natural height
8895
+ // and defeats stretching it down to match a shorter sibling (DateTimeMenu's
8896
+ // Calendar) — see the `column` slot below for the full explanation.
8897
+ columns: {
8898
+ display: "flex",
8899
+ alignItems: "stretch",
8900
+ minH: "0"
8901
+ },
8902
+ // A single scrollable HR/MIN/AM-PM column. `maxHeight` (not `h: 'full'`)
8903
+ // matters here — Menu's own internal wrapper chain (levelsViewport >
8904
+ // levelsTrack > level > list) doesn't propagate a concrete height down to
8905
+ // this element, so `h: 'full'` resolves to "as tall as my content" and
8906
+ // `overflowY: auto` never actually engages; an explicit cap makes the
8907
+ // column bound itself regardless of what any ancestor does. `200` keeps
8908
+ // the existing picker column cap exactly.
8909
+ column: {
8910
+ display: "flex",
8911
+ flexDirection: "column",
8912
+ flex: "1",
8913
+ minW: "56",
8914
+ // minH: '0' is the load-bearing part, not maxHeight — a flex item's
8915
+ // default min-height:auto floors it at its content's natural height no
8916
+ // matter what cross-axis stretch or maxHeight say, which silently
8917
+ // defeats overflowY:auto (nothing to scroll if the box just grows to
8918
+ // fit everything). Zeroing it lets maxHeight (standalone) or the
8919
+ // stretch variant's parent-driven height (DateTimeMenu) actually apply.
8920
+ minH: "0",
8921
+ maxHeight: "200",
8922
+ overflowY: "auto",
8923
+ textAlign: "center",
8924
+ borderRightWidth: "1",
8925
+ borderRightStyle: "solid",
8926
+ borderColor: "border",
8927
+ _last: {
8928
+ borderRight: "none"
8929
+ },
8930
+ // Hide the scrollbar visually but keep it functional — matches legacy.
8931
+ "&::-webkit-scrollbar": {
8932
+ display: "none"
8933
+ },
8934
+ scrollbarWidth: "none"
8935
+ },
8936
+ // "HR" / "MIN" / "AM/PM" column label.
8937
+ columnHeader: {
8938
+ position: "sticky",
8939
+ top: "0",
8940
+ textAlign: "center",
8941
+ fontSize: "12",
8942
+ fontWeight: "semibold",
8943
+ color: "text.subtlest",
8944
+ bg: "surface",
8945
+ py: "4",
8946
+ borderBottomWidth: "1",
8947
+ borderBottomStyle: "solid",
8948
+ borderColor: "border",
8949
+ zIndex: "1"
8950
+ },
8951
+ // Right-aligned Cancel/Apply pair — TimeRangeMenu only (TimeMenu commits
8952
+ // immediately per value, same as DateMenu's non-range case).
8953
+ footer: {
8954
+ display: "flex",
8955
+ justifyContent: "flex-end",
8956
+ alignItems: "center",
8957
+ gap: "8",
8958
+ borderTopWidth: "1",
8959
+ borderTopStyle: "solid",
8960
+ borderColor: "border",
8961
+ px: "16",
8962
+ py: "8"
8963
+ }
8964
+ };
8965
+ const timeMenusVariants = {
8966
+ // DateTimeMenu pairs the columns with a Calendar sibling inside a
8967
+ // stretch-aligned flex row, so the columns can size to match the
8968
+ // Calendar's real rendered height instead of the standalone 200px cap —
8969
+ // without this, the columns clip well short of the taller Calendar next to
8970
+ // them. TimeMenu/TimeRangeMenu have no such sibling to stretch against, so
8971
+ // they keep the fixed cap as their own default.
8972
+ stretch: {
8973
+ true: {
8974
+ column: {
8975
+ maxHeight: "none"
8976
+ }
8977
+ }
8978
+ }
8979
+ };
8980
+ const timeMenusRecipe = defineSlotRecipe({
8981
+ className: "timeMenus",
8982
+ jsx: ["TimeMenus", "TimeMenu", "TimeRangeMenu"],
8983
+ slots: ["columns", "column", "columnHeader", "footer"],
8984
+ base: timeMenusBase,
8985
+ variants: timeMenusVariants
8986
+ });
8987
+ const dateTimeMenusBase = {
8988
+ // Row holding the Calendar + divider + time columns, above the footer.
8989
+ content: {
8990
+ display: "flex",
8991
+ alignItems: "stretch"
8992
+ },
8993
+ // 4px-wide vertical divider between the Calendar and the time columns.
8994
+ divider: {
8995
+ width: "4",
8996
+ alignSelf: "stretch",
8997
+ bg: "border"
8998
+ },
8999
+ // Right-aligned Cancel/Apply pair — always present per the Figma spec,
9000
+ // even though DateTimeMenu isn't itself a range variant.
9001
+ footer: {
9002
+ display: "flex",
9003
+ justifyContent: "flex-end",
9004
+ alignItems: "center",
9005
+ w: "full",
9006
+ gap: "8",
9007
+ borderTopWidth: "1",
9008
+ borderTopStyle: "solid",
9009
+ borderColor: "border",
9010
+ px: "16",
9011
+ py: "8"
8658
9012
  }
9013
+ };
9014
+ const dateTimeMenusRecipe = defineSlotRecipe({
9015
+ className: "dateTimeMenus",
9016
+ jsx: ["DateTimeMenus", "DateTimeMenu"],
9017
+ slots: ["content", "divider", "footer"],
9018
+ base: dateTimeMenusBase
8659
9019
  });
8660
9020
  const slotRecipes = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
8661
9021
  __proto__: null,
9022
+ autocompleteRecipe,
8662
9023
  avatarRecipe,
8663
9024
  badgeRecipe,
8664
9025
  breadcrumbsRecipe,
8665
9026
  buttonRecipe,
9027
+ calendarRecipe,
8666
9028
  checkboxRecipe,
8667
9029
  chipRecipe,
8668
- datePickerRecipe,
9030
+ dateMenusRecipe,
9031
+ dateTimeMenusRecipe,
8669
9032
  formFieldRecipe,
8670
9033
  iconButtonRecipe,
8671
9034
  kbdRecipe,
@@ -8674,9 +9037,11 @@ const slotRecipes = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineP
8674
9037
  menuRecipe,
8675
9038
  modalRecipe,
8676
9039
  radioRecipe,
9040
+ segmentedFieldsRecipe,
9041
+ segmentedInputsRecipe,
8677
9042
  selectRecipe,
8678
9043
  textInputRecipe,
8679
- timePickerRecipe,
9044
+ timeMenusRecipe,
8680
9045
  tooltipRecipe
8681
9046
  }, Symbol.toStringTag, { value: "Module" }));
8682
9047
  const colors = defineSemanticTokens.colors({
@@ -10160,4 +10525,4 @@ export {
10160
10525
  breakpoints as b,
10161
10526
  containerSizes as c
10162
10527
  };
10163
- //# sourceMappingURL=cetec-preset-CcvrY8wh.js.map
10528
+ //# sourceMappingURL=cetec-preset-CZJA5UR0.js.map