@retray-dev/ui-kit 12.2.0 → 13.0.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 (268) hide show
  1. package/COMPONENTS.md +85 -143
  2. package/CONSUMER.md +2 -2
  3. package/DESIGN.md +2 -2
  4. package/README.md +11 -6
  5. package/dist/Accordion.js +48 -210
  6. package/dist/Accordion.mjs +6 -5
  7. package/dist/AlertBanner.js +29 -153
  8. package/dist/AlertBanner.mjs +3 -3
  9. package/dist/AppHeader.js +37 -235
  10. package/dist/AppHeader.mjs +6 -7
  11. package/dist/Avatar.d.mts +17 -1
  12. package/dist/Avatar.d.ts +17 -1
  13. package/dist/Avatar.js +80 -115
  14. package/dist/Avatar.mjs +2 -2
  15. package/dist/Badge.js +24 -149
  16. package/dist/Badge.mjs +3 -3
  17. package/dist/Button.js +79 -267
  18. package/dist/Button.mjs +6 -6
  19. package/dist/Card.js +15 -200
  20. package/dist/Card.mjs +4 -5
  21. package/dist/CategoryStrip.d.mts +0 -5
  22. package/dist/CategoryStrip.d.ts +0 -5
  23. package/dist/CategoryStrip.js +47 -265
  24. package/dist/CategoryStrip.mjs +6 -6
  25. package/dist/Checkbox.js +15 -200
  26. package/dist/Checkbox.mjs +5 -5
  27. package/dist/Chip.js +44 -236
  28. package/dist/Chip.mjs +7 -6
  29. package/dist/ConfirmDialog.js +84 -286
  30. package/dist/ConfirmDialog.mjs +7 -7
  31. package/dist/CurrencyDisplay.js +1 -114
  32. package/dist/CurrencyDisplay.mjs +2 -2
  33. package/dist/CurrencyInput.js +35 -162
  34. package/dist/CurrencyInput.mjs +5 -5
  35. package/dist/DetailRow.js +25 -150
  36. package/dist/DetailRow.mjs +3 -3
  37. package/dist/EmptyState.js +80 -268
  38. package/dist/EmptyState.mjs +7 -7
  39. package/dist/ErrorBoundary.js +32 -199
  40. package/dist/ErrorBoundary.mjs +4 -4
  41. package/dist/Form.js +1 -114
  42. package/dist/Form.mjs +2 -2
  43. package/dist/HolographicCard.d.mts +0 -28
  44. package/dist/HolographicCard.d.ts +0 -28
  45. package/dist/HolographicCard.js +20 -130
  46. package/dist/HolographicCard.mjs +9 -32
  47. package/dist/IconButton.js +36 -234
  48. package/dist/IconButton.mjs +5 -6
  49. package/dist/IconPicker.js +222 -929
  50. package/dist/IconPicker.mjs +5 -5
  51. package/dist/ImageUpload.d.mts +3 -1
  52. package/dist/ImageUpload.d.ts +3 -1
  53. package/dist/ImageUpload.js +25 -215
  54. package/dist/ImageUpload.mjs +5 -6
  55. package/dist/ImageViewer.js +75 -266
  56. package/dist/ImageViewer.mjs +8 -8
  57. package/dist/Input.d.mts +1 -1
  58. package/dist/Input.d.ts +1 -1
  59. package/dist/Input.js +35 -162
  60. package/dist/Input.mjs +4 -4
  61. package/dist/LabelValue.js +24 -149
  62. package/dist/LabelValue.mjs +3 -3
  63. package/dist/ListGroup.js +1 -114
  64. package/dist/ListGroup.mjs +2 -2
  65. package/dist/ListItem.js +38 -235
  66. package/dist/ListItem.mjs +5 -6
  67. package/dist/MediaCard.d.mts +0 -14
  68. package/dist/MediaCard.d.ts +0 -14
  69. package/dist/MediaCard.js +69 -315
  70. package/dist/MediaCard.mjs +5 -6
  71. package/dist/MenuGroup.js +1 -114
  72. package/dist/MenuGroup.mjs +2 -2
  73. package/dist/MenuItem.js +36 -234
  74. package/dist/MenuItem.mjs +5 -6
  75. package/dist/MonthPicker.js +8 -163
  76. package/dist/MonthPicker.mjs +3 -3
  77. package/dist/NumberStepper.js +40 -238
  78. package/dist/NumberStepper.mjs +5 -6
  79. package/dist/PagerDots.d.mts +1 -1
  80. package/dist/PagerDots.d.ts +1 -1
  81. package/dist/PagerDots.js +69 -224
  82. package/dist/PagerDots.mjs +6 -5
  83. package/dist/Pressable.js +14 -85
  84. package/dist/Pressable.mjs +4 -4
  85. package/dist/PricingCard.js +87 -272
  86. package/dist/PricingCard.mjs +8 -8
  87. package/dist/Progress.js +3 -123
  88. package/dist/Progress.mjs +3 -3
  89. package/dist/RadioGroup.js +52 -265
  90. package/dist/RadioGroup.mjs +5 -5
  91. package/dist/RetrayProvider.js +3 -6
  92. package/dist/RetrayProvider.mjs +3 -3
  93. package/dist/Select.d.mts +2 -1
  94. package/dist/Select.d.ts +2 -1
  95. package/dist/Select.js +24 -232
  96. package/dist/Select.mjs +4 -5
  97. package/dist/SelectableCard.js +33 -209
  98. package/dist/SelectableCard.mjs +5 -5
  99. package/dist/SelectableGrid.d.mts +0 -21
  100. package/dist/SelectableGrid.d.ts +0 -21
  101. package/dist/SelectableGrid.js +49 -271
  102. package/dist/SelectableGrid.mjs +5 -6
  103. package/dist/Separator.js +1 -114
  104. package/dist/Separator.mjs +2 -2
  105. package/dist/Sheet.js +7 -162
  106. package/dist/Sheet.mjs +3 -3
  107. package/dist/SheetSelect.js +39 -236
  108. package/dist/SheetSelect.mjs +6 -6
  109. package/dist/Skeleton.js +4 -124
  110. package/dist/Skeleton.mjs +3 -3
  111. package/dist/Slider.js +6 -161
  112. package/dist/Slider.mjs +3 -3
  113. package/dist/Spinner.js +3 -116
  114. package/dist/Spinner.mjs +2 -2
  115. package/dist/Stats.js +36 -234
  116. package/dist/Stats.mjs +5 -6
  117. package/dist/Switch.js +24 -175
  118. package/dist/Switch.mjs +5 -4
  119. package/dist/TabBar.js +43 -200
  120. package/dist/TabBar.mjs +5 -4
  121. package/dist/Tabs.js +15 -199
  122. package/dist/Tabs.mjs +5 -5
  123. package/dist/Text.js +9 -130
  124. package/dist/Text.mjs +2 -2
  125. package/dist/Textarea.d.mts +2 -1
  126. package/dist/Textarea.d.ts +2 -1
  127. package/dist/Textarea.js +71 -219
  128. package/dist/Textarea.mjs +4 -4
  129. package/dist/Toast.js +1 -114
  130. package/dist/Toast.mjs +2 -2
  131. package/dist/Toggle.js +39 -236
  132. package/dist/Toggle.mjs +6 -6
  133. package/dist/{chunk-M3C7XM2M.mjs → chunk-2QOHHBJC.mjs} +3 -3
  134. package/dist/{chunk-LIS6I5UP.mjs → chunk-2VIDP72N.mjs} +3 -3
  135. package/dist/{chunk-DF7JA72E.mjs → chunk-4NQFTHN3.mjs} +13 -7
  136. package/dist/{chunk-UBUXUMER.mjs → chunk-4ZO5PTKF.mjs} +4 -4
  137. package/dist/{chunk-3XCFYSX4.mjs → chunk-5MYNAAFE.mjs} +13 -17
  138. package/dist/{chunk-E7NEHHXV.mjs → chunk-62BBSSUF.mjs} +3 -3
  139. package/dist/{chunk-MVMGPZN6.mjs → chunk-6CR4S6W2.mjs} +3 -3
  140. package/dist/{chunk-EDLCGYIO.mjs → chunk-6QLBHUEG.mjs} +8 -7
  141. package/dist/chunk-ARONDO7M.mjs +40 -0
  142. package/dist/{chunk-GH67YXG6.mjs → chunk-AZV7KNJI.mjs} +3 -3
  143. package/dist/{chunk-RMRS44MQ.mjs → chunk-BTUW5LSG.mjs} +11 -8
  144. package/dist/{chunk-2P2CB235.mjs → chunk-BULKGOIZ.mjs} +7 -8
  145. package/dist/{chunk-NHDI3VQB.mjs → chunk-CBIZLRYH.mjs} +15 -12
  146. package/dist/chunk-CM2DG4MR.mjs +142 -0
  147. package/dist/{chunk-TS7DGUIR.mjs → chunk-DBHSUUKU.mjs} +2 -2
  148. package/dist/{chunk-57V2LXCK.mjs → chunk-DE25XTVQ.mjs} +3 -3
  149. package/dist/{chunk-UQ4742ET.mjs → chunk-E4EQSCKR.mjs} +5 -5
  150. package/dist/{chunk-GUTDFUNF.mjs → chunk-EHGBHFMH.mjs} +9 -17
  151. package/dist/{chunk-CF27NBXO.mjs → chunk-EROPDCB5.mjs} +16 -24
  152. package/dist/{chunk-ZIMY2QUM.mjs → chunk-ERWJPVX7.mjs} +2 -2
  153. package/dist/{chunk-NLZY4TXU.mjs → chunk-ESQDPO5E.mjs} +7 -7
  154. package/dist/{chunk-VJBUCITV.mjs → chunk-EW2FIDSM.mjs} +1 -1
  155. package/dist/{chunk-HC4VVCWY.mjs → chunk-FTTI6T5Q.mjs} +4 -4
  156. package/dist/{chunk-2HFD4IHU.mjs → chunk-HUSSF6TF.mjs} +1 -1
  157. package/dist/chunk-IFYMBOEN.mjs +14 -0
  158. package/dist/{chunk-QOLWA2PW.mjs → chunk-IGU223UM.mjs} +80 -4
  159. package/dist/chunk-IJCMPVW5.mjs +121 -0
  160. package/dist/{chunk-AENAVIKT.mjs → chunk-ITG4JQM3.mjs} +4 -4
  161. package/dist/{chunk-E5UKLSJZ.mjs → chunk-K3QX2M26.mjs} +11 -8
  162. package/dist/{chunk-4OORJ2DY.mjs → chunk-K7TKID3V.mjs} +8 -7
  163. package/dist/{chunk-2LG326TT.mjs → chunk-KAGADD2O.mjs} +4 -4
  164. package/dist/{chunk-IVSRW4HS.mjs → chunk-KC5QDYGZ.mjs} +4 -4
  165. package/dist/{chunk-7AFZWSCI.mjs → chunk-KPTY7UYQ.mjs} +1 -1
  166. package/dist/{chunk-YTXRIXNZ.mjs → chunk-KSSVIFYR.mjs} +9 -12
  167. package/dist/chunk-L3YKPTJQ.mjs +119 -0
  168. package/dist/chunk-M53LC4Q7.mjs +35 -0
  169. package/dist/{chunk-ZR6HSEAB.mjs → chunk-MP7GLMIR.mjs} +17 -25
  170. package/dist/chunk-MZ6WRTD2.mjs +40 -0
  171. package/dist/chunk-NGEN2EES.mjs +581 -0
  172. package/dist/{chunk-C43HRKXH.mjs → chunk-OBV72JD4.mjs} +1 -1
  173. package/dist/{chunk-LPV4NJJK.mjs → chunk-PGQ6FMXS.mjs} +6 -5
  174. package/dist/{chunk-MEPSKGBO.mjs → chunk-PI6RULJX.mjs} +1 -1
  175. package/dist/{chunk-F3YTWO3T.mjs → chunk-RA6SAAFE.mjs} +9 -8
  176. package/dist/{chunk-UNNRUJTM.mjs → chunk-RRKM4MKB.mjs} +7 -7
  177. package/dist/{chunk-ULGNQPNE.mjs → chunk-S2VGME7X.mjs} +1 -1
  178. package/dist/{chunk-OLVJFKXS.mjs → chunk-S44XWTTC.mjs} +35 -25
  179. package/dist/{chunk-YMYIEVZP.mjs → chunk-SZEKQAOY.mjs} +1 -1
  180. package/dist/{chunk-ELGEOM7I.mjs → chunk-TETMEKZE.mjs} +9 -9
  181. package/dist/{chunk-BXF4AMHY.mjs → chunk-TMH263OK.mjs} +5 -4
  182. package/dist/{chunk-NJG7DHVF.mjs → chunk-U6DEBYU5.mjs} +10 -9
  183. package/dist/{chunk-RJNLAH76.mjs → chunk-UOKFSFNJ.mjs} +2 -2
  184. package/dist/{chunk-HEDQPK4I.mjs → chunk-URIH43IJ.mjs} +13 -21
  185. package/dist/{chunk-QXDGGOLC.mjs → chunk-V2ZB2XNS.mjs} +6 -6
  186. package/dist/{chunk-KSUWPU2F.mjs → chunk-WIPEDNSD.mjs} +7 -7
  187. package/dist/{chunk-QDAZGZUF.mjs → chunk-XCIG6HT2.mjs} +3 -3
  188. package/dist/{chunk-4J2PXL36.mjs → chunk-Y6YS33GM.mjs} +40 -38
  189. package/dist/{chunk-4XOB5TTD.mjs → chunk-ZKDKKQCE.mjs} +5 -5
  190. package/dist/{chunk-LOBLCFMN.mjs → chunk-ZTPYUU5C.mjs} +5 -5
  191. package/dist/index.d.mts +12 -72
  192. package/dist/index.d.ts +12 -72
  193. package/dist/index.js +1051 -1838
  194. package/dist/index.mjs +81 -85
  195. package/package.json +8 -10
  196. package/src/components/Accordion/Accordion.tsx +12 -9
  197. package/src/components/AlertBanner/AlertBanner.tsx +7 -6
  198. package/src/components/AppHeader/AppHeader.tsx +1 -1
  199. package/src/components/Avatar/Avatar.tsx +92 -1
  200. package/src/components/Avatar/index.ts +2 -2
  201. package/src/components/Badge/Badge.tsx +2 -2
  202. package/src/components/Button/Button.tsx +50 -46
  203. package/src/components/Card/Card.tsx +1 -0
  204. package/src/components/CategoryStrip/CategoryStrip.tsx +36 -49
  205. package/src/components/Chip/Chip.tsx +5 -4
  206. package/src/components/ConfirmDialog/ConfirmDialog.tsx +3 -3
  207. package/src/components/DetailRow/DetailRow.tsx +3 -3
  208. package/src/components/EmptyState/EmptyState.tsx +2 -2
  209. package/src/components/ErrorBoundary/ErrorBoundary.tsx +6 -6
  210. package/src/components/HolographicCard/HolographicCard.tsx +14 -95
  211. package/src/components/IconButton/IconButton.tsx +2 -2
  212. package/src/components/IconPicker/IconPicker.tsx +13 -12
  213. package/src/components/ImageUpload/ImageUpload.tsx +14 -25
  214. package/src/components/ImageViewer/ImageViewer.tsx +3 -3
  215. package/src/components/Input/Input.tsx +11 -5
  216. package/src/components/LabelValue/LabelValue.tsx +2 -2
  217. package/src/components/ListItem/ListItem.tsx +4 -4
  218. package/src/components/MediaCard/MediaCard.tsx +21 -59
  219. package/src/components/MenuItem/MenuItem.tsx +2 -2
  220. package/src/components/MonthPicker/MonthPicker.tsx +2 -2
  221. package/src/components/NumberStepper/NumberStepper.tsx +6 -6
  222. package/src/components/PagerDots/PagerDots.tsx +38 -28
  223. package/src/components/PricingCard/PricingCard.tsx +6 -6
  224. package/src/components/RadioGroup/RadioGroup.tsx +18 -31
  225. package/src/components/Select/Select.tsx +32 -39
  226. package/src/components/SelectableCard/SelectableCard.tsx +4 -6
  227. package/src/components/SelectableGrid/SelectableGrid.tsx +38 -72
  228. package/src/components/Sheet/Sheet.tsx +1 -1
  229. package/src/components/SheetSelect/SheetSelect.tsx +3 -3
  230. package/src/components/Skeleton/Skeleton.tsx +1 -1
  231. package/src/components/Spinner/Spinner.tsx +2 -2
  232. package/src/components/Stats/Stats.tsx +2 -2
  233. package/src/components/Switch/Switch.tsx +9 -6
  234. package/src/components/TabBar/TabBar.tsx +9 -8
  235. package/src/components/Text/Text.tsx +12 -1
  236. package/src/components/Textarea/Textarea.tsx +18 -32
  237. package/src/components/Toggle/Toggle.tsx +3 -3
  238. package/src/hooks/useConfirmDialog.ts +31 -42
  239. package/src/index.ts +3 -4
  240. package/src/theme/ThemeProvider.tsx +1 -4
  241. package/src/theme/colorUtils.ts +1 -72
  242. package/src/theme/colors.ts +40 -1
  243. package/src/theme/types.ts +2 -2
  244. package/src/utils/animations.ts +0 -47
  245. package/src/utils/curatedIcons.ts +93 -801
  246. package/src/utils/haptics.ts +13 -208
  247. package/src/utils/icons.ts +27 -91
  248. package/src/utils/pressable.ts +10 -61
  249. package/dist/VirtualList.d.mts +0 -19
  250. package/dist/VirtualList.d.ts +0 -19
  251. package/dist/VirtualList.js +0 -38
  252. package/dist/VirtualList.mjs +0 -2
  253. package/dist/chunk-2BA3JMKK.mjs +0 -136
  254. package/dist/chunk-3DKJ2GIC.mjs +0 -30
  255. package/dist/chunk-7ELGZ66G.mjs +0 -164
  256. package/dist/chunk-DVK4G2GT.mjs +0 -59
  257. package/dist/chunk-EJ7ZPXOH.mjs +0 -163
  258. package/dist/chunk-KA7LTET3.mjs +0 -71
  259. package/dist/chunk-LNPKGWBG.mjs +0 -134
  260. package/dist/chunk-NC5ZTR2Y.mjs +0 -32
  261. package/dist/chunk-SAWUXP3A.mjs +0 -1114
  262. package/dist/chunk-YNROWHQJ.mjs +0 -46
  263. package/src/components/VirtualList/VirtualList.tsx +0 -60
  264. package/src/components/VirtualList/index.ts +0 -1
  265. package/src/utils/fontGuard.ts +0 -35
  266. package/src/utils/hover.ts +0 -25
  267. package/src/utils/useColorTransition.ts +0 -40
  268. 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,13 @@
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
4
  import './chunk-Y6FXYEAI.mjs';
6
5
  import React, { useMemo, useEffect } from 'react';
7
- import { StyleSheet, Platform, TouchableOpacity } from 'react-native';
6
+ import { Platform } from 'react-native';
8
7
  import { useImage, vec, Canvas, Group, Image, RoundedRect, LinearGradient } from '@shopify/react-native-skia';
9
8
  import Animated, { useSharedValue, withTiming, useAnimatedStyle, useDerivedValue } from 'react-native-reanimated';
10
9
 
11
10
  var FOIL_PRESETS = {
12
- // Classic holographic rainbow
13
11
  rainbow: [
14
12
  "rgba(255, 0, 128, 0.45)",
15
13
  "rgba(255, 200, 0, 0.40)",
@@ -17,7 +15,6 @@ var FOIL_PRESETS = {
17
15
  "rgba(0, 170, 255, 0.45)",
18
16
  "rgba(180, 0, 255, 0.45)"
19
17
  ],
20
- // Premium gold foil
21
18
  gold: [
22
19
  "rgba(255, 215, 0, 0.50)",
23
20
  "rgba(255, 180, 0, 0.45)",
@@ -25,7 +22,6 @@ var FOIL_PRESETS = {
25
22
  "rgba(255, 223, 128, 0.50)",
26
23
  "rgba(184, 134, 11, 0.45)"
27
24
  ],
28
- // Chrome silver foil
29
25
  silver: [
30
26
  "rgba(192, 192, 192, 0.50)",
31
27
  "rgba(220, 220, 220, 0.45)",
@@ -33,7 +29,6 @@ var FOIL_PRESETS = {
33
29
  "rgba(240, 240, 240, 0.50)",
34
30
  "rgba(128, 128, 128, 0.45)"
35
31
  ],
36
- // Deep space cosmic
37
32
  cosmic: [
38
33
  "rgba(75, 0, 130, 0.50)",
39
34
  "rgba(138, 43, 226, 0.45)",
@@ -41,7 +36,6 @@ var FOIL_PRESETS = {
41
36
  "rgba(0, 191, 255, 0.45)",
42
37
  "rgba(148, 0, 211, 0.50)"
43
38
  ],
44
- // Emerald green luxury
45
39
  emerald: [
46
40
  "rgba(0, 201, 87, 0.50)",
47
41
  "rgba(46, 139, 87, 0.45)",
@@ -49,7 +43,6 @@ var FOIL_PRESETS = {
49
43
  "rgba(60, 179, 113, 0.45)",
50
44
  "rgba(0, 128, 0, 0.50)"
51
45
  ],
52
- // Rose gold / pink
53
46
  rose: [
54
47
  "rgba(255, 105, 180, 0.50)",
55
48
  "rgba(255, 182, 193, 0.45)",
@@ -57,7 +50,6 @@ var FOIL_PRESETS = {
57
50
  "rgba(255, 20, 147, 0.45)",
58
51
  "rgba(199, 21, 133, 0.50)"
59
52
  ],
60
- // Deep ocean blue
61
53
  ocean: [
62
54
  "rgba(0, 119, 190, 0.50)",
63
55
  "rgba(0, 180, 216, 0.45)",
@@ -65,7 +57,6 @@ var FOIL_PRESETS = {
65
57
  "rgba(144, 224, 239, 0.45)",
66
58
  "rgba(0, 150, 199, 0.50)"
67
59
  ],
68
- // Hot fire gradient
69
60
  fire: [
70
61
  "rgba(255, 69, 0, 0.50)",
71
62
  "rgba(255, 140, 0, 0.45)",
@@ -73,7 +64,6 @@ var FOIL_PRESETS = {
73
64
  "rgba(255, 99, 71, 0.45)",
74
65
  "rgba(220, 20, 60, 0.50)"
75
66
  ],
76
- // Aurora borealis
77
67
  aurora: [
78
68
  "rgba(0, 255, 127, 0.45)",
79
69
  "rgba(127, 255, 212, 0.40)",
@@ -81,7 +71,6 @@ var FOIL_PRESETS = {
81
71
  "rgba(138, 43, 226, 0.40)",
82
72
  "rgba(255, 20, 147, 0.45)"
83
73
  ],
84
- // Neon cyberpunk
85
74
  neon: [
86
75
  "rgba(255, 0, 255, 0.55)",
87
76
  "rgba(0, 255, 255, 0.50)",
@@ -102,7 +91,6 @@ function HolographicCard({
102
91
  intensity = 1,
103
92
  onPress,
104
93
  style,
105
- // New customization props
106
94
  foilPreset = "rainbow",
107
95
  foilColors,
108
96
  maxTiltDegrees = DEFAULT_TILT_DEG,
@@ -147,10 +135,6 @@ function HolographicCard({
147
135
  remove?.();
148
136
  };
149
137
  }, [enableTilt, tiltX, tiltY, normFactor, tiltAnimationDuration]);
150
- const { animatedStyle: pressStyle, onPressIn, onPressOut, hoverHandlers } = usePressScale({
151
- pressScale: PRESS_SCALE.card,
152
- disabled: !onPress
153
- });
154
138
  const tiltStyle = useAnimatedStyle(() => ({
155
139
  transform: [
156
140
  { perspective: clampedPerspective },
@@ -164,28 +148,21 @@ function HolographicCard({
164
148
  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
149
  const card = /* @__PURE__ */ React.createElement(Animated.View, { style: [{ width, height: h }, tiltStyle, style] }, canvas);
166
150
  if (!onPress) return card;
167
- return /* @__PURE__ */ React.createElement(Animated.View, { style: pressStyle }, /* @__PURE__ */ React.createElement(
168
- TouchableOpacity,
151
+ return /* @__PURE__ */ React.createElement(
152
+ PressableCard,
169
153
  {
170
154
  onPress: () => {
171
155
  impactLight();
172
156
  onPress();
173
157
  },
174
- onPressIn,
175
- onPressOut,
176
- activeOpacity: 1,
158
+ enabled: true,
159
+ rippleColor: "transparent",
177
160
  touchSoundDisabled: true,
178
161
  accessibilityRole: "imagebutton",
179
- ...hoverHandlers,
180
- style: styles.touch
162
+ style: { alignSelf: "flex-start" }
181
163
  },
182
164
  card
183
- ));
165
+ );
184
166
  }
185
- var styles = StyleSheet.create({
186
- touch: {
187
- alignSelf: "flex-start"
188
- }
189
- });
190
167
 
191
168
  export { FOIL_PRESETS, HolographicCard };