@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
@@ -4,35 +4,39 @@ var React3 = require('react');
4
4
  var expoImage = require('expo-image');
5
5
  var reactNative = require('react-native');
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 React3__default = /*#__PURE__*/_interopDefault(React3);
32
+ var Haptics__namespace = /*#__PURE__*/_interopNamespace(Haptics);
13
33
 
14
- var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
15
- get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
16
- }) : x)(function(x) {
17
- if (typeof require !== "undefined") return require.apply(this, arguments);
18
- throw Error('Dynamic require of "' + x + '" is not supported');
19
- });
20
- var _haptics = null;
21
- var _loaded = false;
22
- async function getHaptics() {
23
- if (reactNative.Platform.OS === "web") return null;
24
- if (!_loaded) {
25
- _loaded = true;
26
- try {
27
- _haptics = await import('expo-haptics');
28
- } catch {
29
- _haptics = null;
30
- }
31
- }
32
- return _haptics;
34
+ // src/components/ImageUpload/ImageUpload.tsx
35
+ function maybeHaptics() {
36
+ return reactNative.Platform.OS === "web" ? null : Haptics__namespace;
33
37
  }
34
38
  function impactLight() {
35
- getHaptics().then((h) => h?.impactAsync(h.ImpactFeedbackStyle.Light));
39
+ maybeHaptics()?.impactAsync(Haptics__namespace.ImpactFeedbackStyle.Light);
36
40
  }
37
41
  var ThemeContext = React3.createContext(void 0);
38
42
  function useTheme() {
@@ -127,7 +131,6 @@ function ImageUpload({
127
131
  height = 200,
128
132
  borderRadius = RADIUS.lg,
129
133
  resizeMode = "cover",
130
- allowsEditing = true,
131
134
  disabled = false,
132
135
  style,
133
136
  accessibilityLabel,
@@ -135,25 +138,32 @@ function ImageUpload({
135
138
  }) {
136
139
  const { colors } = useTheme();
137
140
  const [imageLoaded, setImageLoaded] = React3.useState(false);
141
+ const [isPicking, setIsPicking] = React3.useState(false);
138
142
  const handlePress = async () => {
139
- if (disabled || loading) return;
143
+ if (disabled || loading || isPicking) return;
140
144
  impactLight();
141
145
  onPickerStarting?.();
142
- let picker;
146
+ setIsPicking(true);
143
147
  try {
144
- picker = __require("expo-image-picker");
148
+ const { launchImageLibrary } = await import('react-native-image-picker');
149
+ const result = await new Promise((resolve) => {
150
+ launchImageLibrary(
151
+ {
152
+ mediaType: "photo",
153
+ quality: 0.8,
154
+ selectionLimit: 1,
155
+ includeBase64: false
156
+ },
157
+ resolve
158
+ );
159
+ });
160
+ if (!result.didCancel && !result.errorCode && result.assets?.[0]?.uri) {
161
+ setImageLoaded(false);
162
+ onChange?.(result.assets[0].uri);
163
+ }
145
164
  } catch {
146
- if (__DEV__) console.warn("[ImageUpload] expo-image-picker not installed.");
147
- return;
148
- }
149
- const result = await picker.launchImageLibraryAsync({
150
- mediaTypes: ["images"],
151
- allowsEditing,
152
- quality: 0.8
153
- });
154
- if (!result.canceled && result.assets?.[0]) {
155
- setImageLoaded(false);
156
- onChange?.(result.assets[0].uri);
165
+ } finally {
166
+ setIsPicking(false);
157
167
  }
158
168
  };
159
169
  const containerStyle = {
@@ -196,7 +206,7 @@ function ImageUpload({
196
206
  },
197
207
  placeholder
198
208
  ) : null),
199
- loading ? /* @__PURE__ */ React3__default.default.createElement(reactNative.View, { style: [styles2.loadingOverlay, { backgroundColor: colors.overlay }] }, /* @__PURE__ */ React3__default.default.createElement(Spinner, { size: "md" })) : null,
209
+ loading || isPicking ? /* @__PURE__ */ React3__default.default.createElement(reactNative.View, { style: [styles2.loadingOverlay, { backgroundColor: colors.overlay, borderRadius }] }, /* @__PURE__ */ React3__default.default.createElement(Spinner, { size: "md" })) : null,
200
210
  value && !loading ? /* @__PURE__ */ React3__default.default.createElement(reactNative.View, { style: styles2.editBadge, pointerEvents: "none" }, /* @__PURE__ */ React3__default.default.createElement(reactNative.View, { style: [styles2.editBadgeInner, { backgroundColor: colors.overlay }] }, /* @__PURE__ */ React3__default.default.createElement(vectorIcons.Feather, { name: "edit-2", size: ms(12), color: "#fff" }))) : null
201
211
  );
202
212
  }
@@ -219,12 +229,12 @@ var styles2 = reactNative.StyleSheet.create({
219
229
  },
220
230
  editBadge: {
221
231
  position: "absolute",
222
- bottom: vs(8),
223
- right: s(8)
232
+ bottom: vs(14),
233
+ right: s(14)
224
234
  },
225
235
  editBadgeInner: {
226
- width: s(28),
227
- height: s(28),
236
+ width: s(24),
237
+ height: s(24),
228
238
  borderRadius: 999,
229
239
  alignItems: "center",
230
240
  justifyContent: "center"
@@ -1,8 +1,7 @@
1
- export { ImageUpload } from './chunk-EROPDCB5.mjs';
2
- import './chunk-2VIDP72N.mjs';
1
+ export { ImageUpload } from './chunk-CCEM3HIJ.mjs';
2
+ import './chunk-K3V6OTVB.mjs';
3
3
  import './chunk-IFYMBOEN.mjs';
4
- import './chunk-ARONDO7M.mjs';
5
- import './chunk-QY3X2UYR.mjs';
6
- import './chunk-KSSVIFYR.mjs';
4
+ import './chunk-CTUFFKGS.mjs';
5
+ import './chunk-DYYPDQA2.mjs';
6
+ import './chunk-ZQGCQ7SA.mjs';
7
7
  import './chunk-2CE3TQVY.mjs';
8
- import './chunk-Y6FXYEAI.mjs';
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import React__default from 'react';
2
2
  import { ImageSourcePropType } from 'react-native';
3
3
 
4
4
  interface ImageViewerProps {
@@ -18,6 +18,6 @@ interface ImageViewerProps {
18
18
  * @example
19
19
  * <ImageViewer images={pages} visible={open} initialIndex={page} onClose={() => setOpen(false)} />
20
20
  */
21
- declare function ImageViewer({ images, visible, onClose, initialIndex }: ImageViewerProps): React.JSX.Element;
21
+ declare function ImageViewer({ images, visible, onClose, initialIndex }: ImageViewerProps): React__default.JSX.Element;
22
22
 
23
23
  export { ImageViewer, type ImageViewerProps };
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import React__default from 'react';
2
2
  import { ImageSourcePropType } from 'react-native';
3
3
 
4
4
  interface ImageViewerProps {
@@ -18,6 +18,6 @@ interface ImageViewerProps {
18
18
  * @example
19
19
  * <ImageViewer images={pages} visible={open} initialIndex={page} onClose={() => setOpen(false)} />
20
20
  */
21
- declare function ImageViewer({ images, visible, onClose, initialIndex }: ImageViewerProps): React.JSX.Element;
21
+ declare function ImageViewer({ images, visible, onClose, initialIndex }: ImageViewerProps): React__default.JSX.Element;
22
22
 
23
23
  export { ImageViewer, type ImageViewerProps };
@@ -6,6 +6,7 @@ var reactNative = require('react-native');
6
6
  var reactNativeGestureHandler = require('react-native-gesture-handler');
7
7
  var Animated2 = require('react-native-reanimated');
8
8
  var reactNativeSafeAreaContext = require('react-native-safe-area-context');
9
+ var Haptics = require('expo-haptics');
9
10
  var reactNativeSizeMatters = require('react-native-size-matters');
10
11
  var AntDesign = require('@expo/vector-icons/AntDesign');
11
12
  var Entypo = require('@expo/vector-icons/Entypo');
@@ -17,8 +18,27 @@ 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 React5__default = /*#__PURE__*/_interopDefault(React5);
21
40
  var Animated2__default = /*#__PURE__*/_interopDefault(Animated2);
41
+ var Haptics__namespace = /*#__PURE__*/_interopNamespace(Haptics);
22
42
  var AntDesign__default = /*#__PURE__*/_interopDefault(AntDesign);
23
43
  var Entypo__default = /*#__PURE__*/_interopDefault(Entypo);
24
44
  var Feather__default = /*#__PURE__*/_interopDefault(Feather);
@@ -27,25 +47,14 @@ var MaterialIcons__default = /*#__PURE__*/_interopDefault(MaterialIcons);
27
47
  var Ionicons__default = /*#__PURE__*/_interopDefault(Ionicons);
28
48
 
29
49
  // src/components/ImageViewer/ImageViewer.tsx
30
- var _haptics = null;
31
- var _loaded = false;
32
- async function getHaptics() {
33
- if (reactNative.Platform.OS === "web") return null;
34
- if (!_loaded) {
35
- _loaded = true;
36
- try {
37
- _haptics = await import('expo-haptics');
38
- } catch {
39
- _haptics = null;
40
- }
41
- }
42
- return _haptics;
50
+ function maybeHaptics() {
51
+ return reactNative.Platform.OS === "web" ? null : Haptics__namespace;
43
52
  }
44
53
  function selectionAsync() {
45
- getHaptics().then((h) => h?.selectionAsync());
54
+ maybeHaptics()?.selectionAsync();
46
55
  }
47
56
  function impactLight() {
48
- getHaptics().then((h) => h?.impactAsync(h.ImpactFeedbackStyle.Light));
57
+ maybeHaptics()?.impactAsync(Haptics__namespace.ImpactFeedbackStyle.Light);
49
58
  }
50
59
  var ThemeContext = React5.createContext(void 0);
51
60
  function useTheme() {
@@ -67,23 +76,17 @@ var ALL_FAMILIES = [
67
76
  { name: "MaterialIcons", component: MaterialIcons__default.default },
68
77
  { name: "Ionicons", component: Ionicons__default.default }
69
78
  ];
70
- var glyphCacheInitialized = false;
71
- function ensureGlyphCache() {
72
- if (glyphCacheInitialized) return;
73
- glyphCacheInitialized = true;
74
- for (const entry of ALL_FAMILIES) {
75
- try {
76
- entry.glyphMap = entry.component.glyphMap;
77
- } catch {
78
- entry.glyphMap = {};
79
- }
79
+ function getGlyphMap(component) {
80
+ try {
81
+ return component.glyphMap ?? {};
82
+ } catch {
83
+ return {};
80
84
  }
81
85
  }
82
86
  function Icon({ name, size, color, family }) {
83
- ensureGlyphCache();
84
87
  const entry = family ? ALL_FAMILIES.find((f) => f.name === family) : ALL_FAMILIES.find((f) => {
85
- const glyphMap = f.glyphMap;
86
- return glyphMap ? name in glyphMap : false;
88
+ const glyphMap = getGlyphMap(f.component);
89
+ return name in glyphMap;
87
90
  });
88
91
  if (!entry) return null;
89
92
  return React5__default.default.createElement(entry.component, { name, size, color });
@@ -1,10 +1,9 @@
1
- export { ImageViewer } from './chunk-PGQ6FMXS.mjs';
2
- import './chunk-S44XWTTC.mjs';
3
- import './chunk-ZTPYUU5C.mjs';
1
+ export { ImageViewer } from './chunk-ZO5BRTCW.mjs';
2
+ import './chunk-E4BJ5WXG.mjs';
3
+ import './chunk-ZRUUUVOO.mjs';
4
4
  import './chunk-M53LC4Q7.mjs';
5
5
  import './chunk-IFYMBOEN.mjs';
6
- import './chunk-ARONDO7M.mjs';
7
- import './chunk-MZ6WRTD2.mjs';
8
- import './chunk-KSSVIFYR.mjs';
6
+ import './chunk-CTUFFKGS.mjs';
7
+ import './chunk-24JTXQ2M.mjs';
8
+ import './chunk-ZQGCQ7SA.mjs';
9
9
  import './chunk-2CE3TQVY.mjs';
10
- import './chunk-Y6FXYEAI.mjs';
package/dist/Input.d.mts CHANGED
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import React__default from 'react';
2
2
  import { TextInputProps, TextStyle, ViewStyle } from 'react-native';
3
3
 
4
4
  interface InputProps extends TextInputProps {
@@ -6,8 +6,8 @@ interface InputProps extends TextInputProps {
6
6
  error?: string;
7
7
  hint?: string;
8
8
  disabled?: boolean;
9
- prefix?: React.ReactNode;
10
- suffix?: React.ReactNode;
9
+ prefix?: React__default.ReactNode;
10
+ suffix?: React__default.ReactNode;
11
11
  prefixStyle?: TextStyle;
12
12
  suffixStyle?: TextStyle;
13
13
  prefixIcon?: string;
@@ -20,6 +20,6 @@ interface InputProps extends TextInputProps {
20
20
  /** Use inside a Sheet/BottomSheet — swaps TextInput for BottomSheetTextInput to fix keyboard handling. */
21
21
  sheetMode?: boolean;
22
22
  }
23
- declare function Input({ label, error, hint, disabled, prefix, suffix, prefixStyle, suffixStyle, prefixIcon, suffixIcon, prefixIconColor, suffixIconColor, type, containerStyle, inputWrapperStyle, sheetMode, style, onFocus, onBlur, secureTextEntry, editable, accessibilityLabel, autoCapitalize, autoCorrect, ...props }: InputProps): React.JSX.Element;
23
+ declare function Input({ label, error, hint, disabled, prefix, suffix, prefixStyle, suffixStyle, prefixIcon, suffixIcon, prefixIconColor, suffixIconColor, type, containerStyle, inputWrapperStyle, sheetMode, style, onFocus, onBlur, secureTextEntry, editable, accessibilityLabel, autoCapitalize, autoCorrect, ...props }: InputProps): React__default.JSX.Element;
24
24
 
25
25
  export { Input, type InputProps };
package/dist/Input.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import React__default from 'react';
2
2
  import { TextInputProps, TextStyle, ViewStyle } from 'react-native';
3
3
 
4
4
  interface InputProps extends TextInputProps {
@@ -6,8 +6,8 @@ interface InputProps extends TextInputProps {
6
6
  error?: string;
7
7
  hint?: string;
8
8
  disabled?: boolean;
9
- prefix?: React.ReactNode;
10
- suffix?: React.ReactNode;
9
+ prefix?: React__default.ReactNode;
10
+ suffix?: React__default.ReactNode;
11
11
  prefixStyle?: TextStyle;
12
12
  suffixStyle?: TextStyle;
13
13
  prefixIcon?: string;
@@ -20,6 +20,6 @@ interface InputProps extends TextInputProps {
20
20
  /** Use inside a Sheet/BottomSheet — swaps TextInput for BottomSheetTextInput to fix keyboard handling. */
21
21
  sheetMode?: boolean;
22
22
  }
23
- declare function Input({ label, error, hint, disabled, prefix, suffix, prefixStyle, suffixStyle, prefixIcon, suffixIcon, prefixIconColor, suffixIconColor, type, containerStyle, inputWrapperStyle, sheetMode, style, onFocus, onBlur, secureTextEntry, editable, accessibilityLabel, autoCapitalize, autoCorrect, ...props }: InputProps): React.JSX.Element;
23
+ declare function Input({ label, error, hint, disabled, prefix, suffix, prefixStyle, suffixStyle, prefixIcon, suffixIcon, prefixIconColor, suffixIconColor, type, containerStyle, inputWrapperStyle, sheetMode, style, onFocus, onBlur, secureTextEntry, editable, accessibilityLabel, autoCapitalize, autoCorrect, ...props }: InputProps): React__default.JSX.Element;
24
24
 
25
25
  export { Input, type InputProps };
package/dist/Input.js CHANGED
@@ -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 });
package/dist/Input.mjs CHANGED
@@ -1,6 +1,5 @@
1
- export { Input } from './chunk-4NQFTHN3.mjs';
1
+ export { Input } from './chunk-3GE4UFV5.mjs';
2
2
  import './chunk-M53LC4Q7.mjs';
3
- import './chunk-MZ6WRTD2.mjs';
4
- import './chunk-KSSVIFYR.mjs';
3
+ import './chunk-24JTXQ2M.mjs';
4
+ import './chunk-ZQGCQ7SA.mjs';
5
5
  import './chunk-2CE3TQVY.mjs';
6
- import './chunk-Y6FXYEAI.mjs';
@@ -0,0 +1,23 @@
1
+ import React__default from 'react';
2
+ import { ViewStyle } from 'react-native';
3
+
4
+ type ItemGroupVariant = 'plain' | 'card';
5
+ interface ItemGroupProps {
6
+ children: React__default.ReactNode;
7
+ variant?: ItemGroupVariant;
8
+ childPropKey: 'title' | 'onPress';
9
+ style?: ViewStyle;
10
+ }
11
+ interface ItemGroupHeaderProps {
12
+ children: React__default.ReactNode;
13
+ style?: ViewStyle;
14
+ }
15
+ interface ItemGroupFooterProps {
16
+ children: React__default.ReactNode;
17
+ style?: ViewStyle;
18
+ }
19
+ declare function ItemGroup({ children, variant, childPropKey, style }: ItemGroupProps): React__default.JSX.Element;
20
+ declare function ItemGroupHeader({ children, style }: ItemGroupHeaderProps): React__default.JSX.Element;
21
+ declare function ItemGroupFooter({ children, style }: ItemGroupFooterProps): React__default.JSX.Element;
22
+
23
+ export { ItemGroup, ItemGroupFooter, type ItemGroupFooterProps, ItemGroupHeader, type ItemGroupHeaderProps, type ItemGroupProps, type ItemGroupVariant };
@@ -0,0 +1,23 @@
1
+ import React__default from 'react';
2
+ import { ViewStyle } from 'react-native';
3
+
4
+ type ItemGroupVariant = 'plain' | 'card';
5
+ interface ItemGroupProps {
6
+ children: React__default.ReactNode;
7
+ variant?: ItemGroupVariant;
8
+ childPropKey: 'title' | 'onPress';
9
+ style?: ViewStyle;
10
+ }
11
+ interface ItemGroupHeaderProps {
12
+ children: React__default.ReactNode;
13
+ style?: ViewStyle;
14
+ }
15
+ interface ItemGroupFooterProps {
16
+ children: React__default.ReactNode;
17
+ style?: ViewStyle;
18
+ }
19
+ declare function ItemGroup({ children, variant, childPropKey, style }: ItemGroupProps): React__default.JSX.Element;
20
+ declare function ItemGroupHeader({ children, style }: ItemGroupHeaderProps): React__default.JSX.Element;
21
+ declare function ItemGroupFooter({ children, style }: ItemGroupFooterProps): React__default.JSX.Element;
22
+
23
+ export { ItemGroup, ItemGroupFooter, type ItemGroupFooterProps, ItemGroupHeader, type ItemGroupHeaderProps, type ItemGroupProps, type ItemGroupVariant };
@@ -8,7 +8,7 @@ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
8
8
 
9
9
  var React2__default = /*#__PURE__*/_interopDefault(React2);
10
10
 
11
- // src/components/ListGroup/ListGroup.tsx
11
+ // src/components/ItemGroup/ItemGroup.tsx
12
12
  var ThemeContext = React2.createContext(void 0);
13
13
  function useTheme() {
14
14
  const context = React2.useContext(ThemeContext);
@@ -25,17 +25,17 @@ var vs = isWeb ? (n) => n : reactNativeSizeMatters.verticalScale;
25
25
  var RADIUS = {
26
26
  md: 14};
27
27
 
28
- // src/components/ListGroup/ListGroup.tsx
29
- function ListGroup({ children, variant = "plain", style }) {
28
+ // src/components/ItemGroup/ItemGroup.tsx
29
+ function ItemGroup({ children, variant = "plain", childPropKey, style }) {
30
30
  const { colors } = useTheme();
31
31
  const processedChildren = React2__default.default.Children.map(children, (child, index) => {
32
32
  if (!React2__default.default.isValidElement(child)) return child;
33
- if (child.type === ListGroupHeader || child.type === ListGroupFooter) {
33
+ if (child.type === ItemGroupHeader || child.type === ItemGroupFooter) {
34
34
  return child;
35
35
  }
36
36
  const childProps = child.props;
37
- const isListItem = "title" in childProps;
38
- if (!isListItem) return child;
37
+ const isTargetChild = childPropKey in childProps;
38
+ if (!isTargetChild) return child;
39
39
  const isLast = index === React2__default.default.Children.count(children) - 1;
40
40
  if (childProps["showSeparator"] === void 0 && !isLast) {
41
41
  return React2__default.default.cloneElement(child, {
@@ -58,22 +58,20 @@ function ListGroup({ children, variant = "plain", style }) {
58
58
  } : {};
59
59
  return /* @__PURE__ */ React2__default.default.createElement(reactNative.View, { style: [styles.container, cardStyle, style] }, processedChildren);
60
60
  }
61
- function ListGroupHeader({ children, style }) {
61
+ function ItemGroupHeader({ children, style }) {
62
62
  const { colors } = useTheme();
63
63
  if (typeof children === "string") {
64
64
  return /* @__PURE__ */ React2__default.default.createElement(reactNative.View, { style: [styles.header, { borderBottomColor: colors.separator }, style] }, /* @__PURE__ */ React2__default.default.createElement(reactNative.Text, { style: [styles.headerText, { color: colors.foregroundMuted }], allowFontScaling: true }, children));
65
65
  }
66
66
  return /* @__PURE__ */ React2__default.default.createElement(reactNative.View, { style: [styles.header, { borderBottomColor: colors.separator }, style] }, children);
67
67
  }
68
- function ListGroupFooter({ children, style }) {
68
+ function ItemGroupFooter({ children, style }) {
69
69
  const { colors } = useTheme();
70
70
  if (typeof children === "string") {
71
71
  return /* @__PURE__ */ React2__default.default.createElement(reactNative.View, { style: [styles.footer, style] }, /* @__PURE__ */ React2__default.default.createElement(reactNative.Text, { style: [styles.footerText, { color: colors.foregroundMuted }], allowFontScaling: true }, children));
72
72
  }
73
73
  return /* @__PURE__ */ React2__default.default.createElement(reactNative.View, { style: [styles.footer, style] }, children);
74
74
  }
75
- ListGroup.Header = ListGroupHeader;
76
- ListGroup.Footer = ListGroupFooter;
77
75
  var styles = reactNative.StyleSheet.create({
78
76
  container: {
79
77
  overflow: "hidden"
@@ -101,6 +99,6 @@ var styles = reactNative.StyleSheet.create({
101
99
  }
102
100
  });
103
101
 
104
- exports.ListGroup = ListGroup;
105
- exports.ListGroupFooter = ListGroupFooter;
106
- exports.ListGroupHeader = ListGroupHeader;
102
+ exports.ItemGroup = ItemGroup;
103
+ exports.ItemGroupFooter = ItemGroupFooter;
104
+ exports.ItemGroupHeader = ItemGroupHeader;
@@ -0,0 +1,4 @@
1
+ export { ItemGroup, ItemGroupFooter, ItemGroupHeader } from './chunk-2DDJ53DK.mjs';
2
+ import './chunk-DYYPDQA2.mjs';
3
+ import './chunk-ZQGCQ7SA.mjs';
4
+ import './chunk-2CE3TQVY.mjs';
@@ -1,16 +1,16 @@
1
- import React from 'react';
1
+ import React__default from 'react';
2
2
  import { ViewStyle } from 'react-native';
3
3
 
4
4
  interface LabelValueProps {
5
5
  label: string;
6
- value: string | React.ReactNode;
6
+ value: string | React__default.ReactNode;
7
7
  /** Icon name from @expo/vector-icons rendered left of label. */
8
8
  iconName?: string;
9
9
  /** Override icon color. Defaults to foregroundMuted. */
10
10
  iconColor?: string;
11
11
  style?: ViewStyle;
12
12
  }
13
- declare function LabelValueBase({ label, value, iconName, iconColor, style }: LabelValueProps): React.JSX.Element;
14
- declare const LabelValue: React.MemoExoticComponent<typeof LabelValueBase>;
13
+ declare function LabelValueBase({ label, value, iconName, iconColor, style }: LabelValueProps): React__default.JSX.Element;
14
+ declare const LabelValue: React__default.MemoExoticComponent<typeof LabelValueBase>;
15
15
 
16
16
  export { LabelValue, type LabelValueProps };
@@ -1,16 +1,16 @@
1
- import React from 'react';
1
+ import React__default from 'react';
2
2
  import { ViewStyle } from 'react-native';
3
3
 
4
4
  interface LabelValueProps {
5
5
  label: string;
6
- value: string | React.ReactNode;
6
+ value: string | React__default.ReactNode;
7
7
  /** Icon name from @expo/vector-icons rendered left of label. */
8
8
  iconName?: string;
9
9
  /** Override icon color. Defaults to foregroundMuted. */
10
10
  iconColor?: string;
11
11
  style?: ViewStyle;
12
12
  }
13
- declare function LabelValueBase({ label, value, iconName, iconColor, style }: LabelValueProps): React.JSX.Element;
14
- declare const LabelValue: React.MemoExoticComponent<typeof LabelValueBase>;
13
+ declare function LabelValueBase({ label, value, iconName, iconColor, style }: LabelValueProps): React__default.JSX.Element;
14
+ declare const LabelValue: React__default.MemoExoticComponent<typeof LabelValueBase>;
15
15
 
16
16
  export { LabelValue, type LabelValueProps };
@@ -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,5 +1,4 @@
1
- export { LabelValue } from './chunk-DE25XTVQ.mjs';
2
- import './chunk-MZ6WRTD2.mjs';
3
- import './chunk-KSSVIFYR.mjs';
1
+ export { LabelValue } from './chunk-3VHFOSZR.mjs';
2
+ import './chunk-24JTXQ2M.mjs';
3
+ import './chunk-ZQGCQ7SA.mjs';
4
4
  import './chunk-2CE3TQVY.mjs';
5
- import './chunk-Y6FXYEAI.mjs';
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import React__default from 'react';
2
2
  import { ImageSourcePropType, ViewStyle, TextStyle } from 'react-native';
3
3
 
4
4
  type ListItemVariant = 'plain' | 'card';
@@ -12,16 +12,16 @@ interface ListItemProps {
12
12
  * Arbitrary content rendered on the left (avatar, icon, image, etc.).
13
13
  * Rendered inside a 44×44 aligned container.
14
14
  */
15
- leftRender?: React.ReactNode;
15
+ leftRender?: React__default.ReactNode;
16
16
  /**
17
17
  * Arbitrary content rendered on the right (badge, price, chevron, switch, etc.).
18
18
  */
19
- rightRender?: React.ReactNode | string;
19
+ rightRender?: React__default.ReactNode | string;
20
20
  /**
21
21
  * Multiple action buttons rendered on the right with automatic gap.
22
22
  * Takes precedence over `rightRender` and `showChevron`.
23
23
  */
24
- rightActions?: React.ReactNode[];
24
+ rightActions?: React__default.ReactNode[];
25
25
  /**
26
26
  * Icon name from `@expo/vector-icons` rendered in the left slot.
27
27
  * See https://icons.expo.fyi. Takes precedence over `leftRender`.
@@ -64,8 +64,9 @@ interface ListItemProps {
64
64
  captionStyle?: TextStyle;
65
65
  /** Accessibility label override. Defaults to the title. */
66
66
  accessibilityLabel?: string;
67
+ accessibilityHint?: string;
67
68
  }
68
- declare function ListItemBase({ imageSource, leftRender, rightRender, rightActions, leftIcon, rightIcon, leftIconColor, rightIconColor, title, subtitle, caption, variant, showChevron, showSeparator, onPress, disabled, style, titleStyle, subtitleStyle, subtitleNumberOfLines, captionStyle, accessibilityLabel, }: ListItemProps): React.JSX.Element;
69
- declare const ListItem: React.MemoExoticComponent<typeof ListItemBase>;
69
+ declare function ListItemBase({ imageSource, leftRender, rightRender, rightActions, leftIcon, rightIcon, leftIconColor, rightIconColor, title, subtitle, caption, variant, showChevron, showSeparator, onPress, disabled, style, titleStyle, subtitleStyle, subtitleNumberOfLines, captionStyle, accessibilityLabel, accessibilityHint, }: ListItemProps): React__default.JSX.Element;
70
+ declare const ListItem: React__default.MemoExoticComponent<typeof ListItemBase>;
70
71
 
71
72
  export { ListItem, type ListItemProps };