, type: , title: , message: }' @notify.window=" show = true; type = $event.detail.type; title = $event.detail.title; message = $event.detail.message; setTimeout(() => show = false, type === \'error\' ? 15000 : 8000) " x-init=" if (show) setTimeout(() => show = false, type === \'error\' ? 15000 : 8000); window.notify = (type, title, message) => { $dispatch('notify', { type, title, message }); } " class="fixed bottom-4 right-4 z-50 max-w-sm w-full bg-white shadow-lg rounded-lg pointer-events-auto ring-1 ring-black ring-opacity-5 overflow-hidden" x-show="show" x-transition:enter="transition ease-out duration-300" x-transition:enter-start="opacity-0 transform translate-y-2" x-transition:enter-end="opacity-100 transform translate-y-0" x-transition:leave="transition ease-in duration-200" x-transition:leave-start="opacity-100 transform translate-y-0" x-transition:leave-end="opacity-0 transform translate-y-2" style="display: none;">