export interface Toast { id: number; text: string; tone: 'info' | 'rise' | 'warn'; } class Toasts { list = $state([]); #n = 0; show(text: string, tone: Toast['tone'] = 'info', ms = 4200) { const id = ++this.#n; this.list = [...this.list, { id, text, tone }]; setTimeout(() => this.dismiss(id), ms); } dismiss(id: number) { this.list = this.list.filter((t) => t.id !== id); } } export const toasts = new Toasts();