/* IDF Tweaks Panel — design controls exposed to the user */ const { useEffect } = React; const HERO_IMAGES = { "Sala digital (clara)": "assets/operatorio-2.jpg", "Operatório (luz natural)": "assets/operatorio-1.jpg", "Sala de consulta (madeira)": "assets/consultorio.jpg", "Recepção (acolhimento)": "assets/recepcao.jpg", "Dra. Daysi em atendimento": "assets/dra-atendimento.jpg", "Dra. Daysi (retrato)": "assets/dra-daysi.jpg", }; const ACCENT_PALETTES = { Sálvia: { sage1: "#b2b592", sage2: "#718175", stone: "#c1bfbd" }, Pedra: { sage1: "#c1bfbd", sage2: "#8a8a85", stone: "#dad7d1" }, Musgo: { sage1: "#9aa885", sage2: "#566a5b", stone: "#b8b6ad" }, Areia: { sage1: "#c8b896", sage2: "#8a7a5c", stone: "#d6cdba" }, }; function IDFTweaks() { const defaults = (window.TWEAK_DEFAULTS) || { heroImage: "Sala digital (clara)", accent: "Sálvia", headlineStyle: "Editorial clássico", paperTone: "Cremoso", showMarquee: true, grayscaleImages: false, }; const [t, setTweak] = useTweaks({ heroImage: defaults.heroImage || "Sala digital (clara)", accent: defaults.accent || "Sálvia", headlineStyle: defaults.headlineStyle || "Editorial clássico", paperTone: defaults.paperTone || "Cremoso", showMarquee: defaults.showMarquee !== false, grayscaleImages: !!defaults.grayscaleImages, }); // Apply tweaks live useEffect(() => { // Hero image const heroImg = document.querySelector(".hero-bg img"); const src = HERO_IMAGES[t.heroImage]; if (heroImg && src) heroImg.src = src; }, [t.heroImage]); useEffect(() => { const root = document.documentElement.style; const pal = ACCENT_PALETTES[t.accent] || ACCENT_PALETTES["Sálvia"]; root.setProperty("--sage-1", pal.sage1); root.setProperty("--sage-2", pal.sage2); root.setProperty("--stone", pal.stone); }, [t.accent]); useEffect(() => { const root = document.documentElement.style; if (t.paperTone === "Cremoso") { root.setProperty("--paper", "#f6f3ec"); root.setProperty("--paper-2", "#ebe6da"); root.setProperty("--bone", "#e3ddcd"); } else if (t.paperTone === "Branco puro") { root.setProperty("--paper", "#fafaf7"); root.setProperty("--paper-2", "#f0eee8"); root.setProperty("--bone", "#e6e3d9"); } else if (t.paperTone === "Carvão") { root.setProperty("--paper", "#0e0e0c"); root.setProperty("--paper-2", "#16161300"); root.setProperty("--bone", "#1a1a17"); } }, [t.paperTone]); useEffect(() => { document.querySelectorAll(".display.hero-display, .h1, .h2, .display, .concept-quote, .spec-title, .diff-title, .quote-text, .lede").forEach((el) => { if (t.headlineStyle === "Editorial clássico") { el.style.fontFamily = '"Cormorant Garamond", serif'; el.style.fontWeight = "300"; } else if (t.headlineStyle === "Sans elegante") { el.style.fontFamily = '"Outfit", sans-serif'; el.style.fontWeight = "300"; } else if (t.headlineStyle === "Italiana alta") { el.style.fontFamily = '"Italiana", serif'; el.style.fontWeight = "400"; } }); }, [t.headlineStyle]); useEffect(() => { const m = document.querySelector(".marquee"); if (m) m.style.display = t.showMarquee ? "" : "none"; }, [t.showMarquee]); useEffect(() => { document.body.style.filter = t.grayscaleImages ? "grayscale(0.6)" : ""; }, [t.grayscaleImages]); return ( setTweak("heroImage", v)} /> setTweak("paperTone", v)} /> setTweak("accent", v)} /> setTweak("headlineStyle", v)} /> setTweak("showMarquee", v)} /> setTweak("grayscaleImages", v)} /> ); } const root = ReactDOM.createRoot(document.getElementById("tweaks-root")); root.render();