@jxsuite/studio 0.34.0 → 0.36.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/dist/iframe-entry.js +9 -1
- package/dist/iframe-entry.js.map +3 -3
- package/dist/studio.js +18382 -3686
- package/dist/studio.js.map +265 -26
- package/package.json +9 -6
- package/src/files/files.ts +3 -0
- package/src/new-project/design-fields.ts +260 -0
- package/src/new-project/import-tab.ts +322 -0
- package/src/new-project/new-project-modal.ts +472 -89
- package/src/new-project/templates.ts +61 -0
- package/src/packages/ensure-deps.ts +6 -0
- package/src/packages/pull-package-sync.ts +339 -0
- package/src/panels/ai-chat/attached-context.ts +49 -0
- package/src/panels/ai-chat/chat-markdown.ts +38 -0
- package/src/panels/ai-chat/chat-view.ts +250 -0
- package/src/panels/ai-chat/composer.ts +315 -0
- package/src/panels/ai-chat/sessions-view.ts +98 -0
- package/src/panels/ai-panel.ts +214 -458
- package/src/panels/drag-ghost.ts +1 -1
- package/src/panels/git-panel.ts +16 -1
- package/src/panels/right-panel.ts +21 -5
- package/src/panels/toolbar.ts +2 -0
- package/src/panels/welcome-screen.ts +26 -0
- package/src/platforms/cloud.ts +774 -0
- package/src/platforms/devserver.ts +100 -1
- package/src/project-list.ts +38 -0
- package/src/publish/pages-service.ts +186 -0
- package/src/publish/publish-panel.ts +360 -0
- package/src/services/agent-seed.ts +91 -0
- package/src/services/ai-models.ts +93 -0
- package/src/services/ai-session-store.ts +250 -0
- package/src/services/ai-settings.ts +5 -0
- package/src/services/automation.ts +140 -0
- package/src/services/cf-settings.ts +58 -0
- package/src/services/document-assistant.ts +98 -38
- package/src/services/import-client.ts +134 -0
- package/src/services/settings-store.ts +99 -0
- package/src/studio.ts +33 -0
- package/src/types.ts +130 -133
- package/src/ui/ai-credentials-form.ts +205 -0
- package/src/ui/spectrum.ts +8 -0
package/dist/iframe-entry.js.map
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"/**\n* @vue/reactivity v3.5.39\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nimport { extend, hasChanged, isArray, isIntegerKey, isSymbol, isMap, hasOwn, isObject, makeMap, capitalize, toRawType, def, isFunction, EMPTY_OBJ, isSet, isPlainObject, remove, NOOP } from '@vue/shared';\n\nfunction warn(msg, ...args) {\n console.warn(`[Vue warn] ${msg}`, ...args);\n}\n\nlet activeEffectScope;\nclass EffectScope {\n // TODO isolatedDeclarations \"__v_skip\"\n constructor(detached = false) {\n this.detached = detached;\n /**\n * @internal\n */\n this._active = true;\n /**\n * @internal track `on` calls, allow `on` call multiple times\n */\n this._on = 0;\n /**\n * @internal\n */\n this.effects = [];\n /**\n * @internal\n */\n this.cleanups = [];\n this._isPaused = false;\n this._warnOnRun = true;\n this.__v_skip = true;\n if (!detached && activeEffectScope) {\n if (activeEffectScope.active) {\n this.parent = activeEffectScope;\n this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(\n this\n ) - 1;\n } else {\n this._active = false;\n this._warnOnRun = false;\n }\n }\n }\n get active() {\n return this._active;\n }\n pause() {\n if (this._active) {\n this._isPaused = true;\n let i, l;\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].pause();\n }\n }\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].pause();\n }\n }\n }\n /**\n * Resumes the effect scope, including all child scopes and effects.\n */\n resume() {\n if (this._active) {\n if (this._isPaused) {\n this._isPaused = false;\n let i, l;\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].resume();\n }\n }\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].resume();\n }\n }\n }\n }\n run(fn) {\n if (this._active) {\n const currentEffectScope = activeEffectScope;\n try {\n activeEffectScope = this;\n return fn();\n } finally {\n activeEffectScope = currentEffectScope;\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && this._warnOnRun) {\n warn(`cannot run an inactive effect scope.`);\n }\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n on() {\n if (++this._on === 1) {\n this.prevScope = activeEffectScope;\n activeEffectScope = this;\n }\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n off() {\n if (this._on > 0 && --this._on === 0) {\n if (activeEffectScope === this) {\n activeEffectScope = this.prevScope;\n } else {\n let current = activeEffectScope;\n while (current) {\n if (current.prevScope === this) {\n current.prevScope = this.prevScope;\n break;\n }\n current = current.prevScope;\n }\n }\n this.prevScope = void 0;\n }\n }\n stop(fromParent) {\n if (this._active) {\n this._active = false;\n let i, l;\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].stop();\n }\n this.effects.length = 0;\n for (i = 0, l = this.cleanups.length; i < l; i++) {\n this.cleanups[i]();\n }\n this.cleanups.length = 0;\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].stop(true);\n }\n this.scopes.length = 0;\n }\n if (!this.detached && this.parent && !fromParent) {\n const last = this.parent.scopes.pop();\n if (last && last !== this) {\n this.parent.scopes[this.index] = last;\n last.index = this.index;\n }\n }\n this.parent = void 0;\n }\n }\n}\nfunction effectScope(detached) {\n return new EffectScope(detached);\n}\nfunction getCurrentScope() {\n return activeEffectScope;\n}\nfunction onScopeDispose(fn, failSilently = false) {\n if (activeEffectScope) {\n activeEffectScope.cleanups.push(fn);\n } else if (!!(process.env.NODE_ENV !== \"production\") && !failSilently) {\n warn(\n `onScopeDispose() is called when there is no active effect scope to be associated with.`\n );\n }\n}\n\nlet activeSub;\nconst EffectFlags = {\n \"ACTIVE\": 1,\n \"1\": \"ACTIVE\",\n \"RUNNING\": 2,\n \"2\": \"RUNNING\",\n \"TRACKING\": 4,\n \"4\": \"TRACKING\",\n \"NOTIFIED\": 8,\n \"8\": \"NOTIFIED\",\n \"DIRTY\": 16,\n \"16\": \"DIRTY\",\n \"ALLOW_RECURSE\": 32,\n \"32\": \"ALLOW_RECURSE\",\n \"PAUSED\": 64,\n \"64\": \"PAUSED\",\n \"EVALUATED\": 128,\n \"128\": \"EVALUATED\"\n};\nconst pausedQueueEffects = /* @__PURE__ */ new WeakSet();\nclass ReactiveEffect {\n constructor(fn) {\n this.fn = fn;\n /**\n * @internal\n */\n this.deps = void 0;\n /**\n * @internal\n */\n this.depsTail = void 0;\n /**\n * @internal\n */\n this.flags = 1 | 4;\n /**\n * @internal\n */\n this.next = void 0;\n /**\n * @internal\n */\n this.cleanup = void 0;\n this.scheduler = void 0;\n if (activeEffectScope) {\n if (activeEffectScope.active) {\n activeEffectScope.effects.push(this);\n } else {\n this.flags &= -2;\n }\n }\n }\n pause() {\n this.flags |= 64;\n }\n resume() {\n if (this.flags & 64) {\n this.flags &= -65;\n if (pausedQueueEffects.has(this)) {\n pausedQueueEffects.delete(this);\n this.trigger();\n }\n }\n }\n /**\n * @internal\n */\n notify() {\n if (this.flags & 2 && !(this.flags & 32)) {\n return;\n }\n if (!(this.flags & 8)) {\n batch(this);\n }\n }\n run() {\n if (!(this.flags & 1)) {\n return this.fn();\n }\n this.flags |= 2;\n cleanupEffect(this);\n prepareDeps(this);\n const prevEffect = activeSub;\n const prevShouldTrack = shouldTrack;\n activeSub = this;\n shouldTrack = true;\n try {\n return this.fn();\n } finally {\n if (!!(process.env.NODE_ENV !== \"production\") && activeSub !== this) {\n warn(\n \"Active effect was not restored correctly - this is likely a Vue internal bug.\"\n );\n }\n cleanupDeps(this);\n activeSub = prevEffect;\n shouldTrack = prevShouldTrack;\n this.flags &= -3;\n }\n }\n stop() {\n if (this.flags & 1) {\n for (let link = this.deps; link; link = link.nextDep) {\n removeSub(link);\n }\n this.deps = this.depsTail = void 0;\n cleanupEffect(this);\n this.onStop && this.onStop();\n this.flags &= -2;\n }\n }\n trigger() {\n if (this.flags & 64) {\n pausedQueueEffects.add(this);\n } else if (this.scheduler) {\n this.scheduler();\n } else {\n this.runIfDirty();\n }\n }\n /**\n * @internal\n */\n runIfDirty() {\n if (isDirty(this)) {\n this.run();\n }\n }\n get dirty() {\n return isDirty(this);\n }\n}\nlet batchDepth = 0;\nlet batchedSub;\nlet batchedComputed;\nfunction batch(sub, isComputed = false) {\n sub.flags |= 8;\n if (isComputed) {\n sub.next = batchedComputed;\n batchedComputed = sub;\n return;\n }\n sub.next = batchedSub;\n batchedSub = sub;\n}\nfunction startBatch() {\n batchDepth++;\n}\nfunction endBatch() {\n if (--batchDepth > 0) {\n return;\n }\n if (batchedComputed) {\n let e = batchedComputed;\n batchedComputed = void 0;\n while (e) {\n const next = e.next;\n e.next = void 0;\n e.flags &= -9;\n e = next;\n }\n }\n let error;\n while (batchedSub) {\n let e = batchedSub;\n batchedSub = void 0;\n while (e) {\n const next = e.next;\n e.next = void 0;\n e.flags &= -9;\n if (e.flags & 1) {\n try {\n ;\n e.trigger();\n } catch (err) {\n if (!error) error = err;\n }\n }\n e = next;\n }\n }\n if (error) throw error;\n}\nfunction prepareDeps(sub) {\n for (let link = sub.deps; link; link = link.nextDep) {\n link.version = -1;\n link.prevActiveLink = link.dep.activeLink;\n link.dep.activeLink = link;\n }\n}\nfunction cleanupDeps(sub) {\n let head;\n let tail = sub.depsTail;\n let link = tail;\n while (link) {\n const prev = link.prevDep;\n if (link.version === -1) {\n if (link === tail) tail = prev;\n removeSub(link);\n removeDep(link);\n } else {\n head = link;\n }\n link.dep.activeLink = link.prevActiveLink;\n link.prevActiveLink = void 0;\n link = prev;\n }\n sub.deps = head;\n sub.depsTail = tail;\n}\nfunction isDirty(sub) {\n for (let link = sub.deps; link; link = link.nextDep) {\n if (link.dep.version !== link.version || link.dep.computed && (refreshComputed(link.dep.computed) || link.dep.version !== link.version)) {\n return true;\n }\n }\n if (sub._dirty) {\n return true;\n }\n return false;\n}\nfunction refreshComputed(computed) {\n if (computed.flags & 4 && !(computed.flags & 16)) {\n return;\n }\n computed.flags &= -17;\n if (computed.globalVersion === globalVersion) {\n return;\n }\n computed.globalVersion = globalVersion;\n if (!computed.isSSR && computed.flags & 128 && (!computed.deps && !computed._dirty || !isDirty(computed))) {\n return;\n }\n computed.flags |= 2;\n const dep = computed.dep;\n const prevSub = activeSub;\n const prevShouldTrack = shouldTrack;\n activeSub = computed;\n shouldTrack = true;\n try {\n prepareDeps(computed);\n const value = computed.fn(computed._value);\n if (dep.version === 0 || hasChanged(value, computed._value)) {\n computed.flags |= 128;\n computed._value = value;\n dep.version++;\n }\n } catch (err) {\n dep.version++;\n throw err;\n } finally {\n activeSub = prevSub;\n shouldTrack = prevShouldTrack;\n cleanupDeps(computed);\n computed.flags &= -3;\n }\n}\nfunction removeSub(link, soft = false) {\n const { dep, prevSub, nextSub } = link;\n if (prevSub) {\n prevSub.nextSub = nextSub;\n link.prevSub = void 0;\n }\n if (nextSub) {\n nextSub.prevSub = prevSub;\n link.nextSub = void 0;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && dep.subsHead === link) {\n dep.subsHead = nextSub;\n }\n if (dep.subs === link) {\n dep.subs = prevSub;\n if (!prevSub && dep.computed) {\n dep.computed.flags &= -5;\n for (let l = dep.computed.deps; l; l = l.nextDep) {\n removeSub(l, true);\n }\n }\n }\n if (!soft && !--dep.sc && dep.map) {\n dep.map.delete(dep.key);\n }\n}\nfunction removeDep(link) {\n const { prevDep, nextDep } = link;\n if (prevDep) {\n prevDep.nextDep = nextDep;\n link.prevDep = void 0;\n }\n if (nextDep) {\n nextDep.prevDep = prevDep;\n link.nextDep = void 0;\n }\n}\nfunction effect(fn, options) {\n if (fn.effect instanceof ReactiveEffect) {\n fn = fn.effect.fn;\n }\n const e = new ReactiveEffect(fn);\n if (options) {\n extend(e, options);\n }\n try {\n e.run();\n } catch (err) {\n e.stop();\n throw err;\n }\n const runner = e.run.bind(e);\n runner.effect = e;\n return runner;\n}\nfunction stop(runner) {\n runner.effect.stop();\n}\nlet shouldTrack = true;\nconst trackStack = [];\nfunction pauseTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = false;\n}\nfunction enableTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = true;\n}\nfunction resetTracking() {\n const last = trackStack.pop();\n shouldTrack = last === void 0 ? true : last;\n}\nfunction onEffectCleanup(fn, failSilently = false) {\n if (activeSub instanceof ReactiveEffect) {\n activeSub.cleanup = fn;\n } else if (!!(process.env.NODE_ENV !== \"production\") && !failSilently) {\n warn(\n `onEffectCleanup() was called when there was no active effect to associate with.`\n );\n }\n}\nfunction cleanupEffect(e) {\n const { cleanup } = e;\n e.cleanup = void 0;\n if (cleanup) {\n const prevSub = activeSub;\n activeSub = void 0;\n try {\n cleanup();\n } finally {\n activeSub = prevSub;\n }\n }\n}\n\nlet globalVersion = 0;\nclass Link {\n constructor(sub, dep) {\n this.sub = sub;\n this.dep = dep;\n this.version = dep.version;\n this.nextDep = this.prevDep = this.nextSub = this.prevSub = this.prevActiveLink = void 0;\n }\n}\nclass Dep {\n // TODO isolatedDeclarations \"__v_skip\"\n constructor(computed) {\n this.computed = computed;\n this.version = 0;\n /**\n * Link between this dep and the current active effect\n */\n this.activeLink = void 0;\n /**\n * Doubly linked list representing the subscribing effects (tail)\n */\n this.subs = void 0;\n /**\n * For object property deps cleanup\n */\n this.map = void 0;\n this.key = void 0;\n /**\n * Subscriber counter\n */\n this.sc = 0;\n /**\n * @internal\n */\n this.__v_skip = true;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n this.subsHead = void 0;\n }\n }\n track(debugInfo) {\n if (!activeSub || !shouldTrack || activeSub === this.computed) {\n return;\n }\n let link = this.activeLink;\n if (link === void 0 || link.sub !== activeSub) {\n link = this.activeLink = new Link(activeSub, this);\n if (!activeSub.deps) {\n activeSub.deps = activeSub.depsTail = link;\n } else {\n link.prevDep = activeSub.depsTail;\n activeSub.depsTail.nextDep = link;\n activeSub.depsTail = link;\n }\n addSub(link);\n } else if (link.version === -1) {\n link.version = this.version;\n if (link.nextDep) {\n const next = link.nextDep;\n next.prevDep = link.prevDep;\n if (link.prevDep) {\n link.prevDep.nextDep = next;\n }\n link.prevDep = activeSub.depsTail;\n link.nextDep = void 0;\n activeSub.depsTail.nextDep = link;\n activeSub.depsTail = link;\n if (activeSub.deps === link) {\n activeSub.deps = next;\n }\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") && activeSub.onTrack) {\n activeSub.onTrack(\n extend(\n {\n effect: activeSub\n },\n debugInfo\n )\n );\n }\n return link;\n }\n trigger(debugInfo) {\n this.version++;\n globalVersion++;\n this.notify(debugInfo);\n }\n notify(debugInfo) {\n startBatch();\n try {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n for (let head = this.subsHead; head; head = head.nextSub) {\n if (head.sub.onTrigger && !(head.sub.flags & 8)) {\n head.sub.onTrigger(\n extend(\n {\n effect: head.sub\n },\n debugInfo\n )\n );\n }\n }\n }\n for (let link = this.subs; link; link = link.prevSub) {\n if (link.sub.notify()) {\n ;\n link.sub.dep.notify();\n }\n }\n } finally {\n endBatch();\n }\n }\n}\nfunction addSub(link) {\n link.dep.sc++;\n if (link.sub.flags & 4) {\n const computed = link.dep.computed;\n if (computed && !link.dep.subs) {\n computed.flags |= 4 | 16;\n for (let l = computed.deps; l; l = l.nextDep) {\n addSub(l);\n }\n }\n const currentTail = link.dep.subs;\n if (currentTail !== link) {\n link.prevSub = currentTail;\n if (currentTail) currentTail.nextSub = link;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && link.dep.subsHead === void 0) {\n link.dep.subsHead = link;\n }\n link.dep.subs = link;\n }\n}\nconst targetMap = /* @__PURE__ */ new WeakMap();\nconst ITERATE_KEY = /* @__PURE__ */ Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? \"Object iterate\" : \"\"\n);\nconst MAP_KEY_ITERATE_KEY = /* @__PURE__ */ Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? \"Map keys iterate\" : \"\"\n);\nconst ARRAY_ITERATE_KEY = /* @__PURE__ */ Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? \"Array iterate\" : \"\"\n);\nfunction track(target, type, key) {\n if (shouldTrack && activeSub) {\n let depsMap = targetMap.get(target);\n if (!depsMap) {\n targetMap.set(target, depsMap = /* @__PURE__ */ new Map());\n }\n let dep = depsMap.get(key);\n if (!dep) {\n depsMap.set(key, dep = new Dep());\n dep.map = depsMap;\n dep.key = key;\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n dep.track({\n target,\n type,\n key\n });\n } else {\n dep.track();\n }\n }\n}\nfunction trigger(target, type, key, newValue, oldValue, oldTarget) {\n const depsMap = targetMap.get(target);\n if (!depsMap) {\n globalVersion++;\n return;\n }\n const run = (dep) => {\n if (dep) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n dep.trigger({\n target,\n type,\n key,\n newValue,\n oldValue,\n oldTarget\n });\n } else {\n dep.trigger();\n }\n }\n };\n startBatch();\n if (type === \"clear\") {\n depsMap.forEach(run);\n } else {\n const targetIsArray = isArray(target);\n const isArrayIndex = targetIsArray && isIntegerKey(key);\n if (targetIsArray && key === \"length\") {\n const newLength = Number(newValue);\n depsMap.forEach((dep, key2) => {\n if (key2 === \"length\" || key2 === ARRAY_ITERATE_KEY || !isSymbol(key2) && key2 >= newLength) {\n run(dep);\n }\n });\n } else {\n if (key !== void 0 || depsMap.has(void 0)) {\n run(depsMap.get(key));\n }\n if (isArrayIndex) {\n run(depsMap.get(ARRAY_ITERATE_KEY));\n }\n switch (type) {\n case \"add\":\n if (!targetIsArray) {\n run(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n run(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n } else if (isArrayIndex) {\n run(depsMap.get(\"length\"));\n }\n break;\n case \"delete\":\n if (!targetIsArray) {\n run(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n run(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n }\n break;\n case \"set\":\n if (isMap(target)) {\n run(depsMap.get(ITERATE_KEY));\n }\n break;\n }\n }\n }\n endBatch();\n}\nfunction getDepFromReactive(object, key) {\n const depMap = targetMap.get(object);\n return depMap && depMap.get(key);\n}\n\nfunction reactiveReadArray(array) {\n const raw = toRaw(array);\n if (raw === array) return raw;\n track(raw, \"iterate\", ARRAY_ITERATE_KEY);\n return isShallow(array) ? raw : raw.map(toReactive);\n}\nfunction shallowReadArray(arr) {\n track(arr = toRaw(arr), \"iterate\", ARRAY_ITERATE_KEY);\n return arr;\n}\nfunction toWrapped(target, item) {\n if (isReadonly(target)) {\n return isReactive(target) ? toReadonly(toReactive(item)) : toReadonly(item);\n }\n return toReactive(item);\n}\nconst arrayInstrumentations = {\n __proto__: null,\n [Symbol.iterator]() {\n return iterator(this, Symbol.iterator, (item) => toWrapped(this, item));\n },\n concat(...args) {\n return reactiveReadArray(this).concat(\n ...args.map((x) => isArray(x) ? reactiveReadArray(x) : x)\n );\n },\n entries() {\n return iterator(this, \"entries\", (value) => {\n value[1] = toWrapped(this, value[1]);\n return value;\n });\n },\n every(fn, thisArg) {\n return apply(this, \"every\", fn, thisArg, void 0, arguments);\n },\n filter(fn, thisArg) {\n return apply(\n this,\n \"filter\",\n fn,\n thisArg,\n (v) => v.map((item) => toWrapped(this, item)),\n arguments\n );\n },\n find(fn, thisArg) {\n return apply(\n this,\n \"find\",\n fn,\n thisArg,\n (item) => toWrapped(this, item),\n arguments\n );\n },\n findIndex(fn, thisArg) {\n return apply(this, \"findIndex\", fn, thisArg, void 0, arguments);\n },\n findLast(fn, thisArg) {\n return apply(\n this,\n \"findLast\",\n fn,\n thisArg,\n (item) => toWrapped(this, item),\n arguments\n );\n },\n findLastIndex(fn, thisArg) {\n return apply(this, \"findLastIndex\", fn, thisArg, void 0, arguments);\n },\n // flat, flatMap could benefit from ARRAY_ITERATE but are not straight-forward to implement\n forEach(fn, thisArg) {\n return apply(this, \"forEach\", fn, thisArg, void 0, arguments);\n },\n includes(...args) {\n return searchProxy(this, \"includes\", args);\n },\n indexOf(...args) {\n return searchProxy(this, \"indexOf\", args);\n },\n join(separator) {\n return reactiveReadArray(this).join(separator);\n },\n // keys() iterator only reads `length`, no optimization required\n lastIndexOf(...args) {\n return searchProxy(this, \"lastIndexOf\", args);\n },\n map(fn, thisArg) {\n return apply(this, \"map\", fn, thisArg, void 0, arguments);\n },\n pop() {\n return noTracking(this, \"pop\");\n },\n push(...args) {\n return noTracking(this, \"push\", args);\n },\n reduce(fn, ...args) {\n return reduce(this, \"reduce\", fn, args);\n },\n reduceRight(fn, ...args) {\n return reduce(this, \"reduceRight\", fn, args);\n },\n shift() {\n return noTracking(this, \"shift\");\n },\n // slice could use ARRAY_ITERATE but also seems to beg for range tracking\n some(fn, thisArg) {\n return apply(this, \"some\", fn, thisArg, void 0, arguments);\n },\n splice(...args) {\n return noTracking(this, \"splice\", args);\n },\n toReversed() {\n return reactiveReadArray(this).toReversed();\n },\n toSorted(comparer) {\n return reactiveReadArray(this).toSorted(comparer);\n },\n toSpliced(...args) {\n return reactiveReadArray(this).toSpliced(...args);\n },\n unshift(...args) {\n return noTracking(this, \"unshift\", args);\n },\n values() {\n return iterator(this, \"values\", (item) => toWrapped(this, item));\n }\n};\nfunction iterator(self, method, wrapValue) {\n const arr = shallowReadArray(self);\n const iter = arr[method]();\n if (arr !== self && !isShallow(self)) {\n iter._next = iter.next;\n iter.next = () => {\n const result = iter._next();\n if (!result.done) {\n result.value = wrapValue(result.value);\n }\n return result;\n };\n }\n return iter;\n}\nconst arrayProto = Array.prototype;\nfunction apply(self, method, fn, thisArg, wrappedRetFn, args) {\n const arr = shallowReadArray(self);\n const needsWrap = arr !== self && !isShallow(self);\n const methodFn = arr[method];\n if (methodFn !== arrayProto[method]) {\n const result2 = methodFn.apply(self, args);\n return needsWrap ? toReactive(result2) : result2;\n }\n let wrappedFn = fn;\n if (arr !== self) {\n if (needsWrap) {\n wrappedFn = function(item, index) {\n return fn.call(this, toWrapped(self, item), index, self);\n };\n } else if (fn.length > 2) {\n wrappedFn = function(item, index) {\n return fn.call(this, item, index, self);\n };\n }\n }\n const result = methodFn.call(arr, wrappedFn, thisArg);\n return needsWrap && wrappedRetFn ? wrappedRetFn(result) : result;\n}\nfunction reduce(self, method, fn, args) {\n const arr = shallowReadArray(self);\n const needsWrap = arr !== self && !isShallow(self);\n let wrappedFn = fn;\n let wrapInitialAccumulator = false;\n if (arr !== self) {\n if (needsWrap) {\n wrapInitialAccumulator = args.length === 0;\n wrappedFn = function(acc, item, index) {\n if (wrapInitialAccumulator) {\n wrapInitialAccumulator = false;\n acc = toWrapped(self, acc);\n }\n return fn.call(this, acc, toWrapped(self, item), index, self);\n };\n } else if (fn.length > 3) {\n wrappedFn = function(acc, item, index) {\n return fn.call(this, acc, item, index, self);\n };\n }\n }\n const result = arr[method](wrappedFn, ...args);\n return wrapInitialAccumulator ? toWrapped(self, result) : result;\n}\nfunction searchProxy(self, method, args) {\n const arr = toRaw(self);\n track(arr, \"iterate\", ARRAY_ITERATE_KEY);\n const res = arr[method](...args);\n if ((res === -1 || res === false) && isProxy(args[0])) {\n args[0] = toRaw(args[0]);\n return arr[method](...args);\n }\n return res;\n}\nfunction noTracking(self, method, args = []) {\n pauseTracking();\n startBatch();\n const res = toRaw(self)[method].apply(self, args);\n endBatch();\n resetTracking();\n return res;\n}\n\nconst isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`);\nconst builtInSymbols = new Set(\n /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== \"arguments\" && key !== \"caller\").map((key) => Symbol[key]).filter(isSymbol)\n);\nfunction hasOwnProperty(key) {\n if (!isSymbol(key)) key = String(key);\n const obj = toRaw(this);\n track(obj, \"has\", key);\n return obj.hasOwnProperty(key);\n}\nclass BaseReactiveHandler {\n constructor(_isReadonly = false, _isShallow = false) {\n this._isReadonly = _isReadonly;\n this._isShallow = _isShallow;\n }\n get(target, key, receiver) {\n if (key === \"__v_skip\") return target[\"__v_skip\"];\n const isReadonly2 = this._isReadonly, isShallow2 = this._isShallow;\n if (key === \"__v_isReactive\") {\n return !isReadonly2;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly2;\n } else if (key === \"__v_isShallow\") {\n return isShallow2;\n } else if (key === \"__v_raw\") {\n if (receiver === (isReadonly2 ? isShallow2 ? shallowReadonlyMap : readonlyMap : isShallow2 ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype\n // this means the receiver is a user proxy of the reactive proxy\n Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) {\n return target;\n }\n return;\n }\n const targetIsArray = isArray(target);\n if (!isReadonly2) {\n let fn;\n if (targetIsArray && (fn = arrayInstrumentations[key])) {\n return fn;\n }\n if (key === \"hasOwnProperty\") {\n return hasOwnProperty;\n }\n }\n const res = Reflect.get(\n target,\n key,\n // if this is a proxy wrapping a ref, return methods using the raw ref\n // as receiver so that we don't have to call `toRaw` on the ref in all\n // its class methods\n isRef(target) ? target : receiver\n );\n if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {\n return res;\n }\n if (!isReadonly2) {\n track(target, \"get\", key);\n }\n if (isShallow2) {\n return res;\n }\n if (isRef(res)) {\n const value = targetIsArray && isIntegerKey(key) ? res : res.value;\n return isReadonly2 && isObject(value) ? readonly(value) : value;\n }\n if (isObject(res)) {\n return isReadonly2 ? readonly(res) : reactive(res);\n }\n return res;\n }\n}\nclass MutableReactiveHandler extends BaseReactiveHandler {\n constructor(isShallow2 = false) {\n super(false, isShallow2);\n }\n set(target, key, value, receiver) {\n let oldValue = target[key];\n const isArrayWithIntegerKey = isArray(target) && isIntegerKey(key);\n if (!this._isShallow) {\n const isOldValueReadonly = isReadonly(oldValue);\n if (!isShallow(value) && !isReadonly(value)) {\n oldValue = toRaw(oldValue);\n value = toRaw(value);\n }\n if (!isArrayWithIntegerKey && isRef(oldValue) && !isRef(value)) {\n if (isOldValueReadonly) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `Set operation on key \"${String(key)}\" failed: target is readonly.`,\n target[key]\n );\n }\n return true;\n } else {\n oldValue.value = value;\n return true;\n }\n }\n }\n const hadKey = isArrayWithIntegerKey ? Number(key) < target.length : hasOwn(target, key);\n const result = Reflect.set(\n target,\n key,\n value,\n isRef(target) ? target : receiver\n );\n if (target === toRaw(receiver) && result) {\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n }\n return result;\n }\n deleteProperty(target, key) {\n const hadKey = hasOwn(target, key);\n const oldValue = target[key];\n const result = Reflect.deleteProperty(target, key);\n if (result && hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n }\n has(target, key) {\n const result = Reflect.has(target, key);\n if (!isSymbol(key) || !builtInSymbols.has(key)) {\n track(target, \"has\", key);\n }\n return result;\n }\n ownKeys(target) {\n track(\n target,\n \"iterate\",\n isArray(target) ? \"length\" : ITERATE_KEY\n );\n return Reflect.ownKeys(target);\n }\n}\nclass ReadonlyReactiveHandler extends BaseReactiveHandler {\n constructor(isShallow2 = false) {\n super(true, isShallow2);\n }\n set(target, key) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `Set operation on key \"${String(key)}\" failed: target is readonly.`,\n target\n );\n }\n return true;\n }\n deleteProperty(target, key) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `Delete operation on key \"${String(key)}\" failed: target is readonly.`,\n target\n );\n }\n return true;\n }\n}\nconst mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler();\nconst readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler();\nconst shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler(true);\nconst shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true);\n\nconst toShallow = (value) => value;\nconst getProto = (v) => Reflect.getPrototypeOf(v);\nfunction createIterableMethod(method, isReadonly2, isShallow2) {\n return function(...args) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const targetIsMap = isMap(rawTarget);\n const isPair = method === \"entries\" || method === Symbol.iterator && targetIsMap;\n const isKeyOnly = method === \"keys\" && targetIsMap;\n const innerIterator = target[method](...args);\n const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive;\n !isReadonly2 && track(\n rawTarget,\n \"iterate\",\n isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY\n );\n return extend(\n // inheriting all iterator properties\n Object.create(innerIterator),\n {\n // iterator protocol\n next() {\n const { value, done } = innerIterator.next();\n return done ? { value, done } : {\n value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),\n done\n };\n }\n }\n );\n };\n}\nfunction createReadonlyMethod(type) {\n return function(...args) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const key = args[0] ? `on key \"${args[0]}\" ` : ``;\n warn(\n `${capitalize(type)} operation ${key}failed: target is readonly.`,\n toRaw(this)\n );\n }\n return type === \"delete\" ? false : type === \"clear\" ? void 0 : this;\n };\n}\nfunction createInstrumentations(readonly, shallow) {\n const instrumentations = {\n get(key) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!readonly) {\n if (hasChanged(key, rawKey)) {\n track(rawTarget, \"get\", key);\n }\n track(rawTarget, \"get\", rawKey);\n }\n const { has } = getProto(rawTarget);\n const wrap = shallow ? toShallow : readonly ? toReadonly : toReactive;\n if (has.call(rawTarget, key)) {\n return wrap(target.get(key));\n } else if (has.call(rawTarget, rawKey)) {\n return wrap(target.get(rawKey));\n } else if (target !== rawTarget) {\n target.get(key);\n }\n },\n get size() {\n const target = this[\"__v_raw\"];\n !readonly && track(toRaw(target), \"iterate\", ITERATE_KEY);\n return target.size;\n },\n has(key) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!readonly) {\n if (hasChanged(key, rawKey)) {\n track(rawTarget, \"has\", key);\n }\n track(rawTarget, \"has\", rawKey);\n }\n return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey);\n },\n forEach(callback, thisArg) {\n const observed = this;\n const target = observed[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const wrap = shallow ? toShallow : readonly ? toReadonly : toReactive;\n !readonly && track(rawTarget, \"iterate\", ITERATE_KEY);\n return target.forEach((value, key) => {\n return callback.call(thisArg, wrap(value), wrap(key), observed);\n });\n }\n };\n extend(\n instrumentations,\n readonly ? {\n add: createReadonlyMethod(\"add\"),\n set: createReadonlyMethod(\"set\"),\n delete: createReadonlyMethod(\"delete\"),\n clear: createReadonlyMethod(\"clear\")\n } : {\n add(value) {\n const target = toRaw(this);\n const proto = getProto(target);\n const rawValue = toRaw(value);\n const valueToAdd = !shallow && !isShallow(value) && !isReadonly(value) ? rawValue : value;\n const hadKey = proto.has.call(target, valueToAdd) || hasChanged(value, valueToAdd) && proto.has.call(target, value) || hasChanged(rawValue, valueToAdd) && proto.has.call(target, rawValue);\n if (!hadKey) {\n target.add(valueToAdd);\n trigger(target, \"add\", valueToAdd, valueToAdd);\n }\n return this;\n },\n set(key, value) {\n if (!shallow && !isShallow(value) && !isReadonly(value)) {\n value = toRaw(value);\n }\n const target = toRaw(this);\n const { has, get } = getProto(target);\n let hadKey = has.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has.call(target, key);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n checkIdentityKeys(target, has, key);\n }\n const oldValue = get.call(target, key);\n target.set(key, value);\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n return this;\n },\n delete(key) {\n const target = toRaw(this);\n const { has, get } = getProto(target);\n let hadKey = has.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has.call(target, key);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n checkIdentityKeys(target, has, key);\n }\n const oldValue = get ? get.call(target, key) : void 0;\n const result = target.delete(key);\n if (hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n },\n clear() {\n const target = toRaw(this);\n const hadItems = target.size !== 0;\n const oldTarget = !!(process.env.NODE_ENV !== \"production\") ? isMap(target) ? new Map(target) : new Set(target) : void 0;\n const result = target.clear();\n if (hadItems) {\n trigger(\n target,\n \"clear\",\n void 0,\n void 0,\n oldTarget\n );\n }\n return result;\n }\n }\n );\n const iteratorMethods = [\n \"keys\",\n \"values\",\n \"entries\",\n Symbol.iterator\n ];\n iteratorMethods.forEach((method) => {\n instrumentations[method] = createIterableMethod(method, readonly, shallow);\n });\n return instrumentations;\n}\nfunction createInstrumentationGetter(isReadonly2, shallow) {\n const instrumentations = createInstrumentations(isReadonly2, shallow);\n return (target, key, receiver) => {\n if (key === \"__v_isReactive\") {\n return !isReadonly2;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly2;\n } else if (key === \"__v_raw\") {\n return target;\n }\n return Reflect.get(\n hasOwn(instrumentations, key) && key in target ? instrumentations : target,\n key,\n receiver\n );\n };\n}\nconst mutableCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, false)\n};\nconst shallowCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, true)\n};\nconst readonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, false)\n};\nconst shallowReadonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, true)\n};\nfunction checkIdentityKeys(target, has, key) {\n const rawKey = toRaw(key);\n if (rawKey !== key && has.call(target, rawKey)) {\n const type = toRawType(target);\n warn(\n `Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`\n );\n }\n}\n\nconst reactiveMap = /* @__PURE__ */ new WeakMap();\nconst shallowReactiveMap = /* @__PURE__ */ new WeakMap();\nconst readonlyMap = /* @__PURE__ */ new WeakMap();\nconst shallowReadonlyMap = /* @__PURE__ */ new WeakMap();\nfunction targetTypeMap(rawType) {\n switch (rawType) {\n case \"Object\":\n case \"Array\":\n return 1 /* COMMON */;\n case \"Map\":\n case \"Set\":\n case \"WeakMap\":\n case \"WeakSet\":\n return 2 /* COLLECTION */;\n default:\n return 0 /* INVALID */;\n }\n}\n// @__NO_SIDE_EFFECTS__\nfunction reactive(target) {\n if (/* @__PURE__ */ isReadonly(target)) {\n return target;\n }\n return createReactiveObject(\n target,\n false,\n mutableHandlers,\n mutableCollectionHandlers,\n reactiveMap\n );\n}\n// @__NO_SIDE_EFFECTS__\nfunction shallowReactive(target) {\n return createReactiveObject(\n target,\n false,\n shallowReactiveHandlers,\n shallowCollectionHandlers,\n shallowReactiveMap\n );\n}\n// @__NO_SIDE_EFFECTS__\nfunction readonly(target) {\n return createReactiveObject(\n target,\n true,\n readonlyHandlers,\n readonlyCollectionHandlers,\n readonlyMap\n );\n}\n// @__NO_SIDE_EFFECTS__\nfunction shallowReadonly(target) {\n return createReactiveObject(\n target,\n true,\n shallowReadonlyHandlers,\n shallowReadonlyCollectionHandlers,\n shallowReadonlyMap\n );\n}\nfunction createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) {\n if (!isObject(target)) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `value cannot be made ${isReadonly2 ? \"readonly\" : \"reactive\"}: ${String(\n target\n )}`\n );\n }\n return target;\n }\n if (target[\"__v_raw\"] && !(isReadonly2 && target[\"__v_isReactive\"])) {\n return target;\n }\n if (target[\"__v_skip\"] || !Object.isExtensible(target)) {\n return target;\n }\n const existingProxy = proxyMap.get(target);\n if (existingProxy) {\n return existingProxy;\n }\n const targetType = targetTypeMap(toRawType(target));\n if (targetType === 0 /* INVALID */) {\n return target;\n }\n const proxy = new Proxy(\n target,\n targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers\n );\n proxyMap.set(target, proxy);\n return proxy;\n}\n// @__NO_SIDE_EFFECTS__\nfunction isReactive(value) {\n if (/* @__PURE__ */ isReadonly(value)) {\n return /* @__PURE__ */ isReactive(value[\"__v_raw\"]);\n }\n return !!(value && value[\"__v_isReactive\"]);\n}\n// @__NO_SIDE_EFFECTS__\nfunction isReadonly(value) {\n return !!(value && value[\"__v_isReadonly\"]);\n}\n// @__NO_SIDE_EFFECTS__\nfunction isShallow(value) {\n return !!(value && value[\"__v_isShallow\"]);\n}\n// @__NO_SIDE_EFFECTS__\nfunction isProxy(value) {\n return value ? !!value[\"__v_raw\"] : false;\n}\n// @__NO_SIDE_EFFECTS__\nfunction toRaw(observed) {\n const raw = observed && observed[\"__v_raw\"];\n return raw ? /* @__PURE__ */ toRaw(raw) : observed;\n}\nfunction markRaw(value) {\n if (!hasOwn(value, \"__v_skip\") && Object.isExtensible(value)) {\n def(value, \"__v_skip\", true);\n }\n return value;\n}\nconst toReactive = (value) => isObject(value) ? /* @__PURE__ */ reactive(value) : value;\nconst toReadonly = (value) => isObject(value) ? /* @__PURE__ */ readonly(value) : value;\n\n// @__NO_SIDE_EFFECTS__\nfunction isRef(r) {\n return r ? r[\"__v_isRef\"] === true : false;\n}\n// @__NO_SIDE_EFFECTS__\nfunction ref(value) {\n return createRef(value, false);\n}\n// @__NO_SIDE_EFFECTS__\nfunction shallowRef(value) {\n return createRef(value, true);\n}\nfunction createRef(rawValue, shallow) {\n if (/* @__PURE__ */ isRef(rawValue)) {\n return rawValue;\n }\n return new RefImpl(rawValue, shallow);\n}\nclass RefImpl {\n constructor(value, isShallow2) {\n this.dep = new Dep();\n this[\"__v_isRef\"] = true;\n this[\"__v_isShallow\"] = false;\n this._rawValue = isShallow2 ? value : toRaw(value);\n this._value = isShallow2 ? value : toReactive(value);\n this[\"__v_isShallow\"] = isShallow2;\n }\n get value() {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n this.dep.track({\n target: this,\n type: \"get\",\n key: \"value\"\n });\n } else {\n this.dep.track();\n }\n return this._value;\n }\n set value(newValue) {\n const oldValue = this._rawValue;\n const useDirectValue = this[\"__v_isShallow\"] || isShallow(newValue) || isReadonly(newValue);\n newValue = useDirectValue ? newValue : toRaw(newValue);\n if (hasChanged(newValue, oldValue)) {\n this._rawValue = newValue;\n this._value = useDirectValue ? newValue : toReactive(newValue);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n this.dep.trigger({\n target: this,\n type: \"set\",\n key: \"value\",\n newValue,\n oldValue\n });\n } else {\n this.dep.trigger();\n }\n }\n }\n}\nfunction triggerRef(ref2) {\n if (ref2.dep) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n ref2.dep.trigger({\n target: ref2,\n type: \"set\",\n key: \"value\",\n newValue: ref2._value\n });\n } else {\n ref2.dep.trigger();\n }\n }\n}\nfunction unref(ref2) {\n return /* @__PURE__ */ isRef(ref2) ? ref2.value : ref2;\n}\nfunction toValue(source) {\n return isFunction(source) ? source() : unref(source);\n}\nconst shallowUnwrapHandlers = {\n get: (target, key, receiver) => key === \"__v_raw\" ? target : unref(Reflect.get(target, key, receiver)),\n set: (target, key, value, receiver) => {\n const oldValue = target[key];\n if (/* @__PURE__ */ isRef(oldValue) && !/* @__PURE__ */ isRef(value)) {\n oldValue.value = value;\n return true;\n } else {\n return Reflect.set(target, key, value, receiver);\n }\n }\n};\nfunction proxyRefs(objectWithRefs) {\n return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers);\n}\nclass CustomRefImpl {\n constructor(factory) {\n this[\"__v_isRef\"] = true;\n this._value = void 0;\n const dep = this.dep = new Dep();\n const { get, set } = factory(dep.track.bind(dep), dep.trigger.bind(dep));\n this._get = get;\n this._set = set;\n }\n get value() {\n return this._value = this._get();\n }\n set value(newVal) {\n this._set(newVal);\n }\n}\nfunction customRef(factory) {\n return new CustomRefImpl(factory);\n}\n// @__NO_SIDE_EFFECTS__\nfunction toRefs(object) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isProxy(object)) {\n warn(`toRefs() expects a reactive object but received a plain one.`);\n }\n const ret = isArray(object) ? new Array(object.length) : {};\n for (const key in object) {\n ret[key] = propertyToRef(object, key);\n }\n return ret;\n}\nclass ObjectRefImpl {\n constructor(_object, key, _defaultValue) {\n this._object = _object;\n this._defaultValue = _defaultValue;\n this[\"__v_isRef\"] = true;\n this._value = void 0;\n this._key = isSymbol(key) ? key : String(key);\n this._raw = toRaw(_object);\n let shallow = true;\n let obj = _object;\n if (!isArray(_object) || isSymbol(this._key) || !isIntegerKey(this._key)) {\n do {\n shallow = !isProxy(obj) || isShallow(obj);\n } while (shallow && (obj = obj[\"__v_raw\"]));\n }\n this._shallow = shallow;\n }\n get value() {\n let val = this._object[this._key];\n if (this._shallow) {\n val = unref(val);\n }\n return this._value = val === void 0 ? this._defaultValue : val;\n }\n set value(newVal) {\n if (this._shallow && /* @__PURE__ */ isRef(this._raw[this._key])) {\n const nestedRef = this._object[this._key];\n if (/* @__PURE__ */ isRef(nestedRef)) {\n nestedRef.value = newVal;\n return;\n }\n }\n this._object[this._key] = newVal;\n }\n get dep() {\n return getDepFromReactive(this._raw, this._key);\n }\n}\nclass GetterRefImpl {\n constructor(_getter) {\n this._getter = _getter;\n this[\"__v_isRef\"] = true;\n this[\"__v_isReadonly\"] = true;\n this._value = void 0;\n }\n get value() {\n return this._value = this._getter();\n }\n}\n// @__NO_SIDE_EFFECTS__\nfunction toRef(source, key, defaultValue) {\n if (/* @__PURE__ */ isRef(source)) {\n return source;\n } else if (isFunction(source)) {\n return new GetterRefImpl(source);\n } else if (isObject(source) && arguments.length > 1) {\n return propertyToRef(source, key, defaultValue);\n } else {\n return /* @__PURE__ */ ref(source);\n }\n}\nfunction propertyToRef(source, key, defaultValue) {\n return new ObjectRefImpl(source, key, defaultValue);\n}\n\nclass ComputedRefImpl {\n constructor(fn, setter, isSSR) {\n this.fn = fn;\n this.setter = setter;\n /**\n * @internal\n */\n this._value = void 0;\n /**\n * @internal\n */\n this.dep = new Dep(this);\n /**\n * @internal\n */\n this.__v_isRef = true;\n // TODO isolatedDeclarations \"__v_isReadonly\"\n // A computed is also a subscriber that tracks other deps\n /**\n * @internal\n */\n this.deps = void 0;\n /**\n * @internal\n */\n this.depsTail = void 0;\n /**\n * @internal\n */\n this.flags = 16;\n /**\n * @internal\n */\n this.globalVersion = globalVersion - 1;\n /**\n * @internal\n */\n this.next = void 0;\n // for backwards compat\n this.effect = this;\n this[\"__v_isReadonly\"] = !setter;\n this.isSSR = isSSR;\n }\n /**\n * @internal\n */\n notify() {\n this.flags |= 16;\n if (!(this.flags & 8) && // avoid infinite self recursion\n activeSub !== this) {\n batch(this, true);\n return true;\n } else if (!!(process.env.NODE_ENV !== \"production\")) ;\n }\n get value() {\n const link = !!(process.env.NODE_ENV !== \"production\") ? this.dep.track({\n target: this,\n type: \"get\",\n key: \"value\"\n }) : this.dep.track();\n refreshComputed(this);\n if (link) {\n link.version = this.dep.version;\n }\n return this._value;\n }\n set value(newValue) {\n if (this.setter) {\n this.setter(newValue);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\"Write operation failed: computed value is readonly\");\n }\n }\n}\n// @__NO_SIDE_EFFECTS__\nfunction computed(getterOrOptions, debugOptions, isSSR = false) {\n let getter;\n let setter;\n if (isFunction(getterOrOptions)) {\n getter = getterOrOptions;\n } else {\n getter = getterOrOptions.get;\n setter = getterOrOptions.set;\n }\n const cRef = new ComputedRefImpl(getter, setter, isSSR);\n if (!!(process.env.NODE_ENV !== \"production\") && debugOptions && !isSSR) {\n cRef.onTrack = debugOptions.onTrack;\n cRef.onTrigger = debugOptions.onTrigger;\n }\n return cRef;\n}\n\nconst TrackOpTypes = {\n \"GET\": \"get\",\n \"HAS\": \"has\",\n \"ITERATE\": \"iterate\"\n};\nconst TriggerOpTypes = {\n \"SET\": \"set\",\n \"ADD\": \"add\",\n \"DELETE\": \"delete\",\n \"CLEAR\": \"clear\"\n};\nconst ReactiveFlags = {\n \"SKIP\": \"__v_skip\",\n \"IS_REACTIVE\": \"__v_isReactive\",\n \"IS_READONLY\": \"__v_isReadonly\",\n \"IS_SHALLOW\": \"__v_isShallow\",\n \"RAW\": \"__v_raw\",\n \"IS_REF\": \"__v_isRef\"\n};\n\nconst WatchErrorCodes = {\n \"WATCH_GETTER\": 2,\n \"2\": \"WATCH_GETTER\",\n \"WATCH_CALLBACK\": 3,\n \"3\": \"WATCH_CALLBACK\",\n \"WATCH_CLEANUP\": 4,\n \"4\": \"WATCH_CLEANUP\"\n};\nconst INITIAL_WATCHER_VALUE = {};\nconst cleanupMap = /* @__PURE__ */ new WeakMap();\nlet activeWatcher = void 0;\nfunction getCurrentWatcher() {\n return activeWatcher;\n}\nfunction onWatcherCleanup(cleanupFn, failSilently = false, owner = activeWatcher) {\n if (owner) {\n let cleanups = cleanupMap.get(owner);\n if (!cleanups) cleanupMap.set(owner, cleanups = []);\n cleanups.push(cleanupFn);\n } else if (!!(process.env.NODE_ENV !== \"production\") && !failSilently) {\n warn(\n `onWatcherCleanup() was called when there was no active watcher to associate with.`\n );\n }\n}\nfunction watch(source, cb, options = EMPTY_OBJ) {\n const { immediate, deep, once, scheduler, augmentJob, call } = options;\n const warnInvalidSource = (s) => {\n (options.onWarn || warn)(\n `Invalid watch source: `,\n s,\n `A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.`\n );\n };\n const reactiveGetter = (source2) => {\n if (deep) return source2;\n if (isShallow(source2) || deep === false || deep === 0)\n return traverse(source2, 1);\n return traverse(source2);\n };\n let effect;\n let getter;\n let cleanup;\n let boundCleanup;\n let forceTrigger = false;\n let isMultiSource = false;\n if (isRef(source)) {\n getter = () => source.value;\n forceTrigger = isShallow(source);\n } else if (isReactive(source)) {\n getter = () => reactiveGetter(source);\n forceTrigger = true;\n } else if (isArray(source)) {\n isMultiSource = true;\n forceTrigger = source.some((s) => isReactive(s) || isShallow(s));\n getter = () => source.map((s) => {\n if (isRef(s)) {\n return s.value;\n } else if (isReactive(s)) {\n return reactiveGetter(s);\n } else if (isFunction(s)) {\n return call ? call(s, 2) : s();\n } else {\n !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(s);\n }\n });\n } else if (isFunction(source)) {\n if (cb) {\n getter = call ? () => call(source, 2) : source;\n } else {\n getter = () => {\n if (cleanup) {\n pauseTracking();\n try {\n cleanup();\n } finally {\n resetTracking();\n }\n }\n const currentEffect = activeWatcher;\n activeWatcher = effect;\n try {\n return call ? call(source, 3, [boundCleanup]) : source(boundCleanup);\n } finally {\n activeWatcher = currentEffect;\n }\n };\n }\n } else {\n getter = NOOP;\n !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(source);\n }\n if (cb && deep) {\n const baseGetter = getter;\n const depth = deep === true ? Infinity : deep;\n getter = () => traverse(baseGetter(), depth);\n }\n const scope = getCurrentScope();\n const watchHandle = () => {\n effect.stop();\n if (scope && scope.active) {\n remove(scope.effects, effect);\n }\n };\n if (once && cb) {\n const _cb = cb;\n cb = (...args) => {\n const res = _cb(...args);\n watchHandle();\n return res;\n };\n }\n let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE;\n const job = (immediateFirstRun) => {\n if (!(effect.flags & 1) || !effect.dirty && !immediateFirstRun) {\n return;\n }\n if (cb) {\n const newValue = effect.run();\n if (immediateFirstRun || deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue))) {\n if (cleanup) {\n cleanup();\n }\n const currentWatcher = activeWatcher;\n activeWatcher = effect;\n try {\n const args = [\n newValue,\n // pass undefined as the old value when it's changed for the first time\n oldValue === INITIAL_WATCHER_VALUE ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE ? [] : oldValue,\n boundCleanup\n ];\n oldValue = newValue;\n call ? call(cb, 3, args) : (\n // @ts-expect-error\n cb(...args)\n );\n } finally {\n activeWatcher = currentWatcher;\n }\n }\n } else {\n effect.run();\n }\n };\n if (augmentJob) {\n augmentJob(job);\n }\n effect = new ReactiveEffect(getter);\n effect.scheduler = scheduler ? () => scheduler(job, false) : job;\n boundCleanup = (fn) => onWatcherCleanup(fn, false, effect);\n cleanup = effect.onStop = () => {\n const cleanups = cleanupMap.get(effect);\n if (cleanups) {\n if (call) {\n call(cleanups, 4);\n } else {\n for (const cleanup2 of cleanups) cleanup2();\n }\n cleanupMap.delete(effect);\n }\n };\n if (!!(process.env.NODE_ENV !== \"production\")) {\n effect.onTrack = options.onTrack;\n effect.onTrigger = options.onTrigger;\n }\n if (cb) {\n if (immediate) {\n job(true);\n } else {\n oldValue = effect.run();\n }\n } else if (scheduler) {\n scheduler(job.bind(null, true), true);\n } else {\n effect.run();\n }\n watchHandle.pause = effect.pause.bind(effect);\n watchHandle.resume = effect.resume.bind(effect);\n watchHandle.stop = watchHandle;\n return watchHandle;\n}\nfunction traverse(value, depth = Infinity, seen) {\n if (depth <= 0 || !isObject(value) || value[\"__v_skip\"]) {\n return value;\n }\n seen = seen || /* @__PURE__ */ new Map();\n if ((seen.get(value) || 0) >= depth) {\n return value;\n }\n seen.set(value, depth);\n depth--;\n if (isRef(value)) {\n traverse(value.value, depth, seen);\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n traverse(value[i], depth, seen);\n }\n } else if (isSet(value) || isMap(value)) {\n value.forEach((v) => {\n traverse(v, depth, seen);\n });\n } else if (isPlainObject(value)) {\n for (const key in value) {\n traverse(value[key], depth, seen);\n }\n for (const key of Object.getOwnPropertySymbols(value)) {\n if (Object.prototype.propertyIsEnumerable.call(value, key)) {\n traverse(value[key], depth, seen);\n }\n }\n }\n return value;\n}\n\nexport { ARRAY_ITERATE_KEY, EffectFlags, EffectScope, ITERATE_KEY, MAP_KEY_ITERATE_KEY, ReactiveEffect, ReactiveFlags, TrackOpTypes, TriggerOpTypes, WatchErrorCodes, computed, customRef, effect, effectScope, enableTracking, getCurrentScope, getCurrentWatcher, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onEffectCleanup, onScopeDispose, onWatcherCleanup, pauseTracking, proxyRefs, reactive, reactiveReadArray, readonly, ref, resetTracking, shallowReactive, shallowReadArray, shallowReadonly, shallowRef, stop, toRaw, toReactive, toReadonly, toRef, toRefs, toValue, track, traverse, trigger, triggerRef, unref, watch };\n",
|
|
8
8
|
"/// <reference lib=\"dom\" />\n/**\n * Jx Declarative Expression Engine (spec §19)\n *\n * Shared module used by both runtime (evaluateExpression) and compiler (compileExpression).\n *\n * @module expression\n */\n\nimport type { JxExpressionNode, JxExpressionOperand } from \"@jxsuite/schema/types\";\nimport type { JxScope } from \"./types.ts\";\n\n/** The runtime's expression node — the schema's expression model. */\nexport type ExpressionNode = JxExpressionNode;\nexport type ExpressionOperand = JxExpressionOperand;\n\n/** The `$map` iteration context object stored in scope during mapped rendering. */\ninterface ScopeMapCtx {\n item?: unknown;\n index?: number;\n [key: string]: unknown;\n}\n\n/** View the scope's `$map` iteration context, if present. */\nfunction scopeMap(state: JxScope): ScopeMapCtx | undefined {\n const map = state.$map;\n return map && typeof map === \"object\" ? (map as ScopeMapCtx) : undefined;\n}\n\ninterface CompileOpts {\n statePrefix?: string;\n eventParam?: string;\n}\n\nconst MUTATING_OPS = new Set([\n \"=\",\n \"+=\",\n \"-=\",\n \"*=\",\n \"/=\",\n \"push\",\n \"pop\",\n \"shift\",\n \"unshift\",\n \"splice\",\n]);\nconst UNARY_OPS = new Set([\"!\", \"-\"]);\nconst BINARY_OPS = new Set([\n \"+\",\n \"-\",\n \"*\",\n \"/\",\n \"%\",\n \"===\",\n \"!==\",\n \"<\",\n \"<=\",\n \">\",\n \">=\",\n \"&&\",\n \"||\",\n]);\nconst ASSIGNMENT_OPS = new Set([\"=\", \"+=\", \"-=\", \"*=\", \"/=\"]);\nconst ARRAY_METHOD_OPS = new Set([\"push\", \"pop\", \"shift\", \"unshift\", \"splice\"]);\nconst AGGREGATE_OPS = new Set([\"reduce\", \"map\", \"filter\"]);\n\nexport const BLESSED_OPERATORS = new Set([\n ...MUTATING_OPS,\n ...UNARY_OPS,\n ...BINARY_OPS,\n ...AGGREGATE_OPS,\n]);\n\n/**\n * @param {string} op\n * @returns {boolean}\n */\nexport function isMutating(op: string) {\n return MUTATING_OPS.has(op);\n}\n\n// ─── Runtime Evaluation ──────────────────────────────────────────────────────\n\ninterface IterCtx {\n acc?: unknown;\n item?: unknown;\n index?: number;\n}\n\n/** Resolve an operand to its runtime value. */\nfunction resolveOperand(\n operand: unknown,\n state: JxScope,\n event: Event | null,\n iterCtx?: IterCtx,\n): unknown {\n if (operand === null || operand === undefined) {\n return operand;\n }\n\n // Nested expression node\n if (typeof operand === \"object\" && !Array.isArray(operand) && \"operator\" in operand) {\n return evaluateExpression(operand as ExpressionNode, state, event, iterCtx);\n }\n\n // $ref pointer\n if (typeof operand === \"object\" && !Array.isArray(operand) && \"$ref\" in operand) {\n return resolveExprRef((operand as { $ref: string }).$ref, state, event, iterCtx);\n }\n\n // Array of operands (e.g., splice args)\n if (Array.isArray(operand)) {\n return operand.map((o: unknown) => resolveOperand(o, state, event, iterCtx));\n }\n\n // Literal\n return operand;\n}\n\n/** Resolve a $ref string within expression context. */\nfunction resolveExprRef(ref: string, state: JxScope, event: Event | null, iterCtx?: IterCtx) {\n if (ref === \"$reduce/acc\") {\n return iterCtx?.acc;\n }\n if (ref.startsWith(\"$reduce/\")) {\n return iterCtx?.acc;\n }\n if (ref.startsWith(\"event#/\")) {\n const path = ref.slice(\"event#/\".length);\n return getPath(event, path);\n }\n if (ref.startsWith(\"$map/\")) {\n const parts = ref.split(\"/\");\n const [, key] = parts;\n let base;\n const map = scopeMap(state);\n if (key === \"item\") {\n base = iterCtx?.item ?? map?.item ?? state[\"$map/item\"];\n } else if (key === \"index\") {\n base = iterCtx?.index ?? map?.index ?? state[\"$map/index\"];\n } else {\n base = map?.[key!] ?? state[`$map/${key}`];\n }\n return parts.length > 2 ? getPath(base, parts.slice(2).join(\"/\")) : base;\n }\n if (ref.startsWith(\"#/state/\")) {\n const sub = ref.slice(\"#/state/\".length);\n const slash = sub.indexOf(\"/\");\n if (slash === -1) {\n return state[sub];\n }\n return getPath(state[sub.slice(0, slash)], sub.slice(slash + 1));\n }\n if (ref.startsWith(\"parent#/\")) {\n return state[ref.slice(\"parent#/\".length)];\n }\n if (ref.startsWith(\"window#/\")) {\n return getPath(globalThis.window, ref.slice(\"window#/\".length));\n }\n if (ref.startsWith(\"document#/\")) {\n return getPath(globalThis.document, ref.slice(\"document#/\".length));\n }\n return state[ref] ?? null;\n}\n\n/** Resolve a $ref to a writable location — returns { obj, key } for assignment. */\nfunction resolveWritableRef(\n ref: string,\n state: JxScope,\n _event: Event | null,\n iterCtx?: IterCtx,\n): { obj: JxScope; key: string } {\n if (ref.startsWith(\"$map/\")) {\n const parts = ref.split(\"/\");\n const [, key] = parts;\n let base;\n const map = scopeMap(state);\n if (key === \"item\") {\n base = iterCtx?.item ?? map?.item ?? state[\"$map/item\"];\n } else if (key === \"index\") {\n base = iterCtx?.index ?? map?.index ?? state[\"$map/index\"];\n } else {\n base = map?.[key!] ?? state[`$map/${key}`];\n }\n if (parts.length > 2) {\n const pathParts = parts.slice(2);\n const lastKey = pathParts.pop();\n const obj = pathParts.length > 0 ? getPath(base, pathParts.join(\"/\")) : base;\n return { key: lastKey as string, obj: obj as JxScope };\n }\n return {\n key: key === \"item\" ? \"$map/item\" : \"$map/index\",\n obj: scopeMap(state) ?? state,\n };\n }\n if (ref.startsWith(\"#/state/\")) {\n const sub = ref.slice(\"#/state/\".length);\n const slash = sub.indexOf(\"/\");\n if (slash === -1) {\n return { key: sub, obj: state };\n }\n const parts = sub.split(\"/\");\n const lastKey = parts.pop();\n let obj = state;\n // Pointer paths address objects by construction (validated by the schema).\n for (const p of parts) {\n obj = obj[p] as JxScope;\n }\n return { key: lastKey as string, obj };\n }\n return { key: ref, obj: state };\n}\n\n/** Evaluate an expression node at runtime. */\nexport function evaluateExpression(\n node: ExpressionNode,\n state: JxScope,\n event: Event | null,\n iterCtx?: IterCtx,\n): unknown {\n const { operator, target, value, initial } = node;\n\n if (!BLESSED_OPERATORS.has(operator)) {\n throw new Error(`$expression: unknown operator \"${operator}\"`);\n }\n\n // ─── Unary ───\n if (UNARY_OPS.has(operator) && !(\"value\" in node)) {\n const operand: unknown = resolveOperand(target, state, event, iterCtx);\n if (operator === \"!\") {\n return !operand;\n }\n if (operator === \"-\") {\n return -(operand as number);\n }\n }\n\n // ─── Binary (pure) ───\n if (BINARY_OPS.has(operator)) {\n const left = resolveOperand(target, state, event, iterCtx) as number & string;\n const right = resolveOperand(value, state, event, iterCtx) as number & string;\n switch (operator) {\n case \"+\": {\n return left + right;\n }\n case \"-\": {\n return left - right;\n }\n case \"*\": {\n return left * right;\n }\n case \"/\": {\n return left / right;\n }\n case \"%\": {\n return left % right;\n }\n case \"===\": {\n return left === right;\n }\n case \"!==\": {\n return left !== right;\n }\n case \"<\": {\n return left < right;\n }\n case \"<=\": {\n return left <= right;\n }\n case \">\": {\n return left > right;\n }\n case \">=\": {\n return left >= right;\n }\n case \"&&\": {\n return left && right;\n }\n case \"||\": {\n return left || right;\n }\n default: {\n break;\n }\n }\n }\n\n // ─── Assignment ───\n if (ASSIGNMENT_OPS.has(operator)) {\n const rhs = resolveOperand(value, state, event, iterCtx) as number;\n const { obj, key } = resolveWritableRef(\n (target as { $ref: string }).$ref,\n state,\n event,\n iterCtx,\n );\n switch (operator) {\n case \"=\": {\n obj[key] = rhs;\n break;\n }\n case \"+=\": {\n const current = obj[key] as number;\n obj[key] = current + rhs;\n break;\n }\n case \"-=\": {\n const current = obj[key] as number;\n obj[key] = current - rhs;\n break;\n }\n case \"*=\": {\n const current = obj[key] as number;\n obj[key] = current * rhs;\n break;\n }\n case \"/=\": {\n const current = obj[key] as number;\n obj[key] = current / rhs;\n break;\n }\n default: {\n break;\n }\n }\n return;\n }\n\n // ─── Array methods ───\n if (ARRAY_METHOD_OPS.has(operator)) {\n const arr: unknown[] = resolveOperand(target, state, event, iterCtx) as unknown[];\n switch (operator) {\n case \"push\": {\n return arr.push(resolveOperand(value, state, event, iterCtx));\n }\n case \"unshift\": {\n return arr.unshift(resolveOperand(value, state, event, iterCtx));\n }\n case \"pop\": {\n return arr.pop();\n }\n case \"shift\": {\n return arr.shift();\n }\n case \"splice\": {\n const args: unknown[] = resolveOperand(value, state, event, iterCtx) as unknown[];\n return (arr.splice as (...a: unknown[]) => unknown[])(...args);\n }\n default: {\n break;\n }\n }\n }\n\n // ─── Aggregates (pure) ───\n if (AGGREGATE_OPS.has(operator)) {\n const arr: unknown[] = resolveOperand(target, state, event, iterCtx) as unknown[];\n if (operator === \"reduce\") {\n let acc: unknown = resolveOperand(initial, state, event, iterCtx);\n for (const [index, item] of arr.entries()) {\n acc = evaluateExpression(value as ExpressionNode, state, event, {\n acc,\n index,\n item,\n });\n }\n return acc;\n }\n if (operator === \"map\") {\n return arr.map((item: unknown, index: number) =>\n evaluateExpression(value as ExpressionNode, state, event, {\n ...iterCtx,\n index,\n item,\n }),\n );\n }\n if (operator === \"filter\") {\n return arr.filter((item: unknown, index: number) =>\n evaluateExpression(value as ExpressionNode, state, event, {\n ...iterCtx,\n index,\n item,\n }),\n );\n }\n }\n\n return undefined;\n}\n\n// ─── Compiler: Expression → JS Source ────────────────────────────────────────\n\n/** Compile an operand to a JS source string. */\nfunction compileOperand(operand: unknown, opts: CompileOpts): string {\n if (operand === null) {\n return \"null\";\n }\n if (operand === undefined) {\n return \"undefined\";\n }\n\n // Nested expression node\n if (typeof operand === \"object\" && !Array.isArray(operand) && \"operator\" in operand) {\n return compileExpression(operand as ExpressionNode, opts);\n }\n\n // $ref pointer\n if (typeof operand === \"object\" && !Array.isArray(operand) && \"$ref\" in operand) {\n return compileRef((operand as { $ref: string }).$ref, opts);\n }\n\n // Array of operands\n if (Array.isArray(operand)) {\n return operand.map((o: unknown) => compileOperand(o, opts)).join(\", \");\n }\n\n // Literal\n return JSON.stringify(operand);\n}\n\n/**\n * Compile a $ref to its JS equivalent.\n *\n * @param {string} ref\n * @param {CompileOpts} opts\n * @returns {string}\n */\nfunction compileRef(ref: string, opts: CompileOpts) {\n const s = opts.statePrefix ?? \"state\";\n const e = opts.eventParam ?? \"event\";\n\n if (ref === \"$reduce/acc\") {\n return \"_acc\";\n }\n if (ref.startsWith(\"$reduce/\")) {\n return \"_acc\";\n }\n\n if (ref.startsWith(\"event#/\")) {\n const path = ref.slice(\"event#/\".length);\n return `${e}.${path.replaceAll(\"/\", \".\")}`;\n }\n\n if (ref.startsWith(\"$map/\")) {\n const parts = ref.split(\"/\");\n const [, key] = parts;\n if (key === \"item\") {\n return parts.length > 2 ? `_item.${parts.slice(2).join(\".\")}` : \"_item\";\n }\n if (key === \"index\") {\n return \"_index\";\n }\n return `_${key}`;\n }\n\n if (ref.startsWith(\"#/state/\")) {\n const path = ref.slice(\"#/state/\".length);\n return `${s}.${path.replaceAll(\"/\", \".\")}`;\n }\n\n if (ref.startsWith(\"parent#/\")) {\n return `${s}.${ref.slice(\"parent#/\".length)}`;\n }\n if (ref.startsWith(\"window#/\")) {\n return `window.${ref.slice(\"window#/\".length).replaceAll(\"/\", \".\")}`;\n }\n if (ref.startsWith(\"document#/\")) {\n return `document.${ref.slice(\"document#/\".length).replaceAll(\"/\", \".\")}`;\n }\n\n return `${s}.${ref}`;\n}\n\n/** Compile a writable $ref target to its JS equivalent (for LHS of assignment). */\nfunction compileTarget(target: unknown, opts: CompileOpts): string {\n if (typeof target === \"object\" && target !== null && \"$ref\" in target) {\n return compileRef((target as { $ref: string }).$ref, opts);\n }\n return compileOperand(target, opts);\n}\n\n/**\n * Compile an expression node to a JS source string. Returns a statement for mutating ops, a value\n * expression for pure ops.\n *\n * @param {ExpressionNode} node\n * @param {CompileOpts} [opts]\n * @returns {string}\n */\nexport function compileExpression(node: ExpressionNode, opts: CompileOpts = {}): string {\n const { operator, target, value, initial } = node;\n\n // ─── Unary ───\n if (UNARY_OPS.has(operator) && !(\"value\" in node)) {\n const operand: string = compileOperand(target, opts);\n if (operator === \"!\") {\n return `!(${operand})`;\n }\n if (operator === \"-\") {\n return `-(${operand})`;\n }\n }\n\n // ─── Binary (pure) ───\n if (BINARY_OPS.has(operator)) {\n const left: string = compileOperand(target, opts);\n const right: string = compileOperand(value, opts);\n return `(${left} ${operator} ${right})`;\n }\n\n // ─── Assignment ───\n if (ASSIGNMENT_OPS.has(operator)) {\n const lhs: string = compileTarget(target, opts);\n const rhs: string = compileOperand(value, opts);\n return `${lhs} ${operator} ${rhs}`;\n }\n\n // ─── Array methods ───\n if (ARRAY_METHOD_OPS.has(operator)) {\n const arr: string = compileTarget(target, opts);\n switch (operator) {\n case \"push\": {\n return `${arr}.push(${compileOperand(value, opts)})`;\n }\n case \"unshift\": {\n return `${arr}.unshift(${compileOperand(value, opts)})`;\n }\n case \"pop\": {\n return `${arr}.pop()`;\n }\n case \"shift\": {\n return `${arr}.shift()`;\n }\n case \"splice\": {\n const args: string = Array.isArray(value)\n ? value.map((o: unknown) => compileOperand(o, opts)).join(\", \")\n : compileOperand(value, opts);\n return `${arr}.splice(${args})`;\n }\n default: {\n break;\n }\n }\n }\n\n // ─── Aggregates (pure) ───\n if (AGGREGATE_OPS.has(operator)) {\n const arr: string = compileOperand(target, opts);\n const itemExpr: string = compileExpression(value as ExpressionNode, opts);\n if (operator === \"reduce\") {\n const seed: string = compileOperand(initial, opts);\n return `${arr}.reduce((_acc, _item, _index) => ${itemExpr}, ${seed})`;\n }\n if (operator === \"map\") {\n return `${arr}.map((_item, _index) => ${itemExpr})`;\n }\n if (operator === \"filter\") {\n return `${arr}.filter((_item, _index) => ${itemExpr})`;\n }\n }\n\n return \"undefined\";\n}\n\n// ─── Utilities ───────────────────────────────────────────────────────────────\n\n/** Resolve a dotted/slashed path on an object. */\nfunction getPath(obj: unknown, path: string): unknown {\n let current: unknown = obj;\n for (const k of path.split(/[./]/)) {\n current = (current as Record<string, unknown>)?.[k];\n }\n return current;\n}\n",
|
|
9
9
|
"/**\n * Type predicate guards for the Jx document model.\n *\n * These narrow `unknown`/union-typed values to precise domain types so call sites get real property\n * checking instead of casts. Every guard mirrors the runtime's actual detection logic (see\n * buildScope's five-shape algorithm in the runtime).\n */\n\nimport type {\n JsonObject,\n JsonValue,\n JxClassDef,\n JxElement,\n JxEventBinding,\n JxExpressionDef,\n JxFunctionDef,\n JxMappedArray,\n JxMutableNode,\n JxPrototypeDef,\n JxRef,\n JxServerFnDef,\n JxStateObject,\n JxStyle,\n} from \"../types\";\n\n// ─── JSON shape guards ──────────────────────────────────────────────────────────\n\n/** A plain object: not null, not an array. The base check for all object-shaped defs. */\nexport function isJsonObject(value: unknown): value is JsonObject {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\n// ─── Binding guards ─────────────────────────────────────────────────────────────\n\n/** A `{ $ref: \"#/...\" }` JSON Pointer reference. */\nexport function isRef(value: unknown): value is JxRef {\n return isJsonObject(value) && typeof value.$ref === \"string\";\n}\n\n// ─── State definition guards (the five-shape algorithm) ────────────────────────\n\n/** Shape 4: a function declaration — `{ $prototype: \"Function\", body | $src }`. */\nexport function isFunctionDef(value: unknown): value is JxFunctionDef {\n return isJsonObject(value) && value.$prototype === \"Function\";\n}\n\n/** Shape 5: a declarative expression entry — `{ $expression: { operator, target } }`. */\nexport function isExpressionDef(value: unknown): value is JxExpressionDef {\n return isJsonObject(value) && isJsonObject(value.$expression);\n}\n\n/** A non-Function `$prototype` instance (Request, Storage, ContentCollection, classes, …). */\nexport function isPrototypeDef(value: unknown): value is JxPrototypeDef {\n return (\n isJsonObject(value) && typeof value.$prototype === \"string\" && value.$prototype !== \"Function\"\n );\n}\n\n/** A `timing: \"server\"` function proxy (no `$prototype`, external `$src`/`$export`). */\nexport function isServerFnDef(value: unknown): value is JxServerFnDef {\n return (\n isJsonObject(value) &&\n value.timing === \"server\" &&\n typeof value.$src === \"string\" &&\n typeof value.$export === \"string\" &&\n !value.$prototype\n );\n}\n\n/** Shape 2: an expanded signal — an object carrying a `default` value. */\nexport function isExpandedSignal(value: unknown): value is JxStateObject & { default: JsonValue } {\n return isJsonObject(value) && !value.$prototype && !value.$expression && \"default\" in value;\n}\n\n/**\n * Schema-only keywords used to detect pure type definitions (Shape 2b). An object with ONLY these\n * keys and no `default` is a type def, not a signal.\n */\nexport const SCHEMA_KEYWORDS: ReadonlySet<string> = new Set([\n \"type\",\n \"enum\",\n \"minimum\",\n \"maximum\",\n \"minLength\",\n \"maxLength\",\n \"pattern\",\n \"format\",\n \"items\",\n \"properties\",\n \"required\",\n \"description\",\n \"title\",\n \"$comment\",\n]);\n\n/** Shape 2b: a pure type definition — every key is a JSON Schema keyword. */\nexport function isSchemaOnlyDef(value: unknown): value is JxStateObject {\n if (!isJsonObject(value)) {\n return false;\n }\n for (const k of Object.keys(value)) {\n if (!SCHEMA_KEYWORDS.has(k)) {\n return false;\n }\n }\n return true;\n}\n\n/** True when an object carries at least one JSON Schema keyword. */\nexport function hasSchemaKeywords(value: unknown): value is JxStateObject {\n if (!isJsonObject(value)) {\n return false;\n }\n for (const k of Object.keys(value)) {\n if (SCHEMA_KEYWORDS.has(k)) {\n return true;\n }\n }\n return false;\n}\n\n// ─── Document structure guards ──────────────────────────────────────────────────\n\n/** A mapped (repeater) children object — `{ $prototype: \"Array\", items, map }`. */\nexport function isMappedArray(value: unknown): value is JxMappedArray {\n return isJsonObject(value) && value.$prototype === \"Array\";\n}\n\n/**\n * Whether a node's `children` holds at least one mapped array — either as the bare whole-children\n * slot (legacy) or as a member of the children array. Used by renderers and the compiler to decide\n * if a children list needs inline repeater expansion.\n */\nexport function childrenContainArray(children?: unknown): boolean {\n if (isMappedArray(children)) {\n return true;\n }\n return Array.isArray(children) && children.some((c) => isMappedArray(c));\n}\n\n/** A .class.json schema-defined class document — `{ $prototype: \"Class\" }`. */\nexport function isClassDef(value: unknown): value is JxClassDef {\n return isJsonObject(value) && value.$prototype === \"Class\";\n}\n\n/** An element-shaped node object (vs. a bare string/number child). */\nexport function isNodeObject(value: unknown): value is JxMutableNode & JxElement {\n return isJsonObject(value);\n}\n\n/** A `${...}` template-expression string. */\nexport function isTemplateString(value?: unknown): value is string {\n return typeof value === \"string\" && value.includes(\"${\");\n}\n\n// ─── Style guards & accessors ───────────────────────────────────────────────────\n\n/** A nested style object (selector/media block), as opposed to a scalar CSS value. */\nexport function isNestedStyle(value: string | number | JxStyle | undefined): value is JxStyle {\n return typeof value === \"object\" && value !== null;\n}\n\n/** Read a nested style block (`:hover`, `@--md`, `& > li`, …), if present. */\nexport function getNestedStyle(style: JxStyle | undefined, key: string): JxStyle | undefined {\n const value = style?.[key];\n return isNestedStyle(value) ? value : undefined;\n}\n\n/** Read a nested style block, creating an empty one in place when absent or scalar. */\nexport function ensureNestedStyle(style: JxStyle, key: string): JxStyle {\n const existing = style[key];\n if (isNestedStyle(existing)) {\n return existing;\n }\n const created: JxStyle = {};\n style[key] = created;\n return created;\n}\n\n// ─── Event binding guards ───────────────────────────────────────────────────────\n\n/**\n * The value of an `on*` document key: a `$ref`, an inline function declaration, or a declarative\n * expression.\n */\nexport function isEventBinding(value: unknown): value is JxEventBinding {\n return isRef(value) || isFunctionDef(value) || isExpressionDef(value);\n}\n\n/** Read the event binding stored under an `on*` key of a node, if there is one. */\nexport function getEventBinding(\n node: JxMutableNode | JxElement,\n key: string,\n): JxEventBinding | undefined {\n const value = node[key];\n return isEventBinding(value) ? value : undefined;\n}\n\n// ─── Parameter helpers ──────────────────────────────────────────────────────────\n\n/** Resolve `parameters` entries (bare strings or CEM objects) to their names. */\nexport function paramNames(parameters: JxFunctionDef[\"parameters\"]): string[] {\n if (!parameters) {\n return [];\n }\n return parameters.map((p) => (typeof p === \"string\" ? p : p.name));\n}\n",
|
|
10
|
-
"/// <reference lib=\"dom\" />\n/**\n * Jx — JSON-native reactive web component runtime\n * @version 3.0.0\n * @license MIT\n *\n * Four-step pipeline:\n * 1. resolve — fetch JSON source (or accept raw object)\n * 2. buildScope — state detection + reactive proxy construction\n * 3. render — walk resolved tree, build DOM, wire reactive effects\n * 4. output — append to target\n *\n * @module jx\n */\n\nimport {\n computed,\n effect,\n effectScope,\n isRef,\n onEffectCleanup,\n reactive,\n ref,\n} from \"@vue/reactivity\";\nimport { evaluateExpression, isMutating } from \"./expression.ts\";\nimport type { DynamicClass, JxEventHandler, JxPath, JxRenderOptions, JxScope } from \"./types.ts\";\nimport {\n isExpressionDef,\n isFunctionDef,\n isJsonObject,\n isMappedArray,\n isPrototypeDef,\n isRef as isRefValue,\n isServerFnDef,\n paramNames,\n} from \"@jxsuite/schema/guards\";\nimport type {\n JxAttributeValue,\n JxClassDef,\n JxDocument,\n JxElement,\n JxFunctionDef,\n JxHeadEntry,\n JxMappedArray,\n JxPrototypeDef,\n JxRef,\n JxServerFnDef,\n JxStyle,\n} from \"@jxsuite/schema/types\";\nimport type { Ref } from \"@vue/reactivity\";\n\n// ─── Public API ───────────────────────────────────────────────────────────────\n\n/**\n * Mount a Jx document into a DOM container.\n *\n * @example\n * import { Jx } from \"@jxsuite/runtime\";\n * const state = await Jx(\"./counter.json\", document.getElementById(\"app\"));\n *\n * @param {string | JxDocument} source - Path to .json file, URL, or raw document object\n * @param {HTMLElement} [target] Default is `document.body`\n * @param {JxRenderOptions} [options]\n * @returns {Promise<JxScope>} Resolves with the live component scope (state reactive\n * proxy)\n */\nexport async function Jx(\n source: string | JxDocument,\n target: HTMLElement = document.body,\n options?: JxRenderOptions,\n) {\n const base = typeof source === \"string\" ? new URL(source, location.href).href : location.href;\n const doc = await resolve(source);\n\n // Register custom elements declared in $elements (depth-first)\n if (doc.$elements) {\n await registerElements(doc.$elements, base);\n }\n\n // Inject <head> elements declared in $head (link, meta, script, etc.)\n if (doc.$head) {\n injectHead(doc.$head, base);\n }\n\n if (doc.$media) {\n _rootMedia = doc.$media;\n }\n\n const state = await buildScope(doc, {}, base);\n target.append(renderNode(doc, state, options));\n if (typeof state.onMount === \"function\") {\n (state.onMount as (s: JxScope) => unknown)(state);\n }\n return state;\n}\n\n// ─── Step 1: Resolve ──────────────────────────────────────────────────────────\n\nconst _resolveCache = new Map<string, Promise<JxDocument>>();\n\nexport async function resolve(source: string | JxDocument): Promise<JxDocument> {\n if (typeof source !== \"string\") {\n return source;\n }\n if (_resolveCache.has(source)) {\n return _resolveCache.get(source)!;\n }\n const p = fetch(source).then((res) => {\n if (!res.ok) {\n throw new Error(`Jx: failed to fetch ${source} (${res.status})`);\n }\n // Trust boundary: fetched sources are Jx documents by contract.\n return res.json() as Promise<JxDocument>;\n });\n _resolveCache.set(source, p);\n return p;\n}\n\n// ─── Step 2: Build scope ──────────────────────────────────────────────────────\n\n/** JSON Schema keywords used to identify pure type definitions (Shape 2b). */\nconst SCHEMA_KEYWORDS = new Set([\n \"type\",\n \"properties\",\n \"items\",\n \"enum\",\n \"minimum\",\n \"maximum\",\n \"minLength\",\n \"maxLength\",\n \"pattern\",\n \"required\",\n \"examples\",\n]);\n\n/** /** @type {{ skip: boolean }} */\nconst _serverFnConfig = { skip: false };\n/** Set to true to suppress timing: \"server\" resolution (used by Studio edit mode). */\nexport function setSkipServerFunctions(v: boolean) {\n _serverFnConfig.skip = v;\n}\n\n// ─── Dev-proxy auth token (Studio cross-origin canvas) ────────────────────────\n// The Studio canvas iframe is served from a token-gated loopback origin (createProjectServer): its\n// POST /__jx_resolve__ + /__jx_server__ routes 403 without ?token=<rpcToken>. The iframe boot reads\n// The token from its URL and calls setResolveToken so these dev-proxy fetches authenticate. Unset by\n// Default, leaving production + same-origin dev untouched (bare path, no query appended).\nlet _resolveToken: string | null = null;\nexport function setResolveToken(token: string | null) {\n _resolveToken = token || null;\n}\n/** Append the dev-proxy auth token to a privileged resolve path when one is configured. */\nfunction resolveProxyPath(path: string): string {\n return _resolveToken ? `${path}?token=${encodeURIComponent(_resolveToken)}` : path;\n}\n\n/** @deprecated No longer needed — ContentCollection/ContentEntry resolve via generic class path */\nexport function setSkipContentResolution(_v: boolean) {\n // No-op retained for API compatibility\n}\n\n/**\n * Observe runtime-created reactive values: runs `fn` immediately inside a reactive effect and\n * re-runs it whenever a tracked value changes; returns a disposer. Dep tracking in @vue/reactivity\n * is per module INSTANCE, so an effect created from another copy of the package (e.g. the studio's\n * own pin) can never track a ref/reactive created here — consumers that want to observe\n * runtime-resolved scope values (the Studio canvas iframe's dataScope re-post) must use this.\n *\n * @param {() => void} fn - Read the reactive values to observe inside this callback.\n * @returns {() => void} Disposer — stops the effect and its scope.\n */\nexport function observeScope(fn: () => void): () => void {\n const scope = effectScope(true);\n scope.run(() => {\n effect(fn);\n });\n return () => scope.stop();\n}\n\n/**\n * Run `fn` inside a detached reactive scope of THIS module's reactivity instance, returning its\n * result plus a disposer that stops every effect `fn` created. Callers that render via\n * {@link renderNode} and later tear the render down (the Studio canvas full render and its surgical\n * subtree re-renders) MUST use this instead of their own effectScope: scope collection is per\n * vue-reactivity module instance, so a scope from another copy of the package collects NOTHING and\n * its stop() silently leaks every binding effect of the superseded render.\n *\n * @param {() => T} fn - Work that may create reactive effects (typically a renderNode call).\n * @returns {{ result: T; stop: () => void }} The callback result and the scope disposer.\n */\nexport function runScoped<T>(fn: () => T): { result: T; stop: () => void } {\n const scope = effectScope(true);\n try {\n const result = scope.run(fn) as T;\n return { result, stop: () => scope.stop() };\n } catch (error) {\n // A throwing fn would otherwise leak the effects it created before failing.\n scope.stop();\n throw error;\n }\n}\n\n/**\n * Studio-canvas viewport-unit transpose. The canvas iframe is sized to its document's height, so\n * any viewport unit (`vh`/`vw`/`vmin`/`vmax`/`svh`/…) — which resolves against the iframe ELEMENT —\n * would feed back into an ever-growing height. When this is on, the runtime transposes them to\n * CONTAINER units (`cqh`/`cqw`/…) that resolve against the canvas's fixed-size query container (see\n * `canvas.html`): a predictable, feedback-free stand-in for the viewport. Off (the default) leaves\n * CSS untouched for real production rendering.\n */\nlet _canvasViewportTranspose = false;\nexport function setCanvasViewportTranspose(on: boolean) {\n _canvasViewportTranspose = on;\n}\n\nconst VIEWPORT_UNIT_RE = /(-?\\d*\\.?\\d+)(?:s|l|d)?v(h|w|min|max|i|b)\\b/gi;\nconst VIEWPORT_UNIT_MAP: Record<string, string> = {\n b: \"cqb\",\n h: \"cqh\",\n i: \"cqi\",\n max: \"cqmax\",\n min: \"cqmin\",\n w: \"cqw\",\n};\n\n/**\n * Transpose CSS viewport units → container-query units in a value string, but only when the\n * studio-canvas flag is set (otherwise the value is returned untouched). `100vh` → `100cqh`,\n * `50svw` → `50cqw`, `10vmin` → `10cqmin`, etc.\n */\nexport function transposeCanvasUnits(value: string): string {\n if (!_canvasViewportTranspose || !value.includes(\"v\")) {\n return value;\n }\n return value.replace(\n VIEWPORT_UNIT_RE,\n (_m, num: string, dim: string) => `${num}${VIEWPORT_UNIT_MAP[dim.toLowerCase()] ?? `cq${dim}`}`,\n );\n}\n\n/**\n * Studio-canvas anchor de-linking. In the editor canvas a rendered `<a href>` would navigate the\n * iframe when clicked, fighting element selection. When this is on, the runtime stamps the value on\n * `data-jx-href` instead of `href` so the anchor is inert (selectable, not a live link) while the\n * original target stays recoverable for richer link handling later. Off (the default) leaves\n * production rendering untouched; the studio sets it for design/edit (not preview — see\n * iframe-render).\n */\nlet _canvasDelinkAnchors = false;\nexport function setCanvasDelinkAnchors(on: boolean) {\n _canvasDelinkAnchors = on;\n}\n\n/** The attribute name to stamp `key` on `el` under — `href` → `data-jx-href` on de-linked anchors. */\nfunction canvasAttrName(el: HTMLElement, key: string): string {\n if (_canvasDelinkAnchors && key === \"href\" && (el.tagName === \"A\" || el.tagName === \"AREA\")) {\n return \"data-jx-href\";\n }\n return key;\n}\n\n/**\n * Build the reactive scope (state) from the document using the five-shape detection algorithm.\n *\n * @param {JxDocument} doc\n * @param {JxScope} [parentScope] Default is `{}`\n * @param {string} [base] Base URL for resolving $src imports. Default is `location.href`\n * @returns {Promise<JxScope>} Reactive proxy (state)\n */\nexport async function buildScope(\n doc: JxDocument,\n parentScope: JxScope = {},\n base: string = location.href,\n) {\n const raw: JxScope = {};\n\n // Merge parent scope properties\n for (const [key, val] of Object.entries(parentScope)) {\n raw[key] = val;\n }\n\n const defs = doc.state ?? {};\n\n // Pass 0: resolve bare $prototype names via import map\n const imports = doc.imports ?? {};\n for (const [, def] of Object.entries(defs)) {\n if (isPrototypeDef(def) && !def.$src) {\n const mapped = imports[def.$prototype];\n if (mapped) {\n if (!mapped.endsWith(\".class.json\")) {\n console.warn(\n `Jx: import \"${def.$prototype}\" must map to a .class.json path, got \"${mapped}\"`,\n );\n continue;\n }\n def.$src = mapped;\n }\n }\n }\n\n // First pass: collect naked values, expanded defaults, plain objects\n for (const [key, def] of Object.entries(defs)) {\n // 1. String value\n if (typeof def === \"string\") {\n if (!def.includes(\"${\")) {\n raw[key] = def;\n } // Shape 1: naked string\n continue; // Template strings handled in second pass\n }\n\n // 2. Number, boolean, null\n if (typeof def === \"number\" || typeof def === \"boolean\" || def === null) {\n raw[key] = def;\n continue;\n }\n\n // 3. Array\n if (Array.isArray(def)) {\n raw[key] = def;\n continue;\n }\n\n // 4. Object\n if (typeof def === \"object\") {\n if (def.$prototype) {\n continue;\n } // Handled in later passes\n if (isExpressionDef(def)) {\n continue;\n } // Handled in pass 2.5\n if (isServerFnDef(def)) {\n continue;\n } // Handled in fifth pass\n if (\"default\" in def) {\n raw[key] = def.default;\n continue;\n } // Shape 2: expanded signal\n if (hasSchemaKeywords(def)) {\n continue;\n } // Shape 2b: pure type def\n raw[key] = def; // Shape 1: plain object\n }\n }\n\n // Wrap in Vue reactive proxy — deep reactivity from this point on\n const state = reactive(raw);\n\n // Second pass: template strings → computed\n for (const [key, def] of Object.entries(defs)) {\n if (typeof def === \"string\" && def.includes(\"${\")) {\n state[key] = computed(() => evaluateTemplate(def, state));\n }\n }\n\n // Pass 2.5: $expression entries (Shape 5)\n for (const [key, def] of Object.entries(defs)) {\n if (isExpressionDef(def)) {\n const node = def.$expression;\n if (isMutating(node.operator)) {\n const handler: JxEventHandler = (s, event) => evaluateExpression(node, s, event);\n state[key] = handler;\n } else {\n state[key] = computed(() => evaluateExpression(node, state, null));\n }\n }\n }\n\n // Third pass: $prototype: \"Function\" entries\n for (const [key, def] of Object.entries(defs)) {\n if (isFunctionDef(def)) {\n state[key] = await resolveFunction(def, state, key, base);\n }\n }\n\n // Fourth pass: other $prototype entries (Request, Set, Map, etc.)\n for (const [key, def] of Object.entries(defs)) {\n if (isPrototypeDef(def)) {\n state[key] = await resolvePrototype(def, state, key, base);\n }\n }\n\n // Fifth pass: timing: \"server\" entries (dev mode — execute client-side, boundary unenforced)\n if (!_serverFnConfig.skip) {\n for (const [key, def] of Object.entries(defs)) {\n if (isServerFnDef(def)) {\n state[key] = await resolveServerFunction(def, state, key, base);\n }\n }\n }\n\n if (doc.$media) {\n state[\"$media\"] = doc.$media;\n } else if (!state[\"$media\"] && Object.keys(_rootMedia).length > 0) {\n state[\"$media\"] = _rootMedia;\n }\n\n return state;\n}\n\n/**\n * Check whether an object contains any JSON Schema keywords. Used to discriminate Shape 2b (pure\n * type definition) from Shape 1 (naked object).\n *\n * @param {JxScope} obj\n * @returns {boolean}\n */\nfunction hasSchemaKeywords(obj: object) {\n for (const k of Object.keys(obj)) {\n if (SCHEMA_KEYWORDS.has(k)) {\n return true;\n }\n }\n return false;\n}\nexport { hasSchemaKeywords };\n\n/**\n * Evaluate a template string in the context of state and optional $map. Templates use\n * `state.varName` and `$map.item` syntax.\n *\n * @param {string} str\n * @param {JxScope} state\n * @returns {string}\n */\nfunction evaluateTemplate(str: string, state: JxScope): string {\n const $map = state?.$map as { item?: unknown; index?: number } | undefined;\n const fn = new Function(\"state\", \"$map\", \"item\", \"index\", `return \\`${str}\\``) as (\n state: JxScope,\n $map: unknown,\n item: unknown,\n index: number | undefined,\n ) => string;\n return fn(state, $map, $map?.item, $map?.index);\n}\n\n// ─── Step 2b: Function resolution (Shape 4) ─────────────────────────────────\n\n/** Shape of a dynamically imported module: named exports plus an optional default. */\ntype ImportedModule = Record<string, unknown> & { default?: Record<string, unknown> };\n\n/** Minimal contract an externally-imported resolver class may implement. */\ninterface ExternalClassInstance {\n value?: unknown;\n resolve?: () => unknown;\n subscribe?: (cb: (newVal: unknown) => void) => void;\n}\n\n/** Module cache for $src imports (shared with external class resolution). */\nconst _moduleCache = new Map<string, ImportedModule>();\n\n/**\n * Resolve a $prototype: \"Function\" entry into a function or computed.\n *\n * Functions receive state as their first parameter at call time. Functions with a return statement\n * in their body are wrapped in computed() for reactive evaluation.\n *\n * @param {JxFunctionDef} def - State entry with $prototype: \"Function\"\n * @param {JxScope} state - Reactive scope proxy\n * @param {string} key - Def key name\n * @param {string} [base] - Base URL for resolving $src imports\n * @returns {Promise<unknown>}\n */\nasync function resolveFunction(def: JxFunctionDef, state: JxScope, key: string, base?: string) {\n if (def.body && def.$src) {\n throw new Error(`Jx: '${key}' declares both body and $src — these are mutually exclusive`);\n }\n if (!def.body && !def.$src) {\n const params = resolveParamNames(def);\n const noop = new Function(...params, \"\");\n Object.defineProperty(noop, \"name\", {\n configurable: true,\n value: def.name ?? key,\n });\n return noop;\n }\n\n let fn: ((...args: unknown[]) => unknown) | undefined;\n\n if (def.body) {\n const params = resolveParamNames(def);\n fn = new Function(...params, def.body) as (...args: unknown[]) => unknown;\n Object.defineProperty(fn, \"name\", {\n configurable: true,\n value: def.name ?? key,\n });\n } else {\n // $src: dynamic import (the body/$src dichotomy was validated above)\n const src = def.$src;\n if (!src) {\n throw new Error(`Jx: '${key}' has neither body nor $src`);\n }\n const exportName = def.$export ?? key;\n let mod: ImportedModule;\n if (_moduleCache.has(src)) {\n mod = _moduleCache.get(src)!;\n } else {\n if (base) {\n const resolvedSrc = new URL(src, base).href;\n try {\n mod = (await import(resolvedSrc)) as ImportedModule;\n } catch {\n mod = (await import(src)) as ImportedModule;\n }\n } else {\n mod = (await import(src)) as ImportedModule;\n }\n _moduleCache.set(src, mod);\n }\n const candidate = mod[exportName] ?? mod.default?.[exportName];\n if (typeof candidate !== \"function\") {\n throw new TypeError(`Jx: export \"${exportName}\" not found or not a function in \"${src}\"`);\n }\n fn = candidate as (...args: unknown[]) => unknown;\n }\n\n // Detect computed: body contains a return statement, or $src function introspection.\n // Functions with parameters (event handlers, callbacks) are never computed.\n const hasParams = (def.parameters ?? def.arguments ?? []).length > 0;\n let isComputed = false;\n if (!hasParams) {\n if (def.body) {\n isComputed = /\\breturn\\b/.test(def.body);\n } else if (fn) {\n isComputed = fn.length <= 1 && /\\breturn\\b/.test(fn.toString());\n }\n }\n if (isComputed) {\n return computed(() => fn(state));\n }\n\n return fn;\n}\n\n// ─── Step 3: Render ───────────────────────────────────────────────────────────\n\n/**\n * Extract parameter names from a function definition. Supports both legacy \"arguments\" (string\n * array) and CEM-compatible \"parameters\" (object array). Always ensures \"state\" is the first\n * parameter.\n *\n * @param {JxFunctionDef | JxPrototypeDef} def\n * @returns {string[]}\n */\nfunction resolveParamNames(def: JxFunctionDef | JxPrototypeDef) {\n const names = def.parameters ? paramNames(def.parameters) : (def.arguments ?? []);\n return names.length > 0 && names[0] === \"state\" ? names : [\"state\", ...names];\n}\n\n/**\n * Reserved Jx keys — never set as DOM properties.\n *\n * @type {Set<string>}\n */\nexport const RESERVED_KEYS = new Set([\n \"$schema\",\n \"$id\",\n \"$defs\",\n \"state\",\n \"$ref\",\n \"$props\",\n \"$elements\",\n \"$title\",\n \"$description\",\n \"$switch\",\n \"$prototype\",\n \"$src\",\n \"$export\",\n \"$media\",\n \"$map\",\n \"timing\",\n \"default\",\n \"description\",\n \"body\",\n \"parameters\",\n \"arguments\",\n \"name\",\n \"tagName\",\n \"children\",\n \"style\",\n \"attributes\",\n \"items\",\n \"map\",\n \"filter\",\n \"sort\",\n \"cases\",\n \"observedAttributes\",\n]);\n\n/**\n * Recursively render a Jx element definition into a DOM element.\n *\n * @param {JxElement | string | number | boolean} def\n * @param {JxScope} state - Reactive scope proxy (or child scope via Object.create)\n * @param {JxRenderOptions} [options]\n * @returns {HTMLElement | Text}\n */\nexport function renderNode(\n def: JxElement | string | number | boolean,\n state: JxScope,\n options?: JxRenderOptions,\n): HTMLElement | Text {\n const path = options?._path ?? [];\n\n // Text node children: bare strings/numbers/booleans produce DOM Text nodes\n if (typeof def === \"string\" || typeof def === \"number\" || typeof def === \"boolean\") {\n const textNode = document.createTextNode(String(def));\n if (typeof def === \"string\" && isTemplateString(def)) {\n effect(() => {\n textNode.textContent = evaluateTemplate(def, state);\n });\n }\n return textNode;\n }\n\n // Extend scope with any $-prefixed local bindings declared on this node\n let localState: JxScope = state;\n for (const [key, val] of Object.entries(def)) {\n if (key.startsWith(\"$\") && !RESERVED_KEYS.has(key)) {\n if (localState === state) {\n localState = Object.create(state) as JxScope;\n }\n localState[key] = isRefObj(val) ? resolveRef(val.$ref, state) : val;\n }\n }\n\n // Custom element with $props: set JS properties on the element instance\n const tagName = def.tagName ?? \"div\";\n const isCustomEl = tagName.includes(\"-\") && customElements.get(tagName);\n\n if (def.$props && isCustomEl) {\n return renderCustomElementWithProps(def, localState, options, path);\n }\n\n if (def.$props) {\n const { $props: _$props, ...rest } = def;\n return renderNode(rest, mergeProps(def, localState), options);\n }\n if (def.$switch) {\n return renderSwitch(def, localState, options);\n }\n\n const el = document.createElement(tagName);\n\n if (options?.onNodeCreated) {\n options.onNodeCreated(el, path, def, localState);\n }\n\n applyProperties(el, def, localState);\n applyStyle(\n el,\n def.style ?? {},\n (localState[\"$media\"] as Record<string, string>) ?? {},\n localState,\n );\n applyAttributes(el, def.attributes ?? {}, localState);\n\n const kids = def.children;\n if (isMappedArray(kids)) {\n // Legacy whole-children repeater: the items render directly into `el` (which keeps its own\n // TagName, e.g. <ul>), with no extra wrapper element.\n const arrOpts = options ? { ...options, _path: [...path, \"children\"] } : undefined;\n renderMappedArrayInto(el, kids, localState, arrOpts);\n } else if (Array.isArray(kids)) {\n for (let i = 0; i < kids.length; i++) {\n const child = kids[i]!;\n const childOpts = options ? { ...options, _path: [...path, \"children\", i] } : undefined;\n if (isMappedArray(child)) {\n // Array pseudo-element among siblings: expand inline, no wrapper.\n renderMappedArrayInto(el, child, localState, childOpts);\n } else {\n el.append(renderNode(child, localState, childOpts));\n }\n }\n }\n\n return el;\n}\n\n// ─── Template string utilities ────────────────────────────────────────────────\n\n/**\n * Check if a value is a template string (contains ${}).\n *\n * @param {unknown} val\n * @returns {boolean}\n */\nfunction isTemplateString(val: unknown): val is string {\n return typeof val === \"string\" && val.includes(\"${\");\n}\n\n// ─── Property / style / attribute application ─────────────────────────────────\n\n/**\n * @param {HTMLElement} el\n * @param {JxElement} def\n * @param {JxScope} state\n */\nfunction applyProperties(el: HTMLElement, def: JxElement, state: JxScope) {\n for (const [key, val] of Object.entries(def)) {\n if (RESERVED_KEYS.has(key)) {\n continue;\n }\n if (key.startsWith(\"$\")) {\n continue;\n } // Scope bindings — handled in renderNode\n\n if (key.startsWith(\"on\")) {\n // Event handler: $ref to a function\n if (isRefObj(val)) {\n const handler = resolveRef(val.$ref, state);\n if (typeof handler === \"function\") {\n const scope = state;\n const handlerFn = handler as (s: JxScope, e: Event) => unknown;\n el.addEventListener(key.slice(2), (e) => handlerFn(scope, e));\n }\n continue;\n }\n // Event handler: inline $prototype: \"Function\"\n if (isFunctionDef(val) && val.body) {\n const params = resolveParamNames(val);\n const fn = new Function(...params, val.body) as (s: JxScope, e: Event) => unknown;\n const scope = state;\n el.addEventListener(key.slice(2), (e) => fn(scope, e));\n continue;\n }\n // Event handler: inline $expression\n if (isExpressionDef(val)) {\n const node = val.$expression;\n const scope = state;\n el.addEventListener(key.slice(2), (e) => evaluateExpression(node, scope, e));\n continue;\n }\n }\n\n bindProperty(el, key, val, state);\n }\n}\n\n/**\n * @param {HTMLElement} el\n * @param {string} key\n * @param {unknown} val\n * @param {JxScope} state\n */\nfunction bindProperty(el: HTMLElement, key: string, val: unknown, state: JxScope) {\n const target = el as unknown as Record<string, unknown>;\n if (isRefObj(val)) {\n const refVal = val as { $ref: string };\n if (key === \"id\") {\n target[key] = resolveRef(refVal.$ref, state) as string;\n return;\n }\n effect(() => {\n target[key] = resolveRef(refVal.$ref, state);\n });\n return;\n }\n\n // Universal ${} reactivity — template strings in element properties\n if (isTemplateString(val)) {\n effect(() => {\n target[key] = evaluateTemplate(val as string, state);\n });\n return;\n }\n\n target[key] = val;\n}\n\n/**\n * Apply inline styles and emit a scoped <style> block for nested CSS selectors and @custom-media\n * breakpoint rules.\n *\n * @param {HTMLElement} el\n * @param {JxStyle} styleDef\n * @param {Record<string, string>} [mediaQueries] Named breakpoints from root $media. Default is\n * `{}`\n * @param {JxScope} [state] Component scope for template string evaluation. Default is `{}`\n */\nexport function applyStyle(\n el: HTMLElement,\n styleDef: JxStyle,\n mediaQueries: Record<string, string> = {},\n state: JxScope = {},\n) {\n const nested: Record<string, JxStyle> = {};\n const media: Record<string, JxStyle> = {};\n const baseDecls: Record<string, string> = {};\n\n // Collect properties overridden by media queries so we can avoid inline styles for them\n const mediaOverriddenProps = new Set<string>();\n for (const [prop, val] of Object.entries(styleDef)) {\n if (prop.startsWith(\"@\") && val && typeof val === \"object\") {\n for (const k of Object.keys(val)) {\n if (\n !k.startsWith(\":\") &&\n !k.startsWith(\".\") &&\n !k.startsWith(\"&\") &&\n !k.startsWith(\"[\") &&\n !k.startsWith(\"@\")\n ) {\n mediaOverriddenProps.add(k);\n }\n }\n }\n }\n\n for (const [prop, val] of Object.entries(styleDef)) {\n if (val !== null && typeof val === \"object\" && !Array.isArray(val)) {\n if (prop.startsWith(\"@\")) {\n media[prop] = val;\n } else {\n nested[prop] = val;\n }\n continue;\n }\n if (prop.startsWith(\"@\") || isNestedSelector(prop)) {\n // Scalar under a selector/media key — invalid style shape, drop it.\n continue;\n }\n if (val === undefined) {\n continue;\n }\n const scalar = String(val);\n if (prop.startsWith(\"--\")) {\n if (isTemplateString(val)) {\n effect(() => {\n el.style.setProperty(prop, transposeCanvasUnits(evaluateTemplate(val, state)));\n });\n } else {\n el.style.setProperty(prop, transposeCanvasUnits(scalar));\n }\n } else if (isTemplateString(val)) {\n effect(() => {\n (el.style as unknown as Record<string, string>)[prop] = transposeCanvasUnits(\n evaluateTemplate(val, state),\n );\n });\n } else if (mediaOverriddenProps.has(prop)) {\n // Goes through toCSSText (which transposes) — don't double-transpose here.\n baseDecls[prop] = scalar;\n } else {\n (el.style as unknown as Record<string, string>)[prop] = transposeCanvasUnits(scalar);\n }\n }\n\n const hasNested = Object.keys(nested).length > 0;\n const hasMedia = Object.keys(media).length > 0;\n const hasBaseDecls = Object.keys(baseDecls).length > 0;\n if (!hasNested && !hasMedia && !hasBaseDecls) {\n return;\n }\n\n const uid = `jx-${Math.random().toString(36).slice(2, 7)}`;\n el.dataset.jx = uid;\n\n let css = \"\";\n const baseCSS = toCSSText(baseDecls);\n if (baseCSS) {\n css += `[data-jx=\"${uid}\"] { ${baseCSS} }\\n`;\n }\n\n function emitNested(scope: string, rules: JxStyle) {\n const props = toCSSText(rules);\n if (props) {\n css += `${scope} { ${props} }\\n`;\n }\n for (const [sel, sub] of Object.entries(rules)) {\n if (sub === null || typeof sub !== \"object\" || Array.isArray(sub)) {\n continue;\n }\n if (sel.startsWith(\"@\")) {\n continue;\n }\n const resolved = sel.startsWith(\"&\")\n ? sel.replace(\"&\", scope)\n : sel.startsWith(\"[\")\n ? `${scope}${sel}`\n : sel.startsWith(\":\") || sel.startsWith(\".\")\n ? `${scope}${sel}`\n : `${scope} ${sel}`;\n emitNested(resolved, sub);\n }\n }\n\n for (const [sel, rules] of Object.entries(nested)) {\n const resolved = sel.startsWith(\"&\")\n ? sel.replace(\"&\", `[data-jx=\"${uid}\"]`)\n : sel.startsWith(\"[\")\n ? `[data-jx=\"${uid}\"]${sel}`\n : sel.startsWith(\":\") || sel.startsWith(\".\")\n ? `[data-jx=\"${uid}\"]${sel}`\n : `[data-jx=\"${uid}\"] ${sel}`;\n emitNested(resolved, rules);\n }\n\n function emitMediaNested(atRule: string, parentSel: string, obj: JxStyle) {\n for (const [sel, sub] of Object.entries(obj)) {\n if (sub === null || typeof sub !== \"object\" || Array.isArray(sub)) {\n continue;\n }\n if (sel.startsWith(\"@\")) {\n continue;\n }\n const resolved = sel.startsWith(\"&\")\n ? sel.replace(\"&\", parentSel)\n : sel.startsWith(\"[\")\n ? `${parentSel}${sel}`\n : sel.startsWith(\":\") || sel.startsWith(\".\")\n ? `${parentSel}${sel}`\n : `${parentSel} ${sel}`;\n const props = toCSSText(sub);\n if (props) {\n css += `${atRule} { ${resolved} { ${props} } }\\n`;\n }\n emitMediaNested(atRule, resolved, sub);\n }\n }\n\n for (const [key, rules] of Object.entries(media)) {\n if (key === \"@--\") {\n continue;\n } // Base canvas width, not a real media query\n const atRule = key.startsWith(\"@--\")\n ? `@media ${mediaQueries[key.slice(1)] ?? key.slice(1)}`\n : key.startsWith(\"@(\")\n ? `@media ${key.slice(1)}`\n : key;\n const scope = `[data-jx=\"${uid}\"]`;\n css += `${atRule} { ${scope} { ${toCSSText(rules)} } }\\n`;\n emitMediaNested(atRule, scope, rules);\n }\n\n const tag = document.createElement(\"style\");\n tag.textContent = css;\n tag.dataset.jxOwner = uid;\n document.head.append(tag);\n elementStyleTags.set(el, tag);\n}\n\n/**\n * Scoped <style> tags emitted per element by applyStyle (latest wins). Lets callers replace an\n * element's emitted styles instead of accumulating orphaned tags.\n */\nexport const elementStyleTags = new WeakMap<HTMLElement, HTMLStyleElement>();\n\n/**\n * Re-apply an element's style definition in place: removes the previously emitted scoped <style>\n * tag (if any), clears inline styles, and applies the new definition.\n *\n * @param {HTMLElement} el\n * @param {JxStyle | undefined} styleDef\n * @param {Record<string, string>} [mediaQueries]\n * @param {JxScope} [state]\n */\nexport function reapplyStyle(\n el: HTMLElement,\n styleDef: JxStyle | undefined,\n mediaQueries: Record<string, string> = {},\n state: JxScope = {},\n) {\n const prev = elementStyleTags.get(el);\n if (prev) {\n prev.remove();\n elementStyleTags.delete(el);\n }\n el.style.cssText = \"\";\n delete el.dataset.jx;\n applyStyle(el, styleDef ?? {}, mediaQueries, state);\n}\n\n/**\n * @param {HTMLElement} el\n * @param {Record<string, import(\"@jxsuite/schema/types\").JxAttributeValue>} attrs\n * @param {JxScope} state\n */\nfunction applyAttributes(el: HTMLElement, attrs: Record<string, JxAttributeValue>, state: JxScope) {\n for (const [k, v] of Object.entries(attrs)) {\n const attr = canvasAttrName(el, k);\n if (isRefObj(v)) {\n effect(() => el.setAttribute(attr, String(resolveRef(v.$ref, state) ?? \"\")));\n } else if (isTemplateString(v)) {\n effect(() => el.setAttribute(attr, String(evaluateTemplate(v, state))));\n } else {\n el.setAttribute(attr, String(v));\n }\n }\n}\n\n// ─── Array mapping ────────────────────────────────────────────────────────────\n\n/**\n * Render a mapped array (repeater) wrapper-less: its item instances are inserted directly into\n * `parentEl`, in place, ahead of an anchor comment that marks the array's position among the\n * parent's other children. Re-renders reactively when `items` (or the filter/sort sources) change;\n * each generation's item renders live in their own detached effect scope so nested arrays and\n * template bindings are disposed — not leaked or double-fired — on the next change.\n *\n * `options._path` is the array node's own document path (`[…, \"children\", i]`, or `[…, \"children\"]`\n * for a legacy whole-children repeater); item instances render at `[…that…, \"map\", index]`.\n *\n * @param {HTMLElement} parentEl\n * @param {import(\"@jxsuite/schema/types\").JxMappedArray} arrayDef\n * @param {JxScope} state\n * @param {JxRenderOptions} [options]\n */\nfunction renderMappedArrayInto(\n parentEl: HTMLElement,\n arrayDef: JxMappedArray,\n state: JxScope,\n options?: JxRenderOptions,\n) {\n const path = options?._path ?? [];\n const anchor = document.createComment(\"jx-array\");\n parentEl.append(anchor);\n const { items: itemsSrc, map: mapDef, filter: filterRef, sort: sortRef } = arrayDef;\n\n effect(() => {\n let items: unknown = isRefObj(itemsSrc) ? resolveRef(itemsSrc.$ref, state) : itemsSrc;\n if (Array.isArray(items) && isRefObj(filterRef)) {\n const fn = resolveRef(filterRef.$ref, state);\n if (typeof fn === \"function\") {\n items = items.filter(fn as (v: unknown) => boolean);\n }\n }\n if (Array.isArray(items) && isRefObj(sortRef)) {\n const fn = resolveRef(sortRef.$ref, state);\n if (typeof fn === \"function\") {\n items = [...(items as unknown[])].toSorted(fn as (a: unknown, b: unknown) => number);\n }\n }\n if (!Array.isArray(items) || !mapDef) {\n return;\n }\n\n // Render this generation's items inside a detached scope; the cleanup (run before the next\n // Re-render and when the enclosing render scope stops) tears it down and removes its nodes.\n const scope = effectScope(true);\n const nodes: ChildNode[] = [];\n scope.run(() => {\n for (const [index, item] of (items as unknown[]).entries()) {\n const child = Object.create(state) as JxScope;\n child.$map = { index, item };\n child[\"$map/item\"] = item;\n child[\"$map/index\"] = index;\n const childOpts = options ? { ...options, _path: [...path, \"map\", index] } : undefined;\n const node = renderNode(mapDef, child, childOpts);\n anchor.before(node);\n nodes.push(node);\n }\n });\n onEffectCleanup(() => {\n scope.stop();\n for (const n of nodes) {\n n.remove();\n }\n });\n });\n}\n\n// ─── $switch ──────────────────────────────────────────────────────────────────\n\n/**\n * @param {JxElement} def\n * @param {JxScope} state\n * @param {JxRenderOptions} [options]\n * @returns {HTMLElement}\n */\nfunction renderSwitch(def: JxElement, state: JxScope, options?: JxRenderOptions) {\n const path = options?._path ?? [];\n const container = document.createElement(def.tagName ?? \"div\");\n\n if (options?.onNodeCreated) {\n options.onNodeCreated(container, path, def, state);\n }\n\n applyProperties(container, def, state);\n applyStyle(container, def.style ?? {}, (state[\"$media\"] as Record<string, string>) ?? {}, state);\n applyAttributes(container, def.attributes ?? {}, state);\n let generation = 0;\n\n effect(() => {\n container.innerHTML = \"\";\n if (!isRefObj(def.$switch)) {\n return;\n }\n const key = resolveRef(def.$switch.$ref, state) as string;\n const caseDef = def.cases?.[key];\n if (!caseDef) {\n return;\n }\n\n if (isRefObj(caseDef)) {\n // External $ref — fetch and render asynchronously\n const gen = (generation += 1);\n const { href } = new URL(caseDef.$ref, location.href);\n resolve(href)\n .then(async (doc) => {\n if (gen !== generation) {\n return;\n }\n const childScope = await buildScope(doc, {}, href);\n if (gen !== generation) {\n return;\n }\n container.innerHTML = \"\";\n const childOpts = options ? { ...options, _path: [...path, \"cases\", key] } : undefined;\n container.append(renderNode(doc, childScope, childOpts));\n })\n .catch((error: unknown) =>\n console.error(\"Jx $switch: failed to load external case\", caseDef.$ref, error),\n );\n return;\n }\n\n const childOpts = options ? { ...options, _path: [...path, \"cases\", key] } : undefined;\n container.append(renderNode(caseDef, state, childOpts));\n });\n\n return container;\n}\n\n// ─── Prototype namespaces (Shape 5) ──────────────────────────────────────────\n\n/**\n * Resolve a $prototype definition into a value for the reactive scope.\n *\n * Returns a ref() for async/persistent entries (Request, Storage, Cookie, IndexedDB), or a plain\n * value for simple entries (Set, Map, FormData, Blob).\n *\n * @param {JxPrototypeDef} def - State entry with $prototype\n * @param {JxScope} state - Reactive scope proxy\n * @param {string} key - Def key (for diagnostics)\n * @param {string} [base] - Base URL for resolving $src imports\n * @returns {Promise<unknown>}\n */\nexport async function resolvePrototype(\n def: JxPrototypeDef,\n state: JxScope,\n key: string,\n base?: string,\n) {\n // ── External class via $src ─────────────────────────────────────────────────\n if (def.$src) {\n return resolveExternalPrototype(def, state, key, base);\n }\n\n switch (def.$prototype) {\n case \"Request\": {\n const s: Ref<unknown> = ref(null);\n const debounceMs = def.debounce ?? 0;\n let debounceTimer: ReturnType<typeof setTimeout> | null = null;\n\n if (!def.manual) {\n effect(() => {\n let url: string | undefined;\n if (isTemplateString(def.url)) {\n url = evaluateTemplate(def.url, state);\n } else {\n ({ url } = def);\n }\n if (!url || url === \"undefined\" || url.includes(\"undefined\")) {\n return;\n }\n\n const controller = new AbortController();\n onEffectCleanup(() => {\n controller.abort();\n if (debounceTimer !== null) {\n clearTimeout(debounceTimer);\n }\n });\n\n const doFetch = () =>\n fetch(url, {\n method: def.method ?? \"GET\",\n signal: controller.signal,\n ...(def.headers && { headers: def.headers }),\n ...(def.body && {\n body: typeof def.body === \"object\" ? JSON.stringify(def.body) : def.body,\n }),\n })\n .then((r) => (r.ok ? r.json() : Promise.reject(r.statusText)))\n .then((d) => {\n s.value = d;\n })\n .catch((error: unknown) => {\n if (!(error instanceof Error && error.name === \"AbortError\")) {\n s.value = { error: String(error) };\n }\n });\n\n if (debounceMs > 0) {\n debounceTimer = setTimeout(doFetch, debounceMs);\n } else {\n void doFetch();\n }\n });\n }\n\n return s;\n }\n\n case \"URLSearchParams\": {\n return computed(() => {\n const p: Record<string, string> = {};\n for (const [k, v] of Object.entries(def)) {\n if (k !== \"$prototype\") {\n p[k] = (\n isRefObj(v)\n ? resolveRef(v.$ref, state)\n : isTemplateString(v)\n ? evaluateTemplate(v, state)\n : v\n ) as string;\n }\n }\n return new URLSearchParams(p).toString();\n });\n }\n\n case \"LocalStorage\":\n case \"SessionStorage\": {\n const store = def.$prototype === \"LocalStorage\" ? localStorage : sessionStorage;\n const k = def.key ?? key;\n let init: unknown;\n try {\n const s = store.getItem(k);\n init = s !== null ? (JSON.parse(s) as unknown) : (def.default ?? null);\n } catch {\n init = def.default ?? null;\n }\n const storageState: Ref<unknown> = ref(init);\n // Persist on change\n effect(() => {\n const v = storageState.value;\n if (v === null) {\n try {\n store.removeItem(k);\n } catch {}\n } else {\n try {\n store.setItem(k, JSON.stringify(v));\n } catch {}\n }\n });\n return storageState;\n }\n\n case \"Cookie\": {\n const name = def.name ?? key;\n const read = () => {\n const m = document.cookie.match(new RegExp(`(?:^|; )${name}=([^;]*)`));\n if (!m) {\n return null;\n }\n try {\n return JSON.parse(decodeURIComponent(m[1]!));\n } catch {\n return m[1];\n }\n };\n const cookieState: Ref<unknown> = ref(read() ?? def.default ?? null);\n // Persist on change\n effect(() => {\n const v = cookieState.value;\n let s = `${name}=${encodeURIComponent(JSON.stringify(v))}`;\n if (def.maxAge !== undefined) {\n s += `; Max-Age=${def.maxAge}`;\n }\n if (def.path) {\n s += `; Path=${def.path}`;\n }\n if (def.domain) {\n s += `; Domain=${def.domain}`;\n }\n if (def.secure) {\n s += `; Secure`;\n }\n if (def.sameSite) {\n s += `; SameSite=${def.sameSite}`;\n }\n // oxlint-disable-next-line unicorn/no-document-cookie -- the Cookie $prototype IS the cookie store binding\n document.cookie = s;\n });\n return cookieState;\n }\n\n case \"IndexedDB\": {\n const idbState: Ref<unknown> = ref(null);\n const {\n database,\n store,\n version = 1,\n keyPath = \"id\",\n autoIncrement = true,\n indexes = [],\n } = def;\n if (!database || !store) {\n throw new Error(`Jx: IndexedDB entry '${key}' requires database and store`);\n }\n const req = indexedDB.open(database, version);\n req.addEventListener(\"upgradeneeded\", (e) => {\n const db: IDBDatabase = (e.target as IDBOpenDBRequest).result;\n if (!db.objectStoreNames.contains(store)) {\n const os = db.createObjectStore(store, { autoIncrement, keyPath });\n for (const i of indexes) {\n os.createIndex(i.name, i.keyPath, { unique: i.unique ?? false });\n }\n }\n });\n req.addEventListener(\"success\", (e) => {\n const db: IDBDatabase = (e.target as IDBOpenDBRequest).result;\n idbState.value = {\n database,\n getStore: (mode: IDBTransactionMode = \"readwrite\") =>\n Promise.resolve(db.transaction(store, mode).objectStore(store)),\n isReady: true,\n store,\n version,\n };\n });\n req.addEventListener(\"error\", () => {\n idbState.value = { error: req.error?.message };\n });\n return idbState;\n }\n\n case \"Set\": {\n return new Set(Array.isArray(def.default) ? def.default : []);\n }\n\n case \"Map\": {\n return new Map(Object.entries(isJsonObject(def.default) ? def.default : {}));\n }\n\n case \"FormData\": {\n const fd = new FormData();\n for (const [k, v] of Object.entries(def.fields ?? {})) {\n fd.append(k, v as string);\n }\n return fd;\n }\n\n case \"Blob\": {\n return new Blob((def.parts as BlobPart[]) ?? [], {\n type: typeof def.type === \"string\" ? def.type : \"text/plain\",\n });\n }\n\n case \"ReadableStream\": {\n return null;\n }\n\n default: {\n console.warn(\n `Jx: unknown $prototype \"${def.$prototype}\" for \"${key}\". Did you mean to add '$src'?`,\n );\n return ref(null);\n }\n }\n}\n\n// ─── External class resolution ────────────────────────────────────────────────\n\n/** Reserved keys stripped from the config object passed to external class constructors. */\nconst EXTERNAL_RESERVED = new Set([\n \"$prototype\",\n \"$src\",\n \"$export\",\n \"timing\",\n \"default\",\n \"description\",\n \"body\",\n \"parameters\",\n \"arguments\",\n \"name\",\n]);\n\n/**\n * Resolve an external class prototype via $src.\n *\n * @param {JxPrototypeDef} def\n * @param {JxScope} state\n * @param {string} key\n * @param {string} [base]\n * @returns {Promise<unknown>}\n */\nasync function resolveExternalPrototype(\n def: JxPrototypeDef,\n state: JxScope,\n key: string,\n base?: string,\n) {\n const src = def.$src;\n\n // Non-Function $prototype must use .class.json as entrypoint\n if (!src || !src.endsWith(\".class.json\")) {\n throw new Error(\n `Jx: $prototype \"${def.$prototype}\" requires a .class.json $src, got \"${src}\". ` +\n `Wrap the class in a .class.json schema with $implementation.`,\n );\n }\n\n return resolveClassJson(def, state, key, base);\n}\n\n/**\n * Import a JS module and instantiate a class from it. Internal helper used by resolveClassJson for\n * $implementation.\n *\n * @param {JxScope} def - Original state entry (for config extraction)\n * @param {string} src - JS module URL to import\n * @param {string} exportName - Export name to look up\n * @param {string} [base] - Base URL for resolution\n * @returns {Promise<unknown>}\n */\nasync function importAndInstantiate(def: JxScope, src: string, exportName: string, base?: string) {\n let mod: ImportedModule;\n if (_moduleCache.has(src)) {\n mod = _moduleCache.get(src)!;\n } else {\n try {\n mod = (await import(src)) as ImportedModule;\n } catch {\n if (base) {\n const resolvedSrc = new URL(src, base).href;\n mod = (await import(resolvedSrc)) as ImportedModule;\n } else {\n throw new Error(`Failed to import \"${src}\"`);\n }\n }\n _moduleCache.set(src, mod);\n }\n\n const ExportedClass = mod[exportName] ?? mod.default?.[exportName];\n if (!ExportedClass) {\n throw new Error(`Jx: export \"${exportName}\" not found in \"${src}\"`);\n }\n if (typeof ExportedClass !== \"function\") {\n throw new TypeError(`Jx: \"${exportName}\" from \"${src}\" is not a class`);\n }\n\n const config: JxScope = {};\n for (const [k, v] of Object.entries(def)) {\n if (!EXTERNAL_RESERVED.has(k)) {\n config[k] = v;\n }\n }\n\n const Ctor = ExportedClass as new (config: JxScope) => ExternalClassInstance;\n const instance = new Ctor(config);\n\n let value: unknown;\n if (typeof instance.resolve === \"function\") {\n value = await instance.resolve();\n } else if (\"value\" in instance) {\n ({ value } = instance);\n } else {\n value = instance;\n }\n\n // Always wrap in ref for reactivity with external classes\n const s: Ref<unknown> = ref(value);\n if (typeof instance.subscribe === \"function\") {\n instance.subscribe((newVal: unknown) => {\n s.value = newVal;\n });\n }\n return s;\n}\n\n/**\n * Resolve a .class.json schema-defined class. Fetches the schema, follows $implementation if\n * hybrid, or constructs dynamically if self-contained.\n *\n * @param {JxPrototypeDef} def\n * @param {JxScope} state\n * @param {string} key\n * @param {string} [base]\n * @returns {Promise<unknown>}\n */\nasync function resolveClassJson(def: JxPrototypeDef, state: JxScope, key: string, base?: string) {\n const src = def.$src;\n if (!src) {\n throw new Error(`Jx: class entry '${key}' has no $src`);\n }\n let classDef: JxClassDef;\n\n // Bare specifiers (package references like @scope/pkg/file) can't be fetched directly —\n // Go straight to dev proxy which can resolve them via node_modules.\n const isBareSpecifier =\n !src.startsWith(\".\") &&\n !src.startsWith(\"/\") &&\n !src.startsWith(\"http\") &&\n !src.startsWith(\"file:\");\n if (isBareSpecifier) {\n return resolveViaDevProxy(def, state, key, base);\n }\n\n // Try fetching the .class.json file directly\n try {\n const url = base ? new URL(src, base).href : src;\n const res = await fetch(url);\n if (!res.ok) {\n throw new Error(`HTTP ${res.status}`);\n }\n // Trust boundary: fetched .class.json sources are class definitions by contract.\n classDef = (await res.json()) as JxClassDef;\n } catch {\n // Fall back to dev proxy (server will handle .class.json resolution)\n return resolveViaDevProxy(def, state, key, base);\n }\n\n // Hybrid mode: $implementation points to the real JS module\n if (classDef.$implementation) {\n // If the schema references $context (e.g. content types), the browser cannot provide\n // The required server-side context — go directly to dev proxy.\n const schemaStr = JSON.stringify(classDef);\n if (schemaStr.includes('\"#/$context/')) {\n return resolveViaDevProxy(def, state, key, base);\n }\n const schemaUrl = base ? new URL(src, base).href : new URL(src, location.href).href;\n const implSrc = new URL(classDef.$implementation, schemaUrl).href;\n const exportName = def.$export ?? classDef.title ?? def.$prototype;\n try {\n return await importAndInstantiate(def, implSrc, exportName, base);\n } catch {\n return resolveViaDevProxy(def, state, key, base);\n }\n }\n\n // Self-contained: construct class dynamically from schema\n const DynClass = classFromSchema(classDef);\n const config: JxScope = {};\n for (const [k, v] of Object.entries(def)) {\n if (!EXTERNAL_RESERVED.has(k)) {\n config[k] = v;\n }\n }\n const instance = new DynClass(config) as ExternalClassInstance;\n\n let value: unknown;\n if (typeof instance.resolve === \"function\") {\n value = await instance.resolve();\n } else if (\"value\" in instance) {\n ({ value } = instance);\n } else {\n value = instance;\n }\n\n // Always wrap in ref for reactivity\n const s: Ref<unknown> = ref(value);\n if (typeof instance.subscribe === \"function\") {\n instance.subscribe((newVal: unknown) => {\n s.value = newVal;\n });\n }\n return s;\n}\n\n/**\n * Dynamically construct a class from a .class.json schema definition. Browser-side: maps private\n * fields to _-prefixed public fields.\n *\n * @param {import(\"@jxsuite/schema/types\").JxClassDef} classDef\n * @returns {DynamicClass}\n */\nfunction classFromSchema(classDef: JxClassDef) {\n const fields = classDef.$defs?.fields ?? {};\n // JSON objects inherit Object.prototype.constructor — only an own object value counts.\n const rawCtor = classDef.$defs?.constructor;\n const ctor = typeof rawCtor === \"object\" ? rawCtor : undefined;\n const methods = classDef.$defs?.methods ?? {};\n\n // oxlint-disable-next-line typescript/no-extraneous-class -- methods are attached to the prototype dynamically below\n class DynClass {\n constructor(config: Record<string, unknown> = {}) {\n for (const [key, typedField] of Object.entries(fields)) {\n const id = typedField.identifier ?? key;\n const propName = typedField.access === \"private\" ? `_${id}` : id;\n if (config[id] !== undefined) {\n (this as Record<string, unknown>)[propName] = config[id];\n } else if (typedField.initializer !== undefined) {\n (this as Record<string, unknown>)[propName] = typedField.initializer;\n } else if (typedField.default !== undefined) {\n (this as Record<string, unknown>)[propName] = structuredClone(typedField.default);\n } else {\n (this as Record<string, unknown>)[propName] = null;\n }\n }\n if (ctor?.body) {\n const bodyStr = Array.isArray(ctor.body) ? ctor.body.join(\"\\n\") : ctor.body;\n (\n new Function(\"config\", bodyStr) as (\n this: unknown,\n config: Record<string, unknown>,\n ) => void\n ).call(this, config);\n }\n }\n }\n\n for (const [key, typedMethod] of Object.entries(methods)) {\n const name = typedMethod.identifier ?? key;\n const params = (typedMethod.parameters ?? []).map((p) => {\n if (p.$ref) {\n return p.$ref.split(\"/\").pop() as string;\n }\n const n = p.identifier ?? p.name;\n return typeof n === \"string\" ? n : \"arg\";\n });\n const bodyStr = Array.isArray(typedMethod.body)\n ? typedMethod.body.join(\"\\n\")\n : (typedMethod.body ?? \"\");\n\n if (typedMethod.role === \"accessor\") {\n const descriptor: PropertyDescriptor = {};\n if (typedMethod.getter) {\n descriptor.get = new Function(typedMethod.getter.body ?? \"\") as () => unknown;\n }\n if (typedMethod.setter) {\n const sp = (typedMethod.setter.parameters ?? []).map(\n (p) => p.$ref?.split(\"/\").pop() ?? \"v\",\n );\n descriptor.set = new Function(...sp, typedMethod.setter.body ?? \"\") as (v: unknown) => void;\n }\n Object.defineProperty(DynClass.prototype, name, {\n ...descriptor,\n configurable: true,\n });\n } else if (typedMethod.scope === \"static\") {\n (DynClass as unknown as DynamicClass)[name] = new Function(...params, bodyStr);\n } else {\n (DynClass as unknown as DynamicClass).prototype[name] = new Function(...params, bodyStr);\n }\n }\n\n Object.defineProperty(DynClass, \"name\", {\n configurable: true,\n value: classDef.title,\n });\n const dynCtor = DynClass as unknown as DynamicClass;\n return dynCtor;\n}\n\n/**\n * Dev-mode fallback: when an $src module cannot run in the browser, proxy the resolve() call\n * through the Jx dev server (POST /**jx_resolve**). Supports reactive template strings in config\n * values via Vue effect().\n *\n * @param {JxPrototypeDef} def\n * @param {JxScope} state\n * @param {string} key\n * @param {string} [base]\n * @returns {Promise<unknown>}\n */\nasync function resolveViaDevProxy(def: JxPrototypeDef, state: JxScope, key: string, base?: string) {\n const config: JxScope = {};\n for (const [k, v] of Object.entries(def)) {\n if (!EXTERNAL_RESERVED.has(k)) {\n config[k] = v;\n }\n }\n\n const hasTemplates = Object.values(config).some((v: unknown) => isTemplateString(v));\n\n /** @param {JxScope} resolvedConfig */\n const doResolve = (resolvedConfig: JxScope) =>\n fetch(resolveProxyPath(\"/__jx_resolve__\"), {\n body: JSON.stringify({\n $base: base,\n $export: def.$export,\n $prototype: def.$prototype,\n $src: def.$src,\n ...resolvedConfig,\n }),\n headers: { \"Content-Type\": \"application/json\" },\n method: \"POST\",\n }).then((r) => {\n if (!r.ok) {\n throw new Error(`Jx dev proxy ${r.status} for \"${key}\"`);\n }\n return r.json();\n });\n\n // Always wrap in ref for reactivity\n const s: Ref<unknown> = ref(null);\n if (hasTemplates) {\n effect(() => {\n const resolvedConfig: JxScope = {};\n for (const [k, v] of Object.entries(config)) {\n resolvedConfig[k] = isTemplateString(v) ? evaluateTemplate(v, state) : v;\n }\n doResolve(resolvedConfig)\n .then((value: unknown) => {\n s.value = value;\n })\n .catch((error: unknown) => console.error(\"Jx dev proxy:\", error));\n });\n } else {\n doResolve(config)\n .then((value: unknown) => {\n s.value = value;\n })\n .catch((error: unknown) => console.error(\"Jx dev proxy:\", error));\n }\n return s;\n}\n\n// ─── Server function resolution (dev mode) ────────────────────────────────────\n\n/**\n * Resolve a timing: \"server\" entry in dev mode by executing the function client-side. In\n * production, the compiler replaces this with a fetch to the generated server handler.\n *\n * @param {JxScope} def\n * @param {JxScope} state\n * @param {string} key\n * @param {string} [base]\n * @returns {Promise<unknown>}\n */\nasync function resolveServerFunction(\n def: JxServerFnDef,\n state: JxScope,\n key: string,\n base?: string,\n) {\n const src = def.$src;\n const exportName = def.$export;\n\n let mod: ImportedModule;\n if (_moduleCache.has(src)) {\n mod = _moduleCache.get(src)!;\n } else {\n try {\n mod = (await import(src)) as ImportedModule;\n } catch {\n if (base) {\n try {\n const resolvedSrc = new URL(src, base).href;\n mod = (await import(resolvedSrc)) as ImportedModule;\n } catch {\n // Module cannot run in the browser — fall back to dev server proxy\n return resolveServerFunctionViaProxy(def, state, key, base);\n }\n } else {\n return resolveServerFunctionViaProxy(def, state, key, base);\n }\n }\n _moduleCache.set(src, mod);\n }\n\n const candidate = mod[exportName] ?? mod.default?.[exportName];\n if (!candidate) {\n throw new Error(`Jx: export \"${exportName}\" not found in \"${src}\" for \"${key}\"`);\n }\n if (typeof candidate !== \"function\") {\n throw new TypeError(`Jx: \"${exportName}\" from \"${src}\" is not a function`);\n }\n const fn = candidate as (args: JxScope) => Promise<unknown>;\n\n const rawArgs = def.arguments ?? {};\n const hasReactiveArg = Object.values(rawArgs).some((v: unknown) => isRefObj(v));\n const resolveArgs = () => {\n const args: JxScope = {};\n for (const [k, v] of Object.entries(rawArgs)) {\n args[k] = isRefObj(v) ? resolveRef(v.$ref, state) : v;\n }\n return args;\n };\n\n // Always wrap in ref for reactivity\n const s: Ref<unknown> = ref(null);\n if (hasReactiveArg) {\n effect(() => {\n const args = resolveArgs();\n onEffectCleanup(() => {});\n fn(args)\n .then((result: unknown) => {\n s.value = result;\n })\n .catch(() => {});\n });\n } else {\n s.value = await fn(resolveArgs());\n }\n return s;\n}\n\n/**\n * Dev-mode fallback: when a timing: \"server\" module cannot run in the browser, proxy the function\n * call through the Jx dev server (POST /**jx_server**). Supports reactive $ref arguments via Vue\n * effect().\n *\n * @param {JxScope} def\n * @param {JxScope} state\n * @param {string} key\n * @param {string} [base]\n * @returns {Promise<unknown>}\n */\nasync function resolveServerFunctionViaProxy(\n def: JxScope,\n state: JxScope,\n key: string,\n base?: string,\n) {\n const rawArgs = def.arguments ?? {};\n const hasReactiveArg = Object.values(rawArgs).some((v: unknown) => isRefObj(v));\n\n const resolveArgs = () => {\n const args: JxScope = {};\n for (const [k, v] of Object.entries(rawArgs)) {\n args[k] = isRefObj(v) ? resolveRef((v as { $ref: string }).$ref, state) : v;\n }\n return args;\n };\n\n /** @param {JxScope} args */\n const doResolve = (args: JxScope) =>\n fetch(resolveProxyPath(\"/__jx_server__\"), {\n body: JSON.stringify({\n $base: base,\n $export: def.$export,\n $src: def.$src,\n arguments: args,\n }),\n headers: { \"Content-Type\": \"application/json\" },\n method: \"POST\",\n }).then((r) => {\n if (!r.ok) {\n throw new Error(`Jx server proxy ${r.status} for \"${key}\"`);\n }\n return r.json();\n });\n\n // Always wrap in ref for reactivity\n const s: Ref<unknown> = ref(null);\n if (hasReactiveArg) {\n effect(() => {\n const args = resolveArgs();\n onEffectCleanup(() => {});\n doResolve(args)\n .then((result: unknown) => {\n s.value = result;\n })\n .catch((error: unknown) => console.error(\"Jx server proxy:\", error));\n });\n } else {\n doResolve(resolveArgs())\n .then((result: unknown) => {\n s.value = result;\n })\n .catch((error: unknown) => console.error(\"Jx server proxy:\", error));\n }\n return s;\n}\n\n/**\n * Resolve a $ref string to a value in scope.\n *\n * With Vue reactivity, this reads directly from the reactive proxy. When called inside a effect or\n * computed, the read is tracked.\n *\n * @param {string} ref\n * @param {JxScope} state - Reactive scope proxy (or child scope)\n * @returns {unknown}\n */\nexport function resolveRef(refPath: string, state: JxScope) {\n if (typeof refPath !== \"string\") {\n return refPath;\n }\n if (refPath.startsWith(\"$map/\")) {\n const parts = refPath.split(\"/\");\n const [, key] = parts; // \"item\" or \"index\"\n const map = state.$map as Record<string, unknown> | undefined;\n const base = map?.[key!] ?? state[`$map/${key}`];\n return parts.length > 2 ? getPath(base, parts.slice(2).join(\"/\")) : base;\n }\n if (refPath.startsWith(\"#/state/\")) {\n const sub = refPath.slice(\"#/state/\".length);\n const slash = sub.indexOf(\"/\");\n if (slash === -1) {\n return state[sub];\n }\n return getPath(state[sub.slice(0, slash)], sub.slice(slash + 1));\n }\n if (refPath.startsWith(\"parent#/\")) {\n return state[refPath.slice(\"parent#/\".length)];\n }\n if (refPath.startsWith(\"window#/\")) {\n return getPath(globalThis.window, refPath.slice(\"window#/\".length));\n }\n if (refPath.startsWith(\"document#/\")) {\n return getPath(globalThis.document, refPath.slice(\"document#/\".length));\n }\n return state[refPath] ?? null;\n}\n\n// ─── Utilities ────────────────────────────────────────────────────────────────\n\n/**\n * Check if v is a Vue ref (including computed).\n *\n * @param {unknown} v\n * @returns {boolean}\n */\nexport function isSignal(v: unknown) {\n return isRef(v);\n}\n\n/**\n * @param {unknown} v\n * @returns {v is import(\"@jxsuite/schema/types\").JxRef}\n */\nfunction isRefObj(v: unknown): v is JxRef {\n return isRefValue(v);\n}\n\n/**\n * @param {string} k\n * @returns {boolean}\n */\nfunction isNestedSelector(k: string) {\n return k.startsWith(\":\") || k.startsWith(\".\") || k.startsWith(\"&\") || k.startsWith(\"[\");\n}\n\n/**\n * @param {unknown} obj\n * @param {string} path\n * @returns {unknown}\n */\nfunction getPath(obj: unknown, path: string) {\n let current: unknown = obj;\n for (const k of path.split(/[./]/)) {\n current = (current as Record<string, unknown>)?.[k];\n }\n return current;\n}\n\n/**\n * @param {JxElement} def\n * @param {JxScope} parentState\n * @returns {JxScope}\n */\nfunction mergeProps(def: JxElement, parentState: JxScope): JxScope {\n const child = Object.create(parentState) as JxScope;\n for (const [k, v] of Object.entries(def.$props ?? {})) {\n child[k] = isRefObj(v) ? resolveRef(v.$ref, parentState) : v;\n }\n return child;\n}\n\n/**\n * Convert camelCase to kebab-case.\n *\n * @param {string} s\n * @returns {string}\n */\nexport function camelToKebab(s: string) {\n return s.replaceAll(/[A-Z]/g, (c) => `-${c.toLowerCase()}`);\n}\n\n/**\n * Convert a style rules object to a CSS text string (skipping nested selectors).\n *\n * @param {Record<string, unknown> | object} rules\n * @returns {string}\n */\nexport function toCSSText(rules: Record<string, unknown> | object) {\n return Object.entries(rules)\n .filter(([k, v]) => !isNestedSelector(k) && (v === null || typeof v !== \"object\"))\n .map(([p, v]) => `${camelToKebab(p)}: ${transposeCanvasUnits(String(v))}`)\n .join(\"; \");\n}\n\n// ─── Custom Element Registration ──────────────────────────────────────────────\n\nlet _rootMedia: Record<string, string> = {};\nconst _elementDefs = new Map();\n\n/**\n * Seed the module-level root `$media` map used as the fallback for components that declare their\n * own `@--name` style blocks but carry no own `$media` (buildScope ~279-280). `Jx()` sets this from\n * the document during a full top-level render, but the Studio iframe canvas calls `buildScope`/\n * `renderNode` directly (never `Jx()`), so without seeding it a component's `@--md` would resolve\n * to the invalid `@media md`. Callers on the direct path MUST set it (with the merged `$media`)\n * before `buildScope`, and re-set it every render so a stale map from a previous document cannot\n * leak.\n *\n * @param {Record<string, string>} map\n */\nexport function setRootMedia(map: Record<string, string>): void {\n _rootMedia = map ?? {};\n}\n\n/**\n * Resolve and register $elements entries (depth-first).\n *\n * @param {JxDocument[\"$elements\"]} elements\n * @param {string} base\n * @returns {Promise<void>}\n */\nasync function registerElements(elements: NonNullable<JxDocument[\"$elements\"]>, base: string) {\n for (const entry of elements) {\n // Bare string: npm package side-effect import (registers custom elements)\n if (typeof entry === \"string\") {\n try {\n // Bare specifiers need a URL path for the browser; the dev server resolves\n // /node_modules/<pkg> to the package entry point via exports/module/main.\n const specifier =\n entry.startsWith(\"/\") || entry.startsWith(\".\") ? entry : `/node_modules/${entry}`;\n await import(specifier);\n } catch (error) {\n console.warn(`Jx: failed to import package \"${entry}\"`, error);\n }\n continue;\n }\n if (!isRefObj(entry)) {\n continue;\n }\n const { href } = new URL(entry.$ref, base);\n const doc = await resolve(href);\n if (!doc.tagName || !doc.tagName.includes(\"-\")) {\n continue;\n }\n if (customElements.get(doc.tagName)) {\n continue;\n }\n\n // Depth-first: register sub-dependencies first\n if (doc.$elements) {\n await registerElements(doc.$elements, href);\n }\n\n await defineElement(doc, href);\n }\n}\n\n/**\n * Inject head elements from $head declarations. Each entry is { tagName, attributes } — bare npm\n * specifiers in href/src are rewritten to /node_modules/ paths for the dev server.\n *\n * @param {import(\"@jxsuite/schema/types\").JxHeadEntry[]} entries\n * @param {string} _base - Document base URL for resolving relative paths\n */\nfunction injectHead(entries: JxHeadEntry[], _base: string) {\n for (const entry of entries) {\n if (!entry || !entry.tagName) {\n continue;\n }\n const tag = entry.tagName.toLowerCase();\n const attrs = { ...entry.attributes };\n // Resolve href/src: bare npm specifiers -> /node_modules/ path\n for (const key of [\"href\", \"src\"] as const) {\n const v = attrs[key];\n if (\n typeof v === \"string\" &&\n v &&\n !v.startsWith(\"/\") &&\n !v.startsWith(\".\") &&\n !v.startsWith(\"http\")\n ) {\n attrs[key] = `/node_modules/${v}`;\n }\n }\n\n // Deduplicate: skip if an identical element already exists\n const selector = `${tag}${attrs.href ? `[href=\"${attrs.href}\"]` : \"\"}${attrs.src ? `[src=\"${attrs.src}\"]` : \"\"}`;\n if (selector !== tag && document.head.querySelector(selector)) {\n continue;\n }\n\n const el = document.createElement(tag);\n for (const [k, v] of Object.entries(attrs)) {\n el.setAttribute(k, String(v));\n }\n if (entry.textContent) {\n el.textContent = entry.textContent;\n }\n document.head.append(el);\n }\n}\n\n/**\n * Register a custom element from a Jx document.\n *\n * @param {string | JxDocument} source - URL to .json file, or raw document object\n * @param {string} [base] - Base URL for resolving $src imports\n * @returns {Promise<void>}\n */\nconst _definedSources = new Set<string>();\n\nexport async function defineElement(source: string | JxDocument, baseUrl?: string) {\n let base = baseUrl;\n let doc = source;\n if (typeof source === \"string\") {\n base = new URL(source, base ?? location.href).href;\n if (_definedSources.has(base)) {\n return;\n }\n _definedSources.add(base);\n doc = await resolve(source);\n }\n base ??= location.href;\n\n const source_: JxDocument = doc as JxDocument;\n\n const { tagName } = source_;\n if (!tagName || !tagName.includes(\"-\")) {\n throw new Error(`Jx defineElement: tagName \"${tagName}\" must contain a hyphen`);\n }\n if (customElements.get(tagName)) {\n return;\n }\n\n // Register sub-dependencies first\n if (source_.$elements) {\n await registerElements(source_.$elements, base);\n }\n\n _elementDefs.set(tagName, { base, doc: source_ });\n\n const def = source_;\n const observedAttrs = def.observedAttributes ?? [];\n\n const ElementClass = class extends HTMLElement {\n _jxInitialized = false;\n _state: JxScope | null = null;\n\n static get observedAttributes() {\n return observedAttrs;\n }\n\n async connectedCallback() {\n // An element carrying `data-jx-definition-root` IS the definition being rendered by an\n // External renderer (the studio canvas editing this component's own document) — its subtree\n // Is authored DOM, not an instantiation site. Self-initializing here would wipe that tree\n // And re-render it with default state (the \"component editor shows a live instance\" bug).\n if (this.dataset.jxDefinitionRoot !== undefined) {\n return;\n }\n if (this._jxInitialized) {\n return;\n }\n this._jxInitialized = true;\n\n const state = await buildScope(def, {}, base);\n\n // Read properties from directive encoding (markdown → data-jx-props)\n const propsAttr = this.dataset.jxProps;\n if (propsAttr) {\n try {\n const props = JSON.parse(propsAttr) as Record<string, unknown>;\n for (const [key, val] of Object.entries(props)) {\n if (key in (def.state ?? {})) {\n state[key] = val;\n }\n }\n } catch {}\n delete this.dataset.jxProps;\n }\n\n // Merge $props set as JS properties by parent before connection\n for (const key of Object.keys(def.state ?? {})) {\n if (key in this && (this as Record<string, unknown>)[key] !== undefined) {\n state[key] = (this as Record<string, unknown>)[key];\n }\n }\n // Set up property getters/setters that forward into reactive state\n for (const key of Object.keys(def.state ?? {})) {\n if (!(key in HTMLElement.prototype)) {\n Object.defineProperty(this, key, {\n configurable: true,\n get: () => state[key],\n set: (v: unknown) => {\n state[key] = v;\n },\n });\n }\n }\n\n this._state = state;\n\n // Capture light DOM children (for slot distribution) before rendering\n const slottedChildren = [...this.childNodes];\n this.innerHTML = \"\";\n\n // Custom elements default to display:inline — use block so they behave as\n // Containers (matching <div> semantics). The component's own style can\n // Override this if needed.\n if (!this.style.display) {\n this.style.display = \"block\";\n }\n\n // Render template into light DOM (once, not in effect — inner effects handle reactivity)\n applyStyle(this, def.style ?? {}, (state[\"$media\"] as Record<string, string>) ?? {}, state);\n applyAttributes(this, def.attributes ?? {}, state);\n\n const children = Array.isArray(def.children) ? def.children : [];\n for (const childDef of children) {\n this.append(renderNode(childDef, state));\n }\n\n // Slot distribution (light DOM)\n distributeSlots(this, slottedChildren);\n\n // Lifecycle: onMount\n const { onMount } = state;\n if (typeof onMount === \"function\") {\n queueMicrotask(() => (onMount as (s: JxScope) => unknown)(state));\n }\n }\n\n disconnectedCallback() {\n if (typeof this._state?.onUnmount === \"function\") {\n (this._state.onUnmount as (s: JxScope) => unknown)(this._state);\n }\n }\n\n adoptedCallback() {\n if (typeof this._state?.onAdopted === \"function\") {\n (this._state.onAdopted as (s: JxScope) => unknown)(this._state);\n }\n }\n\n attributeChangedCallback(name: string, oldVal: string | null, newVal: string | null) {\n if (!this._state || oldVal === newVal) {\n return;\n }\n const camelKey = name.replaceAll(/-([a-z])/g, (_: string, c: string) => c.toUpperCase());\n const current = this._state[camelKey];\n if (typeof current === \"number\") {\n this._state[camelKey] = Number(newVal);\n } else if (typeof current === \"boolean\") {\n this._state[camelKey] = newVal !== null && newVal !== \"false\";\n } else {\n this._state[camelKey] = newVal;\n }\n }\n };\n\n customElements.define(tagName, ElementClass);\n}\n\n/**\n * Render a registered custom element with $props (property-first interface).\n *\n * @param {JxElement} def\n * @param {JxScope} state\n * @param {JxRenderOptions} [options]\n * @param {JxPath} [path]\n * @returns {HTMLElement}\n */\nfunction renderCustomElementWithProps(\n def: JxElement,\n state: JxScope,\n options?: JxRenderOptions,\n path?: JxPath,\n) {\n const el = document.createElement(def.tagName ?? \"div\");\n\n if (options?.onNodeCreated) {\n options.onNodeCreated(el, path ?? [], def, state);\n }\n\n // Set JS properties from $props (before connection)\n for (const [key, val] of Object.entries(def.$props ?? {})) {\n if (isRefObj(val)) {\n const refVal = val;\n const resolved = resolveRef(refVal.$ref, state);\n (el as unknown as Record<string, unknown>)[key] = resolved;\n // Reactive forwarding: re-set the property when the source changes\n effect(() => {\n (el as unknown as Record<string, unknown>)[key] = resolveRef(refVal.$ref, state);\n });\n } else if (isTemplateString(val)) {\n effect(() => {\n (el as unknown as Record<string, unknown>)[key] = evaluateTemplate(val, state);\n });\n } else {\n (el as unknown as Record<string, unknown>)[key] = val;\n }\n }\n\n // Apply host-level style and attributes from the usage site\n applyStyle(el, def.style ?? {}, (state[\"$media\"] as Record<string, string>) ?? {}, state);\n applyAttributes(el, def.attributes ?? {}, state);\n\n // Append slotted children\n const children = Array.isArray(def.children) ? def.children : [];\n for (let i = 0; i < children.length; i++) {\n const childOpts = options && path ? { ...options, _path: [...path, \"children\", i] } : undefined;\n el.append(renderNode(children[i]!, state, childOpts));\n }\n\n return el;\n}\n\n/**\n * Light DOM slot distribution.\n *\n * @param {HTMLElement} host\n * @param {ChildNode[]} slottedChildren\n */\nfunction distributeSlots(host: HTMLElement, slottedChildren: ChildNode[]) {\n if (slottedChildren.length === 0) {\n return;\n }\n\n const slots = host.querySelectorAll(\"slot\");\n if (slots.length === 0) {\n return;\n }\n\n const named = new Map<string | null, ChildNode[]>();\n const unnamed: ChildNode[] = [];\n\n for (const child of slottedChildren) {\n if (child.nodeType === Node.ELEMENT_NODE && (child as Element).getAttribute(\"slot\")) {\n const name = (child as Element).getAttribute(\"slot\");\n if (!named.has(name)) {\n named.set(name, []);\n }\n (named.get(name) as ChildNode[]).push(child);\n } else {\n unnamed.push(child);\n }\n }\n\n for (const slot of slots) {\n const name = slot.getAttribute(\"name\");\n const matches = name ? (named.get(name) ?? []) : unnamed;\n if (matches.length > 0) {\n slot.innerHTML = \"\";\n for (const child of matches) {\n slot.append(child);\n }\n }\n }\n}\n",
|
|
10
|
+
"/// <reference lib=\"dom\" />\n/**\n * Jx — JSON-native reactive web component runtime\n * @version 3.0.0\n * @license MIT\n *\n * Four-step pipeline:\n * 1. resolve — fetch JSON source (or accept raw object)\n * 2. buildScope — state detection + reactive proxy construction\n * 3. render — walk resolved tree, build DOM, wire reactive effects\n * 4. output — append to target\n *\n * @module jx\n */\n\nimport {\n computed,\n effect,\n effectScope,\n isRef,\n onEffectCleanup,\n reactive,\n ref,\n} from \"@vue/reactivity\";\nimport { evaluateExpression, isMutating } from \"./expression.ts\";\nimport type { DynamicClass, JxEventHandler, JxPath, JxRenderOptions, JxScope } from \"./types.ts\";\nimport {\n isExpressionDef,\n isFunctionDef,\n isJsonObject,\n isMappedArray,\n isPrototypeDef,\n isRef as isRefValue,\n isServerFnDef,\n paramNames,\n} from \"@jxsuite/schema/guards\";\nimport type {\n JxAttributeValue,\n JxClassDef,\n JxDocument,\n JxElement,\n JxFunctionDef,\n JxHeadEntry,\n JxMappedArray,\n JxPrototypeDef,\n JxRef,\n JxServerFnDef,\n JxStyle,\n} from \"@jxsuite/schema/types\";\nimport type { Ref } from \"@vue/reactivity\";\n\n// ─── Public API ───────────────────────────────────────────────────────────────\n\n/**\n * Mount a Jx document into a DOM container.\n *\n * @example\n * import { Jx } from \"@jxsuite/runtime\";\n * const state = await Jx(\"./counter.json\", document.getElementById(\"app\"));\n *\n * @param {string | JxDocument} source - Path to .json file, URL, or raw document object\n * @param {HTMLElement} [target] Default is `document.body`\n * @param {JxRenderOptions} [options]\n * @returns {Promise<JxScope>} Resolves with the live component scope (state reactive\n * proxy)\n */\nexport async function Jx(\n source: string | JxDocument,\n target: HTMLElement = document.body,\n options?: JxRenderOptions,\n) {\n const base = typeof source === \"string\" ? new URL(source, location.href).href : location.href;\n const doc = await resolve(source);\n\n // Register custom elements declared in $elements (depth-first)\n if (doc.$elements) {\n await registerElements(doc.$elements, base);\n }\n\n // Inject <head> elements declared in $head (link, meta, script, etc.)\n if (doc.$head) {\n injectHead(doc.$head, base);\n }\n\n if (doc.$media) {\n _rootMedia = doc.$media;\n }\n\n const state = await buildScope(doc, {}, base);\n target.append(renderNode(doc, state, options));\n if (typeof state.onMount === \"function\") {\n (state.onMount as (s: JxScope) => unknown)(state);\n }\n return state;\n}\n\n// ─── Step 1: Resolve ──────────────────────────────────────────────────────────\n\nconst _resolveCache = new Map<string, Promise<JxDocument>>();\n\nexport async function resolve(source: string | JxDocument): Promise<JxDocument> {\n if (typeof source !== \"string\") {\n return source;\n }\n if (_resolveCache.has(source)) {\n return _resolveCache.get(source)!;\n }\n const p = fetch(source).then((res) => {\n if (!res.ok) {\n throw new Error(`Jx: failed to fetch ${source} (${res.status})`);\n }\n // Trust boundary: fetched sources are Jx documents by contract.\n return res.json() as Promise<JxDocument>;\n });\n _resolveCache.set(source, p);\n return p;\n}\n\n// ─── Step 2: Build scope ──────────────────────────────────────────────────────\n\n/** JSON Schema keywords used to identify pure type definitions (Shape 2b). */\nconst SCHEMA_KEYWORDS = new Set([\n \"type\",\n \"properties\",\n \"items\",\n \"enum\",\n \"minimum\",\n \"maximum\",\n \"minLength\",\n \"maxLength\",\n \"pattern\",\n \"required\",\n \"examples\",\n]);\n\n/** /** @type {{ skip: boolean }} */\nconst _serverFnConfig = { skip: false };\n/** Set to true to suppress timing: \"server\" resolution (used by Studio edit mode). */\nexport function setSkipServerFunctions(v: boolean) {\n _serverFnConfig.skip = v;\n}\n\n// ─── Dev-proxy auth token (Studio cross-origin canvas) ────────────────────────\n// The Studio canvas iframe is served from a token-gated loopback origin (createProjectServer): its\n// POST /__jx_resolve__ + /__jx_server__ routes 403 without ?token=<rpcToken>. The iframe boot reads\n// The token from its URL and calls setResolveToken so these dev-proxy fetches authenticate. Unset by\n// Default, leaving production + same-origin dev untouched (bare path, no query appended).\nlet _resolveToken: string | null = null;\nexport function setResolveToken(token: string | null) {\n _resolveToken = token || null;\n}\n/** Append the dev-proxy auth token to a privileged resolve path when one is configured. */\nfunction resolveProxyPath(path: string): string {\n return _resolveToken ? `${path}?token=${encodeURIComponent(_resolveToken)}` : path;\n}\n\n/** @deprecated No longer needed — ContentCollection/ContentEntry resolve via generic class path */\nexport function setSkipContentResolution(_v: boolean) {\n // No-op retained for API compatibility\n}\n\n/**\n * Observe runtime-created reactive values: runs `fn` immediately inside a reactive effect and\n * re-runs it whenever a tracked value changes; returns a disposer. Dep tracking in @vue/reactivity\n * is per module INSTANCE, so an effect created from another copy of the package (e.g. the studio's\n * own pin) can never track a ref/reactive created here — consumers that want to observe\n * runtime-resolved scope values (the Studio canvas iframe's dataScope re-post) must use this.\n *\n * @param {() => void} fn - Read the reactive values to observe inside this callback.\n * @returns {() => void} Disposer — stops the effect and its scope.\n */\nexport function observeScope(fn: () => void): () => void {\n const scope = effectScope(true);\n scope.run(() => {\n effect(fn);\n });\n return () => scope.stop();\n}\n\n/**\n * Run `fn` inside a detached reactive scope of THIS module's reactivity instance, returning its\n * result plus a disposer that stops every effect `fn` created. Callers that render via\n * {@link renderNode} and later tear the render down (the Studio canvas full render and its surgical\n * subtree re-renders) MUST use this instead of their own effectScope: scope collection is per\n * vue-reactivity module instance, so a scope from another copy of the package collects NOTHING and\n * its stop() silently leaks every binding effect of the superseded render.\n *\n * @param {() => T} fn - Work that may create reactive effects (typically a renderNode call).\n * @returns {{ result: T; stop: () => void }} The callback result and the scope disposer.\n */\nexport function runScoped<T>(fn: () => T): { result: T; stop: () => void } {\n const scope = effectScope(true);\n try {\n const result = scope.run(fn) as T;\n return { result, stop: () => scope.stop() };\n } catch (error) {\n // A throwing fn would otherwise leak the effects it created before failing.\n scope.stop();\n throw error;\n }\n}\n\n/**\n * Studio-canvas viewport-unit transpose. The canvas iframe is sized to its document's height, so\n * any viewport unit (`vh`/`vw`/`vmin`/`vmax`/`svh`/…) — which resolves against the iframe ELEMENT —\n * would feed back into an ever-growing height. When this is on, the runtime transposes them to\n * CONTAINER units (`cqh`/`cqw`/…) that resolve against the canvas's fixed-size query container (see\n * `canvas.html`): a predictable, feedback-free stand-in for the viewport. Off (the default) leaves\n * CSS untouched for real production rendering.\n */\nlet _canvasViewportTranspose = false;\nexport function setCanvasViewportTranspose(on: boolean) {\n _canvasViewportTranspose = on;\n}\n\nconst VIEWPORT_UNIT_RE = /(-?\\d*\\.?\\d+)(?:s|l|d)?v(h|w|min|max|i|b)\\b/gi;\nconst VIEWPORT_UNIT_MAP: Record<string, string> = {\n b: \"cqb\",\n h: \"cqh\",\n i: \"cqi\",\n max: \"cqmax\",\n min: \"cqmin\",\n w: \"cqw\",\n};\n\n/**\n * Transpose CSS viewport units → container-query units in a value string, but only when the\n * studio-canvas flag is set (otherwise the value is returned untouched). `100vh` → `100cqh`,\n * `50svw` → `50cqw`, `10vmin` → `10cqmin`, etc.\n */\nexport function transposeCanvasUnits(value: string): string {\n if (!_canvasViewportTranspose || !value.includes(\"v\")) {\n return value;\n }\n return value.replace(\n VIEWPORT_UNIT_RE,\n (_m, num: string, dim: string) => `${num}${VIEWPORT_UNIT_MAP[dim.toLowerCase()] ?? `cq${dim}`}`,\n );\n}\n\n/**\n * Studio-canvas anchor de-linking. In the editor canvas a rendered `<a href>` would navigate the\n * iframe when clicked, fighting element selection. When this is on, the runtime stamps the value on\n * `data-jx-href` instead of `href` so the anchor is inert (selectable, not a live link) while the\n * original target stays recoverable for richer link handling later. Off (the default) leaves\n * production rendering untouched; the studio sets it for design/edit (not preview — see\n * iframe-render).\n */\nlet _canvasDelinkAnchors = false;\nexport function setCanvasDelinkAnchors(on: boolean) {\n _canvasDelinkAnchors = on;\n}\n\n/** The attribute name to stamp `key` on `el` under — `href` → `data-jx-href` on de-linked anchors. */\nfunction canvasAttrName(el: HTMLElement, key: string): string {\n if (_canvasDelinkAnchors && key === \"href\" && (el.tagName === \"A\" || el.tagName === \"AREA\")) {\n return \"data-jx-href\";\n }\n return key;\n}\n\n/**\n * Build the reactive scope (state) from the document using the five-shape detection algorithm.\n *\n * @param {JxDocument} doc\n * @param {JxScope} [parentScope] Default is `{}`\n * @param {string} [base] Base URL for resolving $src imports. Default is `location.href`\n * @returns {Promise<JxScope>} Reactive proxy (state)\n */\nexport async function buildScope(\n doc: JxDocument,\n parentScope: JxScope = {},\n base: string = location.href,\n) {\n const raw: JxScope = {};\n\n // Merge parent scope properties\n for (const [key, val] of Object.entries(parentScope)) {\n raw[key] = val;\n }\n\n const defs = doc.state ?? {};\n\n // Pass 0: resolve bare $prototype names via import map\n const imports = doc.imports ?? {};\n for (const [, def] of Object.entries(defs)) {\n if (isPrototypeDef(def) && !def.$src) {\n const mapped = imports[def.$prototype];\n if (mapped) {\n if (!mapped.endsWith(\".class.json\")) {\n console.warn(\n `Jx: import \"${def.$prototype}\" must map to a .class.json path, got \"${mapped}\"`,\n );\n continue;\n }\n def.$src = mapped;\n }\n }\n }\n\n // First pass: collect naked values, expanded defaults, plain objects\n for (const [key, def] of Object.entries(defs)) {\n // 1. String value\n if (typeof def === \"string\") {\n if (!def.includes(\"${\")) {\n raw[key] = def;\n } // Shape 1: naked string\n continue; // Template strings handled in second pass\n }\n\n // 2. Number, boolean, null\n if (typeof def === \"number\" || typeof def === \"boolean\" || def === null) {\n raw[key] = def;\n continue;\n }\n\n // 3. Array\n if (Array.isArray(def)) {\n raw[key] = def;\n continue;\n }\n\n // 4. Object\n if (typeof def === \"object\") {\n if (def.$prototype) {\n continue;\n } // Handled in later passes\n if (isExpressionDef(def)) {\n continue;\n } // Handled in pass 2.5\n if (isServerFnDef(def)) {\n continue;\n } // Handled in fifth pass\n if (\"default\" in def) {\n raw[key] = def.default;\n continue;\n } // Shape 2: expanded signal\n if (hasSchemaKeywords(def)) {\n continue;\n } // Shape 2b: pure type def\n raw[key] = def; // Shape 1: plain object\n }\n }\n\n // Wrap in Vue reactive proxy — deep reactivity from this point on\n const state = reactive(raw);\n\n // Second pass: template strings → computed\n for (const [key, def] of Object.entries(defs)) {\n if (typeof def === \"string\" && def.includes(\"${\")) {\n state[key] = computed(() => evaluateTemplate(def, state));\n }\n }\n\n // Pass 2.5: $expression entries (Shape 5)\n for (const [key, def] of Object.entries(defs)) {\n if (isExpressionDef(def)) {\n const node = def.$expression;\n if (isMutating(node.operator)) {\n const handler: JxEventHandler = (s, event) => evaluateExpression(node, s, event);\n state[key] = handler;\n } else {\n state[key] = computed(() => evaluateExpression(node, state, null));\n }\n }\n }\n\n // Third pass: $prototype: \"Function\" entries\n for (const [key, def] of Object.entries(defs)) {\n if (isFunctionDef(def)) {\n state[key] = await resolveFunction(def, state, key, base);\n }\n }\n\n // Fourth pass: other $prototype entries (Request, Set, Map, etc.)\n for (const [key, def] of Object.entries(defs)) {\n if (isPrototypeDef(def)) {\n state[key] = await resolvePrototype(def, state, key, base);\n }\n }\n\n // Fifth pass: timing: \"server\" entries (dev mode — execute client-side, boundary unenforced)\n if (!_serverFnConfig.skip) {\n for (const [key, def] of Object.entries(defs)) {\n if (isServerFnDef(def)) {\n state[key] = await resolveServerFunction(def, state, key, base);\n }\n }\n }\n\n if (doc.$media) {\n state[\"$media\"] = doc.$media;\n } else if (!state[\"$media\"] && Object.keys(_rootMedia).length > 0) {\n state[\"$media\"] = _rootMedia;\n }\n\n return state;\n}\n\n/**\n * Check whether an object contains any JSON Schema keywords. Used to discriminate Shape 2b (pure\n * type definition) from Shape 1 (naked object).\n *\n * @param {JxScope} obj\n * @returns {boolean}\n */\nfunction hasSchemaKeywords(obj: object) {\n for (const k of Object.keys(obj)) {\n if (SCHEMA_KEYWORDS.has(k)) {\n return true;\n }\n }\n return false;\n}\nexport { hasSchemaKeywords };\n\n/**\n * Evaluate a template string in the context of state and optional $map. Templates use\n * `state.varName` and `$map.item` syntax.\n *\n * @param {string} str\n * @param {JxScope} state\n * @returns {string}\n */\nfunction evaluateTemplate(str: string, state: JxScope): string {\n const $map = state?.$map as { item?: unknown; index?: number } | undefined;\n const fn = new Function(\"state\", \"$map\", \"item\", \"index\", `return \\`${str}\\``) as (\n state: JxScope,\n $map: unknown,\n item: unknown,\n index: number | undefined,\n ) => string;\n return fn(state, $map, $map?.item, $map?.index);\n}\n\n// ─── Step 2b: Function resolution (Shape 4) ─────────────────────────────────\n\n/** Shape of a dynamically imported module: named exports plus an optional default. */\ntype ImportedModule = Record<string, unknown> & { default?: Record<string, unknown> };\n\n/** Minimal contract an externally-imported resolver class may implement. */\ninterface ExternalClassInstance {\n value?: unknown;\n resolve?: () => unknown;\n subscribe?: (cb: (newVal: unknown) => void) => void;\n}\n\n/** Module cache for $src imports (shared with external class resolution). */\nconst _moduleCache = new Map<string, ImportedModule>();\n\n/**\n * Resolve a $prototype: \"Function\" entry into a function or computed.\n *\n * Functions receive state as their first parameter at call time. Functions with a return statement\n * in their body are wrapped in computed() for reactive evaluation.\n *\n * @param {JxFunctionDef} def - State entry with $prototype: \"Function\"\n * @param {JxScope} state - Reactive scope proxy\n * @param {string} key - Def key name\n * @param {string} [base] - Base URL for resolving $src imports\n * @returns {Promise<unknown>}\n */\nasync function resolveFunction(def: JxFunctionDef, state: JxScope, key: string, base?: string) {\n if (def.body && def.$src) {\n throw new Error(`Jx: '${key}' declares both body and $src — these are mutually exclusive`);\n }\n if (!def.body && !def.$src) {\n const params = resolveParamNames(def);\n const noop = new Function(...params, \"\");\n Object.defineProperty(noop, \"name\", {\n configurable: true,\n value: def.name ?? key,\n });\n return noop;\n }\n\n let fn: ((...args: unknown[]) => unknown) | undefined;\n\n if (def.body) {\n const params = resolveParamNames(def);\n fn = new Function(...params, def.body) as (...args: unknown[]) => unknown;\n Object.defineProperty(fn, \"name\", {\n configurable: true,\n value: def.name ?? key,\n });\n } else {\n // $src: dynamic import (the body/$src dichotomy was validated above)\n const src = def.$src;\n if (!src) {\n throw new Error(`Jx: '${key}' has neither body nor $src`);\n }\n const exportName = def.$export ?? key;\n let mod: ImportedModule;\n if (_moduleCache.has(src)) {\n mod = _moduleCache.get(src)!;\n } else {\n if (base) {\n const resolvedSrc = new URL(src, base).href;\n try {\n mod = (await import(resolvedSrc)) as ImportedModule;\n } catch {\n mod = (await import(src)) as ImportedModule;\n }\n } else {\n mod = (await import(src)) as ImportedModule;\n }\n _moduleCache.set(src, mod);\n }\n const candidate = mod[exportName] ?? mod.default?.[exportName];\n if (typeof candidate !== \"function\") {\n throw new TypeError(`Jx: export \"${exportName}\" not found or not a function in \"${src}\"`);\n }\n fn = candidate as (...args: unknown[]) => unknown;\n }\n\n // Detect computed: body contains a return statement, or $src function introspection.\n // Functions with parameters (event handlers, callbacks) are never computed.\n const hasParams = (def.parameters ?? def.arguments ?? []).length > 0;\n let isComputed = false;\n if (!hasParams) {\n if (def.body) {\n isComputed = /\\breturn\\b/.test(def.body);\n } else if (fn) {\n isComputed = fn.length <= 1 && /\\breturn\\b/.test(fn.toString());\n }\n }\n if (isComputed) {\n return computed(() => fn(state));\n }\n\n return fn;\n}\n\n// ─── Step 3: Render ───────────────────────────────────────────────────────────\n\n/**\n * Extract parameter names from a function definition. Supports both legacy \"arguments\" (string\n * array) and CEM-compatible \"parameters\" (object array). Always ensures \"state\" is the first\n * parameter.\n *\n * @param {JxFunctionDef | JxPrototypeDef} def\n * @returns {string[]}\n */\nfunction resolveParamNames(def: JxFunctionDef | JxPrototypeDef) {\n const names = def.parameters ? paramNames(def.parameters) : (def.arguments ?? []);\n return names.length > 0 && names[0] === \"state\" ? names : [\"state\", ...names];\n}\n\n/**\n * Reserved Jx keys — never set as DOM properties.\n *\n * @type {Set<string>}\n */\nexport const RESERVED_KEYS = new Set([\n \"$schema\",\n \"$id\",\n \"$defs\",\n \"state\",\n \"$ref\",\n \"$props\",\n \"$elements\",\n \"$title\",\n \"$description\",\n \"$switch\",\n \"$prototype\",\n \"$src\",\n \"$export\",\n \"$media\",\n \"$map\",\n \"timing\",\n \"default\",\n \"description\",\n \"body\",\n \"parameters\",\n \"arguments\",\n \"name\",\n \"tagName\",\n \"children\",\n \"style\",\n \"attributes\",\n \"items\",\n \"map\",\n \"filter\",\n \"sort\",\n \"cases\",\n \"observedAttributes\",\n]);\n\n/**\n * Recursively render a Jx element definition into a DOM element.\n *\n * @param {JxElement | string | number | boolean} def\n * @param {JxScope} state - Reactive scope proxy (or child scope via Object.create)\n * @param {JxRenderOptions} [options]\n * @returns {HTMLElement | Text}\n */\nexport function renderNode(\n def: JxElement | string | number | boolean,\n state: JxScope,\n options?: JxRenderOptions,\n): HTMLElement | Text {\n const path = options?._path ?? [];\n\n // Text node children: bare strings/numbers/booleans produce DOM Text nodes\n if (typeof def === \"string\" || typeof def === \"number\" || typeof def === \"boolean\") {\n const textNode = document.createTextNode(String(def));\n if (typeof def === \"string\" && isTemplateString(def)) {\n effect(() => {\n textNode.textContent = evaluateTemplate(def, state);\n });\n }\n return textNode;\n }\n\n // Extend scope with any $-prefixed local bindings declared on this node\n let localState: JxScope = state;\n for (const [key, val] of Object.entries(def)) {\n if (key.startsWith(\"$\") && !RESERVED_KEYS.has(key)) {\n if (localState === state) {\n localState = Object.create(state) as JxScope;\n }\n localState[key] = isRefObj(val) ? resolveRef(val.$ref, state) : val;\n }\n }\n\n // Custom element with $props: set JS properties on the element instance\n const tagName = def.tagName ?? \"div\";\n const isCustomEl = tagName.includes(\"-\") && customElements.get(tagName);\n\n if (def.$props && isCustomEl) {\n return renderCustomElementWithProps(def, localState, options, path);\n }\n\n if (def.$props) {\n const { $props: _$props, ...rest } = def;\n return renderNode(rest, mergeProps(def, localState), options);\n }\n if (def.$switch) {\n return renderSwitch(def, localState, options);\n }\n\n const el = document.createElement(tagName);\n\n if (options?.onNodeCreated) {\n options.onNodeCreated(el, path, def, localState);\n }\n\n applyProperties(el, def, localState);\n applyStyle(\n el,\n def.style ?? {},\n (localState[\"$media\"] as Record<string, string>) ?? {},\n localState,\n );\n applyAttributes(el, def.attributes ?? {}, localState);\n\n const kids = def.children;\n if (isMappedArray(kids)) {\n // Legacy whole-children repeater: the items render directly into `el` (which keeps its own\n // TagName, e.g. <ul>), with no extra wrapper element.\n const arrOpts = options ? { ...options, _path: [...path, \"children\"] } : undefined;\n renderMappedArrayInto(el, kids, localState, arrOpts);\n } else if (Array.isArray(kids)) {\n for (let i = 0; i < kids.length; i++) {\n const child = kids[i]!;\n const childOpts = options ? { ...options, _path: [...path, \"children\", i] } : undefined;\n if (isMappedArray(child)) {\n // Array pseudo-element among siblings: expand inline, no wrapper.\n renderMappedArrayInto(el, child, localState, childOpts);\n } else {\n el.append(renderNode(child, localState, childOpts));\n }\n }\n }\n\n return el;\n}\n\n// ─── Template string utilities ────────────────────────────────────────────────\n\n/**\n * Check if a value is a template string (contains ${}).\n *\n * @param {unknown} val\n * @returns {boolean}\n */\nfunction isTemplateString(val: unknown): val is string {\n return typeof val === \"string\" && val.includes(\"${\");\n}\n\n// ─── Property / style / attribute application ─────────────────────────────────\n\n/**\n * @param {HTMLElement} el\n * @param {JxElement} def\n * @param {JxScope} state\n */\nfunction applyProperties(el: HTMLElement, def: JxElement, state: JxScope) {\n for (const [key, val] of Object.entries(def)) {\n if (RESERVED_KEYS.has(key)) {\n continue;\n }\n if (key.startsWith(\"$\")) {\n continue;\n } // Scope bindings — handled in renderNode\n\n if (key.startsWith(\"on\")) {\n // Event handler: $ref to a function\n if (isRefObj(val)) {\n const handler = resolveRef(val.$ref, state);\n if (typeof handler === \"function\") {\n const scope = state;\n const handlerFn = handler as (s: JxScope, e: Event) => unknown;\n el.addEventListener(key.slice(2), (e) => handlerFn(scope, e));\n }\n continue;\n }\n // Event handler: inline $prototype: \"Function\"\n if (isFunctionDef(val) && val.body) {\n const params = resolveParamNames(val);\n const fn = new Function(...params, val.body) as (s: JxScope, e: Event) => unknown;\n const scope = state;\n el.addEventListener(key.slice(2), (e) => fn(scope, e));\n continue;\n }\n // Event handler: inline $expression\n if (isExpressionDef(val)) {\n const node = val.$expression;\n const scope = state;\n el.addEventListener(key.slice(2), (e) => evaluateExpression(node, scope, e));\n continue;\n }\n }\n\n bindProperty(el, key, val, state);\n }\n}\n\n/**\n * @param {HTMLElement} el\n * @param {string} key\n * @param {unknown} val\n * @param {JxScope} state\n */\nfunction bindProperty(el: HTMLElement, key: string, val: unknown, state: JxScope) {\n const target = el as unknown as Record<string, unknown>;\n if (isRefObj(val)) {\n const refVal = val as { $ref: string };\n if (key === \"id\") {\n target[key] = resolveRef(refVal.$ref, state) as string;\n return;\n }\n effect(() => {\n target[key] = resolveRef(refVal.$ref, state);\n });\n return;\n }\n\n // Universal ${} reactivity — template strings in element properties\n if (isTemplateString(val)) {\n effect(() => {\n target[key] = evaluateTemplate(val as string, state);\n });\n return;\n }\n\n target[key] = val;\n}\n\n/**\n * Apply inline styles and emit a scoped <style> block for nested CSS selectors and @custom-media\n * breakpoint rules.\n *\n * @param {HTMLElement} el\n * @param {JxStyle} styleDef\n * @param {Record<string, string>} [mediaQueries] Named breakpoints from root $media. Default is\n * `{}`\n * @param {JxScope} [state] Component scope for template string evaluation. Default is `{}`\n */\nexport function applyStyle(\n el: HTMLElement,\n styleDef: JxStyle,\n mediaQueries: Record<string, string> = {},\n state: JxScope = {},\n) {\n const nested: Record<string, JxStyle> = {};\n const media: Record<string, JxStyle> = {};\n const baseDecls: Record<string, string> = {};\n\n // Collect properties overridden by media queries so we can avoid inline styles for them\n const mediaOverriddenProps = new Set<string>();\n for (const [prop, val] of Object.entries(styleDef)) {\n if (prop.startsWith(\"@\") && val && typeof val === \"object\") {\n for (const k of Object.keys(val)) {\n if (\n !k.startsWith(\":\") &&\n !k.startsWith(\".\") &&\n !k.startsWith(\"&\") &&\n !k.startsWith(\"[\") &&\n !k.startsWith(\"@\")\n ) {\n mediaOverriddenProps.add(k);\n }\n }\n }\n }\n\n for (const [prop, val] of Object.entries(styleDef)) {\n if (val !== null && typeof val === \"object\" && !Array.isArray(val)) {\n if (prop.startsWith(\"@\")) {\n media[prop] = val;\n } else {\n nested[prop] = val;\n }\n continue;\n }\n if (prop.startsWith(\"@\") || isNestedSelector(prop)) {\n // Scalar under a selector/media key — invalid style shape, drop it.\n continue;\n }\n if (val === undefined) {\n continue;\n }\n const scalar = String(val);\n if (prop.startsWith(\"--\")) {\n if (isTemplateString(val)) {\n effect(() => {\n el.style.setProperty(prop, transposeCanvasUnits(evaluateTemplate(val, state)));\n });\n } else {\n el.style.setProperty(prop, transposeCanvasUnits(scalar));\n }\n } else if (isTemplateString(val)) {\n effect(() => {\n (el.style as unknown as Record<string, string>)[prop] = transposeCanvasUnits(\n evaluateTemplate(val, state),\n );\n });\n } else if (mediaOverriddenProps.has(prop)) {\n // Goes through toCSSText (which transposes) — don't double-transpose here.\n baseDecls[prop] = scalar;\n } else {\n (el.style as unknown as Record<string, string>)[prop] = transposeCanvasUnits(scalar);\n }\n }\n\n const hasNested = Object.keys(nested).length > 0;\n const hasMedia = Object.keys(media).length > 0;\n const hasBaseDecls = Object.keys(baseDecls).length > 0;\n if (!hasNested && !hasMedia && !hasBaseDecls) {\n return;\n }\n\n const uid = `jx-${Math.random().toString(36).slice(2, 7)}`;\n el.dataset.jx = uid;\n\n let css = \"\";\n const baseCSS = toCSSText(baseDecls);\n if (baseCSS) {\n css += `[data-jx=\"${uid}\"] { ${baseCSS} }\\n`;\n }\n\n function emitNested(scope: string, rules: JxStyle) {\n const props = toCSSText(rules);\n if (props) {\n css += `${scope} { ${props} }\\n`;\n }\n for (const [sel, sub] of Object.entries(rules)) {\n if (sub === null || typeof sub !== \"object\" || Array.isArray(sub)) {\n continue;\n }\n if (sel.startsWith(\"@\")) {\n continue;\n }\n const resolved = sel.startsWith(\"&\")\n ? sel.replace(\"&\", scope)\n : sel.startsWith(\"[\")\n ? `${scope}${sel}`\n : sel.startsWith(\":\") || sel.startsWith(\".\")\n ? `${scope}${sel}`\n : `${scope} ${sel}`;\n emitNested(resolved, sub);\n }\n }\n\n for (const [sel, rules] of Object.entries(nested)) {\n const resolved = sel.startsWith(\"&\")\n ? sel.replace(\"&\", `[data-jx=\"${uid}\"]`)\n : sel.startsWith(\"[\")\n ? `[data-jx=\"${uid}\"]${sel}`\n : sel.startsWith(\":\") || sel.startsWith(\".\")\n ? `[data-jx=\"${uid}\"]${sel}`\n : `[data-jx=\"${uid}\"] ${sel}`;\n emitNested(resolved, rules);\n }\n\n function emitMediaNested(atRule: string, parentSel: string, obj: JxStyle) {\n for (const [sel, sub] of Object.entries(obj)) {\n if (sub === null || typeof sub !== \"object\" || Array.isArray(sub)) {\n continue;\n }\n if (sel.startsWith(\"@\")) {\n continue;\n }\n const resolved = sel.startsWith(\"&\")\n ? sel.replace(\"&\", parentSel)\n : sel.startsWith(\"[\")\n ? `${parentSel}${sel}`\n : sel.startsWith(\":\") || sel.startsWith(\".\")\n ? `${parentSel}${sel}`\n : `${parentSel} ${sel}`;\n const props = toCSSText(sub);\n if (props) {\n css += `${atRule} { ${resolved} { ${props} } }\\n`;\n }\n emitMediaNested(atRule, resolved, sub);\n }\n }\n\n for (const [key, rules] of Object.entries(media)) {\n if (key === \"@--\") {\n continue;\n } // Base canvas width, not a real media query\n const atRule = key.startsWith(\"@--\")\n ? `@media ${mediaQueries[key.slice(1)] ?? key.slice(1)}`\n : key.startsWith(\"@(\")\n ? `@media ${key.slice(1)}`\n : key;\n const scope = `[data-jx=\"${uid}\"]`;\n css += `${atRule} { ${scope} { ${toCSSText(rules)} } }\\n`;\n emitMediaNested(atRule, scope, rules);\n }\n\n const tag = document.createElement(\"style\");\n tag.textContent = css;\n tag.dataset.jxOwner = uid;\n document.head.append(tag);\n elementStyleTags.set(el, tag);\n}\n\n/**\n * Scoped <style> tags emitted per element by applyStyle (latest wins). Lets callers replace an\n * element's emitted styles instead of accumulating orphaned tags.\n */\nexport const elementStyleTags = new WeakMap<HTMLElement, HTMLStyleElement>();\n\n/**\n * Re-apply an element's style definition in place: removes the previously emitted scoped <style>\n * tag (if any), clears inline styles, and applies the new definition.\n *\n * @param {HTMLElement} el\n * @param {JxStyle | undefined} styleDef\n * @param {Record<string, string>} [mediaQueries]\n * @param {JxScope} [state]\n */\nexport function reapplyStyle(\n el: HTMLElement,\n styleDef: JxStyle | undefined,\n mediaQueries: Record<string, string> = {},\n state: JxScope = {},\n) {\n const prev = elementStyleTags.get(el);\n if (prev) {\n prev.remove();\n elementStyleTags.delete(el);\n }\n el.style.cssText = \"\";\n delete el.dataset.jx;\n applyStyle(el, styleDef ?? {}, mediaQueries, state);\n}\n\n/**\n * @param {HTMLElement} el\n * @param {Record<string, import(\"@jxsuite/schema/types\").JxAttributeValue>} attrs\n * @param {JxScope} state\n */\nfunction applyAttributes(el: HTMLElement, attrs: Record<string, JxAttributeValue>, state: JxScope) {\n for (const [k, v] of Object.entries(attrs)) {\n const attr = canvasAttrName(el, k);\n if (isRefObj(v)) {\n effect(() => el.setAttribute(attr, String(resolveRef(v.$ref, state) ?? \"\")));\n } else if (isTemplateString(v)) {\n effect(() => el.setAttribute(attr, String(evaluateTemplate(v, state))));\n } else {\n el.setAttribute(attr, String(v));\n }\n }\n}\n\n// ─── Array mapping ────────────────────────────────────────────────────────────\n\n/**\n * Render a mapped array (repeater) wrapper-less: its item instances are inserted directly into\n * `parentEl`, in place, ahead of an anchor comment that marks the array's position among the\n * parent's other children. Re-renders reactively when `items` (or the filter/sort sources) change;\n * each generation's item renders live in their own detached effect scope so nested arrays and\n * template bindings are disposed — not leaked or double-fired — on the next change.\n *\n * `options._path` is the array node's own document path (`[…, \"children\", i]`, or `[…, \"children\"]`\n * for a legacy whole-children repeater); item instances render at `[…that…, \"map\", index]`.\n *\n * @param {HTMLElement} parentEl\n * @param {import(\"@jxsuite/schema/types\").JxMappedArray} arrayDef\n * @param {JxScope} state\n * @param {JxRenderOptions} [options]\n */\nfunction renderMappedArrayInto(\n parentEl: HTMLElement,\n arrayDef: JxMappedArray,\n state: JxScope,\n options?: JxRenderOptions,\n) {\n const path = options?._path ?? [];\n const anchor = document.createComment(\"jx-array\");\n parentEl.append(anchor);\n const { items: itemsSrc, map: mapDef, filter: filterRef, sort: sortRef } = arrayDef;\n\n effect(() => {\n let items: unknown = isRefObj(itemsSrc) ? resolveRef(itemsSrc.$ref, state) : itemsSrc;\n if (Array.isArray(items) && isRefObj(filterRef)) {\n const fn = resolveRef(filterRef.$ref, state);\n if (typeof fn === \"function\") {\n items = items.filter(fn as (v: unknown) => boolean);\n }\n }\n if (Array.isArray(items) && isRefObj(sortRef)) {\n const fn = resolveRef(sortRef.$ref, state);\n if (typeof fn === \"function\") {\n items = [...(items as unknown[])].toSorted(fn as (a: unknown, b: unknown) => number);\n }\n }\n if (!Array.isArray(items) || !mapDef) {\n return;\n }\n\n // Render this generation's items inside a detached scope; the cleanup (run before the next\n // Re-render and when the enclosing render scope stops) tears it down and removes its nodes.\n const scope = effectScope(true);\n const nodes: ChildNode[] = [];\n scope.run(() => {\n for (const [index, item] of (items as unknown[]).entries()) {\n const child = Object.create(state) as JxScope;\n child.$map = { index, item };\n child[\"$map/item\"] = item;\n child[\"$map/index\"] = index;\n const childOpts = options ? { ...options, _path: [...path, \"map\", index] } : undefined;\n const node = renderNode(mapDef, child, childOpts);\n anchor.before(node);\n nodes.push(node);\n }\n });\n onEffectCleanup(() => {\n scope.stop();\n for (const n of nodes) {\n n.remove();\n }\n });\n });\n}\n\n// ─── $switch ──────────────────────────────────────────────────────────────────\n\n/**\n * @param {JxElement} def\n * @param {JxScope} state\n * @param {JxRenderOptions} [options]\n * @returns {HTMLElement}\n */\nfunction renderSwitch(def: JxElement, state: JxScope, options?: JxRenderOptions) {\n const path = options?._path ?? [];\n const container = document.createElement(def.tagName ?? \"div\");\n\n if (options?.onNodeCreated) {\n options.onNodeCreated(container, path, def, state);\n }\n\n applyProperties(container, def, state);\n applyStyle(container, def.style ?? {}, (state[\"$media\"] as Record<string, string>) ?? {}, state);\n applyAttributes(container, def.attributes ?? {}, state);\n let generation = 0;\n\n effect(() => {\n container.innerHTML = \"\";\n if (!isRefObj(def.$switch)) {\n return;\n }\n const key = resolveRef(def.$switch.$ref, state) as string;\n const caseDef = def.cases?.[key];\n if (!caseDef) {\n return;\n }\n\n if (isRefObj(caseDef)) {\n // External $ref — fetch and render asynchronously\n const gen = (generation += 1);\n const { href } = new URL(caseDef.$ref, location.href);\n resolve(href)\n .then(async (doc) => {\n if (gen !== generation) {\n return;\n }\n const childScope = await buildScope(doc, {}, href);\n if (gen !== generation) {\n return;\n }\n container.innerHTML = \"\";\n const childOpts = options ? { ...options, _path: [...path, \"cases\", key] } : undefined;\n container.append(renderNode(doc, childScope, childOpts));\n })\n .catch((error: unknown) =>\n console.error(\"Jx $switch: failed to load external case\", caseDef.$ref, error),\n );\n return;\n }\n\n const childOpts = options ? { ...options, _path: [...path, \"cases\", key] } : undefined;\n container.append(renderNode(caseDef, state, childOpts));\n });\n\n return container;\n}\n\n// ─── Prototype namespaces (Shape 5) ──────────────────────────────────────────\n\n/**\n * Resolve a $prototype definition into a value for the reactive scope.\n *\n * Returns a ref() for async/persistent entries (Request, Storage, Cookie, IndexedDB), or a plain\n * value for simple entries (Set, Map, FormData, Blob).\n *\n * @param {JxPrototypeDef} def - State entry with $prototype\n * @param {JxScope} state - Reactive scope proxy\n * @param {string} key - Def key (for diagnostics)\n * @param {string} [base] - Base URL for resolving $src imports\n * @returns {Promise<unknown>}\n */\nexport async function resolvePrototype(\n def: JxPrototypeDef,\n state: JxScope,\n key: string,\n base?: string,\n) {\n // ── External class via $src ─────────────────────────────────────────────────\n if (def.$src) {\n return resolveExternalPrototype(def, state, key, base);\n }\n\n switch (def.$prototype) {\n case \"Request\": {\n const s: Ref<unknown> = ref(null);\n const debounceMs = def.debounce ?? 0;\n let debounceTimer: ReturnType<typeof setTimeout> | null = null;\n\n if (!def.manual) {\n effect(() => {\n let url: string | undefined;\n if (isTemplateString(def.url)) {\n url = evaluateTemplate(def.url, state);\n } else {\n ({ url } = def);\n }\n if (!url || url === \"undefined\" || url.includes(\"undefined\")) {\n return;\n }\n\n const controller = new AbortController();\n onEffectCleanup(() => {\n controller.abort();\n if (debounceTimer !== null) {\n clearTimeout(debounceTimer);\n }\n });\n\n const doFetch = () =>\n fetch(url, {\n method: def.method ?? \"GET\",\n signal: controller.signal,\n ...(def.headers && { headers: def.headers }),\n ...(def.body && {\n body: typeof def.body === \"object\" ? JSON.stringify(def.body) : def.body,\n }),\n })\n .then((r) => (r.ok ? r.json() : Promise.reject(r.statusText)))\n .then((d) => {\n s.value = d;\n })\n .catch((error: unknown) => {\n if (!(error instanceof Error && error.name === \"AbortError\")) {\n s.value = { error: String(error) };\n }\n });\n\n if (debounceMs > 0) {\n debounceTimer = setTimeout(doFetch, debounceMs);\n } else {\n void doFetch();\n }\n });\n }\n\n return s;\n }\n\n case \"URLSearchParams\": {\n return computed(() => {\n const p: Record<string, string> = {};\n for (const [k, v] of Object.entries(def)) {\n if (k !== \"$prototype\") {\n p[k] = (\n isRefObj(v)\n ? resolveRef(v.$ref, state)\n : isTemplateString(v)\n ? evaluateTemplate(v, state)\n : v\n ) as string;\n }\n }\n return new URLSearchParams(p).toString();\n });\n }\n\n case \"LocalStorage\":\n case \"SessionStorage\": {\n const store = def.$prototype === \"LocalStorage\" ? localStorage : sessionStorage;\n const k = def.key ?? key;\n let init: unknown;\n try {\n const s = store.getItem(k);\n init = s !== null ? (JSON.parse(s) as unknown) : (def.default ?? null);\n } catch {\n init = def.default ?? null;\n }\n const storageState: Ref<unknown> = ref(init);\n // Persist on change\n effect(() => {\n const v = storageState.value;\n if (v === null) {\n try {\n store.removeItem(k);\n } catch {}\n } else {\n try {\n store.setItem(k, JSON.stringify(v));\n } catch {}\n }\n });\n return storageState;\n }\n\n case \"Cookie\": {\n const name = def.name ?? key;\n const read = () => {\n const m = document.cookie.match(new RegExp(`(?:^|; )${name}=([^;]*)`));\n if (!m) {\n return null;\n }\n try {\n return JSON.parse(decodeURIComponent(m[1]!));\n } catch {\n return m[1];\n }\n };\n const cookieState: Ref<unknown> = ref(read() ?? def.default ?? null);\n // Persist on change\n effect(() => {\n const v = cookieState.value;\n let s = `${name}=${encodeURIComponent(JSON.stringify(v))}`;\n if (def.maxAge !== undefined) {\n s += `; Max-Age=${def.maxAge}`;\n }\n if (def.path) {\n s += `; Path=${def.path}`;\n }\n if (def.domain) {\n s += `; Domain=${def.domain}`;\n }\n if (def.secure) {\n s += `; Secure`;\n }\n if (def.sameSite) {\n s += `; SameSite=${def.sameSite}`;\n }\n // oxlint-disable-next-line unicorn/no-document-cookie -- the Cookie $prototype IS the cookie store binding\n document.cookie = s;\n });\n return cookieState;\n }\n\n case \"IndexedDB\": {\n const idbState: Ref<unknown> = ref(null);\n const {\n database,\n store,\n version = 1,\n keyPath = \"id\",\n autoIncrement = true,\n indexes = [],\n } = def;\n if (!database || !store) {\n throw new Error(`Jx: IndexedDB entry '${key}' requires database and store`);\n }\n const req = indexedDB.open(database, version);\n req.addEventListener(\"upgradeneeded\", (e) => {\n const db: IDBDatabase = (e.target as IDBOpenDBRequest).result;\n if (!db.objectStoreNames.contains(store)) {\n const os = db.createObjectStore(store, { autoIncrement, keyPath });\n for (const i of indexes) {\n os.createIndex(i.name, i.keyPath, { unique: i.unique ?? false });\n }\n }\n });\n req.addEventListener(\"success\", (e) => {\n const db: IDBDatabase = (e.target as IDBOpenDBRequest).result;\n idbState.value = {\n database,\n getStore: (mode: IDBTransactionMode = \"readwrite\") =>\n Promise.resolve(db.transaction(store, mode).objectStore(store)),\n isReady: true,\n store,\n version,\n };\n });\n req.addEventListener(\"error\", () => {\n idbState.value = { error: req.error?.message };\n });\n return idbState;\n }\n\n case \"Set\": {\n return new Set(Array.isArray(def.default) ? def.default : []);\n }\n\n case \"Map\": {\n return new Map(Object.entries(isJsonObject(def.default) ? def.default : {}));\n }\n\n case \"FormData\": {\n const fd = new FormData();\n for (const [k, v] of Object.entries(def.fields ?? {})) {\n fd.append(k, v as string);\n }\n return fd;\n }\n\n case \"Blob\": {\n return new Blob((def.parts as BlobPart[]) ?? [], {\n type: typeof def.type === \"string\" ? def.type : \"text/plain\",\n });\n }\n\n case \"ReadableStream\": {\n return null;\n }\n\n default: {\n console.warn(\n `Jx: unknown $prototype \"${def.$prototype}\" for \"${key}\". Did you mean to add '$src'?`,\n );\n return ref(null);\n }\n }\n}\n\n// ─── External class resolution ────────────────────────────────────────────────\n\n/** Reserved keys stripped from the config object passed to external class constructors. */\nconst EXTERNAL_RESERVED = new Set([\n \"$prototype\",\n \"$src\",\n \"$export\",\n \"timing\",\n \"default\",\n \"description\",\n \"body\",\n \"parameters\",\n \"arguments\",\n \"name\",\n]);\n\n/**\n * Resolve an external class prototype via $src.\n *\n * @param {JxPrototypeDef} def\n * @param {JxScope} state\n * @param {string} key\n * @param {string} [base]\n * @returns {Promise<unknown>}\n */\nasync function resolveExternalPrototype(\n def: JxPrototypeDef,\n state: JxScope,\n key: string,\n base?: string,\n) {\n const src = def.$src;\n\n // Non-Function $prototype must use .class.json as entrypoint\n if (!src || !src.endsWith(\".class.json\")) {\n throw new Error(\n `Jx: $prototype \"${def.$prototype}\" requires a .class.json $src, got \"${src}\". ` +\n `Wrap the class in a .class.json schema with $implementation.`,\n );\n }\n\n return resolveClassJson(def, state, key, base);\n}\n\n/**\n * Import a JS module and instantiate a class from it. Internal helper used by resolveClassJson for\n * $implementation.\n *\n * @param {JxScope} def - Original state entry (for config extraction)\n * @param {string} src - JS module URL to import\n * @param {string} exportName - Export name to look up\n * @param {string} [base] - Base URL for resolution\n * @returns {Promise<unknown>}\n */\nasync function importAndInstantiate(def: JxScope, src: string, exportName: string, base?: string) {\n let mod: ImportedModule;\n if (_moduleCache.has(src)) {\n mod = _moduleCache.get(src)!;\n } else {\n try {\n mod = (await import(src)) as ImportedModule;\n } catch {\n if (base) {\n const resolvedSrc = new URL(src, base).href;\n mod = (await import(resolvedSrc)) as ImportedModule;\n } else {\n throw new Error(`Failed to import \"${src}\"`);\n }\n }\n _moduleCache.set(src, mod);\n }\n\n const ExportedClass = mod[exportName] ?? mod.default?.[exportName];\n if (!ExportedClass) {\n throw new Error(`Jx: export \"${exportName}\" not found in \"${src}\"`);\n }\n if (typeof ExportedClass !== \"function\") {\n throw new TypeError(`Jx: \"${exportName}\" from \"${src}\" is not a class`);\n }\n\n const config: JxScope = {};\n for (const [k, v] of Object.entries(def)) {\n if (!EXTERNAL_RESERVED.has(k)) {\n config[k] = v;\n }\n }\n\n const Ctor = ExportedClass as new (config: JxScope) => ExternalClassInstance;\n const instance = new Ctor(config);\n\n let value: unknown;\n if (typeof instance.resolve === \"function\") {\n value = await instance.resolve();\n } else if (\"value\" in instance) {\n ({ value } = instance);\n } else {\n value = instance;\n }\n\n // Always wrap in ref for reactivity with external classes\n const s: Ref<unknown> = ref(value);\n if (typeof instance.subscribe === \"function\") {\n instance.subscribe((newVal: unknown) => {\n s.value = newVal;\n });\n }\n return s;\n}\n\n/**\n * Resolve a .class.json schema-defined class. Fetches the schema, follows $implementation if\n * hybrid, or constructs dynamically if self-contained.\n *\n * @param {JxPrototypeDef} def\n * @param {JxScope} state\n * @param {string} key\n * @param {string} [base]\n * @returns {Promise<unknown>}\n */\nasync function resolveClassJson(def: JxPrototypeDef, state: JxScope, key: string, base?: string) {\n const src = def.$src;\n if (!src) {\n throw new Error(`Jx: class entry '${key}' has no $src`);\n }\n let classDef: JxClassDef;\n\n // Bare specifiers (package references like @scope/pkg/file) can't be fetched directly —\n // Go straight to dev proxy which can resolve them via node_modules.\n const isBareSpecifier =\n !src.startsWith(\".\") &&\n !src.startsWith(\"/\") &&\n !src.startsWith(\"http\") &&\n !src.startsWith(\"file:\");\n if (isBareSpecifier) {\n return resolveViaDevProxy(def, state, key, base);\n }\n\n // Try fetching the .class.json file directly\n try {\n const url = base ? new URL(src, base).href : src;\n const res = await fetch(url);\n if (!res.ok) {\n throw new Error(`HTTP ${res.status}`);\n }\n // Trust boundary: fetched .class.json sources are class definitions by contract.\n classDef = (await res.json()) as JxClassDef;\n } catch {\n // Fall back to dev proxy (server will handle .class.json resolution)\n return resolveViaDevProxy(def, state, key, base);\n }\n\n // Hybrid mode: $implementation points to the real JS module\n if (classDef.$implementation) {\n // If the schema references $context (e.g. content types), the browser cannot provide\n // The required server-side context — go directly to dev proxy.\n const schemaStr = JSON.stringify(classDef);\n if (schemaStr.includes('\"#/$context/')) {\n return resolveViaDevProxy(def, state, key, base);\n }\n const schemaUrl = base ? new URL(src, base).href : new URL(src, location.href).href;\n const implSrc = new URL(classDef.$implementation, schemaUrl).href;\n const exportName = def.$export ?? classDef.title ?? def.$prototype;\n try {\n return await importAndInstantiate(def, implSrc, exportName, base);\n } catch {\n return resolveViaDevProxy(def, state, key, base);\n }\n }\n\n // Self-contained: construct class dynamically from schema\n const DynClass = classFromSchema(classDef);\n const config: JxScope = {};\n for (const [k, v] of Object.entries(def)) {\n if (!EXTERNAL_RESERVED.has(k)) {\n config[k] = v;\n }\n }\n const instance = new DynClass(config) as ExternalClassInstance;\n\n let value: unknown;\n if (typeof instance.resolve === \"function\") {\n value = await instance.resolve();\n } else if (\"value\" in instance) {\n ({ value } = instance);\n } else {\n value = instance;\n }\n\n // Always wrap in ref for reactivity\n const s: Ref<unknown> = ref(value);\n if (typeof instance.subscribe === \"function\") {\n instance.subscribe((newVal: unknown) => {\n s.value = newVal;\n });\n }\n return s;\n}\n\n/**\n * Dynamically construct a class from a .class.json schema definition. Browser-side: maps private\n * fields to _-prefixed public fields.\n *\n * @param {import(\"@jxsuite/schema/types\").JxClassDef} classDef\n * @returns {DynamicClass}\n */\nfunction classFromSchema(classDef: JxClassDef) {\n const fields = classDef.$defs?.fields ?? {};\n // JSON objects inherit Object.prototype.constructor — only an own object value counts.\n const rawCtor = classDef.$defs?.constructor;\n const ctor = typeof rawCtor === \"object\" ? rawCtor : undefined;\n const methods = classDef.$defs?.methods ?? {};\n\n // oxlint-disable-next-line typescript/no-extraneous-class -- methods are attached to the prototype dynamically below\n class DynClass {\n constructor(config: Record<string, unknown> = {}) {\n for (const [key, typedField] of Object.entries(fields)) {\n const id = typedField.identifier ?? key;\n const propName = typedField.access === \"private\" ? `_${id}` : id;\n if (config[id] !== undefined) {\n (this as Record<string, unknown>)[propName] = config[id];\n } else if (typedField.initializer !== undefined) {\n (this as Record<string, unknown>)[propName] = typedField.initializer;\n } else if (typedField.default !== undefined) {\n (this as Record<string, unknown>)[propName] = structuredClone(typedField.default);\n } else {\n (this as Record<string, unknown>)[propName] = null;\n }\n }\n if (ctor?.body) {\n const bodyStr = Array.isArray(ctor.body) ? ctor.body.join(\"\\n\") : ctor.body;\n (\n new Function(\"config\", bodyStr) as (\n this: unknown,\n config: Record<string, unknown>,\n ) => void\n ).call(this, config);\n }\n }\n }\n\n for (const [key, typedMethod] of Object.entries(methods)) {\n const name = typedMethod.identifier ?? key;\n const params = (typedMethod.parameters ?? []).map((p) => {\n if (p.$ref) {\n return p.$ref.split(\"/\").pop() as string;\n }\n const n = p.identifier ?? p.name;\n return typeof n === \"string\" ? n : \"arg\";\n });\n const bodyStr = Array.isArray(typedMethod.body)\n ? typedMethod.body.join(\"\\n\")\n : (typedMethod.body ?? \"\");\n\n if (typedMethod.role === \"accessor\") {\n const descriptor: PropertyDescriptor = {};\n if (typedMethod.getter) {\n descriptor.get = new Function(typedMethod.getter.body ?? \"\") as () => unknown;\n }\n if (typedMethod.setter) {\n const sp = (typedMethod.setter.parameters ?? []).map(\n (p) => p.$ref?.split(\"/\").pop() ?? \"v\",\n );\n descriptor.set = new Function(...sp, typedMethod.setter.body ?? \"\") as (v: unknown) => void;\n }\n Object.defineProperty(DynClass.prototype, name, {\n ...descriptor,\n configurable: true,\n });\n } else if (typedMethod.scope === \"static\") {\n (DynClass as unknown as DynamicClass)[name] = new Function(...params, bodyStr);\n } else {\n (DynClass as unknown as DynamicClass).prototype[name] = new Function(...params, bodyStr);\n }\n }\n\n Object.defineProperty(DynClass, \"name\", {\n configurable: true,\n value: classDef.title,\n });\n const dynCtor = DynClass as unknown as DynamicClass;\n return dynCtor;\n}\n\n/**\n * Dev-mode fallback: when an $src module cannot run in the browser, proxy the resolve() call\n * through the Jx dev server (POST /**jx_resolve**). Supports reactive template strings in config\n * values via Vue effect().\n *\n * @param {JxPrototypeDef} def\n * @param {JxScope} state\n * @param {string} key\n * @param {string} [base]\n * @returns {Promise<unknown>}\n */\nasync function resolveViaDevProxy(def: JxPrototypeDef, state: JxScope, key: string, base?: string) {\n const config: JxScope = {};\n for (const [k, v] of Object.entries(def)) {\n if (!EXTERNAL_RESERVED.has(k)) {\n config[k] = v;\n }\n }\n\n const hasTemplates = Object.values(config).some((v: unknown) => isTemplateString(v));\n\n /** @param {JxScope} resolvedConfig */\n const doResolve = (resolvedConfig: JxScope) =>\n fetch(resolveProxyPath(\"/__jx_resolve__\"), {\n body: JSON.stringify({\n $base: base,\n $export: def.$export,\n $prototype: def.$prototype,\n $src: def.$src,\n ...resolvedConfig,\n }),\n headers: { \"Content-Type\": \"application/json\" },\n method: \"POST\",\n }).then((r) => {\n if (!r.ok) {\n throw new Error(`Jx dev proxy ${r.status} for \"${key}\"`);\n }\n return r.json();\n });\n\n // Always wrap in ref for reactivity\n const s: Ref<unknown> = ref(null);\n if (hasTemplates) {\n effect(() => {\n const resolvedConfig: JxScope = {};\n for (const [k, v] of Object.entries(config)) {\n resolvedConfig[k] = isTemplateString(v) ? evaluateTemplate(v, state) : v;\n }\n doResolve(resolvedConfig)\n .then((value: unknown) => {\n s.value = value;\n })\n .catch((error: unknown) => console.error(\"Jx dev proxy:\", error));\n });\n } else {\n doResolve(config)\n .then((value: unknown) => {\n s.value = value;\n })\n .catch((error: unknown) => console.error(\"Jx dev proxy:\", error));\n }\n return s;\n}\n\n// ─── Server function resolution (dev mode) ────────────────────────────────────\n\n/**\n * Resolve a timing: \"server\" entry in dev mode by executing the function client-side. In\n * production, the compiler replaces this with a fetch to the generated server handler.\n *\n * @param {JxScope} def\n * @param {JxScope} state\n * @param {string} key\n * @param {string} [base]\n * @returns {Promise<unknown>}\n */\nasync function resolveServerFunction(\n def: JxServerFnDef,\n state: JxScope,\n key: string,\n base?: string,\n) {\n const src = def.$src;\n const exportName = def.$export;\n\n let mod: ImportedModule;\n if (_moduleCache.has(src)) {\n mod = _moduleCache.get(src)!;\n } else {\n try {\n mod = (await import(src)) as ImportedModule;\n } catch {\n if (base) {\n try {\n const resolvedSrc = new URL(src, base).href;\n mod = (await import(resolvedSrc)) as ImportedModule;\n } catch {\n // Module cannot run in the browser — fall back to dev server proxy\n return resolveServerFunctionViaProxy(def, state, key, base);\n }\n } else {\n return resolveServerFunctionViaProxy(def, state, key, base);\n }\n }\n _moduleCache.set(src, mod);\n }\n\n const candidate = mod[exportName] ?? mod.default?.[exportName];\n if (!candidate) {\n throw new Error(`Jx: export \"${exportName}\" not found in \"${src}\" for \"${key}\"`);\n }\n if (typeof candidate !== \"function\") {\n throw new TypeError(`Jx: \"${exportName}\" from \"${src}\" is not a function`);\n }\n const fn = candidate as (args: JxScope) => Promise<unknown>;\n\n const rawArgs = def.arguments ?? {};\n const hasReactiveArg = Object.values(rawArgs).some((v: unknown) => isRefObj(v));\n const resolveArgs = () => {\n const args: JxScope = {};\n for (const [k, v] of Object.entries(rawArgs)) {\n args[k] = isRefObj(v) ? resolveRef(v.$ref, state) : v;\n }\n return args;\n };\n\n // Always wrap in ref for reactivity\n const s: Ref<unknown> = ref(null);\n if (hasReactiveArg) {\n effect(() => {\n const args = resolveArgs();\n onEffectCleanup(() => {});\n fn(args)\n .then((result: unknown) => {\n s.value = result;\n })\n .catch(() => {});\n });\n } else {\n s.value = await fn(resolveArgs());\n }\n return s;\n}\n\n/**\n * Dev-mode fallback: when a timing: \"server\" module cannot run in the browser, proxy the function\n * call through the Jx dev server (POST /**jx_server**). Supports reactive $ref arguments via Vue\n * effect().\n *\n * @param {JxScope} def\n * @param {JxScope} state\n * @param {string} key\n * @param {string} [base]\n * @returns {Promise<unknown>}\n */\nasync function resolveServerFunctionViaProxy(\n def: JxScope,\n state: JxScope,\n key: string,\n base?: string,\n) {\n const rawArgs = def.arguments ?? {};\n const hasReactiveArg = Object.values(rawArgs).some((v: unknown) => isRefObj(v));\n\n const resolveArgs = () => {\n const args: JxScope = {};\n for (const [k, v] of Object.entries(rawArgs)) {\n args[k] = isRefObj(v) ? resolveRef((v as { $ref: string }).$ref, state) : v;\n }\n return args;\n };\n\n /** @param {JxScope} args */\n const doResolve = (args: JxScope) =>\n fetch(resolveProxyPath(\"/__jx_server__\"), {\n body: JSON.stringify({\n $base: base,\n $export: def.$export,\n $src: def.$src,\n arguments: args,\n }),\n headers: { \"Content-Type\": \"application/json\" },\n method: \"POST\",\n }).then((r) => {\n if (!r.ok) {\n throw new Error(`Jx server proxy ${r.status} for \"${key}\"`);\n }\n return r.json();\n });\n\n // Always wrap in ref for reactivity\n const s: Ref<unknown> = ref(null);\n if (hasReactiveArg) {\n effect(() => {\n const args = resolveArgs();\n onEffectCleanup(() => {});\n doResolve(args)\n .then((result: unknown) => {\n s.value = result;\n })\n .catch((error: unknown) => console.error(\"Jx server proxy:\", error));\n });\n } else {\n doResolve(resolveArgs())\n .then((result: unknown) => {\n s.value = result;\n })\n .catch((error: unknown) => console.error(\"Jx server proxy:\", error));\n }\n return s;\n}\n\n/**\n * Resolve a $ref string to a value in scope.\n *\n * With Vue reactivity, this reads directly from the reactive proxy. When called inside a effect or\n * computed, the read is tracked.\n *\n * @param {string} ref\n * @param {JxScope} state - Reactive scope proxy (or child scope)\n * @returns {unknown}\n */\nexport function resolveRef(refPath: string, state: JxScope) {\n if (typeof refPath !== \"string\") {\n return refPath;\n }\n if (refPath.startsWith(\"$map/\")) {\n const parts = refPath.split(\"/\");\n const [, key] = parts; // \"item\" or \"index\"\n const map = state.$map as Record<string, unknown> | undefined;\n const base = map?.[key!] ?? state[`$map/${key}`];\n return parts.length > 2 ? getPath(base, parts.slice(2).join(\"/\")) : base;\n }\n if (refPath.startsWith(\"#/state/\")) {\n const sub = refPath.slice(\"#/state/\".length);\n const slash = sub.indexOf(\"/\");\n if (slash === -1) {\n return state[sub];\n }\n return getPath(state[sub.slice(0, slash)], sub.slice(slash + 1));\n }\n if (refPath.startsWith(\"parent#/\")) {\n return state[refPath.slice(\"parent#/\".length)];\n }\n if (refPath.startsWith(\"window#/\")) {\n return getPath(globalThis.window, refPath.slice(\"window#/\".length));\n }\n if (refPath.startsWith(\"document#/\")) {\n return getPath(globalThis.document, refPath.slice(\"document#/\".length));\n }\n return state[refPath] ?? null;\n}\n\n// ─── Utilities ────────────────────────────────────────────────────────────────\n\n/**\n * Check if v is a Vue ref (including computed).\n *\n * @param {unknown} v\n * @returns {boolean}\n */\nexport function isSignal(v: unknown) {\n return isRef(v);\n}\n\n/**\n * @param {unknown} v\n * @returns {v is import(\"@jxsuite/schema/types\").JxRef}\n */\nfunction isRefObj(v: unknown): v is JxRef {\n return isRefValue(v);\n}\n\n/**\n * @param {string} k\n * @returns {boolean}\n */\nfunction isNestedSelector(k: string) {\n return k.startsWith(\":\") || k.startsWith(\".\") || k.startsWith(\"&\") || k.startsWith(\"[\");\n}\n\n/**\n * @param {unknown} obj\n * @param {string} path\n * @returns {unknown}\n */\nfunction getPath(obj: unknown, path: string) {\n let current: unknown = obj;\n for (const k of path.split(/[./]/)) {\n current = (current as Record<string, unknown>)?.[k];\n }\n return current;\n}\n\n/**\n * @param {JxElement} def\n * @param {JxScope} parentState\n * @returns {JxScope}\n */\nfunction mergeProps(def: JxElement, parentState: JxScope): JxScope {\n const child = Object.create(parentState) as JxScope;\n for (const [k, v] of Object.entries(def.$props ?? {})) {\n child[k] = isRefObj(v) ? resolveRef(v.$ref, parentState) : v;\n }\n return child;\n}\n\n/**\n * Convert camelCase to kebab-case.\n *\n * @param {string} s\n * @returns {string}\n */\nexport function camelToKebab(s: string) {\n return s.replaceAll(/[A-Z]/g, (c) => `-${c.toLowerCase()}`);\n}\n\n/**\n * Convert a style rules object to a CSS text string (skipping nested selectors).\n *\n * @param {Record<string, unknown> | object} rules\n * @returns {string}\n */\nexport function toCSSText(rules: Record<string, unknown> | object) {\n return Object.entries(rules)\n .filter(([k, v]) => !isNestedSelector(k) && (v === null || typeof v !== \"object\"))\n .map(([p, v]) => `${camelToKebab(p)}: ${transposeCanvasUnits(String(v))}`)\n .join(\"; \");\n}\n\n// ─── Custom Element Registration ──────────────────────────────────────────────\n\nlet _rootMedia: Record<string, string> = {};\nconst _elementDefs = new Map();\n\n/**\n * Seed the module-level root `$media` map used as the fallback for components that declare their\n * own `@--name` style blocks but carry no own `$media` (buildScope ~279-280). `Jx()` sets this from\n * the document during a full top-level render, but the Studio iframe canvas calls `buildScope`/\n * `renderNode` directly (never `Jx()`), so without seeding it a component's `@--md` would resolve\n * to the invalid `@media md`. Callers on the direct path MUST set it (with the merged `$media`)\n * before `buildScope`, and re-set it every render so a stale map from a previous document cannot\n * leak.\n *\n * @param {Record<string, string>} map\n */\nexport function setRootMedia(map: Record<string, string>): void {\n _rootMedia = map ?? {};\n}\n\n/**\n * Resolve and register $elements entries (depth-first).\n *\n * @param {JxDocument[\"$elements\"]} elements\n * @param {string} base\n * @returns {Promise<void>}\n */\nasync function registerElements(elements: NonNullable<JxDocument[\"$elements\"]>, base: string) {\n for (const entry of elements) {\n // Bare string: npm package side-effect import (registers custom elements)\n if (typeof entry === \"string\") {\n try {\n // Bare specifiers need a URL path for the browser; the dev server resolves\n // /node_modules/<pkg> to the package entry point via exports/module/main.\n const specifier =\n entry.startsWith(\"/\") || entry.startsWith(\".\") ? entry : `/node_modules/${entry}`;\n await import(specifier);\n } catch (error) {\n console.warn(`Jx: failed to import package \"${entry}\"`, error);\n }\n continue;\n }\n if (!isRefObj(entry)) {\n continue;\n }\n const { href } = new URL(entry.$ref, base);\n const doc = await resolve(href);\n if (!doc.tagName || !doc.tagName.includes(\"-\")) {\n continue;\n }\n if (customElements.get(doc.tagName)) {\n continue;\n }\n\n // Depth-first: register sub-dependencies first\n if (doc.$elements) {\n await registerElements(doc.$elements, href);\n }\n\n await defineElement(doc, href);\n }\n}\n\n/**\n * Inject head elements from $head declarations. Each entry is { tagName, attributes } — bare npm\n * specifiers in href/src are rewritten to /node_modules/ paths for the dev server.\n *\n * @param {import(\"@jxsuite/schema/types\").JxHeadEntry[]} entries\n * @param {string} _base - Document base URL for resolving relative paths\n */\nfunction injectHead(entries: JxHeadEntry[], _base: string) {\n for (const entry of entries) {\n if (!entry || !entry.tagName) {\n continue;\n }\n const tag = entry.tagName.toLowerCase();\n const attrs = { ...entry.attributes };\n // Resolve href/src: bare npm specifiers -> /node_modules/ path\n for (const key of [\"href\", \"src\"] as const) {\n const v = attrs[key];\n if (\n typeof v === \"string\" &&\n v &&\n !v.startsWith(\"/\") &&\n !v.startsWith(\".\") &&\n !v.startsWith(\"http\")\n ) {\n attrs[key] = `/node_modules/${v}`;\n }\n }\n\n // Deduplicate: skip if an identical element already exists\n const selector = `${tag}${attrs.href ? `[href=\"${attrs.href}\"]` : \"\"}${attrs.src ? `[src=\"${attrs.src}\"]` : \"\"}`;\n if (selector !== tag && document.head.querySelector(selector)) {\n continue;\n }\n\n const el = document.createElement(tag);\n for (const [k, v] of Object.entries(attrs)) {\n el.setAttribute(k, String(v));\n }\n if (entry.textContent) {\n el.textContent = entry.textContent;\n }\n document.head.append(el);\n }\n}\n\n/**\n * Register a custom element from a Jx document.\n *\n * @param {string | JxDocument} source - URL to .json file, or raw document object\n * @param {string} [base] - Base URL for resolving $src imports\n * @returns {Promise<void>}\n */\nconst _definedSources = new Set<string>();\n\nexport async function defineElement(source: string | JxDocument, baseUrl?: string) {\n let base = baseUrl;\n let doc = source;\n if (typeof source === \"string\") {\n base = new URL(source, base ?? location.href).href;\n if (_definedSources.has(base)) {\n return;\n }\n _definedSources.add(base);\n doc = await resolve(source);\n }\n base ??= location.href;\n\n const source_: JxDocument = doc as JxDocument;\n\n const { tagName } = source_;\n if (!tagName || !tagName.includes(\"-\")) {\n throw new Error(`Jx defineElement: tagName \"${tagName}\" must contain a hyphen`);\n }\n if (customElements.get(tagName)) {\n return;\n }\n\n // Register sub-dependencies first\n if (source_.$elements) {\n await registerElements(source_.$elements, base);\n }\n\n _elementDefs.set(tagName, { base, doc: source_ });\n\n const def = source_;\n const observedAttrs = def.observedAttributes ?? [];\n\n const ElementClass = class extends HTMLElement {\n _jxInitialized = false;\n _state: JxScope | null = null;\n\n static get observedAttributes() {\n return observedAttrs;\n }\n\n async connectedCallback() {\n // An element carrying `data-jx-definition-root` IS the definition being rendered by an\n // External renderer (the studio canvas editing this component's own document) — its subtree\n // Is authored DOM, not an instantiation site. Self-initializing here would wipe that tree\n // And re-render it with default state (the \"component editor shows a live instance\" bug).\n if (this.dataset.jxDefinitionRoot !== undefined) {\n return;\n }\n if (this._jxInitialized) {\n return;\n }\n this._jxInitialized = true;\n\n const state = await buildScope(def, {}, base);\n\n // Read properties from directive encoding (markdown → data-jx-props)\n const propsAttr = this.dataset.jxProps;\n if (propsAttr) {\n try {\n const props = JSON.parse(propsAttr) as Record<string, unknown>;\n for (const [key, val] of Object.entries(props)) {\n if (key in (def.state ?? {})) {\n state[key] = val;\n }\n }\n } catch {}\n delete this.dataset.jxProps;\n }\n\n // Read literal `props.*` attributes (JSON-authored instances pass props this way; the\n // Compiler lifts them into $props at build, and this is the live-render mirror). String\n // Values only — HTML lowercases attribute names, so state keys must be lowercase to match.\n // Collect first: removing while iterating the live NamedNodeMap skips entries.\n const propAttrNames = this.getAttributeNames().filter(\n (name) => name.startsWith(\"props.\") && name.length > \"props.\".length,\n );\n for (const name of propAttrNames) {\n const key = name.slice(\"props.\".length);\n if (key in (def.state ?? {})) {\n state[key] = this.getAttribute(name);\n this.removeAttribute(name);\n }\n }\n\n // Merge $props set as JS properties by parent before connection\n for (const key of Object.keys(def.state ?? {})) {\n if (key in this && (this as Record<string, unknown>)[key] !== undefined) {\n state[key] = (this as Record<string, unknown>)[key];\n }\n }\n // Set up property getters/setters that forward into reactive state\n for (const key of Object.keys(def.state ?? {})) {\n if (!(key in HTMLElement.prototype)) {\n Object.defineProperty(this, key, {\n configurable: true,\n get: () => state[key],\n set: (v: unknown) => {\n state[key] = v;\n },\n });\n }\n }\n\n this._state = state;\n\n // Capture light DOM children (for slot distribution) before rendering\n const slottedChildren = [...this.childNodes];\n this.innerHTML = \"\";\n\n // Custom elements default to display:inline — use block so they behave as\n // Containers (matching <div> semantics). The component's own style can\n // Override this if needed.\n if (!this.style.display) {\n this.style.display = \"block\";\n }\n\n // Render template into light DOM (once, not in effect — inner effects handle reactivity)\n applyStyle(this, def.style ?? {}, (state[\"$media\"] as Record<string, string>) ?? {}, state);\n applyAttributes(this, def.attributes ?? {}, state);\n\n const children = Array.isArray(def.children) ? def.children : [];\n for (const childDef of children) {\n this.append(renderNode(childDef, state));\n }\n\n // Slot distribution (light DOM)\n distributeSlots(this, slottedChildren);\n\n // Lifecycle: onMount\n const { onMount } = state;\n if (typeof onMount === \"function\") {\n queueMicrotask(() => (onMount as (s: JxScope) => unknown)(state));\n }\n }\n\n disconnectedCallback() {\n if (typeof this._state?.onUnmount === \"function\") {\n (this._state.onUnmount as (s: JxScope) => unknown)(this._state);\n }\n }\n\n adoptedCallback() {\n if (typeof this._state?.onAdopted === \"function\") {\n (this._state.onAdopted as (s: JxScope) => unknown)(this._state);\n }\n }\n\n attributeChangedCallback(name: string, oldVal: string | null, newVal: string | null) {\n if (!this._state || oldVal === newVal) {\n return;\n }\n const camelKey = name.replaceAll(/-([a-z])/g, (_: string, c: string) => c.toUpperCase());\n const current = this._state[camelKey];\n if (typeof current === \"number\") {\n this._state[camelKey] = Number(newVal);\n } else if (typeof current === \"boolean\") {\n this._state[camelKey] = newVal !== null && newVal !== \"false\";\n } else {\n this._state[camelKey] = newVal;\n }\n }\n };\n\n customElements.define(tagName, ElementClass);\n}\n\n/**\n * Render a registered custom element with $props (property-first interface).\n *\n * @param {JxElement} def\n * @param {JxScope} state\n * @param {JxRenderOptions} [options]\n * @param {JxPath} [path]\n * @returns {HTMLElement}\n */\nfunction renderCustomElementWithProps(\n def: JxElement,\n state: JxScope,\n options?: JxRenderOptions,\n path?: JxPath,\n) {\n const el = document.createElement(def.tagName ?? \"div\");\n\n if (options?.onNodeCreated) {\n options.onNodeCreated(el, path ?? [], def, state);\n }\n\n // Set JS properties from $props (before connection)\n for (const [key, val] of Object.entries(def.$props ?? {})) {\n if (isRefObj(val)) {\n const refVal = val;\n const resolved = resolveRef(refVal.$ref, state);\n (el as unknown as Record<string, unknown>)[key] = resolved;\n // Reactive forwarding: re-set the property when the source changes\n effect(() => {\n (el as unknown as Record<string, unknown>)[key] = resolveRef(refVal.$ref, state);\n });\n } else if (isTemplateString(val)) {\n effect(() => {\n (el as unknown as Record<string, unknown>)[key] = evaluateTemplate(val, state);\n });\n } else {\n (el as unknown as Record<string, unknown>)[key] = val;\n }\n }\n\n // Apply host-level style and attributes from the usage site\n applyStyle(el, def.style ?? {}, (state[\"$media\"] as Record<string, string>) ?? {}, state);\n applyAttributes(el, def.attributes ?? {}, state);\n\n // Append slotted children\n const children = Array.isArray(def.children) ? def.children : [];\n for (let i = 0; i < children.length; i++) {\n const childOpts = options && path ? { ...options, _path: [...path, \"children\", i] } : undefined;\n el.append(renderNode(children[i]!, state, childOpts));\n }\n\n return el;\n}\n\n/**\n * Light DOM slot distribution.\n *\n * @param {HTMLElement} host\n * @param {ChildNode[]} slottedChildren\n */\nfunction distributeSlots(host: HTMLElement, slottedChildren: ChildNode[]) {\n if (slottedChildren.length === 0) {\n return;\n }\n\n const slots = host.querySelectorAll(\"slot\");\n if (slots.length === 0) {\n return;\n }\n\n const named = new Map<string | null, ChildNode[]>();\n const unnamed: ChildNode[] = [];\n\n for (const child of slottedChildren) {\n if (child.nodeType === Node.ELEMENT_NODE && (child as Element).getAttribute(\"slot\")) {\n const name = (child as Element).getAttribute(\"slot\");\n if (!named.has(name)) {\n named.set(name, []);\n }\n (named.get(name) as ChildNode[]).push(child);\n } else {\n unnamed.push(child);\n }\n }\n\n for (const slot of slots) {\n const name = slot.getAttribute(\"name\");\n const matches = name ? (named.get(name) ?? []) : unnamed;\n if (matches.length > 0) {\n slot.innerHTML = \"\";\n for (const child of matches) {\n slot.append(child);\n }\n }\n }\n}\n",
|
|
11
11
|
"/// <reference lib=\"dom\" />\n/**\n * Render-path mapping — pure logic shared by the legacy in-realm path mapper (which stores paths in\n * the `elToPath` WeakMap) and the iframe host (which stamps them as `data-jx-path` attributes).\n *\n * The runtime fires `onNodeCreated(el, renderPath, def, state)` for every node. The render path is\n * not always the document path: layout-wrapped pages shift page content under a layout prefix, and\n * `prepareForEditMode` renders mapped arrays (`$prototype: Array`) as a `repeater-perimeter` whose\n * single child hop must be collapsed back to a `map` segment. {@link classifyRenderNode} resolves a\n * render path to either a document path or a \"layout\" marker; {@link serializeJxPath} encodes the\n * result for the `data-jx-path` attribute.\n */\n\nimport type { JxPath } from \"../state\";\n\n/** Context the mapper needs, computed once per render by whoever prepared the document. */\nexport interface PathMapCtx {\n canvasMode: string;\n layoutWrapped: boolean;\n pageContentPrefix: JxPath | null;\n pageContentOffset: number | null;\n arrayPaths: Set<string>;\n}\n\n/** A render node either belongs to the layout chrome (no document path) or maps to a document path. */\nexport type RenderNodeClass = { kind: \"layout\" } | { kind: \"path\"; path: JxPath };\n\n/**\n * Resolve a runtime render path to a document path (or flag it as layout-originated). Pure — the\n * caller decides whether to record the result in a WeakMap or a `data-jx-path` attribute.\n */\nexport function classifyRenderNode(path: JxPath, def: unknown, ctx: PathMapCtx): RenderNodeClass {\n // Layout-originated nodes have no page-document path; the caller marks them (data-jx-layout).\n if (ctx.layoutWrapped && typeof def === \"object\" && (def as { $__layout?: unknown })?.$__layout) {\n return { kind: \"layout\" };\n }\n\n let mappedPath = path;\n\n // Strip the layout prefix so paths are relative to the original page document.\n // Page children render at indices [offset, offset+1, …] when the layout places siblings before\n // The <slot>, so subtract the offset to recover the page's 0-based child indices.\n if (ctx.layoutWrapped && ctx.pageContentPrefix) {\n const pfx = ctx.pageContentPrefix;\n if (path.length >= pfx.length && pfx.every((seg, i) => path[i] === seg)) {\n const rest = path.slice(pfx.length);\n const [containerIdx] = rest;\n mappedPath =\n typeof containerIdx === \"number\"\n ? [\"children\", containerIdx - (ctx.pageContentOffset ?? 0), ...rest.slice(1)]\n : [\"children\", ...rest];\n }\n }\n\n // Collapse repeater-perimeter template hops: for an array document path P, a render path of\n // `[...P, \"children\", 0, ...rest]` maps to `[...P, \"map\", ...rest]`. Loop for nested repeaters.\n if ((ctx.canvasMode === \"design\" || ctx.canvasMode === \"edit\") && ctx.arrayPaths.size > 0) {\n let changed = true;\n while (changed) {\n changed = false;\n for (let i = 1; i < mappedPath.length - 1; i++) {\n if (\n mappedPath[i] === \"children\" &&\n mappedPath[i + 1] === 0 &&\n ctx.arrayPaths.has(mappedPath.slice(0, i).join(\"/\"))\n ) {\n mappedPath = [...mappedPath.slice(0, i), \"map\", ...mappedPath.slice(i + 2)];\n changed = true;\n break;\n }\n }\n }\n }\n\n return { kind: \"path\", path: mappedPath };\n}\n\n/** Encode a document path for the `data-jx-path` attribute (preserves string-vs-number segments). */\nexport function serializeJxPath(path: JxPath): string {\n return JSON.stringify(path);\n}\n\n/** Decode a `data-jx-path` attribute back into a document path. */\nexport function parseJxPath(serialized: string): JxPath {\n return JSON.parse(serialized) as JxPath;\n}\n",
|
|
12
12
|
"/// <reference lib=\"dom\" />\n/**\n * In-iframe render core — turns a fully-resolved document into live DOM via @jxsuite/runtime,\n * stamping `data-jx-path` so the editor can map nodes back to document paths across the frame\n * boundary. The parent does the heavy resolution (layout distribution, site-context, `$head`,\n * components, edit-mode transforms) and posts the result; this core stays dependency-light (runtime\n * + reactivity + the pure path-mapping helpers) so the iframe bundle is small.\n *\n * Because the iframe is served from the real project origin, the runtime's verbatim\n * `el.setAttribute(\"src\", \"/images/foo.jpg\")` resolves natively — the fix that motivated the whole\n * migration, with no data: URL rewriting.\n */\n\nimport {\n buildScope,\n defineElement,\n renderNode,\n runScoped,\n setCanvasDelinkAnchors,\n setCanvasViewportTranspose,\n setRootMedia,\n setSkipServerFunctions,\n transposeCanvasUnits,\n} from \"@jxsuite/runtime\";\nimport { classifyRenderNode, serializeJxPath } from \"./path-mapping\";\nimport type { CanvasMode } from \"./iframe-protocol\";\nimport type { JxDocument } from \"@jxsuite/schema/types\";\nimport type { PathMapCtx } from \"./path-mapping\";\n\n/**\n * The retained render context a full render leaves behind so the surgical patcher can re-render an\n * individual subtree (insert/replace/attr edits) with the SAME scope, doc base, path mapping, and\n * mode — making a patched subtree indistinguishable from a full re-render.\n */\nexport interface IframeRenderCtx {\n /** The `$defs` scope built for the document (resolves `$ref`/state/`$media` bindings). */\n defs: Awaited<ReturnType<typeof buildScope>>;\n docBase: string;\n mapperCtx: PathMapCtx;\n mode: CanvasMode;\n}\n\nexport interface RenderHandle {\n /** Stop the render's reactive effect scope (call before re-rendering to avoid effect leaks). */\n dispose: () => void;\n /** Context for surgical subtree re-renders against this generation's scope/mapping. */\n ctx: IframeRenderCtx;\n}\n\ninterface HeadEntry {\n tagName?: string;\n attributes?: Record<string, unknown>;\n textContent?: string;\n}\n\n/**\n * Register the document's `$elements` (components) in this iframe realm so the runtime can render\n * them.\n */\nexport async function registerElements(doc: JxDocument, docBase: string): Promise<void> {\n const elements = (doc as { $elements?: unknown[] }).$elements;\n if (!Array.isArray(elements)) {\n return;\n }\n // Register in parallel, each guarded by a timeout so one slow/hanging component can't block the\n // Whole render (the document still renders; the unresolved tag just stays inert).\n await Promise.all(\n elements.map(async (entry) => {\n const task = (async () => {\n if (typeof entry === \"string\") {\n const specifier =\n entry.startsWith(\"/\") || entry.startsWith(\".\") ? entry : `/node_modules/${entry}`;\n await import(specifier);\n } else if (entry && typeof entry === \"object\" && \"$ref\" in entry) {\n await defineElement(new URL(String((entry as { $ref: string }).$ref), docBase).href);\n } else if (entry && typeof entry === \"object\") {\n await defineElement(entry as JxDocument, docBase);\n }\n })();\n try {\n await Promise.race([\n task,\n new Promise((_, reject) => {\n setTimeout(() => reject(new Error(\"register timeout\")), 5000);\n }),\n ]);\n } catch (error) {\n console.warn(\"iframe canvas: failed to register element\", JSON.stringify(entry), error);\n }\n }),\n );\n}\n\n/** Id of the injected design/edit-mode canvas stylesheet (placeholder affordances). */\nexport const EDIT_PLACEHOLDER_STYLE_ID = \"jx-canvas-edit-css\";\n\n/**\n * The design/edit-mode canvas CSS, ported from the parent editor stylesheet (index.html) with\n * iframe-safe fallbacks — the parent theme variables (--fg-dim/--radius/--accent) don't exist in\n * the iframe document. The placeholder CLASSES are stamped by prepareForEditMode (parent-side\n * resolution + surgical subtree renders), so preview mode never matches these rules — but the sheet\n * is still removed there (belt and braces). The `[contenteditable=\"true\"]:empty` hint is new: it\n * marks the caret's empty paragraph (e.g. right after an Enter split) and advertises the slash\n * menu.\n */\nexport const EDIT_PLACEHOLDER_CSS = `\n.empty-media-placeholder {\n display: inline-block;\n min-width: 120px;\n min-height: 80px;\n border: 1px dashed color-mix(in srgb, #808080 30%, transparent);\n border-radius: 4px;\n background: color-mix(in srgb, #808080 5%, transparent)\n url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40' fill='none'%3E%3Crect x='4' y='8' width='32' height='24' rx='2' stroke='%23808080' stroke-opacity='.4' stroke-width='1.5'/%3E%3Ccircle cx='13' cy='16' r='3' stroke='%23808080' stroke-opacity='.4' stroke-width='1.5'/%3E%3Cpath d='M8 28l8-8 5 5 4-4 7 7' stroke='%23808080' stroke-opacity='.4' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E\")\n center / 40px no-repeat;\n color: transparent;\n font-size: 0;\n overflow: hidden;\n}\n.empty-text-placeholder:not([contenteditable])::after {\n content: \"Click here to add text...\";\n color: color-mix(in srgb, #808080 40%, transparent);\n font-style: italic;\n font-size: 13px;\n pointer-events: none;\n}\n.empty-container-placeholder {\n border: 1px dashed color-mix(in srgb, #808080 25%, transparent);\n border-radius: 4px;\n min-height: 32px;\n position: relative;\n}\n.empty-container-placeholder::after {\n content: \"Drag elements here...\";\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n color: color-mix(in srgb, #808080 40%, transparent);\n font-style: italic;\n font-size: 11px;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", system-ui, sans-serif;\n pointer-events: none;\n white-space: nowrap;\n}\n[contenteditable=\"true\"]:empty::after {\n content: \"Type / for commands\";\n color: color-mix(in srgb, #808080 40%, transparent);\n font-style: italic;\n font-size: 13px;\n pointer-events: none;\n}\n`;\n\n/**\n * Keep the design/edit canvas stylesheet in sync with the render mode: present (idempotently) for\n * design/edit, removed otherwise (preview must look live; stylebook specimens must not show \"Click\n * here to add text...\" placeholders).\n */\nexport function syncEditModeCss(doc: Document, mode: CanvasMode): void {\n const existing = doc.head.querySelector(`#${EDIT_PLACEHOLDER_STYLE_ID}`);\n if (mode !== \"design\" && mode !== \"edit\") {\n existing?.remove();\n return;\n }\n if (existing) {\n return;\n }\n const style = doc.createElement(\"style\");\n style.id = EDIT_PLACEHOLDER_STYLE_ID;\n style.textContent = EDIT_PLACEHOLDER_CSS;\n doc.head.append(style);\n}\n\n/** Id of the injected stylebook-mode chrome stylesheet (section/card scaffolding). */\nexport const STYLEBOOK_STYLE_ID = \"jx-canvas-stylebook-css\";\n\n/**\n * Card/section chrome for the stylebook specimen document, ported from the parent editor stylesheet\n * with self-contained fallback values (the parent theme vars don't exist in the iframe).\n * Deliberately OMITS the parent's `.element-card-preview { pointer-events: none }` — the iframe\n * owns hit-testing and needs real hits on the specimens.\n */\nexport const STYLEBOOK_CSS = `\n.sb-root {\n padding: 16px;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", system-ui, sans-serif;\n}\n.sb-section {\n margin-bottom: 24px;\n}\n.sb-label {\n font-size: 10px;\n font-weight: 700;\n text-transform: uppercase;\n letter-spacing: 0.08em;\n color: color-mix(in srgb, #808080 70%, transparent);\n padding: 8px 0 4px;\n border-bottom: 1px solid color-mix(in srgb, #808080 25%, transparent);\n margin-bottom: 8px;\n}\n.sb-body {\n padding: 4px 0;\n display: flex;\n flex-direction: column;\n gap: 6px;\n}\n.element-card {\n display: flex;\n flex-direction: column;\n width: 100%;\n border: 1px solid color-mix(in srgb, #808080 30%, transparent);\n border-radius: 4px;\n overflow: hidden;\n margin-bottom: 6px;\n}\n.element-card-preview {\n background: #fff;\n padding: 6px 8px;\n min-height: 32px;\n display: flex;\n align-items: center;\n overflow: hidden;\n}\n.element-card-preview > * {\n max-width: 100%;\n margin: 0;\n padding: 0;\n}\n.element-card-preview > hr {\n width: 100%;\n border: none;\n border-top: 1px solid color-mix(in srgb, #808080 40%, transparent);\n}\n.element-card-preview > input,\n.element-card-preview > textarea,\n.element-card-preview > select,\n.element-card-preview > button,\n.element-card-preview > progress,\n.element-card-preview > meter {\n font-size: 10px;\n}\n.element-card-label {\n padding: 2px 6px;\n font-size: 10px;\n color: color-mix(in srgb, #808080 70%, transparent);\n background: color-mix(in srgb, #808080 8%, transparent);\n text-align: center;\n font-family: ui-monospace, SFMono-Regular, Menlo, monospace;\n}\n.sb-fallback {\n padding: 12px;\n border: 1px dashed color-mix(in srgb, #808080 40%, transparent);\n border-radius: 4px;\n color: color-mix(in srgb, #808080 70%, transparent);\n}\n.sb-empty {\n padding: 48px;\n text-align: center;\n color: color-mix(in srgb, #808080 70%, transparent);\n font-size: 13px;\n}\n`;\n\n/**\n * Keep the stylebook chrome stylesheet in sync with the render mode: present (idempotently) for\n * stylebook, removed otherwise.\n */\nexport function syncStylebookCss(doc: Document, mode: CanvasMode): void {\n const existing = doc.head.querySelector(`#${STYLEBOOK_STYLE_ID}`);\n if (mode !== \"stylebook\") {\n existing?.remove();\n return;\n }\n if (existing) {\n return;\n }\n const style = doc.createElement(\"style\");\n style.id = STYLEBOOK_STYLE_ID;\n style.textContent = STYLEBOOK_CSS;\n doc.head.append(style);\n}\n\n/** Apply the project's site style: custom properties on :root, plain properties on <body>. */\nexport function applySiteStyle(siteStyle: Record<string, unknown> | null | undefined): void {\n if (!siteStyle || typeof siteStyle !== \"object\") {\n return;\n }\n const rootStyle = document.documentElement.style;\n const bodyStyle = document.body.style as unknown as Record<string, string>;\n for (const [key, value] of Object.entries(siteStyle)) {\n if (value !== null && typeof value === \"object\" && !Array.isArray(value)) {\n continue;\n }\n if (key.startsWith(\"--\")) {\n rootStyle.setProperty(key, transposeCanvasUnits(String(value)));\n } else {\n bodyStyle[key] = transposeCanvasUnits(String(value));\n }\n }\n}\n\n/** Inject the document's `$head` (link/meta/script) into the iframe's <head>, de-duped by href/src. */\nexport function injectHead(doc: JxDocument): void {\n const head = (doc as { $head?: HeadEntry[] }).$head;\n if (!Array.isArray(head)) {\n return;\n }\n for (const entry of head) {\n if (!entry?.tagName) {\n continue;\n }\n const tag = String(entry.tagName).toLowerCase();\n // Skip inline scripts in design/edit; they're for the live page, not the editor canvas.\n if (tag === \"script\" && !entry.attributes?.src) {\n continue;\n }\n const attrs = { ...entry.attributes } as Record<string, unknown>;\n for (const key of [\"href\", \"src\"]) {\n const val = attrs[key];\n if (\n typeof val === \"string\" &&\n !val.startsWith(\"/\") &&\n !val.startsWith(\".\") &&\n !val.startsWith(\"http\")\n ) {\n attrs[key] = `/node_modules/${val}`;\n }\n }\n const sel = `${tag}${attrs.href ? `[href=\"${String(attrs.href)}\"]` : \"\"}${attrs.src ? `[src=\"${String(attrs.src)}\"]` : \"\"}`;\n if (sel !== tag && document.head.querySelector(sel)) {\n continue;\n }\n const el = document.createElement(tag);\n for (const [k, v] of Object.entries(attrs)) {\n el.setAttribute(k, String(v));\n }\n if (entry.textContent) {\n el.textContent = entry.textContent;\n }\n document.head.append(el);\n }\n}\n\n/** Build the `onNodeCreated` hook that stamps `data-jx-path` / `data-jx-layout` on rendered nodes. */\nexport function makeStamper(ctx: PathMapCtx) {\n return (created: Node, path: (string | number)[], def: unknown) => {\n if (!(created instanceof HTMLElement)) {\n return;\n }\n // The OPENED document's root can itself be a component definition (`tagName: \"eer-cta\"`). If\n // That tag is already registered in this realm (a previously-rendered page instantiated it —\n // Hosts persist across tab switches), the upgrade's connectedCallback would wipe the stamped\n // Editable tree and re-render a live instance with default state. Mark the root so the\n // Runtime's element class leaves it alone (see defineElement's connectedCallback guard).\n if (path.length === 0 && (def as { tagName?: string } | null)?.tagName?.includes(\"-\")) {\n created.dataset.jxDefinitionRoot = \"\";\n }\n const classified = classifyRenderNode(path, def, ctx);\n if (classified.kind === \"layout\") {\n created.dataset.jxLayout = \"\";\n return;\n }\n created.dataset.jxPath = serializeJxPath(classified.path);\n };\n}\n\n/**\n * Recover canvas images that fail their first load. Registered components create their <img> in\n * connectedCallback AFTER async registration, so on a cold first render those requests can fire\n * before the loopback server is warm and 404 — which the browser then caches as a\n * permanently-broken <img>. This re-fires a failed request a few times with backoff (exactly what\n * the manual canvas re-render does), recovering the image without a full re-render. Bounded\n * per-image so a genuinely missing file settles broken. Intentional data: placeholders never error,\n * so they're untouched. Returns a teardown that removes the listener. <img> error events don't\n * bubble, so listen in CAPTURE.\n */\nexport function installCanvasImageRetry(root: HTMLElement, maxAttempts = 3): () => void {\n const attempts = new WeakMap<HTMLImageElement, number>();\n const onError = (event: Event): void => {\n const img = event.target;\n if (!(img instanceof HTMLImageElement)) {\n return;\n }\n // A data: URL never errors (and an empty src isn't a real request) — nothing to retry.\n if (!img.src || img.src.startsWith(\"data:\")) {\n return;\n }\n const attempt = (attempts.get(img) ?? 0) + 1;\n if (attempt > maxAttempts) {\n // Bounded: a genuinely missing file settles broken instead of retrying forever.\n return;\n }\n attempts.set(img, attempt);\n setTimeout(() => {\n // Re-fire the request by clearing then re-assigning the same src (mirrors the manual re-render).\n const s = img.src;\n img.src = \"\";\n img.src = s;\n }, 150 * attempt);\n };\n root.addEventListener(\"error\", onError, true);\n return () => root.removeEventListener(\"error\", onError, true);\n}\n\n/**\n * Render a resolved document into `container`, replacing its current children. `mode` controls\n * whether server functions run (live in `preview`; skipped in `design`/`edit`). Returns a handle\n * whose `dispose()` stops the reactive scope.\n */\nexport async function renderResolvedDocument(opts: {\n container: HTMLElement;\n doc: JxDocument;\n docBase: string;\n mode: CanvasMode;\n mapperCtx: PathMapCtx;\n siteStyle?: Record<string, unknown> | null;\n}): Promise<RenderHandle> {\n setSkipServerFunctions(opts.mode !== \"preview\");\n // Transpose viewport units (vh/vw/…) → container units (cqh/cqw/…) so they resolve against the\n // Canvas's fixed-size query container (canvas.html) instead of the iframe element. That decouples\n // Them from the iframe height, letting the host size the iframe to its content without `100vh`\n // Sections feeding back into an ever-growing height. Set every render (the iframe always wants it).\n setCanvasViewportTranspose(true);\n // De-link `<a href>` in design/edit so clicks select the anchor instead of navigating the iframe;\n // Preview keeps real links live (mirrors the server-function gate above).\n setCanvasDelinkAnchors(opts.mode !== \"preview\");\n applySiteStyle(opts.siteStyle);\n injectHead(opts.doc);\n syncEditModeCss(opts.container.ownerDocument, opts.mode);\n syncStylebookCss(opts.container.ownerDocument, opts.mode);\n // Seed the runtime's root $media before buildScope so a COMPONENT with its own `@--name` blocks\n // But no own `$media` resolves the breakpoint to its real query (the iframe path calls buildScope\n // Directly and never the runtime's `Jx()` entry, which is the only other place _rootMedia is set).\n // Set it every render (even to `{}`) so a stale map from a previous document cannot leak.\n setRootMedia((opts.doc as { $media?: Record<string, string> }).$media ?? {});\n // Register components BEFORE renderNode. The runtime only applies a custom element's `$props` when\n // That element is ALREADY defined (renderNode gates renderCustomElementWithProps on a truthy\n // `customElements.get(tagName)`); if we register after render, every component paints with its\n // Props dropped — it upgrades in place to the empty default state (<img src=\"\">) — which was the\n // Empty-render regression. `registerElements` wraps each element in a per-element 5s Promise.race\n // Timeout and swallows failures internally, so awaiting it can't block the render indefinitely on\n // A slow/hanging component (the document still renders; an unresolved tag just stays inert).\n await registerElements(opts.doc, opts.docBase);\n const $defs = await buildScope(opts.doc, {}, opts.docBase);\n const onNodeCreated = makeStamper(opts.mapperCtx);\n // The scope MUST be the runtime's (runScoped): renderNode creates its binding effects with the\n // Runtime's copy of @vue/reactivity, and scope collection is per module instance — a studio\n // EffectScope here collects nothing and dispose() would leak every effect of this render.\n const { result: el, stop } = runScoped(\n () => renderNode(opts.doc, $defs, { _path: [], onNodeCreated }) as HTMLElement,\n );\n opts.container.replaceChildren(el);\n return {\n ctx: { defs: $defs, docBase: opts.docBase, mapperCtx: opts.mapperCtx, mode: opts.mode },\n dispose: stop,\n };\n}\n",
|
|
13
13
|
"/// <reference lib=\"dom\" />\n/**\n * Geometry read funnel — the single place the studio reads element bounds and does point hit-tests.\n *\n * Centralizing these reads is a seam for the iframe-canvas migration: today every call delegates\n * straight to the DOM, but routing them through one module lets later phases redirect\n * CANVAS-element geometry to rects posted out of the iframe (which the parent can't measure\n * directly) without touching dozens of call sites. A test (`geometry.test.ts`) asserts no raw\n * `getBoundingClientRect`/`elementFromPoint`/`elementsFromPoint` calls exist elsewhere in `src`.\n */\n\n/** Bounding rect of an element, in viewport coordinates. */\nexport function rectOf(el: Element): DOMRect {\n return el.getBoundingClientRect();\n}\n\n/**\n * Bounding rect of a Range, in viewport coordinates. Lives here (the one allowlisted home for\n * `getBoundingClientRect`) so the `geometry.test.ts` textual guard passes — the iframe-side\n * selection snapshot funnels its caret/selection geometry through this, never calling\n * `range.getBoundingClientRect()` directly.\n */\nexport function rectOfRange(r: Range): DOMRect {\n return r.getBoundingClientRect();\n}\n\n/** Topmost element at a viewport point, in `root` (defaults to the global document). */\nexport function elementAtPoint(\n x: number,\n y: number,\n root: Document | ShadowRoot = document,\n): Element | null {\n return root.elementFromPoint(x, y);\n}\n\n/** All elements at a viewport point, front-to-back, in `root` (defaults to the global document). */\nexport function elementsAtPoint(\n x: number,\n y: number,\n root: Document | ShadowRoot = document,\n): Element[] {\n return root.elementsFromPoint(x, y);\n}\n",
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
"/**\n * Serialize the iframe's resolved `$defs` scope (buildScope's output) into a structured-clone-safe\n * plain object the iframe can postMessage to the parent editor. The data-explorer panel reads this\n * from `S.canvas.scope` to show each data source's live value; the iframe (not the parent) resolves\n * the scope since the iframe canvas migration moved buildScope into the iframe realm.\n *\n * The input is the resolved `$defs` — typically a Vue reactive proxy. Reading `defs[key]`\n * auto-unwraps a top-level `ref`/`computed` to its current value; a JSON round-trip then reads\n * THROUGH any nested reactive proxies and drops non-cloneable residue (nested functions, symbols,\n * proxy artifacts) so the result crosses postMessage without a DataCloneError.\n *\n * Pure and DOM-free — no reactivity/runtime imports — so it stays trivially unit-testable.\n */\n\n/**\n * Per-value size cap (in JSON-string chars). A single large content collection can be tens of KB;\n * past this cap we store a small placeholder so one big data source can't bloat every render's\n * postMessage. Generous on purpose — most scope values are far smaller.\n */\nconst MAX_VALUE_CHARS = 256_000;\n\n/** The placeholder stored in place of a value whose JSON string exceeds {@link MAX_VALUE_CHARS}. */\nconst LARGE_VALUE_PLACEHOLDER = \"[large value omitted]\";\n\n/**\n * Produce a structured-clone-safe snapshot of `defs` for the data-explorer.\n *\n * For each own enumerable key: - functions (`typeof v === \"function\"`) are SKIPPED entirely\n * (handlers/server fns aren't data); - other values are JSON deep-cloned\n * (`JSON.parse(JSON.stringify(v))`) inside try/catch — a throw (e.g. a computed getter that throws)\n * or a circular/unserializable value maps the key to `null`; - a value whose JSON string exceeds\n * the size cap is replaced with a short placeholder string.\n *\n * @param defs The resolved `$defs` scope (may be a Vue reactive proxy).\n * @returns A plain object safe to `postMessage` (every value is JSON-round-trippable).\n */\nexport function serializeDataScope(defs: Record<string, unknown>): Record<string, unknown> {\n const out: Record<string, unknown> = {};\n for (const key of Object.keys(defs)) {\n try {\n // Reading through the reactive proxy auto-unwraps a top-level ref/computed to its value, and\n // Can THROW (a computed getter that throws) — done inside the try so that maps the key to null\n // Rather than aborting the whole snapshot.\n const value = defs[key];\n if (typeof value === \"function\") {\n continue; // Data sources only — a resolved server/handler fn isn't a \"value\".\n }\n const json = JSON.stringify(value);\n if (json === undefined) {\n // JSON.stringify returns undefined for a bare function/symbol/undefined at the top level.\n out[key] = null;\n continue;\n }\n if (json.length > MAX_VALUE_CHARS) {\n out[key] = LARGE_VALUE_PLACEHOLDER;\n continue;\n }\n out[key] = JSON.parse(json) as unknown;\n } catch {\n // A circular structure or a throwing getter → the key exists but carries no serializable value.\n out[key] = null;\n }\n }\n return out;\n}\n",
|
|
30
30
|
"/// <reference lib=\"dom\" />\n/**\n * Canvas iframe entry — runs INSIDE the canvas iframe. It opens a postMessage channel to the parent\n * editor, announces `ready`, and renders the documents the parent posts via `render`. Kept tiny: it\n * pulls in only the render core, so the iframe bundle stays small.\n */\n\nimport { postMessageChannel } from \"./iframe-channel\";\nimport { installCanvasImageRetry, renderResolvedDocument } from \"./iframe-render\";\nimport { measureHits, startInteraction } from \"./iframe-interaction\";\nimport {\n AUTO_SCROLL_STEP,\n clearIframeDrag,\n computeDropInstruction,\n resolveDropTarget,\n scrollDirection,\n startGrabDetector,\n} from \"./iframe-drop\";\nimport { startIframeInlineEdit } from \"./iframe-inline-edit\";\nimport { startIframeSlashBridge } from \"./iframe-slash\";\nimport { startKeyForwarding } from \"./iframe-keys\";\nimport { applyIframePatch } from \"./iframe-patch\";\nimport { disposeAllSubtrees } from \"./iframe-subtree\";\nimport { serializeDataScope } from \"./serialize-scope\";\nimport { getActivePath, isEditing, stopEditing } from \"../editor/inline-edit\";\nimport { isAncestor } from \"../state\";\nimport type { JxDocOp } from \"../tabs/patch-ops\";\nimport type { JxPath } from \"../state\";\n// ObserveScope MUST come from the runtime: the $defs refs are created by the runtime's copy of\n// @vue/reactivity, and dep tracking is per module instance — an effect from the studio's own copy\n// Would never re-run when a dev-proxy data source settles.\nimport { observeScope, reapplyStyle, setResolveToken } from \"@jxsuite/runtime\";\nimport type { IframeChannel } from \"./iframe-channel\";\nimport type { CanvasMode, DragSrcKind, IframeToParent, ParentToIframe } from \"./iframe-protocol\";\nimport type { JxDocument, JxMutableNode, JxStyle } from \"@jxsuite/schema/types\";\nimport type { IframeRenderCtx, RenderHandle } from \"./iframe-render\";\n\n/**\n * Resolve the drop placement for a forwarded cursor: point hit-test → nearest `[data-jx-path]` →\n * pure {@link computeDropInstruction}. Returns null when the cursor resolves to no droppable target.\n * Shared by the `dragMove` (display-only preview) and `drop` (fresh, authoritative) handlers.\n */\nfunction previewAt(\n cursor: { x: number; y: number },\n src: DragSrcKind,\n shadowDoc: JxMutableNode,\n doc: Document,\n) {\n const targetEl = resolveDropTarget(cursor.x, cursor.y, doc);\n if (!targetEl) {\n return null;\n }\n return computeDropInstruction(targetEl, cursor.y, shadowDoc, src);\n}\n\n/** Set-key keys the patcher applies IN PLACE (never a subtree re-render) — safe under a live edit. */\nconst IN_PLACE_KEYS = new Set([\"style\", \"textContent\"]);\n\n/**\n * Whether applying `forwardOps` would re-render/detach the element of the live edit session: any op\n * that is NOT an in-place set-key (style/text/event) whose affected node is an ancestor-or-self of\n * the active edit path. Structural ops affect the PARENT's children (any sibling churn under an\n * ancestor can reflow/replace the edited element's position), so their parent path is compared.\n */\nexport function patchDisturbsActiveEdit(forwardOps: JxDocOp[]): boolean {\n const activePath = getActivePath();\n if (!activePath) {\n return false;\n }\n for (const op of forwardOps) {\n let affected: JxPath;\n if (op.op === \"set-key\") {\n if (IN_PLACE_KEYS.has(op.key) || op.key.startsWith(\"on\")) {\n continue;\n }\n affected = op.path;\n } else if (op.op === \"move-child\") {\n affected = op.fromParentPath;\n if (isAncestor(affected, activePath) || isAncestor(op.toParentPath, activePath)) {\n return true;\n }\n continue;\n } else {\n affected = op.parentPath;\n }\n if (isAncestor(affected, activePath)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * Drive a channel: render each `render` message into `container`, dropping stale generations, and\n * acknowledge with `renderComplete`/`renderError`. Exposed (rather than inlined in {@link boot}) so\n * tests can exercise it with a fake channel. Returns a teardown function.\n */\nexport function startCanvasIframe(opts: {\n channel: IframeChannel<IframeToParent, ParentToIframe>;\n container: HTMLElement;\n}): () => void {\n const { channel, container } = opts;\n let handle: RenderHandle | null = null;\n // Disposer for the live render's dataScope re-post effect (see the render handler); stopped\n // Alongside the handle so a superseded render's refs can't keep posting.\n let stopDataScopeWatch: (() => void) | null = null;\n let latestGen = -1;\n // The raw page doc the current DOM was rendered from — the patch source-of-truth. `renderedGen`\n // Tracks which generation it (and the DOM) reflect, so patches for an in-flight/superseded render\n // Are handled correctly rather than applied against the wrong tree.\n let shadowDoc: JxMutableNode | null = null;\n let renderedGen = -1;\n // The mode of the LIVE render — gates the interactive surfaces (inline editing, insert zones,\n // Grab-drags) that only design/edit modes own. Adopted alongside shadowDoc.\n let currentMode: CanvasMode = \"design\";\n // The current render's retained context (scope/mapping), used to render subtrees for structural\n // Patches. Set together with `shadowDoc`, so it's non-null whenever a patch is applied.\n let renderCtx: IframeRenderCtx | null = null;\n\n // Cross-frame drag session (Phase 4c). `dragStart` records the source kind + the gen the session\n // Began against; dragMove/drop tag every reply with both so the parent can stale-gate them.\n let dragSrc: DragSrcKind | null = null;\n let dragGen = -1;\n // The parent-session id (from dragStart), so NATIVE drag events routed into this frame can post\n // DragOver/dropResult tagged for the parent's seq gate.\n let sessionSeq = -1;\n\n // ─── Auto-scroll (commit 6) — a SELF-SUSTAINING rAF loop. When a dragMove lands in an edge band,\n // The loop each frame scrolls the viewport AND re-hit-tests the CACHED cursor (elementFromPoint is\n // Viewport-relative, so the same x,y now resolves to a different node after the scroll) and re-posts\n // The over-preview. It is NOT driven by dragMove (the pointer is stationary at an edge-hold). Stops\n // On: band exit (next dragMove, dir 0), drop/dragEnd/dragCancel, or scroll extent reached (scrollY\n // Unchanged). The win/rAF body is the only uncovered line; scrollDirection is PURE + unit-tested.\n let autoScrollFrame = 0;\n // The cached edge-hold cursor. For a flow-3 (iframe-driven) drag it also carries the drag `src`\n // (the parent never posts a dragStart, so `dragSrc`/`dragGen` are null) and `withCursor`, so the\n // Loop re-posts dragOver WITH the cursor to keep the parent's ghost tracking during an edge-hold\n // (the parent has no pointer of its own then). Parent-driven flows (1/2/4) leave `src` undefined\n // And `withCursor` false — the tick falls back to `dragSrc`/`dragGen` and the parent moves the\n // Ghost from its own raw pointer.\n let autoScrollCursor: {\n x: number;\n y: number;\n dragSeq: number;\n withCursor: boolean;\n src?: DragSrcKind;\n gen?: number;\n } | null = null;\n const win = container.ownerDocument.defaultView;\n\n function stopAutoScroll(): void {\n if (autoScrollFrame && win) {\n win.cancelAnimationFrame(autoScrollFrame);\n }\n autoScrollFrame = 0;\n autoScrollCursor = null;\n }\n\n function autoScrollTick(): void {\n autoScrollFrame = 0;\n // Flow 3 supplies its own src on the cached cursor; flows 1/2/4 use the session's dragSrc.\n const src = autoScrollCursor?.src ?? dragSrc;\n if (!win || !autoScrollCursor || !src || !shadowDoc) {\n return;\n }\n const dir = scrollDirection(autoScrollCursor.y, win.innerHeight);\n if (dir === 0) {\n return;\n }\n const before = win.scrollY;\n win.scrollBy(0, dir * AUTO_SCROLL_STEP);\n if (win.scrollY === before) {\n // Scroll extent reached — nothing more to reveal, so stop the loop.\n return;\n }\n const preview = previewAt(autoScrollCursor, src, shadowDoc, container.ownerDocument);\n channel.post({\n // Flow 3 (withCursor) re-posts the cursor so the parent keeps tracking the ghost at an edge-hold.\n ...(autoScrollCursor.withCursor\n ? { cursor: { x: autoScrollCursor.x, y: autoScrollCursor.y } }\n : {}),\n dragSeq: autoScrollCursor.dragSeq,\n gen: autoScrollCursor.gen ?? dragGen,\n kind: \"dragOver\",\n preview,\n });\n autoScrollFrame = win.requestAnimationFrame(autoScrollTick);\n }\n\n /**\n * (Re)evaluate auto-scroll for a dragMove cursor: arm the loop in a band, stop it outside. The\n * optional `flow3` carries the iframe-driven drag's src/gen (and forces the cursor to be\n * re-posted during edge-holds); parent-driven flows pass nothing and the loop uses\n * `dragSrc`/`dragGen`.\n */\n function updateAutoScroll(\n cursor: { x: number; y: number },\n dragSeq: number,\n flow3?: { src: DragSrcKind; gen: number },\n ): void {\n if (!win || scrollDirection(cursor.y, win.innerHeight) === 0) {\n stopAutoScroll();\n return;\n }\n autoScrollCursor = {\n dragSeq,\n withCursor: flow3 != null,\n x: cursor.x,\n y: cursor.y,\n ...(flow3 ? { gen: flow3.gen, src: flow3.src } : {}),\n };\n if (!autoScrollFrame) {\n autoScrollFrame = win.requestAnimationFrame(autoScrollTick);\n }\n }\n\n // Report pointer hit/hover (resolved to data-jx-path) to the parent, which owns selection +\n // Overlays — the cross-origin bridge means the parent never reads our DOM directly. The shadow-doc\n // Accessor feeds the insertion \"+\" zone computation hung off the same pointermove (the parent\n // Draws the clickable \"+\" and runs the slash-menu → mutateInsertNode flow on click).\n const stopInteraction = startInteraction(channel, container.ownerDocument, {\n getMode: () => currentMode,\n getShadowDoc: () => shadowDoc,\n });\n // Forward global-shortcut keystrokes to the parent — its shortcut handler is bound to the editor\n // Document, so without this they'd be swallowed whenever focus is inside the canvas iframe.\n const stopKeyForwarding = startKeyForwarding(channel, container.ownerDocument);\n // Run inline editing (contenteditable) here, posting committed/split/insert results to the parent.\n const stopInlineEdit = startIframeInlineEdit(channel, container, {\n getMode: () => currentMode,\n });\n // Bridge the engine's slash menu to the parent's Spectrum menu (show/nav/select over the channel).\n const stopSlashBridge = startIframeSlashBridge(channel, container.ownerDocument);\n // Flow 3 (grab-anywhere): detect an element-body drag and DRIVE it locally. A drag that begins in\n // The iframe gets its held-button moves in the IFRAME document (not the parent), so the iframe\n // Computes the preview/drop from its own cursor and posts dragOver/dropResult directly; the parent\n // Only adopts the seq, draws the indicator, and positions the ghost from the posted cursor. The\n // Detector reuses the SAME previewAt + auto-scroll loop the dragMove/drop handlers use.\n const stopGrabDetector = startGrabDetector(channel, container.ownerDocument, {\n armAutoScroll: (cursor, dragSeq, src) =>\n updateAutoScroll(cursor, dragSeq, { gen: renderedGen, src }),\n gen: () => renderedGen,\n getMode: () => currentMode,\n previewAt: (cursor, src) =>\n shadowDoc ? previewAt(cursor, src, shadowDoc, container.ownerDocument) : null,\n stopAutoScroll,\n });\n // Auto-recover canvas images that 404 on a cold first render (component <img>s created in\n // ConnectedCallback fire late, before the loopback server is warm). Re-fires the failed request a\n // Few times — what the manual data-sidebar \"Refresh\" does, but without a full re-render.\n const stopImageRetry = installCanvasImageRetry(container);\n\n // ─── Content-height auto-sizing ─────────────────────────────────────────────\n // Measure the content height and post it so the host sizes the iframe to fit — the canvas then never\n // Scrolls internally (the parent overlay can't follow an internal scroll, and every node stays inside\n // The iframe box so it's hit-testable). The runtime transposes viewport units to container units, so\n // This converges instead of feeding back; `MAX` is a backstop if some unit slips through. `container`\n // Is `#jx-canvas-root`, which overflows the fixed-size query container freely, so its scrollHeight is\n // The true content height.\n const MAX_CANVAS_HEIGHT = 30_000;\n let lastPostedHeight = -1;\n function postContentHeight(): void {\n const measured = Math.min(container.scrollHeight, MAX_CANVAS_HEIGHT);\n if (measured > 0 && Math.abs(measured - lastPostedHeight) >= 1) {\n lastPostedHeight = measured;\n // A component-definition root (marked by makeStamper) is a fragment, not a page — tell the host\n // So it can drop its 480px iframe floor and let a short component hug its content.\n const root = container.firstElementChild;\n const fragment = root instanceof HTMLElement && root.dataset.jxDefinitionRoot !== undefined;\n channel.post({ fragment, height: measured, kind: \"contentHeight\" });\n }\n }\n const ResizeObs = win?.ResizeObserver;\n const heightObserver = ResizeObs ? new ResizeObs(() => postContentHeight()) : null;\n heightObserver?.observe(container);\n\n // ─── Wheel forwarding (canvas zoom/pan) ─────────────────────────────────────\n // The iframe is sized to its content (never scrolls itself), so wheel events over it are meant for\n // The parent canvas: ctrl/cmd+wheel = zoom, plain = pan. A cross-origin OOPIF doesn't bubble wheel to\n // The parent, so forward the deltas + modifiers + cursor; the host redispatches to its wheel handler.\n const onWheel = (e: WheelEvent) => {\n e.preventDefault();\n channel.post({\n ctrlKey: e.ctrlKey,\n deltaX: e.deltaX,\n deltaY: e.deltaY,\n kind: \"forwardWheel\",\n metaKey: e.metaKey,\n shiftKey: e.shiftKey,\n x: e.clientX,\n y: e.clientY,\n });\n };\n container.ownerDocument.addEventListener(\"wheel\", onWheel, { passive: false });\n\n // ─── Native drag routing (flows 1/2/4 over the canvas) ─────────────────────\n // Chromium delivers native dragover/drop to the frame UNDER THE CURSOR, so once a\n // Parent-originated drag (palette / layers / ⠿ handle) crosses onto the canvas the parent stops\n // Seeing dragover — it can't forward dragMove, and cross-origin nothing preventDefaults here,\n // Giving the \"not allowed\" cursor and a dead drop. So handle the native stream directly: while a\n // Parent session is live (dragSrc set), accept the drag, post dragOver previews from OUR\n // ClientX/y (already iframe-local — no rect conversion), and on drop post the authoritative\n // DropResult. The cursor rides on dragOver so the parent can keep its ghost tracking (it has no\n // Pointer stream of its own while the drag is over this frame).\n //\n // A native stream arriving with NO session yet (dragSrc null) is a parent drag that crossed onto\n // The canvas before the parent could bind a host (it never sees a cursor inside the iframe rect) —\n // Post nativeDragEnter so the bridge binds the session here. Throttled: dragover fires\n // Continuously (~350ms even stationary), and an unclaimable stream (e.g. an OS file drag) would\n // Otherwise spam the channel forever.\n const NATIVE_ENTER_REPOST_MS = 300;\n let lastNativeEnterPost = 0;\n const onNativeDragOver = (e: DragEvent) => {\n if (!dragSrc) {\n const now = Date.now();\n if (now - lastNativeEnterPost >= NATIVE_ENTER_REPOST_MS) {\n lastNativeEnterPost = now;\n channel.post({ kind: \"nativeDragEnter\" });\n }\n return;\n }\n e.preventDefault();\n if (e.dataTransfer) {\n e.dataTransfer.dropEffect = \"move\";\n }\n const cursor = { x: e.clientX, y: e.clientY };\n const preview = shadowDoc\n ? previewAt(cursor, dragSrc, shadowDoc, container.ownerDocument)\n : null;\n channel.post({ cursor, dragSeq: sessionSeq, gen: dragGen, kind: \"dragOver\", preview });\n updateAutoScroll(cursor, sessionSeq);\n };\n const onNativeDrop = (e: DragEvent) => {\n if (!dragSrc) {\n return;\n }\n e.preventDefault();\n const cursor = { x: e.clientX, y: e.clientY };\n const preview = shadowDoc\n ? previewAt(cursor, dragSrc, shadowDoc, container.ownerDocument)\n : null;\n channel.post({\n dragSeq: sessionSeq,\n gen: dragGen,\n instruction: preview?.instruction ?? null,\n kind: \"dropResult\",\n targetPath: preview?.targetPath ?? null,\n });\n dragSrc = null;\n dragGen = -1;\n sessionSeq = -1;\n stopAutoScroll();\n clearIframeDrag();\n };\n container.ownerDocument.addEventListener(\"dragenter\", onNativeDragOver, true);\n container.ownerDocument.addEventListener(\"dragover\", onNativeDragOver, true);\n container.ownerDocument.addEventListener(\"drop\", onNativeDrop, true);\n\n const off = channel.onMessage((msg) => {\n if (msg.kind === \"measure\") {\n channel.post({\n hits: measureHits(msg.paths, container.ownerDocument),\n kind: \"geometry\",\n reqId: msg.reqId,\n });\n return;\n }\n if (msg.kind === \"patch\") {\n const { gen } = msg;\n if (gen < renderedGen) {\n // A newer full render already supersedes this edit — drop it.\n return;\n }\n if (gen > renderedGen || !shadowDoc || !renderCtx) {\n // The render this patch targets hasn't landed yet; let the parent escalate to a full render.\n channel.post({ gen, kind: \"patchError\", message: \"patch-ahead-of-render\" });\n return;\n }\n // A structural/subtree op that re-renders the active editable (or an ancestor) would detach\n // The session's element mid-edit — commit and end the session first (in-place style/text\n // Patches elsewhere leave it alone).\n if (isEditing() && patchDisturbsActiveEdit(msg.forwardOps)) {\n stopEditing();\n }\n try {\n applyIframePatch(shadowDoc, msg.forwardOps, container, renderCtx);\n channel.post({ gen, kind: \"patchComplete\" });\n } catch (error) {\n channel.post({\n gen,\n kind: \"patchError\",\n message: String((error as Error)?.message ?? error),\n });\n }\n return;\n }\n if (msg.kind === \"styleUpdate\") {\n // Stylebook live style edit: swap the ROOT's style and re-run the runtime's style applier —\n // One reapply regenerates the whole scoped-CSS cascade (real @media included) without a\n // Re-render. A stale gen is dropped; the superseding render carries the same style.\n if (msg.gen !== renderedGen || !shadowDoc) {\n return;\n }\n (shadowDoc as { style?: JxStyle }).style = msg.style as JxStyle;\n const rootEl = container.firstElementChild;\n if (rootEl instanceof HTMLElement) {\n reapplyStyle(\n rootEl,\n msg.style as JxStyle,\n (shadowDoc as { $media?: Record<string, string> }).$media ?? {},\n );\n }\n return;\n }\n if (msg.kind === \"dragStart\") {\n // Begin a drag session: retain the source kind + the gen it targets. dragMove/drop replies are\n // Tagged with this gen so the parent drops any that arrive after a re-render superseded it.\n dragSrc = msg.src;\n dragGen = msg.gen;\n sessionSeq = msg.dragSeq;\n return;\n }\n if (msg.kind === \"dragEnd\" || msg.kind === \"dragCancel\") {\n // The pointer left the canvas / the session was cancelled: forget the session so a late move\n // Or drop is a no-op, and clear any flow-3 (iframe-originated) drag state + auto-scroll.\n dragSrc = null;\n dragGen = -1;\n sessionSeq = -1;\n stopAutoScroll();\n clearIframeDrag();\n return;\n }\n if (msg.kind === \"dragMove\") {\n // Display-only preview: hit-test the forwarded cursor, compute the placement, post dragOver.\n // Null target/instruction → post a null preview so the parent clears any stale indicator.\n const preview =\n dragSrc && shadowDoc\n ? previewAt(msg.cursor, dragSrc, shadowDoc, container.ownerDocument)\n : null;\n channel.post({ dragSeq: msg.dragSeq, gen: dragGen, kind: \"dragOver\", preview });\n // Arm/stop the self-sustaining auto-scroll for this cursor (an edge-hold keeps scrolling).\n updateAutoScroll(msg.cursor, msg.dragSeq);\n return;\n }\n if (msg.kind === \"drop\") {\n // Compute the drop FRESH from the live DOM (never from a cached preview) and post the result.\n const preview =\n dragSrc && shadowDoc\n ? previewAt(msg.cursor, dragSrc, shadowDoc, container.ownerDocument)\n : null;\n channel.post({\n dragSeq: msg.dragSeq,\n gen: dragGen,\n instruction: preview?.instruction ?? null,\n kind: \"dropResult\",\n targetPath: preview?.targetPath ?? null,\n });\n dragSrc = null;\n dragGen = -1;\n sessionSeq = -1;\n stopAutoScroll();\n clearIframeDrag();\n return;\n }\n if (msg.kind !== \"render\" || msg.gen < latestGen) {\n return;\n }\n // A render replaces the DOM under a live edit session — COMMIT it first (never discard). The\n // Resulting editCommit/editEnd post synchronously here, so on the FIFO channel they precede\n // This render's renderComplete and the parent routes them by the host's not-yet-flipped tab\n // Identity — a commit racing a tab switch still lands in the document it belonged to.\n if (isEditing()) {\n stopEditing();\n }\n latestGen = msg.gen;\n const { gen, mapperCtx } = msg;\n const rawDoc = msg.shadowDoc as JxMutableNode;\n void (async () => {\n try {\n // Drop the previous render's reactive scopes (root + any surgically-rendered subtrees).\n disposeAllSubtrees();\n stopDataScopeWatch?.();\n stopDataScopeWatch = null;\n handle?.dispose();\n handle = await renderResolvedDocument({\n container,\n doc: msg.doc as JxDocument,\n docBase: msg.docBase,\n mapperCtx: {\n arrayPaths: new Set(mapperCtx.arrayPaths),\n canvasMode: mapperCtx.canvasMode,\n layoutWrapped: mapperCtx.layoutWrapped,\n pageContentOffset: mapperCtx.pageContentOffset,\n pageContentPrefix: mapperCtx.pageContentPrefix,\n },\n mode: msg.mode,\n siteStyle: msg.siteStyle,\n });\n if (gen === latestGen) {\n // Adopt this generation's shadow doc + render context only once it's the live render.\n shadowDoc = rawDoc;\n renderCtx = handle.ctx;\n renderedGen = gen;\n currentMode = msg.mode;\n channel.post({ gen, kind: \"renderComplete\" });\n // Thread a serializable snapshot of the resolved $defs to the parent so the data-explorer\n // Panel shows live data (the iframe, not the parent, now resolves the scope). Inside a\n // Reactive effect: dev-proxy data sources ($prototype/$src) return a ref that fills AFTER\n // BuildScope returns, and serializeDataScope reads defs[key], so the effect tracks those\n // Refs and RE-POSTS an updated snapshot when the data settles (the host gen-gates stale\n // Ones). Isolated in try/catch: a serialization failure never breaks the render ack above.\n const defs = handle.ctx.defs as Record<string, unknown>;\n stopDataScopeWatch = observeScope(() => {\n try {\n channel.post({ gen, kind: \"dataScope\", scope: serializeDataScope(defs) });\n } catch {\n // A pathological scope can't be serialized — skip; the render itself succeeded.\n }\n });\n // Size the iframe to the freshly-rendered content (the ResizeObserver tracks later reflows).\n postContentHeight();\n }\n } catch (error) {\n channel.post({\n gen,\n kind: \"renderError\",\n message: String((error as Error)?.message ?? error),\n });\n }\n })();\n });\n\n channel.post({ kind: \"ready\" });\n return () => {\n off();\n stopInteraction();\n stopKeyForwarding();\n stopInlineEdit();\n stopSlashBridge();\n stopGrabDetector();\n stopImageRetry();\n stopAutoScroll();\n heightObserver?.disconnect();\n container.ownerDocument.removeEventListener(\"wheel\", onWheel);\n container.ownerDocument.removeEventListener(\"dragenter\", onNativeDragOver, true);\n container.ownerDocument.removeEventListener(\"dragover\", onNativeDragOver, true);\n container.ownerDocument.removeEventListener(\"drop\", onNativeDrop, true);\n stopDataScopeWatch?.();\n handle?.dispose();\n };\n}\n\n/** The window surface {@link bootCanvasIframe} needs — injected so it's testable without a frame. */\ninterface BootWindow {\n location: { search: string };\n document: { querySelector: (selectors: string) => Element | null; body: HTMLElement };\n parent: { postMessage: (message: unknown, targetOrigin: string) => void };\n addEventListener: (type: \"message\", listener: (event: MessageEvent) => void) => void;\n removeEventListener: (type: \"message\", listener: (event: MessageEvent) => void) => void;\n}\n\n/**\n * Boot the entry against a window: open a token+origin-authenticated channel to the parent (origin\n * and token are passed in via the iframe URL) and render into `#jx-canvas-root` (or `<body>`).\n */\nexport function bootCanvasIframe(win: BootWindow): () => void {\n const params = new URLSearchParams(win.location.search);\n // Authenticate the runtime dev-proxy resolve/server fetches to the token-gated loopback server.\n // The server rpcToken rides the iframe URL as `rpcToken`; the `token` param is the separate\n // PostMessage channel secret (set by the host). Absent on dev/chromium, where setResolveToken no-ops.\n setResolveToken(params.get(\"rpcToken\"));\n // ParentOrigin authenticates the parent peer. The host (iframe-host.ts) passes it ONLY for an\n // Http(s) parent (dev / chromium — same-origin, the origin round-trips). It OMITS it for a\n // Non-http(s) parent (electrobun views://), whose custom scheme may not surface as a postMessage\n // Origin: a missing value here means fall back to \"*\" — token-gated, NOT a silent omission — and\n // Log it loudly so the looser origin check is visible.\n const explicitParentOrigin = params.get(\"parentOrigin\");\n const parentOrigin = explicitParentOrigin || \"*\";\n if (!explicitParentOrigin) {\n console.warn(\n \"[jx-canvas] no parentOrigin in iframe URL — accepting messages from any origin (token-gated). \" +\n \"The parent origin did not round-trip; the channel relies on the shared token alone.\",\n );\n }\n const container = (win.document.querySelector(\"#jx-canvas-root\") ??\n win.document.body) as HTMLElement;\n const channel = postMessageChannel<IframeToParent, ParentToIframe>({\n acceptOrigin: parentOrigin,\n source: win,\n target: win.parent,\n targetOrigin: parentOrigin,\n token: params.get(\"token\") || \"\",\n });\n return startCanvasIframe({ channel, container });\n}\n\n// Boot only when actually loaded as the iframe document (has a real parent frame), never in tests.\nif (typeof window !== \"undefined\" && window.parent !== window) {\n bootCanvasIframe(window as unknown as BootWindow);\n}\n"
|
|
31
31
|
],
|
|
32
|
-
"mappings": "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",
|
|
33
|
-
"debugId": "
|
|
32
|
+
"mappings": "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",
|
|
33
|
+
"debugId": "369B0CCF9985BC4564756E2164756E21",
|
|
34
34
|
"names": []
|
|
35
35
|
}
|