<script lang="ts">
/**
 * Layout Component
 *
 * Root layout wrapper that provides the application shell structure. Handles favicon,
 * toolbar provider initialization, and renders child routes with consistent structure.
 *
 * Layout structure:
 * - Header area (currently empty, reserved for future use)
 *
 * - Footer area (currently empty, reserved for future use)
 */
import favicon from '$shared/assets/favicon.svg';
import { ScrollArea } from '$shared/shadcn/ui/scroll-area';
import { Provider as TooltipProvider } from '$shared/shadcn/ui/tooltip';
import { TypographyMenu } from '$widgets/TypographySettings';
import type { Snippet } from 'svelte';

interface Props {
    children: Snippet;
}

/** Slot content for route pages to render */
let { children }: Props = $props();
</script>

<svelte:head>
    <link rel="icon" href={favicon} />
    <link rel="preconnect" href="https://api.fontshare.com" />
    <link rel="preconnect" href="https://cdn.fontshare.com" crossorigin="anonymous" />

    <link rel="preconnect" href="https://fonts.googleapis.com">
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="anonymous">
    <link
        href="https://fonts.googleapis.com/css2?family=Karla:ital,wght@0,200..800;1,200..800&display=swap"
        rel="stylesheet"
    >
</svelte:head>

<div id="app-root" class="min-h-screen flex flex-col bg-background">
    <header></header>

    <ScrollArea class="h-screen w-screen">
        <main class="flex-1 h-full w-full max-w-6xl mx-auto px-4 py-6 md:px-8 lg:py-10 relative">
            <TooltipProvider>
                <TypographyMenu />
                {@render children?.()}
            </TooltipProvider>
        </main>
    </ScrollArea>
    <footer></footer>
</div>
