Initial commit

This commit is contained in:
ponzischeme89
2026-01-17 21:49:22 +13:00
commit 3ad3d9bfe0
118 changed files with 18586 additions and 0 deletions
+31
View File
@@ -0,0 +1,31 @@
<script>
import { fly } from 'svelte/transition'
import { toasts, removeToast } from '../lib/toastStore.js'
import { X } from 'lucide-svelte'
const toneStyles = {
info: 'border-white/10 bg-bg-card text-text-primary',
success: 'border-green-500/30 bg-green-500/10 text-green-100',
error: 'border-red-500/30 bg-red-500/10 text-red-100'
}
</script>
<div class="fixed right-4 top-4 z-50 space-y-2">
{#each $toasts as toast (toast.id)}
<div
class={`flex items-center gap-3 rounded-xl border px-4 py-3 text-[12px] shadow-[0_12px_30px_rgba(0,0,0,0.35)] ${toneStyles[toast.tone] || toneStyles.info}`}
in:fly={{ y: -8, duration: 160 }}
out:fly={{ y: -8, duration: 160 }}
role="status"
>
<span class="flex-1">{toast.message}</span>
<button
class="text-text-tertiary hover:text-white transition-colors"
on:click={() => removeToast(toast.id)}
aria-label="Dismiss notification"
>
<X class="h-3.5 w-3.5" />
</button>
</div>
{/each}
</div>