export function showToast( message: string, type: 'success' | 'error' | 'info' = 'info', durationMs = 2500, ): void { let container = document.querySelector('.relicario-toast-container'); if (!container) { container = document.createElement('div'); container.className = 'relicario-toast-container'; document.body.appendChild(container); } const toast = document.createElement('div'); toast.className = `relicario-toast relicario-toast--${type}`; toast.textContent = message; container.appendChild(toast); requestAnimationFrame(() => { requestAnimationFrame(() => toast.classList.add('relicario-toast--visible')); }); setTimeout(() => { toast.classList.remove('relicario-toast--visible'); toast.addEventListener('transitionend', () => toast.remove(), { once: true }); }, durationMs); }