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