@yahoo/uds-mobile 2.22.0 → 2.23.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.
Files changed (81) hide show
  1. package/dist/bin/automated-config/dist/generated/generatedConfigs.mjs +3127 -452
  2. package/dist/bin/uds-mobile.mjs +7 -7
  3. package/dist/components/Select/Select.cjs +194 -0
  4. package/dist/components/Select/Select.d.cts +47 -0
  5. package/dist/components/Select/Select.d.cts.map +1 -0
  6. package/dist/components/Select/Select.d.ts +47 -0
  7. package/dist/components/Select/Select.d.ts.map +1 -0
  8. package/dist/components/Select/Select.js +194 -0
  9. package/dist/components/Select/Select.js.map +1 -0
  10. package/dist/components/Select/SelectContent.cjs +148 -0
  11. package/dist/components/Select/SelectContent.d.cts +31 -0
  12. package/dist/components/Select/SelectContent.d.cts.map +1 -0
  13. package/dist/components/Select/SelectContent.d.ts +31 -0
  14. package/dist/components/Select/SelectContent.d.ts.map +1 -0
  15. package/dist/components/Select/SelectContent.js +147 -0
  16. package/dist/components/Select/SelectContent.js.map +1 -0
  17. package/dist/components/Select/SelectItem.cjs +138 -0
  18. package/dist/components/Select/SelectItem.d.cts +24 -0
  19. package/dist/components/Select/SelectItem.d.cts.map +1 -0
  20. package/dist/components/Select/SelectItem.d.ts +24 -0
  21. package/dist/components/Select/SelectItem.d.ts.map +1 -0
  22. package/dist/components/Select/SelectItem.js +137 -0
  23. package/dist/components/Select/SelectItem.js.map +1 -0
  24. package/dist/components/Select/SelectTrigger.cjs +140 -0
  25. package/dist/components/Select/SelectTrigger.d.cts +13 -0
  26. package/dist/components/Select/SelectTrigger.d.cts.map +1 -0
  27. package/dist/components/Select/SelectTrigger.d.ts +13 -0
  28. package/dist/components/Select/SelectTrigger.d.ts.map +1 -0
  29. package/dist/components/Select/SelectTrigger.js +139 -0
  30. package/dist/components/Select/SelectTrigger.js.map +1 -0
  31. package/dist/components/Select/index.cjs +8 -0
  32. package/dist/components/Select/index.d.cts +5 -0
  33. package/dist/components/Select/index.d.ts +5 -0
  34. package/dist/components/Select/index.js +5 -0
  35. package/dist/components/Select/selectContext.cjs +22 -0
  36. package/dist/components/Select/selectContext.d.cts +12 -0
  37. package/dist/components/Select/selectContext.d.cts.map +1 -0
  38. package/dist/components/Select/selectContext.d.ts +12 -0
  39. package/dist/components/Select/selectContext.d.ts.map +1 -0
  40. package/dist/components/Select/selectContext.js +19 -0
  41. package/dist/components/Select/selectContext.js.map +1 -0
  42. package/dist/components/Select/selectItemTheme.cjs +39 -0
  43. package/dist/components/Select/selectItemTheme.d.cts +19 -0
  44. package/dist/components/Select/selectItemTheme.d.cts.map +1 -0
  45. package/dist/components/Select/selectItemTheme.d.ts +19 -0
  46. package/dist/components/Select/selectItemTheme.d.ts.map +1 -0
  47. package/dist/components/Select/selectItemTheme.js +39 -0
  48. package/dist/components/Select/selectItemTheme.js.map +1 -0
  49. package/dist/components/Select/types.cjs +1 -0
  50. package/dist/components/Select/types.d.cts +43 -0
  51. package/dist/components/Select/types.d.cts.map +1 -0
  52. package/dist/components/Select/types.d.ts +43 -0
  53. package/dist/components/Select/types.d.ts.map +1 -0
  54. package/dist/components/Select/types.js +1 -0
  55. package/dist/components/internal/Overlay/index.cjs +2 -0
  56. package/dist/components/internal/Overlay/index.d.cts +2 -1
  57. package/dist/components/internal/Overlay/index.d.ts +2 -1
  58. package/dist/components/internal/Overlay/index.js +2 -1
  59. package/dist/components/internal/Overlay/measureTrigger.cjs +35 -0
  60. package/dist/components/internal/Overlay/measureTrigger.d.cts +9 -0
  61. package/dist/components/internal/Overlay/measureTrigger.d.cts.map +1 -0
  62. package/dist/components/internal/Overlay/measureTrigger.d.ts +9 -0
  63. package/dist/components/internal/Overlay/measureTrigger.d.ts.map +1 -0
  64. package/dist/components/internal/Overlay/measureTrigger.js +36 -0
  65. package/dist/components/internal/Overlay/measureTrigger.js.map +1 -0
  66. package/dist/jest/mocks/styles.cjs +47 -1
  67. package/dist/jest/mocks/styles.d.cts +5 -2
  68. package/dist/jest/mocks/styles.d.cts.map +1 -1
  69. package/dist/jest/mocks/styles.d.ts +5 -2
  70. package/dist/jest/mocks/styles.d.ts.map +1 -1
  71. package/dist/jest/mocks/styles.js +45 -2
  72. package/dist/jest/mocks/styles.js.map +1 -1
  73. package/dist/types/dist/index.d.cts +28 -1
  74. package/dist/types/dist/index.d.cts.map +1 -1
  75. package/dist/types/dist/index.d.ts +28 -1
  76. package/dist/types/dist/index.d.ts.map +1 -1
  77. package/generated/styles.cjs +125 -0
  78. package/generated/styles.d.ts +39 -0
  79. package/generated/styles.mjs +125 -0
  80. package/generated/unistyles.d.ts +108 -8
  81. package/package.json +11 -1
@@ -0,0 +1,140 @@
1
+ /*! © 2026 Yahoo, Inc. UDS Mobile v0.0.0-development */
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const require_runtime = require("../../_virtual/_rolldown/runtime.cjs");
4
+ const require_components_IconSlot = require("../IconSlot.cjs");
5
+ const require_components_internal_Overlay_measureTrigger = require("../internal/Overlay/measureTrigger.cjs");
6
+ const require_components_Select_selectContext = require("./selectContext.cjs");
7
+ let react = require("react");
8
+ let react_native = require("react-native");
9
+ let react_jsx_runtime = require("react/jsx-runtime");
10
+ let generated_styles = require("../../../generated/styles");
11
+ let react_native_reanimated = require("react-native-reanimated");
12
+ react_native_reanimated = require_runtime.__toESM(react_native_reanimated);
13
+ //#region src/components/Select/SelectTrigger.tsx
14
+ const SelectTrigger = (0, react.memo)(function SelectTrigger({ startIcon, endIcon }) {
15
+ const { value, open, setOpen, triggerRef, triggerRect, setTriggerRect, getItemLabel, setHighlightedValue, reduceMotion } = require_components_Select_selectContext.useSelectContext();
16
+ const { size, disabled, readOnly, hasError, placeholder, uid, width } = require_components_Select_selectContext.useSelectFieldContext();
17
+ const hasValue = value.length > 0;
18
+ const valueState = hasValue ? "filled" : "empty";
19
+ const isInteractive = !readOnly && !disabled;
20
+ const useAnimatedChevron = endIcon === void 0;
21
+ const displayText = hasValue ? getItemLabel(value) ?? value : placeholder ?? "";
22
+ generated_styles.inputStyles.useVariants({
23
+ size,
24
+ value: valueState,
25
+ pressed: open,
26
+ readonly: readOnly,
27
+ invalid: hasError
28
+ });
29
+ const inputWrapperStyle = (0, react.useMemo)(() => [
30
+ generated_styles.inputStyles.inputWrapper,
31
+ generated_styles.inputStyles.inputWrapperStatic,
32
+ generated_styles.inputStyles.inputWrapperDynamic,
33
+ {
34
+ flexDirection: "row",
35
+ alignItems: "center",
36
+ width,
37
+ alignSelf: "stretch"
38
+ }
39
+ ], [
40
+ generated_styles.inputStyles.inputWrapper,
41
+ generated_styles.inputStyles.inputWrapperDynamic,
42
+ generated_styles.inputStyles.inputWrapperStatic,
43
+ width
44
+ ]);
45
+ const textContainerStyle = (0, react.useMemo)(() => [{
46
+ flex: 1,
47
+ justifyContent: "center"
48
+ }, typeof generated_styles.inputStyles.input.height === "number" ? { minHeight: generated_styles.inputStyles.input.height } : null], [generated_styles.inputStyles.input]);
49
+ const textInputStyle = (0, react.useMemo)(() => [
50
+ {
51
+ fontFamily: generated_styles.inputStyles.inputWrapperStatic.fontFamily,
52
+ fontSize: generated_styles.inputStyles.inputWrapperStatic.fontSize,
53
+ letterSpacing: generated_styles.inputStyles.inputWrapperStatic.letterSpacing,
54
+ lineHeight: generated_styles.inputStyles.inputWrapperStatic.fontSize,
55
+ paddingVertical: 0
56
+ },
57
+ generated_styles.inputStyles.input,
58
+ { height: void 0 },
59
+ !hasValue ? generated_styles.inputStyles.inputPlaceholder : null
60
+ ], [
61
+ hasValue,
62
+ generated_styles.inputStyles.input,
63
+ generated_styles.inputStyles.inputPlaceholder,
64
+ generated_styles.inputStyles.inputWrapperStatic
65
+ ]);
66
+ const chevronProgress = (0, react_native_reanimated.useDerivedValue)(() => (0, react_native_reanimated.withTiming)(open ? 1 : 0, {
67
+ duration: reduceMotion ? 0 : 200,
68
+ easing: react_native_reanimated.Easing.out(react_native_reanimated.Easing.ease)
69
+ }), [open, reduceMotion]);
70
+ const chevronAnimatedStyle = (0, react_native_reanimated.useAnimatedStyle)(() => ({ transform: [{ rotate: `${chevronProgress.value * 180}deg` }] }));
71
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_native.Pressable, {
72
+ ref: (0, react.useCallback)((node) => {
73
+ triggerRef.current = node;
74
+ }, [triggerRef]),
75
+ testID: "select-trigger",
76
+ onPress: (0, react.useCallback)(() => {
77
+ if (!isInteractive) return;
78
+ if (open) {
79
+ setOpen(false);
80
+ setHighlightedValue(null);
81
+ return;
82
+ }
83
+ require_components_internal_Overlay_measureTrigger.measureTrigger(triggerRef.current, triggerRect, setTriggerRect);
84
+ setHighlightedValue(null);
85
+ setOpen(true);
86
+ }, [
87
+ isInteractive,
88
+ open,
89
+ setHighlightedValue,
90
+ setOpen,
91
+ setTriggerRect,
92
+ triggerRect,
93
+ triggerRef
94
+ ]),
95
+ disabled: !isInteractive,
96
+ style: {
97
+ width,
98
+ alignSelf: "stretch"
99
+ },
100
+ accessibilityRole: "button",
101
+ accessibilityLabel: displayText || uid,
102
+ accessibilityState: {
103
+ disabled: !isInteractive,
104
+ expanded: open,
105
+ selected: hasValue
106
+ },
107
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_native.View, {
108
+ style: inputWrapperStyle,
109
+ pointerEvents: "none",
110
+ children: [
111
+ startIcon ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_components_IconSlot.IconSlot, {
112
+ icon: startIcon,
113
+ variant: "outline",
114
+ style: generated_styles.inputStyles.startIcon
115
+ }) : null,
116
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_native.View, {
117
+ style: textContainerStyle,
118
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_native.Text, {
119
+ numberOfLines: 1,
120
+ style: textInputStyle,
121
+ children: displayText
122
+ })
123
+ }),
124
+ useAnimatedChevron || endIcon ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_native_reanimated.default.View, {
125
+ style: useAnimatedChevron ? chevronAnimatedStyle : void 0,
126
+ testID: "select-chevron",
127
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_components_IconSlot.IconSlot, {
128
+ icon: useAnimatedChevron ? "ChevronDown" : endIcon,
129
+ size: "sm",
130
+ variant: "outline",
131
+ style: generated_styles.inputStyles.endIcon
132
+ })
133
+ }) : null
134
+ ]
135
+ })
136
+ });
137
+ });
138
+ SelectTrigger.displayName = "SelectTrigger";
139
+ //#endregion
140
+ exports.SelectTrigger = SelectTrigger;
@@ -0,0 +1,13 @@
1
+
2
+ import { IconSlotType } from "../IconSlot.cjs";
3
+ import * as _$react from "react";
4
+
5
+ //#region src/components/Select/SelectTrigger.d.ts
6
+ interface SelectTriggerProps {
7
+ startIcon?: IconSlotType;
8
+ endIcon?: IconSlotType;
9
+ }
10
+ declare const SelectTrigger: _$react.NamedExoticComponent<SelectTriggerProps>;
11
+ //#endregion
12
+ export { SelectTrigger, type SelectTriggerProps };
13
+ //# sourceMappingURL=SelectTrigger.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SelectTrigger.d.cts","names":[],"sources":["../../../src/components/Select/SelectTrigger.tsx"],"mappings":";;;;;UAgBU,kBAAA;EACR,SAAA,GAAY,YAAA;EACZ,OAAA,GAAU,YAAA;AAAA;AAAA,cAGN,aAAA,EAAa,OAAA,CAAA,oBAAA,CAAA,kBAAA"}
@@ -0,0 +1,13 @@
1
+
2
+ import { IconSlotType } from "../IconSlot.js";
3
+ import * as _$react from "react";
4
+
5
+ //#region src/components/Select/SelectTrigger.d.ts
6
+ interface SelectTriggerProps {
7
+ startIcon?: IconSlotType;
8
+ endIcon?: IconSlotType;
9
+ }
10
+ declare const SelectTrigger: _$react.NamedExoticComponent<SelectTriggerProps>;
11
+ //#endregion
12
+ export { SelectTrigger, type SelectTriggerProps };
13
+ //# sourceMappingURL=SelectTrigger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SelectTrigger.d.ts","names":[],"sources":["../../../src/components/Select/SelectTrigger.tsx"],"mappings":";;;;;UAgBU,kBAAA;EACR,SAAA,GAAY,YAAA;EACZ,OAAA,GAAU,YAAA;AAAA;AAAA,cAGN,aAAA,EAAa,OAAA,CAAA,oBAAA,CAAA,kBAAA"}
@@ -0,0 +1,139 @@
1
+ /*! © 2026 Yahoo, Inc. UDS Mobile v0.0.0-development */
2
+ import { IconSlot } from "../IconSlot.js";
3
+ import { measureTrigger } from "../internal/Overlay/measureTrigger.js";
4
+ import { useSelectContext, useSelectFieldContext } from "./selectContext.js";
5
+ import { memo, useCallback, useMemo } from "react";
6
+ import { Pressable, Text, View } from "react-native";
7
+ import { jsx, jsxs } from "react/jsx-runtime";
8
+ import { inputStyles } from "../../../generated/styles";
9
+ import Animated, { Easing, useAnimatedStyle, useDerivedValue, withTiming } from "react-native-reanimated";
10
+ //#region src/components/Select/SelectTrigger.tsx
11
+ const SelectTrigger = memo(function SelectTrigger({ startIcon, endIcon }) {
12
+ const { value, open, setOpen, triggerRef, triggerRect, setTriggerRect, getItemLabel, setHighlightedValue, reduceMotion } = useSelectContext();
13
+ const { size, disabled, readOnly, hasError, placeholder, uid, width } = useSelectFieldContext();
14
+ const hasValue = value.length > 0;
15
+ const valueState = hasValue ? "filled" : "empty";
16
+ const isInteractive = !readOnly && !disabled;
17
+ const useAnimatedChevron = endIcon === void 0;
18
+ const displayText = hasValue ? getItemLabel(value) ?? value : placeholder ?? "";
19
+ inputStyles.useVariants({
20
+ size,
21
+ value: valueState,
22
+ pressed: open,
23
+ readonly: readOnly,
24
+ invalid: hasError
25
+ });
26
+ const inputWrapperStyle = useMemo(() => [
27
+ inputStyles.inputWrapper,
28
+ inputStyles.inputWrapperStatic,
29
+ inputStyles.inputWrapperDynamic,
30
+ {
31
+ flexDirection: "row",
32
+ alignItems: "center",
33
+ width,
34
+ alignSelf: "stretch"
35
+ }
36
+ ], [
37
+ inputStyles.inputWrapper,
38
+ inputStyles.inputWrapperDynamic,
39
+ inputStyles.inputWrapperStatic,
40
+ width
41
+ ]);
42
+ const textContainerStyle = useMemo(() => [{
43
+ flex: 1,
44
+ justifyContent: "center"
45
+ }, typeof inputStyles.input.height === "number" ? { minHeight: inputStyles.input.height } : null], [inputStyles.input]);
46
+ const textInputStyle = useMemo(() => [
47
+ {
48
+ fontFamily: inputStyles.inputWrapperStatic.fontFamily,
49
+ fontSize: inputStyles.inputWrapperStatic.fontSize,
50
+ letterSpacing: inputStyles.inputWrapperStatic.letterSpacing,
51
+ lineHeight: inputStyles.inputWrapperStatic.fontSize,
52
+ paddingVertical: 0
53
+ },
54
+ inputStyles.input,
55
+ { height: void 0 },
56
+ !hasValue ? inputStyles.inputPlaceholder : null
57
+ ], [
58
+ hasValue,
59
+ inputStyles.input,
60
+ inputStyles.inputPlaceholder,
61
+ inputStyles.inputWrapperStatic
62
+ ]);
63
+ const chevronProgress = useDerivedValue(() => withTiming(open ? 1 : 0, {
64
+ duration: reduceMotion ? 0 : 200,
65
+ easing: Easing.out(Easing.ease)
66
+ }), [open, reduceMotion]);
67
+ const chevronAnimatedStyle = useAnimatedStyle(() => ({ transform: [{ rotate: `${chevronProgress.value * 180}deg` }] }));
68
+ return /* @__PURE__ */ jsx(Pressable, {
69
+ ref: useCallback((node) => {
70
+ triggerRef.current = node;
71
+ }, [triggerRef]),
72
+ testID: "select-trigger",
73
+ onPress: useCallback(() => {
74
+ if (!isInteractive) return;
75
+ if (open) {
76
+ setOpen(false);
77
+ setHighlightedValue(null);
78
+ return;
79
+ }
80
+ measureTrigger(triggerRef.current, triggerRect, setTriggerRect);
81
+ setHighlightedValue(null);
82
+ setOpen(true);
83
+ }, [
84
+ isInteractive,
85
+ open,
86
+ setHighlightedValue,
87
+ setOpen,
88
+ setTriggerRect,
89
+ triggerRect,
90
+ triggerRef
91
+ ]),
92
+ disabled: !isInteractive,
93
+ style: {
94
+ width,
95
+ alignSelf: "stretch"
96
+ },
97
+ accessibilityRole: "button",
98
+ accessibilityLabel: displayText || uid,
99
+ accessibilityState: {
100
+ disabled: !isInteractive,
101
+ expanded: open,
102
+ selected: hasValue
103
+ },
104
+ children: /* @__PURE__ */ jsxs(View, {
105
+ style: inputWrapperStyle,
106
+ pointerEvents: "none",
107
+ children: [
108
+ startIcon ? /* @__PURE__ */ jsx(IconSlot, {
109
+ icon: startIcon,
110
+ variant: "outline",
111
+ style: inputStyles.startIcon
112
+ }) : null,
113
+ /* @__PURE__ */ jsx(View, {
114
+ style: textContainerStyle,
115
+ children: /* @__PURE__ */ jsx(Text, {
116
+ numberOfLines: 1,
117
+ style: textInputStyle,
118
+ children: displayText
119
+ })
120
+ }),
121
+ useAnimatedChevron || endIcon ? /* @__PURE__ */ jsx(Animated.View, {
122
+ style: useAnimatedChevron ? chevronAnimatedStyle : void 0,
123
+ testID: "select-chevron",
124
+ children: /* @__PURE__ */ jsx(IconSlot, {
125
+ icon: useAnimatedChevron ? "ChevronDown" : endIcon,
126
+ size: "sm",
127
+ variant: "outline",
128
+ style: inputStyles.endIcon
129
+ })
130
+ }) : null
131
+ ]
132
+ })
133
+ });
134
+ });
135
+ SelectTrigger.displayName = "SelectTrigger";
136
+ //#endregion
137
+ export { SelectTrigger };
138
+
139
+ //# sourceMappingURL=SelectTrigger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SelectTrigger.js","names":["RNPressable","RNView","RNText"],"sources":["../../../src/components/Select/SelectTrigger.tsx"],"sourcesContent":["import { memo, useCallback, useMemo } from 'react';\nimport type { View } from 'react-native';\nimport { Pressable as RNPressable, Text as RNText, View as RNView } from 'react-native';\nimport Animated, {\n Easing,\n useAnimatedStyle,\n useDerivedValue,\n withTiming,\n} from 'react-native-reanimated';\n\nimport { inputStyles } from '../../../generated/styles';\nimport type { IconSlotType } from '../IconSlot';\nimport { IconSlot } from '../IconSlot';\nimport { measureTrigger } from '../internal/Overlay';\nimport { useSelectContext, useSelectFieldContext } from './selectContext';\n\ninterface SelectTriggerProps {\n startIcon?: IconSlotType;\n endIcon?: IconSlotType;\n}\n\nconst SelectTrigger = memo(function SelectTrigger({ startIcon, endIcon }: SelectTriggerProps) {\n const {\n value,\n open,\n setOpen,\n triggerRef,\n triggerRect,\n setTriggerRect,\n getItemLabel,\n setHighlightedValue,\n reduceMotion,\n } = useSelectContext();\n const { size, disabled, readOnly, hasError, placeholder, uid, width } = useSelectFieldContext();\n\n const hasValue = value.length > 0;\n const valueState = hasValue ? 'filled' : 'empty';\n const isInteractive = !readOnly && !disabled;\n const useAnimatedChevron = endIcon === undefined;\n const displayText = hasValue ? (getItemLabel(value) ?? value) : (placeholder ?? '');\n\n inputStyles.useVariants({\n size,\n value: valueState,\n pressed: open,\n readonly: readOnly,\n invalid: hasError,\n });\n\n const inputWrapperStyle = useMemo(\n () => [\n inputStyles.inputWrapper,\n inputStyles.inputWrapperStatic,\n inputStyles.inputWrapperDynamic,\n {\n flexDirection: 'row' as const,\n alignItems: 'center' as const,\n width,\n alignSelf: 'stretch' as const,\n },\n ],\n [\n inputStyles.inputWrapper,\n inputStyles.inputWrapperDynamic,\n inputStyles.inputWrapperStatic,\n width,\n ],\n );\n\n const textContainerStyle = useMemo(\n () => [\n {\n flex: 1,\n justifyContent: 'center' as const,\n },\n typeof inputStyles.input.height === 'number' ? { minHeight: inputStyles.input.height } : null,\n ],\n [inputStyles.input],\n );\n\n const textInputStyle = useMemo(\n () => [\n {\n fontFamily: inputStyles.inputWrapperStatic.fontFamily,\n fontSize: inputStyles.inputWrapperStatic.fontSize,\n letterSpacing: inputStyles.inputWrapperStatic.letterSpacing,\n // Match TextInput vertical centering: wrapper lineHeight is for layout, not single-line text.\n lineHeight: inputStyles.inputWrapperStatic.fontSize,\n paddingVertical: 0,\n },\n inputStyles.input,\n { height: undefined },\n !hasValue ? inputStyles.inputPlaceholder : null,\n ],\n [hasValue, inputStyles.input, inputStyles.inputPlaceholder, inputStyles.inputWrapperStatic],\n );\n\n const chevronProgress = useDerivedValue(\n () =>\n withTiming(open ? 1 : 0, {\n duration: reduceMotion ? 0 : 200,\n easing: Easing.out(Easing.ease),\n }),\n [open, reduceMotion],\n );\n\n const chevronAnimatedStyle = useAnimatedStyle(() => ({\n transform: [{ rotate: `${chevronProgress.value * 180}deg` }],\n }));\n\n const handleRef = useCallback(\n (node: View | null) => {\n triggerRef.current = node;\n },\n [triggerRef],\n );\n\n const handlePress = useCallback(() => {\n if (!isInteractive) {\n return;\n }\n\n if (open) {\n setOpen(false);\n setHighlightedValue(null);\n return;\n }\n\n measureTrigger(triggerRef.current, triggerRect, setTriggerRect);\n setHighlightedValue(null);\n setOpen(true);\n }, [isInteractive, open, setHighlightedValue, setOpen, setTriggerRect, triggerRect, triggerRef]);\n\n return (\n <RNPressable\n ref={handleRef}\n testID=\"select-trigger\"\n onPress={handlePress}\n disabled={!isInteractive}\n style={{ width, alignSelf: 'stretch' }}\n accessibilityRole=\"button\"\n accessibilityLabel={displayText || uid}\n accessibilityState={{\n disabled: !isInteractive,\n expanded: open,\n selected: hasValue,\n }}\n >\n <RNView style={inputWrapperStyle} pointerEvents=\"none\">\n {startIcon ? (\n <IconSlot icon={startIcon} variant=\"outline\" style={inputStyles.startIcon} />\n ) : null}\n\n <RNView style={textContainerStyle}>\n <RNText numberOfLines={1} style={textInputStyle}>\n {displayText}\n </RNText>\n </RNView>\n\n {useAnimatedChevron || endIcon ? (\n <Animated.View\n style={useAnimatedChevron ? chevronAnimatedStyle : undefined}\n testID=\"select-chevron\"\n >\n <IconSlot\n icon={useAnimatedChevron ? 'ChevronDown' : endIcon!}\n size=\"sm\"\n variant=\"outline\"\n style={inputStyles.endIcon}\n />\n </Animated.View>\n ) : null}\n </RNView>\n </RNPressable>\n );\n});\n\nSelectTrigger.displayName = 'SelectTrigger';\n\nexport { SelectTrigger, type SelectTriggerProps };\n"],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /*! © 2026 Yahoo, Inc. UDS Mobile v0.0.0-development */
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const require_components_Select_Select = require("./Select.cjs");
4
+ const require_components_Select_SelectContent = require("./SelectContent.cjs");
5
+ const require_components_Select_SelectItem = require("./SelectItem.cjs");
6
+ exports.Select = require_components_Select_Select.Select;
7
+ exports.SelectContent = require_components_Select_SelectContent.SelectContent;
8
+ exports.SelectItem = require_components_Select_SelectItem.SelectItem;
@@ -0,0 +1,5 @@
1
+
2
+ import { Select, SelectProps } from "./Select.cjs";
3
+ import { SelectContent, SelectContentProps } from "./SelectContent.cjs";
4
+ import { SelectItem, SelectItemProps } from "./SelectItem.cjs";
5
+ export { Select, SelectContent, type SelectContentProps, SelectItem, type SelectItemProps, type SelectProps };
@@ -0,0 +1,5 @@
1
+
2
+ import { Select, SelectProps } from "./Select.js";
3
+ import { SelectContent, SelectContentProps } from "./SelectContent.js";
4
+ import { SelectItem, SelectItemProps } from "./SelectItem.js";
5
+ export { Select, SelectContent, type SelectContentProps, SelectItem, type SelectItemProps, type SelectProps };
@@ -0,0 +1,5 @@
1
+ /*! © 2026 Yahoo, Inc. UDS Mobile v0.0.0-development */
2
+ import { Select } from "./Select.js";
3
+ import { SelectContent } from "./SelectContent.js";
4
+ import { SelectItem } from "./SelectItem.js";
5
+ export { Select, SelectContent, SelectItem };
@@ -0,0 +1,22 @@
1
+ /*! © 2026 Yahoo, Inc. UDS Mobile v0.0.0-development */
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ require("../../_virtual/_rolldown/runtime.cjs");
4
+ let react = require("react");
5
+ //#region src/components/Select/selectContext.tsx
6
+ const SelectContext = (0, react.createContext)(null);
7
+ const SelectFieldContext = (0, react.createContext)(null);
8
+ function useSelectContext() {
9
+ const context = (0, react.useContext)(SelectContext);
10
+ if (!context) throw new Error("Select compound components must be used within Select");
11
+ return context;
12
+ }
13
+ function useSelectFieldContext() {
14
+ const context = (0, react.useContext)(SelectFieldContext);
15
+ if (!context) throw new Error("Select field components must be used within Select");
16
+ return context;
17
+ }
18
+ //#endregion
19
+ exports.SelectContext = SelectContext;
20
+ exports.SelectFieldContext = SelectFieldContext;
21
+ exports.useSelectContext = useSelectContext;
22
+ exports.useSelectFieldContext = useSelectFieldContext;
@@ -0,0 +1,12 @@
1
+
2
+ import { SelectContextValue, SelectFieldContextValue } from "./types.cjs";
3
+ import * as _$react from "react";
4
+
5
+ //#region src/components/Select/selectContext.d.ts
6
+ declare const SelectContext: _$react.Context<SelectContextValue | null>;
7
+ declare const SelectFieldContext: _$react.Context<SelectFieldContextValue | null>;
8
+ declare function useSelectContext(): SelectContextValue;
9
+ declare function useSelectFieldContext(): SelectFieldContextValue;
10
+ //#endregion
11
+ export { SelectContext, SelectFieldContext, useSelectContext, useSelectFieldContext };
12
+ //# sourceMappingURL=selectContext.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selectContext.d.cts","names":[],"sources":["../../../src/components/Select/selectContext.tsx"],"mappings":";;;;;cAIa,aAAA,EAAa,OAAA,CAAA,OAAA,CAAA,kBAAA;AAAA,cACb,kBAAA,EAAkB,OAAA,CAAA,OAAA,CAAA,uBAAA;AAAA,iBAEf,gBAAA,CAAA,GAAoB,kBAAA;AAAA,iBASpB,qBAAA,CAAA,GAAyB,uBAAA"}
@@ -0,0 +1,12 @@
1
+
2
+ import { SelectContextValue, SelectFieldContextValue } from "./types.js";
3
+ import * as _$react from "react";
4
+
5
+ //#region src/components/Select/selectContext.d.ts
6
+ declare const SelectContext: _$react.Context<SelectContextValue | null>;
7
+ declare const SelectFieldContext: _$react.Context<SelectFieldContextValue | null>;
8
+ declare function useSelectContext(): SelectContextValue;
9
+ declare function useSelectFieldContext(): SelectFieldContextValue;
10
+ //#endregion
11
+ export { SelectContext, SelectFieldContext, useSelectContext, useSelectFieldContext };
12
+ //# sourceMappingURL=selectContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selectContext.d.ts","names":[],"sources":["../../../src/components/Select/selectContext.tsx"],"mappings":";;;;;cAIa,aAAA,EAAa,OAAA,CAAA,OAAA,CAAA,kBAAA;AAAA,cACb,kBAAA,EAAkB,OAAA,CAAA,OAAA,CAAA,uBAAA;AAAA,iBAEf,gBAAA,CAAA,GAAoB,kBAAA;AAAA,iBASpB,qBAAA,CAAA,GAAyB,uBAAA"}
@@ -0,0 +1,19 @@
1
+ /*! © 2026 Yahoo, Inc. UDS Mobile v0.0.0-development */
2
+ import { createContext, useContext } from "react";
3
+ //#region src/components/Select/selectContext.tsx
4
+ const SelectContext = createContext(null);
5
+ const SelectFieldContext = createContext(null);
6
+ function useSelectContext() {
7
+ const context = useContext(SelectContext);
8
+ if (!context) throw new Error("Select compound components must be used within Select");
9
+ return context;
10
+ }
11
+ function useSelectFieldContext() {
12
+ const context = useContext(SelectFieldContext);
13
+ if (!context) throw new Error("Select field components must be used within Select");
14
+ return context;
15
+ }
16
+ //#endregion
17
+ export { SelectContext, SelectFieldContext, useSelectContext, useSelectFieldContext };
18
+
19
+ //# sourceMappingURL=selectContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selectContext.js","names":[],"sources":["../../../src/components/Select/selectContext.tsx"],"sourcesContent":["import { createContext, useContext } from 'react';\n\nimport type { SelectContextValue, SelectFieldContextValue } from './types';\n\nexport const SelectContext = createContext<SelectContextValue | null>(null);\nexport const SelectFieldContext = createContext<SelectFieldContextValue | null>(null);\n\nexport function useSelectContext(): SelectContextValue {\n const context = useContext(SelectContext);\n if (!context) {\n throw new Error('Select compound components must be used within Select');\n }\n\n return context;\n}\n\nexport function useSelectFieldContext(): SelectFieldContextValue {\n const context = useContext(SelectFieldContext);\n if (!context) {\n throw new Error('Select field components must be used within Select');\n }\n\n return context;\n}\n"],"mappings":";;;AAIA,MAAa,gBAAgB,cAAyC,KAAK;AAC3E,MAAa,qBAAqB,cAA8C,KAAK;AAErF,SAAgB,mBAAuC;CACrD,MAAM,UAAU,WAAW,cAAc;CACzC,IAAI,CAAC,SACH,MAAM,IAAI,MAAM,wDAAwD;CAG1E,OAAO;;AAGT,SAAgB,wBAAiD;CAC/D,MAAM,UAAU,WAAW,mBAAmB;CAC9C,IAAI,CAAC,SACH,MAAM,IAAI,MAAM,qDAAqD;CAGvE,OAAO"}
@@ -0,0 +1,39 @@
1
+ /*! © 2026 Yahoo, Inc. UDS Mobile v0.0.0-development */
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ //#region src/components/Select/selectItemTheme.ts
4
+ function getSelectItemLayerPath(layer, active, state) {
5
+ return `selectItem/item/variant/default/active/${active}/${layer}/${state}`;
6
+ }
7
+ function getSelectItemSizeLayerPath(layer) {
8
+ return `selectItem/size/default/${layer}/rest`;
9
+ }
10
+ function mapInteractionToMobileState(state) {
11
+ if (state === "pressed" || state === "focused") return "pressed";
12
+ return "rest";
13
+ }
14
+ function getSelectItemLayerStyle(theme, layer, active, state) {
15
+ const style = theme.components[getSelectItemLayerPath(layer, active, state)];
16
+ return style && typeof style === "object" ? style : {};
17
+ }
18
+ function getSelectItemSizeLayerStyle(theme, layer) {
19
+ const style = theme.components[getSelectItemSizeLayerPath(layer)];
20
+ return style && typeof style === "object" ? style : {};
21
+ }
22
+ function resolveSelectItemInteractionState({ isPressed, isHighlighted }) {
23
+ if (isPressed) return "pressed";
24
+ if (isHighlighted) return "focused";
25
+ return "rest";
26
+ }
27
+ function getMergedSelectItemLayerStyle(theme, layer, interaction, isSelected) {
28
+ if (layer === "endIcon" && !isSelected) return {};
29
+ const active = isSelected ? "on" : "off";
30
+ const mobileState = mapInteractionToMobileState(interaction);
31
+ return {
32
+ ...layer === "root" ? getSelectItemSizeLayerStyle(theme, "root") : {},
33
+ ...layer === "text" ? getSelectItemSizeLayerStyle(theme, "text") : {},
34
+ ...getSelectItemLayerStyle(theme, layer, active, mobileState)
35
+ };
36
+ }
37
+ //#endregion
38
+ exports.getMergedSelectItemLayerStyle = getMergedSelectItemLayerStyle;
39
+ exports.resolveSelectItemInteractionState = resolveSelectItemInteractionState;
@@ -0,0 +1,19 @@
1
+
2
+ import { SelectItemInteractionState, SelectItemLayer } from "./types.cjs";
3
+ import { TextStyle, ViewStyle } from "react-native";
4
+
5
+ //#region src/components/Select/selectItemTheme.d.ts
6
+ type SelectItemTheme = {
7
+ components: Record<string, any>;
8
+ };
9
+ declare function resolveSelectItemInteractionState({
10
+ isPressed,
11
+ isHighlighted
12
+ }: {
13
+ isPressed: boolean;
14
+ isHighlighted: boolean;
15
+ }): SelectItemInteractionState;
16
+ declare function getMergedSelectItemLayerStyle(theme: SelectItemTheme, layer: SelectItemLayer, interaction: SelectItemInteractionState, isSelected: boolean): ViewStyle | TextStyle;
17
+ //#endregion
18
+ export { getMergedSelectItemLayerStyle, resolveSelectItemInteractionState };
19
+ //# sourceMappingURL=selectItemTheme.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selectItemTheme.d.cts","names":[],"sources":["../../../src/components/Select/selectItemTheme.ts"],"mappings":";;;;;KAIK,eAAA;EAEH,UAAA,EAAY,MAAA;AAAA;AAAA,iBAyCL,iCAAA,CAAA;EACP,SAAA;EACA;AAAA;EAEA,SAAA;EACA,aAAA;AAAA,IACE,0BAAA;AAAA,iBAYK,6BAAA,CACP,KAAA,EAAO,eAAA,EACP,KAAA,EAAO,eAAA,EACP,WAAA,EAAa,0BAAA,EACb,UAAA,YACC,SAAA,GAAY,SAAA"}
@@ -0,0 +1,19 @@
1
+
2
+ import { SelectItemInteractionState, SelectItemLayer } from "./types.js";
3
+ import { TextStyle, ViewStyle } from "react-native";
4
+
5
+ //#region src/components/Select/selectItemTheme.d.ts
6
+ type SelectItemTheme = {
7
+ components: Record<string, any>;
8
+ };
9
+ declare function resolveSelectItemInteractionState({
10
+ isPressed,
11
+ isHighlighted
12
+ }: {
13
+ isPressed: boolean;
14
+ isHighlighted: boolean;
15
+ }): SelectItemInteractionState;
16
+ declare function getMergedSelectItemLayerStyle(theme: SelectItemTheme, layer: SelectItemLayer, interaction: SelectItemInteractionState, isSelected: boolean): ViewStyle | TextStyle;
17
+ //#endregion
18
+ export { getMergedSelectItemLayerStyle, resolveSelectItemInteractionState };
19
+ //# sourceMappingURL=selectItemTheme.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selectItemTheme.d.ts","names":[],"sources":["../../../src/components/Select/selectItemTheme.ts"],"mappings":";;;;;KAIK,eAAA;EAEH,UAAA,EAAY,MAAA;AAAA;AAAA,iBAyCL,iCAAA,CAAA;EACP,SAAA;EACA;AAAA;EAEA,SAAA;EACA,aAAA;AAAA,IACE,0BAAA;AAAA,iBAYK,6BAAA,CACP,KAAA,EAAO,eAAA,EACP,KAAA,EAAO,eAAA,EACP,WAAA,EAAa,0BAAA,EACb,UAAA,YACC,SAAA,GAAY,SAAA"}
@@ -0,0 +1,39 @@
1
+ /*! © 2026 Yahoo, Inc. UDS Mobile v0.0.0-development */
2
+ //#region src/components/Select/selectItemTheme.ts
3
+ function getSelectItemLayerPath(layer, active, state) {
4
+ return `selectItem/item/variant/default/active/${active}/${layer}/${state}`;
5
+ }
6
+ function getSelectItemSizeLayerPath(layer) {
7
+ return `selectItem/size/default/${layer}/rest`;
8
+ }
9
+ function mapInteractionToMobileState(state) {
10
+ if (state === "pressed" || state === "focused") return "pressed";
11
+ return "rest";
12
+ }
13
+ function getSelectItemLayerStyle(theme, layer, active, state) {
14
+ const style = theme.components[getSelectItemLayerPath(layer, active, state)];
15
+ return style && typeof style === "object" ? style : {};
16
+ }
17
+ function getSelectItemSizeLayerStyle(theme, layer) {
18
+ const style = theme.components[getSelectItemSizeLayerPath(layer)];
19
+ return style && typeof style === "object" ? style : {};
20
+ }
21
+ function resolveSelectItemInteractionState({ isPressed, isHighlighted }) {
22
+ if (isPressed) return "pressed";
23
+ if (isHighlighted) return "focused";
24
+ return "rest";
25
+ }
26
+ function getMergedSelectItemLayerStyle(theme, layer, interaction, isSelected) {
27
+ if (layer === "endIcon" && !isSelected) return {};
28
+ const active = isSelected ? "on" : "off";
29
+ const mobileState = mapInteractionToMobileState(interaction);
30
+ return {
31
+ ...layer === "root" ? getSelectItemSizeLayerStyle(theme, "root") : {},
32
+ ...layer === "text" ? getSelectItemSizeLayerStyle(theme, "text") : {},
33
+ ...getSelectItemLayerStyle(theme, layer, active, mobileState)
34
+ };
35
+ }
36
+ //#endregion
37
+ export { getMergedSelectItemLayerStyle, resolveSelectItemInteractionState };
38
+
39
+ //# sourceMappingURL=selectItemTheme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selectItemTheme.js","names":[],"sources":["../../../src/components/Select/selectItemTheme.ts"],"sourcesContent":["import type { TextStyle, ViewStyle } from 'react-native';\n\nimport type { SelectItemInteractionState, SelectItemLayer } from './types';\n\ntype SelectItemTheme = {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n components: Record<string, any>;\n};\n\nfunction getSelectItemLayerPath(\n layer: SelectItemLayer,\n active: 'on' | 'off',\n state: 'rest' | 'pressed',\n): string {\n return `selectItem/item/variant/default/active/${active}/${layer}/${state}`;\n}\n\nfunction getSelectItemSizeLayerPath(layer: 'root' | 'text'): string {\n return `selectItem/size/default/${layer}/rest`;\n}\n\nfunction mapInteractionToMobileState(state: SelectItemInteractionState): 'rest' | 'pressed' {\n if (state === 'pressed' || state === 'focused') {\n return 'pressed';\n }\n\n return 'rest';\n}\n\nfunction getSelectItemLayerStyle(\n theme: SelectItemTheme,\n layer: SelectItemLayer,\n active: 'on' | 'off',\n state: 'rest' | 'pressed',\n): ViewStyle | TextStyle {\n const style = theme.components[getSelectItemLayerPath(layer, active, state)];\n return style && typeof style === 'object' ? style : {};\n}\n\nfunction getSelectItemSizeLayerStyle(\n theme: SelectItemTheme,\n layer: 'root' | 'text',\n): ViewStyle | TextStyle {\n const style = theme.components[getSelectItemSizeLayerPath(layer)];\n return style && typeof style === 'object' ? style : {};\n}\n\nfunction resolveSelectItemInteractionState({\n isPressed,\n isHighlighted,\n}: {\n isPressed: boolean;\n isHighlighted: boolean;\n}): SelectItemInteractionState {\n if (isPressed) {\n return 'pressed';\n }\n\n if (isHighlighted) {\n return 'focused';\n }\n\n return 'rest';\n}\n\nfunction getMergedSelectItemLayerStyle(\n theme: SelectItemTheme,\n layer: SelectItemLayer,\n interaction: SelectItemInteractionState,\n isSelected: boolean,\n): ViewStyle | TextStyle {\n if (layer === 'endIcon' && !isSelected) {\n return {};\n }\n\n const active = isSelected ? 'on' : 'off';\n const mobileState = mapInteractionToMobileState(interaction);\n\n return {\n ...(layer === 'root' ? (getSelectItemSizeLayerStyle(theme, 'root') as object) : {}),\n ...(layer === 'text' ? (getSelectItemSizeLayerStyle(theme, 'text') as object) : {}),\n ...(getSelectItemLayerStyle(theme, layer, active, mobileState) as object),\n } as ViewStyle | TextStyle;\n}\n\nexport { getMergedSelectItemLayerStyle, resolveSelectItemInteractionState };\n"],"mappings":";;AASA,SAAS,uBACP,OACA,QACA,OACQ;CACR,OAAO,0CAA0C,OAAO,GAAG,MAAM,GAAG;;AAGtE,SAAS,2BAA2B,OAAgC;CAClE,OAAO,2BAA2B,MAAM;;AAG1C,SAAS,4BAA4B,OAAuD;CAC1F,IAAI,UAAU,aAAa,UAAU,WACnC,OAAO;CAGT,OAAO;;AAGT,SAAS,wBACP,OACA,OACA,QACA,OACuB;CACvB,MAAM,QAAQ,MAAM,WAAW,uBAAuB,OAAO,QAAQ,MAAM;CAC3E,OAAO,SAAS,OAAO,UAAU,WAAW,QAAQ,EAAE;;AAGxD,SAAS,4BACP,OACA,OACuB;CACvB,MAAM,QAAQ,MAAM,WAAW,2BAA2B,MAAM;CAChE,OAAO,SAAS,OAAO,UAAU,WAAW,QAAQ,EAAE;;AAGxD,SAAS,kCAAkC,EACzC,WACA,iBAI6B;CAC7B,IAAI,WACF,OAAO;CAGT,IAAI,eACF,OAAO;CAGT,OAAO;;AAGT,SAAS,8BACP,OACA,OACA,aACA,YACuB;CACvB,IAAI,UAAU,aAAa,CAAC,YAC1B,OAAO,EAAE;CAGX,MAAM,SAAS,aAAa,OAAO;CACnC,MAAM,cAAc,4BAA4B,YAAY;CAE5D,OAAO;EACL,GAAI,UAAU,SAAU,4BAA4B,OAAO,OAAO,GAAc,EAAE;EAClF,GAAI,UAAU,SAAU,4BAA4B,OAAO,OAAO,GAAc,EAAE;EAClF,GAAI,wBAAwB,OAAO,OAAO,QAAQ,YAAY;EAC/D"}
@@ -0,0 +1 @@
1
+ /*! © 2026 Yahoo, Inc. UDS Mobile v0.0.0-development */
@@ -0,0 +1,43 @@
1
+
2
+ import { InputSize } from "../../types/dist/index.cjs";
3
+ import { AnchoredRect } from "../internal/Overlay/types.cjs";
4
+ import { RefObject } from "react";
5
+ import { View } from "react-native";
6
+
7
+ //#region src/components/Select/types.d.ts
8
+ type SelectContentSize = 'default';
9
+ type SelectContentVariant = 'default';
10
+ type SelectItemSize = 'default';
11
+ type SelectItemVariant = 'default';
12
+ interface SelectFieldContextValue {
13
+ size: InputSize;
14
+ disabled?: boolean;
15
+ readOnly?: boolean;
16
+ required?: boolean;
17
+ hasError?: boolean;
18
+ width: number | `${number}%` | '100%';
19
+ reduceMotion?: boolean;
20
+ placeholder?: string;
21
+ uid: string;
22
+ }
23
+ interface SelectContextValue {
24
+ value: string;
25
+ setValue: (value: string) => void;
26
+ open: boolean;
27
+ setOpen: (open: boolean) => void;
28
+ triggerRef: RefObject<View | null>;
29
+ triggerRect: AnchoredRect | null;
30
+ setTriggerRect: (rect: AnchoredRect | null) => void;
31
+ registerItem: (value: string, label: string) => void;
32
+ unregisterItem: (value: string) => void;
33
+ getItemLabel: (value: string) => string | undefined;
34
+ highlightedValue: string | null;
35
+ setHighlightedValue: (value: string | null) => void;
36
+ field: SelectFieldContextValue;
37
+ reduceMotion: boolean;
38
+ }
39
+ type SelectItemInteractionState = 'rest' | 'pressed' | 'focused';
40
+ type SelectItemLayer = 'root' | 'text' | 'endIcon';
41
+ //#endregion
42
+ export { SelectContentSize, SelectContentVariant, SelectContextValue, SelectFieldContextValue, SelectItemInteractionState, SelectItemLayer, SelectItemSize, SelectItemVariant };
43
+ //# sourceMappingURL=types.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.cts","names":[],"sources":["../../../src/components/Select/types.ts"],"mappings":";;;;;;;KAMY,iBAAA;AAAA,KACA,oBAAA;AAAA,KACA,cAAA;AAAA,KACA,iBAAA;AAAA,UAEK,uBAAA;EACf,IAAA,EAAM,SAAA;EACN,QAAA;EACA,QAAA;EACA,QAAA;EACA,QAAA;EACA,KAAA;EACA,YAAA;EACA,WAAA;EACA,GAAA;AAAA;AAAA,UAGe,kBAAA;EACf,KAAA;EACA,QAAA,GAAW,KAAA;EACX,IAAA;EACA,OAAA,GAAU,IAAA;EACV,UAAA,EAAY,SAAA,CAAU,IAAA;EACtB,WAAA,EAAa,YAAA;EACb,cAAA,GAAiB,IAAA,EAAM,YAAA;EACvB,YAAA,GAAe,KAAA,UAAe,KAAA;EAC9B,cAAA,GAAiB,KAAA;EACjB,YAAA,GAAe,KAAA;EACf,gBAAA;EACA,mBAAA,GAAsB,KAAA;EACtB,KAAA,EAAO,uBAAA;EACP,YAAA;AAAA;AAAA,KAGU,0BAAA;AAAA,KAEA,eAAA"}