@retray-dev/ui-kit 13.0.0 → 13.4.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 (344) hide show
  1. package/CHANGELOG.md +680 -0
  2. package/CONSUMER.md +26 -9
  3. package/README.md +11 -12
  4. package/{COMPONENTS.md → SKILL.md} +515 -815
  5. package/dist/Accordion.d.mts +8 -6
  6. package/dist/Accordion.d.ts +8 -6
  7. package/dist/Accordion.js +40 -40
  8. package/dist/Accordion.mjs +4 -5
  9. package/dist/AlertBanner.d.mts +3 -3
  10. package/dist/AlertBanner.d.ts +3 -3
  11. package/dist/AlertBanner.js +7 -13
  12. package/dist/AlertBanner.mjs +4 -5
  13. package/dist/AppHeader.d.mts +8 -5
  14. package/dist/AppHeader.d.ts +8 -5
  15. package/dist/AppHeader.js +44 -31
  16. package/dist/AppHeader.mjs +6 -7
  17. package/dist/Avatar.d.mts +4 -4
  18. package/dist/Avatar.d.ts +4 -4
  19. package/dist/Avatar.mjs +2 -3
  20. package/dist/Badge.d.mts +5 -5
  21. package/dist/Badge.d.ts +5 -5
  22. package/dist/Badge.js +7 -13
  23. package/dist/Badge.mjs +3 -4
  24. package/dist/Button.d.mts +5 -5
  25. package/dist/Button.d.ts +5 -5
  26. package/dist/Button.js +31 -29
  27. package/dist/Button.mjs +5 -6
  28. package/dist/ButtonGroup.d.mts +3 -3
  29. package/dist/ButtonGroup.d.ts +3 -3
  30. package/dist/ButtonGroup.mjs +0 -1
  31. package/dist/Card.d.mts +13 -13
  32. package/dist/Card.d.ts +13 -13
  33. package/dist/Card.js +23 -14
  34. package/dist/Card.mjs +4 -5
  35. package/dist/CategoryStrip.d.mts +3 -3
  36. package/dist/CategoryStrip.d.ts +3 -3
  37. package/dist/CategoryStrip.js +30 -27
  38. package/dist/CategoryStrip.mjs +5 -6
  39. package/dist/Checkbox.d.mts +3 -2
  40. package/dist/Checkbox.d.ts +3 -2
  41. package/dist/Checkbox.js +26 -15
  42. package/dist/Checkbox.mjs +3 -4
  43. package/dist/Chip.d.mts +5 -5
  44. package/dist/Chip.d.ts +5 -5
  45. package/dist/Chip.js +30 -27
  46. package/dist/Chip.mjs +5 -6
  47. package/dist/ConfirmDialog.d.mts +3 -2
  48. package/dist/ConfirmDialog.d.ts +3 -2
  49. package/dist/ConfirmDialog.js +67 -49
  50. package/dist/ConfirmDialog.mjs +7 -7
  51. package/dist/CurrencyDisplay.d.mts +3 -3
  52. package/dist/CurrencyDisplay.d.ts +3 -3
  53. package/dist/CurrencyDisplay.mjs +2 -3
  54. package/dist/CurrencyInput.d.mts +2 -2
  55. package/dist/CurrencyInput.d.ts +2 -2
  56. package/dist/CurrencyInput.js +7 -13
  57. package/dist/CurrencyInput.mjs +4 -5
  58. package/dist/DetailRow.d.mts +6 -6
  59. package/dist/DetailRow.d.ts +6 -6
  60. package/dist/DetailRow.js +7 -13
  61. package/dist/DetailRow.mjs +3 -4
  62. package/dist/EmptyState.d.mts +4 -4
  63. package/dist/EmptyState.d.ts +4 -4
  64. package/dist/EmptyState.js +31 -29
  65. package/dist/EmptyState.mjs +6 -7
  66. package/dist/ErrorBoundary.d.mts +9 -7
  67. package/dist/ErrorBoundary.d.ts +9 -7
  68. package/dist/ErrorBoundary.js +33 -29
  69. package/dist/ErrorBoundary.mjs +5 -6
  70. package/dist/Form.d.mts +9 -9
  71. package/dist/Form.d.ts +9 -9
  72. package/dist/Form.mjs +2 -3
  73. package/dist/HolographicCard.d.mts +2 -2
  74. package/dist/HolographicCard.d.ts +2 -2
  75. package/dist/HolographicCard.js +23 -14
  76. package/dist/HolographicCard.mjs +2 -3
  77. package/dist/IconButton.d.mts +4 -4
  78. package/dist/IconButton.d.ts +4 -4
  79. package/dist/IconButton.js +30 -27
  80. package/dist/IconButton.mjs +4 -5
  81. package/dist/IconPicker.d.mts +2 -2
  82. package/dist/IconPicker.d.ts +2 -2
  83. package/dist/IconPicker.js +40 -45
  84. package/dist/IconPicker.mjs +6 -7
  85. package/dist/Image.d.mts +18 -0
  86. package/dist/Image.d.ts +18 -0
  87. package/dist/Image.js +53 -0
  88. package/dist/Image.mjs +2 -0
  89. package/dist/ImageUpload.d.mts +2 -4
  90. package/dist/ImageUpload.d.ts +2 -4
  91. package/dist/ImageUpload.js +50 -40
  92. package/dist/ImageUpload.mjs +5 -6
  93. package/dist/ImageViewer.d.mts +2 -2
  94. package/dist/ImageViewer.d.ts +2 -2
  95. package/dist/ImageViewer.js +31 -28
  96. package/dist/ImageViewer.mjs +6 -7
  97. package/dist/Input.d.mts +4 -4
  98. package/dist/Input.d.ts +4 -4
  99. package/dist/Input.js +7 -13
  100. package/dist/Input.mjs +3 -4
  101. package/dist/ItemGroup.d.mts +23 -0
  102. package/dist/ItemGroup.d.ts +23 -0
  103. package/dist/{ListGroup.js → ItemGroup.js} +11 -13
  104. package/dist/ItemGroup.mjs +4 -0
  105. package/dist/LabelValue.d.mts +4 -4
  106. package/dist/LabelValue.d.ts +4 -4
  107. package/dist/LabelValue.js +7 -13
  108. package/dist/LabelValue.mjs +3 -4
  109. package/dist/ListItem.d.mts +7 -6
  110. package/dist/ListItem.d.ts +7 -6
  111. package/dist/ListItem.js +33 -28
  112. package/dist/ListItem.mjs +5 -6
  113. package/dist/MediaCard.d.mts +6 -6
  114. package/dist/MediaCard.d.ts +6 -6
  115. package/dist/MediaCard.js +30 -27
  116. package/dist/MediaCard.mjs +5 -6
  117. package/dist/MenuItem.d.mts +6 -5
  118. package/dist/MenuItem.d.ts +6 -5
  119. package/dist/MenuItem.js +33 -28
  120. package/dist/MenuItem.mjs +5 -6
  121. package/dist/MonthPicker.d.mts +2 -2
  122. package/dist/MonthPicker.d.ts +2 -2
  123. package/dist/MonthPicker.js +23 -14
  124. package/dist/MonthPicker.mjs +3 -4
  125. package/dist/NumberStepper.d.mts +4 -3
  126. package/dist/NumberStepper.d.ts +4 -3
  127. package/dist/NumberStepper.js +34 -28
  128. package/dist/NumberStepper.mjs +5 -6
  129. package/dist/PagerDots.d.mts +2 -2
  130. package/dist/PagerDots.d.ts +2 -2
  131. package/dist/PagerDots.js +30 -27
  132. package/dist/PagerDots.mjs +4 -5
  133. package/dist/Pressable.d.mts +3 -27
  134. package/dist/Pressable.d.ts +3 -27
  135. package/dist/Pressable.js +23 -14
  136. package/dist/Pressable.mjs +2 -3
  137. package/dist/PricingCard.d.mts +2 -2
  138. package/dist/PricingCard.d.ts +2 -2
  139. package/dist/PricingCard.js +31 -29
  140. package/dist/PricingCard.mjs +7 -8
  141. package/dist/Progress.d.mts +2 -2
  142. package/dist/Progress.d.ts +2 -2
  143. package/dist/Progress.mjs +2 -3
  144. package/dist/RadioGroup.d.mts +2 -2
  145. package/dist/RadioGroup.d.ts +2 -2
  146. package/dist/RadioGroup.js +23 -14
  147. package/dist/RadioGroup.mjs +3 -4
  148. package/dist/RetrayProvider.d.mts +1 -1
  149. package/dist/RetrayProvider.d.ts +1 -1
  150. package/dist/RetrayProvider.js +14 -34
  151. package/dist/RetrayProvider.mjs +3 -4
  152. package/dist/ScreenContainer.d.mts +24 -0
  153. package/dist/ScreenContainer.d.ts +24 -0
  154. package/dist/ScreenContainer.js +85 -0
  155. package/dist/ScreenContainer.mjs +3 -0
  156. package/dist/Select.d.mts +3 -2
  157. package/dist/Select.d.ts +3 -2
  158. package/dist/Select.js +41 -46
  159. package/dist/Select.mjs +3 -4
  160. package/dist/SelectableCard.d.mts +5 -5
  161. package/dist/SelectableCard.d.ts +5 -5
  162. package/dist/SelectableCard.js +30 -27
  163. package/dist/SelectableCard.mjs +5 -6
  164. package/dist/SelectableGrid.d.mts +5 -4
  165. package/dist/SelectableGrid.d.ts +5 -4
  166. package/dist/SelectableGrid.js +80 -45
  167. package/dist/SelectableGrid.mjs +5 -6
  168. package/dist/Separator.d.mts +4 -2
  169. package/dist/Separator.d.ts +4 -2
  170. package/dist/Separator.js +29 -1
  171. package/dist/Separator.mjs +3 -3
  172. package/dist/Sheet.d.mts +11 -11
  173. package/dist/Sheet.d.ts +11 -11
  174. package/dist/Sheet.js +62 -34
  175. package/dist/Sheet.mjs +4 -4
  176. package/dist/SheetSelect.d.mts +2 -2
  177. package/dist/SheetSelect.d.ts +2 -2
  178. package/dist/SheetSelect.js +30 -27
  179. package/dist/SheetSelect.mjs +5 -6
  180. package/dist/Skeleton.d.mts +5 -5
  181. package/dist/Skeleton.d.ts +5 -5
  182. package/dist/Skeleton.mjs +3 -4
  183. package/dist/Slider.d.mts +3 -2
  184. package/dist/Slider.d.ts +3 -2
  185. package/dist/Slider.js +25 -14
  186. package/dist/Slider.mjs +3 -4
  187. package/dist/Spinner.d.mts +2 -2
  188. package/dist/Spinner.d.ts +2 -2
  189. package/dist/Spinner.mjs +2 -3
  190. package/dist/Stats.d.mts +6 -6
  191. package/dist/Stats.d.ts +6 -6
  192. package/dist/Stats.js +30 -27
  193. package/dist/Stats.mjs +5 -6
  194. package/dist/Switch.d.mts +3 -2
  195. package/dist/Switch.d.ts +3 -2
  196. package/dist/Switch.js +25 -15
  197. package/dist/Switch.mjs +3 -4
  198. package/dist/TabBar.d.mts +3 -3
  199. package/dist/TabBar.d.ts +3 -3
  200. package/dist/TabBar.js +30 -27
  201. package/dist/TabBar.mjs +4 -5
  202. package/dist/Tabs.d.mts +13 -13
  203. package/dist/Tabs.d.ts +13 -13
  204. package/dist/Tabs.js +23 -14
  205. package/dist/Tabs.mjs +3 -4
  206. package/dist/Text.d.mts +4 -4
  207. package/dist/Text.d.ts +4 -4
  208. package/dist/Text.js +20 -2
  209. package/dist/Text.mjs +3 -4
  210. package/dist/Textarea.d.mts +3 -3
  211. package/dist/Textarea.d.ts +3 -3
  212. package/dist/Textarea.js +7 -13
  213. package/dist/Textarea.mjs +3 -4
  214. package/dist/Toast.d.mts +15 -13
  215. package/dist/Toast.d.ts +15 -13
  216. package/dist/Toast.mjs +2 -3
  217. package/dist/Toggle.d.mts +4 -4
  218. package/dist/Toggle.d.ts +4 -4
  219. package/dist/Toggle.js +30 -27
  220. package/dist/Toggle.mjs +4 -5
  221. package/dist/VirtualizedList.d.mts +28 -0
  222. package/dist/VirtualizedList.d.ts +28 -0
  223. package/dist/VirtualizedList.js +130 -0
  224. package/dist/VirtualizedList.mjs +3 -0
  225. package/dist/{chunk-MZ6WRTD2.mjs → chunk-24JTXQ2M.mjs} +7 -13
  226. package/dist/{chunk-OBV72JD4.mjs → chunk-2DDJ53DK.mjs} +9 -11
  227. package/dist/{chunk-6CR4S6W2.mjs → chunk-2J5OZOMX.mjs} +19 -8
  228. package/dist/{chunk-4NQFTHN3.mjs → chunk-3GE4UFV5.mjs} +2 -2
  229. package/dist/{chunk-KAGADD2O.mjs → chunk-3RIZCKRM.mjs} +2 -2
  230. package/dist/{chunk-DE25XTVQ.mjs → chunk-3VHFOSZR.mjs} +2 -2
  231. package/dist/{chunk-UOKFSFNJ.mjs → chunk-4PF4LKNT.mjs} +4 -2
  232. package/dist/{chunk-5MYNAAFE.mjs → chunk-5J7VKFSZ.mjs} +4 -4
  233. package/dist/{chunk-BTUW5LSG.mjs → chunk-5TNQ573V.mjs} +4 -3
  234. package/dist/{chunk-6QLBHUEG.mjs → chunk-6T2DVIQT.mjs} +7 -5
  235. package/dist/{chunk-L3YKPTJQ.mjs → chunk-7CE6PDCQ.mjs} +2 -2
  236. package/dist/{chunk-Y6YS33GM.mjs → chunk-AHFEAY6M.mjs} +4 -4
  237. package/dist/{chunk-4ZO5PTKF.mjs → chunk-AZRATPNP.mjs} +5 -3
  238. package/dist/{chunk-V2ZB2XNS.mjs → chunk-BGXOEFDM.mjs} +9 -22
  239. package/dist/{chunk-KC5QDYGZ.mjs → chunk-BMAAAJWN.mjs} +2 -2
  240. package/dist/{chunk-IJCMPVW5.mjs → chunk-BQMJQMWY.mjs} +2 -2
  241. package/dist/{chunk-E4EQSCKR.mjs → chunk-BTPCY4C7.mjs} +7 -5
  242. package/dist/chunk-BVJAYPAD.mjs +55 -0
  243. package/dist/{chunk-RA6SAAFE.mjs → chunk-BWLVX2SQ.mjs} +4 -4
  244. package/dist/{chunk-EROPDCB5.mjs → chunk-CCEM3HIJ.mjs} +30 -25
  245. package/dist/chunk-CTUFFKGS.mjs +30 -0
  246. package/dist/{chunk-EHGBHFMH.mjs → chunk-CYGYC7XT.mjs} +8 -4
  247. package/dist/{chunk-ESQDPO5E.mjs → chunk-DLAOTHHS.mjs} +7 -6
  248. package/dist/{chunk-QY3X2UYR.mjs → chunk-DYYPDQA2.mjs} +21 -7
  249. package/dist/{chunk-S44XWTTC.mjs → chunk-E4BJ5WXG.mjs} +3 -3
  250. package/dist/{chunk-HUSSF6TF.mjs → chunk-EQNCMDZC.mjs} +1 -1
  251. package/dist/{chunk-PI6RULJX.mjs → chunk-EQYTDFDD.mjs} +1 -1
  252. package/dist/{chunk-BULKGOIZ.mjs → chunk-FE26TPCI.mjs} +4 -4
  253. package/dist/{chunk-DBHSUUKU.mjs → chunk-FOUSI6JD.mjs} +1 -1
  254. package/dist/{chunk-KPTY7UYQ.mjs → chunk-GR7PKEKD.mjs} +1 -1
  255. package/dist/{chunk-RRKM4MKB.mjs → chunk-HLWGFBIF.mjs} +3 -3
  256. package/dist/chunk-HMKJGVXA.mjs +35 -0
  257. package/dist/{chunk-U6DEBYU5.mjs → chunk-IFGZUJFH.mjs} +3 -3
  258. package/dist/{chunk-2VIDP72N.mjs → chunk-K3V6OTVB.mjs} +1 -1
  259. package/dist/{chunk-K7TKID3V.mjs → chunk-K4YFTUMC.mjs} +3 -3
  260. package/dist/{chunk-NGEN2EES.mjs → chunk-MQAK2W6L.mjs} +14 -22
  261. package/dist/{chunk-CM2DG4MR.mjs → chunk-MSS3CD6F.mjs} +4 -4
  262. package/dist/{chunk-TETMEKZE.mjs → chunk-NQYS6RPX.mjs} +8 -5
  263. package/dist/{chunk-62BBSSUF.mjs → chunk-P5KC3RTG.mjs} +1 -1
  264. package/dist/{chunk-K3QX2M26.mjs → chunk-PPKCGCZ3.mjs} +5 -5
  265. package/dist/{chunk-ITG4JQM3.mjs → chunk-QEE3EQ3N.mjs} +2 -2
  266. package/dist/{chunk-URIH43IJ.mjs → chunk-RLPPRIJ7.mjs} +20 -34
  267. package/dist/{chunk-XCIG6HT2.mjs → chunk-S433IOQE.mjs} +2 -2
  268. package/dist/{chunk-IGU223UM.mjs → chunk-SWUZKVYO.mjs} +1 -1
  269. package/dist/{chunk-MP7GLMIR.mjs → chunk-T4KMKHTI.mjs} +55 -23
  270. package/dist/{chunk-2QOHHBJC.mjs → chunk-UBTP4NPP.mjs} +5 -21
  271. package/dist/{chunk-TMH263OK.mjs → chunk-UEA2VYGW.mjs} +3 -3
  272. package/dist/chunk-VISIOH33.mjs +37 -0
  273. package/dist/{chunk-SZEKQAOY.mjs → chunk-VSKBODEY.mjs} +1 -1
  274. package/dist/{chunk-FTTI6T5Q.mjs → chunk-W422TEH2.mjs} +3 -3
  275. package/dist/{chunk-WIPEDNSD.mjs → chunk-WD5LBXPR.mjs} +4 -4
  276. package/dist/chunk-WFNGSYS4.mjs +111 -0
  277. package/dist/chunk-WR6DCNAE.mjs +65 -0
  278. package/dist/{chunk-ERWJPVX7.mjs → chunk-XKBB2UZU.mjs} +2 -2
  279. package/dist/{chunk-CBIZLRYH.mjs → chunk-Y5TPAKOS.mjs} +14 -17
  280. package/dist/{chunk-AZV7KNJI.mjs → chunk-YKWIMVGU.mjs} +2 -2
  281. package/dist/{chunk-ZKDKKQCE.mjs → chunk-YOXSXHDE.mjs} +4 -4
  282. package/dist/{chunk-PGQ6FMXS.mjs → chunk-ZO5BRTCW.mjs} +2 -2
  283. package/dist/{chunk-KSSVIFYR.mjs → chunk-ZQGCQ7SA.mjs} +14 -34
  284. package/dist/{chunk-ZTPYUU5C.mjs → chunk-ZRUUUVOO.mjs} +3 -3
  285. package/dist/fonts.mjs +0 -2
  286. package/dist/{index-CY34hxPN.d.ts → index-CinAt5Uo.d.mts} +3 -3
  287. package/dist/{index-CY34hxPN.d.mts → index-CinAt5Uo.d.ts} +3 -3
  288. package/dist/index.d.mts +69 -19
  289. package/dist/index.d.ts +69 -19
  290. package/dist/index.js +1023 -839
  291. package/dist/index.mjs +76 -70
  292. package/package.json +15 -12
  293. package/src/components/Accordion/Accordion.tsx +12 -18
  294. package/src/components/AppHeader/AppHeader.tsx +33 -10
  295. package/src/components/Checkbox/Checkbox.tsx +3 -0
  296. package/src/components/ConfirmDialog/ConfirmDialog.tsx +7 -21
  297. package/src/components/ErrorBoundary/ErrorBoundary.tsx +5 -2
  298. package/src/components/Image/Image.tsx +50 -0
  299. package/src/components/Image/index.ts +2 -0
  300. package/src/components/ImageUpload/ImageUpload.tsx +34 -26
  301. package/src/components/{ListGroup/ListGroup.tsx → ItemGroup/ItemGroup.tsx} +15 -29
  302. package/src/components/ItemGroup/index.ts +2 -0
  303. package/src/components/ListGroup/index.tsx +20 -0
  304. package/src/components/ListItem/ListItem.tsx +3 -0
  305. package/src/components/MenuGroup/index.tsx +20 -0
  306. package/src/components/MenuItem/MenuItem.tsx +3 -0
  307. package/src/components/NumberStepper/NumberStepper.tsx +4 -0
  308. package/src/components/Pressable/Pressable.tsx +0 -24
  309. package/src/components/ScreenContainer/ScreenContainer.tsx +94 -0
  310. package/src/components/ScreenContainer/index.ts +2 -0
  311. package/src/components/Select/Select.tsx +25 -30
  312. package/src/components/SelectableGrid/SelectableGrid.tsx +51 -20
  313. package/src/components/Separator/Separator.tsx +35 -2
  314. package/src/components/Sheet/Sheet.tsx +3 -21
  315. package/src/components/Sheet/index.ts +2 -2
  316. package/src/components/Slider/Slider.tsx +3 -0
  317. package/src/components/Switch/Switch.tsx +3 -1
  318. package/src/components/Tabs/Tabs.tsx +9 -9
  319. package/src/components/Tabs/index.ts +1 -1
  320. package/src/components/Text/Text.tsx +7 -0
  321. package/src/components/VirtualizedList/VirtualizedList.tsx +154 -0
  322. package/src/components/VirtualizedList/index.ts +2 -0
  323. package/src/hooks/useConfirmDialog.ts +2 -11
  324. package/src/hooks/useSheetModal.ts +40 -0
  325. package/src/index.ts +5 -1
  326. package/src/theme/colors.ts +19 -57
  327. package/src/tokens.ts +21 -7
  328. package/src/utils/curatedIcons.ts +9 -18
  329. package/src/utils/haptics.ts +10 -21
  330. package/src/utils/icons.ts +7 -14
  331. package/dist/ListGroup.d.mts +0 -34
  332. package/dist/ListGroup.d.ts +0 -34
  333. package/dist/ListGroup.mjs +0 -5
  334. package/dist/MenuGroup.d.mts +0 -34
  335. package/dist/MenuGroup.d.ts +0 -34
  336. package/dist/MenuGroup.js +0 -106
  337. package/dist/MenuGroup.mjs +0 -5
  338. package/dist/chunk-ARONDO7M.mjs +0 -40
  339. package/dist/chunk-EW2FIDSM.mjs +0 -29
  340. package/dist/chunk-S2VGME7X.mjs +0 -82
  341. package/dist/chunk-Y6FXYEAI.mjs +0 -8
  342. package/src/components/ListGroup/index.ts +0 -1
  343. package/src/components/MenuGroup/MenuGroup.tsx +0 -145
  344. package/src/components/MenuGroup/index.ts +0 -1
@@ -3,30 +3,39 @@
3
3
  var React2 = require('react');
4
4
  var reactNative = require('react-native');
5
5
  var reactNativeEase = require('react-native-ease');
6
+ var Haptics = require('expo-haptics');
6
7
  var reactNativeSizeMatters = require('react-native-size-matters');
7
8
  var pressto = require('pressto');
8
9
 
9
10
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
10
11
 
12
+ function _interopNamespace(e) {
13
+ if (e && e.__esModule) return e;
14
+ var n = Object.create(null);
15
+ if (e) {
16
+ Object.keys(e).forEach(function (k) {
17
+ if (k !== 'default') {
18
+ var d = Object.getOwnPropertyDescriptor(e, k);
19
+ Object.defineProperty(n, k, d.get ? d : {
20
+ enumerable: true,
21
+ get: function () { return e[k]; }
22
+ });
23
+ }
24
+ });
25
+ }
26
+ n.default = e;
27
+ return Object.freeze(n);
28
+ }
29
+
11
30
  var React2__default = /*#__PURE__*/_interopDefault(React2);
31
+ var Haptics__namespace = /*#__PURE__*/_interopNamespace(Haptics);
12
32
 
13
33
  // src/components/RadioGroup/RadioGroup.tsx
14
- var _haptics = null;
15
- var _loaded = false;
16
- async function getHaptics() {
17
- if (reactNative.Platform.OS === "web") return null;
18
- if (!_loaded) {
19
- _loaded = true;
20
- try {
21
- _haptics = await import('expo-haptics');
22
- } catch {
23
- _haptics = null;
24
- }
25
- }
26
- return _haptics;
34
+ function maybeHaptics() {
35
+ return reactNative.Platform.OS === "web" ? null : Haptics__namespace;
27
36
  }
28
37
  function selectionAsync() {
29
- getHaptics().then((h) => h?.selectionAsync());
38
+ maybeHaptics()?.selectionAsync();
30
39
  }
31
40
  var ThemeContext = React2.createContext(void 0);
32
41
  function useTheme() {
@@ -1,7 +1,6 @@
1
- export { RadioGroup } from './chunk-IJCMPVW5.mjs';
1
+ export { RadioGroup } from './chunk-BQMJQMWY.mjs';
2
2
  import './chunk-M53LC4Q7.mjs';
3
3
  import './chunk-IFYMBOEN.mjs';
4
- import './chunk-ARONDO7M.mjs';
5
- import './chunk-KSSVIFYR.mjs';
4
+ import './chunk-CTUFFKGS.mjs';
5
+ import './chunk-ZQGCQ7SA.mjs';
6
6
  import './chunk-2CE3TQVY.mjs';
7
- import './chunk-Y6FXYEAI.mjs';
@@ -1,2 +1,2 @@
1
- export { c as RetrayProvider, d as RetrayProviderProps } from './index-CY34hxPN.mjs';
1
+ export { c as RetrayProvider, d as RetrayProviderProps } from './index-CinAt5Uo.mjs';
2
2
  import 'react';
@@ -1,2 +1,2 @@
1
- export { c as RetrayProvider, d as RetrayProviderProps } from './index-CY34hxPN.js';
1
+ export { c as RetrayProvider, d as RetrayProviderProps } from './index-CinAt5Uo.js';
2
2
  import 'react';
@@ -33,23 +33,6 @@ function componentToHex(c) {
33
33
  function rgbToHex(r, g, b) {
34
34
  return `#${componentToHex(r)}${componentToHex(g)}${componentToHex(b)}`;
35
35
  }
36
- function withAlphaOnWhite(hex, alpha) {
37
- const rgb = hexToRgb(hex);
38
- if (!rgb) return hex;
39
- const r = rgb.r * alpha + 255 * (1 - alpha);
40
- const g = rgb.g * alpha + 255 * (1 - alpha);
41
- const b = rgb.b * alpha + 255 * (1 - alpha);
42
- return rgbToHex(r, g, b);
43
- }
44
- function withAlphaOnDark(hex, alpha, bgHex = "#0f0f0f") {
45
- const rgb = hexToRgb(hex);
46
- const bg = hexToRgb(bgHex);
47
- if (!rgb || !bg) return hex;
48
- const r = rgb.r * alpha + bg.r * (1 - alpha);
49
- const g = rgb.g * alpha + bg.g * (1 - alpha);
50
- const b = rgb.b * alpha + bg.b * (1 - alpha);
51
- return rgbToHex(r, g, b);
52
- }
53
36
  function mixWithBackground(fgHex, bgHex, opacity) {
54
37
  const fg = hexToRgb(fgHex);
55
38
  const bg = hexToRgb(bgHex);
@@ -59,13 +42,11 @@ function mixWithBackground(fgHex, bgHex, opacity) {
59
42
  const b = fg.b * opacity + bg.b * (1 - opacity);
60
43
  return rgbToHex(r, g, b);
61
44
  }
62
- function lighten(hex, amount) {
63
- return withAlphaOnWhite(hex, 1 - amount);
64
- }
65
- function darken(hex, amount) {
66
- const rgb = hexToRgb(hex);
67
- if (!rgb) return hex;
68
- return rgbToHex(rgb.r * (1 - amount), rgb.g * (1 - amount), rgb.b * (1 - amount));
45
+ function createColorPair(fg, bg, dark) {
46
+ return {
47
+ tint: mixWithBackground(fg, dark ? bg : "#ffffff", dark ? 0.15 : 0.08),
48
+ border: mixWithBackground(fg, dark ? bg : "#ffffff", dark ? 0.45 : 0.3)
49
+ };
69
50
  }
70
51
  var defaultLight = {
71
52
  background: "#ffffff",
@@ -108,17 +89,16 @@ var defaultDark = {
108
89
  function deriveColors(t, scheme) {
109
90
  const dark = scheme === "dark";
110
91
  const bg = t.background;
92
+ const WHITE = "#ffffff";
93
+ const BLACK = "#000000";
111
94
  const foregroundSubtle = mixWithBackground(t.foreground, bg, 0.7);
112
95
  const foregroundMuted = mixWithBackground(t.foreground, bg, 0.62);
113
- const surface = dark ? lighten(bg, -0.06) : darken(bg, 0.04);
114
- const surfaceStrong = dark ? lighten(bg, -0.12) : darken(bg, 0.08);
115
- const skeleton = dark ? lighten(bg, -0.1) : darken(bg, 0.1);
116
- const destructiveTint = dark ? withAlphaOnDark(t.destructive, 0.15, bg) : withAlphaOnWhite(t.destructive, 0.08);
117
- const destructiveBorder = dark ? withAlphaOnDark(t.destructive, 0.45, bg) : withAlphaOnWhite(t.destructive, 0.3);
118
- const successTint = dark ? withAlphaOnDark(t.success, 0.15, bg) : withAlphaOnWhite(t.success, 0.08);
119
- const successBorder = dark ? withAlphaOnDark(t.success, 0.45, bg) : withAlphaOnWhite(t.success, 0.3);
120
- const warningTint = dark ? withAlphaOnDark(t.warning, 0.15, bg) : withAlphaOnWhite(t.warning, 0.08);
121
- const warningBorder = dark ? withAlphaOnDark(t.warning, 0.45, bg) : withAlphaOnWhite(t.warning, 0.3);
96
+ const surface = dark ? mixWithBackground(bg, BLACK, 0.94) : mixWithBackground(bg, BLACK, 0.96);
97
+ const surfaceStrong = dark ? mixWithBackground(bg, BLACK, 0.88) : mixWithBackground(bg, BLACK, 0.92);
98
+ const skeleton = dark ? mixWithBackground(bg, BLACK, 0.9) : mixWithBackground(bg, BLACK, 0.9);
99
+ const { tint: destructiveTint, border: destructiveBorder } = createColorPair(t.destructive, bg, dark);
100
+ const { tint: successTint, border: successBorder } = createColorPair(t.success, bg, dark);
101
+ const { tint: warningTint, border: warningBorder } = createColorPair(t.warning, bg, dark);
122
102
  return {
123
103
  ...t,
124
104
  foregroundSubtle,
@@ -137,7 +117,7 @@ function deriveColors(t, scheme) {
137
117
  accentForegroundResolved: t.accentForeground ?? t.primaryForeground,
138
118
  ring: t.accent ?? t.primary,
139
119
  input: t.border,
140
- separator: dark ? lighten(t.border, 0.22) : darken(t.border, 0.16)
120
+ separator: dark ? mixWithBackground(t.border, WHITE, 0.78) : mixWithBackground(t.border, BLACK, 0.84)
141
121
  };
142
122
  }
143
123
 
@@ -1,5 +1,4 @@
1
- export { RetrayProvider } from './chunk-ERWJPVX7.mjs';
2
- import './chunk-SZEKQAOY.mjs';
3
- import './chunk-KSSVIFYR.mjs';
1
+ export { RetrayProvider } from './chunk-XKBB2UZU.mjs';
2
+ import './chunk-VSKBODEY.mjs';
3
+ import './chunk-ZQGCQ7SA.mjs';
4
4
  import './chunk-2CE3TQVY.mjs';
5
- import './chunk-Y6FXYEAI.mjs';
@@ -0,0 +1,24 @@
1
+ import React__default from 'react';
2
+ import { ViewStyle } from 'react-native';
3
+
4
+ interface ScreenContainerProps {
5
+ children: React__default.ReactNode;
6
+ /** Maximum width in points. Defaults to BREAKPOINTS.wide (700). Set to 0 to disable. */
7
+ maxWidth?: number;
8
+ /** Enable scroll. Default false. */
9
+ scroll?: boolean;
10
+ /** Background color. Defaults to theme `background`. */
11
+ backgroundColor?: string;
12
+ /** Padding top override. Defaults to safe area top. */
13
+ paddingTop?: number;
14
+ /** Padding bottom override. Defaults to safe area bottom. */
15
+ paddingBottom?: number;
16
+ /** Horizontal padding. Defaults to 0. */
17
+ paddingHorizontal?: number;
18
+ /** Enable keyboard avoidance. Default false. */
19
+ keyboard?: boolean;
20
+ style?: ViewStyle;
21
+ }
22
+ declare function ScreenContainer({ children, maxWidth, scroll, backgroundColor, paddingTop, paddingBottom, paddingHorizontal, keyboard, style: _style, }: ScreenContainerProps): React__default.JSX.Element;
23
+
24
+ export { ScreenContainer, type ScreenContainerProps };
@@ -0,0 +1,24 @@
1
+ import React__default from 'react';
2
+ import { ViewStyle } from 'react-native';
3
+
4
+ interface ScreenContainerProps {
5
+ children: React__default.ReactNode;
6
+ /** Maximum width in points. Defaults to BREAKPOINTS.wide (700). Set to 0 to disable. */
7
+ maxWidth?: number;
8
+ /** Enable scroll. Default false. */
9
+ scroll?: boolean;
10
+ /** Background color. Defaults to theme `background`. */
11
+ backgroundColor?: string;
12
+ /** Padding top override. Defaults to safe area top. */
13
+ paddingTop?: number;
14
+ /** Padding bottom override. Defaults to safe area bottom. */
15
+ paddingBottom?: number;
16
+ /** Horizontal padding. Defaults to 0. */
17
+ paddingHorizontal?: number;
18
+ /** Enable keyboard avoidance. Default false. */
19
+ keyboard?: boolean;
20
+ style?: ViewStyle;
21
+ }
22
+ declare function ScreenContainer({ children, maxWidth, scroll, backgroundColor, paddingTop, paddingBottom, paddingHorizontal, keyboard, style: _style, }: ScreenContainerProps): React__default.JSX.Element;
23
+
24
+ export { ScreenContainer, type ScreenContainerProps };
@@ -0,0 +1,85 @@
1
+ 'use strict';
2
+
3
+ var React2 = require('react');
4
+ var reactNative = require('react-native');
5
+ var reactNativeSafeAreaContext = require('react-native-safe-area-context');
6
+
7
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
8
+
9
+ var React2__default = /*#__PURE__*/_interopDefault(React2);
10
+
11
+ // src/components/ScreenContainer/ScreenContainer.tsx
12
+ var ThemeContext = React2.createContext(void 0);
13
+ function useTheme() {
14
+ const context = React2.useContext(ThemeContext);
15
+ if (!context) {
16
+ throw new Error("useTheme must be used within a ThemeProvider");
17
+ }
18
+ return context;
19
+ }
20
+
21
+ // src/tokens.ts
22
+ var BREAKPOINTS = {
23
+ wide: 700
24
+ };
25
+
26
+ // src/components/ScreenContainer/ScreenContainer.tsx
27
+ function ScreenContainer({
28
+ children,
29
+ maxWidth = BREAKPOINTS.wide,
30
+ scroll = false,
31
+ backgroundColor,
32
+ paddingTop,
33
+ paddingBottom,
34
+ paddingHorizontal,
35
+ keyboard = false,
36
+ style: _style
37
+ }) {
38
+ const insets = reactNativeSafeAreaContext.useSafeAreaInsets();
39
+ const { colors } = useTheme();
40
+ const wrapperStyle = {
41
+ flex: 1,
42
+ backgroundColor: backgroundColor ?? colors.background,
43
+ paddingTop: paddingTop ?? insets.top,
44
+ paddingBottom: paddingBottom ?? insets.bottom,
45
+ paddingHorizontal: paddingHorizontal ?? 0,
46
+ ..._style
47
+ };
48
+ const inner = /* @__PURE__ */ React2__default.default.createElement(reactNative.View, { style: [styles.inner, { maxWidth: maxWidth || void 0 }] }, children);
49
+ const content = scroll ? /* @__PURE__ */ React2__default.default.createElement(
50
+ reactNative.ScrollView,
51
+ {
52
+ style: styles.scroll,
53
+ contentContainerStyle: styles.scrollContent,
54
+ keyboardShouldPersistTaps: "handled"
55
+ },
56
+ inner
57
+ ) : inner;
58
+ if (keyboard) {
59
+ return /* @__PURE__ */ React2__default.default.createElement(
60
+ reactNative.KeyboardAvoidingView,
61
+ {
62
+ style: wrapperStyle,
63
+ behavior: reactNative.Platform.OS === "ios" ? "padding" : void 0,
64
+ keyboardVerticalOffset: reactNative.Platform.OS === "ios" ? 0 : 0
65
+ },
66
+ content
67
+ );
68
+ }
69
+ return /* @__PURE__ */ React2__default.default.createElement(reactNative.View, { style: wrapperStyle }, content);
70
+ }
71
+ var styles = reactNative.StyleSheet.create({
72
+ scroll: {
73
+ flex: 1
74
+ },
75
+ scrollContent: {
76
+ flexGrow: 1
77
+ },
78
+ inner: {
79
+ flex: 1,
80
+ alignSelf: "center",
81
+ width: "100%"
82
+ }
83
+ });
84
+
85
+ exports.ScreenContainer = ScreenContainer;
@@ -0,0 +1,3 @@
1
+ export { ScreenContainer } from './chunk-WR6DCNAE.mjs';
2
+ import './chunk-DYYPDQA2.mjs';
3
+ import './chunk-ZQGCQ7SA.mjs';
package/dist/Select.d.mts CHANGED
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import React__default from 'react';
2
2
  import { ViewStyle } from 'react-native';
3
3
 
4
4
  interface SelectOption {
@@ -17,7 +17,8 @@ interface SelectProps {
17
17
  disabled?: boolean;
18
18
  style?: ViewStyle;
19
19
  accessibilityLabel?: string;
20
+ accessibilityHint?: string;
20
21
  }
21
- declare function Select({ options, value, onValueChange, placeholder, label, hint, error, disabled, style, accessibilityLabel, }: SelectProps): React.JSX.Element;
22
+ declare function Select({ options, value, onValueChange, placeholder, label, hint, error, disabled, style, accessibilityLabel, accessibilityHint, }: SelectProps): React__default.JSX.Element;
22
23
 
23
24
  export { Select, type SelectOption, type SelectProps };
package/dist/Select.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import React__default from 'react';
2
2
  import { ViewStyle } from 'react-native';
3
3
 
4
4
  interface SelectOption {
@@ -17,7 +17,8 @@ interface SelectProps {
17
17
  disabled?: boolean;
18
18
  style?: ViewStyle;
19
19
  accessibilityLabel?: string;
20
+ accessibilityHint?: string;
20
21
  }
21
- declare function Select({ options, value, onValueChange, placeholder, label, hint, error, disabled, style, accessibilityLabel, }: SelectProps): React.JSX.Element;
22
+ declare function Select({ options, value, onValueChange, placeholder, label, hint, error, disabled, style, accessibilityLabel, accessibilityHint, }: SelectProps): React__default.JSX.Element;
22
23
 
23
24
  export { Select, type SelectOption, type SelectProps };
package/dist/Select.js CHANGED
@@ -4,30 +4,39 @@ var React2 = require('react');
4
4
  var reactNative = require('react-native');
5
5
  var picker = require('@react-native-picker/picker');
6
6
  var vectorIcons = require('@expo/vector-icons');
7
+ var Haptics = require('expo-haptics');
7
8
  var reactNativeSizeMatters = require('react-native-size-matters');
8
9
  var pressto = require('pressto');
9
10
 
10
11
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
11
12
 
13
+ function _interopNamespace(e) {
14
+ if (e && e.__esModule) return e;
15
+ var n = Object.create(null);
16
+ if (e) {
17
+ Object.keys(e).forEach(function (k) {
18
+ if (k !== 'default') {
19
+ var d = Object.getOwnPropertyDescriptor(e, k);
20
+ Object.defineProperty(n, k, d.get ? d : {
21
+ enumerable: true,
22
+ get: function () { return e[k]; }
23
+ });
24
+ }
25
+ });
26
+ }
27
+ n.default = e;
28
+ return Object.freeze(n);
29
+ }
30
+
12
31
  var React2__default = /*#__PURE__*/_interopDefault(React2);
32
+ var Haptics__namespace = /*#__PURE__*/_interopNamespace(Haptics);
13
33
 
14
34
  // src/components/Select/Select.tsx
15
- var _haptics = null;
16
- var _loaded = false;
17
- async function getHaptics() {
18
- if (reactNative.Platform.OS === "web") return null;
19
- if (!_loaded) {
20
- _loaded = true;
21
- try {
22
- _haptics = await import('expo-haptics');
23
- } catch {
24
- _haptics = null;
25
- }
26
- }
27
- return _haptics;
35
+ function maybeHaptics() {
36
+ return reactNative.Platform.OS === "web" ? null : Haptics__namespace;
28
37
  }
29
38
  function selectionAsync() {
30
- getHaptics().then((h) => h?.selectionAsync());
39
+ maybeHaptics()?.selectionAsync();
31
40
  }
32
41
  var ThemeContext = React2.createContext(void 0);
33
42
  function useTheme() {
@@ -65,13 +74,26 @@ function Select({
65
74
  error,
66
75
  disabled,
67
76
  style,
68
- accessibilityLabel
77
+ accessibilityLabel,
78
+ accessibilityHint
69
79
  }) {
70
80
  const { colors } = useTheme();
71
81
  const [pickerVisible, setPickerVisible] = React2.useState(false);
72
82
  const [pendingValue, setPendingValue] = React2.useState(value);
73
83
  const pickerRef = React2.useRef(null);
74
84
  const selected = options.find((o) => o.value === value);
85
+ function renderPickerItems(includePlaceholder, itemColor, disabledColor) {
86
+ return /* @__PURE__ */ React2__default.default.createElement(React2__default.default.Fragment, null, includePlaceholder ? /* @__PURE__ */ React2__default.default.createElement(picker.Picker.Item, { label: placeholder, value: "", enabled: false, color: disabledColor }) : null, options.map((o) => /* @__PURE__ */ React2__default.default.createElement(
87
+ picker.Picker.Item,
88
+ {
89
+ key: o.value,
90
+ label: o.label,
91
+ value: o.value,
92
+ enabled: !o.disabled,
93
+ color: o.disabled ? disabledColor : itemColor
94
+ }
95
+ )));
96
+ }
75
97
  const handleOpen = () => {
76
98
  if (disabled) return;
77
99
  selectionAsync();
@@ -109,6 +131,7 @@ function Select({
109
131
  touchSoundDisabled: true,
110
132
  accessibilityRole: "combobox",
111
133
  accessibilityLabel: accessibilityLabel ?? label,
134
+ accessibilityHint,
112
135
  accessibilityValue: { text: selected?.label ?? placeholder },
113
136
  accessibilityState: { disabled: !!disabled, expanded: pickerVisible }
114
137
  },
@@ -141,17 +164,7 @@ function Select({
141
164
  onValueChange: (val) => setPendingValue(val),
142
165
  itemStyle: { color: colors.foreground }
143
166
  },
144
- !value ? /* @__PURE__ */ React2__default.default.createElement(picker.Picker.Item, { label: placeholder, value: "", color: colors.foregroundMuted, enabled: false }) : null,
145
- options.map((o) => /* @__PURE__ */ React2__default.default.createElement(
146
- picker.Picker.Item,
147
- {
148
- key: o.value,
149
- label: o.label,
150
- value: o.value,
151
- enabled: !o.disabled,
152
- color: o.disabled ? colors.foregroundMuted : colors.foreground
153
- }
154
- ))
167
+ renderPickerItems(!value, colors.foreground, colors.foregroundMuted)
155
168
  ))
156
169
  ) : null, isAndroid ? /* @__PURE__ */ React2__default.default.createElement(
157
170
  picker.Picker,
@@ -169,16 +182,7 @@ function Select({
169
182
  prompt: label,
170
183
  style: styles.androidHiddenPicker
171
184
  },
172
- !value ? /* @__PURE__ */ React2__default.default.createElement(picker.Picker.Item, { label: placeholder, value: "", enabled: false }) : null,
173
- options.map((o) => /* @__PURE__ */ React2__default.default.createElement(
174
- picker.Picker.Item,
175
- {
176
- key: o.value,
177
- label: o.label,
178
- value: o.value,
179
- enabled: !o.disabled
180
- }
181
- ))
185
+ renderPickerItems(!value)
182
186
  ) : null, isWeb2 ? /* @__PURE__ */ React2__default.default.createElement(
183
187
  picker.Picker,
184
188
  {
@@ -199,16 +203,7 @@ function Select({
199
203
  }
200
204
  ]
201
205
  },
202
- /* @__PURE__ */ React2__default.default.createElement(picker.Picker.Item, { label: placeholder, value: "", enabled: false }),
203
- options.map((o) => /* @__PURE__ */ React2__default.default.createElement(
204
- picker.Picker.Item,
205
- {
206
- key: o.value,
207
- label: o.label,
208
- value: o.value,
209
- enabled: !o.disabled
210
- }
211
- ))
206
+ renderPickerItems(true)
212
207
  ) : null, error ? /* @__PURE__ */ React2__default.default.createElement(reactNative.Text, { style: [styles.helperText, { color: colors.destructive }], allowFontScaling: true }, error) : !error && hint ? /* @__PURE__ */ React2__default.default.createElement(reactNative.Text, { style: [styles.helperText, { color: colors.foregroundMuted }], allowFontScaling: true }, hint) : null);
213
208
  }
214
209
  var styles = reactNative.StyleSheet.create({
package/dist/Select.mjs CHANGED
@@ -1,6 +1,5 @@
1
- export { Select } from './chunk-URIH43IJ.mjs';
1
+ export { Select } from './chunk-RLPPRIJ7.mjs';
2
2
  import './chunk-IFYMBOEN.mjs';
3
- import './chunk-ARONDO7M.mjs';
4
- import './chunk-KSSVIFYR.mjs';
3
+ import './chunk-CTUFFKGS.mjs';
4
+ import './chunk-ZQGCQ7SA.mjs';
5
5
  import './chunk-2CE3TQVY.mjs';
6
- import './chunk-Y6FXYEAI.mjs';
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import React__default from 'react';
2
2
  import { ViewStyle } from 'react-native';
3
3
 
4
4
  type SelectType = 'radio' | 'checkbox';
@@ -10,18 +10,18 @@ interface SelectableCardGroupProps {
10
10
  variant?: CardVariant;
11
11
  gap?: number;
12
12
  style?: ViewStyle;
13
- children: React.ReactNode;
13
+ children: React__default.ReactNode;
14
14
  }
15
- declare function SelectableCardGroup({ type, value, onValueChange, variant, gap, style, children, }: SelectableCardGroupProps): React.JSX.Element;
15
+ declare function SelectableCardGroup({ type, value, onValueChange, variant, gap, style, children, }: SelectableCardGroupProps): React__default.JSX.Element;
16
16
  interface SelectableCardProps {
17
17
  value: string;
18
18
  title: string;
19
19
  description?: string;
20
20
  iconName?: string;
21
- icon?: React.ReactNode;
21
+ icon?: React__default.ReactNode;
22
22
  disabled?: boolean;
23
23
  style?: ViewStyle;
24
24
  }
25
- declare function SelectableCard({ value, title, description, iconName, icon, disabled, style, }: SelectableCardProps): React.JSX.Element;
25
+ declare function SelectableCard({ value, title, description, iconName, icon, disabled, style, }: SelectableCardProps): React__default.JSX.Element;
26
26
 
27
27
  export { SelectableCard, SelectableCardGroup, type SelectableCardGroupProps, type SelectableCardProps };
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import React__default from 'react';
2
2
  import { ViewStyle } from 'react-native';
3
3
 
4
4
  type SelectType = 'radio' | 'checkbox';
@@ -10,18 +10,18 @@ interface SelectableCardGroupProps {
10
10
  variant?: CardVariant;
11
11
  gap?: number;
12
12
  style?: ViewStyle;
13
- children: React.ReactNode;
13
+ children: React__default.ReactNode;
14
14
  }
15
- declare function SelectableCardGroup({ type, value, onValueChange, variant, gap, style, children, }: SelectableCardGroupProps): React.JSX.Element;
15
+ declare function SelectableCardGroup({ type, value, onValueChange, variant, gap, style, children, }: SelectableCardGroupProps): React__default.JSX.Element;
16
16
  interface SelectableCardProps {
17
17
  value: string;
18
18
  title: string;
19
19
  description?: string;
20
20
  iconName?: string;
21
- icon?: React.ReactNode;
21
+ icon?: React__default.ReactNode;
22
22
  disabled?: boolean;
23
23
  style?: ViewStyle;
24
24
  }
25
- declare function SelectableCard({ value, title, description, iconName, icon, disabled, style, }: SelectableCardProps): React.JSX.Element;
25
+ declare function SelectableCard({ value, title, description, iconName, icon, disabled, style, }: SelectableCardProps): React__default.JSX.Element;
26
26
 
27
27
  export { SelectableCard, SelectableCardGroup, type SelectableCardGroupProps, type SelectableCardProps };
@@ -3,6 +3,7 @@
3
3
  var React3 = require('react');
4
4
  var reactNative = require('react-native');
5
5
  var reactNativeEase = require('react-native-ease');
6
+ var Haptics = require('expo-haptics');
6
7
  var reactNativeSizeMatters = require('react-native-size-matters');
7
8
  var AntDesign = require('@expo/vector-icons/AntDesign');
8
9
  var Entypo = require('@expo/vector-icons/Entypo');
@@ -13,7 +14,26 @@ var Ionicons = require('@expo/vector-icons/Ionicons');
13
14
 
14
15
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
15
16
 
17
+ function _interopNamespace(e) {
18
+ if (e && e.__esModule) return e;
19
+ var n = Object.create(null);
20
+ if (e) {
21
+ Object.keys(e).forEach(function (k) {
22
+ if (k !== 'default') {
23
+ var d = Object.getOwnPropertyDescriptor(e, k);
24
+ Object.defineProperty(n, k, d.get ? d : {
25
+ enumerable: true,
26
+ get: function () { return e[k]; }
27
+ });
28
+ }
29
+ });
30
+ }
31
+ n.default = e;
32
+ return Object.freeze(n);
33
+ }
34
+
16
35
  var React3__default = /*#__PURE__*/_interopDefault(React3);
36
+ var Haptics__namespace = /*#__PURE__*/_interopNamespace(Haptics);
17
37
  var AntDesign__default = /*#__PURE__*/_interopDefault(AntDesign);
18
38
  var Entypo__default = /*#__PURE__*/_interopDefault(Entypo);
19
39
  var Feather__default = /*#__PURE__*/_interopDefault(Feather);
@@ -22,22 +42,11 @@ var MaterialIcons__default = /*#__PURE__*/_interopDefault(MaterialIcons);
22
42
  var Ionicons__default = /*#__PURE__*/_interopDefault(Ionicons);
23
43
 
24
44
  // src/components/SelectableCard/SelectableCard.tsx
25
- var _haptics = null;
26
- var _loaded = false;
27
- async function getHaptics() {
28
- if (reactNative.Platform.OS === "web") return null;
29
- if (!_loaded) {
30
- _loaded = true;
31
- try {
32
- _haptics = await import('expo-haptics');
33
- } catch {
34
- _haptics = null;
35
- }
36
- }
37
- return _haptics;
45
+ function maybeHaptics() {
46
+ return reactNative.Platform.OS === "web" ? null : Haptics__namespace;
38
47
  }
39
48
  function impactLight() {
40
- getHaptics().then((h) => h?.impactAsync(h.ImpactFeedbackStyle.Light));
49
+ maybeHaptics()?.impactAsync(Haptics__namespace.ImpactFeedbackStyle.Light);
41
50
  }
42
51
  var ThemeContext = React3.createContext(void 0);
43
52
  function useTheme() {
@@ -64,23 +73,17 @@ var ALL_FAMILIES = [
64
73
  { name: "MaterialIcons", component: MaterialIcons__default.default },
65
74
  { name: "Ionicons", component: Ionicons__default.default }
66
75
  ];
67
- var glyphCacheInitialized = false;
68
- function ensureGlyphCache() {
69
- if (glyphCacheInitialized) return;
70
- glyphCacheInitialized = true;
71
- for (const entry of ALL_FAMILIES) {
72
- try {
73
- entry.glyphMap = entry.component.glyphMap;
74
- } catch {
75
- entry.glyphMap = {};
76
- }
76
+ function getGlyphMap(component) {
77
+ try {
78
+ return component.glyphMap ?? {};
79
+ } catch {
80
+ return {};
77
81
  }
78
82
  }
79
83
  function Icon({ name, size, color, family }) {
80
- ensureGlyphCache();
81
84
  const entry = family ? ALL_FAMILIES.find((f) => f.name === family) : ALL_FAMILIES.find((f) => {
82
- const glyphMap = f.glyphMap;
83
- return glyphMap ? name in glyphMap : false;
85
+ const glyphMap = getGlyphMap(f.component);
86
+ return name in glyphMap;
84
87
  });
85
88
  if (!entry) return null;
86
89
  return React3__default.default.createElement(entry.component, { name, size, color });
@@ -1,8 +1,7 @@
1
- export { SelectableCard, SelectableCardGroup } from './chunk-BULKGOIZ.mjs';
1
+ export { SelectableCard, SelectableCardGroup } from './chunk-FE26TPCI.mjs';
2
2
  import './chunk-M53LC4Q7.mjs';
3
- import './chunk-ARONDO7M.mjs';
4
- import './chunk-QY3X2UYR.mjs';
5
- import './chunk-MZ6WRTD2.mjs';
6
- import './chunk-KSSVIFYR.mjs';
3
+ import './chunk-CTUFFKGS.mjs';
4
+ import './chunk-DYYPDQA2.mjs';
5
+ import './chunk-24JTXQ2M.mjs';
6
+ import './chunk-ZQGCQ7SA.mjs';
7
7
  import './chunk-2CE3TQVY.mjs';
8
- import './chunk-Y6FXYEAI.mjs';