/* VSHD Design — root app, hash router, tweak state */ const { useState: _u, useEffect: _e } = React; const TWEAK_DEFAULTS = /*EDITMODE-BEGIN*/{ "palette": "white", "accent": "stone", "serifAccent": true, "heroPaceSec": 7, "rtlSample": false }/*EDITMODE-END*/; const PALETTE_VALUES = { white: { paper: "#FFFFFF", bone: "#F5F4F1", line: "#E5E3DE", ink: "#15161A", graphite: "#666766" }, bone: { paper: "#F5F4F1", bone: "#EAE7E0", line: "#D8D4CC", ink: "#1A1A1E", graphite: "#666766" }, warm: { paper: "#F2EEE6", bone: "#E8E2D5", line: "#D2CBBB", ink: "#262219", graphite: "#7A6E55" } }; const ACCENT_VALUES = { none: "#9A8C78", stone: "#9A8C78", clay: "#A87E5E", ink: "#15161A" }; /* --- Hash router --- */ function useRoute() { const parseHash = () => { const h = window.location.hash || "#/"; return h.replace(/^#\/?/, ""); }; const [route, setRoute] = _u(parseHash()); _e(() => { const onHash = () => { setRoute(parseHash()); window.scrollTo({ top: 0, behavior: "instant" }); }; window.addEventListener("hashchange", onHash); return () => window.removeEventListener("hashchange", onHash); }, []); const go = (to) => { window.location.hash = "#/" + to; }; return [route, go]; } function App() { const [route, go] = useRoute(); const [enquiryOpen, setEnquiryOpen] = _u(false); const [lang, setLang] = _u("en"); const [t, setTweak] = useTweaks(TWEAK_DEFAULTS); // Apply palette + accent via inline