@hanzogui/toast 7.0.0 → 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 (268) hide show
  1. package/dist/cjs/Toast.cjs +178 -0
  2. package/dist/cjs/Toast.native.js +181 -0
  3. package/dist/cjs/Toast.native.js.map +1 -0
  4. package/dist/cjs/ToastAnnounce.cjs +103 -0
  5. package/dist/cjs/ToastAnnounce.native.js +111 -0
  6. package/dist/cjs/ToastAnnounce.native.js.map +1 -0
  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 +119 -0
  11. package/dist/cjs/ToastImperative.native.js +130 -0
  12. package/dist/cjs/ToastImperative.native.js.map +1 -0
  13. package/dist/cjs/ToastImpl.cjs +354 -0
  14. package/dist/cjs/ToastImpl.native.js +364 -0
  15. package/dist/cjs/ToastImpl.native.js.map +1 -0
  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 +49 -0
  20. package/dist/cjs/ToastPortal.native.js +52 -0
  21. package/dist/cjs/ToastPortal.native.js.map +1 -0
  22. package/dist/cjs/ToastProvider.cjs +150 -0
  23. package/dist/cjs/ToastProvider.native.js +161 -0
  24. package/dist/cjs/ToastProvider.native.js.map +1 -0
  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 +319 -0
  29. package/dist/cjs/ToastViewport.native.js +343 -0
  30. package/dist/cjs/ToastViewport.native.js.map +1 -0
  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 +30 -0
  35. package/dist/cjs/constants.native.js +33 -0
  36. package/dist/cjs/constants.native.js.map +1 -0
  37. package/dist/cjs/createNativeToast.cjs +59 -0
  38. package/dist/cjs/createNativeToast.native.js +60 -0
  39. package/dist/cjs/createNativeToast.native.js.map +1 -0
  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 +20 -0
  44. package/dist/cjs/index.native.js +23 -0
  45. package/dist/cjs/index.native.js.map +1 -0
  46. package/dist/cjs/types.cjs +18 -0
  47. package/dist/cjs/types.native.js +21 -0
  48. package/dist/cjs/types.native.js.map +1 -0
  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 +137 -0
  62. package/dist/esm/Toast.mjs.map +1 -0
  63. package/dist/esm/Toast.native.js +137 -0
  64. package/dist/esm/Toast.native.js.map +1 -0
  65. package/dist/esm/ToastAnnounce.mjs +66 -0
  66. package/dist/esm/ToastAnnounce.mjs.map +1 -0
  67. package/dist/esm/ToastAnnounce.native.js +71 -0
  68. package/dist/esm/ToastAnnounce.native.js.map +1 -0
  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 +80 -0
  74. package/dist/esm/ToastImperative.mjs.map +1 -0
  75. package/dist/esm/ToastImperative.native.js +88 -0
  76. package/dist/esm/ToastImperative.native.js.map +1 -0
  77. package/dist/esm/ToastImpl.mjs +316 -0
  78. package/dist/esm/ToastImpl.mjs.map +1 -0
  79. package/dist/esm/ToastImpl.native.js +323 -0
  80. package/dist/esm/ToastImpl.native.js.map +1 -0
  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 +24 -0
  86. package/dist/esm/ToastPortal.mjs.map +1 -0
  87. package/dist/esm/ToastPortal.native.js +24 -0
  88. package/dist/esm/ToastPortal.native.js.map +1 -0
  89. package/dist/esm/ToastProvider.mjs +110 -0
  90. package/dist/esm/ToastProvider.mjs.map +1 -0
  91. package/dist/esm/ToastProvider.native.js +118 -0
  92. package/dist/esm/ToastProvider.native.js.map +1 -0
  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 +280 -0
  98. package/dist/esm/ToastViewport.mjs.map +1 -0
  99. package/dist/esm/ToastViewport.native.js +301 -0
  100. package/dist/esm/ToastViewport.native.js.map +1 -0
  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 +4 -0
  106. package/dist/esm/constants.mjs.map +1 -0
  107. package/dist/esm/constants.native.js +4 -0
  108. package/dist/esm/constants.native.js.map +1 -0
  109. package/dist/esm/createNativeToast.mjs +32 -0
  110. package/dist/esm/createNativeToast.mjs.map +1 -0
  111. package/dist/esm/createNativeToast.native.js +30 -0
  112. package/dist/esm/createNativeToast.native.js.map +1 -0
  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/index.js +2 -0
  118. package/dist/esm/index.js.map +1 -0
  119. package/dist/esm/index.mjs +2 -0
  120. package/dist/esm/index.mjs.map +1 -0
  121. package/dist/esm/index.native.js +2 -0
  122. package/dist/esm/index.native.js.map +1 -0
  123. package/dist/esm/types.mjs +2 -0
  124. package/dist/esm/types.mjs.map +1 -0
  125. package/dist/esm/types.native.js +2 -0
  126. package/dist/esm/types.native.js.map +1 -0
  127. package/dist/esm/useAnimatedDragGesture.mjs +178 -0
  128. package/dist/esm/useAnimatedDragGesture.mjs.map +1 -0
  129. package/dist/esm/useAnimatedDragGesture.native.js +185 -0
  130. package/dist/esm/useAnimatedDragGesture.native.js.map +1 -0
  131. package/dist/esm/useReducedMotion.mjs +38 -0
  132. package/dist/esm/useReducedMotion.mjs.map +1 -0
  133. package/dist/esm/useReducedMotion.native.js +44 -0
  134. package/dist/esm/useReducedMotion.native.js.map +1 -0
  135. package/dist/esm/useToastAnimations.mjs +258 -0
  136. package/dist/esm/useToastAnimations.mjs.map +1 -0
  137. package/dist/esm/useToastAnimations.native.js +265 -0
  138. package/dist/esm/useToastAnimations.native.js.map +1 -0
  139. package/dist/esm/v2.mjs +6 -0
  140. package/dist/esm/v2.mjs.map +1 -0
  141. package/dist/esm/v2.native.js +6 -0
  142. package/dist/esm/v2.native.js.map +1 -0
  143. package/dist/jsx/Toast.mjs +137 -0
  144. package/dist/jsx/Toast.mjs.map +1 -0
  145. package/dist/jsx/Toast.native.js +181 -0
  146. package/dist/jsx/Toast.native.js.map +1 -0
  147. package/dist/jsx/ToastAnnounce.mjs +66 -0
  148. package/dist/jsx/ToastAnnounce.mjs.map +1 -0
  149. package/dist/jsx/ToastAnnounce.native.js +111 -0
  150. package/dist/jsx/ToastAnnounce.native.js.map +1 -0
  151. package/dist/jsx/ToastComposable.mjs +895 -0
  152. package/dist/jsx/ToastComposable.mjs.map +1 -0
  153. package/dist/jsx/ToastComposable.native.js +1025 -0
  154. package/dist/jsx/ToastComposable.native.js.map +1 -0
  155. package/dist/jsx/ToastImperative.mjs +80 -0
  156. package/dist/jsx/ToastImperative.mjs.map +1 -0
  157. package/dist/jsx/ToastImperative.native.js +130 -0
  158. package/dist/jsx/ToastImperative.native.js.map +1 -0
  159. package/dist/jsx/ToastImpl.mjs +316 -0
  160. package/dist/jsx/ToastImpl.mjs.map +1 -0
  161. package/dist/jsx/ToastImpl.native.js +364 -0
  162. package/dist/jsx/ToastImpl.native.js.map +1 -0
  163. package/dist/jsx/ToastItemFrame.mjs +114 -0
  164. package/dist/jsx/ToastItemFrame.mjs.map +1 -0
  165. package/dist/jsx/ToastItemFrame.native.js +148 -0
  166. package/dist/jsx/ToastItemFrame.native.js.map +1 -0
  167. package/dist/jsx/ToastPortal.mjs +24 -0
  168. package/dist/jsx/ToastPortal.mjs.map +1 -0
  169. package/dist/jsx/ToastPortal.native.js +52 -0
  170. package/dist/jsx/ToastPortal.native.js.map +1 -0
  171. package/dist/jsx/ToastProvider.mjs +110 -0
  172. package/dist/jsx/ToastProvider.mjs.map +1 -0
  173. package/dist/jsx/ToastProvider.native.js +161 -0
  174. package/dist/jsx/ToastProvider.native.js.map +1 -0
  175. package/dist/jsx/ToastState.mjs +285 -0
  176. package/dist/jsx/ToastState.mjs.map +1 -0
  177. package/dist/jsx/ToastState.native.js +324 -0
  178. package/dist/jsx/ToastState.native.js.map +1 -0
  179. package/dist/jsx/ToastViewport.mjs +280 -0
  180. package/dist/jsx/ToastViewport.mjs.map +1 -0
  181. package/dist/jsx/ToastViewport.native.js +343 -0
  182. package/dist/jsx/ToastViewport.native.js.map +1 -0
  183. package/dist/jsx/Toaster.mjs +51 -0
  184. package/dist/jsx/Toaster.mjs.map +1 -0
  185. package/dist/jsx/Toaster.native.js +91 -0
  186. package/dist/jsx/Toaster.native.js.map +1 -0
  187. package/dist/jsx/constants.mjs +4 -0
  188. package/dist/jsx/constants.mjs.map +1 -0
  189. package/dist/jsx/constants.native.js +33 -0
  190. package/dist/jsx/constants.native.js.map +1 -0
  191. package/dist/jsx/createNativeToast.mjs +32 -0
  192. package/dist/jsx/createNativeToast.mjs.map +1 -0
  193. package/dist/jsx/createNativeToast.native.js +60 -0
  194. package/dist/jsx/createNativeToast.native.js.map +1 -0
  195. package/dist/jsx/dispatchNativeToast.mjs +22 -0
  196. package/dist/jsx/dispatchNativeToast.mjs.map +1 -0
  197. package/dist/jsx/dispatchNativeToast.native.js +52 -0
  198. package/dist/jsx/dispatchNativeToast.native.js.map +1 -0
  199. package/dist/jsx/index.js +2 -0
  200. package/dist/jsx/index.js.map +1 -0
  201. package/dist/jsx/index.mjs +2 -0
  202. package/dist/jsx/index.mjs.map +1 -0
  203. package/dist/jsx/index.native.js +23 -0
  204. package/dist/jsx/index.native.js.map +1 -0
  205. package/dist/jsx/types.mjs +2 -0
  206. package/dist/jsx/types.mjs.map +1 -0
  207. package/dist/jsx/types.native.js +21 -0
  208. package/dist/jsx/types.native.js.map +1 -0
  209. package/dist/jsx/useAnimatedDragGesture.mjs +178 -0
  210. package/dist/jsx/useAnimatedDragGesture.mjs.map +1 -0
  211. package/dist/jsx/useAnimatedDragGesture.native.js +224 -0
  212. package/dist/jsx/useAnimatedDragGesture.native.js.map +1 -0
  213. package/dist/jsx/useReducedMotion.mjs +38 -0
  214. package/dist/jsx/useReducedMotion.mjs.map +1 -0
  215. package/dist/jsx/useReducedMotion.native.js +83 -0
  216. package/dist/jsx/useReducedMotion.native.js.map +1 -0
  217. package/dist/jsx/useToastAnimations.mjs +258 -0
  218. package/dist/jsx/useToastAnimations.mjs.map +1 -0
  219. package/dist/jsx/useToastAnimations.native.js +304 -0
  220. package/dist/jsx/useToastAnimations.native.js.map +1 -0
  221. package/dist/jsx/v2.mjs +6 -0
  222. package/dist/jsx/v2.mjs.map +1 -0
  223. package/dist/jsx/v2.native.js +39 -0
  224. package/dist/jsx/v2.native.js.map +1 -0
  225. package/package.json +26 -24
  226. package/src/Toast.tsx +5 -5
  227. package/src/ToastAnnounce.tsx +2 -2
  228. package/src/ToastComposable.tsx +8 -8
  229. package/src/ToastImpl.tsx +6 -6
  230. package/src/ToastItemFrame.tsx +4 -4
  231. package/src/ToastProvider.tsx +5 -5
  232. package/src/ToastViewport.tsx +7 -7
  233. package/src/Toaster.tsx +2 -2
  234. package/src/useToastAnimations.ts +3 -3
  235. package/types/Toast.d.ts +14 -14
  236. package/types/Toast.d.ts.map +1 -0
  237. package/types/ToastAnnounce.d.ts +3 -3
  238. package/types/ToastAnnounce.d.ts.map +1 -0
  239. package/types/ToastComposable.d.ts +15 -15
  240. package/types/ToastComposable.d.ts.map +1 -0
  241. package/types/ToastImperative.d.ts +1 -1
  242. package/types/ToastImperative.d.ts.map +1 -0
  243. package/types/ToastImpl.d.ts +4 -4
  244. package/types/ToastImpl.d.ts.map +1 -0
  245. package/types/ToastItemFrame.d.ts +5 -5
  246. package/types/ToastItemFrame.d.ts.map +1 -0
  247. package/types/ToastPortal.d.ts +1 -1
  248. package/types/ToastPortal.d.ts.map +1 -0
  249. package/types/ToastProvider.d.ts +7 -7
  250. package/types/ToastProvider.d.ts.map +1 -0
  251. package/types/ToastState.d.ts.map +1 -0
  252. package/types/ToastViewport.d.ts +5 -5
  253. package/types/ToastViewport.d.ts.map +1 -0
  254. package/types/Toaster.d.ts +2 -2
  255. package/types/Toaster.d.ts.map +1 -0
  256. package/types/constants.d.ts.map +1 -0
  257. package/types/createNativeToast.d.ts.map +1 -0
  258. package/types/createNativeToast.native.d.ts.map +1 -0
  259. package/types/dispatchNativeToast.d.ts.map +1 -0
  260. package/types/index.d.ts.map +1 -0
  261. package/types/types.d.ts.map +1 -0
  262. package/types/useAnimatedDragGesture.d.ts.map +1 -0
  263. package/types/useAnimatedDragGesture.native.d.ts.map +1 -0
  264. package/types/useReducedMotion.d.ts.map +1 -0
  265. package/types/useToastAnimations.d.ts.map +1 -0
  266. package/types/v2.d.ts.map +1 -0
  267. package/v2/index.cjs +1 -1
  268. package/v2/index.native.cjs +1 -1
@@ -0,0 +1,214 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all) __defProp(target, name, {
9
+ get: all[name],
10
+ enumerable: true
11
+ });
12
+ };
13
+ var __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from === "object" || typeof from === "function") {
15
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
16
+ get: () => from[key],
17
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
18
+ });
19
+ }
20
+ return to;
21
+ };
22
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
23
+ // If the importer is in node compatibility mode or this is not an ESM
24
+ // file that has been converted to a CommonJS file using a Babel-
25
+ // compatible transform (i.e. "__esModule" has not been set), then set
26
+ // "default" to the CommonJS "module.exports" for node compatibility.
27
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
28
+ value: mod,
29
+ enumerable: true
30
+ }) : target, mod));
31
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
32
+ value: true
33
+ }), mod);
34
+ var useAnimatedDragGesture_exports = {};
35
+ __export(useAnimatedDragGesture_exports, {
36
+ useAnimatedDragGesture: () => useAnimatedDragGesture
37
+ });
38
+ module.exports = __toCommonJS(useAnimatedDragGesture_exports);
39
+ var React = __toESM(require("react"), 1);
40
+ const VELOCITY_THRESHOLD = 0.11;
41
+ function resisted(delta, maxResist = 25) {
42
+ if (delta >= 0) return delta;
43
+ const pastBoundary = Math.abs(delta);
44
+ const resistedDistance = Math.sqrt(pastBoundary) * 2;
45
+ return -Math.min(resistedDistance, maxResist);
46
+ }
47
+ const EXIT_DRAG_CAP = 80;
48
+ function cappedExit(delta) {
49
+ if (Math.abs(delta) <= EXIT_DRAG_CAP) return delta;
50
+ const sign = delta > 0 ? 1 : -1;
51
+ const overshoot = Math.abs(delta) - EXIT_DRAG_CAP;
52
+ return sign * (EXIT_DRAG_CAP + Math.sqrt(overshoot) * 2);
53
+ }
54
+ function useAnimatedDragGesture(options) {
55
+ const {
56
+ direction,
57
+ threshold,
58
+ disabled,
59
+ expanded,
60
+ onDragMove,
61
+ onDragStart,
62
+ onDismiss,
63
+ onCancel
64
+ } = options;
65
+ const [isDragging, setIsDragging] = React.useState(false);
66
+ const dragStartRef = React.useRef(null);
67
+ const lockedDirectionRef = React.useRef(null);
68
+ const captureElementRef = React.useRef(null);
69
+ const isHorizontal = direction === "left" || direction === "right" || direction === "horizontal";
70
+ const isVertical = direction === "up" || direction === "down" || direction === "vertical";
71
+ const preventSelectRef = React.useRef(null);
72
+ function startPreventingSelection() {
73
+ if (typeof document === "undefined") return;
74
+ window.getSelection()?.removeAllRanges();
75
+ const handler = e => e.preventDefault();
76
+ preventSelectRef.current = handler;
77
+ document.addEventListener("selectstart", handler, true);
78
+ }
79
+ function stopPreventingSelection() {
80
+ if (preventSelectRef.current) {
81
+ document.removeEventListener("selectstart", preventSelectRef.current, true);
82
+ preventSelectRef.current = null;
83
+ }
84
+ }
85
+ const cleanup = React.useCallback(() => {
86
+ dragStartRef.current = null;
87
+ lockedDirectionRef.current = null;
88
+ setIsDragging(false);
89
+ stopPreventingSelection();
90
+ }, []);
91
+ React.useEffect(() => {
92
+ return () => {
93
+ if (dragStartRef.current) {
94
+ if (captureElementRef.current && dragStartRef.current.pointerId) {
95
+ try {
96
+ captureElementRef.current.releasePointerCapture(dragStartRef.current.pointerId);
97
+ } catch {}
98
+ }
99
+ cleanup();
100
+ }
101
+ };
102
+ }, [cleanup]);
103
+ const handlePointerDown = React.useCallback(event => {
104
+ if (disabled) return;
105
+ if (event.button !== 0) return;
106
+ const target = event.target;
107
+ if (target.closest('button, a, input, textarea, select, [role="button"]')) {
108
+ return;
109
+ }
110
+ const hasSelection = (window.getSelection()?.toString().length ?? 0) > 0;
111
+ if (hasSelection) return;
112
+ const captureElement = event.currentTarget;
113
+ captureElementRef.current = captureElement;
114
+ captureElement.setPointerCapture(event.pointerId);
115
+ dragStartRef.current = {
116
+ startX: event.clientX,
117
+ startY: event.clientY,
118
+ startTime: Date.now(),
119
+ pointerId: event.pointerId
120
+ };
121
+ startPreventingSelection();
122
+ setIsDragging(true);
123
+ onDragStart?.();
124
+ }, [disabled, onDragStart]);
125
+ const handlePointerMove = React.useCallback(event => {
126
+ if (!dragStartRef.current || disabled) return;
127
+ const deltaX = event.clientX - dragStartRef.current.startX;
128
+ const deltaY = event.clientY - dragStartRef.current.startY;
129
+ if (!lockedDirectionRef.current && (Math.abs(deltaX) > 1 || Math.abs(deltaY) > 1)) {
130
+ lockedDirectionRef.current = Math.abs(deltaX) > Math.abs(deltaY) ? "x" : "y";
131
+ }
132
+ let offsetX = 0;
133
+ let offsetY = 0;
134
+ if (direction === "right") {
135
+ offsetX = deltaX > 0 ? cappedExit(deltaX) : resisted(deltaX);
136
+ } else if (direction === "left") {
137
+ offsetX = deltaX < 0 ? cappedExit(deltaX) : -resisted(-deltaX);
138
+ } else if (direction === "down") {
139
+ offsetY = deltaY > 0 ? cappedExit(deltaY) : resisted(deltaY);
140
+ } else if (direction === "up") {
141
+ offsetY = deltaY < 0 ? cappedExit(deltaY) : -resisted(-deltaY);
142
+ } else if (direction === "horizontal") {
143
+ offsetX = cappedExit(deltaX);
144
+ } else if (direction === "vertical") {
145
+ offsetY = cappedExit(deltaY);
146
+ }
147
+ onDragMove(offsetX, offsetY);
148
+ }, [disabled, direction, expanded, isHorizontal, isVertical, onDragMove]);
149
+ const handlePointerUp = React.useCallback(event => {
150
+ if (!dragStartRef.current || disabled) return;
151
+ const deltaX = event.clientX - dragStartRef.current.startX;
152
+ const deltaY = event.clientY - dragStartRef.current.startY;
153
+ const timeTaken = Date.now() - dragStartRef.current.startTime;
154
+ const velocityX = Math.abs(deltaX) / timeTaken;
155
+ const velocityY = Math.abs(deltaY) / timeTaken;
156
+ const lockedDirection = lockedDirectionRef.current;
157
+ const isLockedToWrongAxis = lockedDirection === "y" && isHorizontal || lockedDirection === "x" && isVertical;
158
+ const relevantDelta = isHorizontal ? deltaX : deltaY;
159
+ const relevantVelocity = isHorizontal ? velocityX : velocityY;
160
+ const passedThreshold = Math.abs(relevantDelta) >= threshold;
161
+ const hasVelocity = relevantVelocity > VELOCITY_THRESHOLD;
162
+ let exitDirection = null;
163
+ if (!isLockedToWrongAxis) {
164
+ if (direction === "right" && deltaX > 0) exitDirection = "right";else if (direction === "left" && deltaX < 0) exitDirection = "left";else if (direction === "horizontal") {
165
+ if (Math.abs(deltaX) > Math.abs(deltaY)) {
166
+ exitDirection = deltaX > 0 ? "right" : "left";
167
+ }
168
+ } else if (direction === "down" && deltaY > 0) exitDirection = "down";else if (direction === "up" && deltaY < 0) exitDirection = "up";else if (direction === "vertical") {
169
+ if (Math.abs(deltaY) > Math.abs(deltaX)) {
170
+ exitDirection = deltaY > 0 ? "down" : "up";
171
+ }
172
+ }
173
+ }
174
+ const shouldDismiss = exitDirection && (passedThreshold || hasVelocity);
175
+ if (captureElementRef.current) {
176
+ try {
177
+ captureElementRef.current.releasePointerCapture(event.pointerId);
178
+ } catch {}
179
+ }
180
+ cleanup();
181
+ if (shouldDismiss && exitDirection) {
182
+ onDismiss(exitDirection, relevantVelocity);
183
+ } else {
184
+ onCancel();
185
+ }
186
+ }, [disabled, direction, threshold, isHorizontal, isVertical, onDismiss, onCancel, cleanup]);
187
+ const handlePointerCancel = React.useCallback(event => {
188
+ if (captureElementRef.current) {
189
+ try {
190
+ captureElementRef.current.releasePointerCapture(event.pointerId);
191
+ } catch {}
192
+ }
193
+ cleanup();
194
+ onCancel();
195
+ }, [onCancel, cleanup]);
196
+ const handleLostPointerCapture = React.useCallback(() => {
197
+ if (dragStartRef.current) {
198
+ cleanup();
199
+ onCancel();
200
+ }
201
+ }, [onCancel, cleanup]);
202
+ const gestureHandlers = {
203
+ onPointerDown: handlePointerDown,
204
+ onPointerMove: handlePointerMove,
205
+ onPointerUp: handlePointerUp,
206
+ onPointerCancel: handlePointerCancel,
207
+ onLostPointerCapture: handleLostPointerCapture
208
+ };
209
+ return {
210
+ isDragging,
211
+ gestureHandlers,
212
+ gesture: null
213
+ };
214
+ }
@@ -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,74 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all) __defProp(target, name, {
9
+ get: all[name],
10
+ enumerable: true
11
+ });
12
+ };
13
+ var __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from === "object" || typeof from === "function") {
15
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
16
+ get: () => from[key],
17
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
18
+ });
19
+ }
20
+ return to;
21
+ };
22
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
23
+ // If the importer is in node compatibility mode or this is not an ESM
24
+ // file that has been converted to a CommonJS file using a Babel-
25
+ // compatible transform (i.e. "__esModule" has not been set), then set
26
+ // "default" to the CommonJS "module.exports" for node compatibility.
27
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
28
+ value: mod,
29
+ enumerable: true
30
+ }) : target, mod));
31
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
32
+ value: true
33
+ }), mod);
34
+ var useReducedMotion_exports = {};
35
+ __export(useReducedMotion_exports, {
36
+ useReducedMotion: () => useReducedMotion
37
+ });
38
+ module.exports = __toCommonJS(useReducedMotion_exports);
39
+ var import_constants = require("@hanzogui/constants");
40
+ var React = __toESM(require("react"), 1);
41
+ let cachedResult = null;
42
+ function getReducedMotion() {
43
+ if (cachedResult !== null) return cachedResult;
44
+ if (!import_constants.isWeb) {
45
+ cachedResult = false;
46
+ return false;
47
+ }
48
+ if (typeof window === "undefined") {
49
+ return false;
50
+ }
51
+ cachedResult = window.matchMedia?.("(prefers-reduced-motion: reduce)")?.matches ?? false;
52
+ return cachedResult;
53
+ }
54
+ function useReducedMotion(forceReducedMotion) {
55
+ const [reducedMotion, setReducedMotion] = React.useState(() => forceReducedMotion ?? getReducedMotion());
56
+ React.useEffect(() => {
57
+ if (forceReducedMotion !== void 0) {
58
+ setReducedMotion(forceReducedMotion);
59
+ return;
60
+ }
61
+ if (!import_constants.isWeb || typeof window === "undefined") return;
62
+ const mediaQuery = window.matchMedia?.("(prefers-reduced-motion: reduce)");
63
+ if (!mediaQuery) return;
64
+ const handleChange = e => {
65
+ cachedResult = e.matches;
66
+ setReducedMotion(e.matches);
67
+ };
68
+ mediaQuery.addEventListener?.("change", handleChange);
69
+ return () => {
70
+ mediaQuery.removeEventListener?.("change", handleChange);
71
+ };
72
+ }, [forceReducedMotion]);
73
+ return reducedMotion;
74
+ }
@@ -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":["__toCommonJS","mod","__copyProps","__defProp","value","useReducedMotion_exports","__export","useReducedMotion","module","exports","import_constants","require","React","__toESM","cachedResult","getReducedMotion","_window_matchMedia","_window_matchMedia1","_window","isWeb","window","_window_matchMedia_matches","matchMedia","call","matches","forceReducedMotion","reducedMotion","setReducedMotion","useState","useEffect","_mediaQuery_addEventListener","mediaQuery","handleChange","e","addEventListener","_mediaQuery_removeEventListener"],"sources":["../../src/useReducedMotion.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,wBAAA;AAAAC,QAAA,CAAAD,wBAAA;EAAAE,gBAAA,EAAAA,CAAA,KAAAA;AAAA;AAKAC,MAAA,CAAAC,OAAA,GAAAT,YAAsB,CAAAK,wBAAA;AACtB,IAAAK,gBAAuB,GAAAC,OAAA;AAEvB,IAAIC,KAAA,GAAAC,OAA+B,CAAAF,OAAA;AAEnC,IAAAG,YAAS;AACP,SAAIC,gBAAiBA,CAAA,EAAM;EAE3B,IAAIC,kBAAC,EAAAC,mBAAO,EAAAC,OAAA;EAGV,IAAAJ,YAAA,KAAe,aAAAA,YAAA;EACf,KAAAJ,gBAAO,CAAAS,KAAA;IACTL,YAAA;IAEA,OAAI,KAAO;EACT;EACF,WAAAM,MAAA;IAEA;EACA;EACF,IAAAC,0BAAA;EAEOP,YAAS,IAAAO,0BAAiB,GAAuC,CAAAJ,mBAAA,IAAAC,OAAA,GAAAE,MAAA,EAAAE,UAAA,cAAAL,mBAAA,wBAAAD,kBAAA,GAAAC,mBAAA,CAAAM,IAAA,CAAAL,OAAA,mDAAAF,kBAAA,uBAAAA,kBAAA,CAAAQ,OAAA,cAAAH,0BAAA,cAAAA,0BAAA;EACtE,OAAOP,YAAA;AAAyC;AACD,SAC/CP,iBAAAkB,kBAAA;EAEA,KAAAC,aAAgB,EAAAC,gBAAM,IAAAf,KAAA,CAAAgB,QAAA;IAEpB,OAAIH,kBAAA,KAAuB,QAAWA,kBAAA,cAAAA,kBAAA,GAAAV,gBAAA;EACpC;EACAH,KAAA,CAAAiB,SAAA;IACF,IAAAb,kBAAA,EAAAE,OAAA,EAAAY,4BAAA;IAGA,IAAIL,kBAAC,UAAS;MAEdE,gBAAM,CAAaF,kBAAO;MAC1B;IAEA;IACE,KAAAf,gBAAiB,CAAAS,KAAA,WAAAC,MAAA;IACjB,IAAAW,UAAA,IAAAf,kBAA0B,IAAAE,OAAA,GAAAE,MAAA,EAAAE,UAAA,cAAAN,kBAAA,uBAAAA,kBAAA,CAAAO,IAAA,CAAAL,OAAA;IAC5B,KAAAa,UAAA;IAEA,IAAAC,YAAW,YAAAA,CAAAC,CAAA,EAAmB;MAC9BnB,YAAa,GAAAmB,CAAA,CAAAT,OAAA;MACXG,gBAAW,CAAAM,CAAA,CAAAT,OAAA;IACb;IACF,CAAGM,4BAAoB,GAAAC,UAAA,CAAAG,gBAAA,cAAAJ,4BAAA,uBAAAA,4BAAA,CAAAP,IAAA,CAAAQ,UAAA,YAAAC,YAAA;IAEvB,OAAO;MACT,IAAAG,+BAAA","ignoreList":[]}