Files
SCOPENET-MC/panel/web/src/components/Toasts.svelte
T
Claude 1b1bb984bc Restyle to a clean, flat look and rename brand to SCOPENET
- Brand is now SCOPENET everywhere (defaults, UI, installer, docs)
- Launcher: solid backgrounds (no animated orbs/grain), flat Play button
  without gradient/shine/glow, quieter rail with a simple active
  indicator, smaller type scale, Inter as default font, glass off by
  default, restyled sliders
- Panel: same flat treatment; live preview mirrors the new launcher
- New flat scope-reticle logo and app icons
- Calmer default palette
- Fix: lock the shared cargo cache in the Docker build (amd64/arm64 raced)
- Fix: Windows-only clippy lint in sys.rs

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011ARcGWxLx21FwXJ3yfGriS
2026-09-28 05:30:19 +00:00

29 lines
1.2 KiB
Svelte

<script lang="ts">
import { CircleCheck, CircleAlert, Info, X } from '@lucide/svelte';
import { dismiss, toasts } from '../lib/toast.svelte';
</script>
<div class="toasts" aria-live="polite">
{#each toasts as t (t.id)}
<div class="toast {t.kind}">
{#if t.kind === 'ok'}<CircleCheck size={18} />{:else if t.kind === 'error'}<CircleAlert size={18} />{:else}<Info size={18} />{/if}
<span>{t.text}</span>
<button class="ghost icon" onclick={() => dismiss(t.id)} aria-label="Dismiss"><X size={14} /></button>
</div>
{/each}
</div>
<style>
.toasts { position: fixed; right: 20px; bottom: 20px; display: flex; flex-direction: column; gap: 10px; z-index: 100; max-width: 420px; }
.toast {
display: flex; align-items: center; gap: 10px; padding: 10px 10px 10px 14px; border-radius: 12px;
background: var(--surface-2); border: 1px solid var(--line-strong);
box-shadow: var(--shadow); animation: pop 0.2s ease; font-size: 0.9rem;
}
.toast span { flex: 1; }
.ok :global(svg:first-child) { color: var(--good); }
.error :global(svg:first-child) { color: var(--bad); }
.info :global(svg:first-child) { color: var(--accent-2); }
@keyframes pop { from { opacity: 0; transform: translateY(8px) scale(0.98); } }
</style>