import { useSyncExternalStore } from 'react' // 40-line store: state object + action methods that return partial updates. export function create(def) { let state = {} const listeners = new Set() const api = {} for (const [k, v] of Object.entries(def)) { if (typeof v === 'function') { api[k] = (...args) => { const patch = v.apply(state, args) if (patch) { state = { ...state, ...patch }; listeners.forEach(l => l()) } } } else { state[k] = v } } api.get = () => state api.subscribe = l => { listeners.add(l); return () => listeners.delete(l) } api.use = (selector = s => s) => useSyncExternalStore(api.subscribe, () => selector(state), () => selector(state)) return api }