@retray-dev/ui-kit 6.2.0 → 7.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 (317) hide show
  1. package/COMPONENTS.md +444 -10
  2. package/EXAMPLES.md +248 -0
  3. package/README.md +11 -10
  4. package/dist/Accordion.d.mts +28 -0
  5. package/dist/Accordion.d.ts +28 -0
  6. package/dist/Accordion.js +340 -0
  7. package/dist/Accordion.mjs +6 -0
  8. package/dist/AlertBanner.d.mts +16 -0
  9. package/dist/AlertBanner.d.ts +16 -0
  10. package/dist/AlertBanner.js +247 -0
  11. package/dist/AlertBanner.mjs +5 -0
  12. package/dist/Avatar.d.mts +20 -0
  13. package/dist/Avatar.d.ts +20 -0
  14. package/dist/Avatar.js +234 -0
  15. package/dist/Avatar.mjs +3 -0
  16. package/dist/Badge.d.mts +26 -0
  17. package/dist/Badge.d.ts +26 -0
  18. package/dist/Badge.js +247 -0
  19. package/dist/Badge.mjs +4 -0
  20. package/dist/Button.d.mts +25 -0
  21. package/dist/Button.d.ts +25 -0
  22. package/dist/Button.js +414 -0
  23. package/dist/Button.mjs +8 -0
  24. package/dist/ButtonGroup.d.mts +26 -0
  25. package/dist/ButtonGroup.d.ts +26 -0
  26. package/dist/ButtonGroup.js +52 -0
  27. package/dist/ButtonGroup.mjs +2 -0
  28. package/dist/Card.d.mts +39 -0
  29. package/dist/Card.d.ts +39 -0
  30. package/dist/Card.js +329 -0
  31. package/dist/Card.mjs +7 -0
  32. package/dist/CategoryStrip.d.mts +26 -0
  33. package/dist/CategoryStrip.d.ts +26 -0
  34. package/dist/CategoryStrip.js +396 -0
  35. package/dist/CategoryStrip.mjs +9 -0
  36. package/dist/Checkbox.d.mts +14 -0
  37. package/dist/Checkbox.d.ts +14 -0
  38. package/dist/Checkbox.js +304 -0
  39. package/dist/Checkbox.mjs +7 -0
  40. package/dist/Chip.d.mts +31 -0
  41. package/dist/Chip.d.ts +31 -0
  42. package/dist/Chip.js +370 -0
  43. package/dist/Chip.mjs +8 -0
  44. package/dist/ConfirmDialog.d.mts +15 -0
  45. package/dist/ConfirmDialog.d.ts +15 -0
  46. package/dist/ConfirmDialog.js +530 -0
  47. package/dist/ConfirmDialog.mjs +9 -0
  48. package/dist/CurrencyDisplay.d.mts +24 -0
  49. package/dist/CurrencyDisplay.d.ts +24 -0
  50. package/dist/CurrencyDisplay.js +189 -0
  51. package/dist/CurrencyDisplay.mjs +3 -0
  52. package/dist/CurrencyInput.d.mts +26 -0
  53. package/dist/CurrencyInput.d.ts +26 -0
  54. package/dist/CurrencyInput.js +404 -0
  55. package/dist/CurrencyInput.mjs +7 -0
  56. package/dist/DetailRow.d.mts +32 -0
  57. package/dist/DetailRow.d.ts +32 -0
  58. package/dist/DetailRow.js +275 -0
  59. package/dist/DetailRow.mjs +4 -0
  60. package/dist/EmptyState.d.mts +27 -0
  61. package/dist/EmptyState.d.ts +27 -0
  62. package/dist/EmptyState.js +503 -0
  63. package/dist/EmptyState.mjs +9 -0
  64. package/dist/Form.d.mts +52 -0
  65. package/dist/Form.d.ts +52 -0
  66. package/dist/Form.js +204 -0
  67. package/dist/Form.mjs +3 -0
  68. package/dist/IconButton.d.mts +22 -0
  69. package/dist/IconButton.d.ts +22 -0
  70. package/dist/IconButton.js +383 -0
  71. package/dist/IconButton.mjs +7 -0
  72. package/dist/Input.d.mts +23 -0
  73. package/dist/Input.d.ts +23 -0
  74. package/dist/Input.js +351 -0
  75. package/dist/Input.mjs +6 -0
  76. package/dist/LabelValue.d.mts +16 -0
  77. package/dist/LabelValue.d.ts +16 -0
  78. package/dist/LabelValue.js +225 -0
  79. package/dist/LabelValue.mjs +4 -0
  80. package/dist/ListGroup.d.mts +34 -0
  81. package/dist/ListGroup.d.ts +34 -0
  82. package/dist/ListGroup.js +217 -0
  83. package/dist/ListGroup.mjs +4 -0
  84. package/dist/ListItem.d.mts +64 -0
  85. package/dist/ListItem.d.ts +64 -0
  86. package/dist/ListItem.js +430 -0
  87. package/dist/ListItem.mjs +8 -0
  88. package/dist/MediaCard.d.mts +39 -0
  89. package/dist/MediaCard.d.ts +39 -0
  90. package/dist/MediaCard.js +427 -0
  91. package/dist/MediaCard.mjs +8 -0
  92. package/dist/MenuGroup.d.mts +34 -0
  93. package/dist/MenuGroup.d.ts +34 -0
  94. package/dist/MenuGroup.js +217 -0
  95. package/dist/MenuGroup.mjs +4 -0
  96. package/dist/MenuItem.d.mts +48 -0
  97. package/dist/MenuItem.d.ts +48 -0
  98. package/dist/MenuItem.js +403 -0
  99. package/dist/MenuItem.mjs +8 -0
  100. package/dist/MonthPicker.d.mts +20 -0
  101. package/dist/MonthPicker.d.ts +20 -0
  102. package/dist/MonthPicker.js +234 -0
  103. package/dist/MonthPicker.mjs +4 -0
  104. package/dist/Pressable.d.mts +34 -0
  105. package/dist/Pressable.d.ts +34 -0
  106. package/dist/Pressable.js +132 -0
  107. package/dist/Pressable.mjs +4 -0
  108. package/dist/Progress.d.mts +14 -0
  109. package/dist/Progress.d.ts +14 -0
  110. package/dist/Progress.js +191 -0
  111. package/dist/Progress.mjs +4 -0
  112. package/dist/RadioGroup.d.mts +19 -0
  113. package/dist/RadioGroup.d.ts +19 -0
  114. package/dist/RadioGroup.js +341 -0
  115. package/dist/RadioGroup.mjs +7 -0
  116. package/dist/Select.d.mts +22 -0
  117. package/dist/Select.d.ts +22 -0
  118. package/dist/Select.js +441 -0
  119. package/dist/Select.mjs +6 -0
  120. package/dist/Separator.d.mts +10 -0
  121. package/dist/Separator.d.ts +10 -0
  122. package/dist/Separator.js +156 -0
  123. package/dist/Separator.mjs +2 -0
  124. package/dist/Sheet.d.mts +81 -0
  125. package/dist/Sheet.d.ts +81 -0
  126. package/dist/Sheet.js +340 -0
  127. package/dist/Sheet.mjs +4 -0
  128. package/dist/Skeleton.d.mts +17 -0
  129. package/dist/Skeleton.d.ts +17 -0
  130. package/dist/Skeleton.js +205 -0
  131. package/dist/Skeleton.mjs +4 -0
  132. package/dist/Slider.d.mts +20 -0
  133. package/dist/Slider.d.ts +20 -0
  134. package/dist/Slider.js +232 -0
  135. package/dist/Slider.mjs +4 -0
  136. package/dist/Spinner.d.mts +12 -0
  137. package/dist/Spinner.d.ts +12 -0
  138. package/dist/Spinner.js +172 -0
  139. package/dist/Spinner.mjs +3 -0
  140. package/dist/Switch.d.mts +13 -0
  141. package/dist/Switch.d.ts +13 -0
  142. package/dist/Switch.js +261 -0
  143. package/dist/Switch.mjs +5 -0
  144. package/dist/Tabs.d.mts +27 -0
  145. package/dist/Tabs.d.ts +27 -0
  146. package/dist/Tabs.js +389 -0
  147. package/dist/Tabs.mjs +6 -0
  148. package/dist/Text.d.mts +12 -0
  149. package/dist/Text.d.ts +12 -0
  150. package/dist/Text.js +311 -0
  151. package/dist/Text.mjs +4 -0
  152. package/dist/Textarea.d.mts +16 -0
  153. package/dist/Textarea.d.ts +16 -0
  154. package/dist/Textarea.js +333 -0
  155. package/dist/Textarea.mjs +6 -0
  156. package/dist/Toast.d.mts +47 -0
  157. package/dist/Toast.d.ts +47 -0
  158. package/dist/Toast.js +185 -0
  159. package/dist/Toast.mjs +3 -0
  160. package/dist/Toggle.d.mts +33 -0
  161. package/dist/Toggle.d.ts +33 -0
  162. package/dist/Toggle.js +397 -0
  163. package/dist/Toggle.mjs +8 -0
  164. package/dist/VirtualList.d.mts +19 -0
  165. package/dist/VirtualList.d.ts +19 -0
  166. package/dist/VirtualList.js +38 -0
  167. package/dist/VirtualList.mjs +1 -0
  168. package/dist/chunk-2CE3TQVY.mjs +11 -0
  169. package/dist/chunk-2UYENBLV.mjs +49 -0
  170. package/dist/chunk-3BBOZ3OQ.mjs +41 -0
  171. package/dist/chunk-5IKW3VNC.mjs +43 -0
  172. package/dist/chunk-63357L2X.mjs +51 -0
  173. package/dist/chunk-6LQYY7HC.mjs +127 -0
  174. package/dist/chunk-6Q64UFIA.mjs +71 -0
  175. package/dist/chunk-76PFOSM2.mjs +41 -0
  176. package/dist/chunk-7H2OR44A.mjs +14 -0
  177. package/dist/chunk-A4MDAP7G.mjs +42 -0
  178. package/dist/chunk-AU2VDY4P.mjs +190 -0
  179. package/dist/chunk-BRKYVJVV.mjs +60 -0
  180. package/dist/chunk-CRYBX2CM.mjs +146 -0
  181. package/dist/chunk-DITNP6PL.mjs +106 -0
  182. package/dist/chunk-FTLJOUOQ.mjs +97 -0
  183. package/dist/chunk-GCWOGZYL.mjs +104 -0
  184. package/dist/chunk-GNGLDL6Z.mjs +60 -0
  185. package/dist/chunk-GPOUINK5.mjs +148 -0
  186. package/dist/chunk-HSPSMN6U.mjs +115 -0
  187. package/dist/chunk-IRRY3CRZ.mjs +82 -0
  188. package/dist/chunk-JB67UOB5.mjs +92 -0
  189. package/dist/chunk-JBLL7U3U.mjs +64 -0
  190. package/dist/chunk-KWCPOM6W.mjs +136 -0
  191. package/dist/chunk-KZJRQOIU.mjs +64 -0
  192. package/dist/chunk-L7E7TVEZ.mjs +145 -0
  193. package/dist/chunk-LG4DO3DK.mjs +174 -0
  194. package/dist/chunk-LWG526VX.mjs +139 -0
  195. package/dist/chunk-MN7OG7IY.mjs +96 -0
  196. package/dist/chunk-MX6HRKMI.mjs +29 -0
  197. package/dist/chunk-NC5ZTR2Y.mjs +32 -0
  198. package/dist/chunk-NQGVLMWG.mjs +90 -0
  199. package/dist/chunk-QCNARS3X.mjs +46 -0
  200. package/dist/chunk-QXGYKWI7.mjs +134 -0
  201. package/dist/chunk-QY3X2UYR.mjs +191 -0
  202. package/dist/chunk-RKLHUDZS.mjs +92 -0
  203. package/dist/chunk-RMMK64W5.mjs +54 -0
  204. package/dist/chunk-RR2VQLKE.mjs +190 -0
  205. package/dist/chunk-RTC3CFXF.mjs +29 -0
  206. package/dist/chunk-SBZYEV4S.mjs +61 -0
  207. package/dist/chunk-SOA2Z4RB.mjs +82 -0
  208. package/dist/chunk-SOYNZDVY.mjs +151 -0
  209. package/dist/chunk-T7XZ7H7Y.mjs +57 -0
  210. package/dist/chunk-TAJ2PQ2O.mjs +163 -0
  211. package/dist/chunk-U4N7WF4Z.mjs +108 -0
  212. package/dist/chunk-URDE3EUU.mjs +132 -0
  213. package/dist/chunk-URLL5JBR.mjs +245 -0
  214. package/dist/chunk-XDMN67KV.mjs +59 -0
  215. package/dist/chunk-Y6MXOREN.mjs +120 -0
  216. package/dist/chunk-YZJAFS4P.mjs +131 -0
  217. package/dist/index.d.mts +94 -873
  218. package/dist/index.d.ts +94 -873
  219. package/dist/index.js +751 -357
  220. package/dist/index.mjs +50 -3895
  221. package/package.json +23 -14
  222. package/src/assets/fonts/Sohne-Bold.otf +0 -0
  223. package/src/assets/fonts/Sohne-BoldItalic.otf +0 -0
  224. package/src/assets/fonts/Sohne-ExtraBold.otf +0 -0
  225. package/src/assets/fonts/Sohne-ExtraBoldItalic.otf +0 -0
  226. package/src/assets/fonts/Sohne-ExtraLight.otf +0 -0
  227. package/src/assets/fonts/Sohne-ExtraLightItalic.otf +0 -0
  228. package/src/assets/fonts/Sohne-Italic.otf +0 -0
  229. package/src/assets/fonts/Sohne-Light.otf +0 -0
  230. package/src/assets/fonts/Sohne-LightItalic.otf +0 -0
  231. package/src/assets/fonts/Sohne-Medium.otf +0 -0
  232. package/src/assets/fonts/Sohne-MediumItalic.otf +0 -0
  233. package/src/assets/fonts/Sohne-Regular.otf +0 -0
  234. package/src/assets/fonts/Sohne-SemiBold.otf +0 -0
  235. package/src/assets/fonts/Sohne-SemiBoldItalic.otf +0 -0
  236. package/src/assets/fonts/SohneMono-Bold.otf +0 -0
  237. package/src/assets/fonts/SohneMono-BoldItalic.otf +0 -0
  238. package/src/assets/fonts/SohneMono-ExtraBold.otf +0 -0
  239. package/src/assets/fonts/SohneMono-ExtraBoldItalic.otf +0 -0
  240. package/src/assets/fonts/SohneMono-ExtraLight.otf +0 -0
  241. package/src/assets/fonts/SohneMono-ExtraLightItalic.otf +0 -0
  242. package/src/assets/fonts/SohneMono-Italic.otf +0 -0
  243. package/src/assets/fonts/SohneMono-Light.otf +0 -0
  244. package/src/assets/fonts/SohneMono-LightItalic.otf +0 -0
  245. package/src/assets/fonts/SohneMono-Medium.otf +0 -0
  246. package/src/assets/fonts/SohneMono-MediumItalic.otf +0 -0
  247. package/src/assets/fonts/SohneMono-Regular.otf +0 -0
  248. package/src/assets/fonts/SohneMono-SemiBold.otf +0 -0
  249. package/src/assets/fonts/SohneMono-SemiBoldItalic.otf +0 -0
  250. package/src/components/Accordion/Accordion.tsx +3 -3
  251. package/src/components/AlertBanner/AlertBanner.tsx +33 -12
  252. package/src/components/Avatar/Avatar.tsx +4 -2
  253. package/src/components/Badge/Badge.tsx +4 -2
  254. package/src/components/Button/Button.tsx +10 -11
  255. package/src/components/ButtonGroup/ButtonGroup.tsx +13 -10
  256. package/src/components/Card/Card.tsx +17 -34
  257. package/src/components/CategoryStrip/CategoryStrip.tsx +24 -21
  258. package/src/components/Checkbox/Checkbox.tsx +11 -6
  259. package/src/components/Chip/Chip.tsx +17 -15
  260. package/src/components/ConfirmDialog/ConfirmDialog.tsx +2 -2
  261. package/src/components/CurrencyDisplay/CurrencyDisplay.tsx +4 -2
  262. package/src/components/CurrencyInput/CurrencyInput.tsx +2 -2
  263. package/src/components/DetailRow/DetailRow.tsx +9 -7
  264. package/src/components/EmptyState/EmptyState.tsx +2 -2
  265. package/src/components/Form/Form.tsx +149 -0
  266. package/src/components/Form/index.ts +1 -0
  267. package/src/components/IconButton/IconButton.tsx +4 -2
  268. package/src/components/Input/Input.tsx +27 -31
  269. package/src/components/LabelValue/LabelValue.tsx +6 -4
  270. package/src/components/ListGroup/ListGroup.tsx +145 -0
  271. package/src/components/ListGroup/index.ts +1 -0
  272. package/src/components/ListItem/ListItem.tsx +9 -10
  273. package/src/components/MediaCard/MediaCard.tsx +7 -5
  274. package/src/components/MenuGroup/MenuGroup.tsx +145 -0
  275. package/src/components/MenuGroup/index.ts +1 -0
  276. package/src/components/MenuItem/MenuItem.tsx +7 -9
  277. package/src/components/MonthPicker/MonthPicker.tsx +2 -2
  278. package/src/components/RadioGroup/RadioGroup.tsx +11 -14
  279. package/src/components/Select/Select.tsx +6 -6
  280. package/src/components/Separator/Separator.tsx +1 -3
  281. package/src/components/Sheet/Sheet.tsx +81 -17
  282. package/src/components/Skeleton/Skeleton.tsx +1 -1
  283. package/src/components/Slider/Slider.tsx +2 -2
  284. package/src/components/Spinner/Spinner.tsx +1 -1
  285. package/src/components/Switch/Switch.tsx +28 -5
  286. package/src/components/Tabs/Tabs.tsx +22 -18
  287. package/src/components/Text/Text.tsx +3 -1
  288. package/src/components/Textarea/Textarea.tsx +18 -14
  289. package/src/components/Toast/Toast.tsx +6 -6
  290. package/src/components/Toggle/Toggle.tsx +47 -23
  291. package/src/components/VirtualList/VirtualList.tsx +60 -0
  292. package/src/components/VirtualList/index.ts +1 -0
  293. package/src/fonts.ts +38 -20
  294. package/src/index.ts +5 -1
  295. package/src/theme/colors.ts +53 -39
  296. package/src/theme/types.ts +3 -0
  297. package/src/tokens.ts +49 -39
  298. package/src/utils/icons.ts +47 -20
  299. package/src/utils/usePressScale.ts +2 -0
  300. package/src/assets/fonts/Poppins-Black.ttf +0 -0
  301. package/src/assets/fonts/Poppins-BlackItalic.ttf +0 -0
  302. package/src/assets/fonts/Poppins-Bold.ttf +0 -0
  303. package/src/assets/fonts/Poppins-BoldItalic.ttf +0 -0
  304. package/src/assets/fonts/Poppins-ExtraBold.ttf +0 -0
  305. package/src/assets/fonts/Poppins-ExtraBoldItalic.ttf +0 -0
  306. package/src/assets/fonts/Poppins-ExtraLight.ttf +0 -0
  307. package/src/assets/fonts/Poppins-ExtraLightItalic.ttf +0 -0
  308. package/src/assets/fonts/Poppins-Italic.ttf +0 -0
  309. package/src/assets/fonts/Poppins-Light.ttf +0 -0
  310. package/src/assets/fonts/Poppins-LightItalic.ttf +0 -0
  311. package/src/assets/fonts/Poppins-Medium.ttf +0 -0
  312. package/src/assets/fonts/Poppins-MediumItalic.ttf +0 -0
  313. package/src/assets/fonts/Poppins-Regular.ttf +0 -0
  314. package/src/assets/fonts/Poppins-SemiBold.ttf +0 -0
  315. package/src/assets/fonts/Poppins-SemiBoldItalic.ttf +0 -0
  316. package/src/assets/fonts/Poppins-Thin.ttf +0 -0
  317. package/src/assets/fonts/Poppins-ThinItalic.ttf +0 -0
package/dist/index.d.ts CHANGED
@@ -1,8 +1,48 @@
1
1
  import React from 'react';
2
- import { TouchableOpacityProps, ViewStyle, TextProps as TextProps$1, TextInputProps, TextStyle, ActivityIndicatorProps, ImageSourcePropType } from 'react-native';
3
- import * as sonner_native from 'sonner-native';
4
- export { toast } from 'sonner-native';
2
+ export { Button, ButtonProps, ButtonSize, ButtonVariant } from './Button.js';
3
+ export { ButtonGroup, ButtonGroupProps } from './ButtonGroup.js';
4
+ export { IconButton, IconButtonProps, IconButtonSize, IconButtonVariant } from './IconButton.js';
5
+ export { Text, TextProps, TextVariant } from './Text.js';
6
+ export { Input, InputProps } from './Input.js';
7
+ export { Badge, BadgeProps, BadgeVariant } from './Badge.js';
8
+ export { Card, CardContent, CardContentProps, CardDescription, CardDescriptionProps, CardFooter, CardFooterProps, CardHeader, CardHeaderProps, CardProps, CardTitle, CardTitleProps } from './Card.js';
9
+ export { Separator, SeparatorProps } from './Separator.js';
10
+ export { Spinner, SpinnerProps, SpinnerSize } from './Spinner.js';
11
+ export { Skeleton, SkeletonProps } from './Skeleton.js';
12
+ export { Avatar, AvatarProps, AvatarSize } from './Avatar.js';
13
+ export { AlertBanner, AlertBannerProps, AlertBannerVariant } from './AlertBanner.js';
14
+ export { Progress, ProgressProps } from './Progress.js';
15
+ export { EmptyState, EmptyStateProps } from './EmptyState.js';
16
+ export { Textarea, TextareaProps } from './Textarea.js';
17
+ export { Checkbox, CheckboxProps } from './Checkbox.js';
18
+ export { Switch, SwitchProps } from './Switch.js';
19
+ export { Toggle, ToggleProps, ToggleSize, ToggleVariant } from './Toggle.js';
20
+ export { RadioGroup, RadioGroupProps, RadioOption } from './RadioGroup.js';
21
+ export { TabItem, Tabs, TabsContent, TabsContentProps, TabsProps } from './Tabs.js';
22
+ export { Accordion, AccordionItem, AccordionProps } from './Accordion.js';
23
+ export { Slider, SliderProps } from './Slider.js';
24
+ export { Sheet, SheetProps } from './Sheet.js';
25
+ export { Select, SelectOption, SelectProps } from './Select.js';
26
+ export { ToastProvider, useToast } from './Toast.js';
27
+ export { CurrencyInput, CurrencyInput as CurrencyInputLarge, CurrencyInputProps } from './CurrencyInput.js';
28
+ export { CurrencyDisplay, CurrencyDisplayProps, CurrencyDisplayVariant } from './CurrencyDisplay.js';
29
+ export { ListItem, ListItemProps } from './ListItem.js';
30
+ export { ListGroup, ListGroupFooter, ListGroupFooterProps, ListGroupHeader, ListGroupHeaderProps, ListGroupProps, ListGroupVariant } from './ListGroup.js';
31
+ export { MenuItem, MenuItemProps, MenuItemVariant } from './MenuItem.js';
32
+ export { MenuGroup, MenuGroupFooter, MenuGroupFooterProps, MenuGroupHeader, MenuGroupHeaderProps, MenuGroupProps, MenuGroupVariant } from './MenuGroup.js';
33
+ export { Chip, ChipGroup, ChipGroupProps, ChipOption, ChipProps } from './Chip.js';
34
+ export { ConfirmDialog, ConfirmDialogProps } from './ConfirmDialog.js';
35
+ export { LabelValue, LabelValueProps } from './LabelValue.js';
36
+ export { MonthPicker, MonthPickerProps, MonthPickerValue } from './MonthPicker.js';
37
+ export { MediaCard, MediaCardAspectRatio, MediaCardProps } from './MediaCard.js';
38
+ export { CategoryItem, CategoryStrip, CategoryStripProps } from './CategoryStrip.js';
39
+ export { Pressable, PressableProps } from './Pressable.js';
40
+ export { DetailRow, DetailRowLabelWeight, DetailRowProps, DetailRowSeparator } from './DetailRow.js';
41
+ export { Form, FormField, FormFieldProps, FormFooter, FormFooterProps, FormProps, FormSection, FormSectionProps } from './Form.js';
42
+ export { VirtualList, VirtualListItem, VirtualListProps } from './VirtualList.js';
5
43
  export { BottomSheetModalProvider, BottomSheetTextInput as SheetTextInput } from '@gorhom/bottom-sheet';
44
+ export { toast } from 'sonner-native';
45
+ import 'react-native';
6
46
 
7
47
  type ThemeColors = {
8
48
  background: string;
@@ -40,6 +80,7 @@ type ResolvedColors = ThemeColors & {
40
80
  accentForegroundResolved: string;
41
81
  ring: string;
42
82
  input: string;
83
+ separator: string;
43
84
  };
44
85
  type Theme = {
45
86
  light?: Partial<ThemeColors>;
@@ -73,844 +114,6 @@ declare const defaultLight: ThemeColors;
73
114
  declare const defaultDark: ThemeColors;
74
115
  declare function deriveColors(t: ThemeColors, scheme: 'light' | 'dark'): ResolvedColors;
75
116
 
76
- type ButtonVariant = 'primary' | 'secondary' | 'text' | 'destructive';
77
- type ButtonSize = 'sm' | 'md' | 'lg';
78
- interface ButtonProps extends TouchableOpacityProps {
79
- label: string;
80
- variant?: ButtonVariant;
81
- size?: ButtonSize;
82
- loading?: boolean;
83
- fullWidth?: boolean;
84
- icon?: React.ReactNode | ((props: {
85
- label: string;
86
- size: ButtonSize;
87
- variant: ButtonVariant;
88
- color: string;
89
- }) => React.ReactNode);
90
- iconName?: string;
91
- iconColor?: string;
92
- iconPosition?: 'left' | 'right';
93
- }
94
- declare function Button({ label, variant, size, loading, fullWidth, icon, iconName, iconColor, iconPosition, disabled, style, onPress, accessibilityLabel, accessibilityHint, ...props }: ButtonProps): React.JSX.Element;
95
-
96
- interface ButtonGroupProps {
97
- children: React.ReactNode;
98
- /** Spacing between buttons. Defaults to 12px. */
99
- gap?: number;
100
- /** Stack buttons vertically instead of horizontally. */
101
- vertical?: boolean;
102
- style?: ViewStyle;
103
- }
104
- /**
105
- * Container that auto-distributes space equally among Button children.
106
- * Each child gets `flex: 1` — perfect for side-by-side CTAs.
107
- *
108
- * @example
109
- * ```tsx
110
- * <ButtonGroup>
111
- * <Button label="Cancel" variant="secondary" onPress={...} />
112
- * <Button label="Confirm" onPress={...} />
113
- * </ButtonGroup>
114
- * ```
115
- */
116
- declare function ButtonGroup({ children, gap, vertical, style }: ButtonGroupProps): React.JSX.Element;
117
-
118
- type IconButtonVariant = 'primary' | 'secondary' | 'outline' | 'text' | 'destructive';
119
- type IconButtonSize = 'sm' | 'md' | 'lg';
120
- interface IconButtonProps extends TouchableOpacityProps {
121
- iconName?: string;
122
- icon?: React.ReactNode;
123
- iconColor?: string;
124
- variant?: IconButtonVariant;
125
- size?: IconButtonSize;
126
- loading?: boolean;
127
- /**
128
- * Badge overlay. `true` shows a dot. A number shows a count (capped at 99).
129
- * The dot/count appears top-right of the button.
130
- */
131
- badge?: boolean | number;
132
- }
133
- declare function IconButton({ iconName, icon, iconColor, variant, size, loading, badge, disabled, style, onPress, accessibilityLabel, accessibilityHint, ...props }: IconButtonProps): React.JSX.Element;
134
-
135
- type TextVariant = 'display-hero' | 'display-xl' | 'display-lg' | 'display-md' | 'display-sm' | 'title-md' | 'title-sm' | 'body-md' | 'body-sm' | 'caption' | 'caption-sm' | 'badge-text' | 'micro-label' | 'uppercase-tag' | 'button-lg' | 'button-sm';
136
- interface TextProps extends TextProps$1 {
137
- variant?: TextVariant;
138
- color?: string;
139
- }
140
- declare function Text({ variant, color, style, children, ...props }: TextProps): React.JSX.Element;
141
-
142
- interface InputProps extends TextInputProps {
143
- label?: string;
144
- /** Red helper text below the input; also changes border to `destructive` color. Takes priority over `hint`. */
145
- error?: string;
146
- /** Helper text shown below the input when there is no error. */
147
- hint?: string;
148
- /** Disabled visual state — dimmed appearance, not editable. Also sets `editable={false}`. */
149
- disabled?: boolean;
150
- /** Text or component rendered before the input text. */
151
- prefix?: React.ReactNode;
152
- /** Text or component rendered after the input text. */
153
- suffix?: React.ReactNode;
154
- /** Style applied to prefix text if prefix is a string. */
155
- prefixStyle?: TextStyle;
156
- /** Style applied to suffix text if suffix is a string. */
157
- suffixStyle?: TextStyle;
158
- /**
159
- * Icon name from `@expo/vector-icons` rendered before the input text.
160
- * See https://icons.expo.fyi. Takes precedence over `prefix`.
161
- */
162
- prefixIcon?: string;
163
- /**
164
- * Icon name from `@expo/vector-icons` rendered after the input text.
165
- * See https://icons.expo.fyi. Takes precedence over `suffix` (unless `type="password"`).
166
- */
167
- suffixIcon?: string;
168
- /** Override the resolved prefix icon color. Defaults to `mutedForeground`. */
169
- prefixIconColor?: string;
170
- /** Override the resolved suffix icon color. Defaults to `mutedForeground`. */
171
- suffixIconColor?: string;
172
- /** Input type. When set to \`'password'\`, shows a toggle button to reveal/hide text. */
173
- type?: 'text' | 'password';
174
- /** Style for the outer container \`View\`. Use \`style\` (from \`TextInputProps\`) to style the \`TextInput\` itself. */
175
- containerStyle?: ViewStyle;
176
- /** Style for the inner border wrapper (overrides padding, etc). */
177
- inputWrapperStyle?: ViewStyle;
178
- }
179
- declare function Input({ label, error, hint, disabled, prefix, suffix, prefixStyle, suffixStyle, prefixIcon, suffixIcon, prefixIconColor, suffixIconColor, type, containerStyle, inputWrapperStyle, style, onFocus, onBlur, secureTextEntry, editable, accessibilityLabel, ...props }: InputProps): React.JSX.Element;
180
-
181
- type BadgeVariant = 'default' | 'secondary' | 'destructive' | 'outline' | 'success' | 'warning' | 'successOutline' | 'destructiveOutline' | 'warningOutline';
182
- type BadgeSize = 'sm' | 'md' | 'lg';
183
- interface BadgeProps {
184
- label?: string;
185
- /** Alternative to \`label\` — allows JSX children. */
186
- children?: React.ReactNode;
187
- variant?: BadgeVariant;
188
- size?: BadgeSize;
189
- /** Icon rendered before the label/children. */
190
- icon?: React.ReactNode;
191
- /**
192
- * Icon name from `@expo/vector-icons` rendered before the label.
193
- * See https://icons.expo.fyi. Takes precedence over `icon`.
194
- */
195
- iconName?: string;
196
- /** Override the resolved icon color. Defaults to the variant foreground color. */
197
- iconColor?: string;
198
- style?: ViewStyle;
199
- }
200
- declare function Badge({ label, children, variant, size, icon, iconName, iconColor, style }: BadgeProps): React.JSX.Element;
201
-
202
- type CardVariant = 'elevated' | 'outlined' | 'filled';
203
- interface CardProps {
204
- children: React.ReactNode;
205
- /** Visual style variant. `'elevated'` (default) has shadow, `'outlined'` has border only, `'filled'` uses accent background. */
206
- variant?: CardVariant;
207
- /** Makes the card tappable. Adds press animation and haptic feedback. */
208
- onPress?: () => void;
209
- style?: ViewStyle;
210
- /** Accessibility label for the card (when interactive). */
211
- accessibilityLabel?: string;
212
- }
213
- interface CardHeaderProps {
214
- children: React.ReactNode;
215
- style?: ViewStyle;
216
- }
217
- interface CardTitleProps {
218
- children: React.ReactNode;
219
- style?: TextStyle;
220
- }
221
- interface CardDescriptionProps {
222
- children: React.ReactNode;
223
- style?: TextStyle;
224
- }
225
- interface CardContentProps {
226
- children: React.ReactNode;
227
- style?: ViewStyle;
228
- }
229
- interface CardFooterProps {
230
- children: React.ReactNode;
231
- style?: ViewStyle;
232
- }
233
- declare function Card({ children, variant, onPress, style, accessibilityLabel }: CardProps): React.JSX.Element;
234
- declare function CardHeader({ children, style }: CardHeaderProps): React.JSX.Element;
235
- declare function CardTitle({ children, style }: CardTitleProps): React.JSX.Element;
236
- declare function CardDescription({ children, style }: CardDescriptionProps): React.JSX.Element;
237
- declare function CardContent({ children, style }: CardContentProps): React.JSX.Element;
238
- declare function CardFooter({ children, style }: CardFooterProps): React.JSX.Element;
239
-
240
- interface SeparatorProps {
241
- orientation?: 'horizontal' | 'vertical';
242
- style?: ViewStyle;
243
- }
244
- declare function Separator({ orientation, style }: SeparatorProps): React.JSX.Element;
245
-
246
- type SpinnerSize = 'sm' | 'md' | 'lg';
247
- interface SpinnerProps extends Omit<ActivityIndicatorProps, 'size'> {
248
- size?: SpinnerSize;
249
- color?: string;
250
- label?: string;
251
- }
252
- declare function Spinner({ size, color, label, ...props }: SpinnerProps): React.JSX.Element;
253
-
254
- type SkeletonPreset = 'base' | 'circle' | 'text';
255
- interface SkeletonProps {
256
- width?: number | string;
257
- height?: number;
258
- borderRadius?: number;
259
- /** Preset shape. `'circle'` forces width=height square with full radius. `'text'` renders a short line. */
260
- preset?: SkeletonPreset;
261
- /** Only used with `preset='circle'` — overrides the diameter. Defaults to 40. */
262
- diameter?: number;
263
- style?: ViewStyle;
264
- }
265
- declare function Skeleton({ width, height, borderRadius, preset, diameter, style, }: SkeletonProps): React.JSX.Element;
266
-
267
- type AvatarSize = 'sm' | 'md' | 'lg' | 'xl';
268
- type AvatarStatus = 'online' | 'offline' | 'busy' | 'away';
269
- interface AvatarProps {
270
- src?: string | null;
271
- /** Manual initials (max 2 chars). */
272
- fallback?: string;
273
- /** Full name — extracts up to 2 initials (e.g. "Julian Cruz" → "JC"). */
274
- fallbackText?: string;
275
- size?: AvatarSize | number;
276
- /** Optional status indicator dot — bottom-right corner. */
277
- status?: AvatarStatus;
278
- style?: ViewStyle;
279
- }
280
- declare function Avatar({ src, fallback, fallbackText, size, status, style }: AvatarProps): React.JSX.Element;
281
-
282
- type AlertBannerVariant = 'default' | 'destructive' | 'success' | 'warning';
283
- interface AlertBannerProps {
284
- title: string;
285
- description?: string;
286
- variant?: AlertBannerVariant;
287
- icon?: React.ReactNode;
288
- iconName?: string;
289
- iconColor?: string;
290
- style?: ViewStyle;
291
- }
292
- declare function AlertBanner({ title, description, variant, icon, iconName, iconColor, style }: AlertBannerProps): React.JSX.Element;
293
-
294
- type ProgressVariant = 'default' | 'success' | 'warning' | 'destructive';
295
- interface ProgressProps {
296
- value?: number;
297
- max?: number;
298
- variant?: ProgressVariant;
299
- style?: ViewStyle;
300
- accessibilityLabel?: string;
301
- }
302
- declare function Progress({ value, max, variant, style, accessibilityLabel }: ProgressProps): React.JSX.Element;
303
-
304
- interface EmptyStateProps {
305
- icon?: React.ReactNode;
306
- /**
307
- * Icon name from `@expo/vector-icons`. See https://icons.expo.fyi.
308
- * Takes precedence over `icon`. Sized automatically to fit the slot (48 default, 32 compact).
309
- */
310
- iconName?: string;
311
- /** Override the resolved icon color. Defaults to `mutedForeground`. */
312
- iconColor?: string;
313
- title: string;
314
- description?: string;
315
- /** Custom action node. Use `actionLabel` + `onAction` for a pre-built primary Button. */
316
- action?: React.ReactNode;
317
- /** Label for a convenience primary Button rendered below description. Ignored in compact size. */
318
- actionLabel?: string;
319
- /** Called when the convenience action Button is pressed. Required when `actionLabel` is set. */
320
- onAction?: () => void;
321
- /** `compact` hides description/action and uses tighter spacing and a smaller icon. */
322
- size?: 'default' | 'compact';
323
- style?: ViewStyle;
324
- }
325
- declare function EmptyState({ icon, iconName, iconColor, title, description, action, actionLabel, onAction, size, style }: EmptyStateProps): React.JSX.Element;
326
-
327
- interface TextareaProps extends TextInputProps {
328
- label?: string;
329
- /** Red helper text below the textarea; also changes border to `destructive` color. Takes priority over `hint`. */
330
- error?: string;
331
- /** Helper text shown below the textarea when there is no error. */
332
- hint?: string;
333
- /** Number of visible text rows. Defaults to `4`. Controls `numberOfLines` and `minHeight`. */
334
- rows?: number;
335
- /** Icon name from @expo/vector-icons rendered inside top-left corner. */
336
- prefixIcon?: string;
337
- /** Custom icon node rendered top-left. */
338
- prefixIconNode?: React.ReactNode;
339
- /** Override prefix icon color. Defaults to foregroundMuted. */
340
- prefixIconColor?: string;
341
- /** Style for the outer container `View`. Use `style` (from `TextInputProps`) to style the `TextInput` itself. */
342
- containerStyle?: ViewStyle;
343
- }
344
- declare function Textarea({ label, error, hint, rows, prefixIcon, prefixIconNode, prefixIconColor, containerStyle, style, onFocus, onBlur, accessibilityLabel, ...props }: TextareaProps): React.JSX.Element;
345
-
346
- interface CheckboxProps {
347
- checked?: boolean;
348
- onCheckedChange?: (checked: boolean) => void;
349
- label?: string;
350
- disabled?: boolean;
351
- style?: ViewStyle;
352
- accessibilityLabel?: string;
353
- }
354
- declare function Checkbox({ checked, onCheckedChange, label, disabled, style, accessibilityLabel, }: CheckboxProps): React.JSX.Element;
355
-
356
- interface SwitchProps {
357
- checked?: boolean;
358
- onCheckedChange?: (checked: boolean) => void;
359
- disabled?: boolean;
360
- style?: ViewStyle;
361
- accessibilityLabel?: string;
362
- }
363
- declare function Switch({ checked, onCheckedChange, disabled, style, accessibilityLabel }: SwitchProps): React.JSX.Element;
364
-
365
- type ToggleVariant = 'default' | 'outline';
366
- type ToggleSize = 'sm' | 'md' | 'lg';
367
- interface ToggleProps extends TouchableOpacityProps {
368
- pressed?: boolean;
369
- onPressedChange?: (pressed: boolean) => void;
370
- variant?: ToggleVariant;
371
- size?: ToggleSize;
372
- label?: string;
373
- /** Icon to show when not pressed */
374
- icon?: React.ReactNode | ((pressed: boolean) => React.ReactNode);
375
- /** Icon to show when pressed/active. If omitted, a default check mark is used. */
376
- activeIcon?: React.ReactNode | ((pressed: boolean) => React.ReactNode);
377
- /**
378
- * Icon name from `@expo/vector-icons` shown when not pressed.
379
- * See https://icons.expo.fyi. Takes precedence over `icon`.
380
- */
381
- iconName?: string;
382
- /**
383
- * Icon name from `@expo/vector-icons` shown when pressed/active.
384
- * See https://icons.expo.fyi. Takes precedence over `activeIcon`.
385
- */
386
- activeIconName?: string;
387
- /** Override the resolved inactive icon color. Defaults to `mutedForeground`. */
388
- iconColor?: string;
389
- /** Override the resolved active icon color. Defaults to `primary`. */
390
- activeIconColor?: string;
391
- }
392
- declare function Toggle({ pressed, onPressedChange, variant, size, label, icon, activeIcon, iconName, activeIconName, iconColor, activeIconColor, disabled, style, accessibilityLabel, ...props }: ToggleProps): React.JSX.Element;
393
-
394
- interface RadioOption {
395
- label: string;
396
- value: string;
397
- disabled?: boolean;
398
- }
399
- interface RadioGroupProps {
400
- options: RadioOption[];
401
- value?: string;
402
- onValueChange?: (value: string) => void;
403
- orientation?: 'vertical' | 'horizontal';
404
- style?: ViewStyle;
405
- accessibilityLabel?: string;
406
- }
407
- declare function RadioGroup({ options, value, onValueChange, orientation, style, accessibilityLabel, }: RadioGroupProps): React.JSX.Element;
408
-
409
- interface TabItem {
410
- label: string;
411
- value: string;
412
- icon?: React.ReactNode | ((active: boolean) => React.ReactNode);
413
- }
414
- type TabsVariant = 'pill' | 'underline';
415
- interface TabsProps {
416
- tabs: TabItem[];
417
- variant?: TabsVariant;
418
- value?: string;
419
- onValueChange?: (value: string) => void;
420
- children?: React.ReactNode;
421
- style?: ViewStyle;
422
- }
423
- interface TabsContentProps {
424
- value: string;
425
- activeValue: string;
426
- children: React.ReactNode;
427
- style?: ViewStyle;
428
- }
429
- declare function Tabs({ tabs, variant, value, onValueChange, children, style }: TabsProps): React.JSX.Element;
430
- declare function TabsContent({ value, activeValue, children, style }: TabsContentProps): React.JSX.Element | null;
431
-
432
- interface AccordionItem {
433
- value: string;
434
- trigger: string;
435
- content: React.ReactNode;
436
- /** Icon name from @expo/vector-icons rendered left of trigger. */
437
- iconName?: string;
438
- /** Custom icon node rendered left of trigger. */
439
- icon?: React.ReactNode;
440
- /** Override icon color. Defaults to foregroundMuted. */
441
- iconColor?: string;
442
- }
443
- interface AccordionProps {
444
- items: AccordionItem[];
445
- /**
446
- * - `'single'` (default): only one item can be open at a time. Opening another closes the current one.
447
- * - `'multiple'`: any number of items can be open simultaneously.
448
- */
449
- type?: 'single' | 'multiple';
450
- /** Item value(s) that should be open on first render. */
451
- defaultValue?: string | string[];
452
- style?: ViewStyle;
453
- }
454
- declare function Accordion({ items, type, defaultValue, style }: AccordionProps): React.JSX.Element;
455
-
456
- interface SliderProps {
457
- value?: number;
458
- minimumValue?: number;
459
- maximumValue?: number;
460
- step?: number;
461
- onValueChange?: (value: number) => void;
462
- onSlidingComplete?: (value: number) => void;
463
- label?: string;
464
- showValue?: boolean;
465
- formatValue?: (value: number) => string;
466
- accessibilityLabel?: string;
467
- disabled?: boolean;
468
- style?: ViewStyle;
469
- }
470
- declare function Slider({ value, minimumValue, maximumValue, step, onValueChange, onSlidingComplete, label, showValue, formatValue, accessibilityLabel, disabled, style, }: SliderProps): React.JSX.Element;
471
-
472
- interface SheetProps {
473
- open: boolean;
474
- onClose: () => void;
475
- title?: string;
476
- /** Secondary text below title. */
477
- subtitle?: string;
478
- /** @deprecated Use `subtitle` instead. */
479
- description?: string;
480
- /** Show an X close button in the header. */
481
- showCloseButton?: boolean;
482
- children?: React.ReactNode;
483
- /** Style for the inner content container. */
484
- style?: ViewStyle;
485
- /** Style for the content wrapper (outside the scroll container). */
486
- contentStyle?: ViewStyle;
487
- /** Render children inside BottomSheetScrollView. */
488
- scrollable?: boolean;
489
- /** Cap sheet height (dp). Children scroll when content exceeds this value. */
490
- maxHeight?: number;
491
- /**
492
- * Keyboard behavior — how the sheet responds to keyboard appearance.
493
- * - 'interactive': offset sheet by keyboard size (default, works on both platforms)
494
- * - 'fillParent': extend sheet to fill parent view (can cause restore issues with dynamic sizing)
495
- * - 'extend': extend sheet to maximum snap point
496
- *
497
- * Default: 'interactive' on both platforms.
498
- */
499
- keyboardBehavior?: 'extend' | 'fillParent' | 'interactive';
500
- /**
501
- * Keyboard blur behavior — what happens when keyboard dismisses.
502
- * - 'none': do nothing
503
- * - 'restore': restore sheet to previous position (default)
504
- */
505
- keyboardBlurBehavior?: 'none' | 'restore';
506
- /**
507
- * Blur keyboard when user starts dragging the sheet down.
508
- * Default: true (recommended for better UX)
509
- */
510
- enableBlurKeyboardOnGesture?: boolean;
511
- /**
512
- * Android-only: defines keyboard input mode.
513
- * - 'adjustPan': pan the sheet content (default, fixes restore issues with dynamic sizing)
514
- * - 'adjustResize': resize the sheet container (can cause transparent gap on dismiss)
515
- */
516
- android_keyboardInputMode?: 'adjustPan' | 'adjustResize';
517
- /** Sticky footer rendered below the scroll area. */
518
- footer?: React.ReactNode;
519
- /**
520
- * Array of snap points for the sheet (e.g., ['50%', '85%'] or [200, 500]).
521
- * When provided, disables enableDynamicSizing.
522
- * When omitted, sheet uses dynamic sizing (auto-fits content).
523
- */
524
- snapPoints?: (string | number)[];
525
- }
526
- declare function Sheet({ open, onClose, title, subtitle, description, showCloseButton, children, style, contentStyle, scrollable, maxHeight, keyboardBehavior, keyboardBlurBehavior, enableBlurKeyboardOnGesture, android_keyboardInputMode, footer, snapPoints, }: SheetProps): React.JSX.Element;
527
-
528
- interface SelectOption {
529
- label: string;
530
- value: string;
531
- disabled?: boolean;
532
- }
533
- interface SelectProps {
534
- options: SelectOption[];
535
- value?: string;
536
- onValueChange?: (value: string) => void;
537
- placeholder?: string;
538
- label?: string;
539
- error?: string;
540
- disabled?: boolean;
541
- style?: ViewStyle;
542
- accessibilityLabel?: string;
543
- }
544
- declare function Select({ options, value, onValueChange, placeholder, label, error, disabled, style, accessibilityLabel, }: SelectProps): React.JSX.Element;
545
-
546
- declare function useToast(): {
547
- toast: ((message: string, data?: Omit<sonner_native.ToastProps, "title" | "type" | "variant" | "id" | "jsx" | "promise"> & {
548
- id?: string | number;
549
- }) => string | number) & {
550
- success: (message: string, data?: Omit<sonner_native.ToastProps, "title" | "type" | "variant" | "id" | "jsx" | "promise"> & {
551
- id?: string | number;
552
- }) => string | number;
553
- info: (message: string, data?: Omit<sonner_native.ToastProps, "title" | "type" | "variant" | "id" | "jsx" | "promise"> & {
554
- id?: string | number;
555
- }) => string | number;
556
- error: (message: string, data?: Omit<sonner_native.ToastProps, "title" | "type" | "variant" | "id" | "jsx" | "promise"> & {
557
- id?: string | number;
558
- }) => string | number;
559
- warning: (message: string, data?: Omit<sonner_native.ToastProps, "title" | "type" | "variant" | "id" | "jsx" | "promise"> & {
560
- id?: string | number;
561
- }) => string | number;
562
- custom: (jsx: React.ReactElement, data?: Omit<sonner_native.ToastProps, "title" | "type" | "variant" | "id" | "jsx" | "promise"> & {
563
- id?: string | number;
564
- }) => string | number;
565
- promise: <T>(promise: Promise<T>, options: Omit<{
566
- promise: Promise<unknown>;
567
- success: (result: any) => string;
568
- error: ((error: unknown) => string) | string;
569
- loading: string;
570
- styles?: {
571
- loading?: sonner_native.ToastStyles;
572
- success?: sonner_native.ToastStyles;
573
- error?: sonner_native.ToastStyles;
574
- };
575
- }, "promise">) => string | number;
576
- loading: (message: string, data?: Omit<sonner_native.ToastProps, "title" | "type" | "variant" | "id" | "jsx" | "promise"> & {
577
- id?: string | number;
578
- }) => string | number;
579
- dismiss: (id?: string | number) => string | number | undefined;
580
- wiggle: (id: string | number) => void;
581
- };
582
- dismiss: (id?: string | number) => string | number | undefined;
583
- };
584
- declare function ToastProvider({ children }: {
585
- children: React.ReactNode;
586
- }): React.JSX.Element;
587
-
588
- interface CurrencyInputProps {
589
- value?: string;
590
- onChangeText?: (formatted: string) => void;
591
- /** Called with the parsed numeric value (no separators, no prefix). */
592
- onChangeValue?: (raw: number) => void;
593
- /** Symbol prepended to the formatted value. Defaults to `'$'`. */
594
- prefix?: string;
595
- /** Character used to separate groups of three digits. Defaults to `'.'`. */
596
- thousandsSeparator?: '.' | ',';
597
- /** Font size variant. `'large'` renders at 36pt, `'default'` at 17pt. */
598
- size?: 'default' | 'large';
599
- label?: string;
600
- /** Red helper text; also changes input border to destructive color. */
601
- error?: string;
602
- hint?: string;
603
- placeholder?: string;
604
- editable?: boolean;
605
- containerStyle?: ViewStyle;
606
- style?: TextStyle;
607
- }
608
- declare function CurrencyInput({ value, onChangeText, onChangeValue, prefix, thousandsSeparator, size, label, error, hint, placeholder, editable, containerStyle, style, }: CurrencyInputProps): React.JSX.Element;
609
-
610
- type CurrencyDisplayVariant = 'hero' | 'large' | 'medium' | 'small';
611
- interface CurrencyDisplayProps {
612
- value: number | string;
613
- /** Symbol prepended to the formatted value. Defaults to `'$'`. */
614
- prefix?: string;
615
- /** When true, shows two decimal places separated by a comma (e.g. `$25.000,00`). Defaults to `false`. */
616
- showDecimals?: boolean;
617
- /** Override the color of the formatted text. Defaults to the `foreground` theme token. */
618
- textColor?: string;
619
- /** Predefined size variant. Overrides the default 56px size. */
620
- variant?: CurrencyDisplayVariant;
621
- /** Enable adjustsFontSizeToFit so long values shrink to fit in one line. */
622
- autoScale?: boolean;
623
- /** Maximum font size when autoScale is true (defaults to variant size or 56px). */
624
- maxFontSize?: number;
625
- style?: ViewStyle;
626
- }
627
- declare function CurrencyDisplay({ value, prefix, showDecimals, textColor, variant, autoScale, maxFontSize, style }: CurrencyDisplayProps): React.JSX.Element;
628
-
629
- type ListItemVariant = 'plain' | 'card';
630
- interface ListItemProps {
631
- /**
632
- * Arbitrary content rendered on the left (avatar, icon, image, etc.).
633
- * Rendered inside a 44×44 aligned container.
634
- */
635
- leftRender?: React.ReactNode;
636
- /**
637
- * Arbitrary content rendered on the right (badge, price, chevron, switch, etc.).
638
- * Replaces the old `trailing` prop (still accepted as an alias).
639
- */
640
- rightRender?: React.ReactNode | string;
641
- /** @deprecated Use `rightRender` instead. */
642
- trailing?: React.ReactNode | string;
643
- /** @deprecated Use `leftRender` instead. */
644
- icon?: React.ReactNode;
645
- /**
646
- * Icon name from `@expo/vector-icons` rendered in the left slot.
647
- * See https://icons.expo.fyi. Takes precedence over `leftRender`.
648
- */
649
- leftIcon?: string;
650
- /**
651
- * Icon name from `@expo/vector-icons` rendered in the right slot.
652
- * See https://icons.expo.fyi. Takes precedence over `rightRender`.
653
- */
654
- rightIcon?: string;
655
- /** Override the resolved left icon color. Defaults to `foreground`. */
656
- leftIconColor?: string;
657
- /** Override the resolved right icon color. Defaults to `mutedForeground`. */
658
- rightIconColor?: string;
659
- title: string;
660
- /** Secondary line below the title. */
661
- subtitle?: string;
662
- /** Tertiary / caption line below the subtitle. */
663
- caption?: string;
664
- /**
665
- * - `plain` (default): no background, no border — designed to sit inside a parent surface (Card, list wrapper, etc.)
666
- * - `card`: standalone surface with background, border and shadow.
667
- */
668
- variant?: ListItemVariant;
669
- /** Show a right-pointing chevron on the far right. Ignored when `rightRender` / `trailing` is set. */
670
- showChevron?: boolean;
671
- /** Visual separator line at the bottom of the item. Useful when rendering multiple plain items in a list. */
672
- showSeparator?: boolean;
673
- onPress?: () => void;
674
- disabled?: boolean;
675
- /** Style applied to the outer container. */
676
- style?: ViewStyle;
677
- /** Style applied to the title Text. */
678
- titleStyle?: TextStyle;
679
- /** Style applied to the subtitle Text. */
680
- subtitleStyle?: TextStyle;
681
- /** Style applied to the caption Text. */
682
- captionStyle?: TextStyle;
683
- /** Accessibility label override. Defaults to the title. */
684
- accessibilityLabel?: string;
685
- }
686
- declare function ListItem({ leftRender, rightRender, trailing, icon, leftIcon, rightIcon, leftIconColor, rightIconColor, title, subtitle, caption, variant, showChevron, showSeparator, onPress, disabled, style, titleStyle, subtitleStyle, captionStyle, accessibilityLabel, }: ListItemProps): React.JSX.Element;
687
-
688
- type MenuItemVariant = 'plain' | 'card';
689
- interface MenuItemProps {
690
- label: string;
691
- /** Secondary text rendered below the label. */
692
- subtitle?: string;
693
- /**
694
- * Icon name from `@expo/vector-icons` rendered on the left.
695
- * See https://icons.expo.fyi.
696
- */
697
- iconName?: string;
698
- /** Custom icon node rendered on the left. */
699
- icon?: React.ReactNode;
700
- /** Override icon color. Defaults to `foreground`. */
701
- iconColor?: string;
702
- /**
703
- * Custom content rendered on the right.
704
- * When provided, replaces the default chevron.
705
- * Use for checkboxes, switches, badges, or other controls.
706
- */
707
- rightRender?: React.ReactNode;
708
- /**
709
- * Show chevron on the right. Defaults to `true`.
710
- * Ignored when `rightRender` is provided.
711
- */
712
- showChevron?: boolean;
713
- onPress: () => void;
714
- disabled?: boolean;
715
- /**
716
- * - `plain` (default): no background — sits inside a parent surface.
717
- * - `card`: standalone surface with background + border.
718
- */
719
- variant?: MenuItemVariant;
720
- /** Visual separator line at the bottom. */
721
- showSeparator?: boolean;
722
- /** Style applied to the outer container. */
723
- style?: ViewStyle;
724
- /** Style applied to the label Text. */
725
- labelStyle?: TextStyle;
726
- /** Accessibility label override. Defaults to label. */
727
- accessibilityLabel?: string;
728
- }
729
- declare function MenuItem({ label, subtitle, iconName, icon, iconColor, rightRender, showChevron, onPress, disabled, variant, showSeparator, style, labelStyle, accessibilityLabel, }: MenuItemProps): React.JSX.Element;
730
-
731
- interface ChipProps {
732
- label: string;
733
- selected?: boolean;
734
- onPress?: () => void;
735
- /** JSX icon rendered before the label. */
736
- icon?: React.ReactNode;
737
- /** Icon name from @expo/vector-icons resolved automatically. */
738
- iconName?: string;
739
- style?: ViewStyle;
740
- accessibilityLabel?: string;
741
- }
742
- interface ChipOption {
743
- label: string;
744
- value: string | number;
745
- /** Icon name resolved via renderIcon (Feather, AntDesign, etc.). */
746
- iconName?: string;
747
- /** Icon tint color override. */
748
- iconColor?: string;
749
- disabled?: boolean;
750
- }
751
- interface ChipGroupProps {
752
- options: ChipOption[];
753
- value?: string | number | (string | number)[];
754
- onValueChange?: (value: string | number | (string | number)[]) => void;
755
- /** When true, allows selecting multiple chips. `value` and `onValueChange` will use arrays. */
756
- multiSelect?: boolean;
757
- style?: ViewStyle;
758
- }
759
- declare function Chip({ label, selected, onPress, icon, iconName, style, accessibilityLabel }: ChipProps): React.JSX.Element;
760
- declare function ChipGroup({ options, value, onValueChange, multiSelect, style }: ChipGroupProps): React.JSX.Element;
761
-
762
- interface ConfirmDialogProps {
763
- visible: boolean;
764
- title: string;
765
- description?: string;
766
- confirmLabel?: string;
767
- cancelLabel?: string;
768
- confirmVariant?: 'primary' | 'destructive';
769
- onConfirm: () => void;
770
- onCancel: () => void;
771
- }
772
- declare function ConfirmDialog({ visible, title, description, confirmLabel, cancelLabel, confirmVariant, onConfirm, onCancel, }: ConfirmDialogProps): React.JSX.Element;
773
-
774
- interface LabelValueProps {
775
- label: string;
776
- value: string | React.ReactNode;
777
- /** Icon name from @expo/vector-icons rendered left of label. */
778
- iconName?: string;
779
- /** Override icon color. Defaults to foregroundMuted. */
780
- iconColor?: string;
781
- style?: ViewStyle;
782
- }
783
- declare function LabelValue({ label, value, iconName, iconColor, style }: LabelValueProps): React.JSX.Element;
784
-
785
- interface MonthPickerValue {
786
- /** Month number 1–12 */
787
- month: number;
788
- year: number;
789
- }
790
- interface MonthPickerProps {
791
- value: MonthPickerValue;
792
- onChange: (value: MonthPickerValue) => void;
793
- /** BCP 47 locale tag. Built-in: 'en' | 'es' | 'pt' | 'fr'. For other locales supply formatLabel. */
794
- locale?: string;
795
- /** Custom label formatter. Takes precedence over locale. */
796
- formatLabel?: (value: MonthPickerValue) => string;
797
- style?: ViewStyle;
798
- }
799
- declare function MonthPicker({ value, onChange, locale, formatLabel, style }: MonthPickerProps): React.JSX.Element;
800
-
801
- type MediaCardAspectRatio = '1:1' | '4:3' | '16:9' | '4:5' | '3:2';
802
- interface MediaCardProps {
803
- /** Image source — URI string or require(). */
804
- imageSource?: ImageSourcePropType;
805
- /** Image aspect ratio. Defaults to `'4:3'`. */
806
- aspectRatio?: MediaCardAspectRatio;
807
- /** Badge content rendered top-left over the image (e.g. a Badge component or Text). */
808
- badge?: React.ReactNode;
809
- /** Icon rendered in a circle button top-right over the image. Defaults to `'heart'`. */
810
- actionIcon?: React.ReactNode;
811
- /** Icon name for the action button. Overrides `actionIcon`. */
812
- actionIconName?: string;
813
- /** Whether the action icon is in active/filled state. */
814
- actionActive?: boolean;
815
- /** Called when the top-right action icon is pressed. */
816
- onActionPress?: () => void;
817
- /** Primary text below the image. */
818
- title?: string;
819
- /** Secondary text below the title. */
820
- subtitle?: string;
821
- /** Tertiary / caption text below subtitle. */
822
- caption?: string;
823
- /** Called when the card body is pressed. */
824
- onPress?: () => void;
825
- style?: ViewStyle;
826
- /** Style for the image container. */
827
- imageStyle?: ViewStyle;
828
- /** Additional content rendered below caption. */
829
- footer?: React.ReactNode;
830
- /** Accessibility label override. Defaults to title (and subtitle if present). */
831
- accessibilityLabel?: string;
832
- }
833
- declare function MediaCard({ imageSource, aspectRatio, badge, actionIcon, actionIconName, actionActive, onActionPress, title, subtitle, caption, onPress, style, imageStyle, footer, accessibilityLabel, }: MediaCardProps): React.JSX.Element;
834
-
835
- interface CategoryItem {
836
- label: string;
837
- value: string;
838
- /** Icon rendered to the left of the label. ReactNode or icon name string. */
839
- icon?: React.ReactNode | string;
840
- /** Badge count over the icon/label. */
841
- badge?: number;
842
- }
843
- interface CategoryStripProps {
844
- categories: CategoryItem[];
845
- value?: string | string[];
846
- /** Called with new value(s) on selection change. */
847
- onValueChange?: (value: string | string[]) => void;
848
- /** Allow multiple simultaneous selections. Defaults to false. */
849
- multiSelect?: boolean;
850
- style?: ViewStyle;
851
- /** Style applied to each pill item. */
852
- itemStyle?: ViewStyle;
853
- accessibilityLabel?: string;
854
- }
855
- declare function CategoryStrip({ categories, value, onValueChange, multiSelect, style, itemStyle, accessibilityLabel, }: CategoryStripProps): React.JSX.Element;
856
-
857
- interface PressableProps extends Omit<TouchableOpacityProps, 'activeOpacity'> {
858
- /** Children content to render inside the pressable. */
859
- children: React.ReactNode;
860
- /** Called when pressed. */
861
- onPress?: () => void;
862
- /** Scale value on press. Defaults to `0.98` (MediaCard-style). */
863
- pressScale?: number;
864
- /**
865
- * @deprecated Use Reanimated spring config via `pressOutSpring` instead. Ignored.
866
- * Kept for backwards compatibility with v6.x consumers.
867
- */
868
- bounciness?: number;
869
- /** Enable haptic feedback on press. Defaults to `true`. */
870
- haptics?: boolean;
871
- /** Additional style for the Animated wrapper. */
872
- style?: ViewStyle;
873
- /** Disable interaction. */
874
- disabled?: boolean;
875
- /** Hover scale (web only). Defaults to `1.02`. Set to `1` to disable. */
876
- hoverScale?: number;
877
- }
878
- /**
879
- * Generic pressable with a calibrated spring bounce — Apple HIG / Airbnb feel.
880
- * All animation runs on the UI thread via Reanimated v4 worklets.
881
- *
882
- * Use this for any custom pressable surface that needs consistent press feel
883
- * (cards, list rows, image tiles, etc).
884
- */
885
- declare function Pressable({ children, onPress, pressScale, haptics, style, disabled, hoverScale, ...touchableProps }: PressableProps): React.JSX.Element;
886
-
887
- type DetailRowSeparator = 'dotted' | 'solid' | 'dashed' | 'none';
888
- type DetailRowLabelWeight = 'normal' | 'medium' | 'semibold' | 'bold';
889
- interface DetailRowProps {
890
- label: React.ReactNode;
891
- value: string | React.ReactNode;
892
- /** Dotted/dashed/solid line between label and value. Defaults to 'dotted'. */
893
- separator?: DetailRowSeparator;
894
- labelWeight?: DetailRowLabelWeight;
895
- /** Semantic color key or hex string for value text. Only applies when value is a string. */
896
- valueColor?: string;
897
- /** Node rendered left of the label (e.g. Avatar, Icon). */
898
- leftIcon?: React.ReactNode;
899
- /** Icon name from @expo/vector-icons rendered left of label. Takes precedence over leftIcon. */
900
- leftIconName?: string;
901
- /** Override left icon color. Defaults to foregroundMuted. */
902
- leftIconColor?: string;
903
- /** Icon name from @expo/vector-icons rendered right of value. */
904
- rightIconName?: string;
905
- /** Override right icon color. Defaults to foregroundMuted. */
906
- rightIconColor?: string;
907
- style?: ViewStyle;
908
- labelStyle?: TextStyle;
909
- /** Only applies when value is a string. */
910
- valueStyle?: TextStyle;
911
- }
912
- declare function DetailRow({ label, value, separator, labelWeight, valueColor, leftIcon, leftIconName, leftIconColor, rightIconName, rightIconColor, style, labelStyle, valueStyle, }: DetailRowProps): React.JSX.Element;
913
-
914
117
  type IconFamily = 'Feather' | 'AntDesign' | 'Entypo' | 'FontAwesome5' | 'MaterialIcons' | 'Ionicons';
915
118
  interface IconProps {
916
119
  /** Icon name from any supported @expo/vector-icons family. See https://icons.expo.fyi */
@@ -920,6 +123,17 @@ interface IconProps {
920
123
  /** Override the resolved family when the same name exists in multiple families. */
921
124
  family?: IconFamily;
922
125
  }
126
+ /**
127
+ * Restrict which icon families participate in automatic name resolution.
128
+ * Narrowing to the families you actually use shrinks the resolution cache and
129
+ * speeds up the first `renderIcon` call (no scanning thousands of unused glyphs).
130
+ *
131
+ * Note: all six families are still statically imported by this module — Metro
132
+ * bundles them regardless. This controls *resolution scope*, not bundle size.
133
+ *
134
+ * @example configureIconFamilies(['Feather', 'MaterialIcons'])
135
+ */
136
+ declare function configureIconFamilies(families: IconFamily[]): void;
923
137
  declare function Icon({ name, size, color, family }: IconProps): React.ReactElement | null;
924
138
  declare function renderIcon(name: string, size: number, color: string): React.ReactElement | null;
925
139
 
@@ -1010,113 +224,120 @@ declare const BREAKPOINTS: {
1010
224
  };
1011
225
  declare const TYPOGRAPHY: {
1012
226
  readonly 'display-hero': {
1013
- readonly fontFamily: "Poppins-Bold";
227
+ readonly fontFamily: "Sohne-Bold";
1014
228
  readonly fontSize: 64;
1015
229
  readonly fontWeight: "700";
1016
230
  readonly lineHeight: 70;
1017
231
  readonly letterSpacing: -1;
1018
232
  };
1019
233
  readonly 'display-xl': {
1020
- readonly fontFamily: "Poppins-Bold";
234
+ readonly fontFamily: "Sohne-Bold";
1021
235
  readonly fontSize: 28;
1022
236
  readonly fontWeight: "700";
1023
237
  readonly lineHeight: 40;
1024
238
  readonly letterSpacing: 0;
1025
239
  };
1026
240
  readonly 'display-lg': {
1027
- readonly fontFamily: "Poppins-Medium";
1028
- readonly fontSize: 22;
1029
- readonly fontWeight: "500";
1030
- readonly lineHeight: 26;
1031
- readonly letterSpacing: -0.44;
241
+ readonly fontFamily: "Sohne-SemiBold";
242
+ readonly fontSize: 24;
243
+ readonly fontWeight: "600";
244
+ readonly lineHeight: 32;
245
+ readonly letterSpacing: -0.3;
1032
246
  };
1033
247
  readonly 'display-md': {
1034
- readonly fontFamily: "Poppins-Bold";
1035
- readonly fontSize: 21;
1036
- readonly fontWeight: "700";
1037
- readonly lineHeight: 30;
248
+ readonly fontFamily: "Sohne-SemiBold";
249
+ readonly fontSize: 20;
250
+ readonly fontWeight: "600";
251
+ readonly lineHeight: 28;
1038
252
  readonly letterSpacing: 0;
1039
253
  };
1040
254
  readonly 'display-sm': {
1041
- readonly fontFamily: "Poppins-SemiBold";
1042
- readonly fontSize: 20;
255
+ readonly fontFamily: "Sohne-SemiBold";
256
+ readonly fontSize: 18;
1043
257
  readonly fontWeight: "600";
1044
258
  readonly lineHeight: 24;
1045
259
  readonly letterSpacing: -0.18;
1046
260
  };
1047
261
  readonly 'title-md': {
1048
- readonly fontFamily: "Poppins-SemiBold";
1049
- readonly fontSize: 16;
262
+ readonly fontFamily: "Sohne-SemiBold";
263
+ readonly fontSize: 17;
1050
264
  readonly fontWeight: "600";
1051
- readonly lineHeight: 20;
265
+ readonly lineHeight: 22;
1052
266
  readonly letterSpacing: 0;
1053
267
  };
1054
268
  readonly 'title-sm': {
1055
- readonly fontFamily: "Poppins-Medium";
1056
- readonly fontSize: 16;
269
+ readonly fontFamily: "Sohne-Medium";
270
+ readonly fontSize: 15;
1057
271
  readonly fontWeight: "500";
1058
272
  readonly lineHeight: 20;
1059
273
  readonly letterSpacing: 0;
1060
274
  };
1061
275
  readonly 'body-md': {
1062
- readonly fontFamily: "Poppins-Regular";
276
+ readonly fontFamily: "Sohne-Regular";
1063
277
  readonly fontSize: 16;
1064
278
  readonly fontWeight: "400";
1065
279
  readonly lineHeight: 24;
1066
280
  readonly letterSpacing: 0;
1067
281
  };
1068
282
  readonly 'body-sm': {
1069
- readonly fontFamily: "Poppins-Regular";
283
+ readonly fontFamily: "Sohne-Regular";
1070
284
  readonly fontSize: 14;
1071
285
  readonly fontWeight: "400";
1072
286
  readonly lineHeight: 20;
1073
287
  readonly letterSpacing: 0;
1074
288
  };
1075
289
  readonly caption: {
1076
- readonly fontFamily: "Poppins-Medium";
290
+ readonly fontFamily: "Sohne-Medium";
1077
291
  readonly fontSize: 14;
1078
292
  readonly fontWeight: "500";
1079
293
  readonly lineHeight: 18;
1080
294
  readonly letterSpacing: 0;
1081
295
  };
1082
296
  readonly 'caption-sm': {
1083
- readonly fontFamily: "Poppins-Regular";
297
+ readonly fontFamily: "Sohne-Regular";
1084
298
  readonly fontSize: 13;
1085
299
  readonly fontWeight: "400";
1086
300
  readonly lineHeight: 16;
1087
301
  readonly letterSpacing: 0;
1088
302
  };
1089
303
  readonly 'badge-text': {
1090
- readonly fontFamily: "Poppins-SemiBold";
304
+ readonly fontFamily: "Sohne-SemiBold";
1091
305
  readonly fontSize: 11;
1092
306
  readonly fontWeight: "600";
1093
- readonly lineHeight: 13;
307
+ readonly lineHeight: 14;
308
+ readonly letterSpacing: 0;
309
+ };
310
+ readonly 'badge-text-md': {
311
+ readonly fontFamily: "Sohne-SemiBold";
312
+ readonly fontSize: 13;
313
+ readonly fontWeight: "600";
314
+ readonly lineHeight: 16;
1094
315
  readonly letterSpacing: 0;
1095
316
  };
1096
317
  readonly 'micro-label': {
1097
- readonly fontFamily: "Poppins-Bold";
318
+ readonly fontFamily: "Sohne-Bold";
1098
319
  readonly fontSize: 12;
1099
320
  readonly fontWeight: "700";
1100
321
  readonly lineHeight: 16;
1101
322
  readonly letterSpacing: 0;
1102
323
  };
1103
324
  readonly 'uppercase-tag': {
1104
- readonly fontFamily: "Poppins-Bold";
1105
- readonly fontSize: 10;
325
+ readonly fontFamily: "Sohne-Bold";
326
+ readonly fontSize: 11;
1106
327
  readonly fontWeight: "700";
1107
- readonly lineHeight: 13;
1108
- readonly letterSpacing: 0.8;
328
+ readonly lineHeight: 14;
329
+ readonly letterSpacing: 0.6;
1109
330
  readonly textTransform: "uppercase";
1110
331
  };
1111
332
  readonly 'button-lg': {
1112
- readonly fontFamily: "Poppins-Medium";
333
+ readonly fontFamily: "Sohne-Medium";
1113
334
  readonly fontSize: 16;
1114
335
  readonly fontWeight: "500";
1115
336
  readonly lineHeight: 22;
1116
337
  readonly letterSpacing: 0;
1117
338
  };
1118
339
  readonly 'button-sm': {
1119
- readonly fontFamily: "Poppins-Medium";
340
+ readonly fontFamily: "Sohne-Medium";
1120
341
  readonly fontSize: 14;
1121
342
  readonly fontWeight: "500";
1122
343
  readonly lineHeight: 18;
@@ -1132,4 +353,4 @@ type RadiusKey = keyof Radius;
1132
353
  type Typography = typeof TYPOGRAPHY;
1133
354
  type TypographyKey = keyof Typography;
1134
355
 
1135
- export { Accordion, type AccordionItem, type AccordionProps, AlertBanner, type AlertBannerProps, type AlertBannerVariant, Avatar, type AvatarProps, type AvatarSize, BREAKPOINTS, Badge, type BadgeProps, type BadgeVariant, Button, ButtonGroup, type ButtonGroupProps, type ButtonProps, type ButtonSize, type ButtonVariant, Card, CardContent, type CardContentProps, CardDescription, type CardDescriptionProps, CardFooter, type CardFooterProps, CardHeader, type CardHeaderProps, type CardProps, CardTitle, type CardTitleProps, type CategoryItem, CategoryStrip, type CategoryStripProps, Checkbox, type CheckboxProps, Chip, ChipGroup, type ChipGroupProps, type ChipOption, type ChipProps, type ColorScheme, ConfirmDialog, type ConfirmDialogProps, CurrencyDisplay, type CurrencyDisplayProps, type CurrencyDisplayVariant, CurrencyInput, CurrencyInput as CurrencyInputLarge, type CurrencyInputProps, DetailRow, type DetailRowLabelWeight, type DetailRowProps, type DetailRowSeparator, EmptyState, type EmptyStateProps, ICON_SIZES, Icon, IconButton, type IconButtonProps, type IconButtonSize, type IconButtonVariant, type IconFamily, type IconProps, type IconSize, type IconSizeKey, Input, type InputProps, LabelValue, type LabelValueProps, ListItem, type ListItemProps, MediaCard, type MediaCardAspectRatio, type MediaCardProps, MenuItem, type MenuItemProps, type MenuItemVariant, MonthPicker, type MonthPickerProps, type MonthPickerValue, Pressable, type PressableProps, Progress, type ProgressProps, RADIUS, RadioGroup, type RadioGroupProps, type RadioOption, type Radius, type RadiusKey, type ResolvedColors, SHADOWS, SPACING, Select, type SelectOption, type SelectProps, Separator, type SeparatorProps, Sheet, type SheetProps, Skeleton, type SkeletonProps, Slider, type SliderProps, type Spacing, type SpacingKey, Spinner, type SpinnerProps, type SpinnerSize, Switch, type SwitchProps, TYPOGRAPHY, type TabItem, Tabs, TabsContent, type TabsContentProps, type TabsProps, Text, type TextProps, type TextVariant, Textarea, type TextareaProps, type Theme, type ThemeColors, ThemeProvider, type ThemeProviderProps, ToastProvider, Toggle, type ToggleProps, type ToggleSize, type ToggleVariant, type Typography, type TypographyKey, defaultDark, defaultLight, deriveColors, getResponsiveFontSize, renderIcon, useTheme, useToast };
356
+ export { BREAKPOINTS, type ColorScheme, ICON_SIZES, Icon, type IconFamily, type IconProps, type IconSize, type IconSizeKey, RADIUS, type Radius, type RadiusKey, type ResolvedColors, SHADOWS, SPACING, type Spacing, type SpacingKey, TYPOGRAPHY, type Theme, type ThemeColors, ThemeProvider, type ThemeProviderProps, type Typography, type TypographyKey, configureIconFamilies, defaultDark, defaultLight, deriveColors, getResponsiveFontSize, renderIcon, useTheme };