/* Formula Destruction — shared site chrome: header nav, footer, theme + tweaks. Loads AFTER components.jsx (uses Logo) and tweaks-panel.jsx (uses useTweaks). */ const { useState: useSiteState, useEffect: useSiteEffect } = React; const FD_NAV = [ { id: "home", label: "Home", href: "home-poster.html" }, { id: "calendar", label: "Calendar", href: "calendar.html" }, { id: "standings", label: "Standings", href: "standings.html" }, { id: "drivers", label: "Drivers", href: "drivers.html" }, { id: "teams", label: "Teams", href: "teams.html" }, { id: "series", label: "Series", href: "series.html" }, { id: "funfacts", label: "Fun Facts", href: "funfacts.html" }, ]; function SiteHeader({ active }) { return (
); } function SiteFooter() { return ( ); } const SITE_TWEAK_DEFAULTS = /*EDITMODE-BEGIN*/{ "accent": "#FF3B2F", "theme": "dark" }/*EDITMODE-END*/; function SiteChrome({ active, children }) { const [t, setTweak] = useTweaks(SITE_TWEAK_DEFAULTS); useSiteEffect(() => { document.documentElement.style.setProperty("--accent", t.accent); document.documentElement.setAttribute("data-theme", t.theme); }, [t.accent, t.theme]); return (
{children}
setTweak("accent", v)} /> setTweak("theme", v)} />
); } /* small shared building blocks for the inner pages */ function PageHead({ kicker, title, right }) { return (
{kicker}

{title}

{right}
); } function PosBadge({ pos, size = 30, accent }) { return {String(pos).padStart(2, "0")}; } Object.assign(window, { FD_NAV, SiteHeader, SiteFooter, SiteChrome, PageHead, PosBadge });