@tamagui/toast 2.7.7 → 3.0.0-beta.643.1

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 (303) hide show
  1. package/dist/cjs/ToastComposable.cjs +773 -882
  2. package/dist/cjs/ToastComposable.native.cjs +924 -0
  3. package/dist/cjs/ToastComposable.native.js +854 -966
  4. package/dist/cjs/ToastComposable.native.js.map +1 -1
  5. package/dist/cjs/ToastItemFrame.cjs +48 -119
  6. package/dist/cjs/ToastItemFrame.native.cjs +76 -0
  7. package/dist/cjs/ToastItemFrame.native.js +50 -120
  8. package/dist/cjs/ToastItemFrame.native.js.map +1 -1
  9. package/dist/cjs/ToastState.cjs +281 -290
  10. package/dist/cjs/ToastState.native.cjs +312 -0
  11. package/dist/cjs/ToastState.native.js +280 -290
  12. package/dist/cjs/ToastState.native.js.map +1 -1
  13. package/dist/cjs/createNativeToast.cjs +38 -44
  14. package/dist/cjs/createNativeToast.native.cjs +54 -0
  15. package/dist/cjs/createNativeToast.native.js +36 -40
  16. package/dist/cjs/createNativeToast.native.js.map +1 -1
  17. package/dist/cjs/dispatchNativeToast.cjs +32 -35
  18. package/dist/cjs/dispatchNativeToast.native.cjs +48 -0
  19. package/dist/cjs/dispatchNativeToast.native.js +34 -36
  20. package/dist/cjs/dispatchNativeToast.native.js.map +1 -1
  21. package/dist/cjs/index.cjs +25 -12
  22. package/dist/cjs/index.native.cjs +35 -0
  23. package/dist/cjs/index.native.js +26 -12
  24. package/dist/cjs/index.native.js.map +1 -1
  25. package/dist/cjs/types.cjs +10 -11
  26. package/dist/cjs/types.native.cjs +19 -0
  27. package/dist/cjs/types.native.js +10 -10
  28. package/dist/cjs/types.native.js.map +1 -1
  29. package/dist/cjs/useAnimatedDragGesture.cjs +197 -194
  30. package/dist/cjs/useAnimatedDragGesture.native.cjs +210 -0
  31. package/dist/cjs/useAnimatedDragGesture.native.js +179 -191
  32. package/dist/cjs/useAnimatedDragGesture.native.js.map +1 -1
  33. package/dist/cjs/useReducedMotion.cjs +47 -55
  34. package/dist/cjs/useReducedMotion.native.cjs +74 -0
  35. package/dist/cjs/useReducedMotion.native.js +53 -60
  36. package/dist/cjs/useReducedMotion.native.js.map +1 -1
  37. package/dist/cjs/useToastAnimations.cjs +198 -270
  38. package/dist/cjs/useToastAnimations.native.cjs +229 -0
  39. package/dist/cjs/useToastAnimations.native.js +205 -276
  40. package/dist/cjs/useToastAnimations.native.js.map +1 -1
  41. package/dist/esm/ToastComposable.mjs +752 -854
  42. package/dist/esm/ToastComposable.mjs.map +1 -1
  43. package/dist/esm/ToastComposable.native.js +834 -940
  44. package/dist/esm/ToastComposable.native.js.map +1 -1
  45. package/dist/esm/ToastItemFrame.mjs +31 -99
  46. package/dist/esm/ToastItemFrame.mjs.map +1 -1
  47. package/dist/esm/ToastItemFrame.native.js +34 -102
  48. package/dist/esm/ToastItemFrame.native.js.map +1 -1
  49. package/dist/esm/ToastState.mjs +266 -273
  50. package/dist/esm/ToastState.mjs.map +1 -1
  51. package/dist/esm/ToastState.native.js +265 -274
  52. package/dist/esm/ToastState.native.js.map +1 -1
  53. package/dist/esm/createNativeToast.mjs +22 -26
  54. package/dist/esm/createNativeToast.mjs.map +1 -1
  55. package/dist/esm/createNativeToast.native.js +21 -23
  56. package/dist/esm/createNativeToast.native.js.map +1 -1
  57. package/dist/esm/dispatchNativeToast.mjs +19 -17
  58. package/dist/esm/dispatchNativeToast.mjs.map +1 -1
  59. package/dist/esm/dispatchNativeToast.native.js +21 -19
  60. package/dist/esm/dispatchNativeToast.native.js.map +1 -1
  61. package/dist/esm/index.js +5 -2
  62. package/dist/esm/index.mjs +5 -2
  63. package/dist/esm/index.native.js +5 -2
  64. package/dist/esm/types.mjs +0 -2
  65. package/dist/esm/types.native.js +0 -2
  66. package/dist/esm/useAnimatedDragGesture.mjs +181 -168
  67. package/dist/esm/useAnimatedDragGesture.mjs.map +1 -1
  68. package/dist/esm/useAnimatedDragGesture.native.js +163 -166
  69. package/dist/esm/useAnimatedDragGesture.native.js.map +1 -1
  70. package/dist/esm/useReducedMotion.mjs +31 -29
  71. package/dist/esm/useReducedMotion.mjs.map +1 -1
  72. package/dist/esm/useReducedMotion.native.js +37 -35
  73. package/dist/esm/useReducedMotion.native.js.map +1 -1
  74. package/dist/esm/useToastAnimations.mjs +183 -245
  75. package/dist/esm/useToastAnimations.mjs.map +1 -1
  76. package/dist/esm/useToastAnimations.native.js +190 -252
  77. package/dist/esm/useToastAnimations.native.js.map +1 -1
  78. package/dist/jsx/ToastComposable.mjs +752 -854
  79. package/dist/jsx/ToastComposable.mjs.map +1 -1
  80. package/dist/jsx/ToastComposable.native.cjs +924 -0
  81. package/dist/jsx/ToastComposable.native.js +854 -966
  82. package/dist/jsx/ToastComposable.native.js.map +1 -1
  83. package/dist/jsx/ToastItemFrame.mjs +31 -99
  84. package/dist/jsx/ToastItemFrame.mjs.map +1 -1
  85. package/dist/jsx/ToastItemFrame.native.cjs +76 -0
  86. package/dist/jsx/ToastItemFrame.native.js +50 -120
  87. package/dist/jsx/ToastItemFrame.native.js.map +1 -1
  88. package/dist/jsx/ToastState.mjs +266 -273
  89. package/dist/jsx/ToastState.mjs.map +1 -1
  90. package/dist/jsx/ToastState.native.cjs +312 -0
  91. package/dist/jsx/ToastState.native.js +280 -290
  92. package/dist/jsx/ToastState.native.js.map +1 -1
  93. package/dist/jsx/createNativeToast.mjs +22 -26
  94. package/dist/jsx/createNativeToast.mjs.map +1 -1
  95. package/dist/jsx/createNativeToast.native.cjs +54 -0
  96. package/dist/jsx/createNativeToast.native.js +36 -40
  97. package/dist/jsx/createNativeToast.native.js.map +1 -1
  98. package/dist/jsx/dispatchNativeToast.mjs +19 -17
  99. package/dist/jsx/dispatchNativeToast.mjs.map +1 -1
  100. package/dist/jsx/dispatchNativeToast.native.cjs +48 -0
  101. package/dist/jsx/dispatchNativeToast.native.js +34 -36
  102. package/dist/jsx/dispatchNativeToast.native.js.map +1 -1
  103. package/dist/jsx/index.js +5 -2
  104. package/dist/jsx/index.mjs +5 -2
  105. package/dist/jsx/index.native.cjs +35 -0
  106. package/dist/jsx/index.native.js +26 -12
  107. package/dist/jsx/index.native.js.map +1 -1
  108. package/dist/jsx/types.mjs +0 -2
  109. package/dist/jsx/types.native.cjs +19 -0
  110. package/dist/jsx/types.native.js +10 -10
  111. package/dist/jsx/types.native.js.map +1 -1
  112. package/dist/jsx/useAnimatedDragGesture.mjs +181 -168
  113. package/dist/jsx/useAnimatedDragGesture.mjs.map +1 -1
  114. package/dist/jsx/useAnimatedDragGesture.native.cjs +210 -0
  115. package/dist/jsx/useAnimatedDragGesture.native.js +179 -191
  116. package/dist/jsx/useAnimatedDragGesture.native.js.map +1 -1
  117. package/dist/jsx/useReducedMotion.mjs +31 -29
  118. package/dist/jsx/useReducedMotion.mjs.map +1 -1
  119. package/dist/jsx/useReducedMotion.native.cjs +74 -0
  120. package/dist/jsx/useReducedMotion.native.js +53 -60
  121. package/dist/jsx/useReducedMotion.native.js.map +1 -1
  122. package/dist/jsx/useToastAnimations.mjs +183 -245
  123. package/dist/jsx/useToastAnimations.mjs.map +1 -1
  124. package/dist/jsx/useToastAnimations.native.cjs +229 -0
  125. package/dist/jsx/useToastAnimations.native.js +205 -276
  126. package/dist/jsx/useToastAnimations.native.js.map +1 -1
  127. package/package.json +20 -37
  128. package/src/ToastComposable.tsx +55 -97
  129. package/src/ToastItemFrame.tsx +22 -81
  130. package/src/ToastState.ts +1 -0
  131. package/src/index.ts +34 -2
  132. package/src/types.ts +11 -0
  133. package/src/useAnimatedDragGesture.native.ts +1 -1
  134. package/src/useAnimatedDragGesture.ts +1 -1
  135. package/src/useToastAnimations.ts +20 -36
  136. package/types/ToastComposable.d.ts +124 -47
  137. package/types/ToastComposable.d.ts.map +1 -1
  138. package/types/ToastItemFrame.d.ts +52 -21
  139. package/types/ToastItemFrame.d.ts.map +1 -1
  140. package/types/ToastState.d.ts +15 -11
  141. package/types/ToastState.d.ts.map +1 -1
  142. package/types/index.d.ts +6 -2
  143. package/types/index.d.ts.map +1 -1
  144. package/types/types.d.ts +1 -0
  145. package/types/types.d.ts.map +1 -1
  146. package/types/useAnimatedDragGesture.d.ts +1 -1
  147. package/types/useAnimatedDragGesture.d.ts.map +1 -1
  148. package/types/useAnimatedDragGesture.native.d.ts +1 -1
  149. package/types/useAnimatedDragGesture.native.d.ts.map +1 -1
  150. package/types/useToastAnimations.d.ts +2 -8
  151. package/types/useToastAnimations.d.ts.map +1 -1
  152. package/dist/cjs/Toast.cjs +0 -178
  153. package/dist/cjs/Toast.native.js +0 -181
  154. package/dist/cjs/Toast.native.js.map +0 -1
  155. package/dist/cjs/ToastAnnounce.cjs +0 -103
  156. package/dist/cjs/ToastAnnounce.native.js +0 -111
  157. package/dist/cjs/ToastAnnounce.native.js.map +0 -1
  158. package/dist/cjs/ToastImperative.cjs +0 -119
  159. package/dist/cjs/ToastImperative.native.js +0 -130
  160. package/dist/cjs/ToastImperative.native.js.map +0 -1
  161. package/dist/cjs/ToastImpl.cjs +0 -354
  162. package/dist/cjs/ToastImpl.native.js +0 -364
  163. package/dist/cjs/ToastImpl.native.js.map +0 -1
  164. package/dist/cjs/ToastPortal.cjs +0 -49
  165. package/dist/cjs/ToastPortal.native.js +0 -52
  166. package/dist/cjs/ToastPortal.native.js.map +0 -1
  167. package/dist/cjs/ToastProvider.cjs +0 -150
  168. package/dist/cjs/ToastProvider.native.js +0 -161
  169. package/dist/cjs/ToastProvider.native.js.map +0 -1
  170. package/dist/cjs/ToastViewport.cjs +0 -319
  171. package/dist/cjs/ToastViewport.native.js +0 -343
  172. package/dist/cjs/ToastViewport.native.js.map +0 -1
  173. package/dist/cjs/Toaster.cjs +0 -87
  174. package/dist/cjs/Toaster.native.js +0 -91
  175. package/dist/cjs/Toaster.native.js.map +0 -1
  176. package/dist/cjs/constants.cjs +0 -30
  177. package/dist/cjs/constants.native.js +0 -33
  178. package/dist/cjs/constants.native.js.map +0 -1
  179. package/dist/cjs/v2.cjs +0 -36
  180. package/dist/cjs/v2.native.js +0 -39
  181. package/dist/cjs/v2.native.js.map +0 -1
  182. package/dist/esm/Toast.mjs +0 -137
  183. package/dist/esm/Toast.mjs.map +0 -1
  184. package/dist/esm/Toast.native.js +0 -137
  185. package/dist/esm/Toast.native.js.map +0 -1
  186. package/dist/esm/ToastAnnounce.mjs +0 -66
  187. package/dist/esm/ToastAnnounce.mjs.map +0 -1
  188. package/dist/esm/ToastAnnounce.native.js +0 -71
  189. package/dist/esm/ToastAnnounce.native.js.map +0 -1
  190. package/dist/esm/ToastImperative.mjs +0 -80
  191. package/dist/esm/ToastImperative.mjs.map +0 -1
  192. package/dist/esm/ToastImperative.native.js +0 -88
  193. package/dist/esm/ToastImperative.native.js.map +0 -1
  194. package/dist/esm/ToastImpl.mjs +0 -316
  195. package/dist/esm/ToastImpl.mjs.map +0 -1
  196. package/dist/esm/ToastImpl.native.js +0 -329
  197. package/dist/esm/ToastImpl.native.js.map +0 -1
  198. package/dist/esm/ToastPortal.mjs +0 -24
  199. package/dist/esm/ToastPortal.mjs.map +0 -1
  200. package/dist/esm/ToastPortal.native.js +0 -24
  201. package/dist/esm/ToastPortal.native.js.map +0 -1
  202. package/dist/esm/ToastProvider.mjs +0 -110
  203. package/dist/esm/ToastProvider.mjs.map +0 -1
  204. package/dist/esm/ToastProvider.native.js +0 -118
  205. package/dist/esm/ToastProvider.native.js.map +0 -1
  206. package/dist/esm/ToastViewport.mjs +0 -280
  207. package/dist/esm/ToastViewport.mjs.map +0 -1
  208. package/dist/esm/ToastViewport.native.js +0 -301
  209. package/dist/esm/ToastViewport.native.js.map +0 -1
  210. package/dist/esm/Toaster.mjs +0 -51
  211. package/dist/esm/Toaster.mjs.map +0 -1
  212. package/dist/esm/Toaster.native.js +0 -52
  213. package/dist/esm/Toaster.native.js.map +0 -1
  214. package/dist/esm/constants.mjs +0 -4
  215. package/dist/esm/constants.mjs.map +0 -1
  216. package/dist/esm/constants.native.js +0 -4
  217. package/dist/esm/constants.native.js.map +0 -1
  218. package/dist/esm/index.js.map +0 -1
  219. package/dist/esm/index.mjs.map +0 -1
  220. package/dist/esm/index.native.js.map +0 -1
  221. package/dist/esm/types.mjs.map +0 -1
  222. package/dist/esm/types.native.js.map +0 -1
  223. package/dist/esm/v2.mjs +0 -6
  224. package/dist/esm/v2.mjs.map +0 -1
  225. package/dist/esm/v2.native.js +0 -6
  226. package/dist/esm/v2.native.js.map +0 -1
  227. package/dist/jsx/Toast.mjs +0 -137
  228. package/dist/jsx/Toast.mjs.map +0 -1
  229. package/dist/jsx/Toast.native.js +0 -181
  230. package/dist/jsx/Toast.native.js.map +0 -1
  231. package/dist/jsx/ToastAnnounce.mjs +0 -66
  232. package/dist/jsx/ToastAnnounce.mjs.map +0 -1
  233. package/dist/jsx/ToastAnnounce.native.js +0 -111
  234. package/dist/jsx/ToastAnnounce.native.js.map +0 -1
  235. package/dist/jsx/ToastImperative.mjs +0 -80
  236. package/dist/jsx/ToastImperative.mjs.map +0 -1
  237. package/dist/jsx/ToastImperative.native.js +0 -130
  238. package/dist/jsx/ToastImperative.native.js.map +0 -1
  239. package/dist/jsx/ToastImpl.mjs +0 -316
  240. package/dist/jsx/ToastImpl.mjs.map +0 -1
  241. package/dist/jsx/ToastImpl.native.js +0 -364
  242. package/dist/jsx/ToastImpl.native.js.map +0 -1
  243. package/dist/jsx/ToastPortal.mjs +0 -24
  244. package/dist/jsx/ToastPortal.mjs.map +0 -1
  245. package/dist/jsx/ToastPortal.native.js +0 -52
  246. package/dist/jsx/ToastPortal.native.js.map +0 -1
  247. package/dist/jsx/ToastProvider.mjs +0 -110
  248. package/dist/jsx/ToastProvider.mjs.map +0 -1
  249. package/dist/jsx/ToastProvider.native.js +0 -161
  250. package/dist/jsx/ToastProvider.native.js.map +0 -1
  251. package/dist/jsx/ToastViewport.mjs +0 -280
  252. package/dist/jsx/ToastViewport.mjs.map +0 -1
  253. package/dist/jsx/ToastViewport.native.js +0 -343
  254. package/dist/jsx/ToastViewport.native.js.map +0 -1
  255. package/dist/jsx/Toaster.mjs +0 -51
  256. package/dist/jsx/Toaster.mjs.map +0 -1
  257. package/dist/jsx/Toaster.native.js +0 -91
  258. package/dist/jsx/Toaster.native.js.map +0 -1
  259. package/dist/jsx/constants.mjs +0 -4
  260. package/dist/jsx/constants.mjs.map +0 -1
  261. package/dist/jsx/constants.native.js +0 -33
  262. package/dist/jsx/constants.native.js.map +0 -1
  263. package/dist/jsx/index.js.map +0 -1
  264. package/dist/jsx/index.mjs.map +0 -1
  265. package/dist/jsx/types.mjs.map +0 -1
  266. package/dist/jsx/v2.mjs +0 -6
  267. package/dist/jsx/v2.mjs.map +0 -1
  268. package/dist/jsx/v2.native.js +0 -39
  269. package/dist/jsx/v2.native.js.map +0 -1
  270. package/src/Toast.tsx +0 -219
  271. package/src/ToastAnnounce.tsx +0 -103
  272. package/src/ToastImperative.tsx +0 -192
  273. package/src/ToastImpl.tsx +0 -514
  274. package/src/ToastPortal.tsx +0 -19
  275. package/src/ToastProvider.tsx +0 -204
  276. package/src/ToastViewport.tsx +0 -430
  277. package/src/Toaster.tsx +0 -181
  278. package/src/constants.ts +0 -2
  279. package/src/v2.ts +0 -31
  280. package/types/Toast.d.ts +0 -84
  281. package/types/Toast.d.ts.map +0 -1
  282. package/types/ToastAnnounce.d.ts +0 -18
  283. package/types/ToastAnnounce.d.ts.map +0 -1
  284. package/types/ToastImperative.d.ts +0 -95
  285. package/types/ToastImperative.d.ts.map +0 -1
  286. package/types/ToastImpl.d.ts +0 -109
  287. package/types/ToastImpl.d.ts.map +0 -1
  288. package/types/ToastPortal.d.ts +0 -8
  289. package/types/ToastPortal.d.ts.map +0 -1
  290. package/types/ToastProvider.d.ts +0 -92
  291. package/types/ToastProvider.d.ts.map +0 -1
  292. package/types/ToastViewport.d.ts +0 -75
  293. package/types/ToastViewport.d.ts.map +0 -1
  294. package/types/Toaster.d.ts +0 -112
  295. package/types/Toaster.d.ts.map +0 -1
  296. package/types/constants.d.ts +0 -3
  297. package/types/constants.d.ts.map +0 -1
  298. package/types/v2.d.ts +0 -10
  299. package/types/v2.d.ts.map +0 -1
  300. package/v2/index.cjs +0 -2
  301. package/v2/index.js +0 -2
  302. package/v2/index.native.cjs +0 -2
  303. package/v2/index.native.js +0 -2
@@ -1,88 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { isAndroid, isIos, isWeb } from "@tamagui/core";
3
- import React from "react";
4
- import { createNativeToast } from "./createNativeToast.native.js";
5
- function _type_of(obj) {
6
- "@swc/helpers - typeof";
7
-
8
- return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
9
- }
10
- var ToastContext = /* @__PURE__ */React.createContext({});
11
- var ToastCurrentContext = /* @__PURE__ */React.createContext(null);
12
- var useToastController = function () {
13
- return React.useContext(ToastContext);
14
- };
15
- var useToastState = function () {
16
- return React.useContext(ToastCurrentContext);
17
- };
18
- var useToast = function () {
19
- return {
20
- ...useToastController(),
21
- currentToast: useToastState()
22
- };
23
- };
24
- var ToastImperativeProvider = function (param) {
25
- var {
26
- children,
27
- options
28
- } = param;
29
- var counterRef = React.useRef(0);
30
- var [toast, setToast] = React.useState(null);
31
- var [lastNativeToastRef, setLastNativeToastRef] = React.useState(null);
32
- var show = React.useCallback(function (title, showOptions) {
33
- var _showOptions_native;
34
- var native = (_showOptions_native = showOptions === null || showOptions === void 0 ? void 0 : showOptions.native) !== null && _showOptions_native !== void 0 ? _showOptions_native : options.native;
35
- var isWebNative = Array.isArray(native) ? native.includes("web") : native === "web";
36
- var isMobileNative = Array.isArray(native) ? native.includes("mobile") : native === "mobile";
37
- var isAndroidNative = isMobileNative || (Array.isArray(native) ? native.includes("android") : native === "android");
38
- var isIosNative = isMobileNative || (Array.isArray(native) ? native.includes("ios") : native === "ios");
39
- var isHandledNatively = native === true || isWeb && isWebNative || !isWeb && isMobileNative || isAndroid && isAndroidNative || isIos && isIosNative;
40
- if (isHandledNatively) {
41
- var nativeToastResult = createNativeToast(title, showOptions !== null && showOptions !== void 0 ? showOptions : {});
42
- if ((typeof nativeToastResult === "undefined" ? "undefined" : _type_of(nativeToastResult)) === "object" && nativeToastResult.nativeToastRef) {
43
- setLastNativeToastRef(nativeToastResult.nativeToastRef);
44
- }
45
- }
46
- counterRef.current++;
47
- var _showOptions_viewportName;
48
- setToast({
49
- ...(showOptions === null || showOptions === void 0 ? void 0 : showOptions.customData),
50
- ...showOptions,
51
- viewportName: (_showOptions_viewportName = showOptions === null || showOptions === void 0 ? void 0 : showOptions.viewportName) !== null && _showOptions_viewportName !== void 0 ? _showOptions_viewportName : "default",
52
- title,
53
- id: counterRef.current.toString(),
54
- isHandledNatively
55
- });
56
- return true;
57
- }, [setToast, JSON.stringify(options.native || null)]);
58
- var hide = React.useCallback(function () {
59
- lastNativeToastRef === null || lastNativeToastRef === void 0 ? void 0 : lastNativeToastRef.close();
60
- setToast(function (prev) {
61
- if (!prev) return null;
62
- return {
63
- ...prev,
64
- hide: true
65
- };
66
- });
67
- setTimeout(function () {
68
- setToast(null);
69
- }, 100);
70
- }, [setToast, lastNativeToastRef]);
71
- var contextValue = React.useMemo(function () {
72
- return {
73
- show,
74
- hide,
75
- nativeToast: lastNativeToastRef,
76
- options
77
- };
78
- }, [show, hide, lastNativeToastRef, JSON.stringify(options || null)]);
79
- return /* @__PURE__ */_jsx(ToastContext.Provider, {
80
- value: contextValue,
81
- children: /* @__PURE__ */_jsx(ToastCurrentContext.Provider, {
82
- value: toast,
83
- children
84
- })
85
- });
86
- };
87
- export { ToastImperativeProvider, useToast, useToastController, useToastState };
88
- //# sourceMappingURL=ToastImperative.native.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["jsx","_jsx","isAndroid","isIos","isWeb","React","createNativeToast","_type_of","obj","Symbol","constructor","ToastContext","createContext","ToastCurrentContext","useToastController","useContext","useToastState","useToast","currentToast","ToastImperativeProvider","param","children","options","counterRef","useRef","toast","setToast","useState","lastNativeToastRef","setLastNativeToastRef","show","useCallback","title","showOptions","_showOptions_native","native","isWebNative","Array","isArray","includes","isMobileNative","isAndroidNative","isIosNative","isHandledNatively","nativeToastResult","nativeToastRef","current","_showOptions_viewportName","customData","viewportName","id","toString","JSON","stringify","hide","close","prev","setTimeout","contextValue","useMemo"],"sources":["../../src/ToastImperative.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,316 +0,0 @@
1
- import { useIsPresent } from "@tamagui/animate-presence";
2
- import { useComposedRefs } from "@tamagui/compose-refs";
3
- import { isWeb } from "@tamagui/constants";
4
- import { Theme, View, createStyledContext, styled, useConfiguration, useEvent, useThemeName } from "@tamagui/core";
5
- import { Dismissable } from "@tamagui/dismissable";
6
- import { composeEventHandlers } from "@tamagui/helpers";
7
- import { PortalItem } from "@tamagui/portal";
8
- import { YStack } from "@tamagui/stacks";
9
- import * as React from "react";
10
- import { TOAST_NAME } from "./constants.mjs";
11
- import { ToastAnnounce } from "./ToastAnnounce.mjs";
12
- import { Collection, useToastProviderContext } from "./ToastProvider.mjs";
13
- import { VIEWPORT_PAUSE, VIEWPORT_RESUME } from "./ToastViewport.mjs";
14
- import { Fragment, jsx, jsxs } from "react/jsx-runtime";
15
- const getPanResponder = () => {
16
- return null;
17
- };
18
- const ToastImplFrame = styled(YStack, {
19
- name: "ToastImpl",
20
- tabIndex: 0,
21
- variants: {
22
- unstyled: {
23
- false: {
24
- focusStyle: {
25
- outlineStyle: "solid",
26
- outlineWidth: 2,
27
- outlineColor: "$outlineColor"
28
- },
29
- backgroundColor: "$color6",
30
- borderRadius: "$4",
31
- paddingHorizontal: "$4",
32
- paddingVertical: "$3",
33
- marginHorizontal: "auto",
34
- marginVertical: "$1",
35
- elevation: "$3"
36
- }
37
- }
38
- },
39
- defaultVariants: {
40
- unstyled: process.env.TAMAGUI_HEADLESS === "1"
41
- }
42
- });
43
- const {
44
- Provider: ToastInteractiveProvider,
45
- useStyledContext: useToastInteractiveContext
46
- } = createStyledContext({
47
- onClose() {}
48
- });
49
- const ToastImpl = React.forwardRef((props, forwardedRef) => {
50
- const {
51
- scope,
52
- type = "foreground",
53
- duration: durationProp,
54
- open,
55
- onClose,
56
- onEscapeKeyDown,
57
- onPause,
58
- onResume,
59
- onSwipeStart,
60
- onSwipeMove,
61
- onSwipeCancel,
62
- onSwipeEnd,
63
- viewportName = "default",
64
- ...toastProps
65
- } = props;
66
- const isPresent = useIsPresent();
67
- const context = useToastProviderContext(scope);
68
- const [node, setNode] = React.useState(null);
69
- const composedRefs = useComposedRefs(forwardedRef, setNode);
70
- const duration = durationProp || context.duration;
71
- const closeTimerStartTimeRef = React.useRef(0);
72
- const closeTimerRemainingTimeRef = React.useRef(duration);
73
- const closeTimerRef = React.useRef(0);
74
- const {
75
- onToastAdd,
76
- onToastRemove
77
- } = context;
78
- const viewport = React.useMemo(() => {
79
- return context.viewports[viewportName];
80
- }, [context.viewports, viewportName]);
81
- const handleClose = useEvent(() => {
82
- if (!isPresent) return;
83
- if (isWeb) {
84
- if (node?.contains(document.activeElement)) viewport?.focus();
85
- }
86
- onClose();
87
- });
88
- const startTimer = React.useCallback(duration2 => {
89
- if (!duration2 || duration2 === Number.POSITIVE_INFINITY) return;
90
- clearTimeout(closeTimerRef.current);
91
- closeTimerStartTimeRef.current = (/* @__PURE__ */new Date()).getTime();
92
- closeTimerRef.current = setTimeout(handleClose, duration2);
93
- }, [handleClose]);
94
- const handleResume = React.useCallback(() => {
95
- startTimer(closeTimerRemainingTimeRef.current);
96
- onResume?.();
97
- }, [onResume, startTimer]);
98
- const handlePause = React.useCallback(() => {
99
- const elapsedTime = (/* @__PURE__ */new Date()).getTime() - closeTimerStartTimeRef.current;
100
- closeTimerRemainingTimeRef.current = closeTimerRemainingTimeRef.current - elapsedTime;
101
- window.clearTimeout(closeTimerRef.current);
102
- onPause?.();
103
- }, [onPause]);
104
- React.useEffect(() => {
105
- if (!isWeb) return;
106
- if (viewport) {
107
- viewport.addEventListener(VIEWPORT_PAUSE, handlePause);
108
- viewport.addEventListener(VIEWPORT_RESUME, handleResume);
109
- return () => {
110
- viewport.removeEventListener(VIEWPORT_PAUSE, handlePause);
111
- viewport.removeEventListener(VIEWPORT_RESUME, handleResume);
112
- };
113
- }
114
- }, [viewport, duration, onPause, onResume, startTimer]);
115
- React.useEffect(() => {
116
- if (open && !context.isClosePausedRef.current) startTimer(duration);
117
- }, [open, duration, context.isClosePausedRef, startTimer]);
118
- React.useEffect(() => {
119
- onToastAdd();
120
- return () => onToastRemove();
121
- }, [onToastAdd, onToastRemove]);
122
- const announceTextContent = React.useMemo(() => {
123
- if (!isWeb) return null;
124
- return node ? getAnnounceTextContent(node) : null;
125
- }, [node]);
126
- const isHorizontalSwipe = ["left", "right", "horizontal"].includes(context.swipeDirection);
127
- const {
128
- animationDriver
129
- } = useConfiguration();
130
- if (!animationDriver) throw new Error("Must set animations in tamagui.config.ts");
131
- const {
132
- useAnimatedNumber,
133
- useAnimatedNumberStyle
134
- } = animationDriver;
135
- const animatedNumber = useAnimatedNumber(0);
136
- const AnimatedView = animationDriver["NumberView"] ?? animationDriver.View ?? View;
137
- const animatedStyles = useAnimatedNumberStyle(animatedNumber, val => {
138
- "worklet";
139
-
140
- return {
141
- transform: [isHorizontalSwipe ? {
142
- translateX: val
143
- } : {
144
- translateY: val
145
- }]
146
- };
147
- });
148
- const panResponder = React.useMemo(() => {
149
- const PanResponder = getPanResponder();
150
- if (!PanResponder) return null;
151
- return PanResponder.create({
152
- onMoveShouldSetPanResponder: (e, gesture) => {
153
- if (shouldGrantGestureMove(context.swipeDirection, gesture)) {
154
- onSwipeStart?.(e);
155
- return true;
156
- }
157
- return false;
158
- },
159
- onPanResponderGrant: e => {
160
- if (!isWeb) handlePause?.();
161
- },
162
- onPanResponderMove: (e, gesture) => {
163
- const {
164
- x,
165
- y
166
- } = getGestureDistance(context.swipeDirection, gesture);
167
- const delta = {
168
- x,
169
- y
170
- };
171
- animatedNumber.setValue(isHorizontalSwipe ? x : y, {
172
- type: "direct"
173
- });
174
- if (isDeltaInDirection(delta, context.swipeDirection, context.swipeThreshold)) onSwipeEnd?.(e);
175
- onSwipeMove?.(e);
176
- },
177
- onPanResponderEnd: (e, {
178
- dx,
179
- dy
180
- }) => {
181
- if (!isDeltaInDirection({
182
- x: dx,
183
- y: dy
184
- }, context.swipeDirection, context.swipeThreshold)) {
185
- if (!isWeb) handleResume?.();
186
- onSwipeCancel?.(e);
187
- animatedNumber.setValue(0, {
188
- type: "spring"
189
- });
190
- }
191
- }
192
- });
193
- }, [handlePause, handleResume]);
194
- const themeName = useThemeName();
195
- return /* @__PURE__ */jsxs(Fragment, {
196
- children: [announceTextContent && /* @__PURE__ */jsx(ToastAnnounce, {
197
- scope,
198
- role: "status",
199
- "aria-live": type === "foreground" ? "assertive" : "polite",
200
- "aria-atomic": true,
201
- children: announceTextContent
202
- }), /* @__PURE__ */jsx(PortalItem, {
203
- hostName: viewportName ?? "default",
204
- children: /* @__PURE__ */jsx(ToastInteractiveProvider, {
205
- scope,
206
- onClose: () => {
207
- handleClose();
208
- },
209
- children: /* @__PURE__ */jsx(Dismissable, {
210
- onEscapeKeyDown: composeEventHandlers(onEscapeKeyDown, () => {
211
- if (!context.isFocusedToastEscapeKeyDownRef.current) handleClose();
212
- context.isFocusedToastEscapeKeyDownRef.current = false;
213
- }),
214
- children: /* @__PURE__ */jsx(Theme, {
215
- contain: true,
216
- forceClassName: true,
217
- name: themeName,
218
- children: /* @__PURE__ */jsx(AnimatedView, {
219
- ...panResponder?.panHandlers,
220
- style: [{
221
- margin: "auto"
222
- }, animatedStyles],
223
- children: /* @__PURE__ */jsx(Collection.ItemSlot, {
224
- scope: context.toastScope,
225
- children: /* @__PURE__ */jsx(ToastImplFrame, {
226
- role: "status",
227
- "aria-live": "off",
228
- "aria-atomic": true,
229
- "data-state": open ? "open" : "closed",
230
- "data-swipe-direction": context.swipeDirection,
231
- pointerEvents: "auto",
232
- "$platform-web": {
233
- touchAction: "none",
234
- userSelect: "none"
235
- },
236
- ...toastProps,
237
- ref: composedRefs,
238
- ...(isWeb && {
239
- onKeyDown: composeEventHandlers(props.onKeyDown, event => {
240
- if (event.key !== "Escape") return;
241
- onEscapeKeyDown?.(event);
242
- if (!event.defaultPrevented) {
243
- context.isFocusedToastEscapeKeyDownRef.current = true;
244
- handleClose();
245
- }
246
- })
247
- })
248
- })
249
- })
250
- })
251
- })
252
- })
253
- }, props.id)
254
- })]
255
- });
256
- });
257
- ToastImpl.propTypes = {
258
- type(props) {
259
- if (props.type && !["foreground", "background"].includes(props.type)) {
260
- const error = `Invalid prop \`type\` supplied to \`${TOAST_NAME}\`. Expected \`foreground | background\`.`;
261
- return new Error(error);
262
- }
263
- return null;
264
- }
265
- };
266
- const isDeltaInDirection = (delta, direction, threshold = 0) => {
267
- const deltaX = Math.abs(delta.x);
268
- const deltaY = Math.abs(delta.y);
269
- const isDeltaX = deltaX > deltaY;
270
- if (direction === "left" || direction === "right" || direction === "horizontal") return isDeltaX && deltaX > threshold;
271
- return !isDeltaX && deltaY > threshold;
272
- };
273
- function getAnnounceTextContent(container) {
274
- if (!isWeb) return "";
275
- const textContent = [];
276
- Array.from(container.childNodes).forEach(node => {
277
- if (node.nodeType === node.TEXT_NODE && node.textContent) textContent.push(node.textContent);
278
- if (isHTMLElement(node)) {
279
- const isHidden = node.ariaHidden || node.hidden || node.style.display === "none";
280
- const isExcluded = node.dataset.toastAnnounceExclude === "";
281
- if (!isHidden) if (isExcluded) {
282
- const altText = node.dataset.toastAnnounceAlt;
283
- if (altText) textContent.push(altText);
284
- } else textContent.push(...getAnnounceTextContent(node));
285
- }
286
- });
287
- return textContent;
288
- }
289
- function isHTMLElement(node) {
290
- return node.nodeType === node.ELEMENT_NODE;
291
- }
292
- const GESTURE_GRANT_THRESHOLD = 10;
293
- const shouldGrantGestureMove = (dir, {
294
- dx,
295
- dy
296
- }) => {
297
- if ((dir === "horizontal" || dir === "left") && dx < -GESTURE_GRANT_THRESHOLD) return true;
298
- if ((dir === "horizontal" || dir === "right") && dx > GESTURE_GRANT_THRESHOLD) return true;
299
- if ((dir === "vertical" || dir === "up") && dy > -GESTURE_GRANT_THRESHOLD) return true;
300
- if ((dir === "vertical" || dir === "down") && dy < GESTURE_GRANT_THRESHOLD) return true;
301
- return false;
302
- };
303
- const getGestureDistance = (dir, {
304
- dx,
305
- dy
306
- }) => {
307
- let y = 0;
308
- let x = 0;
309
- if (dir === "horizontal") x = dx;else if (dir === "left") x = Math.min(0, dx);else if (dir === "right") x = Math.max(0, dx);else if (dir === "vertical") y = dy;else if (dir === "up") y = Math.min(0, dy);else if (dir === "down") y = Math.max(0, dy);
310
- return {
311
- x,
312
- y
313
- };
314
- };
315
- export { ToastImpl, ToastImplFrame, useToastInteractiveContext };
316
- //# sourceMappingURL=ToastImpl.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["useIsPresent","useComposedRefs","isWeb","Theme","View","createStyledContext","styled","useConfiguration","useEvent","useThemeName","Dismissable","composeEventHandlers","PortalItem","YStack","React","TOAST_NAME","ToastAnnounce","Collection","useToastProviderContext","VIEWPORT_PAUSE","VIEWPORT_RESUME","Fragment","jsx","jsxs","getPanResponder","ToastImplFrame","name","tabIndex","variants","unstyled","false","focusStyle","outlineStyle","outlineWidth","outlineColor","backgroundColor","borderRadius","paddingHorizontal","paddingVertical","marginHorizontal","marginVertical","elevation","defaultVariants","process","env","TAMAGUI_HEADLESS","Provider","ToastInteractiveProvider","useStyledContext","useToastInteractiveContext","onClose","ToastImpl","forwardRef","props","forwardedRef","scope","type","duration","durationProp","open","onEscapeKeyDown","onPause","onResume","onSwipeStart","onSwipeMove","onSwipeCancel","onSwipeEnd","viewportName","toastProps","isPresent","context","node","setNode","useState","composedRefs","closeTimerStartTimeRef","useRef","closeTimerRemainingTimeRef","closeTimerRef","onToastAdd","onToastRemove","viewport","useMemo","viewports","handleClose","contains","document","activeElement","focus","startTimer","useCallback","duration2","Number","POSITIVE_INFINITY","clearTimeout","current","Date","getTime","setTimeout","handleResume","handlePause","elapsedTime","window","useEffect","addEventListener","removeEventListener","isClosePausedRef","announceTextContent","getAnnounceTextContent","isHorizontalSwipe","includes","swipeDirection","animationDriver","Error","useAnimatedNumber","useAnimatedNumberStyle","animatedNumber","AnimatedView","animatedStyles","val","transform","translateX","translateY","panResponder","PanResponder","create","onMoveShouldSetPanResponder","e","gesture","shouldGrantGestureMove","onPanResponderGrant","onPanResponderMove","x","y","getGestureDistance","delta","setValue","isDeltaInDirection","swipeThreshold","onPanResponderEnd","dx","dy","themeName","children","role","hostName","isFocusedToastEscapeKeyDownRef","contain","forceClassName","panHandlers","style","margin","ItemSlot","toastScope","pointerEvents","touchAction","userSelect","ref","onKeyDown","event","key","defaultPrevented","id","propTypes","error","direction","threshold","deltaX","Math","abs","deltaY","isDeltaX","container","textContent","Array","from","childNodes","forEach","nodeType","TEXT_NODE","push","isHTMLElement","isHidden","ariaHidden","hidden","display","isExcluded","dataset","toastAnnounceExclude","altText","toastAnnounceAlt","ELEMENT_NODE","GESTURE_GRANT_THRESHOLD","dir","min","max"],"sources":["ToastImpl.mjs"],"sourcesContent":["import { useIsPresent } from \"@tamagui/animate-presence\";\nimport { useComposedRefs } from \"@tamagui/compose-refs\";\nimport { isWeb } from \"@tamagui/constants\";\nimport { Theme, View, createStyledContext, styled, useConfiguration, useEvent, useThemeName } from \"@tamagui/core\";\nimport { Dismissable } from \"@tamagui/dismissable\";\nimport { composeEventHandlers } from \"@tamagui/helpers\";\nimport { PortalItem } from \"@tamagui/portal\";\nimport { YStack } from \"@tamagui/stacks\";\nimport * as React from \"react\";\nimport { TOAST_NAME } from \"./constants\";\nimport { ToastAnnounce } from \"./ToastAnnounce\";\nimport { Collection, useToastProviderContext } from \"./ToastProvider\";\nimport { VIEWPORT_PAUSE, VIEWPORT_RESUME } from \"./ToastViewport\";\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\n\nconst getPanResponder = () => {\n\treturn null;\n};\nconst ToastImplFrame = styled(YStack, {\n\tname: \"ToastImpl\",\n\ttabIndex: 0,\n\tvariants: { unstyled: { false: {\n\t\tfocusStyle: {\n\t\t\toutlineStyle: \"solid\",\n\t\t\toutlineWidth: 2,\n\t\t\toutlineColor: \"$outlineColor\"\n\t\t},\n\t\tbackgroundColor: \"$color6\",\n\t\tborderRadius: \"$4\",\n\t\tpaddingHorizontal: \"$4\",\n\t\tpaddingVertical: \"$3\",\n\t\tmarginHorizontal: \"auto\",\n\t\tmarginVertical: \"$1\",\n\t\televation: \"$3\"\n\t} } },\n\tdefaultVariants: { unstyled: process.env.TAMAGUI_HEADLESS === \"1\" }\n});\nconst { Provider: ToastInteractiveProvider, useStyledContext: useToastInteractiveContext } = createStyledContext({ onClose() {} });\nconst ToastImpl = React.forwardRef((props, forwardedRef) => {\n\tconst { scope, type = \"foreground\", duration: durationProp, open, onClose, onEscapeKeyDown, onPause, onResume, onSwipeStart, onSwipeMove, onSwipeCancel, onSwipeEnd, viewportName = \"default\", ...toastProps } = props;\n\tconst isPresent = useIsPresent();\n\tconst context = useToastProviderContext(scope);\n\tconst [node, setNode] = React.useState(null);\n\tconst composedRefs = useComposedRefs(forwardedRef, setNode);\n\tconst duration = durationProp || context.duration;\n\tconst closeTimerStartTimeRef = React.useRef(0);\n\tconst closeTimerRemainingTimeRef = React.useRef(duration);\n\tconst closeTimerRef = React.useRef(0);\n\tconst { onToastAdd, onToastRemove } = context;\n\tconst viewport = React.useMemo(() => {\n\t\treturn context.viewports[viewportName];\n\t}, [context.viewports, viewportName]);\n\tconst handleClose = useEvent(() => {\n\t\tif (!isPresent) return;\n\t\tif (isWeb) {\n\t\t\tif (node?.contains(document.activeElement)) viewport?.focus();\n\t\t}\n\t\tonClose();\n\t});\n\tconst startTimer = React.useCallback((duration2) => {\n\t\tif (!duration2 || duration2 === Number.POSITIVE_INFINITY) return;\n\t\tclearTimeout(closeTimerRef.current);\n\t\tcloseTimerStartTimeRef.current = (/* @__PURE__ */ new Date()).getTime();\n\t\tcloseTimerRef.current = setTimeout(handleClose, duration2);\n\t}, [handleClose]);\n\tconst handleResume = React.useCallback(() => {\n\t\tstartTimer(closeTimerRemainingTimeRef.current);\n\t\tonResume?.();\n\t}, [onResume, startTimer]);\n\tconst handlePause = React.useCallback(() => {\n\t\tconst elapsedTime = (/* @__PURE__ */ new Date()).getTime() - closeTimerStartTimeRef.current;\n\t\tcloseTimerRemainingTimeRef.current = closeTimerRemainingTimeRef.current - elapsedTime;\n\t\twindow.clearTimeout(closeTimerRef.current);\n\t\tonPause?.();\n\t}, [onPause]);\n\tReact.useEffect(() => {\n\t\tif (!isWeb) return;\n\t\tif (viewport) {\n\t\t\tviewport.addEventListener(VIEWPORT_PAUSE, handlePause);\n\t\t\tviewport.addEventListener(VIEWPORT_RESUME, handleResume);\n\t\t\treturn () => {\n\t\t\t\tviewport.removeEventListener(VIEWPORT_PAUSE, handlePause);\n\t\t\t\tviewport.removeEventListener(VIEWPORT_RESUME, handleResume);\n\t\t\t};\n\t\t}\n\t}, [\n\t\tviewport,\n\t\tduration,\n\t\tonPause,\n\t\tonResume,\n\t\tstartTimer\n\t]);\n\tReact.useEffect(() => {\n\t\tif (open && !context.isClosePausedRef.current) startTimer(duration);\n\t}, [\n\t\topen,\n\t\tduration,\n\t\tcontext.isClosePausedRef,\n\t\tstartTimer\n\t]);\n\tReact.useEffect(() => {\n\t\tonToastAdd();\n\t\treturn () => onToastRemove();\n\t}, [onToastAdd, onToastRemove]);\n\tconst announceTextContent = React.useMemo(() => {\n\t\tif (!isWeb) return null;\n\t\treturn node ? getAnnounceTextContent(node) : null;\n\t}, [node]);\n\tconst isHorizontalSwipe = [\n\t\t\"left\",\n\t\t\"right\",\n\t\t\"horizontal\"\n\t].includes(context.swipeDirection);\n\tconst { animationDriver } = useConfiguration();\n\tif (!animationDriver) throw new Error(\"Must set animations in tamagui.config.ts\");\n\tconst { useAnimatedNumber, useAnimatedNumberStyle } = animationDriver;\n\tconst animatedNumber = useAnimatedNumber(0);\n\tconst AnimatedView = animationDriver[\"NumberView\"] ?? animationDriver.View ?? View;\n\tconst animatedStyles = useAnimatedNumberStyle(animatedNumber, (val) => {\n\t\t\"worklet\";\n\t\treturn { transform: [isHorizontalSwipe ? { translateX: val } : { translateY: val }] };\n\t});\n\tconst panResponder = React.useMemo(() => {\n\t\tconst PanResponder = getPanResponder();\n\t\tif (!PanResponder) return null;\n\t\treturn PanResponder.create({\n\t\t\tonMoveShouldSetPanResponder: (e, gesture) => {\n\t\t\t\tif (shouldGrantGestureMove(context.swipeDirection, gesture)) {\n\t\t\t\t\tonSwipeStart?.(e);\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\tonPanResponderGrant: (e) => {\n\t\t\t\tif (!isWeb) handlePause?.();\n\t\t\t},\n\t\t\tonPanResponderMove: (e, gesture) => {\n\t\t\t\tconst { x, y } = getGestureDistance(context.swipeDirection, gesture);\n\t\t\t\tconst delta = {\n\t\t\t\t\tx,\n\t\t\t\t\ty\n\t\t\t\t};\n\t\t\t\tanimatedNumber.setValue(isHorizontalSwipe ? x : y, { type: \"direct\" });\n\t\t\t\tif (isDeltaInDirection(delta, context.swipeDirection, context.swipeThreshold)) onSwipeEnd?.(e);\n\t\t\t\tonSwipeMove?.(e);\n\t\t\t},\n\t\t\tonPanResponderEnd: (e, { dx, dy }) => {\n\t\t\t\tif (!isDeltaInDirection({\n\t\t\t\t\tx: dx,\n\t\t\t\t\ty: dy\n\t\t\t\t}, context.swipeDirection, context.swipeThreshold)) {\n\t\t\t\t\tif (!isWeb) handleResume?.();\n\t\t\t\t\tonSwipeCancel?.(e);\n\t\t\t\t\tanimatedNumber.setValue(0, { type: \"spring\" });\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}, [handlePause, handleResume]);\n\tconst themeName = useThemeName();\n\treturn /* @__PURE__ */ jsxs(Fragment, { children: [announceTextContent && /* @__PURE__ */ jsx(ToastAnnounce, {\n\t\tscope,\n\t\trole: \"status\",\n\t\t\"aria-live\": type === \"foreground\" ? \"assertive\" : \"polite\",\n\t\t\"aria-atomic\": true,\n\t\tchildren: announceTextContent\n\t}), /* @__PURE__ */ jsx(PortalItem, {\n\t\thostName: viewportName ?? \"default\",\n\t\tchildren: /* @__PURE__ */ jsx(ToastInteractiveProvider, {\n\t\t\tscope,\n\t\t\tonClose: () => {\n\t\t\t\thandleClose();\n\t\t\t},\n\t\t\tchildren: /* @__PURE__ */ jsx(Dismissable, {\n\t\t\t\tonEscapeKeyDown: composeEventHandlers(onEscapeKeyDown, () => {\n\t\t\t\t\tif (!context.isFocusedToastEscapeKeyDownRef.current) handleClose();\n\t\t\t\t\tcontext.isFocusedToastEscapeKeyDownRef.current = false;\n\t\t\t\t}),\n\t\t\t\tchildren: /* @__PURE__ */ jsx(Theme, {\n\t\t\t\t\tcontain: true,\n\t\t\t\t\tforceClassName: true,\n\t\t\t\t\tname: themeName,\n\t\t\t\t\tchildren: /* @__PURE__ */ jsx(AnimatedView, {\n\t\t\t\t\t\t...panResponder?.panHandlers,\n\t\t\t\t\t\tstyle: [{ margin: \"auto\" }, animatedStyles],\n\t\t\t\t\t\tchildren: /* @__PURE__ */ jsx(Collection.ItemSlot, {\n\t\t\t\t\t\t\tscope: context.toastScope,\n\t\t\t\t\t\t\tchildren: /* @__PURE__ */ jsx(ToastImplFrame, {\n\t\t\t\t\t\t\t\trole: \"status\",\n\t\t\t\t\t\t\t\t\"aria-live\": \"off\",\n\t\t\t\t\t\t\t\t\"aria-atomic\": true,\n\t\t\t\t\t\t\t\t\"data-state\": open ? \"open\" : \"closed\",\n\t\t\t\t\t\t\t\t\"data-swipe-direction\": context.swipeDirection,\n\t\t\t\t\t\t\t\tpointerEvents: \"auto\",\n\t\t\t\t\t\t\t\t\"$platform-web\": {\n\t\t\t\t\t\t\t\t\ttouchAction: \"none\",\n\t\t\t\t\t\t\t\t\tuserSelect: \"none\"\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t...toastProps,\n\t\t\t\t\t\t\t\tref: composedRefs,\n\t\t\t\t\t\t\t\t...isWeb && { onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n\t\t\t\t\t\t\t\t\tif (event.key !== \"Escape\") return;\n\t\t\t\t\t\t\t\t\tonEscapeKeyDown?.(event);\n\t\t\t\t\t\t\t\t\tif (!event.defaultPrevented) {\n\t\t\t\t\t\t\t\t\t\tcontext.isFocusedToastEscapeKeyDownRef.current = true;\n\t\t\t\t\t\t\t\t\t\thandleClose();\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}) }\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t})\n\t\t\t\t\t})\n\t\t\t\t})\n\t\t\t})\n\t\t}, props.id)\n\t})] });\n});\nToastImpl.propTypes = { type(props) {\n\tif (props.type && ![\"foreground\", \"background\"].includes(props.type)) {\n\t\tconst error = `Invalid prop \\`type\\` supplied to \\`${TOAST_NAME}\\`. Expected \\`foreground | background\\`.`;\n\t\treturn new Error(error);\n\t}\n\treturn null;\n} };\nconst isDeltaInDirection = (delta, direction, threshold = 0) => {\n\tconst deltaX = Math.abs(delta.x);\n\tconst deltaY = Math.abs(delta.y);\n\tconst isDeltaX = deltaX > deltaY;\n\tif (direction === \"left\" || direction === \"right\" || direction === \"horizontal\") return isDeltaX && deltaX > threshold;\n\treturn !isDeltaX && deltaY > threshold;\n};\nfunction getAnnounceTextContent(container) {\n\tif (!isWeb) return \"\";\n\tconst textContent = [];\n\tArray.from(container.childNodes).forEach((node) => {\n\t\tif (node.nodeType === node.TEXT_NODE && node.textContent) textContent.push(node.textContent);\n\t\tif (isHTMLElement(node)) {\n\t\t\tconst isHidden = node.ariaHidden || node.hidden || node.style.display === \"none\";\n\t\t\tconst isExcluded = node.dataset.toastAnnounceExclude === \"\";\n\t\t\tif (!isHidden) if (isExcluded) {\n\t\t\t\tconst altText = node.dataset.toastAnnounceAlt;\n\t\t\t\tif (altText) textContent.push(altText);\n\t\t\t} else textContent.push(...getAnnounceTextContent(node));\n\t\t}\n\t});\n\treturn textContent;\n}\nfunction isHTMLElement(node) {\n\treturn node.nodeType === node.ELEMENT_NODE;\n}\nconst GESTURE_GRANT_THRESHOLD = 10;\nconst shouldGrantGestureMove = (dir, { dx, dy }) => {\n\tif ((dir === \"horizontal\" || dir === \"left\") && dx < -GESTURE_GRANT_THRESHOLD) return true;\n\tif ((dir === \"horizontal\" || dir === \"right\") && dx > GESTURE_GRANT_THRESHOLD) return true;\n\tif ((dir === \"vertical\" || dir === \"up\") && dy > -GESTURE_GRANT_THRESHOLD) return true;\n\tif ((dir === \"vertical\" || dir === \"down\") && dy < GESTURE_GRANT_THRESHOLD) return true;\n\treturn false;\n};\nconst getGestureDistance = (dir, { dx, dy }) => {\n\tlet y = 0;\n\tlet x = 0;\n\tif (dir === \"horizontal\") x = dx;\n\telse if (dir === \"left\") x = Math.min(0, dx);\n\telse if (dir === \"right\") x = Math.max(0, dx);\n\telse if (dir === \"vertical\") y = dy;\n\telse if (dir === \"up\") y = Math.min(0, dy);\n\telse if (dir === \"down\") y = Math.max(0, dy);\n\treturn {\n\t\tx,\n\t\ty\n\t};\n};\n\nexport { ToastImpl, ToastImplFrame, useToastInteractiveContext };"],"mappings":"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","ignoreList":[]}