// Top-level App \u2014 routing state + Tweaks panel wiring. const TWEAK_DEFAULTS = /*EDITMODE-BEGIN*/{ "heroStyle": "classic", "branchCardStyle": "preview", "characterStyle": "grid", "warmth": "warm" }/*EDITMODE-END*/; function App() { const [route, setRoute] = useState({ name: 'home' }); const [tourOpen, setTourOpen] = useState(false); const [tourPrefill, setTourPrefill] = useState(null); const [t, setTweak] = useTweaks(TWEAK_DEFAULTS); // Apply "warmth" tweak globally via CSS variable useEffect(() => { const map = { warm: { cream: '#FBF8F0', sand: '#F2EBDD' }, cooler: { cream: '#F6F4ED', sand: '#E8E4D5' }, paper: { cream: '#FFFCF4', sand: '#F5EFE0' }, }; const v = map[t.warmth] || map.warm; document.documentElement.style.setProperty('--cream', v.cream); document.documentElement.style.setProperty('--sand', v.sand); }, [t.warmth]); // Navigate helper const navigate = (r) => { setRoute(r); window.scrollTo({ top: 0, behavior: 'instant' in window ? 'instant' : 'auto' }); }; const openTour = (prefill) => { setTourPrefill(prefill && prefill.branch ? prefill : null); setTourOpen(true); }; let page = null; switch (route.name) { case 'home': page = ; break; case 'approach': page = ; break; case 'programmes': page = ; break; case 'branches': page = ; break; case 'branch': page = ; break; case 'admissions': page = ; break; default: page = ; } return (
openTour()} /> {page}
openTour()} /> setTourOpen(false)} prefill={tourPrefill} /> setTweak('heroStyle', v)} options={['classic', 'clover', 'editorial']} /> setTweak('branchCardStyle', v)} options={['preview', 'list']} /> setTweak('characterStyle', v)} options={['grid', 'tiles', 'pills']} /> setTweak('warmth', v)} options={['warm', 'cooler', 'paper']} />
{NAV_ITEMS.map(n => ( ))}
); } ReactDOM.createRoot(document.getElementById('root')).render();