@vygruppen/spor-react 13.3.2 → 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/.turbo/turbo-build.log +12 -12
- package/.turbo/turbo-postinstall.log +2 -2
- package/CHANGELOG.md +12 -0
- package/__tests__/radio.test.tsx +69 -0
- package/dist/index.cjs +233 -115
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +56 -4
- package/dist/index.d.ts +56 -4
- package/dist/index.mjs +234 -116
- package/dist/index.mjs.map +1 -1
- package/package.json +9 -2
- package/setupTests.ts +84 -0
- package/src/input/Combobox.tsx +1 -0
- package/src/input/CountryCodeSelect.tsx +1 -0
- package/src/input/Field.tsx +8 -6
- package/src/input/FloatingLabel.tsx +2 -13
- package/src/input/Input.tsx +32 -15
- package/src/input/Label.tsx +2 -3
- package/src/input/PasswordInput.tsx +3 -1
- package/src/input/PhoneNumberInput.tsx +3 -1
- package/src/input/SearchInput.tsx +14 -3
- package/src/input/Select.tsx +23 -33
- package/src/theme/recipes/input.ts +15 -4
- package/src/theme/slot-recipes/anatomy.ts +1 -3
- package/src/theme/slot-recipes/breadcrumb.ts +0 -1
- package/src/theme/slot-recipes/field.ts +38 -4
- package/src/theme/slot-recipes/native-select.ts +15 -0
- package/src/theme/slot-recipes/select.ts +88 -35
- package/vitest.config.ts +12 -0
package/dist/index.cjs
CHANGED
|
@@ -2034,10 +2034,10 @@ var ColorModeButton = function ColorModeButton2({
|
|
|
2034
2034
|
};
|
|
2035
2035
|
var FloatingLabel = ({
|
|
2036
2036
|
ref,
|
|
2037
|
+
css,
|
|
2037
2038
|
...props
|
|
2038
|
-
}) => /* @__PURE__ */ jsxRuntime.jsx(react.Field.Label, { ref, ...props, css: floatingLabelStyles });
|
|
2039
|
+
}) => /* @__PURE__ */ jsxRuntime.jsx(react.Field.Label, { ref, ...props, css: [floatingLabelStyles, css] });
|
|
2039
2040
|
var floatingLabelStyles = react.defineStyle({
|
|
2040
|
-
paddingX: 3,
|
|
2041
2041
|
fontWeight: "normal",
|
|
2042
2042
|
pointerEvents: "none",
|
|
2043
2043
|
zIndex: "docked",
|
|
@@ -2045,22 +2045,13 @@ var floatingLabelStyles = react.defineStyle({
|
|
|
2045
2045
|
opacity: 0.4
|
|
2046
2046
|
},
|
|
2047
2047
|
pos: "absolute",
|
|
2048
|
-
transition: "top 160ms ease, font-size 160ms ease"
|
|
2049
|
-
top: "0.9rem",
|
|
2050
|
-
color: "text",
|
|
2051
|
-
fontSize: ["mobile.sm", "desktop.sm"],
|
|
2052
|
-
"&[data-float]": {
|
|
2053
|
-
fontSize: ["mobile.2xs", "desktop.2xs"],
|
|
2054
|
-
color: "text",
|
|
2055
|
-
top: "0.3rem"
|
|
2056
|
-
}
|
|
2048
|
+
transition: "top 160ms ease, font-size 160ms ease"
|
|
2057
2049
|
});
|
|
2058
|
-
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] });
|
|
2059
2051
|
var labelStyles = react.defineStyle({
|
|
2060
2052
|
fontWeight: "normal",
|
|
2061
2053
|
paddingBottom: 1,
|
|
2062
2054
|
paddingX: 1,
|
|
2063
|
-
fontSize: ["mobile.xs", "desktop.xs"],
|
|
2064
2055
|
color: "text",
|
|
2065
2056
|
pointerEvents: "none",
|
|
2066
2057
|
zIndex: "docked",
|
|
@@ -2103,10 +2094,11 @@ var Field3 = ({
|
|
|
2103
2094
|
shouldFloat,
|
|
2104
2095
|
labelAsChild,
|
|
2105
2096
|
gap,
|
|
2097
|
+
size = "md",
|
|
2106
2098
|
...rest
|
|
2107
2099
|
} = props;
|
|
2108
2100
|
const recipe = react.useSlotRecipe({ key: "field" });
|
|
2109
|
-
const styles = recipe();
|
|
2101
|
+
const styles = recipe({ size });
|
|
2110
2102
|
return /* @__PURE__ */ jsxRuntime.jsxs(react.Stack, { ref, width: "100%", ...rest, children: [
|
|
2111
2103
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
2112
2104
|
react.Field.Root,
|
|
@@ -2120,7 +2112,7 @@ var Field3 = ({
|
|
|
2120
2112
|
id,
|
|
2121
2113
|
gap,
|
|
2122
2114
|
children: [
|
|
2123
|
-
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) }),
|
|
2124
2116
|
children,
|
|
2125
2117
|
label && floatingLabel && /* @__PURE__ */ jsxRuntime.jsx(
|
|
2126
2118
|
FloatingLabel,
|
|
@@ -2128,6 +2120,7 @@ var Field3 = ({
|
|
|
2128
2120
|
"data-float": shouldFloat ? true : void 0,
|
|
2129
2121
|
asChild: labelAsChild,
|
|
2130
2122
|
"aria-hidden": true,
|
|
2123
|
+
css: styles.label,
|
|
2131
2124
|
children: renderLabelWithIndicator(label, labelAsChild)
|
|
2132
2125
|
}
|
|
2133
2126
|
),
|
|
@@ -2135,7 +2128,7 @@ var Field3 = ({
|
|
|
2135
2128
|
]
|
|
2136
2129
|
}
|
|
2137
2130
|
),
|
|
2138
|
-
helperText && /* @__PURE__ */ jsxRuntime.jsx(
|
|
2131
|
+
helperText && /* @__PURE__ */ jsxRuntime.jsx(react.Text, { "data-part": "helperText", css: styles.helperText, children: helperText })
|
|
2139
2132
|
] });
|
|
2140
2133
|
};
|
|
2141
2134
|
var FieldErrorText = ({
|
|
@@ -3513,10 +3506,11 @@ var Input = ({
|
|
|
3513
3506
|
hidden,
|
|
3514
3507
|
fontSize,
|
|
3515
3508
|
labelAsChild,
|
|
3509
|
+
size = "md",
|
|
3516
3510
|
...props
|
|
3517
3511
|
}) => {
|
|
3518
3512
|
const recipe = react.useRecipe({ key: "input" });
|
|
3519
|
-
const [recipeProps, restProps] = recipe.splitVariantProps(props);
|
|
3513
|
+
const [recipeProps, restProps] = recipe.splitVariantProps({ size, ...props });
|
|
3520
3514
|
const styles = recipe(recipeProps);
|
|
3521
3515
|
const labelId = React14.useId();
|
|
3522
3516
|
const inputRef = React14.useRef(null);
|
|
@@ -3529,6 +3523,17 @@ var Input = ({
|
|
|
3529
3523
|
onChange: props.onChange,
|
|
3530
3524
|
inputRef
|
|
3531
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;
|
|
3532
3537
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3533
3538
|
Field3,
|
|
3534
3539
|
{
|
|
@@ -3539,21 +3544,28 @@ var Input = ({
|
|
|
3539
3544
|
errorText,
|
|
3540
3545
|
id: props.id,
|
|
3541
3546
|
labelAsChild,
|
|
3542
|
-
label: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3543
|
-
|
|
3544
|
-
|
|
3545
|
-
|
|
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
|
+
),
|
|
3546
3558
|
floatingLabel: true,
|
|
3547
3559
|
shouldFloat,
|
|
3560
|
+
size,
|
|
3548
3561
|
children: [
|
|
3549
3562
|
startElement && /* @__PURE__ */ jsxRuntime.jsx(
|
|
3550
3563
|
react.InputElement,
|
|
3551
3564
|
{
|
|
3552
|
-
pointerEvents: "none",
|
|
3553
|
-
paddingX: 2,
|
|
3554
3565
|
"aria-hidden": "true",
|
|
3555
|
-
fontSize: fontSize ?? "mobile.md",
|
|
3556
3566
|
"aria-labelledby": labelId,
|
|
3567
|
+
paddingX: 2,
|
|
3568
|
+
fontSize: fontSize ?? fontSizeBySize[size],
|
|
3557
3569
|
children: startElement
|
|
3558
3570
|
}
|
|
3559
3571
|
),
|
|
@@ -3564,25 +3576,25 @@ var Input = ({
|
|
|
3564
3576
|
ref: inputRef,
|
|
3565
3577
|
focusVisibleRing: "outside",
|
|
3566
3578
|
overflow: "hidden",
|
|
3567
|
-
paddingLeft: startElement ? "2.6rem" : void 0,
|
|
3568
|
-
paddingRight: endElement ? "2.6rem" : void 0,
|
|
3569
3579
|
...restProps,
|
|
3580
|
+
css: styles,
|
|
3581
|
+
paddingLeft: startElement ? paddingLeft : void 0,
|
|
3582
|
+
paddingRight: endElement ? paddingRight : void 0,
|
|
3570
3583
|
className: `peer ${props.className || ""}`,
|
|
3571
3584
|
value: isControlled ? props.value : void 0,
|
|
3572
3585
|
onFocus: handleFocus,
|
|
3573
3586
|
onBlur: handleBlur,
|
|
3574
3587
|
onChange: handleChange,
|
|
3575
3588
|
placeholder: "",
|
|
3576
|
-
|
|
3577
|
-
fontSize: fontSize ?? "mobile.md"
|
|
3589
|
+
fontSize
|
|
3578
3590
|
}
|
|
3579
3591
|
),
|
|
3580
3592
|
endElement && /* @__PURE__ */ jsxRuntime.jsx(
|
|
3581
3593
|
react.InputElement,
|
|
3582
3594
|
{
|
|
3583
|
-
placement: "end",
|
|
3584
3595
|
paddingX: 2,
|
|
3585
|
-
|
|
3596
|
+
placement: "end",
|
|
3597
|
+
fontSize: fontSize ?? fontSizeBySize[size],
|
|
3586
3598
|
children: endElement
|
|
3587
3599
|
}
|
|
3588
3600
|
)
|
|
@@ -4068,7 +4080,8 @@ var Combobox2 = (props) => {
|
|
|
4068
4080
|
}
|
|
4069
4081
|
) : rightIcon,
|
|
4070
4082
|
placeholder: "",
|
|
4071
|
-
"data-attachable": true
|
|
4083
|
+
"data-attachable": true,
|
|
4084
|
+
size: "md"
|
|
4072
4085
|
}
|
|
4073
4086
|
),
|
|
4074
4087
|
/* @__PURE__ */ jsxRuntime.jsx("span", { "aria-hidden": "true", "data-trigger": "multiselect" }),
|
|
@@ -4716,6 +4729,7 @@ var PasswordInput = ({
|
|
|
4716
4729
|
onVisibleChange,
|
|
4717
4730
|
label,
|
|
4718
4731
|
startElement,
|
|
4732
|
+
size = "md",
|
|
4719
4733
|
...rest
|
|
4720
4734
|
} = props;
|
|
4721
4735
|
const [visible, setVisible] = react.useControllableState({
|
|
@@ -4744,9 +4758,11 @@ var PasswordInput = ({
|
|
|
4744
4758
|
event.preventDefault();
|
|
4745
4759
|
setVisible(!visible);
|
|
4746
4760
|
},
|
|
4761
|
+
size,
|
|
4747
4762
|
children: visible ? t(texts17.hidePassword) : t(texts17.showPassword)
|
|
4748
4763
|
}
|
|
4749
4764
|
),
|
|
4765
|
+
size,
|
|
4750
4766
|
...rest
|
|
4751
4767
|
}
|
|
4752
4768
|
);
|
|
@@ -4761,7 +4777,6 @@ var VisibilityTrigger = ({
|
|
|
4761
4777
|
ref,
|
|
4762
4778
|
type: "button",
|
|
4763
4779
|
fontWeight: "normal",
|
|
4764
|
-
size: "sm",
|
|
4765
4780
|
borderRadius: "sm",
|
|
4766
4781
|
marginRight: 1,
|
|
4767
4782
|
...props,
|
|
@@ -4823,6 +4838,7 @@ var CountryCodeSelect = ({
|
|
|
4823
4838
|
lazyMount: true,
|
|
4824
4839
|
"aria-label": t(texts18.countryCode),
|
|
4825
4840
|
sideRadiusVariant: "rightSideSquare",
|
|
4841
|
+
size: props.size,
|
|
4826
4842
|
role: "combobox",
|
|
4827
4843
|
children: filteredCallingCodes.items.map((code) => /* @__PURE__ */ jsxRuntime.jsx(SelectItem, { item: code, children: code.label }, code.label))
|
|
4828
4844
|
}
|
|
@@ -4848,7 +4864,8 @@ var PhoneNumberInput = ({
|
|
|
4848
4864
|
optional,
|
|
4849
4865
|
allowedCountryCodes,
|
|
4850
4866
|
invalid,
|
|
4851
|
-
errorText
|
|
4867
|
+
errorText,
|
|
4868
|
+
size = "md"
|
|
4852
4869
|
} = props;
|
|
4853
4870
|
const { t } = useTranslation();
|
|
4854
4871
|
const label = externalLabel ?? (optional ? t(texts19.phoneNumberOptional) : t(texts19.phoneNumber));
|
|
@@ -4879,7 +4896,7 @@ var PhoneNumberInput = ({
|
|
|
4879
4896
|
variant,
|
|
4880
4897
|
allowedCountryCodes,
|
|
4881
4898
|
"data-state": "on",
|
|
4882
|
-
|
|
4899
|
+
size
|
|
4883
4900
|
}
|
|
4884
4901
|
),
|
|
4885
4902
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -4887,6 +4904,7 @@ var PhoneNumberInput = ({
|
|
|
4887
4904
|
{
|
|
4888
4905
|
ref,
|
|
4889
4906
|
type: "tel",
|
|
4907
|
+
size,
|
|
4890
4908
|
...props,
|
|
4891
4909
|
value: value.nationalNumber,
|
|
4892
4910
|
invalid,
|
|
@@ -4942,7 +4960,7 @@ var SearchInput = ({
|
|
|
4942
4960
|
...props
|
|
4943
4961
|
}) => {
|
|
4944
4962
|
const { t } = useTranslation();
|
|
4945
|
-
const { variant = "core", onReset, label, value } = props;
|
|
4963
|
+
const { variant = "core", onReset, label, value, size = "md" } = props;
|
|
4946
4964
|
const clearButton = onReset && value;
|
|
4947
4965
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4948
4966
|
Input,
|
|
@@ -4950,8 +4968,9 @@ var SearchInput = ({
|
|
|
4950
4968
|
ref,
|
|
4951
4969
|
type: "search",
|
|
4952
4970
|
variant,
|
|
4971
|
+
size,
|
|
4953
4972
|
...props,
|
|
4954
|
-
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" }),
|
|
4955
4974
|
endElement: clearButton && /* @__PURE__ */ jsxRuntime.jsx(
|
|
4956
4975
|
IconButton,
|
|
4957
4976
|
{
|
|
@@ -4959,7 +4978,7 @@ var SearchInput = ({
|
|
|
4959
4978
|
type: "button",
|
|
4960
4979
|
size: "sm",
|
|
4961
4980
|
"aria-label": t(texts20.reset),
|
|
4962
|
-
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, {}),
|
|
4963
4982
|
onClick: onReset
|
|
4964
4983
|
}
|
|
4965
4984
|
),
|
|
@@ -4987,6 +5006,7 @@ var Select = ({
|
|
|
4987
5006
|
}) => {
|
|
4988
5007
|
const {
|
|
4989
5008
|
variant = "core",
|
|
5009
|
+
size = "md",
|
|
4990
5010
|
children,
|
|
4991
5011
|
positioning,
|
|
4992
5012
|
label,
|
|
@@ -4996,8 +5016,6 @@ var Select = ({
|
|
|
4996
5016
|
css,
|
|
4997
5017
|
...rest
|
|
4998
5018
|
} = props;
|
|
4999
|
-
const recipe = react.useSlotRecipe({ key: "select" });
|
|
5000
|
-
const styles = recipe({ variant });
|
|
5001
5019
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
5002
5020
|
Field3,
|
|
5003
5021
|
{
|
|
@@ -5014,12 +5032,12 @@ var Select = ({
|
|
|
5014
5032
|
ref,
|
|
5015
5033
|
positioning: { sameWidth: true, ...positioning },
|
|
5016
5034
|
variant,
|
|
5017
|
-
|
|
5035
|
+
size,
|
|
5018
5036
|
position: "relative",
|
|
5019
5037
|
children: [
|
|
5020
|
-
/* @__PURE__ */ jsxRuntime.jsx(SelectTrigger, { "data-attachable": true, children: /* @__PURE__ */ jsxRuntime.jsx(SelectValueText, { withPlaceholder: !!label }) }),
|
|
5021
|
-
label && /* @__PURE__ */ jsxRuntime.jsx(SelectLabel, {
|
|
5022
|
-
/* @__PURE__ */ jsxRuntime.jsx(SelectContent, {
|
|
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 })
|
|
5023
5041
|
]
|
|
5024
5042
|
}
|
|
5025
5043
|
)
|
|
@@ -5041,16 +5059,14 @@ var SelectItem = ({
|
|
|
5041
5059
|
...props
|
|
5042
5060
|
}) => {
|
|
5043
5061
|
const { item, children, description, ...rest } = props;
|
|
5044
|
-
const recipe = react.useSlotRecipe({ key: "select" });
|
|
5045
|
-
const styles = recipe();
|
|
5046
5062
|
const selectContext = react.useSelectContext();
|
|
5047
5063
|
const multiple = selectContext.multiple;
|
|
5048
5064
|
const isSelected = selectContext.value.includes(item.value);
|
|
5049
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(react.Select.Item, { item, ...rest, ref,
|
|
5065
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(react.Select.Item, { item, ...rest, ref, children: [
|
|
5050
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, {}) }) }),
|
|
5051
5067
|
/* @__PURE__ */ jsxRuntime.jsxs(react.Box, { width: "100%", children: [
|
|
5052
5068
|
/* @__PURE__ */ jsxRuntime.jsx(react.Select.ItemText, { display: "flex", children }),
|
|
5053
|
-
description && /* @__PURE__ */ jsxRuntime.jsx(react.Box, { "data-part": "item-description",
|
|
5069
|
+
description && /* @__PURE__ */ jsxRuntime.jsx(react.Box, { "data-part": "item-description", children: description })
|
|
5054
5070
|
] }),
|
|
5055
5071
|
!multiple && /* @__PURE__ */ jsxRuntime.jsx(react.Select.ItemIndicator, { children: /* @__PURE__ */ jsxRuntime.jsx(spor_icon_react_star.CheckmarkFill18Icon, {}) })
|
|
5056
5072
|
] });
|
|
@@ -5068,24 +5084,16 @@ var SelectItemGroup = function SelectItemGroup2({
|
|
|
5068
5084
|
};
|
|
5069
5085
|
var SelectTrigger = function SelectTrigger2({
|
|
5070
5086
|
ref,
|
|
5087
|
+
size = "md",
|
|
5071
5088
|
...props
|
|
5072
5089
|
}) {
|
|
5073
5090
|
const { children, clearable, ...rest } = props;
|
|
5074
|
-
|
|
5075
|
-
|
|
5076
|
-
|
|
5077
|
-
|
|
5078
|
-
|
|
5079
|
-
|
|
5080
|
-
{
|
|
5081
|
-
css: styles.indicatorGroup,
|
|
5082
|
-
"data-part": "indicator-group",
|
|
5083
|
-
children: [
|
|
5084
|
-
clearable && /* @__PURE__ */ jsxRuntime.jsx(SelectClearTrigger, {}),
|
|
5085
|
-
/* @__PURE__ */ jsxRuntime.jsx(react.Box, { css: styles.indicator, "data-part": "indicator", children: /* @__PURE__ */ jsxRuntime.jsx(spor_icon_react_star.DropdownDownFill24Icon, {}) })
|
|
5086
|
-
]
|
|
5087
|
-
}
|
|
5088
|
-
)
|
|
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
|
+
] })
|
|
5089
5097
|
] });
|
|
5090
5098
|
};
|
|
5091
5099
|
var SelectClearTrigger = function SelectClearTrigger2({
|
|
@@ -5122,7 +5130,7 @@ var SelectValueText = function SelectValueText2({
|
|
|
5122
5130
|
...rest,
|
|
5123
5131
|
ref,
|
|
5124
5132
|
placeholder,
|
|
5125
|
-
|
|
5133
|
+
"data-with-placeholder": withPlaceholder || void 0,
|
|
5126
5134
|
children: /* @__PURE__ */ jsxRuntime.jsx(react.Select.Context, { children: (select) => {
|
|
5127
5135
|
const items = select.selectedItems;
|
|
5128
5136
|
if (items.length === 0)
|
|
@@ -5130,7 +5138,7 @@ var SelectValueText = function SelectValueText2({
|
|
|
5130
5138
|
if (children)
|
|
5131
5139
|
return children(items);
|
|
5132
5140
|
if (multiple) {
|
|
5133
|
-
return /* @__PURE__ */ jsxRuntime.jsx(react.Flex, { gap: 0.5,
|
|
5141
|
+
return /* @__PURE__ */ jsxRuntime.jsx(react.Flex, { gap: 0.5, children: items.map((item) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
5134
5142
|
Badge,
|
|
5135
5143
|
{
|
|
5136
5144
|
size: "sm",
|
|
@@ -7289,10 +7297,6 @@ var inputRecipe = react.defineRecipe({
|
|
|
7289
7297
|
transitionDuration: "fast",
|
|
7290
7298
|
color: "text",
|
|
7291
7299
|
position: "relative",
|
|
7292
|
-
paddingX: 3,
|
|
7293
|
-
paddingTop: 3,
|
|
7294
|
-
height: 8,
|
|
7295
|
-
fontSize: "mobile.md",
|
|
7296
7300
|
_disabled: {
|
|
7297
7301
|
backgroundColor: "surface.disabled",
|
|
7298
7302
|
outline: "1px solid",
|
|
@@ -7355,10 +7359,25 @@ var inputRecipe = react.defineRecipe({
|
|
|
7355
7359
|
outlineColor: "outline.focus"
|
|
7356
7360
|
}
|
|
7357
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
|
+
}
|
|
7358
7376
|
}
|
|
7359
7377
|
},
|
|
7360
7378
|
defaultVariants: {
|
|
7361
|
-
variant: "core"
|
|
7379
|
+
variant: "core",
|
|
7380
|
+
size: "md"
|
|
7362
7381
|
}
|
|
7363
7382
|
});
|
|
7364
7383
|
var linkRecipe = react.defineRecipe({
|
|
@@ -7932,12 +7951,10 @@ var selectAnatomy = anatomy.createAnatomy("select").parts(
|
|
|
7932
7951
|
"root",
|
|
7933
7952
|
"trigger",
|
|
7934
7953
|
"indicatorGroup",
|
|
7935
|
-
"
|
|
7936
|
-
"selectContent",
|
|
7954
|
+
"content",
|
|
7937
7955
|
"item",
|
|
7938
7956
|
"control",
|
|
7939
7957
|
"itemText",
|
|
7940
|
-
"itemDescription",
|
|
7941
7958
|
"itemGroup",
|
|
7942
7959
|
"itemGroupLabel",
|
|
7943
7960
|
"label",
|
|
@@ -8565,7 +8582,6 @@ var breadcrumbSlotRecipe = react.defineSlotRecipe({
|
|
|
8565
8582
|
},
|
|
8566
8583
|
link: {
|
|
8567
8584
|
cursor: "pointer",
|
|
8568
|
-
padding: 0.5,
|
|
8569
8585
|
borderRadius: "xs"
|
|
8570
8586
|
},
|
|
8571
8587
|
currentLink: {
|
|
@@ -9604,17 +9620,15 @@ var fieldSlotRecipe = react.defineSlotRecipe({
|
|
|
9604
9620
|
},
|
|
9605
9621
|
requiredIndicator: {
|
|
9606
9622
|
marginStart: 1,
|
|
9607
|
-
|
|
9608
|
-
color: "brightRed"
|
|
9623
|
+
color: "outline.error"
|
|
9609
9624
|
},
|
|
9610
9625
|
label: {
|
|
9611
9626
|
display: "flex"
|
|
9612
9627
|
},
|
|
9613
9628
|
helperText: {
|
|
9614
|
-
marginTop: 2,
|
|
9615
9629
|
color: "text.subtle",
|
|
9616
9630
|
lineHeight: "normal",
|
|
9617
|
-
fontSize: "sm"
|
|
9631
|
+
fontSize: ["mobile.sm", "desktop.sm"]
|
|
9618
9632
|
},
|
|
9619
9633
|
errorText: {
|
|
9620
9634
|
borderRadius: "xs",
|
|
@@ -9641,6 +9655,41 @@ var fieldSlotRecipe = react.defineSlotRecipe({
|
|
|
9641
9655
|
pointerEvents: "none"
|
|
9642
9656
|
}
|
|
9643
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"
|
|
9644
9693
|
}
|
|
9645
9694
|
});
|
|
9646
9695
|
var filterChipSlotRecipe = react.defineSlotRecipe({
|
|
@@ -10775,7 +10824,7 @@ var menuSlotRecipe = react.defineSlotRecipe({
|
|
|
10775
10824
|
variant: "core"
|
|
10776
10825
|
}
|
|
10777
10826
|
});
|
|
10778
|
-
var _a5, _b4;
|
|
10827
|
+
var _a5, _b4, _c2, _d2, _e, _f;
|
|
10779
10828
|
var nativeSelectSlotRecipe = react.defineSlotRecipe({
|
|
10780
10829
|
slots: NativeSelectAnatomy.keys(),
|
|
10781
10830
|
className: "spor-nativeSelect",
|
|
@@ -10827,7 +10876,22 @@ var nativeSelectSlotRecipe = react.defineSlotRecipe({
|
|
|
10827
10876
|
...(_b4 = inputRecipe.variants) == null ? void 0 : _b4.variant.floating
|
|
10828
10877
|
}
|
|
10829
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
|
+
}
|
|
10830
10891
|
}
|
|
10892
|
+
},
|
|
10893
|
+
defaultVariants: {
|
|
10894
|
+
size: "md"
|
|
10831
10895
|
}
|
|
10832
10896
|
});
|
|
10833
10897
|
var numericStepperRecipe = react.defineSlotRecipe({
|
|
@@ -11257,14 +11321,9 @@ var selectSlotRecipe = react.defineSlotRecipe({
|
|
|
11257
11321
|
label: {
|
|
11258
11322
|
fontSize: ["mobile.sm", "desktop.sm"],
|
|
11259
11323
|
top: 0,
|
|
11260
|
-
left: 3,
|
|
11261
11324
|
zIndex: 0,
|
|
11262
11325
|
position: "absolute",
|
|
11263
11326
|
color: "text",
|
|
11264
|
-
marginY: 2,
|
|
11265
|
-
_selected: {
|
|
11266
|
-
transform: ["scale(0.825) translateY(-10px)"]
|
|
11267
|
-
},
|
|
11268
11327
|
transitionProperty: "transform",
|
|
11269
11328
|
transitionDuration: "fast",
|
|
11270
11329
|
transformOrigin: "top left",
|
|
@@ -11275,47 +11334,46 @@ var selectSlotRecipe = react.defineSlotRecipe({
|
|
|
11275
11334
|
display: "flex",
|
|
11276
11335
|
appearance: "none",
|
|
11277
11336
|
width: "100%",
|
|
11278
|
-
height: 8,
|
|
11279
11337
|
color: "text",
|
|
11280
|
-
paddingY: 1.5,
|
|
11281
|
-
paddingX: 3,
|
|
11282
11338
|
justifyContent: "space-between",
|
|
11283
11339
|
alignItems: "center",
|
|
11284
|
-
fontSize: "mobile.md",
|
|
11285
11340
|
borderRadius: "sm",
|
|
11286
11341
|
cursor: "pointer",
|
|
11287
11342
|
_open: {
|
|
11288
11343
|
"& + div": {
|
|
11289
11344
|
transform: "rotate(180deg)"
|
|
11290
11345
|
}
|
|
11346
|
+
},
|
|
11347
|
+
_active: {
|
|
11348
|
+
backgroundColor: "surface"
|
|
11291
11349
|
}
|
|
11292
11350
|
},
|
|
11293
11351
|
indicatorGroup: {
|
|
11294
11352
|
display: "flex",
|
|
11295
11353
|
alignItems: "center",
|
|
11296
|
-
gap: "
|
|
11354
|
+
gap: "0.5",
|
|
11297
11355
|
position: "absolute",
|
|
11298
11356
|
right: "0",
|
|
11299
11357
|
top: "0",
|
|
11300
11358
|
bottom: "0",
|
|
11301
11359
|
paddingX: 2,
|
|
11302
|
-
pointerEvents: "none"
|
|
11303
|
-
|
|
11304
|
-
|
|
11305
|
-
|
|
11306
|
-
|
|
11307
|
-
|
|
11308
|
-
|
|
11309
|
-
|
|
11310
|
-
|
|
11311
|
-
|
|
11312
|
-
|
|
11313
|
-
|
|
11314
|
-
|
|
11315
|
-
|
|
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
|
+
}
|
|
11316
11374
|
}
|
|
11317
11375
|
},
|
|
11318
|
-
|
|
11376
|
+
content: {
|
|
11319
11377
|
backgroundColor: "surface",
|
|
11320
11378
|
boxShadow: "sm",
|
|
11321
11379
|
overflowY: "auto",
|
|
@@ -11368,9 +11426,7 @@ var selectSlotRecipe = react.defineSlotRecipe({
|
|
|
11368
11426
|
}
|
|
11369
11427
|
},
|
|
11370
11428
|
_hover: {
|
|
11371
|
-
backgroundColor: "surface.accent.hover"
|
|
11372
|
-
outline: "2px solid core.outline",
|
|
11373
|
-
outlineOffset: "2px"
|
|
11429
|
+
backgroundColor: "surface.accent.hover"
|
|
11374
11430
|
},
|
|
11375
11431
|
_selected: {
|
|
11376
11432
|
backgroundColor: "surface.accent"
|
|
@@ -11378,6 +11434,10 @@ var selectSlotRecipe = react.defineSlotRecipe({
|
|
|
11378
11434
|
_icon: {
|
|
11379
11435
|
width: 3,
|
|
11380
11436
|
height: 3
|
|
11437
|
+
},
|
|
11438
|
+
"& [data-part='item-description']": {
|
|
11439
|
+
fontSize: ["mobile.xs", "desktop.xs"],
|
|
11440
|
+
color: "text.ghost"
|
|
11381
11441
|
}
|
|
11382
11442
|
},
|
|
11383
11443
|
control: {
|
|
@@ -11396,7 +11456,8 @@ var selectSlotRecipe = react.defineSlotRecipe({
|
|
|
11396
11456
|
}
|
|
11397
11457
|
},
|
|
11398
11458
|
itemText: {
|
|
11399
|
-
flex: "1"
|
|
11459
|
+
flex: "1",
|
|
11460
|
+
alignItems: "center"
|
|
11400
11461
|
},
|
|
11401
11462
|
itemGroup: {
|
|
11402
11463
|
_first: { mt: "0" }
|
|
@@ -11404,14 +11465,6 @@ var selectSlotRecipe = react.defineSlotRecipe({
|
|
|
11404
11465
|
itemGroupLabel: {
|
|
11405
11466
|
py: "1",
|
|
11406
11467
|
fontWeight: "medium"
|
|
11407
|
-
},
|
|
11408
|
-
valueText: {},
|
|
11409
|
-
itemDescription: {
|
|
11410
|
-
fontSize: ["mobile.xs", "desktop.xs"],
|
|
11411
|
-
color: "text.ghost",
|
|
11412
|
-
"[aria-selected='true'] &": {
|
|
11413
|
-
color: "text.ghost"
|
|
11414
|
-
}
|
|
11415
11468
|
}
|
|
11416
11469
|
},
|
|
11417
11470
|
variants: {
|
|
@@ -11432,6 +11485,10 @@ var selectSlotRecipe = react.defineSlotRecipe({
|
|
|
11432
11485
|
color: "text.disabled",
|
|
11433
11486
|
backgroundColor: "surface.disabled"
|
|
11434
11487
|
}
|
|
11488
|
+
},
|
|
11489
|
+
content: {
|
|
11490
|
+
outline: "2px solid",
|
|
11491
|
+
outlineColor: "outline.core"
|
|
11435
11492
|
}
|
|
11436
11493
|
},
|
|
11437
11494
|
floating: {
|
|
@@ -11476,7 +11533,68 @@ var selectSlotRecipe = react.defineSlotRecipe({
|
|
|
11476
11533
|
}
|
|
11477
11534
|
}
|
|
11478
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
|
+
}
|
|
11479
11594
|
}
|
|
11595
|
+
},
|
|
11596
|
+
defaultVariants: {
|
|
11597
|
+
size: "md"
|
|
11480
11598
|
}
|
|
11481
11599
|
});
|
|
11482
11600
|
var stepperSlotRecipe = react.defineSlotRecipe({
|