@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
@@ -5,11 +5,31 @@ var reactNative = require('react-native');
5
5
  var reactNativeSkia = require('@shopify/react-native-skia');
6
6
  var Animated = require('react-native-reanimated');
7
7
  var pressto = require('pressto');
8
+ var Haptics = require('expo-haptics');
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 React__default = /*#__PURE__*/_interopDefault(React);
12
31
  var Animated__default = /*#__PURE__*/_interopDefault(Animated);
32
+ var Haptics__namespace = /*#__PURE__*/_interopNamespace(Haptics);
13
33
 
14
34
  // src/components/HolographicCard/HolographicCard.tsx
15
35
  var makePressable = (scale) => pressto.createAnimatedPressable((progress) => {
@@ -21,22 +41,11 @@ var PressableCard = makePressable(0.98);
21
41
  makePressable(0.97);
22
42
  makePressable(0.94);
23
43
  makePressable(0.95);
24
- var _haptics = null;
25
- var _loaded = false;
26
- async function getHaptics() {
27
- if (reactNative.Platform.OS === "web") return null;
28
- if (!_loaded) {
29
- _loaded = true;
30
- try {
31
- _haptics = await import('expo-haptics');
32
- } catch {
33
- _haptics = null;
34
- }
35
- }
36
- return _haptics;
44
+ function maybeHaptics() {
45
+ return reactNative.Platform.OS === "web" ? null : Haptics__namespace;
37
46
  }
38
47
  function impactLight() {
39
- getHaptics().then((h) => h?.impactAsync(h.ImpactFeedbackStyle.Light));
48
+ maybeHaptics()?.impactAsync(Haptics__namespace.ImpactFeedbackStyle.Light);
40
49
  }
41
50
 
42
51
  // src/tokens.ts
@@ -1,7 +1,6 @@
1
1
  import { PressableCard } from './chunk-IFYMBOEN.mjs';
2
- import { impactLight } from './chunk-ARONDO7M.mjs';
3
- import { RADIUS } from './chunk-QY3X2UYR.mjs';
4
- import './chunk-Y6FXYEAI.mjs';
2
+ import { impactLight } from './chunk-CTUFFKGS.mjs';
3
+ import { RADIUS } from './chunk-DYYPDQA2.mjs';
5
4
  import React, { useMemo, useEffect } from 'react';
6
5
  import { Platform } from 'react-native';
7
6
  import { useImage, vec, Canvas, Group, Image, RoundedRect, LinearGradient } from '@shopify/react-native-skia';
@@ -1,11 +1,11 @@
1
- import React from 'react';
1
+ import React__default from 'react';
2
2
  import { ViewStyle } from 'react-native';
3
3
 
4
4
  type IconButtonVariant = 'primary' | 'secondary' | 'outline' | 'text' | 'destructive';
5
5
  type IconButtonSize = 'sm' | 'md' | 'lg';
6
6
  interface IconButtonProps {
7
7
  iconName?: string;
8
- icon?: React.ReactNode;
8
+ icon?: React__default.ReactNode;
9
9
  iconColor?: string;
10
10
  variant?: IconButtonVariant;
11
11
  size?: IconButtonSize;
@@ -21,7 +21,7 @@ interface IconButtonProps {
21
21
  accessibilityLabel?: string;
22
22
  accessibilityHint?: string;
23
23
  }
24
- declare function IconButtonBase({ iconName, icon, iconColor, variant, size, loading, badge, disabled, style, onPress, accessibilityLabel, accessibilityHint, }: IconButtonProps): React.JSX.Element;
25
- declare const IconButton: React.MemoExoticComponent<typeof IconButtonBase>;
24
+ declare function IconButtonBase({ iconName, icon, iconColor, variant, size, loading, badge, disabled, style, onPress, accessibilityLabel, accessibilityHint, }: IconButtonProps): React__default.JSX.Element;
25
+ declare const IconButton: React__default.MemoExoticComponent<typeof IconButtonBase>;
26
26
 
27
27
  export { IconButton, type IconButtonProps, type IconButtonSize, type IconButtonVariant };
@@ -1,11 +1,11 @@
1
- import React from 'react';
1
+ import React__default from 'react';
2
2
  import { ViewStyle } from 'react-native';
3
3
 
4
4
  type IconButtonVariant = 'primary' | 'secondary' | 'outline' | 'text' | 'destructive';
5
5
  type IconButtonSize = 'sm' | 'md' | 'lg';
6
6
  interface IconButtonProps {
7
7
  iconName?: string;
8
- icon?: React.ReactNode;
8
+ icon?: React__default.ReactNode;
9
9
  iconColor?: string;
10
10
  variant?: IconButtonVariant;
11
11
  size?: IconButtonSize;
@@ -21,7 +21,7 @@ interface IconButtonProps {
21
21
  accessibilityLabel?: string;
22
22
  accessibilityHint?: string;
23
23
  }
24
- declare function IconButtonBase({ iconName, icon, iconColor, variant, size, loading, badge, disabled, style, onPress, accessibilityLabel, accessibilityHint, }: IconButtonProps): React.JSX.Element;
25
- declare const IconButton: React.MemoExoticComponent<typeof IconButtonBase>;
24
+ declare function IconButtonBase({ iconName, icon, iconColor, variant, size, loading, badge, disabled, style, onPress, accessibilityLabel, accessibilityHint, }: IconButtonProps): React__default.JSX.Element;
25
+ declare const IconButton: React__default.MemoExoticComponent<typeof IconButtonBase>;
26
26
 
27
27
  export { IconButton, type IconButtonProps, type IconButtonSize, type IconButtonVariant };
@@ -2,6 +2,7 @@
2
2
 
3
3
  var React3 = require('react');
4
4
  var reactNative = require('react-native');
5
+ var Haptics = require('expo-haptics');
5
6
  var reactNativeSizeMatters = require('react-native-size-matters');
6
7
  var AntDesign = require('@expo/vector-icons/AntDesign');
7
8
  var Entypo = require('@expo/vector-icons/Entypo');
@@ -13,7 +14,26 @@ var pressto = require('pressto');
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/IconButton/IconButton.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() {
@@ -58,23 +67,17 @@ var ALL_FAMILIES = [
58
67
  { name: "MaterialIcons", component: MaterialIcons__default.default },
59
68
  { name: "Ionicons", component: Ionicons__default.default }
60
69
  ];
61
- var glyphCacheInitialized = false;
62
- function ensureGlyphCache() {
63
- if (glyphCacheInitialized) return;
64
- glyphCacheInitialized = true;
65
- for (const entry of ALL_FAMILIES) {
66
- try {
67
- entry.glyphMap = entry.component.glyphMap;
68
- } catch {
69
- entry.glyphMap = {};
70
- }
70
+ function getGlyphMap(component) {
71
+ try {
72
+ return component.glyphMap ?? {};
73
+ } catch {
74
+ return {};
71
75
  }
72
76
  }
73
77
  function Icon({ name, size, color, family }) {
74
- ensureGlyphCache();
75
78
  const entry = family ? ALL_FAMILIES.find((f) => f.name === family) : ALL_FAMILIES.find((f) => {
76
- const glyphMap = f.glyphMap;
77
- return glyphMap ? name in glyphMap : false;
79
+ const glyphMap = getGlyphMap(f.component);
80
+ return name in glyphMap;
78
81
  });
79
82
  if (!entry) return null;
80
83
  return React3__default.default.createElement(entry.component, { name, size, color });
@@ -1,7 +1,6 @@
1
- export { IconButton } from './chunk-ZTPYUU5C.mjs';
1
+ export { IconButton } from './chunk-ZRUUUVOO.mjs';
2
2
  import './chunk-IFYMBOEN.mjs';
3
- import './chunk-ARONDO7M.mjs';
4
- import './chunk-MZ6WRTD2.mjs';
5
- import './chunk-KSSVIFYR.mjs';
3
+ import './chunk-CTUFFKGS.mjs';
4
+ import './chunk-24JTXQ2M.mjs';
5
+ import './chunk-ZQGCQ7SA.mjs';
6
6
  import './chunk-2CE3TQVY.mjs';
7
- 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
  interface IconPickerProps {
@@ -12,6 +12,6 @@ interface IconPickerProps {
12
12
  gap?: number;
13
13
  style?: ViewStyle;
14
14
  }
15
- declare function IconPicker({ value, onChange, label, error, hint, disabled, numColumns, gap, style, }: IconPickerProps): React.JSX.Element;
15
+ declare function IconPicker({ value, onChange, label, error, hint, disabled, numColumns, gap, style, }: IconPickerProps): React__default.JSX.Element;
16
16
 
17
17
  export { IconPicker, type IconPickerProps };
@@ -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 IconPickerProps {
@@ -12,6 +12,6 @@ interface IconPickerProps {
12
12
  gap?: number;
13
13
  style?: ViewStyle;
14
14
  }
15
- declare function IconPicker({ value, onChange, label, error, hint, disabled, numColumns, gap, style, }: IconPickerProps): React.JSX.Element;
15
+ declare function IconPicker({ value, onChange, label, error, hint, disabled, numColumns, gap, style, }: IconPickerProps): React__default.JSX.Element;
16
16
 
17
17
  export { IconPicker, type IconPickerProps };
@@ -11,10 +11,29 @@ var Feather = require('@expo/vector-icons/Feather');
11
11
  var FontAwesome5 = require('@expo/vector-icons/FontAwesome5');
12
12
  var MaterialIcons = require('@expo/vector-icons/MaterialIcons');
13
13
  var Ionicons = require('@expo/vector-icons/Ionicons');
14
+ var Haptics = require('expo-haptics');
14
15
  var reactNativeSizeMatters = require('react-native-size-matters');
15
16
 
16
17
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
17
18
 
19
+ function _interopNamespace(e) {
20
+ if (e && e.__esModule) return e;
21
+ var n = Object.create(null);
22
+ if (e) {
23
+ Object.keys(e).forEach(function (k) {
24
+ if (k !== 'default') {
25
+ var d = Object.getOwnPropertyDescriptor(e, k);
26
+ Object.defineProperty(n, k, d.get ? d : {
27
+ enumerable: true,
28
+ get: function () { return e[k]; }
29
+ });
30
+ }
31
+ });
32
+ }
33
+ n.default = e;
34
+ return Object.freeze(n);
35
+ }
36
+
18
37
  var React4__default = /*#__PURE__*/_interopDefault(React4);
19
38
  var AntDesign__default = /*#__PURE__*/_interopDefault(AntDesign);
20
39
  var Entypo__default = /*#__PURE__*/_interopDefault(Entypo);
@@ -22,6 +41,7 @@ var Feather__default = /*#__PURE__*/_interopDefault(Feather);
22
41
  var FontAwesome5__default = /*#__PURE__*/_interopDefault(FontAwesome5);
23
42
  var MaterialIcons__default = /*#__PURE__*/_interopDefault(MaterialIcons);
24
43
  var Ionicons__default = /*#__PURE__*/_interopDefault(Ionicons);
44
+ var Haptics__namespace = /*#__PURE__*/_interopNamespace(Haptics);
25
45
 
26
46
  // src/components/IconPicker/IconPicker.tsx
27
47
  var ThemeContext = React4.createContext(void 0);
@@ -40,23 +60,17 @@ var ALL_FAMILIES = [
40
60
  { name: "MaterialIcons", component: MaterialIcons__default.default },
41
61
  { name: "Ionicons", component: Ionicons__default.default }
42
62
  ];
43
- var glyphCacheInitialized = false;
44
- function ensureGlyphCache() {
45
- if (glyphCacheInitialized) return;
46
- glyphCacheInitialized = true;
47
- for (const entry of ALL_FAMILIES) {
48
- try {
49
- entry.glyphMap = entry.component.glyphMap;
50
- } catch {
51
- entry.glyphMap = {};
52
- }
63
+ function getGlyphMap(component) {
64
+ try {
65
+ return component.glyphMap ?? {};
66
+ } catch {
67
+ return {};
53
68
  }
54
69
  }
55
70
  function Icon({ name, size, color, family }) {
56
- ensureGlyphCache();
57
71
  const entry = family ? ALL_FAMILIES.find((f) => f.name === family) : ALL_FAMILIES.find((f) => {
58
- const glyphMap = f.glyphMap;
59
- return glyphMap ? name in glyphMap : false;
72
+ const glyphMap = getGlyphMap(f.component);
73
+ return name in glyphMap;
60
74
  });
61
75
  if (!entry) return null;
62
76
  return React4__default.default.createElement(entry.component, { name, size, color });
@@ -289,49 +303,30 @@ var CATEGORIES = [
289
303
  ]
290
304
  }
291
305
  ];
292
- var _allIcons = null;
293
- var _categorized = null;
294
306
  function getAllCuratedIcons() {
295
- if (!_allIcons) {
296
- const seen = /* @__PURE__ */ new Set();
297
- const result = [];
298
- for (const cat of CATEGORIES) {
299
- for (const name of cat.icons) {
300
- if (!seen.has(name)) {
301
- seen.add(name);
302
- result.push(name);
303
- }
307
+ const seen = /* @__PURE__ */ new Set();
308
+ const result = [];
309
+ for (const cat of CATEGORIES) {
310
+ for (const name of cat.icons) {
311
+ if (!seen.has(name)) {
312
+ seen.add(name);
313
+ result.push(name);
304
314
  }
305
315
  }
306
- _allIcons = result;
307
316
  }
308
- return _allIcons;
317
+ return result;
309
318
  }
310
319
  function getCuratedCategories() {
311
- if (!_categorized) {
312
- _categorized = CATEGORIES.map((cat) => ({ ...cat, icons: [...cat.icons] }));
313
- }
314
- return _categorized;
320
+ return CATEGORIES.map((cat) => ({ ...cat, icons: [...cat.icons] }));
315
321
  }
316
- var _haptics = null;
317
- var _loaded = false;
318
- async function getHaptics() {
319
- if (reactNative.Platform.OS === "web") return null;
320
- if (!_loaded) {
321
- _loaded = true;
322
- try {
323
- _haptics = await import('expo-haptics');
324
- } catch {
325
- _haptics = null;
326
- }
327
- }
328
- return _haptics;
322
+ function maybeHaptics() {
323
+ return reactNative.Platform.OS === "web" ? null : Haptics__namespace;
329
324
  }
330
325
  function selectionAsync() {
331
- getHaptics().then((h) => h?.selectionAsync());
326
+ maybeHaptics()?.selectionAsync();
332
327
  }
333
328
  function impactMedium() {
334
- getHaptics().then((h) => h?.impactAsync(h.ImpactFeedbackStyle.Medium));
329
+ maybeHaptics()?.impactAsync(Haptics__namespace.ImpactFeedbackStyle.Medium);
335
330
  }
336
331
  var isWeb = reactNative.Platform.OS === "web";
337
332
  var s = isWeb ? (n) => n : reactNativeSizeMatters.scale;
@@ -1,8 +1,7 @@
1
- export { IconPicker } from './chunk-NGEN2EES.mjs';
2
- import './chunk-2VIDP72N.mjs';
3
- import './chunk-ARONDO7M.mjs';
4
- import './chunk-QY3X2UYR.mjs';
5
- import './chunk-MZ6WRTD2.mjs';
6
- import './chunk-KSSVIFYR.mjs';
1
+ export { IconPicker } from './chunk-MQAK2W6L.mjs';
2
+ import './chunk-K3V6OTVB.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';
@@ -0,0 +1,18 @@
1
+ import React__default from 'react';
2
+ import { ImageStyle } from 'react-native';
3
+ import { ImageProps as ImageProps$1 } from 'expo-image';
4
+
5
+ interface ImageProps extends Omit<ImageProps$1, 'source' | 'style'> {
6
+ /** Image source URI. */
7
+ src?: string | null;
8
+ /** Custom fallback shown when image fails to load or src is null. */
9
+ fallback?: React__default.ReactNode;
10
+ /** Aspect ratio width/height — e.g. 16/9, 4/3. Sets container height proportionally. */
11
+ aspectRatio?: number;
12
+ /** Border radius override. Defaults to 0. */
13
+ borderRadius?: number;
14
+ style?: ImageStyle;
15
+ }
16
+ declare function Image({ src, fallback, aspectRatio, borderRadius, style, ...props }: ImageProps): React__default.JSX.Element;
17
+
18
+ export { Image, type ImageProps };
@@ -0,0 +1,18 @@
1
+ import React__default from 'react';
2
+ import { ImageStyle } from 'react-native';
3
+ import { ImageProps as ImageProps$1 } from 'expo-image';
4
+
5
+ interface ImageProps extends Omit<ImageProps$1, 'source' | 'style'> {
6
+ /** Image source URI. */
7
+ src?: string | null;
8
+ /** Custom fallback shown when image fails to load or src is null. */
9
+ fallback?: React__default.ReactNode;
10
+ /** Aspect ratio width/height — e.g. 16/9, 4/3. Sets container height proportionally. */
11
+ aspectRatio?: number;
12
+ /** Border radius override. Defaults to 0. */
13
+ borderRadius?: number;
14
+ style?: ImageStyle;
15
+ }
16
+ declare function Image({ src, fallback, aspectRatio, borderRadius, style, ...props }: ImageProps): React__default.JSX.Element;
17
+
18
+ export { Image, type ImageProps };
package/dist/Image.js ADDED
@@ -0,0 +1,53 @@
1
+ 'use strict';
2
+
3
+ var React2 = require('react');
4
+ var reactNative = require('react-native');
5
+ var expoImage = require('expo-image');
6
+
7
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
8
+
9
+ var React2__default = /*#__PURE__*/_interopDefault(React2);
10
+
11
+ // src/components/Image/Image.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/components/Image/Image.tsx
22
+ function Image({ src, fallback, aspectRatio, borderRadius = 0, style, ...props }) {
23
+ const { colors } = useTheme();
24
+ const [failed, setFailed] = React2.useState(false);
25
+ if (!src || failed) {
26
+ return fallback ? /* @__PURE__ */ React2__default.default.createElement(reactNative.View, { style: [style, { overflow: "hidden" }] }, fallback) : /* @__PURE__ */ React2__default.default.createElement(
27
+ reactNative.View,
28
+ {
29
+ style: [
30
+ { backgroundColor: colors.skeleton, overflow: "hidden" },
31
+ borderRadius ? { borderRadius } : void 0,
32
+ aspectRatio ? { aspectRatio } : void 0,
33
+ style
34
+ ]
35
+ }
36
+ );
37
+ }
38
+ const imageStyle = {
39
+ ...aspectRatio ? { aspectRatio, width: "100%" } : {},
40
+ ...borderRadius ? { borderRadius } : {}
41
+ };
42
+ return /* @__PURE__ */ React2__default.default.createElement(
43
+ expoImage.Image,
44
+ {
45
+ source: { uri: src },
46
+ style: [imageStyle, style],
47
+ onError: () => setFailed(true),
48
+ ...props
49
+ }
50
+ );
51
+ }
52
+
53
+ exports.Image = Image;
package/dist/Image.mjs ADDED
@@ -0,0 +1,2 @@
1
+ export { Image } from './chunk-VISIOH33.mjs';
2
+ import './chunk-ZQGCQ7SA.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
  interface ImageUploadProps {
@@ -20,14 +20,12 @@ interface ImageUploadProps {
20
20
  borderRadius?: number;
21
21
  /** Aspect ratio for the selected image. Defaults to 'cover'. */
22
22
  resizeMode?: 'cover' | 'contain' | 'stretch';
23
- /** Whether to allow the user to crop the image after selecting. Defaults to true. */
24
- allowsEditing?: boolean;
25
23
  disabled?: boolean;
26
24
  style?: ViewStyle;
27
25
  accessibilityLabel?: string;
28
26
  /** Called synchronously when user taps the upload area, before dynamic import and permission request. */
29
27
  onPickerStarting?: () => void;
30
28
  }
31
- declare function ImageUpload({ value, onChange, loading, placeholder, showPlaceholderText, width, height, borderRadius, resizeMode, allowsEditing, disabled, style, accessibilityLabel, onPickerStarting, }: ImageUploadProps): React.JSX.Element;
29
+ declare function ImageUpload({ value, onChange, loading, placeholder, showPlaceholderText, width, height, borderRadius, resizeMode, disabled, style, accessibilityLabel, onPickerStarting, }: ImageUploadProps): React__default.JSX.Element;
32
30
 
33
31
  export { ImageUpload, type ImageUploadProps };
@@ -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 ImageUploadProps {
@@ -20,14 +20,12 @@ interface ImageUploadProps {
20
20
  borderRadius?: number;
21
21
  /** Aspect ratio for the selected image. Defaults to 'cover'. */
22
22
  resizeMode?: 'cover' | 'contain' | 'stretch';
23
- /** Whether to allow the user to crop the image after selecting. Defaults to true. */
24
- allowsEditing?: boolean;
25
23
  disabled?: boolean;
26
24
  style?: ViewStyle;
27
25
  accessibilityLabel?: string;
28
26
  /** Called synchronously when user taps the upload area, before dynamic import and permission request. */
29
27
  onPickerStarting?: () => void;
30
28
  }
31
- declare function ImageUpload({ value, onChange, loading, placeholder, showPlaceholderText, width, height, borderRadius, resizeMode, allowsEditing, disabled, style, accessibilityLabel, onPickerStarting, }: ImageUploadProps): React.JSX.Element;
29
+ declare function ImageUpload({ value, onChange, loading, placeholder, showPlaceholderText, width, height, borderRadius, resizeMode, disabled, style, accessibilityLabel, onPickerStarting, }: ImageUploadProps): React__default.JSX.Element;
32
30
 
33
31
  export { ImageUpload, type ImageUploadProps };