@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,52 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import * as React from "react";
3
+ import { Toast } from "./ToastComposable.native.js";
4
+ var Toaster = /* @__PURE__ */React.forwardRef(function Toaster2(props, ref) {
5
+ var {
6
+ position = "bottom-right",
7
+ expand = false,
8
+ visibleToasts,
9
+ gap,
10
+ duration,
11
+ offset,
12
+ hotkey,
13
+ swipeDirection,
14
+ swipeThreshold,
15
+ closeButton,
16
+ theme,
17
+ icons,
18
+ toastOptions,
19
+ containerAriaLabel = "Notifications",
20
+ native,
21
+ burntOptions,
22
+ notificationOptions,
23
+ reducedMotion
24
+ } = props;
25
+ var _toastOptions_duration;
26
+ return /* @__PURE__ */_jsx(Toast, {
27
+ position,
28
+ expand,
29
+ visibleToasts,
30
+ gap,
31
+ duration: (_toastOptions_duration = toastOptions === null || toastOptions === void 0 ? void 0 : toastOptions.duration) !== null && _toastOptions_duration !== void 0 ? _toastOptions_duration : duration,
32
+ swipeDirection,
33
+ swipeThreshold,
34
+ closeButton,
35
+ theme,
36
+ icons,
37
+ native,
38
+ burntOptions,
39
+ notificationOptions,
40
+ reducedMotion,
41
+ children: /* @__PURE__ */_jsx(Toast.Viewport, {
42
+ ref,
43
+ offset,
44
+ hotkey,
45
+ label: containerAriaLabel,
46
+ children: /* @__PURE__ */_jsx(Toast.List, {})
47
+ })
48
+ });
49
+ });
50
+ Toaster.displayName = "Toaster";
51
+ export { Toaster };
52
+ //# sourceMappingURL=Toaster.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["jsx","_jsx","React","Toast","Toaster","forwardRef","Toaster2","props","ref","position","expand","visibleToasts","gap","duration","offset","hotkey","swipeDirection","swipeThreshold","closeButton","theme","icons","toastOptions","containerAriaLabel","native","burntOptions","notificationOptions","reducedMotion","_toastOptions_duration","children","Viewport","label","List","displayName"],"sources":["../../src/Toaster.tsx"],"sourcesContent":[null],"mappings":"AAMA,SAAAA,GAAY,IAAAC,IAAA,QAAW;AACvB,YAASC,KAAA,MAAa;AAsKZ,SAAAC,KAAA;AA9CH,IAAAC,OAAM,kBAAgBF,KAAA,CAAAG,UAAA,UAAAC,SAAAC,KAAA,EAAAC,GAAA;EAC3B;IAAAC,QAAS,iBAAoB;IAAAC,MAAA;IAAAC,aAAA;IAAAC,GAAA;IAAAC,QAAA;IAAAC,MAAA;IAAAC,MAAA;IAAAC,cAAA;IAAAC,cAAA;IAAAC,WAAA;IAAAC,KAAA;IAAAC,KAAA;IAAAC,YAAA;IAAAC,kBAAA;IAAAC,MAAA;IAAAC,YAAA;IAAAC,mBAAA;IAAAC;EAAA,IAAAnB,KAAA;EAC3B,IAAAoB,sBAAM;EAAA,OACJ,eAAW1B,IAAA,CAAAE,KAAA;IAAAM,QACX;IAASC,MACT;IAAAC,aACA;IAAAC,GACA;IAAAC,QACA,GAAAc,sBAAA,GAAAN,YAAA,aAAAA,YAAA,uBAAAA,YAAA,CAAAR,QAAA,cAAAc,sBAAA,cAAAA,sBAAA,GAAAd,QAAA;IAAAG,cACA;IAAAC,cACA;IAAAC,WACA;IAAAC,KACA;IAAAC,KACA;IAAAG,MACA;IAAAC,YACA;IAAAC,mBACA;IAAqBC,aACrB;IAAAE,QACA,iBAAA3B,IAAA,CAAAE,KAAA,CAAA0B,QAAA;MACArB,GAAA;MACAM,MAAA;MACFC,MAAI;MAEJe,KACE,EAAAR,kBAAA;MAACM,QAAA,iBAAA3B,IAAA,CAAAE,KAAA,CAAA4B,IAAA;IAAA;EAAA;AACC;AACA3B,OAAA,CACA4B,WAAA;AAAA,SACA5B,OACA","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- const TOAST_NAME = "Toast",
2
- TOAST_CONTEXT = "Toast";
1
+ const TOAST_NAME = "Toast";
2
+ const TOAST_CONTEXT = "Toast";
3
3
  export { TOAST_CONTEXT, TOAST_NAME };
4
4
  //# sourceMappingURL=constants.mjs.map
@@ -1 +1 @@
1
- {"version":3,"names":["TOAST_NAME","TOAST_CONTEXT"],"sources":["../../src/constants.ts"],"sourcesContent":[null],"mappings":"AAAO,MAAMA,UAAA,GAAa;EACbC,aAAA,GAAgB","ignoreList":[]}
1
+ {"version":3,"names":["TOAST_NAME","TOAST_CONTEXT"],"sources":["../../src/constants.ts"],"sourcesContent":[null],"mappings":"AAAO,MAAMA,UAAA,GAAa;AACnB,MAAMC,aAAA,GAAgB","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- var TOAST_NAME = "Toast",
2
- TOAST_CONTEXT = "Toast";
1
+ var TOAST_NAME = "Toast";
2
+ var TOAST_CONTEXT = "Toast";
3
3
  export { TOAST_CONTEXT, TOAST_NAME };
4
4
  //# sourceMappingURL=constants.native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["TOAST_NAME","TOAST_CONTEXT"],"sources":["../../src/constants.ts"],"sourcesContent":[null],"mappings":"AAAO,IAAAA,UAAM,UAAa;EAAAC,aACb,UAAgB","ignoreList":[]}
1
+ {"version":3,"names":["TOAST_NAME","TOAST_CONTEXT"],"sources":["../../src/constants.ts"],"sourcesContent":[null],"mappings":"AAAO,IAAAA,UAAM,UAAa;AACnB,IAAAC,aAAM,UAAgB","ignoreList":[]}
@@ -1,27 +1,32 @@
1
1
  const createNativeToast = (title, {
2
- message,
3
- notificationOptions
4
- }) => {
5
- if (!("Notification" in window)) return console.error("This browser does not support notifications"), !1;
6
- if (Notification.permission === "denied") return !1;
7
- const showNotification = () => new Notification(title, {
8
- body: message,
9
- ...notificationOptions
10
- });
11
- return Notification.permission === "granted" ? {
12
- nativeToastRef: showNotification()
13
- } : (Notification.requestPermission().then(permission => {
14
- if (permission === "granted") return {
15
- nativeToastRef: showNotification()
16
- };
17
- }), !0);
18
- },
19
- hideNativeToast = ref => {
20
- if (!("Notification" in window)) {
21
- console.error("This browser does not support notifications");
22
- return;
23
- }
24
- ref && ref.close();
2
+ message,
3
+ notificationOptions
4
+ }) => {
5
+ if (!("Notification" in window)) {
6
+ return false;
7
+ }
8
+ if (Notification.permission !== "granted") return false;
9
+ const notification = new Notification(title, {
10
+ body: message,
11
+ ...notificationOptions
12
+ });
13
+ return {
14
+ nativeToastRef: notification
25
15
  };
26
- export { createNativeToast, hideNativeToast };
16
+ };
17
+ const hideNativeToast = ref => {
18
+ if (!("Notification" in window)) {
19
+ return;
20
+ }
21
+ if (ref) {
22
+ ref.close();
23
+ }
24
+ };
25
+ async function requestNotificationPermission() {
26
+ if (!("Notification" in window)) return null;
27
+ if (Notification.permission === "granted") return "granted";
28
+ if (Notification.permission === "denied") return "denied";
29
+ return Notification.requestPermission();
30
+ }
31
+ export { createNativeToast, hideNativeToast, requestNotificationPermission };
27
32
  //# sourceMappingURL=createNativeToast.mjs.map
@@ -1 +1 @@
1
- {"version":3,"names":["createNativeToast","title","message","notificationOptions","window","console","error","Notification","permission","showNotification","body","nativeToastRef","requestPermission","then","hideNativeToast","ref","close"],"sources":["../../src/createNativeToast.tsx"],"sourcesContent":[null],"mappings":"AAEO,MAAMA,iBAAA,GAA0CA,CACrDC,KAAA,EACA;IAAEC,OAAA;IAASC;EAAoB,MAC5B;IACH,IAAI,EAAE,kBAAkBC,MAAA,GACtB,OAAAC,OAAA,CAAQC,KAAA,CAAM,6CAA6C,GACpD;IAGT,IAAIC,YAAA,CAAaC,UAAA,KAAe,UAAU,OAAO;IACjD,MAAMC,gBAAA,GAAmBA,CAAA,KACF,IAAIF,YAAA,CAAaN,KAAA,EAAO;MAC3CS,IAAA,EAAMR,OAAA;MACN,GAAGC;IACL,CAAC;IAKH,OAAII,YAAA,CAAaC,UAAA,KAAe,YAEvB;MACLG,cAAA,EAFmBF,gBAAA,CAAiB;IAGtC,KAEFF,YAAA,CAAaK,iBAAA,CAAkB,EAAEC,IAAA,CAAML,UAAA,IAAe;MACpD,IAAIA,UAAA,KAAe,WAEjB,OAAO;QACLG,cAAA,EAFmBF,gBAAA,CAAiB;MAGtC;IAEJ,CAAC,GACM;EACT;EAEaK,eAAA,GAAuCC,GAAA,IAAQ;IAC1D,IAAI,EAAE,kBAAkBX,MAAA,GAAS;MAC/BC,OAAA,CAAQC,KAAA,CAAM,6CAA6C;MAC3D;IACF;IAEIS,GAAA,IACFA,GAAA,CAAIC,KAAA,CAAM;EAEd","ignoreList":[]}
1
+ {"version":3,"names":["createNativeToast","title","message","notificationOptions","window","Notification","permission","notification","body","nativeToastRef","hideNativeToast","ref","close","requestNotificationPermission","requestPermission"],"sources":["../../src/createNativeToast.tsx"],"sourcesContent":[null],"mappings":"AAEO,MAAMA,iBAAA,GAA0CA,CACrDC,KAAA,EACA;EAAEC,OAAA;EAASC;AAAoB,MAC5B;EACH,IAAI,EAAE,kBAAkBC,MAAA,GAAS;IAC/B,OAAO;EACT;EAEA,IAAIC,YAAA,CAAaC,UAAA,KAAe,WAAW,OAAO;EAElD,MAAMC,YAAA,GAAe,IAAIF,YAAA,CAAaJ,KAAA,EAAO;IAC3CO,IAAA,EAAMN,OAAA;IACN,GAAGC;EACL,CAAC;EAED,OAAO;IACLM,cAAA,EAAgBF;EAClB;AACF;AAEO,MAAMG,eAAA,GAAuCC,GAAA,IAAQ;EAC1D,IAAI,EAAE,kBAAkBP,MAAA,GAAS;IAC/B;EACF;EAEA,IAAIO,GAAA,EAAK;IACPA,GAAA,CAAIC,KAAA,CAAM;EACZ;AACF;AAMA,eAAsBC,8BAAA,EAAwE;EAC5F,IAAI,EAAE,kBAAkBT,MAAA,GAAS,OAAO;EACxC,IAAIC,YAAA,CAAaC,UAAA,KAAe,WAAW,OAAO;EAClD,IAAID,YAAA,CAAaC,UAAA,KAAe,UAAU,OAAO;EACjD,OAAOD,YAAA,CAAaS,iBAAA,CAAkB;AACxC","ignoreList":[]}
@@ -1,21 +1,30 @@
1
1
  import { getBurnt } from "@hanzogui/native";
2
2
  var createNativeToast = function (title, param) {
3
- var {
4
- message,
5
- duration,
6
- burntOptions
7
- } = param,
8
- burnt = getBurnt();
9
- return burnt.isEnabled ? (burnt.state.toast({
10
- title,
11
- message,
12
- duration: duration ? duration / 1e3 : void 0,
13
- ...burntOptions
14
- }), !0) : (console.warn("Warning: Must call import '@hanzogui/native/setup-burnt' at your app entry point to use native toasts"), !1);
15
- },
16
- hideNativeToast = function () {
17
- var burnt = getBurnt();
18
- burnt.isEnabled && burnt.state.dismissAllAlerts();
19
- };
20
- export { createNativeToast, hideNativeToast };
3
+ var {
4
+ message,
5
+ duration,
6
+ burntOptions
7
+ } = param;
8
+ var burnt = getBurnt();
9
+ if (!burnt.isEnabled) {
10
+ console.warn(`Warning: Must call import '@hanzogui/native/setup-burnt' at your app entry point to use native toasts`);
11
+ return false;
12
+ }
13
+ burnt.state.toast({
14
+ title,
15
+ message,
16
+ duration: duration ? duration / 1e3 : void 0,
17
+ ...burntOptions
18
+ });
19
+ return true;
20
+ };
21
+ var hideNativeToast = function () {
22
+ var burnt = getBurnt();
23
+ if (!burnt.isEnabled) return;
24
+ burnt.state.dismissAllAlerts();
25
+ };
26
+ async function requestNotificationPermission() {
27
+ return null;
28
+ }
29
+ export { createNativeToast, hideNativeToast, requestNotificationPermission };
21
30
  //# sourceMappingURL=createNativeToast.native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["getBurnt","createNativeToast","title","param","message","duration","burntOptions","burnt","isEnabled","state","toast","console","warn","hideNativeToast","dismissAllAlerts"],"sources":["../../src/createNativeToast.native.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,QAAA,QAAgB;AAClB,IAAIC,iBAAA,GAAoB,SAAAA,CAASC,KAAA,EAAOC,KAAA,EAAO;IAClD,IAAI;QAAEC,OAAA;QAASC,QAAA;QAAUC;MAAa,IAAIH,KAAA;MACtCI,KAAA,GAAQP,QAAA,CAAS;IACrB,OAAKO,KAAA,CAAMC,SAAA,IAIXD,KAAA,CAAME,KAAA,CAAMC,KAAA,CAAM;MACdR,KAAA;MACAE,OAAA;MACAC,QAAA,EAAUA,QAAA,GAAWA,QAAA,GAAW,MAAO;MACvC,GAAGC;IACP,CAAC,GACM,OATHK,OAAA,CAAQC,IAAA,CAAK,wGAAwG,GAC9G;EASf;EACWC,eAAA,GAAkB,SAAAA,CAAA,EAAW;IACpC,IAAIN,KAAA,GAAQP,QAAA,CAAS;IAChBO,KAAA,CAAMC,SAAA,IACXD,KAAA,CAAME,KAAA,CAAMK,gBAAA,CAAiB;EACjC","ignoreList":[]}
1
+ {"version":3,"names":["getBurnt","createNativeToast","title","param","message","duration","burntOptions","burnt","isEnabled","console","warn","state","toast","hideNativeToast","dismissAllAlerts","requestNotificationPermission"],"sources":["../../src/createNativeToast.native.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,QAAA,QAAgB;AAClB,IAAIC,iBAAA,GAAoB,SAAAA,CAASC,KAAA,EAAOC,KAAA,EAAO;EAClD,IAAI;IAAEC,OAAA;IAASC,QAAA;IAAUC;EAAa,IAAIH,KAAA;EAC1C,IAAII,KAAA,GAAQP,QAAA,CAAS;EACrB,IAAI,CAACO,KAAA,CAAMC,SAAA,EAAW;IAClBC,OAAA,CAAQC,IAAA,CAAK,uGAAuG;IACpH,OAAO;EACX;EACAH,KAAA,CAAMI,KAAA,CAAMC,KAAA,CAAM;IACdV,KAAA;IACAE,OAAA;IACAC,QAAA,EAAUA,QAAA,GAAWA,QAAA,GAAW,MAAO;IACvC,GAAGC;EACP,CAAC;EACD,OAAO;AACX;AACO,IAAIO,eAAA,GAAkB,SAAAA,CAAA,EAAW;EACpC,IAAIN,KAAA,GAAQP,QAAA,CAAS;EACrB,IAAI,CAACO,KAAA,CAAMC,SAAA,EAAW;EACtBD,KAAA,CAAMI,KAAA,CAAMG,gBAAA,CAAiB;AACjC;AACA,eAAsBC,8BAAA,EAAgC;EAClD,OAAO;AACX","ignoreList":[]}
@@ -0,0 +1,22 @@
1
+ import { createNativeToast } from "./createNativeToast.mjs";
2
+ function dispatchNativeToast(toast, opts) {
3
+ const titleText = typeof toast.title === "function" ? toast.title() : toast.title;
4
+ if (typeof titleText !== "string") return false;
5
+ const descText = typeof toast.description === "function" ? toast.description() : toast.description;
6
+ const toastType = toast.type ?? "default";
7
+ const preset = toastType === "error" ? "error" : toastType === "success" ? "done" : "none";
8
+ const haptic = toastType === "error" ? "error" : toastType === "success" ? "success" : toastType === "warning" ? "warning" : "none";
9
+ const result = createNativeToast(titleText, {
10
+ message: typeof descText === "string" ? descText : void 0,
11
+ duration: toast.duration ?? opts.duration,
12
+ burntOptions: {
13
+ preset,
14
+ haptic,
15
+ ...opts.burntOptions
16
+ },
17
+ notificationOptions: opts.notificationOptions
18
+ });
19
+ return result !== false;
20
+ }
21
+ export { dispatchNativeToast };
22
+ //# sourceMappingURL=dispatchNativeToast.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createNativeToast","dispatchNativeToast","toast","opts","titleText","title","descText","description","toastType","type","preset","haptic","result","message","duration","burntOptions","notificationOptions"],"sources":["../../src/dispatchNativeToast.ts"],"sourcesContent":[null],"mappings":"AAEA,SAASA,iBAAA,QAAyB;AAM3B,SAASC,oBACdC,KAAA,EACAC,IAAA,EAKS;EACT,MAAMC,SAAA,GAAY,OAAOF,KAAA,CAAMG,KAAA,KAAU,aAAaH,KAAA,CAAMG,KAAA,CAAM,IAAIH,KAAA,CAAMG,KAAA;EAC5E,IAAI,OAAOD,SAAA,KAAc,UAAU,OAAO;EAE1C,MAAME,QAAA,GACJ,OAAOJ,KAAA,CAAMK,WAAA,KAAgB,aAAaL,KAAA,CAAMK,WAAA,CAAY,IAAIL,KAAA,CAAMK,WAAA;EACxE,MAAMC,SAAA,GAAYN,KAAA,CAAMO,IAAA,IAAQ;EAEhC,MAAMC,MAAA,GACJF,SAAA,KAAc,UAAU,UAAUA,SAAA,KAAc,YAAY,SAAS;EACvE,MAAMG,MAAA,GACJH,SAAA,KAAc,UACV,UACAA,SAAA,KAAc,YACZ,YACAA,SAAA,KAAc,YACZ,YACA;EAEV,MAAMI,MAAA,GAASZ,iBAAA,CAAkBI,SAAA,EAAW;IAC1CS,OAAA,EAAS,OAAOP,QAAA,KAAa,WAAWA,QAAA,GAAW;IACnDQ,QAAA,EAAUZ,KAAA,CAAMY,QAAA,IAAYX,IAAA,CAAKW,QAAA;IACjCC,YAAA,EAAc;MAAEL,MAAA;MAAQC,MAAA;MAAQ,GAAGR,IAAA,CAAKY;IAAa;IACrDC,mBAAA,EAAqBb,IAAA,CAAKa;EAC5B,CAAC;EAED,OAAOJ,MAAA,KAAW;AACpB","ignoreList":[]}
@@ -0,0 +1,24 @@
1
+ import { createNativeToast } from "./createNativeToast.native.js";
2
+ function dispatchNativeToast(toast, opts) {
3
+ var titleText = typeof toast.title === "function" ? toast.title() : toast.title;
4
+ if (typeof titleText !== "string") return false;
5
+ var descText = typeof toast.description === "function" ? toast.description() : toast.description;
6
+ var _toast_type;
7
+ var toastType = (_toast_type = toast.type) !== null && _toast_type !== void 0 ? _toast_type : "default";
8
+ var preset = toastType === "error" ? "error" : toastType === "success" ? "done" : "none";
9
+ var haptic = toastType === "error" ? "error" : toastType === "success" ? "success" : toastType === "warning" ? "warning" : "none";
10
+ var _toast_duration;
11
+ var result = createNativeToast(titleText, {
12
+ message: typeof descText === "string" ? descText : void 0,
13
+ duration: (_toast_duration = toast.duration) !== null && _toast_duration !== void 0 ? _toast_duration : opts.duration,
14
+ burntOptions: {
15
+ preset,
16
+ haptic,
17
+ ...opts.burntOptions
18
+ },
19
+ notificationOptions: opts.notificationOptions
20
+ });
21
+ return result !== false;
22
+ }
23
+ export { dispatchNativeToast };
24
+ //# sourceMappingURL=dispatchNativeToast.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createNativeToast","dispatchNativeToast","toast","opts","titleText","title","descText","description","_toast_type","toastType","type","preset","haptic","_toast_duration","result","message","duration","burntOptions"],"sources":["../../src/dispatchNativeToast.ts"],"sourcesContent":[null],"mappings":"AAEA,SAASA,iBAAA,QAAyB;AAM3B,SAASC,oBACdC,KAAA,EACAC,IAAA,EAKS;EACT,IAAAC,SAAM,UAAYF,KAAO,CAAAG,KAAM,eAAU,GAAAH,KAAa,CAAAG,KAAM,KAAMH,KAAI,CAAAG,KAAM;EAC5E,IAAI,OAAOD,SAAA,KAAc,UAAU,OAAO;EAE1C,IAAAE,QAAM,UACJJ,KAAO,CAAAK,WAAM,eAAgB,GAAAL,KAAa,CAAAK,WAAM,KAAYL,KAAI,CAAAK,WAAM;EACxE,IAAAC,WAAM;EAEN,IAAAC,SAAM,GACJ,CAAAD,WAAA,GAAcN,KAAA,CAAAQ,IAAU,UAAU,IAAAF,WAAc,UAAY,IAAAA,WAAS;EACvE,IAAAG,MAAM,GAAAF,SACJ,YAAc,UACV,GAAAA,SACA,cAAc,SACZ,SACA;EAIR,IAAAG,MAAM,GAAAH,SAAS,YAAkB,UAAW,GAAAA,SAAA,6BAAAA,SAAA;EAAA,IAC1CI,eAAgB;EAAmC,IACnDC,MAAA,GAAUd,iBAAkB,CAAAI,SAAK;IACjCW,OAAA,SAAgBT,QAAQ,aAAW,GAAKA,QAAA,QAAa;IACrDU,QAAA,GAAAH,eAA0B,GAAAX,KAAA,CAAAc,QAAA,cAAAH,eAAA,cAAAA,eAAA,GAAAV,IAAA,CAAAa,QAAA;IAC3BC,YAAA;MAEDN,MAAO;MACTC,MAAA","ignoreList":[]}
@@ -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