@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,118 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { createCollection } from "@tamagui/collection";
3
- import { createStyledContext } from "@tamagui/core";
4
- import { startTransition } from "@tamagui/start-transition";
5
- import * as React from "react";
6
- import { TOAST_CONTEXT } from "./constants.native.js";
7
- import { ToastImperativeProvider } from "./ToastImperative.native.js";
8
- var PROVIDER_NAME = "ToastProvider";
9
- var [Collection, useCollection] = createCollection("Toast");
10
- var {
11
- Provider: ToastProviderProvider,
12
- useStyledContext: useToastProviderContext
13
- } = createStyledContext(
14
- // since we always provide this we can avoid setting here
15
- {}, "Toast__");
16
- var ToastProvider = function (props) {
17
- var {
18
- scope = TOAST_CONTEXT,
19
- id: providedId,
20
- burntOptions,
21
- native,
22
- notificationOptions,
23
- label = "Notification",
24
- duration = 5e3,
25
- swipeDirection = "right",
26
- swipeThreshold = 50,
27
- children
28
- } = props;
29
- var backupId = React.useId();
30
- var id = providedId !== null && providedId !== void 0 ? providedId : backupId;
31
- var [viewports, setViewports] = React.useState({});
32
- var [toastCount, setToastCount] = React.useState(0);
33
- var isFocusedToastEscapeKeyDownRef = React.useRef(false);
34
- var isClosePausedRef = React.useRef(false);
35
- var handleViewportChange = React.useCallback(function (name, viewport) {
36
- startTransition(function () {
37
- setViewports(function (prev) {
38
- return {
39
- ...prev,
40
- [name]: viewport
41
- };
42
- });
43
- });
44
- }, []);
45
- var options = React.useMemo(function () {
46
- return {
47
- duration,
48
- burntOptions,
49
- native,
50
- notificationOptions
51
- };
52
- },
53
- // nested simple object so JSON.stringify
54
- [JSON.stringify([duration, burntOptions, native, notificationOptions])]);
55
- return /* @__PURE__ */_jsx(Collection.Provider, {
56
- scope,
57
- children: /* @__PURE__ */_jsx(ToastProviderProvider, {
58
- scope,
59
- id,
60
- label,
61
- duration,
62
- swipeDirection,
63
- swipeThreshold,
64
- toastCount,
65
- viewports,
66
- onViewportChange: handleViewportChange,
67
- onToastAdd: React.useCallback(function () {
68
- startTransition(function () {
69
- setToastCount(function (prevCount) {
70
- return prevCount + 1;
71
- });
72
- });
73
- }, []),
74
- onToastRemove: React.useCallback(function () {
75
- startTransition(function () {
76
- setToastCount(function (prevCount) {
77
- return prevCount - 1;
78
- });
79
- });
80
- }, []),
81
- isFocusedToastEscapeKeyDownRef,
82
- isClosePausedRef,
83
- options,
84
- children: /* @__PURE__ */_jsx(ToastImperativeProvider, {
85
- options,
86
- children
87
- })
88
- })
89
- });
90
- };
91
- function ReprogapateToastProvider(props) {
92
- var {
93
- children,
94
- context
95
- } = props;
96
- return /* @__PURE__ */_jsx(Collection.Provider, {
97
- scope: context.toastScope,
98
- children: /* @__PURE__ */_jsx(ToastProviderProvider, {
99
- ...context,
100
- children: /* @__PURE__ */_jsx(ToastImperativeProvider, {
101
- options: context.options,
102
- children
103
- })
104
- })
105
- });
106
- }
107
- ToastProvider.propTypes = {
108
- label(props) {
109
- if (props.label && typeof props.label === "string" && !props.label.trim()) {
110
- var error = `Invalid prop \`label\` supplied to \`${PROVIDER_NAME}\`. Expected non-empty \`string\`.`;
111
- return new Error(error);
112
- }
113
- return null;
114
- }
115
- };
116
- ToastProvider.displayName = PROVIDER_NAME;
117
- export { Collection, ReprogapateToastProvider, ToastProvider, useCollection, useToastProviderContext };
118
- //# sourceMappingURL=ToastProvider.native.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["jsx","_jsx","createCollection","createStyledContext","startTransition","React","TOAST_CONTEXT","ToastImperativeProvider","PROVIDER_NAME","Collection","useCollection","Provider","ToastProviderProvider","useStyledContext","useToastProviderContext","ToastProvider","props","scope","id","providedId","burntOptions","native","notificationOptions","label","duration","swipeDirection","swipeThreshold","children","backupId","useId","viewports","setViewports","useState","toastCount","setToastCount","isFocusedToastEscapeKeyDownRef","useRef","isClosePausedRef","handleViewportChange","useCallback","name","viewport","prev","options","useMemo","JSON","stringify","onViewportChange","onToastAdd","prevCount","onToastRemove","ReprogapateToastProvider","context","toastScope"],"sources":["../../src/ToastProvider.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,GAAA,IAAAC,IAAA,2BAAwB;AAEjC,SAASC,gBAAA,6BAA2B;AACpC,SAASC,mBAAA,QAAuB;AAChC,SAAAC,eAAuB;AAEvB,YAASC,KAAA,aAAqB;AAE9B,SAASC,aAAA,+BAA+B;AAgKhC,SAAAC,uBAAA;AAzJR,IAAAC,aAAM,kBAAgB;AAEtB,KAAAC,UAAO,EAAAC,aAAY,IAAaR,gBAAI,QAAiC;AAgCrE;EAAMS,QAAE,EAAAC,qBAAU;EAAAC,gBAAuB,EAAAC;AAAkB,IAAwBX,mBACjF;AAAA;AAEE,CAAC,GACD,SACF;AA4CF,IAAAY,aAAM,YAAAA,CACJC,KACG;EACH;IAAMC,KAAA,GAAAX,aAAA;IAAAY,EAAA,EAAAC,UAAA;IAAAC,YAAA;IAAAC,MAAA;IAAAC,mBAAA;IAAAC,KAAA;IAAAC,QAAA;IAAAC,cAAA;IAAAC,cAAA;IAAAC;EAAA,IAAAX,KAAA;EAAA,IACJY,QAAQ,GAAAvB,KAAA,CAAAwB,KAAA;EAAA,IACRX,EAAI,GAAAC,UAAA,aAAAA,UAAA,cAAAA,UAAA,GAAAS,QAAA;EAAA,IACJ,CAAAE,SAAA,EAAAC,YAAA,IAAA1B,KAAA,CAAA2B,QAAA;EAAA,IACA,CAAAC,UAAA,EAAAC,aAAA,IAAA7B,KAAA,CAAA2B,QAAA;EAAA,IACAG,8BAAA,GAAA9B,KAAA,CAAA+B,MAAA;EAAA,IACAC,gBAAQ,GAAAhC,KAAA,CAAA+B,MAAA;EAAA,IACRE,oBAAW,GAAAjC,KAAA,CAAAkC,WAAA,WAAAC,IAAA,EAAAC,QAAA;IACXrC,eAAA,aAAiB;MACjB2B,YAAA,WAAiBW,IAAA;QACjB;UACE,GAAAA,IAAA;UACE,CAAAF,IAAA,GAAAC;QACA;MACN,EAAM;IAGN;EACA,MAAM;EACN,IAAAE,OAAM,GAAAtC,KAAA,CAAAuC,OAAmB,CAEzB,YAAM;IACH,OAAc;MACbpB,QAAA;MACEJ,YAAA;MACDC,MAAA;MACHC;IACC;EACH;EAGA;EACE,CACEuB,IAAA,CAAAC,SAAA,EACAtB,QAAA,EACAJ,YAAA,EACAC,MAAA,EACFC,mBAAA,CAEE,EAIA;EAAC,sBAAArB,IAAA,CAAAQ,UAAA,CAAAE,QAAA;IAAAM,KACC;IAAAU,QACA,iBAAA1B,IAAA,CAAAW,qBAAA;MACAK,KAAA;MACAC,EAAA;MACAK,KAAA;MACAC,QAAA;MACAC,cAAA;MACAC,cAAA;MACAO,UAAA;MACAH,SAAA;MACEiB,gBAAA,EAAgBT,oBAAM;MACpBU,UAAA,EAAA3C,KAAA,CAAckC,WAAC,aAAc;QAC/BnC,eAAC;UACC8B,aAAC,WAAAe,SAAA;YACL,OAAAA,SAAqB;UACnB;QACE;MAA0C,GAC3C;MACHC,aAAK,EAAA7C,KAAA,CAAAkC,WAAA;QACLnC,eAAA;UACA8B,aAAA,WAAAe,SAAA;YACA,OAAAA,SAAA;UAEA;QAAqD;MAEzD;MAEJd,8BAAA;MAEOE,gBAAS;MAIdM,OAAQ;MACRhB,QACE,iBAAC1B,IAAA,CAAAM,uBAA2B;QAQhCoC,OAAA;QAEAhB;MACE;IACE;EACE;AACA;AAAsB,SACxBwB,yBAAAnC,KAAA;EACA;IAAAW,QAAO;IAAAyB;EAAA,IAAApC,KAAA;EACT,sBAAAf,IAAA,CAAAQ,UAAA,CAAAE,QAAA;IACFM,KAAA,EAAAmC,OAAA,CAAAC,UAAA;IAEA1B,QAAA,EAAc,eAAc1B,IAAA,CAAAW,qBAAA","ignoreList":[]}
@@ -1,280 +0,0 @@
1
- import { AnimatePresence } from "@tamagui/animate-presence";
2
- import { useComposedRefs } from "@tamagui/compose-refs";
3
- import { isWeb } from "@tamagui/constants";
4
- import { styled } from "@tamagui/core";
5
- import { PortalHost } from "@tamagui/portal";
6
- import { YStack } from "@tamagui/stacks";
7
- import { VisuallyHidden } from "@tamagui/visually-hidden";
8
- import * as React from "react";
9
- import { TOAST_CONTEXT } from "./constants.mjs";
10
- import { ToastPortal } from "./ToastPortal.mjs";
11
- import { Collection, useCollection, useToastProviderContext } from "./ToastProvider.mjs";
12
- import { jsx, jsxs } from "react/jsx-runtime";
13
- const VIEWPORT_NAME = "ToastViewport";
14
- const VIEWPORT_DEFAULT_HOTKEY = ["F8"];
15
- const VIEWPORT_PAUSE = "toast.viewportPause";
16
- const VIEWPORT_RESUME = "toast.viewportResume";
17
- const ToastViewportWrapperFrame = styled(YStack, {
18
- name: "ViewportWrapper",
19
- variants: {
20
- unstyled: {
21
- false: {
22
- pointerEvents: "box-none",
23
- top: 0,
24
- bottom: 0,
25
- left: 0,
26
- right: 0,
27
- position: isWeb ? "fixed" : "absolute",
28
- maxWidth: "100%",
29
- tabIndex: 0,
30
- zIndex: 1e5
31
- }
32
- }
33
- },
34
- defaultVariants: {
35
- unstyled: process.env.TAMAGUI_HEADLESS === "1"
36
- }
37
- });
38
- const ToastViewportFrame = styled(YStack, {
39
- name: VIEWPORT_NAME,
40
- variants: {
41
- unstyled: {
42
- false: {
43
- pointerEvents: "box-none",
44
- position: isWeb ? "fixed" : "absolute",
45
- maxWidth: "100%"
46
- }
47
- }
48
- },
49
- defaultVariants: {
50
- unstyled: process.env.TAMAGUI_HEADLESS === "1"
51
- }
52
- });
53
- const ToastViewport = React.memo(React.forwardRef((props, forwardedRef) => {
54
- const {
55
- scope,
56
- hotkey = VIEWPORT_DEFAULT_HOTKEY,
57
- label = "Notifications ({hotkey})",
58
- name = "default",
59
- multipleToasts,
60
- zIndex,
61
- portalToRoot,
62
- ...viewportProps
63
- } = props;
64
- const context = useToastProviderContext(scope);
65
- const getItems = useCollection(scope || TOAST_CONTEXT);
66
- const headFocusProxyRef = React.useRef(null);
67
- const tailFocusProxyRef = React.useRef(null);
68
- const wrapperRef = React.useRef(null);
69
- const ref = React.useRef(null);
70
- const onViewportChange = React.useCallback(el => {
71
- if (context.viewports[name] !== el) context.onViewportChange(name, el);
72
- }, [name, context.viewports]);
73
- const composedRefs = useComposedRefs(forwardedRef, ref, onViewportChange);
74
- const hotkeyLabel = hotkey.join("+").replace(/Key/g, "").replace(/Digit/g, "");
75
- const hasToasts = context.toastCount > 0;
76
- React.useEffect(() => {
77
- if (!isWeb) return;
78
- if (context.toastCount === 0) return;
79
- const handleKeyDown = event => {
80
- const isHotkeyPressed = hotkey.every(key => event[key] || event.code === key);
81
- if (isHotkeyPressed) ref.current?.focus();
82
- };
83
- document.addEventListener("keydown", handleKeyDown);
84
- return () => {
85
- document.removeEventListener("keydown", handleKeyDown);
86
- };
87
- }, [hotkey, context.toastCount]);
88
- React.useEffect(() => {
89
- if (!isWeb) return;
90
- if (context.toastCount === 0) return;
91
- const wrapper = wrapperRef.current;
92
- const viewport = ref.current;
93
- if (hasToasts && wrapper && viewport) {
94
- const handlePause = () => {
95
- if (!context.isClosePausedRef.current) {
96
- const pauseEvent = new CustomEvent(VIEWPORT_PAUSE);
97
- viewport.dispatchEvent(pauseEvent);
98
- context.isClosePausedRef.current = true;
99
- }
100
- };
101
- const handleResume = () => {
102
- if (context.isClosePausedRef.current) {
103
- const resumeEvent = new CustomEvent(VIEWPORT_RESUME);
104
- viewport.dispatchEvent(resumeEvent);
105
- context.isClosePausedRef.current = false;
106
- }
107
- };
108
- const handleFocusOutResume = event => {
109
- const isFocusMovingOutside = !wrapper.contains(event.relatedTarget);
110
- if (isFocusMovingOutside) handleResume();
111
- };
112
- const handlePointerLeaveResume = () => {
113
- const isFocusInside = wrapper.contains(document.activeElement);
114
- if (!isFocusInside) handleResume();
115
- };
116
- wrapper.addEventListener("focusin", handlePause);
117
- wrapper.addEventListener("focusout", handleFocusOutResume);
118
- wrapper.addEventListener("pointermove", handlePause);
119
- wrapper.addEventListener("pointerleave", handlePointerLeaveResume);
120
- window.addEventListener("blur", handlePause);
121
- window.addEventListener("focus", handleResume);
122
- return () => {
123
- wrapper.removeEventListener("focusin", handlePause);
124
- wrapper.removeEventListener("focusout", handleFocusOutResume);
125
- wrapper.removeEventListener("pointermove", handlePause);
126
- wrapper.removeEventListener("pointerleave", handlePointerLeaveResume);
127
- window.removeEventListener("blur", handlePause);
128
- window.removeEventListener("focus", handleResume);
129
- };
130
- }
131
- }, [hasToasts, context.isClosePausedRef, context.toastCount]);
132
- const getSortedTabbableCandidates = React.useCallback(({
133
- tabbingDirection
134
- }) => {
135
- const toastItems = getItems();
136
- const tabbableCandidates = toastItems.map(toastItem => {
137
- const toastNode = toastItem.ref.current;
138
- const toastTabbableCandidates = [toastNode, ...getTabbableCandidates(toastNode)];
139
- return tabbingDirection === "forwards" ? toastTabbableCandidates : toastTabbableCandidates.reverse();
140
- });
141
- return (tabbingDirection === "forwards" ? tabbableCandidates.reverse() : tabbableCandidates).flat();
142
- }, [getItems]);
143
- React.useEffect(() => {
144
- if (!isWeb) return;
145
- if (context.toastCount === 0) return;
146
- const viewport = ref.current;
147
- if (viewport) {
148
- const handleKeyDown = event => {
149
- const isMetaKey = event.altKey || event.ctrlKey || event.metaKey;
150
- const isTabKey = event.key === "Tab" && !isMetaKey;
151
- if (isTabKey) {
152
- const focusedElement = document.activeElement;
153
- const isTabbingBackwards = event.shiftKey;
154
- const targetIsViewport = event.target === viewport;
155
- if (targetIsViewport && isTabbingBackwards) {
156
- headFocusProxyRef.current?.focus();
157
- return;
158
- }
159
- const tabbingDirection = isTabbingBackwards ? "backwards" : "forwards";
160
- const sortedCandidates = getSortedTabbableCandidates({
161
- tabbingDirection
162
- });
163
- const index = sortedCandidates.findIndex(candidate => candidate === focusedElement);
164
- if (focusFirst(sortedCandidates.slice(index + 1))) {
165
- event.preventDefault();
166
- } else {
167
- isTabbingBackwards ?
168
- // @ts-ignore ali TODO type
169
- headFocusProxyRef.current?.focus() :
170
- // @ts-ignore ali TODO type
171
- tailFocusProxyRef.current?.focus();
172
- }
173
- }
174
- };
175
- viewport.addEventListener("keydown", handleKeyDown);
176
- return () => viewport.removeEventListener("keydown", handleKeyDown);
177
- }
178
- }, [getItems, getSortedTabbableCandidates, context.toastCount]);
179
- const contents = /* @__PURE__ */jsxs(ToastViewportWrapperFrame, {
180
- ref: wrapperRef,
181
- role: "region",
182
- "aria-label": label.replace("{hotkey}", hotkeyLabel),
183
- tabIndex: -1,
184
- children: [hasToasts && /* @__PURE__ */jsx(FocusProxy, {
185
- context,
186
- viewportName: name,
187
- ref: headFocusProxyRef,
188
- onFocusFromOutsideViewport: () => {
189
- const tabbableCandidates = getSortedTabbableCandidates({
190
- tabbingDirection: "forwards"
191
- });
192
- focusFirst(tabbableCandidates);
193
- }
194
- }), /* @__PURE__ */jsx(Collection.Slot, {
195
- scope: context.toastScope,
196
- children: /* @__PURE__ */jsx(ToastViewportFrame, {
197
- focusable: context.toastCount > 0,
198
- ref: composedRefs,
199
- ...viewportProps,
200
- children: /* @__PURE__ */jsx(PortalHost, {
201
- render: children => /* @__PURE__ */jsx(AnimatePresence, {
202
- exitBeforeEnter: !multipleToasts,
203
- children
204
- }),
205
- name: name ?? "default"
206
- })
207
- })
208
- }), hasToasts && /* @__PURE__ */jsx(FocusProxy, {
209
- context,
210
- viewportName: name,
211
- ref: tailFocusProxyRef,
212
- onFocusFromOutsideViewport: () => {
213
- const tabbableCandidates = getSortedTabbableCandidates({
214
- tabbingDirection: "backwards"
215
- });
216
- focusFirst(tabbableCandidates);
217
- }
218
- })]
219
- });
220
- if (portalToRoot) {
221
- return /* @__PURE__ */jsx(ToastPortal, {
222
- context,
223
- ...(typeof zIndex === "number" ? {
224
- zIndex
225
- } : {}),
226
- children: contents
227
- });
228
- }
229
- return contents;
230
- }));
231
- ToastViewport.displayName = VIEWPORT_NAME;
232
- const FOCUS_PROXY_NAME = "ToastFocusProxy";
233
- const FocusProxy = React.forwardRef((props, forwardedRef) => {
234
- const {
235
- onFocusFromOutsideViewport,
236
- viewportName,
237
- context,
238
- ...proxyProps
239
- } = props;
240
- const viewport = context.viewports[viewportName];
241
- return /* @__PURE__ */jsx(VisuallyHidden, {
242
- "aria-hidden": true,
243
- tabIndex: 0,
244
- ...proxyProps,
245
- ref: forwardedRef,
246
- position: isWeb ? "fixed" : "absolute",
247
- onFocus: event => {
248
- if (!isWeb) return;
249
- const prevFocusedElement = event.relatedTarget;
250
- const isFocusFromOutsideViewport = !viewport?.contains(prevFocusedElement);
251
- if (isFocusFromOutsideViewport) onFocusFromOutsideViewport();
252
- }
253
- });
254
- });
255
- FocusProxy.displayName = FOCUS_PROXY_NAME;
256
- function focusFirst(candidates) {
257
- if (!isWeb) return;
258
- const previouslyFocusedElement = document.activeElement;
259
- return candidates.some(candidate => {
260
- if (candidate === previouslyFocusedElement) return true;
261
- candidate.focus();
262
- return document.activeElement !== previouslyFocusedElement;
263
- });
264
- }
265
- function getTabbableCandidates(container) {
266
- if (!isWeb) return [];
267
- const containerHtml = container;
268
- const nodes = [];
269
- const walker = document.createTreeWalker(containerHtml, NodeFilter.SHOW_ELEMENT, {
270
- acceptNode: node => {
271
- const isHiddenInput = node.tagName === "INPUT" && node.type === "hidden";
272
- if (node.disabled || node.hidden || isHiddenInput) return NodeFilter.FILTER_SKIP;
273
- return node.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;
274
- }
275
- });
276
- while (walker.nextNode()) nodes.push(walker.currentNode);
277
- return nodes;
278
- }
279
- export { ToastViewport, VIEWPORT_DEFAULT_HOTKEY, VIEWPORT_PAUSE, VIEWPORT_RESUME };
280
- //# sourceMappingURL=ToastViewport.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["AnimatePresence","useComposedRefs","isWeb","styled","PortalHost","YStack","VisuallyHidden","React","TOAST_CONTEXT","ToastPortal","Collection","useCollection","useToastProviderContext","jsx","jsxs","VIEWPORT_NAME","VIEWPORT_DEFAULT_HOTKEY","VIEWPORT_PAUSE","VIEWPORT_RESUME","ToastViewportWrapperFrame","name","variants","unstyled","false","pointerEvents","top","bottom","left","right","position","maxWidth","tabIndex","zIndex","defaultVariants","process","env","TAMAGUI_HEADLESS","ToastViewportFrame","ToastViewport","memo","forwardRef","props","forwardedRef","scope","hotkey","label","multipleToasts","portalToRoot","viewportProps","context","getItems","headFocusProxyRef","useRef","tailFocusProxyRef","wrapperRef","ref","onViewportChange","useCallback","el","viewports","composedRefs","hotkeyLabel","join","replace","hasToasts","toastCount","useEffect","handleKeyDown","event","isHotkeyPressed","every","key","code","current","focus","document","addEventListener","removeEventListener","wrapper","viewport","handlePause","isClosePausedRef","pauseEvent","CustomEvent","dispatchEvent","handleResume","resumeEvent","handleFocusOutResume","isFocusMovingOutside","contains","relatedTarget","handlePointerLeaveResume","isFocusInside","activeElement","window","getSortedTabbableCandidates","tabbingDirection","toastItems","tabbableCandidates","map","toastItem","toastNode","toastTabbableCandidates","getTabbableCandidates","reverse","flat","isMetaKey","altKey","ctrlKey","metaKey","isTabKey","focusedElement","isTabbingBackwards","shiftKey","targetIsViewport","target","sortedCandidates","index","findIndex","candidate","focusFirst","slice","preventDefault","contents","role","children","FocusProxy","viewportName","onFocusFromOutsideViewport","Slot","toastScope","focusable","render","exitBeforeEnter","displayName","FOCUS_PROXY_NAME","proxyProps","onFocus","prevFocusedElement","isFocusFromOutsideViewport","candidates","previouslyFocusedElement","some","container","containerHtml","nodes","walker","createTreeWalker","NodeFilter","SHOW_ELEMENT","acceptNode","node","isHiddenInput","tagName","type","disabled","hidden","FILTER_SKIP","FILTER_ACCEPT","nextNode","push","currentNode"],"sources":["../../src/ToastViewport.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}