@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,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,185 @@
1
+ import { getGestureHandler } from "@hanzogui/native";
2
+ import * as React from "react";
3
+ import { PanResponder } from "react-native";
4
+ var VELOCITY_THRESHOLD = 0.11;
5
+ var GESTURE_GRANT_THRESHOLD = 10;
6
+ function resisted(delta) {
7
+ var maxResist = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 25;
8
+ if (delta >= 0) return delta;
9
+ var pastBoundary = Math.abs(delta);
10
+ var resistedDistance = Math.sqrt(pastBoundary) * 2;
11
+ return -Math.min(resistedDistance, maxResist);
12
+ }
13
+ var EXIT_DRAG_CAP = 80;
14
+ function cappedExit(delta) {
15
+ if (Math.abs(delta) <= EXIT_DRAG_CAP) return delta;
16
+ var sign = delta > 0 ? 1 : -1;
17
+ var overshoot = Math.abs(delta) - EXIT_DRAG_CAP;
18
+ return sign * (EXIT_DRAG_CAP + Math.sqrt(overshoot) * 2);
19
+ }
20
+ function computeOffset(direction, dx, dy) {
21
+ var offsetX = 0;
22
+ var offsetY = 0;
23
+ if (direction === "right") {
24
+ offsetX = dx > 0 ? cappedExit(dx) : resisted(dx);
25
+ } else if (direction === "left") {
26
+ offsetX = dx < 0 ? cappedExit(dx) : -resisted(-dx);
27
+ } else if (direction === "down") {
28
+ offsetY = dy > 0 ? cappedExit(dy) : resisted(dy);
29
+ } else if (direction === "up") {
30
+ offsetY = dy < 0 ? cappedExit(dy) : -resisted(-dy);
31
+ } else if (direction === "horizontal") {
32
+ offsetX = cappedExit(dx);
33
+ } else if (direction === "vertical") {
34
+ offsetY = cappedExit(dy);
35
+ }
36
+ return {
37
+ offsetX,
38
+ offsetY
39
+ };
40
+ }
41
+ function computeExitDirection(direction, dx, dy) {
42
+ if (direction === "right" && dx > 0) return "right";
43
+ if (direction === "left" && dx < 0) return "left";
44
+ if (direction === "horizontal") {
45
+ if (Math.abs(dx) > Math.abs(dy)) return dx > 0 ? "right" : "left";
46
+ }
47
+ if (direction === "down" && dy > 0) return "down";
48
+ if (direction === "up" && dy < 0) return "up";
49
+ if (direction === "vertical") {
50
+ if (Math.abs(dy) > Math.abs(dx)) return dy > 0 ? "down" : "up";
51
+ }
52
+ return null;
53
+ }
54
+ function shouldGrantGestureMove(dir, dx, dy) {
55
+ var absDx = Math.abs(dx);
56
+ var absDy = Math.abs(dy);
57
+ if ((dir === "horizontal" || dir === "left" || dir === "right") && absDx > GESTURE_GRANT_THRESHOLD && absDx > absDy) {
58
+ return true;
59
+ }
60
+ if ((dir === "vertical" || dir === "up" || dir === "down") && absDy > GESTURE_GRANT_THRESHOLD && absDy > absDx) {
61
+ return true;
62
+ }
63
+ return false;
64
+ }
65
+ function useAnimatedDragGesture(options) {
66
+ var {
67
+ direction,
68
+ threshold,
69
+ disabled
70
+ } = options;
71
+ var [isDragging, setIsDragging] = React.useState(false);
72
+ var isHorizontal = direction === "left" || direction === "right" || direction === "horizontal";
73
+ var gestureRef = React.useRef(null);
74
+ var onDragMoveRef = React.useRef(options.onDragMove);
75
+ var onDragStartRef = React.useRef(options.onDragStart);
76
+ var onDismissRef = React.useRef(options.onDismiss);
77
+ var onCancelRef = React.useRef(options.onCancel);
78
+ onDragMoveRef.current = options.onDragMove;
79
+ onDragStartRef.current = options.onDragStart;
80
+ onDismissRef.current = options.onDismiss;
81
+ onCancelRef.current = options.onCancel;
82
+ var rnghEnabled = getGestureHandler().isEnabled;
83
+ var gesture = React.useMemo(function () {
84
+ if (!rnghEnabled || disabled) return null;
85
+ var {
86
+ Gesture
87
+ } = getGestureHandler().state;
88
+ if (!Gesture) return null;
89
+ var pan = Gesture.Pan().withRef(gestureRef).shouldCancelWhenOutside(false).runOnJS(true);
90
+ if (isHorizontal) {
91
+ pan.activeOffsetX([-10, 10]);
92
+ pan.failOffsetY([-20, 20]);
93
+ } else {
94
+ pan.activeOffsetY([-10, 10]);
95
+ pan.failOffsetX([-20, 20]);
96
+ }
97
+ pan.onStart(function () {
98
+ var _onDragStartRef_current;
99
+ setIsDragging(true);
100
+ (_onDragStartRef_current = onDragStartRef.current) === null || _onDragStartRef_current === void 0 ? void 0 : _onDragStartRef_current.call(onDragStartRef);
101
+ }).onChange(function (event) {
102
+ var {
103
+ offsetX,
104
+ offsetY
105
+ } = computeOffset(direction, event.translationX, event.translationY);
106
+ onDragMoveRef.current(offsetX, offsetY);
107
+ }).onEnd(function (event) {
108
+ var dx = event.translationX;
109
+ var dy = event.translationY;
110
+ var relevantDelta = isHorizontal ? dx : dy;
111
+ var relevantVelocity = isHorizontal ? Math.abs(event.velocityX / 1e3) : Math.abs(event.velocityY / 1e3);
112
+ var passedThreshold = Math.abs(relevantDelta) >= threshold;
113
+ var hasVelocity = relevantVelocity > VELOCITY_THRESHOLD;
114
+ var exitDirection = computeExitDirection(direction, dx, dy);
115
+ var shouldDismiss = exitDirection && (passedThreshold || hasVelocity);
116
+ setIsDragging(false);
117
+ if (shouldDismiss && exitDirection) {
118
+ onDismissRef.current(exitDirection, relevantVelocity);
119
+ } else {
120
+ onCancelRef.current();
121
+ }
122
+ }).onFinalize(function () {
123
+ setIsDragging(false);
124
+ });
125
+ return pan;
126
+ }, [disabled, direction, threshold, isHorizontal, rnghEnabled]);
127
+ var panResponder = React.useMemo(function () {
128
+ if (rnghEnabled || disabled) return null;
129
+ return PanResponder.create({
130
+ onMoveShouldSetPanResponder: function (_e, g) {
131
+ return shouldGrantGestureMove(direction, g.dx, g.dy);
132
+ },
133
+ onMoveShouldSetPanResponderCapture: function (_e, g) {
134
+ return shouldGrantGestureMove(direction, g.dx, g.dy);
135
+ },
136
+ onPanResponderTerminationRequest: function () {
137
+ return false;
138
+ },
139
+ onPanResponderGrant: function () {
140
+ var _onDragStartRef_current;
141
+ setIsDragging(true);
142
+ (_onDragStartRef_current = onDragStartRef.current) === null || _onDragStartRef_current === void 0 ? void 0 : _onDragStartRef_current.call(onDragStartRef);
143
+ },
144
+ onPanResponderMove: function (_e, g) {
145
+ var {
146
+ offsetX,
147
+ offsetY
148
+ } = computeOffset(direction, g.dx, g.dy);
149
+ onDragMoveRef.current(offsetX, offsetY);
150
+ },
151
+ onPanResponderRelease: function (_e, g) {
152
+ var {
153
+ dx,
154
+ dy,
155
+ vx,
156
+ vy
157
+ } = g;
158
+ var relevantDelta = isHorizontal ? dx : dy;
159
+ var relevantVelocity = isHorizontal ? Math.abs(vx) : Math.abs(vy);
160
+ var passedThreshold = Math.abs(relevantDelta) >= threshold;
161
+ var hasVelocity = relevantVelocity > VELOCITY_THRESHOLD;
162
+ var exitDirection = computeExitDirection(direction, dx, dy);
163
+ var shouldDismiss = exitDirection && (passedThreshold || hasVelocity);
164
+ setIsDragging(false);
165
+ if (shouldDismiss && exitDirection) {
166
+ onDismissRef.current(exitDirection, relevantVelocity);
167
+ } else {
168
+ onCancelRef.current();
169
+ }
170
+ },
171
+ onPanResponderTerminate: function () {
172
+ setIsDragging(false);
173
+ onCancelRef.current();
174
+ }
175
+ });
176
+ }, [disabled, direction, threshold, isHorizontal, rnghEnabled]);
177
+ var _panResponder_panHandlers;
178
+ return {
179
+ isDragging,
180
+ gestureHandlers: (_panResponder_panHandlers = panResponder === null || panResponder === void 0 ? void 0 : panResponder.panHandlers) !== null && _panResponder_panHandlers !== void 0 ? _panResponder_panHandlers : {},
181
+ gesture
182
+ };
183
+ }
184
+ export { useAnimatedDragGesture };
185
+ //# sourceMappingURL=useAnimatedDragGesture.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["getGestureHandler","React","PanResponder","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","useAnimatedDragGesture","options","threshold","disabled","isDragging","setIsDragging","useState","isHorizontal","gestureRef","useRef","onDragMoveRef","onDragMove","onDragStartRef","onDragStart","onDismissRef","onDismiss","onCancelRef","onCancel","current","rnghEnabled","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","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,44 @@
1
+ import { isWeb } from "@hanzogui/constants";
2
+ import * as React from "react";
3
+ var cachedResult = null;
4
+ function getReducedMotion() {
5
+ var _window_matchMedia, _window_matchMedia1, _window;
6
+ if (cachedResult !== null) return cachedResult;
7
+ if (!isWeb) {
8
+ cachedResult = false;
9
+ return false;
10
+ }
11
+ if (typeof window === "undefined") {
12
+ return false;
13
+ }
14
+ var _window_matchMedia_matches;
15
+ 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;
16
+ return cachedResult;
17
+ }
18
+ function useReducedMotion(forceReducedMotion) {
19
+ var [reducedMotion, setReducedMotion] = React.useState(function () {
20
+ return forceReducedMotion !== null && forceReducedMotion !== void 0 ? forceReducedMotion : getReducedMotion();
21
+ });
22
+ React.useEffect(function () {
23
+ var _window_matchMedia, _window, _mediaQuery_addEventListener;
24
+ if (forceReducedMotion !== void 0) {
25
+ setReducedMotion(forceReducedMotion);
26
+ return;
27
+ }
28
+ if (!isWeb || typeof window === "undefined") return;
29
+ var mediaQuery = (_window_matchMedia = (_window = window).matchMedia) === null || _window_matchMedia === void 0 ? void 0 : _window_matchMedia.call(_window, "(prefers-reduced-motion: reduce)");
30
+ if (!mediaQuery) return;
31
+ var handleChange = function (e) {
32
+ cachedResult = e.matches;
33
+ setReducedMotion(e.matches);
34
+ };
35
+ (_mediaQuery_addEventListener = mediaQuery.addEventListener) === null || _mediaQuery_addEventListener === void 0 ? void 0 : _mediaQuery_addEventListener.call(mediaQuery, "change", handleChange);
36
+ return function () {
37
+ var _mediaQuery_removeEventListener;
38
+ (_mediaQuery_removeEventListener = mediaQuery.removeEventListener) === null || _mediaQuery_removeEventListener === void 0 ? void 0 : _mediaQuery_removeEventListener.call(mediaQuery, "change", handleChange);
39
+ };
40
+ }, [forceReducedMotion]);
41
+ return reducedMotion;
42
+ }
43
+ export { useReducedMotion };
44
+ //# sourceMappingURL=useReducedMotion.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["isWeb","React","cachedResult","getReducedMotion","_window_matchMedia","_window_matchMedia1","_window","window","_window_matchMedia_matches","matchMedia","call","matches","useReducedMotion","forceReducedMotion","reducedMotion","setReducedMotion","useState","useEffect","_mediaQuery_addEventListener","mediaQuery","handleChange","e","addEventListener","_mediaQuery_removeEventListener","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,IAAIC,kBAAiB,EAAAC,mBAAa,EAAAC,OAAA;EAElC,IAAIJ,YAAQ,kBAAAA,YAAA;EAGV,KAAAF,KAAA;IACAE,YAAO;IACT;EAEA;EACE,WAAOK,MAAA;IACT;EAEA;EACA,IAAAC,0BAAO;EACTN,YAAA,IAAAM,0BAAA,IAAAH,mBAAA,IAAAC,OAAA,GAAAC,MAAA,EAAAE,UAAA,cAAAJ,mBAAA,wBAAAD,kBAAA,GAAAC,mBAAA,CAAAK,IAAA,CAAAJ,OAAA,mDAAAF,kBAAA,uBAAAA,kBAAA,CAAAO,OAAA,cAAAH,0BAAA,cAAAA,0BAAA;EAEO,OAASN,YAAA;AACd;AAAgD,SAC9CU,gBAAMA,CAAAC,kBAAsB;EAC9B,KAAAC,aAAA,EAAAC,gBAAA,IAAAd,KAAA,CAAAe,QAAA;IAEA,OAAMH,kBAAgB,aAAAA,kBAAA,cAAAA,kBAAA,GAAAV,gBAAA;EAEpB;EACEF,KAAA,CAAAgB,SAAA,aAAiB;IACjB,IAAAb,kBAAA,EAAAE,OAAA,EAAAY,4BAAA;IACF,IAAAL,kBAAA;MAGAE,gBAAc,CAAAF,kBAAkB;MAEhC;IACA;IAEA,KAAAb,KAAM,WAAeO,MAAC,KAA2B;IAC/C,IAAAY,UAAA,GAAe,CAAAf,kBAAE,IAAAE,OAAA,GAAAC,MAAA,EAAAE,UAAA,cAAAL,kBAAA,uBAAAA,kBAAA,CAAAM,IAAA,CAAAJ,OAAA;IACjB,KAAAa,UAAA;IACF,IAAAC,YAAA,YAAAA,CAAAC,CAAA;MAEAnB,YAAW,GAAAmB,CAAA,CAAAV,OAAA;MACXI,gBAAa,CAAAM,CAAA,CAAAV,OAAA;IACX;IACF,CAAAO,4BAAA,GAAAC,UAAA,CAAAG,gBAAA,cAAAJ,4BAAA,uBAAAA,4BAAA,CAAAR,IAAA,CAAAS,UAAA,YAAAC,YAAA;IACF,OAAI;MAEJ,IAAOG,+BAAA;MACT,CAAAA,+BAAA,GAAAJ,UAAA,CAAAK,mBAAA,cAAAD,+BAAA,uBAAAA,+BAAA,CAAAb,IAAA,CAAAS,UAAA,YAAAC,YAAA","ignoreList":[]}