/* global React, ReactDOM, I18nProvider, ThemeProvider, TopBar, Hub, TOOL_VIEWS,
useHashRoute, useTweaks, TweaksPanel, TweakSection, TweakRadio, TweakSelect */
/* ============================================================
app.jsx — Top-level App + router + Tweaks wiring
============================================================ */
const { useEffect: useEff, useState: useSt } = React;
const TWEAK_DEFAULTS = /*EDITMODE-BEGIN*/{
"cardStyle": "soft",
"layout": "horiz",
"mdStyle": "gfm",
"dropzone": "default"
}/*EDITMODE-END*/;
function AppRoot() {
const [tweaks, setTweak] = useTweaks(TWEAK_DEFAULTS);
// Publish to window for tool components (they read once on render)
useEff(() => { window.__cv_tweaks = tweaks; }, [tweaks]);
// Force re-render of tool components when tweaks change (since they read window)
return (