@entropix/react-native 0.3.0 → 1.0.1

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 (93) hide show
  1. package/dist/accordion.cjs +26 -0
  2. package/dist/accordion.d.cts +34 -0
  3. package/dist/accordion.d.ts +34 -0
  4. package/dist/accordion.js +5 -0
  5. package/dist/button.cjs +14 -0
  6. package/dist/button.d.cts +35 -0
  7. package/dist/button.d.ts +35 -0
  8. package/dist/button.js +5 -0
  9. package/dist/checkbox.cjs +14 -0
  10. package/dist/checkbox.d.cts +41 -0
  11. package/dist/checkbox.d.ts +41 -0
  12. package/dist/checkbox.js +5 -0
  13. package/dist/chunk-2SQB7RNT.cjs +110 -0
  14. package/dist/chunk-3MHE2C74.js +143 -0
  15. package/dist/chunk-45KMMZUT.js +131 -0
  16. package/dist/chunk-64DK6YFL.js +164 -0
  17. package/dist/chunk-73BDGPZT.js +89 -0
  18. package/dist/chunk-B5YFEA66.cjs +243 -0
  19. package/dist/chunk-BOUIB4OY.cjs +56 -0
  20. package/dist/chunk-C6HF6QXK.js +154 -0
  21. package/dist/chunk-CXQNNEPC.js +249 -0
  22. package/dist/chunk-EFRYMWJB.js +86 -0
  23. package/dist/chunk-FQUZIDVS.cjs +174 -0
  24. package/dist/chunk-G7WPUTB6.cjs +258 -0
  25. package/dist/chunk-HH3CEDSH.js +122 -0
  26. package/dist/chunk-IRQWSFCZ.cjs +156 -0
  27. package/dist/chunk-KU24A5PQ.js +92 -0
  28. package/dist/chunk-OMKUPSHJ.cjs +95 -0
  29. package/dist/chunk-P5NAXMSC.cjs +91 -0
  30. package/dist/chunk-PKDXWKLO.cjs +245 -0
  31. package/dist/chunk-PVTPOJRU.js +155 -0
  32. package/dist/chunk-Q7TEJ62Q.cjs +160 -0
  33. package/dist/chunk-THX22NZW.cjs +146 -0
  34. package/dist/chunk-UHVTF2Y4.js +172 -0
  35. package/dist/chunk-UYXJHKYK.cjs +166 -0
  36. package/dist/chunk-VP567WZL.js +237 -0
  37. package/dist/chunk-XBNX4SLA.js +105 -0
  38. package/dist/chunk-XND7AIKO.cjs +133 -0
  39. package/dist/chunk-XSOLJOBG.js +238 -0
  40. package/dist/chunk-Z2MBHXUQ.cjs +127 -0
  41. package/dist/chunk-ZPAOLIIG.cjs +88 -0
  42. package/dist/chunk-ZYOTKLBG.js +52 -0
  43. package/dist/dialog.cjs +38 -0
  44. package/dist/dialog.d.cts +83 -0
  45. package/dist/dialog.d.ts +83 -0
  46. package/dist/dialog.js +5 -0
  47. package/dist/index.cjs +187 -2063
  48. package/dist/index.d.cts +21 -651
  49. package/dist/index.d.ts +21 -651
  50. package/dist/index.js +15 -2025
  51. package/dist/input.cjs +14 -0
  52. package/dist/input.d.cts +57 -0
  53. package/dist/input.d.ts +57 -0
  54. package/dist/input.js +5 -0
  55. package/dist/layout.cjs +25 -0
  56. package/dist/layout.d.cts +108 -0
  57. package/dist/layout.d.ts +108 -0
  58. package/dist/layout.js +4 -0
  59. package/dist/menu.cjs +26 -0
  60. package/dist/menu.d.cts +34 -0
  61. package/dist/menu.d.ts +34 -0
  62. package/dist/menu.js +5 -0
  63. package/dist/radio.cjs +18 -0
  64. package/dist/radio.d.cts +55 -0
  65. package/dist/radio.d.ts +55 -0
  66. package/dist/radio.js +5 -0
  67. package/dist/select.cjs +26 -0
  68. package/dist/select.d.cts +86 -0
  69. package/dist/select.d.ts +86 -0
  70. package/dist/select.js +5 -0
  71. package/dist/switch.cjs +14 -0
  72. package/dist/switch.d.cts +27 -0
  73. package/dist/switch.d.ts +27 -0
  74. package/dist/switch.js +5 -0
  75. package/dist/tabs.cjs +26 -0
  76. package/dist/tabs.d.cts +33 -0
  77. package/dist/tabs.d.ts +33 -0
  78. package/dist/tabs.js +5 -0
  79. package/dist/textarea.cjs +14 -0
  80. package/dist/textarea.d.cts +55 -0
  81. package/dist/textarea.d.ts +55 -0
  82. package/dist/textarea.js +5 -0
  83. package/dist/theme.cjs +20 -0
  84. package/dist/theme.d.cts +59 -0
  85. package/dist/theme.d.ts +59 -0
  86. package/dist/theme.js +3 -0
  87. package/dist/toggle.cjs +18 -0
  88. package/dist/toggle.d.cts +41 -0
  89. package/dist/toggle.d.ts +41 -0
  90. package/dist/toggle.js +5 -0
  91. package/package.json +146 -4
  92. package/dist/index.cjs.map +0 -1
  93. package/dist/index.js.map +0 -1
package/dist/index.d.ts CHANGED
@@ -1,42 +1,23 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import React from 'react';
3
- import { tokens as tokens$1 } from '@entropix/tokens/native';
4
- import { tokens } from '@entropix/tokens/native/light';
5
- import { AccessibilityProps, UseDialogOptions, UseTabsOptions, UseAccordionOptions, UseMenuOptions, UseInputOptions, UseRadioGroupOptions, UseSelectOptions } from '@entropix/core';
6
- import { AccessibilityRole, AccessibilityState, AccessibilityValue, PressableProps, StyleProp, ViewStyle, TextStyle, ViewProps, TextProps } from 'react-native';
7
-
8
- type EntropixTheme = typeof tokens;
9
- type ThemeMode = "light" | "dark";
10
- interface ThemeContextValue {
11
- mode: ThemeMode;
12
- tokens: EntropixTheme;
13
- baseTokens: typeof tokens$1;
14
- }
15
- interface EntropixProviderProps {
16
- /** Theme mode: "light" or "dark". Default: "light" */
17
- mode?: ThemeMode;
18
- children: React.ReactNode;
19
- }
20
- /**
21
- * EntropixProvider — Provides theme tokens to all Entropix components.
22
- *
23
- * Wrap your app root with this provider. All Entropix components will
24
- * automatically pick up the current theme tokens.
25
- *
26
- * ```tsx
27
- * <EntropixProvider mode="dark">
28
- * <App />
29
- * </EntropixProvider>
30
- * ```
31
- */
32
- declare function EntropixProvider({ mode, children, }: EntropixProviderProps): react_jsx_runtime.JSX.Element;
33
- /**
34
- * useTheme — Access current Entropix theme tokens.
35
- *
36
- * Returns the resolved token values for the current theme (light or dark).
37
- * Must be used within an EntropixProvider.
38
- */
39
- declare function useTheme(): ThemeContextValue;
1
+ export { BrandName, EntropixProvider, EntropixProviderProps, EntropixTheme, ThemeMode, registerBrand, useTheme } from './theme.js';
2
+ import { AccessibilityProps } from '@entropix/core';
3
+ import { AccessibilityRole, AccessibilityState, AccessibilityValue } from 'react-native';
4
+ export { Button, ButtonProps } from './button.js';
5
+ export { Toggle, ToggleProps } from './toggle.js';
6
+ export { Switch, SwitchProps } from './switch.js';
7
+ export { Dialog, DialogClose, DialogCloseProps, DialogContent, DialogContentProps, DialogDescription, DialogDescriptionProps, DialogOverlay, DialogOverlayProps, DialogProps, DialogTitle, DialogTitleProps, DialogTrigger, DialogTriggerProps } from './dialog.js';
8
+ export { Tab, TabList, TabListProps, TabPanel, TabPanelProps, TabProps, Tabs, TabsProps } from './tabs.js';
9
+ export { Accordion, AccordionItem, AccordionItemProps, AccordionPanel, AccordionPanelProps, AccordionProps, AccordionTrigger, AccordionTriggerProps } from './accordion.js';
10
+ export { Menu, MenuContent, MenuContentProps, MenuItem, MenuItemProps, MenuProps, MenuTrigger, MenuTriggerProps } from './menu.js';
11
+ export { Input, InputProps, InputSize } from './input.js';
12
+ export { Textarea, TextareaProps, TextareaSize } from './textarea.js';
13
+ export { Checkbox, CheckboxProps, CheckboxSize } from './checkbox.js';
14
+ export { RadioGroup, RadioGroupProps, RadioItem, RadioItemProps } from './radio.js';
15
+ export { Select, SelectContent, SelectContentProps, SelectOption, SelectOptionProps, SelectProps, SelectTrigger, SelectTriggerProps } from './select.js';
16
+ export { Container, ContainerProps, ContainerSize, Divider, DividerProps, Inline, InlineProps, SpacingSize, Stack, StackProps } from './layout.js';
17
+ import 'react/jsx-runtime';
18
+ import 'react';
19
+ import '@entropix/tokens/native';
20
+ import '@entropix/tokens/native/light';
40
21
 
41
22
  /**
42
23
  * The RN accessibility props that mapAccessibilityToRN produces.
@@ -68,514 +49,6 @@ interface RNAccessibilityProps {
68
49
  */
69
50
  declare function mapAccessibilityToRN(props: AccessibilityProps): RNAccessibilityProps;
70
51
 
71
- type ButtonVariant = "primary" | "secondary" | "outline" | "ghost" | "danger";
72
- type ButtonSize = "sm" | "md" | "lg";
73
- interface ButtonProps extends Omit<PressableProps, "disabled" | "onPress" | "style" | "children"> {
74
- /** Called when the button is pressed */
75
- onPress?: () => void;
76
- /** Whether the button is disabled */
77
- disabled?: boolean;
78
- /** Whether the button is in a loading state */
79
- loading?: boolean;
80
- /** Visual variant. Default: "primary" */
81
- variant?: ButtonVariant;
82
- /** Size. Default: "md" */
83
- size?: ButtonSize;
84
- /** Override container style */
85
- style?: StyleProp<ViewStyle>;
86
- /** Override label text style */
87
- textStyle?: TextStyle;
88
- children?: React.ReactNode;
89
- }
90
- /**
91
- * Button — styled React Native button with variant and size support.
92
- *
93
- * ```tsx
94
- * <Button variant="primary" size="md" onPress={handlePress}>
95
- * Save Changes
96
- * </Button>
97
- * ```
98
- */
99
- declare function Button({ onPress, disabled, loading, variant, size, style, textStyle, children, ...rest }: ButtonProps): react_jsx_runtime.JSX.Element;
100
-
101
- interface ToggleProps extends Omit<PressableProps, "disabled" | "onPress" | "style" | "children"> {
102
- /** Controlled checked state */
103
- checked?: boolean;
104
- /** Default checked state for uncontrolled mode */
105
- defaultChecked?: boolean;
106
- /** Called when checked state changes */
107
- onChange?: (checked: boolean) => void;
108
- /** Whether the toggle is disabled */
109
- disabled?: boolean;
110
- /** Accessible label */
111
- label?: string;
112
- /** Override container style */
113
- style?: StyleProp<ViewStyle>;
114
- /** Override label text style */
115
- textStyle?: TextStyle;
116
- children?: React.ReactNode;
117
- }
118
- /**
119
- * Toggle — styled checkbox toggle.
120
- *
121
- * Renders as a bordered pill that fills blue when checked.
122
- *
123
- * ```tsx
124
- * <Toggle onChange={setChecked}>Accept Terms</Toggle>
125
- * ```
126
- */
127
- declare function Toggle(props: ToggleProps): react_jsx_runtime.JSX.Element;
128
-
129
- interface SwitchProps extends Omit<PressableProps, "disabled" | "onPress" | "style" | "children"> {
130
- /** Controlled checked state */
131
- checked?: boolean;
132
- /** Default checked state for uncontrolled mode */
133
- defaultChecked?: boolean;
134
- /** Called when checked state changes */
135
- onChange?: (checked: boolean) => void;
136
- /** Whether the switch is disabled */
137
- disabled?: boolean;
138
- /** Accessible label */
139
- label?: string;
140
- /** Override track style */
141
- style?: StyleProp<ViewStyle>;
142
- }
143
- /**
144
- * Switch — styled toggle with track + sliding thumb.
145
- *
146
- * ```tsx
147
- * <Switch checked={isOn} onChange={setIsOn} label="Notifications" />
148
- * ```
149
- */
150
- declare function Switch({ checked, defaultChecked, onChange, disabled, label, style, ...rest }: SwitchProps): react_jsx_runtime.JSX.Element;
151
-
152
- interface DialogProps extends UseDialogOptions {
153
- children: React.ReactNode;
154
- }
155
- /**
156
- * Dialog root — provides dialog state to compound sub-components.
157
- * Renders no UI of its own.
158
- */
159
- declare function Dialog({ children, isOpen, defaultOpen, onOpenChange, closeOnOverlayPress, closeOnEscape, modal, role, }: DialogProps): react_jsx_runtime.JSX.Element;
160
-
161
- interface DialogTriggerProps extends Omit<PressableProps, "onPress" | "style"> {
162
- children?: React.ReactNode;
163
- style?: StyleProp<ViewStyle>;
164
- }
165
- /**
166
- * DialogTrigger — Pressable that opens/closes the dialog.
167
- */
168
- declare function DialogTrigger({ children, style, ...rest }: DialogTriggerProps): react_jsx_runtime.JSX.Element;
169
-
170
- interface DialogContentProps extends Omit<ViewProps, "style"> {
171
- children?: React.ReactNode;
172
- style?: StyleProp<ViewStyle>;
173
- /** Style for the inner card. */
174
- cardStyle?: StyleProp<ViewStyle>;
175
- /** Modal animation type. Default: "fade" */
176
- animationType?: "none" | "slide" | "fade";
177
- /** Whether the modal background is transparent. Default: true */
178
- transparent?: boolean;
179
- }
180
- /**
181
- * DialogContent — wraps children in RN's Modal component.
182
- *
183
- * Modal provides native focus trapping for screen readers.
184
- * onRequestClose handles Android back button (maps to core's "dismiss" intent).
185
- */
186
- declare function DialogContent({ children, style, cardStyle, animationType, transparent, ...rest }: DialogContentProps): react_jsx_runtime.JSX.Element;
187
-
188
- interface DialogTitleProps extends Omit<TextProps, "style"> {
189
- children?: React.ReactNode;
190
- style?: StyleProp<TextStyle>;
191
- }
192
- /**
193
- * DialogTitle — Text element with nativeID for accessibility linking.
194
- * Uses accessibilityRole="header" for screen reader heading semantics.
195
- */
196
- declare function DialogTitle({ children, style, ...rest }: DialogTitleProps): react_jsx_runtime.JSX.Element;
197
-
198
- interface DialogDescriptionProps extends Omit<TextProps, "style"> {
199
- children?: React.ReactNode;
200
- style?: StyleProp<TextStyle>;
201
- }
202
- /**
203
- * DialogDescription — Text element with nativeID for accessibility linking.
204
- */
205
- declare function DialogDescription({ children, style, ...rest }: DialogDescriptionProps): react_jsx_runtime.JSX.Element;
206
-
207
- interface DialogCloseProps extends Omit<PressableProps, "onPress" | "style"> {
208
- children?: React.ReactNode;
209
- style?: StyleProp<ViewStyle>;
210
- }
211
- /**
212
- * DialogClose — Pressable that closes the dialog.
213
- * Renders as a positioned "✕" button by default if no children provided.
214
- */
215
- declare function DialogClose({ children, style, ...rest }: DialogCloseProps): react_jsx_runtime.JSX.Element;
216
-
217
- interface DialogOverlayProps {
218
- style?: StyleProp<ViewStyle>;
219
- testID?: string;
220
- }
221
- /**
222
- * DialogOverlay — backdrop element behind dialog content.
223
- * Note: With the self-styled DialogContent, the overlay is built into the
224
- * Modal wrapper. This component is kept for consumers who need a separate
225
- * overlay element (e.g., custom dismiss-on-tap behavior outside DialogContent).
226
- */
227
- declare function DialogOverlay({ style, testID }: DialogOverlayProps): react_jsx_runtime.JSX.Element | null;
228
-
229
- interface TabsProps extends UseTabsOptions {
230
- children: React.ReactNode;
231
- style?: StyleProp<ViewStyle>;
232
- }
233
- declare function Tabs({ children, style, ...options }: TabsProps): react_jsx_runtime.JSX.Element;
234
-
235
- interface TabListProps {
236
- children: React.ReactNode;
237
- style?: StyleProp<ViewStyle>;
238
- }
239
- declare function TabList({ children, style }: TabListProps): react_jsx_runtime.JSX.Element;
240
-
241
- interface TabProps extends Omit<PressableProps, "onPress" | "style" | "children"> {
242
- value: string;
243
- children: React.ReactNode;
244
- style?: StyleProp<ViewStyle>;
245
- textStyle?: TextStyle;
246
- }
247
- declare function Tab({ value, children, style, textStyle, ...rest }: TabProps): react_jsx_runtime.JSX.Element;
248
-
249
- interface TabPanelProps {
250
- value: string;
251
- children: React.ReactNode;
252
- style?: StyleProp<ViewStyle>;
253
- }
254
- declare function TabPanel({ value, children, style }: TabPanelProps): react_jsx_runtime.JSX.Element | null;
255
-
256
- interface AccordionProps extends UseAccordionOptions {
257
- children: React.ReactNode;
258
- style?: StyleProp<ViewStyle>;
259
- }
260
- declare function Accordion({ children, style, ...options }: AccordionProps): react_jsx_runtime.JSX.Element;
261
-
262
- interface AccordionItemProps {
263
- value: string;
264
- /** Whether this is the last item (hides bottom border). Auto-detected if omitted. */
265
- isLast?: boolean;
266
- children: React.ReactNode;
267
- style?: StyleProp<ViewStyle>;
268
- }
269
- declare function AccordionItem({ value, isLast, children, style, }: AccordionItemProps): react_jsx_runtime.JSX.Element;
270
-
271
- interface AccordionTriggerProps extends Omit<PressableProps, "onPress" | "style" | "children"> {
272
- children: React.ReactNode;
273
- style?: StyleProp<ViewStyle>;
274
- textStyle?: TextStyle;
275
- }
276
- declare function AccordionTrigger({ children, style, textStyle, ...rest }: AccordionTriggerProps): react_jsx_runtime.JSX.Element;
277
-
278
- interface AccordionPanelProps {
279
- children: React.ReactNode;
280
- style?: StyleProp<ViewStyle>;
281
- }
282
- declare function AccordionPanel({ children, style }: AccordionPanelProps): react_jsx_runtime.JSX.Element | null;
283
-
284
- interface MenuProps extends UseMenuOptions {
285
- children: React.ReactNode;
286
- }
287
- declare function Menu({ children, ...options }: MenuProps): react_jsx_runtime.JSX.Element;
288
-
289
- interface MenuTriggerProps extends Omit<PressableProps, "onPress" | "style"> {
290
- children: React.ReactNode;
291
- style?: StyleProp<ViewStyle>;
292
- }
293
- declare function MenuTrigger({ children, style, ...rest }: MenuTriggerProps): react_jsx_runtime.JSX.Element;
294
-
295
- interface MenuContentProps {
296
- children: React.ReactNode;
297
- style?: StyleProp<ViewStyle>;
298
- testID?: string;
299
- }
300
- declare function MenuContent({ children, style, testID }: MenuContentProps): react_jsx_runtime.JSX.Element | null;
301
-
302
- interface MenuItemProps extends Omit<PressableProps, "onPress" | "disabled" | "style"> {
303
- index: number;
304
- onSelect?: () => void;
305
- disabled?: boolean;
306
- children: React.ReactNode;
307
- style?: StyleProp<ViewStyle>;
308
- textStyle?: TextStyle;
309
- }
310
- declare function MenuItem({ index, onSelect, disabled, children, style, textStyle, ...rest }: MenuItemProps): react_jsx_runtime.JSX.Element;
311
-
312
- type InputSize = "sm" | "md" | "lg";
313
- interface InputProps {
314
- /** Controlled value */
315
- value?: string;
316
- /** Default value for uncontrolled mode */
317
- defaultValue?: string;
318
- /** Called when the value changes */
319
- onChange?: (value: string) => void;
320
- /** Whether the input is disabled */
321
- disabled?: boolean;
322
- /** Whether the input is read-only */
323
- readOnly?: boolean;
324
- /** Whether the input is required */
325
- required?: boolean;
326
- /** Whether the input is in an invalid state */
327
- invalid?: boolean;
328
- /** Label text displayed above the input */
329
- label?: string;
330
- /** Helper text displayed below the input */
331
- helperText?: string;
332
- /** Error message displayed below the input when invalid */
333
- errorMessage?: string;
334
- /** Placeholder text */
335
- placeholder?: string;
336
- /** Input type — maps to React Native keyboardType */
337
- type?: UseInputOptions["type"];
338
- /** Size variant. Default: "md" */
339
- size?: InputSize;
340
- /** Override wrapper View style */
341
- style?: StyleProp<ViewStyle>;
342
- /** Override TextInput style */
343
- inputStyle?: StyleProp<TextStyle>;
344
- /** Override label and helper Text style */
345
- textStyle?: TextStyle;
346
- /** testID for testing */
347
- testID?: string;
348
- }
349
- /**
350
- * Input -- styled text input with label, helper text, and error message.
351
- *
352
- * ```tsx
353
- * <Input
354
- * label="Email"
355
- * placeholder="you@example.com"
356
- * type="email"
357
- * onChange={setEmail}
358
- * />
359
- * ```
360
- */
361
- declare function Input({ value, defaultValue, onChange, disabled, readOnly, required, invalid, label, helperText, errorMessage, placeholder, type, size, style, inputStyle, textStyle, testID, }: InputProps): react_jsx_runtime.JSX.Element;
362
-
363
- type TextareaSize = "sm" | "md" | "lg";
364
- interface TextareaProps {
365
- /** Controlled value */
366
- value?: string;
367
- /** Default value for uncontrolled mode */
368
- defaultValue?: string;
369
- /** Called when the value changes */
370
- onChange?: (value: string) => void;
371
- /** Whether the textarea is disabled */
372
- disabled?: boolean;
373
- /** Whether the textarea is read-only */
374
- readOnly?: boolean;
375
- /** Whether the textarea is required */
376
- required?: boolean;
377
- /** Whether the textarea is in an invalid state */
378
- invalid?: boolean;
379
- /** Label text displayed above the textarea */
380
- label?: string;
381
- /** Helper text displayed below the textarea */
382
- helperText?: string;
383
- /** Error message displayed below the textarea when invalid */
384
- errorMessage?: string;
385
- /** Placeholder text */
386
- placeholder?: string;
387
- /** Number of visible lines. Default: 4 */
388
- numberOfLines?: number;
389
- /** Size variant. Default: "md" */
390
- size?: TextareaSize;
391
- /** Override wrapper View style */
392
- style?: StyleProp<ViewStyle>;
393
- /** Override TextInput style */
394
- inputStyle?: StyleProp<TextStyle>;
395
- /** Override label and helper Text style */
396
- textStyle?: TextStyle;
397
- /** testID for testing */
398
- testID?: string;
399
- }
400
- /**
401
- * Textarea -- multiline text input with label, helper text, and error message.
402
- *
403
- * ```tsx
404
- * <Textarea
405
- * label="Description"
406
- * placeholder="Enter description..."
407
- * numberOfLines={6}
408
- * onChange={setDescription}
409
- * />
410
- * ```
411
- */
412
- declare function Textarea({ value, defaultValue, onChange, disabled, readOnly, required, invalid, label, helperText, errorMessage, placeholder, numberOfLines, size, style, inputStyle, textStyle, testID, }: TextareaProps): react_jsx_runtime.JSX.Element;
413
-
414
- type CheckboxSize = "sm" | "md" | "lg";
415
- interface CheckboxProps extends Omit<PressableProps, "disabled" | "onPress" | "style" | "children"> {
416
- /** Controlled checked state */
417
- checked?: boolean;
418
- /** Default checked state for uncontrolled mode */
419
- defaultChecked?: boolean;
420
- /** Called when checked state changes */
421
- onChange?: (checked: boolean) => void;
422
- /** Whether the checkbox is disabled */
423
- disabled?: boolean;
424
- /** Whether the checkbox is in an indeterminate state */
425
- indeterminate?: boolean;
426
- /** Accessible label */
427
- label?: string;
428
- /** Size variant. Default: "md" */
429
- size?: CheckboxSize;
430
- /** Override container style */
431
- style?: StyleProp<ViewStyle>;
432
- /** Override label text style */
433
- textStyle?: TextStyle;
434
- children?: React.ReactNode;
435
- }
436
- /**
437
- * Checkbox -- styled checkbox with indicator box and label.
438
- *
439
- * Renders a row with a square indicator (filled when checked with
440
- * a checkmark, dash when indeterminate) and a text label.
441
- *
442
- * ```tsx
443
- * <Checkbox onChange={setAccepted} label="Accept Terms">
444
- * I agree to the terms and conditions
445
- * </Checkbox>
446
- * ```
447
- */
448
- declare function Checkbox({ checked, defaultChecked, onChange, disabled, indeterminate, label, size, style, textStyle, children, ...rest }: CheckboxProps): react_jsx_runtime.JSX.Element;
449
-
450
- interface RadioGroupProps extends UseRadioGroupOptions {
451
- /** Label text for the radio group */
452
- label?: string;
453
- /** Override wrapper View style */
454
- style?: StyleProp<ViewStyle>;
455
- /** Override label text style */
456
- textStyle?: TextStyle;
457
- children: React.ReactNode;
458
- /** testID for testing */
459
- testID?: string;
460
- }
461
- /**
462
- * RadioGroup -- container for RadioItem components.
463
- *
464
- * Provides radio group state via context. All RadioItem children
465
- * share the same selection state.
466
- *
467
- * ```tsx
468
- * <RadioGroup label="Color" onChange={setColor} defaultValue="red">
469
- * <RadioItem value="red">Red</RadioItem>
470
- * <RadioItem value="blue">Blue</RadioItem>
471
- * </RadioGroup>
472
- * ```
473
- */
474
- declare function RadioGroup({ label, style, textStyle, children, testID, ...options }: RadioGroupProps): react_jsx_runtime.JSX.Element;
475
-
476
- interface RadioItemProps extends Omit<PressableProps, "disabled" | "onPress" | "style" | "children"> {
477
- /** The value this radio option represents */
478
- value: string;
479
- /** Whether this option is disabled */
480
- disabled?: boolean;
481
- /** Override container style */
482
- style?: StyleProp<ViewStyle>;
483
- /** Override label text style */
484
- textStyle?: TextStyle;
485
- children?: React.ReactNode;
486
- }
487
- /**
488
- * RadioItem -- individual radio option within a RadioGroup.
489
- *
490
- * Renders a Pressable row with a circle indicator and label text.
491
- * When selected, the circle shows a filled inner dot.
492
- *
493
- * ```tsx
494
- * <RadioItem value="option-1">Option 1</RadioItem>
495
- * ```
496
- */
497
- declare function RadioItem({ value, disabled, style, textStyle, children, ...rest }: RadioItemProps): react_jsx_runtime.JSX.Element;
498
-
499
- interface SelectProps extends UseSelectOptions {
500
- /** Label text displayed above the select */
501
- label?: string;
502
- /** Override wrapper View style */
503
- style?: StyleProp<ViewStyle>;
504
- /** Override label text style */
505
- textStyle?: TextStyle;
506
- children: React.ReactNode;
507
- /** testID for testing */
508
- testID?: string;
509
- }
510
- /**
511
- * Select -- compound component root that provides select state via context.
512
- *
513
- * ```tsx
514
- * <Select label="Country" onChange={setCountry} placeholder="Choose...">
515
- * <SelectTrigger />
516
- * <SelectContent>
517
- * <SelectOption value="us">United States</SelectOption>
518
- * <SelectOption value="ca">Canada</SelectOption>
519
- * </SelectContent>
520
- * </Select>
521
- * ```
522
- */
523
- declare function Select({ label, style, textStyle, children, testID, ...options }: SelectProps): react_jsx_runtime.JSX.Element;
524
-
525
- interface SelectTriggerProps extends Omit<PressableProps, "disabled" | "onPress" | "style" | "children"> {
526
- /** Placeholder text when no value is selected */
527
- placeholder?: string;
528
- /** Display label for the currently selected value */
529
- displayValue?: string;
530
- /** Override container style */
531
- style?: StyleProp<ViewStyle>;
532
- /** Override text style */
533
- textStyle?: TextStyle;
534
- }
535
- /**
536
- * SelectTrigger -- the button that opens the select dropdown.
537
- *
538
- * Renders as a bordered input-like row with the selected value
539
- * (or placeholder) and a chevron indicator.
540
- */
541
- declare function SelectTrigger({ placeholder, displayValue, style, textStyle, ...rest }: SelectTriggerProps): react_jsx_runtime.JSX.Element;
542
-
543
- interface SelectContentProps {
544
- children: React.ReactNode;
545
- /** Override listbox container style */
546
- style?: StyleProp<ViewStyle>;
547
- /** testID for testing */
548
- testID?: string;
549
- }
550
- /**
551
- * SelectContent -- the dropdown listbox rendered inside a Modal.
552
- *
553
- * Displays the option list when the select is open.
554
- * Tapping the overlay closes the select.
555
- */
556
- declare function SelectContent({ children, style, testID }: SelectContentProps): react_jsx_runtime.JSX.Element | null;
557
-
558
- interface SelectOptionProps extends Omit<PressableProps, "disabled" | "onPress" | "style" | "children"> {
559
- /** The value this option represents */
560
- value: string;
561
- /** Index of this option in the list (auto-assigned by SelectContent if omitted) */
562
- index?: number;
563
- /** Whether this option is disabled */
564
- disabled?: boolean;
565
- /** Override container style */
566
- style?: StyleProp<ViewStyle>;
567
- /** Override text style */
568
- textStyle?: TextStyle;
569
- children: React.ReactNode;
570
- }
571
- /**
572
- * SelectOption -- an individual option within SelectContent.
573
- *
574
- * Renders as a Pressable row. Selected option gets a highlight
575
- * background to indicate the current selection.
576
- */
577
- declare function SelectOption({ value, index, disabled, style, textStyle, children, ...rest }: SelectOptionProps): react_jsx_runtime.JSX.Element;
578
-
579
52
  /**
580
53
  * Breakpoint values in pixels, matching @entropix/tokens breakpoint primitives.
581
54
  */
@@ -626,107 +99,4 @@ declare function useScreenDimensions(): {
626
99
  height: number;
627
100
  };
628
101
 
629
- type SpacingSize$1 = "none" | "xs" | "sm" | "md" | "lg" | "xl" | "2xl";
630
- interface StackProps extends ViewProps {
631
- /** Gap between children. Default uses space.layout.stack token (16px) */
632
- gap?: SpacingSize$1;
633
- /** Cross-axis alignment */
634
- align?: "start" | "center" | "end" | "stretch";
635
- /** Whether to take full width */
636
- fullWidth?: boolean;
637
- children?: React.ReactNode;
638
- }
639
- /**
640
- * Stack — vertical flex layout primitive for React Native.
641
- *
642
- * Uses the `space.layout.stack` token (16px) as default gap.
643
- *
644
- * ```tsx
645
- * <Stack gap="lg" align="center">
646
- * <Button>First</Button>
647
- * <Button>Second</Button>
648
- * </Stack>
649
- * ```
650
- */
651
- declare function Stack({ gap, align, fullWidth, style, children, ...rest }: StackProps): react_jsx_runtime.JSX.Element;
652
-
653
- type SpacingSize = "none" | "xs" | "sm" | "md" | "lg" | "xl" | "2xl";
654
- interface InlineProps extends ViewProps {
655
- /** Gap between children. Default uses space.layout.inline token (12px) */
656
- gap?: SpacingSize;
657
- /** Cross-axis alignment */
658
- align?: "start" | "center" | "end" | "stretch" | "baseline";
659
- /** Main-axis justification */
660
- justify?: "start" | "center" | "end" | "between" | "around";
661
- /** Whether to wrap children */
662
- wrap?: boolean;
663
- children?: React.ReactNode;
664
- }
665
- /**
666
- * Inline — horizontal flex layout primitive for React Native.
667
- *
668
- * Uses the `space.layout.inline` token (12px) as default gap.
669
- *
670
- * ```tsx
671
- * <Inline gap="sm" justify="between" wrap>
672
- * <Button variant="primary">Save</Button>
673
- * <Button variant="ghost">Cancel</Button>
674
- * </Inline>
675
- * ```
676
- */
677
- declare function Inline({ gap, align, justify, wrap, style, children, ...rest }: InlineProps): react_jsx_runtime.JSX.Element;
678
-
679
- type ContainerSize = "xs" | "sm" | "md" | "lg" | "xl" | "full";
680
- interface ContainerProps extends ViewProps {
681
- /** Maximum width constraint. Default: "lg" (1024px). On mobile this mainly affects tablet/web. */
682
- maxWidth?: ContainerSize;
683
- /** Whether to center children horizontally */
684
- center?: boolean;
685
- children?: React.ReactNode;
686
- }
687
- /**
688
- * Container — responsive page-level wrapper with adaptive horizontal padding.
689
- *
690
- * Padding scales with screen size using breakpoint tokens:
691
- * - Mobile (<768px): `space.layout.page-margin` (24px)
692
- * - Tablet (≥768px): `space.layout.page-margin-md` (32px)
693
- * - Desktop (≥1024px): `space.layout.page-margin-lg` (40px)
694
- *
695
- * ```tsx
696
- * <Container maxWidth="lg">
697
- * <Stack gap="xl">
698
- * <Text>Page content</Text>
699
- * </Stack>
700
- * </Container>
701
- * ```
702
- */
703
- declare function Container({ maxWidth, center, style, children, ...rest }: ContainerProps): react_jsx_runtime.JSX.Element;
704
-
705
- interface DividerProps extends ViewProps {
706
- /** Orientation of the divider */
707
- orientation?: "horizontal" | "vertical";
708
- /** Spacing above and below (or left and right for vertical) */
709
- spacing?: "sm" | "md" | "lg";
710
- }
711
- /**
712
- * Divider — visual separator line for React Native.
713
- *
714
- * Uses the `color.border.default` token for line color.
715
- *
716
- * ```tsx
717
- * <Stack>
718
- * <Text>Section A</Text>
719
- * <Divider spacing="md" />
720
- * <Text>Section B</Text>
721
- * </Stack>
722
- *
723
- * <Inline>
724
- * <Text>Left</Text>
725
- * <Divider orientation="vertical" spacing="sm" />
726
- * <Text>Right</Text>
727
- * </Inline>
728
- * ```
729
- */
730
- declare function Divider({ orientation, spacing, style, ...rest }: DividerProps): react_jsx_runtime.JSX.Element;
731
-
732
- export { Accordion, AccordionItem, type AccordionItemProps, AccordionPanel, type AccordionPanelProps, type AccordionProps, AccordionTrigger, type AccordionTriggerProps, BREAKPOINTS, type Breakpoint, Button, type ButtonProps, Checkbox, type CheckboxProps, type CheckboxSize, Container, type ContainerProps, type ContainerSize, Dialog, DialogClose, type DialogCloseProps, DialogContent, type DialogContentProps, DialogDescription, type DialogDescriptionProps, DialogOverlay, type DialogOverlayProps, type DialogProps, DialogTitle, type DialogTitleProps, DialogTrigger, type DialogTriggerProps, Divider, type DividerProps, EntropixProvider, type EntropixProviderProps, type EntropixTheme, Inline, type InlineProps, Input, type InputProps, type InputSize, Menu, MenuContent, type MenuContentProps, MenuItem, type MenuItemProps, type MenuProps, MenuTrigger, type MenuTriggerProps, type RNAccessibilityProps, RadioGroup, type RadioGroupProps, RadioItem, type RadioItemProps, Select, SelectContent, type SelectContentProps, SelectOption, type SelectOptionProps, type SelectProps, SelectTrigger, type SelectTriggerProps, type SpacingSize$1 as SpacingSize, Stack, type StackProps, Switch, type SwitchProps, Tab, TabList, type TabListProps, TabPanel, type TabPanelProps, type TabProps, Tabs, type TabsProps, Textarea, type TextareaProps, type TextareaSize, type ThemeMode, Toggle, type ToggleProps, mapAccessibilityToRN, useBreakpoint, useBreakpointValue, useScreenDimensions, useTheme };
102
+ export { BREAKPOINTS, type Breakpoint, type RNAccessibilityProps, mapAccessibilityToRN, useBreakpoint, useBreakpointValue, useScreenDimensions };