@vygruppen/spor-react 13.3.1 → 13.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -699,74 +699,52 @@ var badgeRecipie = react.defineRecipe({
699
699
  neutral: {
700
700
  backgroundColor: "surface",
701
701
  color: "text",
702
- "& svg": {
703
- color: "icon"
704
- }
702
+ "& svg": { color: "icon" }
705
703
  },
706
704
  grey: {
707
705
  backgroundColor: "surface.neutral",
708
706
  color: "text.neutral",
709
- "& svg": {
710
- color: "icon.neutral"
711
- }
707
+ "& svg": { color: "icon.neutral" }
712
708
  },
713
709
  green: {
714
710
  backgroundColor: "surface.success",
715
711
  color: "text.success",
716
- "& svg": {
717
- color: "icon.success"
718
- }
712
+ "& svg": { color: "icon.success" }
719
713
  },
720
714
  blue: {
721
715
  backgroundColor: "surface.info",
722
716
  color: "text.info",
723
- "& svg": {
724
- color: "icon.info"
725
- }
717
+ "& svg": { color: "icon.info" }
726
718
  },
727
719
  cream: {
728
720
  backgroundColor: "surface.warning",
729
721
  color: "text.warning",
730
- "& svg": {
731
- color: "icon.warning"
732
- }
722
+ "& svg": { color: "icon.warning" }
733
723
  },
734
724
  yellow: {
735
725
  backgroundColor: "surface.notice",
736
726
  color: "text.notice",
737
- "& svg": {
738
- color: "icon.notice"
739
- }
727
+ "& svg": { color: "icon.notice" }
740
728
  },
741
729
  orange: {
742
730
  backgroundColor: "surface.caution",
743
731
  color: "text.caution",
744
- "& svg": {
745
- color: "icon.caution"
746
- }
732
+ "& svg": { color: "icon.caution" }
747
733
  },
748
734
  red: {
749
735
  backgroundColor: "surface.critical",
750
736
  color: "text.critical",
751
- "& svg": {
752
- color: "icon.critical"
753
- }
737
+ "& svg": { color: "icon.critical" }
754
738
  },
755
739
  brightRed: {
756
- backgroundColor: {
757
- _light: "brightRed",
758
- _dark: "brightRed"
759
- },
760
- color: {
761
- _light: "pink",
762
- _dark: "pink"
763
- },
764
- "& svg": {
765
- color: {
766
- _light: "pink",
767
- _dark: "pink"
768
- }
769
- }
740
+ backgroundColor: { _light: "brightRed", _dark: "brightRed" },
741
+ color: { _light: "pink", _dark: "pink" },
742
+ "& svg": { color: { _light: "pink", _dark: "pink" } }
743
+ },
744
+ disabled: {
745
+ backgroundColor: "surface.disabled",
746
+ color: "text.disabled",
747
+ "& svg": { color: "icon.disabled" }
770
748
  }
771
749
  },
772
750
  size: {
@@ -792,11 +770,7 @@ var badgeRecipie = react.defineRecipe({
792
770
  borderRadius: "xs"
793
771
  }
794
772
  },
795
- attached: {
796
- true: {
797
- borderBottomRadius: "none"
798
- }
799
- },
773
+ attached: { true: { borderBottomRadius: "none" } },
800
774
  inverted: { true: {} }
801
775
  },
802
776
  defaultVariants: {
@@ -810,60 +784,27 @@ var badgeRecipie = react.defineRecipe({
810
784
  colorPalette: "blue",
811
785
  inverted: true,
812
786
  css: {
813
- backgroundColor: {
814
- _light: "darkBlue",
815
- _dark: "lightBlue"
816
- },
817
- color: {
818
- _light: "icyBlue",
819
- _dark: "royal"
820
- },
821
- "& svg": {
822
- color: {
823
- _light: "royal",
824
- _dark: "icyBlue"
825
- }
826
- }
787
+ backgroundColor: { _light: "darkBlue", _dark: "lightBlue" },
788
+ color: { _light: "icyBlue", _dark: "royal" },
789
+ "& svg": { color: { _light: "royal", _dark: "icyBlue" } }
827
790
  }
828
791
  },
829
792
  {
830
793
  colorPalette: "green",
831
794
  inverted: true,
832
795
  css: {
833
- backgroundColor: {
834
- _light: "darkTeal",
835
- _dark: "seaMist"
836
- },
837
- color: {
838
- _light: "mint",
839
- _dark: "jungle"
840
- },
841
- "& svg": {
842
- color: {
843
- _light: "mint",
844
- _dark: "jungle"
845
- }
846
- }
796
+ backgroundColor: { _light: "darkTeal", _dark: "seaMist" },
797
+ color: { _light: "mint", _dark: "jungle" },
798
+ "& svg": { color: { _light: "mint", _dark: "jungle" } }
847
799
  }
848
800
  },
849
801
  {
850
802
  colorPalette: "grey",
851
803
  inverted: true,
852
804
  css: {
853
- backgroundColor: {
854
- _light: "carbon",
855
- _dark: "platinum"
856
- },
857
- color: {
858
- _light: "white",
859
- _dark: "darkGrey"
860
- },
861
- "& svg": {
862
- color: {
863
- _light: "white",
864
- _dark: "darkGrey"
865
- }
866
- }
805
+ backgroundColor: { _light: "carbon", _dark: "platinum" },
806
+ color: { _light: "white", _dark: "darkGrey" },
807
+ "& svg": { color: { _light: "white", _dark: "darkGrey" } }
867
808
  }
868
809
  },
869
810
  {
@@ -871,80 +812,36 @@ var badgeRecipie = react.defineRecipe({
871
812
  colorPalette: "cream",
872
813
  inverted: true,
873
814
  css: {
874
- backgroundColor: {
875
- _light: "coffee",
876
- _dark: "blonde"
877
- },
878
- color: {
879
- _light: "cornsilk",
880
- _dark: "coffee"
881
- },
882
- "& svg": {
883
- color: {
884
- _light: "cornsilk",
885
- _dark: "coffee"
886
- }
887
- }
815
+ backgroundColor: { _light: "coffee", _dark: "blonde" },
816
+ color: { _light: "cornsilk", _dark: "coffee" },
817
+ "& svg": { color: { _light: "cornsilk", _dark: "coffee" } }
888
818
  }
889
819
  },
890
820
  {
891
821
  colorPalette: "yellow",
892
822
  inverted: true,
893
823
  css: {
894
- backgroundColor: {
895
- _light: "bronze",
896
- _dark: "banana"
897
- },
898
- color: {
899
- _light: "cornsilk",
900
- _dark: "coffee"
901
- },
902
- "& svg": {
903
- color: {
904
- _light: "cornsilk",
905
- _dark: "coffee"
906
- }
907
- }
824
+ backgroundColor: { _light: "bronze", _dark: "banana" },
825
+ color: { _light: "cornsilk", _dark: "coffee" },
826
+ "& svg": { color: { _light: "cornsilk", _dark: "coffee" } }
908
827
  }
909
828
  },
910
829
  {
911
830
  colorPalette: "orange",
912
831
  inverted: true,
913
832
  css: {
914
- backgroundColor: {
915
- _light: "wood",
916
- _dark: "champagne"
917
- },
918
- color: {
919
- _light: "bisque",
920
- _dark: "wood"
921
- },
922
- "& svg": {
923
- color: {
924
- _light: "bisque",
925
- _dark: "wood"
926
- }
927
- }
833
+ backgroundColor: { _light: "wood", _dark: "champagne" },
834
+ color: { _light: "bisque", _dark: "wood" },
835
+ "& svg": { color: { _light: "bisque", _dark: "wood" } }
928
836
  }
929
837
  },
930
838
  {
931
839
  colorPalette: "red",
932
840
  inverted: true,
933
841
  css: {
934
- backgroundColor: {
935
- _light: "burgundy",
936
- _dark: "lightRed"
937
- },
938
- color: {
939
- _light: "pink",
940
- _dark: "maroon"
941
- },
942
- "& svg": {
943
- color: {
944
- _light: "pink",
945
- _dark: "maroon"
946
- }
947
- }
842
+ backgroundColor: { _light: "burgundy", _dark: "lightRed" },
843
+ color: { _light: "pink", _dark: "maroon" },
844
+ "& svg": { color: { _light: "pink", _dark: "maroon" } }
948
845
  }
949
846
  },
950
847
  {
@@ -952,20 +849,9 @@ var badgeRecipie = react.defineRecipe({
952
849
  colorPalette: "neutral",
953
850
  inverted: true,
954
851
  css: {
955
- backgroundColor: {
956
- _light: "ink",
957
- _dark: "white"
958
- },
959
- color: {
960
- _light: "white",
961
- _dark: "darkGrey"
962
- },
963
- "& svg": {
964
- color: {
965
- _light: "white",
966
- _dark: "darkGrey"
967
- }
968
- }
852
+ backgroundColor: { _light: "ink", _dark: "white" },
853
+ color: { _light: "white", _dark: "darkGrey" },
854
+ "& svg": { color: { _light: "white", _dark: "darkGrey" } }
969
855
  }
970
856
  }
971
857
  ]
@@ -2148,10 +2034,10 @@ var ColorModeButton = function ColorModeButton2({
2148
2034
  };
2149
2035
  var FloatingLabel = ({
2150
2036
  ref,
2037
+ css,
2151
2038
  ...props
2152
- }) => /* @__PURE__ */ jsxRuntime.jsx(react.Field.Label, { ref, ...props, css: floatingLabelStyles });
2039
+ }) => /* @__PURE__ */ jsxRuntime.jsx(react.Field.Label, { ref, ...props, css: [floatingLabelStyles, css] });
2153
2040
  var floatingLabelStyles = react.defineStyle({
2154
- paddingX: 3,
2155
2041
  fontWeight: "normal",
2156
2042
  pointerEvents: "none",
2157
2043
  zIndex: "docked",
@@ -2159,22 +2045,13 @@ var floatingLabelStyles = react.defineStyle({
2159
2045
  opacity: 0.4
2160
2046
  },
2161
2047
  pos: "absolute",
2162
- transition: "top 160ms ease, font-size 160ms ease",
2163
- top: "0.9rem",
2164
- color: "text",
2165
- fontSize: ["mobile.sm", "desktop.sm"],
2166
- "&[data-float]": {
2167
- fontSize: ["mobile.2xs", "desktop.2xs"],
2168
- color: "text",
2169
- top: "0.3rem"
2170
- }
2048
+ transition: "top 160ms ease, font-size 160ms ease"
2171
2049
  });
2172
- var Label = (props) => /* @__PURE__ */ jsxRuntime.jsx(react.Field.Label, { ...props, css: labelStyles });
2050
+ var Label = ({ css, ...props }) => /* @__PURE__ */ jsxRuntime.jsx(react.Field.Label, { ...props, css: [labelStyles, css] });
2173
2051
  var labelStyles = react.defineStyle({
2174
2052
  fontWeight: "normal",
2175
2053
  paddingBottom: 1,
2176
2054
  paddingX: 1,
2177
- fontSize: ["mobile.xs", "desktop.xs"],
2178
2055
  color: "text",
2179
2056
  pointerEvents: "none",
2180
2057
  zIndex: "docked",
@@ -2217,10 +2094,11 @@ var Field3 = ({
2217
2094
  shouldFloat,
2218
2095
  labelAsChild,
2219
2096
  gap,
2097
+ size = "md",
2220
2098
  ...rest
2221
2099
  } = props;
2222
2100
  const recipe = react.useSlotRecipe({ key: "field" });
2223
- const styles = recipe();
2101
+ const styles = recipe({ size });
2224
2102
  return /* @__PURE__ */ jsxRuntime.jsxs(react.Stack, { ref, width: "100%", ...rest, children: [
2225
2103
  /* @__PURE__ */ jsxRuntime.jsxs(
2226
2104
  react.Field.Root,
@@ -2234,7 +2112,7 @@ var Field3 = ({
2234
2112
  id,
2235
2113
  gap,
2236
2114
  children: [
2237
- label && !floatingLabel && /* @__PURE__ */ jsxRuntime.jsx(Label, { asChild: labelAsChild, "aria-hidden": true, children: renderLabelWithIndicator(label, labelAsChild) }),
2115
+ label && !floatingLabel && /* @__PURE__ */ jsxRuntime.jsx(Label, { asChild: labelAsChild, "aria-hidden": true, css: styles.label, children: renderLabelWithIndicator(label, labelAsChild) }),
2238
2116
  children,
2239
2117
  label && floatingLabel && /* @__PURE__ */ jsxRuntime.jsx(
2240
2118
  FloatingLabel,
@@ -2242,6 +2120,7 @@ var Field3 = ({
2242
2120
  "data-float": shouldFloat ? true : void 0,
2243
2121
  asChild: labelAsChild,
2244
2122
  "aria-hidden": true,
2123
+ css: styles.label,
2245
2124
  children: renderLabelWithIndicator(label, labelAsChild)
2246
2125
  }
2247
2126
  ),
@@ -2249,7 +2128,7 @@ var Field3 = ({
2249
2128
  ]
2250
2129
  }
2251
2130
  ),
2252
- helperText && /* @__PURE__ */ jsxRuntime.jsx(Text3, { variant: "sm", color: "text.subtle", children: helperText })
2131
+ helperText && /* @__PURE__ */ jsxRuntime.jsx(react.Text, { "data-part": "helperText", css: styles.helperText, children: helperText })
2253
2132
  ] });
2254
2133
  };
2255
2134
  var FieldErrorText = ({
@@ -3627,10 +3506,11 @@ var Input = ({
3627
3506
  hidden,
3628
3507
  fontSize,
3629
3508
  labelAsChild,
3509
+ size = "md",
3630
3510
  ...props
3631
3511
  }) => {
3632
3512
  const recipe = react.useRecipe({ key: "input" });
3633
- const [recipeProps, restProps] = recipe.splitVariantProps(props);
3513
+ const [recipeProps, restProps] = recipe.splitVariantProps({ size, ...props });
3634
3514
  const styles = recipe(recipeProps);
3635
3515
  const labelId = React14.useId();
3636
3516
  const inputRef = React14.useRef(null);
@@ -3643,6 +3523,17 @@ var Input = ({
3643
3523
  onChange: props.onChange,
3644
3524
  inputRef
3645
3525
  });
3526
+ const fontSizeBySize = {
3527
+ sm: "xs",
3528
+ md: "mobile.md"
3529
+ };
3530
+ const elementPaddingBySize = {
3531
+ sm: "2.3rem",
3532
+ md: "2.6rem"
3533
+ };
3534
+ const elementPadding = elementPaddingBySize[size] ?? "2.6rem";
3535
+ const paddingLeft = elementPadding;
3536
+ const paddingRight = elementPadding;
3646
3537
  return /* @__PURE__ */ jsxRuntime.jsxs(
3647
3538
  Field3,
3648
3539
  {
@@ -3653,21 +3544,28 @@ var Input = ({
3653
3544
  errorText,
3654
3545
  id: props.id,
3655
3546
  labelAsChild,
3656
- label: /* @__PURE__ */ jsxRuntime.jsxs(react.Flex, { id: labelId, children: [
3657
- /* @__PURE__ */ jsxRuntime.jsx(react.Box, { visibility: "hidden", children: startElement }),
3658
- label
3659
- ] }),
3547
+ label: /* @__PURE__ */ jsxRuntime.jsxs(
3548
+ react.Flex,
3549
+ {
3550
+ id: labelId,
3551
+ paddingX: startElement && size === "sm" ? 1 : void 0,
3552
+ children: [
3553
+ /* @__PURE__ */ jsxRuntime.jsx(react.Box, { visibility: "hidden", children: startElement }),
3554
+ label
3555
+ ]
3556
+ }
3557
+ ),
3660
3558
  floatingLabel: true,
3661
3559
  shouldFloat,
3560
+ size,
3662
3561
  children: [
3663
3562
  startElement && /* @__PURE__ */ jsxRuntime.jsx(
3664
3563
  react.InputElement,
3665
3564
  {
3666
- pointerEvents: "none",
3667
- paddingX: 2,
3668
3565
  "aria-hidden": "true",
3669
- fontSize: fontSize ?? "mobile.md",
3670
3566
  "aria-labelledby": labelId,
3567
+ paddingX: 2,
3568
+ fontSize: fontSize ?? fontSizeBySize[size],
3671
3569
  children: startElement
3672
3570
  }
3673
3571
  ),
@@ -3678,25 +3576,25 @@ var Input = ({
3678
3576
  ref: inputRef,
3679
3577
  focusVisibleRing: "outside",
3680
3578
  overflow: "hidden",
3681
- paddingLeft: startElement ? "2.6rem" : void 0,
3682
- paddingRight: endElement ? "2.6rem" : void 0,
3683
3579
  ...restProps,
3580
+ css: styles,
3581
+ paddingLeft: startElement ? paddingLeft : void 0,
3582
+ paddingRight: endElement ? paddingRight : void 0,
3684
3583
  className: `peer ${props.className || ""}`,
3685
3584
  value: isControlled ? props.value : void 0,
3686
3585
  onFocus: handleFocus,
3687
3586
  onBlur: handleBlur,
3688
3587
  onChange: handleChange,
3689
3588
  placeholder: "",
3690
- css: styles,
3691
- fontSize: fontSize ?? "mobile.md"
3589
+ fontSize
3692
3590
  }
3693
3591
  ),
3694
3592
  endElement && /* @__PURE__ */ jsxRuntime.jsx(
3695
3593
  react.InputElement,
3696
3594
  {
3697
- placement: "end",
3698
3595
  paddingX: 2,
3699
- fontSize: fontSize ?? "mobile.md",
3596
+ placement: "end",
3597
+ fontSize: fontSize ?? fontSizeBySize[size],
3700
3598
  children: endElement
3701
3599
  }
3702
3600
  )
@@ -4182,7 +4080,8 @@ var Combobox2 = (props) => {
4182
4080
  }
4183
4081
  ) : rightIcon,
4184
4082
  placeholder: "",
4185
- "data-attachable": true
4083
+ "data-attachable": true,
4084
+ size: "md"
4186
4085
  }
4187
4086
  ),
4188
4087
  /* @__PURE__ */ jsxRuntime.jsx("span", { "aria-hidden": "true", "data-trigger": "multiselect" }),
@@ -4830,6 +4729,7 @@ var PasswordInput = ({
4830
4729
  onVisibleChange,
4831
4730
  label,
4832
4731
  startElement,
4732
+ size = "md",
4833
4733
  ...rest
4834
4734
  } = props;
4835
4735
  const [visible, setVisible] = react.useControllableState({
@@ -4858,9 +4758,11 @@ var PasswordInput = ({
4858
4758
  event.preventDefault();
4859
4759
  setVisible(!visible);
4860
4760
  },
4761
+ size,
4861
4762
  children: visible ? t(texts17.hidePassword) : t(texts17.showPassword)
4862
4763
  }
4863
4764
  ),
4765
+ size,
4864
4766
  ...rest
4865
4767
  }
4866
4768
  );
@@ -4875,7 +4777,6 @@ var VisibilityTrigger = ({
4875
4777
  ref,
4876
4778
  type: "button",
4877
4779
  fontWeight: "normal",
4878
- size: "sm",
4879
4780
  borderRadius: "sm",
4880
4781
  marginRight: 1,
4881
4782
  ...props,
@@ -4937,6 +4838,7 @@ var CountryCodeSelect = ({
4937
4838
  lazyMount: true,
4938
4839
  "aria-label": t(texts18.countryCode),
4939
4840
  sideRadiusVariant: "rightSideSquare",
4841
+ size: props.size,
4940
4842
  role: "combobox",
4941
4843
  children: filteredCallingCodes.items.map((code) => /* @__PURE__ */ jsxRuntime.jsx(SelectItem, { item: code, children: code.label }, code.label))
4942
4844
  }
@@ -4962,7 +4864,8 @@ var PhoneNumberInput = ({
4962
4864
  optional,
4963
4865
  allowedCountryCodes,
4964
4866
  invalid,
4965
- errorText
4867
+ errorText,
4868
+ size = "md"
4966
4869
  } = props;
4967
4870
  const { t } = useTranslation();
4968
4871
  const label = externalLabel ?? (optional ? t(texts19.phoneNumberOptional) : t(texts19.phoneNumber));
@@ -4993,7 +4896,7 @@ var PhoneNumberInput = ({
4993
4896
  variant,
4994
4897
  allowedCountryCodes,
4995
4898
  "data-state": "on",
4996
- invalid
4899
+ size
4997
4900
  }
4998
4901
  ),
4999
4902
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -5001,6 +4904,7 @@ var PhoneNumberInput = ({
5001
4904
  {
5002
4905
  ref,
5003
4906
  type: "tel",
4907
+ size,
5004
4908
  ...props,
5005
4909
  value: value.nationalNumber,
5006
4910
  invalid,
@@ -5056,7 +4960,7 @@ var SearchInput = ({
5056
4960
  ...props
5057
4961
  }) => {
5058
4962
  const { t } = useTranslation();
5059
- const { variant = "core", onReset, label, value } = props;
4963
+ const { variant = "core", onReset, label, value, size = "md" } = props;
5060
4964
  const clearButton = onReset && value;
5061
4965
  return /* @__PURE__ */ jsxRuntime.jsx(
5062
4966
  Input,
@@ -5064,8 +4968,9 @@ var SearchInput = ({
5064
4968
  ref,
5065
4969
  type: "search",
5066
4970
  variant,
4971
+ size,
5067
4972
  ...props,
5068
- startElement: /* @__PURE__ */ jsxRuntime.jsx(spor_icon_react_star.SearchOutline24Icon, { color: "icon" }),
4973
+ startElement: size == "md" ? /* @__PURE__ */ jsxRuntime.jsx(spor_icon_react_star.SearchOutline24Icon, { color: "icon" }) : /* @__PURE__ */ jsxRuntime.jsx(spor_icon_react_star.SearchOutline18Icon, { color: "icon" }),
5069
4974
  endElement: clearButton && /* @__PURE__ */ jsxRuntime.jsx(
5070
4975
  IconButton,
5071
4976
  {
@@ -5073,7 +4978,7 @@ var SearchInput = ({
5073
4978
  type: "button",
5074
4979
  size: "sm",
5075
4980
  "aria-label": t(texts20.reset),
5076
- icon: /* @__PURE__ */ jsxRuntime.jsx(spor_icon_react_star.CloseOutline24Icon, {}),
4981
+ icon: size == "md" ? /* @__PURE__ */ jsxRuntime.jsx(spor_icon_react_star.CloseOutline24Icon, {}) : /* @__PURE__ */ jsxRuntime.jsx(spor_icon_react_star.CloseOutline18Icon, {}),
5077
4982
  onClick: onReset
5078
4983
  }
5079
4984
  ),
@@ -5101,6 +5006,7 @@ var Select = ({
5101
5006
  }) => {
5102
5007
  const {
5103
5008
  variant = "core",
5009
+ size = "md",
5104
5010
  children,
5105
5011
  positioning,
5106
5012
  label,
@@ -5110,8 +5016,6 @@ var Select = ({
5110
5016
  css,
5111
5017
  ...rest
5112
5018
  } = props;
5113
- const recipe = react.useSlotRecipe({ key: "select" });
5114
- const styles = recipe({ variant });
5115
5019
  return /* @__PURE__ */ jsxRuntime.jsx(
5116
5020
  Field3,
5117
5021
  {
@@ -5128,12 +5032,12 @@ var Select = ({
5128
5032
  ref,
5129
5033
  positioning: { sameWidth: true, ...positioning },
5130
5034
  variant,
5131
- css: styles.root,
5035
+ size,
5132
5036
  position: "relative",
5133
5037
  children: [
5134
- /* @__PURE__ */ jsxRuntime.jsx(SelectTrigger, { "data-attachable": true, children: /* @__PURE__ */ jsxRuntime.jsx(SelectValueText, { withPlaceholder: !!label }) }),
5135
- label && /* @__PURE__ */ jsxRuntime.jsx(SelectLabel, { css: styles.label, children: label }),
5136
- /* @__PURE__ */ jsxRuntime.jsx(SelectContent, { css: styles.selectContent, baseStyle: css, children })
5038
+ /* @__PURE__ */ jsxRuntime.jsx(SelectTrigger, { "data-attachable": true, size, children: /* @__PURE__ */ jsxRuntime.jsx(SelectValueText, { withPlaceholder: !!label }) }),
5039
+ label && /* @__PURE__ */ jsxRuntime.jsx(SelectLabel, { children: label }),
5040
+ /* @__PURE__ */ jsxRuntime.jsx(SelectContent, { baseStyle: css, children })
5137
5041
  ]
5138
5042
  }
5139
5043
  )
@@ -5155,16 +5059,14 @@ var SelectItem = ({
5155
5059
  ...props
5156
5060
  }) => {
5157
5061
  const { item, children, description, ...rest } = props;
5158
- const recipe = react.useSlotRecipe({ key: "select" });
5159
- const styles = recipe();
5160
5062
  const selectContext = react.useSelectContext();
5161
5063
  const multiple = selectContext.multiple;
5162
5064
  const isSelected = selectContext.value.includes(item.value);
5163
- return /* @__PURE__ */ jsxRuntime.jsxs(react.Select.Item, { item, ...rest, ref, css: styles.item, children: [
5065
+ return /* @__PURE__ */ jsxRuntime.jsxs(react.Select.Item, { item, ...rest, ref, children: [
5164
5066
  multiple && /* @__PURE__ */ jsxRuntime.jsx(react.Checkbox.Root, { checked: isSelected, pointerEvents: "none", children: /* @__PURE__ */ jsxRuntime.jsx(react.Checkbox.Control, { children: /* @__PURE__ */ jsxRuntime.jsx(react.Checkbox.Indicator, {}) }) }),
5165
5067
  /* @__PURE__ */ jsxRuntime.jsxs(react.Box, { width: "100%", children: [
5166
5068
  /* @__PURE__ */ jsxRuntime.jsx(react.Select.ItemText, { display: "flex", children }),
5167
- description && /* @__PURE__ */ jsxRuntime.jsx(react.Box, { "data-part": "item-description", css: styles.itemDescription, children: description })
5069
+ description && /* @__PURE__ */ jsxRuntime.jsx(react.Box, { "data-part": "item-description", children: description })
5168
5070
  ] }),
5169
5071
  !multiple && /* @__PURE__ */ jsxRuntime.jsx(react.Select.ItemIndicator, { children: /* @__PURE__ */ jsxRuntime.jsx(spor_icon_react_star.CheckmarkFill18Icon, {}) })
5170
5072
  ] });
@@ -5182,24 +5084,16 @@ var SelectItemGroup = function SelectItemGroup2({
5182
5084
  };
5183
5085
  var SelectTrigger = function SelectTrigger2({
5184
5086
  ref,
5087
+ size = "md",
5185
5088
  ...props
5186
5089
  }) {
5187
5090
  const { children, clearable, ...rest } = props;
5188
- const recipe = react.useSlotRecipe({ key: "select" });
5189
- const styles = recipe();
5190
- return /* @__PURE__ */ jsxRuntime.jsxs(react.Select.Control, { ...rest, css: styles.control, children: [
5191
- /* @__PURE__ */ jsxRuntime.jsx(react.Select.Trigger, { ref, css: styles.trigger, children }),
5192
- /* @__PURE__ */ jsxRuntime.jsxs(
5193
- react.Select.IndicatorGroup,
5194
- {
5195
- css: styles.indicatorGroup,
5196
- "data-part": "indicator-group",
5197
- children: [
5198
- clearable && /* @__PURE__ */ jsxRuntime.jsx(SelectClearTrigger, {}),
5199
- /* @__PURE__ */ jsxRuntime.jsx(react.Box, { css: styles.indicator, "data-part": "indicator", children: /* @__PURE__ */ jsxRuntime.jsx(spor_icon_react_star.DropdownDownFill24Icon, {}) })
5200
- ]
5201
- }
5202
- )
5091
+ return /* @__PURE__ */ jsxRuntime.jsxs(react.Select.Control, { ...rest, children: [
5092
+ /* @__PURE__ */ jsxRuntime.jsx(react.Select.Trigger, { ref, children }),
5093
+ /* @__PURE__ */ jsxRuntime.jsxs(react.Select.IndicatorGroup, { "data-part": "indicator-group", children: [
5094
+ clearable && /* @__PURE__ */ jsxRuntime.jsx(SelectClearTrigger, {}),
5095
+ /* @__PURE__ */ jsxRuntime.jsx(react.Box, { "data-part": "indicator", children: size == "md" ? /* @__PURE__ */ jsxRuntime.jsx(spor_icon_react_star.DropdownDownFill24Icon, {}) : /* @__PURE__ */ jsxRuntime.jsx(spor_icon_react_star.DropdownDownFill18Icon, {}) })
5096
+ ] })
5203
5097
  ] });
5204
5098
  };
5205
5099
  var SelectClearTrigger = function SelectClearTrigger2({
@@ -5236,7 +5130,7 @@ var SelectValueText = function SelectValueText2({
5236
5130
  ...rest,
5237
5131
  ref,
5238
5132
  placeholder,
5239
- paddingTop: withPlaceholder ? "4" : "0",
5133
+ "data-with-placeholder": withPlaceholder || void 0,
5240
5134
  children: /* @__PURE__ */ jsxRuntime.jsx(react.Select.Context, { children: (select) => {
5241
5135
  const items = select.selectedItems;
5242
5136
  if (items.length === 0)
@@ -5244,7 +5138,7 @@ var SelectValueText = function SelectValueText2({
5244
5138
  if (children)
5245
5139
  return children(items);
5246
5140
  if (multiple) {
5247
- return /* @__PURE__ */ jsxRuntime.jsx(react.Flex, { gap: 0.5, marginBottom: 1, children: items.map((item) => /* @__PURE__ */ jsxRuntime.jsx(
5141
+ return /* @__PURE__ */ jsxRuntime.jsx(react.Flex, { gap: 0.5, children: items.map((item) => /* @__PURE__ */ jsxRuntime.jsx(
5248
5142
  Badge,
5249
5143
  {
5250
5144
  size: "sm",
@@ -7403,10 +7297,6 @@ var inputRecipe = react.defineRecipe({
7403
7297
  transitionDuration: "fast",
7404
7298
  color: "text",
7405
7299
  position: "relative",
7406
- paddingX: 3,
7407
- paddingTop: 3,
7408
- height: 8,
7409
- fontSize: "mobile.md",
7410
7300
  _disabled: {
7411
7301
  backgroundColor: "surface.disabled",
7412
7302
  outline: "1px solid",
@@ -7469,10 +7359,25 @@ var inputRecipe = react.defineRecipe({
7469
7359
  outlineColor: "outline.focus"
7470
7360
  }
7471
7361
  }
7362
+ },
7363
+ size: {
7364
+ sm: {
7365
+ paddingTop: 2,
7366
+ height: 7,
7367
+ fontSize: "xs",
7368
+ paddingX: 2
7369
+ },
7370
+ md: {
7371
+ paddingX: 3,
7372
+ paddingTop: 3,
7373
+ height: 8,
7374
+ fontSize: "mobile.md"
7375
+ }
7472
7376
  }
7473
7377
  },
7474
7378
  defaultVariants: {
7475
- variant: "core"
7379
+ variant: "core",
7380
+ size: "md"
7476
7381
  }
7477
7382
  });
7478
7383
  var linkRecipe = react.defineRecipe({
@@ -8046,12 +7951,10 @@ var selectAnatomy = anatomy.createAnatomy("select").parts(
8046
7951
  "root",
8047
7952
  "trigger",
8048
7953
  "indicatorGroup",
8049
- "indicator",
8050
- "selectContent",
7954
+ "content",
8051
7955
  "item",
8052
7956
  "control",
8053
7957
  "itemText",
8054
- "itemDescription",
8055
7958
  "itemGroup",
8056
7959
  "itemGroupLabel",
8057
7960
  "label",
@@ -8679,7 +8582,6 @@ var breadcrumbSlotRecipe = react.defineSlotRecipe({
8679
8582
  },
8680
8583
  link: {
8681
8584
  cursor: "pointer",
8682
- padding: 0.5,
8683
8585
  borderRadius: "xs"
8684
8586
  },
8685
8587
  currentLink: {
@@ -9718,17 +9620,15 @@ var fieldSlotRecipe = react.defineSlotRecipe({
9718
9620
  },
9719
9621
  requiredIndicator: {
9720
9622
  marginStart: 1,
9721
- // eslint-disable-next-line spor/use-semantic-tokens
9722
- color: "brightRed"
9623
+ color: "outline.error"
9723
9624
  },
9724
9625
  label: {
9725
9626
  display: "flex"
9726
9627
  },
9727
9628
  helperText: {
9728
- marginTop: 2,
9729
9629
  color: "text.subtle",
9730
9630
  lineHeight: "normal",
9731
- fontSize: "sm"
9631
+ fontSize: ["mobile.sm", "desktop.sm"]
9732
9632
  },
9733
9633
  errorText: {
9734
9634
  borderRadius: "xs",
@@ -9755,6 +9655,41 @@ var fieldSlotRecipe = react.defineSlotRecipe({
9755
9655
  pointerEvents: "none"
9756
9656
  }
9757
9657
  }
9658
+ },
9659
+ variants: {
9660
+ size: {
9661
+ sm: {
9662
+ label: {
9663
+ fontSize: ["mobile.xs", "desktop.xs"],
9664
+ paddingX: 2,
9665
+ "&[data-float]": {
9666
+ fontSize: ["mobile.2xs", "desktop.2xs"],
9667
+ top: 0
9668
+ },
9669
+ top: "0.5rem"
9670
+ },
9671
+ helperText: {
9672
+ color: "text.subtle",
9673
+ lineHeight: "normal",
9674
+ fontSize: ["mobile.xs", "desktop.xs"]
9675
+ }
9676
+ },
9677
+ md: {
9678
+ label: {
9679
+ paddingX: 3,
9680
+ fontSize: ["mobile.sm", "desktop.sm"],
9681
+ "&[data-float]": {
9682
+ fontSize: ["mobile.2xs", "desktop.2xs"],
9683
+ color: "text.subtle",
9684
+ top: "0.3rem"
9685
+ },
9686
+ top: "0.9rem"
9687
+ }
9688
+ }
9689
+ }
9690
+ },
9691
+ defaultVariants: {
9692
+ size: "md"
9758
9693
  }
9759
9694
  });
9760
9695
  var filterChipSlotRecipe = react.defineSlotRecipe({
@@ -10889,7 +10824,7 @@ var menuSlotRecipe = react.defineSlotRecipe({
10889
10824
  variant: "core"
10890
10825
  }
10891
10826
  });
10892
- var _a5, _b4;
10827
+ var _a5, _b4, _c2, _d2, _e, _f;
10893
10828
  var nativeSelectSlotRecipe = react.defineSlotRecipe({
10894
10829
  slots: NativeSelectAnatomy.keys(),
10895
10830
  className: "spor-nativeSelect",
@@ -10941,7 +10876,22 @@ var nativeSelectSlotRecipe = react.defineSlotRecipe({
10941
10876
  ...(_b4 = inputRecipe.variants) == null ? void 0 : _b4.variant.floating
10942
10877
  }
10943
10878
  }
10879
+ },
10880
+ size: {
10881
+ sm: {
10882
+ field: {
10883
+ ...(_d2 = (_c2 = inputRecipe.variants) == null ? void 0 : _c2.size) == null ? void 0 : _d2.sm
10884
+ }
10885
+ },
10886
+ md: {
10887
+ field: {
10888
+ ...(_f = (_e = inputRecipe.variants) == null ? void 0 : _e.size) == null ? void 0 : _f.md
10889
+ }
10890
+ }
10944
10891
  }
10892
+ },
10893
+ defaultVariants: {
10894
+ size: "md"
10945
10895
  }
10946
10896
  });
10947
10897
  var numericStepperRecipe = react.defineSlotRecipe({
@@ -11371,14 +11321,9 @@ var selectSlotRecipe = react.defineSlotRecipe({
11371
11321
  label: {
11372
11322
  fontSize: ["mobile.sm", "desktop.sm"],
11373
11323
  top: 0,
11374
- left: 3,
11375
11324
  zIndex: 0,
11376
11325
  position: "absolute",
11377
11326
  color: "text",
11378
- marginY: 2,
11379
- _selected: {
11380
- transform: ["scale(0.825) translateY(-10px)"]
11381
- },
11382
11327
  transitionProperty: "transform",
11383
11328
  transitionDuration: "fast",
11384
11329
  transformOrigin: "top left",
@@ -11389,47 +11334,46 @@ var selectSlotRecipe = react.defineSlotRecipe({
11389
11334
  display: "flex",
11390
11335
  appearance: "none",
11391
11336
  width: "100%",
11392
- height: 8,
11393
11337
  color: "text",
11394
- paddingY: 1.5,
11395
- paddingX: 3,
11396
11338
  justifyContent: "space-between",
11397
11339
  alignItems: "center",
11398
- fontSize: "mobile.md",
11399
11340
  borderRadius: "sm",
11400
11341
  cursor: "pointer",
11401
11342
  _open: {
11402
11343
  "& + div": {
11403
11344
  transform: "rotate(180deg)"
11404
11345
  }
11346
+ },
11347
+ _active: {
11348
+ backgroundColor: "surface"
11405
11349
  }
11406
11350
  },
11407
11351
  indicatorGroup: {
11408
11352
  display: "flex",
11409
11353
  alignItems: "center",
11410
- gap: "1",
11354
+ gap: "0.5",
11411
11355
  position: "absolute",
11412
11356
  right: "0",
11413
11357
  top: "0",
11414
11358
  bottom: "0",
11415
11359
  paddingX: 2,
11416
- pointerEvents: "none"
11417
- },
11418
- indicator: {
11419
- display: "flex",
11420
- alignItems: "center",
11421
- justifyContent: "center",
11422
- color: {
11423
- base: "text",
11424
- _disabled: "text.disabled",
11425
- _invalid: "text.highlight"
11426
- },
11427
- _icon: {
11428
- width: 3,
11429
- height: 3
11360
+ pointerEvents: "none",
11361
+ "& [data-part='indicator']": {
11362
+ display: "flex",
11363
+ alignItems: "center",
11364
+ justifyContent: "center",
11365
+ color: {
11366
+ base: "text",
11367
+ _disabled: "text.disabled",
11368
+ _invalid: "text.highlight"
11369
+ },
11370
+ _icon: {
11371
+ width: 3,
11372
+ height: 3
11373
+ }
11430
11374
  }
11431
11375
  },
11432
- selectContent: {
11376
+ content: {
11433
11377
  backgroundColor: "surface",
11434
11378
  boxShadow: "sm",
11435
11379
  overflowY: "auto",
@@ -11482,9 +11426,7 @@ var selectSlotRecipe = react.defineSlotRecipe({
11482
11426
  }
11483
11427
  },
11484
11428
  _hover: {
11485
- backgroundColor: "surface.accent.hover",
11486
- outline: "2px solid core.outline",
11487
- outlineOffset: "2px"
11429
+ backgroundColor: "surface.accent.hover"
11488
11430
  },
11489
11431
  _selected: {
11490
11432
  backgroundColor: "surface.accent"
@@ -11492,6 +11434,10 @@ var selectSlotRecipe = react.defineSlotRecipe({
11492
11434
  _icon: {
11493
11435
  width: 3,
11494
11436
  height: 3
11437
+ },
11438
+ "& [data-part='item-description']": {
11439
+ fontSize: ["mobile.xs", "desktop.xs"],
11440
+ color: "text.ghost"
11495
11441
  }
11496
11442
  },
11497
11443
  control: {
@@ -11510,7 +11456,8 @@ var selectSlotRecipe = react.defineSlotRecipe({
11510
11456
  }
11511
11457
  },
11512
11458
  itemText: {
11513
- flex: "1"
11459
+ flex: "1",
11460
+ alignItems: "center"
11514
11461
  },
11515
11462
  itemGroup: {
11516
11463
  _first: { mt: "0" }
@@ -11518,14 +11465,6 @@ var selectSlotRecipe = react.defineSlotRecipe({
11518
11465
  itemGroupLabel: {
11519
11466
  py: "1",
11520
11467
  fontWeight: "medium"
11521
- },
11522
- valueText: {},
11523
- itemDescription: {
11524
- fontSize: ["mobile.xs", "desktop.xs"],
11525
- color: "text.ghost",
11526
- "[aria-selected='true'] &": {
11527
- color: "text.ghost"
11528
- }
11529
11468
  }
11530
11469
  },
11531
11470
  variants: {
@@ -11546,6 +11485,10 @@ var selectSlotRecipe = react.defineSlotRecipe({
11546
11485
  color: "text.disabled",
11547
11486
  backgroundColor: "surface.disabled"
11548
11487
  }
11488
+ },
11489
+ content: {
11490
+ outline: "2px solid",
11491
+ outlineColor: "outline.core"
11549
11492
  }
11550
11493
  },
11551
11494
  floating: {
@@ -11590,7 +11533,68 @@ var selectSlotRecipe = react.defineSlotRecipe({
11590
11533
  }
11591
11534
  }
11592
11535
  }
11536
+ },
11537
+ size: {
11538
+ sm: {
11539
+ trigger: {
11540
+ height: 7,
11541
+ paddingY: 1.5,
11542
+ fontSize: "xs",
11543
+ paddingX: 2
11544
+ },
11545
+ label: {
11546
+ fontSize: ["mobile.xs", "desktop.xs"],
11547
+ left: 2,
11548
+ marginY: 1.5,
11549
+ _selected: {
11550
+ transform: ["scale(0.85) translateY(-9px)"],
11551
+ fontSize: "desktop.2xs",
11552
+ color: "text.subtle"
11553
+ }
11554
+ },
11555
+ item: {
11556
+ paddingX: 2,
11557
+ paddingY: 1,
11558
+ fontSize: "xs",
11559
+ "& [data-part='item-description']": {
11560
+ fontSize: ["mobile.2xs", "desktop.2xs"]
11561
+ }
11562
+ },
11563
+ itemGroupLabel: {
11564
+ py: 0.5,
11565
+ fontSize: "xs"
11566
+ },
11567
+ valueText: {
11568
+ paddingTop: 0,
11569
+ "&[data-with-placeholder]": {
11570
+ paddingTop: "1.5"
11571
+ }
11572
+ }
11573
+ },
11574
+ md: {
11575
+ trigger: {
11576
+ height: 8,
11577
+ paddingY: 1.5,
11578
+ paddingX: 3,
11579
+ fontSize: "sm"
11580
+ },
11581
+ label: {
11582
+ left: 3,
11583
+ marginY: 2,
11584
+ _selected: {
11585
+ transform: ["scale(0.825) translateY(-10px)"]
11586
+ }
11587
+ },
11588
+ valueText: {
11589
+ "&[data-with-placeholder]": {
11590
+ paddingTop: "4"
11591
+ }
11592
+ }
11593
+ }
11593
11594
  }
11595
+ },
11596
+ defaultVariants: {
11597
+ size: "md"
11594
11598
  }
11595
11599
  });
11596
11600
  var stepperSlotRecipe = react.defineSlotRecipe({