@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
@@ -1,7 +1,7 @@
1
1
  import { COLOR_TRANSITION, SPRING_ELASTIC } from './chunk-M53LC4Q7.mjs';
2
2
  import { PressableButton } from './chunk-IFYMBOEN.mjs';
3
- import { selectionAsync } from './chunk-ARONDO7M.mjs';
4
- import { useTheme } from './chunk-KSSVIFYR.mjs';
3
+ import { selectionAsync } from './chunk-CTUFFKGS.mjs';
4
+ import { useTheme } from './chunk-ZQGCQ7SA.mjs';
5
5
  import { mvs, ms, s, vs } from './chunk-2CE3TQVY.mjs';
6
6
  import React from 'react';
7
7
  import { StyleSheet, View, Text } from 'react-native';
@@ -1,8 +1,8 @@
1
1
  import { PressableRow } from './chunk-IFYMBOEN.mjs';
2
- import { selectionAsync } from './chunk-ARONDO7M.mjs';
3
- import { RADIUS } from './chunk-QY3X2UYR.mjs';
4
- import { Icon } from './chunk-MZ6WRTD2.mjs';
5
- import { useTheme } from './chunk-KSSVIFYR.mjs';
2
+ import { selectionAsync } from './chunk-CTUFFKGS.mjs';
3
+ import { RADIUS } from './chunk-DYYPDQA2.mjs';
4
+ import { Icon } from './chunk-24JTXQ2M.mjs';
5
+ import { useTheme } from './chunk-ZQGCQ7SA.mjs';
6
6
  import { vs, ms, s } from './chunk-2CE3TQVY.mjs';
7
7
  import React from 'react';
8
8
  import { StyleSheet, View, Text } from 'react-native';
@@ -0,0 +1,55 @@
1
+ import { useTheme } from './chunk-ZQGCQ7SA.mjs';
2
+ import { s } from './chunk-2CE3TQVY.mjs';
3
+ import React from 'react';
4
+ import { StyleSheet, View, Text } from 'react-native';
5
+
6
+ function Separator({ orientation = "horizontal", label, style }) {
7
+ const { colors } = useTheme();
8
+ if (label && orientation !== "vertical") {
9
+ return /* @__PURE__ */ React.createElement(View, { style: [styles.row, style], accessibilityRole: "none" }, /* @__PURE__ */ React.createElement(View, { style: [styles.line, { backgroundColor: colors.separator }] }), /* @__PURE__ */ React.createElement(
10
+ Text,
11
+ {
12
+ style: [styles.label, { color: colors.foregroundMuted }],
13
+ allowFontScaling: true
14
+ },
15
+ label
16
+ ), /* @__PURE__ */ React.createElement(View, { style: [styles.line, { backgroundColor: colors.separator }] }));
17
+ }
18
+ return /* @__PURE__ */ React.createElement(
19
+ View,
20
+ {
21
+ style: [
22
+ orientation === "horizontal" ? styles.horizontal : styles.vertical,
23
+ { backgroundColor: colors.separator },
24
+ style
25
+ ]
26
+ }
27
+ );
28
+ }
29
+ var styles = StyleSheet.create({
30
+ horizontal: {
31
+ height: 1,
32
+ width: "100%"
33
+ },
34
+ vertical: {
35
+ width: 1,
36
+ height: "100%"
37
+ },
38
+ row: {
39
+ flexDirection: "row",
40
+ alignItems: "center",
41
+ gap: s(12)
42
+ },
43
+ line: {
44
+ flex: 1,
45
+ height: 1
46
+ },
47
+ label: {
48
+ fontFamily: "Sohne-Medium",
49
+ fontSize: 13,
50
+ letterSpacing: 0.32,
51
+ textTransform: "uppercase"
52
+ }
53
+ });
54
+
55
+ export { Separator };
@@ -1,9 +1,9 @@
1
1
  import { COLOR_TRANSITION } from './chunk-M53LC4Q7.mjs';
2
2
  import { PressableChip } from './chunk-IFYMBOEN.mjs';
3
- import { selectionAsync } from './chunk-ARONDO7M.mjs';
4
- import { RADIUS } from './chunk-QY3X2UYR.mjs';
5
- import { Icon } from './chunk-MZ6WRTD2.mjs';
6
- import { useTheme } from './chunk-KSSVIFYR.mjs';
3
+ import { selectionAsync } from './chunk-CTUFFKGS.mjs';
4
+ import { RADIUS } from './chunk-DYYPDQA2.mjs';
5
+ import { Icon } from './chunk-24JTXQ2M.mjs';
6
+ import { useTheme } from './chunk-ZQGCQ7SA.mjs';
7
7
  import { s, mvs, ms, vs } from './chunk-2CE3TQVY.mjs';
8
8
  import React from 'react';
9
9
  import { StyleSheet, View, Text } from 'react-native';
@@ -1,8 +1,8 @@
1
- import { Spinner } from './chunk-2VIDP72N.mjs';
1
+ import { Spinner } from './chunk-K3V6OTVB.mjs';
2
2
  import { PressableCard } from './chunk-IFYMBOEN.mjs';
3
- import { impactLight } from './chunk-ARONDO7M.mjs';
4
- import { RADIUS } from './chunk-QY3X2UYR.mjs';
5
- import { useTheme } from './chunk-KSSVIFYR.mjs';
3
+ import { impactLight } from './chunk-CTUFFKGS.mjs';
4
+ import { RADIUS } from './chunk-DYYPDQA2.mjs';
5
+ import { useTheme } from './chunk-ZQGCQ7SA.mjs';
6
6
  import { s, vs, ms } from './chunk-2CE3TQVY.mjs';
7
7
  import React, { useState } from 'react';
8
8
  import { Image } from 'expo-image';
@@ -94,7 +94,7 @@ function ImageUpload({
94
94
  },
95
95
  placeholder
96
96
  ) : null),
97
- loading || isPicking ? /* @__PURE__ */ React.createElement(View, { style: [styles.loadingOverlay, { backgroundColor: colors.overlay }] }, /* @__PURE__ */ React.createElement(Spinner, { size: "md" })) : null,
97
+ loading || isPicking ? /* @__PURE__ */ React.createElement(View, { style: [styles.loadingOverlay, { backgroundColor: colors.overlay, borderRadius }] }, /* @__PURE__ */ React.createElement(Spinner, { size: "md" })) : null,
98
98
  value && !loading ? /* @__PURE__ */ React.createElement(View, { style: styles.editBadge, pointerEvents: "none" }, /* @__PURE__ */ React.createElement(View, { style: [styles.editBadgeInner, { backgroundColor: colors.overlay }] }, /* @__PURE__ */ React.createElement(Feather, { name: "edit-2", size: ms(12), color: "#fff" }))) : null
99
99
  );
100
100
  }
@@ -0,0 +1,30 @@
1
+ import { Platform } from 'react-native';
2
+ import * as Haptics from 'expo-haptics';
3
+
4
+ // src/utils/haptics.ts
5
+ function maybeHaptics() {
6
+ return Platform.OS === "web" ? null : Haptics;
7
+ }
8
+ function selectionAsync() {
9
+ maybeHaptics()?.selectionAsync();
10
+ }
11
+ function impactLight() {
12
+ maybeHaptics()?.impactAsync(Haptics.ImpactFeedbackStyle.Light);
13
+ }
14
+ function impactMedium() {
15
+ maybeHaptics()?.impactAsync(Haptics.ImpactFeedbackStyle.Medium);
16
+ }
17
+ function impactHeavy() {
18
+ maybeHaptics()?.impactAsync(Haptics.ImpactFeedbackStyle.Heavy);
19
+ }
20
+ function notificationSuccess() {
21
+ maybeHaptics()?.notificationAsync(Haptics.NotificationFeedbackType.Success);
22
+ }
23
+ function notificationError() {
24
+ maybeHaptics()?.notificationAsync(Haptics.NotificationFeedbackType.Error);
25
+ }
26
+ function notificationWarning() {
27
+ maybeHaptics()?.notificationAsync(Haptics.NotificationFeedbackType.Warning);
28
+ }
29
+
30
+ export { impactHeavy, impactLight, impactMedium, notificationError, notificationSuccess, notificationWarning, selectionAsync };
@@ -1,5 +1,5 @@
1
- import { TYPOGRAPHY } from './chunk-QY3X2UYR.mjs';
2
- import { useTheme } from './chunk-KSSVIFYR.mjs';
1
+ import { TYPOGRAPHY } from './chunk-DYYPDQA2.mjs';
2
+ import { useTheme } from './chunk-ZQGCQ7SA.mjs';
3
3
  import { mvs, ms } from './chunk-2CE3TQVY.mjs';
4
4
  import React from 'react';
5
5
  import { Text as Text$1 } from 'react-native';
@@ -21,7 +21,9 @@ var variantStyles = {
21
21
  "micro-label": { ...TYPOGRAPHY["micro-label"], fontSize: ms(TYPOGRAPHY["micro-label"].fontSize), lineHeight: mvs(TYPOGRAPHY["micro-label"].lineHeight) },
22
22
  "uppercase-tag": { ...TYPOGRAPHY["uppercase-tag"], fontSize: ms(TYPOGRAPHY["uppercase-tag"].fontSize), lineHeight: mvs(TYPOGRAPHY["uppercase-tag"].lineHeight) },
23
23
  "button-lg": { ...TYPOGRAPHY["button-lg"], fontSize: ms(TYPOGRAPHY["button-lg"].fontSize), lineHeight: mvs(TYPOGRAPHY["button-lg"].lineHeight) },
24
- "button-sm": { ...TYPOGRAPHY["button-sm"], fontSize: ms(TYPOGRAPHY["button-sm"].fontSize), lineHeight: mvs(TYPOGRAPHY["button-sm"].lineHeight) }
24
+ "button-sm": { ...TYPOGRAPHY["button-sm"], fontSize: ms(TYPOGRAPHY["button-sm"].fontSize), lineHeight: mvs(TYPOGRAPHY["button-sm"].lineHeight) },
25
+ "code-sm": { ...TYPOGRAPHY["code-sm"], fontSize: ms(TYPOGRAPHY["code-sm"].fontSize), lineHeight: mvs(TYPOGRAPHY["code-sm"].lineHeight) },
26
+ "code-md": { ...TYPOGRAPHY["code-md"], fontSize: ms(TYPOGRAPHY["code-md"].fontSize), lineHeight: mvs(TYPOGRAPHY["code-md"].lineHeight) }
25
27
  };
26
28
  var defaultColorVariant = {
27
29
  "display-hero": "foreground",
@@ -40,7 +42,9 @@ var defaultColorVariant = {
40
42
  "micro-label": "foreground",
41
43
  "uppercase-tag": "foregroundMuted",
42
44
  "button-lg": "foreground",
43
- "button-sm": "foreground"
45
+ "button-sm": "foreground",
46
+ "code-sm": "foreground",
47
+ "code-md": "foreground"
44
48
  };
45
49
  var fontWarned = false;
46
50
  function warnIfFontsMissing() {
@@ -1,7 +1,7 @@
1
- import { impactLight } from './chunk-ARONDO7M.mjs';
2
- import { RADIUS } from './chunk-QY3X2UYR.mjs';
3
- import { Icon } from './chunk-MZ6WRTD2.mjs';
4
- import { useTheme } from './chunk-KSSVIFYR.mjs';
1
+ import { impactLight } from './chunk-CTUFFKGS.mjs';
2
+ import { RADIUS } from './chunk-DYYPDQA2.mjs';
3
+ import { Icon } from './chunk-24JTXQ2M.mjs';
4
+ import { useTheme } from './chunk-ZQGCQ7SA.mjs';
5
5
  import { ms, vs, s, mvs } from './chunk-2CE3TQVY.mjs';
6
6
  import React from 'react';
7
7
  import { StyleSheet, View, Text, TouchableOpacity } from 'react-native';
@@ -47,13 +47,14 @@ var ErrorBoundary = class extends React.Component {
47
47
  const { error } = this.state;
48
48
  if (error) {
49
49
  const { fallback, title, message } = this.props;
50
+ const componentStack = error.stack ?? "";
50
51
  if (typeof fallback === "function") {
51
- return fallback({ error, reset: this.reset });
52
+ return fallback({ error, componentStack, reset: this.reset });
52
53
  }
53
54
  if (fallback !== void 0) {
54
55
  return fallback;
55
56
  }
56
- return /* @__PURE__ */ React.createElement(DefaultErrorFallback, { error, reset: this.reset, title, message });
57
+ return /* @__PURE__ */ React.createElement(DefaultErrorFallback, { error, componentStack, reset: this.reset, title, message });
57
58
  }
58
59
  return this.props.children;
59
60
  }
@@ -43,17 +43,17 @@ var SHADOWS = {
43
43
  },
44
44
  lg: {
45
45
  shadowColor: "#000",
46
- shadowOffset: { width: 0, height: 6 },
47
- shadowOpacity: 0.16,
48
- shadowRadius: 16,
49
- elevation: 10
46
+ shadowOffset: { width: 0, height: 4 },
47
+ shadowOpacity: 0.12,
48
+ shadowRadius: 12,
49
+ elevation: 8
50
50
  },
51
51
  xl: {
52
52
  shadowColor: "#000",
53
- shadowOffset: { width: 0, height: 12 },
54
- shadowOpacity: 0.24,
53
+ shadowOffset: { width: 0, height: 8 },
54
+ shadowOpacity: 0.18,
55
55
  shadowRadius: 24,
56
- elevation: 18
56
+ elevation: 16
57
57
  }
58
58
  };
59
59
  var BREAKPOINTS = {
@@ -185,6 +185,20 @@ var TYPOGRAPHY = {
185
185
  fontWeight: "500",
186
186
  lineHeight: 18,
187
187
  letterSpacing: 0
188
+ },
189
+ "code-sm": {
190
+ fontFamily: "SohneMono-Regular",
191
+ fontSize: 13,
192
+ fontWeight: "400",
193
+ lineHeight: 18,
194
+ letterSpacing: 0
195
+ },
196
+ "code-md": {
197
+ fontFamily: "SohneMono-Regular",
198
+ fontSize: 15,
199
+ fontWeight: "400",
200
+ lineHeight: 22,
201
+ letterSpacing: 0
188
202
  }
189
203
  };
190
204
 
@@ -1,8 +1,8 @@
1
1
  import { SPRINGS } from './chunk-M53LC4Q7.mjs';
2
2
  import { PressableButton } from './chunk-IFYMBOEN.mjs';
3
- import { selectionAsync } from './chunk-ARONDO7M.mjs';
4
- import { Icon } from './chunk-MZ6WRTD2.mjs';
5
- import { useTheme } from './chunk-KSSVIFYR.mjs';
3
+ import { selectionAsync } from './chunk-CTUFFKGS.mjs';
4
+ import { Icon } from './chunk-24JTXQ2M.mjs';
5
+ import { useTheme } from './chunk-ZQGCQ7SA.mjs';
6
6
  import { s } from './chunk-2CE3TQVY.mjs';
7
7
  import React, { useEffect } from 'react';
8
8
  import { StyleSheet, View } from 'react-native';
@@ -1,4 +1,4 @@
1
- import { Input } from './chunk-4NQFTHN3.mjs';
1
+ import { Input } from './chunk-3GE4UFV5.mjs';
2
2
  import { ms, vs } from './chunk-2CE3TQVY.mjs';
3
3
  import React from 'react';
4
4
 
@@ -1,4 +1,4 @@
1
- import { useTheme } from './chunk-KSSVIFYR.mjs';
1
+ import { useTheme } from './chunk-ZQGCQ7SA.mjs';
2
2
  import { ms } from './chunk-2CE3TQVY.mjs';
3
3
  import React from 'react';
4
4
  import { StyleSheet, View, Text } from 'react-native';
@@ -1,8 +1,8 @@
1
1
  import { COLOR_TRANSITION, SPRING_ELASTIC, OPACITY_TRANSITION } from './chunk-M53LC4Q7.mjs';
2
- import { impactLight } from './chunk-ARONDO7M.mjs';
3
- import { RADIUS } from './chunk-QY3X2UYR.mjs';
4
- import { Icon } from './chunk-MZ6WRTD2.mjs';
5
- import { useTheme } from './chunk-KSSVIFYR.mjs';
2
+ import { impactLight } from './chunk-CTUFFKGS.mjs';
3
+ import { RADIUS } from './chunk-DYYPDQA2.mjs';
4
+ import { Icon } from './chunk-24JTXQ2M.mjs';
5
+ import { useTheme } from './chunk-ZQGCQ7SA.mjs';
6
6
  import { mvs, ms, vs, s } from './chunk-2CE3TQVY.mjs';
7
7
  import React, { createContext, useContext } from 'react';
8
8
  import { StyleSheet, View, Pressable, Text } from 'react-native';
@@ -1,5 +1,5 @@
1
1
  import { SPRINGS } from './chunk-M53LC4Q7.mjs';
2
- import { useTheme } from './chunk-KSSVIFYR.mjs';
2
+ import { useTheme } from './chunk-ZQGCQ7SA.mjs';
3
3
  import { vs } from './chunk-2CE3TQVY.mjs';
4
4
  import React, { useState, useEffect } from 'react';
5
5
  import { StyleSheet, View } from 'react-native';
@@ -1,4 +1,4 @@
1
- import { useTheme } from './chunk-KSSVIFYR.mjs';
1
+ import { useTheme } from './chunk-ZQGCQ7SA.mjs';
2
2
  import { vs, s } from './chunk-2CE3TQVY.mjs';
3
3
  import React from 'react';
4
4
  import { StyleSheet, View, Text } from 'react-native';
@@ -1,8 +1,8 @@
1
1
  import { COLOR_TRANSITION } from './chunk-M53LC4Q7.mjs';
2
2
  import { PressableButton } from './chunk-IFYMBOEN.mjs';
3
- import { selectionAsync } from './chunk-ARONDO7M.mjs';
4
- import { Icon } from './chunk-MZ6WRTD2.mjs';
5
- import { useTheme } from './chunk-KSSVIFYR.mjs';
3
+ import { selectionAsync } from './chunk-CTUFFKGS.mjs';
4
+ import { Icon } from './chunk-24JTXQ2M.mjs';
5
+ import { useTheme } from './chunk-ZQGCQ7SA.mjs';
6
6
  import { vs, s, ms } from './chunk-2CE3TQVY.mjs';
7
7
  import React from 'react';
8
8
  import { StyleSheet, View, Text } from 'react-native';
@@ -0,0 +1,35 @@
1
+ import { impactMedium } from './chunk-CTUFFKGS.mjs';
2
+ import { useRef, useState, useEffect, useCallback } from 'react';
3
+
4
+ function useSheetModal(visible, onDismiss) {
5
+ const ref = useRef(null);
6
+ const state = useRef("idle");
7
+ const onDismissRef = useRef(onDismiss);
8
+ const [tick, setTick] = useState(0);
9
+ useEffect(() => {
10
+ onDismissRef.current = onDismiss;
11
+ });
12
+ useEffect(() => {
13
+ if (visible) {
14
+ if (state.current === "idle") {
15
+ state.current = "presenting";
16
+ impactMedium();
17
+ ref.current?.present();
18
+ state.current = "presented";
19
+ }
20
+ } else {
21
+ if (state.current === "presented" || state.current === "presenting") {
22
+ state.current = "dismissing";
23
+ ref.current?.dismiss();
24
+ }
25
+ }
26
+ }, [visible, tick]);
27
+ const handleDismiss = useCallback(() => {
28
+ state.current = "idle";
29
+ onDismissRef.current?.();
30
+ setTick((t) => t + 1);
31
+ }, []);
32
+ return { ref, handleDismiss };
33
+ }
34
+
35
+ export { useSheetModal };
@@ -1,7 +1,7 @@
1
1
  import { PressableTab } from './chunk-IFYMBOEN.mjs';
2
- import { selectionAsync } from './chunk-ARONDO7M.mjs';
3
- import { Icon } from './chunk-MZ6WRTD2.mjs';
4
- import { useTheme } from './chunk-KSSVIFYR.mjs';
2
+ import { selectionAsync } from './chunk-CTUFFKGS.mjs';
3
+ import { Icon } from './chunk-24JTXQ2M.mjs';
4
+ import { useTheme } from './chunk-ZQGCQ7SA.mjs';
5
5
  import { ms, s, vs, mvs } from './chunk-2CE3TQVY.mjs';
6
6
  import React from 'react';
7
7
  import { StyleSheet, View, Text } from 'react-native';
@@ -1,4 +1,4 @@
1
- import { useTheme } from './chunk-KSSVIFYR.mjs';
1
+ import { useTheme } from './chunk-ZQGCQ7SA.mjs';
2
2
  import { ms, mvs, vs } from './chunk-2CE3TQVY.mjs';
3
3
  import React from 'react';
4
4
  import { StyleSheet, View, ActivityIndicator, Text } from 'react-native';
@@ -1,6 +1,6 @@
1
- import { RADIUS } from './chunk-QY3X2UYR.mjs';
2
- import { Icon } from './chunk-MZ6WRTD2.mjs';
3
- import { useTheme } from './chunk-KSSVIFYR.mjs';
1
+ import { RADIUS } from './chunk-DYYPDQA2.mjs';
2
+ import { Icon } from './chunk-24JTXQ2M.mjs';
3
+ import { useTheme } from './chunk-ZQGCQ7SA.mjs';
4
4
  import { s, vs, ms } from './chunk-2CE3TQVY.mjs';
5
5
  import React from 'react';
6
6
  import { StyleSheet, View, Text, TouchableOpacity } from 'react-native';
@@ -1,8 +1,8 @@
1
- import { Spinner } from './chunk-2VIDP72N.mjs';
2
- import { selectionAsync, impactMedium } from './chunk-ARONDO7M.mjs';
3
- import { RADIUS } from './chunk-QY3X2UYR.mjs';
4
- import { Icon } from './chunk-MZ6WRTD2.mjs';
5
- import { useTheme } from './chunk-KSSVIFYR.mjs';
1
+ import { Spinner } from './chunk-K3V6OTVB.mjs';
2
+ import { selectionAsync, impactMedium } from './chunk-CTUFFKGS.mjs';
3
+ import { RADIUS } from './chunk-DYYPDQA2.mjs';
4
+ import { Icon } from './chunk-24JTXQ2M.mjs';
5
+ import { useTheme } from './chunk-ZQGCQ7SA.mjs';
6
6
  import { s, vs, ms } from './chunk-2CE3TQVY.mjs';
7
7
  import React, { useRef, useState, useId, useMemo, useCallback } from 'react';
8
8
  import { Dimensions, StyleSheet, TouchableOpacity, View, Text } from 'react-native';
@@ -237,29 +237,21 @@ var CATEGORIES = [
237
237
  ]
238
238
  }
239
239
  ];
240
- var _allIcons = null;
241
- var _categorized = null;
242
240
  function getAllCuratedIcons() {
243
- if (!_allIcons) {
244
- const seen = /* @__PURE__ */ new Set();
245
- const result = [];
246
- for (const cat of CATEGORIES) {
247
- for (const name of cat.icons) {
248
- if (!seen.has(name)) {
249
- seen.add(name);
250
- result.push(name);
251
- }
241
+ const seen = /* @__PURE__ */ new Set();
242
+ const result = [];
243
+ for (const cat of CATEGORIES) {
244
+ for (const name of cat.icons) {
245
+ if (!seen.has(name)) {
246
+ seen.add(name);
247
+ result.push(name);
252
248
  }
253
249
  }
254
- _allIcons = result;
255
250
  }
256
- return _allIcons;
251
+ return result;
257
252
  }
258
253
  function getCuratedCategories() {
259
- if (!_categorized) {
260
- _categorized = CATEGORIES.map((cat) => ({ ...cat, icons: [...cat.icons] }));
261
- }
262
- return _categorized;
254
+ return CATEGORIES.map((cat) => ({ ...cat, icons: [...cat.icons] }));
263
255
  }
264
256
 
265
257
  // src/components/IconPicker/IconPicker.tsx
@@ -1,8 +1,8 @@
1
1
  import { PressableCard } from './chunk-IFYMBOEN.mjs';
2
- import { impactLight } from './chunk-ARONDO7M.mjs';
3
- import { RADIUS } from './chunk-QY3X2UYR.mjs';
4
- import { Icon } from './chunk-MZ6WRTD2.mjs';
5
- import { useTheme } from './chunk-KSSVIFYR.mjs';
2
+ import { impactLight } from './chunk-CTUFFKGS.mjs';
3
+ import { RADIUS } from './chunk-DYYPDQA2.mjs';
4
+ import { Icon } from './chunk-24JTXQ2M.mjs';
5
+ import { useTheme } from './chunk-ZQGCQ7SA.mjs';
6
6
  import { mvs, ms, vs, s } from './chunk-2CE3TQVY.mjs';
7
7
  import React from 'react';
8
8
  import { Image } from 'expo-image';
@@ -1,8 +1,8 @@
1
1
  import { PressableButton } from './chunk-IFYMBOEN.mjs';
2
- import { impactLight } from './chunk-ARONDO7M.mjs';
3
- import { RADIUS } from './chunk-QY3X2UYR.mjs';
4
- import { Icon } from './chunk-MZ6WRTD2.mjs';
5
- import { useTheme } from './chunk-KSSVIFYR.mjs';
2
+ import { impactLight } from './chunk-CTUFFKGS.mjs';
3
+ import { RADIUS } from './chunk-DYYPDQA2.mjs';
4
+ import { Icon } from './chunk-24JTXQ2M.mjs';
5
+ import { useTheme } from './chunk-ZQGCQ7SA.mjs';
6
6
  import { s, mvs, ms } from './chunk-2CE3TQVY.mjs';
7
7
  import React from 'react';
8
8
  import { StyleSheet, View, Text } from 'react-native';
@@ -1,6 +1,6 @@
1
1
  import { PRESS_SCALE } from './chunk-M53LC4Q7.mjs';
2
2
  import { PressableCard } from './chunk-IFYMBOEN.mjs';
3
- import { impactLight } from './chunk-ARONDO7M.mjs';
3
+ import { impactLight } from './chunk-CTUFFKGS.mjs';
4
4
  import React from 'react';
5
5
 
6
6
  function Pressable({
@@ -1,8 +1,8 @@
1
- import { Badge } from './chunk-AZV7KNJI.mjs';
2
- import { Button } from './chunk-Y6YS33GM.mjs';
3
- import { RADIUS, SHADOWS } from './chunk-QY3X2UYR.mjs';
4
- import { Icon } from './chunk-MZ6WRTD2.mjs';
5
- import { useTheme } from './chunk-KSSVIFYR.mjs';
1
+ import { Badge } from './chunk-YKWIMVGU.mjs';
2
+ import { Button } from './chunk-AHFEAY6M.mjs';
3
+ import { RADIUS, SHADOWS } from './chunk-DYYPDQA2.mjs';
4
+ import { Icon } from './chunk-24JTXQ2M.mjs';
5
+ import { useTheme } from './chunk-ZQGCQ7SA.mjs';
6
6
  import { mvs, ms, vs, s } from './chunk-2CE3TQVY.mjs';
7
7
  import React from 'react';
8
8
  import { StyleSheet, View, Text } from 'react-native';
@@ -1,5 +1,5 @@
1
- import { selectionAsync } from './chunk-ARONDO7M.mjs';
2
- import { useTheme } from './chunk-KSSVIFYR.mjs';
1
+ import { selectionAsync } from './chunk-CTUFFKGS.mjs';
2
+ import { useTheme } from './chunk-ZQGCQ7SA.mjs';
3
3
  import { s, mvs, ms } from './chunk-2CE3TQVY.mjs';
4
4
  import React from 'react';
5
5
  import { StyleSheet, View, TouchableOpacity, Text } from 'react-native';
@@ -1,6 +1,6 @@
1
1
  import { PressableButton } from './chunk-IFYMBOEN.mjs';
2
- import { selectionAsync } from './chunk-ARONDO7M.mjs';
3
- import { useTheme } from './chunk-KSSVIFYR.mjs';
2
+ import { selectionAsync } from './chunk-CTUFFKGS.mjs';
3
+ import { useTheme } from './chunk-ZQGCQ7SA.mjs';
4
4
  import { ms, vs, s } from './chunk-2CE3TQVY.mjs';
5
5
  import React, { useState, useRef } from 'react';
6
6
  import { Platform, StyleSheet, View, Text, Modal, TouchableOpacity } from 'react-native';
@@ -28,6 +28,18 @@ function Select({
28
28
  const [pendingValue, setPendingValue] = useState(value);
29
29
  const pickerRef = useRef(null);
30
30
  const selected = options.find((o) => o.value === value);
31
+ function renderPickerItems(includePlaceholder, itemColor, disabledColor) {
32
+ return /* @__PURE__ */ React.createElement(React.Fragment, null, includePlaceholder ? /* @__PURE__ */ React.createElement(Picker.Item, { label: placeholder, value: "", enabled: false, color: disabledColor }) : null, options.map((o) => /* @__PURE__ */ React.createElement(
33
+ Picker.Item,
34
+ {
35
+ key: o.value,
36
+ label: o.label,
37
+ value: o.value,
38
+ enabled: !o.disabled,
39
+ color: o.disabled ? disabledColor : itemColor
40
+ }
41
+ )));
42
+ }
31
43
  const handleOpen = () => {
32
44
  if (disabled) return;
33
45
  selectionAsync();
@@ -98,17 +110,7 @@ function Select({
98
110
  onValueChange: (val) => setPendingValue(val),
99
111
  itemStyle: { color: colors.foreground }
100
112
  },
101
- !value ? /* @__PURE__ */ React.createElement(Picker.Item, { label: placeholder, value: "", color: colors.foregroundMuted, enabled: false }) : null,
102
- options.map((o) => /* @__PURE__ */ React.createElement(
103
- Picker.Item,
104
- {
105
- key: o.value,
106
- label: o.label,
107
- value: o.value,
108
- enabled: !o.disabled,
109
- color: o.disabled ? colors.foregroundMuted : colors.foreground
110
- }
111
- ))
113
+ renderPickerItems(!value, colors.foreground, colors.foregroundMuted)
112
114
  ))
113
115
  ) : null, isAndroid ? /* @__PURE__ */ React.createElement(
114
116
  Picker,
@@ -126,16 +128,7 @@ function Select({
126
128
  prompt: label,
127
129
  style: styles.androidHiddenPicker
128
130
  },
129
- !value ? /* @__PURE__ */ React.createElement(Picker.Item, { label: placeholder, value: "", enabled: false }) : null,
130
- options.map((o) => /* @__PURE__ */ React.createElement(
131
- Picker.Item,
132
- {
133
- key: o.value,
134
- label: o.label,
135
- value: o.value,
136
- enabled: !o.disabled
137
- }
138
- ))
131
+ renderPickerItems(!value)
139
132
  ) : null, isWeb ? /* @__PURE__ */ React.createElement(
140
133
  Picker,
141
134
  {
@@ -156,16 +149,7 @@ function Select({
156
149
  }
157
150
  ]
158
151
  },
159
- /* @__PURE__ */ React.createElement(Picker.Item, { label: placeholder, value: "", enabled: false }),
160
- options.map((o) => /* @__PURE__ */ React.createElement(
161
- Picker.Item,
162
- {
163
- key: o.value,
164
- label: o.label,
165
- value: o.value,
166
- enabled: !o.disabled
167
- }
168
- ))
152
+ renderPickerItems(true)
169
153
  ) : null, error ? /* @__PURE__ */ React.createElement(Text, { style: [styles.helperText, { color: colors.destructive }], allowFontScaling: true }, error) : !error && hint ? /* @__PURE__ */ React.createElement(Text, { style: [styles.helperText, { color: colors.foregroundMuted }], allowFontScaling: true }, hint) : null);
170
154
  }
171
155
  var styles = StyleSheet.create({
@@ -1,6 +1,6 @@
1
1
  import { TIMINGS } from './chunk-M53LC4Q7.mjs';
2
- import { RADIUS } from './chunk-QY3X2UYR.mjs';
3
- import { useTheme } from './chunk-KSSVIFYR.mjs';
2
+ import { RADIUS } from './chunk-DYYPDQA2.mjs';
3
+ import { useTheme } from './chunk-ZQGCQ7SA.mjs';
4
4
  import { vs, s } from './chunk-2CE3TQVY.mjs';
5
5
  import React, { useState, useEffect } from 'react';
6
6
  import { StyleSheet, View } from 'react-native';
@@ -1,4 +1,4 @@
1
- import { useTheme } from './chunk-KSSVIFYR.mjs';
1
+ import { useTheme } from './chunk-ZQGCQ7SA.mjs';
2
2
  import { s, ms, vs } from './chunk-2CE3TQVY.mjs';
3
3
  import React, { useState } from 'react';
4
4
  import { Image } from 'expo-image';