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

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 (149) hide show
  1. package/dist/{chunk-OULTSBKU.js → chunk-26OGEFQI.js} +1 -1
  2. package/dist/chunk-2EGR4LWD.js +145 -0
  3. package/dist/{chunk-TJHYSSBZ.js → chunk-346QBNUD.js} +1 -1
  4. package/dist/chunk-37L7YGZV.cjs +425 -0
  5. package/dist/{chunk-PPWXLZGL.js → chunk-3GFRSZYR.js} +15 -23
  6. package/dist/{chunk-DKH6BNPF.cjs → chunk-3JXI2IHV.cjs} +13 -13
  7. package/dist/{chunk-7B3UBUC6.cjs → chunk-4KFKWBN5.cjs} +23 -2
  8. package/dist/{chunk-IGLKACSR.cjs → chunk-4KSKQD37.cjs} +5 -5
  9. package/dist/{chunk-UBOXW5WO.cjs → chunk-54CWXA34.cjs} +61 -61
  10. package/dist/chunk-64MXEVT3.js +66 -0
  11. package/dist/{chunk-ZJWEVFAO.cjs → chunk-66FOASTP.cjs} +9 -9
  12. package/dist/{chunk-5PPNDKRX.js → chunk-6CO6FM67.js} +16 -16
  13. package/dist/{chunk-DVDQSW7U.cjs → chunk-76XDVA24.cjs} +65 -190
  14. package/dist/{chunk-54FJOKAN.cjs → chunk-7GHM4GKL.cjs} +25 -25
  15. package/dist/chunk-7KLBTMXV.cjs +478 -0
  16. package/dist/{chunk-AP6RVIIK.cjs → chunk-7TOG4TVU.cjs} +21 -21
  17. package/dist/{chunk-LEWW24RQ.cjs → chunk-A7YB7YWX.cjs} +3 -3
  18. package/dist/{chunk-3P6M2R4S.cjs → chunk-AAVCMCJ3.cjs} +4 -4
  19. package/dist/{chunk-VFTT3Q4B.cjs → chunk-BNFIFRQA.cjs} +3 -3
  20. package/dist/{chunk-JXNFOOKC.js → chunk-DY3SUG5P.js} +5 -5
  21. package/dist/chunk-EKS3W46M.cjs +66 -0
  22. package/dist/{chunk-EOJ5MYAQ.js → chunk-EYD4H4X6.js} +4 -4
  23. package/dist/{chunk-RGKWNK4T.js → chunk-FBCWNXZC.js} +58 -58
  24. package/dist/{chunk-HXW4ANVB.js → chunk-FHUYHV6J.js} +25 -4
  25. package/dist/chunk-GJSFKH4L.js +586 -0
  26. package/dist/{chunk-6G3XWPNP.js → chunk-HA6BFY3A.js} +3 -3
  27. package/dist/{chunk-FTQHDJYL.cjs → chunk-HOI5425P.cjs} +9 -9
  28. package/dist/{chunk-XWY4DF37.js → chunk-JKP4TPIL.js} +86 -289
  29. package/dist/{chunk-YXPYOOHU.js → chunk-K72UDPVN.js} +27 -27
  30. package/dist/{chunk-NTD3NPRX.cjs → chunk-KSUV74BE.cjs} +2 -2
  31. package/dist/{chunk-UGF35NSE.js → chunk-LIUO6D3D.js} +75 -75
  32. package/dist/{chunk-E3X5ODKQ.js → chunk-LTX6TB5I.js} +1 -1
  33. package/dist/chunk-LUPCPLND.cjs +145 -0
  34. package/dist/{chunk-BORJJYDW.js → chunk-MXGER5PI.js} +2 -2
  35. package/dist/{chunk-GTT4NHS2.cjs → chunk-NCCRQK3P.cjs} +11 -11
  36. package/dist/chunk-NCTOTTVW.js +13 -0
  37. package/dist/{chunk-NKPTXTTS.js → chunk-QZ24MZRX.js} +3 -3
  38. package/dist/{chunk-7LSY4WFL.js → chunk-R7BU4CPS.js} +2 -2
  39. package/dist/{chunk-JB5LGQ54.cjs → chunk-RKCWYUGA.cjs} +3 -3
  40. package/dist/{chunk-SMW6ZWMH.js → chunk-S2WNWMNT.js} +1 -1
  41. package/dist/{chunk-WVLSQO6K.cjs → chunk-S4QUM4EE.cjs} +9 -9
  42. package/dist/{chunk-SO5UAGIU.js → chunk-SACDOFGF.js} +15 -15
  43. package/dist/{chunk-CUQTAPBU.cjs → chunk-SIP5J7HU.cjs} +17 -17
  44. package/dist/{chunk-O3A3DBSZ.js → chunk-SZLXPF3G.js} +1 -1
  45. package/dist/{chunk-437QULXO.cjs → chunk-TDTUAIFF.cjs} +5 -5
  46. package/dist/{chunk-DRMT346W.cjs → chunk-TGMVEHV7.cjs} +64 -64
  47. package/dist/{chunk-TDYPY2J7.js → chunk-TRETQZEW.js} +7 -7
  48. package/dist/{chunk-ITURCQMQ.cjs → chunk-URA25DU4.cjs} +5 -5
  49. package/dist/{chunk-4PTWZCOK.js → chunk-USF6EWYR.js} +7 -7
  50. package/dist/{chunk-P747CRAY.cjs → chunk-VZK3NLBH.cjs} +9 -9
  51. package/dist/chunk-WFEMJCXO.cjs +13 -0
  52. package/dist/chunk-XAFP5JLK.js +425 -0
  53. package/dist/{chunk-RVRVGG73.js → chunk-XNMZQSY5.js} +2 -2
  54. package/dist/{chunk-K4TWKF5U.cjs → chunk-XSQPVDFH.cjs} +15 -25
  55. package/dist/{chunk-JDSE4TQL.js → chunk-XTC2SLFT.js} +1 -1
  56. package/dist/{chunk-C5VDFRAD.cjs → chunk-XWNG2U4K.cjs} +2 -2
  57. package/dist/components/accordion/index.cjs +35 -0
  58. package/dist/components/accordion/index.d.cts +299 -0
  59. package/dist/components/accordion/index.d.ts +299 -0
  60. package/dist/components/accordion/index.js +35 -0
  61. package/dist/components/alert/index.cjs +7 -7
  62. package/dist/components/alert/index.d.cts +2 -2
  63. package/dist/components/alert/index.d.ts +2 -2
  64. package/dist/components/alert/index.js +6 -6
  65. package/dist/components/avatar/index.cjs +4 -4
  66. package/dist/components/avatar/index.d.cts +3 -3
  67. package/dist/components/avatar/index.d.ts +3 -3
  68. package/dist/components/avatar/index.js +3 -3
  69. package/dist/components/badge/index.cjs +3 -3
  70. package/dist/components/badge/index.d.cts +1 -1
  71. package/dist/components/badge/index.d.ts +1 -1
  72. package/dist/components/badge/index.js +2 -2
  73. package/dist/components/button/index.cjs +8 -7
  74. package/dist/components/button/index.d.cts +204 -204
  75. package/dist/components/button/index.d.ts +204 -204
  76. package/dist/components/button/index.js +7 -6
  77. package/dist/components/card/index.cjs +5 -5
  78. package/dist/components/card/index.d.cts +206 -206
  79. package/dist/components/card/index.d.ts +206 -206
  80. package/dist/components/card/index.js +4 -4
  81. package/dist/components/checkbox/index.cjs +5 -5
  82. package/dist/components/checkbox/index.d.cts +408 -408
  83. package/dist/components/checkbox/index.d.ts +408 -408
  84. package/dist/components/checkbox/index.js +4 -4
  85. package/dist/components/chip/index.cjs +7 -7
  86. package/dist/components/chip/index.d.cts +205 -205
  87. package/dist/components/chip/index.d.ts +205 -205
  88. package/dist/components/chip/index.js +6 -6
  89. package/dist/components/divider/index.cjs +3 -3
  90. package/dist/components/divider/index.d.cts +3 -3
  91. package/dist/components/divider/index.d.ts +3 -3
  92. package/dist/components/divider/index.js +2 -2
  93. package/dist/components/field-group/index.cjs +5 -5
  94. package/dist/components/field-group/index.d.cts +8 -8
  95. package/dist/components/field-group/index.d.ts +8 -8
  96. package/dist/components/field-group/index.js +4 -4
  97. package/dist/components/input-otp/index.cjs +3 -3
  98. package/dist/components/input-otp/index.d.cts +2 -2
  99. package/dist/components/input-otp/index.d.ts +2 -2
  100. package/dist/components/input-otp/index.js +2 -2
  101. package/dist/components/popover/index.cjs +37 -0
  102. package/dist/components/popover/index.d.cts +254 -0
  103. package/dist/components/popover/index.d.ts +254 -0
  104. package/dist/components/popover/index.js +37 -0
  105. package/dist/components/radio/index.cjs +5 -5
  106. package/dist/components/radio/index.d.cts +419 -419
  107. package/dist/components/radio/index.d.ts +419 -419
  108. package/dist/components/radio/index.js +4 -4
  109. package/dist/components/select/index.cjs +10 -7
  110. package/dist/components/select/index.d.cts +24 -45
  111. package/dist/components/select/index.d.ts +24 -45
  112. package/dist/components/select/index.js +9 -6
  113. package/dist/components/skeleton/index.d.cts +1 -1
  114. package/dist/components/skeleton/index.d.ts +1 -1
  115. package/dist/components/spinner/index.cjs +5 -4
  116. package/dist/components/spinner/index.d.cts +1 -1
  117. package/dist/components/spinner/index.d.ts +1 -1
  118. package/dist/components/spinner/index.js +4 -3
  119. package/dist/components/switch/index.cjs +5 -5
  120. package/dist/components/switch/index.d.cts +409 -409
  121. package/dist/components/switch/index.d.ts +409 -409
  122. package/dist/components/switch/index.js +4 -4
  123. package/dist/components/text-area/index.cjs +4 -4
  124. package/dist/components/text-area/index.js +3 -3
  125. package/dist/components/text-field/index.cjs +3 -3
  126. package/dist/components/text-field/index.d.cts +3 -3
  127. package/dist/components/text-field/index.d.ts +3 -3
  128. package/dist/components/text-field/index.js +2 -2
  129. package/dist/components/typography/index.cjs +3 -3
  130. package/dist/components/typography/index.d.cts +5 -5
  131. package/dist/components/typography/index.d.ts +5 -5
  132. package/dist/components/typography/index.js +2 -2
  133. package/dist/components/view/index.cjs +3 -3
  134. package/dist/components/view/index.d.cts +8 -8
  135. package/dist/components/view/index.d.ts +8 -8
  136. package/dist/components/view/index.js +2 -2
  137. package/dist/index.cjs +89 -28
  138. package/dist/index.d.cts +5 -2
  139. package/dist/index.d.ts +5 -2
  140. package/dist/index.js +109 -48
  141. package/dist/placement-DHa0Rrh1.d.cts +38 -0
  142. package/dist/placement-DHa0Rrh1.d.ts +38 -0
  143. package/dist/system/index.cjs +24 -8
  144. package/dist/system/index.d.cts +83 -34
  145. package/dist/system/index.d.ts +83 -34
  146. package/dist/system/index.js +24 -8
  147. package/package.json +21 -1
  148. /package/dist/{chunk-OJCCV65P.cjs → chunk-GGW43Q37.cjs} +0 -0
  149. /package/dist/{chunk-MESKS6AI.js → chunk-WHJTBTYM.js} +0 -0
package/dist/index.js CHANGED
@@ -1,20 +1,33 @@
1
+ import {
2
+ Spinner,
3
+ spinnerRecipe
4
+ } from "./chunk-LTX6TB5I.js";
5
+ import {
6
+ Switch,
7
+ SwitchLabel,
8
+ SwitchRoot,
9
+ SwitchThumb,
10
+ SwitchTrack,
11
+ switchRecipe,
12
+ useSwitch
13
+ } from "./chunk-FBCWNXZC.js";
1
14
  import {
2
15
  TextArea,
3
16
  useTextArea
4
- } from "./chunk-7LSY4WFL.js";
17
+ } from "./chunk-R7BU4CPS.js";
5
18
  import {
6
19
  TextSpan,
7
20
  Typography,
8
21
  typographyRecipe
9
- } from "./chunk-O3A3DBSZ.js";
22
+ } from "./chunk-SZLXPF3G.js";
10
23
  import {
11
24
  Column,
12
25
  Grid,
13
26
  Row,
14
27
  Stack,
15
28
  useGrid
16
- } from "./chunk-JDSE4TQL.js";
17
- import "./chunk-MESKS6AI.js";
29
+ } from "./chunk-XTC2SLFT.js";
30
+ import "./chunk-WHJTBTYM.js";
18
31
  import {
19
32
  XAUIProvider,
20
33
  buildRadius,
@@ -27,10 +40,15 @@ import {
27
40
  sourceKeys,
28
41
  tokens
29
42
  } from "./chunk-WKCQ6VGW.js";
43
+ import {
44
+ Chip,
45
+ chipRecipe,
46
+ useChip
47
+ } from "./chunk-USF6EWYR.js";
30
48
  import {
31
49
  Divider,
32
50
  dividerRecipe
33
- } from "./chunk-OULTSBKU.js";
51
+ } from "./chunk-26OGEFQI.js";
34
52
  import {
35
53
  FieldGroup,
36
54
  FieldGroupField,
@@ -40,7 +58,7 @@ import {
40
58
  FieldGroupSuffix,
41
59
  decoratorPadding,
42
60
  useFieldGroup
43
- } from "./chunk-NKPTXTTS.js";
61
+ } from "./chunk-QZ24MZRX.js";
44
62
  import {
45
63
  TextField,
46
64
  TextFieldDescription,
@@ -50,7 +68,7 @@ import {
50
68
  TextFieldRoot,
51
69
  textFieldRecipe,
52
70
  useTextField
53
- } from "./chunk-SMW6ZWMH.js";
71
+ } from "./chunk-S2WNWMNT.js";
54
72
  import {
55
73
  InputOTP,
56
74
  OTP_ALPHANUMERIC,
@@ -61,7 +79,19 @@ import {
61
79
  inputOTPRecipe,
62
80
  useInputOTP,
63
81
  useInputOTPBox
64
- } from "./chunk-SO5UAGIU.js";
82
+ } from "./chunk-SACDOFGF.js";
83
+ import {
84
+ Popover,
85
+ Popover2,
86
+ PopoverClose,
87
+ PopoverContent,
88
+ PopoverDescription,
89
+ PopoverOverlay,
90
+ PopoverTitle,
91
+ PopoverTrigger,
92
+ popoverRecipe,
93
+ usePopover
94
+ } from "./chunk-XAFP5JLK.js";
65
95
  import {
66
96
  Radio,
67
97
  RadioIndicator,
@@ -69,10 +99,9 @@ import {
69
99
  RadioRoot,
70
100
  radioRecipe,
71
101
  useRadio
72
- } from "./chunk-RVRVGG73.js";
102
+ } from "./chunk-XNMZQSY5.js";
73
103
  import {
74
104
  CheckIcon,
75
- ChevronDownIcon,
76
105
  Select,
77
106
  Select2,
78
107
  SelectContent,
@@ -88,7 +117,8 @@ import {
88
117
  selectRecipe,
89
118
  useSelect,
90
119
  useSelectItem
91
- } from "./chunk-XWY4DF37.js";
120
+ } from "./chunk-JKP4TPIL.js";
121
+ import "./chunk-2EGR4LWD.js";
92
122
  import {
93
123
  Portal,
94
124
  PortalContext,
@@ -99,51 +129,70 @@ import {
99
129
  skeletonRecipe
100
130
  } from "./chunk-IKJVLJKT.js";
101
131
  import {
102
- Spinner,
103
- spinnerRecipe
104
- } from "./chunk-E3X5ODKQ.js";
105
- import {
106
- Switch,
107
- SwitchLabel,
108
- SwitchRoot,
109
- SwitchThumb,
110
- SwitchTrack,
111
- switchRecipe,
112
- useSwitch
113
- } from "./chunk-RGKWNK4T.js";
132
+ Accordion,
133
+ AccordionContent,
134
+ AccordionIndicator,
135
+ AccordionItem,
136
+ AccordionRoot,
137
+ AccordionTrigger,
138
+ LAYOUT,
139
+ accordionRecipe,
140
+ useAccordion,
141
+ useAccordionItem
142
+ } from "./chunk-GJSFKH4L.js";
143
+ import {
144
+ INDICATOR_ROTATION,
145
+ INDICATOR_SPRING,
146
+ anchoredEntering,
147
+ anchoredExiting,
148
+ overlayEntering,
149
+ overlayExiting
150
+ } from "./chunk-64MXEVT3.js";
114
151
  import {
115
152
  Alert,
116
153
  alertRecipe,
117
154
  useAlert
118
- } from "./chunk-6G3XWPNP.js";
155
+ } from "./chunk-HA6BFY3A.js";
156
+ import {
157
+ CloseButton,
158
+ closeButtonBase
159
+ } from "./chunk-EYD4H4X6.js";
119
160
  import {
120
161
  Avatar,
121
162
  avatarRecipe,
122
163
  useAvatar
123
- } from "./chunk-5PPNDKRX.js";
164
+ } from "./chunk-6CO6FM67.js";
124
165
  import {
125
166
  Badge,
126
167
  badgeRecipe,
127
168
  placementInsets
128
- } from "./chunk-TJHYSSBZ.js";
169
+ } from "./chunk-346QBNUD.js";
129
170
  import {
130
171
  Button,
131
172
  buttonRecipe,
132
173
  useButton
133
- } from "./chunk-TDYPY2J7.js";
174
+ } from "./chunk-TRETQZEW.js";
134
175
  import {
135
176
  ROTATION_DURATION,
136
- useMergedRef,
137
177
  usePrevious,
138
178
  useRotation
139
- } from "./chunk-PPWXLZGL.js";
179
+ } from "./chunk-3GFRSZYR.js";
180
+ import {
181
+ useMergedRef
182
+ } from "./chunk-NCTOTTVW.js";
183
+ import {
184
+ ChevronDownIcon,
185
+ Icon,
186
+ IconContext,
187
+ useIconContext
188
+ } from "./chunk-FHUYHV6J.js";
140
189
  import {
141
190
  CARD_BACKGROUND,
142
191
  Card,
143
192
  cardRecipe,
144
193
  markBackground,
145
194
  useCard
146
- } from "./chunk-JXNFOOKC.js";
195
+ } from "./chunk-DY3SUG5P.js";
147
196
  import {
148
197
  Checkbox,
149
198
  CheckboxIndicator,
@@ -151,27 +200,13 @@ import {
151
200
  CheckboxRoot,
152
201
  checkboxRecipe,
153
202
  useCheckbox
154
- } from "./chunk-BORJJYDW.js";
203
+ } from "./chunk-MXGER5PI.js";
155
204
  import {
156
205
  SelectionFill
157
206
  } from "./chunk-BA2DBSAN.js";
158
207
  import {
159
208
  useControllableState
160
209
  } from "./chunk-F6W3JQ7K.js";
161
- import {
162
- Chip,
163
- chipRecipe,
164
- useChip
165
- } from "./chunk-4PTWZCOK.js";
166
- import {
167
- CloseButton,
168
- closeButtonBase
169
- } from "./chunk-EOJ5MYAQ.js";
170
- import {
171
- Icon,
172
- IconContext,
173
- useIconContext
174
- } from "./chunk-HXW4ANVB.js";
175
210
  import {
176
211
  FEEDBACK_OVERLAY,
177
212
  HIGHLIGHT_DURATION,
@@ -193,17 +228,17 @@ import {
193
228
  resolveSlotAnimation,
194
229
  rippleRadiusFor,
195
230
  useFeedback
196
- } from "./chunk-UGF35NSE.js";
197
- import "./chunk-EGLLDKN6.js";
231
+ } from "./chunk-LIUO6D3D.js";
198
232
  import {
199
233
  usePressState
200
234
  } from "./chunk-423RQBOX.js";
235
+ import "./chunk-EGLLDKN6.js";
201
236
  import {
202
237
  Slot,
203
238
  childrenToString,
204
239
  createSlotContext,
205
240
  mergeProps
206
- } from "./chunk-YXPYOOHU.js";
241
+ } from "./chunk-K72UDPVN.js";
207
242
  import {
208
243
  mergeRefs
209
244
  } from "./chunk-36PRYGAM.js";
@@ -222,6 +257,12 @@ import {
222
257
  useStyleProps
223
258
  } from "./chunk-M63GFNKV.js";
224
259
  export {
260
+ Accordion,
261
+ AccordionContent,
262
+ AccordionIndicator,
263
+ AccordionItem,
264
+ AccordionRoot,
265
+ AccordionTrigger,
225
266
  Alert,
226
267
  Avatar,
227
268
  Badge,
@@ -248,6 +289,8 @@ export {
248
289
  Grid,
249
290
  HIGHLIGHT_DURATION,
250
291
  HIGHLIGHT_OPACITY,
292
+ INDICATOR_ROTATION,
293
+ INDICATOR_SPRING,
251
294
  Icon,
252
295
  IconContext,
253
296
  InputOTP,
@@ -256,6 +299,14 @@ export {
256
299
  OTP_LETTERS,
257
300
  PRESS_DURATION,
258
301
  PRESS_SCALE,
302
+ Popover2 as Popover,
303
+ PopoverClose,
304
+ PopoverContent,
305
+ PopoverDescription,
306
+ PopoverOverlay,
307
+ Popover as PopoverRoot,
308
+ PopoverTitle,
309
+ PopoverTrigger,
259
310
  Portal,
260
311
  PortalContext,
261
312
  PortalHost,
@@ -307,7 +358,11 @@ export {
307
358
  ThemeContext,
308
359
  Typography,
309
360
  XAUIProvider,
361
+ LAYOUT as accordionLayoutTransition,
362
+ accordionRecipe,
310
363
  alertRecipe,
364
+ anchoredEntering,
365
+ anchoredExiting,
311
366
  avatarRecipe,
312
367
  badgeRecipe,
313
368
  buildRadius,
@@ -333,8 +388,11 @@ export {
333
388
  markOverlay,
334
389
  mergeProps,
335
390
  mergeRefs,
391
+ overlayEntering,
392
+ overlayExiting,
336
393
  palette,
337
394
  placementInsets,
395
+ popoverRecipe,
338
396
  pressScaleFor,
339
397
  primitives,
340
398
  radioRecipe,
@@ -350,6 +408,8 @@ export {
350
408
  textFieldRecipe,
351
409
  tokens,
352
410
  typographyRecipe,
411
+ useAccordion,
412
+ useAccordionItem,
353
413
  useAlert,
354
414
  useAvatar,
355
415
  useButton,
@@ -365,6 +425,7 @@ export {
365
425
  useInputOTP,
366
426
  useInputOTPBox,
367
427
  useMergedRef,
428
+ usePopover,
368
429
  usePressState,
369
430
  usePrevious,
370
431
  useRadio,
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Where a floating panel lands against the thing that opened it, as four numbers.
3
+ *
4
+ * Pure on purpose, and shared: positioning an overlay is the one part of a `Select`, a
5
+ * `Popover` or a `Menu` that is arithmetic rather than rendering, and arithmetic that runs
6
+ * once per open is arithmetic worth a test rather than a screenshot.
7
+ *
8
+ * Everything here is in the coordinate space of whatever the panel is laid out in — the
9
+ * caller subtracts the portal host's own origin before calling, because the trigger
10
+ * reports itself against the window and the panel is not laid out in the window.
11
+ */
12
+ /** `start` and `end` rather than `left` and `right` (R13): the sides mirror in RTL. */
13
+ type Placement = 'top' | 'bottom' | 'start' | 'end';
14
+ /** Where the panel lines up along the edge it is pinned to. */
15
+ type Align = 'start' | 'center' | 'end';
16
+ /** The trigger's rectangle. */
17
+ type Anchor = {
18
+ x: number;
19
+ y: number;
20
+ width: number;
21
+ height: number;
22
+ };
23
+ /**
24
+ * `trigger` matches the anchor exactly. `content-fit` hugs what the panel measured at,
25
+ * which the component bounds with a measure of its own. `full` is the screen less its
26
+ * insets — the way to say "yes, actually, all of it", which nothing else in the union can
27
+ * express: a number is a guess at the screen's width, and `content-fit` refuses on purpose.
28
+ */
29
+ type AnchoredWidth = number | 'trigger' | 'content-fit' | 'full';
30
+ /** Screen edges the panel refuses to cross, in points. */
31
+ type Insets = {
32
+ top?: number;
33
+ bottom?: number;
34
+ start?: number;
35
+ end?: number;
36
+ };
37
+
38
+ export type { Align as A, Insets as I, Placement as P, AnchoredWidth as a, Anchor as b };
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Where a floating panel lands against the thing that opened it, as four numbers.
3
+ *
4
+ * Pure on purpose, and shared: positioning an overlay is the one part of a `Select`, a
5
+ * `Popover` or a `Menu` that is arithmetic rather than rendering, and arithmetic that runs
6
+ * once per open is arithmetic worth a test rather than a screenshot.
7
+ *
8
+ * Everything here is in the coordinate space of whatever the panel is laid out in — the
9
+ * caller subtracts the portal host's own origin before calling, because the trigger
10
+ * reports itself against the window and the panel is not laid out in the window.
11
+ */
12
+ /** `start` and `end` rather than `left` and `right` (R13): the sides mirror in RTL. */
13
+ type Placement = 'top' | 'bottom' | 'start' | 'end';
14
+ /** Where the panel lines up along the edge it is pinned to. */
15
+ type Align = 'start' | 'center' | 'end';
16
+ /** The trigger's rectangle. */
17
+ type Anchor = {
18
+ x: number;
19
+ y: number;
20
+ width: number;
21
+ height: number;
22
+ };
23
+ /**
24
+ * `trigger` matches the anchor exactly. `content-fit` hugs what the panel measured at,
25
+ * which the component bounds with a measure of its own. `full` is the screen less its
26
+ * insets — the way to say "yes, actually, all of it", which nothing else in the union can
27
+ * express: a number is a guess at the screen's width, and `content-fit` refuses on purpose.
28
+ */
29
+ type AnchoredWidth = number | 'trigger' | 'content-fit' | 'full';
30
+ /** Screen edges the panel refuses to cross, in points. */
31
+ type Insets = {
32
+ top?: number;
33
+ bottom?: number;
34
+ start?: number;
35
+ end?: number;
36
+ };
37
+
38
+ export type { Align as A, Insets as I, Placement as P, AnchoredWidth as a, Anchor as b };
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});require('../chunk-OJCCV65P.cjs');
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});require('../chunk-GGW43Q37.cjs');
2
2
 
3
3
 
4
4
 
@@ -6,24 +6,25 @@
6
6
  var _chunkWDDXU3OHcjs = require('../chunk-WDDXU3OH.cjs');
7
7
 
8
8
 
9
- var _chunkF6CQ6CBIcjs = require('../chunk-F6CQ6CBI.cjs');
10
9
 
11
10
 
12
11
 
13
- var _chunk3P6M2R4Scjs = require('../chunk-3P6M2R4S.cjs');
14
12
 
15
13
 
14
+ var _chunkEKS3W46Mcjs = require('../chunk-EKS3W46M.cjs');
16
15
 
17
16
 
18
- var _chunk7B3UBUC6cjs = require('../chunk-7B3UBUC6.cjs');
19
17
 
18
+ var _chunkAAVCMCJ3cjs = require('../chunk-AAVCMCJ3.cjs');
20
19
 
21
20
 
22
21
 
23
22
 
24
23
 
24
+ var _chunk4KFKWBN5cjs = require('../chunk-4KFKWBN5.cjs');
25
25
 
26
26
 
27
+ var _chunkF6CQ6CBIcjs = require('../chunk-F6CQ6CBI.cjs');
27
28
 
28
29
 
29
30
 
@@ -37,15 +38,23 @@ var _chunk7B3UBUC6cjs = require('../chunk-7B3UBUC6.cjs');
37
38
 
38
39
 
39
40
 
40
- var _chunkDRMT346Wcjs = require('../chunk-DRMT346W.cjs');
41
- require('../chunk-EJQCQPET.cjs');
41
+
42
+
43
+
44
+
45
+
46
+
47
+
48
+
49
+ var _chunkTGMVEHV7cjs = require('../chunk-TGMVEHV7.cjs');
42
50
  require('../chunk-7DPL3ZDS.cjs');
51
+ require('../chunk-EJQCQPET.cjs');
43
52
 
44
53
 
45
54
 
46
55
 
47
56
 
48
- var _chunk54FJOKANcjs = require('../chunk-54FJOKAN.cjs');
57
+ var _chunk7GHM4GKLcjs = require('../chunk-7GHM4GKL.cjs');
49
58
 
50
59
 
51
60
  var _chunkH4E4HDEPcjs = require('../chunk-H4E4HDEP.cjs');
@@ -95,4 +104,11 @@ var _chunkTK44VBIEcjs = require('../chunk-TK44VBIE.cjs');
95
104
 
96
105
 
97
106
 
98
- exports.CloseButton = _chunk3P6M2R4Scjs.CloseButton; exports.FEEDBACK_OVERLAY = _chunkDRMT346Wcjs.FEEDBACK_OVERLAY; exports.HIGHLIGHT_DURATION = _chunkDRMT346Wcjs.HIGHLIGHT_DURATION; exports.HIGHLIGHT_OPACITY = _chunkDRMT346Wcjs.HIGHLIGHT_OPACITY; exports.Icon = _chunk7B3UBUC6cjs.Icon; exports.IconContext = _chunk7B3UBUC6cjs.IconContext; exports.PRESS_DURATION = _chunkDRMT346Wcjs.PRESS_DURATION; exports.PRESS_SCALE = _chunkDRMT346Wcjs.PRESS_SCALE; exports.Portal = _chunkWDDXU3OHcjs.Portal; exports.PortalContext = _chunkWDDXU3OHcjs.PortalContext; exports.PortalHost = _chunkWDDXU3OHcjs.PortalHost; exports.PressableFeedback = _chunkDRMT346Wcjs.PressableFeedback; exports.RIPPLE_CONFIRM_DURATION = _chunkDRMT346Wcjs.RIPPLE_CONFIRM_DURATION; exports.RIPPLE_EXPAND_DURATION = _chunkDRMT346Wcjs.RIPPLE_EXPAND_DURATION; exports.RIPPLE_FADE_IN = _chunkDRMT346Wcjs.RIPPLE_FADE_IN; exports.RIPPLE_FADE_OUT = _chunkDRMT346Wcjs.RIPPLE_FADE_OUT; exports.RIPPLE_FADE_OUT_DELAY = _chunkDRMT346Wcjs.RIPPLE_FADE_OUT_DELAY; exports.RIPPLE_OPACITY = _chunkDRMT346Wcjs.RIPPLE_OPACITY; exports.RIPPLE_START_SCALE = _chunkDRMT346Wcjs.RIPPLE_START_SCALE; exports.SCALE_REFERENCE_WIDTH = _chunkDRMT346Wcjs.SCALE_REFERENCE_WIDTH; exports.SelectionFill = _chunkF6CQ6CBIcjs.SelectionFill; exports.Slot = _chunk54FJOKANcjs.Slot; exports.childrenToString = _chunk54FJOKANcjs.childrenToString; exports.closeButtonBase = _chunk3P6M2R4Scjs.closeButtonBase; exports.createRecipe = _chunkFNEUOBCVcjs.createRecipe; exports.createSlotContext = _chunk54FJOKANcjs.createSlotContext; exports.markOverlay = _chunkDRMT346Wcjs.markOverlay; exports.mergeProps = _chunk54FJOKANcjs.mergeProps; exports.mergeRefs = _chunkH4E4HDEPcjs.mergeRefs; exports.pressScaleFor = _chunkDRMT346Wcjs.pressScaleFor; exports.radiusAxis = _chunkFNEUOBCVcjs.radiusAxis; exports.resolveAnimation = _chunkDRMT346Wcjs.resolveAnimation; exports.resolveSlotAnimation = _chunkDRMT346Wcjs.resolveSlotAnimation; exports.rippleRadiusFor = _chunkDRMT346Wcjs.rippleRadiusFor; exports.useFeedback = _chunkDRMT346Wcjs.useFeedback; exports.useIconContext = _chunk7B3UBUC6cjs.useIconContext; exports.useStyleProps = _chunkTK44VBIEcjs.useStyleProps;
107
+
108
+
109
+
110
+
111
+
112
+
113
+
114
+ exports.ChevronDownIcon = _chunk4KFKWBN5cjs.ChevronDownIcon; exports.CloseButton = _chunkAAVCMCJ3cjs.CloseButton; exports.FEEDBACK_OVERLAY = _chunkTGMVEHV7cjs.FEEDBACK_OVERLAY; exports.HIGHLIGHT_DURATION = _chunkTGMVEHV7cjs.HIGHLIGHT_DURATION; exports.HIGHLIGHT_OPACITY = _chunkTGMVEHV7cjs.HIGHLIGHT_OPACITY; exports.INDICATOR_ROTATION = _chunkEKS3W46Mcjs.INDICATOR_ROTATION; exports.INDICATOR_SPRING = _chunkEKS3W46Mcjs.INDICATOR_SPRING; exports.Icon = _chunk4KFKWBN5cjs.Icon; exports.IconContext = _chunk4KFKWBN5cjs.IconContext; exports.PRESS_DURATION = _chunkTGMVEHV7cjs.PRESS_DURATION; exports.PRESS_SCALE = _chunkTGMVEHV7cjs.PRESS_SCALE; exports.Portal = _chunkWDDXU3OHcjs.Portal; exports.PortalContext = _chunkWDDXU3OHcjs.PortalContext; exports.PortalHost = _chunkWDDXU3OHcjs.PortalHost; exports.PressableFeedback = _chunkTGMVEHV7cjs.PressableFeedback; exports.RIPPLE_CONFIRM_DURATION = _chunkTGMVEHV7cjs.RIPPLE_CONFIRM_DURATION; exports.RIPPLE_EXPAND_DURATION = _chunkTGMVEHV7cjs.RIPPLE_EXPAND_DURATION; exports.RIPPLE_FADE_IN = _chunkTGMVEHV7cjs.RIPPLE_FADE_IN; exports.RIPPLE_FADE_OUT = _chunkTGMVEHV7cjs.RIPPLE_FADE_OUT; exports.RIPPLE_FADE_OUT_DELAY = _chunkTGMVEHV7cjs.RIPPLE_FADE_OUT_DELAY; exports.RIPPLE_OPACITY = _chunkTGMVEHV7cjs.RIPPLE_OPACITY; exports.RIPPLE_START_SCALE = _chunkTGMVEHV7cjs.RIPPLE_START_SCALE; exports.SCALE_REFERENCE_WIDTH = _chunkTGMVEHV7cjs.SCALE_REFERENCE_WIDTH; exports.SelectionFill = _chunkF6CQ6CBIcjs.SelectionFill; exports.Slot = _chunk7GHM4GKLcjs.Slot; exports.anchoredEntering = _chunkEKS3W46Mcjs.anchoredEntering; exports.anchoredExiting = _chunkEKS3W46Mcjs.anchoredExiting; exports.childrenToString = _chunk7GHM4GKLcjs.childrenToString; exports.closeButtonBase = _chunkAAVCMCJ3cjs.closeButtonBase; exports.createRecipe = _chunkFNEUOBCVcjs.createRecipe; exports.createSlotContext = _chunk7GHM4GKLcjs.createSlotContext; exports.markOverlay = _chunkTGMVEHV7cjs.markOverlay; exports.mergeProps = _chunk7GHM4GKLcjs.mergeProps; exports.mergeRefs = _chunkH4E4HDEPcjs.mergeRefs; exports.overlayEntering = _chunkEKS3W46Mcjs.overlayEntering; exports.overlayExiting = _chunkEKS3W46Mcjs.overlayExiting; exports.pressScaleFor = _chunkTGMVEHV7cjs.pressScaleFor; exports.radiusAxis = _chunkFNEUOBCVcjs.radiusAxis; exports.resolveAnimation = _chunkTGMVEHV7cjs.resolveAnimation; exports.resolveSlotAnimation = _chunkTGMVEHV7cjs.resolveSlotAnimation; exports.rippleRadiusFor = _chunkTGMVEHV7cjs.rippleRadiusFor; exports.useFeedback = _chunkTGMVEHV7cjs.useFeedback; exports.useIconContext = _chunk4KFKWBN5cjs.useIconContext; exports.useStyleProps = _chunkTK44VBIEcjs.useStyleProps;
@@ -8,11 +8,11 @@ import { R as RadiusKey, X as XAUITheme } from '../theme.type-C2gNHpEx.cjs';
8
8
  import { a as StyleFn, h as SlotStyle } from '../create-recipe-dC7wMfnj.cjs';
9
9
  export { A as Axes, C as CompoundVariant, R as Recipe, d as RecipeConfig, b as ResolveArgs, e as ResolvedSelection, f as ResolvedStyles, g as Selection, S as SlotStyles, i as StateName, j as States, T as TintArgs, V as VariantColors, k as VariantRole, l as VariantTokens, c as createRecipe } from '../create-recipe-dC7wMfnj.cjs';
10
10
  export { C as CloseButtonProps } from '../close-button.type-CHsgZ3wO.cjs';
11
- import { a as IconProps, I as IconContextValue } from '../icon.type-d_i9ma-i.cjs';
12
- export { b as IconComponentProps } from '../icon.type-d_i9ma-i.cjs';
11
+ import { b as IconComponentProps, a as IconProps, I as IconContextValue } from '../icon.type-d_i9ma-i.cjs';
13
12
  import { V as ViewStyleProps } from '../style-props.type-CfnoGEP7.cjs';
14
13
  export { D as DirectionalStyleKey, I as ImageStyleProps, S as StyleProps, T as TextStyleProps } from '../style-props.type-CfnoGEP7.cjs';
15
- import 'react-native-reanimated';
14
+ import * as react_native_reanimated from 'react-native-reanimated';
15
+ import { P as Placement } from '../placement-DHa0Rrh1.cjs';
16
16
 
17
17
  /**
18
18
  * The runtime half of R14. The type half lives in `system/style-props/`, and the two are
@@ -46,6 +46,20 @@ type RestPropsOf<P> = Omit<P, StylePropKey>;
46
46
  */
47
47
  declare function useStyleProps<P extends object>(props: P): [StylePropsOf<P>, RestPropsOf<P>];
48
48
 
49
+ /**
50
+ * The chevron the library ships, rather than requiring one from the caller: a control
51
+ * whose whole affordance is "there is more under here" cannot be written without it, and
52
+ * asking for an icon package to draw one arrow is a peer dependency for a chevron.
53
+ *
54
+ * It sits in `system/` because two components draw it — `Select` turns it half a turn
55
+ * when its list opens, `Accordion` when its panel does. §2 bis: promotion at the second
56
+ * use, never by anticipation.
57
+ */
58
+ declare function ChevronDownIcon({ size, color, }: IconComponentProps): react.JSX.Element;
59
+ declare namespace ChevronDownIcon {
60
+ var displayName: string;
61
+ }
62
+
49
63
  /**
50
64
  * The gap nobody else closes: an icon is a third-party component, so a slot context does
51
65
  * not reach it and every call site ends up computing the colour by hand.
@@ -78,6 +92,36 @@ declare namespace Icon {
78
92
  declare const IconContext: react.Context<IconContextValue>;
79
93
  declare function useIconContext(): IconContextValue;
80
94
 
95
+ /**
96
+ * The `radius` axis, which is the same ten lines in every component that has one — a key
97
+ * of the radius scale, applied to one slot, overriding whatever `size` chose.
98
+ *
99
+ * It is written here rather than a third time in a recipe because that is the rule §2 bis
100
+ * states: extract at the second use, and by the end of P3 this axis exists in a dozen
101
+ * components. Nothing about it is component-specific except which slot carries the corner.
102
+ *
103
+ * ```ts
104
+ * variants: { size: { … }, radius: radiusAxis('root') }
105
+ * ```
106
+ *
107
+ * **More than one slot when a second node has to square off with the first.** A `Switch`
108
+ * whose track lost its capsule and kept a circular knob is half-rounded, so the axis moves
109
+ * both: `radiusAxis('track', 'thumb')`.
110
+ *
111
+ * The same named corner on each, not an inset-corrected one. Nesting rules would say the
112
+ * inner radius is the outer less the gap, but here that reaches zero before the outer does
113
+ * — at `xs` a 3pt track would hold a sharp-cornered knob — and two matched corners read
114
+ * better than one correct one.
115
+ *
116
+ * Variadic rather than an array because every call but that one passes a single slot, and
117
+ * `radiusAxis('root')` reads better than `radiusAxis(['root'])`.
118
+ *
119
+ * The return type is a full `Record<RadiusKey, …>` rather than a partial one, so
120
+ * `createRecipe` still infers `radius="3xl"` as the axis's value union and a typo in a
121
+ * caller's `radius` is a type error rather than a silently ignored key.
122
+ */
123
+ declare function radiusAxis<Slot extends string>(...slots: Slot[]): Record<RadiusKey, StyleFn<Slot>>;
124
+
81
125
  type PortalProps = {
82
126
  children: ReactNode;
83
127
  };
@@ -323,36 +367,6 @@ declare const PressableFeedback: react.ForwardRefExoticComponent<Omit<react_nati
323
367
  Ripple: typeof PressableFeedbackRipple;
324
368
  };
325
369
 
326
- /**
327
- * The `radius` axis, which is the same ten lines in every component that has one — a key
328
- * of the radius scale, applied to one slot, overriding whatever `size` chose.
329
- *
330
- * It is written here rather than a third time in a recipe because that is the rule §2 bis
331
- * states: extract at the second use, and by the end of P3 this axis exists in a dozen
332
- * components. Nothing about it is component-specific except which slot carries the corner.
333
- *
334
- * ```ts
335
- * variants: { size: { … }, radius: radiusAxis('root') }
336
- * ```
337
- *
338
- * **More than one slot when a second node has to square off with the first.** A `Switch`
339
- * whose track lost its capsule and kept a circular knob is half-rounded, so the axis moves
340
- * both: `radiusAxis('track', 'thumb')`.
341
- *
342
- * The same named corner on each, not an inset-corrected one. Nesting rules would say the
343
- * inner radius is the outer less the gap, but here that reaches zero before the outer does
344
- * — at `xs` a 3pt track would hold a sharp-cornered knob — and two matched corners read
345
- * better than one correct one.
346
- *
347
- * Variadic rather than an array because every call but that one passes a single slot, and
348
- * `radiusAxis('root')` reads better than `radiusAxis(['root'])`.
349
- *
350
- * The return type is a full `Record<RadiusKey, …>` rather than a partial one, so
351
- * `createRecipe` still infers `radius="3xl"` as the axis's value union and a typo in a
352
- * caller's `radius` is a type error rather than a silently ignored key.
353
- */
354
- declare function radiusAxis<Slot extends string>(...slots: Slot[]): Record<RadiusKey, StyleFn<Slot>>;
355
-
356
370
  type SelectionFillProps = {
357
371
  /** Whether the control is on. The fill is the answer, and the mark rides on it. */
358
372
  isVisible: boolean;
@@ -475,6 +489,41 @@ type SlotProps = MergeableProps & {
475
489
  */
476
490
  declare const Slot: react.ForwardRefExoticComponent<Omit<SlotProps, "ref"> & react.RefAttributes<unknown>>;
477
491
 
492
+ /**
493
+ * A panel that grows out of the thing that opened it.
494
+ *
495
+ * It starts slightly small and offset **towards** the trigger, so the motion points back
496
+ * at what opened it: a panel below enters upwards, one above enters downwards, one beside
497
+ * enters sideways. That is the only reason placement reaches the animation at all.
498
+ *
499
+ * Shared by the `Select` and the `Popover`, which is the second use §2 bis waits for. It
500
+ * lives in `system/` rather than in `utils/` because a `Keyframe` is Reanimated's, and
501
+ * `utils/` has to stay importable by a test that never mounts anything.
502
+ */
503
+ declare function anchoredEntering(placement: Placement): react_native_reanimated.ReanimatedKeyframe;
504
+ /**
505
+ * The mirror, shorter. Closing is an acknowledgement rather than an arrival, and a
506
+ * dismissal that takes as long as the opening feels like the control is arguing.
507
+ */
508
+ declare function anchoredExiting(placement: Placement): react_native_reanimated.ReanimatedKeyframe;
509
+ declare const overlayEntering: react_native_reanimated.ReanimatedKeyframe;
510
+ declare const overlayExiting: react_native_reanimated.ReanimatedKeyframe;
511
+
512
+ /**
513
+ * The chevron's turn, shared by the `Select` and the `Accordion`.
514
+ *
515
+ * HeroUI's numbers. Heavily damped against a very high stiffness: it arrives in about a
516
+ * fifth of a second and does not overshoot, which is what a turn of 180 degrees needs —
517
+ * an oscillating chevron reads as a bug rather than as motion.
518
+ */
519
+ declare const INDICATOR_SPRING: {
520
+ readonly damping: 140;
521
+ readonly stiffness: 1000;
522
+ readonly mass: 4;
523
+ };
524
+ /** Degrees. Down when closed, up when open, turning anticlockwise as HeroUI's does. */
525
+ declare const INDICATOR_ROTATION: readonly [0, -180];
526
+
478
527
  /**
479
528
  * The dismiss affordance shared by everything that can be dismissed — `Chip.Close`,
480
529
  * `Alert.Close`, and the `Dialog`, `Snackbar` and `Sheet` of P5. Each of those is a
@@ -529,4 +578,4 @@ type CloseButtonSlots = {
529
578
  */
530
579
  declare function closeButtonBase(theme: XAUITheme): CloseButtonSlots;
531
580
 
532
- export { AnimationProp, type AsChildProps, CloseButton, type CloseButtonSlots, FEEDBACK_OVERLAY, FeedbackContext, HIGHLIGHT_DURATION, HIGHLIGHT_OPACITY, Icon, IconContext, IconContextValue, IconProps, type MergeableProps, PRESS_DURATION, PRESS_SCALE, Portal, PortalContext, PortalHost, type PortalHostProps, type PortalMethods, type PortalProps, type PossibleRef, PressableFeedback, type PressableFeedbackHighlightProps, PressableFeedbackProps, type PressableFeedbackRippleProps, RIPPLE_CONFIRM_DURATION, RIPPLE_EXPAND_DURATION, RIPPLE_FADE_IN, RIPPLE_FADE_OUT, RIPPLE_FADE_OUT_DELAY, RIPPLE_OPACITY, RIPPLE_START_SCALE, ResolvedAnimation, SCALE_REFERENCE_WIDTH, SelectionFill, type SelectionFillProps, Slot, SlotAnimation, type SlotProps, SlotStyle, StyleFn, ViewStyleProps, childrenToString, closeButtonBase, createSlotContext, markOverlay, mergeProps, mergeRefs, pressScaleFor, radiusAxis, resolveAnimation, resolveSlotAnimation, rippleRadiusFor, useFeedback, useIconContext, useStyleProps };
581
+ export { AnimationProp, type AsChildProps, ChevronDownIcon, CloseButton, type CloseButtonSlots, FEEDBACK_OVERLAY, FeedbackContext, HIGHLIGHT_DURATION, HIGHLIGHT_OPACITY, INDICATOR_ROTATION, INDICATOR_SPRING, Icon, IconComponentProps, IconContext, IconContextValue, IconProps, type MergeableProps, PRESS_DURATION, PRESS_SCALE, Portal, PortalContext, PortalHost, type PortalHostProps, type PortalMethods, type PortalProps, type PossibleRef, PressableFeedback, type PressableFeedbackHighlightProps, PressableFeedbackProps, type PressableFeedbackRippleProps, RIPPLE_CONFIRM_DURATION, RIPPLE_EXPAND_DURATION, RIPPLE_FADE_IN, RIPPLE_FADE_OUT, RIPPLE_FADE_OUT_DELAY, RIPPLE_OPACITY, RIPPLE_START_SCALE, ResolvedAnimation, SCALE_REFERENCE_WIDTH, SelectionFill, type SelectionFillProps, Slot, SlotAnimation, type SlotProps, SlotStyle, StyleFn, ViewStyleProps, anchoredEntering, anchoredExiting, childrenToString, closeButtonBase, createSlotContext, markOverlay, mergeProps, mergeRefs, overlayEntering, overlayExiting, pressScaleFor, radiusAxis, resolveAnimation, resolveSlotAnimation, rippleRadiusFor, useFeedback, useIconContext, useStyleProps };