/* global React, useTweaks, TweaksPanel, TweakSection, TweakColor, TweakRadio, TweakToggle */ const { useEffect } = React; /* extra font families for the Type tweak */ (function loadFonts() { var l = document.createElement("link"); l.rel = "stylesheet"; l.href = "https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,500;12..96,600;12..96,700&family=Archivo:wght@500;600;700&family=IBM+Plex+Sans:wght@400;500;600&display=swap"; document.head.appendChild(l); })(); const ACCENTS = { "Royalblau": ["#12229d", "#0d1973", "#ffffff"], "Marine": ["#1b2d8f", "#142272", "#ffffff"], "Stahl": ["#2b3aa6", "#1d2b86", "#ffffff"] }; const FONTS = { "Modern": ['"Space Grotesk", sans-serif', '"Hanken Grotesk", sans-serif'], "Markant": ['"Bricolage Grotesque", sans-serif', '"Hanken Grotesk", sans-serif'], "Sachlich": ['"Archivo", sans-serif', '"IBM Plex Sans", sans-serif'] }; const TWEAK_DEFAULTS = /*EDITMODE-BEGIN*/{ "accent": "Royalblau", "font": "Modern", "dark": false, "status": "prelaunch" }/*EDITMODE-END*/; function applyStatus(status) { /* i18n owns the badge + CTA copy (language-aware); just hand it the status */ if (window.MK && window.MK.setStatus) { window.MK.setStatus(status); return; } var live = status === "live"; var badge = document.querySelector(".prelaunch"); if (badge) { var txt = badge.querySelector("[data-badge-text]"); var tag = badge.querySelector(".tag"); if (txt) txt.textContent = live ? "Jetzt geöffnet in Marburg" : "Eröffnung in Vorbereitung in Marburg"; if (tag) tag.textContent = live ? "OPEN" : "NEU"; } } function Tweaks() { const [t, setTweak] = useTweaks(TWEAK_DEFAULTS); useEffect(() => { const r = document.documentElement; const a = ACCENTS[t.accent] || ACCENTS.Royalblau; r.style.setProperty("--brand", a[0]); r.style.setProperty("--brand-deep", a[1]); r.style.setProperty("--accent", a[0]); r.style.setProperty("--accent-deep", a[1]); r.style.setProperty("--on-accent", a[2]); const f = FONTS[t.font] || FONTS.Modern; r.style.setProperty("--display", f[0]); r.style.setProperty("--body", f[1]); r.setAttribute("data-theme", t.dark ? "dark" : "light"); applyStatus(t.status); }, [t.accent, t.font, t.dark, t.status]); return ( ACCENTS[k][0])} onChange={(v) => { const key = Object.keys(ACCENTS).find(k => ACCENTS[k][0] === v) || "Royalblau"; setTweak("accent", key); }} /> setTweak("font", v)} /> setTweak("dark", v)} /> setTweak("status", v)} /> ); } ReactDOM.createRoot(document.getElementById("tweaks-root")).render();