@retray-dev/ui-kit 12.2.0 → 13.2.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 (296) hide show
  1. package/CONSUMER.md +26 -11
  2. package/DESIGN.md +2 -2
  3. package/README.md +15 -11
  4. package/{COMPONENTS.md → SKILL.md} +374 -996
  5. package/dist/Accordion.d.mts +2 -0
  6. package/dist/Accordion.d.ts +2 -0
  7. package/dist/Accordion.js +49 -210
  8. package/dist/Accordion.mjs +6 -6
  9. package/dist/AlertBanner.js +29 -153
  10. package/dist/AlertBanner.mjs +3 -4
  11. package/dist/AppHeader.d.mts +5 -2
  12. package/dist/AppHeader.d.ts +5 -2
  13. package/dist/AppHeader.js +45 -239
  14. package/dist/AppHeader.mjs +6 -8
  15. package/dist/Avatar.d.mts +17 -1
  16. package/dist/Avatar.d.ts +17 -1
  17. package/dist/Avatar.js +80 -115
  18. package/dist/Avatar.mjs +2 -3
  19. package/dist/Badge.js +24 -149
  20. package/dist/Badge.mjs +3 -4
  21. package/dist/Button.js +79 -267
  22. package/dist/Button.mjs +6 -7
  23. package/dist/ButtonGroup.mjs +0 -1
  24. package/dist/Card.js +15 -200
  25. package/dist/Card.mjs +4 -6
  26. package/dist/CategoryStrip.d.mts +0 -5
  27. package/dist/CategoryStrip.d.ts +0 -5
  28. package/dist/CategoryStrip.js +47 -265
  29. package/dist/CategoryStrip.mjs +6 -7
  30. package/dist/Checkbox.d.mts +2 -1
  31. package/dist/Checkbox.d.ts +2 -1
  32. package/dist/Checkbox.js +18 -201
  33. package/dist/Checkbox.mjs +5 -6
  34. package/dist/Chip.js +44 -236
  35. package/dist/Chip.mjs +7 -7
  36. package/dist/ConfirmDialog.d.mts +2 -1
  37. package/dist/ConfirmDialog.d.ts +2 -1
  38. package/dist/ConfirmDialog.js +110 -300
  39. package/dist/ConfirmDialog.mjs +7 -8
  40. package/dist/CurrencyDisplay.js +1 -114
  41. package/dist/CurrencyDisplay.mjs +2 -3
  42. package/dist/CurrencyInput.js +35 -162
  43. package/dist/CurrencyInput.mjs +5 -6
  44. package/dist/DetailRow.js +25 -150
  45. package/dist/DetailRow.mjs +3 -4
  46. package/dist/EmptyState.js +80 -268
  47. package/dist/EmptyState.mjs +7 -8
  48. package/dist/ErrorBoundary.js +32 -199
  49. package/dist/ErrorBoundary.mjs +4 -5
  50. package/dist/Form.js +1 -114
  51. package/dist/Form.mjs +2 -3
  52. package/dist/HolographicCard.d.mts +0 -28
  53. package/dist/HolographicCard.d.ts +0 -28
  54. package/dist/HolographicCard.js +20 -130
  55. package/dist/HolographicCard.mjs +9 -33
  56. package/dist/IconButton.js +36 -234
  57. package/dist/IconButton.mjs +5 -7
  58. package/dist/IconPicker.js +222 -929
  59. package/dist/IconPicker.mjs +5 -6
  60. package/dist/ImageUpload.d.mts +3 -3
  61. package/dist/ImageUpload.d.ts +3 -3
  62. package/dist/ImageUpload.js +49 -238
  63. package/dist/ImageUpload.mjs +5 -7
  64. package/dist/ImageViewer.js +75 -266
  65. package/dist/ImageViewer.mjs +8 -9
  66. package/dist/Input.d.mts +1 -1
  67. package/dist/Input.d.ts +1 -1
  68. package/dist/Input.js +35 -162
  69. package/dist/Input.mjs +4 -5
  70. package/dist/LabelValue.js +24 -149
  71. package/dist/LabelValue.mjs +3 -4
  72. package/dist/ListGroup.js +1 -114
  73. package/dist/ListGroup.mjs +2 -3
  74. package/dist/ListItem.d.mts +2 -1
  75. package/dist/ListItem.d.ts +2 -1
  76. package/dist/ListItem.js +41 -236
  77. package/dist/ListItem.mjs +5 -7
  78. package/dist/MediaCard.d.mts +0 -14
  79. package/dist/MediaCard.d.ts +0 -14
  80. package/dist/MediaCard.js +69 -315
  81. package/dist/MediaCard.mjs +5 -7
  82. package/dist/MenuGroup.js +1 -114
  83. package/dist/MenuGroup.mjs +2 -3
  84. package/dist/MenuItem.d.mts +2 -1
  85. package/dist/MenuItem.d.ts +2 -1
  86. package/dist/MenuItem.js +39 -235
  87. package/dist/MenuItem.mjs +5 -7
  88. package/dist/MonthPicker.js +8 -163
  89. package/dist/MonthPicker.mjs +3 -4
  90. package/dist/NumberStepper.d.mts +2 -1
  91. package/dist/NumberStepper.d.ts +2 -1
  92. package/dist/NumberStepper.js +44 -239
  93. package/dist/NumberStepper.mjs +5 -7
  94. package/dist/PagerDots.d.mts +1 -1
  95. package/dist/PagerDots.d.ts +1 -1
  96. package/dist/PagerDots.js +69 -224
  97. package/dist/PagerDots.mjs +6 -6
  98. package/dist/Pressable.js +14 -85
  99. package/dist/Pressable.mjs +4 -5
  100. package/dist/PricingCard.js +87 -272
  101. package/dist/PricingCard.mjs +8 -9
  102. package/dist/Progress.js +3 -123
  103. package/dist/Progress.mjs +3 -4
  104. package/dist/RadioGroup.js +52 -265
  105. package/dist/RadioGroup.mjs +5 -6
  106. package/dist/RetrayProvider.js +3 -6
  107. package/dist/RetrayProvider.mjs +3 -4
  108. package/dist/Select.d.mts +3 -1
  109. package/dist/Select.d.ts +3 -1
  110. package/dist/Select.js +27 -233
  111. package/dist/Select.mjs +4 -6
  112. package/dist/SelectableCard.js +33 -209
  113. package/dist/SelectableCard.mjs +5 -6
  114. package/dist/SelectableGrid.d.mts +0 -21
  115. package/dist/SelectableGrid.d.ts +0 -21
  116. package/dist/SelectableGrid.js +49 -272
  117. package/dist/SelectableGrid.mjs +5 -7
  118. package/dist/Separator.js +1 -114
  119. package/dist/Separator.mjs +2 -3
  120. package/dist/Sheet.d.mts +1 -1
  121. package/dist/Sheet.d.ts +1 -1
  122. package/dist/Sheet.js +33 -175
  123. package/dist/Sheet.mjs +3 -4
  124. package/dist/SheetSelect.js +39 -236
  125. package/dist/SheetSelect.mjs +6 -7
  126. package/dist/Skeleton.js +4 -124
  127. package/dist/Skeleton.mjs +3 -4
  128. package/dist/Slider.d.mts +2 -1
  129. package/dist/Slider.d.ts +2 -1
  130. package/dist/Slider.js +8 -161
  131. package/dist/Slider.mjs +3 -4
  132. package/dist/Spinner.js +3 -116
  133. package/dist/Spinner.mjs +2 -3
  134. package/dist/Stats.js +36 -234
  135. package/dist/Stats.mjs +5 -7
  136. package/dist/Switch.d.mts +2 -1
  137. package/dist/Switch.d.ts +2 -1
  138. package/dist/Switch.js +26 -176
  139. package/dist/Switch.mjs +5 -5
  140. package/dist/TabBar.js +43 -200
  141. package/dist/TabBar.mjs +5 -5
  142. package/dist/Tabs.js +15 -199
  143. package/dist/Tabs.mjs +5 -6
  144. package/dist/Text.js +9 -130
  145. package/dist/Text.mjs +2 -3
  146. package/dist/Textarea.d.mts +2 -1
  147. package/dist/Textarea.d.ts +2 -1
  148. package/dist/Textarea.js +71 -219
  149. package/dist/Textarea.mjs +4 -5
  150. package/dist/Toast.d.mts +12 -10
  151. package/dist/Toast.d.ts +12 -10
  152. package/dist/Toast.js +1 -114
  153. package/dist/Toast.mjs +2 -3
  154. package/dist/Toggle.js +39 -236
  155. package/dist/Toggle.mjs +6 -7
  156. package/dist/{chunk-ELGEOM7I.mjs → chunk-2QXJDRVU.mjs} +13 -10
  157. package/dist/{chunk-LIS6I5UP.mjs → chunk-2VIDP72N.mjs} +3 -3
  158. package/dist/{chunk-NHDI3VQB.mjs → chunk-422IVD3H.mjs} +16 -12
  159. package/dist/{chunk-DF7JA72E.mjs → chunk-4NQFTHN3.mjs} +13 -7
  160. package/dist/{chunk-3XCFYSX4.mjs → chunk-5MYNAAFE.mjs} +13 -17
  161. package/dist/{chunk-E7NEHHXV.mjs → chunk-62BBSSUF.mjs} +3 -3
  162. package/dist/{chunk-UBUXUMER.mjs → chunk-77UOVFIS.mjs} +7 -5
  163. package/dist/{chunk-M3C7XM2M.mjs → chunk-7BZJRB77.mjs} +28 -18
  164. package/dist/chunk-ARONDO7M.mjs +40 -0
  165. package/dist/{chunk-GH67YXG6.mjs → chunk-AZV7KNJI.mjs} +3 -3
  166. package/dist/{chunk-2P2CB235.mjs → chunk-BULKGOIZ.mjs} +7 -8
  167. package/dist/{chunk-RJNLAH76.mjs → chunk-C5ZRMR2E.mjs} +4 -2
  168. package/dist/chunk-CM2DG4MR.mjs +142 -0
  169. package/dist/{chunk-UQ4742ET.mjs → chunk-COA2YZOX.mjs} +8 -6
  170. package/dist/{chunk-EDLCGYIO.mjs → chunk-CZN6L2QU.mjs} +11 -8
  171. package/dist/{chunk-TS7DGUIR.mjs → chunk-DBHSUUKU.mjs} +2 -2
  172. package/dist/{chunk-57V2LXCK.mjs → chunk-DE25XTVQ.mjs} +3 -3
  173. package/dist/{chunk-RMRS44MQ.mjs → chunk-E2PONRJG.mjs} +13 -9
  174. package/dist/{chunk-GUTDFUNF.mjs → chunk-EHGBHFMH.mjs} +9 -17
  175. package/dist/{chunk-ZIMY2QUM.mjs → chunk-ERWJPVX7.mjs} +2 -2
  176. package/dist/{chunk-NLZY4TXU.mjs → chunk-ESQDPO5E.mjs} +7 -7
  177. package/dist/{chunk-VJBUCITV.mjs → chunk-EW2FIDSM.mjs} +1 -1
  178. package/dist/{chunk-HC4VVCWY.mjs → chunk-FTTI6T5Q.mjs} +4 -4
  179. package/dist/{chunk-MVMGPZN6.mjs → chunk-H6MQL7PS.mjs} +12 -7
  180. package/dist/{chunk-CF27NBXO.mjs → chunk-HHOOFDBA.mjs} +38 -41
  181. package/dist/{chunk-2HFD4IHU.mjs → chunk-HUSSF6TF.mjs} +1 -1
  182. package/dist/{chunk-HEDQPK4I.mjs → chunk-IDVUZIVY.mjs} +16 -22
  183. package/dist/chunk-IFYMBOEN.mjs +14 -0
  184. package/dist/{chunk-QOLWA2PW.mjs → chunk-IGU223UM.mjs} +80 -4
  185. package/dist/chunk-IJCMPVW5.mjs +121 -0
  186. package/dist/{chunk-AENAVIKT.mjs → chunk-ITG4JQM3.mjs} +4 -4
  187. package/dist/{chunk-E5UKLSJZ.mjs → chunk-K3QX2M26.mjs} +11 -8
  188. package/dist/{chunk-4OORJ2DY.mjs → chunk-K7TKID3V.mjs} +8 -7
  189. package/dist/{chunk-2LG326TT.mjs → chunk-KAGADD2O.mjs} +4 -4
  190. package/dist/{chunk-IVSRW4HS.mjs → chunk-KC5QDYGZ.mjs} +4 -4
  191. package/dist/{chunk-7AFZWSCI.mjs → chunk-KPTY7UYQ.mjs} +1 -1
  192. package/dist/{chunk-YTXRIXNZ.mjs → chunk-KSSVIFYR.mjs} +9 -12
  193. package/dist/chunk-L3YKPTJQ.mjs +119 -0
  194. package/dist/chunk-M53LC4Q7.mjs +35 -0
  195. package/dist/chunk-MZ6WRTD2.mjs +40 -0
  196. package/dist/chunk-NGEN2EES.mjs +581 -0
  197. package/dist/{chunk-ZR6HSEAB.mjs → chunk-NPCBNGNE.mjs} +17 -26
  198. package/dist/{chunk-C43HRKXH.mjs → chunk-OBV72JD4.mjs} +1 -1
  199. package/dist/{chunk-LPV4NJJK.mjs → chunk-PGQ6FMXS.mjs} +6 -5
  200. package/dist/{chunk-MEPSKGBO.mjs → chunk-PI6RULJX.mjs} +1 -1
  201. package/dist/{chunk-F3YTWO3T.mjs → chunk-RA6SAAFE.mjs} +9 -8
  202. package/dist/{chunk-UNNRUJTM.mjs → chunk-RRKM4MKB.mjs} +7 -7
  203. package/dist/{chunk-ULGNQPNE.mjs → chunk-S2VGME7X.mjs} +1 -1
  204. package/dist/{chunk-OLVJFKXS.mjs → chunk-S44XWTTC.mjs} +35 -25
  205. package/dist/{chunk-YMYIEVZP.mjs → chunk-SZEKQAOY.mjs} +1 -1
  206. package/dist/{chunk-BXF4AMHY.mjs → chunk-TMH263OK.mjs} +5 -4
  207. package/dist/{chunk-NJG7DHVF.mjs → chunk-U6DEBYU5.mjs} +10 -9
  208. package/dist/{chunk-QXDGGOLC.mjs → chunk-UMZTPUB3.mjs} +33 -21
  209. package/dist/{chunk-KSUWPU2F.mjs → chunk-WIPEDNSD.mjs} +7 -7
  210. package/dist/{chunk-QDAZGZUF.mjs → chunk-XCIG6HT2.mjs} +3 -3
  211. package/dist/{chunk-4J2PXL36.mjs → chunk-Y6YS33GM.mjs} +40 -38
  212. package/dist/{chunk-4XOB5TTD.mjs → chunk-ZKDKKQCE.mjs} +5 -5
  213. package/dist/{chunk-LOBLCFMN.mjs → chunk-ZTPYUU5C.mjs} +5 -5
  214. package/dist/fonts.mjs +0 -2
  215. package/dist/index.d.mts +13 -73
  216. package/dist/index.d.ts +13 -73
  217. package/dist/index.js +1149 -1892
  218. package/dist/index.mjs +81 -86
  219. package/package.json +20 -20
  220. package/src/components/Accordion/Accordion.tsx +15 -9
  221. package/src/components/AlertBanner/AlertBanner.tsx +7 -6
  222. package/src/components/AppHeader/AppHeader.tsx +25 -10
  223. package/src/components/Avatar/Avatar.tsx +92 -1
  224. package/src/components/Avatar/index.ts +2 -2
  225. package/src/components/Badge/Badge.tsx +2 -2
  226. package/src/components/Button/Button.tsx +50 -46
  227. package/src/components/Card/Card.tsx +1 -0
  228. package/src/components/CategoryStrip/CategoryStrip.tsx +36 -49
  229. package/src/components/Checkbox/Checkbox.tsx +3 -0
  230. package/src/components/Chip/Chip.tsx +5 -4
  231. package/src/components/ConfirmDialog/ConfirmDialog.tsx +33 -17
  232. package/src/components/DetailRow/DetailRow.tsx +3 -3
  233. package/src/components/EmptyState/EmptyState.tsx +2 -2
  234. package/src/components/ErrorBoundary/ErrorBoundary.tsx +6 -6
  235. package/src/components/HolographicCard/HolographicCard.tsx +14 -95
  236. package/src/components/IconButton/IconButton.tsx +2 -2
  237. package/src/components/IconPicker/IconPicker.tsx +13 -12
  238. package/src/components/ImageUpload/ImageUpload.tsx +43 -46
  239. package/src/components/ImageViewer/ImageViewer.tsx +3 -3
  240. package/src/components/Input/Input.tsx +11 -5
  241. package/src/components/LabelValue/LabelValue.tsx +2 -2
  242. package/src/components/ListItem/ListItem.tsx +7 -4
  243. package/src/components/MediaCard/MediaCard.tsx +21 -59
  244. package/src/components/MenuItem/MenuItem.tsx +5 -2
  245. package/src/components/MonthPicker/MonthPicker.tsx +2 -2
  246. package/src/components/NumberStepper/NumberStepper.tsx +10 -6
  247. package/src/components/PagerDots/PagerDots.tsx +38 -28
  248. package/src/components/PricingCard/PricingCard.tsx +6 -6
  249. package/src/components/RadioGroup/RadioGroup.tsx +18 -31
  250. package/src/components/Select/Select.tsx +35 -39
  251. package/src/components/SelectableCard/SelectableCard.tsx +4 -6
  252. package/src/components/SelectableGrid/SelectableGrid.tsx +37 -72
  253. package/src/components/Sheet/Sheet.tsx +28 -15
  254. package/src/components/Sheet/index.ts +2 -2
  255. package/src/components/SheetSelect/SheetSelect.tsx +3 -3
  256. package/src/components/Skeleton/Skeleton.tsx +1 -1
  257. package/src/components/Slider/Slider.tsx +3 -0
  258. package/src/components/Spinner/Spinner.tsx +2 -2
  259. package/src/components/Stats/Stats.tsx +2 -2
  260. package/src/components/Switch/Switch.tsx +12 -7
  261. package/src/components/TabBar/TabBar.tsx +9 -8
  262. package/src/components/Text/Text.tsx +13 -1
  263. package/src/components/Textarea/Textarea.tsx +18 -32
  264. package/src/components/Toggle/Toggle.tsx +3 -3
  265. package/src/hooks/useConfirmDialog.ts +31 -42
  266. package/src/index.ts +3 -4
  267. package/src/theme/ThemeProvider.tsx +1 -4
  268. package/src/theme/colorUtils.ts +1 -72
  269. package/src/theme/colors.ts +40 -1
  270. package/src/theme/types.ts +2 -2
  271. package/src/utils/animations.ts +0 -47
  272. package/src/utils/curatedIcons.ts +93 -801
  273. package/src/utils/haptics.ts +13 -208
  274. package/src/utils/icons.ts +27 -91
  275. package/src/utils/pressable.ts +10 -61
  276. package/dist/VirtualList.d.mts +0 -19
  277. package/dist/VirtualList.d.ts +0 -19
  278. package/dist/VirtualList.js +0 -38
  279. package/dist/VirtualList.mjs +0 -2
  280. package/dist/chunk-2BA3JMKK.mjs +0 -136
  281. package/dist/chunk-3DKJ2GIC.mjs +0 -30
  282. package/dist/chunk-7ELGZ66G.mjs +0 -164
  283. package/dist/chunk-DVK4G2GT.mjs +0 -59
  284. package/dist/chunk-EJ7ZPXOH.mjs +0 -163
  285. package/dist/chunk-KA7LTET3.mjs +0 -71
  286. package/dist/chunk-LNPKGWBG.mjs +0 -134
  287. package/dist/chunk-NC5ZTR2Y.mjs +0 -32
  288. package/dist/chunk-SAWUXP3A.mjs +0 -1114
  289. package/dist/chunk-Y6FXYEAI.mjs +0 -8
  290. package/dist/chunk-YNROWHQJ.mjs +0 -46
  291. package/src/components/VirtualList/VirtualList.tsx +0 -60
  292. package/src/components/VirtualList/index.ts +0 -1
  293. package/src/utils/fontGuard.ts +0 -35
  294. package/src/utils/hover.ts +0 -25
  295. package/src/utils/useColorTransition.ts +0 -40
  296. package/src/utils/usePressScale.ts +0 -75
@@ -4,80 +4,29 @@ var React = require('react');
4
4
  var reactNative = require('react-native');
5
5
  var reactNativeSkia = require('@shopify/react-native-skia');
6
6
  var Animated = require('react-native-reanimated');
7
+ var pressto = require('pressto');
7
8
 
8
9
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
9
10
 
10
11
  var React__default = /*#__PURE__*/_interopDefault(React);
11
12
  var Animated__default = /*#__PURE__*/_interopDefault(Animated);
12
13
 
13
- var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
14
- get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
15
- }) : x)(function(x) {
16
- if (typeof require !== "undefined") return require.apply(this, arguments);
17
- throw Error('Dynamic require of "' + x + '" is not supported');
18
- });
19
- var SPRINGS = {
20
- /** Tight, premium press feel — Buttons, Toggle, Tabs triggers. */
21
- pressIn: { stiffness: 600, damping: 35, mass: 0.8 },
22
- pressOut: { stiffness: 280, damping: 22, mass: 0.8 }};
23
- ({
24
- /** Material-style ease-out — natural deceleration for state changes. */
25
- standard: Animated.Easing.bezier(0.2, 0, 0, 1),
26
- /** Strong ease-out for expanding surfaces (Accordion open). */
27
- expand: Animated.Easing.bezier(0.23, 1, 0.32, 1),
28
- /** Quick ease-in for collapsing. */
29
- collapse: Animated.Easing.in(Animated.Easing.ease)
14
+ // src/components/HolographicCard/HolographicCard.tsx
15
+ var makePressable = (scale) => pressto.createAnimatedPressable((progress) => {
16
+ "worklet";
17
+ return { transform: [{ scale: 1 - (1 - scale) * progress }] };
30
18
  });
31
- var PRESS_SCALE = {
32
- button: 0.95,
33
- card: 0.98};
34
- function useHover() {
35
- const [hovered, setHovered] = React.useState(false);
36
- const onMouseEnter = React.useCallback(() => setHovered(true), []);
37
- const onMouseLeave = React.useCallback(() => setHovered(false), []);
38
- if (reactNative.Platform.OS !== "web") {
39
- return { hovered: false, hoverHandlers: {} };
40
- }
41
- return { hovered, hoverHandlers: { onMouseEnter, onMouseLeave } };
42
- }
43
-
44
- // src/utils/usePressScale.ts
45
- function usePressScale({
46
- pressScale = PRESS_SCALE.button,
47
- hoverScale = 1.02,
48
- pressInSpring = SPRINGS.pressIn,
49
- pressOutSpring = SPRINGS.pressOut,
50
- disabled = false
51
- } = {}) {
52
- const scale = Animated.useSharedValue(1);
53
- const { hovered, hoverHandlers } = useHover();
54
- const onPressIn = React.useCallback(() => {
55
- if (disabled) return;
56
- scale.value = Animated.withSpring(pressScale, pressInSpring);
57
- }, [disabled, pressScale, pressInSpring, scale]);
58
- const onPressOut = React.useCallback(() => {
59
- if (disabled) return;
60
- scale.value = Animated.withSpring(1, pressOutSpring);
61
- }, [disabled, pressOutSpring, scale]);
62
- const hoverActive = reactNative.Platform.OS === "web" && hovered && hoverScale !== 1 && !disabled;
63
- const animatedStyle = Animated.useAnimatedStyle(() => ({
64
- transform: [
65
- { scale: scale.value * (hoverActive ? hoverScale : 1) }
66
- ]
67
- }));
68
- return {
69
- animatedStyle,
70
- onPressIn,
71
- onPressOut,
72
- hoverHandlers
73
- };
74
- }
19
+ makePressable(0.95);
20
+ var PressableCard = makePressable(0.98);
21
+ makePressable(0.97);
22
+ makePressable(0.94);
23
+ makePressable(0.95);
75
24
  var _haptics = null;
76
- var _hapticsLoaded = false;
25
+ var _loaded = false;
77
26
  async function getHaptics() {
78
27
  if (reactNative.Platform.OS === "web") return null;
79
- if (!_hapticsLoaded) {
80
- _hapticsLoaded = true;
28
+ if (!_loaded) {
29
+ _loaded = true;
81
30
  try {
82
31
  _haptics = await import('expo-haptics');
83
32
  } catch {
@@ -86,45 +35,8 @@ async function getHaptics() {
86
35
  }
87
36
  return _haptics;
88
37
  }
89
- var _pulsar = null;
90
- var _pulsarChecked = false;
91
- var _pulsarAvailable = false;
92
- function isPulsarNativeRegistered() {
93
- try {
94
- const g = globalThis;
95
- if (typeof g.__turboModuleProxy === "function") {
96
- return g.__turboModuleProxy("RNPulsar") != null;
97
- }
98
- return reactNative.NativeModules?.RNPulsar != null;
99
- } catch {
100
- return false;
101
- }
102
- }
103
- function getPulsar() {
104
- if (reactNative.Platform.OS === "web") return null;
105
- if (!_pulsarChecked) {
106
- _pulsarChecked = true;
107
- try {
108
- if (isPulsarNativeRegistered()) {
109
- _pulsar = __require("react-native-pulsar");
110
- _pulsarAvailable = true;
111
- }
112
- } catch {
113
- _pulsar = null;
114
- _pulsarAvailable = false;
115
- }
116
- }
117
- return _pulsarAvailable ? _pulsar : null;
118
- }
119
38
  function impactLight() {
120
- if (reactNative.Platform.OS === "web") return;
121
- getHaptics().then((h) => {
122
- if (h) {
123
- h.impactAsync(h.ImpactFeedbackStyle.Light);
124
- } else {
125
- getPulsar()?.Presets.System.impactLight();
126
- }
127
- });
39
+ getHaptics().then((h) => h?.impactAsync(h.ImpactFeedbackStyle.Light));
128
40
  }
129
41
 
130
42
  // src/tokens.ts
@@ -133,7 +45,6 @@ var RADIUS = {
133
45
 
134
46
  // src/components/HolographicCard/HolographicCard.tsx
135
47
  var FOIL_PRESETS = {
136
- // Classic holographic rainbow
137
48
  rainbow: [
138
49
  "rgba(255, 0, 128, 0.45)",
139
50
  "rgba(255, 200, 0, 0.40)",
@@ -141,7 +52,6 @@ var FOIL_PRESETS = {
141
52
  "rgba(0, 170, 255, 0.45)",
142
53
  "rgba(180, 0, 255, 0.45)"
143
54
  ],
144
- // Premium gold foil
145
55
  gold: [
146
56
  "rgba(255, 215, 0, 0.50)",
147
57
  "rgba(255, 180, 0, 0.45)",
@@ -149,7 +59,6 @@ var FOIL_PRESETS = {
149
59
  "rgba(255, 223, 128, 0.50)",
150
60
  "rgba(184, 134, 11, 0.45)"
151
61
  ],
152
- // Chrome silver foil
153
62
  silver: [
154
63
  "rgba(192, 192, 192, 0.50)",
155
64
  "rgba(220, 220, 220, 0.45)",
@@ -157,7 +66,6 @@ var FOIL_PRESETS = {
157
66
  "rgba(240, 240, 240, 0.50)",
158
67
  "rgba(128, 128, 128, 0.45)"
159
68
  ],
160
- // Deep space cosmic
161
69
  cosmic: [
162
70
  "rgba(75, 0, 130, 0.50)",
163
71
  "rgba(138, 43, 226, 0.45)",
@@ -165,7 +73,6 @@ var FOIL_PRESETS = {
165
73
  "rgba(0, 191, 255, 0.45)",
166
74
  "rgba(148, 0, 211, 0.50)"
167
75
  ],
168
- // Emerald green luxury
169
76
  emerald: [
170
77
  "rgba(0, 201, 87, 0.50)",
171
78
  "rgba(46, 139, 87, 0.45)",
@@ -173,7 +80,6 @@ var FOIL_PRESETS = {
173
80
  "rgba(60, 179, 113, 0.45)",
174
81
  "rgba(0, 128, 0, 0.50)"
175
82
  ],
176
- // Rose gold / pink
177
83
  rose: [
178
84
  "rgba(255, 105, 180, 0.50)",
179
85
  "rgba(255, 182, 193, 0.45)",
@@ -181,7 +87,6 @@ var FOIL_PRESETS = {
181
87
  "rgba(255, 20, 147, 0.45)",
182
88
  "rgba(199, 21, 133, 0.50)"
183
89
  ],
184
- // Deep ocean blue
185
90
  ocean: [
186
91
  "rgba(0, 119, 190, 0.50)",
187
92
  "rgba(0, 180, 216, 0.45)",
@@ -189,7 +94,6 @@ var FOIL_PRESETS = {
189
94
  "rgba(144, 224, 239, 0.45)",
190
95
  "rgba(0, 150, 199, 0.50)"
191
96
  ],
192
- // Hot fire gradient
193
97
  fire: [
194
98
  "rgba(255, 69, 0, 0.50)",
195
99
  "rgba(255, 140, 0, 0.45)",
@@ -197,7 +101,6 @@ var FOIL_PRESETS = {
197
101
  "rgba(255, 99, 71, 0.45)",
198
102
  "rgba(220, 20, 60, 0.50)"
199
103
  ],
200
- // Aurora borealis
201
104
  aurora: [
202
105
  "rgba(0, 255, 127, 0.45)",
203
106
  "rgba(127, 255, 212, 0.40)",
@@ -205,7 +108,6 @@ var FOIL_PRESETS = {
205
108
  "rgba(138, 43, 226, 0.40)",
206
109
  "rgba(255, 20, 147, 0.45)"
207
110
  ],
208
- // Neon cyberpunk
209
111
  neon: [
210
112
  "rgba(255, 0, 255, 0.55)",
211
113
  "rgba(0, 255, 255, 0.50)",
@@ -226,7 +128,6 @@ function HolographicCard({
226
128
  intensity = 1,
227
129
  onPress,
228
130
  style,
229
- // New customization props
230
131
  foilPreset = "rainbow",
231
132
  foilColors,
232
133
  maxTiltDegrees = DEFAULT_TILT_DEG,
@@ -271,10 +172,6 @@ function HolographicCard({
271
172
  remove?.();
272
173
  };
273
174
  }, [enableTilt, tiltX, tiltY, normFactor, tiltAnimationDuration]);
274
- const { animatedStyle: pressStyle, onPressIn, onPressOut, hoverHandlers } = usePressScale({
275
- pressScale: PRESS_SCALE.card,
276
- disabled: !onPress
277
- });
278
175
  const tiltStyle = Animated.useAnimatedStyle(() => ({
279
176
  transform: [
280
177
  { perspective: clampedPerspective },
@@ -288,29 +185,22 @@ function HolographicCard({
288
185
  const canvas = /* @__PURE__ */ React__default.default.createElement(reactNativeSkia.Canvas, { style: { width, height: h } }, image ? /* @__PURE__ */ React__default.default.createElement(reactNativeSkia.Group, { clip: { rect: rrct, rx: borderRadius, ry: borderRadius } }, /* @__PURE__ */ React__default.default.createElement(reactNativeSkia.Image, { image, x: 0, y: 0, width, height: h, fit: "cover" })) : null, /* @__PURE__ */ React__default.default.createElement(reactNativeSkia.RoundedRect, { x: 0, y: 0, width, height: h, r: borderRadius, opacity: intensity, blendMode }, /* @__PURE__ */ React__default.default.createElement(reactNativeSkia.LinearGradient, { start, end, colors: resolvedFoilColors })));
289
186
  const card = /* @__PURE__ */ React__default.default.createElement(Animated__default.default.View, { style: [{ width, height: h }, tiltStyle, style] }, canvas);
290
187
  if (!onPress) return card;
291
- return /* @__PURE__ */ React__default.default.createElement(Animated__default.default.View, { style: pressStyle }, /* @__PURE__ */ React__default.default.createElement(
292
- reactNative.TouchableOpacity,
188
+ return /* @__PURE__ */ React__default.default.createElement(
189
+ PressableCard,
293
190
  {
294
191
  onPress: () => {
295
192
  impactLight();
296
193
  onPress();
297
194
  },
298
- onPressIn,
299
- onPressOut,
300
- activeOpacity: 1,
195
+ enabled: true,
196
+ rippleColor: "transparent",
301
197
  touchSoundDisabled: true,
302
198
  accessibilityRole: "imagebutton",
303
- ...hoverHandlers,
304
- style: styles.touch
199
+ style: { alignSelf: "flex-start" }
305
200
  },
306
201
  card
307
- ));
202
+ );
308
203
  }
309
- var styles = reactNative.StyleSheet.create({
310
- touch: {
311
- alignSelf: "flex-start"
312
- }
313
- });
314
204
 
315
205
  exports.FOIL_PRESETS = FOIL_PRESETS;
316
206
  exports.HolographicCard = HolographicCard;
@@ -1,15 +1,12 @@
1
- import { usePressScale } from './chunk-YNROWHQJ.mjs';
2
- import { impactLight } from './chunk-EJ7ZPXOH.mjs';
3
- import { PRESS_SCALE } from './chunk-DVK4G2GT.mjs';
1
+ import { PressableCard } from './chunk-IFYMBOEN.mjs';
2
+ import { impactLight } from './chunk-ARONDO7M.mjs';
4
3
  import { RADIUS } from './chunk-QY3X2UYR.mjs';
5
- import './chunk-Y6FXYEAI.mjs';
6
4
  import React, { useMemo, useEffect } from 'react';
7
- import { StyleSheet, Platform, TouchableOpacity } from 'react-native';
5
+ import { Platform } from 'react-native';
8
6
  import { useImage, vec, Canvas, Group, Image, RoundedRect, LinearGradient } from '@shopify/react-native-skia';
9
7
  import Animated, { useSharedValue, withTiming, useAnimatedStyle, useDerivedValue } from 'react-native-reanimated';
10
8
 
11
9
  var FOIL_PRESETS = {
12
- // Classic holographic rainbow
13
10
  rainbow: [
14
11
  "rgba(255, 0, 128, 0.45)",
15
12
  "rgba(255, 200, 0, 0.40)",
@@ -17,7 +14,6 @@ var FOIL_PRESETS = {
17
14
  "rgba(0, 170, 255, 0.45)",
18
15
  "rgba(180, 0, 255, 0.45)"
19
16
  ],
20
- // Premium gold foil
21
17
  gold: [
22
18
  "rgba(255, 215, 0, 0.50)",
23
19
  "rgba(255, 180, 0, 0.45)",
@@ -25,7 +21,6 @@ var FOIL_PRESETS = {
25
21
  "rgba(255, 223, 128, 0.50)",
26
22
  "rgba(184, 134, 11, 0.45)"
27
23
  ],
28
- // Chrome silver foil
29
24
  silver: [
30
25
  "rgba(192, 192, 192, 0.50)",
31
26
  "rgba(220, 220, 220, 0.45)",
@@ -33,7 +28,6 @@ var FOIL_PRESETS = {
33
28
  "rgba(240, 240, 240, 0.50)",
34
29
  "rgba(128, 128, 128, 0.45)"
35
30
  ],
36
- // Deep space cosmic
37
31
  cosmic: [
38
32
  "rgba(75, 0, 130, 0.50)",
39
33
  "rgba(138, 43, 226, 0.45)",
@@ -41,7 +35,6 @@ var FOIL_PRESETS = {
41
35
  "rgba(0, 191, 255, 0.45)",
42
36
  "rgba(148, 0, 211, 0.50)"
43
37
  ],
44
- // Emerald green luxury
45
38
  emerald: [
46
39
  "rgba(0, 201, 87, 0.50)",
47
40
  "rgba(46, 139, 87, 0.45)",
@@ -49,7 +42,6 @@ var FOIL_PRESETS = {
49
42
  "rgba(60, 179, 113, 0.45)",
50
43
  "rgba(0, 128, 0, 0.50)"
51
44
  ],
52
- // Rose gold / pink
53
45
  rose: [
54
46
  "rgba(255, 105, 180, 0.50)",
55
47
  "rgba(255, 182, 193, 0.45)",
@@ -57,7 +49,6 @@ var FOIL_PRESETS = {
57
49
  "rgba(255, 20, 147, 0.45)",
58
50
  "rgba(199, 21, 133, 0.50)"
59
51
  ],
60
- // Deep ocean blue
61
52
  ocean: [
62
53
  "rgba(0, 119, 190, 0.50)",
63
54
  "rgba(0, 180, 216, 0.45)",
@@ -65,7 +56,6 @@ var FOIL_PRESETS = {
65
56
  "rgba(144, 224, 239, 0.45)",
66
57
  "rgba(0, 150, 199, 0.50)"
67
58
  ],
68
- // Hot fire gradient
69
59
  fire: [
70
60
  "rgba(255, 69, 0, 0.50)",
71
61
  "rgba(255, 140, 0, 0.45)",
@@ -73,7 +63,6 @@ var FOIL_PRESETS = {
73
63
  "rgba(255, 99, 71, 0.45)",
74
64
  "rgba(220, 20, 60, 0.50)"
75
65
  ],
76
- // Aurora borealis
77
66
  aurora: [
78
67
  "rgba(0, 255, 127, 0.45)",
79
68
  "rgba(127, 255, 212, 0.40)",
@@ -81,7 +70,6 @@ var FOIL_PRESETS = {
81
70
  "rgba(138, 43, 226, 0.40)",
82
71
  "rgba(255, 20, 147, 0.45)"
83
72
  ],
84
- // Neon cyberpunk
85
73
  neon: [
86
74
  "rgba(255, 0, 255, 0.55)",
87
75
  "rgba(0, 255, 255, 0.50)",
@@ -102,7 +90,6 @@ function HolographicCard({
102
90
  intensity = 1,
103
91
  onPress,
104
92
  style,
105
- // New customization props
106
93
  foilPreset = "rainbow",
107
94
  foilColors,
108
95
  maxTiltDegrees = DEFAULT_TILT_DEG,
@@ -147,10 +134,6 @@ function HolographicCard({
147
134
  remove?.();
148
135
  };
149
136
  }, [enableTilt, tiltX, tiltY, normFactor, tiltAnimationDuration]);
150
- const { animatedStyle: pressStyle, onPressIn, onPressOut, hoverHandlers } = usePressScale({
151
- pressScale: PRESS_SCALE.card,
152
- disabled: !onPress
153
- });
154
137
  const tiltStyle = useAnimatedStyle(() => ({
155
138
  transform: [
156
139
  { perspective: clampedPerspective },
@@ -164,28 +147,21 @@ function HolographicCard({
164
147
  const canvas = /* @__PURE__ */ React.createElement(Canvas, { style: { width, height: h } }, image ? /* @__PURE__ */ React.createElement(Group, { clip: { rect: rrct, rx: borderRadius, ry: borderRadius } }, /* @__PURE__ */ React.createElement(Image, { image, x: 0, y: 0, width, height: h, fit: "cover" })) : null, /* @__PURE__ */ React.createElement(RoundedRect, { x: 0, y: 0, width, height: h, r: borderRadius, opacity: intensity, blendMode }, /* @__PURE__ */ React.createElement(LinearGradient, { start, end, colors: resolvedFoilColors })));
165
148
  const card = /* @__PURE__ */ React.createElement(Animated.View, { style: [{ width, height: h }, tiltStyle, style] }, canvas);
166
149
  if (!onPress) return card;
167
- return /* @__PURE__ */ React.createElement(Animated.View, { style: pressStyle }, /* @__PURE__ */ React.createElement(
168
- TouchableOpacity,
150
+ return /* @__PURE__ */ React.createElement(
151
+ PressableCard,
169
152
  {
170
153
  onPress: () => {
171
154
  impactLight();
172
155
  onPress();
173
156
  },
174
- onPressIn,
175
- onPressOut,
176
- activeOpacity: 1,
157
+ enabled: true,
158
+ rippleColor: "transparent",
177
159
  touchSoundDisabled: true,
178
160
  accessibilityRole: "imagebutton",
179
- ...hoverHandlers,
180
- style: styles.touch
161
+ style: { alignSelf: "flex-start" }
181
162
  },
182
163
  card
183
- ));
164
+ );
184
165
  }
185
- var styles = StyleSheet.create({
186
- touch: {
187
- alignSelf: "flex-start"
188
- }
189
- });
190
166
 
191
167
  export { FOIL_PRESETS, HolographicCard };