@takazudo/zfb 3.2.0 → 4.0.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/config.d.ts +32 -3
- package/dist/config.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js.map +1 -1
- package/dist/plugins.d.ts +18 -4
- package/dist/plugins.js.map +1 -1
- package/dist/zudo-react/hydrate.js +32 -1
- package/dist/zudo-react/hydrate.js.map +1 -1
- package/dist/zudo-react/jsx-types.d.ts +17 -6
- package/dist/zudo-react/jsx-types.js.map +1 -1
- package/dist/zudo-react/raw-html.js +144 -4
- package/dist/zudo-react/raw-html.js.map +1 -1
- package/dist/zudo-react/root.d.ts +9 -1
- package/dist/zudo-react/root.js +21 -2
- package/dist/zudo-react/root.js.map +1 -1
- package/dist/zudo-react/vocabulary.js +1 -1
- package/dist/zudo-react/vocabulary.js.map +1 -1
- package/package.json +6 -6
|
@@ -122,8 +122,35 @@ function marker(context, parent, kind, content) {
|
|
|
122
122
|
context.opaque.add(open);
|
|
123
123
|
if (kind === "t")
|
|
124
124
|
context.textSlots.add(open);
|
|
125
|
+
if (context.collectRootRanges && (kind === "t" || kind === "l" || kind.startsWith("s:")))
|
|
126
|
+
context.dynamicRanges.push([open, close]);
|
|
125
127
|
return [open, close];
|
|
126
128
|
}
|
|
129
|
+
function rootOwned(container, context, map) {
|
|
130
|
+
const starts = new Map();
|
|
131
|
+
for (const [open, close] of context.dynamicRanges) {
|
|
132
|
+
const start = map.get(open);
|
|
133
|
+
const end = map.get(close);
|
|
134
|
+
if (start?.parentNode === container && end?.parentNode === container)
|
|
135
|
+
starts.set(start, end);
|
|
136
|
+
}
|
|
137
|
+
const nodes = [...container.childNodes];
|
|
138
|
+
const owned = [];
|
|
139
|
+
for (let index = 0; index < nodes.length; index++) {
|
|
140
|
+
const start = nodes[index];
|
|
141
|
+
const end = starts.get(start);
|
|
142
|
+
if (end) {
|
|
143
|
+
const endIndex = nodes.indexOf(end, index + 1);
|
|
144
|
+
if (endIndex >= 0) {
|
|
145
|
+
owned.push({ kind: "range", start, end });
|
|
146
|
+
index = endIndex;
|
|
147
|
+
continue;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
owned.push({ kind: "node", node: start });
|
|
151
|
+
}
|
|
152
|
+
return owned;
|
|
153
|
+
}
|
|
127
154
|
function range(start, end) {
|
|
128
155
|
const nodes = [];
|
|
129
156
|
for (let node = start; node; node = node.nextSibling) {
|
|
@@ -822,9 +849,12 @@ function execute(node, container, options, mode) {
|
|
|
822
849
|
formOwners: new Map(),
|
|
823
850
|
opaque: new Set(),
|
|
824
851
|
textSlots: new Set(),
|
|
852
|
+
dynamicRanges: [],
|
|
853
|
+
collectRootRanges: true,
|
|
825
854
|
};
|
|
826
855
|
const fragment = container.ownerDocument.createDocumentFragment();
|
|
827
856
|
render(node, fragment, context, HTML, "", rootPath(container));
|
|
857
|
+
context.collectRootRanges = false;
|
|
828
858
|
const built = [...fragment.childNodes];
|
|
829
859
|
const map = new Map();
|
|
830
860
|
if (mode === "hydrate")
|
|
@@ -861,7 +891,8 @@ function execute(node, container, options, mode) {
|
|
|
861
891
|
}
|
|
862
892
|
for (const [owner, bindings] of ownedForms)
|
|
863
893
|
activateForms(bindings, owner.scope, owner.cleanups, options, container);
|
|
864
|
-
const owned =
|
|
894
|
+
const owned = rootOwned(container, context, map);
|
|
895
|
+
context.dynamicRanges.length = 0;
|
|
865
896
|
const handle = createRoot(container, options, scope, cleanups, owned);
|
|
866
897
|
try {
|
|
867
898
|
scope.activate();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hydrate.js","sourceRoot":"","sources":["../../src/zudo-react/hydrate.ts"],"names":[],"mappings":"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","sourcesContent":["import { activateForms, prepareForms, reconcileForms, FormError, type FormPlan } from \"./forms.js\";\nimport { Fragment, isDescription, type Child, type Description } from \"./description.js\";\nimport { createScope, withScope, type RuntimeScope } from \"./scope.js\";\nimport { isReactive, read, styleText, setAttribute, bind, listener } from \"./dom-bindings.js\";\nimport {\n createRoot,\n diagnostic,\n report,\n rootPath,\n storedRoot,\n type RootHandle,\n type RootOptions,\n} from \"./root.js\";\nimport type { ReadonlySignal } from \"./reactive-types.js\";\nimport { subscribe } from \"./reactive.js\";\nimport { batch } from \"./scheduler.js\";\nimport { rawHtmlReserved } from \"./raw-html.js\";\nimport { Show, For, showProps, forProps, keyed, keyPayload, view } from \"./structure.js\";\nimport type { Key } from \"./description.js\";\nimport {\n attributeError,\n commonAttrs,\n dialectSuggestion,\n emptyIframeChildren,\n formProps,\n htmlAttrs,\n htmlTags,\n isDialectProp,\n reactiveModelSuggestion,\n svgAttrs,\n svgTags,\n voidTags,\n} from \"./vocabulary.js\";\n\nconst HTML = \"http://www.w3.org/1999/xhtml\";\nconst SVG = \"http://www.w3.org/2000/svg\";\nconst sensitive = new Set(\"template noscript xmp noembed noframes plaintext\".split(\" \"));\nconst tableChildren: Record<string, Set<string>> = {\n table: new Set(\"caption colgroup thead tbody tfoot\".split(\" \")),\n thead: new Set([\"tr\"]),\n tbody: new Set([\"tr\"]),\n tfoot: new Set([\"tr\"]),\n tr: new Set([\"td\", \"th\"]),\n colgroup: new Set([\"col\"]),\n};\nconst restricted = new Set(\n \"title select optgroup option table thead tbody tfoot tr colgroup\".split(\" \"),\n);\nconst shapeAttrs: Record<string, string[]> = {\n input: [\"type\", \"form\"],\n select: [\"multiple\", \"form\"],\n option: [\"value\"],\n textarea: [\"form\"],\n};\nconst protocol = \"zudo-react/1\";\n\ntype Operation = (map: Map<Node, Node>, cleanups: Array<() => void>) => void;\ninterface BuildContext {\n readonly document: Document;\n readonly options: RootOptions;\n readonly container: Element;\n readonly root: RuntimeScope;\n scope: RuntimeScope;\n next: number;\n readonly operations: Operation[];\n readonly forms: FormPlan[];\n readonly formOwners: Map<FormPlan, Owned>;\n readonly opaque: Set<Node>;\n readonly textSlots: Set<Node>;\n}\ninterface Owned {\n scope: RuntimeScope;\n fragment: DocumentFragment;\n operations: Operation[];\n forms: FormPlan[];\n cleanups: Array<() => void>;\n}\nfunction owned(\n context: BuildContext,\n name: string,\n namespace: string,\n parentTag: string,\n path: string,\n factory: () => Child,\n initial: boolean,\n kind?: string,\n parentScope?: RuntimeScope,\n): Owned {\n const scope = (parentScope ?? context.scope).child(name);\n const fragment = context.document.createDocumentFragment();\n const operationsStart = context.operations.length;\n const formsStart = context.forms.length;\n const previous = context.scope;\n context.scope = scope;\n const cleanups: Array<() => void> = [];\n try {\n withScope(scope, () => {\n scope.onCleanup(() => {\n for (const cleanup of [...cleanups].reverse()) cleanup();\n });\n const output = factory();\n if (kind)\n marker(context, fragment, kind, () =>\n render(output, fragment, context, namespace, parentTag, path),\n );\n else render(output, fragment, context, namespace, parentTag, path);\n });\n const operations = context.operations.splice(operationsStart);\n const forms = initial ? context.forms.slice(formsStart) : context.forms.splice(formsStart);\n const instance = { scope, fragment, operations, forms, cleanups };\n if (initial)\n for (const form of forms)\n if (!context.formOwners.has(form)) context.formOwners.set(form, instance);\n return instance;\n } catch (error) {\n context.operations.length = operationsStart;\n context.forms.length = formsStart;\n scope.dispose();\n throw error;\n } finally {\n context.scope = previous;\n }\n}\nfunction installOwned(\n instance: Owned,\n map: Map<Node, Node>,\n context: BuildContext,\n mode: \"hydrate\" | \"mount\",\n): void {\n if (mode === \"mount\" && instance.forms.length) {\n const bindings = prepareForms(instance.forms, map, \"mount\", context.container);\n reconcileForms(bindings, \"mount\");\n activateForms(bindings, instance.scope, instance.cleanups, context.options, context.container);\n }\n for (const operation of instance.operations) operation(map, instance.cleanups);\n}\nfunction selfMap(fragment: DocumentFragment): Map<Node, Node> {\n const map = new Map<Node, Node>();\n const visit = (node: Node): void => {\n map.set(node, node);\n for (const child of node.childNodes) visit(child);\n };\n for (const node of fragment.childNodes) visit(node);\n return map;\n}\nclass Failure extends Error {\n constructor(\n readonly code: string,\n readonly phase: \"setup\" | \"preflight\" | \"commit\" | \"activation\",\n readonly expected: string,\n readonly actual: string,\n readonly path: string,\n ) {\n super(`${code}: ${expected}; got ${actual}`);\n }\n}\nfunction fail(\n code: string,\n phase: Failure[\"phase\"],\n expected: string,\n actual: string,\n path: string,\n): never {\n throw new Failure(code, phase, expected, actual, path);\n}\nfunction append(parent: Node, node: Node): void {\n if (node.nodeType === Node.TEXT_NODE && parent.lastChild?.nodeType === Node.TEXT_NODE) {\n parent.lastChild.textContent = (parent.lastChild.textContent ?? \"\") + (node.textContent ?? \"\");\n } else parent.appendChild(node);\n}\nfunction marker(\n context: BuildContext,\n parent: Node,\n kind: string,\n content: () => void,\n): [Comment, Comment] {\n const id = context.next++;\n const open = context.document.createComment(`zr:1:${id}:${kind}`);\n parent.appendChild(open);\n content();\n const close = context.document.createComment(`/zr:1:${id}`);\n parent.appendChild(close);\n if (kind === \"h\") context.opaque.add(open);\n if (kind === \"t\") context.textSlots.add(open);\n return [open, close];\n}\nfunction range(start: Node, end: Node): Node[] {\n const nodes: Node[] = [];\n for (let node: Node | null = start; node; node = node.nextSibling) {\n nodes.push(node);\n if (node === end) return nodes;\n }\n throw new Error(\"ZR_REGION_RANGE\");\n}\nfunction removeRange(start: Node, end: Node): void {\n for (const node of range(start, end)) node.parentNode?.removeChild(node);\n}\nfunction moveRange(start: Node, end: Node, before: Node): void {\n if (end.nextSibling === before) return;\n const parent = before.parentNode!;\n const nodes = range(start, end);\n if (nodes.includes(before)) return;\n const focused = parent.ownerDocument?.activeElement;\n const focusedInside =\n focused &&\n nodes.some((node) => node === focused || (node instanceof Element && node.contains(focused)));\n const selection =\n focusedInside && focused instanceof HTMLInputElement\n ? [focused.selectionStart, focused.selectionEnd]\n : null;\n for (const node of nodes) parent.insertBefore(node, before);\n if (focusedInside && focused instanceof HTMLElement) {\n focused.focus();\n if (\n selection &&\n focused instanceof HTMLInputElement &&\n selection[0] != null &&\n selection[1] != null\n )\n focused.setSelectionRange(selection[0], selection[1]);\n }\n}\nfunction containsRange(start: Node, end: Node, target: Node): boolean {\n if (!start.parentNode || start.parentNode !== end.parentNode) return false;\n return range(start, end).some(\n (node) => node === target || (node instanceof Element && node.contains(target)),\n );\n}\nfunction scalar(value: unknown, path: string): string {\n if (value == null || typeof value === \"boolean\") return \"\";\n if (typeof value === \"string\" || (typeof value === \"number\" && Number.isFinite(value)))\n return String(value);\n fail(\"ZR_CHILD\", \"setup\", \"scalar\", typeof value, path);\n}\nfunction validateRawHtml(value: unknown, tag: string, path: string): asserts value is string {\n if (\n typeof value !== \"string\" ||\n rawHtmlReserved(value, tag) ||\n (tag === \"script\" && /<\\/script/i.test(value)) ||\n (tag === \"style\" && /<\\/style/i.test(value))\n )\n fail(\"ZR_RAW_HTML\", \"setup\", \"valid rawHtml\", typeof value, path);\n}\nfunction children(\n value: unknown,\n parent: Node,\n context: BuildContext,\n namespace: string,\n tag: string,\n path: string,\n): void {\n if (value == null || typeof value === \"boolean\") return;\n if (Array.isArray(value)) {\n value.forEach((entry, index) =>\n render(entry, parent, context, namespace, tag, `${path}[${index}]`),\n );\n } else render(value, parent, context, namespace, tag, path);\n}\nfunction validatePosition(tag: string, parent: string, context: BuildContext, path: string): void {\n if (sensitive.has(tag))\n fail(\"ZR_UNSUPPORTED_POSITION\", \"preflight\", \"hydratable element\", tag, path);\n if (tableChildren[parent] && !tableChildren[parent].has(tag))\n fail(\"ZR_UNSUPPORTED_POSITION\", \"preflight\", `valid ${parent} child`, tag, path);\n if (\n (parent === \"select\" && tag !== \"option\" && tag !== \"optgroup\") ||\n (parent === \"optgroup\" && tag !== \"option\")\n )\n fail(\"ZR_UNSUPPORTED_POSITION\", \"preflight\", `valid ${parent} child`, tag, path);\n}\nfunction element(\n desc: Description,\n parent: Node,\n context: BuildContext,\n namespace: string,\n parentTag: string,\n path: string,\n): void {\n const tag = desc.type as string;\n validatePosition(tag, parentTag, context, path);\n const ownNamespace = tag === \"svg\" || namespace === SVG ? SVG : HTML;\n const custom = /^[a-z][a-z0-9]*(?:-[a-z0-9]+)+$/.test(tag);\n if (ownNamespace === SVG ? !svgTags.has(tag) : !custom && !htmlTags.has(tag))\n fail(\"ZR_TAG\", \"setup\", \"supported element\", tag, path);\n const childNamespace = tag === \"foreignObject\" ? HTML : ownNamespace;\n const element = context.document.createElementNS(ownNamespace, tag);\n const props = desc.props;\n if (tag === \"iframe\") {\n if (Object.hasOwn(props, \"rawHtml\"))\n fail(\"ZR_RAW_HTML\", \"preflight\", \"iframe without rawHtml\", \"rawHtml\", path);\n if (!emptyIframeChildren(props.children))\n fail(\"ZR_UNSUPPORTED_POSITION\", \"preflight\", \"empty iframe children\", \"children\", path);\n }\n if (tag === \"select\" && read(props.multiple) === true)\n fail(\"ZR_MODEL_UNSUPPORTED\", \"preflight\", \"single select\", \"multiple\", path);\n if (voidTags.has(tag) && (\"children\" in props || \"rawHtml\" in props))\n fail(\"ZR_VOID_CHILDREN\", \"setup\", \"empty element\", tag, path);\n if (\"rawHtml\" in props && \"children\" in props)\n fail(\"ZR_RAW_HTML\", \"setup\", \"rawHtml without children\", tag, path);\n if (\n tag === \"textarea\" &&\n \"children\" in props &&\n (\"modelValue\" in props || \"defaultValue\" in props)\n )\n fail(\n \"ZR_MODEL_CONFLICT\",\n \"preflight\",\n \"textarea model/default without children\",\n \"children\",\n path,\n );\n context.forms.push({ element, props, path });\n for (const [name, original] of Object.entries(props)) {\n if (name === \"children\" || name === \"key\" || name === \"rawHtml\") continue;\n if (formProps.has(name)) {\n if (name === \"defaultValue\" && tag === \"input\") setAttribute(element, \"value\", original);\n if (name === \"defaultChecked\" && tag === \"input\") setAttribute(element, \"checked\", original);\n if (name === \"modelValue\" && tag === \"input\" && read(props.type) !== \"radio\")\n setAttribute(element, \"value\", read(original));\n if (name === \"modelChecked\" && tag === \"input\")\n setAttribute(element, \"checked\", read(original));\n continue;\n }\n if (isDialectProp(name, ownNamespace === SVG ? \"svg\" : \"html\", custom))\n fail(\n \"ZR_PROP_DIALECT\",\n \"setup\",\n dialectSuggestion(name, ownNamespace === SVG ? \"svg\" : \"html\", custom) ??\n \"HTML-spelled prop\",\n name,\n path,\n );\n if (name === \"ref\") {\n if (!original || typeof original !== \"object\" || !(\"current\" in original))\n fail(\"ZR_REF\", \"setup\", \"object ref\", typeof original, path);\n const ref = original as { current: Element | null };\n context.operations.push((map, cleanups) => {\n const node = map.get(element) as Element;\n ref.current = node;\n cleanups.push(() => {\n if (ref.current === node) ref.current = null;\n });\n });\n continue;\n }\n if (name.startsWith(\"on:\")) {\n const parsed = listener(name);\n if (!parsed || typeof original !== \"function\")\n fail(\"ZR_LISTENER\", \"setup\", \"native listener\", name, path);\n context.operations.push((map, cleanups) => {\n const node = map.get(element) as Element;\n const handler = (event: Event) => {\n try {\n const result: unknown = (original as (event: Event) => unknown)(event);\n if (result && typeof result === \"object\" && \"then\" in result)\n Promise.resolve(result).catch((error) =>\n report(\n context.options,\n diagnostic(\n context.options,\n \"ZR_EVENT_ERROR\",\n \"update\",\n `${rootPath(context.container)}${path}`,\n \"handler success\",\n String(error),\n ),\n ),\n );\n } catch (error) {\n report(\n context.options,\n diagnostic(\n context.options,\n \"ZR_EVENT_ERROR\",\n \"update\",\n `${rootPath(context.container)}${path}`,\n \"handler success\",\n String(error),\n ),\n );\n }\n };\n node.addEventListener(parsed.name, handler, parsed.capture);\n cleanups.push(() => node.removeEventListener(parsed.name, handler, parsed.capture));\n });\n continue;\n }\n if (name === \"value\" || name === \"checked\") {\n if (isReactive(original)) {\n const suggestion = reactiveModelSuggestion(\n tag,\n name,\n String(read(props.type) ?? \"text\"),\n custom,\n );\n fail(\"ZR_MODEL_UNSUPPORTED\", \"preflight\", suggestion ?? \"static value\", name, path);\n }\n }\n if (\n !/^[A-Za-z_:][A-Za-z0-9_:.-]*$/.test(name) ||\n (!custom &&\n !commonAttrs.has(name) &&\n !(ownNamespace === SVG ? svgAttrs.has(name) : htmlAttrs.has(name)) &&\n !/^data-[\\w.-]+$/.test(name) &&\n !/^aria-[\\w.-]+$/.test(name) &&\n !/^on[a-z]+$/.test(name))\n )\n fail(\"ZR_ATTRIBUTE\", \"setup\", \"supported attribute\", name, path);\n const initial = read(original);\n if (custom && initial != null && typeof initial !== \"string\")\n fail(\"ZR_ATTRIBUTE\", \"setup\", \"custom element string attribute\", name, path);\n if (/^on[a-z]/.test(name) && typeof initial === \"function\")\n fail(\"ZR_PROP_DIALECT\", \"setup\", \"on:event\", name, path);\n const initialError = attributeError(name, initial, custom);\n if (initialError) fail(\"ZR_ATTRIBUTE\", \"setup\", initialError, name, path);\n if (initial != null) {\n if (name === \"style\") styleText(initial);\n setAttribute(element, name, initial);\n }\n if (isReactive(original)) {\n const bindingScope = context.scope;\n context.operations.push((map, cleanups) => {\n const node = map.get(element) as Element;\n const subscription = bind(\n original,\n bindingScope,\n context.options,\n context.container,\n path,\n (value) => {\n const error = attributeError(name, value, custom);\n if (error) throw new TypeError(`ZR_ATTRIBUTE: ${name} ${error}`);\n setAttribute(node, name, value);\n },\n initial,\n );\n cleanups.push(() => subscription.dispose());\n });\n }\n }\n if (\"rawHtml\" in props) {\n const raw = props.rawHtml;\n if (ownNamespace === SVG || [\"textarea\", \"title\", \"select\", \"option\"].includes(tag))\n fail(\"ZR_RAW_HTML\", \"setup\", \"ordinary HTML container\", tag, path);\n if ((tag === \"script\" || tag === \"style\") && isReactive(raw))\n fail(\"ZR_RAW_HTML\", \"setup\", \"static rawHtml\", tag, path);\n const initial = read(raw);\n validateRawHtml(initial, tag, path);\n let region: [Comment, Comment] | undefined;\n if (tag === \"script\" || tag === \"style\") element.innerHTML = initial;\n else\n region = marker(context, element, \"h\", () => {\n element.insertAdjacentHTML(\"beforeend\", initial);\n });\n const bindingScope = context.scope;\n if (isReactive(raw) && region) {\n const [open, close] = region;\n context.operations.push((map, cleanups) => {\n const node = map.get(element) as Element;\n const start = map.get(open)!;\n const end = map.get(close)!;\n let previous = initial;\n const subscription = bind(\n raw as ReadonlySignal<string>,\n bindingScope,\n context.options,\n context.container,\n path,\n (value) => {\n validateRawHtml(value, tag, path);\n if (value === previous) return;\n const template = context.document.createElement(\"template\");\n template.innerHTML = value;\n if (start.parentNode !== node || end.parentNode !== node)\n throw new Error(\"ZR_REGION_RANGE\");\n for (const child of range(start, end).slice(1, -1)) node.removeChild(child);\n node.insertBefore(template.content, end);\n previous = value;\n },\n initial,\n );\n cleanups.push(() => subscription.dispose());\n });\n }\n } else if (tag === \"iframe\") {\n // The iframe document and fallback content are outside owned reconciliation.\n } else if (\n tag === \"textarea\" &&\n (props.modelValue !== undefined || props.defaultValue !== undefined)\n ) {\n const value = String(read(props.modelValue ?? props.defaultValue));\n element.textContent = value;\n } else if (restricted.has(tag)) {\n if (tag === \"title\" || tag === \"option\") {\n const value = props.children;\n if (isReactive(value) || isDescription(value))\n fail(\"ZR_UNSUPPORTED_POSITION\", \"preflight\", \"static text\", tag, path);\n append(element, context.document.createTextNode(scalar(value, path)));\n } else children(props.children, element, context, childNamespace, tag, `${path}/${tag}`);\n } else children(props.children, element, context, childNamespace, tag, `${path}/${tag}`);\n if (tag === \"select\" && (props.modelValue !== undefined || props.defaultValue !== undefined)) {\n const value = String(read(props.modelValue ?? props.defaultValue));\n const select = element as HTMLSelectElement;\n if (![...select.options].some((option) => option.value === value))\n fail(\"ZR_MODEL_VALUE\", \"preflight\", \"matching select option\", value, path);\n for (const option of select.options) option.selected = option.value === value;\n }\n if (tag === \"input\" && read(props.type) === \"radio\" && props.modelValue !== undefined)\n setAttribute(element, \"checked\", read(props.modelValue) === read(props.value));\n parent.appendChild(element);\n}\nfunction render(\n value: unknown,\n parent: Node,\n context: BuildContext,\n namespace: string,\n parentTag: string,\n path: string,\n): void {\n if (value == null || typeof value === \"boolean\") return;\n if (Array.isArray(value)) {\n marker(context, parent, \"f\", () =>\n children(value, parent, context, namespace, parentTag, path),\n );\n return;\n }\n if (isReactive(value)) {\n const initialValue = read(value) as string | number | boolean | null | undefined;\n const initial = scalar(initialValue, path);\n marker(context, parent, \"t\", () => {\n if (initial) parent.appendChild(context.document.createTextNode(initial));\n });\n const opener = parent.childNodes[parent.childNodes.length - (initial ? 3 : 2)]!;\n const bindingScope = context.scope;\n context.operations.push((map, cleanups) => {\n const start = map.get(opener)!;\n const end =\n start.nextSibling?.nodeType === Node.TEXT_NODE\n ? start.nextSibling.nextSibling\n : start.nextSibling;\n let textNode =\n start.nextSibling?.nodeType === Node.TEXT_NODE ? (start.nextSibling as Text) : null;\n if (!textNode) {\n textNode = context.document.createTextNode(\"\");\n start.parentNode!.insertBefore(textNode, end ?? null);\n }\n const slot = textNode;\n const subscription = bind(\n value as ReadonlySignal<string | number | boolean | null | undefined>,\n bindingScope,\n context.options,\n context.container,\n path,\n (next) => {\n const text = scalar(next, path);\n if (slot.data !== text) slot.data = text;\n },\n initialValue,\n );\n cleanups.push(() => subscription.dispose());\n });\n return;\n }\n if (typeof value === \"string\" || typeof value === \"number\") {\n append(parent, context.document.createTextNode(scalar(value, path)));\n return;\n }\n if (!isDescription(value)) fail(\"ZR_CHILD\", \"setup\", \"description\", typeof value, path);\n if (value.type === Fragment) {\n marker(context, parent, \"f\", () =>\n children(value.props.children, parent, context, namespace, parentTag, path),\n );\n return;\n }\n if (value.type === Show) {\n if (restricted.has(parentTag))\n fail(\"ZR_UNSUPPORTED_POSITION\", \"preflight\", \"flow region\", parentTag, path);\n const props = showProps(value);\n if (\n !isReactive(props.when) ||\n typeof props.children !== \"function\" ||\n (props.fallback !== undefined && typeof props.fallback !== \"function\")\n )\n fail(\"ZR_CHILD\", \"setup\", \"Show signal and factories\", \"invalid props\", path);\n const selected = read(props.when);\n if (typeof selected !== \"boolean\")\n fail(\"ZR_CHILD\", \"setup\", \"boolean Show.when\", typeof selected, path);\n let initial: Owned | null = null;\n const ends = marker(context, parent, `s:${selected ? 1 : 0}`, () => {\n const factory = selected ? props.children : props.fallback;\n if (factory) {\n initial = owned(context, \"Show\", namespace, parentTag, path, factory, true);\n parent.appendChild(initial.fragment);\n }\n });\n const owner = context.scope;\n context.operations.push((map, cleanups) => {\n const start = map.get(ends[0])!;\n const end = map.get(ends[1])!;\n let current: Owned | null = initial;\n let shown = selected;\n if (current) installOwned(current, map, context, \"hydrate\");\n const subscription = subscribe(\n () => {\n const next = props.when.value;\n if (next === shown) return;\n const factory = next ? props.children : props.fallback;\n let replacement: Owned | null = null;\n try {\n if (factory)\n replacement = owned(\n context,\n \"Show\",\n namespace,\n parentTag,\n path,\n factory,\n false,\n undefined,\n owner,\n );\n const replacementMap = replacement ? selfMap(replacement.fragment) : null;\n if (replacement && replacement.forms.length)\n prepareForms(replacement.forms, replacementMap!, \"mount\", context.container);\n if (current) {\n current.scope.dispose();\n let node = start.nextSibling;\n while (node && node !== end) {\n const following = node.nextSibling;\n node.parentNode?.removeChild(node);\n node = following;\n }\n }\n if (replacement) {\n end.parentNode!.insertBefore(replacement.fragment, end);\n installOwned(replacement, replacementMap!, context, \"mount\");\n replacement.scope.activate();\n }\n current = replacement;\n shown = next;\n } catch (error) {\n replacement?.scope.dispose();\n throw error;\n }\n },\n {\n active: () => owner.active,\n report: (code, actual) =>\n report(\n context.options,\n diagnostic(context.options, code, \"update\", path, \"Show update\", actual),\n ),\n },\n );\n subscription.run();\n cleanups.push(() => subscription.dispose());\n });\n return;\n }\n if (value.type === For) {\n if (restricted.has(parentTag))\n fail(\"ZR_UNSUPPORTED_POSITION\", \"preflight\", \"flow region\", parentTag, path);\n const props = forProps<unknown>(value);\n if (\n !isReactive(props.each) ||\n typeof props.by !== \"function\" ||\n typeof props.children !== \"function\"\n )\n fail(\"ZR_CHILD\", \"setup\", \"For signal, key and factory\", \"invalid props\", path);\n const items = read(props.each);\n if (!Array.isArray(items)) fail(\"ZR_CHILD\", \"setup\", \"array For.each\", typeof items, path);\n const keys = keyed(items, props.by, path);\n type Item = {\n key: Key;\n owned: Owned;\n start: Node;\n end: Node;\n item: ReturnType<typeof view<unknown>>;\n index: ReturnType<typeof view<number>>;\n };\n const entries: Item[] = [];\n const ends = marker(context, parent, \"l\", () => {\n items.forEach((item, index) => {\n const key = keys[index]!;\n const itemView = view(item);\n const indexView = view(index);\n const instance = owned(\n context,\n \"For\",\n namespace,\n parentTag,\n path,\n () => props.children(itemView.value, indexView.value),\n true,\n `i:${keyPayload(key)}`,\n );\n const nodes = [...instance.fragment.childNodes];\n entries.push({\n key,\n owned: instance,\n start: nodes[0]!,\n end: nodes[nodes.length - 1]!,\n item: itemView,\n index: indexView,\n });\n parent.appendChild(instance.fragment);\n });\n });\n const owner = context.scope;\n context.operations.push((map, cleanups) => {\n let current = entries.map((entry) => ({\n ...entry,\n start: map.get(entry.start)!,\n end: map.get(entry.end)!,\n }));\n for (const entry of current) installOwned(entry.owned, map, context, \"hydrate\");\n const end = map.get(ends[1])!;\n const subscription = subscribe(\n () => {\n const next = props.each.value;\n if (!Array.isArray(next)) throw new TypeError(`ZR_CHILD: For.each at ${path}`);\n let nextKeys: Key[];\n try {\n nextKeys = keyed(next, props.by, path);\n } catch (error) {\n const detail = String(error);\n const code = detail.includes(\"ZR_DUPLICATE_KEY\")\n ? \"ZR_DUPLICATE_KEY\"\n : detail.includes(\"ZR_KEY_TYPE\")\n ? \"ZR_KEY_TYPE\"\n : \"ZR_SUBSCRIBER_ERROR\";\n report(\n context.options,\n diagnostic(\n context.options,\n code,\n \"update\",\n path,\n \"unique string or finite number keys\",\n detail,\n ),\n );\n return;\n }\n const old = new Map(current.map((entry) => [entry.key, entry]));\n const created: Item[] = [];\n try {\n const ordered = nextKeys.map((key, index) => {\n const retained = old.get(key);\n if (retained) return retained;\n const itemView = view(next[index]);\n const indexView = view(index);\n const instance = owned(\n context,\n \"For\",\n namespace,\n parentTag,\n path,\n () => props.children(itemView.value, indexView.value),\n false,\n `i:${keyPayload(key)}`,\n owner,\n );\n const nodes = [...instance.fragment.childNodes];\n const entry = {\n key,\n owned: instance,\n start: nodes[0]!,\n end: nodes[nodes.length - 1]!,\n item: itemView,\n index: indexView,\n };\n created.push(entry);\n return entry;\n });\n for (const entry of created)\n if (entry.owned.forms.length)\n prepareForms(\n entry.owned.forms,\n selfMap(entry.owned.fragment),\n \"mount\",\n context.container,\n );\n for (const entry of current)\n if (!nextKeys.includes(entry.key)) {\n entry.owned.scope.dispose();\n removeRange(entry.start, entry.end);\n }\n const focused = end.ownerDocument?.activeElement;\n const anchored =\n focused && current.find((entry) => containsRange(entry.start, entry.end, focused));\n const anchorIndex = anchored ? ordered.indexOf(anchored) : -1;\n const place = (index: number, before: Node): Node => {\n const entry = ordered[index]!;\n if (created.includes(entry)) {\n const itemMap = selfMap(entry.owned.fragment);\n before.parentNode!.insertBefore(entry.owned.fragment, before);\n installOwned(entry.owned, itemMap, context, \"mount\");\n entry.owned.scope.activate();\n } else moveRange(entry.start, entry.end, before);\n return entry.start;\n };\n let before = end;\n for (let index = ordered.length - 1; index > anchorIndex; index--)\n before = place(index, before);\n if (anchorIndex >= 0) {\n before = anchored!.start;\n for (let index = anchorIndex - 1; index >= 0; index--) before = place(index, before);\n }\n batch(() =>\n ordered.forEach((entry, index) => {\n entry.item.write(next[index]);\n entry.index.write(index);\n }),\n );\n current = ordered;\n } catch (error) {\n for (const entry of created) entry.owned.scope.dispose();\n throw error;\n }\n },\n {\n active: () => owner.active,\n report: (code, actual) =>\n report(\n context.options,\n diagnostic(context.options, code, \"update\", path, \"For update\", actual),\n ),\n },\n );\n subscription.run();\n cleanups.push(() => subscription.dispose());\n });\n return;\n }\n if (typeof value.type === \"string\") {\n element(value, parent, context, namespace, parentTag, path);\n return;\n }\n if (typeof value.type !== \"function\")\n fail(\"ZR_CHILD\", \"setup\", \"component\", typeof value.type, path);\n if (restricted.has(parentTag))\n fail(\"ZR_UNSUPPORTED_POSITION\", \"preflight\", \"intrinsic child\", \"component\", path);\n const component = value.type;\n const childScope = context.scope.child(component.name || \"Anonymous\");\n const previous = context.scope;\n context.scope = childScope;\n try {\n marker(context, parent, \"c\", () => {\n const output = withScope(childScope, () => component(value.props));\n if (output && typeof output === \"object\" && \"then\" in output)\n fail(\"ZR_ASYNC_COMPONENT\", \"setup\", \"synchronous component\", \"promise\", path);\n render(output, parent, context, namespace, parentTag, path);\n });\n } finally {\n context.scope = previous;\n }\n}\nfunction normalize(text: string, pre: boolean): string {\n const line = text.replace(/\\r\\n?/g, \"\\n\");\n return pre ? line : line.replace(/[\\t\\n\\f\\r ]+/g, \" \").replace(/^ | $/g, \"\");\n}\nfunction compare(\n expected: Node,\n actual: Node,\n map: Map<Node, Node>,\n context: BuildContext,\n path: string,\n pre = false,\n): void {\n if (expected.nodeType !== actual.nodeType)\n fail(\"ZR_HYDRATION_MISMATCH\", \"preflight\", expected.nodeName, actual.nodeName, path);\n map.set(expected, actual);\n if (expected.nodeType === Node.TEXT_NODE) {\n if (normalize(expected.textContent ?? \"\", pre) !== normalize(actual.textContent ?? \"\", pre))\n fail(\"ZR_HYDRATION_MISMATCH\", \"preflight\", \"matching text\", \"different text\", path);\n return;\n }\n if (expected.nodeType === Node.COMMENT_NODE) {\n if (expected.textContent !== actual.textContent)\n fail(\n \"ZR_HYDRATION_MISMATCH\",\n \"preflight\",\n expected.textContent ?? \"\",\n actual.textContent ?? \"\",\n path,\n );\n return;\n }\n if (expected.nodeType === Node.ELEMENT_NODE) {\n const wanted = expected as Element;\n const found = actual as Element;\n if (wanted.localName !== found.localName || wanted.namespaceURI !== found.namespaceURI)\n fail(\n \"ZR_HYDRATION_MISMATCH\",\n \"preflight\",\n `${wanted.namespaceURI}:${wanted.localName}`,\n `${found.namespaceURI}:${found.localName}`,\n path,\n );\n const shape = [...(shapeAttrs[wanted.localName] ?? [])];\n if (wanted.localName === \"input\" && (wanted.getAttribute(\"type\") ?? \"text\") === \"radio\")\n shape.push(\"name\", \"value\");\n for (const name of shape) {\n const expectedValue =\n name === \"type\" && wanted.localName === \"input\"\n ? (wanted.getAttribute(name) ?? \"text\")\n : wanted.getAttribute(name);\n const actualValue =\n name === \"type\" && wanted.localName === \"input\"\n ? (found.getAttribute(name) ?? \"text\")\n : found.getAttribute(name);\n if (expectedValue !== actualValue)\n fail(\n \"ZR_HYDRATION_MISMATCH\",\n \"preflight\",\n `${name}=${expectedValue}`,\n `${name}=${actualValue}`,\n path,\n );\n }\n if (wanted.localName === \"script\" || wanted.localName === \"style\") return;\n compareChildren(wanted, found, map, context, path, pre || wanted.localName === \"pre\");\n }\n}\nfunction significant(nodes: Node[], pre: boolean): Node[] {\n return pre\n ? nodes\n : nodes.filter(\n (node) =>\n node.nodeType !== Node.TEXT_NODE || normalize(node.textContent ?? \"\", false) !== \"\",\n );\n}\nfunction matchingClose(nodes: Node[], start: number): number {\n const open = nodes[start]!.textContent ?? \"\";\n const id = /^zr:1:(\\d+):/.exec(open)?.[1];\n if (id === undefined) return -1;\n let depth = 0;\n for (let i = start + 1; i < nodes.length; i++) {\n const value = nodes[i]!.textContent;\n if (value?.startsWith(\"zr:1:\")) depth++;\n else if (value?.startsWith(\"/zr:1:\")) {\n if (depth) depth--;\n else return value === `/zr:1:${id}` ? i : -1;\n }\n }\n return -1;\n}\nfunction compareChildren(\n expected: Node,\n actual: Node,\n map: Map<Node, Node>,\n context: BuildContext,\n path: string,\n pre = false,\n): void {\n const wants = significant([...expected.childNodes], pre);\n const has = significant([...actual.childNodes], pre);\n let i = 0;\n let j = 0;\n while (i < wants.length && j < has.length) {\n const wanted = wants[i]!;\n const found = has[j]!;\n const childPath = `${path}/${wanted.nodeName.toLowerCase()}[${i}]`;\n if (context.opaque.has(wanted)) {\n compare(wanted, found, map, context, childPath, pre);\n const wantedEnd = matchingClose(wants, i);\n const foundEnd = matchingClose(has, j);\n if (wantedEnd < 0 || foundEnd < 0)\n fail(\n \"ZR_HYDRATION_MISMATCH\",\n \"preflight\",\n \"balanced rawHtml marker\",\n \"missing marker\",\n childPath,\n );\n map.set(wants[wantedEnd]!, has[foundEnd]!);\n i = wantedEnd + 1;\n j = foundEnd + 1;\n continue;\n }\n if (context.textSlots.has(wanted)) {\n compare(wanted, found, map, context, childPath, pre);\n const wantedEnd = matchingClose(wants, i);\n const foundEnd = matchingClose(has, j);\n if (wantedEnd !== i + 1 && wantedEnd !== i + 2)\n fail(\"ZR_HYDRATION_MISMATCH\", \"preflight\", \"single text slot\", \"invalid slot\", childPath);\n if (foundEnd !== j + 1 && foundEnd !== j + 2)\n fail(\"ZR_HYDRATION_MISMATCH\", \"preflight\", \"single text slot\", \"invalid slot\", childPath);\n if (wantedEnd === i + 2) {\n if (foundEnd !== j + 2)\n fail(\"ZR_HYDRATION_MISMATCH\", \"preflight\", \"text slot\", \"empty slot\", childPath);\n compare(wants[i + 1]!, has[j + 1]!, map, context, childPath, pre);\n } else if (foundEnd === j + 2 && normalize(has[j + 1]!.textContent ?? \"\", pre) !== \"\")\n fail(\"ZR_HYDRATION_MISMATCH\", \"preflight\", \"empty slot\", \"nonempty slot\", childPath);\n map.set(wants[wantedEnd]!, has[foundEnd]!);\n i = wantedEnd + 1;\n j = foundEnd + 1;\n continue;\n }\n compare(wanted, found, map, context, childPath, pre);\n i++;\n j++;\n }\n if (i !== wants.length || j !== has.length)\n fail(\n \"ZR_HYDRATION_MISMATCH\",\n \"preflight\",\n `${wants.length} children`,\n `${has.length} children`,\n path,\n );\n}\nfunction validate(container: Element, options: RootOptions, mode: \"hydrate\" | \"mount\"): void {\n const path = rootPath(container);\n if (storedRoot(container) && !storedRoot(container)!.disposed)\n fail(\"ZR_DUPLICATE_ROOT\", \"preflight\", \"unowned root\", \"live root\", path);\n if (options.signal?.aborted || !container.isConnected)\n fail(\"ZR_CANCELLED\", \"preflight\", \"connected root\", \"aborted or disconnected\", path);\n const component =\n container.getAttribute(mode === \"hydrate\" ? \"data-zfb-island\" : \"data-zfb-island-skip-ssr\") ??\n container.getAttribute(\"data-zfb-island\");\n const transport = container.getAttribute(\"data-zfb-transport\");\n const serverProtocol = container.getAttribute(\"data-zfb-protocol\");\n const build = container.getAttribute(\"data-zfb-build\");\n if (\n component !== options.identity.component ||\n transport !== \"json/1\" ||\n serverProtocol !== protocol ||\n build !== options.identity.build\n )\n fail(\n \"ZR_IDENTITY\",\n \"preflight\",\n `${options.identity.component}/${protocol}/${options.identity.build}/json/1`,\n `${component}/${serverProtocol}/${build}/${transport}`,\n path,\n );\n if (container.querySelector(\"[data-zfb-island], [data-zfb-island-skip-ssr]\"))\n fail(\"ZR_UNSUPPORTED_POSITION\", \"preflight\", \"no nested root\", \"nested root\", path);\n}\nfunction execute(\n node: Child,\n container: Element,\n options: RootOptions,\n mode: \"hydrate\" | \"mount\",\n): RootHandle | null {\n let scope: RuntimeScope | undefined;\n const cleanups: Array<() => void> = [];\n let committed = false;\n try {\n validate(container, options, mode);\n if (\n !isDescription(node) ||\n typeof node.type !== \"function\" ||\n ((node.type as typeof node.type & { displayName?: string }).displayName ?? node.type.name) !==\n options.identity.component\n )\n fail(\n \"ZR_IDENTITY\",\n \"preflight\",\n options.identity.component,\n \"different child component\",\n rootPath(container),\n );\n scope = createScope({\n component: options.identity.component,\n reporter: (value) => report(options, value),\n protocol,\n build: options.identity.build,\n path: rootPath(container),\n });\n const context: BuildContext = {\n document: container.ownerDocument,\n options,\n container,\n root: scope,\n scope,\n next: 0,\n operations: [],\n forms: [],\n formOwners: new Map(),\n opaque: new Set(),\n textSlots: new Set(),\n };\n const fragment = container.ownerDocument.createDocumentFragment();\n render(node, fragment, context, HTML, \"\", rootPath(container));\n const built = [...fragment.childNodes];\n const map = new Map<Node, Node>();\n if (mode === \"hydrate\") compareChildren(fragment, container, map, context, rootPath(container));\n else {\n for (const expected of built) {\n const visit = (item: Node): void => {\n map.set(item, item);\n for (const child of item.childNodes) visit(child);\n };\n visit(expected);\n }\n }\n const formBindings = prepareForms(context.forms, map, mode, container);\n if (options.signal?.aborted || !container.isConnected)\n fail(\n \"ZR_CANCELLED\",\n \"commit\",\n \"connected root\",\n \"aborted or disconnected\",\n rootPath(container),\n );\n reconcileForms(formBindings, mode);\n if (mode === \"mount\") container.replaceChildren(fragment);\n committed = true;\n for (const operation of context.operations) operation(map, cleanups);\n const formOwnerByNode = new Map<Node, Owned>();\n for (const [plan, owner] of context.formOwners)\n formOwnerByNode.set(map.get(plan.element)!, owner);\n const rootForms = formBindings.filter((binding) => !formOwnerByNode.has(binding.node));\n activateForms(rootForms, scope, cleanups, options, container);\n const ownedForms = new Map<Owned, typeof formBindings>();\n for (const binding of formBindings) {\n const owner = formOwnerByNode.get(binding.node);\n if (owner) ownedForms.set(owner, [...(ownedForms.get(owner) ?? []), binding]);\n }\n for (const [owner, bindings] of ownedForms)\n activateForms(bindings, owner.scope, owner.cleanups, options, container);\n const owned = mode === \"hydrate\" ? [...container.childNodes] : built;\n const handle = createRoot(container, options, scope, cleanups, owned);\n try {\n scope.activate();\n } catch (error) {\n handle.dispose();\n report(\n options,\n diagnostic(\n options,\n \"ZR_ACTIVATION_ERROR\",\n \"activation\",\n rootPath(container),\n \"activation\",\n String(error),\n ),\n );\n return null;\n }\n return handle;\n } catch (error) {\n for (const cleanup of [...cleanups].reverse())\n try {\n cleanup();\n } catch {\n /* preserve original error */\n }\n scope?.dispose();\n const failure =\n error instanceof Failure\n ? error\n : error instanceof FormError\n ? new Failure(error.code, \"preflight\", \"valid form model\", error.detail, error.path)\n : new Failure(\n error instanceof TypeError && /ZR_(DUPLICATE_KEY|KEY_TYPE):/.test(error.message)\n ? error.message.match(/ZR_(DUPLICATE_KEY|KEY_TYPE):/)![0].slice(0, -1)\n : \"ZR_HYDRATION_MISMATCH\",\n committed ? \"commit\" : \"setup\",\n \"successful root\",\n String(error),\n rootPath(container),\n );\n report(\n options,\n diagnostic(\n options,\n failure.code,\n failure.phase,\n failure.path,\n failure.expected,\n failure.actual,\n ),\n );\n return null;\n }\n}\nexport function hydrate(node: Child, container: Element, options: RootOptions): RootHandle | null {\n return execute(node, container, options, \"hydrate\");\n}\nexport function mount(node: Child, container: Element, options: RootOptions): RootHandle | null {\n return execute(node, container, options, \"mount\");\n}\n"]}
|
|
1
|
+
{"version":3,"file":"hydrate.js","sourceRoot":"","sources":["../../src/zudo-react/hydrate.ts"],"names":[],"mappings":"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","sourcesContent":["import { activateForms, prepareForms, reconcileForms, FormError, type FormPlan } from \"./forms.js\";\nimport { Fragment, isDescription, type Child, type Description } from \"./description.js\";\nimport { createScope, withScope, type RuntimeScope } from \"./scope.js\";\nimport { isReactive, read, styleText, setAttribute, bind, listener } from \"./dom-bindings.js\";\nimport {\n createRoot,\n diagnostic,\n report,\n rootPath,\n storedRoot,\n type RootHandle,\n type RootOptions,\n type RootOwned,\n} from \"./root.js\";\nimport type { ReadonlySignal } from \"./reactive-types.js\";\nimport { subscribe } from \"./reactive.js\";\nimport { batch } from \"./scheduler.js\";\nimport { rawHtmlReserved } from \"./raw-html.js\";\nimport { Show, For, showProps, forProps, keyed, keyPayload, view } from \"./structure.js\";\nimport type { Key } from \"./description.js\";\nimport {\n attributeError,\n commonAttrs,\n dialectSuggestion,\n emptyIframeChildren,\n formProps,\n htmlAttrs,\n htmlTags,\n isDialectProp,\n reactiveModelSuggestion,\n svgAttrs,\n svgTags,\n voidTags,\n} from \"./vocabulary.js\";\n\nconst HTML = \"http://www.w3.org/1999/xhtml\";\nconst SVG = \"http://www.w3.org/2000/svg\";\nconst sensitive = new Set(\"template noscript xmp noembed noframes plaintext\".split(\" \"));\nconst tableChildren: Record<string, Set<string>> = {\n table: new Set(\"caption colgroup thead tbody tfoot\".split(\" \")),\n thead: new Set([\"tr\"]),\n tbody: new Set([\"tr\"]),\n tfoot: new Set([\"tr\"]),\n tr: new Set([\"td\", \"th\"]),\n colgroup: new Set([\"col\"]),\n};\nconst restricted = new Set(\n \"title select optgroup option table thead tbody tfoot tr colgroup\".split(\" \"),\n);\nconst shapeAttrs: Record<string, string[]> = {\n input: [\"type\", \"form\"],\n select: [\"multiple\", \"form\"],\n option: [\"value\"],\n textarea: [\"form\"],\n};\nconst protocol = \"zudo-react/1\";\n\ntype Operation = (map: Map<Node, Node>, cleanups: Array<() => void>) => void;\ninterface BuildContext {\n readonly document: Document;\n readonly options: RootOptions;\n readonly container: Element;\n readonly root: RuntimeScope;\n scope: RuntimeScope;\n next: number;\n readonly operations: Operation[];\n readonly forms: FormPlan[];\n readonly formOwners: Map<FormPlan, Owned>;\n readonly opaque: Set<Node>;\n readonly textSlots: Set<Node>;\n readonly dynamicRanges: Array<readonly [Comment, Comment]>;\n collectRootRanges: boolean;\n}\ninterface Owned {\n scope: RuntimeScope;\n fragment: DocumentFragment;\n operations: Operation[];\n forms: FormPlan[];\n cleanups: Array<() => void>;\n}\nfunction owned(\n context: BuildContext,\n name: string,\n namespace: string,\n parentTag: string,\n path: string,\n factory: () => Child,\n initial: boolean,\n kind?: string,\n parentScope?: RuntimeScope,\n): Owned {\n const scope = (parentScope ?? context.scope).child(name);\n const fragment = context.document.createDocumentFragment();\n const operationsStart = context.operations.length;\n const formsStart = context.forms.length;\n const previous = context.scope;\n context.scope = scope;\n const cleanups: Array<() => void> = [];\n try {\n withScope(scope, () => {\n scope.onCleanup(() => {\n for (const cleanup of [...cleanups].reverse()) cleanup();\n });\n const output = factory();\n if (kind)\n marker(context, fragment, kind, () =>\n render(output, fragment, context, namespace, parentTag, path),\n );\n else render(output, fragment, context, namespace, parentTag, path);\n });\n const operations = context.operations.splice(operationsStart);\n const forms = initial ? context.forms.slice(formsStart) : context.forms.splice(formsStart);\n const instance = { scope, fragment, operations, forms, cleanups };\n if (initial)\n for (const form of forms)\n if (!context.formOwners.has(form)) context.formOwners.set(form, instance);\n return instance;\n } catch (error) {\n context.operations.length = operationsStart;\n context.forms.length = formsStart;\n scope.dispose();\n throw error;\n } finally {\n context.scope = previous;\n }\n}\nfunction installOwned(\n instance: Owned,\n map: Map<Node, Node>,\n context: BuildContext,\n mode: \"hydrate\" | \"mount\",\n): void {\n if (mode === \"mount\" && instance.forms.length) {\n const bindings = prepareForms(instance.forms, map, \"mount\", context.container);\n reconcileForms(bindings, \"mount\");\n activateForms(bindings, instance.scope, instance.cleanups, context.options, context.container);\n }\n for (const operation of instance.operations) operation(map, instance.cleanups);\n}\nfunction selfMap(fragment: DocumentFragment): Map<Node, Node> {\n const map = new Map<Node, Node>();\n const visit = (node: Node): void => {\n map.set(node, node);\n for (const child of node.childNodes) visit(child);\n };\n for (const node of fragment.childNodes) visit(node);\n return map;\n}\nclass Failure extends Error {\n constructor(\n readonly code: string,\n readonly phase: \"setup\" | \"preflight\" | \"commit\" | \"activation\",\n readonly expected: string,\n readonly actual: string,\n readonly path: string,\n ) {\n super(`${code}: ${expected}; got ${actual}`);\n }\n}\nfunction fail(\n code: string,\n phase: Failure[\"phase\"],\n expected: string,\n actual: string,\n path: string,\n): never {\n throw new Failure(code, phase, expected, actual, path);\n}\nfunction append(parent: Node, node: Node): void {\n if (node.nodeType === Node.TEXT_NODE && parent.lastChild?.nodeType === Node.TEXT_NODE) {\n parent.lastChild.textContent = (parent.lastChild.textContent ?? \"\") + (node.textContent ?? \"\");\n } else parent.appendChild(node);\n}\nfunction marker(\n context: BuildContext,\n parent: Node,\n kind: string,\n content: () => void,\n): [Comment, Comment] {\n const id = context.next++;\n const open = context.document.createComment(`zr:1:${id}:${kind}`);\n parent.appendChild(open);\n content();\n const close = context.document.createComment(`/zr:1:${id}`);\n parent.appendChild(close);\n if (kind === \"h\") context.opaque.add(open);\n if (kind === \"t\") context.textSlots.add(open);\n if (context.collectRootRanges && (kind === \"t\" || kind === \"l\" || kind.startsWith(\"s:\")))\n context.dynamicRanges.push([open, close]);\n return [open, close];\n}\nfunction rootOwned(container: Element, context: BuildContext, map: Map<Node, Node>): RootOwned[] {\n const starts = new Map<Node, Node>();\n for (const [open, close] of context.dynamicRanges) {\n const start = map.get(open);\n const end = map.get(close);\n if (start?.parentNode === container && end?.parentNode === container) starts.set(start, end);\n }\n const nodes: Node[] = [...container.childNodes];\n const owned: RootOwned[] = [];\n for (let index = 0; index < nodes.length; index++) {\n const start = nodes[index]!;\n const end = starts.get(start);\n if (end) {\n const endIndex = nodes.indexOf(end, index + 1);\n if (endIndex >= 0) {\n owned.push({ kind: \"range\", start, end });\n index = endIndex;\n continue;\n }\n }\n owned.push({ kind: \"node\", node: start });\n }\n return owned;\n}\nfunction range(start: Node, end: Node): Node[] {\n const nodes: Node[] = [];\n for (let node: Node | null = start; node; node = node.nextSibling) {\n nodes.push(node);\n if (node === end) return nodes;\n }\n throw new Error(\"ZR_REGION_RANGE\");\n}\nfunction removeRange(start: Node, end: Node): void {\n for (const node of range(start, end)) node.parentNode?.removeChild(node);\n}\nfunction moveRange(start: Node, end: Node, before: Node): void {\n if (end.nextSibling === before) return;\n const parent = before.parentNode!;\n const nodes = range(start, end);\n if (nodes.includes(before)) return;\n const focused = parent.ownerDocument?.activeElement;\n const focusedInside =\n focused &&\n nodes.some((node) => node === focused || (node instanceof Element && node.contains(focused)));\n const selection =\n focusedInside && focused instanceof HTMLInputElement\n ? [focused.selectionStart, focused.selectionEnd]\n : null;\n for (const node of nodes) parent.insertBefore(node, before);\n if (focusedInside && focused instanceof HTMLElement) {\n focused.focus();\n if (\n selection &&\n focused instanceof HTMLInputElement &&\n selection[0] != null &&\n selection[1] != null\n )\n focused.setSelectionRange(selection[0], selection[1]);\n }\n}\nfunction containsRange(start: Node, end: Node, target: Node): boolean {\n if (!start.parentNode || start.parentNode !== end.parentNode) return false;\n return range(start, end).some(\n (node) => node === target || (node instanceof Element && node.contains(target)),\n );\n}\nfunction scalar(value: unknown, path: string): string {\n if (value == null || typeof value === \"boolean\") return \"\";\n if (typeof value === \"string\" || (typeof value === \"number\" && Number.isFinite(value)))\n return String(value);\n fail(\"ZR_CHILD\", \"setup\", \"scalar\", typeof value, path);\n}\nfunction validateRawHtml(value: unknown, tag: string, path: string): asserts value is string {\n if (\n typeof value !== \"string\" ||\n rawHtmlReserved(value, tag) ||\n (tag === \"script\" && /<\\/script/i.test(value)) ||\n (tag === \"style\" && /<\\/style/i.test(value))\n )\n fail(\"ZR_RAW_HTML\", \"setup\", \"valid rawHtml\", typeof value, path);\n}\nfunction children(\n value: unknown,\n parent: Node,\n context: BuildContext,\n namespace: string,\n tag: string,\n path: string,\n): void {\n if (value == null || typeof value === \"boolean\") return;\n if (Array.isArray(value)) {\n value.forEach((entry, index) =>\n render(entry, parent, context, namespace, tag, `${path}[${index}]`),\n );\n } else render(value, parent, context, namespace, tag, path);\n}\nfunction validatePosition(tag: string, parent: string, context: BuildContext, path: string): void {\n if (sensitive.has(tag))\n fail(\"ZR_UNSUPPORTED_POSITION\", \"preflight\", \"hydratable element\", tag, path);\n if (tableChildren[parent] && !tableChildren[parent].has(tag))\n fail(\"ZR_UNSUPPORTED_POSITION\", \"preflight\", `valid ${parent} child`, tag, path);\n if (\n (parent === \"select\" && tag !== \"option\" && tag !== \"optgroup\") ||\n (parent === \"optgroup\" && tag !== \"option\")\n )\n fail(\"ZR_UNSUPPORTED_POSITION\", \"preflight\", `valid ${parent} child`, tag, path);\n}\nfunction element(\n desc: Description,\n parent: Node,\n context: BuildContext,\n namespace: string,\n parentTag: string,\n path: string,\n): void {\n const tag = desc.type as string;\n validatePosition(tag, parentTag, context, path);\n const ownNamespace = tag === \"svg\" || namespace === SVG ? SVG : HTML;\n const custom = /^[a-z][a-z0-9]*(?:-[a-z0-9]+)+$/.test(tag);\n if (ownNamespace === SVG ? !svgTags.has(tag) : !custom && !htmlTags.has(tag))\n fail(\"ZR_TAG\", \"setup\", \"supported element\", tag, path);\n const childNamespace = tag === \"foreignObject\" ? HTML : ownNamespace;\n const element = context.document.createElementNS(ownNamespace, tag);\n const props = desc.props;\n if (tag === \"iframe\") {\n if (Object.hasOwn(props, \"rawHtml\"))\n fail(\"ZR_RAW_HTML\", \"preflight\", \"iframe without rawHtml\", \"rawHtml\", path);\n if (!emptyIframeChildren(props.children))\n fail(\"ZR_UNSUPPORTED_POSITION\", \"preflight\", \"empty iframe children\", \"children\", path);\n }\n if (tag === \"select\" && read(props.multiple) === true)\n fail(\"ZR_MODEL_UNSUPPORTED\", \"preflight\", \"single select\", \"multiple\", path);\n if (voidTags.has(tag) && (\"children\" in props || \"rawHtml\" in props))\n fail(\"ZR_VOID_CHILDREN\", \"setup\", \"empty element\", tag, path);\n if (\"rawHtml\" in props && \"children\" in props)\n fail(\"ZR_RAW_HTML\", \"setup\", \"rawHtml without children\", tag, path);\n if (\n tag === \"textarea\" &&\n \"children\" in props &&\n (\"modelValue\" in props || \"defaultValue\" in props)\n )\n fail(\n \"ZR_MODEL_CONFLICT\",\n \"preflight\",\n \"textarea model/default without children\",\n \"children\",\n path,\n );\n context.forms.push({ element, props, path });\n for (const [name, original] of Object.entries(props)) {\n if (name === \"children\" || name === \"key\" || name === \"rawHtml\") continue;\n if (formProps.has(name)) {\n if (name === \"defaultValue\" && tag === \"input\") setAttribute(element, \"value\", original);\n if (name === \"defaultChecked\" && tag === \"input\") setAttribute(element, \"checked\", original);\n if (name === \"modelValue\" && tag === \"input\" && read(props.type) !== \"radio\")\n setAttribute(element, \"value\", read(original));\n if (name === \"modelChecked\" && tag === \"input\")\n setAttribute(element, \"checked\", read(original));\n continue;\n }\n if (isDialectProp(name, ownNamespace === SVG ? \"svg\" : \"html\", custom))\n fail(\n \"ZR_PROP_DIALECT\",\n \"setup\",\n dialectSuggestion(name, ownNamespace === SVG ? \"svg\" : \"html\", custom) ??\n \"HTML-spelled prop\",\n name,\n path,\n );\n if (name === \"ref\") {\n if (!original || typeof original !== \"object\" || !(\"current\" in original))\n fail(\"ZR_REF\", \"setup\", \"object ref\", typeof original, path);\n const ref = original as { current: Element | null };\n context.operations.push((map, cleanups) => {\n const node = map.get(element) as Element;\n ref.current = node;\n cleanups.push(() => {\n if (ref.current === node) ref.current = null;\n });\n });\n continue;\n }\n if (name.startsWith(\"on:\")) {\n const parsed = listener(name);\n if (!parsed || typeof original !== \"function\")\n fail(\"ZR_LISTENER\", \"setup\", \"native listener\", name, path);\n context.operations.push((map, cleanups) => {\n const node = map.get(element) as Element;\n const handler = (event: Event) => {\n try {\n const result: unknown = (original as (event: Event) => unknown)(event);\n if (result && typeof result === \"object\" && \"then\" in result)\n Promise.resolve(result).catch((error) =>\n report(\n context.options,\n diagnostic(\n context.options,\n \"ZR_EVENT_ERROR\",\n \"update\",\n `${rootPath(context.container)}${path}`,\n \"handler success\",\n String(error),\n ),\n ),\n );\n } catch (error) {\n report(\n context.options,\n diagnostic(\n context.options,\n \"ZR_EVENT_ERROR\",\n \"update\",\n `${rootPath(context.container)}${path}`,\n \"handler success\",\n String(error),\n ),\n );\n }\n };\n node.addEventListener(parsed.name, handler, parsed.capture);\n cleanups.push(() => node.removeEventListener(parsed.name, handler, parsed.capture));\n });\n continue;\n }\n if (name === \"value\" || name === \"checked\") {\n if (isReactive(original)) {\n const suggestion = reactiveModelSuggestion(\n tag,\n name,\n String(read(props.type) ?? \"text\"),\n custom,\n );\n fail(\"ZR_MODEL_UNSUPPORTED\", \"preflight\", suggestion ?? \"static value\", name, path);\n }\n }\n if (\n !/^[A-Za-z_:][A-Za-z0-9_:.-]*$/.test(name) ||\n (!custom &&\n !commonAttrs.has(name) &&\n !(ownNamespace === SVG ? svgAttrs.has(name) : htmlAttrs.has(name)) &&\n !/^data-[\\w.-]+$/.test(name) &&\n !/^aria-[\\w.-]+$/.test(name) &&\n !/^on[a-z]+$/.test(name))\n )\n fail(\"ZR_ATTRIBUTE\", \"setup\", \"supported attribute\", name, path);\n const initial = read(original);\n if (custom && initial != null && typeof initial !== \"string\")\n fail(\"ZR_ATTRIBUTE\", \"setup\", \"custom element string attribute\", name, path);\n if (/^on[a-z]/.test(name) && typeof initial === \"function\")\n fail(\"ZR_PROP_DIALECT\", \"setup\", \"on:event\", name, path);\n const initialError = attributeError(name, initial, custom);\n if (initialError) fail(\"ZR_ATTRIBUTE\", \"setup\", initialError, name, path);\n if (initial != null) {\n if (name === \"style\") styleText(initial);\n setAttribute(element, name, initial);\n }\n if (isReactive(original)) {\n const bindingScope = context.scope;\n context.operations.push((map, cleanups) => {\n const node = map.get(element) as Element;\n const subscription = bind(\n original,\n bindingScope,\n context.options,\n context.container,\n path,\n (value) => {\n const error = attributeError(name, value, custom);\n if (error) throw new TypeError(`ZR_ATTRIBUTE: ${name} ${error}`);\n setAttribute(node, name, value);\n },\n initial,\n );\n cleanups.push(() => subscription.dispose());\n });\n }\n }\n if (\"rawHtml\" in props) {\n const raw = props.rawHtml;\n if (ownNamespace === SVG || [\"textarea\", \"title\", \"select\", \"option\"].includes(tag))\n fail(\"ZR_RAW_HTML\", \"setup\", \"ordinary HTML container\", tag, path);\n if ((tag === \"script\" || tag === \"style\") && isReactive(raw))\n fail(\"ZR_RAW_HTML\", \"setup\", \"static rawHtml\", tag, path);\n const initial = read(raw);\n validateRawHtml(initial, tag, path);\n let region: [Comment, Comment] | undefined;\n if (tag === \"script\" || tag === \"style\") element.innerHTML = initial;\n else\n region = marker(context, element, \"h\", () => {\n element.insertAdjacentHTML(\"beforeend\", initial);\n });\n const bindingScope = context.scope;\n if (isReactive(raw) && region) {\n const [open, close] = region;\n context.operations.push((map, cleanups) => {\n const node = map.get(element) as Element;\n const start = map.get(open)!;\n const end = map.get(close)!;\n let previous = initial;\n const subscription = bind(\n raw as ReadonlySignal<string>,\n bindingScope,\n context.options,\n context.container,\n path,\n (value) => {\n validateRawHtml(value, tag, path);\n if (value === previous) return;\n const template = context.document.createElement(\"template\");\n template.innerHTML = value;\n if (start.parentNode !== node || end.parentNode !== node)\n throw new Error(\"ZR_REGION_RANGE\");\n for (const child of range(start, end).slice(1, -1)) node.removeChild(child);\n node.insertBefore(template.content, end);\n previous = value;\n },\n initial,\n );\n cleanups.push(() => subscription.dispose());\n });\n }\n } else if (tag === \"iframe\") {\n // The iframe document and fallback content are outside owned reconciliation.\n } else if (\n tag === \"textarea\" &&\n (props.modelValue !== undefined || props.defaultValue !== undefined)\n ) {\n const value = String(read(props.modelValue ?? props.defaultValue));\n element.textContent = value;\n } else if (restricted.has(tag)) {\n if (tag === \"title\" || tag === \"option\") {\n const value = props.children;\n if (isReactive(value) || isDescription(value))\n fail(\"ZR_UNSUPPORTED_POSITION\", \"preflight\", \"static text\", tag, path);\n append(element, context.document.createTextNode(scalar(value, path)));\n } else children(props.children, element, context, childNamespace, tag, `${path}/${tag}`);\n } else children(props.children, element, context, childNamespace, tag, `${path}/${tag}`);\n if (tag === \"select\" && (props.modelValue !== undefined || props.defaultValue !== undefined)) {\n const value = String(read(props.modelValue ?? props.defaultValue));\n const select = element as HTMLSelectElement;\n if (![...select.options].some((option) => option.value === value))\n fail(\"ZR_MODEL_VALUE\", \"preflight\", \"matching select option\", value, path);\n for (const option of select.options) option.selected = option.value === value;\n }\n if (tag === \"input\" && read(props.type) === \"radio\" && props.modelValue !== undefined)\n setAttribute(element, \"checked\", read(props.modelValue) === read(props.value));\n parent.appendChild(element);\n}\nfunction render(\n value: unknown,\n parent: Node,\n context: BuildContext,\n namespace: string,\n parentTag: string,\n path: string,\n): void {\n if (value == null || typeof value === \"boolean\") return;\n if (Array.isArray(value)) {\n marker(context, parent, \"f\", () =>\n children(value, parent, context, namespace, parentTag, path),\n );\n return;\n }\n if (isReactive(value)) {\n const initialValue = read(value) as string | number | boolean | null | undefined;\n const initial = scalar(initialValue, path);\n marker(context, parent, \"t\", () => {\n if (initial) parent.appendChild(context.document.createTextNode(initial));\n });\n const opener = parent.childNodes[parent.childNodes.length - (initial ? 3 : 2)]!;\n const bindingScope = context.scope;\n context.operations.push((map, cleanups) => {\n const start = map.get(opener)!;\n const end =\n start.nextSibling?.nodeType === Node.TEXT_NODE\n ? start.nextSibling.nextSibling\n : start.nextSibling;\n let textNode =\n start.nextSibling?.nodeType === Node.TEXT_NODE ? (start.nextSibling as Text) : null;\n if (!textNode) {\n textNode = context.document.createTextNode(\"\");\n start.parentNode!.insertBefore(textNode, end ?? null);\n }\n const slot = textNode;\n const subscription = bind(\n value as ReadonlySignal<string | number | boolean | null | undefined>,\n bindingScope,\n context.options,\n context.container,\n path,\n (next) => {\n const text = scalar(next, path);\n if (slot.data !== text) slot.data = text;\n },\n initialValue,\n );\n cleanups.push(() => subscription.dispose());\n });\n return;\n }\n if (typeof value === \"string\" || typeof value === \"number\") {\n append(parent, context.document.createTextNode(scalar(value, path)));\n return;\n }\n if (!isDescription(value)) fail(\"ZR_CHILD\", \"setup\", \"description\", typeof value, path);\n if (value.type === Fragment) {\n marker(context, parent, \"f\", () =>\n children(value.props.children, parent, context, namespace, parentTag, path),\n );\n return;\n }\n if (value.type === Show) {\n if (restricted.has(parentTag))\n fail(\"ZR_UNSUPPORTED_POSITION\", \"preflight\", \"flow region\", parentTag, path);\n const props = showProps(value);\n if (\n !isReactive(props.when) ||\n typeof props.children !== \"function\" ||\n (props.fallback !== undefined && typeof props.fallback !== \"function\")\n )\n fail(\"ZR_CHILD\", \"setup\", \"Show signal and factories\", \"invalid props\", path);\n const selected = read(props.when);\n if (typeof selected !== \"boolean\")\n fail(\"ZR_CHILD\", \"setup\", \"boolean Show.when\", typeof selected, path);\n let initial: Owned | null = null;\n const ends = marker(context, parent, `s:${selected ? 1 : 0}`, () => {\n const factory = selected ? props.children : props.fallback;\n if (factory) {\n initial = owned(context, \"Show\", namespace, parentTag, path, factory, true);\n parent.appendChild(initial.fragment);\n }\n });\n const owner = context.scope;\n context.operations.push((map, cleanups) => {\n const start = map.get(ends[0])!;\n const end = map.get(ends[1])!;\n let current: Owned | null = initial;\n let shown = selected;\n if (current) installOwned(current, map, context, \"hydrate\");\n const subscription = subscribe(\n () => {\n const next = props.when.value;\n if (next === shown) return;\n const factory = next ? props.children : props.fallback;\n let replacement: Owned | null = null;\n try {\n if (factory)\n replacement = owned(\n context,\n \"Show\",\n namespace,\n parentTag,\n path,\n factory,\n false,\n undefined,\n owner,\n );\n const replacementMap = replacement ? selfMap(replacement.fragment) : null;\n if (replacement && replacement.forms.length)\n prepareForms(replacement.forms, replacementMap!, \"mount\", context.container);\n if (current) {\n current.scope.dispose();\n let node = start.nextSibling;\n while (node && node !== end) {\n const following = node.nextSibling;\n node.parentNode?.removeChild(node);\n node = following;\n }\n }\n if (replacement) {\n end.parentNode!.insertBefore(replacement.fragment, end);\n installOwned(replacement, replacementMap!, context, \"mount\");\n replacement.scope.activate();\n }\n current = replacement;\n shown = next;\n } catch (error) {\n replacement?.scope.dispose();\n throw error;\n }\n },\n {\n active: () => owner.active,\n report: (code, actual) =>\n report(\n context.options,\n diagnostic(context.options, code, \"update\", path, \"Show update\", actual),\n ),\n },\n );\n subscription.run();\n cleanups.push(() => subscription.dispose());\n });\n return;\n }\n if (value.type === For) {\n if (restricted.has(parentTag))\n fail(\"ZR_UNSUPPORTED_POSITION\", \"preflight\", \"flow region\", parentTag, path);\n const props = forProps<unknown>(value);\n if (\n !isReactive(props.each) ||\n typeof props.by !== \"function\" ||\n typeof props.children !== \"function\"\n )\n fail(\"ZR_CHILD\", \"setup\", \"For signal, key and factory\", \"invalid props\", path);\n const items = read(props.each);\n if (!Array.isArray(items)) fail(\"ZR_CHILD\", \"setup\", \"array For.each\", typeof items, path);\n const keys = keyed(items, props.by, path);\n type Item = {\n key: Key;\n owned: Owned;\n start: Node;\n end: Node;\n item: ReturnType<typeof view<unknown>>;\n index: ReturnType<typeof view<number>>;\n };\n const entries: Item[] = [];\n const ends = marker(context, parent, \"l\", () => {\n items.forEach((item, index) => {\n const key = keys[index]!;\n const itemView = view(item);\n const indexView = view(index);\n const instance = owned(\n context,\n \"For\",\n namespace,\n parentTag,\n path,\n () => props.children(itemView.value, indexView.value),\n true,\n `i:${keyPayload(key)}`,\n );\n const nodes = [...instance.fragment.childNodes];\n entries.push({\n key,\n owned: instance,\n start: nodes[0]!,\n end: nodes[nodes.length - 1]!,\n item: itemView,\n index: indexView,\n });\n parent.appendChild(instance.fragment);\n });\n });\n const owner = context.scope;\n context.operations.push((map, cleanups) => {\n let current = entries.map((entry) => ({\n ...entry,\n start: map.get(entry.start)!,\n end: map.get(entry.end)!,\n }));\n for (const entry of current) installOwned(entry.owned, map, context, \"hydrate\");\n const end = map.get(ends[1])!;\n const subscription = subscribe(\n () => {\n const next = props.each.value;\n if (!Array.isArray(next)) throw new TypeError(`ZR_CHILD: For.each at ${path}`);\n let nextKeys: Key[];\n try {\n nextKeys = keyed(next, props.by, path);\n } catch (error) {\n const detail = String(error);\n const code = detail.includes(\"ZR_DUPLICATE_KEY\")\n ? \"ZR_DUPLICATE_KEY\"\n : detail.includes(\"ZR_KEY_TYPE\")\n ? \"ZR_KEY_TYPE\"\n : \"ZR_SUBSCRIBER_ERROR\";\n report(\n context.options,\n diagnostic(\n context.options,\n code,\n \"update\",\n path,\n \"unique string or finite number keys\",\n detail,\n ),\n );\n return;\n }\n const old = new Map(current.map((entry) => [entry.key, entry]));\n const created: Item[] = [];\n try {\n const ordered = nextKeys.map((key, index) => {\n const retained = old.get(key);\n if (retained) return retained;\n const itemView = view(next[index]);\n const indexView = view(index);\n const instance = owned(\n context,\n \"For\",\n namespace,\n parentTag,\n path,\n () => props.children(itemView.value, indexView.value),\n false,\n `i:${keyPayload(key)}`,\n owner,\n );\n const nodes = [...instance.fragment.childNodes];\n const entry = {\n key,\n owned: instance,\n start: nodes[0]!,\n end: nodes[nodes.length - 1]!,\n item: itemView,\n index: indexView,\n };\n created.push(entry);\n return entry;\n });\n for (const entry of created)\n if (entry.owned.forms.length)\n prepareForms(\n entry.owned.forms,\n selfMap(entry.owned.fragment),\n \"mount\",\n context.container,\n );\n for (const entry of current)\n if (!nextKeys.includes(entry.key)) {\n entry.owned.scope.dispose();\n removeRange(entry.start, entry.end);\n }\n const focused = end.ownerDocument?.activeElement;\n const anchored =\n focused && current.find((entry) => containsRange(entry.start, entry.end, focused));\n const anchorIndex = anchored ? ordered.indexOf(anchored) : -1;\n const place = (index: number, before: Node): Node => {\n const entry = ordered[index]!;\n if (created.includes(entry)) {\n const itemMap = selfMap(entry.owned.fragment);\n before.parentNode!.insertBefore(entry.owned.fragment, before);\n installOwned(entry.owned, itemMap, context, \"mount\");\n entry.owned.scope.activate();\n } else moveRange(entry.start, entry.end, before);\n return entry.start;\n };\n let before = end;\n for (let index = ordered.length - 1; index > anchorIndex; index--)\n before = place(index, before);\n if (anchorIndex >= 0) {\n before = anchored!.start;\n for (let index = anchorIndex - 1; index >= 0; index--) before = place(index, before);\n }\n batch(() =>\n ordered.forEach((entry, index) => {\n entry.item.write(next[index]);\n entry.index.write(index);\n }),\n );\n current = ordered;\n } catch (error) {\n for (const entry of created) entry.owned.scope.dispose();\n throw error;\n }\n },\n {\n active: () => owner.active,\n report: (code, actual) =>\n report(\n context.options,\n diagnostic(context.options, code, \"update\", path, \"For update\", actual),\n ),\n },\n );\n subscription.run();\n cleanups.push(() => subscription.dispose());\n });\n return;\n }\n if (typeof value.type === \"string\") {\n element(value, parent, context, namespace, parentTag, path);\n return;\n }\n if (typeof value.type !== \"function\")\n fail(\"ZR_CHILD\", \"setup\", \"component\", typeof value.type, path);\n if (restricted.has(parentTag))\n fail(\"ZR_UNSUPPORTED_POSITION\", \"preflight\", \"intrinsic child\", \"component\", path);\n const component = value.type;\n const childScope = context.scope.child(component.name || \"Anonymous\");\n const previous = context.scope;\n context.scope = childScope;\n try {\n marker(context, parent, \"c\", () => {\n const output = withScope(childScope, () => component(value.props));\n if (output && typeof output === \"object\" && \"then\" in output)\n fail(\"ZR_ASYNC_COMPONENT\", \"setup\", \"synchronous component\", \"promise\", path);\n render(output, parent, context, namespace, parentTag, path);\n });\n } finally {\n context.scope = previous;\n }\n}\nfunction normalize(text: string, pre: boolean): string {\n const line = text.replace(/\\r\\n?/g, \"\\n\");\n return pre ? line : line.replace(/[\\t\\n\\f\\r ]+/g, \" \").replace(/^ | $/g, \"\");\n}\nfunction compare(\n expected: Node,\n actual: Node,\n map: Map<Node, Node>,\n context: BuildContext,\n path: string,\n pre = false,\n): void {\n if (expected.nodeType !== actual.nodeType)\n fail(\"ZR_HYDRATION_MISMATCH\", \"preflight\", expected.nodeName, actual.nodeName, path);\n map.set(expected, actual);\n if (expected.nodeType === Node.TEXT_NODE) {\n if (normalize(expected.textContent ?? \"\", pre) !== normalize(actual.textContent ?? \"\", pre))\n fail(\"ZR_HYDRATION_MISMATCH\", \"preflight\", \"matching text\", \"different text\", path);\n return;\n }\n if (expected.nodeType === Node.COMMENT_NODE) {\n if (expected.textContent !== actual.textContent)\n fail(\n \"ZR_HYDRATION_MISMATCH\",\n \"preflight\",\n expected.textContent ?? \"\",\n actual.textContent ?? \"\",\n path,\n );\n return;\n }\n if (expected.nodeType === Node.ELEMENT_NODE) {\n const wanted = expected as Element;\n const found = actual as Element;\n if (wanted.localName !== found.localName || wanted.namespaceURI !== found.namespaceURI)\n fail(\n \"ZR_HYDRATION_MISMATCH\",\n \"preflight\",\n `${wanted.namespaceURI}:${wanted.localName}`,\n `${found.namespaceURI}:${found.localName}`,\n path,\n );\n const shape = [...(shapeAttrs[wanted.localName] ?? [])];\n if (wanted.localName === \"input\" && (wanted.getAttribute(\"type\") ?? \"text\") === \"radio\")\n shape.push(\"name\", \"value\");\n for (const name of shape) {\n const expectedValue =\n name === \"type\" && wanted.localName === \"input\"\n ? (wanted.getAttribute(name) ?? \"text\")\n : wanted.getAttribute(name);\n const actualValue =\n name === \"type\" && wanted.localName === \"input\"\n ? (found.getAttribute(name) ?? \"text\")\n : found.getAttribute(name);\n if (expectedValue !== actualValue)\n fail(\n \"ZR_HYDRATION_MISMATCH\",\n \"preflight\",\n `${name}=${expectedValue}`,\n `${name}=${actualValue}`,\n path,\n );\n }\n if (wanted.localName === \"script\" || wanted.localName === \"style\") return;\n compareChildren(wanted, found, map, context, path, pre || wanted.localName === \"pre\");\n }\n}\nfunction significant(nodes: Node[], pre: boolean): Node[] {\n return pre\n ? nodes\n : nodes.filter(\n (node) =>\n node.nodeType !== Node.TEXT_NODE || normalize(node.textContent ?? \"\", false) !== \"\",\n );\n}\nfunction matchingClose(nodes: Node[], start: number): number {\n const open = nodes[start]!.textContent ?? \"\";\n const id = /^zr:1:(\\d+):/.exec(open)?.[1];\n if (id === undefined) return -1;\n let depth = 0;\n for (let i = start + 1; i < nodes.length; i++) {\n const value = nodes[i]!.textContent;\n if (value?.startsWith(\"zr:1:\")) depth++;\n else if (value?.startsWith(\"/zr:1:\")) {\n if (depth) depth--;\n else return value === `/zr:1:${id}` ? i : -1;\n }\n }\n return -1;\n}\nfunction compareChildren(\n expected: Node,\n actual: Node,\n map: Map<Node, Node>,\n context: BuildContext,\n path: string,\n pre = false,\n): void {\n const wants = significant([...expected.childNodes], pre);\n const has = significant([...actual.childNodes], pre);\n let i = 0;\n let j = 0;\n while (i < wants.length && j < has.length) {\n const wanted = wants[i]!;\n const found = has[j]!;\n const childPath = `${path}/${wanted.nodeName.toLowerCase()}[${i}]`;\n if (context.opaque.has(wanted)) {\n compare(wanted, found, map, context, childPath, pre);\n const wantedEnd = matchingClose(wants, i);\n const foundEnd = matchingClose(has, j);\n if (wantedEnd < 0 || foundEnd < 0)\n fail(\n \"ZR_HYDRATION_MISMATCH\",\n \"preflight\",\n \"balanced rawHtml marker\",\n \"missing marker\",\n childPath,\n );\n map.set(wants[wantedEnd]!, has[foundEnd]!);\n i = wantedEnd + 1;\n j = foundEnd + 1;\n continue;\n }\n if (context.textSlots.has(wanted)) {\n compare(wanted, found, map, context, childPath, pre);\n const wantedEnd = matchingClose(wants, i);\n const foundEnd = matchingClose(has, j);\n if (wantedEnd !== i + 1 && wantedEnd !== i + 2)\n fail(\"ZR_HYDRATION_MISMATCH\", \"preflight\", \"single text slot\", \"invalid slot\", childPath);\n if (foundEnd !== j + 1 && foundEnd !== j + 2)\n fail(\"ZR_HYDRATION_MISMATCH\", \"preflight\", \"single text slot\", \"invalid slot\", childPath);\n if (wantedEnd === i + 2) {\n if (foundEnd !== j + 2)\n fail(\"ZR_HYDRATION_MISMATCH\", \"preflight\", \"text slot\", \"empty slot\", childPath);\n compare(wants[i + 1]!, has[j + 1]!, map, context, childPath, pre);\n } else if (foundEnd === j + 2 && normalize(has[j + 1]!.textContent ?? \"\", pre) !== \"\")\n fail(\"ZR_HYDRATION_MISMATCH\", \"preflight\", \"empty slot\", \"nonempty slot\", childPath);\n map.set(wants[wantedEnd]!, has[foundEnd]!);\n i = wantedEnd + 1;\n j = foundEnd + 1;\n continue;\n }\n compare(wanted, found, map, context, childPath, pre);\n i++;\n j++;\n }\n if (i !== wants.length || j !== has.length)\n fail(\n \"ZR_HYDRATION_MISMATCH\",\n \"preflight\",\n `${wants.length} children`,\n `${has.length} children`,\n path,\n );\n}\nfunction validate(container: Element, options: RootOptions, mode: \"hydrate\" | \"mount\"): void {\n const path = rootPath(container);\n if (storedRoot(container) && !storedRoot(container)!.disposed)\n fail(\"ZR_DUPLICATE_ROOT\", \"preflight\", \"unowned root\", \"live root\", path);\n if (options.signal?.aborted || !container.isConnected)\n fail(\"ZR_CANCELLED\", \"preflight\", \"connected root\", \"aborted or disconnected\", path);\n const component =\n container.getAttribute(mode === \"hydrate\" ? \"data-zfb-island\" : \"data-zfb-island-skip-ssr\") ??\n container.getAttribute(\"data-zfb-island\");\n const transport = container.getAttribute(\"data-zfb-transport\");\n const serverProtocol = container.getAttribute(\"data-zfb-protocol\");\n const build = container.getAttribute(\"data-zfb-build\");\n if (\n component !== options.identity.component ||\n transport !== \"json/1\" ||\n serverProtocol !== protocol ||\n build !== options.identity.build\n )\n fail(\n \"ZR_IDENTITY\",\n \"preflight\",\n `${options.identity.component}/${protocol}/${options.identity.build}/json/1`,\n `${component}/${serverProtocol}/${build}/${transport}`,\n path,\n );\n if (container.querySelector(\"[data-zfb-island], [data-zfb-island-skip-ssr]\"))\n fail(\"ZR_UNSUPPORTED_POSITION\", \"preflight\", \"no nested root\", \"nested root\", path);\n}\nfunction execute(\n node: Child,\n container: Element,\n options: RootOptions,\n mode: \"hydrate\" | \"mount\",\n): RootHandle | null {\n let scope: RuntimeScope | undefined;\n const cleanups: Array<() => void> = [];\n let committed = false;\n try {\n validate(container, options, mode);\n if (\n !isDescription(node) ||\n typeof node.type !== \"function\" ||\n ((node.type as typeof node.type & { displayName?: string }).displayName ?? node.type.name) !==\n options.identity.component\n )\n fail(\n \"ZR_IDENTITY\",\n \"preflight\",\n options.identity.component,\n \"different child component\",\n rootPath(container),\n );\n scope = createScope({\n component: options.identity.component,\n reporter: (value) => report(options, value),\n protocol,\n build: options.identity.build,\n path: rootPath(container),\n });\n const context: BuildContext = {\n document: container.ownerDocument,\n options,\n container,\n root: scope,\n scope,\n next: 0,\n operations: [],\n forms: [],\n formOwners: new Map(),\n opaque: new Set(),\n textSlots: new Set(),\n dynamicRanges: [],\n collectRootRanges: true,\n };\n const fragment = container.ownerDocument.createDocumentFragment();\n render(node, fragment, context, HTML, \"\", rootPath(container));\n context.collectRootRanges = false;\n const built = [...fragment.childNodes];\n const map = new Map<Node, Node>();\n if (mode === \"hydrate\") compareChildren(fragment, container, map, context, rootPath(container));\n else {\n for (const expected of built) {\n const visit = (item: Node): void => {\n map.set(item, item);\n for (const child of item.childNodes) visit(child);\n };\n visit(expected);\n }\n }\n const formBindings = prepareForms(context.forms, map, mode, container);\n if (options.signal?.aborted || !container.isConnected)\n fail(\n \"ZR_CANCELLED\",\n \"commit\",\n \"connected root\",\n \"aborted or disconnected\",\n rootPath(container),\n );\n reconcileForms(formBindings, mode);\n if (mode === \"mount\") container.replaceChildren(fragment);\n committed = true;\n for (const operation of context.operations) operation(map, cleanups);\n const formOwnerByNode = new Map<Node, Owned>();\n for (const [plan, owner] of context.formOwners)\n formOwnerByNode.set(map.get(plan.element)!, owner);\n const rootForms = formBindings.filter((binding) => !formOwnerByNode.has(binding.node));\n activateForms(rootForms, scope, cleanups, options, container);\n const ownedForms = new Map<Owned, typeof formBindings>();\n for (const binding of formBindings) {\n const owner = formOwnerByNode.get(binding.node);\n if (owner) ownedForms.set(owner, [...(ownedForms.get(owner) ?? []), binding]);\n }\n for (const [owner, bindings] of ownedForms)\n activateForms(bindings, owner.scope, owner.cleanups, options, container);\n const owned = rootOwned(container, context, map);\n context.dynamicRanges.length = 0;\n const handle = createRoot(container, options, scope, cleanups, owned);\n try {\n scope.activate();\n } catch (error) {\n handle.dispose();\n report(\n options,\n diagnostic(\n options,\n \"ZR_ACTIVATION_ERROR\",\n \"activation\",\n rootPath(container),\n \"activation\",\n String(error),\n ),\n );\n return null;\n }\n return handle;\n } catch (error) {\n for (const cleanup of [...cleanups].reverse())\n try {\n cleanup();\n } catch {\n /* preserve original error */\n }\n scope?.dispose();\n const failure =\n error instanceof Failure\n ? error\n : error instanceof FormError\n ? new Failure(error.code, \"preflight\", \"valid form model\", error.detail, error.path)\n : new Failure(\n error instanceof TypeError && /ZR_(DUPLICATE_KEY|KEY_TYPE):/.test(error.message)\n ? error.message.match(/ZR_(DUPLICATE_KEY|KEY_TYPE):/)![0].slice(0, -1)\n : \"ZR_HYDRATION_MISMATCH\",\n committed ? \"commit\" : \"setup\",\n \"successful root\",\n String(error),\n rootPath(container),\n );\n report(\n options,\n diagnostic(\n options,\n failure.code,\n failure.phase,\n failure.path,\n failure.expected,\n failure.actual,\n ),\n );\n return null;\n }\n}\nexport function hydrate(node: Child, container: Element, options: RootOptions): RootHandle | null {\n return execute(node, container, options, \"hydrate\");\n}\nexport function mount(node: Child, container: Element, options: RootOptions): RootHandle | null {\n return execute(node, container, options, \"mount\");\n}\n"]}
|
|
@@ -142,26 +142,37 @@ type IframeProps = Omit<HtmlBaseAttributes<HTMLIFrameElement>, "children" | "raw
|
|
|
142
142
|
children?: never;
|
|
143
143
|
rawHtml?: never;
|
|
144
144
|
};
|
|
145
|
-
type InputBase = Omit<HtmlBaseAttributes<HTMLInputElement>, "type"> & DataAria & EventProps<HTMLInputElement, HTMLElementEventMap
|
|
146
|
-
defaultValue?: string | undefined;
|
|
147
|
-
defaultChecked?: boolean | undefined;
|
|
148
|
-
};
|
|
145
|
+
type InputBase = Omit<HtmlBaseAttributes<HTMLInputElement>, "type"> & DataAria & EventProps<HTMLInputElement, HTMLElementEventMap>;
|
|
149
146
|
export type InputProps = InputBase & ({
|
|
150
147
|
type?: "text" | "search" | "email" | "url" | "tel" | "password" | undefined;
|
|
148
|
+
defaultValue?: string | undefined;
|
|
149
|
+
defaultChecked?: never;
|
|
151
150
|
modelValue?: Signal<string> | undefined;
|
|
152
151
|
modelChecked?: never;
|
|
153
152
|
} | {
|
|
154
153
|
type: "checkbox";
|
|
154
|
+
defaultValue?: never;
|
|
155
|
+
defaultChecked?: boolean | undefined;
|
|
155
156
|
modelChecked?: Signal<boolean> | undefined;
|
|
156
157
|
modelValue?: never;
|
|
157
158
|
} | {
|
|
158
159
|
type: "radio";
|
|
159
160
|
name: string;
|
|
160
161
|
value: string;
|
|
161
|
-
|
|
162
|
+
defaultValue?: never;
|
|
163
|
+
defaultChecked?: boolean | undefined;
|
|
164
|
+
modelValue: Signal<string | null>;
|
|
165
|
+
modelChecked?: never;
|
|
166
|
+
} | {
|
|
167
|
+
type: "radio";
|
|
168
|
+
defaultValue?: never;
|
|
169
|
+
defaultChecked?: boolean | undefined;
|
|
170
|
+
modelValue?: undefined;
|
|
162
171
|
modelChecked?: never;
|
|
163
172
|
} | {
|
|
164
173
|
type: string;
|
|
174
|
+
defaultValue?: never;
|
|
175
|
+
defaultChecked?: never;
|
|
165
176
|
modelValue?: never;
|
|
166
177
|
modelChecked?: never;
|
|
167
178
|
});
|
|
@@ -226,7 +237,7 @@ type CustomProps = ReservedProps & EventProps<HTMLElement, GlobalEventHandlersEv
|
|
|
226
237
|
checked?: null | undefined;
|
|
227
238
|
[attribute: string]: StringAttribute | Child | Ref<Element> | AnyListener | undefined;
|
|
228
239
|
};
|
|
229
|
-
type HtmlTag = "html" | "head" | "body" | "title" | "base" | "link" | "meta" | "style" | "script" | "div" | "span" | "p" | "a" | "br" | "hr" | "main" | "header" | "footer" | "nav" | "section" | "article" | "aside" | "search" | "hgroup" | "menu" | "h1" | "h2" | "h3" | "h4" | "h5" | "h6" | "ul" | "ol" | "li" | "dl" | "dt" | "dd" | "blockquote" | "pre" | "code" | "strong" | "em" | "b" | "i" | "small" | "mark" | "time" | "figure" | "figcaption" | "img" | "picture" | "source" | "video" | "audio" | "track" | "canvas" | "form" | "label" | "input" | "button" | "textarea" | "select" | "option" | "optgroup" | "fieldset" | "legend" | "output" | "progress" | "meter" | "datalist" | "table" | "caption" | "thead" | "tbody" | "tfoot" | "tr" | "th" | "td" | "col" | "colgroup" | "details" | "summary" | "dialog" | "template" | "slot" | "iframe" | "noscript" | "address" | "abbr" | "bdi" | "bdo" | "cite" | "data" | "del" | "dfn" | "ins" | "kbd" | "map" | "area" | "object" | "param" | "q" | "rp" | "rt" | "ruby" | "s" | "samp" | "sub" | "sup" | "u" | "var" | "wbr" | "embed";
|
|
240
|
+
type HtmlTag = "html" | "head" | "body" | "title" | "base" | "link" | "meta" | "style" | "script" | "div" | "span" | "p" | "a" | "br" | "hr" | "main" | "header" | "footer" | "nav" | "section" | "article" | "aside" | "search" | "hgroup" | "menu" | "h1" | "h2" | "h3" | "h4" | "h5" | "h6" | "ul" | "ol" | "li" | "dl" | "dt" | "dd" | "blockquote" | "pre" | "code" | "strong" | "em" | "b" | "i" | "small" | "mark" | "time" | "figure" | "figcaption" | "img" | "picture" | "source" | "video" | "audio" | "track" | "canvas" | "form" | "label" | "input" | "button" | "textarea" | "select" | "option" | "optgroup" | "fieldset" | "legend" | "output" | "progress" | "meter" | "datalist" | "table" | "caption" | "thead" | "tbody" | "tfoot" | "tr" | "th" | "td" | "col" | "colgroup" | "details" | "summary" | "dialog" | "template" | "slot" | "iframe" | "noscript" | "address" | "abbr" | "bdi" | "bdo" | "cite" | "data" | "del" | "dfn" | "ins" | "kbd" | "map" | "area" | "object" | "param" | "q" | "rp" | "rb" | "rt" | "ruby" | "s" | "samp" | "sub" | "sup" | "u" | "var" | "wbr" | "embed";
|
|
230
241
|
type SvgTag = "svg" | "g" | "path" | "circle" | "ellipse" | "rect" | "line" | "polyline" | "polygon" | "text" | "tspan" | "defs" | "symbol" | "use" | "clipPath" | "mask" | "linearGradient" | "radialGradient" | "stop" | "desc" | "foreignObject" | "pattern" | "filter" | "marker" | "image";
|
|
231
242
|
/** DOM element corresponding to an owned intrinsic tag. */
|
|
232
243
|
export type ElementForTag<Tag extends HtmlTag | SvgTag> = Tag extends HtmlTag ? Tag extends keyof HTMLElementTagNameMap ? HTMLElementTagNameMap[Tag] : HTMLElement : Tag extends keyof SVGElementTagNameMap ? SVGElementTagNameMap[Tag] : SVGElement;
|