@xaui/native 0.9.1-alpha.4 → 0.9.1-alpha.40

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 (203) hide show
  1. package/dist/chunk-2EGR4LWD.js +145 -0
  2. package/dist/chunk-2NRZKJG7.js +531 -0
  3. package/dist/chunk-2PMXMKS5.js +67 -0
  4. package/dist/chunk-2XPG2243.js +586 -0
  5. package/dist/chunk-36PRYGAM.js +13 -0
  6. package/dist/chunk-3E7CDKFO.cjs +696 -0
  7. package/dist/chunk-3GFRSZYR.js +54 -0
  8. package/dist/chunk-423RQBOX.js +21 -0
  9. package/dist/chunk-4CUZZWFW.js +92 -0
  10. package/dist/chunk-4GTAZM2C.js +174 -0
  11. package/dist/chunk-4KFKWBN5.cjs +89 -0
  12. package/dist/{chunk-3QBT3Q65.cjs → chunk-57SJ4LJF.cjs} +7 -2
  13. package/dist/chunk-5R26NM4M.cjs +402 -0
  14. package/dist/chunk-5VKYNBNA.js +607 -0
  15. package/dist/chunk-64MXEVT3.js +66 -0
  16. package/dist/chunk-6DOLGZVV.cjs +147 -0
  17. package/dist/chunk-6L2TS2R3.cjs +92 -0
  18. package/dist/chunk-6UEZJRVI.js +669 -0
  19. package/dist/chunk-734MFAX4.js +27 -0
  20. package/dist/chunk-73RKQC5X.js +104 -0
  21. package/dist/chunk-7DPL3ZDS.cjs +21 -0
  22. package/dist/chunk-7EIHHOHP.cjs +42 -0
  23. package/dist/chunk-7GHM4GKL.cjs +119 -0
  24. package/dist/chunk-7YF5NAHQ.cjs +74 -0
  25. package/dist/{chunk-X2K2FX3W.js → chunk-A3EGFI6T.js} +6 -1
  26. package/dist/chunk-ABAGZTXZ.cjs +736 -0
  27. package/dist/{chunk-AW63PTQ4.cjs → chunk-ACAPTWE3.cjs} +85 -81
  28. package/dist/chunk-AMCSSOJT.cjs +104 -0
  29. package/dist/chunk-BA2DBSAN.js +102 -0
  30. package/dist/chunk-BRRXFOBY.js +431 -0
  31. package/dist/chunk-C5YLPCFC.cjs +293 -0
  32. package/dist/chunk-DA3OKXHV.cjs +700 -0
  33. package/dist/chunk-DD4276RF.js +366 -0
  34. package/dist/chunk-DG2I4PJG.js +701 -0
  35. package/dist/chunk-DHGLGSH6.js +661 -0
  36. package/dist/chunk-DIBUQ46Y.js +346 -0
  37. package/dist/chunk-EGLLDKN6.js +9 -0
  38. package/dist/chunk-EJQCQPET.cjs +9 -0
  39. package/dist/chunk-EKS3W46M.cjs +66 -0
  40. package/dist/chunk-EZEYMLO3.js +402 -0
  41. package/dist/chunk-F6CQ6CBI.cjs +112 -0
  42. package/dist/chunk-F6W3JQ7K.js +42 -0
  43. package/dist/chunk-FHUYHV6J.js +89 -0
  44. package/dist/chunk-FNEUOBCV.cjs +174 -0
  45. package/dist/chunk-G7P3ERYF.cjs +478 -0
  46. package/dist/chunk-GA6PBWNT.js +147 -0
  47. package/dist/chunk-GFUZ3MUT.cjs +455 -0
  48. package/dist/chunk-GGW43Q37.cjs +1 -0
  49. package/dist/chunk-GTR5X65M.cjs +27 -0
  50. package/dist/chunk-H4E4HDEP.cjs +13 -0
  51. package/dist/chunk-H7DS4IO7.js +198 -0
  52. package/dist/chunk-HDVVZG4S.cjs +198 -0
  53. package/dist/chunk-IKJVLJKT.js +151 -0
  54. package/dist/chunk-J3MB4PI5.cjs +531 -0
  55. package/dist/chunk-K72UDPVN.js +119 -0
  56. package/dist/chunk-KCMYU7WF.js +86 -0
  57. package/dist/chunk-LRN3RNDO.js +940 -0
  58. package/dist/chunk-LTX6TB5I.js +124 -0
  59. package/dist/chunk-LUPCPLND.cjs +145 -0
  60. package/dist/chunk-M63GFNKV.js +194 -0
  61. package/dist/chunk-N3KTZMPG.js +293 -0
  62. package/dist/chunk-NCTOTTVW.js +13 -0
  63. package/dist/chunk-NWGLP6JX.cjs +410 -0
  64. package/dist/chunk-R73XQK7X.cjs +314 -0
  65. package/dist/chunk-RU7JCMWC.cjs +881 -0
  66. package/dist/chunk-SNIHUKDA.cjs +184 -0
  67. package/dist/chunk-T5FV5F7A.cjs +607 -0
  68. package/dist/chunk-TDTUAIFF.cjs +153 -0
  69. package/dist/chunk-TJ74XVZN.cjs +431 -0
  70. package/dist/chunk-TK44VBIE.cjs +194 -0
  71. package/dist/chunk-UAWBAD4E.cjs +346 -0
  72. package/dist/chunk-UFTCTTKK.js +381 -0
  73. package/dist/chunk-WDDXU3OH.cjs +67 -0
  74. package/dist/chunk-WFEMJCXO.cjs +13 -0
  75. package/dist/chunk-WHJTBTYM.js +0 -0
  76. package/dist/{chunk-2KXQATVL.js → chunk-WKCQ6VGW.js} +59 -55
  77. package/dist/chunk-XFPQFCEK.js +455 -0
  78. package/dist/chunk-XSQPVDFH.cjs +60 -0
  79. package/dist/chunk-XTC2SLFT.js +153 -0
  80. package/dist/chunk-XV735BSA.cjs +366 -0
  81. package/dist/chunk-XWNG2U4K.cjs +124 -0
  82. package/dist/chunk-YGYYJ3LQ.js +314 -0
  83. package/dist/chunk-YVHT2UVW.js +74 -0
  84. package/dist/chunk-ZFOOJK37.cjs +86 -0
  85. package/dist/close-button.type-BUYuoSt2.d.ts +36 -0
  86. package/dist/close-button.type-CHsgZ3wO.d.cts +36 -0
  87. package/dist/components/accordion/index.cjs +35 -0
  88. package/dist/components/accordion/index.d.cts +299 -0
  89. package/dist/components/accordion/index.d.ts +299 -0
  90. package/dist/components/accordion/index.js +35 -0
  91. package/dist/components/alert/index.cjs +20 -0
  92. package/dist/components/alert/index.d.cts +169 -0
  93. package/dist/components/alert/index.d.ts +169 -0
  94. package/dist/components/alert/index.js +20 -0
  95. package/dist/components/avatar/index.cjs +16 -0
  96. package/dist/components/avatar/index.d.cts +131 -0
  97. package/dist/components/avatar/index.d.ts +131 -0
  98. package/dist/components/avatar/index.js +16 -0
  99. package/dist/components/badge/index.cjs +15 -0
  100. package/dist/components/badge/index.d.cts +157 -0
  101. package/dist/components/badge/index.d.ts +157 -0
  102. package/dist/components/badge/index.js +15 -0
  103. package/dist/components/button/index.cjs +22 -0
  104. package/dist/components/button/index.d.cts +613 -0
  105. package/dist/components/button/index.d.ts +613 -0
  106. package/dist/components/button/index.js +22 -0
  107. package/dist/components/card/index.cjs +22 -0
  108. package/dist/components/card/index.d.cts +620 -0
  109. package/dist/components/card/index.d.ts +620 -0
  110. package/dist/components/card/index.js +22 -0
  111. package/dist/components/checkbox/index.cjs +26 -0
  112. package/dist/components/checkbox/index.d.cts +1136 -0
  113. package/dist/components/checkbox/index.d.ts +1136 -0
  114. package/dist/components/checkbox/index.js +26 -0
  115. package/dist/components/chip/index.cjs +20 -0
  116. package/dist/components/chip/index.d.cts +608 -0
  117. package/dist/components/chip/index.d.ts +608 -0
  118. package/dist/components/chip/index.js +20 -0
  119. package/dist/components/divider/index.cjs +13 -0
  120. package/dist/components/divider/index.d.cts +117 -0
  121. package/dist/components/divider/index.d.ts +117 -0
  122. package/dist/components/divider/index.js +13 -0
  123. package/dist/components/field-group/index.cjs +27 -0
  124. package/dist/components/field-group/index.d.cts +270 -0
  125. package/dist/components/field-group/index.d.ts +270 -0
  126. package/dist/components/field-group/index.js +27 -0
  127. package/dist/components/input-otp/index.cjs +29 -0
  128. package/dist/components/input-otp/index.d.cts +325 -0
  129. package/dist/components/input-otp/index.d.ts +325 -0
  130. package/dist/components/input-otp/index.js +29 -0
  131. package/dist/components/menu/index.cjs +49 -0
  132. package/dist/components/menu/index.d.cts +351 -0
  133. package/dist/components/menu/index.d.ts +351 -0
  134. package/dist/components/menu/index.js +49 -0
  135. package/dist/components/popover/index.cjs +38 -0
  136. package/dist/components/popover/index.d.cts +254 -0
  137. package/dist/components/popover/index.d.ts +254 -0
  138. package/dist/components/popover/index.js +38 -0
  139. package/dist/components/radio/index.cjs +26 -0
  140. package/dist/components/radio/index.d.cts +1102 -0
  141. package/dist/components/radio/index.d.ts +1102 -0
  142. package/dist/components/radio/index.js +26 -0
  143. package/dist/components/select/index.cjs +50 -0
  144. package/dist/components/select/index.d.cts +498 -0
  145. package/dist/components/select/index.d.ts +498 -0
  146. package/dist/components/select/index.js +50 -0
  147. package/dist/components/skeleton/index.cjs +11 -0
  148. package/dist/components/skeleton/index.d.cts +111 -0
  149. package/dist/components/skeleton/index.d.ts +111 -0
  150. package/dist/components/skeleton/index.js +11 -0
  151. package/dist/components/spinner/index.cjs +17 -0
  152. package/dist/components/spinner/index.d.cts +104 -0
  153. package/dist/components/spinner/index.d.ts +104 -0
  154. package/dist/components/spinner/index.js +17 -0
  155. package/dist/components/switch/index.cjs +27 -0
  156. package/dist/components/switch/index.d.cts +1154 -0
  157. package/dist/components/switch/index.d.ts +1154 -0
  158. package/dist/components/switch/index.js +27 -0
  159. package/dist/components/text-area/index.cjs +14 -0
  160. package/dist/components/text-area/index.d.cts +73 -0
  161. package/dist/components/text-area/index.d.ts +73 -0
  162. package/dist/components/text-area/index.js +14 -0
  163. package/dist/components/text-field/index.cjs +25 -0
  164. package/dist/components/text-field/index.d.cts +205 -0
  165. package/dist/components/text-field/index.d.ts +205 -0
  166. package/dist/components/text-field/index.js +25 -0
  167. package/dist/components/typography/index.cjs +15 -0
  168. package/dist/components/typography/index.d.cts +116 -0
  169. package/dist/components/typography/index.d.ts +116 -0
  170. package/dist/components/typography/index.js +15 -0
  171. package/dist/components/view/index.cjs +17 -0
  172. package/dist/components/view/index.d.cts +152 -0
  173. package/dist/components/view/index.d.ts +152 -0
  174. package/dist/components/view/index.js +17 -0
  175. package/dist/create-recipe-BdVd2ffi.d.ts +114 -0
  176. package/dist/create-recipe-dC7wMfnj.d.cts +114 -0
  177. package/dist/icon.type-Kml72iSz.d.ts +73 -0
  178. package/dist/icon.type-d_i9ma-i.d.cts +73 -0
  179. package/dist/index.cjs +400 -4
  180. package/dist/index.d.cts +118 -4
  181. package/dist/index.d.ts +118 -4
  182. package/dist/index.js +423 -27
  183. package/dist/placement-DHa0Rrh1.d.cts +38 -0
  184. package/dist/placement-DHa0Rrh1.d.ts +38 -0
  185. package/dist/pressable-feedback.type-BA2C9sSz.d.cts +127 -0
  186. package/dist/pressable-feedback.type-Bs4dQlGj.d.ts +127 -0
  187. package/dist/style-props.type-CfnoGEP7.d.cts +31 -0
  188. package/dist/style-props.type-CfnoGEP7.d.ts +31 -0
  189. package/dist/system/index.cjs +73 -4
  190. package/dist/system/index.d.cts +379 -193
  191. package/dist/system/index.d.ts +379 -193
  192. package/dist/system/index.js +87 -18
  193. package/dist/text-field.type-0l73acce.d.ts +167 -0
  194. package/dist/text-field.type-DBh06DU5.d.cts +167 -0
  195. package/dist/theme/index.cjs +5 -3
  196. package/dist/theme/index.d.cts +55 -24
  197. package/dist/theme/index.d.ts +55 -24
  198. package/dist/theme/index.js +4 -2
  199. package/dist/{theme.type-C9bFJKFm.d.cts → theme.type-C2gNHpEx.d.cts} +1 -1
  200. package/dist/{theme.type-C9bFJKFm.d.ts → theme.type-C2gNHpEx.d.ts} +1 -1
  201. package/package.json +254 -18
  202. package/dist/chunk-ECDWSSHJ.js +0 -688
  203. package/dist/chunk-IYFGO523.cjs +0 -688
@@ -0,0 +1,940 @@
1
+ import { useAnchoredPosition } from "./chunk-2EGR4LWD.js";
2
+ import { Portal } from "./chunk-2PMXMKS5.js";
3
+ import { INDICATOR_ROTATION, INDICATOR_SPRING, anchoredEntering, anchoredExiting, overlayEntering, overlayExiting } from "./chunk-64MXEVT3.js";
4
+ import { useMergedRef } from "./chunk-NCTOTTVW.js";
5
+ import { ChevronDownIcon, Icon, IconContext } from "./chunk-FHUYHV6J.js";
6
+ import { useControllableState } from "./chunk-F6W3JQ7K.js";
7
+ import { PressableFeedback } from "./chunk-6UEZJRVI.js";
8
+ import { usePressState } from "./chunk-423RQBOX.js";
9
+ import { createRecipe, radiusAxis } from "./chunk-4GTAZM2C.js";
10
+ import { useXAUITheme } from "./chunk-A3EGFI6T.js";
11
+ import { childrenToString, createSlotContext } from "./chunk-K72UDPVN.js";
12
+ import { useStyleProps } from "./chunk-M63GFNKV.js";
13
+
14
+ // src/components/select/select-content.tsx
15
+ import { forwardRef as forwardRef3 } from "react";
16
+ import { ScrollView } from "react-native";
17
+ import Animated from "react-native-reanimated";
18
+
19
+ // src/components/select/select-item.tsx
20
+ import { forwardRef as forwardRef2, useCallback, useEffect, useMemo } from "react";
21
+
22
+ // src/components/select/select-item-label.tsx
23
+ import { forwardRef } from "react";
24
+ import { Text } from "react-native";
25
+
26
+ // src/components/select/select.context.ts
27
+ var [SelectProvider, useSelect] = createSlotContext("Select");
28
+ var [SelectItemProvider, useSelectItem] = createSlotContext("Select.Item");
29
+
30
+ // src/components/select/select-item-label.tsx
31
+ import { jsx } from "react/jsx-runtime";
32
+ var SelectItemLabel = forwardRef(function SelectItemLabel2({
33
+ children,
34
+ numberOfLines = 1,
35
+ style,
36
+ ...props
37
+ }, ref) {
38
+ const {
39
+ itemLabelStyle
40
+ } = useSelect();
41
+ const [styleProps, rest] = useStyleProps(props);
42
+ return /* @__PURE__ */jsx(Text, {
43
+ ref,
44
+ numberOfLines,
45
+ ...rest,
46
+ style: [itemLabelStyle, styleProps, style],
47
+ children
48
+ });
49
+ });
50
+ SelectItemLabel.displayName = "XAUI.Select.ItemLabel";
51
+
52
+ // src/components/select/select-item.tsx
53
+ import { Fragment, jsx as jsx2 } from "react/jsx-runtime";
54
+ var SelectItem = forwardRef2(function SelectItem2({
55
+ value,
56
+ label,
57
+ children,
58
+ isDisabled = false,
59
+ asChild = false,
60
+ accessibilityRole = "menuitem",
61
+ accessibilityState,
62
+ style,
63
+ onPress,
64
+ onPressIn,
65
+ onPressOut,
66
+ ...props
67
+ }, ref) {
68
+ const {
69
+ itemStyle,
70
+ itemPressedStyle,
71
+ value: selected,
72
+ select,
73
+ registerLabel
74
+ } = useSelect();
75
+ const [styleProps, rest] = useStyleProps(props);
76
+ const [isPressed, press] = usePressState({
77
+ onPressIn,
78
+ onPressOut
79
+ });
80
+ const isSelected = selected === value;
81
+ const text = typeof children === "function" ? null : childrenToString(children);
82
+ const registered = label ?? text ?? void 0;
83
+ useEffect(() => {
84
+ if (registered !== void 0) registerLabel(value, registered);
85
+ }, [registerLabel, value, registered]);
86
+ const handlePress = useCallback(event => {
87
+ onPress?.(event);
88
+ select(value, registered);
89
+ }, [onPress, select, value, registered]);
90
+ const context = useMemo(() => ({
91
+ isSelected,
92
+ isPressed,
93
+ isDisabled
94
+ }), [isSelected, isPressed, isDisabled]);
95
+ return /* @__PURE__ */jsx2(SelectItemProvider, {
96
+ value: context,
97
+ children: /* @__PURE__ */jsx2(PressableFeedback, {
98
+ ref,
99
+ isPressed,
100
+ isDisabled,
101
+ asChild,
102
+ accessibilityRole,
103
+ accessibilityState: {
104
+ disabled: isDisabled,
105
+ selected: isSelected,
106
+ ...accessibilityState
107
+ },
108
+ ...rest,
109
+ style: [itemStyle, isPressed && itemPressedStyle, styleProps, typeof style === "function" ? style({
110
+ pressed: isPressed
111
+ }) : style],
112
+ onPress: handlePress,
113
+ onPressIn: press.onPressIn,
114
+ onPressOut: press.onPressOut,
115
+ children: typeof children === "function" ? children(context) : /* @__PURE__ */jsx2(Fragment, {
116
+ children: text !== null ? /* @__PURE__ */jsx2(SelectItemLabel, {
117
+ children: text
118
+ }) : children
119
+ })
120
+ })
121
+ });
122
+ });
123
+ SelectItem.displayName = "XAUI.Select.Item";
124
+
125
+ // src/components/select/select.utils.ts
126
+ import { Children, isValidElement } from "react";
127
+ function collectItemLabels(children, isItem) {
128
+ const found = [];
129
+ const walk = node => {
130
+ Children.forEach(node, child => {
131
+ if (!isValidElement(child)) return;
132
+ const props = child.props;
133
+ if (isItem(child.type) && typeof props.value === "string") {
134
+ const label = props.label ?? childrenToString(props.children);
135
+ if (label !== null && label !== void 0) found.push([props.value, label]);
136
+ return;
137
+ }
138
+ walk(props.children);
139
+ });
140
+ };
141
+ walk(children);
142
+ return found;
143
+ }
144
+
145
+ // src/components/select/select-content.tsx
146
+ import { useEffect as useEffect2 } from "react";
147
+ import { jsx as jsx3 } from "react/jsx-runtime";
148
+ var DEFAULT_OFFSET = 8;
149
+ var DEFAULT_INSETS = {
150
+ top: 12,
151
+ bottom: 12,
152
+ start: 12,
153
+ end: 12
154
+ };
155
+ var isSelectItem = type => type === SelectItem;
156
+ var SelectContent = forwardRef3(function SelectContent2({
157
+ children,
158
+ placement = "bottom",
159
+ align = "center",
160
+ width = "trigger",
161
+ offset = DEFAULT_OFFSET,
162
+ alignOffset = 0,
163
+ avoidCollisions = true,
164
+ insets,
165
+ style,
166
+ onLayout,
167
+ ...props
168
+ }, ref) {
169
+ const context = useSelect();
170
+ const {
171
+ contentStyle,
172
+ isOpen,
173
+ anchor,
174
+ registerLabel
175
+ } = context;
176
+ const [styleProps, rest] = useStyleProps(props);
177
+ const {
178
+ position,
179
+ onContentLayout,
180
+ measuringStyle
181
+ } = useAnchoredPosition({
182
+ anchor,
183
+ isOpen,
184
+ placement,
185
+ align,
186
+ width,
187
+ offset,
188
+ alignOffset,
189
+ avoidCollisions,
190
+ insets: {
191
+ ...DEFAULT_INSETS,
192
+ ...insets
193
+ },
194
+ onLayout
195
+ });
196
+ useEffect2(() => {
197
+ for (const [value, label] of collectItemLabels(children, isSelectItem)) {
198
+ registerLabel(value, label);
199
+ }
200
+ }, [children, registerLabel]);
201
+ if (!isOpen || anchor === null) return null;
202
+ return /* @__PURE__ */jsx3(Portal, {
203
+ children: /* @__PURE__ */jsx3(SelectProvider, {
204
+ value: context,
205
+ children: /* @__PURE__ */jsx3(Animated.View, {
206
+ ref,
207
+ entering: position ? anchoredEntering(position.placement) : void 0,
208
+ exiting: position ? anchoredExiting(position.placement) : void 0,
209
+ onLayout: onContentLayout,
210
+ ...rest,
211
+ style: [contentStyle, position === null ? measuringStyle : {
212
+ top: position.top,
213
+ start: position.start,
214
+ width: position.width,
215
+ maxHeight: position.maxHeight
216
+ }, styleProps, style],
217
+ children: /* @__PURE__ */jsx3(ScrollView, {
218
+ bounces: false,
219
+ keyboardShouldPersistTaps: "handled",
220
+ showsVerticalScrollIndicator: false,
221
+ children
222
+ })
223
+ }, position?.placement ?? "measuring")
224
+ })
225
+ });
226
+ });
227
+ SelectContent.displayName = "XAUI.Select.Content";
228
+
229
+ // src/components/select/select-indicator.tsx
230
+ import { useEffect as useEffect3 } from "react";
231
+ import Animated2, { interpolate, useAnimatedStyle, useSharedValue, withSpring } from "react-native-reanimated";
232
+ import { jsx as jsx4 } from "react/jsx-runtime";
233
+ const _worklet_16740975826468_init_data = {
234
+ code: "function chunkLRN3RNDOJs1(){const{interpolate,progress,INDICATOR_ROTATION}=this.__closure;return{transform:[{rotate:interpolate(progress.get(),[0,1],[INDICATOR_ROTATION[0],INDICATOR_ROTATION[1]])+\"deg\"}]};}",
235
+ location: "/home/runner/work/xaui/xaui/packages/native/dist/chunk-LRN3RNDO.js",
236
+ sourceMap: "{\"version\":3,\"names\":[\"chunkLRN3RNDOJs1\",\"interpolate\",\"progress\",\"INDICATOR_ROTATION\",\"__closure\",\"transform\",\"rotate\",\"get\"],\"sources\":[\"/home/runner/work/xaui/xaui/packages/native/dist/chunk-LRN3RNDO.js\"],\"mappings\":\"AAgRoC,SAAAA,iBAAA,QAAAC,WAAA,CAAAC,QAAA,CAAAC,kBAAA,OAAAC,SAAA,OAAO,CACvCC,SAAS,CAAE,CACT,CACEC,MAAM,CAAKL,WAAW,CAACC,QAAQ,CAACK,GAAG,CAAC,CAAC,CAAE,CAAC,CAAC,CAAE,CAAC,CAAC,CAAE,CAACJ,kBAAkB,CAAC,CAAC,CAAC,CAAEA,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,MAChG,CAAC,CAEL,CAAC\",\"ignoreList\":[]}"
237
+ };
238
+ function SelectIndicator({
239
+ as = ChevronDownIcon,
240
+ ...props
241
+ }) {
242
+ const {
243
+ indicatorStyle,
244
+ isOpen
245
+ } = useSelect();
246
+ const progress = useSharedValue(isOpen ? 1 : 0);
247
+ useEffect3(() => {
248
+ progress.set(withSpring(isOpen ? 1 : 0, INDICATOR_SPRING));
249
+ }, [isOpen, progress]);
250
+ const rotation = useAnimatedStyle(function chunkLRN3RNDOJs1Factory({
251
+ _worklet_16740975826468_init_data,
252
+ interpolate,
253
+ progress,
254
+ INDICATOR_ROTATION
255
+ }) {
256
+ const _e = [new global.Error(), -4, -27];
257
+ const chunkLRN3RNDOJs1 = () => ({
258
+ transform: [{
259
+ rotate: `${interpolate(progress.get(), [0, 1], [INDICATOR_ROTATION[0], INDICATOR_ROTATION[1]])}deg`
260
+ }]
261
+ });
262
+ chunkLRN3RNDOJs1.__closure = {
263
+ interpolate,
264
+ progress,
265
+ INDICATOR_ROTATION
266
+ };
267
+ chunkLRN3RNDOJs1.__workletHash = 16740975826468;
268
+ chunkLRN3RNDOJs1.__pluginVersion = "0.7.4";
269
+ chunkLRN3RNDOJs1.__initData = _worklet_16740975826468_init_data;
270
+ chunkLRN3RNDOJs1.__stackDetails = _e;
271
+ return chunkLRN3RNDOJs1;
272
+ }({
273
+ _worklet_16740975826468_init_data,
274
+ interpolate,
275
+ progress,
276
+ INDICATOR_ROTATION
277
+ }));
278
+ return /* @__PURE__ */jsx4(Animated2.View, {
279
+ style: [indicatorStyle, rotation],
280
+ children: /* @__PURE__ */jsx4(Icon, {
281
+ as,
282
+ ...props
283
+ })
284
+ });
285
+ }
286
+ SelectIndicator.displayName = "XAUI.Select.Indicator";
287
+
288
+ // src/components/select/select-item-description.tsx
289
+ import { forwardRef as forwardRef4 } from "react";
290
+ import { Text as Text2 } from "react-native";
291
+ import { jsx as jsx5 } from "react/jsx-runtime";
292
+ var SelectItemDescription = forwardRef4(function SelectItemDescription2({
293
+ children,
294
+ style,
295
+ ...props
296
+ }, ref) {
297
+ const {
298
+ itemDescriptionStyle
299
+ } = useSelect();
300
+ const [styleProps, rest] = useStyleProps(props);
301
+ return /* @__PURE__ */jsx5(Text2, {
302
+ ref,
303
+ ...rest,
304
+ style: [itemDescriptionStyle, styleProps, style],
305
+ children
306
+ });
307
+ });
308
+ SelectItemDescription.displayName = "XAUI.Select.ItemDescription";
309
+
310
+ // src/components/select/select-item-indicator.tsx
311
+ import { View } from "react-native";
312
+
313
+ // src/components/select/check-icon.tsx
314
+ import { Path, Svg } from "react-native-svg";
315
+ import { jsx as jsx6 } from "react/jsx-runtime";
316
+ function CheckIcon({
317
+ size = 20,
318
+ color = "currentColor"
319
+ }) {
320
+ return /* @__PURE__ */jsx6(Svg, {
321
+ width: size,
322
+ height: size,
323
+ viewBox: "0 0 24 24",
324
+ fill: "none",
325
+ children: /* @__PURE__ */jsx6(Path, {
326
+ d: "m20 6-11 11-5-5",
327
+ stroke: color,
328
+ strokeWidth: 2,
329
+ strokeLinecap: "round",
330
+ strokeLinejoin: "round"
331
+ })
332
+ });
333
+ }
334
+ CheckIcon.displayName = "XAUI.Select.CheckIcon";
335
+
336
+ // src/components/select/select-item-indicator.tsx
337
+ import { jsx as jsx7 } from "react/jsx-runtime";
338
+ function SelectItemIndicator({
339
+ as = CheckIcon,
340
+ color,
341
+ ...props
342
+ }) {
343
+ const {
344
+ itemIndicatorStyle,
345
+ checkColor
346
+ } = useSelect();
347
+ const {
348
+ isSelected
349
+ } = useSelectItem();
350
+ return /* @__PURE__ */jsx7(View, {
351
+ style: itemIndicatorStyle,
352
+ children: isSelected ? /* @__PURE__ */jsx7(Icon, {
353
+ as,
354
+ color: color ?? checkColor,
355
+ ...props
356
+ }) : null
357
+ });
358
+ }
359
+ SelectItemIndicator.displayName = "XAUI.Select.ItemIndicator";
360
+
361
+ // src/components/select/select-label.tsx
362
+ import { forwardRef as forwardRef5 } from "react";
363
+ import { Text as Text3 } from "react-native";
364
+ import { jsx as jsx8 } from "react/jsx-runtime";
365
+ var SelectLabel = forwardRef5(function SelectLabel2({
366
+ children,
367
+ accessibilityRole = "header",
368
+ style,
369
+ ...props
370
+ }, ref) {
371
+ const {
372
+ labelStyle
373
+ } = useSelect();
374
+ const [styleProps, rest] = useStyleProps(props);
375
+ return /* @__PURE__ */jsx8(Text3, {
376
+ ref,
377
+ accessibilityRole,
378
+ ...rest,
379
+ style: [labelStyle, styleProps, style],
380
+ children
381
+ });
382
+ });
383
+ SelectLabel.displayName = "XAUI.Select.Label";
384
+
385
+ // src/components/select/select-overlay.tsx
386
+ import { forwardRef as forwardRef6 } from "react";
387
+ import { Pressable } from "react-native";
388
+ import Animated3 from "react-native-reanimated";
389
+ import { jsx as jsx9 } from "react/jsx-runtime";
390
+ var AnimatedPressable = Animated3.createAnimatedComponent(Pressable);
391
+ var SelectOverlay = forwardRef6(function SelectOverlay2({
392
+ children,
393
+ isDismissable = true,
394
+ style,
395
+ ...props
396
+ }, ref) {
397
+ const context = useSelect();
398
+ const {
399
+ overlayStyle,
400
+ isOpen,
401
+ close
402
+ } = context;
403
+ const [styleProps, rest] = useStyleProps(props);
404
+ if (!isOpen) return null;
405
+ return /* @__PURE__ */jsx9(Portal, {
406
+ children: /* @__PURE__ */jsx9(SelectProvider, {
407
+ value: context,
408
+ children: /* @__PURE__ */jsx9(AnimatedPressable, {
409
+ ref,
410
+ entering: overlayEntering,
411
+ exiting: overlayExiting,
412
+ accessibilityRole: "none",
413
+ importantForAccessibility: "no",
414
+ onPress: isDismissable ? close : void 0,
415
+ ...rest,
416
+ style: [overlayStyle, styleProps, style],
417
+ children
418
+ })
419
+ })
420
+ });
421
+ });
422
+ SelectOverlay.displayName = "XAUI.Select.Overlay";
423
+
424
+ // src/components/select/select-trigger.tsx
425
+ import { forwardRef as forwardRef7, useCallback as useCallback2, useEffect as useEffect4, useRef } from "react";
426
+ import { jsx as jsx10 } from "react/jsx-runtime";
427
+ var SelectTrigger = forwardRef7(function SelectTrigger2({
428
+ children,
429
+ asChild = false,
430
+ accessibilityRole = "button",
431
+ accessibilityState,
432
+ style,
433
+ onLayout,
434
+ onPressIn,
435
+ onPressOut,
436
+ onPress,
437
+ ...props
438
+ }, ref) {
439
+ const {
440
+ triggerStyle,
441
+ triggerPressedStyle,
442
+ glyph,
443
+ isOpen,
444
+ isDisabled,
445
+ isInvalid,
446
+ toggle,
447
+ setAnchor
448
+ } = useSelect();
449
+ const [styleProps, rest] = useStyleProps(props);
450
+ const [isPressed, press] = usePressState({
451
+ onPressIn,
452
+ onPressOut
453
+ });
454
+ const node = useRef(null);
455
+ const refs = useMergedRef(node, ref);
456
+ const measure = useCallback2(() => {
457
+ node.current?.measureInWindow((x, y, width, height) => {
458
+ setAnchor({
459
+ x,
460
+ y,
461
+ width,
462
+ height
463
+ });
464
+ });
465
+ }, [setAnchor]);
466
+ const handleLayout = useCallback2(event => {
467
+ onLayout?.(event);
468
+ measure();
469
+ }, [measure, onLayout]);
470
+ useEffect4(() => {
471
+ if (isOpen) measure();
472
+ }, [isOpen, measure]);
473
+ const handlePress = useCallback2(event => {
474
+ onPress?.(event);
475
+ measure();
476
+ toggle();
477
+ }, [measure, onPress, toggle]);
478
+ return /* @__PURE__ */jsx10(IconContext.Provider, {
479
+ value: glyph,
480
+ children: /* @__PURE__ */jsx10(PressableFeedback, {
481
+ ref: refs,
482
+ isPressed,
483
+ isDisabled,
484
+ asChild,
485
+ accessibilityRole,
486
+ accessibilityState: {
487
+ disabled: isDisabled,
488
+ expanded: isOpen,
489
+ ...accessibilityState
490
+ },
491
+ "aria-invalid": isInvalid || void 0,
492
+ ...rest,
493
+ onLayout: handleLayout,
494
+ style: [triggerStyle, isPressed && triggerPressedStyle, styleProps, typeof style === "function" ? style({
495
+ pressed: isPressed
496
+ }) : style],
497
+ onPress: handlePress,
498
+ onPressIn: press.onPressIn,
499
+ onPressOut: press.onPressOut,
500
+ children
501
+ })
502
+ });
503
+ });
504
+ SelectTrigger.displayName = "XAUI.Select.Trigger";
505
+
506
+ // src/components/select/select-value.tsx
507
+ import { forwardRef as forwardRef8 } from "react";
508
+ import { Text as Text4 } from "react-native";
509
+ import { jsx as jsx11 } from "react/jsx-runtime";
510
+ var SelectValue = forwardRef8(function SelectValue2({
511
+ placeholder,
512
+ children,
513
+ numberOfLines = 1,
514
+ style,
515
+ ...props
516
+ }, ref) {
517
+ const {
518
+ valueStyle,
519
+ placeholderStyle,
520
+ value,
521
+ labelFor
522
+ } = useSelect();
523
+ const [styleProps, rest] = useStyleProps(props);
524
+ const label = children ?? (value !== void 0 ? labelFor(value) : void 0);
525
+ const isEmpty = label === void 0 || label === "";
526
+ return /* @__PURE__ */jsx11(Text4, {
527
+ ref,
528
+ numberOfLines,
529
+ ...rest,
530
+ style: [valueStyle, isEmpty && placeholderStyle, styleProps, style],
531
+ children: isEmpty ? placeholder : label
532
+ });
533
+ });
534
+ SelectValue.displayName = "XAUI.Select.Value";
535
+
536
+ // src/components/select/select.tsx
537
+ import { useCallback as useCallback4, useMemo as useMemo3, useState as useState2 } from "react";
538
+ import { StyleSheet } from "react-native";
539
+
540
+ // src/components/select/select.hook.ts
541
+ import { useCallback as useCallback3, useMemo as useMemo2, useRef as useRef2, useState } from "react";
542
+ function useLabelRegistry() {
543
+ const labels = useRef2(/* @__PURE__ */new Map());
544
+ const [, force] = useState(0);
545
+ const registerLabel = useCallback3((value, label) => {
546
+ if (labels.current.get(value) === label) return;
547
+ labels.current.set(value, label);
548
+ force(n => n + 1);
549
+ }, []);
550
+ const labelFor = useCallback3(value => labels.current.get(value), []);
551
+ return useMemo2(() => ({
552
+ labelFor,
553
+ registerLabel
554
+ }), [labelFor, registerLabel]);
555
+ }
556
+
557
+ // src/components/select/select.recipe.ts
558
+ var SLOTS = ["trigger", "value", "placeholder", "indicator", "overlay", "content", "label", "item", "itemLabel", "itemDescription", "itemIndicator"];
559
+ var VARIANT_TOKENS = {
560
+ primary: {
561
+ bg: "fieldBackground",
562
+ border: "fieldBorder",
563
+ borderFocus: "fieldBorderFocus",
564
+ fg: "fieldForeground"
565
+ },
566
+ secondary: {
567
+ bg: "default",
568
+ border: "fieldBorder",
569
+ borderFocus: "fieldBorderFocus",
570
+ fg: "fieldForeground"
571
+ },
572
+ tertiary: {
573
+ border: "fieldBorder",
574
+ borderFocus: "fieldBorderFocus",
575
+ fg: "fieldForeground"
576
+ },
577
+ ghost: {
578
+ borderFocus: "fieldBorderFocus",
579
+ fg: "fieldForeground"
580
+ }
581
+ };
582
+ var SIZES = {
583
+ sm: {
584
+ control: "sm",
585
+ padding: 3,
586
+ gap: 2.5,
587
+ value: "md",
588
+ glyph: "lg",
589
+ listLabel: "xs",
590
+ description: "xs"
591
+ },
592
+ md: {
593
+ control: "md",
594
+ padding: 3,
595
+ gap: 3,
596
+ value: "md",
597
+ glyph: "lg",
598
+ listLabel: "sm",
599
+ description: "sm"
600
+ },
601
+ lg: {
602
+ control: "lg",
603
+ padding: 4,
604
+ gap: 3,
605
+ value: "lg",
606
+ glyph: "xl",
607
+ listLabel: "md",
608
+ description: "md"
609
+ }
610
+ };
611
+ var LIST = {
612
+ /** Panel padding, and the inset the rows sit in. */
613
+ padding: 3,
614
+ itemPaddingHorizontal: 2,
615
+ itemPaddingVertical: 3,
616
+ itemGap: 2,
617
+ labelPaddingHorizontal: 2,
618
+ labelPaddingVertical: 1.5,
619
+ /** The check's box, in spacing steps like the rest — five of them, HeroUI's twenty. */
620
+ indicator: 5
621
+ };
622
+ function sizeAxis(step) {
623
+ const {
624
+ control,
625
+ padding,
626
+ gap,
627
+ value,
628
+ glyph,
629
+ listLabel,
630
+ description
631
+ } = step;
632
+ return theme => {
633
+ const valueType = {
634
+ fontSize: theme.fontSizes[value],
635
+ lineHeight: theme.lineHeights[value]
636
+ };
637
+ return {
638
+ trigger: {
639
+ // Fixed, not a minimum: a control has a height, and a label too long for it
640
+ // truncates rather than deforming the field it shares a row with.
641
+ height: theme.controlHeights[control],
642
+ paddingHorizontal: theme.spacing(padding),
643
+ gap: theme.spacing(gap)
644
+ },
645
+ value: valueType,
646
+ placeholder: valueType,
647
+ indicator: {
648
+ fontSize: theme.fontSizes[glyph]
649
+ },
650
+ label: {
651
+ fontSize: theme.fontSizes[listLabel],
652
+ lineHeight: theme.lineHeights[listLabel]
653
+ },
654
+ itemLabel: valueType,
655
+ itemDescription: {
656
+ fontSize: theme.fontSizes[description],
657
+ lineHeight: theme.lineHeights[description]
658
+ }
659
+ };
660
+ };
661
+ }
662
+ var selectRecipe = createRecipe({
663
+ slots: SLOTS,
664
+ base: theme => ({
665
+ trigger: {
666
+ flexDirection: "row",
667
+ alignItems: "center",
668
+ justifyContent: "space-between",
669
+ borderWidth: theme.borderWidth.field,
670
+ borderRadius: theme.radius.field,
671
+ borderCurve: "continuous"
672
+ },
673
+ value: {
674
+ fontFamily: theme.fontFamilies.body,
675
+ // `regular`, as on the field: a chosen value is content, not the control's label.
676
+ fontWeight: theme.fontWeights.regular,
677
+ // Without it a long value pushes the chevron off the end of the trigger instead of
678
+ // truncating, because a row gives a text node its intrinsic width by default.
679
+ flexShrink: 1
680
+ },
681
+ placeholder: {
682
+ color: theme.colors.fieldPlaceholder
683
+ },
684
+ indicator: {
685
+ alignItems: "center",
686
+ justifyContent: "center"
687
+ },
688
+ overlay: {
689
+ position: "absolute",
690
+ top: 0,
691
+ bottom: 0,
692
+ start: 0,
693
+ end: 0
694
+ },
695
+ content: {
696
+ position: "absolute",
697
+ backgroundColor: theme.colors.overlay,
698
+ padding: theme.spacing(LIST.padding),
699
+ // The panel is not the field, so it is rounder — but not by three steps of our
700
+ // scale. HeroUI's panel is their `--radius-3xl` on a base of 8, which is 24 points;
701
+ // ours is a base of 12, so the same 24 is `2xl`. Reading their key rather than
702
+ // their number is what put a 36-point corner on it and made it read as a pill.
703
+ borderRadius: theme.radius["2xl"],
704
+ borderCurve: "continuous",
705
+ ...theme.shadows.overlay
706
+ },
707
+ label: {
708
+ fontFamily: theme.fontFamilies.body,
709
+ fontWeight: theme.fontWeights.medium,
710
+ color: theme.colors.muted,
711
+ paddingHorizontal: theme.spacing(LIST.labelPaddingHorizontal),
712
+ paddingVertical: theme.spacing(LIST.labelPaddingVertical)
713
+ },
714
+ item: {
715
+ flexDirection: "row",
716
+ alignItems: "center",
717
+ justifyContent: "space-between",
718
+ gap: theme.spacing(LIST.itemGap),
719
+ paddingHorizontal: theme.spacing(LIST.itemPaddingHorizontal),
720
+ paddingVertical: theme.spacing(LIST.itemPaddingVertical),
721
+ borderRadius: theme.radius.md,
722
+ borderCurve: "continuous"
723
+ },
724
+ itemLabel: {
725
+ fontFamily: theme.fontFamilies.body,
726
+ // `medium`, unlike the trigger's value: a row in a list is a target being offered,
727
+ // and the weight is what separates it from the description under it.
728
+ fontWeight: theme.fontWeights.medium,
729
+ color: theme.colors.overlayForeground,
730
+ flexShrink: 1
731
+ },
732
+ itemDescription: {
733
+ fontFamily: theme.fontFamilies.body,
734
+ color: theme.colors.muted
735
+ },
736
+ itemIndicator: {
737
+ width: theme.spacing(LIST.indicator),
738
+ height: theme.spacing(LIST.indicator),
739
+ alignItems: "center",
740
+ justifyContent: "center"
741
+ }
742
+ }),
743
+ variantTokens: VARIANT_TOKENS,
744
+ /**
745
+ * The variant paints the **trigger only**. The list is a floating surface of the
746
+ * theme's own — a `ghost` select does not open a ghost panel, it opens the same panel
747
+ * every other select opens, because the panel is not part of the control's emphasis.
748
+ */
749
+ paint: (theme, colors) => ({
750
+ trigger: {
751
+ backgroundColor: colors.bg,
752
+ borderColor: colors.border,
753
+ borderWidth: colors.border ? theme.borderWidth.field : 0
754
+ },
755
+ value: {
756
+ color: colors.fg
757
+ },
758
+ indicator: {
759
+ color: theme.colors.fieldPlaceholder
760
+ }
761
+ }),
762
+ variants: {
763
+ size: {
764
+ sm: sizeAxis(SIZES.sm),
765
+ md: sizeAxis(SIZES.md),
766
+ lg: sizeAxis(SIZES.lg)
767
+ },
768
+ radius: radiusAxis("trigger"),
769
+ /**
770
+ * Open is not `focused`: the field's focus border is what a keyboard gives a text
771
+ * input, and a select that is open has no caret in it. It borrows the same token
772
+ * because the two mean the same thing to the eye — this control is the live one.
773
+ */
774
+ isOpen: {
775
+ true: theme => ({
776
+ trigger: {
777
+ borderColor: theme.colors.fieldBorderFocus
778
+ }
779
+ })
780
+ },
781
+ isInvalid: {
782
+ true: theme => ({
783
+ trigger: {
784
+ borderColor: theme.colors.danger
785
+ }
786
+ })
787
+ }
788
+ },
789
+ states: {
790
+ pressed: theme => ({
791
+ trigger: {
792
+ backgroundColor: theme.colors.fieldPressed
793
+ },
794
+ item: {
795
+ backgroundColor: theme.colors.defaultSoftPressed
796
+ }
797
+ }),
798
+ disabled: theme => ({
799
+ trigger: {
800
+ opacity: theme.opacity.disabled
801
+ }
802
+ })
803
+ },
804
+ defaultVariants: {
805
+ variant: "primary",
806
+ size: "md"
807
+ }
808
+ });
809
+
810
+ // src/components/select/select.tsx
811
+ import { jsx as jsx12 } from "react/jsx-runtime";
812
+ function Select({
813
+ children,
814
+ variant,
815
+ size,
816
+ radius,
817
+ color,
818
+ value: controlledValue,
819
+ defaultValue,
820
+ onValueChange,
821
+ isOpen: controlledOpen,
822
+ defaultOpen = false,
823
+ onOpenChange,
824
+ isDisabled = false,
825
+ isInvalid = false
826
+ }) {
827
+ const theme = useXAUITheme();
828
+ const {
829
+ labelFor,
830
+ registerLabel
831
+ } = useLabelRegistry();
832
+ const [anchor, setAnchor] = useState2(null);
833
+ const [value, setValue] = useControllableState({
834
+ value: controlledValue,
835
+ defaultValue,
836
+ onChange: onValueChange
837
+ });
838
+ const [isOpen, setOpen] = useControllableState({
839
+ value: controlledOpen,
840
+ defaultValue: defaultOpen,
841
+ onChange: onOpenChange
842
+ });
843
+ const selection = {
844
+ variant,
845
+ size,
846
+ radius,
847
+ isOpen: isOpen ? "true" : void 0,
848
+ isInvalid: isInvalid ? "true" : void 0
849
+ };
850
+ const styles = selectRecipe.resolve({
851
+ theme,
852
+ selection,
853
+ states: {
854
+ disabled: isDisabled
855
+ }
856
+ });
857
+ const pressed = selectRecipe.resolve({
858
+ theme,
859
+ selection,
860
+ states: {
861
+ pressed: true
862
+ }
863
+ });
864
+ const tint = color ? selectRecipe.tint({
865
+ theme,
866
+ color,
867
+ selection
868
+ }) : void 0;
869
+ const open = useCallback4(() => setOpen(true), [setOpen]);
870
+ const close = useCallback4(() => setOpen(false), [setOpen]);
871
+ const toggle = useCallback4(() => setOpen(!isOpen), [isOpen, setOpen]);
872
+ const select = useCallback4((next, label) => {
873
+ if (label !== void 0) registerLabel(next, label);
874
+ setValue(next);
875
+ setOpen(false);
876
+ }, [registerLabel, setValue, setOpen]);
877
+ const context = useMemo3(() => {
878
+ const indicator = StyleSheet.flatten([styles.indicator, tint?.indicator]);
879
+ const itemLabel = StyleSheet.flatten([styles.itemLabel]);
880
+ const tintedPlaceholder = tint ? StyleSheet.flatten([tint.value]).color : void 0;
881
+ return {
882
+ triggerStyle: tint ? [styles.trigger, tint.trigger] : styles.trigger,
883
+ triggerPressedStyle: pressed.trigger,
884
+ valueStyle: tint ? [styles.value, tint.value] : styles.value,
885
+ placeholderStyle: tintedPlaceholder ? [styles.placeholder, {
886
+ color: tintedPlaceholder
887
+ }] : styles.placeholder,
888
+ indicatorStyle: styles.indicator,
889
+ overlayStyle: styles.overlay,
890
+ contentStyle: styles.content,
891
+ labelStyle: styles.label,
892
+ itemStyle: styles.item,
893
+ itemPressedStyle: pressed.item,
894
+ itemLabelStyle: styles.itemLabel,
895
+ itemDescriptionStyle: styles.itemDescription,
896
+ itemIndicatorStyle: styles.itemIndicator,
897
+ glyph: {
898
+ size: indicator.fontSize,
899
+ // `ColorValue` also covers the platform's opaque colours, which `Icon` cannot
900
+ // hand to a third-party component expecting a string.
901
+ color: typeof indicator.color === "string" ? indicator.color : void 0
902
+ },
903
+ // The check reads the row's own colour rather than the chevron's: it belongs to the
904
+ // list, and the chevron belongs to the field.
905
+ checkColor: typeof itemLabel.color === "string" ? itemLabel.color : void 0,
906
+ value,
907
+ isOpen,
908
+ isDisabled,
909
+ isInvalid,
910
+ open,
911
+ close,
912
+ toggle,
913
+ select,
914
+ anchor,
915
+ setAnchor,
916
+ labelFor,
917
+ registerLabel
918
+ };
919
+ }, [styles, pressed, tint, value, isOpen, isDisabled, isInvalid, open, close, toggle, select, anchor, labelFor, registerLabel]);
920
+ return /* @__PURE__ */jsx12(SelectProvider, {
921
+ value: context,
922
+ children
923
+ });
924
+ }
925
+ Select.displayName = "XAUI.Select.Root";
926
+
927
+ // src/components/select/index.ts
928
+ var Select2 = Object.assign(Select, {
929
+ Trigger: SelectTrigger,
930
+ Value: SelectValue,
931
+ Indicator: SelectIndicator,
932
+ Overlay: SelectOverlay,
933
+ Content: SelectContent,
934
+ Label: SelectLabel,
935
+ Item: SelectItem,
936
+ ItemLabel: SelectItemLabel,
937
+ ItemDescription: SelectItemDescription,
938
+ ItemIndicator: SelectItemIndicator
939
+ });
940
+ export { useSelect, useSelectItem, SelectItemLabel, SelectItem, SelectContent, SelectIndicator, SelectItemDescription, CheckIcon, SelectItemIndicator, SelectLabel, SelectOverlay, SelectTrigger, SelectValue, selectRecipe, Select, Select2 };