// App shell — Tweaks panel + main composition
const TWEAK_DEFAULTS = /*EDITMODE-BEGIN*/{
"palette": "ivory",
"displayFont": "Cormorant Garamond",
"heroVariant": "storefront",
"showPrices": true
}/*EDITMODE-END*/;
const PALETTE_OPTS = [
{ id: 'ivory', label: 'Ivory' },
{ id: 'champagne', label: 'Champagne' },
{ id: 'ink', label: 'Ink' },
];
const FONT_OPTS = ['Cormorant Garamond', 'Playfair Display', 'Cinzel', 'EB Garamond'];
const HERO_OPTS = [
{ id: 'storefront', label: 'Storefront' },
{ id: 'interior', label: 'Boutique Interior' },
{ id: 'jewel', label: 'Macro Detail' },
];
const App = () => {
const [t, setTweak] = useTweaks(TWEAK_DEFAULTS);
const [bookingOpen, setBookingOpen] = React.useState(false);
const [prefill, setPrefill] = React.useState(null);
// apply tweaks
React.useEffect(() => {
document.documentElement.setAttribute('data-theme', t.palette);
document.documentElement.style.setProperty('--display', `"${t.displayFont}", "EB Garamond", Georgia, serif`);
}, [t.palette, t.displayFont]);
// load extra font on demand
React.useEffect(() => {
if (t.displayFont === 'Cormorant Garamond') return;
const id = 'mm-extra-font';
let link = document.getElementById(id);
if (!link) { link = document.createElement('link'); link.id = id; link.rel = 'stylesheet'; document.head.appendChild(link); }
const fam = t.displayFont.replace(/ /g, '+');
link.href = `https://fonts.googleapis.com/css2?family=${fam}:ital,wght@0,400;0,500;0,600;1,400&display=swap`;
}, [t.displayFont]);
const openBooking = (pre) => { setPrefill(pre || null); setBookingOpen(true); };
return (
);
};
ReactDOM.createRoot(document.getElementById('root')).render();