@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
@@ -3,6 +3,7 @@
3
3
  var React3 = require('react');
4
4
  var reactNative = require('react-native');
5
5
  var reactNativeEase = require('react-native-ease');
6
+ var Haptics = require('expo-haptics');
6
7
  var reactNativeSizeMatters = require('react-native-size-matters');
7
8
  var AntDesign = require('@expo/vector-icons/AntDesign');
8
9
  var Entypo = require('@expo/vector-icons/Entypo');
@@ -14,7 +15,26 @@ var pressto = require('pressto');
14
15
 
15
16
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
16
17
 
18
+ function _interopNamespace(e) {
19
+ if (e && e.__esModule) return e;
20
+ var n = Object.create(null);
21
+ if (e) {
22
+ Object.keys(e).forEach(function (k) {
23
+ if (k !== 'default') {
24
+ var d = Object.getOwnPropertyDescriptor(e, k);
25
+ Object.defineProperty(n, k, d.get ? d : {
26
+ enumerable: true,
27
+ get: function () { return e[k]; }
28
+ });
29
+ }
30
+ });
31
+ }
32
+ n.default = e;
33
+ return Object.freeze(n);
34
+ }
35
+
17
36
  var React3__default = /*#__PURE__*/_interopDefault(React3);
37
+ var Haptics__namespace = /*#__PURE__*/_interopNamespace(Haptics);
18
38
  var AntDesign__default = /*#__PURE__*/_interopDefault(AntDesign);
19
39
  var Entypo__default = /*#__PURE__*/_interopDefault(Entypo);
20
40
  var Feather__default = /*#__PURE__*/_interopDefault(Feather);
@@ -31,22 +51,11 @@ function useTheme() {
31
51
  }
32
52
  return context;
33
53
  }
34
- var _haptics = null;
35
- var _loaded = false;
36
- async function getHaptics() {
37
- if (reactNative.Platform.OS === "web") return null;
38
- if (!_loaded) {
39
- _loaded = true;
40
- try {
41
- _haptics = await import('expo-haptics');
42
- } catch {
43
- _haptics = null;
44
- }
45
- }
46
- return _haptics;
54
+ function maybeHaptics() {
55
+ return reactNative.Platform.OS === "web" ? null : Haptics__namespace;
47
56
  }
48
57
  function impactMedium() {
49
- getHaptics().then((h) => h?.impactAsync(h.ImpactFeedbackStyle.Medium));
58
+ maybeHaptics()?.impactAsync(Haptics__namespace.ImpactFeedbackStyle.Medium);
50
59
  }
51
60
  var isWeb = reactNative.Platform.OS === "web";
52
61
  var s = isWeb ? (n) => n : reactNativeSizeMatters.scale;
@@ -61,23 +70,17 @@ var ALL_FAMILIES = [
61
70
  { name: "MaterialIcons", component: MaterialIcons__default.default },
62
71
  { name: "Ionicons", component: Ionicons__default.default }
63
72
  ];
64
- var glyphCacheInitialized = false;
65
- function ensureGlyphCache() {
66
- if (glyphCacheInitialized) return;
67
- glyphCacheInitialized = true;
68
- for (const entry of ALL_FAMILIES) {
69
- try {
70
- entry.glyphMap = entry.component.glyphMap;
71
- } catch {
72
- entry.glyphMap = {};
73
- }
73
+ function getGlyphMap(component) {
74
+ try {
75
+ return component.glyphMap ?? {};
76
+ } catch {
77
+ return {};
74
78
  }
75
79
  }
76
80
  function Icon({ name, size, color, family }) {
77
- ensureGlyphCache();
78
81
  const entry = family ? ALL_FAMILIES.find((f) => f.name === family) : ALL_FAMILIES.find((f) => {
79
- const glyphMap = f.glyphMap;
80
- return glyphMap ? name in glyphMap : false;
82
+ const glyphMap = getGlyphMap(f.component);
83
+ return name in glyphMap;
81
84
  });
82
85
  if (!entry) return null;
83
86
  return React3__default.default.createElement(entry.component, { name, size, color });
@@ -108,8 +111,7 @@ var TYPOGRAPHY = {
108
111
  fontWeight: "500",
109
112
  lineHeight: 18,
110
113
  letterSpacing: 0
111
- }
112
- };
114
+ }};
113
115
  var makePressable = (scale2) => pressto.createAnimatedPressable((progress) => {
114
116
  "worklet";
115
117
  return { transform: [{ scale: 1 - (1 - scale2) * progress }] };
@@ -1,10 +1,10 @@
1
- export { PricingCard } from './chunk-K3QX2M26.mjs';
2
- import './chunk-AZV7KNJI.mjs';
3
- import './chunk-Y6YS33GM.mjs';
1
+ export { PricingCard } from './chunk-PPKCGCZ3.mjs';
2
+ import './chunk-YKWIMVGU.mjs';
3
+ import './chunk-AHFEAY6M.mjs';
4
4
  import './chunk-M53LC4Q7.mjs';
5
5
  import './chunk-IFYMBOEN.mjs';
6
- import './chunk-ARONDO7M.mjs';
7
- import './chunk-QY3X2UYR.mjs';
8
- import './chunk-MZ6WRTD2.mjs';
9
- import './chunk-KSSVIFYR.mjs';
6
+ import './chunk-CTUFFKGS.mjs';
7
+ import './chunk-DYYPDQA2.mjs';
8
+ import './chunk-24JTXQ2M.mjs';
9
+ import './chunk-ZQGCQ7SA.mjs';
10
10
  import './chunk-2CE3TQVY.mjs';
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import React__default from 'react';
2
2
  import { ViewStyle } from 'react-native';
3
3
 
4
4
  type ProgressVariant = 'default' | 'success' | 'warning' | 'destructive';
@@ -9,6 +9,6 @@ interface ProgressProps {
9
9
  style?: ViewStyle;
10
10
  accessibilityLabel?: string;
11
11
  }
12
- declare function Progress({ value, max, variant, style, accessibilityLabel }: ProgressProps): React.JSX.Element;
12
+ declare function Progress({ value, max, variant, style, accessibilityLabel }: ProgressProps): React__default.JSX.Element;
13
13
 
14
14
  export { Progress, type ProgressProps };
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import React__default from 'react';
2
2
  import { ViewStyle } from 'react-native';
3
3
 
4
4
  type ProgressVariant = 'default' | 'success' | 'warning' | 'destructive';
@@ -9,6 +9,6 @@ interface ProgressProps {
9
9
  style?: ViewStyle;
10
10
  accessibilityLabel?: string;
11
11
  }
12
- declare function Progress({ value, max, variant, style, accessibilityLabel }: ProgressProps): React.JSX.Element;
12
+ declare function Progress({ value, max, variant, style, accessibilityLabel }: ProgressProps): React__default.JSX.Element;
13
13
 
14
14
  export { Progress, type ProgressProps };
package/dist/Progress.mjs CHANGED
@@ -1,4 +1,4 @@
1
- export { Progress } from './chunk-DBHSUUKU.mjs';
1
+ export { Progress } from './chunk-FOUSI6JD.mjs';
2
2
  import './chunk-M53LC4Q7.mjs';
3
- import './chunk-KSSVIFYR.mjs';
3
+ import './chunk-ZQGCQ7SA.mjs';
4
4
  import './chunk-2CE3TQVY.mjs';
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import React__default from 'react';
2
2
  import { ViewStyle } from 'react-native';
3
3
 
4
4
  interface RadioOption {
@@ -14,6 +14,6 @@ interface RadioGroupProps {
14
14
  style?: ViewStyle;
15
15
  accessibilityLabel?: string;
16
16
  }
17
- declare function RadioGroup({ options, value, onValueChange, orientation, style, accessibilityLabel, }: RadioGroupProps): React.JSX.Element;
17
+ declare function RadioGroup({ options, value, onValueChange, orientation, style, accessibilityLabel, }: RadioGroupProps): React__default.JSX.Element;
18
18
 
19
19
  export { RadioGroup, type RadioGroupProps, type RadioOption };
@@ -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 RadioOption {
@@ -14,6 +14,6 @@ interface RadioGroupProps {
14
14
  style?: ViewStyle;
15
15
  accessibilityLabel?: string;
16
16
  }
17
- declare function RadioGroup({ options, value, onValueChange, orientation, style, accessibilityLabel, }: RadioGroupProps): React.JSX.Element;
17
+ declare function RadioGroup({ options, value, onValueChange, orientation, style, accessibilityLabel, }: RadioGroupProps): React__default.JSX.Element;
18
18
 
19
19
  export { RadioGroup, type RadioGroupProps, type RadioOption };
@@ -3,30 +3,39 @@
3
3
  var React2 = require('react');
4
4
  var reactNative = require('react-native');
5
5
  var reactNativeEase = require('react-native-ease');
6
+ var Haptics = require('expo-haptics');
6
7
  var reactNativeSizeMatters = require('react-native-size-matters');
7
8
  var pressto = require('pressto');
8
9
 
9
10
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
10
11
 
12
+ function _interopNamespace(e) {
13
+ if (e && e.__esModule) return e;
14
+ var n = Object.create(null);
15
+ if (e) {
16
+ Object.keys(e).forEach(function (k) {
17
+ if (k !== 'default') {
18
+ var d = Object.getOwnPropertyDescriptor(e, k);
19
+ Object.defineProperty(n, k, d.get ? d : {
20
+ enumerable: true,
21
+ get: function () { return e[k]; }
22
+ });
23
+ }
24
+ });
25
+ }
26
+ n.default = e;
27
+ return Object.freeze(n);
28
+ }
29
+
11
30
  var React2__default = /*#__PURE__*/_interopDefault(React2);
31
+ var Haptics__namespace = /*#__PURE__*/_interopNamespace(Haptics);
12
32
 
13
33
  // src/components/RadioGroup/RadioGroup.tsx
14
- var _haptics = null;
15
- var _loaded = false;
16
- async function getHaptics() {
17
- if (reactNative.Platform.OS === "web") return null;
18
- if (!_loaded) {
19
- _loaded = true;
20
- try {
21
- _haptics = await import('expo-haptics');
22
- } catch {
23
- _haptics = null;
24
- }
25
- }
26
- return _haptics;
34
+ function maybeHaptics() {
35
+ return reactNative.Platform.OS === "web" ? null : Haptics__namespace;
27
36
  }
28
37
  function selectionAsync() {
29
- getHaptics().then((h) => h?.selectionAsync());
38
+ maybeHaptics()?.selectionAsync();
30
39
  }
31
40
  var ThemeContext = React2.createContext(void 0);
32
41
  function useTheme() {
@@ -1,6 +1,6 @@
1
- export { RadioGroup } from './chunk-IJCMPVW5.mjs';
1
+ export { RadioGroup } from './chunk-BQMJQMWY.mjs';
2
2
  import './chunk-M53LC4Q7.mjs';
3
3
  import './chunk-IFYMBOEN.mjs';
4
- import './chunk-ARONDO7M.mjs';
5
- import './chunk-KSSVIFYR.mjs';
4
+ import './chunk-CTUFFKGS.mjs';
5
+ import './chunk-ZQGCQ7SA.mjs';
6
6
  import './chunk-2CE3TQVY.mjs';
@@ -1,2 +1,2 @@
1
- export { c as RetrayProvider, d as RetrayProviderProps } from './index-CY34hxPN.mjs';
1
+ export { c as RetrayProvider, d as RetrayProviderProps } from './index-CinAt5Uo.mjs';
2
2
  import 'react';
@@ -1,2 +1,2 @@
1
- export { c as RetrayProvider, d as RetrayProviderProps } from './index-CY34hxPN.js';
1
+ export { c as RetrayProvider, d as RetrayProviderProps } from './index-CinAt5Uo.js';
2
2
  import 'react';
@@ -33,23 +33,6 @@ function componentToHex(c) {
33
33
  function rgbToHex(r, g, b) {
34
34
  return `#${componentToHex(r)}${componentToHex(g)}${componentToHex(b)}`;
35
35
  }
36
- function withAlphaOnWhite(hex, alpha) {
37
- const rgb = hexToRgb(hex);
38
- if (!rgb) return hex;
39
- const r = rgb.r * alpha + 255 * (1 - alpha);
40
- const g = rgb.g * alpha + 255 * (1 - alpha);
41
- const b = rgb.b * alpha + 255 * (1 - alpha);
42
- return rgbToHex(r, g, b);
43
- }
44
- function withAlphaOnDark(hex, alpha, bgHex = "#0f0f0f") {
45
- const rgb = hexToRgb(hex);
46
- const bg = hexToRgb(bgHex);
47
- if (!rgb || !bg) return hex;
48
- const r = rgb.r * alpha + bg.r * (1 - alpha);
49
- const g = rgb.g * alpha + bg.g * (1 - alpha);
50
- const b = rgb.b * alpha + bg.b * (1 - alpha);
51
- return rgbToHex(r, g, b);
52
- }
53
36
  function mixWithBackground(fgHex, bgHex, opacity) {
54
37
  const fg = hexToRgb(fgHex);
55
38
  const bg = hexToRgb(bgHex);
@@ -59,13 +42,11 @@ function mixWithBackground(fgHex, bgHex, opacity) {
59
42
  const b = fg.b * opacity + bg.b * (1 - opacity);
60
43
  return rgbToHex(r, g, b);
61
44
  }
62
- function lighten(hex, amount) {
63
- return withAlphaOnWhite(hex, 1 - amount);
64
- }
65
- function darken(hex, amount) {
66
- const rgb = hexToRgb(hex);
67
- if (!rgb) return hex;
68
- return rgbToHex(rgb.r * (1 - amount), rgb.g * (1 - amount), rgb.b * (1 - amount));
45
+ function createColorPair(fg, bg, dark) {
46
+ return {
47
+ tint: mixWithBackground(fg, dark ? bg : "#ffffff", dark ? 0.15 : 0.08),
48
+ border: mixWithBackground(fg, dark ? bg : "#ffffff", dark ? 0.45 : 0.3)
49
+ };
69
50
  }
70
51
  var defaultLight = {
71
52
  background: "#ffffff",
@@ -108,17 +89,16 @@ var defaultDark = {
108
89
  function deriveColors(t, scheme) {
109
90
  const dark = scheme === "dark";
110
91
  const bg = t.background;
92
+ const WHITE = "#ffffff";
93
+ const BLACK = "#000000";
111
94
  const foregroundSubtle = mixWithBackground(t.foreground, bg, 0.7);
112
95
  const foregroundMuted = mixWithBackground(t.foreground, bg, 0.62);
113
- const surface = dark ? lighten(bg, -0.06) : darken(bg, 0.04);
114
- const surfaceStrong = dark ? lighten(bg, -0.12) : darken(bg, 0.08);
115
- const skeleton = dark ? lighten(bg, -0.1) : darken(bg, 0.1);
116
- const destructiveTint = dark ? withAlphaOnDark(t.destructive, 0.15, bg) : withAlphaOnWhite(t.destructive, 0.08);
117
- const destructiveBorder = dark ? withAlphaOnDark(t.destructive, 0.45, bg) : withAlphaOnWhite(t.destructive, 0.3);
118
- const successTint = dark ? withAlphaOnDark(t.success, 0.15, bg) : withAlphaOnWhite(t.success, 0.08);
119
- const successBorder = dark ? withAlphaOnDark(t.success, 0.45, bg) : withAlphaOnWhite(t.success, 0.3);
120
- const warningTint = dark ? withAlphaOnDark(t.warning, 0.15, bg) : withAlphaOnWhite(t.warning, 0.08);
121
- const warningBorder = dark ? withAlphaOnDark(t.warning, 0.45, bg) : withAlphaOnWhite(t.warning, 0.3);
96
+ const surface = dark ? mixWithBackground(bg, BLACK, 0.94) : mixWithBackground(bg, BLACK, 0.96);
97
+ const surfaceStrong = dark ? mixWithBackground(bg, BLACK, 0.88) : mixWithBackground(bg, BLACK, 0.92);
98
+ const skeleton = dark ? mixWithBackground(bg, BLACK, 0.9) : mixWithBackground(bg, BLACK, 0.9);
99
+ const { tint: destructiveTint, border: destructiveBorder } = createColorPair(t.destructive, bg, dark);
100
+ const { tint: successTint, border: successBorder } = createColorPair(t.success, bg, dark);
101
+ const { tint: warningTint, border: warningBorder } = createColorPair(t.warning, bg, dark);
122
102
  return {
123
103
  ...t,
124
104
  foregroundSubtle,
@@ -137,7 +117,7 @@ function deriveColors(t, scheme) {
137
117
  accentForegroundResolved: t.accentForeground ?? t.primaryForeground,
138
118
  ring: t.accent ?? t.primary,
139
119
  input: t.border,
140
- separator: dark ? lighten(t.border, 0.22) : darken(t.border, 0.16)
120
+ separator: dark ? mixWithBackground(t.border, WHITE, 0.78) : mixWithBackground(t.border, BLACK, 0.84)
141
121
  };
142
122
  }
143
123
 
@@ -1,4 +1,4 @@
1
- export { RetrayProvider } from './chunk-ERWJPVX7.mjs';
2
- import './chunk-SZEKQAOY.mjs';
3
- import './chunk-KSSVIFYR.mjs';
1
+ export { RetrayProvider } from './chunk-XKBB2UZU.mjs';
2
+ import './chunk-VSKBODEY.mjs';
3
+ import './chunk-ZQGCQ7SA.mjs';
4
4
  import './chunk-2CE3TQVY.mjs';
@@ -0,0 +1,24 @@
1
+ import React__default from 'react';
2
+ import { ViewStyle } from 'react-native';
3
+
4
+ interface ScreenContainerProps {
5
+ children: React__default.ReactNode;
6
+ /** Maximum width in points. Defaults to BREAKPOINTS.wide (700). Set to 0 to disable. */
7
+ maxWidth?: number;
8
+ /** Enable scroll. Default false. */
9
+ scroll?: boolean;
10
+ /** Background color. Defaults to theme `background`. */
11
+ backgroundColor?: string;
12
+ /** Padding top override. Defaults to safe area top. */
13
+ paddingTop?: number;
14
+ /** Padding bottom override. Defaults to safe area bottom. */
15
+ paddingBottom?: number;
16
+ /** Horizontal padding. Defaults to 0. */
17
+ paddingHorizontal?: number;
18
+ /** Enable keyboard avoidance. Default false. */
19
+ keyboard?: boolean;
20
+ style?: ViewStyle;
21
+ }
22
+ declare function ScreenContainer({ children, maxWidth, scroll, backgroundColor, paddingTop, paddingBottom, paddingHorizontal, keyboard, style: _style, }: ScreenContainerProps): React__default.JSX.Element;
23
+
24
+ export { ScreenContainer, type ScreenContainerProps };
@@ -0,0 +1,24 @@
1
+ import React__default from 'react';
2
+ import { ViewStyle } from 'react-native';
3
+
4
+ interface ScreenContainerProps {
5
+ children: React__default.ReactNode;
6
+ /** Maximum width in points. Defaults to BREAKPOINTS.wide (700). Set to 0 to disable. */
7
+ maxWidth?: number;
8
+ /** Enable scroll. Default false. */
9
+ scroll?: boolean;
10
+ /** Background color. Defaults to theme `background`. */
11
+ backgroundColor?: string;
12
+ /** Padding top override. Defaults to safe area top. */
13
+ paddingTop?: number;
14
+ /** Padding bottom override. Defaults to safe area bottom. */
15
+ paddingBottom?: number;
16
+ /** Horizontal padding. Defaults to 0. */
17
+ paddingHorizontal?: number;
18
+ /** Enable keyboard avoidance. Default false. */
19
+ keyboard?: boolean;
20
+ style?: ViewStyle;
21
+ }
22
+ declare function ScreenContainer({ children, maxWidth, scroll, backgroundColor, paddingTop, paddingBottom, paddingHorizontal, keyboard, style: _style, }: ScreenContainerProps): React__default.JSX.Element;
23
+
24
+ export { ScreenContainer, type ScreenContainerProps };
@@ -0,0 +1,85 @@
1
+ 'use strict';
2
+
3
+ var React2 = require('react');
4
+ var reactNative = require('react-native');
5
+ var reactNativeSafeAreaContext = require('react-native-safe-area-context');
6
+
7
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
8
+
9
+ var React2__default = /*#__PURE__*/_interopDefault(React2);
10
+
11
+ // src/components/ScreenContainer/ScreenContainer.tsx
12
+ var ThemeContext = React2.createContext(void 0);
13
+ function useTheme() {
14
+ const context = React2.useContext(ThemeContext);
15
+ if (!context) {
16
+ throw new Error("useTheme must be used within a ThemeProvider");
17
+ }
18
+ return context;
19
+ }
20
+
21
+ // src/tokens.ts
22
+ var BREAKPOINTS = {
23
+ wide: 700
24
+ };
25
+
26
+ // src/components/ScreenContainer/ScreenContainer.tsx
27
+ function ScreenContainer({
28
+ children,
29
+ maxWidth = BREAKPOINTS.wide,
30
+ scroll = false,
31
+ backgroundColor,
32
+ paddingTop,
33
+ paddingBottom,
34
+ paddingHorizontal,
35
+ keyboard = false,
36
+ style: _style
37
+ }) {
38
+ const insets = reactNativeSafeAreaContext.useSafeAreaInsets();
39
+ const { colors } = useTheme();
40
+ const wrapperStyle = {
41
+ flex: 1,
42
+ backgroundColor: backgroundColor ?? colors.background,
43
+ paddingTop: paddingTop ?? insets.top,
44
+ paddingBottom: paddingBottom ?? insets.bottom,
45
+ paddingHorizontal: paddingHorizontal ?? 0,
46
+ ..._style
47
+ };
48
+ const inner = /* @__PURE__ */ React2__default.default.createElement(reactNative.View, { style: [styles.inner, { maxWidth: maxWidth || void 0 }] }, children);
49
+ const content = scroll ? /* @__PURE__ */ React2__default.default.createElement(
50
+ reactNative.ScrollView,
51
+ {
52
+ style: styles.scroll,
53
+ contentContainerStyle: styles.scrollContent,
54
+ keyboardShouldPersistTaps: "handled"
55
+ },
56
+ inner
57
+ ) : inner;
58
+ if (keyboard) {
59
+ return /* @__PURE__ */ React2__default.default.createElement(
60
+ reactNative.KeyboardAvoidingView,
61
+ {
62
+ style: wrapperStyle,
63
+ behavior: reactNative.Platform.OS === "ios" ? "padding" : void 0,
64
+ keyboardVerticalOffset: reactNative.Platform.OS === "ios" ? 0 : 0
65
+ },
66
+ content
67
+ );
68
+ }
69
+ return /* @__PURE__ */ React2__default.default.createElement(reactNative.View, { style: wrapperStyle }, content);
70
+ }
71
+ var styles = reactNative.StyleSheet.create({
72
+ scroll: {
73
+ flex: 1
74
+ },
75
+ scrollContent: {
76
+ flexGrow: 1
77
+ },
78
+ inner: {
79
+ flex: 1,
80
+ alignSelf: "center",
81
+ width: "100%"
82
+ }
83
+ });
84
+
85
+ exports.ScreenContainer = ScreenContainer;
@@ -0,0 +1,3 @@
1
+ export { ScreenContainer } from './chunk-WR6DCNAE.mjs';
2
+ import './chunk-DYYPDQA2.mjs';
3
+ import './chunk-ZQGCQ7SA.mjs';
package/dist/Select.d.mts CHANGED
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import React__default from 'react';
2
2
  import { ViewStyle } from 'react-native';
3
3
 
4
4
  interface SelectOption {
@@ -19,6 +19,6 @@ interface SelectProps {
19
19
  accessibilityLabel?: string;
20
20
  accessibilityHint?: string;
21
21
  }
22
- declare function Select({ options, value, onValueChange, placeholder, label, hint, error, disabled, style, accessibilityLabel, accessibilityHint, }: SelectProps): React.JSX.Element;
22
+ declare function Select({ options, value, onValueChange, placeholder, label, hint, error, disabled, style, accessibilityLabel, accessibilityHint, }: SelectProps): React__default.JSX.Element;
23
23
 
24
24
  export { Select, type SelectOption, type SelectProps };
package/dist/Select.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import React__default from 'react';
2
2
  import { ViewStyle } from 'react-native';
3
3
 
4
4
  interface SelectOption {
@@ -19,6 +19,6 @@ interface SelectProps {
19
19
  accessibilityLabel?: string;
20
20
  accessibilityHint?: string;
21
21
  }
22
- declare function Select({ options, value, onValueChange, placeholder, label, hint, error, disabled, style, accessibilityLabel, accessibilityHint, }: SelectProps): React.JSX.Element;
22
+ declare function Select({ options, value, onValueChange, placeholder, label, hint, error, disabled, style, accessibilityLabel, accessibilityHint, }: SelectProps): React__default.JSX.Element;
23
23
 
24
24
  export { Select, type SelectOption, type SelectProps };
package/dist/Select.js CHANGED
@@ -4,30 +4,39 @@ var React2 = require('react');
4
4
  var reactNative = require('react-native');
5
5
  var picker = require('@react-native-picker/picker');
6
6
  var vectorIcons = require('@expo/vector-icons');
7
+ var Haptics = require('expo-haptics');
7
8
  var reactNativeSizeMatters = require('react-native-size-matters');
8
9
  var pressto = require('pressto');
9
10
 
10
11
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
11
12
 
13
+ function _interopNamespace(e) {
14
+ if (e && e.__esModule) return e;
15
+ var n = Object.create(null);
16
+ if (e) {
17
+ Object.keys(e).forEach(function (k) {
18
+ if (k !== 'default') {
19
+ var d = Object.getOwnPropertyDescriptor(e, k);
20
+ Object.defineProperty(n, k, d.get ? d : {
21
+ enumerable: true,
22
+ get: function () { return e[k]; }
23
+ });
24
+ }
25
+ });
26
+ }
27
+ n.default = e;
28
+ return Object.freeze(n);
29
+ }
30
+
12
31
  var React2__default = /*#__PURE__*/_interopDefault(React2);
32
+ var Haptics__namespace = /*#__PURE__*/_interopNamespace(Haptics);
13
33
 
14
34
  // src/components/Select/Select.tsx
15
- var _haptics = null;
16
- var _loaded = false;
17
- async function getHaptics() {
18
- if (reactNative.Platform.OS === "web") return null;
19
- if (!_loaded) {
20
- _loaded = true;
21
- try {
22
- _haptics = await import('expo-haptics');
23
- } catch {
24
- _haptics = null;
25
- }
26
- }
27
- return _haptics;
35
+ function maybeHaptics() {
36
+ return reactNative.Platform.OS === "web" ? null : Haptics__namespace;
28
37
  }
29
38
  function selectionAsync() {
30
- getHaptics().then((h) => h?.selectionAsync());
39
+ maybeHaptics()?.selectionAsync();
31
40
  }
32
41
  var ThemeContext = React2.createContext(void 0);
33
42
  function useTheme() {
@@ -73,6 +82,18 @@ function Select({
73
82
  const [pendingValue, setPendingValue] = React2.useState(value);
74
83
  const pickerRef = React2.useRef(null);
75
84
  const selected = options.find((o) => o.value === value);
85
+ function renderPickerItems(includePlaceholder, itemColor, disabledColor) {
86
+ return /* @__PURE__ */ React2__default.default.createElement(React2__default.default.Fragment, null, includePlaceholder ? /* @__PURE__ */ React2__default.default.createElement(picker.Picker.Item, { label: placeholder, value: "", enabled: false, color: disabledColor }) : null, options.map((o) => /* @__PURE__ */ React2__default.default.createElement(
87
+ picker.Picker.Item,
88
+ {
89
+ key: o.value,
90
+ label: o.label,
91
+ value: o.value,
92
+ enabled: !o.disabled,
93
+ color: o.disabled ? disabledColor : itemColor
94
+ }
95
+ )));
96
+ }
76
97
  const handleOpen = () => {
77
98
  if (disabled) return;
78
99
  selectionAsync();
@@ -143,17 +164,7 @@ function Select({
143
164
  onValueChange: (val) => setPendingValue(val),
144
165
  itemStyle: { color: colors.foreground }
145
166
  },
146
- !value ? /* @__PURE__ */ React2__default.default.createElement(picker.Picker.Item, { label: placeholder, value: "", color: colors.foregroundMuted, enabled: false }) : null,
147
- options.map((o) => /* @__PURE__ */ React2__default.default.createElement(
148
- picker.Picker.Item,
149
- {
150
- key: o.value,
151
- label: o.label,
152
- value: o.value,
153
- enabled: !o.disabled,
154
- color: o.disabled ? colors.foregroundMuted : colors.foreground
155
- }
156
- ))
167
+ renderPickerItems(!value, colors.foreground, colors.foregroundMuted)
157
168
  ))
158
169
  ) : null, isAndroid ? /* @__PURE__ */ React2__default.default.createElement(
159
170
  picker.Picker,
@@ -171,16 +182,7 @@ function Select({
171
182
  prompt: label,
172
183
  style: styles.androidHiddenPicker
173
184
  },
174
- !value ? /* @__PURE__ */ React2__default.default.createElement(picker.Picker.Item, { label: placeholder, value: "", enabled: false }) : null,
175
- options.map((o) => /* @__PURE__ */ React2__default.default.createElement(
176
- picker.Picker.Item,
177
- {
178
- key: o.value,
179
- label: o.label,
180
- value: o.value,
181
- enabled: !o.disabled
182
- }
183
- ))
185
+ renderPickerItems(!value)
184
186
  ) : null, isWeb2 ? /* @__PURE__ */ React2__default.default.createElement(
185
187
  picker.Picker,
186
188
  {
@@ -201,16 +203,7 @@ function Select({
201
203
  }
202
204
  ]
203
205
  },
204
- /* @__PURE__ */ React2__default.default.createElement(picker.Picker.Item, { label: placeholder, value: "", enabled: false }),
205
- options.map((o) => /* @__PURE__ */ React2__default.default.createElement(
206
- picker.Picker.Item,
207
- {
208
- key: o.value,
209
- label: o.label,
210
- value: o.value,
211
- enabled: !o.disabled
212
- }
213
- ))
206
+ renderPickerItems(true)
214
207
  ) : null, error ? /* @__PURE__ */ React2__default.default.createElement(reactNative.Text, { style: [styles.helperText, { color: colors.destructive }], allowFontScaling: true }, error) : !error && hint ? /* @__PURE__ */ React2__default.default.createElement(reactNative.Text, { style: [styles.helperText, { color: colors.foregroundMuted }], allowFontScaling: true }, hint) : null);
215
208
  }
216
209
  var styles = reactNative.StyleSheet.create({
package/dist/Select.mjs CHANGED
@@ -1,5 +1,5 @@
1
- export { Select } from './chunk-IDVUZIVY.mjs';
1
+ export { Select } from './chunk-RLPPRIJ7.mjs';
2
2
  import './chunk-IFYMBOEN.mjs';
3
- import './chunk-ARONDO7M.mjs';
4
- import './chunk-KSSVIFYR.mjs';
3
+ import './chunk-CTUFFKGS.mjs';
4
+ import './chunk-ZQGCQ7SA.mjs';
5
5
  import './chunk-2CE3TQVY.mjs';