@hanzogui/toast 3.0.2 → 7.3.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 (270) hide show
  1. package/dist/cjs/Toast.cjs +149 -141
  2. package/dist/cjs/Toast.native.js +149 -142
  3. package/dist/cjs/Toast.native.js.map +1 -1
  4. package/dist/cjs/ToastAnnounce.cjs +81 -75
  5. package/dist/cjs/ToastAnnounce.native.js +86 -80
  6. package/dist/cjs/ToastAnnounce.native.js.map +1 -1
  7. package/dist/cjs/ToastComposable.cjs +933 -0
  8. package/dist/cjs/ToastComposable.native.js +1025 -0
  9. package/dist/cjs/ToastComposable.native.js.map +1 -0
  10. package/dist/cjs/ToastImperative.cjs +99 -80
  11. package/dist/cjs/ToastImperative.native.js +104 -96
  12. package/dist/cjs/ToastImperative.native.js.map +1 -1
  13. package/dist/cjs/ToastImpl.cjs +303 -241
  14. package/dist/cjs/ToastImpl.native.js +311 -273
  15. package/dist/cjs/ToastImpl.native.js.map +1 -1
  16. package/dist/cjs/ToastItemFrame.cjs +143 -0
  17. package/dist/cjs/ToastItemFrame.native.js +148 -0
  18. package/dist/cjs/ToastItemFrame.native.js.map +1 -0
  19. package/dist/cjs/ToastPortal.cjs +23 -18
  20. package/dist/cjs/ToastPortal.native.js +27 -22
  21. package/dist/cjs/ToastPortal.native.js.map +1 -1
  22. package/dist/cjs/ToastProvider.cjs +103 -99
  23. package/dist/cjs/ToastProvider.native.js +108 -106
  24. package/dist/cjs/ToastProvider.native.js.map +1 -1
  25. package/dist/cjs/ToastState.cjs +311 -0
  26. package/dist/cjs/ToastState.native.js +324 -0
  27. package/dist/cjs/ToastState.native.js.map +1 -0
  28. package/dist/cjs/ToastViewport.cjs +276 -235
  29. package/dist/cjs/ToastViewport.native.js +302 -274
  30. package/dist/cjs/ToastViewport.native.js.map +1 -1
  31. package/dist/cjs/Toaster.cjs +87 -0
  32. package/dist/cjs/Toaster.native.js +91 -0
  33. package/dist/cjs/Toaster.native.js.map +1 -0
  34. package/dist/cjs/constants.cjs +14 -12
  35. package/dist/cjs/constants.native.js +14 -12
  36. package/dist/cjs/constants.native.js.map +1 -1
  37. package/dist/cjs/createNativeToast.cjs +43 -35
  38. package/dist/cjs/createNativeToast.native.js +42 -30
  39. package/dist/cjs/createNativeToast.native.js.map +1 -1
  40. package/dist/cjs/dispatchNativeToast.cjs +47 -0
  41. package/dist/cjs/dispatchNativeToast.native.js +52 -0
  42. package/dist/cjs/dispatchNativeToast.native.js.map +1 -0
  43. package/dist/cjs/index.cjs +7 -5
  44. package/dist/cjs/index.native.js +7 -5
  45. package/dist/cjs/index.native.js.map +1 -1
  46. package/dist/cjs/types.cjs +7 -5
  47. package/dist/cjs/types.native.js +7 -5
  48. package/dist/cjs/types.native.js.map +1 -1
  49. package/dist/cjs/useAnimatedDragGesture.cjs +214 -0
  50. package/dist/cjs/useAnimatedDragGesture.native.js +224 -0
  51. package/dist/cjs/useAnimatedDragGesture.native.js.map +1 -0
  52. package/dist/cjs/useReducedMotion.cjs +74 -0
  53. package/dist/cjs/useReducedMotion.native.js +83 -0
  54. package/dist/cjs/useReducedMotion.native.js.map +1 -0
  55. package/dist/cjs/useToastAnimations.cjs +294 -0
  56. package/dist/cjs/useToastAnimations.native.js +304 -0
  57. package/dist/cjs/useToastAnimations.native.js.map +1 -0
  58. package/dist/cjs/v2.cjs +36 -0
  59. package/dist/cjs/v2.native.js +39 -0
  60. package/dist/cjs/v2.native.js.map +1 -0
  61. package/dist/esm/Toast.mjs +112 -106
  62. package/dist/esm/Toast.mjs.map +1 -1
  63. package/dist/esm/Toast.native.js +112 -107
  64. package/dist/esm/Toast.native.js.map +1 -1
  65. package/dist/esm/ToastAnnounce.mjs +46 -42
  66. package/dist/esm/ToastAnnounce.mjs.map +1 -1
  67. package/dist/esm/ToastAnnounce.native.js +52 -48
  68. package/dist/esm/ToastAnnounce.native.js.map +1 -1
  69. package/dist/esm/ToastComposable.mjs +895 -0
  70. package/dist/esm/ToastComposable.mjs.map +1 -0
  71. package/dist/esm/ToastComposable.native.js +984 -0
  72. package/dist/esm/ToastComposable.native.js.map +1 -0
  73. package/dist/esm/ToastImperative.mjs +71 -54
  74. package/dist/esm/ToastImperative.mjs.map +1 -1
  75. package/dist/esm/ToastImperative.native.js +76 -70
  76. package/dist/esm/ToastImperative.native.js.map +1 -1
  77. package/dist/esm/ToastImpl.mjs +261 -201
  78. package/dist/esm/ToastImpl.mjs.map +1 -1
  79. package/dist/esm/ToastImpl.native.js +270 -234
  80. package/dist/esm/ToastImpl.native.js.map +1 -1
  81. package/dist/esm/ToastItemFrame.mjs +114 -0
  82. package/dist/esm/ToastItemFrame.mjs.map +1 -0
  83. package/dist/esm/ToastItemFrame.native.js +116 -0
  84. package/dist/esm/ToastItemFrame.native.js.map +1 -0
  85. package/dist/esm/ToastPortal.mjs +8 -5
  86. package/dist/esm/ToastPortal.mjs.map +1 -1
  87. package/dist/esm/ToastPortal.native.js +12 -9
  88. package/dist/esm/ToastPortal.native.js.map +1 -1
  89. package/dist/esm/ToastProvider.mjs +71 -69
  90. package/dist/esm/ToastProvider.mjs.map +1 -1
  91. package/dist/esm/ToastProvider.native.js +77 -77
  92. package/dist/esm/ToastProvider.native.js.map +1 -1
  93. package/dist/esm/ToastState.mjs +285 -0
  94. package/dist/esm/ToastState.mjs.map +1 -0
  95. package/dist/esm/ToastState.native.js +295 -0
  96. package/dist/esm/ToastState.native.js.map +1 -0
  97. package/dist/esm/ToastViewport.mjs +238 -199
  98. package/dist/esm/ToastViewport.mjs.map +1 -1
  99. package/dist/esm/ToastViewport.native.js +265 -239
  100. package/dist/esm/ToastViewport.native.js.map +1 -1
  101. package/dist/esm/Toaster.mjs +51 -0
  102. package/dist/esm/Toaster.mjs.map +1 -0
  103. package/dist/esm/Toaster.native.js +52 -0
  104. package/dist/esm/Toaster.native.js.map +1 -0
  105. package/dist/esm/constants.mjs +2 -2
  106. package/dist/esm/constants.mjs.map +1 -1
  107. package/dist/esm/constants.native.js +2 -2
  108. package/dist/esm/constants.native.js.map +1 -1
  109. package/dist/esm/createNativeToast.mjs +29 -24
  110. package/dist/esm/createNativeToast.mjs.map +1 -1
  111. package/dist/esm/createNativeToast.native.js +27 -18
  112. package/dist/esm/createNativeToast.native.js.map +1 -1
  113. package/dist/esm/dispatchNativeToast.mjs +22 -0
  114. package/dist/esm/dispatchNativeToast.mjs.map +1 -0
  115. package/dist/esm/dispatchNativeToast.native.js +24 -0
  116. package/dist/esm/dispatchNativeToast.native.js.map +1 -0
  117. package/dist/esm/useAnimatedDragGesture.mjs +178 -0
  118. package/dist/esm/useAnimatedDragGesture.mjs.map +1 -0
  119. package/dist/esm/useAnimatedDragGesture.native.js +185 -0
  120. package/dist/esm/useAnimatedDragGesture.native.js.map +1 -0
  121. package/dist/esm/useReducedMotion.mjs +38 -0
  122. package/dist/esm/useReducedMotion.mjs.map +1 -0
  123. package/dist/esm/useReducedMotion.native.js +44 -0
  124. package/dist/esm/useReducedMotion.native.js.map +1 -0
  125. package/dist/esm/useToastAnimations.mjs +258 -0
  126. package/dist/esm/useToastAnimations.mjs.map +1 -0
  127. package/dist/esm/useToastAnimations.native.js +265 -0
  128. package/dist/esm/useToastAnimations.native.js.map +1 -0
  129. package/dist/esm/v2.mjs +6 -0
  130. package/dist/esm/v2.mjs.map +1 -0
  131. package/dist/esm/v2.native.js +6 -0
  132. package/dist/esm/v2.native.js.map +1 -0
  133. package/dist/jsx/Toast.mjs +112 -106
  134. package/dist/jsx/Toast.mjs.map +1 -1
  135. package/dist/jsx/Toast.native.js +149 -142
  136. package/dist/jsx/Toast.native.js.map +1 -1
  137. package/dist/jsx/ToastAnnounce.mjs +46 -42
  138. package/dist/jsx/ToastAnnounce.mjs.map +1 -1
  139. package/dist/jsx/ToastAnnounce.native.js +86 -80
  140. package/dist/jsx/ToastAnnounce.native.js.map +1 -1
  141. package/dist/jsx/ToastComposable.mjs +895 -0
  142. package/dist/jsx/ToastComposable.mjs.map +1 -0
  143. package/dist/jsx/ToastComposable.native.js +1025 -0
  144. package/dist/jsx/ToastComposable.native.js.map +1 -0
  145. package/dist/jsx/ToastImperative.mjs +71 -54
  146. package/dist/jsx/ToastImperative.mjs.map +1 -1
  147. package/dist/jsx/ToastImperative.native.js +104 -96
  148. package/dist/jsx/ToastImperative.native.js.map +1 -1
  149. package/dist/jsx/ToastImpl.mjs +261 -201
  150. package/dist/jsx/ToastImpl.mjs.map +1 -1
  151. package/dist/jsx/ToastImpl.native.js +311 -273
  152. package/dist/jsx/ToastImpl.native.js.map +1 -1
  153. package/dist/jsx/ToastItemFrame.mjs +114 -0
  154. package/dist/jsx/ToastItemFrame.mjs.map +1 -0
  155. package/dist/jsx/ToastItemFrame.native.js +148 -0
  156. package/dist/jsx/ToastItemFrame.native.js.map +1 -0
  157. package/dist/jsx/ToastPortal.mjs +8 -5
  158. package/dist/jsx/ToastPortal.mjs.map +1 -1
  159. package/dist/jsx/ToastPortal.native.js +27 -22
  160. package/dist/jsx/ToastPortal.native.js.map +1 -1
  161. package/dist/jsx/ToastProvider.mjs +71 -69
  162. package/dist/jsx/ToastProvider.mjs.map +1 -1
  163. package/dist/jsx/ToastProvider.native.js +108 -106
  164. package/dist/jsx/ToastProvider.native.js.map +1 -1
  165. package/dist/jsx/ToastState.mjs +285 -0
  166. package/dist/jsx/ToastState.mjs.map +1 -0
  167. package/dist/jsx/ToastState.native.js +324 -0
  168. package/dist/jsx/ToastState.native.js.map +1 -0
  169. package/dist/jsx/ToastViewport.mjs +238 -199
  170. package/dist/jsx/ToastViewport.mjs.map +1 -1
  171. package/dist/jsx/ToastViewport.native.js +302 -274
  172. package/dist/jsx/ToastViewport.native.js.map +1 -1
  173. package/dist/jsx/Toaster.mjs +51 -0
  174. package/dist/jsx/Toaster.mjs.map +1 -0
  175. package/dist/jsx/Toaster.native.js +91 -0
  176. package/dist/jsx/Toaster.native.js.map +1 -0
  177. package/dist/jsx/constants.mjs +2 -2
  178. package/dist/jsx/constants.mjs.map +1 -1
  179. package/dist/jsx/constants.native.js +14 -12
  180. package/dist/jsx/constants.native.js.map +1 -1
  181. package/dist/jsx/createNativeToast.mjs +29 -24
  182. package/dist/jsx/createNativeToast.mjs.map +1 -1
  183. package/dist/jsx/createNativeToast.native.js +42 -30
  184. package/dist/jsx/createNativeToast.native.js.map +1 -1
  185. package/dist/jsx/dispatchNativeToast.mjs +22 -0
  186. package/dist/jsx/dispatchNativeToast.mjs.map +1 -0
  187. package/dist/jsx/dispatchNativeToast.native.js +52 -0
  188. package/dist/jsx/dispatchNativeToast.native.js.map +1 -0
  189. package/dist/jsx/index.native.js +7 -5
  190. package/dist/jsx/types.native.js +7 -5
  191. package/dist/jsx/useAnimatedDragGesture.mjs +178 -0
  192. package/dist/jsx/useAnimatedDragGesture.mjs.map +1 -0
  193. package/dist/jsx/useAnimatedDragGesture.native.js +224 -0
  194. package/dist/jsx/useAnimatedDragGesture.native.js.map +1 -0
  195. package/dist/jsx/useReducedMotion.mjs +38 -0
  196. package/dist/jsx/useReducedMotion.mjs.map +1 -0
  197. package/dist/jsx/useReducedMotion.native.js +83 -0
  198. package/dist/jsx/useReducedMotion.native.js.map +1 -0
  199. package/dist/jsx/useToastAnimations.mjs +258 -0
  200. package/dist/jsx/useToastAnimations.mjs.map +1 -0
  201. package/dist/jsx/useToastAnimations.native.js +304 -0
  202. package/dist/jsx/useToastAnimations.native.js.map +1 -0
  203. package/dist/jsx/v2.mjs +6 -0
  204. package/dist/jsx/v2.mjs.map +1 -0
  205. package/dist/jsx/v2.native.js +39 -0
  206. package/dist/jsx/v2.native.js.map +1 -0
  207. package/package.json +43 -24
  208. package/src/Toast.tsx +2 -2
  209. package/src/ToastComposable.tsx +1380 -0
  210. package/src/ToastImpl.tsx +15 -3
  211. package/src/ToastItemFrame.tsx +136 -0
  212. package/src/ToastPortal.tsx +2 -2
  213. package/src/ToastProvider.tsx +8 -1
  214. package/src/ToastState.ts +398 -0
  215. package/src/ToastViewport.tsx +6 -5
  216. package/src/Toaster.tsx +181 -0
  217. package/src/createNativeToast.native.tsx +4 -0
  218. package/src/createNativeToast.tsx +18 -24
  219. package/src/dispatchNativeToast.ts +43 -0
  220. package/src/useAnimatedDragGesture.native.ts +255 -0
  221. package/src/useAnimatedDragGesture.ts +319 -0
  222. package/src/useReducedMotion.ts +59 -0
  223. package/src/useToastAnimations.ts +377 -0
  224. package/src/v2.ts +31 -0
  225. package/types/Toast.d.ts +34 -34
  226. package/types/Toast.d.ts.map +1 -0
  227. package/types/ToastAnnounce.d.ts +4 -4
  228. package/types/ToastAnnounce.d.ts.map +1 -0
  229. package/types/ToastComposable.d.ts +199 -0
  230. package/types/ToastComposable.d.ts.map +1 -0
  231. package/types/ToastImperative.d.ts +3 -3
  232. package/types/ToastImperative.d.ts.map +1 -0
  233. package/types/ToastImpl.d.ts +11 -11
  234. package/types/ToastImpl.d.ts.map +1 -0
  235. package/types/ToastItemFrame.d.ts +25 -0
  236. package/types/ToastItemFrame.d.ts.map +1 -0
  237. package/types/ToastPortal.d.ts +1 -1
  238. package/types/ToastPortal.d.ts.map +1 -0
  239. package/types/ToastProvider.d.ts +4 -4
  240. package/types/ToastProvider.d.ts.map +1 -0
  241. package/types/ToastState.d.ts +179 -0
  242. package/types/ToastState.d.ts.map +1 -0
  243. package/types/ToastViewport.d.ts +10 -10
  244. package/types/ToastViewport.d.ts.map +1 -0
  245. package/types/Toaster.d.ts +112 -0
  246. package/types/Toaster.d.ts.map +1 -0
  247. package/types/constants.d.ts.map +1 -0
  248. package/types/createNativeToast.d.ts +5 -0
  249. package/types/createNativeToast.d.ts.map +1 -0
  250. package/types/createNativeToast.native.d.ts +1 -0
  251. package/types/createNativeToast.native.d.ts.map +1 -0
  252. package/types/dispatchNativeToast.d.ts +12 -0
  253. package/types/dispatchNativeToast.d.ts.map +1 -0
  254. package/types/index.d.ts.map +1 -0
  255. package/types/types.d.ts.map +1 -0
  256. package/types/useAnimatedDragGesture.d.ts +33 -0
  257. package/types/useAnimatedDragGesture.d.ts.map +1 -0
  258. package/types/useAnimatedDragGesture.native.d.ts +33 -0
  259. package/types/useAnimatedDragGesture.native.d.ts.map +1 -0
  260. package/types/useReducedMotion.d.ts +6 -0
  261. package/types/useReducedMotion.d.ts.map +1 -0
  262. package/types/useToastAnimations.d.ts +50 -0
  263. package/types/useToastAnimations.d.ts.map +1 -0
  264. package/types/v2.d.ts +10 -0
  265. package/types/v2.d.ts.map +1 -0
  266. package/v2/index.cjs +2 -0
  267. package/v2/index.js +2 -0
  268. package/v2/index.native.cjs +2 -0
  269. package/v2/index.native.js +2 -0
  270. package/LICENSE +0 -21
@@ -0,0 +1,178 @@
1
+ import * as React from "react";
2
+ const VELOCITY_THRESHOLD = 0.11;
3
+ function resisted(delta, maxResist = 25) {
4
+ if (delta >= 0) return delta;
5
+ const pastBoundary = Math.abs(delta);
6
+ const resistedDistance = Math.sqrt(pastBoundary) * 2;
7
+ return -Math.min(resistedDistance, maxResist);
8
+ }
9
+ const EXIT_DRAG_CAP = 80;
10
+ function cappedExit(delta) {
11
+ if (Math.abs(delta) <= EXIT_DRAG_CAP) return delta;
12
+ const sign = delta > 0 ? 1 : -1;
13
+ const overshoot = Math.abs(delta) - EXIT_DRAG_CAP;
14
+ return sign * (EXIT_DRAG_CAP + Math.sqrt(overshoot) * 2);
15
+ }
16
+ function useAnimatedDragGesture(options) {
17
+ const {
18
+ direction,
19
+ threshold,
20
+ disabled,
21
+ expanded,
22
+ onDragMove,
23
+ onDragStart,
24
+ onDismiss,
25
+ onCancel
26
+ } = options;
27
+ const [isDragging, setIsDragging] = React.useState(false);
28
+ const dragStartRef = React.useRef(null);
29
+ const lockedDirectionRef = React.useRef(null);
30
+ const captureElementRef = React.useRef(null);
31
+ const isHorizontal = direction === "left" || direction === "right" || direction === "horizontal";
32
+ const isVertical = direction === "up" || direction === "down" || direction === "vertical";
33
+ const preventSelectRef = React.useRef(null);
34
+ function startPreventingSelection() {
35
+ if (typeof document === "undefined") return;
36
+ window.getSelection()?.removeAllRanges();
37
+ const handler = e => e.preventDefault();
38
+ preventSelectRef.current = handler;
39
+ document.addEventListener("selectstart", handler, true);
40
+ }
41
+ function stopPreventingSelection() {
42
+ if (preventSelectRef.current) {
43
+ document.removeEventListener("selectstart", preventSelectRef.current, true);
44
+ preventSelectRef.current = null;
45
+ }
46
+ }
47
+ const cleanup = React.useCallback(() => {
48
+ dragStartRef.current = null;
49
+ lockedDirectionRef.current = null;
50
+ setIsDragging(false);
51
+ stopPreventingSelection();
52
+ }, []);
53
+ React.useEffect(() => {
54
+ return () => {
55
+ if (dragStartRef.current) {
56
+ if (captureElementRef.current && dragStartRef.current.pointerId) {
57
+ try {
58
+ captureElementRef.current.releasePointerCapture(dragStartRef.current.pointerId);
59
+ } catch {}
60
+ }
61
+ cleanup();
62
+ }
63
+ };
64
+ }, [cleanup]);
65
+ const handlePointerDown = React.useCallback(event => {
66
+ if (disabled) return;
67
+ if (event.button !== 0) return;
68
+ const target = event.target;
69
+ if (target.closest('button, a, input, textarea, select, [role="button"]')) {
70
+ return;
71
+ }
72
+ const hasSelection = (window.getSelection()?.toString().length ?? 0) > 0;
73
+ if (hasSelection) return;
74
+ const captureElement = event.currentTarget;
75
+ captureElementRef.current = captureElement;
76
+ captureElement.setPointerCapture(event.pointerId);
77
+ dragStartRef.current = {
78
+ startX: event.clientX,
79
+ startY: event.clientY,
80
+ startTime: Date.now(),
81
+ pointerId: event.pointerId
82
+ };
83
+ startPreventingSelection();
84
+ setIsDragging(true);
85
+ onDragStart?.();
86
+ }, [disabled, onDragStart]);
87
+ const handlePointerMove = React.useCallback(event => {
88
+ if (!dragStartRef.current || disabled) return;
89
+ const deltaX = event.clientX - dragStartRef.current.startX;
90
+ const deltaY = event.clientY - dragStartRef.current.startY;
91
+ if (!lockedDirectionRef.current && (Math.abs(deltaX) > 1 || Math.abs(deltaY) > 1)) {
92
+ lockedDirectionRef.current = Math.abs(deltaX) > Math.abs(deltaY) ? "x" : "y";
93
+ }
94
+ let offsetX = 0;
95
+ let offsetY = 0;
96
+ if (direction === "right") {
97
+ offsetX = deltaX > 0 ? cappedExit(deltaX) : resisted(deltaX);
98
+ } else if (direction === "left") {
99
+ offsetX = deltaX < 0 ? cappedExit(deltaX) : -resisted(-deltaX);
100
+ } else if (direction === "down") {
101
+ offsetY = deltaY > 0 ? cappedExit(deltaY) : resisted(deltaY);
102
+ } else if (direction === "up") {
103
+ offsetY = deltaY < 0 ? cappedExit(deltaY) : -resisted(-deltaY);
104
+ } else if (direction === "horizontal") {
105
+ offsetX = cappedExit(deltaX);
106
+ } else if (direction === "vertical") {
107
+ offsetY = cappedExit(deltaY);
108
+ }
109
+ onDragMove(offsetX, offsetY);
110
+ }, [disabled, direction, expanded, isHorizontal, isVertical, onDragMove]);
111
+ const handlePointerUp = React.useCallback(event => {
112
+ if (!dragStartRef.current || disabled) return;
113
+ const deltaX = event.clientX - dragStartRef.current.startX;
114
+ const deltaY = event.clientY - dragStartRef.current.startY;
115
+ const timeTaken = Date.now() - dragStartRef.current.startTime;
116
+ const velocityX = Math.abs(deltaX) / timeTaken;
117
+ const velocityY = Math.abs(deltaY) / timeTaken;
118
+ const lockedDirection = lockedDirectionRef.current;
119
+ const isLockedToWrongAxis = lockedDirection === "y" && isHorizontal || lockedDirection === "x" && isVertical;
120
+ const relevantDelta = isHorizontal ? deltaX : deltaY;
121
+ const relevantVelocity = isHorizontal ? velocityX : velocityY;
122
+ const passedThreshold = Math.abs(relevantDelta) >= threshold;
123
+ const hasVelocity = relevantVelocity > VELOCITY_THRESHOLD;
124
+ let exitDirection = null;
125
+ if (!isLockedToWrongAxis) {
126
+ if (direction === "right" && deltaX > 0) exitDirection = "right";else if (direction === "left" && deltaX < 0) exitDirection = "left";else if (direction === "horizontal") {
127
+ if (Math.abs(deltaX) > Math.abs(deltaY)) {
128
+ exitDirection = deltaX > 0 ? "right" : "left";
129
+ }
130
+ } else if (direction === "down" && deltaY > 0) exitDirection = "down";else if (direction === "up" && deltaY < 0) exitDirection = "up";else if (direction === "vertical") {
131
+ if (Math.abs(deltaY) > Math.abs(deltaX)) {
132
+ exitDirection = deltaY > 0 ? "down" : "up";
133
+ }
134
+ }
135
+ }
136
+ const shouldDismiss = exitDirection && (passedThreshold || hasVelocity);
137
+ if (captureElementRef.current) {
138
+ try {
139
+ captureElementRef.current.releasePointerCapture(event.pointerId);
140
+ } catch {}
141
+ }
142
+ cleanup();
143
+ if (shouldDismiss && exitDirection) {
144
+ onDismiss(exitDirection, relevantVelocity);
145
+ } else {
146
+ onCancel();
147
+ }
148
+ }, [disabled, direction, threshold, isHorizontal, isVertical, onDismiss, onCancel, cleanup]);
149
+ const handlePointerCancel = React.useCallback(event => {
150
+ if (captureElementRef.current) {
151
+ try {
152
+ captureElementRef.current.releasePointerCapture(event.pointerId);
153
+ } catch {}
154
+ }
155
+ cleanup();
156
+ onCancel();
157
+ }, [onCancel, cleanup]);
158
+ const handleLostPointerCapture = React.useCallback(() => {
159
+ if (dragStartRef.current) {
160
+ cleanup();
161
+ onCancel();
162
+ }
163
+ }, [onCancel, cleanup]);
164
+ const gestureHandlers = {
165
+ onPointerDown: handlePointerDown,
166
+ onPointerMove: handlePointerMove,
167
+ onPointerUp: handlePointerUp,
168
+ onPointerCancel: handlePointerCancel,
169
+ onLostPointerCapture: handleLostPointerCapture
170
+ };
171
+ return {
172
+ isDragging,
173
+ gestureHandlers,
174
+ gesture: null
175
+ };
176
+ }
177
+ export { useAnimatedDragGesture };
178
+ //# sourceMappingURL=useAnimatedDragGesture.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","VELOCITY_THRESHOLD","resisted","delta","maxResist","pastBoundary","Math","abs","resistedDistance","sqrt","min","EXIT_DRAG_CAP","cappedExit","sign","overshoot","useAnimatedDragGesture","options","direction","threshold","disabled","expanded","onDragMove","onDragStart","onDismiss","onCancel","isDragging","setIsDragging","useState","dragStartRef","useRef","lockedDirectionRef","captureElementRef","isHorizontal","isVertical","preventSelectRef","startPreventingSelection","document","window","getSelection","removeAllRanges","handler","e","preventDefault","current","addEventListener","stopPreventingSelection","removeEventListener","cleanup","useCallback","useEffect","pointerId","releasePointerCapture","handlePointerDown","event","button","target","closest","hasSelection","toString","length","captureElement","currentTarget","setPointerCapture","startX","clientX","startY","clientY","startTime","Date","now","handlePointerMove","deltaX","deltaY","offsetX","offsetY","handlePointerUp","timeTaken","velocityX","velocityY","lockedDirection","isLockedToWrongAxis","relevantDelta","relevantVelocity","passedThreshold","hasVelocity","exitDirection","shouldDismiss","handlePointerCancel","handleLostPointerCapture","gestureHandlers","onPointerDown","onPointerMove","onPointerUp","onPointerCancel","onLostPointerCapture","gesture"],"sources":["../../src/useAnimatedDragGesture.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,224 @@
1
+ "use strict";
2
+
3
+ var __create = Object.create;
4
+ var __defProp = Object.defineProperty;
5
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
+ var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __getProtoOf = Object.getPrototypeOf;
8
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
9
+ var __export = (target, all) => {
10
+ for (var name in all) __defProp(target, name, {
11
+ get: all[name],
12
+ enumerable: true
13
+ });
14
+ };
15
+ var __copyProps = (to, from, except, desc) => {
16
+ if (from && typeof from === "object" || typeof from === "function") {
17
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
18
+ get: () => from[key],
19
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
20
+ });
21
+ }
22
+ return to;
23
+ };
24
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
25
+ // If the importer is in node compatibility mode or this is not an ESM
26
+ // file that has been converted to a CommonJS file using a Babel-
27
+ // compatible transform (i.e. "__esModule" has not been set), then set
28
+ // "default" to the CommonJS "module.exports" for node compatibility.
29
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
30
+ value: mod,
31
+ enumerable: true
32
+ }) : target, mod));
33
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
34
+ value: true
35
+ }), mod);
36
+ var useAnimatedDragGesture_native_exports = {};
37
+ __export(useAnimatedDragGesture_native_exports, {
38
+ useAnimatedDragGesture: () => useAnimatedDragGesture
39
+ });
40
+ module.exports = __toCommonJS(useAnimatedDragGesture_native_exports);
41
+ var import_native = require("@hanzogui/native");
42
+ var React = __toESM(require("react"), 1);
43
+ var import_react_native = require("react-native");
44
+ var VELOCITY_THRESHOLD = 0.11;
45
+ var GESTURE_GRANT_THRESHOLD = 10;
46
+ function resisted(delta) {
47
+ var maxResist = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 25;
48
+ if (delta >= 0) return delta;
49
+ var pastBoundary = Math.abs(delta);
50
+ var resistedDistance = Math.sqrt(pastBoundary) * 2;
51
+ return -Math.min(resistedDistance, maxResist);
52
+ }
53
+ var EXIT_DRAG_CAP = 80;
54
+ function cappedExit(delta) {
55
+ if (Math.abs(delta) <= EXIT_DRAG_CAP) return delta;
56
+ var sign = delta > 0 ? 1 : -1;
57
+ var overshoot = Math.abs(delta) - EXIT_DRAG_CAP;
58
+ return sign * (EXIT_DRAG_CAP + Math.sqrt(overshoot) * 2);
59
+ }
60
+ function computeOffset(direction, dx, dy) {
61
+ var offsetX = 0;
62
+ var offsetY = 0;
63
+ if (direction === "right") {
64
+ offsetX = dx > 0 ? cappedExit(dx) : resisted(dx);
65
+ } else if (direction === "left") {
66
+ offsetX = dx < 0 ? cappedExit(dx) : -resisted(-dx);
67
+ } else if (direction === "down") {
68
+ offsetY = dy > 0 ? cappedExit(dy) : resisted(dy);
69
+ } else if (direction === "up") {
70
+ offsetY = dy < 0 ? cappedExit(dy) : -resisted(-dy);
71
+ } else if (direction === "horizontal") {
72
+ offsetX = cappedExit(dx);
73
+ } else if (direction === "vertical") {
74
+ offsetY = cappedExit(dy);
75
+ }
76
+ return {
77
+ offsetX,
78
+ offsetY
79
+ };
80
+ }
81
+ function computeExitDirection(direction, dx, dy) {
82
+ if (direction === "right" && dx > 0) return "right";
83
+ if (direction === "left" && dx < 0) return "left";
84
+ if (direction === "horizontal") {
85
+ if (Math.abs(dx) > Math.abs(dy)) return dx > 0 ? "right" : "left";
86
+ }
87
+ if (direction === "down" && dy > 0) return "down";
88
+ if (direction === "up" && dy < 0) return "up";
89
+ if (direction === "vertical") {
90
+ if (Math.abs(dy) > Math.abs(dx)) return dy > 0 ? "down" : "up";
91
+ }
92
+ return null;
93
+ }
94
+ function shouldGrantGestureMove(dir, dx, dy) {
95
+ var absDx = Math.abs(dx);
96
+ var absDy = Math.abs(dy);
97
+ if ((dir === "horizontal" || dir === "left" || dir === "right") && absDx > GESTURE_GRANT_THRESHOLD && absDx > absDy) {
98
+ return true;
99
+ }
100
+ if ((dir === "vertical" || dir === "up" || dir === "down") && absDy > GESTURE_GRANT_THRESHOLD && absDy > absDx) {
101
+ return true;
102
+ }
103
+ return false;
104
+ }
105
+ function useAnimatedDragGesture(options) {
106
+ var {
107
+ direction,
108
+ threshold,
109
+ disabled
110
+ } = options;
111
+ var [isDragging, setIsDragging] = React.useState(false);
112
+ var isHorizontal = direction === "left" || direction === "right" || direction === "horizontal";
113
+ var gestureRef = React.useRef(null);
114
+ var onDragMoveRef = React.useRef(options.onDragMove);
115
+ var onDragStartRef = React.useRef(options.onDragStart);
116
+ var onDismissRef = React.useRef(options.onDismiss);
117
+ var onCancelRef = React.useRef(options.onCancel);
118
+ onDragMoveRef.current = options.onDragMove;
119
+ onDragStartRef.current = options.onDragStart;
120
+ onDismissRef.current = options.onDismiss;
121
+ onCancelRef.current = options.onCancel;
122
+ var rnghEnabled = (0, import_native.getGestureHandler)().isEnabled;
123
+ var gesture = React.useMemo(function () {
124
+ if (!rnghEnabled || disabled) return null;
125
+ var {
126
+ Gesture
127
+ } = (0, import_native.getGestureHandler)().state;
128
+ if (!Gesture) return null;
129
+ var pan = Gesture.Pan().withRef(gestureRef).shouldCancelWhenOutside(false).runOnJS(true);
130
+ if (isHorizontal) {
131
+ pan.activeOffsetX([-10, 10]);
132
+ pan.failOffsetY([-20, 20]);
133
+ } else {
134
+ pan.activeOffsetY([-10, 10]);
135
+ pan.failOffsetX([-20, 20]);
136
+ }
137
+ pan.onStart(function () {
138
+ var _onDragStartRef_current;
139
+ setIsDragging(true);
140
+ (_onDragStartRef_current = onDragStartRef.current) === null || _onDragStartRef_current === void 0 ? void 0 : _onDragStartRef_current.call(onDragStartRef);
141
+ }).onChange(function (event) {
142
+ var {
143
+ offsetX,
144
+ offsetY
145
+ } = computeOffset(direction, event.translationX, event.translationY);
146
+ onDragMoveRef.current(offsetX, offsetY);
147
+ }).onEnd(function (event) {
148
+ var dx = event.translationX;
149
+ var dy = event.translationY;
150
+ var relevantDelta = isHorizontal ? dx : dy;
151
+ var relevantVelocity = isHorizontal ? Math.abs(event.velocityX / 1e3) : Math.abs(event.velocityY / 1e3);
152
+ var passedThreshold = Math.abs(relevantDelta) >= threshold;
153
+ var hasVelocity = relevantVelocity > VELOCITY_THRESHOLD;
154
+ var exitDirection = computeExitDirection(direction, dx, dy);
155
+ var shouldDismiss = exitDirection && (passedThreshold || hasVelocity);
156
+ setIsDragging(false);
157
+ if (shouldDismiss && exitDirection) {
158
+ onDismissRef.current(exitDirection, relevantVelocity);
159
+ } else {
160
+ onCancelRef.current();
161
+ }
162
+ }).onFinalize(function () {
163
+ setIsDragging(false);
164
+ });
165
+ return pan;
166
+ }, [disabled, direction, threshold, isHorizontal, rnghEnabled]);
167
+ var panResponder = React.useMemo(function () {
168
+ if (rnghEnabled || disabled) return null;
169
+ return import_react_native.PanResponder.create({
170
+ onMoveShouldSetPanResponder: function (_e, g) {
171
+ return shouldGrantGestureMove(direction, g.dx, g.dy);
172
+ },
173
+ onMoveShouldSetPanResponderCapture: function (_e, g) {
174
+ return shouldGrantGestureMove(direction, g.dx, g.dy);
175
+ },
176
+ onPanResponderTerminationRequest: function () {
177
+ return false;
178
+ },
179
+ onPanResponderGrant: function () {
180
+ var _onDragStartRef_current;
181
+ setIsDragging(true);
182
+ (_onDragStartRef_current = onDragStartRef.current) === null || _onDragStartRef_current === void 0 ? void 0 : _onDragStartRef_current.call(onDragStartRef);
183
+ },
184
+ onPanResponderMove: function (_e, g) {
185
+ var {
186
+ offsetX,
187
+ offsetY
188
+ } = computeOffset(direction, g.dx, g.dy);
189
+ onDragMoveRef.current(offsetX, offsetY);
190
+ },
191
+ onPanResponderRelease: function (_e, g) {
192
+ var {
193
+ dx,
194
+ dy,
195
+ vx,
196
+ vy
197
+ } = g;
198
+ var relevantDelta = isHorizontal ? dx : dy;
199
+ var relevantVelocity = isHorizontal ? Math.abs(vx) : Math.abs(vy);
200
+ var passedThreshold = Math.abs(relevantDelta) >= threshold;
201
+ var hasVelocity = relevantVelocity > VELOCITY_THRESHOLD;
202
+ var exitDirection = computeExitDirection(direction, dx, dy);
203
+ var shouldDismiss = exitDirection && (passedThreshold || hasVelocity);
204
+ setIsDragging(false);
205
+ if (shouldDismiss && exitDirection) {
206
+ onDismissRef.current(exitDirection, relevantVelocity);
207
+ } else {
208
+ onCancelRef.current();
209
+ }
210
+ },
211
+ onPanResponderTerminate: function () {
212
+ setIsDragging(false);
213
+ onCancelRef.current();
214
+ }
215
+ });
216
+ }, [disabled, direction, threshold, isHorizontal, rnghEnabled]);
217
+ var _panResponder_panHandlers;
218
+ return {
219
+ isDragging,
220
+ gestureHandlers: (_panResponder_panHandlers = panResponder === null || panResponder === void 0 ? void 0 : panResponder.panHandlers) !== null && _panResponder_panHandlers !== void 0 ? _panResponder_panHandlers : {},
221
+ gesture
222
+ };
223
+ }
224
+ //# sourceMappingURL=useAnimatedDragGesture.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useAnimatedDragGesture_native_exports","__export","useAnimatedDragGesture","module","exports","__toCommonJS","import_native","require","React","__toESM","import_react_native","VELOCITY_THRESHOLD","GESTURE_GRANT_THRESHOLD","resisted","delta","maxResist","arguments","length","pastBoundary","Math","abs","resistedDistance","sqrt","min","EXIT_DRAG_CAP","cappedExit","sign","overshoot","computeOffset","direction","dx","dy","offsetX","offsetY","computeExitDirection","shouldGrantGestureMove","dir","absDx","absDy","options","threshold","disabled","isDragging","setIsDragging","useState","isHorizontal","gestureRef","useRef","onDragMoveRef","onDragMove","onDragStartRef","onDragStart","onDismissRef","onDismiss","onCancelRef","onCancel","current","rnghEnabled","getGestureHandler","isEnabled","gesture","useMemo","Gesture","state","pan","Pan","withRef","shouldCancelWhenOutside","runOnJS","activeOffsetX","failOffsetY","activeOffsetY","failOffsetX","onStart","_onDragStartRef_current","call","onChange","event","translationX","translationY","onEnd","relevantDelta","relevantVelocity","velocityX","velocityY","passedThreshold","hasVelocity","exitDirection","shouldDismiss","onFinalize","panResponder","PanResponder","create","onMoveShouldSetPanResponder","_e","g","onMoveShouldSetPanResponderCapture","onPanResponderTerminationRequest","onPanResponderGrant","onPanResponderMove","onPanResponderRelease","vx","vy","onPanResponderTerminate","_panResponder_panHandlers","gestureHandlers","panHandlers"],"sources":["../../src/useAnimatedDragGesture.native.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,38 @@
1
+ import { isWeb } from "@hanzogui/constants";
2
+ import * as React from "react";
3
+ let cachedResult = null;
4
+ function getReducedMotion() {
5
+ if (cachedResult !== null) return cachedResult;
6
+ if (!isWeb) {
7
+ cachedResult = false;
8
+ return false;
9
+ }
10
+ if (typeof window === "undefined") {
11
+ return false;
12
+ }
13
+ cachedResult = window.matchMedia?.("(prefers-reduced-motion: reduce)")?.matches ?? false;
14
+ return cachedResult;
15
+ }
16
+ function useReducedMotion(forceReducedMotion) {
17
+ const [reducedMotion, setReducedMotion] = React.useState(() => forceReducedMotion ?? getReducedMotion());
18
+ React.useEffect(() => {
19
+ if (forceReducedMotion !== void 0) {
20
+ setReducedMotion(forceReducedMotion);
21
+ return;
22
+ }
23
+ if (!isWeb || typeof window === "undefined") return;
24
+ const mediaQuery = window.matchMedia?.("(prefers-reduced-motion: reduce)");
25
+ if (!mediaQuery) return;
26
+ const handleChange = e => {
27
+ cachedResult = e.matches;
28
+ setReducedMotion(e.matches);
29
+ };
30
+ mediaQuery.addEventListener?.("change", handleChange);
31
+ return () => {
32
+ mediaQuery.removeEventListener?.("change", handleChange);
33
+ };
34
+ }, [forceReducedMotion]);
35
+ return reducedMotion;
36
+ }
37
+ export { useReducedMotion };
38
+ //# sourceMappingURL=useReducedMotion.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["isWeb","React","cachedResult","getReducedMotion","window","matchMedia","matches","useReducedMotion","forceReducedMotion","reducedMotion","setReducedMotion","useState","useEffect","mediaQuery","handleChange","e","addEventListener","removeEventListener"],"sources":["../../src/useReducedMotion.ts"],"sourcesContent":[null],"mappings":"AAKA,SAASA,KAAA,QAAa;AACtB,YAAYC,KAAA,MAAW;AAEvB,IAAIC,YAAA,GAA+B;AAEnC,SAASC,iBAAA,EAA4B;EACnC,IAAID,YAAA,KAAiB,MAAM,OAAOA,YAAA;EAElC,IAAI,CAACF,KAAA,EAAO;IAGVE,YAAA,GAAe;IACf,OAAO;EACT;EAEA,IAAI,OAAOE,MAAA,KAAW,aAAa;IACjC,OAAO;EACT;EAEAF,YAAA,GAAeE,MAAA,CAAOC,UAAA,GAAa,kCAAkC,GAAGC,OAAA,IAAW;EACnF,OAAOJ,YAAA;AACT;AAEO,SAASK,iBAAiBC,kBAAA,EAAuC;EACtE,MAAM,CAACC,aAAA,EAAeC,gBAAgB,IAAIT,KAAA,CAAMU,QAAA,CAC9C,MAAMH,kBAAA,IAAsBL,gBAAA,CAAiB,CAC/C;EAEAF,KAAA,CAAMW,SAAA,CAAU,MAAM;IAEpB,IAAIJ,kBAAA,KAAuB,QAAW;MACpCE,gBAAA,CAAiBF,kBAAkB;MACnC;IACF;IAGA,IAAI,CAACR,KAAA,IAAS,OAAOI,MAAA,KAAW,aAAa;IAE7C,MAAMS,UAAA,GAAaT,MAAA,CAAOC,UAAA,GAAa,kCAAkC;IACzE,IAAI,CAACQ,UAAA,EAAY;IAEjB,MAAMC,YAAA,GAAgBC,CAAA,IAA2B;MAC/Cb,YAAA,GAAea,CAAA,CAAET,OAAA;MACjBI,gBAAA,CAAiBK,CAAA,CAAET,OAAO;IAC5B;IAEAO,UAAA,CAAWG,gBAAA,GAAmB,UAAUF,YAAY;IACpD,OAAO,MAAM;MACXD,UAAA,CAAWI,mBAAA,GAAsB,UAAUH,YAAY;IACzD;EACF,GAAG,CAACN,kBAAkB,CAAC;EAEvB,OAAOC,aAAA;AACT","ignoreList":[]}
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+
3
+ var __create = Object.create;
4
+ var __defProp = Object.defineProperty;
5
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
+ var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __getProtoOf = Object.getPrototypeOf;
8
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
9
+ var __export = (target, all) => {
10
+ for (var name in all) __defProp(target, name, {
11
+ get: all[name],
12
+ enumerable: true
13
+ });
14
+ };
15
+ var __copyProps = (to, from, except, desc) => {
16
+ if (from && typeof from === "object" || typeof from === "function") {
17
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
18
+ get: () => from[key],
19
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
20
+ });
21
+ }
22
+ return to;
23
+ };
24
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
25
+ // If the importer is in node compatibility mode or this is not an ESM
26
+ // file that has been converted to a CommonJS file using a Babel-
27
+ // compatible transform (i.e. "__esModule" has not been set), then set
28
+ // "default" to the CommonJS "module.exports" for node compatibility.
29
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
30
+ value: mod,
31
+ enumerable: true
32
+ }) : target, mod));
33
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
34
+ value: true
35
+ }), mod);
36
+ var useReducedMotion_exports = {};
37
+ __export(useReducedMotion_exports, {
38
+ useReducedMotion: () => useReducedMotion
39
+ });
40
+ module.exports = __toCommonJS(useReducedMotion_exports);
41
+ var import_constants = require("@hanzogui/constants");
42
+ var React = __toESM(require("react"), 1);
43
+ var cachedResult = null;
44
+ function getReducedMotion() {
45
+ var _window_matchMedia, _window_matchMedia1, _window;
46
+ if (cachedResult !== null) return cachedResult;
47
+ if (!import_constants.isWeb) {
48
+ cachedResult = false;
49
+ return false;
50
+ }
51
+ if (typeof window === "undefined") {
52
+ return false;
53
+ }
54
+ var _window_matchMedia_matches;
55
+ cachedResult = (_window_matchMedia_matches = (_window_matchMedia1 = (_window = window).matchMedia) === null || _window_matchMedia1 === void 0 ? void 0 : (_window_matchMedia = _window_matchMedia1.call(_window, "(prefers-reduced-motion: reduce)")) === null || _window_matchMedia === void 0 ? void 0 : _window_matchMedia.matches) !== null && _window_matchMedia_matches !== void 0 ? _window_matchMedia_matches : false;
56
+ return cachedResult;
57
+ }
58
+ function useReducedMotion(forceReducedMotion) {
59
+ var [reducedMotion, setReducedMotion] = React.useState(function () {
60
+ return forceReducedMotion !== null && forceReducedMotion !== void 0 ? forceReducedMotion : getReducedMotion();
61
+ });
62
+ React.useEffect(function () {
63
+ var _window_matchMedia, _window, _mediaQuery_addEventListener;
64
+ if (forceReducedMotion !== void 0) {
65
+ setReducedMotion(forceReducedMotion);
66
+ return;
67
+ }
68
+ if (!import_constants.isWeb || typeof window === "undefined") return;
69
+ var mediaQuery = (_window_matchMedia = (_window = window).matchMedia) === null || _window_matchMedia === void 0 ? void 0 : _window_matchMedia.call(_window, "(prefers-reduced-motion: reduce)");
70
+ if (!mediaQuery) return;
71
+ var handleChange = function (e) {
72
+ cachedResult = e.matches;
73
+ setReducedMotion(e.matches);
74
+ };
75
+ (_mediaQuery_addEventListener = mediaQuery.addEventListener) === null || _mediaQuery_addEventListener === void 0 ? void 0 : _mediaQuery_addEventListener.call(mediaQuery, "change", handleChange);
76
+ return function () {
77
+ var _mediaQuery_removeEventListener;
78
+ (_mediaQuery_removeEventListener = mediaQuery.removeEventListener) === null || _mediaQuery_removeEventListener === void 0 ? void 0 : _mediaQuery_removeEventListener.call(mediaQuery, "change", handleChange);
79
+ };
80
+ }, [forceReducedMotion]);
81
+ return reducedMotion;
82
+ }
83
+ //# sourceMappingURL=useReducedMotion.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["__create","Object","create","__defProp","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__getProtoOf","getPrototypeOf","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toESM","mod","isNodeMode","__esModule","value","__toCommonJS","useReducedMotion_exports","useReducedMotion","module","exports","import_constants","require","React","cachedResult","getReducedMotion","_window_matchMedia","_window_matchMedia1","_window"],"sources":["../../src/useReducedMotion.ts"],"sourcesContent":[null],"mappings":"AAKA,YAAS;;AACT,IAAAA,QAAY,GAAAC,MAAA,CAAAC,MAAW;AAEvB,IAAIC,SAAA,GAAAF,MAA+B,CAAAG,cAAA;AAEnC,IAAAC,gBAAS,GAAAJ,MAA4B,CAAAK,wBAAA;AACnC,IAAAC,iBAAI,GAAiBN,MAAM,CAAAO,mBAAO;AAElC,IAAAC,YAAY,GAAAR,MAAA,CAAAS,cAAA;AAGV,IAAAC,YAAA,GAAeV,MAAA,CAAAW,SAAA,CAAAC,cAAA;AACf,IAAAC,QAAO,GAAAA,CAAAC,MAAA,EAAAC,GAAA;EACT,SAAAC,IAAA,IAAAD,GAAA,EAEAb,SAAW,CAAAY,MAAA,EAAAE,IAAW;IAAAC,GAAA,EAAAF,GAAa,CAAAC,IAAA;IAAAE,UAAA;EAAA;AACjC;AAAO,IACTC,WAAA,GAAAA,CAAAC,EAAA,EAAAC,IAAA,EAAAC,MAAA,EAAAC,IAAA;EAEA,IAAAF,IAAA,WAAeA,IAAO,aAAa,WAAAA,IAAA;IACnC,KAAO,IAAAG,GAAA,IAAAlB,iBAAA,CAAAe,IAAA,GACT,KAAAX,YAAA,CAAAe,IAAA,CAAAL,EAAA,EAAAI,GAAA,KAAAA,GAAA,KAAAF,MAAA,EAEOpB,SAAS,CAAAkB,EAAA,EAAAI,GAAA,EAAiB;MAAAP,GAAA,EAAAA,CAAA,KAAAI,IAAA,CAAAG,GAAuC;MAAAN,UAAA,IAAAK,IAAA,GAAAnB,gBAAA,CAAAiB,IAAA,EAAAG,GAAA,MAAAD,IAAA,CAAAL;IAAA;EACtE;EAAgD,OAC9CE,EAAM;AAAuC;AAG/C,IAAAM,OAAM,GAAAA,CAAAC,GAAU,EAAAC,UAAM,EAAAd,MAAA,MAAAA,MAAA,GAAAa,GAAA,WAAA5B,QAAA,CAAAS,YAAA,CAAAmB,GAAA,SAAAR,WAAA;AAEpB;AACE;AACA;AAAA;AAIFS,UAAK,KAAAD,GAAS,KAAOA,GAAA,CAAAE,UAAW,GAAA3B,SAAa,CAAAY,MAAA;EAAAgB,KAAA,EAAAH,GAAA;EAAAT,UAAA;AAAA,KAAAJ,MAAA,EAE7Ca,GACA;AAEA,IAAAI,YAAM,GAAAJ,GAAA,IAAgBR,WAA2B,CAAAjB,SAAA;EAAA4B,KAAA;AAAA,IAAAH,GAAA;AAC/C,IAAAK,wBAAiB;AACjBnB,QAAA,CAAAmB,wBAA0B;EAAAC,gBAC5B,EAAAA,CAAA,KAAAA;AAEA;AACAC,MAAA,CAAAC,OAAO,GAAMJ,YAAA,CAAAC,wBAAA;AACX,IAAAI,gBAAW,GAAAC,OAAA,sBAAgC;AAAY,IACzDC,KAAA,GAAAZ,OAAA,CAAAW,OAAA;AAAA,IACFE,YAAI;AAEJ,SAAOC,iBAAA;EACT,IAAAC,kBAAA,EAAAC,mBAAA,EAAAC,OAAA","ignoreList":[]}