import { writable, derived } from 'svelte/store'; const TOAST_TIMEOUT = 4000; let toastId = 0; function createNotificationStore() { const { subscribe, update } = writable([]); function add(message, type = 'info', duration = TOAST_TIMEOUT) { const id = ++toastId; update((toasts) => [...toasts, { id, message, type, duration }]); if (duration > 0) { setTimeout(() => remove(id), duration); } return id; } function remove(id) { update((toasts) => toasts.filter((t) => t.id !== id)); } return { subscribe, success: (msg, dur) => add(msg, 'success', dur), error: (msg, dur) => add(msg, 'error', dur ?? 6000), warning: (msg, dur) => add(msg, 'warning', dur), info: (msg, dur) => add(msg, 'info', dur), remove }; } export const toasts = createNotificationStore();