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

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 (53) hide show
  1. package/dist/chunk-2WMVDMFV.cjs +62 -0
  2. package/dist/chunk-33QILJJH.cjs +143 -0
  3. package/dist/chunk-4EPS7UBO.js +496 -0
  4. package/dist/{chunk-M7P46XKI.cjs → chunk-57SJ4LJF.cjs} +33 -3
  5. package/dist/chunk-6ARON3XT.cjs +534 -0
  6. package/dist/{chunk-RBNCR5KB.js → chunk-A3EGFI6T.js} +31 -1
  7. package/dist/chunk-A4VD4MHK.cjs +757 -0
  8. package/dist/{chunk-NHPQQQ7P.cjs → chunk-BHTFIZTQ.cjs} +55 -88
  9. package/dist/chunk-EVXZGNPA.cjs +303 -0
  10. package/dist/chunk-EXX6ATAS.js +303 -0
  11. package/dist/chunk-GGW42MY4.js +20 -0
  12. package/dist/chunk-JXLRHKCQ.js +143 -0
  13. package/dist/chunk-MC7SY2QH.cjs +20 -0
  14. package/dist/{chunk-PBVPOX7D.js → chunk-MWXE7D4L.js} +29 -62
  15. package/dist/{chunk-RCP3SD26.js → chunk-N7C4UNUL.js} +2 -126
  16. package/dist/chunk-RMLFMRWL.js +102 -0
  17. package/dist/chunk-UBA6AEY6.cjs +102 -0
  18. package/dist/{chunk-B755PRVJ.cjs → chunk-UVO4GFSW.cjs} +3 -127
  19. package/dist/chunk-WXAME7KB.js +728 -0
  20. package/dist/chunk-XHZBXYVU.js +62 -0
  21. package/dist/components/button/index.cjs +15 -0
  22. package/dist/components/button/index.d.cts +658 -0
  23. package/dist/components/button/index.d.ts +658 -0
  24. package/dist/components/button/index.js +15 -0
  25. package/dist/components/typography/index.cjs +14 -0
  26. package/dist/components/typography/index.d.cts +116 -0
  27. package/dist/components/typography/index.d.ts +116 -0
  28. package/dist/components/typography/index.js +14 -0
  29. package/dist/components/view/index.cjs +16 -0
  30. package/dist/components/view/index.d.cts +152 -0
  31. package/dist/components/view/index.d.ts +152 -0
  32. package/dist/components/view/index.js +16 -0
  33. package/dist/create-recipe-C0XXjuow.d.cts +89 -0
  34. package/dist/create-recipe-CPXFo2rk.d.ts +89 -0
  35. package/dist/index.cjs +151 -5
  36. package/dist/index.d.cts +77 -4
  37. package/dist/index.d.ts +77 -4
  38. package/dist/index.js +155 -9
  39. package/dist/pressable-feedback.type-1K8YEOb8.d.cts +195 -0
  40. package/dist/pressable-feedback.type-BwkKLQlX.d.ts +195 -0
  41. package/dist/style-props.type-B1BG5TCm.d.cts +31 -0
  42. package/dist/style-props.type-B1BG5TCm.d.ts +31 -0
  43. package/dist/system/index.cjs +64 -3
  44. package/dist/system/index.d.cts +299 -75
  45. package/dist/system/index.d.ts +299 -75
  46. package/dist/system/index.js +66 -5
  47. package/dist/theme/index.cjs +4 -3
  48. package/dist/theme/index.d.cts +26 -14
  49. package/dist/theme/index.d.ts +26 -14
  50. package/dist/theme/index.js +7 -6
  51. package/dist/{theme.type-B3ODSLbB.d.cts → theme.type-C2gNHpEx.d.cts} +8 -2
  52. package/dist/{theme.type-B3ODSLbB.d.ts → theme.type-C2gNHpEx.d.ts} +8 -2
  53. package/package.json +64 -18
@@ -0,0 +1,152 @@
1
+ import * as react from 'react';
2
+ import { ReactNode } from 'react';
3
+ import * as react_native from 'react-native';
4
+ import { View, ViewProps, StyleProp, ViewStyle } from 'react-native';
5
+ import { V as ViewStyleProps } from '../../style-props.type-B1BG5TCm.js';
6
+
7
+ /**
8
+ * A horizontal axis.
9
+ *
10
+ * ```tsx
11
+ * <Row gap={8} alignItems="center">
12
+ * <Button.Icon as={Trash2} />
13
+ * <Typography variant="h6">Supprimer</Typography>
14
+ * </Row>
15
+ * ```
16
+ *
17
+ * **It contributes one declaration**, `flexDirection: 'row'`, and everything else it looks
18
+ * like it offers comes from R14: `gap`, `alignItems`, `justifyContent`, `padding` and the
19
+ * rest are `ViewStyle` keys every node already exposes as props. That is deliberate — the
20
+ * legacy component invented `mainAxisAlignment`, `crossAxisAlignment` and `mainAxisSize`,
21
+ * a vocabulary to learn for saying what React Native already says.
22
+ *
23
+ * There is no `reversed` prop either. `row` already flips in an RTL layout, which is the
24
+ * case that matters, and a genuine reversal is `style={{ flexDirection: 'row-reverse' }}`.
25
+ */
26
+ declare const Row: react.ForwardRefExoticComponent<Omit<react_native.ViewProps, "style"> & {
27
+ asChild?: boolean;
28
+ style?: react_native.StyleProp<react_native.ViewStyle>;
29
+ children?: react.ReactNode;
30
+ } & Omit<ViewStyleProps, "flexDirection" | "pointerEvents" | "style" | "children" | "id" | "onLayout" | "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" | "hitSlop" | "needsOffscreenAlphaCompositing" | "removeClippedSubviews" | "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" | "asChild"> & react.RefAttributes<View>>;
31
+
32
+ /**
33
+ * A vertical axis.
34
+ *
35
+ * ```tsx
36
+ * <Column gap={16} padding={16}>
37
+ * <Typography variant="h3">Projets</Typography>
38
+ * <Typography variant="body-sm">Trois en cours, un archivé.</Typography>
39
+ * </Column>
40
+ * ```
41
+ *
42
+ * **It contributes one declaration**, `flexDirection: 'column'` — which is React Native's
43
+ * default, so this component exists for what it *says* rather than for what it changes.
44
+ * A column written as a column reads as a deliberate axis, and its siblings in a layout
45
+ * are then all named the same way; a bare `View` leaves the reader to infer it.
46
+ *
47
+ * Everything else comes from R14: `gap`, `alignItems`, `justifyContent`, `padding` are
48
+ * `ViewStyle` keys every node already exposes as props, under React Native's own names.
49
+ */
50
+ declare const Column: react.ForwardRefExoticComponent<Omit<react_native.ViewProps, "style"> & {
51
+ asChild?: boolean;
52
+ style?: react_native.StyleProp<react_native.ViewStyle>;
53
+ children?: react.ReactNode;
54
+ } & Omit<ViewStyleProps, "flexDirection" | "pointerEvents" | "style" | "children" | "id" | "onLayout" | "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" | "hitSlop" | "needsOffscreenAlphaCompositing" | "removeClippedSubviews" | "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" | "asChild"> & react.RefAttributes<View>>;
55
+
56
+ type GridContextValue = {
57
+ /**
58
+ * The width of one column in points, or `undefined` on the very first render — the grid
59
+ * has not been measured yet. A cell falls back to a percentage for that one frame.
60
+ */
61
+ cellWidth: number | undefined;
62
+ columns: number;
63
+ gap: number;
64
+ };
65
+ /**
66
+ * R10 — the resolved geometry a cell needs, published by the root that measured it.
67
+ *
68
+ * Strict, and named: a `Grid.Item` outside a `Grid` has no column width to span, and
69
+ * failing with the component's name beats rendering a cell of arbitrary size.
70
+ */
71
+ declare function useGrid(): GridContextValue;
72
+
73
+ type AxisOwnProps = {
74
+ /** R12 — the child element becomes the axis, keeping its direction. */
75
+ asChild?: boolean;
76
+ style?: StyleProp<ViewStyle>;
77
+ children?: ReactNode;
78
+ };
79
+ /**
80
+ * Everything a `View` can be styled with, as props (R14), **minus `flexDirection`** — that
81
+ * one is the component's identity, and a `Row` that could be told to lay out as a column
82
+ * would only be a `View` with a longer name. Reversal and the rest go through `style`,
83
+ * which is the escape hatch for what has no readable prop.
84
+ *
85
+ * Note what is *not* declared here: no `mainAxisAlignment`, no `crossAxisAlignment`, no
86
+ * `gap` prop of our own. They are `justifyContent`, `alignItems` and `gap` — React
87
+ * Native's own names, carrying React Native's own values, and R14 already exposes every
88
+ * one of them. A vocabulary of ours would be a second set of words for the same thing.
89
+ */
90
+ type AxisProps = Omit<ViewProps, 'style'> & AxisOwnProps & Omit<ViewStyleProps, keyof AxisOwnProps | keyof ViewProps | 'flexDirection'>;
91
+ type RowProps = AxisProps;
92
+ type ColumnProps = AxisProps;
93
+ /**
94
+ * `Stack` and `Stack.Item` take the full R14 set: unlike the axes, neither claims a style
95
+ * key as its identity. `position` is set by each of them and remains overridable, because
96
+ * a layer that has to be `relative` for one screen should not need a different component.
97
+ */
98
+ type StackProps = Omit<ViewProps, 'style'> & AxisOwnProps & Omit<ViewStyleProps, keyof AxisOwnProps | keyof ViewProps>;
99
+ type StackItemProps = StackProps;
100
+ type GridOwnProps = {
101
+ /** How many columns. Floored, and never below one. @default 2 */
102
+ columns?: number;
103
+ /**
104
+ * The space between cells, in points — React Native's `gap`, taken as a prop because the
105
+ * root has to read it to size the columns. @default 0
106
+ */
107
+ gap?: number;
108
+ style?: StyleProp<ViewStyle>;
109
+ children?: ReactNode;
110
+ };
111
+ /**
112
+ * No `asChild`: the root measures itself through `onLayout` and publishes the result, so
113
+ * it has to be the node it renders. `flexDirection`, `flexWrap` and the three gap keys are
114
+ * withheld for the same reason — they are the grid's mechanism, not its decoration.
115
+ */
116
+ type GridProps = Omit<ViewProps, 'style'> & GridOwnProps & Omit<ViewStyleProps, keyof GridOwnProps | keyof ViewProps | 'flexDirection' | 'flexWrap' | 'columnGap' | 'rowGap'>;
117
+ type GridItemOwnProps = {
118
+ /** How many columns the cell covers. Clamped to the grid's count. @default 1 */
119
+ span?: number;
120
+ style?: StyleProp<ViewStyle>;
121
+ children?: ReactNode;
122
+ };
123
+ /** `width` is the grid's answer, so it is not a prop here. */
124
+ type GridItemProps = Omit<ViewProps, 'style'> & GridItemOwnProps & Omit<ViewStyleProps, keyof GridItemOwnProps | keyof ViewProps | 'width'>;
125
+
126
+ /** Overlaying is composed: the root is the containing block, `Item` is a layer in it. */
127
+ declare const Stack: react.ForwardRefExoticComponent<Omit<react_native.ViewProps, "style"> & {
128
+ asChild?: boolean;
129
+ style?: react_native.StyleProp<react_native.ViewStyle>;
130
+ children?: react.ReactNode;
131
+ } & Omit<ViewStyleProps, "pointerEvents" | "style" | "children" | "id" | "onLayout" | "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" | "hitSlop" | "needsOffscreenAlphaCompositing" | "removeClippedSubviews" | "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" | "asChild"> & react.RefAttributes<react_native.View>> & {
132
+ Item: react.ForwardRefExoticComponent<Omit<react_native.ViewProps, "style"> & {
133
+ asChild?: boolean;
134
+ style?: react_native.StyleProp<react_native.ViewStyle>;
135
+ children?: react.ReactNode;
136
+ } & Omit<ViewStyleProps, "pointerEvents" | "style" | "children" | "id" | "onLayout" | "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" | "hitSlop" | "needsOffscreenAlphaCompositing" | "removeClippedSubviews" | "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" | "asChild"> & react.RefAttributes<react_native.View>>;
137
+ };
138
+ /** Every child is a cell; `Item` is the one that spans more than a column. */
139
+ declare const Grid: react.ForwardRefExoticComponent<Omit<react_native.ViewProps, "style"> & {
140
+ columns?: number;
141
+ gap?: number;
142
+ style?: react_native.StyleProp<react_native.ViewStyle>;
143
+ children?: react.ReactNode;
144
+ } & Omit<ViewStyleProps, "columnGap" | "flexDirection" | "flexWrap" | "gap" | "rowGap" | "pointerEvents" | "style" | "children" | "id" | "onLayout" | "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" | "hitSlop" | "needsOffscreenAlphaCompositing" | "removeClippedSubviews" | "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" | "columns"> & react.RefAttributes<react_native.View>> & {
145
+ Item: react.ForwardRefExoticComponent<Omit<react_native.ViewProps, "style"> & {
146
+ span?: number;
147
+ style?: react_native.StyleProp<react_native.ViewStyle>;
148
+ children?: react.ReactNode;
149
+ } & Omit<ViewStyleProps, "width" | "pointerEvents" | "span" | "style" | "children" | "id" | "onLayout" | "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" | "hitSlop" | "needsOffscreenAlphaCompositing" | "removeClippedSubviews" | "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"> & react.RefAttributes<react_native.View>>;
150
+ };
151
+
152
+ export { type AxisProps, Column, type ColumnProps, Grid, type GridContextValue, type GridItemProps, type GridProps, Row, type RowProps, Stack, type StackItemProps, type StackProps, useGrid };
@@ -0,0 +1,16 @@
1
+ import {
2
+ Column,
3
+ Grid,
4
+ Row,
5
+ Stack,
6
+ useGrid
7
+ } from "../../chunk-JXLRHKCQ.js";
8
+ import "../../chunk-EXX6ATAS.js";
9
+ import "../../chunk-GGW42MY4.js";
10
+ export {
11
+ Column,
12
+ Grid,
13
+ Row,
14
+ Stack,
15
+ useGrid
16
+ };
@@ -0,0 +1,89 @@
1
+ import { X as XAUITheme, a as XAUIColors } from './theme.type-C2gNHpEx.cjs';
2
+ import { ViewStyle, TextStyle } from 'react-native';
3
+
4
+ /**
5
+ * A slot is a view or a text node, and a recipe writes one object per slot, so the two
6
+ * RN style shapes are merged rather than discriminated per slot.
7
+ */
8
+ type SlotStyle = ViewStyle & TextStyle;
9
+ type SlotStyles<Slot extends string> = Partial<Record<Slot, SlotStyle>>;
10
+ /** The roles a variant consumes. The variant names tokens; `paint` says where they land. */
11
+ type VariantRole = 'bg' | 'bgPressed' | 'fg' | 'border';
12
+ /** Token names per role — no colour value ever appears in a recipe. */
13
+ type VariantTokens = Partial<Record<VariantRole, keyof XAUIColors>>;
14
+ /** The same roles resolved: theme colours, or the slices of a raw `color`. */
15
+ type VariantColors = Partial<Record<VariantRole, string>>;
16
+ /**
17
+ * `disabled` is applied last of the three: a control that is both pressed and disabled
18
+ * has to read disabled.
19
+ */
20
+ type StateName = 'focused' | 'pressed' | 'disabled';
21
+ type States = Partial<Record<StateName, boolean>>;
22
+ /** Reads the theme and the variant's resolved colours; returns one style per slot. */
23
+ type StyleFn<Slot extends string> = (theme: XAUITheme, colors: VariantColors) => SlotStyles<Slot>;
24
+ /** Named axes of finite token values — `{ size: { sm: fn, md: fn } }`. */
25
+ type Axes<Slot extends string> = Record<string, Record<string, StyleFn<Slot>>>;
26
+ /** One value per axis, plus the variant. Missing keys fall back to `defaultVariants`. */
27
+ type Selection<Variant extends string, A extends Axes<string>> = {
28
+ variant?: Variant;
29
+ } & {
30
+ [Axis in keyof A]?: Extract<keyof A[Axis], string>;
31
+ };
32
+ type CompoundVariant<Slot extends string, Variant extends string, A extends Axes<Slot>> = {
33
+ when: Selection<Variant, A>;
34
+ style: StyleFn<Slot>;
35
+ };
36
+ type RecipeConfig<Slot extends string, Variant extends string, A extends Axes<Slot>> = {
37
+ /** Every slot the component publishes. Slots a recipe never styles resolve to `{}`. */
38
+ slots: readonly Slot[];
39
+ base?: StyleFn<Slot>;
40
+ variantTokens?: Record<Variant, VariantTokens>;
41
+ /** Where the variant's colours land — written once, and it holds for every variant. */
42
+ paint?: StyleFn<Slot>;
43
+ variants?: A;
44
+ compoundVariants?: ReadonlyArray<CompoundVariant<Slot, Variant, A>>;
45
+ states?: Partial<Record<StateName, StyleFn<Slot>>>;
46
+ /**
47
+ * `NoInfer`, because this is the one place a single variant name appears on its own:
48
+ * without it, inference reads `Variant` off `{ variant: 'primary' }` and narrows the
49
+ * whole recipe to that one value, so every other variant becomes a type error at the
50
+ * call site. `variantTokens` is the declaration; this only picks a default from it.
51
+ */
52
+ defaultVariants?: Selection<NoInfer<Variant>, A>;
53
+ };
54
+ /** Stable references: the same object for the same tokens, for the app's lifetime. */
55
+ type ResolvedStyles<Slot extends string> = Readonly<Record<Slot, SlotStyle>>;
56
+ /** A selection with `defaultVariants` already folded in, keyed by axis name. */
57
+ type ResolvedSelection = Readonly<Record<string, string | undefined>>;
58
+
59
+ type ResolveArgs<Variant extends string, A extends Axes<string>> = {
60
+ theme: XAUITheme;
61
+ selection?: Selection<Variant, A>;
62
+ states?: States;
63
+ };
64
+ type TintArgs<Variant extends string, A extends Axes<string>> = ResolveArgs<Variant, A> & {
65
+ color: string;
66
+ };
67
+ type Recipe<Slot extends string, Variant extends string, A extends Axes<Slot>> = {
68
+ readonly slots: readonly Slot[];
69
+ /** The cached pass: stable `StyleSheet` references, keyed by tokens alone. */
70
+ resolve(args: ResolveArgs<Variant, A>): ResolvedStyles<Slot>;
71
+ /**
72
+ * The tint pass: the same functions run again with `color`'s slices in place of the
73
+ * theme's tokens. Uncached and allocating, and only ever called when `color` is set.
74
+ */
75
+ tint(args: TintArgs<Variant, A>): SlotStyles<Slot>;
76
+ };
77
+ /**
78
+ * A component's style, declared once. Resolution splits in two because the two halves
79
+ * have different lifetimes: everything keyed by a finite token is cached forever, and
80
+ * an arbitrary `color` is recomputed per render — which is what keeps the cache bounded
81
+ * by the number of token combinations rather than by the palette users invent.
82
+ *
83
+ * const styles = buttonRecipe.resolve({ theme, selection: { variant, size }, states })
84
+ * const tint = color ? buttonRecipe.tint({ theme, color, selection, states }) : undefined
85
+ * <View style={[styles.root, tint?.root, style]} />
86
+ */
87
+ declare function createRecipe<Slot extends string, Variant extends string, const A extends Axes<Slot>>(config: RecipeConfig<Slot, Variant, A>): Recipe<Slot, Variant, A>;
88
+
89
+ export { type Axes as A, type CompoundVariant as C, type Recipe as R, type Selection as S, type TintArgs as T, type VariantColors as V, type ResolveArgs as a, type RecipeConfig as b, createRecipe as c, type ResolvedSelection as d, type ResolvedStyles as e, type SlotStyle as f, type SlotStyles as g, type StateName as h, type States as i, type StyleFn as j, type VariantRole as k, type VariantTokens as l };
@@ -0,0 +1,89 @@
1
+ import { X as XAUITheme, a as XAUIColors } from './theme.type-C2gNHpEx.js';
2
+ import { ViewStyle, TextStyle } from 'react-native';
3
+
4
+ /**
5
+ * A slot is a view or a text node, and a recipe writes one object per slot, so the two
6
+ * RN style shapes are merged rather than discriminated per slot.
7
+ */
8
+ type SlotStyle = ViewStyle & TextStyle;
9
+ type SlotStyles<Slot extends string> = Partial<Record<Slot, SlotStyle>>;
10
+ /** The roles a variant consumes. The variant names tokens; `paint` says where they land. */
11
+ type VariantRole = 'bg' | 'bgPressed' | 'fg' | 'border';
12
+ /** Token names per role — no colour value ever appears in a recipe. */
13
+ type VariantTokens = Partial<Record<VariantRole, keyof XAUIColors>>;
14
+ /** The same roles resolved: theme colours, or the slices of a raw `color`. */
15
+ type VariantColors = Partial<Record<VariantRole, string>>;
16
+ /**
17
+ * `disabled` is applied last of the three: a control that is both pressed and disabled
18
+ * has to read disabled.
19
+ */
20
+ type StateName = 'focused' | 'pressed' | 'disabled';
21
+ type States = Partial<Record<StateName, boolean>>;
22
+ /** Reads the theme and the variant's resolved colours; returns one style per slot. */
23
+ type StyleFn<Slot extends string> = (theme: XAUITheme, colors: VariantColors) => SlotStyles<Slot>;
24
+ /** Named axes of finite token values — `{ size: { sm: fn, md: fn } }`. */
25
+ type Axes<Slot extends string> = Record<string, Record<string, StyleFn<Slot>>>;
26
+ /** One value per axis, plus the variant. Missing keys fall back to `defaultVariants`. */
27
+ type Selection<Variant extends string, A extends Axes<string>> = {
28
+ variant?: Variant;
29
+ } & {
30
+ [Axis in keyof A]?: Extract<keyof A[Axis], string>;
31
+ };
32
+ type CompoundVariant<Slot extends string, Variant extends string, A extends Axes<Slot>> = {
33
+ when: Selection<Variant, A>;
34
+ style: StyleFn<Slot>;
35
+ };
36
+ type RecipeConfig<Slot extends string, Variant extends string, A extends Axes<Slot>> = {
37
+ /** Every slot the component publishes. Slots a recipe never styles resolve to `{}`. */
38
+ slots: readonly Slot[];
39
+ base?: StyleFn<Slot>;
40
+ variantTokens?: Record<Variant, VariantTokens>;
41
+ /** Where the variant's colours land — written once, and it holds for every variant. */
42
+ paint?: StyleFn<Slot>;
43
+ variants?: A;
44
+ compoundVariants?: ReadonlyArray<CompoundVariant<Slot, Variant, A>>;
45
+ states?: Partial<Record<StateName, StyleFn<Slot>>>;
46
+ /**
47
+ * `NoInfer`, because this is the one place a single variant name appears on its own:
48
+ * without it, inference reads `Variant` off `{ variant: 'primary' }` and narrows the
49
+ * whole recipe to that one value, so every other variant becomes a type error at the
50
+ * call site. `variantTokens` is the declaration; this only picks a default from it.
51
+ */
52
+ defaultVariants?: Selection<NoInfer<Variant>, A>;
53
+ };
54
+ /** Stable references: the same object for the same tokens, for the app's lifetime. */
55
+ type ResolvedStyles<Slot extends string> = Readonly<Record<Slot, SlotStyle>>;
56
+ /** A selection with `defaultVariants` already folded in, keyed by axis name. */
57
+ type ResolvedSelection = Readonly<Record<string, string | undefined>>;
58
+
59
+ type ResolveArgs<Variant extends string, A extends Axes<string>> = {
60
+ theme: XAUITheme;
61
+ selection?: Selection<Variant, A>;
62
+ states?: States;
63
+ };
64
+ type TintArgs<Variant extends string, A extends Axes<string>> = ResolveArgs<Variant, A> & {
65
+ color: string;
66
+ };
67
+ type Recipe<Slot extends string, Variant extends string, A extends Axes<Slot>> = {
68
+ readonly slots: readonly Slot[];
69
+ /** The cached pass: stable `StyleSheet` references, keyed by tokens alone. */
70
+ resolve(args: ResolveArgs<Variant, A>): ResolvedStyles<Slot>;
71
+ /**
72
+ * The tint pass: the same functions run again with `color`'s slices in place of the
73
+ * theme's tokens. Uncached and allocating, and only ever called when `color` is set.
74
+ */
75
+ tint(args: TintArgs<Variant, A>): SlotStyles<Slot>;
76
+ };
77
+ /**
78
+ * A component's style, declared once. Resolution splits in two because the two halves
79
+ * have different lifetimes: everything keyed by a finite token is cached forever, and
80
+ * an arbitrary `color` is recomputed per render — which is what keeps the cache bounded
81
+ * by the number of token combinations rather than by the palette users invent.
82
+ *
83
+ * const styles = buttonRecipe.resolve({ theme, selection: { variant, size }, states })
84
+ * const tint = color ? buttonRecipe.tint({ theme, color, selection, states }) : undefined
85
+ * <View style={[styles.root, tint?.root, style]} />
86
+ */
87
+ declare function createRecipe<Slot extends string, Variant extends string, const A extends Axes<Slot>>(config: RecipeConfig<Slot, Variant, A>): Recipe<Slot, Variant, A>;
88
+
89
+ export { type Axes as A, type CompoundVariant as C, type Recipe as R, type Selection as S, type TintArgs as T, type VariantColors as V, type ResolveArgs as a, type RecipeConfig as b, createRecipe as c, type ResolvedSelection as d, type ResolvedStyles as e, type SlotStyle as f, type SlotStyles as g, type StateName as h, type States as i, type StyleFn as j, type VariantRole as k, type VariantTokens as l };
package/dist/index.cjs CHANGED
@@ -1,30 +1,31 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
2
 
3
3
 
4
4
 
5
5
 
6
6
 
7
+ var _chunk6ARON3XTcjs = require('./chunk-6ARON3XT.cjs');
7
8
 
8
- var _chunkB755PRVJcjs = require('./chunk-B755PRVJ.cjs');
9
9
 
10
10
 
11
11
 
12
+ var _chunkUBA6AEY6cjs = require('./chunk-UBA6AEY6.cjs');
12
13
 
13
14
 
14
15
 
15
16
 
16
17
 
17
18
 
19
+ var _chunk33QILJJHcjs = require('./chunk-33QILJJH.cjs');
18
20
 
19
21
 
20
22
 
21
23
 
24
+ var _chunk2WMVDMFVcjs = require('./chunk-2WMVDMFV.cjs');
22
25
 
23
26
 
24
- var _chunkNHPQQQ7Pcjs = require('./chunk-NHPQQQ7P.cjs');
25
27
 
26
28
 
27
- var _chunkM7P46XKIcjs = require('./chunk-M7P46XKI.cjs');
28
29
 
29
30
 
30
31
 
@@ -45,6 +46,151 @@ var _chunkM7P46XKIcjs = require('./chunk-M7P46XKI.cjs');
45
46
 
46
47
 
47
48
 
49
+ var _chunkA4VD4MHKcjs = require('./chunk-A4VD4MHK.cjs');
48
50
 
49
51
 
50
- exports.Slot = _chunkB755PRVJcjs.Slot; exports.ThemeContext = _chunkNHPQQQ7Pcjs.ThemeContext; exports.XAUIProvider = _chunkNHPQQQ7Pcjs.XAUIProvider; exports.buildRadius = _chunkNHPQQQ7Pcjs.buildRadius; exports.buildShadows = _chunkNHPQQQ7Pcjs.buildShadows; exports.childrenToString = _chunkB755PRVJcjs.childrenToString; exports.createRecipe = _chunkB755PRVJcjs.createRecipe; exports.createSlotContext = _chunkB755PRVJcjs.createSlotContext; exports.createTheme = _chunkNHPQQQ7Pcjs.createTheme; exports.defaultTheme = _chunkNHPQQQ7Pcjs.defaultTheme; exports.deriveColors = _chunkNHPQQQ7Pcjs.deriveColors; exports.deriveTint = _chunkM7P46XKIcjs.deriveTint; exports.mergeProps = _chunkB755PRVJcjs.mergeProps; exports.mergeRefs = _chunkB755PRVJcjs.mergeRefs; exports.palette = _chunkNHPQQQ7Pcjs.palette; exports.primitives = _chunkNHPQQQ7Pcjs.primitives; exports.sourceKeys = _chunkNHPQQQ7Pcjs.sourceKeys; exports.tokens = _chunkNHPQQQ7Pcjs.tokens; exports.useColorMode = _chunkNHPQQQ7Pcjs.useColorMode; exports.useThemeColor = _chunkNHPQQQ7Pcjs.useThemeColor; exports.useXAUITheme = _chunkNHPQQQ7Pcjs.useXAUITheme;
52
+ var _chunkUVO4GFSWcjs = require('./chunk-UVO4GFSW.cjs');
53
+
54
+
55
+
56
+
57
+
58
+
59
+
60
+ var _chunkEVXZGNPAcjs = require('./chunk-EVXZGNPA.cjs');
61
+
62
+
63
+
64
+
65
+
66
+
67
+
68
+
69
+
70
+
71
+
72
+ var _chunkBHTFIZTQcjs = require('./chunk-BHTFIZTQ.cjs');
73
+
74
+
75
+
76
+
77
+
78
+
79
+ var _chunk57SJ4LJFcjs = require('./chunk-57SJ4LJF.cjs');
80
+ require('./chunk-MC7SY2QH.cjs');
81
+
82
+ // src/hooks/use-controllable-state.ts
83
+ var _react = require('react');
84
+ function useControllableState({
85
+ value,
86
+ defaultValue,
87
+ onChange
88
+ }) {
89
+ const [uncontrolled, setUncontrolled] = _react.useState.call(void 0, defaultValue);
90
+ const isControlled = value !== void 0;
91
+ const current = isControlled ? value : uncontrolled;
92
+ useControlWarning(isControlled);
93
+ const latest = _react.useRef.call(void 0, current);
94
+ latest.current = current;
95
+ const onChangeRef = _react.useRef.call(void 0, onChange);
96
+ onChangeRef.current = onChange;
97
+ const controlled = _react.useRef.call(void 0, isControlled);
98
+ controlled.current = isControlled;
99
+ const set = _react.useCallback.call(void 0, (next) => {
100
+ const resolved = typeof next === "function" ? next(latest.current) : next;
101
+ if (resolved === latest.current) return;
102
+ if (!controlled.current) setUncontrolled(resolved);
103
+ _optionalChain([onChangeRef, 'access', _ => _.current, 'optionalCall', _2 => _2(resolved)]);
104
+ }, []);
105
+ return [current, set];
106
+ }
107
+ function useControlWarning(isControlled) {
108
+ const wasControlled = _react.useRef.call(void 0, isControlled);
109
+ if (wasControlled.current !== isControlled) {
110
+ _chunk6ARON3XTcjs.warnDev.call(void 0,
111
+ `a component switched from ${wasControlled.current ? "controlled" : "uncontrolled"} to ${isControlled ? "controlled" : "uncontrolled"}. Decide for the life of the component: pass \`value\` always, or never. Passing \`undefined\` for a value you do control reads as "uncontrolled" here.`
112
+ );
113
+ wasControlled.current = isControlled;
114
+ }
115
+ }
116
+
117
+ // src/hooks/use-merged-ref.ts
118
+
119
+ function useMergedRef(...refs) {
120
+ return _react.useMemo.call(void 0, () => _chunkEVXZGNPAcjs.mergeRefs.call(void 0, ...refs), refs);
121
+ }
122
+
123
+ // src/hooks/use-previous.ts
124
+
125
+ function usePrevious(value) {
126
+ const previous = _react.useRef.call(void 0, void 0);
127
+ _react.useEffect.call(void 0, () => {
128
+ previous.current = value;
129
+ }, [value]);
130
+ return previous.current;
131
+ }
132
+
133
+
134
+
135
+
136
+
137
+
138
+
139
+
140
+
141
+
142
+
143
+
144
+
145
+
146
+
147
+
148
+
149
+
150
+
151
+
152
+
153
+
154
+
155
+
156
+
157
+
158
+
159
+
160
+
161
+
162
+
163
+
164
+
165
+
166
+
167
+
168
+
169
+
170
+
171
+
172
+
173
+
174
+
175
+
176
+
177
+
178
+
179
+
180
+
181
+
182
+
183
+
184
+
185
+
186
+
187
+
188
+
189
+
190
+
191
+
192
+
193
+
194
+
195
+
196
+ exports.Button = _chunk6ARON3XTcjs.Button; exports.Column = _chunk33QILJJHcjs.Column; exports.FEEDBACK_OVERLAY = _chunkA4VD4MHKcjs.FEEDBACK_OVERLAY; exports.Grid = _chunk33QILJJHcjs.Grid; 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.Row = _chunk33QILJJHcjs.Row; exports.SCALE_REFERENCE_WIDTH = _chunkA4VD4MHKcjs.SCALE_REFERENCE_WIDTH; exports.Slot = _chunkEVXZGNPAcjs.Slot; exports.Stack = _chunk33QILJJHcjs.Stack; exports.TextSpan = _chunkUBA6AEY6cjs.TextSpan; exports.ThemeContext = _chunk57SJ4LJFcjs.ThemeContext; exports.Typography = _chunkUBA6AEY6cjs.Typography; exports.XAUIProvider = _chunkBHTFIZTQcjs.XAUIProvider; exports.buildRadius = _chunkBHTFIZTQcjs.buildRadius; exports.buildShadows = _chunkBHTFIZTQcjs.buildShadows; exports.buttonRecipe = _chunk6ARON3XTcjs.buttonRecipe; exports.childrenToString = _chunkEVXZGNPAcjs.childrenToString; exports.createRecipe = _chunkUVO4GFSWcjs.createRecipe; exports.createSlotContext = _chunkEVXZGNPAcjs.createSlotContext; exports.createTheme = _chunkBHTFIZTQcjs.createTheme; exports.defaultTheme = _chunkBHTFIZTQcjs.defaultTheme; exports.deriveColors = _chunkBHTFIZTQcjs.deriveColors; exports.deriveTint = _chunk57SJ4LJFcjs.deriveTint; exports.markOverlay = _chunkA4VD4MHKcjs.markOverlay; exports.mergeProps = _chunkEVXZGNPAcjs.mergeProps; exports.mergeRefs = _chunkEVXZGNPAcjs.mergeRefs; exports.palette = _chunkBHTFIZTQcjs.palette; exports.pressScaleFor = _chunkA4VD4MHKcjs.pressScaleFor; exports.primitives = _chunkBHTFIZTQcjs.primitives; exports.resolveAnimation = _chunkA4VD4MHKcjs.resolveAnimation; exports.resolveSlotAnimation = _chunkA4VD4MHKcjs.resolveSlotAnimation; exports.rippleRadiusFor = _chunkA4VD4MHKcjs.rippleRadiusFor; exports.sourceKeys = _chunkBHTFIZTQcjs.sourceKeys; exports.tokens = _chunkBHTFIZTQcjs.tokens; exports.typographyRecipe = _chunkUBA6AEY6cjs.typographyRecipe; exports.useButton = _chunk6ARON3XTcjs.useButton; exports.useColorMode = _chunk57SJ4LJFcjs.useColorMode; exports.useControllableState = useControllableState; exports.useFeedback = _chunkA4VD4MHKcjs.useFeedback; exports.useGrid = _chunk33QILJJHcjs.useGrid; exports.useIconContext = _chunkA4VD4MHKcjs.useIconContext; exports.useMergedRef = useMergedRef; exports.usePressState = _chunk6ARON3XTcjs.usePressState; exports.usePrevious = usePrevious; exports.useStyleProps = _chunkEVXZGNPAcjs.useStyleProps; exports.useThemeColor = _chunk57SJ4LJFcjs.useThemeColor; exports.useXAUITheme = _chunk57SJ4LJFcjs.useXAUITheme;