sygnal 7.0.0 → 7.2.0-preview.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +632 -0
- package/dist/agent-ui.cjs.js +592 -0
- package/dist/agent-ui.cjs.js.map +1 -0
- package/dist/agent-ui.esm.js +582 -0
- package/dist/agent-ui.esm.js.map +1 -0
- package/dist/api.cjs.js +63 -0
- package/dist/api.cjs.js.map +1 -0
- package/dist/api.esm.js +2 -0
- package/dist/api.esm.js.map +1 -0
- package/dist/astro/index.cjs.js +968 -4
- package/dist/astro/index.cjs.js.map +1 -1
- package/dist/astro/index.mjs +968 -4
- package/dist/astro/index.mjs.map +1 -1
- package/dist/astro/server.cjs.js +73 -45
- package/dist/astro/server.cjs.js.map +1 -1
- package/dist/astro/server.mjs +73 -45
- package/dist/astro/server.mjs.map +1 -1
- package/dist/canvas.cjs.js +2919 -0
- package/dist/canvas.cjs.js.map +1 -0
- package/dist/canvas.esm.js +2866 -0
- package/dist/canvas.esm.js.map +1 -0
- package/dist/devtools.cjs.js +38 -6
- package/dist/devtools.cjs.js.map +1 -1
- package/dist/devtools.esm.js +38 -6
- package/dist/devtools.esm.js.map +1 -1
- package/dist/diagnostics.cjs.js +224 -20
- package/dist/diagnostics.cjs.js.map +1 -1
- package/dist/diagnostics.esm.js +224 -20
- package/dist/diagnostics.esm.js.map +1 -1
- package/dist/guide/accessibility.md +1 -1
- package/dist/guide/ai-compose.md +150 -0
- package/dist/guide/behaviors.md +2 -1
- package/dist/guide/collaborative-state.md +265 -0
- package/dist/guide/element-commands.md +36 -2
- package/dist/guide/forms-reference.md +5 -5
- package/dist/guide/forms.md +3 -2
- package/dist/guide/http.md +28 -1
- package/dist/guide/islands.md +240 -0
- package/dist/guide/recipes/code-editor.md +1 -1
- package/dist/guide/renderers/agent-ui.md +138 -0
- package/dist/guide/renderers/custom-targets.md +126 -0
- package/dist/guide/renderers/overview.md +120 -0
- package/dist/guide/renderers/react-native.md +128 -0
- package/dist/guide/renderers/terminal.md +306 -0
- package/dist/guide/renderers/three.md +332 -0
- package/dist/guide/renderers/write-once.md +137 -0
- package/dist/guide/resources.md +2 -0
- package/dist/guide/sandboxed-components.md +223 -0
- package/dist/guide/timers.md +32 -5
- package/dist/guide/typed-apis.md +442 -0
- package/dist/guide/ui/accordion.md +11 -0
- package/dist/guide/ui/combobox.md +112 -8
- package/dist/guide/ui/dialog.md +96 -20
- package/dist/guide/ui/menu.md +57 -5
- package/dist/guide/ui/overview.md +8 -4
- package/dist/guide/ui/popover.md +69 -9
- package/dist/guide/ui/select.md +54 -4
- package/dist/guide/ui/tabs.md +1 -1
- package/dist/guide/ui/tooltip.md +7 -5
- package/dist/guide/virtual-collections.md +3 -0
- package/dist/guide/widgets.md +90 -1
- package/dist/host.cjs.js +2181 -0
- package/dist/host.cjs.js.map +1 -0
- package/dist/host.esm.js +2146 -0
- package/dist/host.esm.js.map +1 -0
- package/dist/index.cjs.js +3948 -586
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.d.ts +584 -44
- package/dist/index.esm.js +3918 -586
- package/dist/index.esm.js.map +1 -1
- package/dist/primitives.cjs.js +143 -0
- package/dist/primitives.cjs.js.map +1 -0
- package/dist/primitives.esm.js +133 -0
- package/dist/primitives.esm.js.map +1 -0
- package/dist/react-native.cjs.js +248 -0
- package/dist/react-native.cjs.js.map +1 -0
- package/dist/react-native.esm.js +244 -0
- package/dist/react-native.esm.js.map +1 -0
- package/dist/replay.cjs.js +39 -0
- package/dist/replay.cjs.js.map +1 -0
- package/dist/replay.esm.js +2 -0
- package/dist/replay.esm.js.map +1 -0
- package/dist/sandbox-build.cjs.js +140 -0
- package/dist/sandbox-build.cjs.js.map +1 -0
- package/dist/sandbox-build.esm.js +137 -0
- package/dist/sandbox-build.esm.js.map +1 -0
- package/dist/sandbox-kernel.esm.js +212 -0
- package/dist/sandbox-kernel.esm.js.map +1 -0
- package/dist/sandbox-worker.cjs.js +857 -0
- package/dist/sandbox-worker.cjs.js.map +1 -0
- package/dist/sandbox-worker.esm.js +854 -0
- package/dist/sandbox-worker.esm.js.map +1 -0
- package/dist/sandbox.cjs.js +1425 -0
- package/dist/sandbox.cjs.js.map +1 -0
- package/dist/sandbox.esm.js +1406 -0
- package/dist/sandbox.esm.js.map +1 -0
- package/dist/sygnal.min.js +1 -1
- package/dist/sygnal.min.js.map +1 -1
- package/dist/terminal.cjs.js +1314 -0
- package/dist/terminal.cjs.js.map +1 -0
- package/dist/terminal.esm.js +1304 -0
- package/dist/terminal.esm.js.map +1 -0
- package/dist/three.cjs.js +1111 -0
- package/dist/three.cjs.js.map +1 -0
- package/dist/three.esm.js +1079 -0
- package/dist/three.esm.js.map +1 -0
- package/dist/ui-combobox.cjs.js +256 -18
- package/dist/ui-combobox.cjs.js.map +1 -1
- package/dist/ui-combobox.esm.js +256 -18
- package/dist/ui-combobox.esm.js.map +1 -1
- package/dist/ui-menu.cjs.js +150 -16
- package/dist/ui-menu.cjs.js.map +1 -1
- package/dist/ui-menu.esm.js +151 -17
- package/dist/ui-menu.esm.js.map +1 -1
- package/dist/ui-select.cjs.js +95 -9
- package/dist/ui-select.cjs.js.map +1 -1
- package/dist/ui-select.esm.js +95 -9
- package/dist/ui-select.esm.js.map +1 -1
- package/dist/ui.cjs.js +679 -173
- package/dist/ui.cjs.js.map +1 -1
- package/dist/ui.esm.js +679 -175
- package/dist/ui.esm.js.map +1 -1
- package/dist/vike/config/package.json +1 -1
- package/dist/vite/plugin.cjs.js +968 -4
- package/dist/vite/plugin.cjs.js.map +1 -1
- package/dist/vite/plugin.mjs +968 -4
- package/dist/vite/plugin.mjs.map +1 -1
- package/dist/worker-page.cjs.js +669 -0
- package/dist/worker-page.cjs.js.map +1 -0
- package/dist/worker-page.esm.js +665 -0
- package/dist/worker-page.esm.js.map +1 -0
- package/dist/worker.cjs.js +377 -0
- package/dist/worker.cjs.js.map +1 -0
- package/dist/worker.esm.js +374 -0
- package/dist/worker.esm.js.map +1 -0
- package/dist/yjs-testing.cjs.js +98 -0
- package/dist/yjs-testing.cjs.js.map +1 -0
- package/dist/yjs-testing.esm.js +77 -0
- package/dist/yjs-testing.esm.js.map +1 -0
- package/dist/yjs.cjs.js +923 -0
- package/dist/yjs.cjs.js.map +1 -0
- package/dist/yjs.esm.js +900 -0
- package/dist/yjs.esm.js.map +1 -0
- package/dist/zag.cjs.js +11 -1
- package/dist/zag.cjs.js.map +1 -1
- package/dist/zag.esm.js +11 -1
- package/dist/zag.esm.js.map +1 -1
- package/llms/ai.md +65 -0
- package/llms/collaboration.md +5 -0
- package/llms/graphics.md +10 -0
- package/llms/renderers.md +7 -0
- package/llms/replay.md +5 -0
- package/llms/sandbox.md +5 -0
- package/llms/typed-apis.md +5 -0
- package/llms/ui.md +10 -0
- package/llms-full.txt +444 -0
- package/llms.txt +37 -35
- package/package.json +139 -3
- package/src/agent-ui/mcp.ts +152 -0
- package/src/agent-ui/snapshot.ts +212 -0
- package/src/agent-ui.d.ts +106 -0
- package/src/agent-ui.ts +249 -0
- package/src/ai.d.ts +95 -2
- package/src/api.d.ts +303 -0
- package/src/api.ts +9 -0
- package/src/canvas/Canvas.ts +585 -0
- package/src/canvas/backend.ts +627 -0
- package/src/canvas/geometry.ts +187 -0
- package/src/canvas/gesture.ts +23 -0
- package/src/canvas/image.ts +197 -0
- package/src/canvas/kit.ts +130 -0
- package/src/canvas/paint.ts +260 -0
- package/src/canvas/pointer.ts +25 -0
- package/src/canvas/snap.ts +68 -0
- package/src/canvas/svg.ts +99 -0
- package/src/canvas.d.ts +373 -0
- package/src/canvas.ts +46 -0
- package/src/core/actions.ts +14 -3
- package/src/core/cell.ts +12 -4
- package/src/core/debug.ts +8 -3
- package/src/core/hooks.ts +16 -2
- package/src/core/hosts/collection.ts +1 -1
- package/src/core/hosts/switchable.ts +26 -8
- package/src/core/instance.ts +98 -45
- package/src/core/markers/portal.ts +4 -0
- package/src/core/registry.ts +4 -0
- package/src/core/runtime.ts +34 -25
- package/src/core/statics.ts +5 -5
- package/src/cycle/dom/EventDelegator.ts +37 -33
- package/src/cycle/dom/MainDOMSource.ts +16 -14
- package/src/cycle/dom/enrichEventStream.ts +13 -9
- package/src/cycle/dom/fromEvent.ts +6 -10
- package/src/cycle/dom/index.ts +11 -7
- package/src/cycle/dom/isolate.ts +13 -6
- package/src/cycle/dom/makeDOMDriver.ts +6 -2
- package/src/cycle/dom/utils.ts +9 -2
- package/src/cycle/run/adapt.ts +4 -12
- package/src/devtools.d.ts +9 -0
- package/src/devtools.ts +2 -1
- package/src/extra/ai/compose/catalog.ts +2 -1
- package/src/extra/ai/compose/decisions.ts +1 -2
- package/src/extra/ai/compose/generated.ts +234 -0
- package/src/extra/ai/compose/index.ts +6 -2
- package/src/extra/ai/compose/layout.ts +3 -1
- package/src/extra/ai/compose/llm.ts +7 -3
- package/src/extra/ai/compose/types.ts +2 -2
- package/src/extra/ai/transports/shared.ts +3 -1
- package/src/extra/api/contract.ts +485 -0
- package/src/extra/api/index.ts +26 -0
- package/src/extra/behaviors.ts +3 -3
- package/src/extra/controlled.ts +44 -0
- package/src/extra/copyAsTest.ts +22 -0
- package/src/extra/devtools.ts +5 -3
- package/src/extra/devtoolsActions.ts +8 -0
- package/src/extra/devtoolsNext.ts +1 -1
- package/src/extra/diagnostics/checks/actionLog.ts +8 -3
- package/src/extra/diagnostics/checks/behaviors.ts +25 -0
- package/src/extra/diagnostics/checks/elementCommands.ts +17 -5
- package/src/extra/diagnostics/checks/index.ts +1 -1
- package/src/extra/diagnostics/checks/next.ts +78 -4
- package/src/extra/diagnostics/checks/props.ts +6 -1
- package/src/extra/diagnostics/checks/replies.ts +11 -7
- package/src/extra/diagnostics/checks/timers.ts +8 -2
- package/src/extra/diagnostics/checks/virtual.ts +11 -0
- package/src/extra/diagnostics/codes.ts +51 -1
- package/src/extra/elementCommands.ts +20 -4
- package/src/extra/fetchDriver.ts +4 -1
- package/src/extra/fetchEventSource.ts +6 -2
- package/src/extra/field.ts +29 -0
- package/src/extra/form.ts +42 -16
- package/src/extra/frame.ts +54 -0
- package/src/extra/keymap.ts +41 -0
- package/src/extra/pager.ts +2 -0
- package/src/extra/persist.ts +2 -1
- package/src/extra/pointer.ts +262 -0
- package/src/extra/processForm.ts +34 -1
- package/src/extra/replay/address.ts +49 -0
- package/src/extra/replay/entropy.ts +99 -0
- package/src/extra/replay/format.ts +263 -0
- package/src/extra/replay/index.ts +8 -0
- package/src/extra/replay/inert.ts +22 -0
- package/src/extra/replay/recorder.ts +247 -0
- package/src/extra/replay/replayer.ts +234 -0
- package/src/extra/replay/report.ts +126 -0
- package/src/extra/replay/schema.ts +52 -0
- package/src/extra/replay/version.ts +3 -0
- package/src/extra/router.ts +7 -3
- package/src/extra/selection.ts +2 -0
- package/src/extra/socketDriver.ts +51 -6
- package/src/extra/ssr.ts +128 -42
- package/src/extra/testing.ts +295 -39
- package/src/extra/timers.ts +96 -7
- package/src/extra/undo.ts +2 -0
- package/src/extra/virtual.ts +25 -2
- package/src/extra/widget.ts +106 -17
- package/src/host/actions.ts +383 -0
- package/src/host/delegation.ts +101 -0
- package/src/host/dom.ts +553 -0
- package/src/host/driver.ts +185 -0
- package/src/host/selector.ts +119 -0
- package/src/host/style.ts +51 -0
- package/src/host.d.ts +298 -0
- package/src/host.ts +46 -0
- package/src/index.d.ts +302 -38
- package/src/index.ts +15 -3
- package/src/pragma/blocks.ts +211 -0
- package/src/pragma/index.ts +44 -10
- package/src/primitives.d.ts +54 -0
- package/src/primitives.ts +136 -0
- package/src/react-native.d.ts +57 -0
- package/src/react-native.ts +285 -0
- package/src/react-peers.d.ts +21 -3
- package/src/replay.d.ts +185 -0
- package/src/replay.ts +6 -0
- package/src/sandbox/build.ts +119 -0
- package/src/sandbox/create.ts +187 -0
- package/src/sandbox/engine.ts +267 -0
- package/src/sandbox/generated.ts +195 -0
- package/src/sandbox/kernel.ts +180 -0
- package/src/sandbox/mirror.ts +269 -0
- package/src/sandbox/protocol.ts +128 -0
- package/src/sandbox/quickjs.ts +74 -0
- package/src/sandbox/ssr.ts +41 -0
- package/src/sandbox/widget.ts +60 -0
- package/src/sandbox/worker-entry.ts +59 -0
- package/src/sandbox/worker.ts +137 -0
- package/src/sandbox-build.d.ts +12 -0
- package/src/sandbox-build.ts +6 -0
- package/src/sandbox.d.ts +299 -0
- package/src/sandbox.ts +25 -0
- package/src/shared.ts +12 -0
- package/src/terminal/paint.ts +712 -0
- package/src/terminal.d.ts +167 -0
- package/src/terminal.ts +530 -0
- package/src/three/assets.ts +170 -0
- package/src/three/host.ts +36 -0
- package/src/three/scene.ts +217 -0
- package/src/three/target.ts +252 -0
- package/src/three.d.ts +221 -0
- package/src/three.ts +30 -0
- package/src/ui/accordion.ts +21 -7
- package/src/ui/dialog.ts +192 -90
- package/src/ui/disclosure.ts +2 -0
- package/src/ui/dom.ts +30 -0
- package/src/ui/layers.ts +132 -0
- package/src/ui/popover.ts +120 -21
- package/src/ui/shared.ts +98 -12
- package/src/ui/stack.ts +18 -0
- package/src/ui/tabs.ts +2 -0
- package/src/ui/toaster.ts +16 -15
- package/src/ui/tooltip.ts +24 -8
- package/src/ui/tooltips.ts +26 -14
- package/src/ui/zag/combobox.ts +180 -13
- package/src/ui/zag/menu.ts +97 -17
- package/src/ui/zag/select.ts +15 -4
- package/src/ui/zag/shared.ts +60 -8
- package/src/ui-combobox.d.ts +16 -1
- package/src/ui-menu.d.ts +22 -7
- package/src/ui-zag-types.d.ts +13 -5
- package/src/ui.d.ts +62 -7
- package/src/ui.ts +2 -2
- package/src/vite/api.ts +186 -0
- package/src/vite/compile.ts +280 -0
- package/src/vite/plugin.d.ts +34 -0
- package/src/vite/plugin.ts +78 -4
- package/src/vite/sandbox.ts +16 -0
- package/src/worker/page.ts +396 -0
- package/src/worker/protocol.ts +48 -0
- package/src/worker/target.ts +282 -0
- package/src/worker-page.d.ts +42 -0
- package/src/worker-page.ts +12 -0
- package/src/worker.d.ts +65 -0
- package/src/worker.ts +16 -0
- package/src/yjs/driver.ts +253 -0
- package/src/yjs/mapping.ts +389 -0
- package/src/yjs/shared.ts +138 -0
- package/src/yjs/testing.ts +91 -0
- package/src/yjs-testing.d.ts +34 -0
- package/src/yjs-testing.ts +7 -0
- package/src/yjs.d.ts +109 -0
- package/src/yjs.ts +18 -0
- package/src/zag.d.ts +2 -0
- package/src/zag.ts +8 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"yjs.esm.js","sources":["../src/yjs/mapping.ts","../src/yjs/driver.ts","../src/yjs/shared.ts"],"sourcesContent":["/*\n * 'sygnal/yjs' (research: dev-plans/research/crdt-state): the mapping between a plain JSON state\n * slice and a Yjs document.\n *\n * Inferred from the value unless a `shape` declares it (shared({ shape }), D: Q1):\n * - a plain object -> Y.Map (one LWW register per key)\n * - an array of objects that all have `id` -> a *collection*: a Y.Map keyed by String(id), each item a\n * Y.Map of its fields plus `$o`, a fractional order key (`fractional-indexing`); the array is the\n * items sorted by ($o, id). Concurrent add / edit / move / delete of different items merge; a move\n * is one register write, so it never duplicates or drops an item, and an edit to a moved item\n * survives the move. An empty array is ambiguous: a collection unless the field already holds a\n * list (or the shape says 'list'); without a shape the driver warns once (SYG261, dev).\n * - any other array -> Y.Array of JSON values (spliced by common prefix / suffix)\n * - a string field named in `text` / 'text' in the shape -> Y.Text (character-level merge)\n * - anything else -> a JSON value in its parent (LWW)\n *\n * write(y, prev, next) turns the *local* change prev -> next into Yjs operations. It is a 3-way\n * write: keys / items the local change didn't touch are left alone even when Yjs holds newer remote\n * values for them, and every write is idempotent against the document's current content (a value\n * Yjs already holds isn't written again), so a prev older than the document never reverts or\n * duplicates a remote change. Items that are the same object as before are skipped without a\n * lookup (index identity first).\n *\n * read(y, path, prev, dirty) reads the slice; with `dirty` (the types a transaction changed) it\n * re-reads only those and keeps prev's objects everywhere else (incremental read).\n */\nimport * as Y from 'yjs'\nimport {generateKeyBetween} from 'fractional-indexing'\n\n/** a normalized shape node: k = 't' text, 'l' list, 'c' collection (i: the item's fields), 'm' map (f: fields), 'v' value */\nexport interface ShapeNode { k?: Kind; f?: Record<string, ShapeNode>; i?: Record<string, ShapeNode> }\nexport interface MapOptions {\n text?: string[]\n /** an empty array whose kind was guessed (no shape, no kind in the document yet): its path */\n ambiguous?: (path: string) => void\n}\n\nconst isPlain = (v: any) => v !== null && typeof v == 'object' && Object.getPrototypeOf(v) === Object.prototype\nconst hasId = (v: any) => isPlain(v) && (typeof v.id == 'string' || typeof v.id == 'number')\nconst isCollMap = (y: any) => y instanceof Y.Map && y.get('$c') === 1\nconst same = (a: any, b: any) => a === b || JSON.stringify(a) === JSON.stringify(b)\n\n// ---- shapes ------------------------------------------------------------------------------------\nconst COLL = Symbol.for('sygnal.yjs.collection')\nconst KINDS: Record<string, Kind> = {text: 't', list: 'l', collection: 'c', map: 'm', value: 'v'}\n/** shape: { items: collection({ text: 'text' }) }: an id-keyed collection whose items have these field shapes */\nexport const collection = (item: Record<string, any> = {}) => ({[COLL]: item})\n/** a public shape ({ title: 'text', items: collection(...), tags: 'list' }) as nodes */\nexport const normShape = (s: any): ShapeNode | undefined => {\n if (s == null) return undefined\n if (typeof s == 'string') {\n if (!KINDS[s]) throw new TypeError(`shared(): unknown shape '${s}'; use 'text', 'list', 'collection', 'map', 'value', collection({ ... }) or an object of fields`)\n return {k: KINDS[s]}\n }\n if (s[COLL]) return {k: 'c', i: fields(s[COLL])}\n if (isPlain(s)) return {k: 'm', f: fields(s)}\n throw new TypeError('shared(): a shape is a string, collection({ ... }) or an object of fields')\n}\nconst fields = (o: any) => {\n const f: Record<string, ShapeNode> = {}\n for (const k in o) f[k] = normShape(o[k])!\n return f\n}\n// the item shape of a collection field as a map node (its fields)\nconst itemNode = (sh?: ShapeNode): ShapeNode | undefined => sh?.i ? {k: 'm', f: sh.i} : undefined\n\n// ---- fractional order keys -----------------------------------------------------------------------\n// a key generateKeyBetween accepts (its default base-62 format: a head letter giving the integer\n// part's length, 'a' 2 .. 'z' 27 and 'Z' 2 .. 'A' 27, then digits; no fraction ending in '0'); any\n// other value (an older document's key) is rekeyed\nconst B62 = /^[0-9A-Za-z]+$/\nconst valid = (k: any): k is string => {\n if (typeof k != 'string' || !B62.test(k)) return false\n const c = k.charCodeAt(0), n = c >= 97 ? c - 95 : c <= 90 && c >= 65 ? 92 - c : 0\n return n > 0 && k.length >= n && (k.length == n || k[k.length - 1] != '0') && !/^A0{26}/.test(k)\n}\n\n// ---- splices -----------------------------------------------------------------------------------\ninterface Splice { i: number; del: number; ins: any }\nconst splice = (a: any, b: any, eq: (x: any, y: any) => boolean): Splice => {\n let i = 0, j = 0\n while (i < a.length && i < b.length && eq(a[i], b[i])) i++\n while (j < a.length - i && j < b.length - i && eq(a[a.length - 1 - j], b[b.length - 1 - j])) j++\n return {i, del: a.length - i - j, ins: b.slice(i, b.length - j)}\n}\n/**\n * The local splice prev -> next, moved onto a document whose content `cur` differs from prev by a\n * remote splice: shifted when it lies after the remote one, kept when before; an overlapping edit\n * is clamped (approximate; exact when the document matches either side).\n */\nconst rebase = (l: Splice, prev: any, cur: any, eq: any): Splice => {\n const r = splice(prev, cur, eq)\n if (l.i + l.del <= r.i) return l\n if (l.i >= r.i + r.del) return {...l, i: l.i + r.ins.length - r.del}\n const i = Math.min(l.i, r.i)\n return {i, del: Math.max(0, Math.min(l.del, cur.length - i)), ins: l.ins}\n}\n// eq compares elements (characters, list values)\nconst spliceInto = (cur: any, prev: any, next: any, eq: any, apply: (s: Splice) => void) => {\n const all = (a: any, b: any) => a === b || a.length === b.length && splice(a, b, eq).del === 0\n if (all(cur, next)) return // already there (a remote change, or no change)\n const l = splice(prev, next, eq)\n apply(all(cur, prev) ? l : rebase(l, prev, cur, eq))\n}\nconst strEq = (a: any, b: any) => a === b\n\n// ---- write -------------------------------------------------------------------------------------\n/*\n * Where a value lives. On the slice's object path (the slice itself, its plain-object fields, their\n * plain-object fields, ...: `path` is set) a structured value is a *root-level* shared type named by\n * its path ('board.items#c'), and the parent holds a marker ({ $y: 'c' }). Root-level types are\n * merged by name, so two clients that create `board.items` concurrently (offline, or both seeding an\n * empty document) get one collection with both clients' items. A nested Y.Map set under a key would\n * be a last-writer-wins register: one client's whole collection would be lost (the spike, §3.6).\n * Inside a collection item (`path` undefined) structured values are nested types: an item is created\n * by one client (its id), so the race is rarer, and a nested value there is LWW at creation.\n */\nexport type Kind = 't' | 'c' | 'm' | 'l' | 'v'\nconst kindOf = (k: string, n: any, cur: Kind | undefined, o: MapOptions, sh: ShapeNode | undefined, name: string): Kind => {\n const d = sh?.k\n if (d == 't' && typeof n == 'string' || d == 'l' && Array.isArray(n) || d == 'm' && isPlain(n) || d == 'v') return d\n if (d == 'c' && Array.isArray(n) && n.every(hasId)) return 'c'\n if (typeof n == 'string' && o.text?.includes(k)) return 't'\n if (Array.isArray(n) && n.every(hasId)) {\n if (n.length) return 'c'\n if (cur == 'l' || cur == 'c') return cur\n // an empty array the shape doesn't name: a guess (a collection); a list stays a list\n if (!d) o.ambiguous?.(name)\n return 'c'\n }\n return isPlain(n) ? 'm' : Array.isArray(n) ? 'l' : 'v'\n}\nconst nestedKind = (y: any): Kind | undefined =>\n y instanceof Y.Text ? 't' : isCollMap(y) ? 'c' : y instanceof Y.Map ? 'm' : y instanceof Y.Array ? 'l' : undefined\nexport const rootOf = (doc: Y.Doc, name: string, k: Kind): any =>\n k == 't' ? doc.getText(name + '#t') : k == 'l' ? doc.getArray(name + '#l') : doc.getMap(name + '#' + k)\nconst clear = (t: any) => {\n if (t instanceof Y.Map) for (const k of [...t.keys()]) t.delete(k)\n else if (t.length) t.delete(0, t.length)\n}\nconst marker = (v: any): Kind | undefined => isPlain(v) && typeof v.$y == 'string' ? v.$y : undefined\n\n/** the local change prev -> next of a map (the slice: writeMap(doc.getMap(key), last, value, o, key, shape)) */\nexport const writeMap = (y: Y.Map<any>, prev: any, next: any, o: MapOptions, path?: string, sh?: ShapeNode, label = path || ''): void => {\n prev = isPlain(prev) ? prev : {}\n for (const k in prev) if (!(k in next) && y.has(k)) {\n const m = path != null && marker(y.get(k))\n if (m) clear(rootOf(y.doc!, path + '.' + k, m))\n y.delete(k)\n }\n for (const k in next) if (!(k in prev) || prev[k] !== next[k] || !y.has(k)) writeValue(y, k, prev[k], next[k], o, path, sh?.f?.[k], label + '.' + k)\n}\n\nconst writeValue = (y: Y.Map<any>, k: string, p: any, n: any, o: MapOptions, path: string | undefined, sh: ShapeNode | undefined, label: string): void => {\n const cur = y.get(k), name = path != null ? path + '.' + k : undefined\n const had = name != null ? marker(cur) : nestedKind(cur), want = kindOf(k, n, had, o, sh, label)\n let t: any\n if (name != null) {\n if (had && had != want) clear(rootOf(y.doc!, name, had))\n if (want == 'v') { if (!same(cur, n)) y.set(k, n); return }\n if (had != want) { y.set(k, {$y: want}); p = undefined }\n t = rootOf(y.doc!, name, want)\n } else {\n if (want == 'v') { if (!same(cur, n)) y.set(k, n); return }\n if (had != want) {\n t = want == 't' ? new Y.Text() : want == 'l' ? new Y.Array() : new Y.Map()\n y.set(k, t); if (want == 'c') t.set('$c', 1); p = undefined\n } else t = cur\n }\n if (want == 't') {\n const s = t.toString()\n spliceInto(s, typeof p == 'string' ? p : s, n, strEq, ({i, del, ins}) => { if (del) t.delete(i, del); if (ins) t.insert(i, ins) })\n } else if (want == 'c') writeColl(t, Array.isArray(p) ? p : [], n, o, itemNode(sh), label)\n else if (want == 'm') writeMap(t, p, n, o, name, sh, label)\n else {\n const c = t.toArray()\n spliceInto(c, Array.isArray(p) ? p : c, n, same, ({i, del, ins}) => { if (del) t.delete(i, del); if (ins.length) t.insert(i, ins) })\n }\n}\n\n/** a collection: removed ids deleted, new ones added, changed ones written field by field, then order */\nconst writeColl = (m: Y.Map<any>, prev: any[], next: any[], o: MapOptions, sh: ShapeNode | undefined, label: string): void => {\n const item = (x: any, p: any) => {\n if (p === x) return\n const id = String(x.id), it = m.get(id)\n if (it instanceof Y.Map) { if (p !== x) writeMap(it, p ?? readItem(it), x, o, undefined, sh, label + '[]') }\n // new here. An id this side knew that is gone from the document was deleted remotely while it\n // was edited here: the delete wins (no resurrection)\n else if (!p) { const im = new Y.Map(); m.set(id, im); writeMap(im, {}, x, o, undefined, sh, label + '[]') }\n }\n // the common case (an edit, a toggle): the same ids in the same order. Unchanged items (the same\n // object) are skipped by index, no maps are built and the order is left alone\n if (prev.length == next.length && prev.every((x, i) => x === next[i] || x.id === next[i].id)) {\n for (let i = 0; i < next.length; i++) if (prev[i] !== next[i]) item(next[i], prev[i])\n return\n }\n // items added (an add, a paste) and nothing else moved: only the new items get keys, between\n // their neighbours' (the keys order() would give them)\n if (next.length > prev.length) {\n const added: number[] = []\n let j = 0\n for (let i = 0; i < next.length; i++) {\n if (j < prev.length && next[i].id === prev[j].id) item(next[i], prev[j++])\n else added.push(i)\n }\n if (j == prev.length) {\n for (const i of added) item(next[i], undefined)\n if (insertKeys(m, next, added)) return\n return order(m, next)\n }\n }\n const was = new Map(prev.map((x) => [String(x.id), x])), now = new Set(next.map((x) => String(x.id)))\n for (const id of was.keys()) if (!now.has(id) && m.has(id)) m.delete(id)\n for (const x of next) item(x, was.get(String(x.id)))\n // the ids or their order changed here (a local edit never reorders, even when the document holds\n // a remote move this side hasn't seen); removals alone leave the others' order as it was\n let j = 0\n for (const x of prev) if (j < next.length && x.id === next[j].id) j++\n if (j < next.length) order(m, next)\n}\n\n// keys for the items at `added` (indexes in next) between their neighbours' keys; false when a\n// neighbour's key is missing or out of order here (a remote move): order() then sorts it out\nconst insertKeys = (m: Y.Map<any>, next: any[], added: number[]): boolean => {\n const keyAt = (i: number) => m.get(String(next[i].id))?.get('$o')\n for (let a = 0; a < added.length; a++) {\n const i = added[a], it = m.get(String(next[i].id))\n if (!(it instanceof Y.Map)) continue\n let lo: string | null = null, hi: string | null = null\n for (let k = i - 1; k >= 0 && lo == null; k--) { const v = keyAt(k); if (v !== undefined) { if (!valid(v)) return false; lo = v } }\n // the next item that isn't new (new ones after this one get keys after it)\n for (let k = i + 1, b = a + 1; k < next.length; k++) {\n if (b < added.length && added[b] == k) { b++; continue }\n const v = keyAt(k)\n if (v === undefined) continue\n if (!valid(v)) return false\n hi = v\n break\n }\n if (lo != null && hi != null && lo >= hi) return false\n const cur = it.get('$o')\n if (!(valid(cur) && (lo == null || cur > lo) && (hi == null || cur < hi))) it.set('$o', generateKeyBetween(lo, hi))\n }\n return true\n}\n\n/**\n * The order keys: the longest run of items whose current keys already increase in `next`'s order\n * stays; every other item gets a key between its neighbours (fractional-indexing; deterministic, so\n * two clients seeding the same ids write the same keys). Idempotent: an order the document already\n * has writes nothing; one move writes one key.\n */\nconst order = (m: Y.Map<any>, next: any[]): void => {\n const items = next.map((x) => m.get(String(x.id))).filter((it) => it instanceof Y.Map)\n const keys = items.map((it) => { const k = it.get('$o'); return valid(k) ? k : undefined })\n const keep = lis(keys)\n let last: string | null = null\n items.forEach((it, i) => {\n if (keep.has(i)) { last = keys[i]!; return }\n let hi: string | null = null\n for (let j = i + 1; j < items.length; j++) if (keep.has(j) && (last == null || keys[j]! > last)) { hi = keys[j]!; break }\n last = generateKeyBetween(last, hi)\n it.set('$o', last)\n })\n}\n/** indexes of a longest strictly increasing subsequence (undefined keys never kept) */\nconst lis = (keys: (string | undefined)[]): Set<number> => {\n const tails: number[] = [], prev: number[] = []\n keys.forEach((k, i) => {\n if (k === undefined) return\n let lo = 0, hi = tails.length\n while (lo < hi) { const mid = (lo + hi) >> 1; keys[tails[mid]]! < k ? lo = mid + 1 : hi = mid }\n prev[i] = lo ? tails[lo - 1] : -1\n tails[lo] = i\n })\n const out = new Set<number>()\n for (let i = tails.length ? tails[tails.length - 1] : -1; i >= 0; i = prev[i]) out.add(i)\n return out\n}\n\n// ---- read --------------------------------------------------------------------------------------\n/**\n * What one transaction changed, for an incremental read: `types` the changed types and their\n * ancestors, `roots` the names of the root-level types among them, `changed` the transaction's own\n * map (type -> changed keys).\n */\nexport interface Dirty { types: Set<any>; roots: Set<string>; changed: Map<any, Set<string | null>> }\n\nconst dirtyHere = (y: any, path: string | undefined, d: Dirty) => {\n if (d.types.has(y)) return true\n if (path != null) for (const n of d.roots) if (n.startsWith(path + '.')) return true\n return false\n}\n\n/**\n * A slice's JSON: read(doc.getMap(key), key). With `d` and `prev` (the previous read), only what\n * the transaction changed is read again; everything else is prev's object.\n */\nexport const read = (y: any, path?: string, prev?: any, d?: Dirty): any => {\n if (!(y instanceof Y.AbstractType)) return y\n if (d && prev !== undefined && !dirtyHere(y, path, d)) return prev\n if (y instanceof Y.Text) return y.toString()\n if (y instanceof Y.Array) return reconcile(prev, y.toArray().map((v) => read(v)))\n if (y instanceof Y.Map) {\n if (isCollMap(y)) return readColl(y, d && Array.isArray(prev) ? prev : undefined, d)\n const out: any = {}, p = d && isPlain(prev) ? prev : undefined\n y.forEach((v, k) => {\n const m = path != null && marker(v)\n out[k] = !m ? read(v, undefined, p?.[k], d)\n : m == 'c' ? readColl(rootOf(y.doc!, path + '.' + k, m), d && Array.isArray(p?.[k]) ? p![k] : undefined, d)\n : read(rootOf(y.doc!, path + '.' + k, m), path + '.' + k, p?.[k], d)\n })\n // the fields were read against p's: p itself when every one is p's\n if (!p) return out\n let n = 0\n for (const k in out) if (out[k] !== p[k] || !(k in p)) return out; else n++\n return n == Object.keys(p).length ? p : out\n }\n return y\n}\nconst byKey = (a: [string, string, ...any[]], b: [string, string, ...any[]]) =>\n a[0] < b[0] ? -1 : a[0] > b[0] ? 1 : a[1] < b[1] ? -1 : a[1] > b[1] ? 1 : 0\nconst readColl = (y: Y.Map<any>, prev?: any[], d?: Dirty): any[] => {\n if (!d || !prev) {\n const items: [string, string, Y.Map<any>][] = []\n y.forEach((v, k) => { if (v instanceof Y.Map) items.push([v.get('$o') ?? '', k, v]) })\n return items.sort(byKey).map(([, , v]) => readItem(v))\n }\n if (!d.types.has(y)) return prev\n // ids to place again (added, removed, replaced, or a new order key) and items edited in place\n const place = new Set<string>(), edited = new Set<string>()\n for (const k of d.changed.get(y) || []) if (k != null) place.add(k)\n for (const t of d.types) if (t._item?.parent === y && t._item.parentSub != null) {\n const id = t._item.parentSub\n if (d.changed.get(t)?.has('$o')) place.add(id)\n else edited.add(id)\n }\n // prev is sorted by ($o, id): the items that stay keep their order; the placed ones go in by binary search\n const was = new Map<string, any>(), out: any[] = []\n for (const x of prev) {\n const id = String(x.id)\n if (place.has(id)) was.set(id, x)\n else out.push(edited.has(id) ? readItem(y.get(id), x, d) : x)\n }\n if (place.size) {\n const key = (x: any): [string, string] => [y.get(String(x.id))?.get('$o') ?? '', String(x.id)]\n const ins: [string, string, Y.Map<any>][] = []\n for (const id of place) { const v = y.get(id); if (v instanceof Y.Map) ins.push([v.get('$o') ?? '', id, v]) }\n for (const e of ins.sort(byKey)) {\n let lo = 0, hi = out.length\n while (lo < hi) { const mid = (lo + hi) >> 1; byKey(key(out[mid]), e) < 0 ? lo = mid + 1 : hi = mid }\n out.splice(lo, 0, readItem(e[2], was.get(e[1]), d))\n }\n }\n return out.length == prev.length && out.every((x, i) => x === prev[i]) ? prev : out\n}\nconst readItem = (it: Y.Map<any>, prev?: any, d?: Dirty) => {\n const x: any = {}\n it.forEach((v, k) => { if (k != '$o') x[k] = read(v, undefined, prev?.[k], d) })\n return prev ? reconcile(prev, x) : x\n}\n\n/** next, reusing prev's objects wherever they are deep-equal (Collection items keep their identity) */\nexport const reconcile = (prev: any, next: any): any => {\n if (prev === next) return prev\n if (Array.isArray(next)) {\n if (!Array.isArray(prev)) return next\n let byId: Map<any, any> | undefined\n let changed = prev.length != next.length\n const out = next.map((x, i) => {\n // index first; by id only when the items moved\n let p = prev[i]\n if (x === p) return p\n if (hasId(x) && !(hasId(p) && p.id === x.id)) p = (byId ||= new Map(prev.filter(hasId).map((y) => [y.id, y]))).get(x.id)\n const r = reconcile(p, x)\n if (r !== prev[i]) changed = true\n return r\n })\n return changed ? out : prev\n }\n if (isPlain(next)) {\n if (!isPlain(prev)) return next\n let changed = Object.keys(prev).length != Object.keys(next).length\n const out: any = {}\n for (const k in next) { out[k] = reconcile(prev[k], next[k]); if (out[k] !== prev[k] || !(k in prev)) changed = true }\n return changed ? out : prev\n }\n return Object.is(prev, next) ? prev : next\n}\n","/*\n * 'sygnal/yjs' (research: dev-plans/research/crdt-state): makeYjsDriver, the driver that owns a Y.Doc\n * for `shared()` slices.\n *\n * const drivers = { SHARED: makeYjsDriver({ doc, provider, text: ['text'] }) }\n *\n * Sink commands (data, from model entries):\n * { key, value, shape?, seed? } state[key]'s new value (shared()'s `key.LOCAL`, coalesced per flush)\n * { undo: key } / { redo: key } this client's own changes to state[key] (a Y.UndoManager per slice)\n * { key, value, step } (sygnal/canvas history()) a new `step` closes this client's undo\n * step after the write; while steps come, edits merge by step, not by time\n * { presence: { ... } } this client's awareness state (merged)\n * { connect: boolean } provider.connect() / provider.disconnect() (go offline and back)\n * Sources: remote(key) ({ value, base }), presence() (the other clients), history(key)\n * ({ canUndo, canRedo }), doc.\n *\n * - Local: the new value is diffed against the last one the driver saw and written in one\n * transaction (mapping.ts writeMap, a 3-way idempotent write).\n * - Remote: every transaction from elsewhere (a peer, a sync, an undo) updates the driver's mirror of\n * the slice incrementally (only the types it changed are read again) and emits { value, base };\n * shared()'s REMOTE reducer applies it only while state[key] is still `base`.\n * - Seeding (Q3): `seed: 'whenSynced'` (default) waits for the provider's first sync, then seeds an\n * empty document from the app's value, or else takes the document's content (writing any edits\n * the app made before the sync onto it). `seed: 'ifEmpty'` seeds at once (a local-only document).\n * Without `provider` / `synced` the document counts as synced.\n */\nimport * as Y from 'yjs'\nimport {xs} from '../index'\nimport {writeMap, read, reconcile, normShape, type MapOptions, type ShapeNode, type Dirty} from './mapping'\n\nexport interface YjsDriverOptions {\n doc: Y.Doc\n /** a y-protocols Awareness for presence (default: provider.awareness) */\n awareness?: any\n /** y-websocket, Hocuspocus, y-webrtc, y-indexeddb, createNetwork()'s peer: its first sync, its awareness, connect / disconnect */\n provider?: any\n /** resolves when the document has synced (instead of provider's sync events) */\n synced?: PromiseLike<unknown>\n /** field names whose strings are Y.Text (character-level merge) */\n text?: string[]\n /** a Y.UndoManager per slice (default true); captureTimeout merges rapid local edits (default 500 ms) */\n undo?: boolean\n captureTimeout?: number\n}\n\ninterface Slice {\n key: string; y: Y.Map<any>; um?: Y.UndoManager\n // started: the slice is bound to the document (after seeding); first: the app's first value\n started: boolean; first: any; last: any; mirror: any\n // the REMOTE values sent since the last local write, and the latest one with its base\n emitted: Set<any>; sent: any; sentBase: any\n shape?: ShapeNode; seed: string\n out: Set<any>\n // history()'s step (sygnal/canvas): the last one seen\n step?: any\n}\n\nconst report = (code: string, message: string, fix: string, data: any) => {\n try {\n (globalThis as any).__SYGNAL_DIAGNOSTICS__?.report(code, {severity: 'warn', message, fix, data})\n } catch (e) { queueMicrotask(() => { throw e }) }\n}\n\n// the promise of a provider's first sync; null: synced now\nconst syncedOf = (o: YjsDriverOptions): PromiseLike<unknown> | null => {\n if (o.synced) return o.synced\n const p = o.provider\n if (!p || p.synced === true || p.isSynced === true) return null\n if (p.whenSynced?.then) return p.whenSynced\n if (typeof p.on != 'function') return null\n return new Promise<void>((r) => {\n // y-websocket: 'sync' (true); y-webrtc: 'synced' ({ synced }); Hocuspocus: 'synced' ({ state })\n const f = (x: any) => {\n if (x === false || x?.synced === false || x?.state === false) return\n for (const e of ['sync', 'synced']) p.off?.(e, f)\n r()\n }\n for (const e of ['sync', 'synced']) p.on(e, f)\n })\n}\n\nexport const makeYjsDriver = (o: YjsDriverOptions) => (sink$: any) => {\n const {doc} = o, provider = o.provider, awareness = o.awareness ?? provider?.awareness\n const local = {}, seed = {}, slices = new Map<string, Slice>(), warned = new Set<string>()\n const opts: MapOptions = {\n text: o.text,\n ambiguous: (path) => {\n if (warned.has(path)) return\n warned.add(path)\n report('SYG261', `shared(): '${path}' is an empty array, so its kind is a guess: an id-keyed collection. A list of plain values would be stored as a collection until it has items`,\n `Declare it: shared({ shape: { ${path.split('.').pop()}: 'list' } }) for plain values, or collection() for items with an id`, {path})\n },\n }\n const first = syncedOf(o)\n let synced = !first\n first?.then(() => {\n synced = true\n for (const s of slices.values()) if (!s.started && s.first !== undefined) start(s)\n })\n\n // the root-level types' names (doc.share), by type. Read again on a miss: a type that arrived in\n // an update is a placeholder until its first getMap() / getText(), which puts a new object in\n // doc.share under the same name (the size doesn't change)\n let names = new Map<any, string>()\n const nameOf = (t: any) => {\n let n = names.get(t)\n if (n === undefined) { names = new Map([...doc.share].map(([k, v]) => [v, k])); n = names.get(t) }\n return n\n }\n // what a transaction changed (mapping.ts Dirty)\n const dirtyOf = (tr: Y.Transaction): Dirty => {\n const types = new Set<any>(), roots = new Set<string>()\n for (const t of tr.changed.keys()) {\n let r: any = t\n types.add(r)\n while (r._item) { r = r._item.parent; types.add(r) }\n const n = nameOf(r)\n if (n) roots.add(n)\n }\n return {types, roots, changed: tr.changed as any}\n }\n const touches = (d: Dirty, k: string) => {\n for (const n of d.roots) if (n === k || n.startsWith(k + '.')) return true\n return false\n }\n\n const onTransaction = (tr: Y.Transaction) => {\n if (!slices.size || !tr.changed.size) return\n const d = dirtyOf(tr)\n for (const s of slices.values()) {\n if (!s.started || !touches(d, s.key)) continue\n s.mirror = read(s.y, s.key, s.mirror, d)\n if (tr.origin !== local && tr.origin !== seed) emit(s, !!s.um && tr.origin === s.um)\n }\n }\n doc.on('afterTransaction', onTransaction)\n\n const slice = (k: string): Slice => {\n let s = slices.get(k)\n if (s) return s\n s = {key: k, y: doc.getMap(k), started: false, first: undefined, last: undefined, mirror: undefined, emitted: new Set(), sent: undefined, sentBase: undefined, seed: 'whenSynced', out: new Set()}\n if (o.undo !== false) s.um = new Y.UndoManager(s.y, {trackedOrigins: new Set([local]), captureTimeout: o.captureTimeout ?? 500})\n slices.set(k, s)\n return s\n }\n // the slice's path-named root types join its undo scope inside the transaction that may create them\n const scope = (s: Slice) => {\n if (s.um) for (const [n, t] of doc.share) if (n.startsWith(s.key + '.')) s.um.addToScope(t as any)\n }\n const write = (s: Slice, prev: any, next: any, origin: any) =>\n doc.transact(() => { writeMap(s.y, prev, next, opts, s.key, s.shape); scope(s) }, origin)\n // the document's content as a REMOTE action, unless the app already has it (or has it on its way)\n const emit = (s: Slice, undo = false) => {\n // the mirror takes the app's objects wherever they are equal (Collection items keep their identity)\n if (s.mirror !== s.sent) s.mirror = reconcile(s.last, s.mirror)\n const value = s.mirror\n if (value === s.last || value === s.sent && s.sentBase === s.last) return\n s.sent = value; s.sentBase = s.last; s.emitted.add(value)\n for (const l of s.out) l.next(undo ? {value, base: s.last, undo} : {value, base: s.last})\n }\n // bind the slice to the document: seed an empty one from the app's value, or else take its\n // content (with the app's edits since its first value written onto it)\n const start = (s: Slice) => {\n s.started = true\n const v = s.last\n if (s.y.size == 0) write(s, {}, v, seed)\n else if (v !== s.first) write(s, s.first, v, local)\n s.mirror = read(s.y, s.key)\n emit(s)\n }\n\n /*\n * state[key]'s value: from `key.LOCAL` (coalesced per flush) and from every `key.REMOTE` (its\n * driver sink sends the state the REMOTE reducer committed: the REMOTE value when it applied,\n * else the app's own newer value). So the driver always diffs from a value the app really had.\n */\n const onLocal = (c: any) => {\n onValue(c)\n // history() (sygnal/canvas): one undo step per commit, however long the gesture took\n if (c.step === undefined) return\n const s = slice(c.key)\n if (s.um) s.um.captureTimeout = Infinity\n if (c.step !== s.step) { if (s.step !== undefined) s.um?.stopCapturing(); s.step = c.step }\n }\n const onValue = (c: any) => {\n const s = slice(c.key), v = c.value\n if (v === undefined) return\n if (!s.started) {\n if (s.first === undefined) { s.first = v; s.shape = normShape(c.shape); s.seed = c.seed || 'whenSynced' }\n s.last = v\n if (synced || s.seed == 'ifEmpty') start(s)\n return\n }\n // the app took a REMOTE value (or nothing changed): any newer document content follows\n if (v === s.last || s.emitted.has(v)) {\n // REMOTE actions run in order: the ones sent before this one were answered already\n if (v !== s.last) for (const e of s.emitted) { s.emitted.delete(e); if (e === v) break }\n s.last = v\n return emit(s)\n }\n write(s, s.last, v, local)\n s.last = v\n s.emitted.clear()\n emit(s)\n }\n\n sink$.addListener({\n next: (c: any) => {\n if (!c) return\n if ('value' in c && c.key) onLocal(c)\n if (c.undo) slice(c.undo).um?.undo()\n if (c.redo) slice(c.redo).um?.redo()\n if (c.presence && awareness) awareness.setLocalState({...awareness.getLocalState(), ...c.presence})\n if (typeof c.connect == 'boolean') c.connect ? provider?.connect?.() : provider?.disconnect?.()\n },\n error: () => {},\n complete: () => {\n doc.off('afterTransaction', onTransaction)\n for (const s of slices.values()) s.um?.destroy()\n },\n })\n const others = () => [...awareness.getStates()].filter(([id]) => id !== awareness.clientID).map(([id, st]: any) => ({id, ...st}))\n return {\n /** remote content for state[key], as { value, base } */\n remote: (k: string) => {\n let l: any\n return xs.create({start: (x: any) => { slice(k).out.add(l = x) }, stop: () => { slice(k).out.delete(l) }})\n },\n /** the other clients' presence states, on every awareness change */\n presence: () => {\n if (!awareness) return xs.empty()\n let f: any\n return xs.create({\n start: (l: any) => { f = () => l.next(others()); f(); awareness.on('change', f) },\n stop: () => { awareness.off('change', f) },\n })\n },\n /** { canUndo, canRedo } for state[key]'s per-user history */\n history: (k: string) => {\n let f: any\n const um = () => slice(k).um, ev = ['stack-item-added', 'stack-item-popped', 'stack-cleared']\n return xs.create({\n start: (l: any) => {\n const u = um()\n f = () => l.next({canUndo: !!u?.canUndo(), canRedo: !!u?.canRedo()})\n f(); for (const e of ev) u?.on(e as any, f)\n },\n stop: () => { for (const e of ev) um()?.off(e as any, f) },\n })\n },\n doc,\n }\n}\n","/*\n * 'sygnal/yjs' (research: dev-plans/research/crdt-state): shared(), the behavior that binds one\n * top-level state key to the Yjs driver's document.\n *\n * Board.uses = { board: shared({ presence: 'peers', history: 'history' }) } // state.board is shared\n * Board.model = {\n * ADD: (state, item) => ({ ...state, board: { ...state.board, items: [...state.board.items, item] } }),\n * UNDO: { SHARED: { undo: 'board' } }, // this user's changes only\n * HERE: { SHARED: (_, id) => ({ presence: { editing: id } }) },\n * }\n *\n * The model stays the only writer of state:\n * - `board.LOCAL`: every new value of state.board reaches the driver as data, once per flush (the\n * values of one flush coalesce: a burst of actions is one Yjs transaction).\n * - `board.REMOTE` ({ value, base }): a document change from elsewhere; it applies only while\n * state.board is still `base` (no unsynced local edit is overwritten), and its driver sink tells\n * the driver the state it committed either way.\n * - `board.PRESENCE` / `board.HISTORY` with `presence: 'peers'` / `history: 'history'`: the other\n * clients' awareness states and { canUndo, canRedo } in those state keys.\n * LOCAL and REMOTE are marked as built-in actions (`Symbol.for('sygnal.builtIn')` on their\n * handlers): the action log calls them 'built-in', so DevTools hides them with INITIALIZE (Q5).\n *\n * `ownsState: false`: the host's initialState keeps state[key] (the first value seeds an empty\n * document); the behavior adds no slice of its own, and sygnal-check's SYG127 reads the marker.\n * `undo()` on the same key reverts other users' changes: SYG260 (dev) points to `{ SHARED: { undo } }`.\n *\n * sygnal/canvas's `history(key)` routes here (maintainer decision 7, one API): model entries that\n * are its `undo` / `redo` become `{ [driver]: { undo: key } }` / `{ redo: key }`, its `commit`\n * bumps `state[step]` instead of keeping snapshots, and the LOCAL command carries that step, so the\n * driver closes this user's undo step at each commit (one step per gesture). `after` runs on the\n * state an undo / redo brings back. The marker is `Symbol.for('sygnal.history')`: no import.\n */\nimport {xs, ABORT} from '../index'\n\nexport interface SharedOptions {\n /** the driver's name (default 'SHARED') */\n driver?: string\n /** the state key that gets the other clients' presence states */\n presence?: string\n /** the state key that gets { canUndo, canRedo } of this client's history */\n history?: string\n /** the slice's shape; inferred where it says nothing */\n shape?: any\n /** 'whenSynced' (default): seed an empty document after the provider's first sync; 'ifEmpty': at once */\n seed?: 'whenSynced' | 'ifEmpty'\n}\n\nconst BUILT_IN = Symbol.for('sygnal.builtIn')\nconst HISTORY = Symbol.for('sygnal.history')\nconst builtIn = <F>(f: F): F => ((f as any)[BUILT_IN] = true, f)\n\n// SYG260: an undo() behavior of the host whose `key` is this shared key (reported once per use)\nconst reported = new WeakSet<object>()\nconst checkUndo = (c: any, k: string) => {\n const d = (globalThis as any).__SYGNAL_DIAGNOSTICS__, u = c.view?.uses\n if (!d || !u) return\n for (const n in u) {\n const b = u[n], key = b?.options?.key\n if (!b?.model?.UNDO || !b.model.REDO || !(key === k || Array.isArray(key) && key.includes(k)) || reported.has(b)) continue\n reported.add(b)\n try {\n d.report('SYG260', {\n severity: 'warn', component: c, data: {key: k, uses: n},\n message: `undo() (uses key '${n}') records '${k}', which shared() syncs: its UNDO restores a snapshot of the whole slice and reverts other users' changes made since`,\n fix: `Remove undo() for '${k}' and use the driver's per-user undo: UNDO: { SHARED: { undo: '${k}' } }, REDO: { SHARED: { redo: '${k}' } }, with shared({ history: 'history' }) for canUndo / canRedo`,\n })\n } catch (e) { queueMicrotask(() => { throw e }) }\n }\n}\n\n/** `uses = { [key]: shared(options) }`: state[key] lives in the Yjs driver's document */\nexport const shared = (opts: SharedOptions = {}) => ({\n options: opts,\n ownsState: false as const,\n merge(c: any, k: string) {\n const D = opts.driver || 'SHARED', S = c.stateSourceName || 'STATE', model = c.model = {...c.model}\n const {shape, seed} = opts\n checkUndo(c, k)\n // sygnal/canvas history(k): its undo / redo entries go to this user's UndoManager\n let hist: any = null\n for (const name in model) {\n const e = model[name], f = typeof e == 'function' ? e : e?.[S], h = f?.[HISTORY]\n if (!h || h.field !== k) continue\n hist = h\n const cmd = f === h.undo ? {undo: k} : {redo: k}, rest = typeof e == 'function' ? {} : {...e}\n delete rest[S]\n model[name] = {...rest, [D]: () => cmd}\n }\n if (hist) hist.shared = {history: opts.history}\n const step = hist?.step\n // the committed slice when the action runs (not the action's data: a REMOTE queued before it may have moved it on)\n model[k + '.LOCAL'] = {[D]: builtIn((s: any) => step ? {key: k, value: s?.[k], shape, seed, step: s?.[step] ?? 0} : {key: k, value: s?.[k], shape, seed})}\n model[k + '.REMOTE'] = {\n [S]: builtIn((s: any, d: any) => s?.[k] !== d.base ? ABORT : d.undo && hist ? hist.after({...s, [k]: d.value}) : {...s, [k]: d.value}),\n // the state the REMOTE committed (its value, or the app's own newer one) is the driver's new base\n [D]: builtIn((s: any) => ({key: k, value: s?.[k]})),\n }\n if (opts.presence) model[k + '.PRESENCE'] = {[S]: (s: any, peers: any) => ({...s, [opts.presence!]: peers})}\n if (opts.history) model[k + '.HISTORY'] = {[S]: (s: any, h: any) => ({...s, [opts.history!]: h})}\n const own = c.intent, owned = c._behaviorActions ||= {}\n for (const a of ['LOCAL', 'REMOTE', 'PRESENCE', 'HISTORY']) owned[k + '.' + a] = k\n c.intent = (so: any) => {\n // no Yjs driver (renderComponent without one: a fake source): the reducers still run\n const h = own?.(so) || {}, st = so[S], src = typeof so[D]?.remote == 'function' ? so[D] : null\n // state[key]'s latest value once per flush (a microtask after the first change of a burst)\n let prev: any, latest: any, queued = false, sub: any, prevStep: any, latestStep: any\n const local$ = xs.create({\n start: (l: any) => {\n sub = st.stream.subscribe({\n next: (s: any) => {\n latest = s?.[k]\n if (step) latestStep = s?.[step]\n if (queued) return\n queued = true\n queueMicrotask(() => {\n queued = false\n if (sub && latest !== undefined && (latest !== prev || latestStep !== prevStep)) prevStep = latestStep, l.next(prev = latest)\n })\n },\n error: () => {}, complete: () => {},\n })\n },\n stop: () => { sub?.unsubscribe(); sub = undefined },\n })\n const o: any = {\n [k + '.LOCAL']: local$,\n [k + '.REMOTE']: src ? src.remote(k) : xs.never(),\n ...(opts.presence && {[k + '.PRESENCE']: src ? src.presence() : xs.never()}),\n ...(opts.history && {[k + '.HISTORY']: src ? src.history(k) : xs.never()}),\n // the host's own actions (and renderComponent's simulateAction streams) win\n ...h,\n }\n // renderComponent's marker (non-enumerable) for a behavior merged after this one\n if (h.__sygnalTestActions) Object.defineProperty(o, '__sygnalTestActions', {value: h.__sygnalTestActions})\n return o\n }\n },\n})\n"],"names":[],"mappings":"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"}
|
package/dist/zag.cjs.js
CHANGED
|
@@ -347,6 +347,11 @@ function start(zag, render, o, el, p0, dispatch, error, w) {
|
|
|
347
347
|
stop: () => {
|
|
348
348
|
const was = on;
|
|
349
349
|
on = 0;
|
|
350
|
+
// a part's own machines and listeners (Menu's submenus)
|
|
351
|
+
try {
|
|
352
|
+
x.off?.();
|
|
353
|
+
}
|
|
354
|
+
catch (_) { }
|
|
350
355
|
try {
|
|
351
356
|
was && m.stop();
|
|
352
357
|
}
|
|
@@ -354,6 +359,9 @@ function start(zag, render, o, el, p0, dispatch, error, w) {
|
|
|
354
359
|
free();
|
|
355
360
|
}
|
|
356
361
|
},
|
|
362
|
+
// for a part's own machines (Menu's submenus): a redraw when they change, and the normaliser
|
|
363
|
+
draw,
|
|
364
|
+
normalize,
|
|
357
365
|
});
|
|
358
366
|
m.subscribe(draw);
|
|
359
367
|
draw();
|
|
@@ -376,7 +384,7 @@ function start(zag, render, o, el, p0, dispatch, error, w) {
|
|
|
376
384
|
* renders its parts with the prop getters spread (`<button {...api.getTriggerProps()}>`).
|
|
377
385
|
* Options: `events` (dispatched name → Zag callback, or [callback, details → detail]), `props`
|
|
378
386
|
* ((widgetProps, x) → machine props), `commands` ((api, options, x) → …), and defineWidget's
|
|
379
|
-
* `tag`, `name`, `fallback`, `hostProps`, `ownProps
|
|
387
|
+
* `tag`, `name`, `fallback`, `hostProps`, `ownProps`, `field` (`read(x, host)`).
|
|
380
388
|
*/
|
|
381
389
|
function fromZag(zag, render, options = {}) {
|
|
382
390
|
if (!zag || !zag.machine || typeof zag.connect != 'function')
|
|
@@ -393,6 +401,8 @@ function fromZag(zag, render, options = {}) {
|
|
|
393
401
|
fallback: o.fallback,
|
|
394
402
|
hostProps: o.hostProps,
|
|
395
403
|
ownProps: o.ownProps,
|
|
404
|
+
// the widget field contract (extra/field.ts): `field: { event, read }`, read gets the instance
|
|
405
|
+
field: o.field,
|
|
396
406
|
// D211: a first-party part (sygnal/ui/menu…): its event names are documented, no SYG144
|
|
397
407
|
$own: o.$own,
|
|
398
408
|
events: Object.keys(o.events || {}),
|
package/dist/zag.cjs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zag.cjs.js","sources":["../src/cycle/dom/styleModule.ts","../src/zag.ts"],"sourcesContent":["/**\n * Local copy of snabbdom's styleModule with a fixed `window` guard.\n *\n * snabbdom 3.6.3 introduced a regression where the top-level `raf` assignment\n * evaluates `window` directly (via `window === null || window === void 0`)\n * before the `typeof` check, causing a ReferenceError in Node.js environments.\n *\n * This copy restores the safe `typeof window !== \"undefined\"` guard while\n * keeping all other 3.6.x improvements (arrow functions, `in` operator for\n * style removal checks, etc.).\n */\n\nimport {Module} from './snabbdom';\n\ntype VNode = { elm?: any; data?: any };\n\n// Safe guard: `typeof window` never throws, even if `window` is undeclared.\nconst raf =\n (typeof window !== 'undefined' &&\n typeof window.requestAnimationFrame === 'function' &&\n window.requestAnimationFrame.bind(window)) ||\n setTimeout;\n\nconst nextFrame = (fn: () => void) => {\n raf(() => {\n raf(fn);\n });\n};\n\nlet reflowForced = false;\n\nfunction setNextFrame(obj: any, prop: string, val: string) {\n nextFrame(() => {\n obj[prop] = val;\n });\n}\n\nfunction updateStyle(oldVnode: VNode, vnode: VNode) {\n let cur: any;\n let name: string;\n const elm = vnode.elm as HTMLElement;\n let oldStyle = (oldVnode.data as any).style as Record<string, any> | undefined;\n let style = (vnode.data as any).style as Record<string, any> | undefined;\n if (!oldStyle && !style) return;\n if (oldStyle === style) return;\n oldStyle = oldStyle || {};\n style = style || {};\n const oldHasDel = 'delayed' in oldStyle;\n for (name in oldStyle) {\n if (!(name in style)) {\n if (name[0] === '-' && name[1] === '-') {\n elm.style.removeProperty(name);\n } else {\n (elm.style as any)[name] = '';\n }\n }\n }\n for (name in style) {\n cur = style[name];\n if (name === 'delayed' && style.delayed) {\n for (const name2 in style.delayed) {\n cur = style.delayed[name2];\n if (!oldHasDel || cur !== (oldStyle as any).delayed[name2]) {\n setNextFrame(elm.style, name2, cur);\n }\n }\n } else if (name !== 'remove' && cur !== (oldStyle as any)[name]) {\n if (name[0] === '-' && name[1] === '-') {\n elm.style.setProperty(name, cur);\n } else {\n (elm.style as any)[name] = cur;\n }\n }\n }\n}\n\nfunction applyDestroyStyle(vnode: VNode) {\n let style: Record<string, string>;\n let name: string;\n const elm = vnode.elm as HTMLElement;\n const s = (vnode.data as any).style;\n if (!s || !(style = s.destroy)) return;\n for (name in style) {\n (elm.style as any)[name] = style[name];\n }\n}\n\nfunction applyRemoveStyle(vnode: VNode, rm: () => void) {\n const s = (vnode.data as any).style;\n if (!s || !s.remove) {\n rm();\n return;\n }\n if (!reflowForced) {\n // Force reflow so transition styles apply immediately\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n (vnode.elm as HTMLElement).offsetLeft;\n reflowForced = true;\n }\n let name: string;\n const elm = vnode.elm as HTMLElement;\n let i = 0;\n const style = s.remove;\n let amount = 0;\n const applied: string[] = [];\n for (name in style) {\n applied.push(name);\n (elm.style as any)[name] = style[name];\n }\n const compStyle = getComputedStyle(elm);\n const props = (compStyle as any)['transition-property'].split(', ');\n for (; i < props.length; ++i) {\n if (applied.indexOf(props[i]) !== -1) amount++;\n }\n elm.addEventListener('transitionend', (ev: TransitionEvent) => {\n if (ev.target === elm) --amount;\n if (amount === 0) rm();\n });\n}\n\nfunction forceReflow() {\n reflowForced = false;\n}\n\nexport const styleModule: Module = {\n pre: forceReflow,\n create: updateStyle,\n update: updateStyle,\n destroy: applyDestroyStyle,\n remove: applyRemoveStyle,\n};\n","/*\n * 'sygnal/zag' (PLAN-5 W-2, D203): `fromZag(zag, render, options)`, a Zag.js machine as a widget\n * tag (defineWidget). Generalises experiment E3.\n *\n * import * as menu from '@zag-js/menu'\n * export const Actions = fromZag(menu, (api, props) => (\n * <div>\n * <button {...api.getTriggerProps()}>{props.label}</button>\n * <div {...api.getPositionerProps()}>\n * <div {...api.getContentProps()}>\n * {props.items.map((i) => <div {...api.getItemProps({ value: i.value })}>{i.label}</div>)}\n * </div>\n * </div>\n * </div>\n * ), { events: { select: ['onSelect', (d) => d.value] }, commands: { open: (api) => api.setOpen(true) } })\n * // view: <Actions className=\"actions\" label=\"Actions\" items={ITEMS} />\n * // intent: PICK: DOM.select('.actions').events('select').detail()\n *\n * - The machine runs on @zag-js/vanilla's VanillaMachine (an optional peer, pinned ~1.45.0 with\n * the machine packages: Zag's packages depend on each other's exact versions). One per host.\n * - Props: the machine's props are a getter over the newest widget props (`options.props(p, x)`\n * maps them; by default they pass as they are), memoised per render and per `x.refresh()`. A\n * render with other props sets them and notifies the machine, so its watchers see controlled\n * props (`open`, `value`) change. No props are captured at mount (E3's stale-props bug).\n * VanillaMachine.updateProps is not used: it merges into the previous props (a removed prop\n * stays) and wraps the previous getter on every call.\n * - Zag's prop getters are normalised for snabbdom (`zagProps`): `{ attrs, on, props, style }`,\n * which a JSX spread routes to those modules. `render(api, props, x)` returns one vnode (an\n * array is wrapped in a `display: contents` div), patched into the host by a private snabbdom\n * patch (the host is opaque to the app's patch). It re-runs when the machine notifies and when\n * the props change.\n * - Machine callbacks become dispatched DOM events on the host: `events: { name: 'onX' }` (detail:\n * Zag's details object) or `{ name: ['onX', (details, x) => detail] }`; `{ name: null }` only\n * declares it (a callback from the props mapping dispatches it with `x.dispatch`). A callback\n * the props mapping also returns runs first.\n * - Commands: `commands: { open: (api, options, x) => api.setOpen(true) }` (D102 element commands).\n * - The instance (`t.widget(sel).instance` with `dom: 'real'`) is `x`: `{ el, api(), machine,\n * refresh() }` plus whatever the part keeps on it.\n * - Errors (G-409): a render that throws while the widget mounts stops the machine and is SYG660;\n * on a later, machine-driven redraw it stops the machine and goes to the widget's error path\n * (mount's `error`): SYG661 and the owner's onError fallback in its place. Either way the\n * rendered content is released (refs nulled, destroy hooks, listeners off; G-438).\n * - The render is plain elements only (G-410): it is patched outside the component tree, so a\n * Sygnal component, a widget tag or special JSX inside it can't run (SYG669 in dev).\n * - Wrong arguments throw SYG667 when the widget is defined.\n *\n * Separate entry: rollup turns './index' into the external 'sygnal' and keeps snabbdom and\n * @zag-js/* external (D209), so importing 'sygnal' or 'sygnal/ui' never needs Zag.\n */\nimport {VanillaMachine} from '@zag-js/vanilla'\nimport {init} from 'snabbdom/build/init.js'\nimport {h} from 'snabbdom/build/h.js'\nimport {classModule} from 'snabbdom/build/modules/class.js'\nimport {propsModule} from 'snabbdom/build/modules/props.js'\nimport {attributesModule} from 'snabbdom/build/modules/attributes.js'\nimport {datasetModule} from 'snabbdom/build/modules/dataset.js'\nimport {eventListenersModule} from 'snabbdom/build/modules/eventlisteners.js'\nimport {styleModule} from './cycle/dom/styleModule'\nimport {defineWidget} from './index'\n\nconst patch = init([classModule, propsModule, attributesModule, datasetModule, styleModule, eventListenersModule])\n\n// React-style event props whose DOM event has another name (as @zag-js/vanilla's normalizeProps)\nconst EV: any = {Focus: 'focusin', Blur: 'focusout', Change: 'input', DoubleClick: 'dblclick'}\nconst NAME: any = {htmlFor: 'for', className: 'class'}\n// enumerated attributes whose false must be written, not removed\nconst STR = /^(aria-|spellcheck$|draggable$|contenteditable$)/i\n\n/**\n * One Zag prop bag (`api.getTriggerProps()` with any normaliser, or raw) as snabbdom data\n * `{ attrs, on, props, style }`: `onX` handlers to `on` (onChange → input, onFocus → focusin, …),\n * `value` / `checked` (and their `default…`) to `props`, `style`, and the rest to `attrs` (names\n * lowercased, htmlFor → for; an ARIA boolean as \"true\" / \"false\"; false removes the attribute).\n */\nexport const zagProps = (bag: any): any => {\n const attrs: any = {}, on: any = {}, props: any = {}, style: any = {}\n for (const k in bag) {\n const v = bag[k]\n if (v === undefined) continue\n if (typeof v == 'function' && /^on[A-Z]/.test(k)) on[EV[k.slice(2)] || k.slice(2).toLowerCase()] = v\n else if (k == 'style') Object.assign(style, v)\n else if (/^(default)?(value|checked|Value|Checked)$/.test(k)) props[k.replace(/^default(.)/, (_, c) => c.toLowerCase())] = v\n else attrs[NAME[k] || (/^(viewBox|preserveAspectRatio)$/.test(k) ? k : k.toLowerCase())] = typeof v == 'boolean' && STR.test(k) ? '' + v : v\n }\n return {attrs, on, props, style}\n}\n\n// Zag's normaliser shape (@zag-js/types createNormalizer): every element kind maps through zagProps\nconst normalize: any = new Proxy({}, {get: (_, k) => (k == 'style' ? (s: any) => ({...s}) : zagProps)})\n\nconst fail = (m: string): never => {\n throw new Error(`[Sygnal SYG667] ${m}. https://sygnal.js.org/reference/errors#syg667`)\n}\n\nlet ids = 0\n\n// snabbdom's destroy pass over a rendered tree, without removing it from the DOM (G-412)\nconst release = (v: any) => {\n const d = v?.data\n if (d) { d.hook?.destroy?.(v); (eventListenersModule.destroy as any)(v) }\n v?.children?.forEach(release)\n}\n\n// G-410 (dev only): what a render must not contain: a component (data.c), a widget tag, special JSX.\n// G-439 / G-470: a marker is a vnode the pragma made from a marker function (`data.m`), with or\n// without props (`<Suspense>`, `h(Transition, null)`, `<Slot>`); a plain <slot> element is not,\n// whatever its children\nconst SPECIAL: any = {transition: 'Transition', portal: 'Portal', collection: 'Collection', switchable: 'Switchable',\n suspense: 'Suspense', clientonly: 'ClientOnly', 'virtual-collection': 'VirtualCollection', slot: 'Slot'}\nconst foreign = (v: any, out: string[]): string[] => {\n if (!v || typeof v != 'object') return out\n if (Array.isArray(v)) { v.forEach(c => foreign(c, out)); return out }\n const d = v.data\n let t = d?.c ? v.sel : v.sel == 'widget' && d?.ww ? d.ww.def.name || 'widget' : d?.m && SPECIAL[v.sel]\n if (t) out.includes(t = '<' + t + '>') || out.push(t)\n return foreign(v.children, out)\n}\n\nfunction start(zag: any, render: any, o: any, el: any, p0: any, dispatch: any, error: any, w: any): any {\n // live: 0 while start() runs (a throwing draw throws: SYG660), then 1 (it goes to error: SYG661)\n // f669: this instance's render had foreign content (G-470: per instance, not on the widget tag,\n // so another app or test, or diagnostics turned on later, still gets its report)\n let props = p0, memo: any, on = 1, busy = 0, again = 0, live = 0, f669 = 0\n let vn: any = el.appendChild(document.createElement('div'))\n const id = p0.id ?? 'sygnal-zag-' + ++ids\n // the instance (the part's per-instance fields too); the props mapping gets it from the start\n const x: any = {el, dispatch}\n // the events' callbacks: dispatch on the host\n const cbs: any = {}\n for (const name in o.events) {\n const [cb, map] = ([] as any[]).concat(o.events[name])\n // null: declared only (the part dispatches it with x.dispatch)\n if (!cb) continue\n const prev = cbs[cb]\n cbs[cb] = (d: any) => { prev?.(d); dispatch(name, map ? map(d, x) : d) }\n }\n // the machine's props: the newest widget props, mapped (memoised until the next render or refresh)\n const machineProps = () => {\n if (memo) return memo\n const mp = o.props ? o.props(props, x) : props\n const out: any = {...mp, id, getRootNode: () => (el.isConnected ? el.getRootNode() : document)}\n for (const cb in cbs) {\n const u = mp[cb]\n out[cb] = u ? (d: any) => { u(d); cbs[cb](d) } : cbs[cb]\n }\n return (memo = out)\n }\n // notify(): a public field of VanillaMachine (typed private), the one way to re-run its watchers\n // without updateProps (Zag pinned ~1.45.0; the tests cover it)\n const m: any = new VanillaMachine(zag.machine, machineProps)\n const api = () => zag.connect(m.service, normalize)\n const draw = () => {\n if (!on) return\n if (busy) return void (again = 1)\n busy = 1\n try {\n do {\n again = 0\n const out = render(api(), props, x)\n // G-439: once found, this instance's render isn't walked again (the report is once per\n // widget tag: checks/widgets.ts)\n const dev = (globalThis as any).__SYGNAL_DIAGNOSTICS__?.widget\n if (dev && !f669) { const f = foreign(out, []); f.length && (f669 = 1, dev(669, w(), undefined, f)) }\n vn = patch(vn, Array.isArray(out) ? h('div', {style: {display: 'contents'}}, out) : out || h('!', ''))\n } while (again && on)\n } catch (e) {\n // G-409: the machine stops; a machine-driven redraw (an event handler, a watcher) hands the\n // error to the widget (SYG661 + the owner's onError fallback) instead of throwing into Zag\n halt()\n // G-438: a failed mount has no unmount: its content is released here\n if (!live) { free(); throw e }\n error(e)\n } finally { busy = 0 }\n }\n const halt = () => {\n if (!on) return\n on = 0\n try { m.stop() } catch (_) {}\n }\n // G-412: the content stays (a <Transition> leave animates the host with it); its destroy hooks\n // run (refs in the render) and its listeners come off, as a patch to nothing would do. Once,\n // and only for a rendered vnode (before the first draw, vn is the placeholder element). G-472:\n // vn is cleared first, so a destroy hook that stops the widget (or throws) doesn't release twice\n const free = () => {\n const v = vn\n vn = 0\n if (v?.sel !== undefined) release(v)\n }\n Object.assign(x, {\n machine: m,\n api,\n refresh: () => { memo = 0; m.notify() },\n set: (p: any) => { props = p; x.refresh() },\n // G-438: after a halt (G-409) the machine is already stopped, and the content is still released\n stop: () => {\n const was = on\n on = 0\n try { was && m.stop() } finally { free() }\n },\n })\n m.subscribe(draw)\n draw()\n // G-409: a start() or second draw that throws leaves no running machine (then SYG660)\n try { m.start() } catch (e) { halt(); free(); throw e }\n draw()\n live = 1\n return x\n}\n\n/**\n * A Zag machine as a widget tag: `fromZag(zag, render, options)` where `zag` is a machine package\n * (`import * as menu from '@zag-js/menu'`: its `machine` and `connect`), `render(api, props, x)`\n * renders its parts with the prop getters spread (`<button {...api.getTriggerProps()}>`).\n * Options: `events` (dispatched name → Zag callback, or [callback, details → detail]), `props`\n * ((widgetProps, x) → machine props), `commands` ((api, options, x) → …), and defineWidget's\n * `tag`, `name`, `fallback`, `hostProps`, `ownProps`.\n */\nexport function fromZag(zag: any, render: any, options: any = {}): any {\n if (!zag || !zag.machine || typeof zag.connect != 'function') fail('fromZag(zag, render): the first argument is not a Zag machine package (import * as menu from \\'@zag-js/menu\\')')\n if (typeof render != 'function') fail('fromZag(zag, render): render must be a function (api, props) => vnode')\n const o = options, commands: any = {}\n let tag: any\n for (const c in o.commands) commands[c] = (x: any, opt: any) => o.commands[c](x.api(), opt, x)\n return tag = defineWidget({\n tag: o.tag,\n name: o.name,\n fallback: o.fallback,\n hostProps: o.hostProps,\n ownProps: o.ownProps,\n // D211: a first-party part (sygnal/ui/menu…): its event names are documented, no SYG144\n $own: o.$own,\n events: Object.keys(o.events || {}),\n commands,\n mount: (el: any, p: any, dispatch: any, error: any) => start(zag, render, o, el, p, dispatch, error, () => tag),\n update: (x: any, p: any) => x.set(p),\n unmount: (x: any) => x.stop(),\n })\n}\n"],"names":["init","classModule","propsModule","attributesModule","datasetModule","eventListenersModule","VanillaMachine","h","defineWidget"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"zag.cjs.js","sources":["../src/cycle/dom/styleModule.ts","../src/zag.ts"],"sourcesContent":["/**\n * Local copy of snabbdom's styleModule with a fixed `window` guard.\n *\n * snabbdom 3.6.3 introduced a regression where the top-level `raf` assignment\n * evaluates `window` directly (via `window === null || window === void 0`)\n * before the `typeof` check, causing a ReferenceError in Node.js environments.\n *\n * This copy restores the safe `typeof window !== \"undefined\"` guard while\n * keeping all other 3.6.x improvements (arrow functions, `in` operator for\n * style removal checks, etc.).\n */\n\nimport {Module} from './snabbdom';\n\ntype VNode = { elm?: any; data?: any };\n\n// Safe guard: `typeof window` never throws, even if `window` is undeclared.\nconst raf =\n (typeof window !== 'undefined' &&\n typeof window.requestAnimationFrame === 'function' &&\n window.requestAnimationFrame.bind(window)) ||\n setTimeout;\n\nconst nextFrame = (fn: () => void) => {\n raf(() => {\n raf(fn);\n });\n};\n\nlet reflowForced = false;\n\nfunction setNextFrame(obj: any, prop: string, val: string) {\n nextFrame(() => {\n obj[prop] = val;\n });\n}\n\nfunction updateStyle(oldVnode: VNode, vnode: VNode) {\n let cur: any;\n let name: string;\n const elm = vnode.elm as HTMLElement;\n let oldStyle = (oldVnode.data as any).style as Record<string, any> | undefined;\n let style = (vnode.data as any).style as Record<string, any> | undefined;\n if (!oldStyle && !style) return;\n if (oldStyle === style) return;\n oldStyle = oldStyle || {};\n style = style || {};\n const oldHasDel = 'delayed' in oldStyle;\n for (name in oldStyle) {\n if (!(name in style)) {\n if (name[0] === '-' && name[1] === '-') {\n elm.style.removeProperty(name);\n } else {\n (elm.style as any)[name] = '';\n }\n }\n }\n for (name in style) {\n cur = style[name];\n if (name === 'delayed' && style.delayed) {\n for (const name2 in style.delayed) {\n cur = style.delayed[name2];\n if (!oldHasDel || cur !== (oldStyle as any).delayed[name2]) {\n setNextFrame(elm.style, name2, cur);\n }\n }\n } else if (name !== 'remove' && cur !== (oldStyle as any)[name]) {\n if (name[0] === '-' && name[1] === '-') {\n elm.style.setProperty(name, cur);\n } else {\n (elm.style as any)[name] = cur;\n }\n }\n }\n}\n\nfunction applyDestroyStyle(vnode: VNode) {\n let style: Record<string, string>;\n let name: string;\n const elm = vnode.elm as HTMLElement;\n const s = (vnode.data as any).style;\n if (!s || !(style = s.destroy)) return;\n for (name in style) {\n (elm.style as any)[name] = style[name];\n }\n}\n\nfunction applyRemoveStyle(vnode: VNode, rm: () => void) {\n const s = (vnode.data as any).style;\n if (!s || !s.remove) {\n rm();\n return;\n }\n if (!reflowForced) {\n // Force reflow so transition styles apply immediately\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n (vnode.elm as HTMLElement).offsetLeft;\n reflowForced = true;\n }\n let name: string;\n const elm = vnode.elm as HTMLElement;\n let i = 0;\n const style = s.remove;\n let amount = 0;\n const applied: string[] = [];\n for (name in style) {\n applied.push(name);\n (elm.style as any)[name] = style[name];\n }\n const compStyle = getComputedStyle(elm);\n const props = (compStyle as any)['transition-property'].split(', ');\n for (; i < props.length; ++i) {\n if (applied.indexOf(props[i]) !== -1) amount++;\n }\n elm.addEventListener('transitionend', (ev: TransitionEvent) => {\n if (ev.target === elm) --amount;\n if (amount === 0) rm();\n });\n}\n\nfunction forceReflow() {\n reflowForced = false;\n}\n\nexport const styleModule: Module = {\n pre: forceReflow,\n create: updateStyle,\n update: updateStyle,\n destroy: applyDestroyStyle,\n remove: applyRemoveStyle,\n};\n","/*\n * 'sygnal/zag' (PLAN-5 W-2, D203): `fromZag(zag, render, options)`, a Zag.js machine as a widget\n * tag (defineWidget). Generalises experiment E3.\n *\n * import * as menu from '@zag-js/menu'\n * export const Actions = fromZag(menu, (api, props) => (\n * <div>\n * <button {...api.getTriggerProps()}>{props.label}</button>\n * <div {...api.getPositionerProps()}>\n * <div {...api.getContentProps()}>\n * {props.items.map((i) => <div {...api.getItemProps({ value: i.value })}>{i.label}</div>)}\n * </div>\n * </div>\n * </div>\n * ), { events: { select: ['onSelect', (d) => d.value] }, commands: { open: (api) => api.setOpen(true) } })\n * // view: <Actions className=\"actions\" label=\"Actions\" items={ITEMS} />\n * // intent: PICK: DOM.select('.actions').events('select').detail()\n *\n * - The machine runs on @zag-js/vanilla's VanillaMachine (an optional peer, pinned ~1.45.0 with\n * the machine packages: Zag's packages depend on each other's exact versions). One per host.\n * - Props: the machine's props are a getter over the newest widget props (`options.props(p, x)`\n * maps them; by default they pass as they are), memoised per render and per `x.refresh()`. A\n * render with other props sets them and notifies the machine, so its watchers see controlled\n * props (`open`, `value`) change. No props are captured at mount (E3's stale-props bug).\n * VanillaMachine.updateProps is not used: it merges into the previous props (a removed prop\n * stays) and wraps the previous getter on every call.\n * - Zag's prop getters are normalised for snabbdom (`zagProps`): `{ attrs, on, props, style }`,\n * which a JSX spread routes to those modules. `render(api, props, x)` returns one vnode (an\n * array is wrapped in a `display: contents` div), patched into the host by a private snabbdom\n * patch (the host is opaque to the app's patch). It re-runs when the machine notifies and when\n * the props change.\n * - Machine callbacks become dispatched DOM events on the host: `events: { name: 'onX' }` (detail:\n * Zag's details object) or `{ name: ['onX', (details, x) => detail] }`; `{ name: null }` only\n * declares it (a callback from the props mapping dispatches it with `x.dispatch`). A callback\n * the props mapping also returns runs first.\n * - Commands: `commands: { open: (api, options, x) => api.setOpen(true) }` (D102 element commands).\n * - The instance (`t.widget(sel).instance` with `dom: 'real'`) is `x`: `{ el, api(), machine,\n * refresh() }` plus whatever the part keeps on it.\n * - Errors (G-409): a render that throws while the widget mounts stops the machine and is SYG660;\n * on a later, machine-driven redraw it stops the machine and goes to the widget's error path\n * (mount's `error`): SYG661 and the owner's onError fallback in its place. Either way the\n * rendered content is released (refs nulled, destroy hooks, listeners off; G-438).\n * - The render is plain elements only (G-410): it is patched outside the component tree, so a\n * Sygnal component, a widget tag or special JSX inside it can't run (SYG669 in dev).\n * - Wrong arguments throw SYG667 when the widget is defined.\n *\n * Separate entry: rollup turns './index' into the external 'sygnal' and keeps snabbdom and\n * @zag-js/* external (D209), so importing 'sygnal' or 'sygnal/ui' never needs Zag.\n */\nimport {VanillaMachine} from '@zag-js/vanilla'\nimport {init} from 'snabbdom/build/init.js'\nimport {h} from 'snabbdom/build/h.js'\nimport {classModule} from 'snabbdom/build/modules/class.js'\nimport {propsModule} from 'snabbdom/build/modules/props.js'\nimport {attributesModule} from 'snabbdom/build/modules/attributes.js'\nimport {datasetModule} from 'snabbdom/build/modules/dataset.js'\nimport {eventListenersModule} from 'snabbdom/build/modules/eventlisteners.js'\nimport {styleModule} from './cycle/dom/styleModule'\nimport {defineWidget} from './index'\n\nconst patch = init([classModule, propsModule, attributesModule, datasetModule, styleModule, eventListenersModule])\n\n// React-style event props whose DOM event has another name (as @zag-js/vanilla's normalizeProps)\nconst EV: any = {Focus: 'focusin', Blur: 'focusout', Change: 'input', DoubleClick: 'dblclick'}\nconst NAME: any = {htmlFor: 'for', className: 'class'}\n// enumerated attributes whose false must be written, not removed\nconst STR = /^(aria-|spellcheck$|draggable$|contenteditable$)/i\n\n/**\n * One Zag prop bag (`api.getTriggerProps()` with any normaliser, or raw) as snabbdom data\n * `{ attrs, on, props, style }`: `onX` handlers to `on` (onChange → input, onFocus → focusin, …),\n * `value` / `checked` (and their `default…`) to `props`, `style`, and the rest to `attrs` (names\n * lowercased, htmlFor → for; an ARIA boolean as \"true\" / \"false\"; false removes the attribute).\n */\nexport const zagProps = (bag: any): any => {\n const attrs: any = {}, on: any = {}, props: any = {}, style: any = {}\n for (const k in bag) {\n const v = bag[k]\n if (v === undefined) continue\n if (typeof v == 'function' && /^on[A-Z]/.test(k)) on[EV[k.slice(2)] || k.slice(2).toLowerCase()] = v\n else if (k == 'style') Object.assign(style, v)\n else if (/^(default)?(value|checked|Value|Checked)$/.test(k)) props[k.replace(/^default(.)/, (_, c) => c.toLowerCase())] = v\n else attrs[NAME[k] || (/^(viewBox|preserveAspectRatio)$/.test(k) ? k : k.toLowerCase())] = typeof v == 'boolean' && STR.test(k) ? '' + v : v\n }\n return {attrs, on, props, style}\n}\n\n// Zag's normaliser shape (@zag-js/types createNormalizer): every element kind maps through zagProps\nconst normalize: any = new Proxy({}, {get: (_, k) => (k == 'style' ? (s: any) => ({...s}) : zagProps)})\n\nconst fail = (m: string): never => {\n throw new Error(`[Sygnal SYG667] ${m}. https://sygnal.js.org/reference/errors#syg667`)\n}\n\nlet ids = 0\n\n// snabbdom's destroy pass over a rendered tree, without removing it from the DOM (G-412)\nconst release = (v: any) => {\n const d = v?.data\n if (d) { d.hook?.destroy?.(v); (eventListenersModule.destroy as any)(v) }\n v?.children?.forEach(release)\n}\n\n// G-410 (dev only): what a render must not contain: a component (data.c), a widget tag, special JSX.\n// G-439 / G-470: a marker is a vnode the pragma made from a marker function (`data.m`), with or\n// without props (`<Suspense>`, `h(Transition, null)`, `<Slot>`); a plain <slot> element is not,\n// whatever its children\nconst SPECIAL: any = {transition: 'Transition', portal: 'Portal', collection: 'Collection', switchable: 'Switchable',\n suspense: 'Suspense', clientonly: 'ClientOnly', 'virtual-collection': 'VirtualCollection', slot: 'Slot'}\nconst foreign = (v: any, out: string[]): string[] => {\n if (!v || typeof v != 'object') return out\n if (Array.isArray(v)) { v.forEach(c => foreign(c, out)); return out }\n const d = v.data\n let t = d?.c ? v.sel : v.sel == 'widget' && d?.ww ? d.ww.def.name || 'widget' : d?.m && SPECIAL[v.sel]\n if (t) out.includes(t = '<' + t + '>') || out.push(t)\n return foreign(v.children, out)\n}\n\nfunction start(zag: any, render: any, o: any, el: any, p0: any, dispatch: any, error: any, w: any): any {\n // live: 0 while start() runs (a throwing draw throws: SYG660), then 1 (it goes to error: SYG661)\n // f669: this instance's render had foreign content (G-470: per instance, not on the widget tag,\n // so another app or test, or diagnostics turned on later, still gets its report)\n let props = p0, memo: any, on = 1, busy = 0, again = 0, live = 0, f669 = 0\n let vn: any = el.appendChild(document.createElement('div'))\n const id = p0.id ?? 'sygnal-zag-' + ++ids\n // the instance (the part's per-instance fields too); the props mapping gets it from the start\n const x: any = {el, dispatch}\n // the events' callbacks: dispatch on the host\n const cbs: any = {}\n for (const name in o.events) {\n const [cb, map] = ([] as any[]).concat(o.events[name])\n // null: declared only (the part dispatches it with x.dispatch)\n if (!cb) continue\n const prev = cbs[cb]\n cbs[cb] = (d: any) => { prev?.(d); dispatch(name, map ? map(d, x) : d) }\n }\n // the machine's props: the newest widget props, mapped (memoised until the next render or refresh)\n const machineProps = () => {\n if (memo) return memo\n const mp = o.props ? o.props(props, x) : props\n const out: any = {...mp, id, getRootNode: () => (el.isConnected ? el.getRootNode() : document)}\n for (const cb in cbs) {\n const u = mp[cb]\n out[cb] = u ? (d: any) => { u(d); cbs[cb](d) } : cbs[cb]\n }\n return (memo = out)\n }\n // notify(): a public field of VanillaMachine (typed private), the one way to re-run its watchers\n // without updateProps (Zag pinned ~1.45.0; the tests cover it)\n const m: any = new VanillaMachine(zag.machine, machineProps)\n const api = () => zag.connect(m.service, normalize)\n const draw = () => {\n if (!on) return\n if (busy) return void (again = 1)\n busy = 1\n try {\n do {\n again = 0\n const out = render(api(), props, x)\n // G-439: once found, this instance's render isn't walked again (the report is once per\n // widget tag: checks/widgets.ts)\n const dev = (globalThis as any).__SYGNAL_DIAGNOSTICS__?.widget\n if (dev && !f669) { const f = foreign(out, []); f.length && (f669 = 1, dev(669, w(), undefined, f)) }\n vn = patch(vn, Array.isArray(out) ? h('div', {style: {display: 'contents'}}, out) : out || h('!', ''))\n } while (again && on)\n } catch (e) {\n // G-409: the machine stops; a machine-driven redraw (an event handler, a watcher) hands the\n // error to the widget (SYG661 + the owner's onError fallback) instead of throwing into Zag\n halt()\n // G-438: a failed mount has no unmount: its content is released here\n if (!live) { free(); throw e }\n error(e)\n } finally { busy = 0 }\n }\n const halt = () => {\n if (!on) return\n on = 0\n try { m.stop() } catch (_) {}\n }\n // G-412: the content stays (a <Transition> leave animates the host with it); its destroy hooks\n // run (refs in the render) and its listeners come off, as a patch to nothing would do. Once,\n // and only for a rendered vnode (before the first draw, vn is the placeholder element). G-472:\n // vn is cleared first, so a destroy hook that stops the widget (or throws) doesn't release twice\n const free = () => {\n const v = vn\n vn = 0\n if (v?.sel !== undefined) release(v)\n }\n Object.assign(x, {\n machine: m,\n api,\n refresh: () => { memo = 0; m.notify() },\n set: (p: any) => { props = p; x.refresh() },\n // G-438: after a halt (G-409) the machine is already stopped, and the content is still released\n stop: () => {\n const was = on\n on = 0\n // a part's own machines and listeners (Menu's submenus)\n try { x.off?.() } catch (_) {}\n try { was && m.stop() } finally { free() }\n },\n // for a part's own machines (Menu's submenus): a redraw when they change, and the normaliser\n draw,\n normalize,\n })\n m.subscribe(draw)\n draw()\n // G-409: a start() or second draw that throws leaves no running machine (then SYG660)\n try { m.start() } catch (e) { halt(); free(); throw e }\n draw()\n live = 1\n return x\n}\n\n/**\n * A Zag machine as a widget tag: `fromZag(zag, render, options)` where `zag` is a machine package\n * (`import * as menu from '@zag-js/menu'`: its `machine` and `connect`), `render(api, props, x)`\n * renders its parts with the prop getters spread (`<button {...api.getTriggerProps()}>`).\n * Options: `events` (dispatched name → Zag callback, or [callback, details → detail]), `props`\n * ((widgetProps, x) → machine props), `commands` ((api, options, x) → …), and defineWidget's\n * `tag`, `name`, `fallback`, `hostProps`, `ownProps`, `field` (`read(x, host)`).\n */\nexport function fromZag(zag: any, render: any, options: any = {}): any {\n if (!zag || !zag.machine || typeof zag.connect != 'function') fail('fromZag(zag, render): the first argument is not a Zag machine package (import * as menu from \\'@zag-js/menu\\')')\n if (typeof render != 'function') fail('fromZag(zag, render): render must be a function (api, props) => vnode')\n const o = options, commands: any = {}\n let tag: any\n for (const c in o.commands) commands[c] = (x: any, opt: any) => o.commands[c](x.api(), opt, x)\n return tag = defineWidget({\n tag: o.tag,\n name: o.name,\n fallback: o.fallback,\n hostProps: o.hostProps,\n ownProps: o.ownProps,\n // the widget field contract (extra/field.ts): `field: { event, read }`, read gets the instance\n field: o.field,\n // D211: a first-party part (sygnal/ui/menu…): its event names are documented, no SYG144\n $own: o.$own,\n events: Object.keys(o.events || {}),\n commands,\n mount: (el: any, p: any, dispatch: any, error: any) => start(zag, render, o, el, p, dispatch, error, () => tag),\n update: (x: any, p: any) => x.set(p),\n unmount: (x: any) => x.stop(),\n })\n}\n"],"names":["init","classModule","propsModule","attributesModule","datasetModule","eventListenersModule","VanillaMachine","h","defineWidget"],"mappings":"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"}
|
package/dist/zag.esm.js
CHANGED
|
@@ -345,6 +345,11 @@ function start(zag, render, o, el, p0, dispatch, error, w) {
|
|
|
345
345
|
stop: () => {
|
|
346
346
|
const was = on;
|
|
347
347
|
on = 0;
|
|
348
|
+
// a part's own machines and listeners (Menu's submenus)
|
|
349
|
+
try {
|
|
350
|
+
x.off?.();
|
|
351
|
+
}
|
|
352
|
+
catch (_) { }
|
|
348
353
|
try {
|
|
349
354
|
was && m.stop();
|
|
350
355
|
}
|
|
@@ -352,6 +357,9 @@ function start(zag, render, o, el, p0, dispatch, error, w) {
|
|
|
352
357
|
free();
|
|
353
358
|
}
|
|
354
359
|
},
|
|
360
|
+
// for a part's own machines (Menu's submenus): a redraw when they change, and the normaliser
|
|
361
|
+
draw,
|
|
362
|
+
normalize,
|
|
355
363
|
});
|
|
356
364
|
m.subscribe(draw);
|
|
357
365
|
draw();
|
|
@@ -374,7 +382,7 @@ function start(zag, render, o, el, p0, dispatch, error, w) {
|
|
|
374
382
|
* renders its parts with the prop getters spread (`<button {...api.getTriggerProps()}>`).
|
|
375
383
|
* Options: `events` (dispatched name → Zag callback, or [callback, details → detail]), `props`
|
|
376
384
|
* ((widgetProps, x) → machine props), `commands` ((api, options, x) → …), and defineWidget's
|
|
377
|
-
* `tag`, `name`, `fallback`, `hostProps`, `ownProps
|
|
385
|
+
* `tag`, `name`, `fallback`, `hostProps`, `ownProps`, `field` (`read(x, host)`).
|
|
378
386
|
*/
|
|
379
387
|
function fromZag(zag, render, options = {}) {
|
|
380
388
|
if (!zag || !zag.machine || typeof zag.connect != 'function')
|
|
@@ -391,6 +399,8 @@ function fromZag(zag, render, options = {}) {
|
|
|
391
399
|
fallback: o.fallback,
|
|
392
400
|
hostProps: o.hostProps,
|
|
393
401
|
ownProps: o.ownProps,
|
|
402
|
+
// the widget field contract (extra/field.ts): `field: { event, read }`, read gets the instance
|
|
403
|
+
field: o.field,
|
|
394
404
|
// D211: a first-party part (sygnal/ui/menu…): its event names are documented, no SYG144
|
|
395
405
|
$own: o.$own,
|
|
396
406
|
events: Object.keys(o.events || {}),
|
package/dist/zag.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zag.esm.js","sources":["../src/cycle/dom/styleModule.ts","../src/zag.ts"],"sourcesContent":["/**\n * Local copy of snabbdom's styleModule with a fixed `window` guard.\n *\n * snabbdom 3.6.3 introduced a regression where the top-level `raf` assignment\n * evaluates `window` directly (via `window === null || window === void 0`)\n * before the `typeof` check, causing a ReferenceError in Node.js environments.\n *\n * This copy restores the safe `typeof window !== \"undefined\"` guard while\n * keeping all other 3.6.x improvements (arrow functions, `in` operator for\n * style removal checks, etc.).\n */\n\nimport {Module} from './snabbdom';\n\ntype VNode = { elm?: any; data?: any };\n\n// Safe guard: `typeof window` never throws, even if `window` is undeclared.\nconst raf =\n (typeof window !== 'undefined' &&\n typeof window.requestAnimationFrame === 'function' &&\n window.requestAnimationFrame.bind(window)) ||\n setTimeout;\n\nconst nextFrame = (fn: () => void) => {\n raf(() => {\n raf(fn);\n });\n};\n\nlet reflowForced = false;\n\nfunction setNextFrame(obj: any, prop: string, val: string) {\n nextFrame(() => {\n obj[prop] = val;\n });\n}\n\nfunction updateStyle(oldVnode: VNode, vnode: VNode) {\n let cur: any;\n let name: string;\n const elm = vnode.elm as HTMLElement;\n let oldStyle = (oldVnode.data as any).style as Record<string, any> | undefined;\n let style = (vnode.data as any).style as Record<string, any> | undefined;\n if (!oldStyle && !style) return;\n if (oldStyle === style) return;\n oldStyle = oldStyle || {};\n style = style || {};\n const oldHasDel = 'delayed' in oldStyle;\n for (name in oldStyle) {\n if (!(name in style)) {\n if (name[0] === '-' && name[1] === '-') {\n elm.style.removeProperty(name);\n } else {\n (elm.style as any)[name] = '';\n }\n }\n }\n for (name in style) {\n cur = style[name];\n if (name === 'delayed' && style.delayed) {\n for (const name2 in style.delayed) {\n cur = style.delayed[name2];\n if (!oldHasDel || cur !== (oldStyle as any).delayed[name2]) {\n setNextFrame(elm.style, name2, cur);\n }\n }\n } else if (name !== 'remove' && cur !== (oldStyle as any)[name]) {\n if (name[0] === '-' && name[1] === '-') {\n elm.style.setProperty(name, cur);\n } else {\n (elm.style as any)[name] = cur;\n }\n }\n }\n}\n\nfunction applyDestroyStyle(vnode: VNode) {\n let style: Record<string, string>;\n let name: string;\n const elm = vnode.elm as HTMLElement;\n const s = (vnode.data as any).style;\n if (!s || !(style = s.destroy)) return;\n for (name in style) {\n (elm.style as any)[name] = style[name];\n }\n}\n\nfunction applyRemoveStyle(vnode: VNode, rm: () => void) {\n const s = (vnode.data as any).style;\n if (!s || !s.remove) {\n rm();\n return;\n }\n if (!reflowForced) {\n // Force reflow so transition styles apply immediately\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n (vnode.elm as HTMLElement).offsetLeft;\n reflowForced = true;\n }\n let name: string;\n const elm = vnode.elm as HTMLElement;\n let i = 0;\n const style = s.remove;\n let amount = 0;\n const applied: string[] = [];\n for (name in style) {\n applied.push(name);\n (elm.style as any)[name] = style[name];\n }\n const compStyle = getComputedStyle(elm);\n const props = (compStyle as any)['transition-property'].split(', ');\n for (; i < props.length; ++i) {\n if (applied.indexOf(props[i]) !== -1) amount++;\n }\n elm.addEventListener('transitionend', (ev: TransitionEvent) => {\n if (ev.target === elm) --amount;\n if (amount === 0) rm();\n });\n}\n\nfunction forceReflow() {\n reflowForced = false;\n}\n\nexport const styleModule: Module = {\n pre: forceReflow,\n create: updateStyle,\n update: updateStyle,\n destroy: applyDestroyStyle,\n remove: applyRemoveStyle,\n};\n","/*\n * 'sygnal/zag' (PLAN-5 W-2, D203): `fromZag(zag, render, options)`, a Zag.js machine as a widget\n * tag (defineWidget). Generalises experiment E3.\n *\n * import * as menu from '@zag-js/menu'\n * export const Actions = fromZag(menu, (api, props) => (\n * <div>\n * <button {...api.getTriggerProps()}>{props.label}</button>\n * <div {...api.getPositionerProps()}>\n * <div {...api.getContentProps()}>\n * {props.items.map((i) => <div {...api.getItemProps({ value: i.value })}>{i.label}</div>)}\n * </div>\n * </div>\n * </div>\n * ), { events: { select: ['onSelect', (d) => d.value] }, commands: { open: (api) => api.setOpen(true) } })\n * // view: <Actions className=\"actions\" label=\"Actions\" items={ITEMS} />\n * // intent: PICK: DOM.select('.actions').events('select').detail()\n *\n * - The machine runs on @zag-js/vanilla's VanillaMachine (an optional peer, pinned ~1.45.0 with\n * the machine packages: Zag's packages depend on each other's exact versions). One per host.\n * - Props: the machine's props are a getter over the newest widget props (`options.props(p, x)`\n * maps them; by default they pass as they are), memoised per render and per `x.refresh()`. A\n * render with other props sets them and notifies the machine, so its watchers see controlled\n * props (`open`, `value`) change. No props are captured at mount (E3's stale-props bug).\n * VanillaMachine.updateProps is not used: it merges into the previous props (a removed prop\n * stays) and wraps the previous getter on every call.\n * - Zag's prop getters are normalised for snabbdom (`zagProps`): `{ attrs, on, props, style }`,\n * which a JSX spread routes to those modules. `render(api, props, x)` returns one vnode (an\n * array is wrapped in a `display: contents` div), patched into the host by a private snabbdom\n * patch (the host is opaque to the app's patch). It re-runs when the machine notifies and when\n * the props change.\n * - Machine callbacks become dispatched DOM events on the host: `events: { name: 'onX' }` (detail:\n * Zag's details object) or `{ name: ['onX', (details, x) => detail] }`; `{ name: null }` only\n * declares it (a callback from the props mapping dispatches it with `x.dispatch`). A callback\n * the props mapping also returns runs first.\n * - Commands: `commands: { open: (api, options, x) => api.setOpen(true) }` (D102 element commands).\n * - The instance (`t.widget(sel).instance` with `dom: 'real'`) is `x`: `{ el, api(), machine,\n * refresh() }` plus whatever the part keeps on it.\n * - Errors (G-409): a render that throws while the widget mounts stops the machine and is SYG660;\n * on a later, machine-driven redraw it stops the machine and goes to the widget's error path\n * (mount's `error`): SYG661 and the owner's onError fallback in its place. Either way the\n * rendered content is released (refs nulled, destroy hooks, listeners off; G-438).\n * - The render is plain elements only (G-410): it is patched outside the component tree, so a\n * Sygnal component, a widget tag or special JSX inside it can't run (SYG669 in dev).\n * - Wrong arguments throw SYG667 when the widget is defined.\n *\n * Separate entry: rollup turns './index' into the external 'sygnal' and keeps snabbdom and\n * @zag-js/* external (D209), so importing 'sygnal' or 'sygnal/ui' never needs Zag.\n */\nimport {VanillaMachine} from '@zag-js/vanilla'\nimport {init} from 'snabbdom/build/init.js'\nimport {h} from 'snabbdom/build/h.js'\nimport {classModule} from 'snabbdom/build/modules/class.js'\nimport {propsModule} from 'snabbdom/build/modules/props.js'\nimport {attributesModule} from 'snabbdom/build/modules/attributes.js'\nimport {datasetModule} from 'snabbdom/build/modules/dataset.js'\nimport {eventListenersModule} from 'snabbdom/build/modules/eventlisteners.js'\nimport {styleModule} from './cycle/dom/styleModule'\nimport {defineWidget} from './index'\n\nconst patch = init([classModule, propsModule, attributesModule, datasetModule, styleModule, eventListenersModule])\n\n// React-style event props whose DOM event has another name (as @zag-js/vanilla's normalizeProps)\nconst EV: any = {Focus: 'focusin', Blur: 'focusout', Change: 'input', DoubleClick: 'dblclick'}\nconst NAME: any = {htmlFor: 'for', className: 'class'}\n// enumerated attributes whose false must be written, not removed\nconst STR = /^(aria-|spellcheck$|draggable$|contenteditable$)/i\n\n/**\n * One Zag prop bag (`api.getTriggerProps()` with any normaliser, or raw) as snabbdom data\n * `{ attrs, on, props, style }`: `onX` handlers to `on` (onChange → input, onFocus → focusin, …),\n * `value` / `checked` (and their `default…`) to `props`, `style`, and the rest to `attrs` (names\n * lowercased, htmlFor → for; an ARIA boolean as \"true\" / \"false\"; false removes the attribute).\n */\nexport const zagProps = (bag: any): any => {\n const attrs: any = {}, on: any = {}, props: any = {}, style: any = {}\n for (const k in bag) {\n const v = bag[k]\n if (v === undefined) continue\n if (typeof v == 'function' && /^on[A-Z]/.test(k)) on[EV[k.slice(2)] || k.slice(2).toLowerCase()] = v\n else if (k == 'style') Object.assign(style, v)\n else if (/^(default)?(value|checked|Value|Checked)$/.test(k)) props[k.replace(/^default(.)/, (_, c) => c.toLowerCase())] = v\n else attrs[NAME[k] || (/^(viewBox|preserveAspectRatio)$/.test(k) ? k : k.toLowerCase())] = typeof v == 'boolean' && STR.test(k) ? '' + v : v\n }\n return {attrs, on, props, style}\n}\n\n// Zag's normaliser shape (@zag-js/types createNormalizer): every element kind maps through zagProps\nconst normalize: any = new Proxy({}, {get: (_, k) => (k == 'style' ? (s: any) => ({...s}) : zagProps)})\n\nconst fail = (m: string): never => {\n throw new Error(`[Sygnal SYG667] ${m}. https://sygnal.js.org/reference/errors#syg667`)\n}\n\nlet ids = 0\n\n// snabbdom's destroy pass over a rendered tree, without removing it from the DOM (G-412)\nconst release = (v: any) => {\n const d = v?.data\n if (d) { d.hook?.destroy?.(v); (eventListenersModule.destroy as any)(v) }\n v?.children?.forEach(release)\n}\n\n// G-410 (dev only): what a render must not contain: a component (data.c), a widget tag, special JSX.\n// G-439 / G-470: a marker is a vnode the pragma made from a marker function (`data.m`), with or\n// without props (`<Suspense>`, `h(Transition, null)`, `<Slot>`); a plain <slot> element is not,\n// whatever its children\nconst SPECIAL: any = {transition: 'Transition', portal: 'Portal', collection: 'Collection', switchable: 'Switchable',\n suspense: 'Suspense', clientonly: 'ClientOnly', 'virtual-collection': 'VirtualCollection', slot: 'Slot'}\nconst foreign = (v: any, out: string[]): string[] => {\n if (!v || typeof v != 'object') return out\n if (Array.isArray(v)) { v.forEach(c => foreign(c, out)); return out }\n const d = v.data\n let t = d?.c ? v.sel : v.sel == 'widget' && d?.ww ? d.ww.def.name || 'widget' : d?.m && SPECIAL[v.sel]\n if (t) out.includes(t = '<' + t + '>') || out.push(t)\n return foreign(v.children, out)\n}\n\nfunction start(zag: any, render: any, o: any, el: any, p0: any, dispatch: any, error: any, w: any): any {\n // live: 0 while start() runs (a throwing draw throws: SYG660), then 1 (it goes to error: SYG661)\n // f669: this instance's render had foreign content (G-470: per instance, not on the widget tag,\n // so another app or test, or diagnostics turned on later, still gets its report)\n let props = p0, memo: any, on = 1, busy = 0, again = 0, live = 0, f669 = 0\n let vn: any = el.appendChild(document.createElement('div'))\n const id = p0.id ?? 'sygnal-zag-' + ++ids\n // the instance (the part's per-instance fields too); the props mapping gets it from the start\n const x: any = {el, dispatch}\n // the events' callbacks: dispatch on the host\n const cbs: any = {}\n for (const name in o.events) {\n const [cb, map] = ([] as any[]).concat(o.events[name])\n // null: declared only (the part dispatches it with x.dispatch)\n if (!cb) continue\n const prev = cbs[cb]\n cbs[cb] = (d: any) => { prev?.(d); dispatch(name, map ? map(d, x) : d) }\n }\n // the machine's props: the newest widget props, mapped (memoised until the next render or refresh)\n const machineProps = () => {\n if (memo) return memo\n const mp = o.props ? o.props(props, x) : props\n const out: any = {...mp, id, getRootNode: () => (el.isConnected ? el.getRootNode() : document)}\n for (const cb in cbs) {\n const u = mp[cb]\n out[cb] = u ? (d: any) => { u(d); cbs[cb](d) } : cbs[cb]\n }\n return (memo = out)\n }\n // notify(): a public field of VanillaMachine (typed private), the one way to re-run its watchers\n // without updateProps (Zag pinned ~1.45.0; the tests cover it)\n const m: any = new VanillaMachine(zag.machine, machineProps)\n const api = () => zag.connect(m.service, normalize)\n const draw = () => {\n if (!on) return\n if (busy) return void (again = 1)\n busy = 1\n try {\n do {\n again = 0\n const out = render(api(), props, x)\n // G-439: once found, this instance's render isn't walked again (the report is once per\n // widget tag: checks/widgets.ts)\n const dev = (globalThis as any).__SYGNAL_DIAGNOSTICS__?.widget\n if (dev && !f669) { const f = foreign(out, []); f.length && (f669 = 1, dev(669, w(), undefined, f)) }\n vn = patch(vn, Array.isArray(out) ? h('div', {style: {display: 'contents'}}, out) : out || h('!', ''))\n } while (again && on)\n } catch (e) {\n // G-409: the machine stops; a machine-driven redraw (an event handler, a watcher) hands the\n // error to the widget (SYG661 + the owner's onError fallback) instead of throwing into Zag\n halt()\n // G-438: a failed mount has no unmount: its content is released here\n if (!live) { free(); throw e }\n error(e)\n } finally { busy = 0 }\n }\n const halt = () => {\n if (!on) return\n on = 0\n try { m.stop() } catch (_) {}\n }\n // G-412: the content stays (a <Transition> leave animates the host with it); its destroy hooks\n // run (refs in the render) and its listeners come off, as a patch to nothing would do. Once,\n // and only for a rendered vnode (before the first draw, vn is the placeholder element). G-472:\n // vn is cleared first, so a destroy hook that stops the widget (or throws) doesn't release twice\n const free = () => {\n const v = vn\n vn = 0\n if (v?.sel !== undefined) release(v)\n }\n Object.assign(x, {\n machine: m,\n api,\n refresh: () => { memo = 0; m.notify() },\n set: (p: any) => { props = p; x.refresh() },\n // G-438: after a halt (G-409) the machine is already stopped, and the content is still released\n stop: () => {\n const was = on\n on = 0\n try { was && m.stop() } finally { free() }\n },\n })\n m.subscribe(draw)\n draw()\n // G-409: a start() or second draw that throws leaves no running machine (then SYG660)\n try { m.start() } catch (e) { halt(); free(); throw e }\n draw()\n live = 1\n return x\n}\n\n/**\n * A Zag machine as a widget tag: `fromZag(zag, render, options)` where `zag` is a machine package\n * (`import * as menu from '@zag-js/menu'`: its `machine` and `connect`), `render(api, props, x)`\n * renders its parts with the prop getters spread (`<button {...api.getTriggerProps()}>`).\n * Options: `events` (dispatched name → Zag callback, or [callback, details → detail]), `props`\n * ((widgetProps, x) → machine props), `commands` ((api, options, x) → …), and defineWidget's\n * `tag`, `name`, `fallback`, `hostProps`, `ownProps`.\n */\nexport function fromZag(zag: any, render: any, options: any = {}): any {\n if (!zag || !zag.machine || typeof zag.connect != 'function') fail('fromZag(zag, render): the first argument is not a Zag machine package (import * as menu from \\'@zag-js/menu\\')')\n if (typeof render != 'function') fail('fromZag(zag, render): render must be a function (api, props) => vnode')\n const o = options, commands: any = {}\n let tag: any\n for (const c in o.commands) commands[c] = (x: any, opt: any) => o.commands[c](x.api(), opt, x)\n return tag = defineWidget({\n tag: o.tag,\n name: o.name,\n fallback: o.fallback,\n hostProps: o.hostProps,\n ownProps: o.ownProps,\n // D211: a first-party part (sygnal/ui/menu…): its event names are documented, no SYG144\n $own: o.$own,\n events: Object.keys(o.events || {}),\n commands,\n mount: (el: any, p: any, dispatch: any, error: any) => start(zag, render, o, el, p, dispatch, error, () => tag),\n update: (x: any, p: any) => x.set(p),\n unmount: (x: any) => x.stop(),\n })\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"zag.esm.js","sources":["../src/cycle/dom/styleModule.ts","../src/zag.ts"],"sourcesContent":["/**\n * Local copy of snabbdom's styleModule with a fixed `window` guard.\n *\n * snabbdom 3.6.3 introduced a regression where the top-level `raf` assignment\n * evaluates `window` directly (via `window === null || window === void 0`)\n * before the `typeof` check, causing a ReferenceError in Node.js environments.\n *\n * This copy restores the safe `typeof window !== \"undefined\"` guard while\n * keeping all other 3.6.x improvements (arrow functions, `in` operator for\n * style removal checks, etc.).\n */\n\nimport {Module} from './snabbdom';\n\ntype VNode = { elm?: any; data?: any };\n\n// Safe guard: `typeof window` never throws, even if `window` is undeclared.\nconst raf =\n (typeof window !== 'undefined' &&\n typeof window.requestAnimationFrame === 'function' &&\n window.requestAnimationFrame.bind(window)) ||\n setTimeout;\n\nconst nextFrame = (fn: () => void) => {\n raf(() => {\n raf(fn);\n });\n};\n\nlet reflowForced = false;\n\nfunction setNextFrame(obj: any, prop: string, val: string) {\n nextFrame(() => {\n obj[prop] = val;\n });\n}\n\nfunction updateStyle(oldVnode: VNode, vnode: VNode) {\n let cur: any;\n let name: string;\n const elm = vnode.elm as HTMLElement;\n let oldStyle = (oldVnode.data as any).style as Record<string, any> | undefined;\n let style = (vnode.data as any).style as Record<string, any> | undefined;\n if (!oldStyle && !style) return;\n if (oldStyle === style) return;\n oldStyle = oldStyle || {};\n style = style || {};\n const oldHasDel = 'delayed' in oldStyle;\n for (name in oldStyle) {\n if (!(name in style)) {\n if (name[0] === '-' && name[1] === '-') {\n elm.style.removeProperty(name);\n } else {\n (elm.style as any)[name] = '';\n }\n }\n }\n for (name in style) {\n cur = style[name];\n if (name === 'delayed' && style.delayed) {\n for (const name2 in style.delayed) {\n cur = style.delayed[name2];\n if (!oldHasDel || cur !== (oldStyle as any).delayed[name2]) {\n setNextFrame(elm.style, name2, cur);\n }\n }\n } else if (name !== 'remove' && cur !== (oldStyle as any)[name]) {\n if (name[0] === '-' && name[1] === '-') {\n elm.style.setProperty(name, cur);\n } else {\n (elm.style as any)[name] = cur;\n }\n }\n }\n}\n\nfunction applyDestroyStyle(vnode: VNode) {\n let style: Record<string, string>;\n let name: string;\n const elm = vnode.elm as HTMLElement;\n const s = (vnode.data as any).style;\n if (!s || !(style = s.destroy)) return;\n for (name in style) {\n (elm.style as any)[name] = style[name];\n }\n}\n\nfunction applyRemoveStyle(vnode: VNode, rm: () => void) {\n const s = (vnode.data as any).style;\n if (!s || !s.remove) {\n rm();\n return;\n }\n if (!reflowForced) {\n // Force reflow so transition styles apply immediately\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n (vnode.elm as HTMLElement).offsetLeft;\n reflowForced = true;\n }\n let name: string;\n const elm = vnode.elm as HTMLElement;\n let i = 0;\n const style = s.remove;\n let amount = 0;\n const applied: string[] = [];\n for (name in style) {\n applied.push(name);\n (elm.style as any)[name] = style[name];\n }\n const compStyle = getComputedStyle(elm);\n const props = (compStyle as any)['transition-property'].split(', ');\n for (; i < props.length; ++i) {\n if (applied.indexOf(props[i]) !== -1) amount++;\n }\n elm.addEventListener('transitionend', (ev: TransitionEvent) => {\n if (ev.target === elm) --amount;\n if (amount === 0) rm();\n });\n}\n\nfunction forceReflow() {\n reflowForced = false;\n}\n\nexport const styleModule: Module = {\n pre: forceReflow,\n create: updateStyle,\n update: updateStyle,\n destroy: applyDestroyStyle,\n remove: applyRemoveStyle,\n};\n","/*\n * 'sygnal/zag' (PLAN-5 W-2, D203): `fromZag(zag, render, options)`, a Zag.js machine as a widget\n * tag (defineWidget). Generalises experiment E3.\n *\n * import * as menu from '@zag-js/menu'\n * export const Actions = fromZag(menu, (api, props) => (\n * <div>\n * <button {...api.getTriggerProps()}>{props.label}</button>\n * <div {...api.getPositionerProps()}>\n * <div {...api.getContentProps()}>\n * {props.items.map((i) => <div {...api.getItemProps({ value: i.value })}>{i.label}</div>)}\n * </div>\n * </div>\n * </div>\n * ), { events: { select: ['onSelect', (d) => d.value] }, commands: { open: (api) => api.setOpen(true) } })\n * // view: <Actions className=\"actions\" label=\"Actions\" items={ITEMS} />\n * // intent: PICK: DOM.select('.actions').events('select').detail()\n *\n * - The machine runs on @zag-js/vanilla's VanillaMachine (an optional peer, pinned ~1.45.0 with\n * the machine packages: Zag's packages depend on each other's exact versions). One per host.\n * - Props: the machine's props are a getter over the newest widget props (`options.props(p, x)`\n * maps them; by default they pass as they are), memoised per render and per `x.refresh()`. A\n * render with other props sets them and notifies the machine, so its watchers see controlled\n * props (`open`, `value`) change. No props are captured at mount (E3's stale-props bug).\n * VanillaMachine.updateProps is not used: it merges into the previous props (a removed prop\n * stays) and wraps the previous getter on every call.\n * - Zag's prop getters are normalised for snabbdom (`zagProps`): `{ attrs, on, props, style }`,\n * which a JSX spread routes to those modules. `render(api, props, x)` returns one vnode (an\n * array is wrapped in a `display: contents` div), patched into the host by a private snabbdom\n * patch (the host is opaque to the app's patch). It re-runs when the machine notifies and when\n * the props change.\n * - Machine callbacks become dispatched DOM events on the host: `events: { name: 'onX' }` (detail:\n * Zag's details object) or `{ name: ['onX', (details, x) => detail] }`; `{ name: null }` only\n * declares it (a callback from the props mapping dispatches it with `x.dispatch`). A callback\n * the props mapping also returns runs first.\n * - Commands: `commands: { open: (api, options, x) => api.setOpen(true) }` (D102 element commands).\n * - The instance (`t.widget(sel).instance` with `dom: 'real'`) is `x`: `{ el, api(), machine,\n * refresh() }` plus whatever the part keeps on it.\n * - Errors (G-409): a render that throws while the widget mounts stops the machine and is SYG660;\n * on a later, machine-driven redraw it stops the machine and goes to the widget's error path\n * (mount's `error`): SYG661 and the owner's onError fallback in its place. Either way the\n * rendered content is released (refs nulled, destroy hooks, listeners off; G-438).\n * - The render is plain elements only (G-410): it is patched outside the component tree, so a\n * Sygnal component, a widget tag or special JSX inside it can't run (SYG669 in dev).\n * - Wrong arguments throw SYG667 when the widget is defined.\n *\n * Separate entry: rollup turns './index' into the external 'sygnal' and keeps snabbdom and\n * @zag-js/* external (D209), so importing 'sygnal' or 'sygnal/ui' never needs Zag.\n */\nimport {VanillaMachine} from '@zag-js/vanilla'\nimport {init} from 'snabbdom/build/init.js'\nimport {h} from 'snabbdom/build/h.js'\nimport {classModule} from 'snabbdom/build/modules/class.js'\nimport {propsModule} from 'snabbdom/build/modules/props.js'\nimport {attributesModule} from 'snabbdom/build/modules/attributes.js'\nimport {datasetModule} from 'snabbdom/build/modules/dataset.js'\nimport {eventListenersModule} from 'snabbdom/build/modules/eventlisteners.js'\nimport {styleModule} from './cycle/dom/styleModule'\nimport {defineWidget} from './index'\n\nconst patch = init([classModule, propsModule, attributesModule, datasetModule, styleModule, eventListenersModule])\n\n// React-style event props whose DOM event has another name (as @zag-js/vanilla's normalizeProps)\nconst EV: any = {Focus: 'focusin', Blur: 'focusout', Change: 'input', DoubleClick: 'dblclick'}\nconst NAME: any = {htmlFor: 'for', className: 'class'}\n// enumerated attributes whose false must be written, not removed\nconst STR = /^(aria-|spellcheck$|draggable$|contenteditable$)/i\n\n/**\n * One Zag prop bag (`api.getTriggerProps()` with any normaliser, or raw) as snabbdom data\n * `{ attrs, on, props, style }`: `onX` handlers to `on` (onChange → input, onFocus → focusin, …),\n * `value` / `checked` (and their `default…`) to `props`, `style`, and the rest to `attrs` (names\n * lowercased, htmlFor → for; an ARIA boolean as \"true\" / \"false\"; false removes the attribute).\n */\nexport const zagProps = (bag: any): any => {\n const attrs: any = {}, on: any = {}, props: any = {}, style: any = {}\n for (const k in bag) {\n const v = bag[k]\n if (v === undefined) continue\n if (typeof v == 'function' && /^on[A-Z]/.test(k)) on[EV[k.slice(2)] || k.slice(2).toLowerCase()] = v\n else if (k == 'style') Object.assign(style, v)\n else if (/^(default)?(value|checked|Value|Checked)$/.test(k)) props[k.replace(/^default(.)/, (_, c) => c.toLowerCase())] = v\n else attrs[NAME[k] || (/^(viewBox|preserveAspectRatio)$/.test(k) ? k : k.toLowerCase())] = typeof v == 'boolean' && STR.test(k) ? '' + v : v\n }\n return {attrs, on, props, style}\n}\n\n// Zag's normaliser shape (@zag-js/types createNormalizer): every element kind maps through zagProps\nconst normalize: any = new Proxy({}, {get: (_, k) => (k == 'style' ? (s: any) => ({...s}) : zagProps)})\n\nconst fail = (m: string): never => {\n throw new Error(`[Sygnal SYG667] ${m}. https://sygnal.js.org/reference/errors#syg667`)\n}\n\nlet ids = 0\n\n// snabbdom's destroy pass over a rendered tree, without removing it from the DOM (G-412)\nconst release = (v: any) => {\n const d = v?.data\n if (d) { d.hook?.destroy?.(v); (eventListenersModule.destroy as any)(v) }\n v?.children?.forEach(release)\n}\n\n// G-410 (dev only): what a render must not contain: a component (data.c), a widget tag, special JSX.\n// G-439 / G-470: a marker is a vnode the pragma made from a marker function (`data.m`), with or\n// without props (`<Suspense>`, `h(Transition, null)`, `<Slot>`); a plain <slot> element is not,\n// whatever its children\nconst SPECIAL: any = {transition: 'Transition', portal: 'Portal', collection: 'Collection', switchable: 'Switchable',\n suspense: 'Suspense', clientonly: 'ClientOnly', 'virtual-collection': 'VirtualCollection', slot: 'Slot'}\nconst foreign = (v: any, out: string[]): string[] => {\n if (!v || typeof v != 'object') return out\n if (Array.isArray(v)) { v.forEach(c => foreign(c, out)); return out }\n const d = v.data\n let t = d?.c ? v.sel : v.sel == 'widget' && d?.ww ? d.ww.def.name || 'widget' : d?.m && SPECIAL[v.sel]\n if (t) out.includes(t = '<' + t + '>') || out.push(t)\n return foreign(v.children, out)\n}\n\nfunction start(zag: any, render: any, o: any, el: any, p0: any, dispatch: any, error: any, w: any): any {\n // live: 0 while start() runs (a throwing draw throws: SYG660), then 1 (it goes to error: SYG661)\n // f669: this instance's render had foreign content (G-470: per instance, not on the widget tag,\n // so another app or test, or diagnostics turned on later, still gets its report)\n let props = p0, memo: any, on = 1, busy = 0, again = 0, live = 0, f669 = 0\n let vn: any = el.appendChild(document.createElement('div'))\n const id = p0.id ?? 'sygnal-zag-' + ++ids\n // the instance (the part's per-instance fields too); the props mapping gets it from the start\n const x: any = {el, dispatch}\n // the events' callbacks: dispatch on the host\n const cbs: any = {}\n for (const name in o.events) {\n const [cb, map] = ([] as any[]).concat(o.events[name])\n // null: declared only (the part dispatches it with x.dispatch)\n if (!cb) continue\n const prev = cbs[cb]\n cbs[cb] = (d: any) => { prev?.(d); dispatch(name, map ? map(d, x) : d) }\n }\n // the machine's props: the newest widget props, mapped (memoised until the next render or refresh)\n const machineProps = () => {\n if (memo) return memo\n const mp = o.props ? o.props(props, x) : props\n const out: any = {...mp, id, getRootNode: () => (el.isConnected ? el.getRootNode() : document)}\n for (const cb in cbs) {\n const u = mp[cb]\n out[cb] = u ? (d: any) => { u(d); cbs[cb](d) } : cbs[cb]\n }\n return (memo = out)\n }\n // notify(): a public field of VanillaMachine (typed private), the one way to re-run its watchers\n // without updateProps (Zag pinned ~1.45.0; the tests cover it)\n const m: any = new VanillaMachine(zag.machine, machineProps)\n const api = () => zag.connect(m.service, normalize)\n const draw = () => {\n if (!on) return\n if (busy) return void (again = 1)\n busy = 1\n try {\n do {\n again = 0\n const out = render(api(), props, x)\n // G-439: once found, this instance's render isn't walked again (the report is once per\n // widget tag: checks/widgets.ts)\n const dev = (globalThis as any).__SYGNAL_DIAGNOSTICS__?.widget\n if (dev && !f669) { const f = foreign(out, []); f.length && (f669 = 1, dev(669, w(), undefined, f)) }\n vn = patch(vn, Array.isArray(out) ? h('div', {style: {display: 'contents'}}, out) : out || h('!', ''))\n } while (again && on)\n } catch (e) {\n // G-409: the machine stops; a machine-driven redraw (an event handler, a watcher) hands the\n // error to the widget (SYG661 + the owner's onError fallback) instead of throwing into Zag\n halt()\n // G-438: a failed mount has no unmount: its content is released here\n if (!live) { free(); throw e }\n error(e)\n } finally { busy = 0 }\n }\n const halt = () => {\n if (!on) return\n on = 0\n try { m.stop() } catch (_) {}\n }\n // G-412: the content stays (a <Transition> leave animates the host with it); its destroy hooks\n // run (refs in the render) and its listeners come off, as a patch to nothing would do. Once,\n // and only for a rendered vnode (before the first draw, vn is the placeholder element). G-472:\n // vn is cleared first, so a destroy hook that stops the widget (or throws) doesn't release twice\n const free = () => {\n const v = vn\n vn = 0\n if (v?.sel !== undefined) release(v)\n }\n Object.assign(x, {\n machine: m,\n api,\n refresh: () => { memo = 0; m.notify() },\n set: (p: any) => { props = p; x.refresh() },\n // G-438: after a halt (G-409) the machine is already stopped, and the content is still released\n stop: () => {\n const was = on\n on = 0\n // a part's own machines and listeners (Menu's submenus)\n try { x.off?.() } catch (_) {}\n try { was && m.stop() } finally { free() }\n },\n // for a part's own machines (Menu's submenus): a redraw when they change, and the normaliser\n draw,\n normalize,\n })\n m.subscribe(draw)\n draw()\n // G-409: a start() or second draw that throws leaves no running machine (then SYG660)\n try { m.start() } catch (e) { halt(); free(); throw e }\n draw()\n live = 1\n return x\n}\n\n/**\n * A Zag machine as a widget tag: `fromZag(zag, render, options)` where `zag` is a machine package\n * (`import * as menu from '@zag-js/menu'`: its `machine` and `connect`), `render(api, props, x)`\n * renders its parts with the prop getters spread (`<button {...api.getTriggerProps()}>`).\n * Options: `events` (dispatched name → Zag callback, or [callback, details → detail]), `props`\n * ((widgetProps, x) → machine props), `commands` ((api, options, x) → …), and defineWidget's\n * `tag`, `name`, `fallback`, `hostProps`, `ownProps`, `field` (`read(x, host)`).\n */\nexport function fromZag(zag: any, render: any, options: any = {}): any {\n if (!zag || !zag.machine || typeof zag.connect != 'function') fail('fromZag(zag, render): the first argument is not a Zag machine package (import * as menu from \\'@zag-js/menu\\')')\n if (typeof render != 'function') fail('fromZag(zag, render): render must be a function (api, props) => vnode')\n const o = options, commands: any = {}\n let tag: any\n for (const c in o.commands) commands[c] = (x: any, opt: any) => o.commands[c](x.api(), opt, x)\n return tag = defineWidget({\n tag: o.tag,\n name: o.name,\n fallback: o.fallback,\n hostProps: o.hostProps,\n ownProps: o.ownProps,\n // the widget field contract (extra/field.ts): `field: { event, read }`, read gets the instance\n field: o.field,\n // D211: a first-party part (sygnal/ui/menu…): its event names are documented, no SYG144\n $own: o.$own,\n events: Object.keys(o.events || {}),\n commands,\n mount: (el: any, p: any, dispatch: any, error: any) => start(zag, render, o, el, p, dispatch, error, () => tag),\n update: (x: any, p: any) => x.set(p),\n unmount: (x: any) => x.stop(),\n })\n}\n"],"names":[],"mappings":";;;;;;;;;;AAAA;;;;;;;;;;AAUG;AAMH;AACA,MAAM,GAAG,GACP,CAAC,OAAO,MAAM,KAAK,WAAW;AAC5B,IAAA,OAAO,MAAM,CAAC,qBAAqB,KAAK,UAAU;AAClD,IAAA,MAAM,CAAC,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC;AAC3C,IAAA,UAAU,CAAC;AAEb,MAAM,SAAS,GAAG,CAAC,EAAc,KAAI;IACnC,GAAG,CAAC,MAAK;QACP,GAAG,CAAC,EAAE,CAAC,CAAC;AACV,KAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,IAAI,YAAY,GAAG,KAAK,CAAC;AAEzB,SAAS,YAAY,CAAC,GAAQ,EAAE,IAAY,EAAE,GAAW,EAAA;IACvD,SAAS,CAAC,MAAK;AACb,QAAA,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;AAClB,KAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,WAAW,CAAC,QAAe,EAAE,KAAY,EAAA;AAChD,IAAA,IAAI,GAAQ,CAAC;AACb,IAAA,IAAI,IAAY,CAAC;AACjB,IAAA,MAAM,GAAG,GAAG,KAAK,CAAC,GAAkB,CAAC;AACrC,IAAA,IAAI,QAAQ,GAAI,QAAQ,CAAC,IAAY,CAAC,KAAwC,CAAC;AAC/E,IAAA,IAAI,KAAK,GAAI,KAAK,CAAC,IAAY,CAAC,KAAwC,CAAC;AACzE,IAAA,IAAI,CAAC,QAAQ,IAAI,CAAC,KAAK;QAAE,OAAO;IAChC,IAAI,QAAQ,KAAK,KAAK;QAAE,OAAO;AAC/B,IAAA,QAAQ,GAAG,QAAQ,IAAI,EAAE,CAAC;AAC1B,IAAA,KAAK,GAAG,KAAK,IAAI,EAAE,CAAC;AACpB,IAAA,MAAM,SAAS,GAAG,SAAS,IAAI,QAAQ,CAAC;AACxC,IAAA,KAAK,IAAI,IAAI,QAAQ,EAAE;AACrB,QAAA,IAAI,EAAE,IAAI,IAAI,KAAK,CAAC,EAAE;AACpB,YAAA,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;AACtC,gBAAA,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;aAChC;iBAAM;AACJ,gBAAA,GAAG,CAAC,KAAa,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;aAC/B;SACF;KACF;AACD,IAAA,KAAK,IAAI,IAAI,KAAK,EAAE;AAClB,QAAA,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;QAClB,IAAI,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,EAAE;AACvC,YAAA,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,OAAO,EAAE;AACjC,gBAAA,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC3B,gBAAA,IAAI,CAAC,SAAS,IAAI,GAAG,KAAM,QAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;oBAC1D,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;iBACrC;aACF;SACF;aAAM,IAAI,IAAI,KAAK,QAAQ,IAAI,GAAG,KAAM,QAAgB,CAAC,IAAI,CAAC,EAAE;AAC/D,YAAA,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;gBACtC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;aAClC;iBAAM;AACJ,gBAAA,GAAG,CAAC,KAAa,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;aAChC;SACF;KACF;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAY,EAAA;AACrC,IAAA,IAAI,KAA6B,CAAC;AAClC,IAAA,IAAI,IAAY,CAAC;AACjB,IAAA,MAAM,GAAG,GAAG,KAAK,CAAC,GAAkB,CAAC;AACrC,IAAA,MAAM,CAAC,GAAI,KAAK,CAAC,IAAY,CAAC,KAAK,CAAC;IACpC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC;QAAE,OAAO;AACvC,IAAA,KAAK,IAAI,IAAI,KAAK,EAAE;QACjB,GAAG,CAAC,KAAa,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;KACxC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAY,EAAE,EAAc,EAAA;AACpD,IAAA,MAAM,CAAC,GAAI,KAAK,CAAC,IAAY,CAAC,KAAK,CAAC;IACpC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE;AACnB,QAAA,EAAE,EAAE,CAAC;QACL,OAAO;KACR;IACD,IAAI,CAAC,YAAY,EAAE;;;AAGhB,QAAA,KAAK,CAAC,GAAmB,CAAC,UAAU,CAAC;QACtC,YAAY,GAAG,IAAI,CAAC;KACrB;AACD,IAAA,IAAI,IAAY,CAAC;AACjB,IAAA,MAAM,GAAG,GAAG,KAAK,CAAC,GAAkB,CAAC;IACrC,IAAI,CAAC,GAAG,CAAC,CAAC;AACV,IAAA,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC;IACvB,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,MAAM,OAAO,GAAa,EAAE,CAAC;AAC7B,IAAA,KAAK,IAAI,IAAI,KAAK,EAAE;AAClB,QAAA,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClB,GAAG,CAAC,KAAa,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;KACxC;AACD,IAAA,MAAM,SAAS,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACxC,MAAM,KAAK,GAAI,SAAiB,CAAC,qBAAqB,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACpE,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;QAC5B,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAAE,YAAA,MAAM,EAAE,CAAC;KAChD;IACD,GAAG,CAAC,gBAAgB,CAAC,eAAe,EAAE,CAAC,EAAmB,KAAI;AAC5D,QAAA,IAAI,EAAE,CAAC,MAAM,KAAK,GAAG;AAAE,YAAA,EAAE,MAAM,CAAC;QAChC,IAAI,MAAM,KAAK,CAAC;AAAE,YAAA,EAAE,EAAE,CAAC;AACzB,KAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,WAAW,GAAA;IAClB,YAAY,GAAG,KAAK,CAAC;AACvB,CAAC;AAEM,MAAM,WAAW,GAAW;AACjC,IAAA,GAAG,EAAE,WAAW;AAChB,IAAA,MAAM,EAAE,WAAW;AACnB,IAAA,MAAM,EAAE,WAAW;AACnB,IAAA,OAAO,EAAE,iBAAiB;AAC1B,IAAA,MAAM,EAAE,gBAAgB;CACzB;;AClID;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgDG;AAYH,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,WAAW,EAAE,gBAAgB,EAAE,aAAa,EAAE,WAAW,EAAE,oBAAoB,CAAC,CAAC,CAAA;AAElH;AACA,MAAM,EAAE,GAAQ,EAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAC,CAAA;AAC9F,MAAM,IAAI,GAAQ,EAAC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAC,CAAA;AACtD;AACA,MAAM,GAAG,GAAG,mDAAmD,CAAA;AAE/D;;;;;AAKG;AACU,MAAA,QAAQ,GAAG,CAAC,GAAQ,KAAS;AACxC,IAAA,MAAM,KAAK,GAAQ,EAAE,EAAE,EAAE,GAAQ,EAAE,EAAE,KAAK,GAAQ,EAAE,EAAE,KAAK,GAAQ,EAAE,CAAA;AACrE,IAAA,KAAK,MAAM,CAAC,IAAI,GAAG,EAAE;AACnB,QAAA,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;QAChB,IAAI,CAAC,KAAK,SAAS;YAAE,SAAQ;QAC7B,IAAI,OAAO,CAAC,IAAI,UAAU,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;YAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,CAAA;aAC/F,IAAI,CAAC,IAAI,OAAO;AAAE,YAAA,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;AACzC,aAAA,IAAI,2CAA2C,CAAC,IAAI,CAAC,CAAC,CAAC;YAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,GAAG,CAAC,CAAA;;YACvH,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,iCAAiC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,SAAS,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAA;KAC7I;IACD,OAAO,EAAC,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAC,CAAA;AAClC,EAAC;AAED;AACA,MAAM,SAAS,GAAQ,IAAI,KAAK,CAAC,EAAE,EAAE,EAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,OAAO,GAAG,CAAC,CAAM,MAAM,EAAC,GAAG,CAAC,EAAC,CAAC,GAAG,QAAQ,CAAC,EAAC,CAAC,CAAA;AAEvG,MAAM,IAAI,GAAG,CAAC,CAAS,KAAW;AAChC,IAAA,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAA,+CAAA,CAAiD,CAAC,CAAA;AACxF,CAAC,CAAA;AAED,IAAI,GAAG,GAAG,CAAC,CAAA;AAEX;AACA,MAAM,OAAO,GAAG,CAAC,CAAM,KAAI;AACzB,IAAA,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,CAAA;IACjB,IAAI,CAAC,EAAE;QAAE,CAAC,CAAC,IAAI,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC;AAAE,QAAA,oBAAoB,CAAC,OAAe,CAAC,CAAC,CAAC,CAAA;KAAE;AACzE,IAAA,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;AAC/B,CAAC,CAAA;AAED;AACA;AACA;AACA;AACA,MAAM,OAAO,GAAQ,EAAC,UAAU,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY;AAClH,IAAA,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,IAAI,EAAE,MAAM,EAAC,CAAA;AAC1G,MAAM,OAAO,GAAG,CAAC,CAAM,EAAE,GAAa,KAAc;AAClD,IAAA,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,QAAQ;AAAE,QAAA,OAAO,GAAG,CAAA;AAC1C,IAAA,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;AAAE,QAAA,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AAAC,QAAA,OAAO,GAAG,CAAA;KAAE;AACrE,IAAA,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAA;IAChB,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,IAAI,QAAQ,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;AACtG,IAAA,IAAI,CAAC;AAAE,QAAA,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACrD,OAAO,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAA;AACjC,CAAC,CAAA;AAED,SAAS,KAAK,CAAC,GAAQ,EAAE,MAAW,EAAE,CAAM,EAAE,EAAO,EAAE,EAAO,EAAE,QAAa,EAAE,KAAU,EAAE,CAAM,EAAA;;;;IAI/F,IAAI,KAAK,GAAG,EAAE,EAAE,IAAS,EAAE,EAAE,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,CAAA;AAC1E,IAAA,IAAI,EAAE,GAAQ,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAA;IAC3D,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,aAAa,GAAG,EAAE,GAAG,CAAA;;AAEzC,IAAA,MAAM,CAAC,GAAQ,EAAC,EAAE,EAAE,QAAQ,EAAC,CAAA;;IAE7B,MAAM,GAAG,GAAQ,EAAE,CAAA;AACnB,IAAA,KAAK,MAAM,IAAI,IAAI,CAAC,CAAC,MAAM,EAAE;AAC3B,QAAA,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,GAAI,EAAY,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;;AAEtD,QAAA,IAAI,CAAC,EAAE;YAAE,SAAQ;AACjB,QAAA,MAAM,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC,CAAA;AACpB,QAAA,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAM,KAAO,EAAA,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA,EAAE,CAAA;KACzE;;IAED,MAAM,YAAY,GAAG,MAAK;AACxB,QAAA,IAAI,IAAI;AAAE,YAAA,OAAO,IAAI,CAAA;QACrB,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,KAAK,CAAA;AAC9C,QAAA,MAAM,GAAG,GAAQ,EAAC,GAAG,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,WAAW,GAAG,EAAE,CAAC,WAAW,EAAE,GAAG,QAAQ,CAAC,EAAC,CAAA;AAC/F,QAAA,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE;AACpB,YAAA,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAA;AAChB,YAAA,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAM,KAAI,EAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC,CAAA;SACzD;AACD,QAAA,QAAQ,IAAI,GAAG,GAAG,EAAC;AACrB,KAAC,CAAA;;;IAGD,MAAM,CAAC,GAAQ,IAAI,cAAc,CAAC,GAAG,CAAC,OAAO,EAAE,YAAY,CAAC,CAAA;AAC5D,IAAA,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;IACnD,MAAM,IAAI,GAAG,MAAK;AAChB,QAAA,IAAI,CAAC,EAAE;YAAE,OAAM;AACf,QAAA,IAAI,IAAI;AAAE,YAAA,OAAO,MAAM,KAAK,GAAG,CAAC,CAAC,CAAA;QACjC,IAAI,GAAG,CAAC,CAAA;AACR,QAAA,IAAI;AACF,YAAA,GAAG;gBACD,KAAK,GAAG,CAAC,CAAA;gBACT,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA;;;AAGnC,gBAAA,MAAM,GAAG,GAAI,UAAkB,CAAC,sBAAsB,EAAE,MAAM,CAAA;AAC9D,gBAAA,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE;oBAAE,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;oBAAC,CAAC,CAAC,MAAM,KAAK,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAA;iBAAE;AACrG,gBAAA,EAAE,GAAG,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAC,KAAK,EAAE,EAAC,OAAO,EAAE,UAAU,EAAC,EAAC,EAAE,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAA;AACxG,aAAC,QAAQ,KAAK,IAAI,EAAE,EAAC;SACtB;QAAC,OAAO,CAAC,EAAE;;;AAGV,YAAA,IAAI,EAAE,CAAA;;YAEN,IAAI,CAAC,IAAI,EAAE;AAAE,gBAAA,IAAI,EAAE,CAAC;AAAC,gBAAA,MAAM,CAAC,CAAA;aAAE;YAC9B,KAAK,CAAC,CAAC,CAAC,CAAA;SACT;gBAAS;YAAE,IAAI,GAAG,CAAC,CAAA;SAAE;AACxB,KAAC,CAAA;IACD,MAAM,IAAI,GAAG,MAAK;AAChB,QAAA,IAAI,CAAC,EAAE;YAAE,OAAM;QACf,EAAE,GAAG,CAAC,CAAA;AACN,QAAA,IAAI;YAAE,CAAC,CAAC,IAAI,EAAE,CAAA;SAAE;AAAC,QAAA,OAAO,CAAC,EAAE,GAAE;AAC/B,KAAC,CAAA;;;;;IAKD,MAAM,IAAI,GAAG,MAAK;QAChB,MAAM,CAAC,GAAG,EAAE,CAAA;QACZ,EAAE,GAAG,CAAC,CAAA;AACN,QAAA,IAAI,CAAC,EAAE,GAAG,KAAK,SAAS;YAAE,OAAO,CAAC,CAAC,CAAC,CAAA;AACtC,KAAC,CAAA;AACD,IAAA,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE;AACf,QAAA,OAAO,EAAE,CAAC;QACV,GAAG;AACH,QAAA,OAAO,EAAE,MAAK,EAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAA,EAAE;AACvC,QAAA,GAAG,EAAE,CAAC,CAAM,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAA,EAAE;;QAE3C,IAAI,EAAE,MAAK;YACT,MAAM,GAAG,GAAG,EAAE,CAAA;YACd,EAAE,GAAG,CAAC,CAAA;;AAEN,YAAA,IAAI;AAAE,gBAAA,CAAC,CAAC,GAAG,IAAI,CAAA;aAAE;AAAC,YAAA,OAAO,CAAC,EAAE,GAAE;AAC9B,YAAA,IAAI;AAAE,gBAAA,GAAG,IAAI,CAAC,CAAC,IAAI,EAAE,CAAA;aAAE;oBAAS;AAAE,gBAAA,IAAI,EAAE,CAAA;aAAE;SAC3C;;QAED,IAAI;QACJ,SAAS;AACV,KAAA,CAAC,CAAA;AACF,IAAA,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;AACjB,IAAA,IAAI,EAAE,CAAA;;AAEN,IAAA,IAAI;QAAE,CAAC,CAAC,KAAK,EAAE,CAAA;KAAE;IAAC,OAAO,CAAC,EAAE;AAAE,QAAA,IAAI,EAAE,CAAC;AAAC,QAAA,IAAI,EAAE,CAAC;AAAC,QAAA,MAAM,CAAC,CAAA;KAAE;AACvD,IAAA,IAAI,EAAE,CAAA;IACN,IAAI,GAAG,CAAC,CAAA;AACR,IAAA,OAAO,CAAC,CAAA;AACV,CAAC;AAED;;;;;;;AAOG;AACG,SAAU,OAAO,CAAC,GAAQ,EAAE,MAAW,EAAE,UAAe,EAAE,EAAA;AAC9D,IAAA,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,OAAO,GAAG,CAAC,OAAO,IAAI,UAAU;QAAE,IAAI,CAAC,gHAAgH,CAAC,CAAA;IACpL,IAAI,OAAO,MAAM,IAAI,UAAU;QAAE,IAAI,CAAC,uEAAuE,CAAC,CAAA;AAC9G,IAAA,MAAM,CAAC,GAAG,OAAO,EAAE,QAAQ,GAAQ,EAAE,CAAA;AACrC,IAAA,IAAI,GAAQ,CAAA;AACZ,IAAA,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ;QAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAM,EAAE,GAAQ,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAA;IAC9F,OAAO,GAAG,GAAG,YAAY,CAAC;QACxB,GAAG,EAAE,CAAC,CAAC,GAAG;QACV,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,SAAS,EAAE,CAAC,CAAC,SAAS;QACtB,QAAQ,EAAE,CAAC,CAAC,QAAQ;;QAEpB,KAAK,EAAE,CAAC,CAAC,KAAK;;QAEd,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC;QACnC,QAAQ;AACR,QAAA,KAAK,EAAE,CAAC,EAAO,EAAE,CAAM,EAAE,QAAa,EAAE,KAAU,KAAK,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC;AAC/G,QAAA,MAAM,EAAE,CAAC,CAAM,EAAE,CAAM,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACpC,OAAO,EAAE,CAAC,CAAM,KAAK,CAAC,CAAC,IAAI,EAAE;AAC9B,KAAA,CAAC,CAAA;AACJ;;;;"}
|