Files
web-app-launcher/src/lib/components/board/Board.svelte
T
alexei.dolgolyov 0bd30c5e17 feat(mvp): phase 7 - UI polish & ambient backgrounds
Add layout system (sidebar, header, main layout), dark/light/system theme
with HSL customization, 3 ambient backgrounds (mesh gradient, particle field,
aurora), Cmd/Ctrl+K search dialog, page transitions, card hover effects,
status pulse animations, skeleton loaders, and responsive design. Polish
all existing pages with consistent theming.
2026-03-24 21:37:16 +03:00

46 lines
966 B
Svelte

<script lang="ts">
import Section from '$lib/components/section/Section.svelte';
interface SectionData {
id: string;
title: string;
icon: string | null;
order: number;
isExpandedByDefault: boolean;
widgets: Array<{
id: string;
type: string;
order: number;
config: string;
appId: string | null;
app: {
id: string;
name: string;
url: string;
icon: string | null;
iconType: string;
description: string | null;
statuses: Array<{ status: string; responseTime: number | null }>;
} | null;
}>;
}
interface Props {
sections: SectionData[];
}
let { sections }: Props = $props();
</script>
<div class="space-y-6">
{#if sections.length === 0}
<div class="rounded-xl border border-border bg-card/50 p-12 text-center">
<p class="text-muted-foreground">This board has no sections yet.</p>
</div>
{:else}
{#each sections as section (section.id)}
<Section {section} />
{/each}
{/if}
</div>