react-native-bread 0.1.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 (79) hide show
  1. package/README.md +148 -0
  2. package/lib/commonjs/icons/CloseIcon.js +22 -0
  3. package/lib/commonjs/icons/CloseIcon.js.map +1 -0
  4. package/lib/commonjs/icons/GreenCheck.js +27 -0
  5. package/lib/commonjs/icons/GreenCheck.js.map +1 -0
  6. package/lib/commonjs/icons/InfoIcon.js +24 -0
  7. package/lib/commonjs/icons/InfoIcon.js.map +1 -0
  8. package/lib/commonjs/icons/RedX.js +27 -0
  9. package/lib/commonjs/icons/RedX.js.map +1 -0
  10. package/lib/commonjs/icons/index.js +34 -0
  11. package/lib/commonjs/icons/index.js.map +1 -0
  12. package/lib/commonjs/index.js +59 -0
  13. package/lib/commonjs/index.js.map +1 -0
  14. package/lib/commonjs/toast-api.js +127 -0
  15. package/lib/commonjs/toast-api.js.map +1 -0
  16. package/lib/commonjs/toast-provider.js +71 -0
  17. package/lib/commonjs/toast-provider.js.map +1 -0
  18. package/lib/commonjs/toast-store.js +278 -0
  19. package/lib/commonjs/toast-store.js.map +1 -0
  20. package/lib/commonjs/toast.js +445 -0
  21. package/lib/commonjs/toast.js.map +1 -0
  22. package/lib/commonjs/types.js +6 -0
  23. package/lib/commonjs/types.js.map +1 -0
  24. package/lib/module/icons/CloseIcon.js +16 -0
  25. package/lib/module/icons/CloseIcon.js.map +1 -0
  26. package/lib/module/icons/GreenCheck.js +21 -0
  27. package/lib/module/icons/GreenCheck.js.map +1 -0
  28. package/lib/module/icons/InfoIcon.js +18 -0
  29. package/lib/module/icons/InfoIcon.js.map +1 -0
  30. package/lib/module/icons/RedX.js +21 -0
  31. package/lib/module/icons/RedX.js.map +1 -0
  32. package/lib/module/icons/index.js +7 -0
  33. package/lib/module/icons/index.js.map +1 -0
  34. package/lib/module/index.js +14 -0
  35. package/lib/module/index.js.map +1 -0
  36. package/lib/module/toast-api.js +124 -0
  37. package/lib/module/toast-api.js.map +1 -0
  38. package/lib/module/toast-provider.js +67 -0
  39. package/lib/module/toast-provider.js.map +1 -0
  40. package/lib/module/toast-store.js +274 -0
  41. package/lib/module/toast-store.js.map +1 -0
  42. package/lib/module/toast.js +439 -0
  43. package/lib/module/toast.js.map +1 -0
  44. package/lib/module/types.js +4 -0
  45. package/lib/module/types.js.map +1 -0
  46. package/lib/typescript/icons/CloseIcon.d.ts +3 -0
  47. package/lib/typescript/icons/CloseIcon.d.ts.map +1 -0
  48. package/lib/typescript/icons/GreenCheck.d.ts +3 -0
  49. package/lib/typescript/icons/GreenCheck.d.ts.map +1 -0
  50. package/lib/typescript/icons/InfoIcon.d.ts +3 -0
  51. package/lib/typescript/icons/InfoIcon.d.ts.map +1 -0
  52. package/lib/typescript/icons/RedX.d.ts +3 -0
  53. package/lib/typescript/icons/RedX.d.ts.map +1 -0
  54. package/lib/typescript/icons/index.d.ts +5 -0
  55. package/lib/typescript/icons/index.d.ts.map +1 -0
  56. package/lib/typescript/index.d.ts +7 -0
  57. package/lib/typescript/index.d.ts.map +1 -0
  58. package/lib/typescript/toast-api.d.ts +109 -0
  59. package/lib/typescript/toast-api.d.ts.map +1 -0
  60. package/lib/typescript/toast-provider.d.ts +52 -0
  61. package/lib/typescript/toast-provider.d.ts.map +1 -0
  62. package/lib/typescript/toast-store.d.ts +26 -0
  63. package/lib/typescript/toast-store.d.ts.map +1 -0
  64. package/lib/typescript/toast.d.ts +2 -0
  65. package/lib/typescript/toast.d.ts.map +1 -0
  66. package/lib/typescript/types.d.ts +101 -0
  67. package/lib/typescript/types.d.ts.map +1 -0
  68. package/package.json +87 -0
  69. package/src/icons/CloseIcon.tsx +10 -0
  70. package/src/icons/GreenCheck.tsx +16 -0
  71. package/src/icons/InfoIcon.tsx +12 -0
  72. package/src/icons/RedX.tsx +16 -0
  73. package/src/icons/index.ts +4 -0
  74. package/src/index.ts +26 -0
  75. package/src/toast-api.ts +213 -0
  76. package/src/toast-provider.tsx +81 -0
  77. package/src/toast-store.ts +270 -0
  78. package/src/toast.tsx +417 -0
  79. package/src/types.ts +121 -0
@@ -0,0 +1,278 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.toastStore = void 0;
7
+ const EXIT_DURATION = 350;
8
+
9
+ /** Default theme values */
10
+ const DEFAULT_THEME = {
11
+ position: "top",
12
+ offset: 0,
13
+ stacking: true,
14
+ maxStack: 3,
15
+ dismissible: true,
16
+ showCloseButton: true,
17
+ colors: {
18
+ success: {
19
+ accent: "#28B770",
20
+ background: "#FFFFFF"
21
+ },
22
+ error: {
23
+ accent: "#F05964",
24
+ background: "#FFFFFF"
25
+ },
26
+ info: {
27
+ accent: "#EDBE43",
28
+ background: "#FFFFFF"
29
+ },
30
+ loading: {
31
+ accent: "#232323",
32
+ background: "#FFFFFF"
33
+ }
34
+ },
35
+ icons: {},
36
+ toastStyle: {},
37
+ titleStyle: {},
38
+ descriptionStyle: {},
39
+ defaultDuration: 4000
40
+ };
41
+
42
+ /** Deep merge user config with defaults */
43
+ function mergeConfig(config) {
44
+ if (!config) return DEFAULT_THEME;
45
+ const mergedColors = {
46
+ ...DEFAULT_THEME.colors
47
+ };
48
+ if (config.colors) {
49
+ for (const type of Object.keys(config.colors)) {
50
+ const userColors = config.colors[type];
51
+ if (userColors) {
52
+ mergedColors[type] = {
53
+ ...DEFAULT_THEME.colors[type],
54
+ ...userColors
55
+ };
56
+ }
57
+ }
58
+ }
59
+ return {
60
+ position: config.position ?? DEFAULT_THEME.position,
61
+ offset: config.offset ?? DEFAULT_THEME.offset,
62
+ stacking: config.stacking ?? DEFAULT_THEME.stacking,
63
+ maxStack: config.maxStack ?? DEFAULT_THEME.maxStack,
64
+ dismissible: config.dismissible ?? DEFAULT_THEME.dismissible,
65
+ showCloseButton: config.showCloseButton ?? DEFAULT_THEME.showCloseButton,
66
+ colors: mergedColors,
67
+ icons: {
68
+ ...DEFAULT_THEME.icons,
69
+ ...config.icons
70
+ },
71
+ toastStyle: {
72
+ ...DEFAULT_THEME.toastStyle,
73
+ ...config.toastStyle
74
+ },
75
+ titleStyle: {
76
+ ...DEFAULT_THEME.titleStyle,
77
+ ...config.titleStyle
78
+ },
79
+ descriptionStyle: {
80
+ ...DEFAULT_THEME.descriptionStyle,
81
+ ...config.descriptionStyle
82
+ },
83
+ defaultDuration: config.defaultDuration ?? DEFAULT_THEME.defaultDuration
84
+ };
85
+ }
86
+ class ToastStore {
87
+ state = {
88
+ visibleToasts: []
89
+ };
90
+ theme = DEFAULT_THEME;
91
+ listeners = new Set();
92
+ toastIdCounter = 0;
93
+ timeouts = new Map();
94
+ subscribe = listener => {
95
+ this.listeners.add(listener);
96
+ return () => {
97
+ this.listeners.delete(listener);
98
+ };
99
+ };
100
+ emit() {
101
+ for (const listener of this.listeners) {
102
+ listener(this.state);
103
+ }
104
+ }
105
+ setState(partial) {
106
+ this.state = {
107
+ ...this.state,
108
+ ...partial
109
+ };
110
+ this.emit();
111
+ }
112
+ getState = () => this.state;
113
+ getTheme = () => this.theme;
114
+ setConfig = config => {
115
+ this.theme = mergeConfig(config);
116
+ };
117
+ show = (title, description, type = "success", duration, options) => {
118
+ const actualDuration = duration ?? options?.duration ?? this.theme.defaultDuration;
119
+ const maxToasts = this.theme.stacking ? this.theme.maxStack : 1;
120
+ const id = `toast-${++this.toastIdCounter}`;
121
+ const newToast = {
122
+ id,
123
+ title,
124
+ description: description ?? options?.description,
125
+ type,
126
+ duration: actualDuration,
127
+ createdAt: Date.now(),
128
+ isExiting: false,
129
+ options
130
+ };
131
+ const {
132
+ visibleToasts
133
+ } = this.state;
134
+
135
+ // Get only non-exiting toasts for count
136
+ const activeToasts = visibleToasts.filter(t => !t.isExiting);
137
+ if (activeToasts.length >= maxToasts) {
138
+ const toastsToRemove = activeToasts.slice(maxToasts - 1);
139
+ for (const toast of toastsToRemove) {
140
+ // Clear auto-dismiss timeout
141
+ const timeout = this.timeouts.get(toast.id);
142
+ if (timeout) {
143
+ clearTimeout(timeout);
144
+ this.timeouts.delete(toast.id);
145
+ }
146
+ }
147
+ const removeIds = new Set(toastsToRemove.map(t => t.id));
148
+ if (this.theme.stacking) {
149
+ // When stacking is ON: remove old toasts from state immediately (no animation for stack overflow)
150
+ this.setState({
151
+ visibleToasts: visibleToasts.filter(t => !removeIds.has(t.id))
152
+ });
153
+ } else {
154
+ // When stacking is OFF: animate out the old toast, wait, then show new one
155
+ this.setState({
156
+ visibleToasts: visibleToasts.map(t => removeIds.has(t.id) ? {
157
+ ...t,
158
+ isExiting: true
159
+ } : t)
160
+ });
161
+
162
+ // Delay showing the new toast until the old one has animated out
163
+ setTimeout(() => {
164
+ for (const toast of toastsToRemove) {
165
+ this.removeToast(toast.id);
166
+ }
167
+ this.addToast(newToast, actualDuration);
168
+ }, EXIT_DURATION - 220);
169
+ return id;
170
+ }
171
+ }
172
+
173
+ // Add new toast immediately (stacking ON or no existing toasts)
174
+ this.addToast(newToast, actualDuration);
175
+ return id;
176
+ };
177
+ addToast(toast, duration) {
178
+ this.setState({
179
+ visibleToasts: [toast, ...this.state.visibleToasts.filter(t => !t.isExiting)]
180
+ });
181
+
182
+ // Schedule auto-dismiss with duration multiplier based on position
183
+ this.scheduleTimeout(toast.id, duration, 0);
184
+
185
+ // Reschedule timeouts for other toasts based on their new positions
186
+ this.rescheduleAllTimeouts();
187
+ }
188
+ scheduleTimeout(id, baseDuration, index) {
189
+ const existingTimeout = this.timeouts.get(id);
190
+ if (existingTimeout) {
191
+ clearTimeout(existingTimeout);
192
+ }
193
+
194
+ // Duration multiplier: index 0 = 1x, index 1 = 2x, index 2 = 3x
195
+ const duration = baseDuration * (index + 1);
196
+ const timeout = setTimeout(() => {
197
+ this.hide(id);
198
+ }, duration);
199
+ this.timeouts.set(id, timeout);
200
+ }
201
+ rescheduleAllTimeouts() {
202
+ const {
203
+ visibleToasts
204
+ } = this.state;
205
+ visibleToasts.forEach((toast, index) => {
206
+ // Skip if already exiting or index 0 (just scheduled)
207
+ if (toast.isExiting || index === 0) return;
208
+ this.scheduleTimeout(toast.id, toast.duration, index);
209
+ });
210
+ }
211
+ hide = id => {
212
+ const {
213
+ visibleToasts
214
+ } = this.state;
215
+ const toast = visibleToasts.find(t => t.id === id);
216
+ if (!toast || toast.isExiting) return;
217
+
218
+ // Clear the auto-dismiss timeout
219
+ const timeout = this.timeouts.get(id);
220
+ if (timeout) {
221
+ clearTimeout(timeout);
222
+ this.timeouts.delete(id);
223
+ }
224
+
225
+ // Mark as exiting (triggers exit animation in component)
226
+ this.setState({
227
+ visibleToasts: visibleToasts.map(t => t.id === id ? {
228
+ ...t,
229
+ isExiting: true
230
+ } : t)
231
+ });
232
+
233
+ // After exit animation, actually remove the toast
234
+ setTimeout(() => {
235
+ this.removeToast(id);
236
+ }, EXIT_DURATION);
237
+ };
238
+ removeToast(id) {
239
+ const timeout = this.timeouts.get(id);
240
+ if (timeout) {
241
+ clearTimeout(timeout);
242
+ this.timeouts.delete(id);
243
+ }
244
+ this.setState({
245
+ visibleToasts: this.state.visibleToasts.filter(t => t.id !== id)
246
+ });
247
+
248
+ // Reschedule remaining toasts with updated positions
249
+ this.rescheduleAllTimeouts();
250
+ }
251
+ updateToast = (id, data) => {
252
+ const {
253
+ visibleToasts
254
+ } = this.state;
255
+ const index = visibleToasts.findIndex(t => t.id === id);
256
+ if (index === -1) return;
257
+ this.setState({
258
+ visibleToasts: visibleToasts.map(t => t.id === id ? {
259
+ ...t,
260
+ ...data
261
+ } : t)
262
+ });
263
+ if (data.duration !== undefined) {
264
+ this.scheduleTimeout(id, data.duration, index);
265
+ }
266
+ };
267
+ hideAll = () => {
268
+ for (const timeout of this.timeouts.values()) {
269
+ clearTimeout(timeout);
270
+ }
271
+ this.timeouts.clear();
272
+ this.setState({
273
+ visibleToasts: []
274
+ });
275
+ };
276
+ }
277
+ const toastStore = exports.toastStore = new ToastStore();
278
+ //# sourceMappingURL=toast-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["EXIT_DURATION","DEFAULT_THEME","position","offset","stacking","maxStack","dismissible","showCloseButton","colors","success","accent","background","error","info","loading","icons","toastStyle","titleStyle","descriptionStyle","defaultDuration","mergeConfig","config","mergedColors","type","Object","keys","userColors","ToastStore","state","visibleToasts","theme","listeners","Set","toastIdCounter","timeouts","Map","subscribe","listener","add","delete","emit","setState","partial","getState","getTheme","setConfig","show","title","description","duration","options","actualDuration","maxToasts","id","newToast","createdAt","Date","now","isExiting","activeToasts","filter","t","length","toastsToRemove","slice","toast","timeout","get","clearTimeout","removeIds","map","has","setTimeout","removeToast","addToast","scheduleTimeout","rescheduleAllTimeouts","baseDuration","index","existingTimeout","hide","set","forEach","find","updateToast","data","findIndex","undefined","hideAll","values","clear","toastStore","exports"],"sourceRoot":"../../src","sources":["toast-store.ts"],"mappings":"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","ignoreList":[]}