interface ToastOptions { message: string; duration?: number; } const toastContainer = () => { let container = document.getElementById('toast-container'); if (!container) { container = document.createElement('div'); container.id = 'toast-container'; container.className = 'fixed bottom-4 right-4 z-100 flex flex-col gap-2'; document.body.appendChild(container); } return container; }; const showToast = ({ message, duration = 3000 }: ToastOptions) => { const container = toastContainer(); const toast = document.createElement('div'); toast.className = 'bg-white/10 border border-white/20 flex items-center gap-3 px-4 py-3 shadow-lg transform transition-all duration-300 translate-y-2 opacity-0'; toast.innerHTML = ` ${message} `; container.appendChild(toast); requestAnimationFrame(() => { toast.classList.remove('translate-y-2', 'opacity-0'); }); setTimeout(() => { toast.classList.add('translate-y-2', 'opacity-0'); setTimeout(() => toast.remove(), 300); }, duration); }; (window as unknown as Record).showToast = showToast; export { showToast };