@xaui/native 0.9.1-alpha.20 → 0.9.1-alpha.22

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 (73) hide show
  1. package/dist/{chunk-RMLFMRWL.js → chunk-2U6JR7BF.js} +5 -5
  2. package/dist/{chunk-N7C4UNUL.js → chunk-3JATAB7S.js} +23 -1
  3. package/dist/chunk-4MHJOWM4.cjs +364 -0
  4. package/dist/{chunk-2WMVDMFV.cjs → chunk-6HXWQ5AU.cjs} +2 -2
  5. package/dist/chunk-6WW4CSPY.cjs +82 -0
  6. package/dist/chunk-AHL33YAO.js +425 -0
  7. package/dist/{chunk-XHZBXYVU.js → chunk-AKXG43S4.js} +1 -1
  8. package/dist/{chunk-A4VD4MHK.cjs → chunk-BH5DSJVX.cjs} +100 -133
  9. package/dist/chunk-BNWS26PX.cjs +449 -0
  10. package/dist/chunk-DXGQ43IV.cjs +68 -0
  11. package/dist/{chunk-4EPS7UBO.js → chunk-FNQF4KQV.js} +20 -97
  12. package/dist/chunk-FTCTTBLG.js +449 -0
  13. package/dist/chunk-FVP5FUVS.js +68 -0
  14. package/dist/{chunk-BHTFIZTQ.cjs → chunk-GBPWTFTU.cjs} +11 -11
  15. package/dist/{chunk-MWXE7D4L.js → chunk-GG2WWCBK.js} +11 -11
  16. package/dist/{chunk-EVXZGNPA.cjs → chunk-HUZ4AUM2.cjs} +98 -98
  17. package/dist/chunk-I6PE5UUH.cjs +425 -0
  18. package/dist/{chunk-33QILJJH.cjs → chunk-IBEX4XGV.cjs} +11 -11
  19. package/dist/{chunk-WXAME7KB.js → chunk-KM2TI5IC.js} +126 -159
  20. package/dist/chunk-OGC4RKE3.js +364 -0
  21. package/dist/{chunk-JXLRHKCQ.js → chunk-OYZYWWJ6.js} +1 -1
  22. package/dist/{chunk-EXX6ATAS.js → chunk-PMO62QK4.js} +101 -101
  23. package/dist/{chunk-UBA6AEY6.cjs → chunk-RAWOJ3N3.cjs} +8 -8
  24. package/dist/{chunk-6ARON3XT.cjs → chunk-VDRRD6GM.cjs} +31 -110
  25. package/dist/{chunk-UVO4GFSW.cjs → chunk-YXVKQMCK.cjs} +23 -1
  26. package/dist/chunk-ZQ3JSWRO.js +82 -0
  27. package/dist/close-button.type-BUYuoSt2.d.ts +36 -0
  28. package/dist/close-button.type-CHsgZ3wO.d.cts +36 -0
  29. package/dist/components/alert/index.cjs +17 -0
  30. package/dist/components/alert/index.d.cts +169 -0
  31. package/dist/components/alert/index.d.ts +169 -0
  32. package/dist/components/alert/index.js +17 -0
  33. package/dist/components/button/index.cjs +6 -5
  34. package/dist/components/button/index.d.cts +193 -243
  35. package/dist/components/button/index.d.ts +193 -243
  36. package/dist/components/button/index.js +5 -4
  37. package/dist/components/card/index.cjs +19 -0
  38. package/dist/components/card/index.d.cts +620 -0
  39. package/dist/components/card/index.d.ts +620 -0
  40. package/dist/components/card/index.js +19 -0
  41. package/dist/components/chip/index.cjs +17 -0
  42. package/dist/components/chip/index.d.cts +608 -0
  43. package/dist/components/chip/index.d.ts +608 -0
  44. package/dist/components/chip/index.js +17 -0
  45. package/dist/components/typography/index.cjs +4 -4
  46. package/dist/components/typography/index.d.cts +4 -4
  47. package/dist/components/typography/index.d.ts +4 -4
  48. package/dist/components/typography/index.js +3 -3
  49. package/dist/components/view/index.cjs +3 -3
  50. package/dist/components/view/index.d.cts +7 -7
  51. package/dist/components/view/index.d.ts +7 -7
  52. package/dist/components/view/index.js +2 -2
  53. package/dist/{create-recipe-CPXFo2rk.d.ts → create-recipe-CbXika57.d.ts} +7 -1
  54. package/dist/{create-recipe-C0XXjuow.d.cts → create-recipe-jHlk434p.d.cts} +7 -1
  55. package/dist/icon.type-CF4KiMKl.d.cts +73 -0
  56. package/dist/icon.type-Dq4_qePa.d.ts +73 -0
  57. package/dist/index.cjs +49 -11
  58. package/dist/index.d.cts +9 -4
  59. package/dist/index.d.ts +9 -4
  60. package/dist/index.js +71 -33
  61. package/dist/{pressable-feedback.type-BwkKLQlX.d.ts → pressable-feedback.type-BA2C9sSz.d.cts} +4 -72
  62. package/dist/{pressable-feedback.type-1K8YEOb8.d.cts → pressable-feedback.type-Bs4dQlGj.d.ts} +4 -72
  63. package/dist/{style-props.type-B1BG5TCm.d.cts → style-props.type-CfnoGEP7.d.cts} +1 -1
  64. package/dist/{style-props.type-B1BG5TCm.d.ts → style-props.type-CfnoGEP7.d.ts} +1 -1
  65. package/dist/system/index.cjs +16 -6
  66. package/dist/system/index.d.cts +174 -98
  67. package/dist/system/index.d.ts +174 -98
  68. package/dist/system/index.js +20 -10
  69. package/dist/theme/index.cjs +2 -2
  70. package/dist/theme/index.d.cts +11 -11
  71. package/dist/theme/index.d.ts +11 -11
  72. package/dist/theme/index.js +1 -1
  73. package/package.json +31 -1
@@ -2,14 +2,16 @@
2
2
 
3
3
 
4
4
 
5
- var _chunk2WMVDMFVcjs = require('../chunk-2WMVDMFV.cjs');
5
+ var _chunk6HXWQ5AUcjs = require('../chunk-6HXWQ5AU.cjs');
6
6
 
7
7
 
8
8
 
9
+ var _chunk6WW4CSPYcjs = require('../chunk-6WW4CSPY.cjs');
9
10
 
10
11
 
11
12
 
12
13
 
14
+ var _chunkDXGQ43IVcjs = require('../chunk-DXGQ43IV.cjs');
13
15
 
14
16
 
15
17
 
@@ -27,19 +29,24 @@ var _chunk2WMVDMFVcjs = require('../chunk-2WMVDMFV.cjs');
27
29
 
28
30
 
29
31
 
30
- var _chunkA4VD4MHKcjs = require('../chunk-A4VD4MHK.cjs');
31
32
 
32
33
 
33
- var _chunkUVO4GFSWcjs = require('../chunk-UVO4GFSW.cjs');
34
34
 
35
35
 
36
+ var _chunkBH5DSJVXcjs = require('../chunk-BH5DSJVX.cjs');
36
37
 
37
38
 
38
39
 
40
+ var _chunkYXVKQMCKcjs = require('../chunk-YXVKQMCK.cjs');
41
+ require('../chunk-57SJ4LJF.cjs');
39
42
 
40
43
 
41
- var _chunkEVXZGNPAcjs = require('../chunk-EVXZGNPA.cjs');
42
- require('../chunk-57SJ4LJF.cjs');
44
+
45
+
46
+
47
+
48
+
49
+ var _chunkHUZ4AUM2cjs = require('../chunk-HUZ4AUM2.cjs');
43
50
  require('../chunk-MC7SY2QH.cjs');
44
51
 
45
52
 
@@ -75,4 +82,7 @@ require('../chunk-MC7SY2QH.cjs');
75
82
 
76
83
 
77
84
 
78
- exports.FEEDBACK_OVERLAY = _chunkA4VD4MHKcjs.FEEDBACK_OVERLAY; exports.HIGHLIGHT_DURATION = _chunkA4VD4MHKcjs.HIGHLIGHT_DURATION; exports.HIGHLIGHT_OPACITY = _chunkA4VD4MHKcjs.HIGHLIGHT_OPACITY; exports.Icon = _chunkA4VD4MHKcjs.Icon; exports.IconContext = _chunkA4VD4MHKcjs.IconContext; exports.PRESS_DURATION = _chunkA4VD4MHKcjs.PRESS_DURATION; exports.PRESS_SCALE = _chunkA4VD4MHKcjs.PRESS_SCALE; exports.Portal = _chunk2WMVDMFVcjs.Portal; exports.PortalContext = _chunk2WMVDMFVcjs.PortalContext; exports.PortalHost = _chunk2WMVDMFVcjs.PortalHost; exports.PressableFeedback = _chunkA4VD4MHKcjs.PressableFeedback; exports.RIPPLE_CONFIRM_DURATION = _chunkA4VD4MHKcjs.RIPPLE_CONFIRM_DURATION; exports.RIPPLE_EXPAND_DURATION = _chunkA4VD4MHKcjs.RIPPLE_EXPAND_DURATION; exports.RIPPLE_FADE_IN = _chunkA4VD4MHKcjs.RIPPLE_FADE_IN; exports.RIPPLE_FADE_OUT = _chunkA4VD4MHKcjs.RIPPLE_FADE_OUT; exports.RIPPLE_FADE_OUT_DELAY = _chunkA4VD4MHKcjs.RIPPLE_FADE_OUT_DELAY; exports.RIPPLE_OPACITY = _chunkA4VD4MHKcjs.RIPPLE_OPACITY; exports.RIPPLE_START_SCALE = _chunkA4VD4MHKcjs.RIPPLE_START_SCALE; exports.SCALE_REFERENCE_WIDTH = _chunkA4VD4MHKcjs.SCALE_REFERENCE_WIDTH; exports.Slot = _chunkEVXZGNPAcjs.Slot; exports.childrenToString = _chunkEVXZGNPAcjs.childrenToString; exports.createRecipe = _chunkUVO4GFSWcjs.createRecipe; exports.createSlotContext = _chunkEVXZGNPAcjs.createSlotContext; exports.markOverlay = _chunkA4VD4MHKcjs.markOverlay; exports.mergeProps = _chunkEVXZGNPAcjs.mergeProps; exports.mergeRefs = _chunkEVXZGNPAcjs.mergeRefs; exports.pressScaleFor = _chunkA4VD4MHKcjs.pressScaleFor; exports.resolveAnimation = _chunkA4VD4MHKcjs.resolveAnimation; exports.resolveSlotAnimation = _chunkA4VD4MHKcjs.resolveSlotAnimation; exports.rippleRadiusFor = _chunkA4VD4MHKcjs.rippleRadiusFor; exports.useFeedback = _chunkA4VD4MHKcjs.useFeedback; exports.useIconContext = _chunkA4VD4MHKcjs.useIconContext; exports.useStyleProps = _chunkEVXZGNPAcjs.useStyleProps;
85
+
86
+
87
+
88
+ exports.CloseButton = _chunk6WW4CSPYcjs.CloseButton; exports.FEEDBACK_OVERLAY = _chunkBH5DSJVXcjs.FEEDBACK_OVERLAY; exports.HIGHLIGHT_DURATION = _chunkBH5DSJVXcjs.HIGHLIGHT_DURATION; exports.HIGHLIGHT_OPACITY = _chunkBH5DSJVXcjs.HIGHLIGHT_OPACITY; exports.Icon = _chunkDXGQ43IVcjs.Icon; exports.IconContext = _chunkDXGQ43IVcjs.IconContext; exports.PRESS_DURATION = _chunkBH5DSJVXcjs.PRESS_DURATION; exports.PRESS_SCALE = _chunkBH5DSJVXcjs.PRESS_SCALE; exports.Portal = _chunk6HXWQ5AUcjs.Portal; exports.PortalContext = _chunk6HXWQ5AUcjs.PortalContext; exports.PortalHost = _chunk6HXWQ5AUcjs.PortalHost; exports.PressableFeedback = _chunkBH5DSJVXcjs.PressableFeedback; exports.RIPPLE_CONFIRM_DURATION = _chunkBH5DSJVXcjs.RIPPLE_CONFIRM_DURATION; exports.RIPPLE_EXPAND_DURATION = _chunkBH5DSJVXcjs.RIPPLE_EXPAND_DURATION; exports.RIPPLE_FADE_IN = _chunkBH5DSJVXcjs.RIPPLE_FADE_IN; exports.RIPPLE_FADE_OUT = _chunkBH5DSJVXcjs.RIPPLE_FADE_OUT; exports.RIPPLE_FADE_OUT_DELAY = _chunkBH5DSJVXcjs.RIPPLE_FADE_OUT_DELAY; exports.RIPPLE_OPACITY = _chunkBH5DSJVXcjs.RIPPLE_OPACITY; exports.RIPPLE_START_SCALE = _chunkBH5DSJVXcjs.RIPPLE_START_SCALE; exports.SCALE_REFERENCE_WIDTH = _chunkBH5DSJVXcjs.SCALE_REFERENCE_WIDTH; exports.Slot = _chunkHUZ4AUM2cjs.Slot; exports.childrenToString = _chunkHUZ4AUM2cjs.childrenToString; exports.closeButtonBase = _chunk6WW4CSPYcjs.closeButtonBase; exports.createRecipe = _chunkYXVKQMCKcjs.createRecipe; exports.createSlotContext = _chunkHUZ4AUM2cjs.createSlotContext; exports.markOverlay = _chunkBH5DSJVXcjs.markOverlay; exports.mergeProps = _chunkHUZ4AUM2cjs.mergeProps; exports.mergeRefs = _chunkHUZ4AUM2cjs.mergeRefs; exports.pressScaleFor = _chunkBH5DSJVXcjs.pressScaleFor; exports.radiusAxis = _chunkYXVKQMCKcjs.radiusAxis; exports.resolveAnimation = _chunkBH5DSJVXcjs.resolveAnimation; exports.resolveSlotAnimation = _chunkBH5DSJVXcjs.resolveSlotAnimation; exports.rippleRadiusFor = _chunkBH5DSJVXcjs.rippleRadiusFor; exports.useFeedback = _chunkBH5DSJVXcjs.useFeedback; exports.useIconContext = _chunkDXGQ43IVcjs.useIconContext; exports.useStyleProps = _chunkHUZ4AUM2cjs.useStyleProps;
@@ -1,14 +1,18 @@
1
+ import * as react_native from 'react-native';
2
+ import { StyleProp, ViewStyle, View } from 'react-native';
1
3
  import * as react from 'react';
2
4
  import { ReactNode, Provider, Ref, RefCallback } from 'react';
3
- import { b as IconProps, a as IconContextValue, S as SlotAnimation, F as FeedbackContext, c as AnimationProp, d as ResolvedAnimation } from '../pressable-feedback.type-1K8YEOb8.cjs';
4
- export { A as AnimationConfig, I as IconComponentProps, P as PressableFeedbackProps, R as RadiusStyle, e as RippleWave } from '../pressable-feedback.type-1K8YEOb8.cjs';
5
- import { V as ViewStyleProps } from '../style-props.type-B1BG5TCm.cjs';
6
- export { D as DirectionalStyleKey, I as ImageStyleProps, S as StyleProps, T as TextStyleProps } from '../style-props.type-B1BG5TCm.cjs';
7
- import * as react_native from 'react-native';
8
- import { StyleProp, ViewStyle } from 'react-native';
9
- export { A as Axes, C as CompoundVariant, R as Recipe, b as RecipeConfig, a as ResolveArgs, d as ResolvedSelection, e as ResolvedStyles, S as Selection, f as SlotStyle, g as SlotStyles, h as StateName, i as States, j as StyleFn, T as TintArgs, V as VariantColors, k as VariantRole, l as VariantTokens, c as createRecipe } from '../create-recipe-C0XXjuow.cjs';
5
+ import { S as SlotAnimation, F as FeedbackContext, a as AnimationProp, b as ResolvedAnimation, P as PressableFeedbackProps } from '../pressable-feedback.type-BA2C9sSz.cjs';
6
+ export { A as AnimationConfig, R as RadiusStyle, c as RippleWave } from '../pressable-feedback.type-BA2C9sSz.cjs';
7
+ import { R as RadiusKey, X as XAUITheme } from '../theme.type-C2gNHpEx.cjs';
8
+ import { j as StyleFn, f as SlotStyle } from '../create-recipe-jHlk434p.cjs';
9
+ export { A as Axes, C as CompoundVariant, R as Recipe, b as RecipeConfig, a as ResolveArgs, d as ResolvedSelection, e as ResolvedStyles, S as Selection, g as SlotStyles, h as StateName, i as States, T as TintArgs, V as VariantColors, k as VariantRole, l as VariantTokens, c as createRecipe } from '../create-recipe-jHlk434p.cjs';
10
+ export { C as CloseButtonProps } from '../close-button.type-CHsgZ3wO.cjs';
11
+ import { b as IconProps, a as IconContextValue } from '../icon.type-CF4KiMKl.cjs';
12
+ export { I as IconComponentProps } from '../icon.type-CF4KiMKl.cjs';
13
+ import { V as ViewStyleProps } from '../style-props.type-CfnoGEP7.cjs';
14
+ export { D as DirectionalStyleKey, I as ImageStyleProps, S as StyleProps, T as TextStyleProps } from '../style-props.type-CfnoGEP7.cjs';
10
15
  import 'react-native-reanimated';
11
- import '../theme.type-C2gNHpEx.cjs';
12
16
 
13
17
  /**
14
18
  * The runtime half of R14. The type half lives in `system/style-props/`, and the two are
@@ -117,95 +121,6 @@ declare namespace PortalHost {
117
121
  var displayName: string;
118
122
  }
119
123
 
120
- /**
121
- * R3: the string a root should wrap in its default text slot, or `null` when it should
122
- * render its children as they are.
123
- *
124
- * The whole tree is stringified recursively rather than the first child inspected. That
125
- * is what makes `<Button>{count} items</Button>` work — children there are the array
126
- * `[3, ' items']`, and an `isValidElement` check on the first entry would call it an
127
- * element-free tree only by accident, while a check for "is the first child a string"
128
- * would miss it outright.
129
- *
130
- * `null` for an empty result as much as for a tree containing an element: in both cases
131
- * there is nothing to wrap, and a root's fallback — render the children — is right for
132
- * both. It also keeps `<Button>{false}</Button>` from mounting an empty text node.
133
- */
134
- declare function childrenToString(children: ReactNode): string | null;
135
-
136
- /**
137
- * A context a slot cannot read by accident. Every compound gets one, and it carries
138
- * **resolved** values — style references the root already computed, not tokens for the
139
- * slot to resolve again (R5).
140
- *
141
- * ```ts
142
- * const [ButtonProvider, useButton] = createSlotContext<ButtonContext>('Button')
143
- * ```
144
- *
145
- * The tuple is what lets each compound name its own hook, which R10 requires it to
146
- * export. `name` gives both halves of the error, so there is one place to spell it.
147
- */
148
- declare function createSlotContext<T>(name: string): readonly [Provider<T | null>, () => T];
149
-
150
- /** Anything React accepts as a ref, plus the absence of one. */
151
- type PossibleRef<T> = Ref<T> | undefined;
152
- /**
153
- * The props `mergeProps` knows how to combine. Deliberately loose: it merges whatever a
154
- * root hands to whatever child it was given, and neither side is knowable from here.
155
- */
156
- type MergeableProps = Record<string, unknown>;
157
- type AsChildProps = {
158
- /**
159
- * Merge this component's props into its single child instead of rendering an element
160
- * of its own — a navigation `Link` as a `Button`, a bespoke trigger as a `Select`.
161
- */
162
- asChild?: boolean;
163
- };
164
-
165
- /**
166
- * Merges a root's own props into the child it renders through `asChild` (R12). Four
167
- * rules, and the child wins wherever they do not apply — it is the more specific intent:
168
- *
169
- * - **Event handlers compose.** Both run, ours first: the component's own behaviour (the
170
- * press state that drives its styles) happens before the child's side effect (the
171
- * navigation). Replacing one with the other is the bug this exists to prevent.
172
- * - **Styles stack**, ours under the child's, so the child can override.
173
- * - **`ref`s merge** through `mergeRefs`. React 19 passes `ref` as an ordinary prop, so
174
- * it arrives here rather than beside the props, and dropping it would sever the root's
175
- * handle on the node.
176
- * - **Everything else: the child's value wins**, and ours fills in what it left unset.
177
- */
178
- declare function mergeProps(ours: MergeableProps, theirs: MergeableProps): MergeableProps;
179
-
180
- /**
181
- * One callback that feeds several refs — what lets a root keep its own handle on a node
182
- * while still honouring the ref its caller passed (R9), and what `asChild` needs to
183
- * forward a ref into the child it merges into (R12).
184
- *
185
- * It returns nothing on purpose. React 19 reads a ref callback's return value as a
186
- * cleanup function while React 18 ignores it, and this package supports both; letting
187
- * a merged cleanup through would behave differently on each. React calls every ref with
188
- * `null` on unmount anyway, which this forwards.
189
- */
190
- declare function mergeRefs<T>(...refs: Array<PossibleRef<T>>): RefCallback<T>;
191
-
192
- type SlotProps = MergeableProps & {
193
- children?: ReactNode;
194
- };
195
- /**
196
- * The render branch behind `asChild` (R12). A root picks it instead of its own element:
197
- *
198
- * ```tsx
199
- * const Root = asChild ? Slot : Pressable
200
- * return <Root ref={ref} {...rootProps}>{children}</Root>
201
- * ```
202
- *
203
- * One line per root, which is the point — forty-seven roots each hand-rolling a
204
- * `cloneElement` and a ref merge would drift, and R12 has to hold uniformly from the
205
- * first component or the ref signature of the whole core changes later.
206
- */
207
- declare const Slot: react.ForwardRefExoticComponent<Omit<SlotProps, "ref"> & react.RefAttributes<unknown>>;
208
-
209
124
  type PressableFeedbackHighlightProps = ViewStyleProps & {
210
125
  style?: StyleProp<ViewStyle>;
211
126
  animation?: SlotAnimation;
@@ -395,4 +310,165 @@ declare const PressableFeedback: react.ForwardRefExoticComponent<Omit<react_nati
395
310
  Ripple: typeof PressableFeedbackRipple;
396
311
  };
397
312
 
398
- export { AnimationProp, type AsChildProps, 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, 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, Slot, SlotAnimation, type SlotProps, ViewStyleProps, childrenToString, createSlotContext, markOverlay, mergeProps, mergeRefs, pressScaleFor, resolveAnimation, resolveSlotAnimation, rippleRadiusFor, useFeedback, useIconContext, useStyleProps };
313
+ /**
314
+ * The `radius` axis, which is the same ten lines in every component that has one — a key
315
+ * of the radius scale, applied to one slot, overriding whatever `size` chose.
316
+ *
317
+ * It is written here rather than a third time in a recipe because that is the rule §2 bis
318
+ * states: extract at the second use, and by the end of P3 this axis exists in a dozen
319
+ * components. Nothing about it is component-specific except which slot carries the corner.
320
+ *
321
+ * ```ts
322
+ * variants: { size: { … }, radius: radiusAxis('root') }
323
+ * ```
324
+ *
325
+ * The return type is a full `Record<RadiusKey, …>` rather than a partial one, so
326
+ * `createRecipe` still infers `radius="3xl"` as the axis's value union and a typo in a
327
+ * caller's `radius` is a type error rather than a silently ignored key.
328
+ */
329
+ declare function radiusAxis<Slot extends string>(slot: Slot): Record<RadiusKey, StyleFn<Slot>>;
330
+
331
+ /**
332
+ * R3: the string a root should wrap in its default text slot, or `null` when it should
333
+ * render its children as they are.
334
+ *
335
+ * The whole tree is stringified recursively rather than the first child inspected. That
336
+ * is what makes `<Button>{count} items</Button>` work — children there are the array
337
+ * `[3, ' items']`, and an `isValidElement` check on the first entry would call it an
338
+ * element-free tree only by accident, while a check for "is the first child a string"
339
+ * would miss it outright.
340
+ *
341
+ * `null` for an empty result as much as for a tree containing an element: in both cases
342
+ * there is nothing to wrap, and a root's fallback — render the children — is right for
343
+ * both. It also keeps `<Button>{false}</Button>` from mounting an empty text node.
344
+ */
345
+ declare function childrenToString(children: ReactNode): string | null;
346
+
347
+ /**
348
+ * A context a slot cannot read by accident. Every compound gets one, and it carries
349
+ * **resolved** values — style references the root already computed, not tokens for the
350
+ * slot to resolve again (R5).
351
+ *
352
+ * ```ts
353
+ * const [ButtonProvider, useButton] = createSlotContext<ButtonContext>('Button')
354
+ * ```
355
+ *
356
+ * The tuple is what lets each compound name its own hook, which R10 requires it to
357
+ * export. `name` gives both halves of the error, so there is one place to spell it.
358
+ */
359
+ declare function createSlotContext<T>(name: string): readonly [Provider<T | null>, () => T];
360
+
361
+ /** Anything React accepts as a ref, plus the absence of one. */
362
+ type PossibleRef<T> = Ref<T> | undefined;
363
+ /**
364
+ * The props `mergeProps` knows how to combine. Deliberately loose: it merges whatever a
365
+ * root hands to whatever child it was given, and neither side is knowable from here.
366
+ */
367
+ type MergeableProps = Record<string, unknown>;
368
+ type AsChildProps = {
369
+ /**
370
+ * Merge this component's props into its single child instead of rendering an element
371
+ * of its own — a navigation `Link` as a `Button`, a bespoke trigger as a `Select`.
372
+ */
373
+ asChild?: boolean;
374
+ };
375
+
376
+ /**
377
+ * Merges a root's own props into the child it renders through `asChild` (R12). Four
378
+ * rules, and the child wins wherever they do not apply — it is the more specific intent:
379
+ *
380
+ * - **Event handlers compose.** Both run, ours first: the component's own behaviour (the
381
+ * press state that drives its styles) happens before the child's side effect (the
382
+ * navigation). Replacing one with the other is the bug this exists to prevent.
383
+ * - **Styles stack**, ours under the child's, so the child can override.
384
+ * - **`ref`s merge** through `mergeRefs`. React 19 passes `ref` as an ordinary prop, so
385
+ * it arrives here rather than beside the props, and dropping it would sever the root's
386
+ * handle on the node.
387
+ * - **Everything else: the child's value wins**, and ours fills in what it left unset.
388
+ */
389
+ declare function mergeProps(ours: MergeableProps, theirs: MergeableProps): MergeableProps;
390
+
391
+ /**
392
+ * One callback that feeds several refs — what lets a root keep its own handle on a node
393
+ * while still honouring the ref its caller passed (R9), and what `asChild` needs to
394
+ * forward a ref into the child it merges into (R12).
395
+ *
396
+ * It returns nothing on purpose. React 19 reads a ref callback's return value as a
397
+ * cleanup function while React 18 ignores it, and this package supports both; letting
398
+ * a merged cleanup through would behave differently on each. React calls every ref with
399
+ * `null` on unmount anyway, which this forwards.
400
+ */
401
+ declare function mergeRefs<T>(...refs: Array<PossibleRef<T>>): RefCallback<T>;
402
+
403
+ type SlotProps = MergeableProps & {
404
+ children?: ReactNode;
405
+ };
406
+ /**
407
+ * The render branch behind `asChild` (R12). A root picks it instead of its own element:
408
+ *
409
+ * ```tsx
410
+ * const Root = asChild ? Slot : Pressable
411
+ * return <Root ref={ref} {...rootProps}>{children}</Root>
412
+ * ```
413
+ *
414
+ * One line per root, which is the point — forty-seven roots each hand-rolling a
415
+ * `cloneElement` and a ref merge would drift, and R12 has to hold uniformly from the
416
+ * first component or the ref signature of the whole core changes later.
417
+ */
418
+ declare const Slot: react.ForwardRefExoticComponent<Omit<SlotProps, "ref"> & react.RefAttributes<unknown>>;
419
+
420
+ /**
421
+ * The dismiss affordance shared by everything that can be dismissed — `Chip.Close`,
422
+ * `Alert.Close`, and the `Dialog`, `Snackbar` and `Sheet` of P5. Each of those is a
423
+ * five-line call site handing it the styles its own recipe resolved:
424
+ *
425
+ * ```tsx
426
+ * const { closeStyle, closeGlyphStyle, isDisabled } = useChip()
427
+ *
428
+ * <CloseButton
429
+ * name="Chip.Close"
430
+ * baseStyle={closeStyle}
431
+ * glyphStyle={closeGlyphStyle}
432
+ * isDisabled={isDisabled}
433
+ * />
434
+ * ```
435
+ *
436
+ * **It owns its press state**, unlike every other pressable in the library, where the
437
+ * component root owns it because its recipe resolves on it. Here the surrounding
438
+ * component is usually not a control at all, and where it is, the two are different
439
+ * targets: pressing the cross must not read as pressing the chip around it.
440
+ *
441
+ * With no children it draws its own cross from two bars a quarter turn apart, so a
442
+ * dismissible component works in a project that has installed no icon set.
443
+ */
444
+ declare const CloseButton: react.ForwardRefExoticComponent<{
445
+ name: string;
446
+ children?: react.ReactNode;
447
+ baseStyle?: react_native.StyleProp<react_native.ViewStyle>;
448
+ glyphStyle?: react_native.StyleProp<react_native.ViewStyle>;
449
+ style?: react_native.StyleProp<react_native.ViewStyle> | ((state: react_native.PressableStateCallbackType) => react_native.StyleProp<react_native.ViewStyle>);
450
+ } & Omit<PressableFeedbackProps, "style" | "children" | "isPressed"> & react.RefAttributes<View>>;
451
+
452
+ /** The two slots a component publishes for a `CloseButton`: its box and one cross bar. */
453
+ type CloseButtonSlots = {
454
+ close: SlotStyle;
455
+ closeGlyph: SlotStyle;
456
+ };
457
+ /**
458
+ * The cross's own geometry, for the `base` of any recipe that hosts a `CloseButton`:
459
+ *
460
+ * ```ts
461
+ * base: theme => ({ ...closeButtonBase(theme), root: { … } })
462
+ * ```
463
+ *
464
+ * The bar's thickness and the box's centring belong to the button rather than to the
465
+ * component around it, so they are written once here. What stays in the recipe is what is
466
+ * genuinely the component's: the size of the box and the length of the bar, both of which
467
+ * follow that component's own scale.
468
+ *
469
+ * Two bars are rendered, rotated a quarter turn apart, which is why only one is described
470
+ * and why it is positioned absolutely — they overlap at the centre of the box.
471
+ */
472
+ declare function closeButtonBase(theme: XAUITheme): CloseButtonSlots;
473
+
474
+ 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, Slot, SlotAnimation, type SlotProps, SlotStyle, StyleFn, ViewStyleProps, childrenToString, closeButtonBase, createSlotContext, markOverlay, mergeProps, mergeRefs, pressScaleFor, radiusAxis, resolveAnimation, resolveSlotAnimation, rippleRadiusFor, useFeedback, useIconContext, useStyleProps };
@@ -1,14 +1,18 @@
1
+ import * as react_native from 'react-native';
2
+ import { StyleProp, ViewStyle, View } from 'react-native';
1
3
  import * as react from 'react';
2
4
  import { ReactNode, Provider, Ref, RefCallback } from 'react';
3
- import { b as IconProps, a as IconContextValue, S as SlotAnimation, F as FeedbackContext, c as AnimationProp, d as ResolvedAnimation } from '../pressable-feedback.type-BwkKLQlX.js';
4
- export { A as AnimationConfig, I as IconComponentProps, P as PressableFeedbackProps, R as RadiusStyle, e as RippleWave } from '../pressable-feedback.type-BwkKLQlX.js';
5
- import { V as ViewStyleProps } from '../style-props.type-B1BG5TCm.js';
6
- export { D as DirectionalStyleKey, I as ImageStyleProps, S as StyleProps, T as TextStyleProps } from '../style-props.type-B1BG5TCm.js';
7
- import * as react_native from 'react-native';
8
- import { StyleProp, ViewStyle } from 'react-native';
9
- export { A as Axes, C as CompoundVariant, R as Recipe, b as RecipeConfig, a as ResolveArgs, d as ResolvedSelection, e as ResolvedStyles, S as Selection, f as SlotStyle, g as SlotStyles, h as StateName, i as States, j as StyleFn, T as TintArgs, V as VariantColors, k as VariantRole, l as VariantTokens, c as createRecipe } from '../create-recipe-CPXFo2rk.js';
5
+ import { S as SlotAnimation, F as FeedbackContext, a as AnimationProp, b as ResolvedAnimation, P as PressableFeedbackProps } from '../pressable-feedback.type-Bs4dQlGj.js';
6
+ export { A as AnimationConfig, R as RadiusStyle, c as RippleWave } from '../pressable-feedback.type-Bs4dQlGj.js';
7
+ import { R as RadiusKey, X as XAUITheme } from '../theme.type-C2gNHpEx.js';
8
+ import { j as StyleFn, f as SlotStyle } from '../create-recipe-CbXika57.js';
9
+ export { A as Axes, C as CompoundVariant, R as Recipe, b as RecipeConfig, a as ResolveArgs, d as ResolvedSelection, e as ResolvedStyles, S as Selection, g as SlotStyles, h as StateName, i as States, T as TintArgs, V as VariantColors, k as VariantRole, l as VariantTokens, c as createRecipe } from '../create-recipe-CbXika57.js';
10
+ export { C as CloseButtonProps } from '../close-button.type-BUYuoSt2.js';
11
+ import { b as IconProps, a as IconContextValue } from '../icon.type-Dq4_qePa.js';
12
+ export { I as IconComponentProps } from '../icon.type-Dq4_qePa.js';
13
+ import { V as ViewStyleProps } from '../style-props.type-CfnoGEP7.js';
14
+ export { D as DirectionalStyleKey, I as ImageStyleProps, S as StyleProps, T as TextStyleProps } from '../style-props.type-CfnoGEP7.js';
10
15
  import 'react-native-reanimated';
11
- import '../theme.type-C2gNHpEx.js';
12
16
 
13
17
  /**
14
18
  * The runtime half of R14. The type half lives in `system/style-props/`, and the two are
@@ -117,95 +121,6 @@ declare namespace PortalHost {
117
121
  var displayName: string;
118
122
  }
119
123
 
120
- /**
121
- * R3: the string a root should wrap in its default text slot, or `null` when it should
122
- * render its children as they are.
123
- *
124
- * The whole tree is stringified recursively rather than the first child inspected. That
125
- * is what makes `<Button>{count} items</Button>` work — children there are the array
126
- * `[3, ' items']`, and an `isValidElement` check on the first entry would call it an
127
- * element-free tree only by accident, while a check for "is the first child a string"
128
- * would miss it outright.
129
- *
130
- * `null` for an empty result as much as for a tree containing an element: in both cases
131
- * there is nothing to wrap, and a root's fallback — render the children — is right for
132
- * both. It also keeps `<Button>{false}</Button>` from mounting an empty text node.
133
- */
134
- declare function childrenToString(children: ReactNode): string | null;
135
-
136
- /**
137
- * A context a slot cannot read by accident. Every compound gets one, and it carries
138
- * **resolved** values — style references the root already computed, not tokens for the
139
- * slot to resolve again (R5).
140
- *
141
- * ```ts
142
- * const [ButtonProvider, useButton] = createSlotContext<ButtonContext>('Button')
143
- * ```
144
- *
145
- * The tuple is what lets each compound name its own hook, which R10 requires it to
146
- * export. `name` gives both halves of the error, so there is one place to spell it.
147
- */
148
- declare function createSlotContext<T>(name: string): readonly [Provider<T | null>, () => T];
149
-
150
- /** Anything React accepts as a ref, plus the absence of one. */
151
- type PossibleRef<T> = Ref<T> | undefined;
152
- /**
153
- * The props `mergeProps` knows how to combine. Deliberately loose: it merges whatever a
154
- * root hands to whatever child it was given, and neither side is knowable from here.
155
- */
156
- type MergeableProps = Record<string, unknown>;
157
- type AsChildProps = {
158
- /**
159
- * Merge this component's props into its single child instead of rendering an element
160
- * of its own — a navigation `Link` as a `Button`, a bespoke trigger as a `Select`.
161
- */
162
- asChild?: boolean;
163
- };
164
-
165
- /**
166
- * Merges a root's own props into the child it renders through `asChild` (R12). Four
167
- * rules, and the child wins wherever they do not apply — it is the more specific intent:
168
- *
169
- * - **Event handlers compose.** Both run, ours first: the component's own behaviour (the
170
- * press state that drives its styles) happens before the child's side effect (the
171
- * navigation). Replacing one with the other is the bug this exists to prevent.
172
- * - **Styles stack**, ours under the child's, so the child can override.
173
- * - **`ref`s merge** through `mergeRefs`. React 19 passes `ref` as an ordinary prop, so
174
- * it arrives here rather than beside the props, and dropping it would sever the root's
175
- * handle on the node.
176
- * - **Everything else: the child's value wins**, and ours fills in what it left unset.
177
- */
178
- declare function mergeProps(ours: MergeableProps, theirs: MergeableProps): MergeableProps;
179
-
180
- /**
181
- * One callback that feeds several refs — what lets a root keep its own handle on a node
182
- * while still honouring the ref its caller passed (R9), and what `asChild` needs to
183
- * forward a ref into the child it merges into (R12).
184
- *
185
- * It returns nothing on purpose. React 19 reads a ref callback's return value as a
186
- * cleanup function while React 18 ignores it, and this package supports both; letting
187
- * a merged cleanup through would behave differently on each. React calls every ref with
188
- * `null` on unmount anyway, which this forwards.
189
- */
190
- declare function mergeRefs<T>(...refs: Array<PossibleRef<T>>): RefCallback<T>;
191
-
192
- type SlotProps = MergeableProps & {
193
- children?: ReactNode;
194
- };
195
- /**
196
- * The render branch behind `asChild` (R12). A root picks it instead of its own element:
197
- *
198
- * ```tsx
199
- * const Root = asChild ? Slot : Pressable
200
- * return <Root ref={ref} {...rootProps}>{children}</Root>
201
- * ```
202
- *
203
- * One line per root, which is the point — forty-seven roots each hand-rolling a
204
- * `cloneElement` and a ref merge would drift, and R12 has to hold uniformly from the
205
- * first component or the ref signature of the whole core changes later.
206
- */
207
- declare const Slot: react.ForwardRefExoticComponent<Omit<SlotProps, "ref"> & react.RefAttributes<unknown>>;
208
-
209
124
  type PressableFeedbackHighlightProps = ViewStyleProps & {
210
125
  style?: StyleProp<ViewStyle>;
211
126
  animation?: SlotAnimation;
@@ -395,4 +310,165 @@ declare const PressableFeedback: react.ForwardRefExoticComponent<Omit<react_nati
395
310
  Ripple: typeof PressableFeedbackRipple;
396
311
  };
397
312
 
398
- export { AnimationProp, type AsChildProps, 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, 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, Slot, SlotAnimation, type SlotProps, ViewStyleProps, childrenToString, createSlotContext, markOverlay, mergeProps, mergeRefs, pressScaleFor, resolveAnimation, resolveSlotAnimation, rippleRadiusFor, useFeedback, useIconContext, useStyleProps };
313
+ /**
314
+ * The `radius` axis, which is the same ten lines in every component that has one — a key
315
+ * of the radius scale, applied to one slot, overriding whatever `size` chose.
316
+ *
317
+ * It is written here rather than a third time in a recipe because that is the rule §2 bis
318
+ * states: extract at the second use, and by the end of P3 this axis exists in a dozen
319
+ * components. Nothing about it is component-specific except which slot carries the corner.
320
+ *
321
+ * ```ts
322
+ * variants: { size: { … }, radius: radiusAxis('root') }
323
+ * ```
324
+ *
325
+ * The return type is a full `Record<RadiusKey, …>` rather than a partial one, so
326
+ * `createRecipe` still infers `radius="3xl"` as the axis's value union and a typo in a
327
+ * caller's `radius` is a type error rather than a silently ignored key.
328
+ */
329
+ declare function radiusAxis<Slot extends string>(slot: Slot): Record<RadiusKey, StyleFn<Slot>>;
330
+
331
+ /**
332
+ * R3: the string a root should wrap in its default text slot, or `null` when it should
333
+ * render its children as they are.
334
+ *
335
+ * The whole tree is stringified recursively rather than the first child inspected. That
336
+ * is what makes `<Button>{count} items</Button>` work — children there are the array
337
+ * `[3, ' items']`, and an `isValidElement` check on the first entry would call it an
338
+ * element-free tree only by accident, while a check for "is the first child a string"
339
+ * would miss it outright.
340
+ *
341
+ * `null` for an empty result as much as for a tree containing an element: in both cases
342
+ * there is nothing to wrap, and a root's fallback — render the children — is right for
343
+ * both. It also keeps `<Button>{false}</Button>` from mounting an empty text node.
344
+ */
345
+ declare function childrenToString(children: ReactNode): string | null;
346
+
347
+ /**
348
+ * A context a slot cannot read by accident. Every compound gets one, and it carries
349
+ * **resolved** values — style references the root already computed, not tokens for the
350
+ * slot to resolve again (R5).
351
+ *
352
+ * ```ts
353
+ * const [ButtonProvider, useButton] = createSlotContext<ButtonContext>('Button')
354
+ * ```
355
+ *
356
+ * The tuple is what lets each compound name its own hook, which R10 requires it to
357
+ * export. `name` gives both halves of the error, so there is one place to spell it.
358
+ */
359
+ declare function createSlotContext<T>(name: string): readonly [Provider<T | null>, () => T];
360
+
361
+ /** Anything React accepts as a ref, plus the absence of one. */
362
+ type PossibleRef<T> = Ref<T> | undefined;
363
+ /**
364
+ * The props `mergeProps` knows how to combine. Deliberately loose: it merges whatever a
365
+ * root hands to whatever child it was given, and neither side is knowable from here.
366
+ */
367
+ type MergeableProps = Record<string, unknown>;
368
+ type AsChildProps = {
369
+ /**
370
+ * Merge this component's props into its single child instead of rendering an element
371
+ * of its own — a navigation `Link` as a `Button`, a bespoke trigger as a `Select`.
372
+ */
373
+ asChild?: boolean;
374
+ };
375
+
376
+ /**
377
+ * Merges a root's own props into the child it renders through `asChild` (R12). Four
378
+ * rules, and the child wins wherever they do not apply — it is the more specific intent:
379
+ *
380
+ * - **Event handlers compose.** Both run, ours first: the component's own behaviour (the
381
+ * press state that drives its styles) happens before the child's side effect (the
382
+ * navigation). Replacing one with the other is the bug this exists to prevent.
383
+ * - **Styles stack**, ours under the child's, so the child can override.
384
+ * - **`ref`s merge** through `mergeRefs`. React 19 passes `ref` as an ordinary prop, so
385
+ * it arrives here rather than beside the props, and dropping it would sever the root's
386
+ * handle on the node.
387
+ * - **Everything else: the child's value wins**, and ours fills in what it left unset.
388
+ */
389
+ declare function mergeProps(ours: MergeableProps, theirs: MergeableProps): MergeableProps;
390
+
391
+ /**
392
+ * One callback that feeds several refs — what lets a root keep its own handle on a node
393
+ * while still honouring the ref its caller passed (R9), and what `asChild` needs to
394
+ * forward a ref into the child it merges into (R12).
395
+ *
396
+ * It returns nothing on purpose. React 19 reads a ref callback's return value as a
397
+ * cleanup function while React 18 ignores it, and this package supports both; letting
398
+ * a merged cleanup through would behave differently on each. React calls every ref with
399
+ * `null` on unmount anyway, which this forwards.
400
+ */
401
+ declare function mergeRefs<T>(...refs: Array<PossibleRef<T>>): RefCallback<T>;
402
+
403
+ type SlotProps = MergeableProps & {
404
+ children?: ReactNode;
405
+ };
406
+ /**
407
+ * The render branch behind `asChild` (R12). A root picks it instead of its own element:
408
+ *
409
+ * ```tsx
410
+ * const Root = asChild ? Slot : Pressable
411
+ * return <Root ref={ref} {...rootProps}>{children}</Root>
412
+ * ```
413
+ *
414
+ * One line per root, which is the point — forty-seven roots each hand-rolling a
415
+ * `cloneElement` and a ref merge would drift, and R12 has to hold uniformly from the
416
+ * first component or the ref signature of the whole core changes later.
417
+ */
418
+ declare const Slot: react.ForwardRefExoticComponent<Omit<SlotProps, "ref"> & react.RefAttributes<unknown>>;
419
+
420
+ /**
421
+ * The dismiss affordance shared by everything that can be dismissed — `Chip.Close`,
422
+ * `Alert.Close`, and the `Dialog`, `Snackbar` and `Sheet` of P5. Each of those is a
423
+ * five-line call site handing it the styles its own recipe resolved:
424
+ *
425
+ * ```tsx
426
+ * const { closeStyle, closeGlyphStyle, isDisabled } = useChip()
427
+ *
428
+ * <CloseButton
429
+ * name="Chip.Close"
430
+ * baseStyle={closeStyle}
431
+ * glyphStyle={closeGlyphStyle}
432
+ * isDisabled={isDisabled}
433
+ * />
434
+ * ```
435
+ *
436
+ * **It owns its press state**, unlike every other pressable in the library, where the
437
+ * component root owns it because its recipe resolves on it. Here the surrounding
438
+ * component is usually not a control at all, and where it is, the two are different
439
+ * targets: pressing the cross must not read as pressing the chip around it.
440
+ *
441
+ * With no children it draws its own cross from two bars a quarter turn apart, so a
442
+ * dismissible component works in a project that has installed no icon set.
443
+ */
444
+ declare const CloseButton: react.ForwardRefExoticComponent<{
445
+ name: string;
446
+ children?: react.ReactNode;
447
+ baseStyle?: react_native.StyleProp<react_native.ViewStyle>;
448
+ glyphStyle?: react_native.StyleProp<react_native.ViewStyle>;
449
+ style?: react_native.StyleProp<react_native.ViewStyle> | ((state: react_native.PressableStateCallbackType) => react_native.StyleProp<react_native.ViewStyle>);
450
+ } & Omit<PressableFeedbackProps, "style" | "children" | "isPressed"> & react.RefAttributes<View>>;
451
+
452
+ /** The two slots a component publishes for a `CloseButton`: its box and one cross bar. */
453
+ type CloseButtonSlots = {
454
+ close: SlotStyle;
455
+ closeGlyph: SlotStyle;
456
+ };
457
+ /**
458
+ * The cross's own geometry, for the `base` of any recipe that hosts a `CloseButton`:
459
+ *
460
+ * ```ts
461
+ * base: theme => ({ ...closeButtonBase(theme), root: { … } })
462
+ * ```
463
+ *
464
+ * The bar's thickness and the box's centring belong to the button rather than to the
465
+ * component around it, so they are written once here. What stays in the recipe is what is
466
+ * genuinely the component's: the size of the box and the length of the bar, both of which
467
+ * follow that component's own scale.
468
+ *
469
+ * Two bars are rendered, rotated a quarter turn apart, which is why only one is described
470
+ * and why it is positioned absolutely — they overlap at the centre of the box.
471
+ */
472
+ declare function closeButtonBase(theme: XAUITheme): CloseButtonSlots;
473
+
474
+ 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, Slot, SlotAnimation, type SlotProps, SlotStyle, StyleFn, ViewStyleProps, childrenToString, closeButtonBase, createSlotContext, markOverlay, mergeProps, mergeRefs, pressScaleFor, radiusAxis, resolveAnimation, resolveSlotAnimation, rippleRadiusFor, useFeedback, useIconContext, useStyleProps };