@retray-dev/ui-kit 6.2.0 → 9.0.0

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 (389) hide show
  1. package/COMPONENTS.md +997 -20
  2. package/EXAMPLES.md +250 -2
  3. package/README.md +21 -14
  4. package/dist/Accordion.d.mts +28 -0
  5. package/dist/Accordion.d.ts +28 -0
  6. package/dist/Accordion.js +392 -0
  7. package/dist/Accordion.mjs +7 -0
  8. package/dist/AlertBanner.d.mts +16 -0
  9. package/dist/AlertBanner.d.ts +16 -0
  10. package/dist/AlertBanner.js +250 -0
  11. package/dist/AlertBanner.mjs +6 -0
  12. package/dist/AppHeader.d.mts +40 -0
  13. package/dist/AppHeader.d.ts +40 -0
  14. package/dist/AppHeader.js +515 -0
  15. package/dist/AppHeader.mjs +10 -0
  16. package/dist/Avatar.d.mts +20 -0
  17. package/dist/Avatar.d.ts +20 -0
  18. package/dist/Avatar.js +244 -0
  19. package/dist/Avatar.mjs +4 -0
  20. package/dist/Badge.d.mts +26 -0
  21. package/dist/Badge.d.ts +26 -0
  22. package/dist/Badge.js +257 -0
  23. package/dist/Badge.mjs +5 -0
  24. package/dist/Button.d.mts +30 -0
  25. package/dist/Button.d.ts +30 -0
  26. package/dist/Button.js +432 -0
  27. package/dist/Button.mjs +9 -0
  28. package/dist/ButtonGroup.d.mts +26 -0
  29. package/dist/ButtonGroup.d.ts +26 -0
  30. package/dist/ButtonGroup.js +52 -0
  31. package/dist/ButtonGroup.mjs +3 -0
  32. package/dist/Card.d.mts +39 -0
  33. package/dist/Card.d.ts +39 -0
  34. package/dist/Card.js +349 -0
  35. package/dist/Card.mjs +8 -0
  36. package/dist/CategoryStrip.d.mts +26 -0
  37. package/dist/CategoryStrip.d.ts +26 -0
  38. package/dist/CategoryStrip.js +453 -0
  39. package/dist/CategoryStrip.mjs +9 -0
  40. package/dist/Checkbox.d.mts +14 -0
  41. package/dist/Checkbox.d.ts +14 -0
  42. package/dist/Checkbox.js +336 -0
  43. package/dist/Checkbox.mjs +7 -0
  44. package/dist/Chip.d.mts +31 -0
  45. package/dist/Chip.d.ts +31 -0
  46. package/dist/Chip.js +403 -0
  47. package/dist/Chip.mjs +8 -0
  48. package/dist/ConfirmDialog.d.mts +15 -0
  49. package/dist/ConfirmDialog.d.ts +15 -0
  50. package/dist/ConfirmDialog.js +560 -0
  51. package/dist/ConfirmDialog.mjs +10 -0
  52. package/dist/CurrencyDisplay.d.mts +24 -0
  53. package/dist/CurrencyDisplay.d.ts +24 -0
  54. package/dist/CurrencyDisplay.js +189 -0
  55. package/dist/CurrencyDisplay.mjs +4 -0
  56. package/dist/CurrencyInput.d.mts +26 -0
  57. package/dist/CurrencyInput.d.ts +26 -0
  58. package/dist/CurrencyInput.js +408 -0
  59. package/dist/CurrencyInput.mjs +8 -0
  60. package/dist/DetailRow.d.mts +32 -0
  61. package/dist/DetailRow.d.ts +32 -0
  62. package/dist/DetailRow.js +275 -0
  63. package/dist/DetailRow.mjs +5 -0
  64. package/dist/EmptyState.d.mts +27 -0
  65. package/dist/EmptyState.d.ts +27 -0
  66. package/dist/EmptyState.js +523 -0
  67. package/dist/EmptyState.mjs +10 -0
  68. package/dist/ErrorBoundary.d.mts +42 -0
  69. package/dist/ErrorBoundary.d.ts +42 -0
  70. package/dist/ErrorBoundary.js +351 -0
  71. package/dist/ErrorBoundary.mjs +7 -0
  72. package/dist/Form.d.mts +52 -0
  73. package/dist/Form.d.ts +52 -0
  74. package/dist/Form.js +204 -0
  75. package/dist/Form.mjs +4 -0
  76. package/dist/HolographicCard.d.mts +55 -0
  77. package/dist/HolographicCard.d.ts +55 -0
  78. package/dist/HolographicCard.js +316 -0
  79. package/dist/HolographicCard.mjs +191 -0
  80. package/dist/IconButton.d.mts +27 -0
  81. package/dist/IconButton.d.ts +27 -0
  82. package/dist/IconButton.js +400 -0
  83. package/dist/IconButton.mjs +8 -0
  84. package/dist/ImageViewer.d.mts +23 -0
  85. package/dist/ImageViewer.d.ts +23 -0
  86. package/dist/ImageViewer.js +582 -0
  87. package/dist/ImageViewer.mjs +8 -0
  88. package/dist/Input.d.mts +23 -0
  89. package/dist/Input.d.ts +23 -0
  90. package/dist/Input.js +351 -0
  91. package/dist/Input.mjs +7 -0
  92. package/dist/LabelValue.d.mts +16 -0
  93. package/dist/LabelValue.d.ts +16 -0
  94. package/dist/LabelValue.js +225 -0
  95. package/dist/LabelValue.mjs +5 -0
  96. package/dist/ListGroup.d.mts +34 -0
  97. package/dist/ListGroup.d.ts +34 -0
  98. package/dist/ListGroup.js +217 -0
  99. package/dist/ListGroup.mjs +5 -0
  100. package/dist/ListItem.d.mts +64 -0
  101. package/dist/ListItem.d.ts +64 -0
  102. package/dist/ListItem.js +444 -0
  103. package/dist/ListItem.mjs +9 -0
  104. package/dist/MediaCard.d.mts +39 -0
  105. package/dist/MediaCard.d.ts +39 -0
  106. package/dist/MediaCard.js +475 -0
  107. package/dist/MediaCard.mjs +9 -0
  108. package/dist/MenuGroup.d.mts +34 -0
  109. package/dist/MenuGroup.d.ts +34 -0
  110. package/dist/MenuGroup.js +217 -0
  111. package/dist/MenuGroup.mjs +5 -0
  112. package/dist/MenuItem.d.mts +48 -0
  113. package/dist/MenuItem.d.ts +48 -0
  114. package/dist/MenuItem.js +415 -0
  115. package/dist/MenuItem.mjs +9 -0
  116. package/dist/MonthPicker.d.mts +28 -0
  117. package/dist/MonthPicker.d.ts +28 -0
  118. package/dist/MonthPicker.js +297 -0
  119. package/dist/MonthPicker.mjs +5 -0
  120. package/dist/PagerDots.d.mts +35 -0
  121. package/dist/PagerDots.d.ts +35 -0
  122. package/dist/PagerDots.js +392 -0
  123. package/dist/PagerDots.mjs +7 -0
  124. package/dist/Pressable.d.mts +34 -0
  125. package/dist/Pressable.d.ts +34 -0
  126. package/dist/Pressable.js +143 -0
  127. package/dist/Pressable.mjs +5 -0
  128. package/dist/PricingCard.d.mts +50 -0
  129. package/dist/PricingCard.d.ts +50 -0
  130. package/dist/PricingCard.js +636 -0
  131. package/dist/PricingCard.mjs +11 -0
  132. package/dist/Progress.d.mts +14 -0
  133. package/dist/Progress.d.ts +14 -0
  134. package/dist/Progress.js +191 -0
  135. package/dist/Progress.mjs +5 -0
  136. package/dist/RadioGroup.d.mts +19 -0
  137. package/dist/RadioGroup.d.ts +19 -0
  138. package/dist/RadioGroup.js +392 -0
  139. package/dist/RadioGroup.mjs +7 -0
  140. package/dist/RetrayProvider.d.mts +2 -0
  141. package/dist/RetrayProvider.d.ts +2 -0
  142. package/dist/RetrayProvider.js +214 -0
  143. package/dist/RetrayProvider.mjs +5 -0
  144. package/dist/Select.d.mts +22 -0
  145. package/dist/Select.d.ts +22 -0
  146. package/dist/Select.js +488 -0
  147. package/dist/Select.mjs +7 -0
  148. package/dist/SelectableGrid.d.mts +44 -0
  149. package/dist/SelectableGrid.d.ts +44 -0
  150. package/dist/SelectableGrid.js +448 -0
  151. package/dist/SelectableGrid.mjs +9 -0
  152. package/dist/Separator.d.mts +10 -0
  153. package/dist/Separator.d.ts +10 -0
  154. package/dist/Separator.js +156 -0
  155. package/dist/Separator.mjs +3 -0
  156. package/dist/Sheet.d.mts +93 -0
  157. package/dist/Sheet.d.ts +93 -0
  158. package/dist/Sheet.js +450 -0
  159. package/dist/Sheet.mjs +6 -0
  160. package/dist/Skeleton.d.mts +67 -0
  161. package/dist/Skeleton.d.ts +67 -0
  162. package/dist/Skeleton.js +266 -0
  163. package/dist/Skeleton.mjs +6 -0
  164. package/dist/Slider.d.mts +20 -0
  165. package/dist/Slider.d.ts +20 -0
  166. package/dist/Slider.js +279 -0
  167. package/dist/Slider.mjs +5 -0
  168. package/dist/Spinner.d.mts +12 -0
  169. package/dist/Spinner.d.ts +12 -0
  170. package/dist/Spinner.js +193 -0
  171. package/dist/Spinner.mjs +4 -0
  172. package/dist/Switch.d.mts +13 -0
  173. package/dist/Switch.d.ts +13 -0
  174. package/dist/Switch.js +311 -0
  175. package/dist/Switch.mjs +6 -0
  176. package/dist/TabBar.d.mts +42 -0
  177. package/dist/TabBar.d.ts +42 -0
  178. package/dist/TabBar.js +361 -0
  179. package/dist/TabBar.mjs +6 -0
  180. package/dist/Tabs.d.mts +27 -0
  181. package/dist/Tabs.d.ts +27 -0
  182. package/dist/Tabs.js +419 -0
  183. package/dist/Tabs.mjs +7 -0
  184. package/dist/Text.d.mts +12 -0
  185. package/dist/Text.d.ts +12 -0
  186. package/dist/Text.js +327 -0
  187. package/dist/Text.mjs +5 -0
  188. package/dist/Textarea.d.mts +16 -0
  189. package/dist/Textarea.d.ts +16 -0
  190. package/dist/Textarea.js +333 -0
  191. package/dist/Textarea.mjs +7 -0
  192. package/dist/Toast.d.mts +47 -0
  193. package/dist/Toast.d.ts +47 -0
  194. package/dist/Toast.js +185 -0
  195. package/dist/Toast.mjs +4 -0
  196. package/dist/Toggle.d.mts +36 -0
  197. package/dist/Toggle.d.ts +36 -0
  198. package/dist/Toggle.js +412 -0
  199. package/dist/Toggle.mjs +8 -0
  200. package/dist/VirtualList.d.mts +19 -0
  201. package/dist/VirtualList.d.ts +19 -0
  202. package/dist/VirtualList.js +38 -0
  203. package/dist/VirtualList.mjs +2 -0
  204. package/dist/chunk-26BCI223.mjs +14 -0
  205. package/dist/chunk-2CE3TQVY.mjs +11 -0
  206. package/dist/chunk-2TFTAWVJ.mjs +131 -0
  207. package/dist/chunk-2UYENBLV.mjs +49 -0
  208. package/dist/chunk-3BBOZ3OQ.mjs +41 -0
  209. package/dist/chunk-3DKJ2GIC.mjs +30 -0
  210. package/dist/chunk-3U4SSNWP.mjs +120 -0
  211. package/dist/chunk-4I7D47FH.mjs +139 -0
  212. package/dist/chunk-4K625MVM.mjs +142 -0
  213. package/dist/chunk-6OAZJ577.mjs +98 -0
  214. package/dist/chunk-6Q64UFIA.mjs +71 -0
  215. package/dist/chunk-756RAKE4.mjs +145 -0
  216. package/dist/chunk-7QHVVCB3.mjs +115 -0
  217. package/dist/chunk-A3A6KNQN.mjs +245 -0
  218. package/dist/chunk-A4MDAP7G.mjs +42 -0
  219. package/dist/chunk-AJ7ZDNBT.mjs +120 -0
  220. package/dist/chunk-AV4EMIRH.mjs +94 -0
  221. package/dist/chunk-AZJF2BLK.mjs +115 -0
  222. package/dist/chunk-BNP626TY.mjs +159 -0
  223. package/dist/chunk-BRKYVJVV.mjs +60 -0
  224. package/dist/chunk-DVK4G2GT.mjs +59 -0
  225. package/dist/chunk-EH745HE5.mjs +127 -0
  226. package/dist/chunk-EJ7ZPXOH.mjs +163 -0
  227. package/dist/chunk-GD6KXMG5.mjs +106 -0
  228. package/dist/chunk-GQYFLP3D.mjs +187 -0
  229. package/dist/chunk-ID72TK46.mjs +111 -0
  230. package/dist/chunk-IRRY3CRZ.mjs +82 -0
  231. package/dist/chunk-JB67UOB5.mjs +92 -0
  232. package/dist/chunk-JMOZEC77.mjs +90 -0
  233. package/dist/chunk-JT7HKXRB.mjs +114 -0
  234. package/dist/chunk-KIHCWCWL.mjs +124 -0
  235. package/dist/chunk-LXJIIOYQ.mjs +104 -0
  236. package/dist/chunk-M6ZXVBTK.mjs +64 -0
  237. package/dist/chunk-MAC465BB.mjs +61 -0
  238. package/dist/chunk-MBMXYJJV.mjs +36 -0
  239. package/dist/chunk-MLF3EZFW.mjs +119 -0
  240. package/dist/chunk-MX6HRKMI.mjs +29 -0
  241. package/dist/chunk-NA7PARID.mjs +147 -0
  242. package/dist/chunk-NC5ZTR2Y.mjs +32 -0
  243. package/dist/chunk-O3HA6TYM.mjs +139 -0
  244. package/dist/chunk-OB4JUQ3O.mjs +51 -0
  245. package/dist/chunk-PFZTM6D5.mjs +238 -0
  246. package/dist/chunk-QKH5ZOD5.mjs +97 -0
  247. package/dist/chunk-QY3X2UYR.mjs +191 -0
  248. package/dist/chunk-SOA2Z4RB.mjs +82 -0
  249. package/dist/chunk-SOYNZDVY.mjs +151 -0
  250. package/dist/chunk-T7XZ7H7Y.mjs +57 -0
  251. package/dist/chunk-TERDKCLE.mjs +74 -0
  252. package/dist/chunk-UREA2GYY.mjs +113 -0
  253. package/dist/chunk-VGTDN7SW.mjs +164 -0
  254. package/dist/chunk-VQ57HWPL.mjs +144 -0
  255. package/dist/chunk-WBOOUHSS.mjs +62 -0
  256. package/dist/chunk-WJLKJMKR.mjs +78 -0
  257. package/dist/chunk-X4G6APW6.mjs +134 -0
  258. package/dist/chunk-Y6FXYEAI.mjs +8 -0
  259. package/dist/chunk-YFZ3ELX5.mjs +16 -0
  260. package/dist/chunk-YNROWHQJ.mjs +46 -0
  261. package/dist/chunk-Z4BVUWW6.mjs +196 -0
  262. package/dist/chunk-ZJKGQMYH.mjs +131 -0
  263. package/dist/index-wt-orHUi.d.mts +85 -0
  264. package/dist/index-wt-orHUi.d.ts +85 -0
  265. package/dist/index.d.mts +149 -920
  266. package/dist/index.d.ts +149 -920
  267. package/dist/index.js +2560 -970
  268. package/dist/index.mjs +60 -3895
  269. package/package.json +55 -16
  270. package/src/assets/fonts/Sohne-Bold.otf +0 -0
  271. package/src/assets/fonts/Sohne-BoldItalic.otf +0 -0
  272. package/src/assets/fonts/Sohne-ExtraBold.otf +0 -0
  273. package/src/assets/fonts/Sohne-ExtraBoldItalic.otf +0 -0
  274. package/src/assets/fonts/Sohne-ExtraLight.otf +0 -0
  275. package/src/assets/fonts/Sohne-ExtraLightItalic.otf +0 -0
  276. package/src/assets/fonts/Sohne-Italic.otf +0 -0
  277. package/src/assets/fonts/Sohne-Light.otf +0 -0
  278. package/src/assets/fonts/Sohne-LightItalic.otf +0 -0
  279. package/src/assets/fonts/Sohne-Medium.otf +0 -0
  280. package/src/assets/fonts/Sohne-MediumItalic.otf +0 -0
  281. package/src/assets/fonts/Sohne-Regular.otf +0 -0
  282. package/src/assets/fonts/Sohne-SemiBold.otf +0 -0
  283. package/src/assets/fonts/Sohne-SemiBoldItalic.otf +0 -0
  284. package/src/assets/fonts/SohneMono-Bold.otf +0 -0
  285. package/src/assets/fonts/SohneMono-BoldItalic.otf +0 -0
  286. package/src/assets/fonts/SohneMono-ExtraBold.otf +0 -0
  287. package/src/assets/fonts/SohneMono-ExtraBoldItalic.otf +0 -0
  288. package/src/assets/fonts/SohneMono-ExtraLight.otf +0 -0
  289. package/src/assets/fonts/SohneMono-ExtraLightItalic.otf +0 -0
  290. package/src/assets/fonts/SohneMono-Italic.otf +0 -0
  291. package/src/assets/fonts/SohneMono-Light.otf +0 -0
  292. package/src/assets/fonts/SohneMono-LightItalic.otf +0 -0
  293. package/src/assets/fonts/SohneMono-Medium.otf +0 -0
  294. package/src/assets/fonts/SohneMono-MediumItalic.otf +0 -0
  295. package/src/assets/fonts/SohneMono-Regular.otf +0 -0
  296. package/src/assets/fonts/SohneMono-SemiBold.otf +0 -0
  297. package/src/assets/fonts/SohneMono-SemiBoldItalic.otf +0 -0
  298. package/src/components/Accordion/Accordion.tsx +15 -4
  299. package/src/components/AlertBanner/AlertBanner.tsx +38 -12
  300. package/src/components/AppHeader/AppHeader.tsx +172 -0
  301. package/src/components/AppHeader/index.ts +1 -0
  302. package/src/components/Avatar/Avatar.tsx +14 -4
  303. package/src/components/Badge/Badge.tsx +12 -3
  304. package/src/components/Button/Button.tsx +30 -38
  305. package/src/components/ButtonGroup/ButtonGroup.tsx +13 -10
  306. package/src/components/Card/Card.tsx +29 -57
  307. package/src/components/CategoryStrip/CategoryStrip.tsx +41 -42
  308. package/src/components/Checkbox/Checkbox.tsx +36 -45
  309. package/src/components/Chip/Chip.tsx +41 -48
  310. package/src/components/ConfirmDialog/ConfirmDialog.tsx +2 -2
  311. package/src/components/CurrencyDisplay/CurrencyDisplay.tsx +4 -2
  312. package/src/components/CurrencyInput/CurrencyInput.tsx +12 -10
  313. package/src/components/DetailRow/DetailRow.tsx +9 -7
  314. package/src/components/EmptyState/EmptyState.tsx +4 -3
  315. package/src/components/ErrorBoundary/ErrorBoundary.tsx +153 -0
  316. package/src/components/ErrorBoundary/index.ts +1 -0
  317. package/src/components/Form/Form.tsx +149 -0
  318. package/src/components/Form/index.ts +1 -0
  319. package/src/components/HolographicCard/HolographicCard.tsx +315 -0
  320. package/src/components/HolographicCard/index.ts +1 -0
  321. package/src/components/IconButton/IconButton.tsx +23 -29
  322. package/src/components/ImageViewer/ImageViewer.tsx +290 -0
  323. package/src/components/ImageViewer/index.ts +1 -0
  324. package/src/components/Input/Input.tsx +27 -31
  325. package/src/components/LabelValue/LabelValue.tsx +6 -4
  326. package/src/components/ListGroup/ListGroup.tsx +145 -0
  327. package/src/components/ListGroup/index.ts +1 -0
  328. package/src/components/ListItem/ListItem.tsx +78 -76
  329. package/src/components/MediaCard/MediaCard.tsx +15 -7
  330. package/src/components/MenuGroup/MenuGroup.tsx +145 -0
  331. package/src/components/MenuGroup/index.ts +1 -0
  332. package/src/components/MenuItem/MenuItem.tsx +16 -33
  333. package/src/components/MonthPicker/MonthPicker.tsx +41 -15
  334. package/src/components/MonthPicker/index.ts +1 -1
  335. package/src/components/PagerDots/PagerDots.tsx +200 -0
  336. package/src/components/PagerDots/index.ts +1 -0
  337. package/src/components/Pressable/Pressable.tsx +19 -35
  338. package/src/components/PricingCard/PricingCard.tsx +220 -0
  339. package/src/components/PricingCard/index.ts +1 -0
  340. package/src/components/RadioGroup/RadioGroup.tsx +23 -39
  341. package/src/components/RetrayProvider/RetrayProvider.tsx +59 -0
  342. package/src/components/RetrayProvider/index.ts +1 -0
  343. package/src/components/Select/Select.tsx +6 -6
  344. package/src/components/SelectableGrid/SelectableGrid.tsx +205 -0
  345. package/src/components/SelectableGrid/index.ts +1 -0
  346. package/src/components/Separator/Separator.tsx +1 -3
  347. package/src/components/Sheet/Sheet.tsx +146 -18
  348. package/src/components/Skeleton/Skeleton.tsx +143 -2
  349. package/src/components/Slider/Slider.tsx +2 -2
  350. package/src/components/Spinner/Spinner.tsx +18 -3
  351. package/src/components/Switch/Switch.tsx +44 -49
  352. package/src/components/TabBar/TabBar.tsx +169 -0
  353. package/src/components/TabBar/index.ts +1 -0
  354. package/src/components/Tabs/Tabs.tsx +45 -44
  355. package/src/components/Text/Text.tsx +5 -1
  356. package/src/components/Textarea/Textarea.tsx +18 -14
  357. package/src/components/Toast/Toast.tsx +6 -6
  358. package/src/components/Toggle/Toggle.tsx +80 -72
  359. package/src/components/VirtualList/VirtualList.tsx +60 -0
  360. package/src/components/VirtualList/index.ts +1 -0
  361. package/src/fonts.ts +41 -20
  362. package/src/index.ts +28 -3
  363. package/src/theme/colors.ts +53 -39
  364. package/src/theme/types.ts +3 -0
  365. package/src/tokens.ts +49 -39
  366. package/src/utils/animations.ts +29 -1
  367. package/src/utils/fontGuard.ts +34 -0
  368. package/src/utils/haptics.ts +211 -9
  369. package/src/utils/icons.ts +47 -20
  370. package/src/utils/pressable.ts +66 -0
  371. package/src/utils/usePressScale.ts +2 -0
  372. package/src/assets/fonts/Poppins-Black.ttf +0 -0
  373. package/src/assets/fonts/Poppins-BlackItalic.ttf +0 -0
  374. package/src/assets/fonts/Poppins-Bold.ttf +0 -0
  375. package/src/assets/fonts/Poppins-BoldItalic.ttf +0 -0
  376. package/src/assets/fonts/Poppins-ExtraBold.ttf +0 -0
  377. package/src/assets/fonts/Poppins-ExtraBoldItalic.ttf +0 -0
  378. package/src/assets/fonts/Poppins-ExtraLight.ttf +0 -0
  379. package/src/assets/fonts/Poppins-ExtraLightItalic.ttf +0 -0
  380. package/src/assets/fonts/Poppins-Italic.ttf +0 -0
  381. package/src/assets/fonts/Poppins-Light.ttf +0 -0
  382. package/src/assets/fonts/Poppins-LightItalic.ttf +0 -0
  383. package/src/assets/fonts/Poppins-Medium.ttf +0 -0
  384. package/src/assets/fonts/Poppins-MediumItalic.ttf +0 -0
  385. package/src/assets/fonts/Poppins-Regular.ttf +0 -0
  386. package/src/assets/fonts/Poppins-SemiBold.ttf +0 -0
  387. package/src/assets/fonts/Poppins-SemiBoldItalic.ttf +0 -0
  388. package/src/assets/fonts/Poppins-Thin.ttf +0 -0
  389. package/src/assets/fonts/Poppins-ThinItalic.ttf +0 -0
package/dist/index.d.mts CHANGED
@@ -1,55 +1,57 @@
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
+ import { T as Theme, C as ColorScheme, a as ThemeContextValue, b as ThemeColors, R as ResolvedColors } from './index-wt-orHUi.mjs';
3
+ export { c as RetrayProvider, d as RetrayProviderProps } from './index-wt-orHUi.mjs';
4
+ export { Button, ButtonProps, ButtonSize, ButtonVariant } from './Button.mjs';
5
+ export { ButtonGroup, ButtonGroupProps } from './ButtonGroup.mjs';
6
+ export { IconButton, IconButtonProps, IconButtonSize, IconButtonVariant } from './IconButton.mjs';
7
+ export { Text, TextProps, TextVariant } from './Text.mjs';
8
+ export { Input, InputProps } from './Input.mjs';
9
+ export { Badge, BadgeProps, BadgeVariant } from './Badge.mjs';
10
+ export { Card, CardContent, CardContentProps, CardDescription, CardDescriptionProps, CardFooter, CardFooterProps, CardHeader, CardHeaderProps, CardProps, CardTitle, CardTitleProps } from './Card.mjs';
11
+ export { Separator, SeparatorProps } from './Separator.mjs';
12
+ export { Spinner, SpinnerProps, SpinnerSize } from './Spinner.mjs';
13
+ export { Skeleton, SkeletonProps } from './Skeleton.mjs';
14
+ export { Avatar, AvatarProps, AvatarSize } from './Avatar.mjs';
15
+ export { AlertBanner, AlertBannerProps, AlertBannerVariant } from './AlertBanner.mjs';
16
+ export { Progress, ProgressProps } from './Progress.mjs';
17
+ export { EmptyState, EmptyStateProps } from './EmptyState.mjs';
18
+ export { Textarea, TextareaProps } from './Textarea.mjs';
19
+ export { Checkbox, CheckboxProps } from './Checkbox.mjs';
20
+ export { Switch, SwitchProps } from './Switch.mjs';
21
+ export { Toggle, ToggleProps, ToggleSize, ToggleVariant } from './Toggle.mjs';
22
+ export { RadioGroup, RadioGroupProps, RadioOption } from './RadioGroup.mjs';
23
+ export { TabItem, Tabs, TabsContent, TabsContentProps, TabsProps } from './Tabs.mjs';
24
+ export { Accordion, AccordionItem, AccordionProps } from './Accordion.mjs';
25
+ export { Slider, SliderProps } from './Slider.mjs';
26
+ export { Sheet, SheetProps } from './Sheet.mjs';
27
+ export { Select, SelectOption, SelectProps } from './Select.mjs';
28
+ export { ToastProvider, useToast } from './Toast.mjs';
29
+ export { CurrencyInput, CurrencyInputProps } from './CurrencyInput.mjs';
30
+ export { CurrencyDisplay, CurrencyDisplayProps, CurrencyDisplayVariant } from './CurrencyDisplay.mjs';
31
+ export { ListItem, ListItemProps } from './ListItem.mjs';
32
+ export { ListGroup, ListGroupFooter, ListGroupFooterProps, ListGroupHeader, ListGroupHeaderProps, ListGroupProps, ListGroupVariant } from './ListGroup.mjs';
33
+ export { MenuItem, MenuItemProps, MenuItemVariant } from './MenuItem.mjs';
34
+ export { MenuGroup, MenuGroupFooter, MenuGroupFooterProps, MenuGroupHeader, MenuGroupHeaderProps, MenuGroupProps, MenuGroupVariant } from './MenuGroup.mjs';
35
+ export { Chip, ChipGroup, ChipGroupProps, ChipOption, ChipProps } from './Chip.mjs';
36
+ export { ConfirmDialog, ConfirmDialogProps } from './ConfirmDialog.mjs';
37
+ export { LabelValue, LabelValueProps } from './LabelValue.mjs';
38
+ export { MonthPicker, MonthPickerProps, MonthPickerValue, dateToMonthPickerValue, monthPickerValueToDate } from './MonthPicker.mjs';
39
+ export { MediaCard, MediaCardAspectRatio, MediaCardProps } from './MediaCard.mjs';
40
+ export { CategoryItem, CategoryStrip, CategoryStripProps } from './CategoryStrip.mjs';
41
+ export { Pressable, PressableProps } from './Pressable.mjs';
42
+ export { DetailRow, DetailRowLabelWeight, DetailRowProps, DetailRowSeparator } from './DetailRow.mjs';
43
+ export { Form, FormField, FormFieldProps, FormFooter, FormFooterProps, FormProps, FormSection, FormSectionProps } from './Form.mjs';
44
+ export { VirtualList, VirtualListItem, VirtualListProps } from './VirtualList.mjs';
45
+ export { ErrorBoundary, ErrorBoundaryProps, ErrorFallbackProps } from './ErrorBoundary.mjs';
46
+ export { PagerDots, PagerDotsProps } from './PagerDots.mjs';
47
+ export { AppHeader, AppHeaderProps } from './AppHeader.mjs';
48
+ export { SelectableGrid, SelectableGridItem, SelectableGridProps } from './SelectableGrid.mjs';
49
+ export { PricingCard, PricingCardProps, PricingFeature } from './PricingCard.mjs';
50
+ export { TabBar, TabBarItem, TabBarProps } from './TabBar.mjs';
51
+ export { ImageViewer, ImageViewerProps } from './ImageViewer.mjs';
5
52
  export { BottomSheetModalProvider, BottomSheetTextInput as SheetTextInput } from '@gorhom/bottom-sheet';
6
-
7
- type ThemeColors = {
8
- background: string;
9
- foreground: string;
10
- card: string;
11
- primary: string;
12
- primaryForeground: string;
13
- border: string;
14
- destructive: string;
15
- destructiveForeground: string;
16
- success: string;
17
- successForeground: string;
18
- warning: string;
19
- warningForeground: string;
20
- /** Backdrop/overlay color. Default: 'rgba(0,0,0,0.45)' */
21
- overlay?: string;
22
- /** Color accent (e.g. Airbnb coral). Default: same as primary */
23
- accent?: string;
24
- /** Text color on accent background. Default: same as primaryForeground */
25
- accentForeground?: string;
26
- };
27
- type ResolvedColors = ThemeColors & {
28
- foregroundSubtle: string;
29
- foregroundMuted: string;
30
- surface: string;
31
- surfaceStrong: string;
32
- destructiveTint: string;
33
- destructiveBorder: string;
34
- successTint: string;
35
- successBorder: string;
36
- warningTint: string;
37
- warningBorder: string;
38
- overlay: string;
39
- accentResolved: string;
40
- accentForegroundResolved: string;
41
- ring: string;
42
- input: string;
43
- };
44
- type Theme = {
45
- light?: Partial<ThemeColors>;
46
- dark?: Partial<ThemeColors>;
47
- };
48
- type ColorScheme = 'light' | 'dark' | 'system';
49
- type ThemeContextValue = {
50
- colors: ResolvedColors;
51
- colorScheme: 'light' | 'dark';
52
- };
53
+ export { toast } from 'sonner-native';
54
+ import 'react-native';
53
55
 
54
56
  interface ThemeProviderProps {
55
57
  children: React.ReactNode;
@@ -73,844 +75,6 @@ declare const defaultLight: ThemeColors;
73
75
  declare const defaultDark: ThemeColors;
74
76
  declare function deriveColors(t: ThemeColors, scheme: 'light' | 'dark'): ResolvedColors;
75
77
 
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
78
  type IconFamily = 'Feather' | 'AntDesign' | 'Entypo' | 'FontAwesome5' | 'MaterialIcons' | 'Ionicons';
915
79
  interface IconProps {
916
80
  /** Icon name from any supported @expo/vector-icons family. See https://icons.expo.fyi */
@@ -920,6 +84,17 @@ interface IconProps {
920
84
  /** Override the resolved family when the same name exists in multiple families. */
921
85
  family?: IconFamily;
922
86
  }
87
+ /**
88
+ * Restrict which icon families participate in automatic name resolution.
89
+ * Narrowing to the families you actually use shrinks the resolution cache and
90
+ * speeds up the first `renderIcon` call (no scanning thousands of unused glyphs).
91
+ *
92
+ * Note: all six families are still statically imported by this module — Metro
93
+ * bundles them regardless. This controls *resolution scope*, not bundle size.
94
+ *
95
+ * @example configureIconFamilies(['Feather', 'MaterialIcons'])
96
+ */
97
+ declare function configureIconFamilies(families: IconFamily[]): void;
923
98
  declare function Icon({ name, size, color, family }: IconProps): React.ReactElement | null;
924
99
  declare function renderIcon(name: string, size: number, color: string): React.ReactElement | null;
925
100
 
@@ -936,6 +111,53 @@ declare function getResponsiveFontSize(text: string, maxSize: number, steps?: {
936
111
  subtract: number;
937
112
  }[]): number;
938
113
 
114
+ /**
115
+ * Light selection feedback — checkboxes, switches, toggles, pickers.
116
+ */
117
+ declare function selectionAsync(): void;
118
+ /**
119
+ * Light impact — cards, surfaces, light interactions.
120
+ */
121
+ declare function impactLight(): void;
122
+ /**
123
+ * Medium impact — buttons, primary actions.
124
+ */
125
+ declare function impactMedium(): void;
126
+ /**
127
+ * Heavy impact — confirmations, important actions.
128
+ */
129
+ declare function impactHeavy(): void;
130
+ /**
131
+ * Success notification — confirmations, completed actions.
132
+ */
133
+ declare function notificationSuccess(): void;
134
+ /**
135
+ * Error notification — failed actions, errors.
136
+ */
137
+ declare function notificationError(): void;
138
+ /**
139
+ * Warning notification — caution states.
140
+ */
141
+ declare function notificationWarning(): void;
142
+ /**
143
+ * Rich haptic presets from Pulsar — enhanced feedback for special interactions.
144
+ * Falls back to basic expo-haptics on Expo Go or unsupported devices.
145
+ */
146
+ declare const richHaptics: {
147
+ /** Hammer strike — strong confirmation feedback. */
148
+ hammer: () => void;
149
+ /** Pulse — rhythmic feedback for toggles or state changes. */
150
+ pulse: () => void;
151
+ /** Buzz — continuous vibration for attention. */
152
+ buzz: () => void;
153
+ /** Flick — crisp click feedback. */
154
+ flick: () => void;
155
+ /** Soft — gentle, subtle feedback. */
156
+ soft: () => void;
157
+ /** Rigid — firm, solid feedback. */
158
+ rigid: () => void;
159
+ };
160
+
939
161
  declare const SPACING: {
940
162
  readonly xxs: 2;
941
163
  readonly xs: 4;
@@ -1010,113 +232,120 @@ declare const BREAKPOINTS: {
1010
232
  };
1011
233
  declare const TYPOGRAPHY: {
1012
234
  readonly 'display-hero': {
1013
- readonly fontFamily: "Poppins-Bold";
235
+ readonly fontFamily: "Sohne-Bold";
1014
236
  readonly fontSize: 64;
1015
237
  readonly fontWeight: "700";
1016
238
  readonly lineHeight: 70;
1017
239
  readonly letterSpacing: -1;
1018
240
  };
1019
241
  readonly 'display-xl': {
1020
- readonly fontFamily: "Poppins-Bold";
242
+ readonly fontFamily: "Sohne-Bold";
1021
243
  readonly fontSize: 28;
1022
244
  readonly fontWeight: "700";
1023
245
  readonly lineHeight: 40;
1024
246
  readonly letterSpacing: 0;
1025
247
  };
1026
248
  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;
249
+ readonly fontFamily: "Sohne-SemiBold";
250
+ readonly fontSize: 24;
251
+ readonly fontWeight: "600";
252
+ readonly lineHeight: 32;
253
+ readonly letterSpacing: -0.3;
1032
254
  };
1033
255
  readonly 'display-md': {
1034
- readonly fontFamily: "Poppins-Bold";
1035
- readonly fontSize: 21;
1036
- readonly fontWeight: "700";
1037
- readonly lineHeight: 30;
256
+ readonly fontFamily: "Sohne-SemiBold";
257
+ readonly fontSize: 20;
258
+ readonly fontWeight: "600";
259
+ readonly lineHeight: 28;
1038
260
  readonly letterSpacing: 0;
1039
261
  };
1040
262
  readonly 'display-sm': {
1041
- readonly fontFamily: "Poppins-SemiBold";
1042
- readonly fontSize: 20;
263
+ readonly fontFamily: "Sohne-SemiBold";
264
+ readonly fontSize: 18;
1043
265
  readonly fontWeight: "600";
1044
266
  readonly lineHeight: 24;
1045
267
  readonly letterSpacing: -0.18;
1046
268
  };
1047
269
  readonly 'title-md': {
1048
- readonly fontFamily: "Poppins-SemiBold";
1049
- readonly fontSize: 16;
270
+ readonly fontFamily: "Sohne-SemiBold";
271
+ readonly fontSize: 17;
1050
272
  readonly fontWeight: "600";
1051
- readonly lineHeight: 20;
273
+ readonly lineHeight: 22;
1052
274
  readonly letterSpacing: 0;
1053
275
  };
1054
276
  readonly 'title-sm': {
1055
- readonly fontFamily: "Poppins-Medium";
1056
- readonly fontSize: 16;
277
+ readonly fontFamily: "Sohne-Medium";
278
+ readonly fontSize: 15;
1057
279
  readonly fontWeight: "500";
1058
280
  readonly lineHeight: 20;
1059
281
  readonly letterSpacing: 0;
1060
282
  };
1061
283
  readonly 'body-md': {
1062
- readonly fontFamily: "Poppins-Regular";
284
+ readonly fontFamily: "Sohne-Regular";
1063
285
  readonly fontSize: 16;
1064
286
  readonly fontWeight: "400";
1065
287
  readonly lineHeight: 24;
1066
288
  readonly letterSpacing: 0;
1067
289
  };
1068
290
  readonly 'body-sm': {
1069
- readonly fontFamily: "Poppins-Regular";
291
+ readonly fontFamily: "Sohne-Regular";
1070
292
  readonly fontSize: 14;
1071
293
  readonly fontWeight: "400";
1072
294
  readonly lineHeight: 20;
1073
295
  readonly letterSpacing: 0;
1074
296
  };
1075
297
  readonly caption: {
1076
- readonly fontFamily: "Poppins-Medium";
298
+ readonly fontFamily: "Sohne-Medium";
1077
299
  readonly fontSize: 14;
1078
300
  readonly fontWeight: "500";
1079
301
  readonly lineHeight: 18;
1080
302
  readonly letterSpacing: 0;
1081
303
  };
1082
304
  readonly 'caption-sm': {
1083
- readonly fontFamily: "Poppins-Regular";
305
+ readonly fontFamily: "Sohne-Regular";
1084
306
  readonly fontSize: 13;
1085
307
  readonly fontWeight: "400";
1086
308
  readonly lineHeight: 16;
1087
309
  readonly letterSpacing: 0;
1088
310
  };
1089
311
  readonly 'badge-text': {
1090
- readonly fontFamily: "Poppins-SemiBold";
312
+ readonly fontFamily: "Sohne-SemiBold";
1091
313
  readonly fontSize: 11;
1092
314
  readonly fontWeight: "600";
1093
- readonly lineHeight: 13;
315
+ readonly lineHeight: 14;
316
+ readonly letterSpacing: 0;
317
+ };
318
+ readonly 'badge-text-md': {
319
+ readonly fontFamily: "Sohne-SemiBold";
320
+ readonly fontSize: 13;
321
+ readonly fontWeight: "600";
322
+ readonly lineHeight: 16;
1094
323
  readonly letterSpacing: 0;
1095
324
  };
1096
325
  readonly 'micro-label': {
1097
- readonly fontFamily: "Poppins-Bold";
326
+ readonly fontFamily: "Sohne-Bold";
1098
327
  readonly fontSize: 12;
1099
328
  readonly fontWeight: "700";
1100
329
  readonly lineHeight: 16;
1101
330
  readonly letterSpacing: 0;
1102
331
  };
1103
332
  readonly 'uppercase-tag': {
1104
- readonly fontFamily: "Poppins-Bold";
1105
- readonly fontSize: 10;
333
+ readonly fontFamily: "Sohne-Bold";
334
+ readonly fontSize: 11;
1106
335
  readonly fontWeight: "700";
1107
- readonly lineHeight: 13;
1108
- readonly letterSpacing: 0.8;
336
+ readonly lineHeight: 14;
337
+ readonly letterSpacing: 0.6;
1109
338
  readonly textTransform: "uppercase";
1110
339
  };
1111
340
  readonly 'button-lg': {
1112
- readonly fontFamily: "Poppins-Medium";
341
+ readonly fontFamily: "Sohne-Medium";
1113
342
  readonly fontSize: 16;
1114
343
  readonly fontWeight: "500";
1115
344
  readonly lineHeight: 22;
1116
345
  readonly letterSpacing: 0;
1117
346
  };
1118
347
  readonly 'button-sm': {
1119
- readonly fontFamily: "Poppins-Medium";
348
+ readonly fontFamily: "Sohne-Medium";
1120
349
  readonly fontSize: 14;
1121
350
  readonly fontWeight: "500";
1122
351
  readonly lineHeight: 18;
@@ -1132,4 +361,4 @@ type RadiusKey = keyof Radius;
1132
361
  type Typography = typeof TYPOGRAPHY;
1133
362
  type TypographyKey = keyof Typography;
1134
363
 
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 };
364
+ export { BREAKPOINTS, ColorScheme, ICON_SIZES, Icon, type IconFamily, type IconProps, type IconSize, type IconSizeKey, RADIUS, type Radius, type RadiusKey, ResolvedColors, SHADOWS, SPACING, type Spacing, type SpacingKey, TYPOGRAPHY, Theme, ThemeColors, ThemeProvider, type ThemeProviderProps, type Typography, type TypographyKey, configureIconFamilies, defaultDark, defaultLight, deriveColors, getResponsiveFontSize, impactHeavy, impactLight, impactMedium, notificationError, notificationSuccess, notificationWarning, renderIcon, richHaptics, selectionAsync, useTheme };