@xaui/native 0.9.1-alpha.36 → 0.9.1-alpha.37

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 (141) hide show
  1. package/dist/{chunk-V5IVMZQJ.js → chunk-2PMXMKS5.js} +13 -8
  2. package/dist/{chunk-FVKIQBHS.cjs → chunk-3P6M2R4S.cjs} +6 -6
  3. package/dist/{chunk-RPOKLFRB.cjs → chunk-437QULXO.cjs} +7 -7
  4. package/dist/{chunk-BAPXLO5N.js → chunk-4PTWZCOK.js} +9 -9
  5. package/dist/{chunk-E5ZW7MBW.js → chunk-5PPNDKRX.js} +16 -16
  6. package/dist/{chunk-K7GAHNMJ.js → chunk-6G3XWPNP.js} +5 -5
  7. package/dist/{chunk-ISPOIMGX.cjs → chunk-7B3UBUC6.cjs} +3 -3
  8. package/dist/{chunk-5GMU7ESV.js → chunk-7LSY4WFL.js} +2 -2
  9. package/dist/{chunk-HQVVQGYV.cjs → chunk-ACAPTWE3.cjs} +16 -12
  10. package/dist/{chunk-2L7FOIWY.cjs → chunk-AP6RVIIK.cjs} +21 -21
  11. package/dist/{chunk-SAGMDVFU.js → chunk-BORJJYDW.js} +4 -4
  12. package/dist/{chunk-ADQVA2FQ.cjs → chunk-C5VDFRAD.cjs} +3 -3
  13. package/dist/{chunk-FYCDRRJ2.cjs → chunk-CUQTAPBU.cjs} +22 -22
  14. package/dist/{chunk-GPZSTEEI.cjs → chunk-DKH6BNPF.cjs} +15 -15
  15. package/dist/{chunk-2SCE7TFZ.cjs → chunk-DRMT346W.cjs} +64 -64
  16. package/dist/chunk-DVDQSW7U.cjs +1006 -0
  17. package/dist/{chunk-U3HFQHGZ.js → chunk-E3X5ODKQ.js} +3 -3
  18. package/dist/{chunk-RSGIJ6RI.js → chunk-EOJ5MYAQ.js} +5 -5
  19. package/dist/{chunk-MFXZHLOU.cjs → chunk-FTQHDJYL.cjs} +14 -14
  20. package/dist/{chunk-GHKJ6MUH.cjs → chunk-GTT4NHS2.cjs} +11 -11
  21. package/dist/{chunk-OWE5IID7.js → chunk-HXW4ANVB.js} +3 -3
  22. package/dist/{chunk-N2U63JUX.cjs → chunk-IGLKACSR.cjs} +7 -7
  23. package/dist/{chunk-VWATEE5O.js → chunk-IKJVLJKT.js} +15 -15
  24. package/dist/{chunk-AZRMOWRG.cjs → chunk-ITURCQMQ.cjs} +7 -7
  25. package/dist/{chunk-PGQWUASE.cjs → chunk-JB5LGQ54.cjs} +3 -3
  26. package/dist/{chunk-4XFEEBPU.js → chunk-JDSE4TQL.js} +1 -1
  27. package/dist/{chunk-6U5IUUAR.js → chunk-JXNFOOKC.js} +7 -7
  28. package/dist/{chunk-6N5ZCEAB.cjs → chunk-LEWW24RQ.cjs} +7 -7
  29. package/dist/{chunk-OSCW7I4H.js → chunk-M63GFNKV.js} +19 -4
  30. package/dist/chunk-MESKS6AI.js +0 -0
  31. package/dist/{chunk-CVCE7TW5.js → chunk-NKPTXTTS.js} +3 -3
  32. package/dist/{chunk-2LNE4PWB.cjs → chunk-NTD3NPRX.cjs} +3 -3
  33. package/dist/{chunk-2OZPOWFB.js → chunk-O3A3DBSZ.js} +3 -3
  34. package/dist/chunk-OJCCV65P.cjs +1 -0
  35. package/dist/{chunk-B6OKVLC7.js → chunk-OULTSBKU.js} +3 -3
  36. package/dist/{chunk-TE7KVFE4.cjs → chunk-P747CRAY.cjs} +9 -9
  37. package/dist/{chunk-DL2PGB5G.js → chunk-RGKWNK4T.js} +58 -58
  38. package/dist/{chunk-DOLWSO7A.js → chunk-RVRVGG73.js} +4 -4
  39. package/dist/{chunk-3YZSUDZ2.js → chunk-SMW6ZWMH.js} +3 -3
  40. package/dist/{chunk-AQXNEV6J.cjs → chunk-SNIHUKDA.cjs} +16 -16
  41. package/dist/{chunk-OMV5MUTM.js → chunk-SO5UAGIU.js} +15 -15
  42. package/dist/{chunk-KZVHC4FL.js → chunk-TDYPY2J7.js} +8 -8
  43. package/dist/{chunk-QZO57TPX.js → chunk-TJHYSSBZ.js} +3 -3
  44. package/dist/{chunk-K3AVOT6L.cjs → chunk-TK44VBIE.cjs} +22 -7
  45. package/dist/{chunk-ZU3XQZ63.cjs → chunk-UBOXW5WO.cjs} +63 -63
  46. package/dist/{chunk-UCW25LL6.js → chunk-UGF35NSE.js} +75 -75
  47. package/dist/{chunk-LCDHTLSG.cjs → chunk-VFTT3Q4B.cjs} +4 -4
  48. package/dist/{chunk-5BNIIDQD.cjs → chunk-WDDXU3OH.cjs} +14 -9
  49. package/dist/{chunk-JB5XANQY.js → chunk-WKCQ6VGW.js} +15 -11
  50. package/dist/{chunk-XARBUUIE.cjs → chunk-WVLSQO6K.cjs} +9 -9
  51. package/dist/chunk-XWY4DF37.js +1143 -0
  52. package/dist/{chunk-EFPWXJAJ.cjs → chunk-ZJWEVFAO.cjs} +12 -12
  53. package/dist/components/alert/index.cjs +7 -8
  54. package/dist/components/alert/index.d.cts +1 -1
  55. package/dist/components/alert/index.d.ts +1 -1
  56. package/dist/components/alert/index.js +6 -7
  57. package/dist/components/avatar/index.cjs +4 -5
  58. package/dist/components/avatar/index.d.cts +3 -3
  59. package/dist/components/avatar/index.d.ts +3 -3
  60. package/dist/components/avatar/index.js +3 -4
  61. package/dist/components/badge/index.cjs +3 -4
  62. package/dist/components/badge/index.d.cts +1 -1
  63. package/dist/components/badge/index.d.ts +1 -1
  64. package/dist/components/badge/index.js +2 -3
  65. package/dist/components/button/index.cjs +6 -7
  66. package/dist/components/button/index.d.cts +168 -168
  67. package/dist/components/button/index.d.ts +168 -168
  68. package/dist/components/button/index.js +5 -6
  69. package/dist/components/card/index.cjs +5 -6
  70. package/dist/components/card/index.d.cts +169 -169
  71. package/dist/components/card/index.d.ts +169 -169
  72. package/dist/components/card/index.js +4 -5
  73. package/dist/components/checkbox/index.cjs +5 -6
  74. package/dist/components/checkbox/index.d.cts +336 -336
  75. package/dist/components/checkbox/index.d.ts +336 -336
  76. package/dist/components/checkbox/index.js +4 -5
  77. package/dist/components/chip/index.cjs +7 -8
  78. package/dist/components/chip/index.d.cts +169 -169
  79. package/dist/components/chip/index.d.ts +169 -169
  80. package/dist/components/chip/index.js +6 -7
  81. package/dist/components/divider/index.cjs +3 -4
  82. package/dist/components/divider/index.d.cts +1 -1
  83. package/dist/components/divider/index.d.ts +1 -1
  84. package/dist/components/divider/index.js +2 -3
  85. package/dist/components/field-group/index.cjs +5 -6
  86. package/dist/components/field-group/index.d.cts +6 -6
  87. package/dist/components/field-group/index.d.ts +6 -6
  88. package/dist/components/field-group/index.js +4 -5
  89. package/dist/components/input-otp/index.cjs +3 -4
  90. package/dist/components/input-otp/index.d.cts +1 -1
  91. package/dist/components/input-otp/index.d.ts +1 -1
  92. package/dist/components/input-otp/index.js +2 -3
  93. package/dist/components/radio/index.cjs +5 -6
  94. package/dist/components/radio/index.d.cts +336 -336
  95. package/dist/components/radio/index.d.ts +336 -336
  96. package/dist/components/radio/index.js +4 -5
  97. package/dist/components/select/index.cjs +47 -0
  98. package/dist/components/select/index.d.cts +519 -0
  99. package/dist/components/select/index.d.ts +519 -0
  100. package/dist/components/select/index.js +47 -0
  101. package/dist/components/skeleton/index.cjs +3 -4
  102. package/dist/components/skeleton/index.d.cts +1 -1
  103. package/dist/components/skeleton/index.d.ts +1 -1
  104. package/dist/components/skeleton/index.js +2 -3
  105. package/dist/components/spinner/index.cjs +4 -5
  106. package/dist/components/spinner/index.d.cts +1 -1
  107. package/dist/components/spinner/index.d.ts +1 -1
  108. package/dist/components/spinner/index.js +3 -4
  109. package/dist/components/switch/index.cjs +5 -6
  110. package/dist/components/switch/index.d.cts +338 -338
  111. package/dist/components/switch/index.d.ts +338 -338
  112. package/dist/components/switch/index.js +4 -5
  113. package/dist/components/text-area/index.cjs +4 -5
  114. package/dist/components/text-area/index.js +3 -4
  115. package/dist/components/text-field/index.cjs +3 -4
  116. package/dist/components/text-field/index.d.cts +3 -3
  117. package/dist/components/text-field/index.d.ts +3 -3
  118. package/dist/components/text-field/index.js +2 -3
  119. package/dist/components/typography/index.cjs +3 -4
  120. package/dist/components/typography/index.d.cts +2 -2
  121. package/dist/components/typography/index.d.ts +2 -2
  122. package/dist/components/typography/index.js +2 -3
  123. package/dist/components/view/index.cjs +3 -4
  124. package/dist/components/view/index.d.cts +6 -6
  125. package/dist/components/view/index.d.ts +6 -6
  126. package/dist/components/view/index.js +2 -3
  127. package/dist/index.cjs +64 -28
  128. package/dist/index.d.cts +1 -0
  129. package/dist/index.d.ts +1 -0
  130. package/dist/index.js +80 -44
  131. package/dist/system/index.cjs +10 -10
  132. package/dist/system/index.d.cts +15 -2
  133. package/dist/system/index.d.ts +15 -2
  134. package/dist/system/index.js +8 -8
  135. package/dist/theme/index.cjs +4 -3
  136. package/dist/theme/index.d.cts +21 -1
  137. package/dist/theme/index.d.ts +21 -1
  138. package/dist/theme/index.js +3 -2
  139. package/package.json +11 -1
  140. package/dist/chunk-FJ5TLRT3.js +0 -21
  141. package/dist/chunk-HT7H35GU.cjs +0 -21
@@ -0,0 +1,519 @@
1
+ import * as react from 'react';
2
+ import { ReactNode, ComponentType } from 'react';
3
+ import * as react_native from 'react-native';
4
+ import { StyleProp, ViewStyle, TextStyle, ViewProps, TextProps, PressableProps, View, Text } from 'react-native';
5
+ import { b as IconComponentProps, I as IconContextValue } from '../../icon.type-Kml72iSz.js';
6
+ import { V as ViewStyleProps, T as TextStyleProps } from '../../style-props.type-CfnoGEP7.js';
7
+ import { S as Size, R as RadiusKey, X as XAUITheme } from '../../theme.type-C2gNHpEx.js';
8
+ import { R as Recipe, S as SlotStyles, a as StyleFn } from '../../create-recipe-BdVd2ffi.js';
9
+
10
+ type SelectSlot = 'trigger' | 'value' | 'placeholder' | 'indicator' | 'overlay' | 'content' | 'label' | 'item' | 'itemLabel' | 'itemDescription' | 'itemIndicator';
11
+ /**
12
+ * The trigger **is** a field, so it takes the field's four emphasis levels rather than
13
+ * the button's ten. A select that offers `danger` would be offering an intent to a
14
+ * control whose intent is always the same: pick one of these.
15
+ */
16
+ type SelectVariant = 'primary' | 'secondary' | 'tertiary' | 'ghost';
17
+ /**
18
+ * No `xs`. A trigger that small has to hold a value, a chevron and the gap between them,
19
+ * and at that height the value gets nothing — the control reads as a chip that lies about
20
+ * being pressable. The `TextField` keeps its `xs` because a field only has to hold text.
21
+ */
22
+ type SelectSize = Exclude<Size, 'xs'>;
23
+ /**
24
+ * Which side of the trigger the list opens on. Two values, not HeroUI's four: a select's
25
+ * list is as wide as the field it belongs to, and a list hanging off the side of its own
26
+ * field reads as a menu. `Popover` is where `start` and `end` belong.
27
+ */
28
+ type SelectPlacement = 'top' | 'bottom';
29
+ /** Where the list lines up along the trigger's cross axis. */
30
+ type SelectAlign = 'start' | 'center' | 'end';
31
+ /**
32
+ * `trigger` matches the field exactly, which is the default because a list wider than the
33
+ * control it drops out of reads as a different surface. `content-fit` lets it hug the
34
+ * longest label instead, bounded by the screen.
35
+ */
36
+ type SelectWidth = number | 'trigger' | 'content-fit';
37
+ /** Screen edges the list refuses to cross, in points. */
38
+ type SelectInsets = {
39
+ top?: number;
40
+ bottom?: number;
41
+ start?: number;
42
+ end?: number;
43
+ };
44
+ type SelectOwnProps = {
45
+ children?: ReactNode;
46
+ variant?: SelectVariant;
47
+ size?: SelectSize;
48
+ radius?: RadiusKey;
49
+ /** The tint (R7) — a raw value, never a token. */
50
+ color?: string;
51
+ /** Controlled selection. Leave unset and the root owns it. */
52
+ value?: string;
53
+ defaultValue?: string;
54
+ onValueChange?: (value: string) => void;
55
+ /** Controlled open state. Leave unset and the root owns it. */
56
+ isOpen?: boolean;
57
+ defaultOpen?: boolean;
58
+ onOpenChange?: (isOpen: boolean) => void;
59
+ isDisabled?: boolean;
60
+ isInvalid?: boolean;
61
+ };
62
+ /**
63
+ * The root renders **no node**. It is state and resolved style around a trigger and a
64
+ * list, and the trigger is the control — which is why `ref`, `style`, `testID`, the a11y
65
+ * props and R14's style props are all on `Select.Trigger` rather than here. A wrapper
66
+ * view would exist only to receive them, and it would put a second box around a field
67
+ * that already is one.
68
+ */
69
+ type SelectProps = SelectOwnProps;
70
+ type SelectTriggerOwnProps = {
71
+ children?: ReactNode;
72
+ asChild?: boolean;
73
+ };
74
+ type SelectTriggerProps = SelectTriggerOwnProps & Omit<PressableProps, keyof SelectTriggerOwnProps> & Omit<ViewStyleProps, keyof SelectTriggerOwnProps | keyof PressableProps>;
75
+ type SelectValueOwnProps = {
76
+ /** Shown until something is selected, in the placeholder colour. */
77
+ placeholder?: string;
78
+ /**
79
+ * The selected value's label, when the caller renders items lazily and the root has
80
+ * never seen them. Unset, the value falls back to the label of the matching item.
81
+ */
82
+ children?: ReactNode;
83
+ };
84
+ type SelectValueProps = SelectValueOwnProps & Omit<TextProps, keyof SelectValueOwnProps> & Omit<TextStyleProps, keyof SelectValueOwnProps | keyof TextProps>;
85
+ /**
86
+ * The chevron. It rotates on a spring rather than a timing curve, which is what makes the
87
+ * turn read as the list pushing it round instead of as a separate animation playing.
88
+ */
89
+ type SelectIndicatorProps = {
90
+ /** The glyph. Defaults to the chevron this component ships. */
91
+ as?: ComponentType<IconComponentProps>;
92
+ size?: number;
93
+ /** A raw value (R7), never a token. Overrides what the trigger asked for. */
94
+ color?: string;
95
+ };
96
+ type SelectOverlayOwnProps = {
97
+ children?: ReactNode;
98
+ /** Pressing the backdrop closes the list. Set false and only a choice closes it. */
99
+ isDismissable?: boolean;
100
+ };
101
+ type SelectOverlayProps = SelectOverlayOwnProps & Omit<ViewProps, keyof SelectOverlayOwnProps> & Omit<ViewStyleProps, keyof SelectOverlayOwnProps | keyof ViewProps>;
102
+ type SelectContentOwnProps = {
103
+ children?: ReactNode;
104
+ placement?: SelectPlacement;
105
+ align?: SelectAlign;
106
+ width?: SelectWidth;
107
+ /** Distance from the trigger, in points. */
108
+ offset?: number;
109
+ /** Shift along the alignment axis, in points. */
110
+ alignOffset?: number;
111
+ /** Flip to the other side when the chosen one does not fit. */
112
+ avoidCollisions?: boolean;
113
+ insets?: SelectInsets;
114
+ };
115
+ type SelectContentProps = SelectContentOwnProps & Omit<ViewProps, keyof SelectContentOwnProps> & Omit<ViewStyleProps, keyof SelectContentOwnProps | keyof ViewProps>;
116
+ type SelectLabelOwnProps = {
117
+ children?: ReactNode;
118
+ };
119
+ type SelectLabelProps = SelectLabelOwnProps & Omit<TextProps, keyof SelectLabelOwnProps> & Omit<TextStyleProps, keyof SelectLabelOwnProps | keyof TextProps>;
120
+ /** What an item's render function is handed, so it can paint its own selected state. */
121
+ type SelectItemRenderState = {
122
+ isSelected: boolean;
123
+ isPressed: boolean;
124
+ isDisabled: boolean;
125
+ };
126
+ type SelectItemOwnProps = {
127
+ value: string;
128
+ /** The label the trigger shows once this item is chosen. */
129
+ label?: string;
130
+ isDisabled?: boolean;
131
+ children?: ReactNode | ((state: SelectItemRenderState) => ReactNode);
132
+ asChild?: boolean;
133
+ };
134
+ type SelectItemProps = SelectItemOwnProps & Omit<PressableProps, keyof SelectItemOwnProps> & Omit<ViewStyleProps, keyof SelectItemOwnProps | keyof PressableProps>;
135
+ type SelectItemTextOwnProps = {
136
+ children?: ReactNode;
137
+ };
138
+ type SelectItemLabelProps = SelectItemTextOwnProps & Omit<TextProps, keyof SelectItemTextOwnProps> & Omit<TextStyleProps, keyof SelectItemTextOwnProps | keyof TextProps>;
139
+ type SelectItemDescriptionProps = SelectItemLabelProps;
140
+ /** The check. Its box always renders; the glyph inside it only when the row is chosen. */
141
+ type SelectItemIndicatorProps = {
142
+ /** The glyph. Defaults to the check this component ships. */
143
+ as?: ComponentType<IconComponentProps>;
144
+ size?: number;
145
+ /** A raw value (R7), never a token. */
146
+ color?: string;
147
+ };
148
+ /**
149
+ * R5 — resolved style ids and the state the slots read. Nothing here is re-resolved by a
150
+ * slot, and nothing in it is a raw prop.
151
+ */
152
+ type SelectContextValue = {
153
+ triggerStyle: StyleProp<ViewStyle>;
154
+ /**
155
+ * Resolved alongside the resting one rather than by the trigger: R5 keeps resolution on
156
+ * the root, and the trigger owns the press state the root cannot see.
157
+ */
158
+ triggerPressedStyle: StyleProp<ViewStyle>;
159
+ valueStyle: StyleProp<TextStyle>;
160
+ placeholderStyle: StyleProp<TextStyle>;
161
+ indicatorStyle: StyleProp<ViewStyle>;
162
+ overlayStyle: StyleProp<ViewStyle>;
163
+ contentStyle: StyleProp<ViewStyle>;
164
+ labelStyle: StyleProp<TextStyle>;
165
+ itemStyle: StyleProp<ViewStyle>;
166
+ /** The same split as the trigger's, for the row a finger happens to be on. */
167
+ itemPressedStyle: StyleProp<ViewStyle>;
168
+ itemLabelStyle: StyleProp<TextStyle>;
169
+ itemDescriptionStyle: StyleProp<TextStyle>;
170
+ itemIndicatorStyle: StyleProp<ViewStyle>;
171
+ /**
172
+ * Values, not a style: `Icon` hands `size` and `color` to a third-party component, so
173
+ * the root flattens its indicator slot once here rather than in every icon it contains.
174
+ */
175
+ glyph: IconContextValue;
176
+ /** The check's colour — the row's own, because the check belongs to the list. */
177
+ checkColor?: string;
178
+ value?: string;
179
+ isOpen: boolean;
180
+ isDisabled: boolean;
181
+ isInvalid: boolean;
182
+ open: () => void;
183
+ close: () => void;
184
+ toggle: () => void;
185
+ select: (value: string, label?: string) => void;
186
+ /** The trigger publishes its measured rectangle here; the content positions off it. */
187
+ anchor: SelectAnchor | null;
188
+ setAnchor: (anchor: SelectAnchor) => void;
189
+ /** Labels registered by the items, so `Select.Value` can name the chosen one. */
190
+ labelFor: (value: string) => string | undefined;
191
+ registerLabel: (value: string, label: string) => void;
192
+ };
193
+ /** The trigger's rectangle in window coordinates. */
194
+ type SelectAnchor = {
195
+ x: number;
196
+ y: number;
197
+ width: number;
198
+ height: number;
199
+ };
200
+ /** What one item publishes to its own slots. */
201
+ type SelectItemContextValue = {
202
+ isSelected: boolean;
203
+ isPressed: boolean;
204
+ isDisabled: boolean;
205
+ };
206
+
207
+ /**
208
+ * The chevron, turning with the list.
209
+ *
210
+ * It rotates on a spring rather than a timing curve. A 180-degree turn on a curve reads
211
+ * as an animation playing next to the list; on a spring heavy enough not to overshoot it
212
+ * reads as the list pushing the glyph round — which is the same trade HeroUI makes, with
213
+ * the same numbers.
214
+ *
215
+ * The rotation is a worklet on the UI thread, so it keeps turning while JavaScript is
216
+ * busy mounting the rows.
217
+ */
218
+ declare function SelectIndicator({ as, ...props }: SelectIndicatorProps): react.JSX.Element;
219
+ declare namespace SelectIndicator {
220
+ var displayName: string;
221
+ }
222
+
223
+ /**
224
+ * The mark on the chosen row.
225
+ *
226
+ * Its box is rendered whether or not the row is selected, and only the glyph inside it
227
+ * comes and goes. A box that appeared with the check would shift the label of every row
228
+ * the moment a selection changed.
229
+ */
230
+ declare function SelectItemIndicator({ as, color, ...props }: SelectItemIndicatorProps): react.JSX.Element;
231
+ declare namespace SelectItemIndicator {
232
+ var displayName: string;
233
+ }
234
+
235
+ /**
236
+ * A field that opens a list.
237
+ *
238
+ * ```tsx
239
+ * <Select defaultValue="fr" onValueChange={setLocale}>
240
+ * <Select.Trigger>
241
+ * <Select.Value placeholder="Choisir une langue" />
242
+ * <Select.Indicator />
243
+ * </Select.Trigger>
244
+ * <Select.Overlay />
245
+ * <Select.Content>
246
+ * <Select.Item value="fr" label="Français">
247
+ * <Select.ItemLabel>Français</Select.ItemLabel>
248
+ * <Select.ItemIndicator />
249
+ * </Select.Item>
250
+ * </Select.Content>
251
+ * </Select>
252
+ * ```
253
+ *
254
+ * **The root renders no node.** It resolves the styles every slot reads and holds the two
255
+ * pieces of state — what is open and what is chosen. `Select.Overlay` and
256
+ * `Select.Content` render into the nearest `PortalHost` rather than where they are
257
+ * written, so their position in the JSX says when they exist, not where they appear.
258
+ */
259
+ declare function Select$1({ children, variant, size, radius, color, value: controlledValue, defaultValue, onValueChange, isOpen: controlledOpen, defaultOpen, onOpenChange, isDisabled, isInvalid, }: SelectProps): react.JSX.Element;
260
+ declare namespace Select$1 {
261
+ var displayName: string;
262
+ }
263
+
264
+ /**
265
+ * The list. It renders into the nearest `PortalHost`, so it escapes the clipping and the
266
+ * stacking of whatever container held the trigger.
267
+ *
268
+ * **It measures before it positions.** The first pass mounts the panel invisibly to learn
269
+ * how tall it wants to be; the second places it and plays the entrance. Without that pass
270
+ * `avoidCollisions` has nothing to compare and a list that does not fit below would open
271
+ * downwards off the screen. The cost is one frame, and it is why the entrance animation
272
+ * is keyed on the resolved placement rather than started at mount.
273
+ */
274
+ declare const SelectContent: react.ForwardRefExoticComponent<{
275
+ children?: react.ReactNode;
276
+ placement?: SelectPlacement;
277
+ align?: SelectAlign;
278
+ width?: SelectWidth;
279
+ offset?: number;
280
+ alignOffset?: number;
281
+ avoidCollisions?: boolean;
282
+ insets?: SelectInsets;
283
+ } & Omit<react_native.ViewProps, keyof {
284
+ children?: react.ReactNode;
285
+ placement?: SelectPlacement;
286
+ align?: SelectAlign;
287
+ width?: SelectWidth;
288
+ offset?: number;
289
+ alignOffset?: number;
290
+ avoidCollisions?: boolean;
291
+ insets?: SelectInsets;
292
+ }> & Omit<ViewStyleProps, "style" | "children" | "hitSlop" | "id" | "needsOffscreenAlphaCompositing" | "onLayout" | "pointerEvents" | "removeClippedSubviews" | "testID" | "nativeID" | "collapsable" | "collapsableChildren" | "onBlur" | "onFocus" | "renderToHardwareTextureAndroid" | "focusable" | "tabIndex" | "shouldRasterizeIOS" | "isTVSelectable" | "hasTVPreferredFocus" | "tvParallaxShiftDistanceX" | "tvParallaxShiftDistanceY" | "tvParallaxTiltAngle" | "tvParallaxMagnification" | "onStartShouldSetResponder" | "onMoveShouldSetResponder" | "onResponderEnd" | "onResponderGrant" | "onResponderReject" | "onResponderMove" | "onResponderRelease" | "onResponderStart" | "onResponderTerminationRequest" | "onResponderTerminate" | "onStartShouldSetResponderCapture" | "onMoveShouldSetResponderCapture" | "onTouchStart" | "onTouchMove" | "onTouchEnd" | "onTouchCancel" | "onTouchEndCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerUp" | "onPointerUpCapture" | "accessible" | "accessibilityActions" | "accessibilityLabel" | "aria-label" | "accessibilityRole" | "accessibilityState" | "aria-busy" | "aria-checked" | "aria-disabled" | "aria-expanded" | "aria-selected" | "accessibilityHint" | "accessibilityValue" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "onAccessibilityAction" | "importantForAccessibility" | "aria-hidden" | "aria-modal" | "role" | "accessibilityLabelledBy" | "aria-labelledby" | "accessibilityLiveRegion" | "aria-live" | "screenReaderFocusable" | "accessibilityElementsHidden" | "accessibilityViewIsModal" | "onAccessibilityEscape" | "onAccessibilityTap" | "onMagicTap" | "accessibilityIgnoresInvertColors" | "accessibilityLanguage" | "accessibilityShowsLargeContentViewer" | "accessibilityLargeContentTitle" | "accessibilityRespondsToUserInteraction" | "width" | "placement" | "align" | "offset" | "alignOffset" | "avoidCollisions" | "insets"> & react.RefAttributes<View>>;
293
+
294
+ /**
295
+ * One row of the list.
296
+ *
297
+ * It registers its label with the root as it mounts, which is what lets `Select.Value`
298
+ * name the chosen one without the caller writing the label twice. `label` is that string
299
+ * when the row's children are not one — an avatar and two lines of text have no single
300
+ * label to infer.
301
+ *
302
+ * `children` may be a function, and that is the escape hatch for a row that paints its
303
+ * own selected state instead of showing the check.
304
+ */
305
+ declare const SelectItem: react.ForwardRefExoticComponent<{
306
+ value: string;
307
+ label?: string;
308
+ isDisabled?: boolean;
309
+ children?: react.ReactNode | ((state: SelectItemRenderState) => react.ReactNode);
310
+ asChild?: boolean;
311
+ } & Omit<react_native.PressableProps, keyof {
312
+ value: string;
313
+ label?: string;
314
+ isDisabled?: boolean;
315
+ children?: react.ReactNode | ((state: SelectItemRenderState) => react.ReactNode);
316
+ asChild?: boolean;
317
+ }> & Omit<ViewStyleProps, "style" | "children" | "hitSlop" | "id" | "needsOffscreenAlphaCompositing" | "onLayout" | "pointerEvents" | "removeClippedSubviews" | "testID" | "nativeID" | "collapsable" | "collapsableChildren" | "onBlur" | "onFocus" | "renderToHardwareTextureAndroid" | "focusable" | "tabIndex" | "shouldRasterizeIOS" | "isTVSelectable" | "hasTVPreferredFocus" | "tvParallaxShiftDistanceX" | "tvParallaxShiftDistanceY" | "tvParallaxTiltAngle" | "tvParallaxMagnification" | "onStartShouldSetResponder" | "onMoveShouldSetResponder" | "onResponderEnd" | "onResponderGrant" | "onResponderReject" | "onResponderMove" | "onResponderRelease" | "onResponderStart" | "onResponderTerminationRequest" | "onResponderTerminate" | "onStartShouldSetResponderCapture" | "onMoveShouldSetResponderCapture" | "onTouchStart" | "onTouchMove" | "onTouchEnd" | "onTouchCancel" | "onTouchEndCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerUp" | "onPointerUpCapture" | "accessible" | "accessibilityActions" | "accessibilityLabel" | "aria-label" | "accessibilityRole" | "accessibilityState" | "aria-busy" | "aria-checked" | "aria-disabled" | "aria-expanded" | "aria-selected" | "accessibilityHint" | "accessibilityValue" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "onAccessibilityAction" | "importantForAccessibility" | "aria-hidden" | "aria-modal" | "role" | "accessibilityLabelledBy" | "aria-labelledby" | "accessibilityLiveRegion" | "aria-live" | "screenReaderFocusable" | "accessibilityElementsHidden" | "accessibilityViewIsModal" | "onAccessibilityEscape" | "onAccessibilityTap" | "onMagicTap" | "accessibilityIgnoresInvertColors" | "accessibilityLanguage" | "accessibilityShowsLargeContentViewer" | "accessibilityLargeContentTitle" | "accessibilityRespondsToUserInteraction" | "asChild" | "onPress" | "onPressIn" | "onPressOut" | "onLongPress" | "pressRetentionOffset" | "disabled" | "value" | "onHoverIn" | "onHoverOut" | "cancelable" | "delayHoverIn" | "delayHoverOut" | "delayLongPress" | "android_disableSound" | "android_ripple" | "testOnly_pressed" | "unstable_pressDelay" | "label" | "isDisabled"> & react.RefAttributes<View>>;
318
+
319
+ /**
320
+ * The second line of a row. Unlike the label it wraps, because the thing it exists to
321
+ * carry is the sentence a label was too short for.
322
+ */
323
+ declare const SelectItemDescription: react.ForwardRefExoticComponent<{
324
+ children?: react.ReactNode;
325
+ } & Omit<react_native.TextProps, "children"> & Omit<TextStyleProps, keyof react_native.TextProps> & react.RefAttributes<Text>>;
326
+
327
+ /** The row's text. Truncates rather than wrapping, so every row is one row tall. */
328
+ declare const SelectItemLabel: react.ForwardRefExoticComponent<{
329
+ children?: react.ReactNode;
330
+ } & Omit<react_native.TextProps, "children"> & Omit<TextStyleProps, keyof react_native.TextProps> & react.RefAttributes<Text>>;
331
+
332
+ /**
333
+ * A heading over a run of rows. It is not a row: it takes no press, and a screen reader
334
+ * announces it as a header so the group it opens is announced with it.
335
+ */
336
+ declare const SelectLabel: react.ForwardRefExoticComponent<{
337
+ children?: react.ReactNode;
338
+ } & Omit<react_native.TextProps, "children"> & Omit<TextStyleProps, keyof react_native.TextProps> & react.RefAttributes<Text>>;
339
+
340
+ /**
341
+ * The backdrop, and what closes the list when the choice is made elsewhere.
342
+ *
343
+ * **Optional, and that is the point.** Written, it captures the press outside and dims
344
+ * nothing unless a `backgroundColor` says so; omitted, the list has no backdrop and only
345
+ * a choice closes it. A select inside a sheet that already dims its own background is the
346
+ * case that needs the second behaviour.
347
+ *
348
+ * It renders into the portal rather than where it is written, so it covers navigation
349
+ * instead of being clipped by the screen the trigger happens to sit in.
350
+ */
351
+ declare const SelectOverlay: react.ForwardRefExoticComponent<{
352
+ children?: react.ReactNode;
353
+ isDismissable?: boolean;
354
+ } & Omit<react_native.ViewProps, keyof {
355
+ children?: react.ReactNode;
356
+ isDismissable?: boolean;
357
+ }> & Omit<ViewStyleProps, "style" | "children" | "hitSlop" | "id" | "needsOffscreenAlphaCompositing" | "onLayout" | "pointerEvents" | "removeClippedSubviews" | "testID" | "nativeID" | "collapsable" | "collapsableChildren" | "onBlur" | "onFocus" | "renderToHardwareTextureAndroid" | "focusable" | "tabIndex" | "shouldRasterizeIOS" | "isTVSelectable" | "hasTVPreferredFocus" | "tvParallaxShiftDistanceX" | "tvParallaxShiftDistanceY" | "tvParallaxTiltAngle" | "tvParallaxMagnification" | "onStartShouldSetResponder" | "onMoveShouldSetResponder" | "onResponderEnd" | "onResponderGrant" | "onResponderReject" | "onResponderMove" | "onResponderRelease" | "onResponderStart" | "onResponderTerminationRequest" | "onResponderTerminate" | "onStartShouldSetResponderCapture" | "onMoveShouldSetResponderCapture" | "onTouchStart" | "onTouchMove" | "onTouchEnd" | "onTouchCancel" | "onTouchEndCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerUp" | "onPointerUpCapture" | "accessible" | "accessibilityActions" | "accessibilityLabel" | "aria-label" | "accessibilityRole" | "accessibilityState" | "aria-busy" | "aria-checked" | "aria-disabled" | "aria-expanded" | "aria-selected" | "accessibilityHint" | "accessibilityValue" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "onAccessibilityAction" | "importantForAccessibility" | "aria-hidden" | "aria-modal" | "role" | "accessibilityLabelledBy" | "aria-labelledby" | "accessibilityLiveRegion" | "aria-live" | "screenReaderFocusable" | "accessibilityElementsHidden" | "accessibilityViewIsModal" | "onAccessibilityEscape" | "onAccessibilityTap" | "onMagicTap" | "accessibilityIgnoresInvertColors" | "accessibilityLanguage" | "accessibilityShowsLargeContentViewer" | "accessibilityLargeContentTitle" | "accessibilityRespondsToUserInteraction" | "isDismissable"> & react.RefAttributes<View>>;
358
+
359
+ /**
360
+ * The control. It is the field the user sees, and the only node of this component that a
361
+ * caller can hold a ref to — the root has none.
362
+ *
363
+ * It measures itself in window coordinates on every layout, because that rectangle is
364
+ * what the list positions against. `measureInWindow` rather than the layout event's own
365
+ * `x`/`y`: those are relative to the parent, and an overlay lives in a portal that shares
366
+ * no parent with the trigger.
367
+ *
368
+ * The measurement goes through a ref of its own rather than the event's `currentTarget`.
369
+ * That field is a node handle on the old architecture and a host instance on the new one,
370
+ * and only one of the two answers `measureInWindow` — which is a crash on Android and
371
+ * nowhere else, the worst shape a bug can take.
372
+ *
373
+ * **It measures again every time the list opens**, and that is the load-bearing one.
374
+ * `onLayout` fires when the trigger is laid out and never again — not on scroll — so a
375
+ * trigger inside a `ScrollView` reports the position it had before the user moved, and
376
+ * the list opens against a rectangle that has since walked off. Far enough down a screen
377
+ * it opens past the bottom of the window and looks like nothing happened at all.
378
+ */
379
+ declare const SelectTrigger: react.ForwardRefExoticComponent<{
380
+ children?: react.ReactNode;
381
+ asChild?: boolean;
382
+ } & Omit<react_native.PressableProps, keyof {
383
+ children?: react.ReactNode;
384
+ asChild?: boolean;
385
+ }> & Omit<ViewStyleProps, "style" | "children" | "hitSlop" | "id" | "needsOffscreenAlphaCompositing" | "onLayout" | "pointerEvents" | "removeClippedSubviews" | "testID" | "nativeID" | "collapsable" | "collapsableChildren" | "onBlur" | "onFocus" | "renderToHardwareTextureAndroid" | "focusable" | "tabIndex" | "shouldRasterizeIOS" | "isTVSelectable" | "hasTVPreferredFocus" | "tvParallaxShiftDistanceX" | "tvParallaxShiftDistanceY" | "tvParallaxTiltAngle" | "tvParallaxMagnification" | "onStartShouldSetResponder" | "onMoveShouldSetResponder" | "onResponderEnd" | "onResponderGrant" | "onResponderReject" | "onResponderMove" | "onResponderRelease" | "onResponderStart" | "onResponderTerminationRequest" | "onResponderTerminate" | "onStartShouldSetResponderCapture" | "onMoveShouldSetResponderCapture" | "onTouchStart" | "onTouchMove" | "onTouchEnd" | "onTouchCancel" | "onTouchEndCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerUp" | "onPointerUpCapture" | "accessible" | "accessibilityActions" | "accessibilityLabel" | "aria-label" | "accessibilityRole" | "accessibilityState" | "aria-busy" | "aria-checked" | "aria-disabled" | "aria-expanded" | "aria-selected" | "accessibilityHint" | "accessibilityValue" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "onAccessibilityAction" | "importantForAccessibility" | "aria-hidden" | "aria-modal" | "role" | "accessibilityLabelledBy" | "aria-labelledby" | "accessibilityLiveRegion" | "aria-live" | "screenReaderFocusable" | "accessibilityElementsHidden" | "accessibilityViewIsModal" | "onAccessibilityEscape" | "onAccessibilityTap" | "onMagicTap" | "accessibilityIgnoresInvertColors" | "accessibilityLanguage" | "accessibilityShowsLargeContentViewer" | "accessibilityLargeContentTitle" | "accessibilityRespondsToUserInteraction" | "asChild" | "onPress" | "onPressIn" | "onPressOut" | "onLongPress" | "pressRetentionOffset" | "disabled" | "onHoverIn" | "onHoverOut" | "cancelable" | "delayHoverIn" | "delayHoverOut" | "delayLongPress" | "android_disableSound" | "android_ripple" | "testOnly_pressed" | "unstable_pressDelay"> & react.RefAttributes<View>>;
386
+
387
+ /**
388
+ * What is chosen, or the placeholder until something is.
389
+ *
390
+ * The label comes from the item that registered it, so the caller writes it once — in the
391
+ * list — rather than twice. `children` overrides that, which is the answer for a list
392
+ * rendered lazily: the root has never mounted the item, so it has never seen its label.
393
+ *
394
+ * Single-line by default. A value long enough to wrap would grow a control whose height
395
+ * is fixed, so it truncates instead.
396
+ */
397
+ declare const SelectValue: react.ForwardRefExoticComponent<{
398
+ placeholder?: string;
399
+ children?: react.ReactNode;
400
+ } & Omit<react_native.TextProps, keyof {
401
+ placeholder?: string;
402
+ children?: react.ReactNode;
403
+ }> & Omit<TextStyleProps, "style" | "children" | "id" | "onLayout" | "pointerEvents" | "testID" | "nativeID" | "accessible" | "accessibilityActions" | "accessibilityLabel" | "aria-label" | "accessibilityRole" | "accessibilityState" | "aria-busy" | "aria-checked" | "aria-disabled" | "aria-expanded" | "aria-selected" | "accessibilityHint" | "accessibilityValue" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "onAccessibilityAction" | "importantForAccessibility" | "aria-hidden" | "aria-modal" | "role" | "accessibilityLabelledBy" | "aria-labelledby" | "accessibilityLiveRegion" | "aria-live" | "screenReaderFocusable" | "accessibilityElementsHidden" | "accessibilityViewIsModal" | "onAccessibilityEscape" | "onAccessibilityTap" | "onMagicTap" | "accessibilityIgnoresInvertColors" | "accessibilityLanguage" | "accessibilityShowsLargeContentViewer" | "accessibilityLargeContentTitle" | "accessibilityRespondsToUserInteraction" | "allowFontScaling" | "ellipsizeMode" | "lineBreakMode" | "numberOfLines" | "onTextLayout" | "onPress" | "onPressIn" | "onPressOut" | "onLongPress" | "maxFontSizeMultiplier" | "minimumFontScale" | "pressRetentionOffset" | "adjustsFontSizeToFit" | "dynamicTypeRamp" | "suppressHighlighting" | "lineBreakStrategyIOS" | "disabled" | "selectable" | "selectionColor" | "textBreakStrategy" | "dataDetectorType" | "android_hyphenationFrequency" | "placeholder"> & react.RefAttributes<Text>>;
404
+
405
+ /** The default mark on the chosen row, for the same reason the chevron ships. */
406
+ declare function CheckIcon({ size, color, }: IconComponentProps): react.JSX.Element;
407
+ declare namespace CheckIcon {
408
+ var displayName: string;
409
+ }
410
+
411
+ /**
412
+ * The default chevron. Shipped rather than required from the caller, because a select
413
+ * with no affordance is a field that looks broken — and requiring an icon package for the
414
+ * one glyph the component cannot do without is a peer dependency for a chevron.
415
+ */
416
+ declare function ChevronDownIcon({ size, color, }: IconComponentProps): react.JSX.Element;
417
+ declare namespace ChevronDownIcon {
418
+ var displayName: string;
419
+ }
420
+
421
+ declare const useSelect: () => SelectContextValue;
422
+ declare const useSelectItem: () => SelectItemContextValue;
423
+
424
+ declare const selectRecipe: Recipe<"value" | "label" | "overlay" | "content" | "indicator" | "placeholder" | "trigger" | "item" | "itemLabel" | "itemDescription" | "itemIndicator", SelectVariant, {
425
+ readonly size: {
426
+ readonly sm: (theme: XAUITheme) => SlotStyles<SelectSlot>;
427
+ readonly md: (theme: XAUITheme) => SlotStyles<SelectSlot>;
428
+ readonly lg: (theme: XAUITheme) => SlotStyles<SelectSlot>;
429
+ };
430
+ readonly radius: Record<RadiusKey, StyleFn<"trigger">>;
431
+ /**
432
+ * Open is not `focused`: the field's focus border is what a keyboard gives a text
433
+ * input, and a select that is open has no caret in it. It borrows the same token
434
+ * because the two mean the same thing to the eye — this control is the live one.
435
+ */
436
+ readonly isOpen: {
437
+ readonly true: (theme: XAUITheme) => {
438
+ trigger: {
439
+ borderColor: string;
440
+ };
441
+ };
442
+ };
443
+ readonly isInvalid: {
444
+ readonly true: (theme: XAUITheme) => {
445
+ trigger: {
446
+ borderColor: string;
447
+ };
448
+ };
449
+ };
450
+ }>;
451
+
452
+ declare const Select: typeof Select$1 & {
453
+ Trigger: react.ForwardRefExoticComponent<{
454
+ children?: react.ReactNode;
455
+ asChild?: boolean;
456
+ } & Omit<react_native.PressableProps, keyof {
457
+ children?: react.ReactNode;
458
+ asChild?: boolean;
459
+ }> & Omit<ViewStyleProps, "style" | "children" | "hitSlop" | "id" | "needsOffscreenAlphaCompositing" | "onLayout" | "pointerEvents" | "removeClippedSubviews" | "testID" | "nativeID" | "collapsable" | "collapsableChildren" | "onBlur" | "onFocus" | "renderToHardwareTextureAndroid" | "focusable" | "tabIndex" | "shouldRasterizeIOS" | "isTVSelectable" | "hasTVPreferredFocus" | "tvParallaxShiftDistanceX" | "tvParallaxShiftDistanceY" | "tvParallaxTiltAngle" | "tvParallaxMagnification" | "onStartShouldSetResponder" | "onMoveShouldSetResponder" | "onResponderEnd" | "onResponderGrant" | "onResponderReject" | "onResponderMove" | "onResponderRelease" | "onResponderStart" | "onResponderTerminationRequest" | "onResponderTerminate" | "onStartShouldSetResponderCapture" | "onMoveShouldSetResponderCapture" | "onTouchStart" | "onTouchMove" | "onTouchEnd" | "onTouchCancel" | "onTouchEndCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerUp" | "onPointerUpCapture" | "accessible" | "accessibilityActions" | "accessibilityLabel" | "aria-label" | "accessibilityRole" | "accessibilityState" | "aria-busy" | "aria-checked" | "aria-disabled" | "aria-expanded" | "aria-selected" | "accessibilityHint" | "accessibilityValue" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "onAccessibilityAction" | "importantForAccessibility" | "aria-hidden" | "aria-modal" | "role" | "accessibilityLabelledBy" | "aria-labelledby" | "accessibilityLiveRegion" | "aria-live" | "screenReaderFocusable" | "accessibilityElementsHidden" | "accessibilityViewIsModal" | "onAccessibilityEscape" | "onAccessibilityTap" | "onMagicTap" | "accessibilityIgnoresInvertColors" | "accessibilityLanguage" | "accessibilityShowsLargeContentViewer" | "accessibilityLargeContentTitle" | "accessibilityRespondsToUserInteraction" | "asChild" | "onPress" | "onPressIn" | "onPressOut" | "onLongPress" | "pressRetentionOffset" | "disabled" | "onHoverIn" | "onHoverOut" | "cancelable" | "delayHoverIn" | "delayHoverOut" | "delayLongPress" | "android_disableSound" | "android_ripple" | "testOnly_pressed" | "unstable_pressDelay"> & react.RefAttributes<react_native.View>>;
460
+ Value: react.ForwardRefExoticComponent<{
461
+ placeholder?: string;
462
+ children?: react.ReactNode;
463
+ } & Omit<react_native.TextProps, keyof {
464
+ placeholder?: string;
465
+ children?: react.ReactNode;
466
+ }> & Omit<TextStyleProps, "style" | "children" | "id" | "onLayout" | "pointerEvents" | "testID" | "nativeID" | "accessible" | "accessibilityActions" | "accessibilityLabel" | "aria-label" | "accessibilityRole" | "accessibilityState" | "aria-busy" | "aria-checked" | "aria-disabled" | "aria-expanded" | "aria-selected" | "accessibilityHint" | "accessibilityValue" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "onAccessibilityAction" | "importantForAccessibility" | "aria-hidden" | "aria-modal" | "role" | "accessibilityLabelledBy" | "aria-labelledby" | "accessibilityLiveRegion" | "aria-live" | "screenReaderFocusable" | "accessibilityElementsHidden" | "accessibilityViewIsModal" | "onAccessibilityEscape" | "onAccessibilityTap" | "onMagicTap" | "accessibilityIgnoresInvertColors" | "accessibilityLanguage" | "accessibilityShowsLargeContentViewer" | "accessibilityLargeContentTitle" | "accessibilityRespondsToUserInteraction" | "allowFontScaling" | "ellipsizeMode" | "lineBreakMode" | "numberOfLines" | "onTextLayout" | "onPress" | "onPressIn" | "onPressOut" | "onLongPress" | "maxFontSizeMultiplier" | "minimumFontScale" | "pressRetentionOffset" | "adjustsFontSizeToFit" | "dynamicTypeRamp" | "suppressHighlighting" | "lineBreakStrategyIOS" | "disabled" | "selectable" | "selectionColor" | "textBreakStrategy" | "dataDetectorType" | "android_hyphenationFrequency" | "placeholder"> & react.RefAttributes<react_native.Text>>;
467
+ Indicator: typeof SelectIndicator;
468
+ Overlay: react.ForwardRefExoticComponent<{
469
+ children?: react.ReactNode;
470
+ isDismissable?: boolean;
471
+ } & Omit<react_native.ViewProps, keyof {
472
+ children?: react.ReactNode;
473
+ isDismissable?: boolean;
474
+ }> & Omit<ViewStyleProps, "style" | "children" | "hitSlop" | "id" | "needsOffscreenAlphaCompositing" | "onLayout" | "pointerEvents" | "removeClippedSubviews" | "testID" | "nativeID" | "collapsable" | "collapsableChildren" | "onBlur" | "onFocus" | "renderToHardwareTextureAndroid" | "focusable" | "tabIndex" | "shouldRasterizeIOS" | "isTVSelectable" | "hasTVPreferredFocus" | "tvParallaxShiftDistanceX" | "tvParallaxShiftDistanceY" | "tvParallaxTiltAngle" | "tvParallaxMagnification" | "onStartShouldSetResponder" | "onMoveShouldSetResponder" | "onResponderEnd" | "onResponderGrant" | "onResponderReject" | "onResponderMove" | "onResponderRelease" | "onResponderStart" | "onResponderTerminationRequest" | "onResponderTerminate" | "onStartShouldSetResponderCapture" | "onMoveShouldSetResponderCapture" | "onTouchStart" | "onTouchMove" | "onTouchEnd" | "onTouchCancel" | "onTouchEndCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerUp" | "onPointerUpCapture" | "accessible" | "accessibilityActions" | "accessibilityLabel" | "aria-label" | "accessibilityRole" | "accessibilityState" | "aria-busy" | "aria-checked" | "aria-disabled" | "aria-expanded" | "aria-selected" | "accessibilityHint" | "accessibilityValue" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "onAccessibilityAction" | "importantForAccessibility" | "aria-hidden" | "aria-modal" | "role" | "accessibilityLabelledBy" | "aria-labelledby" | "accessibilityLiveRegion" | "aria-live" | "screenReaderFocusable" | "accessibilityElementsHidden" | "accessibilityViewIsModal" | "onAccessibilityEscape" | "onAccessibilityTap" | "onMagicTap" | "accessibilityIgnoresInvertColors" | "accessibilityLanguage" | "accessibilityShowsLargeContentViewer" | "accessibilityLargeContentTitle" | "accessibilityRespondsToUserInteraction" | "isDismissable"> & react.RefAttributes<react_native.View>>;
475
+ Content: react.ForwardRefExoticComponent<{
476
+ children?: react.ReactNode;
477
+ placement?: SelectPlacement;
478
+ align?: SelectAlign;
479
+ width?: SelectWidth;
480
+ offset?: number;
481
+ alignOffset?: number;
482
+ avoidCollisions?: boolean;
483
+ insets?: SelectInsets;
484
+ } & Omit<react_native.ViewProps, keyof {
485
+ children?: react.ReactNode;
486
+ placement?: SelectPlacement;
487
+ align?: SelectAlign;
488
+ width?: SelectWidth;
489
+ offset?: number;
490
+ alignOffset?: number;
491
+ avoidCollisions?: boolean;
492
+ insets?: SelectInsets;
493
+ }> & Omit<ViewStyleProps, "style" | "children" | "hitSlop" | "id" | "needsOffscreenAlphaCompositing" | "onLayout" | "pointerEvents" | "removeClippedSubviews" | "testID" | "nativeID" | "collapsable" | "collapsableChildren" | "onBlur" | "onFocus" | "renderToHardwareTextureAndroid" | "focusable" | "tabIndex" | "shouldRasterizeIOS" | "isTVSelectable" | "hasTVPreferredFocus" | "tvParallaxShiftDistanceX" | "tvParallaxShiftDistanceY" | "tvParallaxTiltAngle" | "tvParallaxMagnification" | "onStartShouldSetResponder" | "onMoveShouldSetResponder" | "onResponderEnd" | "onResponderGrant" | "onResponderReject" | "onResponderMove" | "onResponderRelease" | "onResponderStart" | "onResponderTerminationRequest" | "onResponderTerminate" | "onStartShouldSetResponderCapture" | "onMoveShouldSetResponderCapture" | "onTouchStart" | "onTouchMove" | "onTouchEnd" | "onTouchCancel" | "onTouchEndCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerUp" | "onPointerUpCapture" | "accessible" | "accessibilityActions" | "accessibilityLabel" | "aria-label" | "accessibilityRole" | "accessibilityState" | "aria-busy" | "aria-checked" | "aria-disabled" | "aria-expanded" | "aria-selected" | "accessibilityHint" | "accessibilityValue" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "onAccessibilityAction" | "importantForAccessibility" | "aria-hidden" | "aria-modal" | "role" | "accessibilityLabelledBy" | "aria-labelledby" | "accessibilityLiveRegion" | "aria-live" | "screenReaderFocusable" | "accessibilityElementsHidden" | "accessibilityViewIsModal" | "onAccessibilityEscape" | "onAccessibilityTap" | "onMagicTap" | "accessibilityIgnoresInvertColors" | "accessibilityLanguage" | "accessibilityShowsLargeContentViewer" | "accessibilityLargeContentTitle" | "accessibilityRespondsToUserInteraction" | "width" | "placement" | "align" | "offset" | "alignOffset" | "avoidCollisions" | "insets"> & react.RefAttributes<react_native.View>>;
494
+ Label: react.ForwardRefExoticComponent<{
495
+ children?: react.ReactNode;
496
+ } & Omit<react_native.TextProps, "children"> & Omit<TextStyleProps, keyof react_native.TextProps> & react.RefAttributes<react_native.Text>>;
497
+ Item: react.ForwardRefExoticComponent<{
498
+ value: string;
499
+ label?: string;
500
+ isDisabled?: boolean;
501
+ children?: react.ReactNode | ((state: SelectItemRenderState) => react.ReactNode);
502
+ asChild?: boolean;
503
+ } & Omit<react_native.PressableProps, keyof {
504
+ value: string;
505
+ label?: string;
506
+ isDisabled?: boolean;
507
+ children?: react.ReactNode | ((state: SelectItemRenderState) => react.ReactNode);
508
+ asChild?: boolean;
509
+ }> & Omit<ViewStyleProps, "style" | "children" | "hitSlop" | "id" | "needsOffscreenAlphaCompositing" | "onLayout" | "pointerEvents" | "removeClippedSubviews" | "testID" | "nativeID" | "collapsable" | "collapsableChildren" | "onBlur" | "onFocus" | "renderToHardwareTextureAndroid" | "focusable" | "tabIndex" | "shouldRasterizeIOS" | "isTVSelectable" | "hasTVPreferredFocus" | "tvParallaxShiftDistanceX" | "tvParallaxShiftDistanceY" | "tvParallaxTiltAngle" | "tvParallaxMagnification" | "onStartShouldSetResponder" | "onMoveShouldSetResponder" | "onResponderEnd" | "onResponderGrant" | "onResponderReject" | "onResponderMove" | "onResponderRelease" | "onResponderStart" | "onResponderTerminationRequest" | "onResponderTerminate" | "onStartShouldSetResponderCapture" | "onMoveShouldSetResponderCapture" | "onTouchStart" | "onTouchMove" | "onTouchEnd" | "onTouchCancel" | "onTouchEndCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerUp" | "onPointerUpCapture" | "accessible" | "accessibilityActions" | "accessibilityLabel" | "aria-label" | "accessibilityRole" | "accessibilityState" | "aria-busy" | "aria-checked" | "aria-disabled" | "aria-expanded" | "aria-selected" | "accessibilityHint" | "accessibilityValue" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "onAccessibilityAction" | "importantForAccessibility" | "aria-hidden" | "aria-modal" | "role" | "accessibilityLabelledBy" | "aria-labelledby" | "accessibilityLiveRegion" | "aria-live" | "screenReaderFocusable" | "accessibilityElementsHidden" | "accessibilityViewIsModal" | "onAccessibilityEscape" | "onAccessibilityTap" | "onMagicTap" | "accessibilityIgnoresInvertColors" | "accessibilityLanguage" | "accessibilityShowsLargeContentViewer" | "accessibilityLargeContentTitle" | "accessibilityRespondsToUserInteraction" | "asChild" | "onPress" | "onPressIn" | "onPressOut" | "onLongPress" | "pressRetentionOffset" | "disabled" | "value" | "onHoverIn" | "onHoverOut" | "cancelable" | "delayHoverIn" | "delayHoverOut" | "delayLongPress" | "android_disableSound" | "android_ripple" | "testOnly_pressed" | "unstable_pressDelay" | "label" | "isDisabled"> & react.RefAttributes<react_native.View>>;
510
+ ItemLabel: react.ForwardRefExoticComponent<{
511
+ children?: react.ReactNode;
512
+ } & Omit<react_native.TextProps, "children"> & Omit<TextStyleProps, keyof react_native.TextProps> & react.RefAttributes<react_native.Text>>;
513
+ ItemDescription: react.ForwardRefExoticComponent<{
514
+ children?: react.ReactNode;
515
+ } & Omit<react_native.TextProps, "children"> & Omit<TextStyleProps, keyof react_native.TextProps> & react.RefAttributes<react_native.Text>>;
516
+ ItemIndicator: typeof SelectItemIndicator;
517
+ };
518
+
519
+ export { CheckIcon, ChevronDownIcon, Select, type SelectAlign, type SelectAnchor, SelectContent, type SelectContentProps, type SelectContextValue, SelectIndicator, type SelectIndicatorProps, type SelectInsets, SelectItem, type SelectItemContextValue, SelectItemDescription, type SelectItemDescriptionProps, SelectItemIndicator, type SelectItemIndicatorProps, SelectItemLabel, type SelectItemLabelProps, type SelectItemProps, type SelectItemRenderState, SelectLabel, type SelectLabelProps, SelectOverlay, type SelectOverlayProps, type SelectPlacement, type SelectProps, Select$1 as SelectRoot, type SelectSize, type SelectSlot, SelectTrigger, type SelectTriggerProps, SelectValue, type SelectValueProps, type SelectVariant, type SelectWidth, selectRecipe, useSelect, useSelectItem };
@@ -0,0 +1,47 @@
1
+ import {
2
+ CheckIcon,
3
+ ChevronDownIcon,
4
+ Select,
5
+ Select2,
6
+ SelectContent,
7
+ SelectIndicator,
8
+ SelectItem,
9
+ SelectItemDescription,
10
+ SelectItemIndicator,
11
+ SelectItemLabel,
12
+ SelectLabel,
13
+ SelectOverlay,
14
+ SelectTrigger,
15
+ SelectValue,
16
+ selectRecipe,
17
+ useSelect,
18
+ useSelectItem
19
+ } from "../../chunk-XWY4DF37.js";
20
+ import "../../chunk-2PMXMKS5.js";
21
+ import "../../chunk-HXW4ANVB.js";
22
+ import "../../chunk-UGF35NSE.js";
23
+ import "../../chunk-423RQBOX.js";
24
+ import "../../chunk-YXPYOOHU.js";
25
+ import "../../chunk-36PRYGAM.js";
26
+ import "../../chunk-4GTAZM2C.js";
27
+ import "../../chunk-A3EGFI6T.js";
28
+ import "../../chunk-M63GFNKV.js";
29
+ export {
30
+ CheckIcon,
31
+ ChevronDownIcon,
32
+ Select2 as Select,
33
+ SelectContent,
34
+ SelectIndicator,
35
+ SelectItem,
36
+ SelectItemDescription,
37
+ SelectItemIndicator,
38
+ SelectItemLabel,
39
+ SelectLabel,
40
+ SelectOverlay,
41
+ Select as SelectRoot,
42
+ SelectTrigger,
43
+ SelectValue,
44
+ selectRecipe,
45
+ useSelect,
46
+ useSelectItem
47
+ };
@@ -1,12 +1,11 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
3
 
4
- var _chunkAQXNEV6Jcjs = require('../../chunk-AQXNEV6J.cjs');
4
+ var _chunkSNIHUKDAcjs = require('../../chunk-SNIHUKDA.cjs');
5
5
  require('../../chunk-FNEUOBCV.cjs');
6
- require('../../chunk-K3AVOT6L.cjs');
7
6
  require('../../chunk-57SJ4LJF.cjs');
8
- require('../../chunk-HT7H35GU.cjs');
7
+ require('../../chunk-TK44VBIE.cjs');
9
8
 
10
9
 
11
10
 
12
- exports.Skeleton = _chunkAQXNEV6Jcjs.Skeleton; exports.skeletonRecipe = _chunkAQXNEV6Jcjs.skeletonRecipe;
11
+ exports.Skeleton = _chunkSNIHUKDAcjs.Skeleton; exports.skeletonRecipe = _chunkSNIHUKDAcjs.skeletonRecipe;
@@ -37,7 +37,7 @@ declare const Skeleton: react.ForwardRefExoticComponent<Omit<ViewProps, "style">
37
37
  animation?: boolean;
38
38
  children?: react.ReactNode;
39
39
  style?: StyleProp<ViewStyle>;
40
- } & Omit<ViewStyleProps, "color" | "pointerEvents" | "style" | "children" | "hitSlop" | "id" | "needsOffscreenAlphaCompositing" | "onLayout" | "removeClippedSubviews" | "testID" | "nativeID" | "collapsable" | "collapsableChildren" | "onBlur" | "onFocus" | "renderToHardwareTextureAndroid" | "focusable" | "tabIndex" | "shouldRasterizeIOS" | "isTVSelectable" | "hasTVPreferredFocus" | "tvParallaxShiftDistanceX" | "tvParallaxShiftDistanceY" | "tvParallaxTiltAngle" | "tvParallaxMagnification" | "onStartShouldSetResponder" | "onMoveShouldSetResponder" | "onResponderEnd" | "onResponderGrant" | "onResponderReject" | "onResponderMove" | "onResponderRelease" | "onResponderStart" | "onResponderTerminationRequest" | "onResponderTerminate" | "onStartShouldSetResponderCapture" | "onMoveShouldSetResponderCapture" | "onTouchStart" | "onTouchMove" | "onTouchEnd" | "onTouchCancel" | "onTouchEndCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerUp" | "onPointerUpCapture" | "accessible" | "accessibilityActions" | "accessibilityLabel" | "aria-label" | "accessibilityRole" | "accessibilityState" | "aria-busy" | "aria-checked" | "aria-disabled" | "aria-expanded" | "aria-selected" | "accessibilityHint" | "accessibilityValue" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "onAccessibilityAction" | "importantForAccessibility" | "aria-hidden" | "aria-modal" | "role" | "accessibilityLabelledBy" | "aria-labelledby" | "accessibilityLiveRegion" | "aria-live" | "screenReaderFocusable" | "accessibilityElementsHidden" | "accessibilityViewIsModal" | "onAccessibilityEscape" | "onAccessibilityTap" | "onMagicTap" | "accessibilityIgnoresInvertColors" | "accessibilityLanguage" | "accessibilityShowsLargeContentViewer" | "accessibilityLargeContentTitle" | "accessibilityRespondsToUserInteraction" | "animation" | "radius" | "isLoading"> & react.RefAttributes<View>>;
40
+ } & Omit<ViewStyleProps, "style" | "children" | "hitSlop" | "id" | "needsOffscreenAlphaCompositing" | "onLayout" | "pointerEvents" | "removeClippedSubviews" | "testID" | "nativeID" | "collapsable" | "collapsableChildren" | "onBlur" | "onFocus" | "renderToHardwareTextureAndroid" | "focusable" | "tabIndex" | "shouldRasterizeIOS" | "isTVSelectable" | "hasTVPreferredFocus" | "tvParallaxShiftDistanceX" | "tvParallaxShiftDistanceY" | "tvParallaxTiltAngle" | "tvParallaxMagnification" | "onStartShouldSetResponder" | "onMoveShouldSetResponder" | "onResponderEnd" | "onResponderGrant" | "onResponderReject" | "onResponderMove" | "onResponderRelease" | "onResponderStart" | "onResponderTerminationRequest" | "onResponderTerminate" | "onStartShouldSetResponderCapture" | "onMoveShouldSetResponderCapture" | "onTouchStart" | "onTouchMove" | "onTouchEnd" | "onTouchCancel" | "onTouchEndCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerUp" | "onPointerUpCapture" | "accessible" | "accessibilityActions" | "accessibilityLabel" | "aria-label" | "accessibilityRole" | "accessibilityState" | "aria-busy" | "aria-checked" | "aria-disabled" | "aria-expanded" | "aria-selected" | "accessibilityHint" | "accessibilityValue" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "onAccessibilityAction" | "importantForAccessibility" | "aria-hidden" | "aria-modal" | "role" | "accessibilityLabelledBy" | "aria-labelledby" | "accessibilityLiveRegion" | "aria-live" | "screenReaderFocusable" | "accessibilityElementsHidden" | "accessibilityViewIsModal" | "onAccessibilityEscape" | "onAccessibilityTap" | "onMagicTap" | "accessibilityIgnoresInvertColors" | "accessibilityLanguage" | "accessibilityShowsLargeContentViewer" | "accessibilityLargeContentTitle" | "accessibilityRespondsToUserInteraction" | "radius" | "color" | "animation" | "isLoading"> & react.RefAttributes<View>>;
41
41
 
42
42
  declare const skeletonRecipe: Recipe<"root", "default", {
43
43
  readonly radius: Record<RadiusKey, StyleFn<"root">>;