@hanzogui/toast 3.0.2 → 7.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (270) hide show
  1. package/dist/cjs/Toast.cjs +149 -141
  2. package/dist/cjs/Toast.native.js +149 -142
  3. package/dist/cjs/Toast.native.js.map +1 -1
  4. package/dist/cjs/ToastAnnounce.cjs +81 -75
  5. package/dist/cjs/ToastAnnounce.native.js +86 -80
  6. package/dist/cjs/ToastAnnounce.native.js.map +1 -1
  7. package/dist/cjs/ToastComposable.cjs +933 -0
  8. package/dist/cjs/ToastComposable.native.js +1025 -0
  9. package/dist/cjs/ToastComposable.native.js.map +1 -0
  10. package/dist/cjs/ToastImperative.cjs +99 -80
  11. package/dist/cjs/ToastImperative.native.js +104 -96
  12. package/dist/cjs/ToastImperative.native.js.map +1 -1
  13. package/dist/cjs/ToastImpl.cjs +303 -241
  14. package/dist/cjs/ToastImpl.native.js +311 -273
  15. package/dist/cjs/ToastImpl.native.js.map +1 -1
  16. package/dist/cjs/ToastItemFrame.cjs +143 -0
  17. package/dist/cjs/ToastItemFrame.native.js +148 -0
  18. package/dist/cjs/ToastItemFrame.native.js.map +1 -0
  19. package/dist/cjs/ToastPortal.cjs +23 -18
  20. package/dist/cjs/ToastPortal.native.js +27 -22
  21. package/dist/cjs/ToastPortal.native.js.map +1 -1
  22. package/dist/cjs/ToastProvider.cjs +103 -99
  23. package/dist/cjs/ToastProvider.native.js +108 -106
  24. package/dist/cjs/ToastProvider.native.js.map +1 -1
  25. package/dist/cjs/ToastState.cjs +311 -0
  26. package/dist/cjs/ToastState.native.js +324 -0
  27. package/dist/cjs/ToastState.native.js.map +1 -0
  28. package/dist/cjs/ToastViewport.cjs +276 -235
  29. package/dist/cjs/ToastViewport.native.js +302 -274
  30. package/dist/cjs/ToastViewport.native.js.map +1 -1
  31. package/dist/cjs/Toaster.cjs +87 -0
  32. package/dist/cjs/Toaster.native.js +91 -0
  33. package/dist/cjs/Toaster.native.js.map +1 -0
  34. package/dist/cjs/constants.cjs +14 -12
  35. package/dist/cjs/constants.native.js +14 -12
  36. package/dist/cjs/constants.native.js.map +1 -1
  37. package/dist/cjs/createNativeToast.cjs +43 -35
  38. package/dist/cjs/createNativeToast.native.js +42 -30
  39. package/dist/cjs/createNativeToast.native.js.map +1 -1
  40. package/dist/cjs/dispatchNativeToast.cjs +47 -0
  41. package/dist/cjs/dispatchNativeToast.native.js +52 -0
  42. package/dist/cjs/dispatchNativeToast.native.js.map +1 -0
  43. package/dist/cjs/index.cjs +7 -5
  44. package/dist/cjs/index.native.js +7 -5
  45. package/dist/cjs/index.native.js.map +1 -1
  46. package/dist/cjs/types.cjs +7 -5
  47. package/dist/cjs/types.native.js +7 -5
  48. package/dist/cjs/types.native.js.map +1 -1
  49. package/dist/cjs/useAnimatedDragGesture.cjs +214 -0
  50. package/dist/cjs/useAnimatedDragGesture.native.js +224 -0
  51. package/dist/cjs/useAnimatedDragGesture.native.js.map +1 -0
  52. package/dist/cjs/useReducedMotion.cjs +74 -0
  53. package/dist/cjs/useReducedMotion.native.js +83 -0
  54. package/dist/cjs/useReducedMotion.native.js.map +1 -0
  55. package/dist/cjs/useToastAnimations.cjs +294 -0
  56. package/dist/cjs/useToastAnimations.native.js +304 -0
  57. package/dist/cjs/useToastAnimations.native.js.map +1 -0
  58. package/dist/cjs/v2.cjs +36 -0
  59. package/dist/cjs/v2.native.js +39 -0
  60. package/dist/cjs/v2.native.js.map +1 -0
  61. package/dist/esm/Toast.mjs +112 -106
  62. package/dist/esm/Toast.mjs.map +1 -1
  63. package/dist/esm/Toast.native.js +112 -107
  64. package/dist/esm/Toast.native.js.map +1 -1
  65. package/dist/esm/ToastAnnounce.mjs +46 -42
  66. package/dist/esm/ToastAnnounce.mjs.map +1 -1
  67. package/dist/esm/ToastAnnounce.native.js +52 -48
  68. package/dist/esm/ToastAnnounce.native.js.map +1 -1
  69. package/dist/esm/ToastComposable.mjs +895 -0
  70. package/dist/esm/ToastComposable.mjs.map +1 -0
  71. package/dist/esm/ToastComposable.native.js +984 -0
  72. package/dist/esm/ToastComposable.native.js.map +1 -0
  73. package/dist/esm/ToastImperative.mjs +71 -54
  74. package/dist/esm/ToastImperative.mjs.map +1 -1
  75. package/dist/esm/ToastImperative.native.js +76 -70
  76. package/dist/esm/ToastImperative.native.js.map +1 -1
  77. package/dist/esm/ToastImpl.mjs +261 -201
  78. package/dist/esm/ToastImpl.mjs.map +1 -1
  79. package/dist/esm/ToastImpl.native.js +270 -234
  80. package/dist/esm/ToastImpl.native.js.map +1 -1
  81. package/dist/esm/ToastItemFrame.mjs +114 -0
  82. package/dist/esm/ToastItemFrame.mjs.map +1 -0
  83. package/dist/esm/ToastItemFrame.native.js +116 -0
  84. package/dist/esm/ToastItemFrame.native.js.map +1 -0
  85. package/dist/esm/ToastPortal.mjs +8 -5
  86. package/dist/esm/ToastPortal.mjs.map +1 -1
  87. package/dist/esm/ToastPortal.native.js +12 -9
  88. package/dist/esm/ToastPortal.native.js.map +1 -1
  89. package/dist/esm/ToastProvider.mjs +71 -69
  90. package/dist/esm/ToastProvider.mjs.map +1 -1
  91. package/dist/esm/ToastProvider.native.js +77 -77
  92. package/dist/esm/ToastProvider.native.js.map +1 -1
  93. package/dist/esm/ToastState.mjs +285 -0
  94. package/dist/esm/ToastState.mjs.map +1 -0
  95. package/dist/esm/ToastState.native.js +295 -0
  96. package/dist/esm/ToastState.native.js.map +1 -0
  97. package/dist/esm/ToastViewport.mjs +238 -199
  98. package/dist/esm/ToastViewport.mjs.map +1 -1
  99. package/dist/esm/ToastViewport.native.js +265 -239
  100. package/dist/esm/ToastViewport.native.js.map +1 -1
  101. package/dist/esm/Toaster.mjs +51 -0
  102. package/dist/esm/Toaster.mjs.map +1 -0
  103. package/dist/esm/Toaster.native.js +52 -0
  104. package/dist/esm/Toaster.native.js.map +1 -0
  105. package/dist/esm/constants.mjs +2 -2
  106. package/dist/esm/constants.mjs.map +1 -1
  107. package/dist/esm/constants.native.js +2 -2
  108. package/dist/esm/constants.native.js.map +1 -1
  109. package/dist/esm/createNativeToast.mjs +29 -24
  110. package/dist/esm/createNativeToast.mjs.map +1 -1
  111. package/dist/esm/createNativeToast.native.js +27 -18
  112. package/dist/esm/createNativeToast.native.js.map +1 -1
  113. package/dist/esm/dispatchNativeToast.mjs +22 -0
  114. package/dist/esm/dispatchNativeToast.mjs.map +1 -0
  115. package/dist/esm/dispatchNativeToast.native.js +24 -0
  116. package/dist/esm/dispatchNativeToast.native.js.map +1 -0
  117. package/dist/esm/useAnimatedDragGesture.mjs +178 -0
  118. package/dist/esm/useAnimatedDragGesture.mjs.map +1 -0
  119. package/dist/esm/useAnimatedDragGesture.native.js +185 -0
  120. package/dist/esm/useAnimatedDragGesture.native.js.map +1 -0
  121. package/dist/esm/useReducedMotion.mjs +38 -0
  122. package/dist/esm/useReducedMotion.mjs.map +1 -0
  123. package/dist/esm/useReducedMotion.native.js +44 -0
  124. package/dist/esm/useReducedMotion.native.js.map +1 -0
  125. package/dist/esm/useToastAnimations.mjs +258 -0
  126. package/dist/esm/useToastAnimations.mjs.map +1 -0
  127. package/dist/esm/useToastAnimations.native.js +265 -0
  128. package/dist/esm/useToastAnimations.native.js.map +1 -0
  129. package/dist/esm/v2.mjs +6 -0
  130. package/dist/esm/v2.mjs.map +1 -0
  131. package/dist/esm/v2.native.js +6 -0
  132. package/dist/esm/v2.native.js.map +1 -0
  133. package/dist/jsx/Toast.mjs +112 -106
  134. package/dist/jsx/Toast.mjs.map +1 -1
  135. package/dist/jsx/Toast.native.js +149 -142
  136. package/dist/jsx/Toast.native.js.map +1 -1
  137. package/dist/jsx/ToastAnnounce.mjs +46 -42
  138. package/dist/jsx/ToastAnnounce.mjs.map +1 -1
  139. package/dist/jsx/ToastAnnounce.native.js +86 -80
  140. package/dist/jsx/ToastAnnounce.native.js.map +1 -1
  141. package/dist/jsx/ToastComposable.mjs +895 -0
  142. package/dist/jsx/ToastComposable.mjs.map +1 -0
  143. package/dist/jsx/ToastComposable.native.js +1025 -0
  144. package/dist/jsx/ToastComposable.native.js.map +1 -0
  145. package/dist/jsx/ToastImperative.mjs +71 -54
  146. package/dist/jsx/ToastImperative.mjs.map +1 -1
  147. package/dist/jsx/ToastImperative.native.js +104 -96
  148. package/dist/jsx/ToastImperative.native.js.map +1 -1
  149. package/dist/jsx/ToastImpl.mjs +261 -201
  150. package/dist/jsx/ToastImpl.mjs.map +1 -1
  151. package/dist/jsx/ToastImpl.native.js +311 -273
  152. package/dist/jsx/ToastImpl.native.js.map +1 -1
  153. package/dist/jsx/ToastItemFrame.mjs +114 -0
  154. package/dist/jsx/ToastItemFrame.mjs.map +1 -0
  155. package/dist/jsx/ToastItemFrame.native.js +148 -0
  156. package/dist/jsx/ToastItemFrame.native.js.map +1 -0
  157. package/dist/jsx/ToastPortal.mjs +8 -5
  158. package/dist/jsx/ToastPortal.mjs.map +1 -1
  159. package/dist/jsx/ToastPortal.native.js +27 -22
  160. package/dist/jsx/ToastPortal.native.js.map +1 -1
  161. package/dist/jsx/ToastProvider.mjs +71 -69
  162. package/dist/jsx/ToastProvider.mjs.map +1 -1
  163. package/dist/jsx/ToastProvider.native.js +108 -106
  164. package/dist/jsx/ToastProvider.native.js.map +1 -1
  165. package/dist/jsx/ToastState.mjs +285 -0
  166. package/dist/jsx/ToastState.mjs.map +1 -0
  167. package/dist/jsx/ToastState.native.js +324 -0
  168. package/dist/jsx/ToastState.native.js.map +1 -0
  169. package/dist/jsx/ToastViewport.mjs +238 -199
  170. package/dist/jsx/ToastViewport.mjs.map +1 -1
  171. package/dist/jsx/ToastViewport.native.js +302 -274
  172. package/dist/jsx/ToastViewport.native.js.map +1 -1
  173. package/dist/jsx/Toaster.mjs +51 -0
  174. package/dist/jsx/Toaster.mjs.map +1 -0
  175. package/dist/jsx/Toaster.native.js +91 -0
  176. package/dist/jsx/Toaster.native.js.map +1 -0
  177. package/dist/jsx/constants.mjs +2 -2
  178. package/dist/jsx/constants.mjs.map +1 -1
  179. package/dist/jsx/constants.native.js +14 -12
  180. package/dist/jsx/constants.native.js.map +1 -1
  181. package/dist/jsx/createNativeToast.mjs +29 -24
  182. package/dist/jsx/createNativeToast.mjs.map +1 -1
  183. package/dist/jsx/createNativeToast.native.js +42 -30
  184. package/dist/jsx/createNativeToast.native.js.map +1 -1
  185. package/dist/jsx/dispatchNativeToast.mjs +22 -0
  186. package/dist/jsx/dispatchNativeToast.mjs.map +1 -0
  187. package/dist/jsx/dispatchNativeToast.native.js +52 -0
  188. package/dist/jsx/dispatchNativeToast.native.js.map +1 -0
  189. package/dist/jsx/index.native.js +7 -5
  190. package/dist/jsx/types.native.js +7 -5
  191. package/dist/jsx/useAnimatedDragGesture.mjs +178 -0
  192. package/dist/jsx/useAnimatedDragGesture.mjs.map +1 -0
  193. package/dist/jsx/useAnimatedDragGesture.native.js +224 -0
  194. package/dist/jsx/useAnimatedDragGesture.native.js.map +1 -0
  195. package/dist/jsx/useReducedMotion.mjs +38 -0
  196. package/dist/jsx/useReducedMotion.mjs.map +1 -0
  197. package/dist/jsx/useReducedMotion.native.js +83 -0
  198. package/dist/jsx/useReducedMotion.native.js.map +1 -0
  199. package/dist/jsx/useToastAnimations.mjs +258 -0
  200. package/dist/jsx/useToastAnimations.mjs.map +1 -0
  201. package/dist/jsx/useToastAnimations.native.js +304 -0
  202. package/dist/jsx/useToastAnimations.native.js.map +1 -0
  203. package/dist/jsx/v2.mjs +6 -0
  204. package/dist/jsx/v2.mjs.map +1 -0
  205. package/dist/jsx/v2.native.js +39 -0
  206. package/dist/jsx/v2.native.js.map +1 -0
  207. package/package.json +43 -24
  208. package/src/Toast.tsx +2 -2
  209. package/src/ToastComposable.tsx +1380 -0
  210. package/src/ToastImpl.tsx +15 -3
  211. package/src/ToastItemFrame.tsx +136 -0
  212. package/src/ToastPortal.tsx +2 -2
  213. package/src/ToastProvider.tsx +8 -1
  214. package/src/ToastState.ts +398 -0
  215. package/src/ToastViewport.tsx +6 -5
  216. package/src/Toaster.tsx +181 -0
  217. package/src/createNativeToast.native.tsx +4 -0
  218. package/src/createNativeToast.tsx +18 -24
  219. package/src/dispatchNativeToast.ts +43 -0
  220. package/src/useAnimatedDragGesture.native.ts +255 -0
  221. package/src/useAnimatedDragGesture.ts +319 -0
  222. package/src/useReducedMotion.ts +59 -0
  223. package/src/useToastAnimations.ts +377 -0
  224. package/src/v2.ts +31 -0
  225. package/types/Toast.d.ts +34 -34
  226. package/types/Toast.d.ts.map +1 -0
  227. package/types/ToastAnnounce.d.ts +4 -4
  228. package/types/ToastAnnounce.d.ts.map +1 -0
  229. package/types/ToastComposable.d.ts +199 -0
  230. package/types/ToastComposable.d.ts.map +1 -0
  231. package/types/ToastImperative.d.ts +3 -3
  232. package/types/ToastImperative.d.ts.map +1 -0
  233. package/types/ToastImpl.d.ts +11 -11
  234. package/types/ToastImpl.d.ts.map +1 -0
  235. package/types/ToastItemFrame.d.ts +25 -0
  236. package/types/ToastItemFrame.d.ts.map +1 -0
  237. package/types/ToastPortal.d.ts +1 -1
  238. package/types/ToastPortal.d.ts.map +1 -0
  239. package/types/ToastProvider.d.ts +4 -4
  240. package/types/ToastProvider.d.ts.map +1 -0
  241. package/types/ToastState.d.ts +179 -0
  242. package/types/ToastState.d.ts.map +1 -0
  243. package/types/ToastViewport.d.ts +10 -10
  244. package/types/ToastViewport.d.ts.map +1 -0
  245. package/types/Toaster.d.ts +112 -0
  246. package/types/Toaster.d.ts.map +1 -0
  247. package/types/constants.d.ts.map +1 -0
  248. package/types/createNativeToast.d.ts +5 -0
  249. package/types/createNativeToast.d.ts.map +1 -0
  250. package/types/createNativeToast.native.d.ts +1 -0
  251. package/types/createNativeToast.native.d.ts.map +1 -0
  252. package/types/dispatchNativeToast.d.ts +12 -0
  253. package/types/dispatchNativeToast.d.ts.map +1 -0
  254. package/types/index.d.ts.map +1 -0
  255. package/types/types.d.ts.map +1 -0
  256. package/types/useAnimatedDragGesture.d.ts +33 -0
  257. package/types/useAnimatedDragGesture.d.ts.map +1 -0
  258. package/types/useAnimatedDragGesture.native.d.ts +33 -0
  259. package/types/useAnimatedDragGesture.native.d.ts.map +1 -0
  260. package/types/useReducedMotion.d.ts +6 -0
  261. package/types/useReducedMotion.d.ts.map +1 -0
  262. package/types/useToastAnimations.d.ts +50 -0
  263. package/types/useToastAnimations.d.ts.map +1 -0
  264. package/types/v2.d.ts +10 -0
  265. package/types/v2.d.ts.map +1 -0
  266. package/v2/index.cjs +2 -0
  267. package/v2/index.js +2 -0
  268. package/v2/index.native.cjs +2 -0
  269. package/v2/index.native.js +2 -0
  270. package/LICENSE +0 -21
@@ -0,0 +1,311 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all) __defProp(target, name, {
7
+ get: all[name],
8
+ enumerable: true
9
+ });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
14
+ get: () => from[key],
15
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
16
+ });
17
+ }
18
+ return to;
19
+ };
20
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
21
+ value: true
22
+ }), mod);
23
+ var ToastState_exports = {};
24
+ __export(ToastState_exports, {
25
+ ToastState: () => ToastState,
26
+ toast: () => toast
27
+ });
28
+ module.exports = __toCommonJS(ToastState_exports);
29
+ let toastsCounter = 1;
30
+ class Observer {
31
+ subscribers = [];
32
+ toasts = [];
33
+ dismissedToasts = /* @__PURE__ */new Set();
34
+ /**
35
+ * Subscribe to toast state changes.
36
+ * Returns an unsubscribe function.
37
+ */
38
+ subscribe = subscriber => {
39
+ this.subscribers.push(subscriber);
40
+ return () => {
41
+ const index = this.subscribers.indexOf(subscriber);
42
+ if (index > -1) {
43
+ this.subscribers.splice(index, 1);
44
+ }
45
+ };
46
+ };
47
+ /**
48
+ * Publish a toast to all subscribers
49
+ */
50
+ publish = data => {
51
+ this.subscribers.forEach(subscriber => subscriber(data));
52
+ };
53
+ /**
54
+ * Add a new toast to the internal array and publish to subscribers
55
+ */
56
+ addToast = data => {
57
+ this.publish(data);
58
+ this.toasts = [...this.toasts, data];
59
+ };
60
+ /**
61
+ * Create or update a toast
62
+ */
63
+ create = data => {
64
+ const {
65
+ title,
66
+ ...rest
67
+ } = data;
68
+ const id = typeof data?.id === "number" || typeof data?.id === "string" && data.id.length > 0 ? data.id : toastsCounter++;
69
+ const alreadyExists = this.toasts.find(toast2 => toast2.id === id);
70
+ const dismissible = data.dismissible ?? true;
71
+ if (this.dismissedToasts.has(id)) {
72
+ this.dismissedToasts.delete(id);
73
+ }
74
+ if (alreadyExists) {
75
+ this.toasts = this.toasts.map(toast2 => {
76
+ if (toast2.id === id) {
77
+ this.publish({
78
+ ...toast2,
79
+ ...data,
80
+ id,
81
+ title,
82
+ dismissible
83
+ });
84
+ return {
85
+ ...toast2,
86
+ ...data,
87
+ id,
88
+ title,
89
+ dismissible
90
+ };
91
+ }
92
+ return toast2;
93
+ });
94
+ } else {
95
+ this.addToast({
96
+ title,
97
+ ...rest,
98
+ dismissible,
99
+ id
100
+ });
101
+ }
102
+ return id;
103
+ };
104
+ /**
105
+ * Dismiss a toast by id, or all toasts if no id provided
106
+ */
107
+ dismiss = id => {
108
+ if (id !== void 0) {
109
+ this.dismissedToasts.add(id);
110
+ requestAnimationFrame(() => {
111
+ this.subscribers.forEach(subscriber => subscriber({
112
+ id,
113
+ dismiss: true
114
+ }));
115
+ });
116
+ } else {
117
+ this.toasts.forEach(toast2 => {
118
+ this.subscribers.forEach(subscriber => subscriber({
119
+ id: toast2.id,
120
+ dismiss: true
121
+ }));
122
+ });
123
+ }
124
+ return id;
125
+ };
126
+ /**
127
+ * Show a basic toast message
128
+ */
129
+ message = (title, data) => {
130
+ return this.create({
131
+ ...data,
132
+ title,
133
+ type: "default"
134
+ });
135
+ };
136
+ /**
137
+ * Show a success toast
138
+ */
139
+ success = (title, data) => {
140
+ return this.create({
141
+ ...data,
142
+ title,
143
+ type: "success"
144
+ });
145
+ };
146
+ /**
147
+ * Show an error toast
148
+ */
149
+ error = (title, data) => {
150
+ return this.create({
151
+ ...data,
152
+ title,
153
+ type: "error"
154
+ });
155
+ };
156
+ /**
157
+ * Show a warning toast
158
+ */
159
+ warning = (title, data) => {
160
+ return this.create({
161
+ ...data,
162
+ title,
163
+ type: "warning"
164
+ });
165
+ };
166
+ /**
167
+ * Show an info toast
168
+ */
169
+ info = (title, data) => {
170
+ return this.create({
171
+ ...data,
172
+ title,
173
+ type: "info"
174
+ });
175
+ };
176
+ /**
177
+ * Show a loading toast
178
+ */
179
+ loading = (title, data) => {
180
+ return this.create({
181
+ ...data,
182
+ title,
183
+ type: "loading"
184
+ });
185
+ };
186
+ /**
187
+ * Show a toast for a promise, automatically transitioning through
188
+ * loading -> success/error states
189
+ */
190
+ promise = (promise, data) => {
191
+ if (!data) {
192
+ return;
193
+ }
194
+ let id = void 0;
195
+ if (data.loading !== void 0) {
196
+ id = this.create({
197
+ promise,
198
+ type: "loading",
199
+ title: data.loading,
200
+ description: typeof data.description !== "function" ? data.description : void 0,
201
+ // loading toasts shouldn't auto-dismiss
202
+ duration: Number.POSITIVE_INFINITY
203
+ });
204
+ }
205
+ const p = Promise.resolve(promise instanceof Function ? promise() : promise);
206
+ let shouldDismiss = id !== void 0;
207
+ let result;
208
+ const originalPromise = p.then(async response => {
209
+ result = ["resolve", response];
210
+ if (isHttpResponse(response) && !response.ok) {
211
+ shouldDismiss = false;
212
+ const errorMsg = typeof data.error === "function" ? await data.error(`HTTP error! status: ${response.status}`) : data.error;
213
+ const description = typeof data.description === "function" ? await data.description(`HTTP error! status: ${response.status}`) : data.description;
214
+ this.create({
215
+ id,
216
+ type: "error",
217
+ title: errorMsg,
218
+ description
219
+ });
220
+ } else if (data.success !== void 0) {
221
+ shouldDismiss = false;
222
+ const successMsg = typeof data.success === "function" ? await data.success(response) : data.success;
223
+ const description = typeof data.description === "function" ? await data.description(response) : data.description;
224
+ this.create({
225
+ id,
226
+ type: "success",
227
+ title: successMsg,
228
+ description
229
+ });
230
+ }
231
+ }).catch(async error => {
232
+ result = ["reject", error];
233
+ if (data.error !== void 0) {
234
+ shouldDismiss = false;
235
+ const errorMsg = typeof data.error === "function" ? await data.error(error) : data.error;
236
+ const description = typeof data.description === "function" ? await data.description(error) : data.description;
237
+ this.create({
238
+ id,
239
+ type: "error",
240
+ title: errorMsg,
241
+ description
242
+ });
243
+ }
244
+ }).finally(() => {
245
+ if (shouldDismiss) {
246
+ this.dismiss(id);
247
+ id = void 0;
248
+ }
249
+ data.finally?.();
250
+ });
251
+ const unwrap = () => new Promise((resolve, reject) => originalPromise.then(() => result[0] === "reject" ? reject(result[1]) : resolve(result[1])).catch(reject));
252
+ if (typeof id !== "string" && typeof id !== "number") {
253
+ return {
254
+ unwrap
255
+ };
256
+ } else {
257
+ return Object.assign(id, {
258
+ unwrap
259
+ });
260
+ }
261
+ };
262
+ /**
263
+ * Show a custom JSX toast
264
+ */
265
+ custom = (jsx, data) => {
266
+ const id = data?.id ?? toastsCounter++;
267
+ this.create({
268
+ jsx: jsx(id),
269
+ ...data,
270
+ id
271
+ });
272
+ return id;
273
+ };
274
+ /**
275
+ * Get all active (non-dismissed) toasts
276
+ */
277
+ getActiveToasts = () => {
278
+ return this.toasts.filter(toast2 => !this.dismissedToasts.has(toast2.id));
279
+ };
280
+ /**
281
+ * Get full toast history
282
+ */
283
+ getHistory = () => {
284
+ return this.toasts;
285
+ };
286
+ }
287
+ function isHttpResponse(data) {
288
+ return data && typeof data === "object" && "ok" in data && typeof data.ok === "boolean" && "status" in data && typeof data.status === "number";
289
+ }
290
+ const ToastState = new Observer();
291
+ const toastFunction = (title, data) => {
292
+ return ToastState.create({
293
+ ...data,
294
+ title
295
+ });
296
+ };
297
+ const getHistory = () => ToastState.getHistory();
298
+ const getToasts = () => ToastState.getActiveToasts();
299
+ const toast = Object.assign(toastFunction, {
300
+ success: ToastState.success,
301
+ error: ToastState.error,
302
+ warning: ToastState.warning,
303
+ info: ToastState.info,
304
+ loading: ToastState.loading,
305
+ promise: ToastState.promise,
306
+ custom: ToastState.custom,
307
+ dismiss: ToastState.dismiss,
308
+ message: ToastState.message,
309
+ getHistory,
310
+ getToasts
311
+ });
@@ -0,0 +1,324 @@
1
+ "use strict";
2
+
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all) __defProp(target, name, {
9
+ get: all[name],
10
+ enumerable: true
11
+ });
12
+ };
13
+ var __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from === "object" || typeof from === "function") {
15
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
16
+ get: () => from[key],
17
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
18
+ });
19
+ }
20
+ return to;
21
+ };
22
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
23
+ value: true
24
+ }), mod);
25
+ var ToastState_exports = {};
26
+ __export(ToastState_exports, {
27
+ ToastState: () => ToastState,
28
+ toast: () => toast
29
+ });
30
+ module.exports = __toCommonJS(ToastState_exports);
31
+ function _class_call_check(instance, Constructor) {
32
+ if (!(instance instanceof Constructor)) {
33
+ throw new TypeError("Cannot call a class as a function");
34
+ }
35
+ }
36
+ function _define_property(obj, key, value) {
37
+ if (key in obj) {
38
+ Object.defineProperty(obj, key, {
39
+ value,
40
+ enumerable: true,
41
+ configurable: true,
42
+ writable: true
43
+ });
44
+ } else {
45
+ obj[key] = value;
46
+ }
47
+ return obj;
48
+ }
49
+ function _instanceof(left, right) {
50
+ if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
51
+ return !!right[Symbol.hasInstance](left);
52
+ } else {
53
+ return left instanceof right;
54
+ }
55
+ }
56
+ function _type_of(obj) {
57
+ "@swc/helpers - typeof";
58
+
59
+ return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
60
+ }
61
+ var toastsCounter = 1;
62
+ var Observer = function Observer2() {
63
+ "use strict";
64
+
65
+ var _this = this;
66
+ _class_call_check(this, Observer2);
67
+ _define_property(this, "subscribers", []);
68
+ _define_property(this, "toasts", []);
69
+ _define_property(this, "dismissedToasts", /* @__PURE__ */new Set());
70
+ _define_property(this, "subscribe", function (subscriber) {
71
+ _this.subscribers.push(subscriber);
72
+ return function () {
73
+ var index = _this.subscribers.indexOf(subscriber);
74
+ if (index > -1) {
75
+ _this.subscribers.splice(index, 1);
76
+ }
77
+ };
78
+ });
79
+ _define_property(this, "publish", function (data) {
80
+ _this.subscribers.forEach(function (subscriber) {
81
+ return subscriber(data);
82
+ });
83
+ });
84
+ _define_property(this, "addToast", function (data) {
85
+ _this.publish(data);
86
+ _this.toasts = [..._this.toasts, data];
87
+ });
88
+ _define_property(this, "create", function (data) {
89
+ var {
90
+ title,
91
+ ...rest
92
+ } = data;
93
+ var id = typeof (data === null || data === void 0 ? void 0 : data.id) === "number" || typeof (data === null || data === void 0 ? void 0 : data.id) === "string" && data.id.length > 0 ? data.id : toastsCounter++;
94
+ var alreadyExists = _this.toasts.find(function (toast2) {
95
+ return toast2.id === id;
96
+ });
97
+ var _data_dismissible;
98
+ var dismissible = (_data_dismissible = data.dismissible) !== null && _data_dismissible !== void 0 ? _data_dismissible : true;
99
+ if (_this.dismissedToasts.has(id)) {
100
+ _this.dismissedToasts.delete(id);
101
+ }
102
+ if (alreadyExists) {
103
+ _this.toasts = _this.toasts.map(function (toast2) {
104
+ if (toast2.id === id) {
105
+ _this.publish({
106
+ ...toast2,
107
+ ...data,
108
+ id,
109
+ title,
110
+ dismissible
111
+ });
112
+ return {
113
+ ...toast2,
114
+ ...data,
115
+ id,
116
+ title,
117
+ dismissible
118
+ };
119
+ }
120
+ return toast2;
121
+ });
122
+ } else {
123
+ _this.addToast({
124
+ title,
125
+ ...rest,
126
+ dismissible,
127
+ id
128
+ });
129
+ }
130
+ return id;
131
+ });
132
+ _define_property(this, "dismiss", function (id) {
133
+ if (id !== void 0) {
134
+ _this.dismissedToasts.add(id);
135
+ requestAnimationFrame(function () {
136
+ _this.subscribers.forEach(function (subscriber) {
137
+ return subscriber({
138
+ id,
139
+ dismiss: true
140
+ });
141
+ });
142
+ });
143
+ } else {
144
+ _this.toasts.forEach(function (toast2) {
145
+ _this.subscribers.forEach(function (subscriber) {
146
+ return subscriber({
147
+ id: toast2.id,
148
+ dismiss: true
149
+ });
150
+ });
151
+ });
152
+ }
153
+ return id;
154
+ });
155
+ _define_property(this, "message", function (title, data) {
156
+ return _this.create({
157
+ ...data,
158
+ title,
159
+ type: "default"
160
+ });
161
+ });
162
+ _define_property(this, "success", function (title, data) {
163
+ return _this.create({
164
+ ...data,
165
+ title,
166
+ type: "success"
167
+ });
168
+ });
169
+ _define_property(this, "error", function (title, data) {
170
+ return _this.create({
171
+ ...data,
172
+ title,
173
+ type: "error"
174
+ });
175
+ });
176
+ _define_property(this, "warning", function (title, data) {
177
+ return _this.create({
178
+ ...data,
179
+ title,
180
+ type: "warning"
181
+ });
182
+ });
183
+ _define_property(this, "info", function (title, data) {
184
+ return _this.create({
185
+ ...data,
186
+ title,
187
+ type: "info"
188
+ });
189
+ });
190
+ _define_property(this, "loading", function (title, data) {
191
+ return _this.create({
192
+ ...data,
193
+ title,
194
+ type: "loading"
195
+ });
196
+ });
197
+ _define_property(this, "promise", function (promise, data) {
198
+ if (!data) {
199
+ return;
200
+ }
201
+ var id = void 0;
202
+ if (data.loading !== void 0) {
203
+ id = _this.create({
204
+ promise,
205
+ type: "loading",
206
+ title: data.loading,
207
+ description: typeof data.description !== "function" ? data.description : void 0,
208
+ // loading toasts shouldn't auto-dismiss
209
+ duration: Number.POSITIVE_INFINITY
210
+ });
211
+ }
212
+ var p = Promise.resolve(_instanceof(promise, Function) ? promise() : promise);
213
+ var shouldDismiss = id !== void 0;
214
+ var result;
215
+ var originalPromise = p.then(async function (response) {
216
+ result = ["resolve", response];
217
+ if (isHttpResponse(response) && !response.ok) {
218
+ shouldDismiss = false;
219
+ var errorMsg = typeof data.error === "function" ? await data.error(`HTTP error! status: ${response.status}`) : data.error;
220
+ var description = typeof data.description === "function" ? await data.description(`HTTP error! status: ${response.status}`) : data.description;
221
+ _this.create({
222
+ id,
223
+ type: "error",
224
+ title: errorMsg,
225
+ description
226
+ });
227
+ } else if (data.success !== void 0) {
228
+ shouldDismiss = false;
229
+ var successMsg = typeof data.success === "function" ? await data.success(response) : data.success;
230
+ var description1 = typeof data.description === "function" ? await data.description(response) : data.description;
231
+ _this.create({
232
+ id,
233
+ type: "success",
234
+ title: successMsg,
235
+ description: description1
236
+ });
237
+ }
238
+ }).catch(async function (error) {
239
+ result = ["reject", error];
240
+ if (data.error !== void 0) {
241
+ shouldDismiss = false;
242
+ var errorMsg = typeof data.error === "function" ? await data.error(error) : data.error;
243
+ var description = typeof data.description === "function" ? await data.description(error) : data.description;
244
+ _this.create({
245
+ id,
246
+ type: "error",
247
+ title: errorMsg,
248
+ description
249
+ });
250
+ }
251
+ }).finally(function () {
252
+ var _data_finally;
253
+ if (shouldDismiss) {
254
+ _this.dismiss(id);
255
+ id = void 0;
256
+ }
257
+ (_data_finally = data.finally) === null || _data_finally === void 0 ? void 0 : _data_finally.call(data);
258
+ });
259
+ var unwrap = function () {
260
+ return new Promise(function (resolve, reject) {
261
+ return originalPromise.then(function () {
262
+ return result[0] === "reject" ? reject(result[1]) : resolve(result[1]);
263
+ }).catch(reject);
264
+ });
265
+ };
266
+ if (typeof id !== "string" && typeof id !== "number") {
267
+ return {
268
+ unwrap
269
+ };
270
+ } else {
271
+ return Object.assign(id, {
272
+ unwrap
273
+ });
274
+ }
275
+ });
276
+ _define_property(this, "custom", function (jsx, data) {
277
+ var _data_id;
278
+ var id = (_data_id = data === null || data === void 0 ? void 0 : data.id) !== null && _data_id !== void 0 ? _data_id : toastsCounter++;
279
+ _this.create({
280
+ jsx: jsx(id),
281
+ ...data,
282
+ id
283
+ });
284
+ return id;
285
+ });
286
+ _define_property(this, "getActiveToasts", function () {
287
+ return _this.toasts.filter(function (toast2) {
288
+ return !_this.dismissedToasts.has(toast2.id);
289
+ });
290
+ });
291
+ _define_property(this, "getHistory", function () {
292
+ return _this.toasts;
293
+ });
294
+ };
295
+ function isHttpResponse(data) {
296
+ return data && (typeof data === "undefined" ? "undefined" : _type_of(data)) === "object" && "ok" in data && typeof data.ok === "boolean" && "status" in data && typeof data.status === "number";
297
+ }
298
+ var ToastState = new Observer();
299
+ var toastFunction = function (title, data) {
300
+ return ToastState.create({
301
+ ...data,
302
+ title
303
+ });
304
+ };
305
+ var getHistory = function () {
306
+ return ToastState.getHistory();
307
+ };
308
+ var getToasts = function () {
309
+ return ToastState.getActiveToasts();
310
+ };
311
+ var toast = Object.assign(toastFunction, {
312
+ success: ToastState.success,
313
+ error: ToastState.error,
314
+ warning: ToastState.warning,
315
+ info: ToastState.info,
316
+ loading: ToastState.loading,
317
+ promise: ToastState.promise,
318
+ custom: ToastState.custom,
319
+ dismiss: ToastState.dismiss,
320
+ message: ToastState.message,
321
+ getHistory,
322
+ getToasts
323
+ });
324
+ //# sourceMappingURL=ToastState.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","ToastState_exports","__export","ToastState","toast","module","exports","_class_call_check","instance","Constructor","TypeError","_define_property","obj","key","Object","defineProperty","enumerable","configurable","writable","_instanceof","left","right","Symbol","hasInstance","_type_of","constructor","toastsCounter","Observer","Observer2","_this","Set","subscriber","subscribers","push","index","indexOf","splice","data","forEach","publish","toasts","title","rest","id","length","alreadyExists","find","toast2","_data_dismissible","dismissible","dismissedToasts","has","delete","map","addToast","add","requestAnimationFrame","dismiss","create","type","promise","loading","description","duration","Number","POSITIVE_INFINITY","p","Promise","resolve","Function","shouldDismiss","result","originalPromise","then","response","isHttpResponse","ok","errorMsg","error","status","success","successMsg","description1","catch"],"sources":["../../src/ToastState.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}