// Tweaks.jsx — design-system edit-mode panel const { useState: useStateT, useEffect: useEffectT } = React; function Tweaks({ state, setState, defaults }) { const [active, setActive] = useStateT(false); useEffectT(() => { const onMsg = (e) => { if (!e.data || typeof e.data !== 'object') return; if (e.data.type === '__activate_edit_mode') setActive(true); if (e.data.type === '__deactivate_edit_mode') setActive(false); }; window.addEventListener('message', onMsg); // announce only AFTER listener is registered window.parent.postMessage({ type: '__edit_mode_available' }, '*'); return () => window.removeEventListener('message', onMsg); }, []); const update = (key, val) => { const next = { ...state, [key]: val }; setState(next); window.parent.postMessage({ type: '__edit_mode_set_keys', edits: { [key]: val } }, '*'); }; const group = (label, options, key) => (