// Swivy — app entry const { useState: useStateA, useEffect: useEffectA, useCallback: useCallbackA } = React; const App = () => { const [tweaks, setTweaks] = useStateA(window.__SWIVY_TWEAKS__); const [route, setRoute] = useStateA(() => localStorage.getItem("swivy.route") || "handoff"); const [env, setEnv] = useStateA(() => localStorage.getItem("swivy.env") || "staging"); const [project, setProject] = useStateA(PROJECTS[0]); const [modal, setModal] = useStateA(null); const [tweaksOpen, setTweaksOpen] = useStateA(false); useEffectA(() => { localStorage.setItem("swivy.route", route); }, [route]); useEffectA(() => { localStorage.setItem("swivy.env", env); }, [env]); const setTweak = useCallbackA((k, v) => { setTweaks(prev => { const next = { ...prev, [k]: v }; window.parent?.postMessage({ type: "__edit_mode_set_keys", edits: { [k]: v } }, "*"); return next; }); }, []); // Edit mode protocol useEffectA(() => { const handler = (e) => { if (!e?.data?.type) return; if (e.data.type === "__activate_edit_mode") setTweaksOpen(true); if (e.data.type === "__deactivate_edit_mode") setTweaksOpen(false); }; window.addEventListener("message", handler); window.parent?.postMessage({ type: "__edit_mode_available" }, "*"); return () => window.removeEventListener("message", handler); }, []); // Theme + density application useEffectA(() => { const r = document.documentElement; r.setAttribute("data-theme", tweaks.theme); r.setAttribute("data-type", tweaks.typeDirection); r.setAttribute("data-density", tweaks.density); r.style.setProperty("--env-current", `var(--env-${env})`); }, [tweaks, env]); const openModal = useCallbackA((kind) => setModal(kind), []); const closeModal = useCallbackA(() => setModal(null), []); const Screen = () => { switch (route) { case "overview": return ; case "handoff": return ; case "keys": return ; case "oidc": return ; case "wallets": return ; case "signing": return ; case "policies": return ; case "audit": return ; case "webhooks": case "chains": case "members": case "settings": default: return ; } }; const showRail = tweaks.envSwitcherStyle === "rail-and-pill"; return (
{showRail &&
}
{}}/>
{modal === "sign" && } {modal === "rotate" && } {modal === "newkey" && } {tweaksOpen && setTweaksOpen(false)}/>}
); }; const ComingSoon = ({ route, tweaks }) => ( <>

{route}

This surface is scaffolded but not part of the hero flow. Below is the empty-state treatment used across new-project installs.

}>Read guide }>Scaffold } /> ); ReactDOM.createRoot(document.getElementById("root")).render();