@retray-dev/ui-kit 13.2.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 (334) hide show
  1. package/CHANGELOG.md +680 -0
  2. package/CONSUMER.md +2 -0
  3. package/README.md +4 -4
  4. package/SKILL.md +276 -12
  5. package/dist/Accordion.d.mts +6 -6
  6. package/dist/Accordion.d.ts +6 -6
  7. package/dist/Accordion.js +39 -40
  8. package/dist/Accordion.mjs +4 -4
  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 -4
  13. package/dist/AppHeader.d.mts +4 -4
  14. package/dist/AppHeader.d.ts +4 -4
  15. package/dist/AppHeader.js +37 -28
  16. package/dist/AppHeader.mjs +6 -6
  17. package/dist/Avatar.d.mts +4 -4
  18. package/dist/Avatar.d.ts +4 -4
  19. package/dist/Avatar.mjs +2 -2
  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 -3
  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 -5
  28. package/dist/ButtonGroup.d.mts +3 -3
  29. package/dist/ButtonGroup.d.ts +3 -3
  30. package/dist/Card.d.mts +13 -13
  31. package/dist/Card.d.ts +13 -13
  32. package/dist/Card.js +23 -14
  33. package/dist/Card.mjs +4 -4
  34. package/dist/CategoryStrip.d.mts +3 -3
  35. package/dist/CategoryStrip.d.ts +3 -3
  36. package/dist/CategoryStrip.js +30 -27
  37. package/dist/CategoryStrip.mjs +5 -5
  38. package/dist/Checkbox.d.mts +2 -2
  39. package/dist/Checkbox.d.ts +2 -2
  40. package/dist/Checkbox.js +23 -14
  41. package/dist/Checkbox.mjs +3 -3
  42. package/dist/Chip.d.mts +5 -5
  43. package/dist/Chip.d.ts +5 -5
  44. package/dist/Chip.js +30 -27
  45. package/dist/Chip.mjs +5 -5
  46. package/dist/ConfirmDialog.d.mts +2 -2
  47. package/dist/ConfirmDialog.d.ts +2 -2
  48. package/dist/ConfirmDialog.js +64 -58
  49. package/dist/ConfirmDialog.mjs +7 -6
  50. package/dist/CurrencyDisplay.d.mts +3 -3
  51. package/dist/CurrencyDisplay.d.ts +3 -3
  52. package/dist/CurrencyDisplay.mjs +2 -2
  53. package/dist/CurrencyInput.d.mts +2 -2
  54. package/dist/CurrencyInput.d.ts +2 -2
  55. package/dist/CurrencyInput.js +7 -13
  56. package/dist/CurrencyInput.mjs +4 -4
  57. package/dist/DetailRow.d.mts +6 -6
  58. package/dist/DetailRow.d.ts +6 -6
  59. package/dist/DetailRow.js +7 -13
  60. package/dist/DetailRow.mjs +3 -3
  61. package/dist/EmptyState.d.mts +4 -4
  62. package/dist/EmptyState.d.ts +4 -4
  63. package/dist/EmptyState.js +31 -29
  64. package/dist/EmptyState.mjs +6 -6
  65. package/dist/ErrorBoundary.d.mts +9 -7
  66. package/dist/ErrorBoundary.d.ts +9 -7
  67. package/dist/ErrorBoundary.js +33 -29
  68. package/dist/ErrorBoundary.mjs +5 -5
  69. package/dist/Form.d.mts +9 -9
  70. package/dist/Form.d.ts +9 -9
  71. package/dist/Form.mjs +2 -2
  72. package/dist/HolographicCard.d.mts +2 -2
  73. package/dist/HolographicCard.d.ts +2 -2
  74. package/dist/HolographicCard.js +23 -14
  75. package/dist/HolographicCard.mjs +2 -2
  76. package/dist/IconButton.d.mts +4 -4
  77. package/dist/IconButton.d.ts +4 -4
  78. package/dist/IconButton.js +30 -27
  79. package/dist/IconButton.mjs +4 -4
  80. package/dist/IconPicker.d.mts +2 -2
  81. package/dist/IconPicker.d.ts +2 -2
  82. package/dist/IconPicker.js +40 -45
  83. package/dist/IconPicker.mjs +6 -6
  84. package/dist/Image.d.mts +18 -0
  85. package/dist/Image.d.ts +18 -0
  86. package/dist/Image.js +53 -0
  87. package/dist/Image.mjs +2 -0
  88. package/dist/ImageUpload.d.mts +2 -2
  89. package/dist/ImageUpload.d.ts +2 -2
  90. package/dist/ImageUpload.js +24 -15
  91. package/dist/ImageUpload.mjs +5 -5
  92. package/dist/ImageViewer.d.mts +2 -2
  93. package/dist/ImageViewer.d.ts +2 -2
  94. package/dist/ImageViewer.js +31 -28
  95. package/dist/ImageViewer.mjs +6 -6
  96. package/dist/Input.d.mts +4 -4
  97. package/dist/Input.d.ts +4 -4
  98. package/dist/Input.js +7 -13
  99. package/dist/Input.mjs +3 -3
  100. package/dist/ItemGroup.d.mts +23 -0
  101. package/dist/ItemGroup.d.ts +23 -0
  102. package/dist/{ListGroup.js → ItemGroup.js} +11 -13
  103. package/dist/ItemGroup.mjs +4 -0
  104. package/dist/LabelValue.d.mts +4 -4
  105. package/dist/LabelValue.d.ts +4 -4
  106. package/dist/LabelValue.js +7 -13
  107. package/dist/LabelValue.mjs +3 -3
  108. package/dist/ListItem.d.mts +6 -6
  109. package/dist/ListItem.d.ts +6 -6
  110. package/dist/ListItem.js +30 -27
  111. package/dist/ListItem.mjs +5 -5
  112. package/dist/MediaCard.d.mts +6 -6
  113. package/dist/MediaCard.d.ts +6 -6
  114. package/dist/MediaCard.js +30 -27
  115. package/dist/MediaCard.mjs +5 -5
  116. package/dist/MenuItem.d.mts +5 -5
  117. package/dist/MenuItem.d.ts +5 -5
  118. package/dist/MenuItem.js +30 -27
  119. package/dist/MenuItem.mjs +5 -5
  120. package/dist/MonthPicker.d.mts +2 -2
  121. package/dist/MonthPicker.d.ts +2 -2
  122. package/dist/MonthPicker.js +23 -14
  123. package/dist/MonthPicker.mjs +3 -3
  124. package/dist/NumberStepper.d.mts +3 -3
  125. package/dist/NumberStepper.d.ts +3 -3
  126. package/dist/NumberStepper.js +30 -27
  127. package/dist/NumberStepper.mjs +5 -5
  128. package/dist/PagerDots.d.mts +2 -2
  129. package/dist/PagerDots.d.ts +2 -2
  130. package/dist/PagerDots.js +30 -27
  131. package/dist/PagerDots.mjs +4 -4
  132. package/dist/Pressable.d.mts +3 -27
  133. package/dist/Pressable.d.ts +3 -27
  134. package/dist/Pressable.js +23 -14
  135. package/dist/Pressable.mjs +2 -2
  136. package/dist/PricingCard.d.mts +2 -2
  137. package/dist/PricingCard.d.ts +2 -2
  138. package/dist/PricingCard.js +31 -29
  139. package/dist/PricingCard.mjs +7 -7
  140. package/dist/Progress.d.mts +2 -2
  141. package/dist/Progress.d.ts +2 -2
  142. package/dist/Progress.mjs +2 -2
  143. package/dist/RadioGroup.d.mts +2 -2
  144. package/dist/RadioGroup.d.ts +2 -2
  145. package/dist/RadioGroup.js +23 -14
  146. package/dist/RadioGroup.mjs +3 -3
  147. package/dist/RetrayProvider.d.mts +1 -1
  148. package/dist/RetrayProvider.d.ts +1 -1
  149. package/dist/RetrayProvider.js +14 -34
  150. package/dist/RetrayProvider.mjs +3 -3
  151. package/dist/ScreenContainer.d.mts +24 -0
  152. package/dist/ScreenContainer.d.ts +24 -0
  153. package/dist/ScreenContainer.js +85 -0
  154. package/dist/ScreenContainer.mjs +3 -0
  155. package/dist/Select.d.mts +2 -2
  156. package/dist/Select.d.ts +2 -2
  157. package/dist/Select.js +38 -45
  158. package/dist/Select.mjs +3 -3
  159. package/dist/SelectableCard.d.mts +5 -5
  160. package/dist/SelectableCard.d.ts +5 -5
  161. package/dist/SelectableCard.js +30 -27
  162. package/dist/SelectableCard.mjs +5 -5
  163. package/dist/SelectableGrid.d.mts +5 -4
  164. package/dist/SelectableGrid.d.ts +5 -4
  165. package/dist/SelectableGrid.js +80 -44
  166. package/dist/SelectableGrid.mjs +5 -5
  167. package/dist/Separator.d.mts +4 -2
  168. package/dist/Separator.d.ts +4 -2
  169. package/dist/Separator.js +29 -1
  170. package/dist/Separator.mjs +3 -2
  171. package/dist/Sheet.d.mts +10 -10
  172. package/dist/Sheet.d.ts +10 -10
  173. package/dist/Sheet.js +59 -44
  174. package/dist/Sheet.mjs +4 -3
  175. package/dist/SheetSelect.d.mts +2 -2
  176. package/dist/SheetSelect.d.ts +2 -2
  177. package/dist/SheetSelect.js +30 -27
  178. package/dist/SheetSelect.mjs +5 -5
  179. package/dist/Skeleton.d.mts +5 -5
  180. package/dist/Skeleton.d.ts +5 -5
  181. package/dist/Skeleton.mjs +3 -3
  182. package/dist/Slider.d.mts +2 -2
  183. package/dist/Slider.d.ts +2 -2
  184. package/dist/Slider.js +23 -14
  185. package/dist/Slider.mjs +3 -3
  186. package/dist/Spinner.d.mts +2 -2
  187. package/dist/Spinner.d.ts +2 -2
  188. package/dist/Spinner.mjs +2 -2
  189. package/dist/Stats.d.mts +6 -6
  190. package/dist/Stats.d.ts +6 -6
  191. package/dist/Stats.js +30 -27
  192. package/dist/Stats.mjs +5 -5
  193. package/dist/Switch.d.mts +2 -2
  194. package/dist/Switch.d.ts +2 -2
  195. package/dist/Switch.js +23 -14
  196. package/dist/Switch.mjs +3 -3
  197. package/dist/TabBar.d.mts +3 -3
  198. package/dist/TabBar.d.ts +3 -3
  199. package/dist/TabBar.js +30 -27
  200. package/dist/TabBar.mjs +4 -4
  201. package/dist/Tabs.d.mts +13 -13
  202. package/dist/Tabs.d.ts +13 -13
  203. package/dist/Tabs.js +23 -14
  204. package/dist/Tabs.mjs +3 -3
  205. package/dist/Text.d.mts +4 -4
  206. package/dist/Text.d.ts +4 -4
  207. package/dist/Text.js +20 -2
  208. package/dist/Text.mjs +3 -3
  209. package/dist/Textarea.d.mts +3 -3
  210. package/dist/Textarea.d.ts +3 -3
  211. package/dist/Textarea.js +7 -13
  212. package/dist/Textarea.mjs +3 -3
  213. package/dist/Toast.d.mts +4 -4
  214. package/dist/Toast.d.ts +4 -4
  215. package/dist/Toast.mjs +2 -2
  216. package/dist/Toggle.d.mts +4 -4
  217. package/dist/Toggle.d.ts +4 -4
  218. package/dist/Toggle.js +30 -27
  219. package/dist/Toggle.mjs +4 -4
  220. package/dist/VirtualizedList.d.mts +28 -0
  221. package/dist/VirtualizedList.d.ts +28 -0
  222. package/dist/VirtualizedList.js +130 -0
  223. package/dist/VirtualizedList.mjs +3 -0
  224. package/dist/{chunk-MZ6WRTD2.mjs → chunk-24JTXQ2M.mjs} +7 -13
  225. package/dist/{chunk-OBV72JD4.mjs → chunk-2DDJ53DK.mjs} +9 -11
  226. package/dist/{chunk-H6MQL7PS.mjs → chunk-2J5OZOMX.mjs} +12 -6
  227. package/dist/{chunk-4NQFTHN3.mjs → chunk-3GE4UFV5.mjs} +2 -2
  228. package/dist/{chunk-KAGADD2O.mjs → chunk-3RIZCKRM.mjs} +2 -2
  229. package/dist/{chunk-DE25XTVQ.mjs → chunk-3VHFOSZR.mjs} +2 -2
  230. package/dist/{chunk-C5ZRMR2E.mjs → chunk-4PF4LKNT.mjs} +2 -2
  231. package/dist/{chunk-5MYNAAFE.mjs → chunk-5J7VKFSZ.mjs} +4 -4
  232. package/dist/{chunk-E2PONRJG.mjs → chunk-5TNQ573V.mjs} +2 -2
  233. package/dist/{chunk-CZN6L2QU.mjs → chunk-6T2DVIQT.mjs} +4 -4
  234. package/dist/{chunk-L3YKPTJQ.mjs → chunk-7CE6PDCQ.mjs} +2 -2
  235. package/dist/{chunk-Y6YS33GM.mjs → chunk-AHFEAY6M.mjs} +4 -4
  236. package/dist/{chunk-77UOVFIS.mjs → chunk-AZRATPNP.mjs} +2 -2
  237. package/dist/{chunk-UMZTPUB3.mjs → chunk-BGXOEFDM.mjs} +6 -31
  238. package/dist/{chunk-KC5QDYGZ.mjs → chunk-BMAAAJWN.mjs} +2 -2
  239. package/dist/{chunk-IJCMPVW5.mjs → chunk-BQMJQMWY.mjs} +2 -2
  240. package/dist/{chunk-COA2YZOX.mjs → chunk-BTPCY4C7.mjs} +4 -4
  241. package/dist/chunk-BVJAYPAD.mjs +55 -0
  242. package/dist/{chunk-RA6SAAFE.mjs → chunk-BWLVX2SQ.mjs} +4 -4
  243. package/dist/{chunk-HHOOFDBA.mjs → chunk-CCEM3HIJ.mjs} +5 -5
  244. package/dist/chunk-CTUFFKGS.mjs +30 -0
  245. package/dist/{chunk-EHGBHFMH.mjs → chunk-CYGYC7XT.mjs} +8 -4
  246. package/dist/{chunk-ESQDPO5E.mjs → chunk-DLAOTHHS.mjs} +7 -6
  247. package/dist/{chunk-QY3X2UYR.mjs → chunk-DYYPDQA2.mjs} +21 -7
  248. package/dist/{chunk-S44XWTTC.mjs → chunk-E4BJ5WXG.mjs} +3 -3
  249. package/dist/{chunk-HUSSF6TF.mjs → chunk-EQNCMDZC.mjs} +1 -1
  250. package/dist/{chunk-PI6RULJX.mjs → chunk-EQYTDFDD.mjs} +1 -1
  251. package/dist/{chunk-BULKGOIZ.mjs → chunk-FE26TPCI.mjs} +4 -4
  252. package/dist/{chunk-DBHSUUKU.mjs → chunk-FOUSI6JD.mjs} +1 -1
  253. package/dist/{chunk-KPTY7UYQ.mjs → chunk-GR7PKEKD.mjs} +1 -1
  254. package/dist/{chunk-RRKM4MKB.mjs → chunk-HLWGFBIF.mjs} +3 -3
  255. package/dist/chunk-HMKJGVXA.mjs +35 -0
  256. package/dist/{chunk-U6DEBYU5.mjs → chunk-IFGZUJFH.mjs} +3 -3
  257. package/dist/{chunk-2VIDP72N.mjs → chunk-K3V6OTVB.mjs} +1 -1
  258. package/dist/{chunk-K7TKID3V.mjs → chunk-K4YFTUMC.mjs} +3 -3
  259. package/dist/{chunk-NGEN2EES.mjs → chunk-MQAK2W6L.mjs} +14 -22
  260. package/dist/{chunk-CM2DG4MR.mjs → chunk-MSS3CD6F.mjs} +4 -4
  261. package/dist/{chunk-2QXJDRVU.mjs → chunk-NQYS6RPX.mjs} +4 -4
  262. package/dist/{chunk-62BBSSUF.mjs → chunk-P5KC3RTG.mjs} +1 -1
  263. package/dist/{chunk-K3QX2M26.mjs → chunk-PPKCGCZ3.mjs} +5 -5
  264. package/dist/{chunk-ITG4JQM3.mjs → chunk-QEE3EQ3N.mjs} +2 -2
  265. package/dist/{chunk-IDVUZIVY.mjs → chunk-RLPPRIJ7.mjs} +17 -33
  266. package/dist/{chunk-XCIG6HT2.mjs → chunk-S433IOQE.mjs} +2 -2
  267. package/dist/{chunk-IGU223UM.mjs → chunk-SWUZKVYO.mjs} +1 -1
  268. package/dist/{chunk-NPCBNGNE.mjs → chunk-T4KMKHTI.mjs} +55 -22
  269. package/dist/{chunk-7BZJRB77.mjs → chunk-UBTP4NPP.mjs} +4 -30
  270. package/dist/{chunk-TMH263OK.mjs → chunk-UEA2VYGW.mjs} +3 -3
  271. package/dist/chunk-VISIOH33.mjs +37 -0
  272. package/dist/{chunk-SZEKQAOY.mjs → chunk-VSKBODEY.mjs} +1 -1
  273. package/dist/{chunk-FTTI6T5Q.mjs → chunk-W422TEH2.mjs} +3 -3
  274. package/dist/{chunk-WIPEDNSD.mjs → chunk-WD5LBXPR.mjs} +4 -4
  275. package/dist/chunk-WFNGSYS4.mjs +111 -0
  276. package/dist/chunk-WR6DCNAE.mjs +65 -0
  277. package/dist/{chunk-ERWJPVX7.mjs → chunk-XKBB2UZU.mjs} +2 -2
  278. package/dist/{chunk-422IVD3H.mjs → chunk-Y5TPAKOS.mjs} +13 -17
  279. package/dist/{chunk-AZV7KNJI.mjs → chunk-YKWIMVGU.mjs} +2 -2
  280. package/dist/{chunk-ZKDKKQCE.mjs → chunk-YOXSXHDE.mjs} +4 -4
  281. package/dist/{chunk-PGQ6FMXS.mjs → chunk-ZO5BRTCW.mjs} +2 -2
  282. package/dist/{chunk-KSSVIFYR.mjs → chunk-ZQGCQ7SA.mjs} +14 -34
  283. package/dist/{chunk-ZTPYUU5C.mjs → chunk-ZRUUUVOO.mjs} +3 -3
  284. package/dist/{index-CY34hxPN.d.mts → index-CinAt5Uo.d.mts} +3 -3
  285. package/dist/{index-CY34hxPN.d.ts → index-CinAt5Uo.d.ts} +3 -3
  286. package/dist/index.d.mts +68 -18
  287. package/dist/index.d.ts +68 -18
  288. package/dist/index.js +965 -825
  289. package/dist/index.mjs +76 -69
  290. package/package.json +3 -2
  291. package/src/components/Accordion/Accordion.tsx +9 -18
  292. package/src/components/AppHeader/AppHeader.tsx +9 -1
  293. package/src/components/ConfirmDialog/ConfirmDialog.tsx +4 -34
  294. package/src/components/ErrorBoundary/ErrorBoundary.tsx +5 -2
  295. package/src/components/Image/Image.tsx +50 -0
  296. package/src/components/Image/index.ts +2 -0
  297. package/src/components/ImageUpload/ImageUpload.tsx +1 -1
  298. package/src/components/{ListGroup/ListGroup.tsx → ItemGroup/ItemGroup.tsx} +15 -29
  299. package/src/components/ItemGroup/index.ts +2 -0
  300. package/src/components/ListGroup/index.tsx +20 -0
  301. package/src/components/MenuGroup/index.tsx +20 -0
  302. package/src/components/Pressable/Pressable.tsx +0 -24
  303. package/src/components/ScreenContainer/ScreenContainer.tsx +94 -0
  304. package/src/components/ScreenContainer/index.ts +2 -0
  305. package/src/components/Select/Select.tsx +22 -30
  306. package/src/components/SelectableGrid/SelectableGrid.tsx +51 -19
  307. package/src/components/Separator/Separator.tsx +35 -2
  308. package/src/components/Sheet/Sheet.tsx +3 -34
  309. package/src/components/Tabs/Tabs.tsx +9 -9
  310. package/src/components/Tabs/index.ts +1 -1
  311. package/src/components/Text/Text.tsx +6 -0
  312. package/src/components/VirtualizedList/VirtualizedList.tsx +154 -0
  313. package/src/components/VirtualizedList/index.ts +2 -0
  314. package/src/hooks/useConfirmDialog.ts +2 -11
  315. package/src/hooks/useSheetModal.ts +40 -0
  316. package/src/index.ts +5 -1
  317. package/src/theme/colors.ts +19 -57
  318. package/src/tokens.ts +21 -7
  319. package/src/utils/curatedIcons.ts +9 -18
  320. package/src/utils/haptics.ts +10 -21
  321. package/src/utils/icons.ts +7 -14
  322. package/dist/ListGroup.d.mts +0 -34
  323. package/dist/ListGroup.d.ts +0 -34
  324. package/dist/ListGroup.mjs +0 -4
  325. package/dist/MenuGroup.d.mts +0 -34
  326. package/dist/MenuGroup.d.ts +0 -34
  327. package/dist/MenuGroup.js +0 -106
  328. package/dist/MenuGroup.mjs +0 -4
  329. package/dist/chunk-ARONDO7M.mjs +0 -40
  330. package/dist/chunk-EW2FIDSM.mjs +0 -29
  331. package/dist/chunk-S2VGME7X.mjs +0 -82
  332. package/src/components/ListGroup/index.ts +0 -1
  333. package/src/components/MenuGroup/MenuGroup.tsx +0 -145
  334. package/src/components/MenuGroup/index.ts +0 -1
@@ -5,6 +5,7 @@ var reactNative = require('react-native');
5
5
  var bottomSheet = require('@gorhom/bottom-sheet');
6
6
  var reactNativeSafeAreaContext = require('react-native-safe-area-context');
7
7
  var vectorIcons = require('@expo/vector-icons');
8
+ var Haptics = require('expo-haptics');
8
9
  var reactNativeEase = require('react-native-ease');
9
10
  var reactNativeSizeMatters = require('react-native-size-matters');
10
11
  var AntDesign = require('@expo/vector-icons/AntDesign');
@@ -17,7 +18,26 @@ var pressto = require('pressto');
17
18
 
18
19
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
19
20
 
21
+ function _interopNamespace(e) {
22
+ if (e && e.__esModule) return e;
23
+ var n = Object.create(null);
24
+ if (e) {
25
+ Object.keys(e).forEach(function (k) {
26
+ if (k !== 'default') {
27
+ var d = Object.getOwnPropertyDescriptor(e, k);
28
+ Object.defineProperty(n, k, d.get ? d : {
29
+ enumerable: true,
30
+ get: function () { return e[k]; }
31
+ });
32
+ }
33
+ });
34
+ }
35
+ n.default = e;
36
+ return Object.freeze(n);
37
+ }
38
+
20
39
  var React3__default = /*#__PURE__*/_interopDefault(React3);
40
+ var Haptics__namespace = /*#__PURE__*/_interopNamespace(Haptics);
21
41
  var AntDesign__default = /*#__PURE__*/_interopDefault(AntDesign);
22
42
  var Entypo__default = /*#__PURE__*/_interopDefault(Entypo);
23
43
  var Feather__default = /*#__PURE__*/_interopDefault(Feather);
@@ -26,28 +46,17 @@ var MaterialIcons__default = /*#__PURE__*/_interopDefault(MaterialIcons);
26
46
  var Ionicons__default = /*#__PURE__*/_interopDefault(Ionicons);
27
47
 
28
48
  // src/components/ConfirmDialog/ConfirmDialog.tsx
29
- var _haptics = null;
30
- var _loaded = false;
31
- async function getHaptics() {
32
- if (reactNative.Platform.OS === "web") return null;
33
- if (!_loaded) {
34
- _loaded = true;
35
- try {
36
- _haptics = await import('expo-haptics');
37
- } catch {
38
- _haptics = null;
39
- }
40
- }
41
- return _haptics;
49
+ function maybeHaptics() {
50
+ return reactNative.Platform.OS === "web" ? null : Haptics__namespace;
42
51
  }
43
52
  function selectionAsync() {
44
- getHaptics().then((h) => h?.selectionAsync());
53
+ maybeHaptics()?.selectionAsync();
45
54
  }
46
55
  function impactMedium() {
47
- getHaptics().then((h) => h?.impactAsync(h.ImpactFeedbackStyle.Medium));
56
+ maybeHaptics()?.impactAsync(Haptics__namespace.ImpactFeedbackStyle.Medium);
48
57
  }
49
58
  function notificationSuccess() {
50
- getHaptics().then((h) => h?.notificationAsync(h.NotificationFeedbackType.Success));
59
+ maybeHaptics()?.notificationAsync(Haptics__namespace.NotificationFeedbackType.Success);
51
60
  }
52
61
  var ThemeContext = React3.createContext(void 0);
53
62
  function useTheme() {
@@ -57,6 +66,36 @@ function useTheme() {
57
66
  }
58
67
  return context;
59
68
  }
69
+ function useSheetModal(visible, onDismiss) {
70
+ const ref = React3.useRef(null);
71
+ const state = React3.useRef("idle");
72
+ const onDismissRef = React3.useRef(onDismiss);
73
+ const [tick, setTick] = React3.useState(0);
74
+ React3.useEffect(() => {
75
+ onDismissRef.current = onDismiss;
76
+ });
77
+ React3.useEffect(() => {
78
+ if (visible) {
79
+ if (state.current === "idle") {
80
+ state.current = "presenting";
81
+ impactMedium();
82
+ ref.current?.present();
83
+ state.current = "presented";
84
+ }
85
+ } else {
86
+ if (state.current === "presented" || state.current === "presenting") {
87
+ state.current = "dismissing";
88
+ ref.current?.dismiss();
89
+ }
90
+ }
91
+ }, [visible, tick]);
92
+ const handleDismiss = React3.useCallback(() => {
93
+ state.current = "idle";
94
+ onDismissRef.current?.();
95
+ setTick((t) => t + 1);
96
+ }, []);
97
+ return { ref, handleDismiss };
98
+ }
60
99
  var isWeb = reactNative.Platform.OS === "web";
61
100
  var s = isWeb ? (n) => n : reactNativeSizeMatters.scale;
62
101
  var vs = isWeb ? (n) => n : reactNativeSizeMatters.verticalScale;
@@ -70,23 +109,17 @@ var ALL_FAMILIES = [
70
109
  { name: "MaterialIcons", component: MaterialIcons__default.default },
71
110
  { name: "Ionicons", component: Ionicons__default.default }
72
111
  ];
73
- var glyphCacheInitialized = false;
74
- function ensureGlyphCache() {
75
- if (glyphCacheInitialized) return;
76
- glyphCacheInitialized = true;
77
- for (const entry of ALL_FAMILIES) {
78
- try {
79
- entry.glyphMap = entry.component.glyphMap;
80
- } catch {
81
- entry.glyphMap = {};
82
- }
112
+ function getGlyphMap(component) {
113
+ try {
114
+ return component.glyphMap ?? {};
115
+ } catch {
116
+ return {};
83
117
  }
84
118
  }
85
119
  function Icon({ name, size, color, family }) {
86
- ensureGlyphCache();
87
120
  const entry = family ? ALL_FAMILIES.find((f) => f.name === family) : ALL_FAMILIES.find((f) => {
88
- const glyphMap = f.glyphMap;
89
- return glyphMap ? name in glyphMap : false;
121
+ const glyphMap = getGlyphMap(f.component);
122
+ return name in glyphMap;
90
123
  });
91
124
  if (!entry) return null;
92
125
  return React3__default.default.createElement(entry.component, { name, size, color });
@@ -109,8 +142,7 @@ var TYPOGRAPHY = {
109
142
  fontWeight: "500",
110
143
  lineHeight: 18,
111
144
  letterSpacing: 0
112
- }
113
- };
145
+ }};
114
146
  var makePressable = (scale2) => pressto.createAnimatedPressable((progress) => {
115
147
  "worklet";
116
148
  return { transform: [{ scale: 1 - (1 - scale2) * progress }] };
@@ -266,34 +298,8 @@ function ConfirmDialog({
266
298
  }) {
267
299
  const { colors } = useTheme();
268
300
  const insets = reactNativeSafeAreaContext.useSafeAreaInsets();
269
- const ref = React3.useRef(null);
270
- const dialogState = React3.useRef("idle");
271
- const onCancelRef = React3.useRef(onCancel);
301
+ const { ref, handleDismiss } = useSheetModal(visible, onCancel);
272
302
  const name = React3.useId();
273
- const [tick, setTick] = React3.useState(0);
274
- React3.useEffect(() => {
275
- onCancelRef.current = onCancel;
276
- }, [onCancel]);
277
- const handleDismiss = React3.useCallback(() => {
278
- dialogState.current = "idle";
279
- onCancelRef.current?.();
280
- setTick((t) => t + 1);
281
- }, []);
282
- React3.useEffect(() => {
283
- if (visible) {
284
- if (dialogState.current === "idle") {
285
- dialogState.current = "presenting";
286
- impactMedium();
287
- ref.current?.present();
288
- dialogState.current = "presented";
289
- }
290
- } else {
291
- if (dialogState.current === "presented" || dialogState.current === "presenting") {
292
- dialogState.current = "dismissing";
293
- ref.current?.dismiss();
294
- }
295
- }
296
- }, [visible, tick]);
297
303
  const renderBackdrop = React3.useCallback(
298
304
  (props) => /* @__PURE__ */ React3__default.default.createElement(
299
305
  bottomSheet.BottomSheetBackdrop,
@@ -1,9 +1,10 @@
1
- export { ConfirmDialog } from './chunk-UMZTPUB3.mjs';
2
- import './chunk-Y6YS33GM.mjs';
1
+ export { ConfirmDialog } from './chunk-BGXOEFDM.mjs';
2
+ import './chunk-HMKJGVXA.mjs';
3
+ import './chunk-AHFEAY6M.mjs';
3
4
  import './chunk-M53LC4Q7.mjs';
4
5
  import './chunk-IFYMBOEN.mjs';
5
- import './chunk-ARONDO7M.mjs';
6
- import './chunk-QY3X2UYR.mjs';
7
- import './chunk-MZ6WRTD2.mjs';
8
- import './chunk-KSSVIFYR.mjs';
6
+ import './chunk-CTUFFKGS.mjs';
7
+ import './chunk-DYYPDQA2.mjs';
8
+ import './chunk-24JTXQ2M.mjs';
9
+ import './chunk-ZQGCQ7SA.mjs';
9
10
  import './chunk-2CE3TQVY.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 CurrencyDisplayVariant = 'hero' | 'large' | 'medium' | 'small';
@@ -18,7 +18,7 @@ interface CurrencyDisplayProps {
18
18
  maxFontSize?: number;
19
19
  style?: ViewStyle;
20
20
  }
21
- declare function CurrencyDisplayBase({ value, prefix, showDecimals, textColor, variant, autoScale, maxFontSize, style }: CurrencyDisplayProps): React.JSX.Element;
22
- declare const CurrencyDisplay: React.MemoExoticComponent<typeof CurrencyDisplayBase>;
21
+ declare function CurrencyDisplayBase({ value, prefix, showDecimals, textColor, variant, autoScale, maxFontSize, style }: CurrencyDisplayProps): React__default.JSX.Element;
22
+ declare const CurrencyDisplay: React__default.MemoExoticComponent<typeof CurrencyDisplayBase>;
23
23
 
24
24
  export { CurrencyDisplay, type CurrencyDisplayProps, type CurrencyDisplayVariant };
@@ -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 CurrencyDisplayVariant = 'hero' | 'large' | 'medium' | 'small';
@@ -18,7 +18,7 @@ interface CurrencyDisplayProps {
18
18
  maxFontSize?: number;
19
19
  style?: ViewStyle;
20
20
  }
21
- declare function CurrencyDisplayBase({ value, prefix, showDecimals, textColor, variant, autoScale, maxFontSize, style }: CurrencyDisplayProps): React.JSX.Element;
22
- declare const CurrencyDisplay: React.MemoExoticComponent<typeof CurrencyDisplayBase>;
21
+ declare function CurrencyDisplayBase({ value, prefix, showDecimals, textColor, variant, autoScale, maxFontSize, style }: CurrencyDisplayProps): React__default.JSX.Element;
22
+ declare const CurrencyDisplay: React__default.MemoExoticComponent<typeof CurrencyDisplayBase>;
23
23
 
24
24
  export { CurrencyDisplay, type CurrencyDisplayProps, type CurrencyDisplayVariant };
@@ -1,3 +1,3 @@
1
- export { CurrencyDisplay } from './chunk-PI6RULJX.mjs';
2
- import './chunk-KSSVIFYR.mjs';
1
+ export { CurrencyDisplay } from './chunk-EQYTDFDD.mjs';
2
+ import './chunk-ZQGCQ7SA.mjs';
3
3
  import './chunk-2CE3TQVY.mjs';
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import React__default from 'react';
2
2
  import { TextInputProps, ViewStyle } from 'react-native';
3
3
 
4
4
  interface CurrencyInputProps extends TextInputProps {
@@ -18,6 +18,6 @@ interface CurrencyInputProps extends TextInputProps {
18
18
  /** Use inside a Sheet/BottomSheet — passes sheetMode to the underlying Input. */
19
19
  sheetMode?: boolean;
20
20
  }
21
- declare function CurrencyInput({ value, onChangeText, onChangeValue, prefix, thousandsSeparator, size, label, error, hint, placeholder, editable, containerStyle, style, sheetMode, ...props }: CurrencyInputProps): React.JSX.Element;
21
+ declare function CurrencyInput({ value, onChangeText, onChangeValue, prefix, thousandsSeparator, size, label, error, hint, placeholder, editable, containerStyle, style, sheetMode, ...props }: CurrencyInputProps): React__default.JSX.Element;
22
22
 
23
23
  export { CurrencyInput, type CurrencyInputProps };
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import React__default from 'react';
2
2
  import { TextInputProps, ViewStyle } from 'react-native';
3
3
 
4
4
  interface CurrencyInputProps extends TextInputProps {
@@ -18,6 +18,6 @@ interface CurrencyInputProps extends TextInputProps {
18
18
  /** Use inside a Sheet/BottomSheet — passes sheetMode to the underlying Input. */
19
19
  sheetMode?: boolean;
20
20
  }
21
- declare function CurrencyInput({ value, onChangeText, onChangeValue, prefix, thousandsSeparator, size, label, error, hint, placeholder, editable, containerStyle, style, sheetMode, ...props }: CurrencyInputProps): React.JSX.Element;
21
+ declare function CurrencyInput({ value, onChangeText, onChangeValue, prefix, thousandsSeparator, size, label, error, hint, placeholder, editable, containerStyle, style, sheetMode, ...props }: CurrencyInputProps): React__default.JSX.Element;
22
22
 
23
23
  export { CurrencyInput, type CurrencyInputProps };
@@ -44,23 +44,17 @@ var ALL_FAMILIES = [
44
44
  { name: "MaterialIcons", component: MaterialIcons__default.default },
45
45
  { name: "Ionicons", component: Ionicons__default.default }
46
46
  ];
47
- var glyphCacheInitialized = false;
48
- function ensureGlyphCache() {
49
- if (glyphCacheInitialized) return;
50
- glyphCacheInitialized = true;
51
- for (const entry of ALL_FAMILIES) {
52
- try {
53
- entry.glyphMap = entry.component.glyphMap;
54
- } catch {
55
- entry.glyphMap = {};
56
- }
47
+ function getGlyphMap(component) {
48
+ try {
49
+ return component.glyphMap ?? {};
50
+ } catch {
51
+ return {};
57
52
  }
58
53
  }
59
54
  function Icon({ name, size, color, family }) {
60
- ensureGlyphCache();
61
55
  const entry = family ? ALL_FAMILIES.find((f) => f.name === family) : ALL_FAMILIES.find((f) => {
62
- const glyphMap = f.glyphMap;
63
- return glyphMap ? name in glyphMap : false;
56
+ const glyphMap = getGlyphMap(f.component);
57
+ return name in glyphMap;
64
58
  });
65
59
  if (!entry) return null;
66
60
  return React3__default.default.createElement(entry.component, { name, size, color });
@@ -1,6 +1,6 @@
1
- export { CurrencyInput } from './chunk-HUSSF6TF.mjs';
2
- import './chunk-4NQFTHN3.mjs';
1
+ export { CurrencyInput } from './chunk-EQNCMDZC.mjs';
2
+ import './chunk-3GE4UFV5.mjs';
3
3
  import './chunk-M53LC4Q7.mjs';
4
- import './chunk-MZ6WRTD2.mjs';
5
- import './chunk-KSSVIFYR.mjs';
4
+ import './chunk-24JTXQ2M.mjs';
5
+ import './chunk-ZQGCQ7SA.mjs';
6
6
  import './chunk-2CE3TQVY.mjs';
@@ -1,18 +1,18 @@
1
- import React from 'react';
1
+ import React__default from 'react';
2
2
  import { ViewStyle, TextStyle } from 'react-native';
3
3
 
4
4
  type DetailRowSeparator = 'dotted' | 'solid' | 'dashed' | 'none';
5
5
  type DetailRowLabelWeight = 'normal' | 'medium' | 'semibold' | 'bold';
6
6
  interface DetailRowProps {
7
- label: React.ReactNode;
8
- value: string | number | React.ReactNode;
7
+ label: React__default.ReactNode;
8
+ value: string | number | React__default.ReactNode;
9
9
  /** Dotted/dashed/solid line between label and value. Defaults to 'dotted'. */
10
10
  separator?: DetailRowSeparator;
11
11
  labelWeight?: DetailRowLabelWeight;
12
12
  /** Semantic color key or hex string for value text. Only applies when value is a string. */
13
13
  valueColor?: string;
14
14
  /** Node rendered left of the label (e.g. Avatar, Icon). */
15
- leftIcon?: React.ReactNode;
15
+ leftIcon?: React__default.ReactNode;
16
16
  /** Icon name from @expo/vector-icons rendered left of label. Takes precedence over leftIcon. */
17
17
  leftIconName?: string;
18
18
  /** Override left icon color. Defaults to foregroundMuted. */
@@ -26,7 +26,7 @@ interface DetailRowProps {
26
26
  /** Only applies when value is a string. */
27
27
  valueStyle?: TextStyle;
28
28
  }
29
- declare function DetailRowBase({ label, value, separator, labelWeight, valueColor, leftIcon, leftIconName, leftIconColor, rightIconName, rightIconColor, style, labelStyle, valueStyle, }: DetailRowProps): React.JSX.Element;
30
- declare const DetailRow: React.MemoExoticComponent<typeof DetailRowBase>;
29
+ declare function DetailRowBase({ label, value, separator, labelWeight, valueColor, leftIcon, leftIconName, leftIconColor, rightIconName, rightIconColor, style, labelStyle, valueStyle, }: DetailRowProps): React__default.JSX.Element;
30
+ declare const DetailRow: React__default.MemoExoticComponent<typeof DetailRowBase>;
31
31
 
32
32
  export { DetailRow, type DetailRowLabelWeight, type DetailRowProps, type DetailRowSeparator };
@@ -1,18 +1,18 @@
1
- import React from 'react';
1
+ import React__default from 'react';
2
2
  import { ViewStyle, TextStyle } from 'react-native';
3
3
 
4
4
  type DetailRowSeparator = 'dotted' | 'solid' | 'dashed' | 'none';
5
5
  type DetailRowLabelWeight = 'normal' | 'medium' | 'semibold' | 'bold';
6
6
  interface DetailRowProps {
7
- label: React.ReactNode;
8
- value: string | number | React.ReactNode;
7
+ label: React__default.ReactNode;
8
+ value: string | number | React__default.ReactNode;
9
9
  /** Dotted/dashed/solid line between label and value. Defaults to 'dotted'. */
10
10
  separator?: DetailRowSeparator;
11
11
  labelWeight?: DetailRowLabelWeight;
12
12
  /** Semantic color key or hex string for value text. Only applies when value is a string. */
13
13
  valueColor?: string;
14
14
  /** Node rendered left of the label (e.g. Avatar, Icon). */
15
- leftIcon?: React.ReactNode;
15
+ leftIcon?: React__default.ReactNode;
16
16
  /** Icon name from @expo/vector-icons rendered left of label. Takes precedence over leftIcon. */
17
17
  leftIconName?: string;
18
18
  /** Override left icon color. Defaults to foregroundMuted. */
@@ -26,7 +26,7 @@ interface DetailRowProps {
26
26
  /** Only applies when value is a string. */
27
27
  valueStyle?: TextStyle;
28
28
  }
29
- declare function DetailRowBase({ label, value, separator, labelWeight, valueColor, leftIcon, leftIconName, leftIconColor, rightIconName, rightIconColor, style, labelStyle, valueStyle, }: DetailRowProps): React.JSX.Element;
30
- declare const DetailRow: React.MemoExoticComponent<typeof DetailRowBase>;
29
+ declare function DetailRowBase({ label, value, separator, labelWeight, valueColor, leftIcon, leftIconName, leftIconColor, rightIconName, rightIconColor, style, labelStyle, valueStyle, }: DetailRowProps): React__default.JSX.Element;
30
+ declare const DetailRow: React__default.MemoExoticComponent<typeof DetailRowBase>;
31
31
 
32
32
  export { DetailRow, type DetailRowLabelWeight, type DetailRowProps, type DetailRowSeparator };
package/dist/DetailRow.js CHANGED
@@ -41,23 +41,17 @@ var ALL_FAMILIES = [
41
41
  { name: "MaterialIcons", component: MaterialIcons__default.default },
42
42
  { name: "Ionicons", component: Ionicons__default.default }
43
43
  ];
44
- var glyphCacheInitialized = false;
45
- function ensureGlyphCache() {
46
- if (glyphCacheInitialized) return;
47
- glyphCacheInitialized = true;
48
- for (const entry of ALL_FAMILIES) {
49
- try {
50
- entry.glyphMap = entry.component.glyphMap;
51
- } catch {
52
- entry.glyphMap = {};
53
- }
44
+ function getGlyphMap(component) {
45
+ try {
46
+ return component.glyphMap ?? {};
47
+ } catch {
48
+ return {};
54
49
  }
55
50
  }
56
51
  function Icon({ name, size, color, family }) {
57
- ensureGlyphCache();
58
52
  const entry = family ? ALL_FAMILIES.find((f) => f.name === family) : ALL_FAMILIES.find((f) => {
59
- const glyphMap = f.glyphMap;
60
- return glyphMap ? name in glyphMap : false;
53
+ const glyphMap = getGlyphMap(f.component);
54
+ return name in glyphMap;
61
55
  });
62
56
  if (!entry) return null;
63
57
  return React3__default.default.createElement(entry.component, { name, size, color });
@@ -1,4 +1,4 @@
1
- export { DetailRow } from './chunk-KAGADD2O.mjs';
2
- import './chunk-MZ6WRTD2.mjs';
3
- import './chunk-KSSVIFYR.mjs';
1
+ export { DetailRow } from './chunk-3RIZCKRM.mjs';
2
+ import './chunk-24JTXQ2M.mjs';
3
+ import './chunk-ZQGCQ7SA.mjs';
4
4
  import './chunk-2CE3TQVY.mjs';
@@ -1,8 +1,8 @@
1
- import React from 'react';
1
+ import React__default from 'react';
2
2
  import { ViewStyle } from 'react-native';
3
3
 
4
4
  interface EmptyStateProps {
5
- icon?: React.ReactNode;
5
+ icon?: React__default.ReactNode;
6
6
  /**
7
7
  * Icon name from `@expo/vector-icons`. See https://icons.expo.fyi.
8
8
  * Takes precedence over `icon`. Sized automatically to fit the slot (48 default, 32 compact).
@@ -13,7 +13,7 @@ interface EmptyStateProps {
13
13
  title: string;
14
14
  description?: string;
15
15
  /** Custom action node. Use `actionLabel` + `onAction` for a pre-built primary Button. */
16
- action?: React.ReactNode;
16
+ action?: React__default.ReactNode;
17
17
  /** Label for a convenience primary Button rendered below description. Ignored in compact size. */
18
18
  actionLabel?: string;
19
19
  /** Called when the convenience action Button is pressed. Required when `actionLabel` is set. */
@@ -22,6 +22,6 @@ interface EmptyStateProps {
22
22
  size?: 'default' | 'compact';
23
23
  style?: ViewStyle;
24
24
  }
25
- declare function EmptyState({ icon, iconName, iconColor, title, description, action, actionLabel, onAction, size, style }: EmptyStateProps): React.JSX.Element;
25
+ declare function EmptyState({ icon, iconName, iconColor, title, description, action, actionLabel, onAction, size, style }: EmptyStateProps): React__default.JSX.Element;
26
26
 
27
27
  export { EmptyState, type EmptyStateProps };
@@ -1,8 +1,8 @@
1
- import React from 'react';
1
+ import React__default from 'react';
2
2
  import { ViewStyle } from 'react-native';
3
3
 
4
4
  interface EmptyStateProps {
5
- icon?: React.ReactNode;
5
+ icon?: React__default.ReactNode;
6
6
  /**
7
7
  * Icon name from `@expo/vector-icons`. See https://icons.expo.fyi.
8
8
  * Takes precedence over `icon`. Sized automatically to fit the slot (48 default, 32 compact).
@@ -13,7 +13,7 @@ interface EmptyStateProps {
13
13
  title: string;
14
14
  description?: string;
15
15
  /** Custom action node. Use `actionLabel` + `onAction` for a pre-built primary Button. */
16
- action?: React.ReactNode;
16
+ action?: React__default.ReactNode;
17
17
  /** Label for a convenience primary Button rendered below description. Ignored in compact size. */
18
18
  actionLabel?: string;
19
19
  /** Called when the convenience action Button is pressed. Required when `actionLabel` is set. */
@@ -22,6 +22,6 @@ interface EmptyStateProps {
22
22
  size?: 'default' | 'compact';
23
23
  style?: ViewStyle;
24
24
  }
25
- declare function EmptyState({ icon, iconName, iconColor, title, description, action, actionLabel, onAction, size, style }: EmptyStateProps): React.JSX.Element;
25
+ declare function EmptyState({ icon, iconName, iconColor, title, description, action, actionLabel, onAction, size, style }: EmptyStateProps): React__default.JSX.Element;
26
26
 
27
27
  export { EmptyState, type EmptyStateProps };
@@ -10,10 +10,29 @@ var FontAwesome5 = require('@expo/vector-icons/FontAwesome5');
10
10
  var MaterialIcons = require('@expo/vector-icons/MaterialIcons');
11
11
  var Ionicons = require('@expo/vector-icons/Ionicons');
12
12
  var reactNativeEase = require('react-native-ease');
13
+ var Haptics = require('expo-haptics');
13
14
  var pressto = require('pressto');
14
15
 
15
16
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
16
17
 
18
+ function _interopNamespace(e) {
19
+ if (e && e.__esModule) return e;
20
+ var n = Object.create(null);
21
+ if (e) {
22
+ Object.keys(e).forEach(function (k) {
23
+ if (k !== 'default') {
24
+ var d = Object.getOwnPropertyDescriptor(e, k);
25
+ Object.defineProperty(n, k, d.get ? d : {
26
+ enumerable: true,
27
+ get: function () { return e[k]; }
28
+ });
29
+ }
30
+ });
31
+ }
32
+ n.default = e;
33
+ return Object.freeze(n);
34
+ }
35
+
17
36
  var React3__default = /*#__PURE__*/_interopDefault(React3);
18
37
  var AntDesign__default = /*#__PURE__*/_interopDefault(AntDesign);
19
38
  var Entypo__default = /*#__PURE__*/_interopDefault(Entypo);
@@ -21,6 +40,7 @@ var Feather__default = /*#__PURE__*/_interopDefault(Feather);
21
40
  var FontAwesome5__default = /*#__PURE__*/_interopDefault(FontAwesome5);
22
41
  var MaterialIcons__default = /*#__PURE__*/_interopDefault(MaterialIcons);
23
42
  var Ionicons__default = /*#__PURE__*/_interopDefault(Ionicons);
43
+ var Haptics__namespace = /*#__PURE__*/_interopNamespace(Haptics);
24
44
 
25
45
  // src/components/EmptyState/EmptyState.tsx
26
46
  var ThemeContext = React3.createContext(void 0);
@@ -44,43 +64,26 @@ var ALL_FAMILIES = [
44
64
  { name: "MaterialIcons", component: MaterialIcons__default.default },
45
65
  { name: "Ionicons", component: Ionicons__default.default }
46
66
  ];
47
- var glyphCacheInitialized = false;
48
- function ensureGlyphCache() {
49
- if (glyphCacheInitialized) return;
50
- glyphCacheInitialized = true;
51
- for (const entry of ALL_FAMILIES) {
52
- try {
53
- entry.glyphMap = entry.component.glyphMap;
54
- } catch {
55
- entry.glyphMap = {};
56
- }
67
+ function getGlyphMap(component) {
68
+ try {
69
+ return component.glyphMap ?? {};
70
+ } catch {
71
+ return {};
57
72
  }
58
73
  }
59
74
  function Icon({ name, size, color, family }) {
60
- ensureGlyphCache();
61
75
  const entry = family ? ALL_FAMILIES.find((f) => f.name === family) : ALL_FAMILIES.find((f) => {
62
- const glyphMap = f.glyphMap;
63
- return glyphMap ? name in glyphMap : false;
76
+ const glyphMap = getGlyphMap(f.component);
77
+ return name in glyphMap;
64
78
  });
65
79
  if (!entry) return null;
66
80
  return React3__default.default.createElement(entry.component, { name, size, color });
67
81
  }
68
- var _haptics = null;
69
- var _loaded = false;
70
- async function getHaptics() {
71
- if (reactNative.Platform.OS === "web") return null;
72
- if (!_loaded) {
73
- _loaded = true;
74
- try {
75
- _haptics = await import('expo-haptics');
76
- } catch {
77
- _haptics = null;
78
- }
79
- }
80
- return _haptics;
82
+ function maybeHaptics() {
83
+ return reactNative.Platform.OS === "web" ? null : Haptics__namespace;
81
84
  }
82
85
  function impactMedium() {
83
- getHaptics().then((h) => h?.impactAsync(h.ImpactFeedbackStyle.Medium));
86
+ maybeHaptics()?.impactAsync(Haptics__namespace.ImpactFeedbackStyle.Medium);
84
87
  }
85
88
 
86
89
  // src/tokens.ts
@@ -100,8 +103,7 @@ var TYPOGRAPHY = {
100
103
  fontWeight: "500",
101
104
  lineHeight: 18,
102
105
  letterSpacing: 0
103
- }
104
- };
106
+ }};
105
107
  var makePressable = (scale2) => pressto.createAnimatedPressable((progress) => {
106
108
  "worklet";
107
109
  return { transform: [{ scale: 1 - (1 - scale2) * progress }] };
@@ -1,9 +1,9 @@
1
- export { EmptyState } from './chunk-FTTI6T5Q.mjs';
2
- import './chunk-Y6YS33GM.mjs';
1
+ export { EmptyState } from './chunk-W422TEH2.mjs';
2
+ import './chunk-AHFEAY6M.mjs';
3
3
  import './chunk-M53LC4Q7.mjs';
4
4
  import './chunk-IFYMBOEN.mjs';
5
- import './chunk-ARONDO7M.mjs';
6
- import './chunk-QY3X2UYR.mjs';
7
- import './chunk-MZ6WRTD2.mjs';
8
- import './chunk-KSSVIFYR.mjs';
5
+ import './chunk-CTUFFKGS.mjs';
6
+ import './chunk-DYYPDQA2.mjs';
7
+ import './chunk-24JTXQ2M.mjs';
8
+ import './chunk-ZQGCQ7SA.mjs';
9
9
  import './chunk-2CE3TQVY.mjs';
@@ -1,23 +1,25 @@
1
- import React from 'react';
1
+ import React__default from 'react';
2
2
 
3
3
  interface ErrorFallbackProps {
4
4
  error: Error;
5
+ /** Stack trace from the error boundary. */
6
+ componentStack: string;
5
7
  /** Reset the boundary and attempt to re-render children. */
6
8
  reset: () => void;
7
9
  }
8
10
  interface ErrorBoundaryProps {
9
- children: React.ReactNode;
11
+ children: React__default.ReactNode;
10
12
  /**
11
13
  * Custom fallback. Either a React node, or a render function receiving the
12
14
  * caught error and a `reset` callback. Defaults to a themed error card.
13
15
  */
14
- fallback?: React.ReactNode | ((props: ErrorFallbackProps) => React.ReactNode);
16
+ fallback?: React__default.ReactNode | ((props: ErrorFallbackProps) => React__default.ReactNode);
15
17
  /** Title shown by the default fallback. */
16
18
  title?: string;
17
19
  /** Body message shown by the default fallback. */
18
20
  message?: string;
19
21
  /** Called whenever an error is caught — wire your crash reporter here. */
20
- onError?: (error: Error, info: React.ErrorInfo) => void;
22
+ onError?: (error: Error, info: React__default.ErrorInfo) => void;
21
23
  }
22
24
  interface ErrorBoundaryState {
23
25
  error: Error | null;
@@ -31,12 +33,12 @@ interface ErrorBoundaryState {
31
33
  * <DocumentViewer />
32
34
  * </ErrorBoundary>
33
35
  */
34
- declare class ErrorBoundary extends React.Component<ErrorBoundaryProps, ErrorBoundaryState> {
36
+ declare class ErrorBoundary extends React__default.Component<ErrorBoundaryProps, ErrorBoundaryState> {
35
37
  state: ErrorBoundaryState;
36
38
  static getDerivedStateFromError(error: Error): ErrorBoundaryState;
37
- componentDidCatch(error: Error, info: React.ErrorInfo): void;
39
+ componentDidCatch(error: Error, info: React__default.ErrorInfo): void;
38
40
  reset: () => void;
39
- render(): string | number | bigint | boolean | Iterable<React.ReactNode> | Promise<string | number | bigint | boolean | React.ReactPortal | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | null | undefined> | React.JSX.Element | null | undefined;
41
+ render(): string | number | bigint | boolean | Iterable<React__default.ReactNode> | Promise<string | number | bigint | boolean | React__default.ReactPortal | React__default.ReactElement<unknown, string | React__default.JSXElementConstructor<any>> | Iterable<React__default.ReactNode> | null | undefined> | React__default.JSX.Element | null | undefined;
40
42
  }
41
43
 
42
44
  export { ErrorBoundary, type ErrorBoundaryProps, type ErrorFallbackProps };