@tamagui/v2-toast 2.0.0-1769464493958

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 (307) hide show
  1. package/dist/cjs/Toast.cjs +170 -0
  2. package/dist/cjs/Toast.js +119 -0
  3. package/dist/cjs/Toast.js.map +6 -0
  4. package/dist/cjs/Toast.native.js +174 -0
  5. package/dist/cjs/Toast.native.js.map +1 -0
  6. package/dist/cjs/ToastAnnounce.cjs +97 -0
  7. package/dist/cjs/ToastAnnounce.js +72 -0
  8. package/dist/cjs/ToastAnnounce.js.map +6 -0
  9. package/dist/cjs/ToastAnnounce.native.js +105 -0
  10. package/dist/cjs/ToastAnnounce.native.js.map +1 -0
  11. package/dist/cjs/ToastImperative.cjs +100 -0
  12. package/dist/cjs/ToastImperative.js +71 -0
  13. package/dist/cjs/ToastImperative.js.map +6 -0
  14. package/dist/cjs/ToastImperative.native.js +122 -0
  15. package/dist/cjs/ToastImperative.native.js.map +1 -0
  16. package/dist/cjs/ToastImpl.cjs +292 -0
  17. package/dist/cjs/ToastImpl.js +227 -0
  18. package/dist/cjs/ToastImpl.js.map +6 -0
  19. package/dist/cjs/ToastImpl.native.js +327 -0
  20. package/dist/cjs/ToastImpl.native.js.map +1 -0
  21. package/dist/cjs/ToastItem.cjs +466 -0
  22. package/dist/cjs/ToastItem.js +356 -0
  23. package/dist/cjs/ToastItem.js.map +6 -0
  24. package/dist/cjs/ToastItem.native.js +547 -0
  25. package/dist/cjs/ToastItem.native.js.map +1 -0
  26. package/dist/cjs/ToastPortal.cjs +44 -0
  27. package/dist/cjs/ToastPortal.js +26 -0
  28. package/dist/cjs/ToastPortal.js.map +6 -0
  29. package/dist/cjs/ToastPortal.native.js +47 -0
  30. package/dist/cjs/ToastPortal.native.js.map +1 -0
  31. package/dist/cjs/ToastProvider.cjs +146 -0
  32. package/dist/cjs/ToastProvider.js +105 -0
  33. package/dist/cjs/ToastProvider.js.map +6 -0
  34. package/dist/cjs/ToastProvider.native.js +159 -0
  35. package/dist/cjs/ToastProvider.native.js.map +1 -0
  36. package/dist/cjs/ToastState.cjs +248 -0
  37. package/dist/cjs/ToastState.js +160 -0
  38. package/dist/cjs/ToastState.js.map +6 -0
  39. package/dist/cjs/ToastState.native.js +257 -0
  40. package/dist/cjs/ToastState.native.js.map +1 -0
  41. package/dist/cjs/ToastViewport.cjs +278 -0
  42. package/dist/cjs/ToastViewport.js +263 -0
  43. package/dist/cjs/ToastViewport.js.map +6 -0
  44. package/dist/cjs/ToastViewport.native.js +316 -0
  45. package/dist/cjs/ToastViewport.native.js.map +1 -0
  46. package/dist/cjs/Toaster.cjs +219 -0
  47. package/dist/cjs/Toaster.js +177 -0
  48. package/dist/cjs/Toaster.js.map +6 -0
  49. package/dist/cjs/Toaster.native.js +279 -0
  50. package/dist/cjs/Toaster.native.js.map +1 -0
  51. package/dist/cjs/constants.cjs +28 -0
  52. package/dist/cjs/constants.js +22 -0
  53. package/dist/cjs/constants.js.map +6 -0
  54. package/dist/cjs/constants.native.js +31 -0
  55. package/dist/cjs/constants.native.js.map +1 -0
  56. package/dist/cjs/createNativeToast.cjs +51 -0
  57. package/dist/cjs/createNativeToast.js +44 -0
  58. package/dist/cjs/createNativeToast.js.map +6 -0
  59. package/dist/cjs/createNativeToast.native.js +47 -0
  60. package/dist/cjs/createNativeToast.native.js.map +1 -0
  61. package/dist/cjs/index.cjs +28 -0
  62. package/dist/cjs/index.js +22 -0
  63. package/dist/cjs/index.js.map +6 -0
  64. package/dist/cjs/index.native.js +31 -0
  65. package/dist/cjs/index.native.js.map +1 -0
  66. package/dist/cjs/types.cjs +16 -0
  67. package/dist/cjs/types.js +14 -0
  68. package/dist/cjs/types.js.map +6 -0
  69. package/dist/cjs/types.native.js +19 -0
  70. package/dist/cjs/types.native.js.map +1 -0
  71. package/dist/cjs/useDragGesture.cjs +129 -0
  72. package/dist/cjs/useDragGesture.js +100 -0
  73. package/dist/cjs/useDragGesture.js.map +6 -0
  74. package/dist/cjs/useDragGesture.native.js +146 -0
  75. package/dist/cjs/useDragGesture.native.js.map +1 -0
  76. package/dist/esm/Toast.js +107 -0
  77. package/dist/esm/Toast.js.map +6 -0
  78. package/dist/esm/Toast.mjs +131 -0
  79. package/dist/esm/Toast.mjs.map +1 -0
  80. package/dist/esm/Toast.native.js +132 -0
  81. package/dist/esm/Toast.native.js.map +1 -0
  82. package/dist/esm/ToastAnnounce.js +55 -0
  83. package/dist/esm/ToastAnnounce.js.map +6 -0
  84. package/dist/esm/ToastAnnounce.mjs +62 -0
  85. package/dist/esm/ToastAnnounce.mjs.map +1 -0
  86. package/dist/esm/ToastAnnounce.native.js +67 -0
  87. package/dist/esm/ToastAnnounce.native.js.map +1 -0
  88. package/dist/esm/ToastImperative.js +50 -0
  89. package/dist/esm/ToastImperative.js.map +6 -0
  90. package/dist/esm/ToastImperative.mjs +63 -0
  91. package/dist/esm/ToastImperative.mjs.map +1 -0
  92. package/dist/esm/ToastImperative.native.js +82 -0
  93. package/dist/esm/ToastImperative.native.js.map +1 -0
  94. package/dist/esm/ToastImpl.js +225 -0
  95. package/dist/esm/ToastImpl.js.map +6 -0
  96. package/dist/esm/ToastImpl.mjs +256 -0
  97. package/dist/esm/ToastImpl.mjs.map +1 -0
  98. package/dist/esm/ToastImpl.native.js +288 -0
  99. package/dist/esm/ToastImpl.native.js.map +1 -0
  100. package/dist/esm/ToastItem.js +339 -0
  101. package/dist/esm/ToastItem.js.map +6 -0
  102. package/dist/esm/ToastItem.mjs +432 -0
  103. package/dist/esm/ToastItem.mjs.map +1 -0
  104. package/dist/esm/ToastItem.native.js +510 -0
  105. package/dist/esm/ToastItem.native.js.map +1 -0
  106. package/dist/esm/ToastPortal.js +13 -0
  107. package/dist/esm/ToastPortal.js.map +6 -0
  108. package/dist/esm/ToastPortal.mjs +21 -0
  109. package/dist/esm/ToastPortal.mjs.map +1 -0
  110. package/dist/esm/ToastPortal.native.js +21 -0
  111. package/dist/esm/ToastPortal.native.js.map +1 -0
  112. package/dist/esm/ToastProvider.js +87 -0
  113. package/dist/esm/ToastProvider.js.map +6 -0
  114. package/dist/esm/ToastProvider.mjs +108 -0
  115. package/dist/esm/ToastProvider.mjs.map +1 -0
  116. package/dist/esm/ToastProvider.native.js +118 -0
  117. package/dist/esm/ToastProvider.native.js.map +1 -0
  118. package/dist/esm/ToastState.js +144 -0
  119. package/dist/esm/ToastState.js.map +6 -0
  120. package/dist/esm/ToastState.mjs +224 -0
  121. package/dist/esm/ToastState.mjs.map +1 -0
  122. package/dist/esm/ToastState.native.js +230 -0
  123. package/dist/esm/ToastState.native.js.map +1 -0
  124. package/dist/esm/ToastViewport.js +250 -0
  125. package/dist/esm/ToastViewport.js.map +6 -0
  126. package/dist/esm/ToastViewport.mjs +241 -0
  127. package/dist/esm/ToastViewport.mjs.map +1 -0
  128. package/dist/esm/ToastViewport.native.js +276 -0
  129. package/dist/esm/ToastViewport.native.js.map +1 -0
  130. package/dist/esm/Toaster.js +160 -0
  131. package/dist/esm/Toaster.js.map +6 -0
  132. package/dist/esm/Toaster.mjs +185 -0
  133. package/dist/esm/Toaster.mjs.map +1 -0
  134. package/dist/esm/Toaster.native.js +242 -0
  135. package/dist/esm/Toaster.native.js.map +1 -0
  136. package/dist/esm/constants.js +6 -0
  137. package/dist/esm/constants.js.map +6 -0
  138. package/dist/esm/constants.mjs +4 -0
  139. package/dist/esm/constants.mjs.map +1 -0
  140. package/dist/esm/constants.native.js +4 -0
  141. package/dist/esm/constants.native.js.map +1 -0
  142. package/dist/esm/createNativeToast.js +28 -0
  143. package/dist/esm/createNativeToast.js.map +6 -0
  144. package/dist/esm/createNativeToast.mjs +27 -0
  145. package/dist/esm/createNativeToast.mjs.map +1 -0
  146. package/dist/esm/createNativeToast.native.js +20 -0
  147. package/dist/esm/createNativeToast.native.js.map +1 -0
  148. package/dist/esm/index.js +7 -0
  149. package/dist/esm/index.js.map +6 -0
  150. package/dist/esm/index.mjs +4 -0
  151. package/dist/esm/index.mjs.map +1 -0
  152. package/dist/esm/index.native.js +4 -0
  153. package/dist/esm/index.native.js.map +1 -0
  154. package/dist/esm/types.js +1 -0
  155. package/dist/esm/types.js.map +6 -0
  156. package/dist/esm/types.mjs +2 -0
  157. package/dist/esm/types.mjs.map +1 -0
  158. package/dist/esm/types.native.js +2 -0
  159. package/dist/esm/types.native.js.map +1 -0
  160. package/dist/esm/useDragGesture.js +76 -0
  161. package/dist/esm/useDragGesture.js.map +6 -0
  162. package/dist/esm/useDragGesture.mjs +95 -0
  163. package/dist/esm/useDragGesture.mjs.map +1 -0
  164. package/dist/esm/useDragGesture.native.js +109 -0
  165. package/dist/esm/useDragGesture.native.js.map +1 -0
  166. package/dist/jsx/Toast.js +107 -0
  167. package/dist/jsx/Toast.js.map +6 -0
  168. package/dist/jsx/Toast.mjs +131 -0
  169. package/dist/jsx/Toast.mjs.map +1 -0
  170. package/dist/jsx/Toast.native.js +174 -0
  171. package/dist/jsx/Toast.native.js.map +1 -0
  172. package/dist/jsx/ToastAnnounce.js +55 -0
  173. package/dist/jsx/ToastAnnounce.js.map +6 -0
  174. package/dist/jsx/ToastAnnounce.mjs +62 -0
  175. package/dist/jsx/ToastAnnounce.mjs.map +1 -0
  176. package/dist/jsx/ToastAnnounce.native.js +105 -0
  177. package/dist/jsx/ToastAnnounce.native.js.map +1 -0
  178. package/dist/jsx/ToastImperative.js +50 -0
  179. package/dist/jsx/ToastImperative.js.map +6 -0
  180. package/dist/jsx/ToastImperative.mjs +63 -0
  181. package/dist/jsx/ToastImperative.mjs.map +1 -0
  182. package/dist/jsx/ToastImperative.native.js +122 -0
  183. package/dist/jsx/ToastImperative.native.js.map +1 -0
  184. package/dist/jsx/ToastImpl.js +225 -0
  185. package/dist/jsx/ToastImpl.js.map +6 -0
  186. package/dist/jsx/ToastImpl.mjs +256 -0
  187. package/dist/jsx/ToastImpl.mjs.map +1 -0
  188. package/dist/jsx/ToastImpl.native.js +327 -0
  189. package/dist/jsx/ToastImpl.native.js.map +1 -0
  190. package/dist/jsx/ToastItem.js +339 -0
  191. package/dist/jsx/ToastItem.js.map +6 -0
  192. package/dist/jsx/ToastItem.mjs +432 -0
  193. package/dist/jsx/ToastItem.mjs.map +1 -0
  194. package/dist/jsx/ToastItem.native.js +547 -0
  195. package/dist/jsx/ToastItem.native.js.map +1 -0
  196. package/dist/jsx/ToastPortal.js +13 -0
  197. package/dist/jsx/ToastPortal.js.map +6 -0
  198. package/dist/jsx/ToastPortal.mjs +21 -0
  199. package/dist/jsx/ToastPortal.mjs.map +1 -0
  200. package/dist/jsx/ToastPortal.native.js +47 -0
  201. package/dist/jsx/ToastPortal.native.js.map +1 -0
  202. package/dist/jsx/ToastProvider.js +87 -0
  203. package/dist/jsx/ToastProvider.js.map +6 -0
  204. package/dist/jsx/ToastProvider.mjs +108 -0
  205. package/dist/jsx/ToastProvider.mjs.map +1 -0
  206. package/dist/jsx/ToastProvider.native.js +159 -0
  207. package/dist/jsx/ToastProvider.native.js.map +1 -0
  208. package/dist/jsx/ToastState.js +144 -0
  209. package/dist/jsx/ToastState.js.map +6 -0
  210. package/dist/jsx/ToastState.mjs +224 -0
  211. package/dist/jsx/ToastState.mjs.map +1 -0
  212. package/dist/jsx/ToastState.native.js +257 -0
  213. package/dist/jsx/ToastState.native.js.map +1 -0
  214. package/dist/jsx/ToastViewport.js +250 -0
  215. package/dist/jsx/ToastViewport.js.map +6 -0
  216. package/dist/jsx/ToastViewport.mjs +241 -0
  217. package/dist/jsx/ToastViewport.mjs.map +1 -0
  218. package/dist/jsx/ToastViewport.native.js +316 -0
  219. package/dist/jsx/ToastViewport.native.js.map +1 -0
  220. package/dist/jsx/Toaster.js +160 -0
  221. package/dist/jsx/Toaster.js.map +6 -0
  222. package/dist/jsx/Toaster.mjs +185 -0
  223. package/dist/jsx/Toaster.mjs.map +1 -0
  224. package/dist/jsx/Toaster.native.js +279 -0
  225. package/dist/jsx/Toaster.native.js.map +1 -0
  226. package/dist/jsx/constants.js +6 -0
  227. package/dist/jsx/constants.js.map +6 -0
  228. package/dist/jsx/constants.mjs +4 -0
  229. package/dist/jsx/constants.mjs.map +1 -0
  230. package/dist/jsx/constants.native.js +31 -0
  231. package/dist/jsx/constants.native.js.map +1 -0
  232. package/dist/jsx/createNativeToast.js +28 -0
  233. package/dist/jsx/createNativeToast.js.map +6 -0
  234. package/dist/jsx/createNativeToast.mjs +27 -0
  235. package/dist/jsx/createNativeToast.mjs.map +1 -0
  236. package/dist/jsx/createNativeToast.native.js +47 -0
  237. package/dist/jsx/createNativeToast.native.js.map +1 -0
  238. package/dist/jsx/index.js +7 -0
  239. package/dist/jsx/index.js.map +6 -0
  240. package/dist/jsx/index.mjs +4 -0
  241. package/dist/jsx/index.mjs.map +1 -0
  242. package/dist/jsx/index.native.js +31 -0
  243. package/dist/jsx/index.native.js.map +1 -0
  244. package/dist/jsx/types.js +1 -0
  245. package/dist/jsx/types.js.map +6 -0
  246. package/dist/jsx/types.mjs +2 -0
  247. package/dist/jsx/types.mjs.map +1 -0
  248. package/dist/jsx/types.native.js +19 -0
  249. package/dist/jsx/types.native.js.map +1 -0
  250. package/dist/jsx/useDragGesture.js +76 -0
  251. package/dist/jsx/useDragGesture.js.map +6 -0
  252. package/dist/jsx/useDragGesture.mjs +95 -0
  253. package/dist/jsx/useDragGesture.mjs.map +1 -0
  254. package/dist/jsx/useDragGesture.native.js +146 -0
  255. package/dist/jsx/useDragGesture.native.js.map +1 -0
  256. package/package.json +77 -0
  257. package/src/Toast.tsx +219 -0
  258. package/src/ToastAnnounce.tsx +102 -0
  259. package/src/ToastImperative.tsx +190 -0
  260. package/src/ToastImpl.tsx +503 -0
  261. package/src/ToastItem.tsx +694 -0
  262. package/src/ToastPortal.tsx +19 -0
  263. package/src/ToastProvider.tsx +197 -0
  264. package/src/ToastState.ts +397 -0
  265. package/src/ToastViewport.tsx +430 -0
  266. package/src/Toaster.tsx +445 -0
  267. package/src/constants.ts +2 -0
  268. package/src/createNativeToast.native.tsx +22 -0
  269. package/src/createNativeToast.tsx +48 -0
  270. package/src/index.ts +17 -0
  271. package/src/types.ts +71 -0
  272. package/src/useDragGesture.native.ts +199 -0
  273. package/src/useDragGesture.ts +218 -0
  274. package/types/Toast.d.ts +84 -0
  275. package/types/Toast.d.ts.map +1 -0
  276. package/types/ToastAnnounce.d.ts +18 -0
  277. package/types/ToastAnnounce.d.ts.map +1 -0
  278. package/types/ToastImperative.d.ts +95 -0
  279. package/types/ToastImperative.d.ts.map +1 -0
  280. package/types/ToastImpl.d.ts +109 -0
  281. package/types/ToastImpl.d.ts.map +1 -0
  282. package/types/ToastItem.d.ts +34 -0
  283. package/types/ToastItem.d.ts.map +1 -0
  284. package/types/ToastPortal.d.ts +8 -0
  285. package/types/ToastPortal.d.ts.map +1 -0
  286. package/types/ToastProvider.d.ts +92 -0
  287. package/types/ToastProvider.d.ts.map +1 -0
  288. package/types/ToastState.d.ts +177 -0
  289. package/types/ToastState.d.ts.map +1 -0
  290. package/types/ToastViewport.d.ts +75 -0
  291. package/types/ToastViewport.d.ts.map +1 -0
  292. package/types/Toaster.d.ts +120 -0
  293. package/types/Toaster.d.ts.map +1 -0
  294. package/types/constants.d.ts +3 -0
  295. package/types/constants.d.ts.map +1 -0
  296. package/types/createNativeToast.d.ts +4 -0
  297. package/types/createNativeToast.d.ts.map +1 -0
  298. package/types/createNativeToast.native.d.ts +4 -0
  299. package/types/createNativeToast.native.d.ts.map +1 -0
  300. package/types/index.d.ts +7 -0
  301. package/types/index.d.ts.map +1 -0
  302. package/types/types.d.ts +61 -0
  303. package/types/types.d.ts.map +1 -0
  304. package/types/useDragGesture.d.ts +32 -0
  305. package/types/useDragGesture.d.ts.map +1 -0
  306. package/types/useDragGesture.native.d.ts +26 -0
  307. package/types/useDragGesture.native.d.ts.map +1 -0
@@ -0,0 +1,432 @@
1
+ import { isWeb } from "@tamagui/constants";
2
+ import { styled, useEvent, View } from "@tamagui/core";
3
+ import { XStack, YStack } from "@tamagui/stacks";
4
+ import { SizableText } from "@tamagui/text";
5
+ import * as React from "react";
6
+ import { useDragGesture } from "./useDragGesture.mjs";
7
+ import { createNativeToast } from "./createNativeToast.mjs";
8
+ import { jsx, jsxs } from "react/jsx-runtime";
9
+ const TIME_BEFORE_UNMOUNT = 200,
10
+ ToastItemFrame = styled(YStack, {
11
+ name: "ToastItem",
12
+ focusable: !0,
13
+ pointerEvents: "auto",
14
+ position: "absolute",
15
+ left: 0,
16
+ right: 0,
17
+ // for stacking animation - default visible state
18
+ opacity: 1,
19
+ scale: 1,
20
+ y: 0,
21
+ x: 0,
22
+ variants: {
23
+ unstyled: {
24
+ false: {
25
+ backgroundColor: "$background",
26
+ borderRadius: "$4",
27
+ paddingHorizontal: "$4",
28
+ paddingVertical: "$3",
29
+ // shadow using elevation for cross-platform
30
+ elevation: "$4",
31
+ shadowColor: "$shadowColor",
32
+ shadowOffset: {
33
+ width: 0,
34
+ height: 4
35
+ },
36
+ shadowOpacity: 0.15,
37
+ shadowRadius: 12,
38
+ borderWidth: 1,
39
+ borderColor: "$borderColor",
40
+ // only show focus outline on keyboard navigation, not on click/tap
41
+ focusVisibleStyle: {
42
+ outlineStyle: "solid",
43
+ outlineWidth: 2,
44
+ outlineColor: "$outlineColor"
45
+ }
46
+ }
47
+ }
48
+ },
49
+ defaultVariants: {
50
+ unstyled: process.env.TAMAGUI_HEADLESS === "1"
51
+ }
52
+ }),
53
+ ToastItemTitle = styled(SizableText, {
54
+ name: "ToastItemTitle",
55
+ variants: {
56
+ unstyled: {
57
+ false: {
58
+ fontWeight: "600",
59
+ color: "$color",
60
+ size: "$4"
61
+ }
62
+ }
63
+ },
64
+ defaultVariants: {
65
+ unstyled: process.env.TAMAGUI_HEADLESS === "1"
66
+ }
67
+ }),
68
+ ToastItemDescription = styled(SizableText, {
69
+ name: "ToastItemDescription",
70
+ variants: {
71
+ unstyled: {
72
+ false: {
73
+ color: "$color11",
74
+ size: "$2",
75
+ marginTop: "$1"
76
+ }
77
+ }
78
+ },
79
+ defaultVariants: {
80
+ unstyled: process.env.TAMAGUI_HEADLESS === "1"
81
+ }
82
+ }),
83
+ ToastCloseButton = styled(XStack, {
84
+ name: "ToastCloseButton",
85
+ render: "button",
86
+ alignItems: "center",
87
+ justifyContent: "center",
88
+ cursor: "pointer",
89
+ variants: {
90
+ unstyled: {
91
+ false: {
92
+ width: 20,
93
+ height: 20,
94
+ borderRadius: "$10",
95
+ backgroundColor: "$color5",
96
+ hoverStyle: {
97
+ backgroundColor: "$color6"
98
+ },
99
+ pressStyle: {
100
+ backgroundColor: "$color7"
101
+ }
102
+ }
103
+ }
104
+ },
105
+ defaultVariants: {
106
+ unstyled: process.env.TAMAGUI_HEADLESS === "1"
107
+ }
108
+ }),
109
+ ToastActionButton = styled(XStack, {
110
+ name: "ToastActionButton",
111
+ render: "button",
112
+ alignItems: "center",
113
+ justifyContent: "center",
114
+ cursor: "pointer",
115
+ variants: {
116
+ unstyled: {
117
+ false: {
118
+ borderRadius: "$2",
119
+ paddingHorizontal: "$2",
120
+ height: 24,
121
+ backgroundColor: "$color5",
122
+ hoverStyle: {
123
+ backgroundColor: "$color6"
124
+ },
125
+ pressStyle: {
126
+ backgroundColor: "$color7"
127
+ }
128
+ }
129
+ },
130
+ // primary action button style
131
+ primary: {
132
+ true: {
133
+ backgroundColor: "$color12",
134
+ hoverStyle: {
135
+ backgroundColor: "$color11"
136
+ },
137
+ pressStyle: {
138
+ backgroundColor: "$color10"
139
+ }
140
+ }
141
+ }
142
+ },
143
+ defaultVariants: {
144
+ unstyled: process.env.TAMAGUI_HEADLESS === "1"
145
+ }
146
+ }),
147
+ DefaultCloseIcon = () => /* @__PURE__ */jsx(SizableText, {
148
+ size: "$1",
149
+ color: "$color11",
150
+ children: "\u2715"
151
+ }),
152
+ DefaultSuccessIcon = () => /* @__PURE__ */jsx(SizableText, {
153
+ size: "$5",
154
+ color: "$green10",
155
+ children: "\u2713"
156
+ }),
157
+ DefaultErrorIcon = () => /* @__PURE__ */jsx(SizableText, {
158
+ size: "$5",
159
+ color: "$red10",
160
+ children: "\u2715"
161
+ }),
162
+ DefaultWarningIcon = () => /* @__PURE__ */jsx(SizableText, {
163
+ size: "$5",
164
+ color: "$yellow10",
165
+ children: "\u26A0"
166
+ }),
167
+ DefaultInfoIcon = () => /* @__PURE__ */jsx(SizableText, {
168
+ size: "$5",
169
+ color: "$blue10",
170
+ children: "\u2139"
171
+ }),
172
+ DefaultLoadingIcon = () => /* @__PURE__ */jsx(SizableText, {
173
+ size: "$5",
174
+ color: "$color11",
175
+ children: "\u27F3"
176
+ }),
177
+ ToastItem = React.memo(function (props) {
178
+ const {
179
+ toast,
180
+ index,
181
+ expanded,
182
+ interacting,
183
+ position,
184
+ visibleToasts,
185
+ removeToast,
186
+ heights,
187
+ setHeights,
188
+ duration,
189
+ gap,
190
+ swipeDirection,
191
+ swipeThreshold,
192
+ closeButton,
193
+ icons,
194
+ disableNative,
195
+ burntOptions,
196
+ notificationOptions
197
+ } = props,
198
+ [mounted, setMounted] = React.useState(!1),
199
+ [removed, setRemoved] = React.useState(!1),
200
+ [swipeOut, setSwipeOut] = React.useState(!1),
201
+ toastRef = React.useRef(null),
202
+ closeTimerRef = React.useRef(null),
203
+ closeTimerStartRef = React.useRef(0),
204
+ lastPauseTimeRef = React.useRef(0),
205
+ remainingTimeRef = React.useRef(duration),
206
+ isFront = index === 0,
207
+ isVisible = index < visibleToasts,
208
+ toastType = toast.type ?? "default",
209
+ dismissible = toast.dismissible !== !1,
210
+ heightIndex = React.useMemo(() => heights.findIndex(h => h.toastId === toast.id) || 0, [heights, toast.id]),
211
+ toastsHeightBefore = React.useMemo(() => heights.reduce((prev, curr, reducerIndex) => reducerIndex >= heightIndex ? prev : prev + curr.height, 0), [heights, heightIndex]),
212
+ offset = heightIndex * gap + toastsHeightBefore,
213
+ [yPosition] = position.split("-"),
214
+ isTop = yPosition === "top";
215
+ React.useEffect(() => {
216
+ if (!disableNative && !isWeb) {
217
+ const titleText = typeof toast.title == "function" ? toast.title() : toast.title,
218
+ descText = typeof toast.description == "function" ? toast.description() : toast.description;
219
+ typeof titleText == "string" && createNativeToast(titleText, {
220
+ message: typeof descText == "string" ? descText : void 0,
221
+ duration,
222
+ burntOptions,
223
+ notificationOptions
224
+ });
225
+ }
226
+ }, []), React.useEffect(() => {
227
+ setMounted(!0);
228
+ }, []), React.useEffect(() => {
229
+ toast.delete && (setRemoved(!0), setTimeout(() => {
230
+ removeToast(toast);
231
+ }, TIME_BEFORE_UNMOUNT));
232
+ }, [toast.delete, toast, removeToast]);
233
+ const startTimer = React.useCallback(() => {
234
+ duration === Number.POSITIVE_INFINITY || toastType === "loading" || (closeTimerStartRef.current = Date.now(), closeTimerRef.current = setTimeout(() => {
235
+ toast.onAutoClose?.(toast), setRemoved(!0), setTimeout(() => {
236
+ removeToast(toast);
237
+ }, TIME_BEFORE_UNMOUNT);
238
+ }, remainingTimeRef.current));
239
+ }, [duration, toastType, toast, removeToast]),
240
+ pauseTimer = useEvent(() => {
241
+ if (closeTimerRef.current && clearTimeout(closeTimerRef.current), lastPauseTimeRef.current < closeTimerStartRef.current) {
242
+ const elapsed = Date.now() - closeTimerStartRef.current;
243
+ remainingTimeRef.current = Math.max(0, remainingTimeRef.current - elapsed);
244
+ }
245
+ lastPauseTimeRef.current = Date.now();
246
+ }),
247
+ resumeTimer = useEvent(() => {
248
+ startTimer();
249
+ });
250
+ React.useEffect(() => (expanded || interacting ? pauseTimer() : startTimer(), () => {
251
+ closeTimerRef.current && clearTimeout(closeTimerRef.current);
252
+ }), [expanded, interacting, startTimer]), React.useEffect(() => {
253
+ remainingTimeRef.current = duration;
254
+ }, [duration]);
255
+ const {
256
+ dragState,
257
+ gestureHandlers
258
+ } = useDragGesture({
259
+ direction: swipeDirection,
260
+ threshold: swipeThreshold,
261
+ disabled: !dismissible || toastType === "loading",
262
+ onDragStart: pauseTimer,
263
+ onDragEnd: dismissed => {
264
+ dismissed && (setSwipeOut(!0), toast.onDismiss?.(toast), setRemoved(!0), setTimeout(() => {
265
+ removeToast(toast);
266
+ }, TIME_BEFORE_UNMOUNT));
267
+ },
268
+ onDragCancel: resumeTimer
269
+ }),
270
+ handleLayout = React.useCallback(event => {
271
+ const {
272
+ height
273
+ } = event.nativeEvent.layout;
274
+ setHeights(prev => prev.find(h => h.toastId === toast.id) ? prev.map(h => h.toastId === toast.id ? {
275
+ ...h,
276
+ height
277
+ } : h) : [{
278
+ toastId: toast.id,
279
+ height,
280
+ position
281
+ }, ...prev]);
282
+ }, [toast.id, position, setHeights]);
283
+ React.useEffect(() => () => {
284
+ setHeights(prev => prev.filter(h => h.toastId !== toast.id));
285
+ }, [toast.id, setHeights]);
286
+ const handleClose = React.useCallback(() => {
287
+ dismissible && (toast.onDismiss?.(toast), setRemoved(!0), setTimeout(() => {
288
+ removeToast(toast);
289
+ }, TIME_BEFORE_UNMOUNT));
290
+ }, [dismissible, toast, removeToast]),
291
+ icon = toast.icon !== void 0 ? toast.icon : {
292
+ default: null,
293
+ success: icons?.success ?? /* @__PURE__ */jsx(DefaultSuccessIcon, {}),
294
+ error: icons?.error ?? /* @__PURE__ */jsx(DefaultErrorIcon, {}),
295
+ warning: icons?.warning ?? /* @__PURE__ */jsx(DefaultWarningIcon, {}),
296
+ info: icons?.info ?? /* @__PURE__ */jsx(DefaultInfoIcon, {}),
297
+ loading: icons?.loading ?? /* @__PURE__ */jsx(DefaultLoadingIcon, {})
298
+ }[toastType],
299
+ isHorizontalSwipe = swipeDirection === "left" || swipeDirection === "right" || swipeDirection === "horizontal",
300
+ isVerticalSwipe = swipeDirection === "up" || swipeDirection === "down" || swipeDirection === "vertical",
301
+ dragOffsetX = isHorizontalSwipe ? dragState.offsetX : 0,
302
+ dragOffsetY = isVerticalSwipe ? dragState.offsetY : 0,
303
+ stackScale = !expanded && !isFront ? 1 - index * 0.05 : 1,
304
+ frontToastHeight = heights.length > 0 ? heights[0]?.height ?? 55 : 55,
305
+ baseOffset = isTop ? offset : -offset,
306
+ liftPerToast = 10,
307
+ computedY = (expanded ? baseOffset : isFront ? 0 : isTop ? liftPerToast * index : -liftPerToast * index) + dragOffsetY,
308
+ computedX = dragOffsetX,
309
+ computedScale = stackScale;
310
+ let computedOpacity = 1;
311
+ index >= visibleToasts ? computedOpacity = 0 : !expanded && index === visibleToasts - 1 && (computedOpacity = 0.5);
312
+ const computedZIndex = visibleToasts - index,
313
+ computedHeight = !expanded && !isFront ? frontToastHeight : void 0,
314
+ computedPointerEvents = index >= visibleToasts ? "none" : "auto";
315
+ if (toast.jsx) return toast.jsx;
316
+ const title = typeof toast.title == "function" ? toast.title() : toast.title,
317
+ description = typeof toast.description == "function" ? toast.description() : toast.description,
318
+ dataSet = {
319
+ mounted: mounted ? "true" : "false",
320
+ removed: removed ? "true" : "false",
321
+ swipeOut: swipeOut ? "true" : "false",
322
+ visible: isVisible ? "true" : "false",
323
+ front: isFront ? "true" : "false",
324
+ index: String(index),
325
+ type: toastType,
326
+ expanded: expanded ? "true" : "false"
327
+ },
328
+ gapFillerHeight = expanded ? gap + 1 : 0;
329
+ return /* @__PURE__ */jsxs(ToastItemFrame, {
330
+ ref: toastRef,
331
+ role: "status",
332
+ "aria-live": "polite",
333
+ "aria-atomic": !0,
334
+ tabIndex: 0,
335
+ dataSet,
336
+ "data-expanded": expanded ? "true" : "false",
337
+ onLayout: handleLayout,
338
+ transition: dragState.isDragging ? void 0 : "quick",
339
+ y: computedY,
340
+ x: computedX,
341
+ scale: computedScale,
342
+ opacity: computedOpacity,
343
+ zIndex: computedZIndex,
344
+ height: computedHeight,
345
+ overflow: computedHeight ? "hidden" : void 0,
346
+ pointerEvents: computedPointerEvents,
347
+ top: isTop ? 0 : void 0,
348
+ bottom: isTop ? void 0 : 0,
349
+ ...(isWeb && !isFront && !expanded && {
350
+ style: {
351
+ transformOrigin: isTop ? "top center" : "bottom center"
352
+ }
353
+ }),
354
+ enterStyle: {
355
+ opacity: 0,
356
+ y: isTop ? -10 : 10,
357
+ scale: 0.95
358
+ },
359
+ exitStyle: {
360
+ opacity: 0,
361
+ // for swipe dismissal, continue in swipe direction with subtle movement
362
+ x: isHorizontalSwipe && swipeOut ? swipeDirection === "left" ? -30 : 30 : 0,
363
+ y: isVerticalSwipe && swipeOut ? swipeDirection === "up" ? -30 : 30 : isTop ? -10 : 10,
364
+ scale: 0.95
365
+ },
366
+ ...gestureHandlers,
367
+ ...(isWeb && {
368
+ onKeyDown: event => {
369
+ event.key === "Escape" && dismissible && handleClose();
370
+ }
371
+ }),
372
+ children: [expanded && gapFillerHeight > 0 && /* @__PURE__ */jsx(View, {
373
+ position: "absolute",
374
+ left: 0,
375
+ right: 0,
376
+ height: gapFillerHeight,
377
+ pointerEvents: "auto",
378
+ ...(isTop ? {
379
+ top: "100%"
380
+ } : {
381
+ bottom: "100%"
382
+ })
383
+ }), /* @__PURE__ */jsxs(XStack, {
384
+ alignItems: "flex-start",
385
+ gap: "$3",
386
+ children: [icon && /* @__PURE__ */jsx(View, {
387
+ flexShrink: 0,
388
+ marginTop: "$0.5",
389
+ children: icon
390
+ }), /* @__PURE__ */jsxs(YStack, {
391
+ flex: 1,
392
+ gap: "$1",
393
+ children: [title && /* @__PURE__ */jsx(ToastItemTitle, {
394
+ children: title
395
+ }), description && /* @__PURE__ */jsx(ToastItemDescription, {
396
+ children: description
397
+ })]
398
+ }), closeButton && dismissible && /* @__PURE__ */jsx(ToastCloseButton, {
399
+ onPress: handleClose,
400
+ "aria-label": "Close toast",
401
+ children: icons?.close ?? /* @__PURE__ */jsx(DefaultCloseIcon, {})
402
+ })]
403
+ }), (toast.action || toast.cancel) && /* @__PURE__ */jsxs(XStack, {
404
+ marginTop: "$3",
405
+ gap: "$2",
406
+ justifyContent: "flex-end",
407
+ children: [toast.cancel && /* @__PURE__ */jsx(ToastActionButton, {
408
+ onPress: event => {
409
+ toast.cancel?.onClick?.(event), handleClose();
410
+ },
411
+ children: /* @__PURE__ */jsx(SizableText, {
412
+ size: "$2",
413
+ children: toast.cancel.label
414
+ })
415
+ }), toast.action && /* @__PURE__ */jsx(ToastActionButton, {
416
+ primary: !0,
417
+ onPress: event => {
418
+ toast.action?.onClick?.(event), event.defaultPrevented || handleClose();
419
+ },
420
+ children: /* @__PURE__ */jsx(SizableText, {
421
+ size: "$2",
422
+ fontWeight: "600",
423
+ color: "$background",
424
+ children: toast.action.label
425
+ })
426
+ })]
427
+ })]
428
+ });
429
+ });
430
+ ToastItem.displayName = "ToastItem";
431
+ export { ToastItem };
432
+ //# sourceMappingURL=ToastItem.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["isWeb","styled","useEvent","View","XStack","YStack","SizableText","React","useDragGesture","createNativeToast","jsx","jsxs","TIME_BEFORE_UNMOUNT","ToastItemFrame","name","focusable","pointerEvents","position","left","right","opacity","scale","y","x","variants","unstyled","false","backgroundColor","borderRadius","paddingHorizontal","paddingVertical","elevation","shadowColor","shadowOffset","width","height","shadowOpacity","shadowRadius","borderWidth","borderColor","focusVisibleStyle","outlineStyle","outlineWidth","outlineColor","defaultVariants","process","env","TAMAGUI_HEADLESS","ToastItemTitle","fontWeight","color","size","ToastItemDescription","marginTop","ToastCloseButton","render","alignItems","justifyContent","cursor","hoverStyle","pressStyle","ToastActionButton","primary","true","DefaultCloseIcon","children","DefaultSuccessIcon","DefaultErrorIcon","DefaultWarningIcon","DefaultInfoIcon","DefaultLoadingIcon","ToastItem","memo","props","toast","index","expanded","interacting","visibleToasts","removeToast","heights","setHeights","duration","gap","swipeDirection","swipeThreshold","closeButton","icons","disableNative","burntOptions","notificationOptions","mounted","setMounted","useState","removed","setRemoved","swipeOut","setSwipeOut","toastRef","useRef","closeTimerRef","closeTimerStartRef","lastPauseTimeRef","remainingTimeRef","isFront","isVisible","toastType","type","dismissible","heightIndex","useMemo","findIndex","h","toastId","id","toastsHeightBefore","reduce","prev","curr","reducerIndex","offset","yPosition","split","isTop","useEffect","titleText","title","descText","description","message","delete","setTimeout","startTimer","useCallback","Number","POSITIVE_INFINITY","current","Date","now","onAutoClose","pauseTimer","clearTimeout","elapsed","Math","max","resumeTimer","dragState","gestureHandlers","direction","threshold","disabled","onDragStart","onDragEnd","dismissed","onDismiss","onDragCancel","handleLayout","event","nativeEvent","layout","find","map","filter","handleClose","icon","default","success","error","warning","info","loading","isHorizontalSwipe","isVerticalSwipe","dragOffsetX","offsetX","dragOffsetY","offsetY","stackScale","frontToastHeight","length","baseOffset","liftPerToast","computedY","computedX","computedScale","computedOpacity","computedZIndex","computedHeight","computedPointerEvents","dataSet","visible","front","String","gapFillerHeight","ref","role","tabIndex","onLayout","transition","isDragging","zIndex","overflow","top","bottom","style","transformOrigin","enterStyle","exitStyle","onKeyDown","key","flexShrink","flex","onPress","close","action","cancel","onClick","label","defaultPrevented","displayName"],"sources":["../../src/ToastItem.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}