react-native-sooner 1.0.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 (80) hide show
  1. package/LICENSE +20 -0
  2. package/README.md +376 -0
  3. package/lib/module/constants.js +40 -0
  4. package/lib/module/constants.js.map +1 -0
  5. package/lib/module/context.js +25 -0
  6. package/lib/module/context.js.map +1 -0
  7. package/lib/module/easings.js +9 -0
  8. package/lib/module/easings.js.map +1 -0
  9. package/lib/module/gestures.js +119 -0
  10. package/lib/module/gestures.js.map +1 -0
  11. package/lib/module/hooks.js +9 -0
  12. package/lib/module/hooks.js.map +1 -0
  13. package/lib/module/icons.js +332 -0
  14. package/lib/module/icons.js.map +1 -0
  15. package/lib/module/index.js +13 -0
  16. package/lib/module/index.js.map +1 -0
  17. package/lib/module/package.json +1 -0
  18. package/lib/module/state.js +200 -0
  19. package/lib/module/state.js.map +1 -0
  20. package/lib/module/theme.js +189 -0
  21. package/lib/module/theme.js.map +1 -0
  22. package/lib/module/toast.js +362 -0
  23. package/lib/module/toast.js.map +1 -0
  24. package/lib/module/toaster.js +198 -0
  25. package/lib/module/toaster.js.map +1 -0
  26. package/lib/module/types.js +4 -0
  27. package/lib/module/types.js.map +1 -0
  28. package/lib/module/use-app-state.js +13 -0
  29. package/lib/module/use-app-state.js.map +1 -0
  30. package/lib/module/use-pauseable-timer.js +18 -0
  31. package/lib/module/use-pauseable-timer.js.map +1 -0
  32. package/lib/module/use-toast-state.js +37 -0
  33. package/lib/module/use-toast-state.js.map +1 -0
  34. package/lib/typescript/package.json +1 -0
  35. package/lib/typescript/src/constants.d.ts +32 -0
  36. package/lib/typescript/src/constants.d.ts.map +1 -0
  37. package/lib/typescript/src/context.d.ts +20 -0
  38. package/lib/typescript/src/context.d.ts.map +1 -0
  39. package/lib/typescript/src/easings.d.ts +6 -0
  40. package/lib/typescript/src/easings.d.ts.map +1 -0
  41. package/lib/typescript/src/gestures.d.ts +17 -0
  42. package/lib/typescript/src/gestures.d.ts.map +1 -0
  43. package/lib/typescript/src/hooks.d.ts +5 -0
  44. package/lib/typescript/src/hooks.d.ts.map +1 -0
  45. package/lib/typescript/src/icons.d.ts +15 -0
  46. package/lib/typescript/src/icons.d.ts.map +1 -0
  47. package/lib/typescript/src/index.d.ts +12 -0
  48. package/lib/typescript/src/index.d.ts.map +1 -0
  49. package/lib/typescript/src/state.d.ts +66 -0
  50. package/lib/typescript/src/state.d.ts.map +1 -0
  51. package/lib/typescript/src/theme.d.ts +163 -0
  52. package/lib/typescript/src/theme.d.ts.map +1 -0
  53. package/lib/typescript/src/toast.d.ts +3 -0
  54. package/lib/typescript/src/toast.d.ts.map +1 -0
  55. package/lib/typescript/src/toaster.d.ts +3 -0
  56. package/lib/typescript/src/toaster.d.ts.map +1 -0
  57. package/lib/typescript/src/types.d.ts +264 -0
  58. package/lib/typescript/src/types.d.ts.map +1 -0
  59. package/lib/typescript/src/use-app-state.d.ts +3 -0
  60. package/lib/typescript/src/use-app-state.d.ts.map +1 -0
  61. package/lib/typescript/src/use-pauseable-timer.d.ts +2 -0
  62. package/lib/typescript/src/use-pauseable-timer.d.ts.map +1 -0
  63. package/lib/typescript/src/use-toast-state.d.ts +7 -0
  64. package/lib/typescript/src/use-toast-state.d.ts.map +1 -0
  65. package/package.json +152 -0
  66. package/src/constants.ts +44 -0
  67. package/src/context.tsx +38 -0
  68. package/src/easings.ts +7 -0
  69. package/src/gestures.tsx +135 -0
  70. package/src/hooks.ts +3 -0
  71. package/src/icons.tsx +227 -0
  72. package/src/index.tsx +48 -0
  73. package/src/state.ts +262 -0
  74. package/src/theme.ts +170 -0
  75. package/src/toast.tsx +429 -0
  76. package/src/toaster.tsx +221 -0
  77. package/src/types.ts +311 -0
  78. package/src/use-app-state.ts +15 -0
  79. package/src/use-pauseable-timer.ts +24 -0
  80. package/src/use-toast-state.ts +43 -0
@@ -0,0 +1,332 @@
1
+ "use strict";
2
+
3
+ import React from "react";
4
+ import { ActivityIndicator, StyleSheet, View } from "react-native";
5
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
6
+ // Try to import react-native-svg, fall back to simple views if not available
7
+ let Svg = null;
8
+ let Circle = null;
9
+ let Path = null;
10
+ try {
11
+ const svg = require("react-native-svg");
12
+ Svg = svg.default || svg.Svg;
13
+ Circle = svg.Circle;
14
+ Path = svg.Path;
15
+ } catch {
16
+ // react-native-svg not installed, will use fallback icons
17
+ }
18
+ const DEFAULT_SIZE = 20;
19
+ export function SuccessIcon({
20
+ size = DEFAULT_SIZE,
21
+ color = "#22c55e"
22
+ }) {
23
+ if (Svg && Circle && Path) {
24
+ return /*#__PURE__*/_jsxs(Svg, {
25
+ width: size,
26
+ height: size,
27
+ viewBox: "0 0 20 20",
28
+ fill: "none",
29
+ children: [/*#__PURE__*/_jsx(Circle, {
30
+ cx: "10",
31
+ cy: "10",
32
+ r: "9",
33
+ stroke: color,
34
+ strokeWidth: "1.5"
35
+ }), /*#__PURE__*/_jsx(Path, {
36
+ d: "M6 10.5L8.5 13L14 7",
37
+ stroke: color,
38
+ strokeWidth: "1.5",
39
+ strokeLinecap: "round",
40
+ strokeLinejoin: "round"
41
+ })]
42
+ });
43
+ }
44
+ return /*#__PURE__*/_jsx(View, {
45
+ style: [styles.fallbackIcon, {
46
+ width: size,
47
+ height: size,
48
+ borderColor: color
49
+ }],
50
+ children: /*#__PURE__*/_jsx(View, {
51
+ style: [styles.checkmark, {
52
+ borderColor: color
53
+ }]
54
+ })
55
+ });
56
+ }
57
+ export function ErrorIcon({
58
+ size = DEFAULT_SIZE,
59
+ color = "#ef4444"
60
+ }) {
61
+ if (Svg && Circle && Path) {
62
+ return /*#__PURE__*/_jsxs(Svg, {
63
+ width: size,
64
+ height: size,
65
+ viewBox: "0 0 20 20",
66
+ fill: "none",
67
+ children: [/*#__PURE__*/_jsx(Circle, {
68
+ cx: "10",
69
+ cy: "10",
70
+ r: "9",
71
+ stroke: color,
72
+ strokeWidth: "1.5"
73
+ }), /*#__PURE__*/_jsx(Path, {
74
+ d: "M7 7L13 13M13 7L7 13",
75
+ stroke: color,
76
+ strokeWidth: "1.5",
77
+ strokeLinecap: "round"
78
+ })]
79
+ });
80
+ }
81
+ return /*#__PURE__*/_jsxs(View, {
82
+ style: [styles.fallbackIcon, {
83
+ width: size,
84
+ height: size,
85
+ borderColor: color
86
+ }],
87
+ children: [/*#__PURE__*/_jsx(View, {
88
+ style: [styles.xMark, {
89
+ backgroundColor: color
90
+ }]
91
+ }), /*#__PURE__*/_jsx(View, {
92
+ style: [styles.xMark, styles.xMarkRotated, {
93
+ backgroundColor: color
94
+ }]
95
+ })]
96
+ });
97
+ }
98
+ export function WarningIcon({
99
+ size = DEFAULT_SIZE,
100
+ color = "#f59e0b"
101
+ }) {
102
+ if (Svg && Path && Circle) {
103
+ return /*#__PURE__*/_jsxs(Svg, {
104
+ width: size,
105
+ height: size,
106
+ viewBox: "0 0 20 20",
107
+ fill: "none",
108
+ children: [/*#__PURE__*/_jsx(Path, {
109
+ d: "M10 2L19 18H1L10 2Z",
110
+ stroke: color,
111
+ strokeWidth: "1.5",
112
+ strokeLinejoin: "round"
113
+ }), /*#__PURE__*/_jsx(Path, {
114
+ d: "M10 8V11",
115
+ stroke: color,
116
+ strokeWidth: "1.5",
117
+ strokeLinecap: "round"
118
+ }), /*#__PURE__*/_jsx(Circle, {
119
+ cx: "10",
120
+ cy: "14",
121
+ r: "0.75",
122
+ fill: color
123
+ })]
124
+ });
125
+ }
126
+ return /*#__PURE__*/_jsx(View, {
127
+ style: [styles.triangleContainer, {
128
+ width: size,
129
+ height: size
130
+ }],
131
+ children: /*#__PURE__*/_jsx(View, {
132
+ style: [styles.triangle, {
133
+ borderBottomColor: color
134
+ }]
135
+ })
136
+ });
137
+ }
138
+ export function InfoIcon({
139
+ size = DEFAULT_SIZE,
140
+ color = "#3b82f6"
141
+ }) {
142
+ if (Svg && Circle && Path) {
143
+ return /*#__PURE__*/_jsxs(Svg, {
144
+ width: size,
145
+ height: size,
146
+ viewBox: "0 0 20 20",
147
+ fill: "none",
148
+ children: [/*#__PURE__*/_jsx(Circle, {
149
+ cx: "10",
150
+ cy: "10",
151
+ r: "9",
152
+ stroke: color,
153
+ strokeWidth: "1.5"
154
+ }), /*#__PURE__*/_jsx(Path, {
155
+ d: "M10 9V14",
156
+ stroke: color,
157
+ strokeWidth: "1.5",
158
+ strokeLinecap: "round"
159
+ }), /*#__PURE__*/_jsx(Circle, {
160
+ cx: "10",
161
+ cy: "6.5",
162
+ r: "0.75",
163
+ fill: color
164
+ })]
165
+ });
166
+ }
167
+ return /*#__PURE__*/_jsxs(View, {
168
+ style: [styles.fallbackIcon, {
169
+ width: size,
170
+ height: size,
171
+ borderColor: color
172
+ }],
173
+ children: [/*#__PURE__*/_jsx(View, {
174
+ style: [styles.infoLine, {
175
+ backgroundColor: color
176
+ }]
177
+ }), /*#__PURE__*/_jsx(View, {
178
+ style: [styles.infoDot, {
179
+ backgroundColor: color
180
+ }]
181
+ })]
182
+ });
183
+ }
184
+ export function LoadingIcon({
185
+ size = DEFAULT_SIZE,
186
+ color = "#6b7280"
187
+ }) {
188
+ return /*#__PURE__*/_jsx(ActivityIndicator, {
189
+ size: "small",
190
+ color: color,
191
+ style: {
192
+ width: size,
193
+ height: size
194
+ }
195
+ });
196
+ }
197
+ export function CloseIcon({
198
+ size = 12,
199
+ color = "#9ca3af"
200
+ }) {
201
+ if (Svg && Path) {
202
+ return /*#__PURE__*/_jsx(Svg, {
203
+ width: size,
204
+ height: size,
205
+ viewBox: "0 0 12 12",
206
+ fill: "none",
207
+ children: /*#__PURE__*/_jsx(Path, {
208
+ d: "M2 2L10 10M10 2L2 10",
209
+ stroke: color,
210
+ strokeWidth: "1.5",
211
+ strokeLinecap: "round"
212
+ })
213
+ });
214
+ }
215
+ return /*#__PURE__*/_jsxs(View, {
216
+ style: {
217
+ width: size,
218
+ height: size,
219
+ justifyContent: "center",
220
+ alignItems: "center"
221
+ },
222
+ children: [/*#__PURE__*/_jsx(View, {
223
+ style: [styles.closeX, {
224
+ backgroundColor: color
225
+ }]
226
+ }), /*#__PURE__*/_jsx(View, {
227
+ style: [styles.closeX, styles.closeXRotated, {
228
+ backgroundColor: color
229
+ }]
230
+ })]
231
+ });
232
+ }
233
+ export function getIcon(type, color) {
234
+ switch (type) {
235
+ case "success":
236
+ return /*#__PURE__*/_jsx(SuccessIcon, {
237
+ color: color
238
+ });
239
+ case "error":
240
+ return /*#__PURE__*/_jsx(ErrorIcon, {
241
+ color: color
242
+ });
243
+ case "warning":
244
+ return /*#__PURE__*/_jsx(WarningIcon, {
245
+ color: color
246
+ });
247
+ case "info":
248
+ return /*#__PURE__*/_jsx(InfoIcon, {
249
+ color: color
250
+ });
251
+ case "loading":
252
+ return /*#__PURE__*/_jsx(LoadingIcon, {
253
+ color: color
254
+ });
255
+ default:
256
+ return null;
257
+ }
258
+ }
259
+ const styles = StyleSheet.create({
260
+ fallbackIcon: {
261
+ borderWidth: 1.5,
262
+ borderRadius: 100,
263
+ justifyContent: "center",
264
+ alignItems: "center"
265
+ },
266
+ checkmark: {
267
+ width: 6,
268
+ height: 10,
269
+ borderBottomWidth: 1.5,
270
+ borderRightWidth: 1.5,
271
+ transform: [{
272
+ rotate: "45deg"
273
+ }, {
274
+ translateY: -1
275
+ }]
276
+ },
277
+ xMark: {
278
+ position: "absolute",
279
+ width: 8,
280
+ height: 1.5,
281
+ borderRadius: 1,
282
+ transform: [{
283
+ rotate: "45deg"
284
+ }]
285
+ },
286
+ xMarkRotated: {
287
+ transform: [{
288
+ rotate: "-45deg"
289
+ }]
290
+ },
291
+ triangleContainer: {
292
+ justifyContent: "center",
293
+ alignItems: "center"
294
+ },
295
+ triangle: {
296
+ width: 0,
297
+ height: 0,
298
+ borderLeftWidth: 8,
299
+ borderRightWidth: 8,
300
+ borderBottomWidth: 14,
301
+ borderLeftColor: "transparent",
302
+ borderRightColor: "transparent"
303
+ },
304
+ infoLine: {
305
+ width: 1.5,
306
+ height: 6,
307
+ borderRadius: 1,
308
+ marginTop: 2
309
+ },
310
+ infoDot: {
311
+ width: 2,
312
+ height: 2,
313
+ borderRadius: 1,
314
+ position: "absolute",
315
+ top: 4
316
+ },
317
+ closeX: {
318
+ position: "absolute",
319
+ width: 10,
320
+ height: 1.5,
321
+ borderRadius: 1,
322
+ transform: [{
323
+ rotate: "45deg"
324
+ }]
325
+ },
326
+ closeXRotated: {
327
+ transform: [{
328
+ rotate: "-45deg"
329
+ }]
330
+ }
331
+ });
332
+ //# sourceMappingURL=icons.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","ActivityIndicator","StyleSheet","View","jsx","_jsx","jsxs","_jsxs","Svg","Circle","Path","svg","require","default","DEFAULT_SIZE","SuccessIcon","size","color","width","height","viewBox","fill","children","cx","cy","r","stroke","strokeWidth","d","strokeLinecap","strokeLinejoin","style","styles","fallbackIcon","borderColor","checkmark","ErrorIcon","xMark","backgroundColor","xMarkRotated","WarningIcon","triangleContainer","triangle","borderBottomColor","InfoIcon","infoLine","infoDot","LoadingIcon","CloseIcon","justifyContent","alignItems","closeX","closeXRotated","getIcon","type","create","borderWidth","borderRadius","borderBottomWidth","borderRightWidth","transform","rotate","translateY","position","borderLeftWidth","borderLeftColor","borderRightColor","marginTop","top"],"sourceRoot":"..\\..\\src","sources":["icons.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ export { Toaster } from "./toaster.js";
4
+ export { Toast } from "./toast.js";
5
+ export { toast, ToastState } from "./state.js";
6
+ export { useSooner, useToastState, useAppState, usePauseableTimer } from "./hooks.js";
7
+ export { ToasterProvider, useToasterContext, useToasterContextOptional } from "./context.js";
8
+ export { CloseIcon, ErrorIcon, InfoIcon, LoadingIcon, SuccessIcon, WarningIcon, getIcon } from "./icons.js";
9
+ export { colors, richColors, getToastColors, getIconColor, resolveTheme, baseStyles } from "./theme.js";
10
+ export { ANIMATION_DEFAULTS, ENTRY_OFFSET, SWIPE_THRESHOLD, VELOCITY_THRESHOLD, toastDefaults } from "./constants.js";
11
+ export { easeOutQuad, easeOutCubic, easeInOutCubic, easeOutCirc, easeOutExpo } from "./easings.js";
12
+ export { SwipeHandler, useSwipeGesture } from "./gestures.js";
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Toaster","Toast","toast","ToastState","useSooner","useToastState","useAppState","usePauseableTimer","ToasterProvider","useToasterContext","useToasterContextOptional","CloseIcon","ErrorIcon","InfoIcon","LoadingIcon","SuccessIcon","WarningIcon","getIcon","colors","richColors","getToastColors","getIconColor","resolveTheme","baseStyles","ANIMATION_DEFAULTS","ENTRY_OFFSET","SWIPE_THRESHOLD","VELOCITY_THRESHOLD","toastDefaults","easeOutQuad","easeOutCubic","easeInOutCubic","easeOutCirc","easeOutExpo","SwipeHandler","useSwipeGesture"],"sourceRoot":"..\\..\\src","sources":["index.tsx"],"mappings":";;AAAA,SAASA,OAAO,QAAQ,cAAW;AACnC,SAASC,KAAK,QAAQ,YAAS;AAC/B,SAASC,KAAK,EAAEC,UAAU,QAAQ,YAAS;AAC3C,SAASC,SAAS,EAAEC,aAAa,EAAEC,WAAW,EAAEC,iBAAiB,QAAQ,YAAS;AAClF,SAASC,eAAe,EAAEC,iBAAiB,EAAEC,yBAAyB,QAAQ,cAAW;AAsBzF,SACEC,SAAS,EACTC,SAAS,EACTC,QAAQ,EACRC,WAAW,EACXC,WAAW,EACXC,WAAW,EACXC,OAAO,QACF,YAAS;AAEhB,SAASC,MAAM,EAAEC,UAAU,EAAEC,cAAc,EAAEC,YAAY,EAAEC,YAAY,EAAEC,UAAU,QAAQ,YAAS;AAEpG,SACEC,kBAAkB,EAClBC,YAAY,EACZC,eAAe,EACfC,kBAAkB,EAClBC,aAAa,QACR,gBAAa;AAEpB,SAASC,WAAW,EAAEC,YAAY,EAAEC,cAAc,EAAEC,WAAW,EAAEC,WAAW,QAAQ,cAAW;AAC/F,SAASC,YAAY,EAAEC,eAAe,QAAQ,eAAY","ignoreList":[]}
@@ -0,0 +1 @@
1
+ {"type":"module"}
@@ -0,0 +1,200 @@
1
+ "use strict";
2
+
3
+ import { DISMISSED_CACHE_CLEANUP_THRESHOLD, DISMISSED_CACHE_MAX_SIZE } from "./constants.js";
4
+ let toastCount = 0;
5
+ function generateId() {
6
+ toastCount = (toastCount + 1) % Number.MAX_SAFE_INTEGER;
7
+ return `sooner-${toastCount}-${Date.now()}`;
8
+ }
9
+ class ToastStateManager {
10
+ toasts = [];
11
+ subscribers = new Set();
12
+ dismissSubscribers = new Set();
13
+ updateSubscribers = new Set();
14
+ dismissedToasts = new Map();
15
+ subscribe(callback) {
16
+ this.subscribers.add(callback);
17
+ return () => this.subscribers.delete(callback);
18
+ }
19
+ subscribeToDismiss(callback) {
20
+ this.dismissSubscribers.add(callback);
21
+ return () => this.dismissSubscribers.delete(callback);
22
+ }
23
+ subscribeToUpdate(callback) {
24
+ this.updateSubscribers.add(callback);
25
+ return () => this.updateSubscribers.delete(callback);
26
+ }
27
+ publish(toast) {
28
+ this.subscribers.forEach(subscriber => subscriber(toast));
29
+ }
30
+ publishDismiss(toastId) {
31
+ this.dismissSubscribers.forEach(subscriber => subscriber(toastId));
32
+ }
33
+ publishUpdate(toast) {
34
+ this.updateSubscribers.forEach(subscriber => subscriber(toast));
35
+ }
36
+ cleanupDismissedCache() {
37
+ if (this.dismissedToasts.size <= DISMISSED_CACHE_MAX_SIZE) {
38
+ return;
39
+ }
40
+
41
+ // Sort by timestamp (oldest first) and remove oldest entries
42
+ const entries = Array.from(this.dismissedToasts.entries());
43
+ entries.sort((a, b) => a[1] - b[1]);
44
+ const toRemove = entries.slice(0, DISMISSED_CACHE_CLEANUP_THRESHOLD);
45
+ toRemove.forEach(([id]) => this.dismissedToasts.delete(id));
46
+ }
47
+ create(title, type = "default", options) {
48
+ const id = options?.id ?? generateId();
49
+
50
+ // Skip if this toast was recently dismissed (prevents re-creation loops)
51
+ if (this.dismissedToasts.has(id)) {
52
+ return id;
53
+ }
54
+ const toast = {
55
+ ...options,
56
+ id,
57
+ type,
58
+ title,
59
+ createdAt: Date.now()
60
+ };
61
+
62
+ // Update existing toast or add new one
63
+ const existingIndex = this.toasts.findIndex(t => t.id === id);
64
+ if (existingIndex > -1) {
65
+ this.toasts[existingIndex] = toast;
66
+ this.publishUpdate(toast);
67
+ } else {
68
+ this.toasts.push(toast);
69
+ this.publish(toast);
70
+ }
71
+ return id;
72
+ }
73
+ update(toastId, options) {
74
+ const index = this.toasts.findIndex(t => t.id === toastId);
75
+ if (index === -1) {
76
+ return false;
77
+ }
78
+ const existingToast = this.toasts[index];
79
+ const updatedToast = {
80
+ ...existingToast,
81
+ ...options,
82
+ id: toastId,
83
+ // Ensure ID isn't changed
84
+ type: options.type ?? existingToast.type,
85
+ // Ensure type is always defined
86
+ title: options.title ?? existingToast.title,
87
+ // Ensure title is always defined
88
+ createdAt: existingToast.createdAt // Preserve original timestamp
89
+ };
90
+ this.toasts[index] = updatedToast;
91
+ this.publishUpdate(updatedToast);
92
+ return true;
93
+ }
94
+ dismiss(toastId) {
95
+ const now = Date.now();
96
+ if (toastId === undefined) {
97
+ for (const toast of this.toasts) {
98
+ this.dismissedToasts.set(toast.id, now);
99
+ toast.onDismiss?.(toast);
100
+ }
101
+ this.toasts = [];
102
+ } else {
103
+ const toast = this.toasts.find(t => t.id === toastId);
104
+ if (toast) {
105
+ toast.onDismiss?.(toast);
106
+ }
107
+ this.dismissedToasts.set(toastId, now);
108
+ this.toasts = this.toasts.filter(t => t.id !== toastId);
109
+ }
110
+ this.publishDismiss(toastId);
111
+ this.cleanupDismissedCache();
112
+ }
113
+ getToasts() {
114
+ return [...this.toasts];
115
+ }
116
+ getToast(toastId) {
117
+ return this.toasts.find(t => t.id === toastId);
118
+ }
119
+ isActive(toastId) {
120
+ return this.toasts.some(t => t.id === toastId);
121
+ }
122
+ async promise(promise, data, options) {
123
+ const id = this.create(data.loading, "loading", {
124
+ ...options,
125
+ duration: Number.POSITIVE_INFINITY,
126
+ dismissible: false
127
+ });
128
+ const promiseToExecute = typeof promise === "function" ? promise() : promise;
129
+ try {
130
+ const result = await promiseToExecute;
131
+ const successMessage = typeof data.success === "function" ? data.success(result) : data.success;
132
+ this.update(id, {
133
+ type: "success",
134
+ title: successMessage,
135
+ dismissible: true,
136
+ duration: options?.duration
137
+ });
138
+ return result;
139
+ } catch (error) {
140
+ const errorMessage = typeof data.error === "function" ? data.error(error) : data.error;
141
+ this.update(id, {
142
+ type: "error",
143
+ title: errorMessage,
144
+ dismissible: true,
145
+ duration: options?.duration
146
+ });
147
+ throw error;
148
+ } finally {
149
+ data.finally?.();
150
+ }
151
+ }
152
+ clearDismissedHistory() {
153
+ this.dismissedToasts.clear();
154
+ }
155
+ }
156
+ export const ToastState = new ToastStateManager();
157
+ function createToast(type) {
158
+ return (title, options) => ToastState.create(title, type, options);
159
+ }
160
+
161
+ /**
162
+ * Main toast API
163
+ *
164
+ * @example
165
+ * // Basic usage
166
+ * toast('Hello World');
167
+ *
168
+ * // With variants
169
+ * toast.success('Success!');
170
+ * toast.error('Error!');
171
+ *
172
+ * // With options
173
+ * toast('Message', { duration: 5000 });
174
+ *
175
+ * // Update existing toast
176
+ * const id = toast.loading('Loading...');
177
+ * toast.update(id, { title: 'Done!', type: 'success' });
178
+ *
179
+ * // Promise toast
180
+ * toast.promise(fetchData(), {
181
+ * loading: 'Loading...',
182
+ * success: 'Loaded!',
183
+ * error: 'Failed',
184
+ * });
185
+ */
186
+ export const toast = Object.assign((title, options) => ToastState.create(title, "default", options), {
187
+ success: createToast("success"),
188
+ error: createToast("error"),
189
+ warning: createToast("warning"),
190
+ info: createToast("info"),
191
+ loading: createToast("loading"),
192
+ promise: (promise, data, options) => ToastState.promise(promise, data, options),
193
+ update: (toastId, options) => ToastState.update(toastId, options),
194
+ dismiss: toastId => ToastState.dismiss(toastId),
195
+ getToasts: () => ToastState.getToasts(),
196
+ getToast: toastId => ToastState.getToast(toastId),
197
+ isActive: toastId => ToastState.isActive(toastId),
198
+ custom: (title, options) => ToastState.create(title, "default", options)
199
+ });
200
+ //# sourceMappingURL=state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["DISMISSED_CACHE_CLEANUP_THRESHOLD","DISMISSED_CACHE_MAX_SIZE","toastCount","generateId","Number","MAX_SAFE_INTEGER","Date","now","ToastStateManager","toasts","subscribers","Set","dismissSubscribers","updateSubscribers","dismissedToasts","Map","subscribe","callback","add","delete","subscribeToDismiss","subscribeToUpdate","publish","toast","forEach","subscriber","publishDismiss","toastId","publishUpdate","cleanupDismissedCache","size","entries","Array","from","sort","a","b","toRemove","slice","id","create","title","type","options","has","createdAt","existingIndex","findIndex","t","push","update","index","existingToast","updatedToast","dismiss","undefined","set","onDismiss","find","filter","getToasts","getToast","isActive","some","promise","data","loading","duration","POSITIVE_INFINITY","dismissible","promiseToExecute","result","successMessage","success","error","errorMessage","finally","clearDismissedHistory","clear","ToastState","createToast","Object","assign","warning","info","custom"],"sourceRoot":"..\\..\\src","sources":["state.ts"],"mappings":"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","ignoreList":[]}