/* FrontCall Hub — Tweaks controller.
   Decoupled from the app: writes CSS custom properties + data-attributes on
   <html>, and the app (a separate React root) re-skins itself via the cascade. */

const TWEAK_DEFAULTS = /*EDITMODE-BEGIN*/{
  "accent": "#2563eb",
  "corners": "soft",
  "theme": "claro"
}/*EDITMODE-END*/;

function TweaksController() {
  const [t, setTweak] = useTweaks(TWEAK_DEFAULTS);

  React.useEffect(() => {
    const r = document.documentElement;
    r.style.setProperty("--accent", t.accent);
    r.setAttribute("data-corners", t.corners);
    r.setAttribute("data-theme", t.theme);
  }, [t.accent, t.corners, t.theme]);

  return (
    <TweaksPanel title="Tweaks">
      <TweakSection label="Identidade" />
      <TweakColor
        label="Cor de destaque"
        value={t.accent}
        options={["#2563eb", "#0d9f6e", "#e8820c", "#334155"]}
        onChange={(v) => setTweak("accent", v)}
      />

      <TweakSection label="Forma" />
      <TweakRadio
        label="Cantos & sombra"
        value={t.corners}
        options={[
          { value: "soft", label: "Suave" },
          { value: "pill", label: "Macio" },
          { value: "sharp", label: "Reto" },
        ]}
        onChange={(v) => setTweak("corners", v)}
      />

      <TweakSection label="Ambiente" />
      <TweakRadio
        label="Tema"
        value={t.theme}
        options={[
          { value: "claro", label: "Claro" },
          { value: "escuro", label: "Escuro" },
        ]}
        onChange={(v) => setTweak("theme", v)}
      />
    </TweaksPanel>
  );
}

ReactDOM.createRoot(document.getElementById("tweaks-root")).render(<TweaksController />);
