// App composition + Tweaks
const TWEAK_DEFAULTS = /*EDITMODE-BEGIN*/{
"displayFont": "Fraunces",
"accentColor": "#C9A36A",
"heroImage": "clinic-interior",
"showFab": true
}/*EDITMODE-END*/;
const HERO_OPTIONS = [
{ value: 'clinic-interior', label: 'Zen interior' },
{ value: 'clinic-env', label: 'Environment' },
{ value: 'treatment-room', label: 'Treatment room' },
];
const ACCENT_OPTIONS = [
'#C9A36A', // warm gold (brief default)
'#E8A598', // soft coral
'#7A9E7E', // sage
'#9A6E5A', // rosewood
];
function App() {
const [tweaks, setTweak] = useTweaks(TWEAK_DEFAULTS);
const [branch, setBranch] = useState(BRANCHES[0]);
const branchPickerRef = useRef(null);
// Apply tweaks to CSS vars
useEffect(() => {
const r = document.documentElement;
if (tweaks.accentColor) r.style.setProperty('--accent', tweaks.accentColor);
if (tweaks.displayFont) r.style.setProperty('--display', `'${tweaks.displayFont}', Georgia, serif`);
}, [tweaks]);
const scrollToBranches = () => {
const el = document.getElementById('clinics');
if (el) window.scrollTo({ top: el.offsetTop - 100, behavior: 'smooth' });
};
const scrollToBook = () => {
const el = document.getElementById('book');
if (el) window.scrollTo({ top: el.offsetTop - 80, behavior: 'smooth' });
};
return (
<>
{tweaks.showFab && }
setTweak('displayFont', v)}
/>
setTweak('accentColor', v)}
/>
setTweak('heroImage', v)}
/>
setTweak('showFab', v)}
/>
>
);
}
ReactDOM.createRoot(document.getElementById('app')).render();