/* Software Share — Tweaks app (mounts into #tweaks-root on every page) */
const SS_TWEAK_DEFAULTS = /*EDITMODE-BEGIN*/{
"accent": "blue",
"radius": "soft"
}/*EDITMODE-END*/;
function SSTweaks() {
// initialise from localStorage so the choice carries across pages
const init = {
accent: localStorage.getItem("ss-accent") || SS_TWEAK_DEFAULTS.accent,
radius: localStorage.getItem("ss-radius") || SS_TWEAK_DEFAULTS.radius,
};
const [t, setTweak] = useTweaks(init);
const apply = React.useCallback((key, val) => {
localStorage.setItem("ss-" + key, val);
document.documentElement.dataset[key] = val;
setTweak(key, val);
}, [setTweak]);
React.useEffect(() => {
document.documentElement.dataset.accent = t.accent;
document.documentElement.dataset.radius = t.radius;
}, []);
const ACCENTS = [
{ value: "blue", hex: "#2563EB" },
{ value: "coral", hex: "#EA580C" },
{ value: "green", hex: "#15803D" },
];
return (
a.value === t.accent)?.hex || "#2563EB"}
options={ACCENTS.map((a) => a.hex)}
onChange={(hex) => {
const found = ACCENTS.find((a) => a.hex.toLowerCase() === String(hex).toLowerCase());
apply("accent", found ? found.value : "blue");
}}
/>
apply("radius", v)}
/>
);
}
(function mountTweaks() {
const el = document.getElementById("tweaks-root");
if (el && window.ReactDOM) {
ReactDOM.createRoot(el).render();
}
})();