@farm.js/react 0.1.0-beta.7 → 0.1.0-beta.8

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.
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/iterable.ts","../src/compiler-runtime.tsx"],"names":["value","React","descriptor","activeElement","restoreFocus","anchor","flushSync"],"mappings":"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","file":"compiler-runtime.cjs","sourcesContent":["const oneShotSnapshots = new WeakMap<object, readonly unknown[]>();\n\n/** Materialize an iterable without consuming a one-shot iterator more than once. */\nexport function materializeIterable<Item>(source: Iterable<Item> | null | undefined): Item[] {\n if (source == null) return [];\n\n const iterator = source[Symbol.iterator]();\n const oneShot =\n iterator === (source as unknown) &&\n (typeof source === \"object\" || typeof source === \"function\");\n if (oneShot) {\n const cached = oneShotSnapshots.get(source as object);\n if (cached) return cached as Item[];\n }\n\n const items = Array.from({ [Symbol.iterator]: () => iterator });\n if (oneShot) oneShotSnapshots.set(source as object, items);\n return items;\n}\n","import React from \"react\";\nimport { flushSync } from \"react-dom\";\nimport { materializeIterable } from \"./iterable\";\n\nexport type CompilerStateUpdater = unknown | ((previous: unknown) => unknown);\nexport type CompilerRuntimeReactivity = \"static\" | \"hybrid\";\n\ninterface CompilerKeyedMapUpdateHint {\n readonly sourceToken: object;\n readonly changedIndices: readonly number[];\n readonly previous?: CompilerKeyedMapUpdateHint;\n}\n\ninterface CompilerKeyedArrayAppendHint {\n readonly sourceToken: object;\n readonly startIndex: number;\n readonly resultLength: number;\n readonly previous?: CompilerKeyedArrayAppendHint;\n}\n\ninterface CompilerKeyedArrayFilterHint {\n readonly kind: \"filter\" | \"slice\";\n readonly sourceToken: object;\n readonly sourceLength: number;\n readonly resultLength: number;\n readonly removedIndices?: readonly number[];\n readonly retainedEnd?: number;\n readonly retainedStart?: number;\n readonly previous?: CompilerKeyedArrayFilterHint;\n}\n\ninterface CompilerKeyedArrayPrependHint {\n readonly sourceToken: object;\n readonly sourceLength: number;\n readonly resultLength: number;\n readonly prefixLength: number;\n readonly previous?: CompilerKeyedArrayPrependHint;\n}\n\ninterface CompilerKeyedArrayRollingWindowHint {\n readonly sourceToken: object;\n readonly sourceLength: number;\n readonly resultLength: number;\n readonly retainedEnd: number;\n readonly retainedStart: number;\n}\n\ninterface CompilerKeyedArrayPositionHint {\n readonly kind: \"insert\" | \"remove\" | \"replace\";\n readonly sourceToken: object;\n readonly sourceLength: number;\n readonly resultLength: number;\n readonly position: number;\n}\n\ninterface CompilerKeyedArrayReorderHint {\n readonly kind: \"reverse\" | \"sort\";\n readonly sourceToken: object;\n readonly sourceLength: number;\n readonly resultLength: number;\n}\n\ntype CompilerKeyedCollectionKind = \"set\" | \"map\";\ntype CompilerKeyedCollectionMutation = \"set-add\" | \"set-delete\" | \"map-set\" | \"map-delete\";\n\ninterface CompilerKeyedCollectionDraft {\n readonly kind: CompilerKeyedCollectionKind;\n readonly changedKeys: unknown[];\n}\n\ninterface CompilerKeyedCollectionUpdateHint {\n readonly kind: CompilerKeyedCollectionKind;\n readonly sourceToken: object;\n readonly changedKeys: readonly unknown[];\n readonly previous?: CompilerKeyedCollectionUpdateHint;\n}\n\nconst COMPILER_KEYED_COLLECTION_TOKENS = /* @__PURE__ */ new WeakMap<object, object>();\nconst COMPILER_KEYED_MAP_UPDATES = /* @__PURE__ */ new WeakMap<\n object,\n CompilerKeyedMapUpdateHint\n>();\nconst COMPILER_KEYED_ARRAY_APPENDS = /* @__PURE__ */ new WeakMap<\n object,\n CompilerKeyedArrayAppendHint\n>();\nconst COMPILER_KEYED_ARRAY_FILTERS = /* @__PURE__ */ new WeakMap<\n object,\n CompilerKeyedArrayFilterHint\n>();\nconst COMPILER_KEYED_ARRAY_PREPENDS = /* @__PURE__ */ new WeakMap<\n object,\n CompilerKeyedArrayPrependHint\n>();\nconst COMPILER_KEYED_ARRAY_ROLLING_WINDOWS = /* @__PURE__ */ new WeakMap<\n object,\n CompilerKeyedArrayRollingWindowHint\n>();\nconst COMPILER_KEYED_ARRAY_POSITIONS = /* @__PURE__ */ new WeakMap<\n object,\n CompilerKeyedArrayPositionHint\n>();\nconst COMPILER_KEYED_ARRAY_REORDERS = /* @__PURE__ */ new WeakMap<\n object,\n CompilerKeyedArrayReorderHint\n>();\nconst COMPILER_KEYED_COLLECTION_DRAFTS = /* @__PURE__ */ new WeakMap<\n object,\n CompilerKeyedCollectionDraft\n>();\nconst COMPILER_KEYED_COLLECTION_UPDATES = /* @__PURE__ */ new WeakMap<\n object,\n CompilerKeyedCollectionUpdateHint\n>();\nconst COMPILER_KEYED_COMMITTED_COLLECTIONS = /* @__PURE__ */ new WeakSet<object>();\nconst NATIVE_ARRAY_PROTOTYPE = Array.prototype;\nconst NATIVE_ARRAY_ITERATOR = Array.prototype[Symbol.iterator];\nconst NATIVE_ARRAY_FILTER = Array.prototype.filter;\nconst NATIVE_ARRAY_SLICE = Array.prototype.slice;\nconst NATIVE_ARRAY_TO_SPLICED = (\n Array.prototype as unknown as { toSpliced?: (...args: readonly unknown[]) => unknown }\n).toSpliced;\nconst NATIVE_ARRAY_WITH = (\n Array.prototype as unknown as { with?: (...args: readonly unknown[]) => unknown }\n).with;\nconst NATIVE_ARRAY_TO_REVERSED = (\n Array.prototype as unknown as { toReversed?: (...args: readonly unknown[]) => unknown }\n).toReversed;\nconst NATIVE_ARRAY_TO_SORTED = (\n Array.prototype as unknown as { toSorted?: (...args: readonly unknown[]) => unknown }\n).toSorted;\nconst NATIVE_REFLECT_APPLY = Reflect.apply;\n\nfunction compilerObject(value: unknown): object | undefined {\n return (typeof value === \"object\" && value !== null) || typeof value === \"function\"\n ? (value as object)\n : undefined;\n}\n\nfunction compilerKeyedCollectionToken(value: unknown): object | undefined {\n const target = compilerObject(value);\n if (!target) return undefined;\n let token = COMPILER_KEYED_COLLECTION_TOKENS.get(target);\n if (!token) {\n token = {};\n COMPILER_KEYED_COLLECTION_TOKENS.set(target, token);\n }\n return token;\n}\n\nfunction commitCompilerKeyedCollection(value: unknown): object | undefined {\n const target = compilerObject(value);\n if (!target) return undefined;\n COMPILER_KEYED_COMMITTED_COLLECTIONS.add(target);\n return compilerKeyedCollectionToken(target);\n}\n\nfunction compilerKeyedMapChangedIndices(\n value: unknown,\n sourceToken: object | undefined,\n): readonly number[] | undefined {\n const target = compilerObject(value);\n if (!target || !sourceToken) return undefined;\n const update = COMPILER_KEYED_MAP_UPDATES.get(target);\n if (!update || update.sourceToken !== sourceToken) return undefined;\n const changedIndices: number[] = [];\n for (\n let current: CompilerKeyedMapUpdateHint | undefined = update;\n current;\n current = current.previous\n ) {\n changedIndices.push(...current.changedIndices);\n }\n return changedIndices;\n}\n\nfunction compilerKeyedArrayAppendStart(\n value: unknown,\n sourceToken: object | undefined,\n expectedStart: number,\n): number | undefined {\n const target = compilerObject(value);\n if (!target || !sourceToken || !Array.isArray(value)) return undefined;\n const update = COMPILER_KEYED_ARRAY_APPENDS.get(target);\n if (!update || update.sourceToken !== sourceToken) return undefined;\n const updates: CompilerKeyedArrayAppendHint[] = [];\n for (\n let current: CompilerKeyedArrayAppendHint | undefined = update;\n current;\n current = current.previous\n ) {\n if (current.sourceToken !== sourceToken) return undefined;\n updates.push(current);\n }\n let length = expectedStart;\n for (let index = updates.length - 1; index >= 0; index -= 1) {\n const current = updates[index];\n if (current.startIndex !== length || current.resultLength < length) return undefined;\n length = current.resultLength;\n }\n return length === value.length ? expectedStart : undefined;\n}\n\nfunction compilerKeyedArrayFilterSurvivors(\n value: unknown,\n sourceToken: object | undefined,\n expectedLength: number,\n): { readonly indices: readonly number[]; readonly keysStable: boolean } | undefined {\n const target = compilerObject(value);\n if (!target || !sourceToken || !Array.isArray(value)) return undefined;\n const update = COMPILER_KEYED_ARRAY_FILTERS.get(target);\n if (!update || update.sourceToken !== sourceToken) return undefined;\n const updates: CompilerKeyedArrayFilterHint[] = [];\n for (\n let current: CompilerKeyedArrayFilterHint | undefined = update;\n current;\n current = current.previous\n ) {\n if (current.sourceToken !== sourceToken) return undefined;\n updates.push(current);\n }\n\n let survivors = Array.from({ length: expectedLength }, (_, index) => index);\n let keysStable = true;\n for (let updateIndex = updates.length - 1; updateIndex >= 0; updateIndex -= 1) {\n const current = updates[updateIndex];\n if (current.sourceLength !== survivors.length) return undefined;\n if (current.kind === \"slice\") {\n const start = current.retainedStart;\n const end = current.retainedEnd;\n if (\n start === undefined ||\n end === undefined ||\n !Number.isSafeInteger(start) ||\n !Number.isSafeInteger(end) ||\n start < 0 ||\n end < start ||\n end > current.sourceLength ||\n current.resultLength !== end - start\n ) {\n return undefined;\n }\n survivors = survivors.slice(start, end);\n continue;\n }\n keysStable = false;\n const removed = new Set<number>();\n for (const index of current.removedIndices || []) {\n if (!Number.isSafeInteger(index) || index < 0 || index >= current.sourceLength)\n return undefined;\n removed.add(index);\n }\n if (current.resultLength !== current.sourceLength - removed.size) return undefined;\n survivors = survivors.filter((_sourceIndex, index) => !removed.has(index));\n }\n return survivors.length === value.length ? { indices: survivors, keysStable } : undefined;\n}\n\nfunction compilerKeyedArrayPrependLength(\n value: unknown,\n sourceToken: object | undefined,\n expectedLength: number,\n): number | undefined {\n const target = compilerObject(value);\n if (!target || !sourceToken || !Array.isArray(value)) return undefined;\n const update = COMPILER_KEYED_ARRAY_PREPENDS.get(target);\n if (!update || update.sourceToken !== sourceToken) return undefined;\n const updates: CompilerKeyedArrayPrependHint[] = [];\n for (\n let current: CompilerKeyedArrayPrependHint | undefined = update;\n current;\n current = current.previous\n ) {\n if (current.sourceToken !== sourceToken) return undefined;\n updates.push(current);\n }\n\n let length = expectedLength;\n let prefixLength = 0;\n for (let index = updates.length - 1; index >= 0; index -= 1) {\n const current = updates[index];\n if (\n current.sourceLength !== length ||\n current.prefixLength < 1 ||\n current.resultLength !== current.sourceLength + current.prefixLength\n ) {\n return undefined;\n }\n length = current.resultLength;\n prefixLength += current.prefixLength;\n }\n return length === value.length ? prefixLength : undefined;\n}\n\nfunction compilerKeyedArrayRollingWindow(\n value: unknown,\n sourceToken: object | undefined,\n expectedLength: number,\n): CompilerKeyedArrayRollingWindowHint | undefined {\n const target = compilerObject(value);\n if (!target || !sourceToken || !Array.isArray(value)) return undefined;\n const update = COMPILER_KEYED_ARRAY_ROLLING_WINDOWS.get(target);\n if (\n !update ||\n update.sourceToken !== sourceToken ||\n update.sourceLength !== expectedLength ||\n update.resultLength !== value.length ||\n update.retainedStart < 1 ||\n update.retainedEnd !== update.sourceLength ||\n update.resultLength <= update.retainedEnd - update.retainedStart\n ) {\n return undefined;\n }\n return update;\n}\n\nfunction compilerKeyedArrayPosition(\n value: unknown,\n sourceToken: object | undefined,\n expectedLength: number,\n): CompilerKeyedArrayPositionHint | undefined {\n const target = compilerObject(value);\n if (!target || !sourceToken || !Array.isArray(value)) return undefined;\n const update = COMPILER_KEYED_ARRAY_POSITIONS.get(target);\n if (\n !update ||\n update.sourceToken !== sourceToken ||\n update.sourceLength !== expectedLength ||\n update.resultLength !== value.length ||\n update.position < 0 ||\n update.position > expectedLength ||\n (update.kind === \"insert\" && update.resultLength !== expectedLength + 1) ||\n (update.kind === \"remove\" &&\n (update.position >= expectedLength || update.resultLength !== expectedLength - 1)) ||\n (update.kind === \"replace\" &&\n (update.position >= expectedLength || update.resultLength !== expectedLength))\n ) {\n return undefined;\n }\n return update;\n}\n\nfunction compilerKeyedArrayReorder(\n value: unknown,\n sourceToken: object | undefined,\n expectedLength: number,\n): CompilerKeyedArrayReorderHint | undefined {\n const target = compilerObject(value);\n if (!target || !sourceToken || !Array.isArray(value)) return undefined;\n const update = COMPILER_KEYED_ARRAY_REORDERS.get(target);\n if (\n !update ||\n update.sourceToken !== sourceToken ||\n update.sourceLength !== expectedLength ||\n update.resultLength !== expectedLength ||\n update.resultLength !== value.length\n ) {\n return undefined;\n }\n return update;\n}\n\nfunction compilerKeyedCollectionChangedKeys(\n value: unknown,\n sourceToken: object | undefined,\n kind: CompilerKeyedCollectionKind,\n): readonly unknown[] | undefined {\n const target = compilerObject(value);\n if (!target || !sourceToken) return undefined;\n const update = COMPILER_KEYED_COLLECTION_UPDATES.get(target);\n if (!update || update.kind !== kind || update.sourceToken !== sourceToken) return undefined;\n const changedKeys: unknown[] = [];\n for (\n let current: CompilerKeyedCollectionUpdateHint | undefined = update;\n current;\n current = current.previous\n ) {\n if (current.kind !== kind || current.sourceToken !== sourceToken) return undefined;\n changedKeys.push(...current.changedKeys);\n }\n return changedKeys;\n}\n\n/** @internal Records compiler-proven same-order Array.map metadata and returns the Array. */\nexport function createCompilerKeyedMapUpdate(\n previous: unknown,\n value: unknown,\n changedIndices: readonly number[],\n): unknown {\n const previousTarget = compilerObject(previous);\n const valueTarget = compilerObject(value);\n const sourceToken = compilerKeyedCollectionToken(previousTarget);\n if (valueTarget && sourceToken) {\n const previousUpdate =\n previousTarget && !COMPILER_KEYED_COMMITTED_COLLECTIONS.has(previousTarget)\n ? COMPILER_KEYED_MAP_UPDATES.get(previousTarget)\n : undefined;\n COMPILER_KEYED_MAP_UPDATES.set(valueTarget, {\n sourceToken: previousUpdate?.sourceToken || sourceToken,\n changedIndices,\n ...(previousUpdate ? { previous: previousUpdate } : {}),\n });\n }\n return value;\n}\n\n/** @internal Records a compiler-proven immutable keyed-array append and returns the Array. */\nexport function createCompilerKeyedArrayAppend(previous: unknown, value: unknown): unknown {\n try {\n const previousTarget = compilerObject(previous);\n const valueTarget = compilerObject(value);\n if (\n !previousTarget ||\n !valueTarget ||\n !Array.isArray(previous) ||\n !Array.isArray(value) ||\n Object.getPrototypeOf(previous) !== NATIVE_ARRAY_PROTOTYPE ||\n Object.getPrototypeOf(value) !== NATIVE_ARRAY_PROTOTYPE ||\n previous[Symbol.iterator] !== NATIVE_ARRAY_ITERATOR\n ) {\n return value;\n }\n const startIndex = previous.length;\n if (value.length < startIndex) return value;\n const sourceToken = compilerKeyedCollectionToken(previousTarget);\n if (!sourceToken) return value;\n const previousUpdate = !COMPILER_KEYED_COMMITTED_COLLECTIONS.has(previousTarget)\n ? COMPILER_KEYED_ARRAY_APPENDS.get(previousTarget)\n : undefined;\n COMPILER_KEYED_ARRAY_APPENDS.set(valueTarget, {\n sourceToken: previousUpdate?.sourceToken || sourceToken,\n startIndex,\n resultLength: value.length,\n ...(previousUpdate ? { previous: previousUpdate } : {}),\n });\n return value;\n } catch {\n // Metadata must never change the behavior of an otherwise valid update.\n return value;\n }\n}\n\n/** @internal Records a compiler-proven immutable keyed-array prepend and returns the Array. */\nexport function createCompilerKeyedArrayPrepend(previous: unknown, value: unknown): unknown {\n try {\n const previousTarget = compilerObject(previous);\n const valueTarget = compilerObject(value);\n if (\n !previousTarget ||\n !valueTarget ||\n !Array.isArray(previous) ||\n !Array.isArray(value) ||\n Object.getPrototypeOf(previous) !== NATIVE_ARRAY_PROTOTYPE ||\n Object.getPrototypeOf(value) !== NATIVE_ARRAY_PROTOTYPE ||\n previous[Symbol.iterator] !== NATIVE_ARRAY_ITERATOR\n ) {\n return value;\n }\n const sourceLength = previous.length;\n const prefixLength = value.length - sourceLength;\n if (prefixLength < 1) return value;\n const sourceToken = compilerKeyedCollectionToken(previousTarget);\n if (!sourceToken) return value;\n const previousUpdate = !COMPILER_KEYED_COMMITTED_COLLECTIONS.has(previousTarget)\n ? COMPILER_KEYED_ARRAY_PREPENDS.get(previousTarget)\n : undefined;\n COMPILER_KEYED_ARRAY_PREPENDS.set(valueTarget, {\n sourceToken: previousUpdate?.sourceToken || sourceToken,\n sourceLength,\n resultLength: value.length,\n prefixLength,\n ...(previousUpdate ? { previous: previousUpdate } : {}),\n });\n return value;\n } catch {\n // Metadata must never change the behavior of an otherwise valid update.\n return value;\n }\n}\n\n/** @internal Executes Array.filter while recording compiler-proven removal positions. */\nexport function createCompilerKeyedArrayFilter(\n previous: unknown,\n method: unknown,\n predicate: unknown,\n): unknown {\n let canHint = false;\n let sourceLength = 0;\n try {\n canHint =\n Array.isArray(previous) &&\n Object.getPrototypeOf(previous) === NATIVE_ARRAY_PROTOTYPE &&\n method === NATIVE_ARRAY_FILTER &&\n typeof predicate === \"function\";\n if (canHint) sourceLength = (previous as unknown[]).length;\n } catch {\n canHint = false;\n }\n\n if (!canHint) {\n return NATIVE_REFLECT_APPLY(method as (...args: unknown[]) => unknown, previous, [predicate]);\n }\n\n const removedIndices: number[] = [];\n let visited = 0;\n const wrappedPredicate = function (\n this: unknown,\n item: unknown,\n index: number,\n collection: unknown[],\n ): unknown {\n visited += 1;\n const keep = NATIVE_REFLECT_APPLY(predicate as (...args: unknown[]) => unknown, this, [\n item,\n index,\n collection,\n ]);\n if (!keep) removedIndices.push(index);\n return keep;\n };\n const value = NATIVE_REFLECT_APPLY(method as (...args: unknown[]) => unknown, previous, [\n wrappedPredicate,\n ]);\n\n try {\n const previousTarget = compilerObject(previous);\n const valueTarget = compilerObject(value);\n if (\n !previousTarget ||\n !valueTarget ||\n !Array.isArray(value) ||\n Object.getPrototypeOf(value) !== NATIVE_ARRAY_PROTOTYPE ||\n visited !== sourceLength ||\n value.length !== sourceLength - removedIndices.length\n ) {\n return value;\n }\n const sourceToken = compilerKeyedCollectionToken(previousTarget);\n if (!sourceToken) return value;\n const previousUpdate = !COMPILER_KEYED_COMMITTED_COLLECTIONS.has(previousTarget)\n ? COMPILER_KEYED_ARRAY_FILTERS.get(previousTarget)\n : undefined;\n COMPILER_KEYED_ARRAY_FILTERS.set(valueTarget, {\n kind: \"filter\",\n sourceToken: previousUpdate?.sourceToken || sourceToken,\n sourceLength,\n resultLength: value.length,\n removedIndices,\n ...(previousUpdate ? { previous: previousUpdate } : {}),\n });\n } catch {\n // Metadata must never change the result of a successful native filter.\n }\n return value;\n}\n\n/** @internal Executes a compiler-proven native Array.slice and records its retained interval. */\nexport function createCompilerKeyedArraySlice(\n previous: unknown,\n method: unknown,\n ...args: readonly number[]\n): unknown {\n const canHint = (() => {\n try {\n return (\n Array.isArray(previous) &&\n Object.getPrototypeOf(previous) === NATIVE_ARRAY_PROTOTYPE &&\n method === NATIVE_ARRAY_SLICE &&\n args.length > 0 &&\n args.length <= 2 &&\n args.every((value) => Number.isSafeInteger(value))\n );\n } catch {\n return false;\n }\n })();\n const value = NATIVE_REFLECT_APPLY(method as (...values: number[]) => unknown, previous, args);\n if (!canHint) return value;\n\n try {\n const previousTarget = compilerObject(previous);\n const valueTarget = compilerObject(value);\n if (\n !previousTarget ||\n !valueTarget ||\n !Array.isArray(value) ||\n Object.getPrototypeOf(value) !== NATIVE_ARRAY_PROTOTYPE\n ) {\n return value;\n }\n const sourceLength = (previous as unknown[]).length;\n const normalize = (relative: number): number =>\n relative < 0 ? Math.max(sourceLength + relative, 0) : Math.min(relative, sourceLength);\n const retainedStart = normalize(args[0]);\n const retainedEnd = args.length === 2 ? normalize(args[1]) : sourceLength;\n const resultLength = Math.max(retainedEnd - retainedStart, 0);\n if (value.length !== resultLength || resultLength >= sourceLength) return value;\n const sourceToken = compilerKeyedCollectionToken(previousTarget);\n if (!sourceToken) return value;\n const previousUpdate = !COMPILER_KEYED_COMMITTED_COLLECTIONS.has(previousTarget)\n ? COMPILER_KEYED_ARRAY_FILTERS.get(previousTarget)\n : undefined;\n COMPILER_KEYED_ARRAY_FILTERS.set(valueTarget, {\n kind: \"slice\",\n sourceToken: previousUpdate?.sourceToken || sourceToken,\n sourceLength,\n resultLength,\n retainedEnd: Math.max(retainedEnd, retainedStart),\n retainedStart,\n ...(previousUpdate ? { previous: previousUpdate } : {}),\n });\n } catch {\n // Metadata must never change the result of a successful native slice.\n }\n return value;\n}\n\n/** @internal Records a compiler-proven retained tail followed by incoming keyed rows. */\nexport function createCompilerKeyedArrayRollingWindow(\n previous: unknown,\n retained: unknown,\n value: unknown,\n): unknown {\n try {\n const previousTarget = compilerObject(previous);\n const retainedTarget = compilerObject(retained);\n const valueTarget = compilerObject(value);\n if (\n !previousTarget ||\n !retainedTarget ||\n !valueTarget ||\n !COMPILER_KEYED_COMMITTED_COLLECTIONS.has(previousTarget) ||\n !Array.isArray(previous) ||\n !Array.isArray(retained) ||\n !Array.isArray(value) ||\n Object.getPrototypeOf(previous) !== NATIVE_ARRAY_PROTOTYPE ||\n Object.getPrototypeOf(retained) !== NATIVE_ARRAY_PROTOTYPE ||\n Object.getPrototypeOf(value) !== NATIVE_ARRAY_PROTOTYPE\n ) {\n return value;\n }\n const sourceToken = compilerKeyedCollectionToken(previousTarget);\n const slice = COMPILER_KEYED_ARRAY_FILTERS.get(retainedTarget);\n if (\n !sourceToken ||\n !slice ||\n slice.previous ||\n slice.kind !== \"slice\" ||\n slice.sourceToken !== sourceToken ||\n slice.sourceLength !== previous.length ||\n slice.retainedStart === undefined ||\n slice.retainedEnd !== previous.length ||\n slice.retainedStart < 1 ||\n slice.resultLength !== retained.length ||\n value.length <= retained.length\n ) {\n return value;\n }\n for (let index = 0; index < retained.length; index += 1) {\n if (!Object.is(value[index], retained[index])) return value;\n }\n COMPILER_KEYED_ARRAY_ROLLING_WINDOWS.set(valueTarget, {\n sourceToken,\n sourceLength: previous.length,\n resultLength: value.length,\n retainedEnd: slice.retainedEnd,\n retainedStart: slice.retainedStart,\n });\n } catch {\n // Metadata must never change the result of a successful array update.\n }\n return value;\n}\n\n/** @internal Executes a native known-position insert, removal, or replacement and records it. */\nexport function createCompilerKeyedArrayPositionUpdate(\n previous: unknown,\n method: unknown,\n kind: \"insert\" | \"remove\" | \"replace\",\n position: number,\n ...args: readonly unknown[]\n): unknown {\n const callArgs = [position, ...args];\n const value = NATIVE_REFLECT_APPLY(\n method as (...values: readonly unknown[]) => unknown,\n previous,\n callArgs,\n );\n\n try {\n const previousTarget = compilerObject(previous);\n const valueTarget = compilerObject(value);\n if (\n !previousTarget ||\n !valueTarget ||\n !COMPILER_KEYED_COMMITTED_COLLECTIONS.has(previousTarget) ||\n !Array.isArray(previous) ||\n !Array.isArray(value) ||\n Object.getPrototypeOf(previous) !== NATIVE_ARRAY_PROTOTYPE ||\n Object.getPrototypeOf(value) !== NATIVE_ARRAY_PROTOTYPE ||\n !Number.isSafeInteger(position)\n ) {\n return value;\n }\n\n const sourceLength = previous.length;\n const normalizedPosition =\n position < 0 ? Math.max(sourceLength + position, 0) : Math.min(position, sourceLength);\n const validInsert =\n kind === \"insert\" &&\n method === NATIVE_ARRAY_TO_SPLICED &&\n args.length === 2 &&\n Object.is(args[0], 0) &&\n value.length === sourceLength + 1;\n const validRemove =\n kind === \"remove\" &&\n method === NATIVE_ARRAY_TO_SPLICED &&\n args.length === 1 &&\n Object.is(args[0], 1) &&\n normalizedPosition < sourceLength &&\n value.length === sourceLength - 1;\n const validReplace =\n kind === \"replace\" &&\n method === NATIVE_ARRAY_WITH &&\n args.length === 1 &&\n position >= -sourceLength &&\n position < sourceLength &&\n value.length === sourceLength;\n if (!validInsert && !validRemove && !validReplace) return value;\n\n const sourceToken = compilerKeyedCollectionToken(previousTarget);\n if (!sourceToken) return value;\n COMPILER_KEYED_ARRAY_POSITIONS.set(valueTarget, {\n kind,\n sourceToken,\n sourceLength,\n resultLength: value.length,\n position: normalizedPosition,\n });\n } catch {\n // Metadata must never change the result of a successful native update.\n }\n return value;\n}\n\n/** @internal Executes a native reverse and records its exact keyed-row permutation. */\nexport function createCompilerKeyedArrayReorder(previous: unknown, method: unknown): unknown {\n const value = NATIVE_REFLECT_APPLY(\n method as (...values: readonly unknown[]) => unknown,\n previous,\n [],\n );\n\n try {\n const previousTarget = compilerObject(previous);\n const valueTarget = compilerObject(value);\n if (\n !previousTarget ||\n !valueTarget ||\n !COMPILER_KEYED_COMMITTED_COLLECTIONS.has(previousTarget) ||\n !Array.isArray(previous) ||\n !Array.isArray(value) ||\n Object.getPrototypeOf(previous) !== NATIVE_ARRAY_PROTOTYPE ||\n Object.getPrototypeOf(value) !== NATIVE_ARRAY_PROTOTYPE ||\n method !== NATIVE_ARRAY_TO_REVERSED ||\n value.length !== previous.length\n ) {\n return value;\n }\n\n const sourceToken = compilerKeyedCollectionToken(previousTarget);\n if (!sourceToken) return value;\n COMPILER_KEYED_ARRAY_REORDERS.set(valueTarget, {\n kind: \"reverse\",\n sourceToken,\n sourceLength: previous.length,\n resultLength: value.length,\n });\n } catch {\n // Metadata must never change the result of a successful native update.\n }\n return value;\n}\n\n/** @internal Executes a native immutable sort and records its keyed-row permutation. */\nexport function createCompilerKeyedArraySort(\n previous: unknown,\n method: unknown,\n ...args: readonly unknown[]\n): unknown {\n const value = NATIVE_REFLECT_APPLY(\n method as (...values: readonly unknown[]) => unknown,\n previous,\n args,\n );\n\n try {\n const previousTarget = compilerObject(previous);\n const valueTarget = compilerObject(value);\n if (\n !previousTarget ||\n !valueTarget ||\n !COMPILER_KEYED_COMMITTED_COLLECTIONS.has(previousTarget) ||\n !Array.isArray(previous) ||\n !Array.isArray(value) ||\n Object.getPrototypeOf(previous) !== NATIVE_ARRAY_PROTOTYPE ||\n Object.getPrototypeOf(value) !== NATIVE_ARRAY_PROTOTYPE ||\n method !== NATIVE_ARRAY_TO_SORTED ||\n args.length > 1 ||\n (args.length === 1 && args[0] !== undefined && typeof args[0] !== \"function\") ||\n value.length !== previous.length\n ) {\n return value;\n }\n for (let index = 0; index < previous.length; index += 1) {\n if (!(index in previous)) return value;\n }\n\n const sourceToken = compilerKeyedCollectionToken(previousTarget);\n if (!sourceToken) return value;\n COMPILER_KEYED_ARRAY_REORDERS.set(valueTarget, {\n kind: \"sort\",\n sourceToken,\n sourceLength: previous.length,\n resultLength: value.length,\n });\n } catch {\n // Metadata must never change the result of a successful native update.\n }\n return value;\n}\n\n/** @internal Preserves a proven native collection mutation while recording its executed key. */\nexport function applyCompilerKeyedCollectionMutation(\n collection: unknown,\n method: unknown,\n operation: CompilerKeyedCollectionMutation,\n key: unknown,\n value?: unknown,\n): unknown {\n const args = operation === \"map-set\" ? [key, value] : [key];\n const result = NATIVE_REFLECT_APPLY(method as (...args: unknown[]) => unknown, collection, args);\n const target = compilerObject(collection);\n if (!target) return result;\n\n const kind: CompilerKeyedCollectionKind = operation.startsWith(\"set-\") ? \"set\" : \"map\";\n const nativeMethod =\n operation === \"set-add\"\n ? NATIVE_SET_ADD\n : operation === \"set-delete\"\n ? NATIVE_SET_DELETE\n : operation === \"map-set\"\n ? NATIVE_MAP_SET\n : NATIVE_MAP_DELETE;\n const nativePrototype = kind === \"set\" ? NATIVE_SET_PROTOTYPE : NATIVE_MAP_PROTOTYPE;\n if (method !== nativeMethod || Object.getPrototypeOf(collection) !== nativePrototype) {\n return result;\n }\n\n const existing = COMPILER_KEYED_COLLECTION_DRAFTS.get(target);\n if (existing && existing.kind !== kind) return result;\n if (existing) existing.changedKeys.push(key);\n else COMPILER_KEYED_COLLECTION_DRAFTS.set(target, { kind, changedKeys: [key] });\n return result;\n}\n\n/** @internal Connects compiler-owned immutable Set/Map mutations to their committed source. */\nexport function createCompilerKeyedCollectionUpdate(\n previous: unknown,\n value: unknown,\n kind: CompilerKeyedCollectionKind,\n): unknown {\n const previousTarget = compilerObject(previous);\n const valueTarget = compilerObject(value);\n if (!previousTarget || !valueTarget || previousTarget === valueTarget) return value;\n const draft = COMPILER_KEYED_COLLECTION_DRAFTS.get(valueTarget);\n if (!draft || draft.kind !== kind || draft.changedKeys.length === 0) return value;\n\n const sourceToken = compilerKeyedCollectionToken(previousTarget);\n if (!sourceToken) return value;\n const previousUpdate = !COMPILER_KEYED_COMMITTED_COLLECTIONS.has(previousTarget)\n ? COMPILER_KEYED_COLLECTION_UPDATES.get(previousTarget)\n : undefined;\n COMPILER_KEYED_COLLECTION_UPDATES.set(valueTarget, {\n kind,\n sourceToken: previousUpdate?.sourceToken || sourceToken,\n changedKeys: [...draft.changedKeys],\n ...(previousUpdate ? { previous: previousUpdate } : {}),\n });\n return value;\n}\n\nexport interface CompilerCell {\n get(): unknown;\n set(next: CompilerStateUpdater): void;\n}\n\ninterface RuntimeCell extends CompilerCell {\n flush(): boolean;\n replace(next: unknown): void;\n}\n\ntype PendingCellUpdate =\n | { kind: \"state\"; update: CompilerStateUpdater }\n | { kind: \"value\"; value: unknown };\n\ntype SelectableTextControl = HTMLInputElement | HTMLTextAreaElement;\n\ninterface InputSelectionSnapshot {\n element: SelectableTextControl;\n start: number;\n end: number;\n direction: \"forward\" | \"backward\" | \"none\";\n}\n\nexport interface CompilerTextBinding<Props> {\n kind: \"text\";\n /** Runtime tracking is useful only for compiler-proven short-circuiting readers. */\n tracking?: \"dynamic\";\n path: readonly number[];\n /** Stable ref target emitted by newer compiler versions. */\n target?: number;\n dependencies: readonly number[];\n read(props: Props, state: readonly CompilerCell[]): unknown;\n}\n\nexport interface CompilerAttributeBinding<Props> {\n kind: \"attribute\";\n /** Runtime tracking is useful only for compiler-proven short-circuiting readers. */\n tracking?: \"dynamic\";\n path: readonly number[];\n /** Stable ref target emitted by newer compiler versions. */\n target?: number;\n dependencies: readonly number[];\n name: string;\n read(props: Props, state: readonly CompilerCell[]): unknown;\n}\n\nexport interface CompilerStyleBinding<Props> {\n kind: \"style\";\n /** Runtime tracking is useful only for compiler-proven short-circuiting readers. */\n tracking?: \"dynamic\";\n path: readonly number[];\n /** Stable ref target emitted by newer compiler versions. */\n target?: number;\n dependencies: readonly number[];\n name: string;\n read(props: Props, state: readonly CompilerCell[]): unknown;\n}\n\nexport interface CompilerConditionalBlockBinding {\n kind: \"block\";\n id: number;\n /** Nearest conditional boundary that owns this block, when nested. */\n parent?: number;\n dependencies: readonly number[];\n}\n\nexport interface CompilerConditionalBlockProps {\n id: number;\n render(): React.ReactNode;\n}\n\nexport interface CompilerKeyedListBlockProps {\n id: number;\n render(): React.ReactNode;\n}\n\nexport interface CompilerHostElement {\n kind: \"element\";\n tag: string;\n attributes: readonly { name: string; value: unknown }[];\n styles: readonly { name: string; value: unknown }[];\n children: readonly (CompilerHostElement | unknown)[];\n /** Direct-child structure owned without creating another React fiber. */\n block?: CompilerHostBlock;\n}\n\nexport type CompilerKeyedRowElement = CompilerHostElement;\n\nexport interface CompilerKeyedRowEvent {\n name: string;\n /** Host-element path relative to the keyed row root. */\n path?: readonly number[];\n invoke(item: unknown, index: number, event: React.SyntheticEvent): unknown;\n}\n\nexport interface CompilerKeyedRowConditionalBranch {\n bindings: readonly CompilerKeyedRowBinding[];\n}\n\nexport interface CompilerKeyedRowConditional {\n id: number;\n /** Host-container path relative to the keyed row root. */\n path: readonly number[];\n test(item: unknown, index: number): unknown;\n logical: boolean;\n truthy?: CompilerKeyedRowConditionalBranch;\n falsy?: CompilerKeyedRowConditionalBranch;\n}\n\nexport interface CompilerHostConditionalBinding {\n kind: \"text\" | \"attribute\" | \"style\";\n path: readonly number[];\n name?: string;\n read(): unknown;\n}\n\nexport interface CompilerStaticRangeBinding {\n kind: \"text\" | \"attribute\" | \"style\";\n /** Static segment before range N, or the trailing segment at ranges.length. */\n segment: number;\n /** Direct host sibling inside that static segment. */\n sibling: number;\n /** Host-element path relative to the selected static sibling. */\n path: readonly number[];\n name?: string;\n read(): unknown;\n}\n\nexport interface CompilerHostConditionalBranch {\n create(): CompilerHostElement;\n bindings: readonly CompilerHostConditionalBinding[];\n}\n\nexport interface CompilerHostConditionalRanges {\n kind: \"conditional-ranges\";\n id: number;\n ranges: readonly CompilerConditionalRange[];\n trailing: number;\n bindings?: readonly CompilerStaticRangeBinding[];\n}\n\nexport interface CompilerHostKeyedRanges {\n kind: \"keyed-ranges\";\n id: number;\n ranges: readonly CompilerKeyedRange[];\n trailing: number;\n bindings?: readonly CompilerStaticRangeBinding[];\n /** Compiler output may store only static direct children and materialize rows from the ranges. */\n staticChildrenOnly?: boolean;\n}\n\nexport interface CompilerHostMixedRanges {\n kind: \"mixed-ranges\";\n id: number;\n ranges: readonly CompilerMixedRange[];\n trailing: number;\n bindings?: readonly CompilerStaticRangeBinding[];\n}\n\nexport type CompilerHostBlock =\n | CompilerHostConditionalRanges\n | CompilerHostKeyedRanges\n | CompilerHostMixedRanges;\n\nexport interface CompilerHostConditionalBlockProps {\n id: number;\n render(): React.ReactElement;\n test(): unknown;\n /** Logical && can produce a visible number instead of an empty branch. */\n logical?: boolean;\n truthy?: CompilerHostConditionalBranch;\n falsy?: CompilerHostConditionalBranch;\n}\n\nexport interface CompilerConditionalRange {\n /** Number of static direct host siblings between this slot and the previous slot. */\n before: number;\n test(): unknown;\n /** Logical && can produce a visible number instead of an empty branch. */\n logical?: boolean;\n truthy?: CompilerHostConditionalBranch;\n falsy?: CompilerHostConditionalBranch;\n}\n\nexport interface CompilerConditionalRangesBlockProps {\n id: number;\n render(): React.ReactElement;\n rootRef?: React.RefCallback<Element>;\n ranges: readonly CompilerConditionalRange[];\n /** Number of static direct host siblings after the final conditional slot. */\n trailing: number;\n bindings?: readonly CompilerStaticRangeBinding[];\n}\n\nexport interface CompilerKeyedRowBinding {\n kind: \"text\" | \"attribute\" | \"style\";\n path: readonly number[];\n name?: string;\n /** Component state cells read by this binding, when emitted by the compiler. */\n dependencies?: readonly number[];\n /** A compiler-proven primitive value compared strictly with this row's key. */\n identityTarget?: {\n dependency: number;\n read(): unknown;\n };\n /** A compiler-proven native Set whose members are compared with this row's key. */\n membershipTarget?: {\n dependency: number;\n read(): unknown;\n };\n /** A compiler-proven native Map whose values are read with this row's key. */\n mapLookupTarget?: {\n dependency: number;\n read(): unknown;\n };\n read(item: unknown, index: number): unknown;\n}\n\nexport interface CompilerKeyedRowsBlockProps {\n id: number;\n render(\n event: (\n item: unknown,\n index: number,\n eventId: number,\n ) => React.EventHandler<React.SyntheticEvent>,\n conditional: (\n item: unknown,\n index: number,\n conditionalId: number,\n render: (item: unknown, index: number) => React.ReactNode,\n ) => React.ReactNode,\n ): React.ReactElement;\n items(): Iterable<unknown> | null | undefined;\n /** Complete component-state dependencies used anywhere inside this boundary. */\n dependencies?: readonly number[];\n /** State cells that can change the row collection or its key projection. */\n structureDependencies?: readonly number[];\n /** Direct state cell supplying items, eligible for compiler-emitted update hints. */\n collectionDependency?: number;\n /** Compiler proof that shifted row indexes are not observed by this boundary. */\n filterIndexIndependent?: boolean;\n /** Compiler proof that prepending cannot expose shifted indexes to existing rows. */\n prependIndexIndependent?: boolean;\n /** Compiler proof that a known-position insert cannot expose shifted row indexes. */\n positionIndexIndependent?: boolean;\n /** Compiler proof that reordering cannot expose changed row indexes. */\n reorderIndexIndependent?: boolean;\n rowKey(item: unknown, index: number): React.Key;\n create(item: unknown, index: number): CompilerKeyedRowElement;\n bindings: readonly CompilerKeyedRowBinding[];\n events?: readonly CompilerKeyedRowEvent[];\n /** Route compiler-proven bubbling row events through the stable React container. */\n delegateEvents?: boolean;\n conditionals?: readonly CompilerKeyedRowConditional[];\n /** Row descriptors contain compiler-owned nested host scopes. */\n hostBlocks?: boolean;\n}\n\nexport interface CompilerKeyedRange {\n /** Number of static direct host siblings between this range and the previous range. */\n before: number;\n items(): Iterable<unknown> | null | undefined;\n rowKey(item: unknown, index: number): React.Key;\n create(item: unknown, index: number): CompilerKeyedRowElement;\n bindings: readonly CompilerKeyedRowBinding[];\n}\n\nexport type CompilerMixedRange =\n | ({ kind: \"conditional\" } & CompilerConditionalRange)\n | ({ kind: \"keyed\" } & CompilerKeyedRange);\n\nexport interface CompilerMixedRangesBlockProps {\n id: number;\n render(): React.ReactElement;\n create(): CompilerHostElement;\n rootRef?: React.RefCallback<Element>;\n}\n\nexport interface CompilerKeyedRangesBlockProps {\n id: number;\n render(): React.ReactElement;\n rootRef?: React.RefCallback<Element>;\n ranges: readonly CompilerKeyedRange[];\n /** Number of static direct host siblings after the final keyed range. */\n trailing: number;\n bindings?: readonly CompilerStaticRangeBinding[];\n}\n\nexport interface CompilerComponentBlockProps {\n id: number;\n render(): React.ReactNode;\n}\n\nexport interface CompilerBlockRuntime {\n Conditional: React.ComponentType<CompilerConditionalBlockProps>;\n HostConditional: React.ComponentType<CompilerHostConditionalBlockProps>;\n ConditionalRanges: React.ComponentType<CompilerConditionalRangesBlockProps>;\n KeyedList: React.ComponentType<CompilerKeyedListBlockProps>;\n KeyedRows: React.ComponentType<CompilerKeyedRowsBlockProps>;\n KeyedRanges: React.ComponentType<CompilerKeyedRangesBlockProps>;\n MixedRanges: React.ComponentType<CompilerMixedRangesBlockProps>;\n Component: React.ComponentType<CompilerComponentBlockProps>;\n target(id: number): React.RefCallback<Element>;\n}\n\nexport type CompilerBinding<Props> =\n | CompilerTextBinding<Props>\n | CompilerAttributeBinding<Props>\n | CompilerStyleBinding<Props>\n | CompilerConditionalBlockBinding;\n\nexport interface CompiledComponentDefinition<Props> {\n displayName: string;\n /** Scheduler selected by the compiler. Hand-authored definitions default to `static`. */\n reactivity?: CompilerRuntimeReactivity;\n /** Stable development-only identity used to preserve state across compatible refreshes. */\n hmrId?: string;\n /** Changes when the compiler-owned state layout is no longer refresh-compatible. */\n stateSignature?: string;\n initialize(props: Props): readonly unknown[];\n /**\n * Compiler-emitted flat prop reads. Primitive values can share the local\n * dependency graph; identity-bearing values retain normal React rendering.\n */\n readProps?(props: Props): readonly unknown[];\n render(\n props: Props,\n state: readonly CompilerCell[],\n blocks: CompilerBlockRuntime,\n ): React.ReactElement;\n bindings: readonly CompilerBinding<Props>[];\n}\n\ninterface CompiledDefinitionReference<Props> {\n current: CompiledComponentDefinition<Props>;\n}\n\ninterface CompilerHmrRegistryEntry {\n component: React.ComponentType<unknown>;\n definition: CompiledDefinitionReference<unknown>;\n refreshListeners: Set<() => void>;\n stateSignature: string;\n runtimeSignature: string;\n}\n\ntype CompilerHmrRegistry = Map<string, CompilerHmrRegistryEntry>;\n\nconst COMPILER_HMR_REGISTRY = Symbol.for(\"@farm.js/react/compiler-hmr-registry\");\n\nfunction getCompilerHmrRegistry(): CompilerHmrRegistry {\n const globalTarget = globalThis as typeof globalThis & Record<symbol, unknown>;\n const existing = globalTarget[COMPILER_HMR_REGISTRY];\n if (existing instanceof Map) return existing as CompilerHmrRegistry;\n const registry: CompilerHmrRegistry = new Map();\n globalTarget[COMPILER_HMR_REGISTRY] = registry;\n return registry;\n}\n\nfunction renderTextValue(value: unknown): string {\n if (Array.isArray(value)) return value.map(renderTextValue).join(\"\");\n if (value === null || value === undefined || typeof value === \"boolean\") return \"\";\n return String(value);\n}\n\nfunction isCompilerPrimitive(value: unknown): boolean {\n if (value === null) return true;\n const kind = typeof value;\n return (\n kind === \"string\" ||\n kind === \"number\" ||\n kind === \"boolean\" ||\n kind === \"bigint\" ||\n kind === \"undefined\"\n );\n}\n\nfunction findBindingTarget(\n root: Element,\n path: readonly number[],\n blockRoots: ReadonlySet<Element>,\n): Element | null {\n let current: Element | null = root;\n for (const index of path) {\n if (!current) return null;\n current = [...current.children].filter((child) => !blockRoots.has(child))[index] || null;\n }\n return current;\n}\n\nconst UNITLESS_STYLE_PROPERTIES = new Set([\n \"animationIterationCount\",\n \"aspectRatio\",\n \"borderImageOutset\",\n \"borderImageSlice\",\n \"borderImageWidth\",\n \"boxFlex\",\n \"boxFlexGroup\",\n \"boxOrdinalGroup\",\n \"columnCount\",\n \"columns\",\n \"flex\",\n \"flexGrow\",\n \"flexNegative\",\n \"flexOrder\",\n \"flexPositive\",\n \"flexShrink\",\n \"fontWeight\",\n \"gridArea\",\n \"gridColumn\",\n \"gridColumnEnd\",\n \"gridColumnSpan\",\n \"gridColumnStart\",\n \"gridRow\",\n \"gridRowEnd\",\n \"gridRowSpan\",\n \"gridRowStart\",\n \"lineClamp\",\n \"lineHeight\",\n \"opacity\",\n \"order\",\n \"orphans\",\n \"scale\",\n \"tabSize\",\n \"widows\",\n \"zIndex\",\n \"zoom\",\n \"fillOpacity\",\n \"floodOpacity\",\n \"stopOpacity\",\n \"strokeDasharray\",\n \"strokeDashoffset\",\n \"strokeMiterlimit\",\n \"strokeOpacity\",\n \"strokeWidth\",\n]);\n\nfunction unprefixedStyleName(name: string): string {\n const unprefixed = name.replace(/^(?:Webkit|Moz|ms|O)(?=[A-Z])/, \"\");\n return unprefixed ? unprefixed[0].toLowerCase() + unprefixed.slice(1) : name;\n}\n\nfunction isHtmlOrSvgElement(element: Element): element is HTMLElement | SVGElement {\n const view = element.ownerDocument.defaultView;\n return Boolean(\n view && (element instanceof view.HTMLElement || element instanceof view.SVGElement),\n );\n}\n\nfunction isInputElement(element: Element): element is HTMLInputElement {\n const view = element.ownerDocument.defaultView;\n return Boolean(view && element instanceof view.HTMLInputElement);\n}\n\nfunction isTextAreaElement(element: Element): element is HTMLTextAreaElement {\n const view = element.ownerDocument.defaultView;\n return Boolean(view && element instanceof view.HTMLTextAreaElement);\n}\n\nfunction isSelectElement(element: Element): element is HTMLSelectElement {\n const view = element.ownerDocument.defaultView;\n return Boolean(view && element instanceof view.HTMLSelectElement);\n}\n\nfunction isOptionElement(element: Element): element is HTMLOptionElement {\n const view = element.ownerDocument.defaultView;\n return Boolean(view && element instanceof view.HTMLOptionElement);\n}\n\nfunction isSelectableTextControl(\n element: Element | null | undefined,\n): element is SelectableTextControl {\n return Boolean(element && (isInputElement(element) || isTextAreaElement(element)));\n}\n\nfunction updateStyle(element: Element, name: string, value: unknown): void {\n if (!isHtmlOrSvgElement(element)) return;\n const customProperty = name.startsWith(\"--\");\n let nextValue = \"\";\n if (value !== null && value !== undefined && typeof value !== \"boolean\" && value !== \"\") {\n nextValue =\n typeof value === \"number\" &&\n value !== 0 &&\n !customProperty &&\n !UNITLESS_STYLE_PROPERTIES.has(unprefixedStyleName(name))\n ? `${value}px`\n : String(value).trim();\n }\n\n if (customProperty || name.includes(\"-\")) {\n element.style.setProperty(name, nextValue);\n } else {\n (element.style as unknown as Record<string, string>)[name] = nextValue;\n }\n}\n\nfunction updateSelectValue(element: HTMLSelectElement, value: unknown): void {\n const options = [...element.options];\n if (element.multiple) {\n const selected = new Set(\n (Array.isArray(value) ? value : value === null || value === undefined ? [] : [value]).map(\n String,\n ),\n );\n for (const option of options) option.selected = selected.has(option.value);\n return;\n }\n\n const selectedValue = value === null || value === undefined ? \"\" : String(value);\n let fallback: HTMLOptionElement | undefined;\n for (const option of options) {\n if (!option.disabled && !fallback) fallback = option;\n if (option.value === selectedValue) {\n option.selected = true;\n return;\n }\n }\n if (fallback) fallback.selected = true;\n}\n\nfunction updateAttribute(element: Element, name: string, value: unknown): void {\n const attributeName = name === \"className\" ? \"class\" : name === \"htmlFor\" ? \"for\" : name;\n const stringifiesBoolean = attributeName.startsWith(\"data-\") || attributeName.startsWith(\"aria-\");\n\n if (name === \"value\" && (isInputElement(element) || isTextAreaElement(element))) {\n const nextValue = value === null || value === undefined ? \"\" : String(value);\n if (element.value !== nextValue) element.value = nextValue;\n return;\n }\n\n if (name === \"value\" && isSelectElement(element)) {\n updateSelectValue(element, value);\n return;\n }\n\n if (name === \"checked\" && isInputElement(element)) {\n element.checked = Boolean(value);\n return;\n }\n\n if (name === \"selected\" && isOptionElement(element)) {\n element.selected = Boolean(value);\n return;\n }\n\n if (name === \"disabled\" && \"disabled\" in element) {\n (element as HTMLButtonElement).disabled = Boolean(value);\n return;\n }\n\n if (value === null || value === undefined || (value === false && !stringifiesBoolean)) {\n element.removeAttribute(attributeName);\n } else if (value === true && !stringifiesBoolean) {\n element.setAttribute(attributeName, \"\");\n } else {\n element.setAttribute(attributeName, String(value));\n }\n}\n\ntype CompilerBlockRefresh = (afterCommit?: () => void, dirtyState?: ReadonlySet<number>) => void;\n\nexport interface CompilerRuntimeFeatureOwner {\n setRoot(id: number, root: Element | null): void;\n subscribe(id: number, refresh: CompilerBlockRefresh): () => void;\n}\n\nexport interface CompilerRuntimeFeature {\n /** Stable identity used by Fast Refresh compatibility checks. */\n name: string;\n create(owner: CompilerRuntimeFeatureOwner): Partial<CompilerBlockRuntime>;\n}\n\ninterface ConditionalBlockOwner {\n setRoot(id: number, root: Element | null): void;\n subscribe(id: number, refresh: CompilerBlockRefresh): () => void;\n}\n\nfunction createConditionalBlockComponent(\n owner: ConditionalBlockOwner,\n): React.ComponentType<CompilerConditionalBlockProps> {\n class FarmConditionalBlock extends React.Component<CompilerConditionalBlockProps> {\n static displayName = \"FarmCompiledConditionalBlock\";\n\n private unsubscribe: (() => void) | undefined;\n\n private captureRoot = (root: Element | null) => {\n owner.setRoot(this.props.id, root);\n };\n\n private refresh = (afterCommit?: () => void) => {\n this.forceUpdate(afterCommit);\n };\n\n private subscribe(): void {\n this.unsubscribe = owner.subscribe(this.props.id, this.refresh);\n }\n\n componentDidMount(): void {\n this.subscribe();\n }\n\n componentDidUpdate(previous: CompilerConditionalBlockProps): void {\n if (previous.id === this.props.id) return;\n this.unsubscribe?.();\n owner.setRoot(previous.id, null);\n this.subscribe();\n }\n\n componentWillUnmount(): void {\n this.unsubscribe?.();\n owner.setRoot(this.props.id, null);\n }\n\n render(): React.ReactNode {\n const node = this.props.render();\n if (!React.isValidElement(node)) {\n if (\n node === null ||\n node === undefined ||\n typeof node === \"boolean\" ||\n typeof node === \"string\" ||\n typeof node === \"number\" ||\n typeof node === \"bigint\"\n ) {\n return node;\n }\n throw new TypeError(\n `Compiled conditional block ${this.props.id} must return one host element or an empty value.`,\n );\n }\n if (typeof node.type !== \"string\") {\n throw new TypeError(\n `Compiled conditional block ${this.props.id} must return one host element.`,\n );\n }\n return React.cloneElement(node, {\n ref: this.captureRoot,\n } as React.Attributes);\n }\n }\n\n return FarmConditionalBlock;\n}\n\nfunction createKeyedListBlockComponent(\n owner: Pick<ConditionalBlockOwner, \"subscribe\">,\n): React.ComponentType<CompilerKeyedListBlockProps> {\n class FarmKeyedListBlock extends React.Component<CompilerKeyedListBlockProps> {\n static displayName = \"FarmCompiledKeyedListBlock\";\n\n private unsubscribe: (() => void) | undefined;\n\n private refresh = (afterCommit?: () => void) => {\n this.forceUpdate(afterCommit);\n };\n\n private subscribe(): void {\n this.unsubscribe = owner.subscribe(this.props.id, this.refresh);\n }\n\n componentDidMount(): void {\n this.subscribe();\n }\n\n componentDidUpdate(previous: CompilerKeyedListBlockProps): void {\n if (previous.id === this.props.id) return;\n this.unsubscribe?.();\n this.subscribe();\n }\n\n componentWillUnmount(): void {\n this.unsubscribe?.();\n }\n\n render(): React.ReactNode {\n return this.props.render();\n }\n }\n\n return FarmKeyedListBlock;\n}\n\ninterface CompilerHostInstance {\n element: Element;\n values: unknown[];\n scope?: CompilerHostTreeScope;\n}\n\nfunction isCompilerHostElement(value: unknown): value is CompilerHostElement {\n return (\n typeof value === \"object\" && value !== null && (value as { kind?: unknown }).kind === \"element\"\n );\n}\n\nfunction createCompilerHostElement(document: Document, descriptor: CompilerHostElement): Element {\n const element = document.createElement(descriptor.tag);\n for (const attribute of descriptor.attributes) {\n updateAttribute(element, attribute.name, attribute.value);\n }\n for (const style of descriptor.styles) updateStyle(element, style.name, style.value);\n const appendChild = (child: unknown): void => {\n if (Array.isArray(child)) {\n for (const nested of child) appendChild(nested);\n return;\n }\n if (isCompilerHostElement(child)) {\n element.append(createCompilerHostElement(document, child));\n return;\n }\n const text = renderTextValue(child);\n if (text) element.append(document.createTextNode(text));\n };\n for (const child of materializeCompilerHostChildren(descriptor)) appendChild(child);\n // Select options and textarea text must exist before their controlled value\n // is finalized. Reapplying is harmless for other attributes and avoids a\n // transient/default selection becoming the compiled branch's final state.\n for (const attribute of descriptor.attributes) {\n if (attribute.name === \"value\" && (isSelectElement(element) || isTextAreaElement(element))) {\n updateAttribute(element, attribute.name, attribute.value);\n }\n }\n return element;\n}\n\nfunction matchesCompilerHostElement(\n element: Element,\n descriptor: CompilerHostElement,\n opaquePaths: ReadonlySet<string> = new Set(),\n path: readonly number[] = [],\n): boolean {\n if (element.tagName.toLowerCase() !== descriptor.tag.toLowerCase()) return false;\n if (opaquePaths.has(path.join(\".\")) || descriptor.block) return true;\n const expectedChildren = flattenCompilerHostElements(descriptor.children);\n if (element.children.length !== expectedChildren.length) return false;\n return expectedChildren.every((child, index) =>\n matchesCompilerHostElement(element.children[index], child, opaquePaths, [...path, index]),\n );\n}\n\nfunction flattenCompilerHostElements(children: readonly unknown[]): CompilerHostElement[] {\n const elements: CompilerHostElement[] = [];\n const visit = (child: unknown): void => {\n if (Array.isArray(child)) {\n for (const nested of child) visit(nested);\n } else if (isCompilerHostElement(child)) {\n elements.push(child);\n }\n };\n for (const child of children) visit(child);\n return elements;\n}\n\nfunction materializeCompilerHostChildren(descriptor: CompilerHostElement): readonly unknown[] {\n const block = descriptor.block;\n if (block?.kind !== \"keyed-ranges\" || !block.staticChildrenOnly) {\n return descriptor.children;\n }\n const staticChildren = flattenCompilerHostElements(descriptor.children);\n const children: CompilerHostElement[] = [];\n let cursor = 0;\n for (const range of block.ranges) {\n children.push(...staticChildren.slice(cursor, cursor + range.before));\n cursor += range.before;\n const items = materializeIterable(range.items());\n children.push(...items.map((item, index) => range.create(item, index)));\n }\n children.push(...staticChildren.slice(cursor, cursor + block.trailing));\n return children;\n}\n\nfunction collectCompilerHostBlockIds(descriptor: CompilerHostElement, ids: Set<number>): void {\n for (const child of flattenCompilerHostElements(descriptor.children)) {\n collectCompilerHostBlockIds(child, ids);\n }\n const block = descriptor.block;\n if (!block || ids.has(block.id)) return;\n ids.add(block.id);\n if (block.kind === \"conditional-ranges\") {\n for (const range of block.ranges) {\n if (range.truthy) collectCompilerHostBlockIds(range.truthy.create(), ids);\n if (range.falsy) collectCompilerHostBlockIds(range.falsy.create(), ids);\n }\n } else if (block.kind === \"keyed-ranges\") {\n for (const range of block.ranges) {\n const first = materializeIterable(range.items())[0];\n if (first !== undefined) collectCompilerHostBlockIds(range.create(first, 0), ids);\n }\n } else {\n for (const range of block.ranges) {\n if (range.kind === \"conditional\") {\n if (range.truthy) collectCompilerHostBlockIds(range.truthy.create(), ids);\n if (range.falsy) collectCompilerHostBlockIds(range.falsy.create(), ids);\n } else {\n const first = materializeIterable(range.items())[0];\n if (first !== undefined) collectCompilerHostBlockIds(range.create(first, 0), ids);\n }\n }\n }\n}\n\nfunction findCompilerHostTarget(root: Element, path: readonly number[]): Element | null {\n let current: Element | null = root;\n for (const index of path) current = current?.children[index] || null;\n return current;\n}\n\nconst UNSET_STATIC_RANGE_BINDING = Symbol(\"unset static range binding\");\n\nfunction normalizedStaticRangeBindingValue(\n binding: CompilerStaticRangeBinding,\n value: unknown,\n): unknown {\n return binding.kind === \"text\" ? renderTextValue(value) : value;\n}\n\nfunction applyStaticRangeBindings(\n bindings: readonly CompilerStaticRangeBinding[] | undefined,\n segments: readonly (readonly Element[])[],\n values: unknown[],\n): boolean {\n const activeBindings = bindings || [];\n if (values.length === 0 && activeBindings.length > 0) {\n values.push(...activeBindings.map(() => UNSET_STATIC_RANGE_BINDING));\n }\n if (values.length !== activeBindings.length) return false;\n\n for (let index = 0; index < activeBindings.length; index += 1) {\n const binding = activeBindings[index];\n if (\n !Number.isSafeInteger(binding.segment) ||\n binding.segment < 0 ||\n !Number.isSafeInteger(binding.sibling) ||\n binding.sibling < 0\n ) {\n return false;\n }\n const sibling = segments[binding.segment]?.[binding.sibling];\n const target = sibling && findCompilerHostTarget(sibling, binding.path);\n if (!target) return false;\n const rawValue = binding.read();\n const value = normalizedStaticRangeBindingValue(binding, rawValue);\n if (Object.is(values[index], value)) continue;\n values[index] = value;\n if (binding.kind === \"text\") {\n target.textContent = value as string;\n } else if (binding.kind === \"style\" && binding.name) {\n updateStyle(target, binding.name, rawValue);\n } else if (binding.kind === \"attribute\" && binding.name) {\n updateAttribute(target, binding.name, rawValue);\n } else {\n return false;\n }\n }\n return true;\n}\n\ninterface CompilerKeyedRowInstance extends CompilerHostInstance {\n key: string;\n item: unknown;\n index: number;\n conditionalValues: ReadonlyMap<number, readonly unknown[]>;\n}\n\ninterface CompilerKeyedIdentityTargetSnapshot {\n eligible: boolean;\n key?: string;\n}\n\ninterface CompilerKeyedMembershipTargetSnapshot {\n eligible: boolean;\n values?: ReadonlySet<unknown>;\n previous?: CompilerKeyedMembershipTargetSnapshot;\n changes?: ReadonlyMap<unknown, boolean>;\n sourceToken?: object;\n targetedKeys?: ReadonlySet<string>;\n depth?: number;\n}\n\ninterface CompilerKeyedMapLookupTargetSnapshot {\n eligible: boolean;\n values?: ReadonlyMap<unknown, unknown>;\n previous?: CompilerKeyedMapLookupTargetSnapshot;\n changes?: ReadonlyMap<unknown, CompilerKeyedMapLookupValue>;\n sourceToken?: object;\n targetedKeys?: ReadonlySet<string>;\n depth?: number;\n}\n\ninterface CompilerKeyedMapLookupValue {\n present: boolean;\n value?: unknown;\n}\n\nconst UNSET_KEYED_ROW_BINDING = Symbol(\"unset interactive keyed-row binding\");\n\nfunction keyedRowIdentity(key: React.Key): string {\n return String(key);\n}\n\nfunction keyedIdentityTargetSnapshot(value: unknown): CompilerKeyedIdentityTargetSnapshot {\n const kind = typeof value;\n return value === null ||\n value === undefined ||\n kind === \"string\" ||\n kind === \"number\" ||\n kind === \"bigint\"\n ? { eligible: true, key: String(value) }\n : { eligible: false };\n}\n\nconst NATIVE_SET_PROTOTYPE = Set.prototype;\nconst NATIVE_SET_ADD = Set.prototype.add;\nconst NATIVE_SET_DELETE = Set.prototype.delete;\nconst NATIVE_SET_HAS = Set.prototype.has;\nconst NATIVE_SET_VALUES = Set.prototype.values;\nconst KEYED_COLLECTION_SNAPSHOT_MAX_DEPTH = 64;\n\nfunction materializeKeyedMembershipSnapshot(\n snapshot: CompilerKeyedMembershipTargetSnapshot,\n): Set<unknown> | undefined {\n if (!snapshot.eligible) return undefined;\n if (snapshot.values) return new Set(snapshot.values);\n if (!snapshot.previous || !snapshot.changes) return undefined;\n const values = materializeKeyedMembershipSnapshot(snapshot.previous);\n if (!values) return undefined;\n for (const [key, present] of snapshot.changes) {\n if (present) NATIVE_SET_ADD.call(values, key);\n else NATIVE_SET_DELETE.call(values, key);\n }\n return values;\n}\n\nfunction keyedMembershipSnapshotHas(\n snapshot: CompilerKeyedMembershipTargetSnapshot,\n key: unknown,\n): boolean | undefined {\n for (\n let current: CompilerKeyedMembershipTargetSnapshot | undefined = snapshot;\n current;\n current = current.previous\n ) {\n if (!current.eligible) return undefined;\n if (current.changes?.has(key)) return current.changes.get(key);\n if (current.values) return NATIVE_SET_HAS.call(current.values, key);\n }\n return undefined;\n}\n\nfunction keyedMembershipDeltaSnapshot(\n value: unknown,\n previous: CompilerKeyedMembershipTargetSnapshot,\n): CompilerKeyedMembershipTargetSnapshot | undefined {\n if (!previous.eligible || !previous.sourceToken) return undefined;\n const target = compilerObject(value);\n if (!target) return undefined;\n const changedKeys = compilerKeyedCollectionChangedKeys(value, previous.sourceToken, \"set\");\n if (!changedKeys) return undefined;\n if (\n Object.getPrototypeOf(value) !== NATIVE_SET_PROTOTYPE ||\n Object.prototype.hasOwnProperty.call(value, \"has\") ||\n (value as Set<unknown>).has !== NATIVE_SET_HAS\n ) {\n return undefined;\n }\n\n const changes = new Map<unknown, boolean>();\n const targetedKeys = new Set<string>();\n try {\n for (const key of changedKeys) {\n if (!keyedIdentityTargetSnapshot(key).eligible) return undefined;\n const present = NATIVE_SET_HAS.call(value as Set<unknown>, key);\n const before = keyedMembershipSnapshotHas(previous, key);\n if (before === undefined) return undefined;\n changes.set(key, present);\n if (before !== present) NATIVE_SET_ADD.call(targetedKeys, String(key));\n }\n } catch {\n return undefined;\n }\n const depth = (previous.depth || 0) + 1;\n if (depth > KEYED_COLLECTION_SNAPSHOT_MAX_DEPTH) return undefined;\n return {\n eligible: true,\n previous,\n changes,\n sourceToken: commitCompilerKeyedCollection(value),\n targetedKeys,\n depth,\n };\n}\n\nfunction keyedMembershipTargetSnapshot(\n value: unknown,\n previous?: CompilerKeyedMembershipTargetSnapshot,\n): CompilerKeyedMembershipTargetSnapshot {\n if (previous) {\n const delta = keyedMembershipDeltaSnapshot(value, previous);\n if (delta) return delta;\n }\n if (typeof value !== \"object\" || value === null) return { eligible: false };\n let iterator: SetIterator<unknown>;\n try {\n iterator = NATIVE_SET_VALUES.call(value as Set<unknown>);\n } catch {\n return { eligible: false };\n }\n if (\n Object.getPrototypeOf(value) !== NATIVE_SET_PROTOTYPE ||\n Object.prototype.hasOwnProperty.call(value, \"has\") ||\n (value as Set<unknown>).has !== NATIVE_SET_HAS\n ) {\n return { eligible: false };\n }\n const values = new Set<unknown>();\n try {\n for (const entry of iterator) {\n if (!keyedIdentityTargetSnapshot(entry).eligible) return { eligible: false };\n NATIVE_SET_ADD.call(values, entry);\n }\n } catch {\n return { eligible: false };\n }\n return {\n eligible: true,\n values,\n sourceToken: commitCompilerKeyedCollection(value),\n depth: 0,\n };\n}\n\nfunction keyedMembershipChangedKeys(\n previousSnapshot: CompilerKeyedMembershipTargetSnapshot,\n nextSnapshot: CompilerKeyedMembershipTargetSnapshot,\n): Set<string> {\n if (nextSnapshot.targetedKeys) return new Set(nextSnapshot.targetedKeys);\n const previous = materializeKeyedMembershipSnapshot(previousSnapshot);\n const next = materializeKeyedMembershipSnapshot(nextSnapshot);\n const keys = new Set<string>();\n if (!previous || !next) return keys;\n for (const value of previous) {\n if (!NATIVE_SET_HAS.call(next, value)) NATIVE_SET_ADD.call(keys, String(value));\n }\n for (const value of next) {\n if (!NATIVE_SET_HAS.call(previous, value)) NATIVE_SET_ADD.call(keys, String(value));\n }\n return keys;\n}\n\nconst NATIVE_MAP_PROTOTYPE = Map.prototype;\nconst NATIVE_MAP_GET = Map.prototype.get;\nconst NATIVE_MAP_HAS = Map.prototype.has;\nconst NATIVE_MAP_SET = Map.prototype.set;\nconst NATIVE_MAP_DELETE = Map.prototype.delete;\nconst NATIVE_MAP_ENTRIES = Map.prototype.entries;\n\nfunction isSafeKeyedMapLookupValue(value: unknown): boolean {\n return (\n value === null ||\n value === undefined ||\n typeof value === \"string\" ||\n typeof value === \"number\" ||\n typeof value === \"bigint\" ||\n typeof value === \"boolean\"\n );\n}\n\nfunction materializeKeyedMapLookupSnapshot(\n snapshot: CompilerKeyedMapLookupTargetSnapshot,\n): Map<unknown, unknown> | undefined {\n if (!snapshot.eligible) return undefined;\n if (snapshot.values) return new Map(snapshot.values);\n if (!snapshot.previous || !snapshot.changes) return undefined;\n const values = materializeKeyedMapLookupSnapshot(snapshot.previous);\n if (!values) return undefined;\n for (const [key, entry] of snapshot.changes) {\n if (entry.present) NATIVE_MAP_SET.call(values, key, entry.value);\n else NATIVE_MAP_DELETE.call(values, key);\n }\n return values;\n}\n\nfunction keyedMapLookupSnapshotValue(\n snapshot: CompilerKeyedMapLookupTargetSnapshot,\n key: unknown,\n): CompilerKeyedMapLookupValue | undefined {\n for (\n let current: CompilerKeyedMapLookupTargetSnapshot | undefined = snapshot;\n current;\n current = current.previous\n ) {\n if (!current.eligible) return undefined;\n const changed = current.changes?.get(key);\n if (changed) return changed;\n if (current.values) {\n const present = NATIVE_MAP_HAS.call(current.values, key);\n return {\n present,\n ...(present ? { value: NATIVE_MAP_GET.call(current.values, key) } : {}),\n };\n }\n }\n return undefined;\n}\n\nfunction keyedMapLookupDeltaSnapshot(\n value: unknown,\n previous: CompilerKeyedMapLookupTargetSnapshot,\n): CompilerKeyedMapLookupTargetSnapshot | undefined {\n if (!previous.eligible || !previous.sourceToken) return undefined;\n const target = compilerObject(value);\n if (!target) return undefined;\n const changedKeys = compilerKeyedCollectionChangedKeys(value, previous.sourceToken, \"map\");\n if (!changedKeys) return undefined;\n if (\n Object.getPrototypeOf(value) !== NATIVE_MAP_PROTOTYPE ||\n Object.prototype.hasOwnProperty.call(value, \"get\") ||\n (value as Map<unknown, unknown>).get !== NATIVE_MAP_GET\n ) {\n return undefined;\n }\n\n const changes = new Map<unknown, CompilerKeyedMapLookupValue>();\n const targetedKeys = new Set<string>();\n try {\n for (const key of changedKeys) {\n if (!keyedIdentityTargetSnapshot(key).eligible) return undefined;\n const present = NATIVE_MAP_HAS.call(value as Map<unknown, unknown>, key);\n const entry = present ? NATIVE_MAP_GET.call(value as Map<unknown, unknown>, key) : undefined;\n if (present && !isSafeKeyedMapLookupValue(entry)) return undefined;\n const before = keyedMapLookupSnapshotValue(previous, key);\n if (!before) return undefined;\n changes.set(key, { present, ...(present ? { value: entry } : {}) });\n if (before.present !== present || !Object.is(before.value, entry)) {\n NATIVE_SET_ADD.call(targetedKeys, String(key));\n }\n }\n } catch {\n return undefined;\n }\n const depth = (previous.depth || 0) + 1;\n if (depth > KEYED_COLLECTION_SNAPSHOT_MAX_DEPTH) return undefined;\n return {\n eligible: true,\n previous,\n changes,\n sourceToken: commitCompilerKeyedCollection(value),\n targetedKeys,\n depth,\n };\n}\n\nfunction keyedMapLookupTargetSnapshot(\n value: unknown,\n previous?: CompilerKeyedMapLookupTargetSnapshot,\n): CompilerKeyedMapLookupTargetSnapshot {\n if (previous) {\n const delta = keyedMapLookupDeltaSnapshot(value, previous);\n if (delta) return delta;\n }\n if (typeof value !== \"object\" || value === null) return { eligible: false };\n let iterator: MapIterator<[unknown, unknown]>;\n try {\n iterator = NATIVE_MAP_ENTRIES.call(value as Map<unknown, unknown>);\n } catch {\n return { eligible: false };\n }\n if (\n Object.getPrototypeOf(value) !== NATIVE_MAP_PROTOTYPE ||\n Object.prototype.hasOwnProperty.call(value, \"get\") ||\n (value as Map<unknown, unknown>).get !== NATIVE_MAP_GET\n ) {\n return { eligible: false };\n }\n const values = new Map<unknown, unknown>();\n try {\n for (const [key, entry] of iterator) {\n if (!keyedIdentityTargetSnapshot(key).eligible || !isSafeKeyedMapLookupValue(entry)) {\n return { eligible: false };\n }\n NATIVE_MAP_SET.call(values, key, entry);\n }\n } catch {\n return { eligible: false };\n }\n return {\n eligible: true,\n values,\n sourceToken: commitCompilerKeyedCollection(value),\n depth: 0,\n };\n}\n\nfunction keyedMapLookupChangedKeys(\n previousSnapshot: CompilerKeyedMapLookupTargetSnapshot,\n nextSnapshot: CompilerKeyedMapLookupTargetSnapshot,\n): Set<string> {\n if (nextSnapshot.targetedKeys) return new Set(nextSnapshot.targetedKeys);\n const previous = materializeKeyedMapLookupSnapshot(previousSnapshot);\n const next = materializeKeyedMapLookupSnapshot(nextSnapshot);\n const keys = new Set<string>();\n if (!previous || !next) return keys;\n for (const [key, value] of previous) {\n if (!Object.is(value, NATIVE_MAP_GET.call(next, key))) {\n NATIVE_SET_ADD.call(keys, String(key));\n }\n }\n for (const [key, value] of next) {\n if (!Object.is(value, NATIVE_MAP_GET.call(previous, key))) {\n NATIVE_SET_ADD.call(keys, String(key));\n }\n }\n return keys;\n}\n\nfunction normalizedKeyedRowBindingValue(binding: CompilerKeyedRowBinding, value: unknown): unknown {\n return binding.kind === \"text\" ? renderTextValue(value) : value;\n}\n\ntype CompilerKeyedRowBindingSource = Pick<CompilerKeyedRowsBlockProps, \"bindings\">;\n\nfunction readKeyedRowBindingValues(\n props: CompilerKeyedRowBindingSource,\n item: unknown,\n index: number,\n): unknown[] {\n return props.bindings.map((binding) =>\n normalizedKeyedRowBindingValue(binding, binding.read(item, index)),\n );\n}\n\nfunction applyKeyedRowBindings(\n props: CompilerKeyedRowBindingSource,\n instance: CompilerKeyedRowInstance,\n item: unknown,\n index: number,\n): void {\n for (let bindingIndex = 0; bindingIndex < props.bindings.length; bindingIndex += 1) {\n applyKeyedRowBinding(props, instance, item, index, bindingIndex);\n }\n}\n\nfunction applyKeyedRowBinding(\n props: CompilerKeyedRowBindingSource,\n instance: CompilerKeyedRowInstance,\n item: unknown,\n index: number,\n bindingIndex: number,\n): void {\n const binding = props.bindings[bindingIndex];\n const rawValue = binding.read(item, index);\n const value = normalizedKeyedRowBindingValue(binding, rawValue);\n if (Object.is(instance.values[bindingIndex], value)) return;\n instance.values[bindingIndex] = value;\n const target = findCompilerHostTarget(instance.element, binding.path);\n if (!target) return;\n if (binding.kind === \"text\") {\n target.textContent = value as string;\n } else if (binding.kind === \"style\" && binding.name) {\n updateStyle(target, binding.name, rawValue);\n } else if (binding.kind === \"attribute\" && binding.name) {\n updateAttribute(target, binding.name, rawValue);\n }\n}\n\nfunction keyedRowConditionalSnapshot(\n conditional: CompilerKeyedRowConditional,\n item: unknown,\n index: number,\n): readonly unknown[] {\n const test = conditional.test(item, index);\n if (conditional.logical && !test) {\n return typeof test === \"number\" || typeof test === \"bigint\" ? [\"primitive\", test] : [\"empty\"];\n }\n const key = test ? \"truthy\" : \"falsy\";\n const branch = key === \"truthy\" ? conditional.truthy : conditional.falsy;\n if (!branch) return [\"empty\"];\n return [\n key,\n ...branch.bindings.map((binding) =>\n normalizedKeyedRowBindingValue(binding, binding.read(item, index)),\n ),\n ];\n}\n\nfunction readKeyedRowConditionalValues(\n props: CompilerKeyedRowsBlockProps,\n item: unknown,\n index: number,\n): ReadonlyMap<number, readonly unknown[]> {\n if (!props.conditionals?.length) return EMPTY_KEYED_ROW_CONDITIONAL_VALUES;\n return new Map(\n props.conditionals.map((conditional) => [\n conditional.id,\n keyedRowConditionalSnapshot(conditional, item, index),\n ]),\n );\n}\n\nconst EMPTY_KEYED_ROW_CONDITIONAL_VALUES: ReadonlyMap<number, readonly unknown[]> = new Map();\n\nfunction keyedRowConditionalChanged(\n previous: readonly unknown[] | undefined,\n next: readonly unknown[],\n): boolean {\n return (\n !previous ||\n previous.length !== next.length ||\n next.some((value, index) => !Object.is(value, previous[index]))\n );\n}\n\ntype CompilerHostConditionalSelection =\n | {\n kind: \"branch\";\n key: \"truthy\" | \"falsy\";\n branch: CompilerHostConditionalBranch;\n }\n | { kind: \"empty\" }\n | { kind: \"fallback\" };\ntype CompilerHostConditionalPreparedSelection = Exclude<\n CompilerHostConditionalSelection,\n { kind: \"fallback\" }\n>;\n\nfunction hostConditionalSelection(\n props: Pick<CompilerHostConditionalBlockProps, \"test\" | \"logical\" | \"truthy\" | \"falsy\">,\n): CompilerHostConditionalSelection {\n const test = props.test();\n if (props.logical && !test) {\n // React renders 0, NaN, and (where supported) 0n from `value && <Element />`.\n // The host-only fast path cannot represent that primitive branch, so retain\n // React's exact behavior rather than coercing it to an empty branch.\n if (typeof test === \"number\" || typeof test === \"bigint\") return { kind: \"fallback\" };\n return { kind: \"empty\" };\n }\n const key = test ? \"truthy\" : \"falsy\";\n const branch = key === \"truthy\" ? props.truthy : props.falsy;\n return branch ? { kind: \"branch\", key, branch } : { kind: \"empty\" };\n}\n\nfunction normalizedHostConditionalBindingValue(\n binding: CompilerHostConditionalBinding,\n value: unknown,\n): unknown {\n return binding.kind === \"text\" ? renderTextValue(value) : value;\n}\n\nfunction applyHostConditionalBindings(\n branch: CompilerHostConditionalBranch,\n instance: CompilerHostInstance,\n): void {\n for (let bindingIndex = 0; bindingIndex < branch.bindings.length; bindingIndex += 1) {\n const binding = branch.bindings[bindingIndex];\n const rawValue = binding.read();\n const value = normalizedHostConditionalBindingValue(binding, rawValue);\n if (Object.is(instance.values[bindingIndex], value)) continue;\n instance.values[bindingIndex] = value;\n const target = findCompilerHostTarget(instance.element, binding.path);\n if (!target) continue;\n if (binding.kind === \"text\") {\n target.textContent = value as string;\n } else if (binding.kind === \"style\" && binding.name) {\n updateStyle(target, binding.name, rawValue);\n } else if (binding.kind === \"attribute\" && binding.name) {\n updateAttribute(target, binding.name, rawValue);\n }\n }\n}\n\ninterface CompilerHostTreeScope {\n cleanup(): void;\n update(descriptor: CompilerHostElement): boolean;\n}\n\nconst UNSET_HOST_CONDITIONAL_BINDING = Symbol(\"unset host conditional binding\");\n\nfunction mountCompilerHostTree(\n owner: Pick<ConditionalBlockOwner, \"subscribe\">,\n element: Element,\n descriptor: CompilerHostElement,\n onFallback: () => void,\n): CompilerHostTreeScope | null {\n if (!matchesCompilerHostElement(element, descriptor)) return null;\n if (descriptor.block?.kind === \"conditional-ranges\") {\n const controller = new CompilerNestedConditionalRanges(\n owner,\n element,\n descriptor,\n descriptor.block,\n onFallback,\n );\n try {\n if (controller.adopt()) return controller;\n controller.cleanup();\n return null;\n } catch (error) {\n controller.cleanup();\n throw error;\n }\n }\n if (descriptor.block?.kind === \"keyed-ranges\") {\n const controller = new CompilerNestedKeyedRanges(\n owner,\n element,\n descriptor,\n descriptor.block,\n onFallback,\n );\n try {\n if (controller.adopt()) return controller;\n controller.cleanup();\n return null;\n } catch (error) {\n controller.cleanup();\n throw error;\n }\n }\n if (descriptor.block?.kind === \"mixed-ranges\") {\n const controller = new CompilerNestedMixedRanges(\n owner,\n element,\n descriptor,\n descriptor.block,\n onFallback,\n );\n try {\n if (controller.adopt()) return controller;\n controller.cleanup();\n return null;\n } catch (error) {\n controller.cleanup();\n throw error;\n }\n }\n\n const descriptors = flattenCompilerHostElements(descriptor.children);\n if (descriptors.length !== element.children.length) return null;\n const scopes: CompilerHostTreeScope[] = [];\n for (let index = 0; index < descriptors.length; index += 1) {\n const scope = mountCompilerHostTree(\n owner,\n element.children[index],\n descriptors[index],\n onFallback,\n );\n if (!scope) {\n for (const mounted of scopes) mounted.cleanup();\n return null;\n }\n scopes.push(scope);\n }\n let active = true;\n return {\n update(nextDescriptor) {\n if (!active || nextDescriptor.block || !matchesCompilerHostElement(element, nextDescriptor)) {\n return false;\n }\n const nextChildren = flattenCompilerHostElements(nextDescriptor.children);\n if (nextChildren.length !== scopes.length) return false;\n return scopes.every((scope, index) => scope.update(nextChildren[index]));\n },\n cleanup() {\n if (!active) return;\n active = false;\n for (const scope of scopes) scope.cleanup();\n },\n };\n}\n\nfunction mountCompilerHostInstance(\n owner: Pick<ConditionalBlockOwner, \"subscribe\">,\n element: Element,\n descriptor: CompilerHostElement,\n branch: Pick<CompilerHostConditionalBranch, \"bindings\">,\n onFallback: () => void,\n): CompilerHostInstance | null {\n const scope = mountCompilerHostTree(owner, element, descriptor, onFallback);\n if (!scope) return null;\n const instance: CompilerHostInstance = {\n element,\n scope,\n values: branch.bindings.map(() => UNSET_HOST_CONDITIONAL_BINDING),\n };\n try {\n applyHostConditionalBindings(branch as CompilerHostConditionalBranch, instance);\n } catch (error) {\n scope.cleanup();\n throw error;\n }\n return instance;\n}\n\ninterface NestedConditionalRangeInstance {\n key: \"truthy\" | \"falsy\";\n host: CompilerHostInstance;\n}\n\nclass CompilerNestedConditionalRanges implements CompilerHostTreeScope {\n private readonly instances: Array<NestedConditionalRangeInstance | null> = [];\n private readonly staticSegments: Element[][] = [];\n private readonly staticScopes: CompilerHostTreeScope[] = [];\n private readonly staticValues: unknown[] = [];\n private unsubscribe: (() => void) | undefined;\n private active = true;\n\n constructor(\n private readonly owner: Pick<ConditionalBlockOwner, \"subscribe\">,\n private readonly root: Element,\n private host: CompilerHostElement,\n private block: CompilerHostConditionalRanges,\n private readonly onFallback: () => void,\n ) {}\n\n private readSelections(): CompilerHostConditionalPreparedSelection[] | null {\n const selections: CompilerHostConditionalPreparedSelection[] = [];\n for (const range of this.block.ranges) {\n const selection = hostConditionalSelection(range);\n if (selection.kind === \"fallback\") return null;\n selections.push(selection);\n }\n return selections;\n }\n\n private mountStatic(\n elements: readonly Element[],\n descriptors: readonly CompilerHostElement[],\n ): boolean {\n if (elements.length !== descriptors.length) return false;\n for (let index = 0; index < elements.length; index += 1) {\n const scope = mountCompilerHostTree(\n this.owner,\n elements[index],\n descriptors[index],\n this.onFallback,\n );\n if (!scope) return false;\n this.staticScopes.push(scope);\n }\n return true;\n }\n\n adopt(): boolean {\n if (!Number.isSafeInteger(this.block.trailing) || this.block.trailing < 0) return false;\n const selections = this.readSelections();\n if (!selections) return false;\n const elements = [...this.root.children];\n const descriptors = flattenCompilerHostElements(this.host.children);\n if (elements.length !== descriptors.length) return false;\n let cursor = 0;\n\n for (let index = 0; index < this.block.ranges.length; index += 1) {\n const range = this.block.ranges[index];\n if (!Number.isSafeInteger(range.before) || range.before < 0) {\n this.cleanup();\n return false;\n }\n const staticEnd = cursor + range.before;\n if (\n staticEnd > elements.length ||\n !this.mountStatic(elements.slice(cursor, staticEnd), descriptors.slice(cursor, staticEnd))\n ) {\n this.cleanup();\n return false;\n }\n this.staticSegments.push(elements.slice(cursor, staticEnd));\n cursor = staticEnd;\n\n const selection = selections[index];\n if (selection.kind === \"empty\") {\n this.instances.push(null);\n continue;\n }\n const element = elements[cursor];\n if (!element) {\n this.cleanup();\n return false;\n }\n const descriptor = selection.branch.create();\n const host = mountCompilerHostInstance(\n this.owner,\n element,\n descriptor,\n selection.branch,\n this.onFallback,\n );\n if (!host) {\n this.cleanup();\n return false;\n }\n this.instances.push({ key: selection.key, host });\n cursor += 1;\n }\n\n const trailingEnd = cursor + this.block.trailing;\n if (\n trailingEnd !== elements.length ||\n !this.mountStatic(elements.slice(cursor), descriptors.slice(cursor))\n ) {\n this.cleanup();\n return false;\n }\n this.staticSegments.push(elements.slice(cursor));\n if (!applyStaticRangeBindings(this.block.bindings, this.staticSegments, this.staticValues)) {\n this.cleanup();\n return false;\n }\n this.unsubscribe = this.owner.subscribe(this.block.id, this.refresh);\n return true;\n }\n\n private anchorAfter(rangeIndex: number): ChildNode | null {\n for (let next = rangeIndex + 1; next < this.instances.length; next += 1) {\n const staticAnchor = this.staticSegments[next]?.[0];\n if (staticAnchor) return staticAnchor;\n const rangeAnchor = this.instances[next]?.host.element;\n if (rangeAnchor) return rangeAnchor;\n }\n return this.staticSegments[this.instances.length]?.[0] || null;\n }\n\n private reconcileRange(\n rangeIndex: number,\n selection: CompilerHostConditionalPreparedSelection,\n ): boolean {\n const previous = this.instances[rangeIndex];\n if (selection.kind === \"empty\") {\n previous?.host.scope?.cleanup();\n previous?.host.element.remove();\n this.instances[rangeIndex] = null;\n return true;\n }\n if (previous?.key === selection.key) {\n const descriptor = selection.branch.create();\n if (!previous.host.scope?.update(descriptor)) return false;\n applyHostConditionalBindings(selection.branch, previous.host);\n return true;\n }\n\n const descriptor = selection.branch.create();\n const element = createCompilerHostElement(this.root.ownerDocument, descriptor);\n const host = mountCompilerHostInstance(\n this.owner,\n element,\n descriptor,\n selection.branch,\n this.onFallback,\n );\n if (!host) return false;\n previous?.host.scope?.cleanup();\n if (previous) previous.host.element.replaceWith(element);\n else this.root.insertBefore(element, this.anchorAfter(rangeIndex));\n this.instances[rangeIndex] = { key: selection.key, host };\n return true;\n }\n\n private refresh = (afterCommit?: () => void) => {\n if (!this.active) {\n afterCommit?.();\n return;\n }\n const selections = this.readSelections();\n if (!selections || selections.length !== this.instances.length) {\n this.onFallback();\n afterCommit?.();\n return;\n }\n if (!applyStaticRangeBindings(this.block.bindings, this.staticSegments, this.staticValues)) {\n this.onFallback();\n afterCommit?.();\n return;\n }\n for (let index = this.instances.length - 1; index >= 0; index -= 1) {\n if (!this.reconcileRange(index, selections[index])) {\n this.onFallback();\n afterCommit?.();\n return;\n }\n }\n afterCommit?.();\n };\n\n private updateStaticScopes(\n descriptor: CompilerHostElement,\n selections: readonly CompilerHostConditionalPreparedSelection[],\n ): boolean {\n const descriptors = flattenCompilerHostElements(descriptor.children);\n let descriptorIndex = 0;\n let scopeIndex = 0;\n for (let rangeIndex = 0; rangeIndex < this.block.ranges.length; rangeIndex += 1) {\n const range = this.block.ranges[rangeIndex];\n for (let index = 0; index < range.before; index += 1) {\n const scope = this.staticScopes[scopeIndex++];\n const child = descriptors[descriptorIndex++];\n if (!scope || !child || !scope.update(child)) return false;\n }\n if (selections[rangeIndex].kind === \"branch\") descriptorIndex += 1;\n }\n for (let index = 0; index < this.block.trailing; index += 1) {\n const scope = this.staticScopes[scopeIndex++];\n const child = descriptors[descriptorIndex++];\n if (!scope || !child || !scope.update(child)) return false;\n }\n return scopeIndex === this.staticScopes.length && descriptorIndex === descriptors.length;\n }\n\n update(descriptor: CompilerHostElement): boolean {\n const block = descriptor.block;\n if (\n !this.active ||\n block?.kind !== \"conditional-ranges\" ||\n block.id !== this.block.id ||\n block.ranges.length !== this.block.ranges.length ||\n block.trailing !== this.block.trailing ||\n block.ranges.some((range, index) => range.before !== this.block.ranges[index].before)\n ) {\n return false;\n }\n this.host = descriptor;\n this.block = block;\n const selections = this.readSelections();\n if (\n !selections ||\n !this.updateStaticScopes(descriptor, selections) ||\n !applyStaticRangeBindings(this.block.bindings, this.staticSegments, this.staticValues)\n ) {\n return false;\n }\n for (let index = this.instances.length - 1; index >= 0; index -= 1) {\n if (!this.reconcileRange(index, selections[index])) return false;\n }\n return true;\n }\n\n cleanup(): void {\n if (!this.active) return;\n this.active = false;\n this.unsubscribe?.();\n for (const instance of this.instances) instance?.host.scope?.cleanup();\n for (const scope of this.staticScopes) scope.cleanup();\n this.instances.length = 0;\n this.staticSegments.length = 0;\n this.staticScopes.length = 0;\n this.staticValues.length = 0;\n }\n}\n\ninterface NestedReadKeyedRange {\n items: unknown[];\n keys: string[];\n}\n\nclass CompilerNestedKeyedRanges implements CompilerHostTreeScope {\n private readonly instances: Array<Map<string, CompilerKeyedRowInstance>> = [];\n private readonly staticSegments: Element[][] = [];\n private readonly staticScopes: CompilerHostTreeScope[] = [];\n private readonly staticValues: unknown[] = [];\n private unsubscribe: (() => void) | undefined;\n private active = true;\n\n constructor(\n private readonly owner: Pick<ConditionalBlockOwner, \"subscribe\">,\n private readonly root: Element,\n private host: CompilerHostElement,\n private block: CompilerHostKeyedRanges,\n private readonly onFallback: () => void,\n ) {}\n\n private readRange(range: CompilerKeyedRange): NestedReadKeyedRange | null {\n const items = materializeIterable(range.items());\n const keys = items.map((item, index) => keyedRowIdentity(range.rowKey(item, index)));\n return new Set(keys).size === keys.length ? { items, keys } : null;\n }\n\n private readRanges(): NestedReadKeyedRange[] | null {\n const ranges: NestedReadKeyedRange[] = [];\n for (const range of this.block.ranges) {\n const rows = this.readRange(range);\n if (!rows) return null;\n ranges.push(rows);\n }\n return ranges;\n }\n\n private mountStatic(\n elements: readonly Element[],\n descriptors: readonly CompilerHostElement[],\n ): boolean {\n if (elements.length !== descriptors.length) return false;\n for (let index = 0; index < elements.length; index += 1) {\n const scope = mountCompilerHostTree(\n this.owner,\n elements[index],\n descriptors[index],\n this.onFallback,\n );\n if (!scope) return false;\n this.staticScopes.push(scope);\n }\n return true;\n }\n\n adopt(): boolean {\n if (!Number.isSafeInteger(this.block.trailing) || this.block.trailing < 0) return false;\n const rowsByRange = this.readRanges();\n if (!rowsByRange) return false;\n const elements = [...this.root.children];\n const descriptors = flattenCompilerHostElements(materializeCompilerHostChildren(this.host));\n if (elements.length !== descriptors.length) return false;\n let cursor = 0;\n\n for (let rangeIndex = 0; rangeIndex < this.block.ranges.length; rangeIndex += 1) {\n const range = this.block.ranges[rangeIndex];\n const rows = rowsByRange[rangeIndex];\n if (!Number.isSafeInteger(range.before) || range.before < 0) {\n this.cleanup();\n return false;\n }\n const staticEnd = cursor + range.before;\n if (\n staticEnd > elements.length ||\n !this.mountStatic(elements.slice(cursor, staticEnd), descriptors.slice(cursor, staticEnd))\n ) {\n this.cleanup();\n return false;\n }\n this.staticSegments.push(elements.slice(cursor, staticEnd));\n cursor = staticEnd;\n\n const instances = new Map<string, CompilerKeyedRowInstance>();\n for (let index = 0; index < rows.items.length; index += 1) {\n const element = elements[cursor + index];\n if (!element) {\n this.cleanup();\n return false;\n }\n const descriptor = range.create(rows.items[index], index);\n const scope = mountCompilerHostTree(this.owner, element, descriptor, this.onFallback);\n if (!scope) {\n this.cleanup();\n return false;\n }\n instances.set(rows.keys[index], {\n key: rows.keys[index],\n element,\n scope,\n values: range.bindings.map(() => UNSET_KEYED_ROW_BINDING),\n item: rows.items[index],\n index,\n conditionalValues: new Map(),\n });\n applyKeyedRowBindings(range, instances.get(rows.keys[index])!, rows.items[index], index);\n }\n this.instances.push(instances);\n cursor += rows.items.length;\n }\n\n const trailingEnd = cursor + this.block.trailing;\n if (\n trailingEnd !== elements.length ||\n !this.mountStatic(elements.slice(cursor), descriptors.slice(cursor))\n ) {\n this.cleanup();\n return false;\n }\n this.staticSegments.push(elements.slice(cursor));\n if (!applyStaticRangeBindings(this.block.bindings, this.staticSegments, this.staticValues)) {\n this.cleanup();\n return false;\n }\n this.unsubscribe = this.owner.subscribe(this.block.id, this.refresh);\n return true;\n }\n\n private anchorAfter(rangeIndex: number): ChildNode | null {\n for (let next = rangeIndex + 1; next < this.instances.length; next += 1) {\n const staticAnchor = this.staticSegments[next]?.[0];\n if (staticAnchor) return staticAnchor;\n const rowAnchor = this.instances[next].values().next().value?.element;\n if (rowAnchor) return rowAnchor;\n }\n return this.staticSegments[this.instances.length]?.[0] || null;\n }\n\n private reconcileRange(rangeIndex: number, rows: NestedReadKeyedRange): boolean {\n const range = this.block.ranges[rangeIndex];\n const previous = this.instances[rangeIndex];\n const oldIndices = new Map<string, number>();\n [...previous.keys()].forEach((key, index) => oldIndices.set(key, index));\n const nextKeys = new Set(rows.keys);\n for (const [key, instance] of previous) {\n if (nextKeys.has(key)) continue;\n instance.scope?.cleanup();\n instance.element.remove();\n }\n\n const sequence = rows.keys.map((key) => oldIndices.get(key) ?? -1);\n const stablePositions = longestIncreasingSubsequencePositions(sequence);\n const nextInstances: CompilerKeyedRowInstance[] = [];\n for (let index = 0; index < rows.items.length; index += 1) {\n const key = rows.keys[index];\n const existing = previous.get(key);\n if (existing) {\n const descriptor = range.create(rows.items[index], index);\n if (!existing.scope?.update(descriptor)) return false;\n applyKeyedRowBindings(range, existing, rows.items[index], index);\n existing.item = rows.items[index];\n existing.index = index;\n nextInstances.push(existing);\n continue;\n }\n const descriptor = range.create(rows.items[index], index);\n const element = createCompilerHostElement(this.root.ownerDocument, descriptor);\n const scope = mountCompilerHostTree(this.owner, element, descriptor, this.onFallback);\n if (!scope) return false;\n nextInstances.push({\n key,\n element,\n scope,\n values: readKeyedRowBindingValues(range, rows.items[index], index),\n item: rows.items[index],\n index,\n conditionalValues: new Map(),\n });\n }\n\n let anchor = this.anchorAfter(rangeIndex);\n for (let index = nextInstances.length - 1; index >= 0; index -= 1) {\n const instance = nextInstances[index];\n if (\n sequence[index] < 0 ||\n (!stablePositions.has(index) && instance.element.nextSibling !== anchor)\n ) {\n this.root.insertBefore(instance.element, anchor);\n }\n anchor = instance.element;\n }\n this.instances[rangeIndex] = new Map(nextInstances.map((instance) => [instance.key, instance]));\n return true;\n }\n\n private refresh = (afterCommit?: () => void) => {\n if (!this.active) {\n afterCommit?.();\n return;\n }\n const rowsByRange = this.readRanges();\n if (!rowsByRange || rowsByRange.length !== this.instances.length) {\n this.onFallback();\n afterCommit?.();\n return;\n }\n if (!applyStaticRangeBindings(this.block.bindings, this.staticSegments, this.staticValues)) {\n this.onFallback();\n afterCommit?.();\n return;\n }\n const activeElement = this.root.ownerDocument.activeElement;\n const restoreFocus = Boolean(activeElement && this.root.contains(activeElement));\n for (let index = rowsByRange.length - 1; index >= 0; index -= 1) {\n if (!this.reconcileRange(index, rowsByRange[index])) {\n this.onFallback();\n afterCommit?.();\n return;\n }\n }\n if (\n restoreFocus &&\n activeElement?.isConnected &&\n activeElement.ownerDocument.activeElement !== activeElement &&\n \"focus\" in activeElement\n ) {\n (activeElement as HTMLElement).focus({ preventScroll: true });\n }\n afterCommit?.();\n };\n\n private updateStaticScopes(\n descriptor: CompilerHostElement,\n rowsByRange: readonly NestedReadKeyedRange[],\n ): boolean {\n const descriptors = flattenCompilerHostElements(materializeCompilerHostChildren(descriptor));\n let descriptorIndex = 0;\n let scopeIndex = 0;\n for (let rangeIndex = 0; rangeIndex < this.block.ranges.length; rangeIndex += 1) {\n const range = this.block.ranges[rangeIndex];\n for (let index = 0; index < range.before; index += 1) {\n const scope = this.staticScopes[scopeIndex++];\n const child = descriptors[descriptorIndex++];\n if (!scope || !child || !scope.update(child)) return false;\n }\n descriptorIndex += rowsByRange[rangeIndex].items.length;\n }\n for (let index = 0; index < this.block.trailing; index += 1) {\n const scope = this.staticScopes[scopeIndex++];\n const child = descriptors[descriptorIndex++];\n if (!scope || !child || !scope.update(child)) return false;\n }\n return scopeIndex === this.staticScopes.length && descriptorIndex === descriptors.length;\n }\n\n update(descriptor: CompilerHostElement): boolean {\n const block = descriptor.block;\n if (\n !this.active ||\n block?.kind !== \"keyed-ranges\" ||\n block.id !== this.block.id ||\n block.ranges.length !== this.block.ranges.length ||\n block.trailing !== this.block.trailing ||\n block.ranges.some((range, index) => range.before !== this.block.ranges[index].before)\n ) {\n return false;\n }\n this.host = descriptor;\n this.block = block;\n const rowsByRange = this.readRanges();\n if (\n !rowsByRange ||\n rowsByRange.length !== this.instances.length ||\n !this.updateStaticScopes(descriptor, rowsByRange) ||\n !applyStaticRangeBindings(this.block.bindings, this.staticSegments, this.staticValues)\n ) {\n return false;\n }\n for (let index = rowsByRange.length - 1; index >= 0; index -= 1) {\n if (!this.reconcileRange(index, rowsByRange[index])) return false;\n }\n return true;\n }\n\n cleanup(): void {\n if (!this.active) return;\n this.active = false;\n this.unsubscribe?.();\n for (const instances of this.instances) {\n for (const instance of instances.values()) instance.scope?.cleanup();\n }\n for (const scope of this.staticScopes) scope.cleanup();\n this.instances.length = 0;\n this.staticSegments.length = 0;\n this.staticScopes.length = 0;\n this.staticValues.length = 0;\n }\n}\n\ntype NestedMixedRangeSnapshot =\n | { kind: \"conditional\"; selection: CompilerHostConditionalPreparedSelection }\n | { kind: \"keyed\"; rows: NestedReadKeyedRange };\n\ntype NestedMixedRangeInstance =\n | { kind: \"conditional\"; value: NestedConditionalRangeInstance | null }\n | { kind: \"keyed\"; value: Map<string, CompilerKeyedRowInstance> };\n\nclass CompilerNestedMixedRanges implements CompilerHostTreeScope {\n private readonly instances: NestedMixedRangeInstance[] = [];\n private readonly staticSegments: Element[][] = [];\n private readonly staticScopes: CompilerHostTreeScope[] = [];\n private readonly staticValues: unknown[] = [];\n private unsubscribe: (() => void) | undefined;\n private active = true;\n\n constructor(\n private readonly owner: Pick<ConditionalBlockOwner, \"subscribe\">,\n private readonly root: Element,\n private host: CompilerHostElement,\n private block: CompilerHostMixedRanges,\n private readonly onFallback: () => void,\n ) {}\n\n private readSnapshots(): NestedMixedRangeSnapshot[] | null {\n const snapshots: NestedMixedRangeSnapshot[] = [];\n for (const range of this.block.ranges) {\n if (range.kind === \"conditional\") {\n const selection = hostConditionalSelection(range);\n if (selection.kind === \"fallback\") return null;\n snapshots.push({ kind: \"conditional\", selection });\n continue;\n }\n const items = materializeIterable(range.items());\n const keys = items.map((item, index) => keyedRowIdentity(range.rowKey(item, index)));\n if (new Set(keys).size !== keys.length) return null;\n snapshots.push({ kind: \"keyed\", rows: { items, keys } });\n }\n return snapshots;\n }\n\n private mountStatic(\n elements: readonly Element[],\n descriptors: readonly CompilerHostElement[],\n ): boolean {\n if (elements.length !== descriptors.length) return false;\n for (let index = 0; index < elements.length; index += 1) {\n const scope = mountCompilerHostTree(\n this.owner,\n elements[index],\n descriptors[index],\n this.onFallback,\n );\n if (!scope) return false;\n this.staticScopes.push(scope);\n }\n return true;\n }\n\n adopt(): boolean {\n if (!Number.isSafeInteger(this.block.trailing) || this.block.trailing < 0) return false;\n const snapshots = this.readSnapshots();\n if (!snapshots) return false;\n const elements = [...this.root.children];\n const descriptors = flattenCompilerHostElements(this.host.children);\n if (elements.length !== descriptors.length) return false;\n let cursor = 0;\n\n for (let rangeIndex = 0; rangeIndex < this.block.ranges.length; rangeIndex += 1) {\n const range = this.block.ranges[rangeIndex];\n const snapshot = snapshots[rangeIndex];\n if (!Number.isSafeInteger(range.before) || range.before < 0 || range.kind !== snapshot.kind) {\n this.cleanup();\n return false;\n }\n const staticEnd = cursor + range.before;\n if (\n staticEnd > elements.length ||\n !this.mountStatic(elements.slice(cursor, staticEnd), descriptors.slice(cursor, staticEnd))\n ) {\n this.cleanup();\n return false;\n }\n this.staticSegments.push(elements.slice(cursor, staticEnd));\n cursor = staticEnd;\n\n if (range.kind === \"conditional\" && snapshot.kind === \"conditional\") {\n if (snapshot.selection.kind === \"empty\") {\n this.instances.push({ kind: \"conditional\", value: null });\n continue;\n }\n const element = elements[cursor];\n if (!element) {\n this.cleanup();\n return false;\n }\n const descriptor = snapshot.selection.branch.create();\n const host = mountCompilerHostInstance(\n this.owner,\n element,\n descriptor,\n snapshot.selection.branch,\n this.onFallback,\n );\n if (!host) {\n this.cleanup();\n return false;\n }\n this.instances.push({\n kind: \"conditional\",\n value: { key: snapshot.selection.key, host },\n });\n cursor += 1;\n continue;\n }\n\n if (range.kind !== \"keyed\" || snapshot.kind !== \"keyed\") {\n this.cleanup();\n return false;\n }\n const keyedInstances = new Map<string, CompilerKeyedRowInstance>();\n for (let index = 0; index < snapshot.rows.items.length; index += 1) {\n const element = elements[cursor + index];\n if (!element) {\n this.cleanup();\n return false;\n }\n const descriptor = range.create(snapshot.rows.items[index], index);\n const scope = mountCompilerHostTree(this.owner, element, descriptor, this.onFallback);\n if (!scope) {\n this.cleanup();\n return false;\n }\n const instance: CompilerKeyedRowInstance = {\n key: snapshot.rows.keys[index],\n element,\n scope,\n values: range.bindings.map(() => UNSET_KEYED_ROW_BINDING),\n item: snapshot.rows.items[index],\n index,\n conditionalValues: new Map(),\n };\n try {\n applyKeyedRowBindings(range, instance, snapshot.rows.items[index], index);\n } catch (error) {\n scope.cleanup();\n throw error;\n }\n keyedInstances.set(snapshot.rows.keys[index], instance);\n }\n this.instances.push({ kind: \"keyed\", value: keyedInstances });\n cursor += snapshot.rows.items.length;\n }\n\n const trailingEnd = cursor + this.block.trailing;\n if (\n trailingEnd !== elements.length ||\n !this.mountStatic(elements.slice(cursor), descriptors.slice(cursor))\n ) {\n this.cleanup();\n return false;\n }\n this.staticSegments.push(elements.slice(cursor));\n if (!applyStaticRangeBindings(this.block.bindings, this.staticSegments, this.staticValues)) {\n this.cleanup();\n return false;\n }\n this.unsubscribe = this.owner.subscribe(this.block.id, this.refresh);\n return true;\n }\n\n private firstInstanceElement(instance: NestedMixedRangeInstance): Element | null {\n if (instance.kind === \"conditional\") return instance.value?.host.element || null;\n return instance.value.values().next().value?.element || null;\n }\n\n private anchorAfter(rangeIndex: number): ChildNode | null {\n for (let next = rangeIndex + 1; next < this.instances.length; next += 1) {\n const staticAnchor = this.staticSegments[next]?.[0];\n if (staticAnchor) return staticAnchor;\n const rangeAnchor = this.firstInstanceElement(this.instances[next]);\n if (rangeAnchor) return rangeAnchor;\n }\n return this.staticSegments[this.instances.length]?.[0] || null;\n }\n\n private reconcileConditional(\n rangeIndex: number,\n range: CompilerMixedRange & { kind: \"conditional\" },\n selection: CompilerHostConditionalPreparedSelection,\n ): boolean {\n const instance = this.instances[rangeIndex];\n if (instance.kind !== \"conditional\") return false;\n const previous = instance.value;\n if (selection.kind === \"empty\") {\n previous?.host.scope?.cleanup();\n previous?.host.element.remove();\n instance.value = null;\n return true;\n }\n if (previous?.key === selection.key) {\n const descriptor = selection.branch.create();\n if (!previous.host.scope?.update(descriptor)) return false;\n applyHostConditionalBindings(selection.branch, previous.host);\n return true;\n }\n const descriptor = selection.branch.create();\n const element = createCompilerHostElement(this.root.ownerDocument, descriptor);\n const host = mountCompilerHostInstance(\n this.owner,\n element,\n descriptor,\n selection.branch,\n this.onFallback,\n );\n if (!host) return false;\n previous?.host.scope?.cleanup();\n if (previous) previous.host.element.replaceWith(element);\n else this.root.insertBefore(element, this.anchorAfter(rangeIndex));\n instance.value = { key: selection.key, host };\n return true;\n }\n\n private reconcileKeyed(\n rangeIndex: number,\n range: CompilerMixedRange & { kind: \"keyed\" },\n rows: NestedReadKeyedRange,\n ): boolean {\n const instance = this.instances[rangeIndex];\n if (instance.kind !== \"keyed\") return false;\n const previous = instance.value;\n const oldIndices = new Map<string, number>();\n [...previous.keys()].forEach((key, index) => oldIndices.set(key, index));\n const nextKeys = new Set(rows.keys);\n for (const [key, row] of previous) {\n if (nextKeys.has(key)) continue;\n row.scope?.cleanup();\n row.element.remove();\n }\n\n const sequence = rows.keys.map((key) => oldIndices.get(key) ?? -1);\n const stablePositions = longestIncreasingSubsequencePositions(sequence);\n const nextInstances: CompilerKeyedRowInstance[] = [];\n for (let index = 0; index < rows.items.length; index += 1) {\n const key = rows.keys[index];\n const existing = previous.get(key);\n if (existing) {\n const descriptor = range.create(rows.items[index], index);\n if (!existing.scope?.update(descriptor)) return false;\n applyKeyedRowBindings(range, existing, rows.items[index], index);\n existing.item = rows.items[index];\n existing.index = index;\n nextInstances.push(existing);\n continue;\n }\n const descriptor = range.create(rows.items[index], index);\n const element = createCompilerHostElement(this.root.ownerDocument, descriptor);\n const scope = mountCompilerHostTree(this.owner, element, descriptor, this.onFallback);\n if (!scope) return false;\n let values: unknown[];\n try {\n values = readKeyedRowBindingValues(range, rows.items[index], index);\n } catch (error) {\n scope.cleanup();\n throw error;\n }\n nextInstances.push({\n key,\n element,\n scope,\n values,\n item: rows.items[index],\n index,\n conditionalValues: new Map(),\n });\n }\n\n let anchor = this.anchorAfter(rangeIndex);\n for (let index = nextInstances.length - 1; index >= 0; index -= 1) {\n const row = nextInstances[index];\n if (\n sequence[index] < 0 ||\n (!stablePositions.has(index) && row.element.nextSibling !== anchor)\n ) {\n this.root.insertBefore(row.element, anchor);\n }\n anchor = row.element;\n }\n instance.value = new Map(nextInstances.map((row) => [row.key, row]));\n return true;\n }\n\n private reconcileRange(rangeIndex: number, snapshot: NestedMixedRangeSnapshot): boolean {\n const range = this.block.ranges[rangeIndex];\n if (range.kind !== snapshot.kind) return false;\n return range.kind === \"conditional\" && snapshot.kind === \"conditional\"\n ? this.reconcileConditional(rangeIndex, range, snapshot.selection)\n : range.kind === \"keyed\" && snapshot.kind === \"keyed\"\n ? this.reconcileKeyed(rangeIndex, range, snapshot.rows)\n : false;\n }\n\n private refresh = (afterCommit?: () => void) => {\n if (!this.active) {\n afterCommit?.();\n return;\n }\n const snapshots = this.readSnapshots();\n if (!snapshots || snapshots.length !== this.instances.length) {\n this.onFallback();\n afterCommit?.();\n return;\n }\n if (!applyStaticRangeBindings(this.block.bindings, this.staticSegments, this.staticValues)) {\n this.onFallback();\n afterCommit?.();\n return;\n }\n const activeElement = this.root.ownerDocument.activeElement;\n const restoreFocus = Boolean(activeElement && this.root.contains(activeElement));\n for (let index = snapshots.length - 1; index >= 0; index -= 1) {\n if (!this.reconcileRange(index, snapshots[index])) {\n this.onFallback();\n afterCommit?.();\n return;\n }\n }\n if (\n restoreFocus &&\n activeElement?.isConnected &&\n activeElement.ownerDocument.activeElement !== activeElement &&\n \"focus\" in activeElement\n ) {\n (activeElement as HTMLElement).focus({ preventScroll: true });\n }\n afterCommit?.();\n };\n\n private updateStaticScopes(\n descriptor: CompilerHostElement,\n snapshots: readonly NestedMixedRangeSnapshot[],\n ): boolean {\n const descriptors = flattenCompilerHostElements(descriptor.children);\n let descriptorIndex = 0;\n let scopeIndex = 0;\n for (let rangeIndex = 0; rangeIndex < this.block.ranges.length; rangeIndex += 1) {\n const range = this.block.ranges[rangeIndex];\n for (let index = 0; index < range.before; index += 1) {\n const scope = this.staticScopes[scopeIndex++];\n const child = descriptors[descriptorIndex++];\n if (!scope || !child || !scope.update(child)) return false;\n }\n const snapshot = snapshots[rangeIndex];\n if (snapshot.kind === \"conditional\") {\n if (snapshot.selection.kind === \"branch\") descriptorIndex += 1;\n } else {\n descriptorIndex += snapshot.rows.items.length;\n }\n }\n for (let index = 0; index < this.block.trailing; index += 1) {\n const scope = this.staticScopes[scopeIndex++];\n const child = descriptors[descriptorIndex++];\n if (!scope || !child || !scope.update(child)) return false;\n }\n return scopeIndex === this.staticScopes.length && descriptorIndex === descriptors.length;\n }\n\n update(descriptor: CompilerHostElement): boolean {\n const block = descriptor.block;\n if (\n !this.active ||\n block?.kind !== \"mixed-ranges\" ||\n block.id !== this.block.id ||\n block.ranges.length !== this.block.ranges.length ||\n block.trailing !== this.block.trailing ||\n block.ranges.some(\n (range, index) =>\n range.kind !== this.block.ranges[index].kind ||\n range.before !== this.block.ranges[index].before,\n )\n ) {\n return false;\n }\n this.host = descriptor;\n this.block = block;\n const snapshots = this.readSnapshots();\n if (\n !snapshots ||\n snapshots.length !== this.instances.length ||\n !this.updateStaticScopes(descriptor, snapshots) ||\n !applyStaticRangeBindings(this.block.bindings, this.staticSegments, this.staticValues)\n ) {\n return false;\n }\n for (let index = snapshots.length - 1; index >= 0; index -= 1) {\n if (!this.reconcileRange(index, snapshots[index])) return false;\n }\n return true;\n }\n\n cleanup(): void {\n if (!this.active) return;\n this.active = false;\n this.unsubscribe?.();\n for (const instance of this.instances) {\n if (instance.kind === \"conditional\") {\n instance.value?.host.scope?.cleanup();\n } else {\n for (const row of instance.value.values()) row.scope?.cleanup();\n }\n }\n for (const scope of this.staticScopes) scope.cleanup();\n this.instances.length = 0;\n this.staticSegments.length = 0;\n this.staticScopes.length = 0;\n this.staticValues.length = 0;\n }\n}\n\nfunction createHostConditionalBlockComponent(\n owner: Pick<ConditionalBlockOwner, \"subscribe\">,\n): React.ComponentType<CompilerHostConditionalBlockProps> {\n interface State {\n fallback: boolean;\n }\n\n class FarmHostConditionalBlock extends React.Component<CompilerHostConditionalBlockProps, State> {\n static displayName = \"FarmCompiledHostConditional\";\n\n state: State = { fallback: false };\n private root: Element | null = null;\n private mounted = false;\n private fallbackRequested = false;\n private fallbackVersion = 0;\n private propSyncQueued = false;\n private currentProps = this.props;\n private unsubscribe: (() => void) | undefined;\n private fallbackUnsubscribers: Array<() => void> = [];\n private activeBranch: \"truthy\" | \"falsy\" | null = null;\n private instance: CompilerHostInstance | null = null;\n\n private requestNestedFallback = () => {\n this.instance?.scope?.cleanup();\n this.activateFallback();\n };\n\n private subscribeFallbackDescendants(): void {\n for (const unsubscribe of this.fallbackUnsubscribers) unsubscribe();\n this.fallbackUnsubscribers = [];\n const ids = new Set<number>();\n if (this.currentProps.truthy) {\n collectCompilerHostBlockIds(this.currentProps.truthy.create(), ids);\n }\n if (this.currentProps.falsy) {\n collectCompilerHostBlockIds(this.currentProps.falsy.create(), ids);\n }\n ids.delete(this.currentProps.id);\n for (const id of ids) {\n this.fallbackUnsubscribers.push(\n owner.subscribe(id, (afterCommit) => {\n this.fallbackVersion += 1;\n this.forceUpdate(afterCommit);\n }),\n );\n }\n }\n\n private captureRoot = (root: Element | null) => {\n this.root = root;\n };\n\n private adopt(): boolean {\n if (!this.root) return false;\n const selection = hostConditionalSelection(this.currentProps);\n if (selection.kind === \"fallback\") return false;\n if (selection.kind === \"empty\") {\n if (this.root.childNodes.length !== 0) return false;\n this.activeBranch = null;\n this.instance = null;\n return true;\n }\n if (\n this.root.childNodes.length !== 1 ||\n this.root.firstElementChild === null ||\n this.root.firstElementChild !== this.root.firstChild\n ) {\n return false;\n }\n const descriptor = selection.branch.create();\n const element = this.root.firstElementChild;\n if (!matchesCompilerHostElement(element, descriptor)) return false;\n const instance = mountCompilerHostInstance(\n owner,\n element,\n descriptor,\n selection.branch,\n this.requestNestedFallback,\n );\n if (!instance) return false;\n this.activeBranch = selection.key;\n this.instance = instance;\n return true;\n }\n\n private activateFallback(afterCommit?: () => void): void {\n if (!this.mounted || this.state.fallback || this.fallbackRequested) {\n afterCommit?.();\n return;\n }\n this.fallbackRequested = true;\n this.instance?.scope?.cleanup();\n this.instance = null;\n this.activeBranch = null;\n this.subscribeFallbackDescendants();\n // One key change on entry: the compiled path mutated the DOM behind\n // React's back, so the first fallback render must rebuild the subtree.\n this.fallbackVersion += 1;\n this.setState({ fallback: true }, afterCommit);\n }\n\n private reconcile(afterCommit?: () => void): void {\n if (!this.mounted || !this.root) {\n afterCommit?.();\n return;\n }\n if (this.state.fallback) {\n // React owns the container while in fallback; re-render with the\n // stable key so updates reconcile in place instead of remounting the\n // subtree (which would wipe uncontrolled inputs, focus, and scroll).\n this.forceUpdate(afterCommit);\n return;\n }\n\n const selection = hostConditionalSelection(this.currentProps);\n if (selection.kind === \"fallback\") {\n this.activateFallback(afterCommit);\n return;\n }\n if (selection.kind === \"empty\") {\n this.instance?.scope?.cleanup();\n if (this.instance) this.instance.element.remove();\n this.activeBranch = null;\n this.instance = null;\n afterCommit?.();\n return;\n }\n if (this.activeBranch === selection.key && this.instance) {\n const descriptor = selection.branch.create();\n const scope = mountCompilerHostTree(\n owner,\n this.instance.element,\n descriptor,\n this.requestNestedFallback,\n );\n if (!scope) {\n this.activateFallback(afterCommit);\n return;\n }\n this.instance.scope?.cleanup();\n this.instance.scope = scope;\n applyHostConditionalBindings(selection.branch, this.instance);\n afterCommit?.();\n return;\n }\n\n const descriptor = selection.branch.create();\n const element = createCompilerHostElement(this.root.ownerDocument, descriptor);\n const instance = mountCompilerHostInstance(\n owner,\n element,\n descriptor,\n selection.branch,\n this.requestNestedFallback,\n );\n if (!instance) {\n this.activateFallback(afterCommit);\n return;\n }\n this.instance?.scope?.cleanup();\n this.root.replaceChildren(element);\n this.activeBranch = selection.key;\n this.instance = instance;\n afterCommit?.();\n }\n\n private refresh = (afterCommit?: () => void) => {\n this.reconcile(afterCommit);\n };\n\n private schedulePropSync(): void {\n if (this.propSyncQueued) return;\n this.propSyncQueued = true;\n queueMicrotask(() => {\n this.propSyncQueued = false;\n if (this.mounted && !this.state.fallback) this.reconcile();\n });\n }\n\n shouldComponentUpdate(nextProps: CompilerHostConditionalBlockProps, nextState: State): boolean {\n this.currentProps = nextProps;\n if (nextState.fallback || this.state.fallback) return true;\n this.schedulePropSync();\n return false;\n }\n\n componentDidMount(): void {\n this.mounted = true;\n this.unsubscribe = owner.subscribe(this.props.id, this.refresh);\n if (!this.adopt()) this.activateFallback();\n }\n\n componentWillUnmount(): void {\n this.mounted = false;\n this.unsubscribe?.();\n for (const unsubscribe of this.fallbackUnsubscribers) unsubscribe();\n this.fallbackUnsubscribers = [];\n this.instance?.scope?.cleanup();\n this.root = null;\n this.activeBranch = null;\n this.instance = null;\n }\n\n render(): React.ReactNode {\n const container = this.currentProps.render();\n if (!React.isValidElement(container) || typeof container.type !== \"string\") {\n throw new TypeError(\n `Compiled host conditional ${this.currentProps.id} must own one host container.`,\n );\n }\n return React.cloneElement(container, {\n key: this.state.fallback ? `react-${this.fallbackVersion}` : \"compiled\",\n ref: this.captureRoot,\n } as React.Attributes);\n }\n }\n\n return FarmHostConditionalBlock;\n}\n\nfunction createConditionalRangesBlockComponent(\n owner: Pick<ConditionalBlockOwner, \"subscribe\">,\n): React.ComponentType<CompilerConditionalRangesBlockProps> {\n interface State {\n fallback: boolean;\n }\n\n interface ConditionalRangeInstance {\n key: \"truthy\" | \"falsy\";\n host: CompilerHostInstance;\n }\n\n class FarmConditionalRangesBlock extends React.Component<\n CompilerConditionalRangesBlockProps,\n State\n > {\n static displayName = \"FarmCompiledConditionalRanges\";\n\n state: State = { fallback: false };\n private root: Element | null = null;\n private mounted = false;\n private fallbackRequested = false;\n private fallbackVersion = 0;\n private propFallbackQueued = false;\n private currentProps = this.props;\n private unsubscribe: (() => void) | undefined;\n private fallbackUnsubscribers: Array<() => void> = [];\n private rangeInstances: Array<ConditionalRangeInstance | null> = [];\n private staticSegments: Element[][] = [];\n private readonly staticValues: unknown[] = [];\n\n private requestNestedFallback = () => {\n for (const instance of this.rangeInstances) instance?.host.scope?.cleanup();\n this.activateFallback();\n };\n\n private subscribeFallbackDescendants(): void {\n for (const unsubscribe of this.fallbackUnsubscribers) unsubscribe();\n this.fallbackUnsubscribers = [];\n const ids = new Set<number>();\n for (const range of this.currentProps.ranges) {\n if (range.truthy) collectCompilerHostBlockIds(range.truthy.create(), ids);\n if (range.falsy) collectCompilerHostBlockIds(range.falsy.create(), ids);\n }\n ids.delete(this.currentProps.id);\n for (const id of ids) {\n this.fallbackUnsubscribers.push(\n owner.subscribe(id, (afterCommit) => {\n this.fallbackVersion += 1;\n this.forceUpdate(afterCommit);\n }),\n );\n }\n }\n\n private captureRoot = (root: Element | null) => {\n this.root = root;\n this.currentProps.rootRef?.(root);\n };\n\n private readSelections(\n props: CompilerConditionalRangesBlockProps,\n ): CompilerHostConditionalPreparedSelection[] | null {\n const selections: CompilerHostConditionalPreparedSelection[] = [];\n for (const range of props.ranges) {\n const selection = hostConditionalSelection(range);\n if (selection.kind === \"fallback\") return null;\n selections.push(selection);\n }\n return selections;\n }\n\n private adopt(props: CompilerConditionalRangesBlockProps = this.currentProps): boolean {\n if (!this.root || !Number.isSafeInteger(props.trailing) || props.trailing < 0) return false;\n const selections = this.readSelections(props);\n if (!selections) return false;\n const elements = [...this.root.children];\n const staticSegments: Element[][] = [];\n const instances: Array<ConditionalRangeInstance | null> = [];\n const cleanupInstances = () => {\n for (const instance of instances) instance?.host.scope?.cleanup();\n };\n let cursor = 0;\n\n for (let rangeIndex = 0; rangeIndex < props.ranges.length; rangeIndex += 1) {\n const range = props.ranges[rangeIndex];\n if (!Number.isSafeInteger(range.before) || range.before < 0) {\n cleanupInstances();\n return false;\n }\n const staticEnd = cursor + range.before;\n if (staticEnd > elements.length) {\n cleanupInstances();\n return false;\n }\n staticSegments.push(elements.slice(cursor, staticEnd));\n cursor = staticEnd;\n\n const selection = selections[rangeIndex];\n if (selection.kind === \"empty\") {\n instances.push(null);\n continue;\n }\n const element = elements[cursor];\n if (!element) {\n cleanupInstances();\n return false;\n }\n const descriptor = selection.branch.create();\n if (!matchesCompilerHostElement(element, descriptor)) {\n cleanupInstances();\n return false;\n }\n const host = mountCompilerHostInstance(\n owner,\n element,\n descriptor,\n selection.branch,\n this.requestNestedFallback,\n );\n if (!host) {\n cleanupInstances();\n return false;\n }\n instances.push({\n key: selection.key,\n host,\n });\n cursor += 1;\n }\n\n if (cursor + props.trailing !== elements.length) {\n cleanupInstances();\n return false;\n }\n staticSegments.push(elements.slice(cursor));\n this.staticSegments = staticSegments;\n this.rangeInstances = instances;\n if (!applyStaticRangeBindings(props.bindings, this.staticSegments, this.staticValues)) {\n cleanupInstances();\n this.rangeInstances = [];\n this.staticSegments = [];\n return false;\n }\n return true;\n }\n\n private anchorAfter(rangeIndex: number): ChildNode | null {\n for (let next = rangeIndex + 1; next < this.rangeInstances.length; next += 1) {\n const staticAnchor = this.staticSegments[next]?.[0];\n if (staticAnchor) return staticAnchor;\n const rangeAnchor = this.rangeInstances[next]?.host.element;\n if (rangeAnchor) return rangeAnchor;\n }\n return this.staticSegments[this.rangeInstances.length]?.[0] || null;\n }\n\n private reconcileRange(\n rangeIndex: number,\n selection: CompilerHostConditionalPreparedSelection,\n ): boolean {\n if (!this.root) return false;\n const previous = this.rangeInstances[rangeIndex];\n if (selection.kind === \"empty\") {\n previous?.host.scope?.cleanup();\n previous?.host.element.remove();\n this.rangeInstances[rangeIndex] = null;\n return true;\n }\n if (previous?.key === selection.key) {\n const descriptor = selection.branch.create();\n const scope = mountCompilerHostTree(\n owner,\n previous.host.element,\n descriptor,\n this.requestNestedFallback,\n );\n if (!scope) {\n this.requestNestedFallback();\n return false;\n }\n previous.host.scope?.cleanup();\n previous.host.scope = scope;\n applyHostConditionalBindings(selection.branch, previous.host);\n return true;\n }\n\n const descriptor = selection.branch.create();\n const element = createCompilerHostElement(this.root.ownerDocument, descriptor);\n const host = mountCompilerHostInstance(\n owner,\n element,\n descriptor,\n selection.branch,\n this.requestNestedFallback,\n );\n if (!host) {\n this.requestNestedFallback();\n return false;\n }\n previous?.host.scope?.cleanup();\n if (previous) previous.host.element.replaceWith(element);\n else this.root.insertBefore(element, this.anchorAfter(rangeIndex));\n this.rangeInstances[rangeIndex] = {\n key: selection.key,\n host,\n };\n return true;\n }\n\n private reconcile(afterCommit?: () => void): void {\n if (!this.mounted || !this.root) {\n afterCommit?.();\n return;\n }\n if (this.state.fallback) {\n this.fallbackVersion += 1;\n this.forceUpdate(afterCommit);\n return;\n }\n if (this.currentProps.ranges.length !== this.rangeInstances.length) {\n this.activateFallback(afterCommit);\n return;\n }\n const selections = this.readSelections(this.currentProps);\n if (!selections) {\n this.activateFallback(afterCommit);\n return;\n }\n if (\n !applyStaticRangeBindings(\n this.currentProps.bindings,\n this.staticSegments,\n this.staticValues,\n )\n ) {\n this.activateFallback(afterCommit);\n return;\n }\n\n for (let rangeIndex = this.rangeInstances.length - 1; rangeIndex >= 0; rangeIndex -= 1) {\n if (!this.reconcileRange(rangeIndex, selections[rangeIndex])) {\n afterCommit?.();\n return;\n }\n }\n afterCommit?.();\n }\n\n private refresh = (afterCommit?: () => void) => {\n this.reconcile(afterCommit);\n };\n\n private activateFallback(afterCommit?: () => void): void {\n if (!this.mounted || this.state.fallback || this.fallbackRequested) {\n afterCommit?.();\n return;\n }\n this.fallbackRequested = true;\n for (const instance of this.rangeInstances) instance?.host.scope?.cleanup();\n this.subscribeFallbackDescendants();\n this.setState({ fallback: true }, afterCommit);\n }\n\n private schedulePropFallback(): void {\n if (this.propFallbackQueued) return;\n this.propFallbackQueued = true;\n queueMicrotask(() => {\n this.propFallbackQueued = false;\n if (this.mounted && !this.state.fallback) this.activateFallback();\n });\n }\n\n shouldComponentUpdate(\n nextProps: CompilerConditionalRangesBlockProps,\n nextState: State,\n ): boolean {\n this.currentProps = nextProps;\n if (nextState.fallback || this.state.fallback) return true;\n this.schedulePropFallback();\n return false;\n }\n\n componentDidMount(): void {\n this.mounted = true;\n this.unsubscribe = owner.subscribe(this.props.id, this.refresh);\n if (!this.adopt()) this.activateFallback();\n }\n\n componentWillUnmount(): void {\n this.mounted = false;\n this.unsubscribe?.();\n for (const unsubscribe of this.fallbackUnsubscribers) unsubscribe();\n this.fallbackUnsubscribers = [];\n for (const instance of this.rangeInstances) instance?.host.scope?.cleanup();\n this.root = null;\n this.rangeInstances = [];\n this.staticSegments = [];\n this.staticValues.length = 0;\n }\n\n render(): React.ReactNode {\n const container = this.currentProps.render();\n if (!React.isValidElement(container) || typeof container.type !== \"string\") {\n throw new TypeError(\n `Compiled conditional ranges ${this.currentProps.id} must own one host container.`,\n );\n }\n return React.cloneElement(container, {\n key: this.state.fallback ? `react-${this.fallbackVersion}` : \"compiled\",\n ref: this.captureRoot,\n } as React.Attributes);\n }\n }\n\n return FarmConditionalRangesBlock;\n}\n\n/** Returns positions forming the LIS while ignoring newly inserted (-1) entries. */\nfunction longestIncreasingSubsequencePositions(sequence: readonly number[]): Set<number> {\n const tails: number[] = [];\n const previous = Array.from({ length: sequence.length }, () => -1);\n\n for (let index = 0; index < sequence.length; index += 1) {\n if (sequence[index] < 0) continue;\n let low = 0;\n let high = tails.length;\n while (low < high) {\n const middle = (low + high) >> 1;\n if (sequence[tails[middle]] < sequence[index]) low = middle + 1;\n else high = middle;\n }\n if (low > 0) previous[index] = tails[low - 1];\n tails[low] = index;\n }\n\n const positions = new Set<number>();\n let cursor = tails.at(-1) ?? -1;\n while (cursor >= 0) {\n positions.add(cursor);\n cursor = previous[cursor];\n }\n return positions;\n}\n\ntype RowConditionalRefresh = (item: unknown, index: number, afterCommit?: () => void) => void;\n\ninterface RowConditionalOwner {\n subscribe(key: string, id: number, refresh: RowConditionalRefresh): () => void;\n}\n\ninterface RowConditionalProps {\n owner: RowConditionalOwner;\n rowKey: string;\n id: number;\n renderVersion: number;\n item: unknown;\n index: number;\n render(item: unknown, index: number): React.ReactNode;\n}\n\ninterface RowConditionalState {\n renderVersion: number;\n item: unknown;\n index: number;\n}\n\ninterface KeyedRowConditionalRuntime {\n Component: React.ComponentType<RowConditionalProps>;\n readValues(\n props: Pick<CompilerKeyedRowsBlockProps, \"conditionals\">,\n item: unknown,\n index: number,\n ): ReadonlyMap<number, readonly unknown[]>;\n changed(previous: readonly unknown[] | undefined, next: readonly unknown[]): boolean;\n}\n\ninterface KeyedRowHostRuntime {\n mount(\n element: Element,\n descriptor: CompilerHostElement,\n requestFallback: () => void,\n ): CompilerHostTreeScope | null;\n}\n\ninterface KeyedUpdateRuntime {\n commit(value: unknown): object | undefined;\n append(\n props: CompilerKeyedRowsBlockProps,\n dirtyState: ReadonlySet<number>,\n collectionToken: object | undefined,\n instances: ReadonlyMap<string, CompilerKeyedRowInstance>,\n root: Element,\n reactOwnedRows: boolean,\n ): ReadonlyMap<string, CompilerKeyedRowInstance> | undefined;\n filter?(\n props: CompilerKeyedRowsBlockProps,\n dirtyState: ReadonlySet<number>,\n collectionToken: object | undefined,\n instances: ReadonlyMap<string, CompilerKeyedRowInstance>,\n reactOwnedRows: boolean,\n ): ReadonlyMap<string, CompilerKeyedRowInstance> | undefined;\n prepend?(\n props: CompilerKeyedRowsBlockProps,\n dirtyState: ReadonlySet<number>,\n collectionToken: object | undefined,\n instances: ReadonlyMap<string, CompilerKeyedRowInstance>,\n root: Element,\n reactOwnedRows: boolean,\n ): ReadonlyMap<string, CompilerKeyedRowInstance> | undefined;\n rollingWindow?(\n props: CompilerKeyedRowsBlockProps,\n dirtyState: ReadonlySet<number>,\n collectionToken: object | undefined,\n instances: ReadonlyMap<string, CompilerKeyedRowInstance>,\n root: Element,\n reactOwnedRows: boolean,\n ): ReadonlyMap<string, CompilerKeyedRowInstance> | undefined;\n position?(\n props: CompilerKeyedRowsBlockProps,\n dirtyState: ReadonlySet<number>,\n collectionToken: object | undefined,\n instances: ReadonlyMap<string, CompilerKeyedRowInstance>,\n root: Element,\n reactOwnedRows: boolean,\n ): ReadonlyMap<string, CompilerKeyedRowInstance> | undefined;\n reorder?(\n props: CompilerKeyedRowsBlockProps,\n dirtyState: ReadonlySet<number>,\n collectionToken: object | undefined,\n instances: ReadonlyMap<string, CompilerKeyedRowInstance>,\n root: Element,\n reactOwnedRows: boolean,\n ): ReadonlyMap<string, CompilerKeyedRowInstance> | undefined;\n reconcile(\n props: CompilerKeyedRowsBlockProps,\n dirtyState: ReadonlySet<number>,\n collectionToken: object | undefined,\n instances: ReadonlyMap<string, CompilerKeyedRowInstance>,\n conditionals: KeyedRowConditionalRuntime | undefined,\n ):\n | {\n collectionToken: object | undefined;\n conditionalChanges: readonly {\n key: string;\n id: number;\n item: unknown;\n index: number;\n }[];\n fallback: boolean;\n }\n | undefined;\n}\n\nconst keyedUpdateRuntime: KeyedUpdateRuntime = {\n append: reconcileCompilerKeyedArrayAppend,\n commit: commitCompilerKeyedCollection,\n reconcile: reconcileCompilerKeyedMapUpdate,\n};\n\nconst keyedFilterUpdateRuntime: KeyedUpdateRuntime = {\n ...keyedUpdateRuntime,\n filter: reconcileCompilerKeyedArrayFilter,\n};\n\nconst keyedPrependUpdateRuntime: KeyedUpdateRuntime = {\n ...keyedUpdateRuntime,\n prepend: reconcileCompilerKeyedArrayPrepend,\n};\n\nconst keyedFilterPrependUpdateRuntime: KeyedUpdateRuntime = {\n ...keyedFilterUpdateRuntime,\n prepend: reconcileCompilerKeyedArrayPrepend,\n};\n\nconst keyedPositionUpdateRuntime: KeyedUpdateRuntime = {\n ...keyedUpdateRuntime,\n position: reconcileCompilerKeyedArrayPosition,\n};\n\nconst keyedReorderUpdateRuntime: KeyedUpdateRuntime = {\n ...keyedUpdateRuntime,\n reorder: reconcileCompilerKeyedArrayReorder,\n};\n\nconst keyedCompleteUpdateRuntime: KeyedUpdateRuntime = {\n ...keyedFilterPrependUpdateRuntime,\n rollingWindow: reconcileCompilerKeyedArrayRollingWindow,\n};\n\nconst keyedEveryUpdateRuntime: KeyedUpdateRuntime = {\n ...keyedCompleteUpdateRuntime,\n position: reconcileCompilerKeyedArrayPosition,\n reorder: reconcileCompilerKeyedArrayReorder,\n};\n\ninterface KeyedRowsRuntimeOptions {\n conditionals?: KeyedRowConditionalRuntime;\n hostBlocks?: KeyedRowHostRuntime;\n keyedUpdates?: KeyedUpdateRuntime;\n}\n\nfunction reconcileCompilerKeyedMapUpdate(\n props: CompilerKeyedRowsBlockProps,\n dirtyState: ReadonlySet<number>,\n collectionToken: object | undefined,\n instances: ReadonlyMap<string, CompilerKeyedRowInstance>,\n conditionals: KeyedRowConditionalRuntime | undefined,\n): ReturnType<KeyedUpdateRuntime[\"reconcile\"]> {\n const dependency = props.collectionDependency;\n if (dependency === undefined) return undefined;\n const dependencies = props.dependencies || props.structureDependencies || [];\n const relevantDirty = [...dirtyState].filter((index) => dependencies.includes(index));\n if (relevantDirty.length !== 1 || relevantDirty[0] !== dependency) return undefined;\n\n const finalValue = props.items();\n const hintedIndices = compilerKeyedMapChangedIndices(finalValue, collectionToken);\n if (!hintedIndices || !Array.isArray(finalValue) || finalValue.length !== instances.size) {\n return undefined;\n }\n\n const changedIndices = [...new Set(hintedIndices)].sort((left, right) => left - right);\n const updates: Array<{\n key: string;\n item: unknown;\n index: number;\n instance: CompilerKeyedRowInstance;\n }> = [];\n try {\n for (const index of changedIndices) {\n if (!Number.isSafeInteger(index) || index < 0 || index >= finalValue.length) return undefined;\n const item = finalValue[index];\n const key = keyedRowIdentity(props.rowKey(item, index));\n const instance = instances.get(key);\n if (!instance || instance.index !== index) return undefined;\n updates.push({ key, item, index, instance });\n }\n } catch {\n return undefined;\n }\n\n const conditionalChanges: Array<{\n key: string;\n id: number;\n item: unknown;\n index: number;\n }> = [];\n for (const { key, item, index, instance } of updates) {\n if (props.hostBlocks) {\n const descriptor = props.create(item, index);\n if (!instance.scope?.update(descriptor)) {\n return { collectionToken, conditionalChanges: [], fallback: true };\n }\n }\n applyKeyedRowBindings(props, instance, item, index);\n const conditionalValues =\n conditionals?.readValues(props, item, index) || EMPTY_KEYED_ROW_CONDITIONAL_VALUES;\n for (const [id, values] of conditionalValues) {\n if (conditionals?.changed(instance.conditionalValues.get(id), values)) {\n conditionalChanges.push({ key, id, item, index });\n }\n }\n instance.conditionalValues = conditionalValues;\n instance.item = item;\n }\n return {\n collectionToken: commitCompilerKeyedCollection(finalValue),\n conditionalChanges,\n fallback: false,\n };\n}\n\nfunction reconcileCompilerKeyedArrayAppend(\n props: CompilerKeyedRowsBlockProps,\n dirtyState: ReadonlySet<number>,\n collectionToken: object | undefined,\n instances: ReadonlyMap<string, CompilerKeyedRowInstance>,\n root: Element,\n reactOwnedRows: boolean,\n): ReturnType<KeyedUpdateRuntime[\"append\"]> {\n if (\n reactOwnedRows ||\n props.hostBlocks ||\n (props.conditionals?.length || 0) > 0 ||\n props.collectionDependency === undefined\n ) {\n return undefined;\n }\n const collectionDependency = props.collectionDependency;\n if (props.bindings.some((binding) => binding.dependencies?.includes(collectionDependency))) {\n // Existing rows may read the collection itself (for example,\n // `rows.length`). Appending would need to refresh those rows too, so keep\n // the complete keyed reconciliation path for that shape.\n return undefined;\n }\n const dependencies = props.dependencies || props.structureDependencies;\n const relevantDirty = (dependencies || []).filter((index) => dirtyState.has(index));\n if (relevantDirty.length !== 1 || relevantDirty[0] !== collectionDependency) {\n return undefined;\n }\n\n const finalValue = props.items();\n const startIndex = compilerKeyedArrayAppendStart(finalValue, collectionToken, instances.size);\n if (startIndex === undefined || !Array.isArray(finalValue)) return undefined;\n\n const nextInstances = new Map(instances);\n const appended: CompilerKeyedRowInstance[] = [];\n try {\n for (let index = startIndex; index < finalValue.length; index += 1) {\n const item = finalValue[index];\n const key = keyedRowIdentity(props.rowKey(item, index));\n if (nextInstances.has(key)) return undefined;\n const descriptor = props.create(item, index);\n const instance: CompilerKeyedRowInstance = {\n key,\n element: createCompilerHostElement(root.ownerDocument, descriptor),\n values: readKeyedRowBindingValues(props, item, index),\n item,\n index,\n conditionalValues: EMPTY_KEYED_ROW_CONDITIONAL_VALUES,\n };\n appended.push(instance);\n nextInstances.set(key, instance);\n }\n } catch {\n return undefined;\n }\n\n if (appended.length > 0) {\n const fragment = root.ownerDocument.createDocumentFragment();\n for (const instance of appended) fragment.append(instance.element);\n root.append(fragment);\n }\n return nextInstances;\n}\n\nfunction reconcileCompilerKeyedArrayRollingWindow(\n props: CompilerKeyedRowsBlockProps,\n dirtyState: ReadonlySet<number>,\n collectionToken: object | undefined,\n instances: ReadonlyMap<string, CompilerKeyedRowInstance>,\n root: Element,\n reactOwnedRows: boolean,\n): ReadonlyMap<string, CompilerKeyedRowInstance> | undefined {\n if (\n reactOwnedRows ||\n props.hostBlocks ||\n (props.conditionals?.length || 0) > 0 ||\n !props.filterIndexIndependent ||\n props.collectionDependency === undefined\n ) {\n return undefined;\n }\n const collectionDependency = props.collectionDependency;\n if (props.bindings.some((binding) => binding.dependencies?.includes(collectionDependency))) {\n return undefined;\n }\n const dependencies = props.dependencies || props.structureDependencies;\n const relevantDirty = (dependencies || []).filter((index) => dirtyState.has(index));\n if (relevantDirty.length !== 1 || relevantDirty[0] !== collectionDependency) {\n return undefined;\n }\n\n const finalValue = props.items();\n const update = compilerKeyedArrayRollingWindow(finalValue, collectionToken, instances.size);\n if (!update || !Array.isArray(finalValue)) return undefined;\n const previousInstances = [...instances.values()];\n const retainedLength = update.retainedEnd - update.retainedStart;\n const survivors: CompilerKeyedRowInstance[] = [];\n try {\n for (let index = 0; index < retainedLength; index += 1) {\n const sourceIndex = update.retainedStart + index;\n const instance = previousInstances[sourceIndex];\n if (\n !instance ||\n instance.index !== sourceIndex ||\n !Object.is(instance.item, finalValue[index])\n ) {\n return undefined;\n }\n survivors.push(instance);\n }\n } catch {\n return undefined;\n }\n\n const knownKeys = new Set(instances.keys());\n const incoming: CompilerKeyedRowInstance[] = [];\n try {\n for (let index = retainedLength; index < finalValue.length; index += 1) {\n const item = finalValue[index];\n const key = keyedRowIdentity(props.rowKey(item, index));\n // Reusing any key from the committed window must take the complete keyed\n // reconciliation path so React-owned row identity is never recreated.\n if (knownKeys.has(key)) return undefined;\n knownKeys.add(key);\n const descriptor = props.create(item, index);\n incoming.push({\n key,\n element: createCompilerHostElement(root.ownerDocument, descriptor),\n values: readKeyedRowBindingValues(props, item, index),\n item,\n index,\n conditionalValues: EMPTY_KEYED_ROW_CONDITIONAL_VALUES,\n });\n }\n } catch {\n return undefined;\n }\n\n for (let index = 0; index < update.retainedStart; index += 1) {\n previousInstances[index].scope?.cleanup();\n previousInstances[index].element.remove();\n }\n for (let index = 0; index < survivors.length; index += 1) survivors[index].index = index;\n if (incoming.length > 0) {\n const fragment = root.ownerDocument.createDocumentFragment();\n for (const instance of incoming) fragment.append(instance.element);\n root.append(fragment);\n }\n const nextInstances = new Map(\n [...survivors, ...incoming].map((instance) => [instance.key, instance]),\n );\n return nextInstances;\n}\n\nfunction reconcileCompilerKeyedArrayPosition(\n props: CompilerKeyedRowsBlockProps,\n dirtyState: ReadonlySet<number>,\n collectionToken: object | undefined,\n instances: ReadonlyMap<string, CompilerKeyedRowInstance>,\n root: Element,\n reactOwnedRows: boolean,\n): ReadonlyMap<string, CompilerKeyedRowInstance> | undefined {\n if (\n reactOwnedRows ||\n props.hostBlocks ||\n (props.conditionals?.length || 0) > 0 ||\n !props.positionIndexIndependent ||\n props.collectionDependency === undefined\n ) {\n return undefined;\n }\n const collectionDependency = props.collectionDependency;\n if (props.bindings.some((binding) => binding.dependencies?.includes(collectionDependency))) {\n return undefined;\n }\n const dependencies = props.dependencies || props.structureDependencies;\n const relevantDirty = (dependencies || []).filter((index) => dirtyState.has(index));\n if (relevantDirty.length !== 1 || relevantDirty[0] !== collectionDependency) {\n return undefined;\n }\n\n const finalValue = props.items();\n const update = compilerKeyedArrayPosition(finalValue, collectionToken, instances.size);\n if (!update || !Array.isArray(finalValue)) return undefined;\n const previousInstances = [...instances.values()];\n const previous = previousInstances[update.position];\n\n if (update.kind === \"remove\") {\n if (!previous || previous.index !== update.position) return undefined;\n previous.scope?.cleanup();\n previous.element.remove();\n previousInstances.splice(update.position, 1);\n for (let index = update.position; index < previousInstances.length; index += 1) {\n previousInstances[index].index = index;\n }\n return new Map(previousInstances.map((instance) => [instance.key, instance]));\n }\n\n let item: unknown;\n let key: string;\n try {\n item = finalValue[update.position];\n key = keyedRowIdentity(props.rowKey(item, update.position));\n } catch {\n return undefined;\n }\n\n if (update.kind === \"insert\") {\n if (instances.has(key)) return undefined;\n let inserted: CompilerKeyedRowInstance;\n try {\n const descriptor = props.create(item, update.position);\n inserted = {\n key,\n element: createCompilerHostElement(root.ownerDocument, descriptor),\n values: readKeyedRowBindingValues(props, item, update.position),\n item,\n index: update.position,\n conditionalValues: EMPTY_KEYED_ROW_CONDITIONAL_VALUES,\n };\n } catch {\n return undefined;\n }\n root.insertBefore(inserted.element, previous?.element || null);\n previousInstances.splice(update.position, 0, inserted);\n for (let index = update.position + 1; index < previousInstances.length; index += 1) {\n previousInstances[index].index = index;\n }\n return new Map(previousInstances.map((instance) => [instance.key, instance]));\n }\n\n if (!previous || previous.index !== update.position) return undefined;\n if (key === previous.key) {\n try {\n applyKeyedRowBindings(props, previous, item, update.position);\n } catch {\n return undefined;\n }\n previous.item = item;\n return instances;\n }\n if (instances.has(key)) return undefined;\n\n let replacement: CompilerKeyedRowInstance;\n try {\n const descriptor = props.create(item, update.position);\n replacement = {\n key,\n element: createCompilerHostElement(root.ownerDocument, descriptor),\n values: readKeyedRowBindingValues(props, item, update.position),\n item,\n index: update.position,\n conditionalValues: EMPTY_KEYED_ROW_CONDITIONAL_VALUES,\n };\n } catch {\n return undefined;\n }\n previous.scope?.cleanup();\n previous.element.replaceWith(replacement.element);\n previousInstances[update.position] = replacement;\n return new Map(previousInstances.map((instance) => [instance.key, instance]));\n}\n\nfunction reconcileCompilerKeyedArrayReorder(\n props: CompilerKeyedRowsBlockProps,\n dirtyState: ReadonlySet<number>,\n collectionToken: object | undefined,\n instances: ReadonlyMap<string, CompilerKeyedRowInstance>,\n root: Element,\n reactOwnedRows: boolean,\n): ReadonlyMap<string, CompilerKeyedRowInstance> | undefined {\n if (\n reactOwnedRows ||\n props.hostBlocks ||\n (props.conditionals?.length || 0) > 0 ||\n !props.reorderIndexIndependent ||\n props.collectionDependency === undefined\n ) {\n return undefined;\n }\n const collectionDependency = props.collectionDependency;\n if (props.bindings.some((binding) => binding.dependencies?.includes(collectionDependency))) {\n return undefined;\n }\n const dependencies = props.dependencies || props.structureDependencies;\n const relevantDirty = (dependencies || []).filter((index) => dirtyState.has(index));\n if (relevantDirty.length !== 1 || relevantDirty[0] !== collectionDependency) {\n return undefined;\n }\n\n const finalValue = props.items();\n const update = compilerKeyedArrayReorder(finalValue, collectionToken, instances.size);\n if (!update || !Array.isArray(finalValue)) return undefined;\n\n const previousInstances = [...instances.values()];\n if (update.kind === \"sort\") {\n const instancesByItem = new Map<unknown, CompilerKeyedRowInstance>();\n try {\n for (let sourceIndex = 0; sourceIndex < previousInstances.length; sourceIndex += 1) {\n const instance = previousInstances[sourceIndex];\n if (instance.index !== sourceIndex || instancesByItem.has(instance.item)) return undefined;\n instancesByItem.set(instance.item, instance);\n }\n\n const nextInstances: CompilerKeyedRowInstance[] = [];\n const sequence: number[] = [];\n for (let targetIndex = 0; targetIndex < finalValue.length; targetIndex += 1) {\n const item = finalValue[targetIndex];\n const instance = instancesByItem.get(item);\n if (!instance || !Object.is(instance.item, item)) return undefined;\n instancesByItem.delete(item);\n nextInstances.push(instance);\n sequence.push(instance.index);\n }\n if (instancesByItem.size > 0) return undefined;\n\n const activeElement = root.ownerDocument.activeElement;\n const restoreFocus = Boolean(activeElement && root.contains(activeElement));\n const stablePositions = longestIncreasingSubsequencePositions(sequence);\n let anchor: ChildNode | null = null;\n for (let index = nextInstances.length - 1; index >= 0; index -= 1) {\n const instance = nextInstances[index];\n if (!stablePositions.has(index) && instance.element.nextSibling !== anchor) {\n root.insertBefore(instance.element, anchor);\n }\n anchor = instance.element;\n instance.index = index;\n }\n if (\n restoreFocus &&\n activeElement?.isConnected &&\n activeElement.ownerDocument.activeElement !== activeElement &&\n \"focus\" in activeElement\n ) {\n (activeElement as HTMLElement).focus({ preventScroll: true });\n }\n return new Map(nextInstances.map((instance) => [instance.key, instance]));\n } catch {\n return undefined;\n }\n }\n\n try {\n for (let sourceIndex = 0; sourceIndex < previousInstances.length; sourceIndex += 1) {\n const instance = previousInstances[sourceIndex];\n const targetIndex = previousInstances.length - sourceIndex - 1;\n if (instance.index !== sourceIndex || !Object.is(instance.item, finalValue[targetIndex])) {\n return undefined;\n }\n }\n } catch {\n return undefined;\n }\n\n const activeElement = root.ownerDocument.activeElement;\n const restoreFocus = Boolean(activeElement && root.contains(activeElement));\n // A reverse has a one-row LIS. Keep the first committed row in place and\n // move every following row before the previous anchor, which performs the\n // minimum n - 1 connected DOM moves without rescanning keys or descriptors.\n let anchor = previousInstances[0]?.element || null;\n for (let sourceIndex = 1; sourceIndex < previousInstances.length; sourceIndex += 1) {\n const element = previousInstances[sourceIndex].element;\n root.insertBefore(element, anchor);\n anchor = element;\n }\n\n previousInstances.reverse();\n for (let index = 0; index < previousInstances.length; index += 1) {\n previousInstances[index].index = index;\n }\n if (\n restoreFocus &&\n activeElement?.isConnected &&\n activeElement.ownerDocument.activeElement !== activeElement &&\n \"focus\" in activeElement\n ) {\n (activeElement as HTMLElement).focus({ preventScroll: true });\n }\n return new Map(previousInstances.map((instance) => [instance.key, instance]));\n}\n\nfunction reconcileCompilerKeyedArrayPrepend(\n props: CompilerKeyedRowsBlockProps,\n dirtyState: ReadonlySet<number>,\n collectionToken: object | undefined,\n instances: ReadonlyMap<string, CompilerKeyedRowInstance>,\n root: Element,\n reactOwnedRows: boolean,\n): ReadonlyMap<string, CompilerKeyedRowInstance> | undefined {\n if (\n reactOwnedRows ||\n props.hostBlocks ||\n (props.conditionals?.length || 0) > 0 ||\n !props.prependIndexIndependent ||\n props.collectionDependency === undefined\n ) {\n return undefined;\n }\n const collectionDependency = props.collectionDependency;\n if (props.bindings.some((binding) => binding.dependencies?.includes(collectionDependency))) {\n return undefined;\n }\n const dependencies = props.dependencies || props.structureDependencies;\n const relevantDirty = (dependencies || []).filter((index) => dirtyState.has(index));\n if (relevantDirty.length !== 1 || relevantDirty[0] !== collectionDependency) {\n return undefined;\n }\n\n const finalValue = props.items();\n const prefixLength = compilerKeyedArrayPrependLength(finalValue, collectionToken, instances.size);\n if (prefixLength === undefined || !Array.isArray(finalValue)) return undefined;\n const previousInstances = [...instances.values()];\n for (let index = 0; index < previousInstances.length; index += 1) {\n const instance = previousInstances[index];\n if (instance.index !== index || !Object.is(instance.item, finalValue[prefixLength + index])) {\n return undefined;\n }\n }\n\n const knownKeys = new Set(instances.keys());\n const prepended: CompilerKeyedRowInstance[] = [];\n try {\n for (let index = 0; index < prefixLength; index += 1) {\n const item = finalValue[index];\n const key = keyedRowIdentity(props.rowKey(item, index));\n if (knownKeys.has(key)) return undefined;\n knownKeys.add(key);\n const descriptor = props.create(item, index);\n prepended.push({\n key,\n element: createCompilerHostElement(root.ownerDocument, descriptor),\n values: readKeyedRowBindingValues(props, item, index),\n item,\n index,\n conditionalValues: EMPTY_KEYED_ROW_CONDITIONAL_VALUES,\n });\n }\n } catch {\n return undefined;\n }\n\n if (prepended.length > 0) {\n const fragment = root.ownerDocument.createDocumentFragment();\n for (const instance of prepended) fragment.append(instance.element);\n root.insertBefore(fragment, root.firstChild);\n }\n for (let index = 0; index < previousInstances.length; index += 1) {\n previousInstances[index].index = prefixLength + index;\n }\n return new Map([...prepended, ...previousInstances].map((instance) => [instance.key, instance]));\n}\n\nfunction reconcileCompilerKeyedArrayFilter(\n props: CompilerKeyedRowsBlockProps,\n dirtyState: ReadonlySet<number>,\n collectionToken: object | undefined,\n instances: ReadonlyMap<string, CompilerKeyedRowInstance>,\n reactOwnedRows: boolean,\n): ReadonlyMap<string, CompilerKeyedRowInstance> | undefined {\n if (\n reactOwnedRows ||\n props.hostBlocks ||\n (props.conditionals?.length || 0) > 0 ||\n !props.filterIndexIndependent ||\n props.collectionDependency === undefined\n ) {\n return undefined;\n }\n const collectionDependency = props.collectionDependency;\n if (props.bindings.some((binding) => binding.dependencies?.includes(collectionDependency))) {\n return undefined;\n }\n const dependencies = props.dependencies || props.structureDependencies;\n const relevantDirty = (dependencies || []).filter((index) => dirtyState.has(index));\n if (relevantDirty.length !== 1 || relevantDirty[0] !== collectionDependency) {\n return undefined;\n }\n\n const finalValue = props.items();\n const survivorResult = compilerKeyedArrayFilterSurvivors(\n finalValue,\n collectionToken,\n instances.size,\n );\n if (!survivorResult || !Array.isArray(finalValue)) return undefined;\n const { indices: survivorIndices, keysStable } = survivorResult;\n const previousInstances = [...instances.values()];\n const survivors: CompilerKeyedRowInstance[] = [];\n try {\n for (let index = 0; index < survivorIndices.length; index += 1) {\n const sourceIndex = survivorIndices[index];\n const instance = previousInstances[sourceIndex];\n const item = finalValue[index];\n if (\n !instance ||\n instance.index !== sourceIndex ||\n !Object.is(instance.item, item) ||\n (!keysStable && keyedRowIdentity(props.rowKey(item, index)) !== instance.key)\n ) {\n return undefined;\n }\n survivors.push(instance);\n }\n } catch {\n return undefined;\n }\n\n const survivorSet = new Set(survivorIndices);\n for (let index = 0; index < previousInstances.length; index += 1) {\n if (survivorSet.has(index)) continue;\n previousInstances[index].scope?.cleanup();\n previousInstances[index].element.remove();\n }\n for (let index = 0; index < survivors.length; index += 1) {\n survivors[index].index = index;\n }\n return new Map(survivors.map((instance) => [instance.key, instance]));\n}\n\nfunction createKeyedRowConditionalRuntime(): KeyedRowConditionalRuntime {\n class FarmKeyedRowConditional extends React.Component<RowConditionalProps, RowConditionalState> {\n static displayName = \"FarmCompiledKeyedRowConditional\";\n\n state: RowConditionalState = {\n renderVersion: this.props.renderVersion,\n item: this.props.item,\n index: this.props.index,\n };\n private unsubscribe: (() => void) | undefined;\n\n static getDerivedStateFromProps(\n props: RowConditionalProps,\n state: RowConditionalState,\n ): Partial<RowConditionalState> | null {\n if (props.renderVersion === state.renderVersion) return null;\n return {\n renderVersion: props.renderVersion,\n item: props.item,\n index: props.index,\n };\n }\n\n private refresh: RowConditionalRefresh = (item, index, afterCommit) => {\n this.setState({ item, index }, afterCommit);\n };\n\n private subscribe(): void {\n this.unsubscribe = this.props.owner.subscribe(this.props.rowKey, this.props.id, this.refresh);\n }\n\n componentDidMount(): void {\n this.subscribe();\n }\n\n componentDidUpdate(previous: RowConditionalProps): void {\n if (\n previous.owner === this.props.owner &&\n previous.rowKey === this.props.rowKey &&\n previous.id === this.props.id\n ) {\n return;\n }\n this.unsubscribe?.();\n this.subscribe();\n }\n\n componentWillUnmount(): void {\n this.unsubscribe?.();\n }\n\n render(): React.ReactNode {\n return this.props.render(this.state.item, this.state.index);\n }\n }\n\n return {\n Component: FarmKeyedRowConditional,\n readValues: readKeyedRowConditionalValues,\n changed: keyedRowConditionalChanged,\n };\n}\n\nfunction createKeyedRowHostRuntime(): KeyedRowHostRuntime {\n const owner: Pick<ConditionalBlockOwner, \"subscribe\"> = {\n subscribe: () => () => {},\n };\n return {\n mount: (element, descriptor, requestFallback) =>\n mountCompilerHostTree(owner, element, descriptor, requestFallback),\n };\n}\n\nfunction createKeyedRowsBlockComponent(\n owner: Pick<ConditionalBlockOwner, \"subscribe\">,\n options: KeyedRowsRuntimeOptions = {},\n): React.ComponentType<CompilerKeyedRowsBlockProps> {\n interface State {\n fallback: boolean;\n }\n\n class FarmKeyedRowsBlock extends React.Component<CompilerKeyedRowsBlockProps, State> {\n static displayName = \"FarmCompiledKeyedRows\";\n\n state: State = { fallback: false };\n private root: Element | null = null;\n private mounted = false;\n private fallbackRequested = false;\n private fallbackVersion = 0;\n private fallbackKeysWereUnsafe = false;\n private propSyncQueued = false;\n private currentProps = this.props;\n private unsubscribe: (() => void) | undefined;\n private instances = new Map<string, CompilerKeyedRowInstance>();\n private identityTargets = new Map<number, CompilerKeyedIdentityTargetSnapshot>();\n private membershipTargets = new Map<number, CompilerKeyedMembershipTargetSnapshot>();\n private mapLookupTargets = new Map<number, CompilerKeyedMapLookupTargetSnapshot>();\n private collectionToken: object | undefined;\n private renderVersion = 0;\n private readonly eventHandlers = new Map<\n string,\n Map<number, React.EventHandler<React.SyntheticEvent>>\n >();\n private readonly conditionalListeners = new Map<string, Map<number, RowConditionalRefresh>>();\n private instancesByElement = new WeakMap<Element, CompilerKeyedRowInstance>();\n private readonly conditionalOwner: RowConditionalOwner = {\n subscribe: (key, id, refresh) => this.subscribeToRowConditional(key, id, refresh),\n };\n\n private captureRoot = (root: Element | null) => {\n this.root = root;\n };\n\n private requestHostScopeFallback = () => {\n this.activateFallback();\n };\n\n private readRows(\n props: CompilerKeyedRowsBlockProps,\n ): { items: unknown[]; keys: string[] } | null {\n const items = materializeIterable(props.items());\n const keys = items.map((item, index) => keyedRowIdentity(props.rowKey(item, index)));\n if (new Set(keys).size !== keys.length) return null;\n return { items, keys };\n }\n\n private rowEvent = (\n item: unknown,\n index: number,\n eventId: number,\n ): React.EventHandler<React.SyntheticEvent> => {\n if (this.state.fallback) {\n return (event) => this.currentProps.events?.[eventId]?.invoke(item, index, event);\n }\n if (this.usesDelegatedEvents()) {\n return undefined as unknown as React.EventHandler<React.SyntheticEvent>;\n }\n const key = keyedRowIdentity(this.currentProps.rowKey(item, index));\n let handlers = this.eventHandlers.get(key);\n if (!handlers) {\n handlers = new Map();\n this.eventHandlers.set(key, handlers);\n }\n const existing = handlers.get(eventId);\n if (existing) return existing;\n const handler: React.EventHandler<React.SyntheticEvent> = (event) => {\n const instance = this.instances.get(key);\n const descriptor = this.currentProps.events?.[eventId];\n if (!instance || !descriptor) return;\n return descriptor.invoke(instance.item, instance.index, event);\n };\n handlers.set(eventId, handler);\n return handler;\n };\n\n private usesDelegatedEvents(props: CompilerKeyedRowsBlockProps = this.currentProps): boolean {\n return Boolean(\n props.delegateEvents &&\n props.events?.length &&\n props.events.every((event) => event.path !== undefined),\n );\n }\n\n private rebuildElementIndex(instances: ReadonlyMap<string, CompilerKeyedRowInstance>): void {\n this.instancesByElement = new WeakMap();\n for (const instance of instances.values()) {\n this.instancesByElement.set(instance.element, instance);\n }\n }\n\n private eventRowInstance(event: React.SyntheticEvent): CompilerKeyedRowInstance | undefined {\n if (!this.root) return undefined;\n const target = event.target as Node | null;\n if (!target) return undefined;\n let element =\n target.nodeType === 1 ? (target as Element) : (target.parentElement as Element | null);\n while (element && element.parentElement !== this.root) element = element.parentElement;\n return element?.parentElement === this.root\n ? this.instancesByElement.get(element)\n : undefined;\n }\n\n private invokeDelegatedEvent(\n descriptor: CompilerKeyedRowEvent,\n instance: CompilerKeyedRowInstance,\n event: React.SyntheticEvent,\n currentTarget: Element,\n ): void {\n const ownCurrentTarget = Object.getOwnPropertyDescriptor(event, \"currentTarget\");\n try {\n Object.defineProperty(event, \"currentTarget\", {\n configurable: true,\n value: currentTarget,\n });\n descriptor.invoke(instance.item, instance.index, event);\n } finally {\n if (ownCurrentTarget) Object.defineProperty(event, \"currentTarget\", ownCurrentTarget);\n else Reflect.deleteProperty(event, \"currentTarget\");\n }\n }\n\n private dispatchDelegatedEvent = (name: string, event: React.SyntheticEvent): void => {\n const instance = this.eventRowInstance(event);\n const eventTarget = event.target as Node | null;\n if (!instance || !eventTarget) return;\n const capture = name.endsWith(\"Capture\");\n const matches = (this.currentProps.events || [])\n .filter((descriptor) => descriptor.name === name && descriptor.path !== undefined)\n .map((descriptor) => ({\n descriptor,\n target: findCompilerHostTarget(instance.element, descriptor.path || []),\n }))\n .filter((match): match is { descriptor: CompilerKeyedRowEvent; target: Element } =>\n Boolean(\n match.target && (match.target === eventTarget || match.target.contains(eventTarget)),\n ),\n )\n .sort((left, right) =>\n capture\n ? (left.descriptor.path?.length || 0) - (right.descriptor.path?.length || 0)\n : (right.descriptor.path?.length || 0) - (left.descriptor.path?.length || 0),\n );\n\n for (const match of matches) {\n this.invokeDelegatedEvent(match.descriptor, instance, event, match.target);\n if (event.isPropagationStopped()) break;\n }\n };\n\n private delegatedContainerProps(container: React.ReactElement): Record<string, unknown> {\n if (this.state.fallback || !this.usesDelegatedEvents()) return {};\n const props = container.props as Record<string, unknown>;\n return Object.fromEntries(\n [...new Set((this.currentProps.events || []).map((event) => event.name))].map((name) => {\n const existing = props[name] as React.EventHandler<React.SyntheticEvent> | undefined;\n const capture = name.endsWith(\"Capture\");\n const handler: React.EventHandler<React.SyntheticEvent> = (event) => {\n if (capture) existing?.(event);\n if (!event.isPropagationStopped()) this.dispatchDelegatedEvent(name, event);\n if (!capture && !event.isPropagationStopped()) existing?.(event);\n };\n return [name, handler];\n }),\n );\n }\n\n private rowConditional = (\n item: unknown,\n index: number,\n conditionalId: number,\n render: (item: unknown, index: number) => React.ReactNode,\n ): React.ReactNode => {\n if (this.state.fallback) return render(item, index);\n const key = keyedRowIdentity(this.currentProps.rowKey(item, index));\n const Conditional = options.conditionals?.Component;\n if (!Conditional) return render(item, index);\n return React.createElement(Conditional, {\n key: `${key}:${conditionalId}`,\n owner: this.conditionalOwner,\n rowKey: key,\n id: conditionalId,\n renderVersion: this.renderVersion,\n item,\n index,\n render,\n });\n };\n\n private subscribeToRowConditional(\n key: string,\n id: number,\n refresh: RowConditionalRefresh,\n ): () => void {\n let listeners = this.conditionalListeners.get(key);\n if (!listeners) {\n listeners = new Map();\n this.conditionalListeners.set(key, listeners);\n }\n listeners.set(id, refresh);\n return () => {\n const current = this.conditionalListeners.get(key);\n if (current?.get(id) !== refresh) return;\n current.delete(id);\n if (current.size === 0) this.conditionalListeners.delete(key);\n };\n }\n\n private hasReactOwnedRows(props: CompilerKeyedRowsBlockProps = this.currentProps): boolean {\n return Boolean(\n props.conditionals?.length || (props.events?.length && !this.usesDelegatedEvents(props)),\n );\n }\n\n private cleanupHostScopes(\n instances: ReadonlyMap<string, CompilerKeyedRowInstance> = this.instances,\n ): void {\n for (const instance of instances.values()) instance.scope?.cleanup();\n }\n\n private mountRowHostScope(\n element: Element,\n descriptor: CompilerHostElement,\n props: CompilerKeyedRowsBlockProps = this.currentProps,\n ): CompilerHostTreeScope | null | undefined {\n if (!props.hostBlocks) return undefined;\n return options.hostBlocks?.mount(element, descriptor, this.requestHostScopeFallback) || null;\n }\n\n private readConditionalValues(\n props: CompilerKeyedRowsBlockProps,\n item: unknown,\n index: number,\n ): ReadonlyMap<number, readonly unknown[]> {\n return (\n options.conditionals?.readValues(props, item, index) || EMPTY_KEYED_ROW_CONDITIONAL_VALUES\n );\n }\n\n private pruneEventHandlers(keys: readonly string[]): void {\n const active = new Set(keys);\n for (const key of this.eventHandlers.keys()) {\n if (!active.has(key)) this.eventHandlers.delete(key);\n }\n }\n\n private pruneConditionalListeners(keys: readonly string[]): void {\n const active = new Set(keys);\n for (const key of this.conditionalListeners.keys()) {\n if (!active.has(key)) this.conditionalListeners.delete(key);\n }\n }\n\n private commitCurrentCollection(dirtyState?: ReadonlySet<number>): void {\n this.collectionToken = options.keyedUpdates?.commit(this.currentProps.items());\n this.commitKeyedTargets(dirtyState);\n }\n\n private hasSafeMembershipTargets(dirtyState?: ReadonlySet<number>): boolean {\n for (const binding of this.currentProps.bindings) {\n const target = binding.membershipTarget;\n if (!target || (dirtyState && !dirtyState.has(target.dependency))) continue;\n if (!keyedMembershipTargetSnapshot(target.read()).eligible) return false;\n }\n return true;\n }\n\n private hasSafeMapLookupTargets(dirtyState?: ReadonlySet<number>): boolean {\n for (const binding of this.currentProps.bindings) {\n const target = binding.mapLookupTarget;\n if (!target || (dirtyState && !dirtyState.has(target.dependency))) continue;\n if (!keyedMapLookupTargetSnapshot(target.read()).eligible) return false;\n }\n return true;\n }\n\n private commitKeyedTargets(dirtyState?: ReadonlySet<number>): void {\n if (!dirtyState) {\n this.identityTargets.clear();\n this.membershipTargets.clear();\n this.mapLookupTargets.clear();\n }\n for (\n let bindingIndex = 0;\n bindingIndex < this.currentProps.bindings.length;\n bindingIndex += 1\n ) {\n const binding = this.currentProps.bindings[bindingIndex];\n const identityTarget = binding.identityTarget;\n if (!identityTarget) {\n this.identityTargets.delete(bindingIndex);\n } else if (!dirtyState || dirtyState.has(identityTarget.dependency)) {\n this.identityTargets.set(\n bindingIndex,\n keyedIdentityTargetSnapshot(identityTarget.read()),\n );\n }\n\n const membershipTarget = binding.membershipTarget;\n if (!membershipTarget) {\n this.membershipTargets.delete(bindingIndex);\n } else if (!dirtyState || dirtyState.has(membershipTarget.dependency)) {\n this.membershipTargets.set(\n bindingIndex,\n keyedMembershipTargetSnapshot(membershipTarget.read()),\n );\n }\n\n const mapLookupTarget = binding.mapLookupTarget;\n if (!mapLookupTarget) {\n this.mapLookupTargets.delete(bindingIndex);\n } else if (!dirtyState || dirtyState.has(mapLookupTarget.dependency)) {\n this.mapLookupTargets.set(\n bindingIndex,\n keyedMapLookupTargetSnapshot(mapLookupTarget.read()),\n );\n }\n }\n }\n\n private adopt(): boolean {\n if (!this.root) return false;\n if (!this.hasSafeMembershipTargets() || !this.hasSafeMapLookupTargets()) return false;\n const rows = this.readRows(this.currentProps);\n const elements = [...this.root.children];\n if (!rows || rows.items.length !== elements.length) return false;\n const opaqueConditionalPaths = new Set(\n (this.currentProps.conditionals || []).map((conditional) => conditional.path.join(\".\")),\n );\n const instances = new Map<string, CompilerKeyedRowInstance>();\n for (let index = 0; index < rows.items.length; index += 1) {\n const descriptor = this.currentProps.create(rows.items[index], index);\n if (\n this.hasReactOwnedRows() &&\n !matchesCompilerHostElement(elements[index], descriptor, opaqueConditionalPaths)\n ) {\n this.cleanupHostScopes(instances);\n return false;\n }\n const scope = this.mountRowHostScope(elements[index], descriptor);\n if (this.currentProps.hostBlocks && !scope) {\n this.cleanupHostScopes(instances);\n return false;\n }\n const instance: CompilerKeyedRowInstance = {\n key: rows.keys[index],\n element: elements[index],\n scope: scope || undefined,\n values: this.hasReactOwnedRows()\n ? this.currentProps.bindings.map(() => UNSET_KEYED_ROW_BINDING)\n : readKeyedRowBindingValues(this.currentProps, rows.items[index], index),\n item: rows.items[index],\n index,\n conditionalValues: this.readConditionalValues(\n this.currentProps,\n rows.items[index],\n index,\n ),\n };\n if (this.hasReactOwnedRows()) {\n // React compares the next row against its previous virtual props, not\n // against DOM values patched by Farm between commits. Reapply every\n // binding after a structural React commit so both views converge\n // before direct same-key patches resume.\n applyKeyedRowBindings(this.currentProps, instance, rows.items[index], index);\n }\n instances.set(rows.keys[index], instance);\n }\n this.cleanupHostScopes();\n this.instances = instances;\n this.rebuildElementIndex(instances);\n this.pruneEventHandlers(rows.keys);\n this.pruneConditionalListeners(rows.keys);\n this.commitCurrentCollection();\n return true;\n }\n\n private hasUnsafeFallbackKeys(): boolean {\n try {\n return this.readRows(this.currentProps) === null;\n } catch {\n return true;\n }\n }\n\n private activateFallback(afterCommit?: () => void): void {\n if (!this.mounted || this.state.fallback || this.fallbackRequested) {\n afterCommit?.();\n return;\n }\n this.fallbackRequested = true;\n this.fallbackKeysWereUnsafe = this.hasUnsafeFallbackKeys();\n // One key change on entry: the compiled path mutated the DOM behind\n // React's back, so the first fallback render must rebuild the subtree.\n this.cleanupHostScopes();\n this.fallbackVersion += 1;\n this.setState({ fallback: true }, afterCommit);\n }\n\n private synchronizeReactOwnedRows(afterCommit?: () => void): void {\n this.forceUpdate(() => {\n if (!this.mounted) {\n afterCommit?.();\n return;\n }\n if (!this.adopt()) {\n this.activateFallback(afterCommit);\n return;\n }\n afterCommit?.();\n });\n }\n\n private notifyConditionalChanges(\n changes: readonly {\n key: string;\n id: number;\n item: unknown;\n index: number;\n }[],\n afterCommit?: () => void,\n ): void {\n if (changes.length === 0) {\n afterCommit?.();\n return;\n }\n let pending = changes.length;\n const committed = () => {\n pending -= 1;\n if (pending === 0) afterCommit?.();\n };\n // The normal row bindings above are patched synchronously. Flush the\n // React-owned conditional boundaries in the same turn as well so React\n // 18 cannot expose a transient row where text and branch disagree.\n flushSync(() => {\n for (const change of changes) {\n const refresh = this.conditionalListeners.get(change.key)?.get(change.id);\n if (refresh) refresh(change.item, change.index, committed);\n else committed();\n }\n });\n }\n\n private refreshDirtyBindings(\n dirtyState: ReadonlySet<number>,\n afterCommit?: () => void,\n ): boolean {\n if (\n !this.mounted ||\n !this.root ||\n this.state.fallback ||\n this.hasReactOwnedRows() ||\n this.currentProps.hostBlocks ||\n !this.currentProps.structureDependencies ||\n this.currentProps.structureDependencies.some((dependency) => dirtyState.has(dependency)) ||\n this.currentProps.bindings.some((binding) => binding.dependencies === undefined)\n ) {\n return false;\n }\n\n const affectedBindingIndices: number[] = [];\n for (\n let bindingIndex = 0;\n bindingIndex < this.currentProps.bindings.length;\n bindingIndex += 1\n ) {\n const dependencies = this.currentProps.bindings[bindingIndex].dependencies || [];\n if (dependencies.some((dependency) => dirtyState.has(dependency))) {\n affectedBindingIndices.push(bindingIndex);\n }\n }\n\n const nextIdentityTargets = new Map<number, CompilerKeyedIdentityTargetSnapshot>();\n const nextMembershipTargets = new Map<number, CompilerKeyedMembershipTargetSnapshot>();\n const nextMapLookupTargets = new Map<number, CompilerKeyedMapLookupTargetSnapshot>();\n for (const bindingIndex of affectedBindingIndices) {\n const binding = this.currentProps.bindings[bindingIndex];\n if (binding.identityTarget) {\n nextIdentityTargets.set(\n bindingIndex,\n keyedIdentityTargetSnapshot(binding.identityTarget.read()),\n );\n }\n if (binding.membershipTarget) {\n const snapshot = keyedMembershipTargetSnapshot(\n binding.membershipTarget.read(),\n this.membershipTargets.get(bindingIndex),\n );\n if (!snapshot.eligible) {\n this.activateFallback(afterCommit);\n return true;\n }\n nextMembershipTargets.set(bindingIndex, snapshot);\n }\n if (binding.mapLookupTarget) {\n const snapshot = keyedMapLookupTargetSnapshot(\n binding.mapLookupTarget.read(),\n this.mapLookupTargets.get(bindingIndex),\n );\n if (!snapshot.eligible) {\n this.activateFallback(afterCommit);\n return true;\n }\n nextMapLookupTargets.set(bindingIndex, snapshot);\n }\n }\n\n for (const bindingIndex of affectedBindingIndices) {\n const binding = this.currentProps.bindings[bindingIndex];\n const identityTarget = binding.identityTarget;\n const previousIdentityTarget = this.identityTargets.get(bindingIndex);\n const nextIdentityTarget = nextIdentityTargets.get(bindingIndex);\n const canTargetIdentity = Boolean(\n identityTarget &&\n binding.dependencies?.length === 1 &&\n binding.dependencies[0] === identityTarget.dependency &&\n dirtyState.has(identityTarget.dependency) &&\n previousIdentityTarget?.eligible &&\n nextIdentityTarget?.eligible,\n );\n const membershipTarget = binding.membershipTarget;\n const previousMembershipTarget = this.membershipTargets.get(bindingIndex);\n const nextMembershipTarget = nextMembershipTargets.get(bindingIndex);\n const canTargetMembership = Boolean(\n membershipTarget &&\n binding.dependencies?.length === 1 &&\n binding.dependencies[0] === membershipTarget.dependency &&\n dirtyState.has(membershipTarget.dependency) &&\n previousMembershipTarget?.eligible &&\n nextMembershipTarget?.eligible,\n );\n const mapLookupTarget = binding.mapLookupTarget;\n const previousMapLookupTarget = this.mapLookupTargets.get(bindingIndex);\n const nextMapLookupTarget = nextMapLookupTargets.get(bindingIndex);\n const canTargetMapLookup = Boolean(\n mapLookupTarget &&\n binding.dependencies?.length === 1 &&\n binding.dependencies[0] === mapLookupTarget.dependency &&\n dirtyState.has(mapLookupTarget.dependency) &&\n previousMapLookupTarget?.eligible &&\n nextMapLookupTarget?.eligible,\n );\n\n if (canTargetMapLookup && previousMapLookupTarget && nextMapLookupTarget) {\n const keys = keyedMapLookupChangedKeys(previousMapLookupTarget, nextMapLookupTarget);\n for (const key of keys) {\n const instance = this.instances.get(key);\n if (instance) {\n applyKeyedRowBinding(\n this.currentProps,\n instance,\n instance.item,\n instance.index,\n bindingIndex,\n );\n }\n }\n } else if (canTargetMembership && previousMembershipTarget && nextMembershipTarget) {\n const keys = keyedMembershipChangedKeys(previousMembershipTarget, nextMembershipTarget);\n for (const key of keys) {\n const instance = this.instances.get(key);\n if (instance) {\n applyKeyedRowBinding(\n this.currentProps,\n instance,\n instance.item,\n instance.index,\n bindingIndex,\n );\n }\n }\n } else if (canTargetIdentity && previousIdentityTarget && nextIdentityTarget) {\n const keys = new Set<string>();\n if (previousIdentityTarget.key !== undefined) keys.add(previousIdentityTarget.key);\n if (nextIdentityTarget.key !== undefined) keys.add(nextIdentityTarget.key);\n for (const key of keys) {\n const instance = this.instances.get(key);\n if (instance) {\n applyKeyedRowBinding(\n this.currentProps,\n instance,\n instance.item,\n instance.index,\n bindingIndex,\n );\n }\n }\n } else {\n for (const instance of this.instances.values()) {\n applyKeyedRowBinding(\n this.currentProps,\n instance,\n instance.item,\n instance.index,\n bindingIndex,\n );\n }\n }\n\n if (nextIdentityTarget) this.identityTargets.set(bindingIndex, nextIdentityTarget);\n else this.identityTargets.delete(bindingIndex);\n if (nextMembershipTarget) {\n this.membershipTargets.set(bindingIndex, nextMembershipTarget);\n } else {\n this.membershipTargets.delete(bindingIndex);\n }\n if (nextMapLookupTarget) {\n this.mapLookupTargets.set(bindingIndex, nextMapLookupTarget);\n } else {\n this.mapLookupTargets.delete(bindingIndex);\n }\n }\n afterCommit?.();\n return true;\n }\n\n private reconcileStableRows(\n rows: { items: unknown[]; keys: string[] },\n afterCommit?: () => void,\n dirtyState?: ReadonlySet<number>,\n ): boolean {\n if (rows.keys.length !== this.instances.size) return false;\n let index = 0;\n for (const key of this.instances.keys()) {\n if (rows.keys[index] !== key) return false;\n index += 1;\n }\n\n const conditionalChanges: Array<{\n key: string;\n id: number;\n item: unknown;\n index: number;\n }> = [];\n for (index = 0; index < rows.items.length; index += 1) {\n const key = rows.keys[index];\n const existing = this.instances.get(key);\n if (!existing) return false;\n if (this.currentProps.hostBlocks) {\n const descriptor = this.currentProps.create(rows.items[index], index);\n if (!existing.scope?.update(descriptor)) {\n this.activateFallback(afterCommit);\n return true;\n }\n }\n applyKeyedRowBindings(this.currentProps, existing, rows.items[index], index);\n const conditionalValues = this.readConditionalValues(\n this.currentProps,\n rows.items[index],\n index,\n );\n for (const [id, values] of conditionalValues) {\n if (options.conditionals?.changed(existing.conditionalValues.get(id), values)) {\n conditionalChanges.push({\n key,\n id,\n item: rows.items[index],\n index,\n });\n }\n }\n existing.conditionalValues = conditionalValues;\n existing.item = rows.items[index];\n existing.index = index;\n }\n this.commitCurrentCollection(dirtyState);\n this.notifyConditionalChanges(conditionalChanges, afterCommit);\n return true;\n }\n\n private reconcileSingleRemoval(\n rows: { items: unknown[]; keys: string[] },\n afterCommit?: () => void,\n dirtyState?: ReadonlySet<number>,\n ): boolean {\n if (this.hasReactOwnedRows() || rows.keys.length + 1 !== this.instances.size) return false;\n const previousKeys = [...this.instances.keys()];\n let removedIndex = 0;\n while (\n removedIndex < rows.keys.length &&\n previousKeys[removedIndex] === rows.keys[removedIndex]\n ) {\n removedIndex += 1;\n }\n for (let index = removedIndex; index < rows.keys.length; index += 1) {\n if (previousKeys[index + 1] !== rows.keys[index]) return false;\n }\n\n const removedKey = previousKeys[removedIndex];\n const removed = this.instances.get(removedKey);\n if (!removed) return false;\n const conditionalChanges: Array<{\n key: string;\n id: number;\n item: unknown;\n index: number;\n }> = [];\n for (let index = 0; index < rows.items.length; index += 1) {\n const key = rows.keys[index];\n const existing = this.instances.get(key);\n if (!existing) return false;\n if (this.currentProps.hostBlocks) {\n const descriptor = this.currentProps.create(rows.items[index], index);\n if (!existing.scope?.update(descriptor)) {\n this.activateFallback(afterCommit);\n return true;\n }\n }\n applyKeyedRowBindings(this.currentProps, existing, rows.items[index], index);\n const conditionalValues = this.readConditionalValues(\n this.currentProps,\n rows.items[index],\n index,\n );\n for (const [id, values] of conditionalValues) {\n if (options.conditionals?.changed(existing.conditionalValues.get(id), values)) {\n conditionalChanges.push({\n key,\n id,\n item: rows.items[index],\n index,\n });\n }\n }\n existing.conditionalValues = conditionalValues;\n existing.item = rows.items[index];\n existing.index = index;\n }\n\n removed.scope?.cleanup();\n removed.element.remove();\n this.instances.delete(removedKey);\n this.eventHandlers.delete(removedKey);\n this.conditionalListeners.delete(removedKey);\n this.commitCurrentCollection(dirtyState);\n this.notifyConditionalChanges(conditionalChanges, afterCommit);\n return true;\n }\n\n private reconcile(afterCommit?: () => void, dirtyState?: ReadonlySet<number>): void {\n if (!this.mounted || !this.root) {\n afterCommit?.();\n return;\n }\n if (this.state.fallback) {\n // React owns the container while in fallback; keep the key stable so\n // updates reconcile in place instead of remounting the subtree (which\n // would wipe uncontrolled inputs, focus, and scroll). The exception\n // is duplicate runtime keys: React's reconciliation of a keyed list\n // with duplicates is unreliable, so any render touched by them (this\n // one, or the previously committed one) still remounts.\n const unsafeKeys = this.hasUnsafeFallbackKeys();\n if (unsafeKeys || this.fallbackKeysWereUnsafe) {\n this.fallbackVersion += 1;\n }\n this.fallbackKeysWereUnsafe = unsafeKeys;\n this.forceUpdate(afterCommit);\n return;\n }\n\n if (!this.hasSafeMembershipTargets(dirtyState)) {\n this.activateFallback(afterCommit);\n return;\n }\n\n if (!this.hasSafeMapLookupTargets(dirtyState)) {\n this.activateFallback(afterCommit);\n return;\n }\n\n const rows = this.readRows(this.currentProps);\n if (!rows) {\n this.activateFallback(afterCommit);\n return;\n }\n\n if (this.hasReactOwnedRows()) {\n const previousKeys = [...this.instances.keys()];\n if (\n rows.keys.length !== previousKeys.length ||\n rows.keys.some((key, index) => key !== previousKeys[index])\n ) {\n this.synchronizeReactOwnedRows(afterCommit);\n return;\n }\n }\n\n if (rows.items.length === 0) {\n this.cleanupHostScopes();\n this.root.replaceChildren();\n this.instances = new Map();\n this.instancesByElement = new WeakMap();\n this.eventHandlers.clear();\n this.conditionalListeners.clear();\n this.commitCurrentCollection(dirtyState);\n afterCommit?.();\n return;\n }\n\n if (this.reconcileStableRows(rows, afterCommit, dirtyState)) return;\n if (this.reconcileSingleRemoval(rows, afterCommit, dirtyState)) return;\n\n const activeElement = this.root.ownerDocument.activeElement;\n const restoreFocus = Boolean(activeElement && this.root.contains(activeElement));\n const nextKeys = new Set(rows.keys);\n const hasSurvivingRows = rows.keys.some((key) => this.instances.has(key));\n const oldIndices = new Map<string, number>();\n if (hasSurvivingRows) {\n [...this.instances].forEach(([key], index) => oldIndices.set(key, index));\n }\n for (const [key, instance] of this.instances) {\n if (!nextKeys.has(key)) {\n instance.scope?.cleanup();\n if (hasSurvivingRows) instance.element.remove();\n }\n }\n\n const sequence = hasSurvivingRows\n ? rows.keys.map((key) => oldIndices.get(key) ?? -1)\n : rows.keys.map(() => -1);\n const stablePositions = hasSurvivingRows\n ? longestIncreasingSubsequencePositions(sequence)\n : new Set<number>();\n const nextInstances: CompilerKeyedRowInstance[] = [];\n const conditionalChanges: Array<{\n key: string;\n id: number;\n item: unknown;\n index: number;\n }> = [];\n for (let index = 0; index < rows.items.length; index += 1) {\n const key = rows.keys[index];\n const existing = this.instances.get(key);\n if (existing) {\n if (this.currentProps.hostBlocks) {\n const descriptor = this.currentProps.create(rows.items[index], index);\n if (!existing.scope?.update(descriptor)) {\n this.activateFallback(afterCommit);\n return;\n }\n }\n applyKeyedRowBindings(this.currentProps, existing, rows.items[index], index);\n const conditionalValues = this.readConditionalValues(\n this.currentProps,\n rows.items[index],\n index,\n );\n for (const [id, values] of conditionalValues) {\n if (options.conditionals?.changed(existing.conditionalValues.get(id), values)) {\n conditionalChanges.push({\n key,\n id,\n item: rows.items[index],\n index,\n });\n }\n }\n existing.conditionalValues = conditionalValues;\n existing.item = rows.items[index];\n existing.index = index;\n nextInstances.push(existing);\n continue;\n }\n const descriptor = this.currentProps.create(rows.items[index], index);\n const element = createCompilerHostElement(this.root.ownerDocument, descriptor);\n const scope = this.mountRowHostScope(element, descriptor);\n if (this.currentProps.hostBlocks && !scope) {\n for (const instance of nextInstances) {\n if (!this.instances.has(instance.key)) instance.scope?.cleanup();\n }\n this.activateFallback(afterCommit);\n return;\n }\n nextInstances.push({\n key,\n element,\n scope: scope || undefined,\n values: readKeyedRowBindingValues(this.currentProps, rows.items[index], index),\n item: rows.items[index],\n index,\n conditionalValues: this.readConditionalValues(\n this.currentProps,\n rows.items[index],\n index,\n ),\n });\n }\n\n if (!hasSurvivingRows) {\n const fragment = this.root.ownerDocument.createDocumentFragment();\n for (const instance of nextInstances) fragment.append(instance.element);\n this.root.replaceChildren(fragment);\n } else {\n let anchor: ChildNode | null = null;\n for (let index = nextInstances.length - 1; index >= 0; index -= 1) {\n const instance = nextInstances[index];\n if (sequence[index] < 0) {\n let start = index;\n while (start > 0 && sequence[start - 1] < 0) start -= 1;\n const fragment = this.root.ownerDocument.createDocumentFragment();\n for (let itemIndex = start; itemIndex <= index; itemIndex += 1) {\n fragment.append(nextInstances[itemIndex].element);\n }\n this.root.insertBefore(fragment, anchor);\n anchor = nextInstances[start].element;\n index = start;\n } else {\n if (!stablePositions.has(index) && instance.element.nextSibling !== anchor) {\n this.root.insertBefore(instance.element, anchor);\n }\n anchor = instance.element;\n }\n }\n }\n this.instances = new Map(nextInstances.map((instance) => [instance.key, instance]));\n this.rebuildElementIndex(this.instances);\n this.pruneEventHandlers(rows.keys);\n this.pruneConditionalListeners(rows.keys);\n if (\n restoreFocus &&\n activeElement?.isConnected &&\n activeElement.ownerDocument.activeElement !== activeElement &&\n \"focus\" in activeElement\n ) {\n (activeElement as HTMLElement).focus({ preventScroll: true });\n }\n this.commitCurrentCollection(dirtyState);\n this.notifyConditionalChanges(conditionalChanges, afterCommit);\n }\n\n private refresh: CompilerBlockRefresh = (afterCommit, dirtyState) => {\n if (dirtyState && options.keyedUpdates && this.mounted && this.root && !this.state.fallback) {\n const result = options.keyedUpdates.reconcile(\n this.currentProps,\n dirtyState,\n this.collectionToken,\n this.instances,\n options.conditionals,\n );\n if (result) {\n if (result.fallback) this.activateFallback(afterCommit);\n else {\n this.collectionToken = result.collectionToken;\n this.notifyConditionalChanges(result.conditionalChanges, afterCommit);\n }\n return;\n }\n const appendedInstances = options.keyedUpdates.append(\n this.currentProps,\n dirtyState,\n this.collectionToken,\n this.instances,\n this.root,\n this.hasReactOwnedRows(),\n );\n if (appendedInstances) {\n this.instances = new Map(appendedInstances);\n this.rebuildElementIndex(this.instances);\n this.commitCurrentCollection(dirtyState);\n afterCommit?.();\n return;\n }\n const positionedInstances = options.keyedUpdates.position?.(\n this.currentProps,\n dirtyState,\n this.collectionToken,\n this.instances,\n this.root,\n this.hasReactOwnedRows(),\n );\n if (positionedInstances) {\n this.instances = new Map(positionedInstances);\n this.rebuildElementIndex(this.instances);\n const keys = [...this.instances.keys()];\n this.pruneEventHandlers(keys);\n this.pruneConditionalListeners(keys);\n this.commitCurrentCollection(dirtyState);\n afterCommit?.();\n return;\n }\n const reorderedInstances = options.keyedUpdates.reorder?.(\n this.currentProps,\n dirtyState,\n this.collectionToken,\n this.instances,\n this.root,\n this.hasReactOwnedRows(),\n );\n if (reorderedInstances) {\n this.instances = new Map(reorderedInstances);\n this.rebuildElementIndex(this.instances);\n this.commitCurrentCollection(dirtyState);\n afterCommit?.();\n return;\n }\n const rollingWindowInstances = options.keyedUpdates.rollingWindow?.(\n this.currentProps,\n dirtyState,\n this.collectionToken,\n this.instances,\n this.root,\n this.hasReactOwnedRows(),\n );\n if (rollingWindowInstances) {\n this.instances = new Map(rollingWindowInstances);\n this.rebuildElementIndex(this.instances);\n const keys = [...this.instances.keys()];\n this.pruneEventHandlers(keys);\n this.pruneConditionalListeners(keys);\n this.commitCurrentCollection(dirtyState);\n afterCommit?.();\n return;\n }\n const filteredInstances = options.keyedUpdates.filter?.(\n this.currentProps,\n dirtyState,\n this.collectionToken,\n this.instances,\n this.hasReactOwnedRows(),\n );\n if (filteredInstances) {\n this.instances = new Map(filteredInstances);\n this.rebuildElementIndex(this.instances);\n const keys = [...this.instances.keys()];\n this.pruneEventHandlers(keys);\n this.pruneConditionalListeners(keys);\n this.commitCurrentCollection(dirtyState);\n afterCommit?.();\n return;\n }\n const prependedInstances = options.keyedUpdates.prepend?.(\n this.currentProps,\n dirtyState,\n this.collectionToken,\n this.instances,\n this.root,\n this.hasReactOwnedRows(),\n );\n if (prependedInstances) {\n this.instances = new Map(prependedInstances);\n this.rebuildElementIndex(this.instances);\n this.commitCurrentCollection(dirtyState);\n afterCommit?.();\n return;\n }\n }\n if (dirtyState && this.refreshDirtyBindings(dirtyState, afterCommit)) return;\n this.reconcile(afterCommit, dirtyState);\n };\n\n private schedulePropSync(): void {\n if (this.propSyncQueued) return;\n this.propSyncQueued = true;\n queueMicrotask(() => {\n this.propSyncQueued = false;\n if (this.mounted && !this.state.fallback) this.reconcile();\n });\n }\n\n shouldComponentUpdate(nextProps: CompilerKeyedRowsBlockProps, nextState: State): boolean {\n const wasReactOwned = this.hasReactOwnedRows(this.currentProps);\n const willBeReactOwned = this.hasReactOwnedRows(nextProps);\n this.currentProps = nextProps;\n if (nextState.fallback || this.state.fallback) return true;\n if (wasReactOwned || willBeReactOwned) {\n // Parent prop updates and Fast Refresh definitions must pass through\n // React so event locations, static row markup, and proxy identities\n // cannot remain tied to an older render definition.\n this.eventHandlers.clear();\n return true;\n }\n this.schedulePropSync();\n return false;\n }\n\n componentDidUpdate(previousProps: CompilerKeyedRowsBlockProps): void {\n if (\n this.state.fallback ||\n previousProps === this.props ||\n (!this.hasReactOwnedRows(previousProps) && !this.hasReactOwnedRows(this.props)) ||\n this.adopt()\n ) {\n return;\n }\n this.activateFallback();\n }\n\n componentDidMount(): void {\n this.mounted = true;\n this.unsubscribe = owner.subscribe(this.props.id, this.refresh);\n if (!this.adopt()) this.activateFallback();\n }\n\n componentWillUnmount(): void {\n this.mounted = false;\n this.unsubscribe?.();\n this.root = null;\n this.cleanupHostScopes();\n this.instances.clear();\n this.identityTargets.clear();\n this.membershipTargets.clear();\n this.mapLookupTargets.clear();\n this.instancesByElement = new WeakMap();\n this.eventHandlers.clear();\n this.conditionalListeners.clear();\n }\n\n render(): React.ReactNode {\n this.renderVersion += 1;\n const container = this.currentProps.render(this.rowEvent, this.rowConditional);\n if (!React.isValidElement(container) || typeof container.type !== \"string\") {\n throw new TypeError(\n `Compiled keyed rows ${this.currentProps.id} must own one host container.`,\n );\n }\n return React.cloneElement(container, {\n ...this.delegatedContainerProps(container),\n key: this.state.fallback ? `react-${this.fallbackVersion}` : \"compiled\",\n ref: this.captureRoot,\n } as React.Attributes);\n }\n }\n\n return FarmKeyedRowsBlock;\n}\n\nfunction createKeyedRangesBlockComponent(\n owner: Pick<ConditionalBlockOwner, \"subscribe\">,\n): React.ComponentType<CompilerKeyedRangesBlockProps> {\n interface State {\n fallback: boolean;\n }\n\n interface ReadRange {\n items: unknown[];\n keys: string[];\n }\n\n class FarmKeyedRangesBlock extends React.Component<CompilerKeyedRangesBlockProps, State> {\n static displayName = \"FarmCompiledKeyedRanges\";\n\n state: State = { fallback: false };\n private root: Element | null = null;\n private mounted = false;\n private fallbackRequested = false;\n private fallbackVersion = 0;\n private propFallbackQueued = false;\n private currentProps = this.props;\n private unsubscribe: (() => void) | undefined;\n private rangeInstances: Array<Map<string, CompilerKeyedRowInstance>> = [];\n private staticSegments: Element[][] = [];\n private readonly staticValues: unknown[] = [];\n\n private captureRoot = (root: Element | null) => {\n this.root = root;\n this.currentProps.rootRef?.(root);\n };\n\n private readRange(range: CompilerKeyedRange): ReadRange | null {\n const items = materializeIterable(range.items());\n const keys = items.map((item, index) => keyedRowIdentity(range.rowKey(item, index)));\n if (new Set(keys).size !== keys.length) return null;\n return { items, keys };\n }\n\n private readRanges(props: CompilerKeyedRangesBlockProps): ReadRange[] | null {\n const ranges: ReadRange[] = [];\n for (const range of props.ranges) {\n const rows = this.readRange(range);\n if (!rows) return null;\n ranges.push(rows);\n }\n return ranges;\n }\n\n private adopt(props: CompilerKeyedRangesBlockProps = this.currentProps): boolean {\n if (!this.root || !Number.isSafeInteger(props.trailing) || props.trailing < 0) return false;\n const rowsByRange = this.readRanges(props);\n if (!rowsByRange) return false;\n const elements = [...this.root.children];\n const staticSegments: Element[][] = [];\n const instancesByRange: Array<Map<string, CompilerKeyedRowInstance>> = [];\n let cursor = 0;\n\n for (let rangeIndex = 0; rangeIndex < props.ranges.length; rangeIndex += 1) {\n const range = props.ranges[rangeIndex];\n const rows = rowsByRange[rangeIndex];\n if (!Number.isSafeInteger(range.before) || range.before < 0) return false;\n const staticEnd = cursor + range.before;\n if (staticEnd > elements.length) return false;\n staticSegments.push(elements.slice(cursor, staticEnd));\n cursor = staticEnd;\n\n const rowEnd = cursor + rows.items.length;\n if (rowEnd > elements.length) return false;\n const instances = new Map<string, CompilerKeyedRowInstance>();\n for (let index = 0; index < rows.items.length; index += 1) {\n const element = elements[cursor + index];\n if (!matchesCompilerHostElement(element, range.create(rows.items[index], index))) {\n return false;\n }\n instances.set(rows.keys[index], {\n key: rows.keys[index],\n element,\n values: readKeyedRowBindingValues(range, rows.items[index], index),\n item: rows.items[index],\n index,\n conditionalValues: new Map(),\n });\n }\n instancesByRange.push(instances);\n cursor = rowEnd;\n }\n\n if (cursor + props.trailing !== elements.length) return false;\n staticSegments.push(elements.slice(cursor));\n this.staticSegments = staticSegments;\n this.rangeInstances = instancesByRange;\n if (!applyStaticRangeBindings(props.bindings, this.staticSegments, this.staticValues)) {\n this.rangeInstances = [];\n this.staticSegments = [];\n return false;\n }\n return true;\n }\n\n private anchorAfter(rangeIndex: number): ChildNode | null {\n for (let next = rangeIndex + 1; next < this.rangeInstances.length; next += 1) {\n const staticAnchor = this.staticSegments[next]?.[0];\n if (staticAnchor) return staticAnchor;\n const rowAnchor = this.rangeInstances[next].values().next().value?.element;\n if (rowAnchor) return rowAnchor;\n }\n return this.staticSegments[this.rangeInstances.length]?.[0] || null;\n }\n\n private reconcileRange(rangeIndex: number, rows: ReadRange): void {\n if (!this.root) return;\n const range = this.currentProps.ranges[rangeIndex];\n const previous = this.rangeInstances[rangeIndex];\n const oldIndices = new Map<string, number>();\n [...previous.keys()].forEach((key, index) => oldIndices.set(key, index));\n const nextKeys = new Set(rows.keys);\n for (const [key, instance] of previous) {\n if (!nextKeys.has(key)) instance.element.remove();\n }\n\n const sequence = rows.keys.map((key) => oldIndices.get(key) ?? -1);\n const stablePositions = longestIncreasingSubsequencePositions(sequence);\n const nextInstances: CompilerKeyedRowInstance[] = [];\n for (let index = 0; index < rows.items.length; index += 1) {\n const key = rows.keys[index];\n const existing = previous.get(key);\n if (existing) {\n applyKeyedRowBindings(range, existing, rows.items[index], index);\n existing.item = rows.items[index];\n existing.index = index;\n nextInstances.push(existing);\n continue;\n }\n const element = createCompilerHostElement(\n this.root.ownerDocument,\n range.create(rows.items[index], index),\n );\n nextInstances.push({\n key,\n element,\n values: readKeyedRowBindingValues(range, rows.items[index], index),\n item: rows.items[index],\n index,\n conditionalValues: new Map(),\n });\n }\n\n let anchor = this.anchorAfter(rangeIndex);\n for (let index = nextInstances.length - 1; index >= 0; index -= 1) {\n const instance = nextInstances[index];\n if (sequence[index] < 0) {\n this.root.insertBefore(instance.element, anchor);\n } else if (!stablePositions.has(index) && instance.element.nextSibling !== anchor) {\n this.root.insertBefore(instance.element, anchor);\n }\n anchor = instance.element;\n }\n this.rangeInstances[rangeIndex] = new Map(\n nextInstances.map((instance) => [instance.key, instance]),\n );\n }\n\n private reconcile(afterCommit?: () => void): void {\n if (!this.mounted || !this.root) {\n afterCommit?.();\n return;\n }\n if (this.state.fallback) {\n this.fallbackVersion += 1;\n this.forceUpdate(afterCommit);\n return;\n }\n const rowsByRange = this.readRanges(this.currentProps);\n if (!rowsByRange || rowsByRange.length !== this.rangeInstances.length) {\n this.activateFallback(afterCommit);\n return;\n }\n if (\n !applyStaticRangeBindings(\n this.currentProps.bindings,\n this.staticSegments,\n this.staticValues,\n )\n ) {\n this.activateFallback(afterCommit);\n return;\n }\n\n const activeElement = this.root.ownerDocument.activeElement;\n const restoreFocus = Boolean(activeElement && this.root.contains(activeElement));\n for (let rangeIndex = rowsByRange.length - 1; rangeIndex >= 0; rangeIndex -= 1) {\n this.reconcileRange(rangeIndex, rowsByRange[rangeIndex]);\n }\n if (\n restoreFocus &&\n activeElement?.isConnected &&\n activeElement.ownerDocument.activeElement !== activeElement &&\n \"focus\" in activeElement\n ) {\n (activeElement as HTMLElement).focus({ preventScroll: true });\n }\n afterCommit?.();\n }\n\n private refresh = (afterCommit?: () => void) => {\n this.reconcile(afterCommit);\n };\n\n private activateFallback(afterCommit?: () => void): void {\n if (!this.mounted || this.state.fallback || this.fallbackRequested) {\n afterCommit?.();\n return;\n }\n this.fallbackRequested = true;\n this.setState({ fallback: true }, afterCommit);\n }\n\n private schedulePropFallback(): void {\n if (this.propFallbackQueued) return;\n this.propFallbackQueued = true;\n queueMicrotask(() => {\n this.propFallbackQueued = false;\n if (this.mounted && !this.state.fallback) this.activateFallback();\n });\n }\n\n shouldComponentUpdate(nextProps: CompilerKeyedRangesBlockProps, nextState: State): boolean {\n this.currentProps = nextProps;\n if (nextState.fallback || this.state.fallback) return true;\n // Parent props and compatible Fast Refresh definitions can change static\n // siblings that are deliberately outside the range descriptors. Remount\n // this one container through React instead of retaining stale markup.\n this.schedulePropFallback();\n return false;\n }\n\n componentDidMount(): void {\n this.mounted = true;\n this.unsubscribe = owner.subscribe(this.props.id, this.refresh);\n if (!this.adopt()) this.activateFallback();\n }\n\n componentWillUnmount(): void {\n this.mounted = false;\n this.unsubscribe?.();\n this.root = null;\n this.rangeInstances = [];\n this.staticSegments = [];\n this.staticValues.length = 0;\n }\n\n render(): React.ReactNode {\n const container = this.currentProps.render();\n if (!React.isValidElement(container) || typeof container.type !== \"string\") {\n throw new TypeError(\n `Compiled keyed ranges ${this.currentProps.id} must own one host container.`,\n );\n }\n return React.cloneElement(container, {\n key: this.state.fallback ? `react-${this.fallbackVersion}` : \"compiled\",\n ref: this.captureRoot,\n } as React.Attributes);\n }\n }\n\n return FarmKeyedRangesBlock;\n}\n\nfunction createMixedRangesBlockComponent(\n owner: Pick<ConditionalBlockOwner, \"subscribe\">,\n): React.ComponentType<CompilerMixedRangesBlockProps> {\n interface State {\n fallback: boolean;\n }\n\n class FarmMixedRangesBlock extends React.Component<CompilerMixedRangesBlockProps, State> {\n static displayName = \"FarmCompiledMixedRanges\";\n\n state: State = { fallback: false };\n private root: Element | null = null;\n private mounted = false;\n private fallbackRequested = false;\n private fallbackVersion = 0;\n private propFallbackQueued = false;\n private currentProps = this.props;\n private controller: CompilerNestedMixedRanges | null = null;\n private fallbackUnsubscribers: Array<() => void> = [];\n\n private captureRoot = (root: Element | null) => {\n this.root = root;\n this.currentProps.rootRef?.(root);\n };\n\n private clearFallbackSubscriptions(): void {\n for (const unsubscribe of this.fallbackUnsubscribers) unsubscribe();\n this.fallbackUnsubscribers = [];\n }\n\n private subscribeFallbackBlocks(): void {\n this.clearFallbackSubscriptions();\n const descriptor = this.currentProps.create();\n const ids = new Set<number>();\n collectCompilerHostBlockIds(descriptor, ids);\n for (const id of ids) {\n this.fallbackUnsubscribers.push(\n owner.subscribe(id, (afterCommit) => {\n if (!this.mounted || !this.state.fallback) {\n afterCommit?.();\n return;\n }\n this.fallbackVersion += 1;\n this.forceUpdate(afterCommit);\n }),\n );\n }\n }\n\n private adopt(): boolean {\n if (!this.root) return false;\n const descriptor = this.currentProps.create();\n const block = descriptor.block;\n if (block?.kind !== \"mixed-ranges\" || block.id !== this.currentProps.id) return false;\n const controller = new CompilerNestedMixedRanges(\n owner,\n this.root,\n descriptor,\n block,\n this.activateFallback,\n );\n try {\n if (!controller.adopt()) {\n controller.cleanup();\n return false;\n }\n } catch (error) {\n controller.cleanup();\n throw error;\n }\n this.controller = controller;\n return true;\n }\n\n private activateFallback = (afterCommit?: () => void): void => {\n if (!this.mounted || this.state.fallback || this.fallbackRequested) {\n afterCommit?.();\n return;\n }\n this.fallbackRequested = true;\n this.controller?.cleanup();\n this.controller = null;\n this.fallbackVersion += 1;\n this.setState({ fallback: true }, () => {\n this.subscribeFallbackBlocks();\n afterCommit?.();\n });\n };\n\n private schedulePropFallback(): void {\n if (this.propFallbackQueued) return;\n this.propFallbackQueued = true;\n queueMicrotask(() => {\n this.propFallbackQueued = false;\n if (this.mounted && !this.state.fallback) this.activateFallback();\n });\n }\n\n shouldComponentUpdate(nextProps: CompilerMixedRangesBlockProps, nextState: State): boolean {\n this.currentProps = nextProps;\n if (nextState.fallback || this.state.fallback) return true;\n this.schedulePropFallback();\n return false;\n }\n\n componentDidMount(): void {\n this.mounted = true;\n if (!this.adopt()) this.activateFallback();\n }\n\n componentDidUpdate(): void {\n if (this.state.fallback) this.subscribeFallbackBlocks();\n }\n\n componentWillUnmount(): void {\n this.mounted = false;\n this.controller?.cleanup();\n this.controller = null;\n this.clearFallbackSubscriptions();\n this.root = null;\n }\n\n render(): React.ReactNode {\n const container = this.currentProps.render();\n if (!React.isValidElement(container) || typeof container.type !== \"string\") {\n throw new TypeError(\n `Compiled mixed ranges ${this.currentProps.id} must own one host container.`,\n );\n }\n return React.cloneElement(container, {\n key: this.state.fallback ? `react-${this.fallbackVersion}` : \"compiled\",\n ref: this.captureRoot,\n } as React.Attributes);\n }\n }\n\n return FarmMixedRangesBlock;\n}\n\nfunction createComponentBlockComponent(\n owner: Pick<ConditionalBlockOwner, \"subscribe\">,\n): React.ComponentType<CompilerComponentBlockProps> {\n class FarmComponentBlock extends React.Component<CompilerComponentBlockProps> {\n static displayName = \"FarmCompiledComponentIsland\";\n\n private unsubscribe: (() => void) | undefined;\n\n private refresh = (afterCommit?: () => void) => {\n this.forceUpdate(afterCommit);\n };\n\n private subscribe(): void {\n this.unsubscribe = owner.subscribe(this.props.id, this.refresh);\n }\n\n componentDidMount(): void {\n this.subscribe();\n }\n\n componentDidUpdate(previous: CompilerComponentBlockProps): void {\n if (previous.id === this.props.id) return;\n this.unsubscribe?.();\n this.subscribe();\n }\n\n componentWillUnmount(): void {\n this.unsubscribe?.();\n }\n\n render(): React.ReactNode {\n return this.props.render();\n }\n }\n\n return FarmComponentBlock;\n}\n\nexport const conditionalRuntimeFeature: CompilerRuntimeFeature = {\n name: \"conditional\",\n create: (owner) => ({\n Conditional: createConditionalBlockComponent(owner),\n }),\n};\n\nexport const hostConditionalRuntimeFeature: CompilerRuntimeFeature = {\n name: \"host-conditional\",\n create: (owner) => ({\n HostConditional: createHostConditionalBlockComponent(owner),\n }),\n};\n\nexport const conditionalRangesRuntimeFeature: CompilerRuntimeFeature = {\n name: \"conditional-ranges\",\n create: (owner) => ({\n ConditionalRanges: createConditionalRangesBlockComponent(owner),\n }),\n};\n\nexport const keyedListRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-list\",\n create: (owner) => ({\n KeyedList: createKeyedListBlockComponent(owner),\n }),\n};\n\nexport const keyedRowsRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner),\n }),\n};\n\nexport const keyedRowsHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n keyedUpdates: keyedUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsPositionHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:position-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n keyedUpdates: keyedPositionUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsReorderHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:reorder-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n keyedUpdates: keyedReorderUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsAllHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:all-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n keyedUpdates: keyedCompleteUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsEveryHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:every-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n keyedUpdates: keyedEveryUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsFilterHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:filter-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n keyedUpdates: keyedFilterUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsPrependHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:prepend-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n keyedUpdates: keyedPrependUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsFilterPrependHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:filter-prepend-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n keyedUpdates: keyedFilterPrependUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsConditionalRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:conditional\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n }),\n }),\n};\n\nexport const keyedRowsConditionalHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:conditional:hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n keyedUpdates: keyedUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsConditionalPositionHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:conditional:position-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n keyedUpdates: keyedPositionUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsConditionalReorderHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:conditional:reorder-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n keyedUpdates: keyedReorderUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsConditionalAllHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:conditional:all-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n keyedUpdates: keyedCompleteUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsConditionalEveryHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:conditional:every-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n keyedUpdates: keyedEveryUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsConditionalFilterHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:conditional:filter-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n keyedUpdates: keyedFilterUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsConditionalPrependHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:conditional:prepend-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n keyedUpdates: keyedPrependUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsConditionalFilterPrependHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:conditional:filter-prepend-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n keyedUpdates: keyedFilterPrependUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsHostRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:host\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n hostBlocks: createKeyedRowHostRuntime(),\n }),\n }),\n};\n\nexport const keyedRowsHostHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:host:hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsHostPositionHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:host:position-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedPositionUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsHostReorderHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:host:reorder-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedReorderUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsHostAllHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:host:all-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedCompleteUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsHostEveryHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:host:every-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedEveryUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsHostFilterHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:host:filter-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedFilterUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsHostPrependHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:host:prepend-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedPrependUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsHostFilterPrependHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:host:filter-prepend-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedFilterPrependUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsCompleteRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:complete\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n hostBlocks: createKeyedRowHostRuntime(),\n }),\n }),\n};\n\nexport const keyedRowsCompleteHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:complete:hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsCompletePositionHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:complete:position-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedPositionUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsCompleteReorderHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:complete:reorder-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedReorderUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsCompleteAllHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:complete:all-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedCompleteUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsCompleteEveryHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:complete:every-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedEveryUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsCompleteFilterHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:complete:filter-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedFilterUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsCompletePrependHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:complete:prepend-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedPrependUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsCompleteFilterPrependHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:complete:filter-prepend-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedFilterPrependUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRangesRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-ranges\",\n create: (owner) => ({\n KeyedRanges: createKeyedRangesBlockComponent(owner),\n }),\n};\n\nexport const mixedRangesRuntimeFeature: CompilerRuntimeFeature = {\n name: \"mixed-ranges\",\n create: (owner) => ({\n MixedRanges: createMixedRangesBlockComponent(owner),\n }),\n};\n\nexport const componentRuntimeFeature: CompilerRuntimeFeature = {\n name: \"component\",\n create: (owner) => ({\n Component: createComponentBlockComponent(owner),\n }),\n};\n\n/**\n * Tree-shakable runtime target emitted by the AOT transform.\n *\n * React owns initial placement, SSR, hydration, props, and event semantics.\n * Compiler cells own local updates and precomputed DOM paths. Structural\n * helpers are installed only when the compiler emitted that boundary kind.\n */\nexport function createCompiledComponentWithFeatures<Props>(\n definition: CompiledComponentDefinition<Props>,\n runtimeFeatures: readonly CompilerRuntimeFeature[],\n): React.ComponentType<Props> {\n const stateSignature = definition.stateSignature || String(definition.initialize.length);\n const runtimeSignature = [...new Set(runtimeFeatures.map((feature) => feature.name))]\n .sort()\n .join(\",\");\n if (definition.hmrId) {\n const registry = getCompilerHmrRegistry();\n const existing = registry.get(definition.hmrId);\n if (\n existing?.stateSignature === stateSignature &&\n existing.runtimeSignature === runtimeSignature\n ) {\n existing.definition.current = definition as CompiledComponentDefinition<unknown>;\n existing.component.displayName = `FarmCompiled(${definition.displayName})`;\n for (const refresh of existing.refreshListeners) refresh();\n return existing.component as React.ComponentType<Props>;\n }\n }\n\n const definitionReference: CompiledDefinitionReference<Props> = {\n current: definition,\n };\n const refreshListeners = new Set<() => void>();\n\n class FarmCompiledComponent extends React.Component<Props, Record<string, never>, boolean> {\n private root: Element | null = null;\n private mounted = false;\n private flushQueued = false;\n private bindingError: unknown;\n private hasBindingError = false;\n private inputSelection: InputSelectionSnapshot | null = null;\n private readonly dirtyState = new Set<number>();\n private indexedDefinition: CompiledComponentDefinition<Props> | null = null;\n private staticBindingsByDependency: CompilerBinding<Props>[][] = [];\n private blockBindingsByDependency: CompilerConditionalBlockBinding[][] = [];\n private readonly blockBindings = new Map<number, CompilerConditionalBlockBinding>();\n private trackedBindingsByDependency: Set<CompilerBinding<Props>>[] = [];\n private readonly trackedDependenciesByBinding = new Map<CompilerBinding<Props>, Set<number>>();\n private readonly bindingValues = new Map<CompilerBinding<Props>, unknown>();\n private activeBinding: CompilerBinding<Props> | null = null;\n private activeDependencies: Set<number> | null = null;\n private readonly cells: RuntimeCell[];\n private readonly propCellOffset: number;\n private renderedDefinition: CompiledComponentDefinition<Props> | null = null;\n private renderedElement: React.ReactElement | null = null;\n private readonly blockRefreshListeners = new Map<number, CompilerBlockRefresh>();\n private readonly blockRoots = new Map<number, Element>();\n private readonly blockRootElements = new Set<Element>();\n private readonly bindingTargets = new Map<number, Element>();\n private readonly bindingTargetRefs = new Map<number, React.RefCallback<Element>>();\n private readonly blockRuntime: CompilerBlockRuntime;\n\n constructor(props: Props) {\n super(props);\n const initialState = definitionReference.current.initialize(props);\n const initialProps = definitionReference.current.readProps?.(props) || [];\n this.propCellOffset = initialState.length;\n this.cells = [...initialState, ...initialProps].map((initialValue, index) => {\n let value = initialValue;\n const pending: PendingCellUpdate[] = [];\n return {\n get: () => {\n if (this.activeBinding && this.activeDependencies) {\n this.activeDependencies.add(index);\n }\n return value;\n },\n set: (next) => {\n pending.push({ kind: \"state\", update: next });\n this.scheduleBindingFlush(index);\n },\n replace: (next) => {\n pending.push({ kind: \"value\", value: next });\n },\n flush: () => {\n if (pending.length === 0) return false;\n const previous = value;\n for (const next of pending.splice(0)) {\n if (next.kind === \"value\") {\n value = next.value;\n } else {\n value = typeof next.update === \"function\" ? next.update(value) : next.update;\n }\n }\n return !Object.is(previous, value);\n },\n };\n });\n const featureOwner: CompilerRuntimeFeatureOwner = {\n setRoot: (id, root) => this.setBlockRoot(id, root),\n subscribe: (id, refresh) => this.subscribeToBlock(id, refresh),\n };\n const blockRuntime: Partial<CompilerBlockRuntime> = {\n target: (id) => this.bindingTarget(id),\n };\n for (const feature of runtimeFeatures) {\n Object.assign(blockRuntime, feature.create(featureOwner));\n }\n this.blockRuntime = blockRuntime as CompilerBlockRuntime;\n }\n\n private usesHybridReactivity(): boolean {\n return definitionReference.current.reactivity === \"hybrid\";\n }\n\n private canReuseRenderedElement(\n currentDefinition: CompiledComponentDefinition<Props>,\n propValues: readonly unknown[] | null,\n ): boolean {\n return Boolean(\n this.mounted &&\n propValues &&\n propValues.every(isCompilerPrimitive) &&\n this.renderedDefinition === currentDefinition &&\n this.renderedElement,\n );\n }\n\n private renderCellsForProps(propValues: readonly unknown[] | null): {\n cells: readonly CompilerCell[];\n commit(): void;\n } {\n if (!propValues) return { cells: this.cells, commit: () => undefined };\n // A full React render must see its own prop snapshot, including inside\n // nested block render callbacks. The view switches to committed cells\n // only when its root ref is attached, so an abandoned render cannot\n // publish values or replace the reusable element.\n let committed = false;\n const cells: CompilerCell[] = this.cells.slice(0, this.propCellOffset);\n for (let propIndex = 0; propIndex < propValues.length; propIndex += 1) {\n const cell = this.cells[this.propCellOffset + propIndex];\n if (!cell) continue;\n cells.push({\n get: () => (committed ? cell.get() : propValues[propIndex]),\n set: (next) => cell.set(next),\n });\n }\n return {\n cells,\n commit: () => {\n committed = true;\n },\n };\n }\n\n private tracksBinding(\n binding: Exclude<CompilerBinding<Props>, CompilerConditionalBlockBinding>,\n ): boolean {\n return this.usesHybridReactivity() && binding.tracking === \"dynamic\";\n }\n\n private ensureBindingIndex(): void {\n const currentDefinition = definitionReference.current;\n if (this.indexedDefinition === currentDefinition) return;\n\n this.indexedDefinition = currentDefinition;\n this.staticBindingsByDependency = Array.from({ length: this.cells.length }, () => []);\n this.blockBindingsByDependency = Array.from({ length: this.cells.length }, () => []);\n this.trackedBindingsByDependency = Array.from(\n { length: this.cells.length },\n () => new Set<CompilerBinding<Props>>(),\n );\n this.blockBindings.clear();\n this.trackedDependenciesByBinding.clear();\n this.bindingValues.clear();\n\n for (const binding of currentDefinition.bindings) {\n if (binding.kind === \"block\") this.blockBindings.set(binding.id, binding);\n for (const dependency of binding.dependencies) {\n if (dependency < 0 || dependency >= this.cells.length) continue;\n if (binding.kind === \"block\") {\n this.blockBindingsByDependency[dependency].push(binding);\n } else if (!this.tracksBinding(binding)) {\n this.staticBindingsByDependency[dependency].push(binding);\n }\n }\n }\n }\n\n private updateTrackedDependencies(\n binding: CompilerBinding<Props>,\n nextDependencies: Set<number>,\n ): void {\n const previousDependencies = this.trackedDependenciesByBinding.get(binding);\n if (previousDependencies) {\n for (const dependency of previousDependencies) {\n if (!nextDependencies.has(dependency)) {\n this.trackedBindingsByDependency[dependency]?.delete(binding);\n }\n }\n }\n for (const dependency of nextDependencies) {\n if (!previousDependencies?.has(dependency)) {\n this.trackedBindingsByDependency[dependency]?.add(binding);\n }\n }\n this.trackedDependenciesByBinding.set(binding, nextDependencies);\n }\n\n private readBinding(binding: Exclude<CompilerBinding<Props>, CompilerConditionalBlockBinding>) {\n if (!this.tracksBinding(binding)) return binding.read(this.props, this.cells);\n\n const previousBinding = this.activeBinding;\n const previousDependencies = this.activeDependencies;\n const nextDependencies = new Set<number>();\n this.activeBinding = binding;\n this.activeDependencies = nextDependencies;\n try {\n return binding.read(this.props, this.cells);\n } finally {\n this.activeBinding = previousBinding;\n this.activeDependencies = previousDependencies;\n this.updateTrackedDependencies(binding, nextDependencies);\n }\n }\n\n private bindingValue(\n binding: Exclude<CompilerBinding<Props>, CompilerConditionalBlockBinding>,\n value: unknown,\n ): unknown {\n return binding.kind === \"text\" ? renderTextValue(value) : value;\n }\n\n private primeHybridBindings(): void {\n if (!this.usesHybridReactivity()) return;\n for (const binding of definitionReference.current.bindings) {\n if (binding.kind === \"block\") continue;\n if (!this.tracksBinding(binding)) continue;\n const value = this.readBinding(binding);\n this.bindingValues.set(binding, this.bindingValue(binding, value));\n }\n }\n\n private captureRoot = (root: Element | null) => {\n this.root = root;\n };\n\n private refreshDefinition = () => {\n if (this.mounted) this.forceUpdate();\n };\n\n private bindingTarget(id: number): React.RefCallback<Element> {\n const existing = this.bindingTargetRefs.get(id);\n if (existing) return existing;\n const capture: React.RefCallback<Element> = (element) => {\n if (element) {\n this.bindingTargets.set(id, element);\n } else {\n this.bindingTargets.delete(id);\n }\n };\n this.bindingTargetRefs.set(id, capture);\n return capture;\n }\n\n private captureInputSelection(): void {\n const active = this.root?.ownerDocument.activeElement;\n if (\n !isSelectableTextControl(active) ||\n !this.root?.contains(active) ||\n active.selectionStart === null ||\n active.selectionEnd === null\n ) {\n return;\n }\n this.inputSelection = {\n element: active,\n start: active.selectionStart,\n end: active.selectionEnd,\n direction: active.selectionDirection || \"none\",\n };\n }\n\n private restoreInputSelection(snapshot: InputSelectionSnapshot | null): void {\n if (\n !snapshot ||\n !snapshot.element.isConnected ||\n snapshot.element.ownerDocument.activeElement !== snapshot.element\n ) {\n return;\n }\n snapshot.element.setSelectionRange(snapshot.start, snapshot.end, snapshot.direction);\n }\n\n private setBlockRoot(id: number, root: Element | null): void {\n const previous = this.blockRoots.get(id);\n if (previous) this.blockRootElements.delete(previous);\n if (root) {\n this.blockRoots.set(id, root);\n this.blockRootElements.add(root);\n } else {\n this.blockRoots.delete(id);\n }\n }\n\n private subscribeToBlock(id: number, refresh: CompilerBlockRefresh): () => void {\n this.blockRefreshListeners.set(id, refresh);\n return () => {\n if (this.blockRefreshListeners.get(id) === refresh) {\n this.blockRefreshListeners.delete(id);\n }\n };\n }\n\n private scheduleBindingFlush(index: number): void {\n this.dirtyState.add(index);\n this.captureInputSelection();\n if (!this.mounted || this.flushQueued) return;\n this.flushQueued = true;\n queueMicrotask(() => {\n this.flushQueued = false;\n this.flushBindingUpdates();\n });\n }\n\n private flushBindingUpdates(): void {\n const inputSelection = this.inputSelection;\n this.inputSelection = null;\n if (!this.mounted) return;\n const dirty = new Set<number>();\n for (const index of this.dirtyState) {\n if (this.cells[index]?.flush()) dirty.add(index);\n }\n this.dirtyState.clear();\n if (dirty.size === 0) return;\n try {\n this.ensureBindingIndex();\n const affectedBlockIds = new Set<number>();\n const affectedBindings = new Set<CompilerBinding<Props>>();\n\n for (const dependency of dirty) {\n for (const binding of this.blockBindingsByDependency[dependency] || []) {\n affectedBlockIds.add(binding.id);\n }\n for (const binding of this.staticBindingsByDependency[dependency] || []) {\n affectedBindings.add(binding);\n }\n if (this.usesHybridReactivity()) {\n for (const binding of this.trackedBindingsByDependency[dependency] || []) {\n affectedBindings.add(binding);\n }\n }\n }\n\n const hasAffectedMountedAncestor = (binding: CompilerConditionalBlockBinding): boolean => {\n let parent = binding.parent;\n while (parent !== undefined) {\n if (affectedBlockIds.has(parent) && this.blockRefreshListeners.has(parent)) {\n return true;\n }\n parent = this.blockBindings.get(parent)?.parent;\n }\n return false;\n };\n\n const blockRefreshes = [...affectedBlockIds]\n .map((id) => {\n const binding = this.blockBindings.get(id);\n const refresh = this.blockRefreshListeners.get(id);\n return binding && refresh && !hasAffectedMountedAncestor(binding) ? refresh : undefined;\n })\n .filter((refresh): refresh is CompilerBlockRefresh => refresh !== undefined);\n\n for (const binding of affectedBindings) {\n if (binding.kind !== \"block\") this.applyBinding(binding);\n }\n\n let pendingBlockCommits = blockRefreshes.length;\n for (const refresh of blockRefreshes) {\n refresh(() => {\n pendingBlockCommits -= 1;\n if (pendingBlockCommits === 0) this.restoreInputSelection(inputSelection);\n }, dirty);\n }\n if (blockRefreshes.length === 0) this.restoreInputSelection(inputSelection);\n } catch (error) {\n this.bindingError = error;\n this.hasBindingError = true;\n this.forceUpdate();\n }\n }\n\n private applyBinding(binding: CompilerBinding<Props>, force = false): void {\n if (!this.root || binding.kind === \"block\") return;\n const target =\n binding.target === undefined\n ? findBindingTarget(this.root, binding.path, this.blockRootElements)\n : binding.path.length === 0\n ? this.root\n : this.bindingTargets.get(binding.target) || null;\n if (!target) return;\n const value = this.readBinding(binding);\n const comparableValue = this.bindingValue(binding, value);\n if (!force && this.bindingValues.has(binding)) {\n if (Object.is(this.bindingValues.get(binding), comparableValue)) return;\n }\n if (binding.kind === \"text\") {\n target.textContent = comparableValue as string;\n } else if (binding.kind === \"style\") {\n updateStyle(target, binding.name, value);\n } else {\n updateAttribute(target, binding.name, value);\n }\n this.bindingValues.set(binding, comparableValue);\n }\n\n componentDidMount(): void {\n this.mounted = true;\n refreshListeners.add(this.refreshDefinition);\n this.ensureBindingIndex();\n this.primeHybridBindings();\n }\n\n getSnapshotBeforeUpdate(): boolean {\n const currentDefinition = definitionReference.current;\n const propValues = currentDefinition.readProps?.(this.props) || null;\n return this.canReuseRenderedElement(currentDefinition, propValues);\n }\n\n componentDidUpdate(\n _previousProps: Readonly<Props>,\n _previousState: Readonly<Record<string, never>>,\n reusedRenderedElement = false,\n ): void {\n const propValues = definitionReference.current.readProps?.(this.props) || null;\n if (propValues) {\n if (reusedRenderedElement) this.captureInputSelection();\n for (let propIndex = 0; propIndex < propValues.length; propIndex += 1) {\n const cellIndex = this.propCellOffset + propIndex;\n const cell = this.cells[cellIndex];\n if (!cell) continue;\n cell.replace(propValues[propIndex]);\n if (reusedRenderedElement) {\n this.dirtyState.add(cellIndex);\n } else {\n // React already reconciled a full render using the pending prop\n // snapshot. Commit the cell without scheduling duplicate work.\n cell.flush();\n }\n }\n this.flushBindingUpdates();\n return;\n }\n\n // Hand-authored definitions without prop cells retain the original\n // React-owned prop reconciliation behavior.\n this.ensureBindingIndex();\n for (const binding of definitionReference.current.bindings) {\n if (binding.kind !== \"block\") this.applyBinding(binding, true);\n }\n }\n\n componentWillUnmount(): void {\n this.mounted = false;\n this.root = null;\n this.dirtyState.clear();\n this.inputSelection = null;\n this.blockRefreshListeners.clear();\n this.blockRoots.clear();\n this.blockRootElements.clear();\n this.bindingTargets.clear();\n this.bindingTargetRefs.clear();\n this.indexedDefinition = null;\n this.staticBindingsByDependency = [];\n this.blockBindingsByDependency = [];\n this.blockBindings.clear();\n this.trackedBindingsByDependency = [];\n this.trackedDependenciesByBinding.clear();\n this.bindingValues.clear();\n this.activeBinding = null;\n this.activeDependencies = null;\n refreshListeners.delete(this.refreshDefinition);\n }\n\n render(): React.ReactNode {\n if (this.hasBindingError) throw this.bindingError;\n const currentDefinition = definitionReference.current;\n const propValues = currentDefinition.readProps?.(this.props) || null;\n if (this.canReuseRenderedElement(currentDefinition, propValues)) {\n return this.renderedElement;\n }\n\n const renderCells = this.renderCellsForProps(propValues);\n const element = currentDefinition.render(this.props, renderCells.cells, this.blockRuntime);\n if (!React.isValidElement(element)) {\n throw new TypeError(\n `Compiled component ${currentDefinition.displayName} must return one host element.`,\n );\n }\n let renderedElement: React.ReactElement;\n const captureCommittedRoot = (root: Element | null) => {\n this.captureRoot(root);\n if (!root) return;\n renderCells.commit();\n this.renderedDefinition = currentDefinition;\n this.renderedElement = renderedElement;\n };\n if (element.type === this.blockRuntime.KeyedRanges) {\n renderedElement = React.cloneElement(\n element as React.ReactElement<CompilerKeyedRangesBlockProps>,\n {\n rootRef: captureCommittedRoot,\n },\n );\n } else if (element.type === this.blockRuntime.ConditionalRanges) {\n renderedElement = React.cloneElement(\n element as React.ReactElement<CompilerConditionalRangesBlockProps>,\n { rootRef: captureCommittedRoot },\n );\n } else if (element.type === this.blockRuntime.MixedRanges) {\n renderedElement = React.cloneElement(\n element as React.ReactElement<CompilerMixedRangesBlockProps>,\n {\n rootRef: captureCommittedRoot,\n },\n );\n } else if (typeof element.type !== \"string\") {\n throw new TypeError(\n `Compiled component ${currentDefinition.displayName} must return one host element.`,\n );\n } else {\n renderedElement = React.cloneElement(element, {\n ref: captureCommittedRoot,\n } as React.Attributes);\n }\n return renderedElement;\n }\n }\n\n (FarmCompiledComponent as React.ComponentType<Props>).displayName =\n `FarmCompiled(${definition.displayName})`;\n const component = FarmCompiledComponent as React.ComponentType<Props>;\n\n if (definition.hmrId) {\n getCompilerHmrRegistry().set(definition.hmrId, {\n component: component as React.ComponentType<unknown>,\n definition: definitionReference as CompiledDefinitionReference<unknown>,\n refreshListeners,\n stateSignature,\n runtimeSignature,\n });\n }\n\n return component;\n}\n\nconst COMPLETE_RUNTIME_FEATURES: readonly CompilerRuntimeFeature[] = [\n conditionalRuntimeFeature,\n hostConditionalRuntimeFeature,\n conditionalRangesRuntimeFeature,\n keyedListRuntimeFeature,\n keyedRowsCompleteEveryHintedRuntimeFeature,\n keyedRangesRuntimeFeature,\n mixedRangesRuntimeFeature,\n componentRuntimeFeature,\n];\n\n/**\n * Compatibility entry for hand-authored runtime definitions.\n * Compiler output uses createCompiledComponentWithFeatures so unused structural\n * runtimes can be removed from production bundles.\n */\nexport function createCompiledComponent<Props>(\n definition: CompiledComponentDefinition<Props>,\n): React.ComponentType<Props> {\n return createCompiledComponentWithFeatures(definition, COMPLETE_RUNTIME_FEATURES);\n}\n"]}
1
+ {"version":3,"sources":["../src/iterable.ts","../src/compiler-runtime.tsx"],"names":["value","React","descriptor","update","knownKeys","incomingKeys","updates","activeElement","restoreFocus","anchor","flushSync"],"mappings":"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","file":"compiler-runtime.cjs","sourcesContent":["const oneShotSnapshots = new WeakMap<object, readonly unknown[]>();\n\n/** Materialize an iterable without consuming a one-shot iterator more than once. */\nexport function materializeIterable<Item>(source: Iterable<Item> | null | undefined): Item[] {\n if (source == null) return [];\n\n const iterator = source[Symbol.iterator]();\n const oneShot =\n iterator === (source as unknown) &&\n (typeof source === \"object\" || typeof source === \"function\");\n if (oneShot) {\n const cached = oneShotSnapshots.get(source as object);\n if (cached) return cached as Item[];\n }\n\n const items = Array.from({ [Symbol.iterator]: () => iterator });\n if (oneShot) oneShotSnapshots.set(source as object, items);\n return items;\n}\n","import React from \"react\";\nimport { flushSync } from \"react-dom\";\nimport { materializeIterable } from \"./iterable\";\n\nexport type CompilerStateUpdater = unknown | ((previous: unknown) => unknown);\nexport type CompilerRuntimeReactivity = \"static\" | \"hybrid\";\n\ninterface CompilerKeyedMapUpdateHint {\n readonly sourceToken: object;\n readonly changedIndices: readonly number[];\n readonly previous?: CompilerKeyedMapUpdateHint;\n}\n\ninterface CompilerKeyedArrayAppendHint {\n readonly sourceToken: object;\n readonly startIndex: number;\n readonly resultLength: number;\n readonly previous?: CompilerKeyedArrayAppendHint;\n}\n\ninterface CompilerKeyedArrayFilterHint {\n readonly kind: \"filter\" | \"slice\";\n readonly sourceToken: object;\n readonly sourceLength: number;\n readonly resultLength: number;\n readonly removedIndices?: readonly number[];\n readonly retainedEnd?: number;\n readonly retainedStart?: number;\n readonly previous?: CompilerKeyedArrayFilterHint;\n}\n\ninterface CompilerKeyedArrayPrependHint {\n readonly sourceToken: object;\n readonly sourceLength: number;\n readonly resultLength: number;\n readonly prefixLength: number;\n readonly previous?: CompilerKeyedArrayPrependHint;\n}\n\ninterface CompilerKeyedArrayRollingWindowHint {\n readonly sourceToken: object;\n readonly sourceLength: number;\n readonly resultLength: number;\n readonly retainedEnd: number;\n readonly retainedStart: number;\n}\n\ninterface CompilerKeyedArrayPositionHint {\n readonly kind: \"insert\" | \"remove\" | \"replace\";\n readonly sourceToken: object;\n readonly sourceLength: number;\n readonly resultLength: number;\n readonly position: number;\n}\n\ninterface CompilerKeyedArrayBatchInsertHint {\n readonly sourceToken: object;\n readonly sourceLength: number;\n readonly resultLength: number;\n readonly position: number;\n}\n\ninterface CompilerKeyedArrayWindowReplaceHint {\n readonly sourceToken: object;\n readonly sourceLength: number;\n readonly resultLength: number;\n readonly position: number;\n readonly removedCount: number;\n readonly insertedCount: number;\n readonly previous?: CompilerKeyedArrayWindowReplaceHint;\n}\n\ninterface CompilerKeyedArrayReorderHint {\n readonly kind: \"reverse\" | \"sort\";\n readonly sourceToken: object;\n readonly sourceLength: number;\n readonly resultLength: number;\n}\n\ntype CompilerKeyedCollectionKind = \"set\" | \"map\";\ntype CompilerKeyedCollectionMutation = \"set-add\" | \"set-delete\" | \"map-set\" | \"map-delete\";\n\ninterface CompilerKeyedCollectionDraft {\n readonly kind: CompilerKeyedCollectionKind;\n readonly changedKeys: unknown[];\n}\n\ninterface CompilerKeyedCollectionUpdateHint {\n readonly kind: CompilerKeyedCollectionKind;\n readonly sourceToken: object;\n readonly changedKeys: readonly unknown[];\n readonly previous?: CompilerKeyedCollectionUpdateHint;\n}\n\nconst COMPILER_KEYED_COLLECTION_TOKENS = /* @__PURE__ */ new WeakMap<object, object>();\nconst COMPILER_KEYED_MAP_UPDATES = /* @__PURE__ */ new WeakMap<\n object,\n CompilerKeyedMapUpdateHint\n>();\nconst COMPILER_KEYED_ARRAY_APPENDS = /* @__PURE__ */ new WeakMap<\n object,\n CompilerKeyedArrayAppendHint\n>();\nconst COMPILER_KEYED_ARRAY_FILTERS = /* @__PURE__ */ new WeakMap<\n object,\n CompilerKeyedArrayFilterHint\n>();\nconst COMPILER_KEYED_ARRAY_PREPENDS = /* @__PURE__ */ new WeakMap<\n object,\n CompilerKeyedArrayPrependHint\n>();\nconst COMPILER_KEYED_ARRAY_ROLLING_WINDOWS = /* @__PURE__ */ new WeakMap<\n object,\n CompilerKeyedArrayRollingWindowHint\n>();\nconst COMPILER_KEYED_ARRAY_POSITIONS = /* @__PURE__ */ new WeakMap<\n object,\n CompilerKeyedArrayPositionHint\n>();\nconst COMPILER_KEYED_ARRAY_BATCH_INSERTS = /* @__PURE__ */ new WeakMap<\n object,\n CompilerKeyedArrayBatchInsertHint\n>();\nconst COMPILER_KEYED_ARRAY_WINDOW_REPLACEMENTS = /* @__PURE__ */ new WeakMap<\n object,\n CompilerKeyedArrayWindowReplaceHint\n>();\nconst COMPILER_KEYED_ARRAY_REORDERS = /* @__PURE__ */ new WeakMap<\n object,\n CompilerKeyedArrayReorderHint\n>();\nconst COMPILER_KEYED_COLLECTION_DRAFTS = /* @__PURE__ */ new WeakMap<\n object,\n CompilerKeyedCollectionDraft\n>();\nconst COMPILER_KEYED_COLLECTION_UPDATES = /* @__PURE__ */ new WeakMap<\n object,\n CompilerKeyedCollectionUpdateHint\n>();\nconst COMPILER_KEYED_COMMITTED_COLLECTIONS = /* @__PURE__ */ new WeakSet<object>();\nconst NATIVE_ARRAY_PROTOTYPE = Array.prototype;\nconst NATIVE_ARRAY_ITERATOR = Array.prototype[Symbol.iterator];\nconst NATIVE_ARRAY_FILTER = Array.prototype.filter;\nconst NATIVE_ARRAY_SLICE = Array.prototype.slice;\nconst NATIVE_ARRAY_TO_SPLICED = (\n Array.prototype as unknown as { toSpliced?: (...args: readonly unknown[]) => unknown }\n).toSpliced;\nconst NATIVE_ARRAY_WITH = (\n Array.prototype as unknown as { with?: (...args: readonly unknown[]) => unknown }\n).with;\nconst NATIVE_ARRAY_TO_REVERSED = (\n Array.prototype as unknown as { toReversed?: (...args: readonly unknown[]) => unknown }\n).toReversed;\nconst NATIVE_ARRAY_TO_SORTED = (\n Array.prototype as unknown as { toSorted?: (...args: readonly unknown[]) => unknown }\n).toSorted;\nconst NATIVE_REFLECT_APPLY = Reflect.apply;\n\nfunction compilerObject(value: unknown): object | undefined {\n return (typeof value === \"object\" && value !== null) || typeof value === \"function\"\n ? (value as object)\n : undefined;\n}\n\nfunction compilerKeyedCollectionToken(value: unknown): object | undefined {\n const target = compilerObject(value);\n if (!target) return undefined;\n let token = COMPILER_KEYED_COLLECTION_TOKENS.get(target);\n if (!token) {\n token = {};\n COMPILER_KEYED_COLLECTION_TOKENS.set(target, token);\n }\n return token;\n}\n\nfunction commitCompilerKeyedCollection(value: unknown): object | undefined {\n const target = compilerObject(value);\n if (!target) return undefined;\n COMPILER_KEYED_COMMITTED_COLLECTIONS.add(target);\n return compilerKeyedCollectionToken(target);\n}\n\nfunction compilerKeyedMapChangedIndices(\n value: unknown,\n sourceToken: object | undefined,\n): readonly number[] | undefined {\n const target = compilerObject(value);\n if (!target || !sourceToken) return undefined;\n const update = COMPILER_KEYED_MAP_UPDATES.get(target);\n if (!update || update.sourceToken !== sourceToken) return undefined;\n const changedIndices: number[] = [];\n for (\n let current: CompilerKeyedMapUpdateHint | undefined = update;\n current;\n current = current.previous\n ) {\n changedIndices.push(...current.changedIndices);\n }\n return changedIndices;\n}\n\nfunction compilerKeyedArrayAppendStart(\n value: unknown,\n sourceToken: object | undefined,\n expectedStart: number,\n): number | undefined {\n const target = compilerObject(value);\n if (!target || !sourceToken || !Array.isArray(value)) return undefined;\n const update = COMPILER_KEYED_ARRAY_APPENDS.get(target);\n if (!update || update.sourceToken !== sourceToken) return undefined;\n const updates: CompilerKeyedArrayAppendHint[] = [];\n for (\n let current: CompilerKeyedArrayAppendHint | undefined = update;\n current;\n current = current.previous\n ) {\n if (current.sourceToken !== sourceToken) return undefined;\n updates.push(current);\n }\n let length = expectedStart;\n for (let index = updates.length - 1; index >= 0; index -= 1) {\n const current = updates[index];\n if (current.startIndex !== length || current.resultLength < length) return undefined;\n length = current.resultLength;\n }\n return length === value.length ? expectedStart : undefined;\n}\n\nfunction compilerKeyedArrayFilterSurvivors(\n value: unknown,\n sourceToken: object | undefined,\n expectedLength: number,\n): { readonly indices: readonly number[]; readonly keysStable: boolean } | undefined {\n const target = compilerObject(value);\n if (!target || !sourceToken || !Array.isArray(value)) return undefined;\n const update = COMPILER_KEYED_ARRAY_FILTERS.get(target);\n if (!update || update.sourceToken !== sourceToken) return undefined;\n const updates: CompilerKeyedArrayFilterHint[] = [];\n for (\n let current: CompilerKeyedArrayFilterHint | undefined = update;\n current;\n current = current.previous\n ) {\n if (current.sourceToken !== sourceToken) return undefined;\n updates.push(current);\n }\n\n let survivors = Array.from({ length: expectedLength }, (_, index) => index);\n let keysStable = true;\n for (let updateIndex = updates.length - 1; updateIndex >= 0; updateIndex -= 1) {\n const current = updates[updateIndex];\n if (current.sourceLength !== survivors.length) return undefined;\n if (current.kind === \"slice\") {\n const start = current.retainedStart;\n const end = current.retainedEnd;\n if (\n start === undefined ||\n end === undefined ||\n !Number.isSafeInteger(start) ||\n !Number.isSafeInteger(end) ||\n start < 0 ||\n end < start ||\n end > current.sourceLength ||\n current.resultLength !== end - start\n ) {\n return undefined;\n }\n survivors = survivors.slice(start, end);\n continue;\n }\n keysStable = false;\n const removed = new Set<number>();\n for (const index of current.removedIndices || []) {\n if (!Number.isSafeInteger(index) || index < 0 || index >= current.sourceLength)\n return undefined;\n removed.add(index);\n }\n if (current.resultLength !== current.sourceLength - removed.size) return undefined;\n survivors = survivors.filter((_sourceIndex, index) => !removed.has(index));\n }\n return survivors.length === value.length ? { indices: survivors, keysStable } : undefined;\n}\n\nfunction compilerKeyedArrayPrependLength(\n value: unknown,\n sourceToken: object | undefined,\n expectedLength: number,\n): number | undefined {\n const target = compilerObject(value);\n if (!target || !sourceToken || !Array.isArray(value)) return undefined;\n const update = COMPILER_KEYED_ARRAY_PREPENDS.get(target);\n if (!update || update.sourceToken !== sourceToken) return undefined;\n const updates: CompilerKeyedArrayPrependHint[] = [];\n for (\n let current: CompilerKeyedArrayPrependHint | undefined = update;\n current;\n current = current.previous\n ) {\n if (current.sourceToken !== sourceToken) return undefined;\n updates.push(current);\n }\n\n let length = expectedLength;\n let prefixLength = 0;\n for (let index = updates.length - 1; index >= 0; index -= 1) {\n const current = updates[index];\n if (\n current.sourceLength !== length ||\n current.prefixLength < 1 ||\n current.resultLength !== current.sourceLength + current.prefixLength\n ) {\n return undefined;\n }\n length = current.resultLength;\n prefixLength += current.prefixLength;\n }\n return length === value.length ? prefixLength : undefined;\n}\n\nfunction compilerKeyedArrayRollingWindow(\n value: unknown,\n sourceToken: object | undefined,\n expectedLength: number,\n): CompilerKeyedArrayRollingWindowHint | undefined {\n const target = compilerObject(value);\n if (!target || !sourceToken || !Array.isArray(value)) return undefined;\n const update = COMPILER_KEYED_ARRAY_ROLLING_WINDOWS.get(target);\n if (\n !update ||\n update.sourceToken !== sourceToken ||\n update.sourceLength !== expectedLength ||\n update.resultLength !== value.length ||\n update.retainedStart < 1 ||\n update.retainedEnd !== update.sourceLength ||\n update.resultLength <= update.retainedEnd - update.retainedStart\n ) {\n return undefined;\n }\n return update;\n}\n\nfunction compilerKeyedArrayPosition(\n value: unknown,\n sourceToken: object | undefined,\n expectedLength: number,\n): CompilerKeyedArrayPositionHint | undefined {\n const target = compilerObject(value);\n if (!target || !sourceToken || !Array.isArray(value)) return undefined;\n const update = COMPILER_KEYED_ARRAY_POSITIONS.get(target);\n if (\n !update ||\n update.sourceToken !== sourceToken ||\n update.sourceLength !== expectedLength ||\n update.resultLength !== value.length ||\n update.position < 0 ||\n update.position > expectedLength ||\n (update.kind === \"insert\" && update.resultLength !== expectedLength + 1) ||\n (update.kind === \"remove\" &&\n (update.resultLength >= expectedLength || update.position > update.resultLength)) ||\n (update.kind === \"replace\" &&\n (update.position >= expectedLength || update.resultLength !== expectedLength))\n ) {\n return undefined;\n }\n return update;\n}\n\nfunction compilerKeyedArrayBatchInsert(\n value: unknown,\n sourceToken: object | undefined,\n expectedLength: number,\n): CompilerKeyedArrayBatchInsertHint | undefined {\n const target = compilerObject(value);\n if (!target || !sourceToken || !Array.isArray(value)) return undefined;\n const update = COMPILER_KEYED_ARRAY_BATCH_INSERTS.get(target);\n if (\n !update ||\n update.sourceToken !== sourceToken ||\n update.sourceLength !== expectedLength ||\n update.resultLength !== value.length ||\n update.resultLength < expectedLength + 2 ||\n update.position < 0 ||\n update.position > expectedLength\n ) {\n return undefined;\n }\n return update;\n}\n\nfunction compilerKeyedArrayWindowReplacements(\n value: unknown,\n sourceToken: object | undefined,\n expectedLength: number,\n): readonly CompilerKeyedArrayWindowReplaceHint[] | undefined {\n const target = compilerObject(value);\n if (!target || !sourceToken || !Array.isArray(value)) return undefined;\n const update = COMPILER_KEYED_ARRAY_WINDOW_REPLACEMENTS.get(target);\n if (!update || update.sourceToken !== sourceToken) return undefined;\n const updates: CompilerKeyedArrayWindowReplaceHint[] = [];\n for (\n let current: CompilerKeyedArrayWindowReplaceHint | undefined = update;\n current;\n current = current.previous\n ) {\n if (current.sourceToken !== sourceToken) return undefined;\n updates.push(current);\n }\n updates.reverse();\n\n let length = expectedLength;\n for (const current of updates) {\n if (\n current.sourceLength !== length ||\n current.position < 0 ||\n current.position >= current.sourceLength ||\n current.removedCount < 1 ||\n current.position + current.removedCount > current.sourceLength ||\n current.insertedCount < 0 ||\n current.resultLength !== current.sourceLength - current.removedCount + current.insertedCount\n ) {\n return undefined;\n }\n length = current.resultLength;\n }\n return length === value.length ? updates : undefined;\n}\n\nfunction compilerKeyedArrayReorder(\n value: unknown,\n sourceToken: object | undefined,\n expectedLength: number,\n): CompilerKeyedArrayReorderHint | undefined {\n const target = compilerObject(value);\n if (!target || !sourceToken || !Array.isArray(value)) return undefined;\n const update = COMPILER_KEYED_ARRAY_REORDERS.get(target);\n if (\n !update ||\n update.sourceToken !== sourceToken ||\n update.sourceLength !== expectedLength ||\n update.resultLength !== expectedLength ||\n update.resultLength !== value.length\n ) {\n return undefined;\n }\n return update;\n}\n\nfunction compilerKeyedCollectionChangedKeys(\n value: unknown,\n sourceToken: object | undefined,\n kind: CompilerKeyedCollectionKind,\n): readonly unknown[] | undefined {\n const target = compilerObject(value);\n if (!target || !sourceToken) return undefined;\n const update = COMPILER_KEYED_COLLECTION_UPDATES.get(target);\n if (!update || update.kind !== kind || update.sourceToken !== sourceToken) return undefined;\n const changedKeys: unknown[] = [];\n for (\n let current: CompilerKeyedCollectionUpdateHint | undefined = update;\n current;\n current = current.previous\n ) {\n if (current.kind !== kind || current.sourceToken !== sourceToken) return undefined;\n changedKeys.push(...current.changedKeys);\n }\n return changedKeys;\n}\n\n/** @internal Records compiler-proven same-order Array.map metadata and returns the Array. */\nexport function createCompilerKeyedMapUpdate(\n previous: unknown,\n value: unknown,\n changedIndices: readonly number[],\n): unknown {\n const previousTarget = compilerObject(previous);\n const valueTarget = compilerObject(value);\n const sourceToken = compilerKeyedCollectionToken(previousTarget);\n if (valueTarget && sourceToken) {\n const previousUpdate =\n previousTarget && !COMPILER_KEYED_COMMITTED_COLLECTIONS.has(previousTarget)\n ? COMPILER_KEYED_MAP_UPDATES.get(previousTarget)\n : undefined;\n COMPILER_KEYED_MAP_UPDATES.set(valueTarget, {\n sourceToken: previousUpdate?.sourceToken || sourceToken,\n changedIndices,\n ...(previousUpdate ? { previous: previousUpdate } : {}),\n });\n }\n return value;\n}\n\n/** @internal Records a compiler-proven immutable keyed-array append and returns the Array. */\nexport function createCompilerKeyedArrayAppend(previous: unknown, value: unknown): unknown {\n try {\n const previousTarget = compilerObject(previous);\n const valueTarget = compilerObject(value);\n if (\n !previousTarget ||\n !valueTarget ||\n !Array.isArray(previous) ||\n !Array.isArray(value) ||\n Object.getPrototypeOf(previous) !== NATIVE_ARRAY_PROTOTYPE ||\n Object.getPrototypeOf(value) !== NATIVE_ARRAY_PROTOTYPE ||\n previous[Symbol.iterator] !== NATIVE_ARRAY_ITERATOR\n ) {\n return value;\n }\n const startIndex = previous.length;\n if (value.length < startIndex) return value;\n const sourceToken = compilerKeyedCollectionToken(previousTarget);\n if (!sourceToken) return value;\n const previousUpdate = !COMPILER_KEYED_COMMITTED_COLLECTIONS.has(previousTarget)\n ? COMPILER_KEYED_ARRAY_APPENDS.get(previousTarget)\n : undefined;\n COMPILER_KEYED_ARRAY_APPENDS.set(valueTarget, {\n sourceToken: previousUpdate?.sourceToken || sourceToken,\n startIndex,\n resultLength: value.length,\n ...(previousUpdate ? { previous: previousUpdate } : {}),\n });\n return value;\n } catch {\n // Metadata must never change the behavior of an otherwise valid update.\n return value;\n }\n}\n\n/** @internal Records a compiler-proven immutable keyed-array prepend and returns the Array. */\nexport function createCompilerKeyedArrayPrepend(previous: unknown, value: unknown): unknown {\n try {\n const previousTarget = compilerObject(previous);\n const valueTarget = compilerObject(value);\n if (\n !previousTarget ||\n !valueTarget ||\n !Array.isArray(previous) ||\n !Array.isArray(value) ||\n Object.getPrototypeOf(previous) !== NATIVE_ARRAY_PROTOTYPE ||\n Object.getPrototypeOf(value) !== NATIVE_ARRAY_PROTOTYPE ||\n previous[Symbol.iterator] !== NATIVE_ARRAY_ITERATOR\n ) {\n return value;\n }\n const sourceLength = previous.length;\n const prefixLength = value.length - sourceLength;\n if (prefixLength < 1) return value;\n const sourceToken = compilerKeyedCollectionToken(previousTarget);\n if (!sourceToken) return value;\n const previousUpdate = !COMPILER_KEYED_COMMITTED_COLLECTIONS.has(previousTarget)\n ? COMPILER_KEYED_ARRAY_PREPENDS.get(previousTarget)\n : undefined;\n COMPILER_KEYED_ARRAY_PREPENDS.set(valueTarget, {\n sourceToken: previousUpdate?.sourceToken || sourceToken,\n sourceLength,\n resultLength: value.length,\n prefixLength,\n ...(previousUpdate ? { previous: previousUpdate } : {}),\n });\n return value;\n } catch {\n // Metadata must never change the behavior of an otherwise valid update.\n return value;\n }\n}\n\n/** @internal Executes Array.filter while recording compiler-proven removal positions. */\nexport function createCompilerKeyedArrayFilter(\n previous: unknown,\n method: unknown,\n predicate: unknown,\n): unknown {\n let canHint = false;\n let sourceLength = 0;\n try {\n canHint =\n Array.isArray(previous) &&\n Object.getPrototypeOf(previous) === NATIVE_ARRAY_PROTOTYPE &&\n method === NATIVE_ARRAY_FILTER &&\n typeof predicate === \"function\";\n if (canHint) sourceLength = (previous as unknown[]).length;\n } catch {\n canHint = false;\n }\n\n if (!canHint) {\n return NATIVE_REFLECT_APPLY(method as (...args: unknown[]) => unknown, previous, [predicate]);\n }\n\n const removedIndices: number[] = [];\n let visited = 0;\n const wrappedPredicate = function (\n this: unknown,\n item: unknown,\n index: number,\n collection: unknown[],\n ): unknown {\n visited += 1;\n const keep = NATIVE_REFLECT_APPLY(predicate as (...args: unknown[]) => unknown, this, [\n item,\n index,\n collection,\n ]);\n if (!keep) removedIndices.push(index);\n return keep;\n };\n const value = NATIVE_REFLECT_APPLY(method as (...args: unknown[]) => unknown, previous, [\n wrappedPredicate,\n ]);\n\n try {\n const previousTarget = compilerObject(previous);\n const valueTarget = compilerObject(value);\n if (\n !previousTarget ||\n !valueTarget ||\n !Array.isArray(value) ||\n Object.getPrototypeOf(value) !== NATIVE_ARRAY_PROTOTYPE ||\n visited !== sourceLength ||\n value.length !== sourceLength - removedIndices.length\n ) {\n return value;\n }\n const sourceToken = compilerKeyedCollectionToken(previousTarget);\n if (!sourceToken) return value;\n const previousUpdate = !COMPILER_KEYED_COMMITTED_COLLECTIONS.has(previousTarget)\n ? COMPILER_KEYED_ARRAY_FILTERS.get(previousTarget)\n : undefined;\n COMPILER_KEYED_ARRAY_FILTERS.set(valueTarget, {\n kind: \"filter\",\n sourceToken: previousUpdate?.sourceToken || sourceToken,\n sourceLength,\n resultLength: value.length,\n removedIndices,\n ...(previousUpdate ? { previous: previousUpdate } : {}),\n });\n } catch {\n // Metadata must never change the result of a successful native filter.\n }\n return value;\n}\n\n/** @internal Executes a compiler-proven native Array.slice and records its retained interval. */\nexport function createCompilerKeyedArraySlice(\n previous: unknown,\n method: unknown,\n ...args: readonly number[]\n): unknown {\n const canHint = (() => {\n try {\n return (\n Array.isArray(previous) &&\n Object.getPrototypeOf(previous) === NATIVE_ARRAY_PROTOTYPE &&\n method === NATIVE_ARRAY_SLICE &&\n args.length > 0 &&\n args.length <= 2 &&\n args.every((value) => Number.isSafeInteger(value))\n );\n } catch {\n return false;\n }\n })();\n const value = NATIVE_REFLECT_APPLY(method as (...values: number[]) => unknown, previous, args);\n if (!canHint) return value;\n\n try {\n const previousTarget = compilerObject(previous);\n const valueTarget = compilerObject(value);\n if (\n !previousTarget ||\n !valueTarget ||\n !Array.isArray(value) ||\n Object.getPrototypeOf(value) !== NATIVE_ARRAY_PROTOTYPE\n ) {\n return value;\n }\n const sourceLength = (previous as unknown[]).length;\n const normalize = (relative: number): number =>\n relative < 0 ? Math.max(sourceLength + relative, 0) : Math.min(relative, sourceLength);\n const retainedStart = normalize(args[0]);\n const retainedEnd = args.length === 2 ? normalize(args[1]) : sourceLength;\n const resultLength = Math.max(retainedEnd - retainedStart, 0);\n if (value.length !== resultLength || resultLength >= sourceLength) return value;\n const sourceToken = compilerKeyedCollectionToken(previousTarget);\n if (!sourceToken) return value;\n const previousUpdate = !COMPILER_KEYED_COMMITTED_COLLECTIONS.has(previousTarget)\n ? COMPILER_KEYED_ARRAY_FILTERS.get(previousTarget)\n : undefined;\n COMPILER_KEYED_ARRAY_FILTERS.set(valueTarget, {\n kind: \"slice\",\n sourceToken: previousUpdate?.sourceToken || sourceToken,\n sourceLength,\n resultLength,\n retainedEnd: Math.max(retainedEnd, retainedStart),\n retainedStart,\n ...(previousUpdate ? { previous: previousUpdate } : {}),\n });\n } catch {\n // Metadata must never change the result of a successful native slice.\n }\n return value;\n}\n\n/** @internal Records a compiler-proven retained tail followed by incoming keyed rows. */\nexport function createCompilerKeyedArrayRollingWindow(\n previous: unknown,\n retained: unknown,\n value: unknown,\n): unknown {\n try {\n const previousTarget = compilerObject(previous);\n const retainedTarget = compilerObject(retained);\n const valueTarget = compilerObject(value);\n if (\n !previousTarget ||\n !retainedTarget ||\n !valueTarget ||\n !COMPILER_KEYED_COMMITTED_COLLECTIONS.has(previousTarget) ||\n !Array.isArray(previous) ||\n !Array.isArray(retained) ||\n !Array.isArray(value) ||\n Object.getPrototypeOf(previous) !== NATIVE_ARRAY_PROTOTYPE ||\n Object.getPrototypeOf(retained) !== NATIVE_ARRAY_PROTOTYPE ||\n Object.getPrototypeOf(value) !== NATIVE_ARRAY_PROTOTYPE\n ) {\n return value;\n }\n const sourceToken = compilerKeyedCollectionToken(previousTarget);\n const slice = COMPILER_KEYED_ARRAY_FILTERS.get(retainedTarget);\n if (\n !sourceToken ||\n !slice ||\n slice.previous ||\n slice.kind !== \"slice\" ||\n slice.sourceToken !== sourceToken ||\n slice.sourceLength !== previous.length ||\n slice.retainedStart === undefined ||\n slice.retainedEnd !== previous.length ||\n slice.retainedStart < 1 ||\n slice.resultLength !== retained.length ||\n value.length <= retained.length\n ) {\n return value;\n }\n for (let index = 0; index < retained.length; index += 1) {\n if (!Object.is(value[index], retained[index])) return value;\n }\n COMPILER_KEYED_ARRAY_ROLLING_WINDOWS.set(valueTarget, {\n sourceToken,\n sourceLength: previous.length,\n resultLength: value.length,\n retainedEnd: slice.retainedEnd,\n retainedStart: slice.retainedStart,\n });\n } catch {\n // Metadata must never change the result of a successful array update.\n }\n return value;\n}\n\n/** @internal Executes a native known-position insert, removal, or replacement and records it. */\nexport function createCompilerKeyedArrayPositionUpdate(\n previous: unknown,\n method: unknown,\n kind: \"insert\" | \"remove\" | \"replace\",\n position: number,\n ...args: readonly unknown[]\n): unknown {\n const callArgs = [position, ...args];\n const value = NATIVE_REFLECT_APPLY(\n method as (...values: readonly unknown[]) => unknown,\n previous,\n callArgs,\n );\n\n try {\n const previousTarget = compilerObject(previous);\n const valueTarget = compilerObject(value);\n if (\n !previousTarget ||\n !valueTarget ||\n !COMPILER_KEYED_COMMITTED_COLLECTIONS.has(previousTarget) ||\n !Array.isArray(previous) ||\n !Array.isArray(value) ||\n Object.getPrototypeOf(previous) !== NATIVE_ARRAY_PROTOTYPE ||\n Object.getPrototypeOf(value) !== NATIVE_ARRAY_PROTOTYPE ||\n !Number.isSafeInteger(position)\n ) {\n return value;\n }\n\n const sourceLength = previous.length;\n const normalizedPosition =\n position < 0 ? Math.max(sourceLength + position, 0) : Math.min(position, sourceLength);\n const deleteCount = args[0];\n const removedCount = sourceLength - value.length;\n const validInsert =\n kind === \"insert\" &&\n method === NATIVE_ARRAY_TO_SPLICED &&\n args.length === 2 &&\n Object.is(args[0], 0) &&\n value.length === sourceLength + 1;\n const validRemove =\n kind === \"remove\" &&\n method === NATIVE_ARRAY_TO_SPLICED &&\n args.length === 1 &&\n Number.isSafeInteger(deleteCount) &&\n (deleteCount as number) > 0 &&\n normalizedPosition < sourceLength &&\n removedCount === Math.min(deleteCount as number, sourceLength - normalizedPosition);\n const validReplace =\n kind === \"replace\" &&\n value.length === sourceLength &&\n ((method === NATIVE_ARRAY_WITH &&\n args.length === 1 &&\n position >= -sourceLength &&\n position < sourceLength) ||\n (method === NATIVE_ARRAY_TO_SPLICED &&\n args.length === 2 &&\n Object.is(args[0], 1) &&\n normalizedPosition < sourceLength));\n if (!validInsert && !validRemove && !validReplace) return value;\n\n const sourceToken = compilerKeyedCollectionToken(previousTarget);\n if (!sourceToken) return value;\n COMPILER_KEYED_ARRAY_POSITIONS.set(valueTarget, {\n kind,\n sourceToken,\n sourceLength,\n resultLength: value.length,\n position: normalizedPosition,\n });\n } catch {\n // Metadata must never change the result of a successful native update.\n }\n return value;\n}\n\n/** @internal Executes a native exact-position batch insertion and records it. */\nexport function createCompilerKeyedArrayBatchInsert(\n previous: unknown,\n method: unknown,\n position: number,\n ...items: readonly unknown[]\n): unknown {\n const value = NATIVE_REFLECT_APPLY(\n method as (...values: readonly unknown[]) => unknown,\n previous,\n [position, 0, ...items],\n );\n\n try {\n const previousTarget = compilerObject(previous);\n const valueTarget = compilerObject(value);\n if (\n !previousTarget ||\n !valueTarget ||\n !COMPILER_KEYED_COMMITTED_COLLECTIONS.has(previousTarget) ||\n !Array.isArray(previous) ||\n !Array.isArray(value) ||\n Object.getPrototypeOf(previous) !== NATIVE_ARRAY_PROTOTYPE ||\n Object.getPrototypeOf(value) !== NATIVE_ARRAY_PROTOTYPE ||\n method !== NATIVE_ARRAY_TO_SPLICED ||\n !Number.isSafeInteger(position) ||\n items.length < 2 ||\n value.length !== previous.length + items.length\n ) {\n return value;\n }\n for (let index = 0; index < previous.length; index += 1) {\n if (!Object.prototype.hasOwnProperty.call(previous, index)) return value;\n }\n const sourceToken = compilerKeyedCollectionToken(previousTarget);\n if (!sourceToken) return value;\n COMPILER_KEYED_ARRAY_BATCH_INSERTS.set(valueTarget, {\n sourceToken,\n sourceLength: previous.length,\n resultLength: value.length,\n position:\n position < 0\n ? Math.max(previous.length + position, 0)\n : Math.min(position, previous.length),\n });\n } catch {\n // Metadata must never change the result of a successful native update.\n }\n return value;\n}\n\n/** @internal Executes a native exact-window replacement and records it. */\nexport function createCompilerKeyedArrayWindowReplace(\n previous: unknown,\n method: unknown,\n position: number,\n deleteCount: number,\n ...items: readonly unknown[]\n): unknown {\n const value = NATIVE_REFLECT_APPLY(\n method as (...values: readonly unknown[]) => unknown,\n previous,\n [position, deleteCount, ...items],\n );\n\n try {\n const previousTarget = compilerObject(previous);\n const valueTarget = compilerObject(value);\n if (\n !previousTarget ||\n !valueTarget ||\n !Array.isArray(previous) ||\n !Array.isArray(value) ||\n Object.getPrototypeOf(previous) !== NATIVE_ARRAY_PROTOTYPE ||\n Object.getPrototypeOf(value) !== NATIVE_ARRAY_PROTOTYPE ||\n method !== NATIVE_ARRAY_TO_SPLICED ||\n !Number.isSafeInteger(position) ||\n !Number.isSafeInteger(deleteCount) ||\n deleteCount <= 0\n ) {\n return value;\n }\n for (let index = 0; index < previous.length; index += 1) {\n if (!Object.prototype.hasOwnProperty.call(previous, index)) return value;\n }\n const normalizedPosition =\n position < 0 ? Math.max(previous.length + position, 0) : Math.min(position, previous.length);\n const removedCount = Math.min(deleteCount, previous.length - normalizedPosition);\n if (removedCount < 1 || value.length !== previous.length - removedCount + items.length) {\n return value;\n }\n const committedSource = COMPILER_KEYED_COMMITTED_COLLECTIONS.has(previousTarget);\n const previousUpdate = committedSource\n ? undefined\n : COMPILER_KEYED_ARRAY_WINDOW_REPLACEMENTS.get(previousTarget);\n if (!committedSource && !previousUpdate) return value;\n const sourceToken = previousUpdate?.sourceToken || compilerKeyedCollectionToken(previousTarget);\n if (!sourceToken) return value;\n COMPILER_KEYED_ARRAY_WINDOW_REPLACEMENTS.set(valueTarget, {\n sourceToken,\n sourceLength: previous.length,\n resultLength: value.length,\n position: normalizedPosition,\n removedCount,\n insertedCount: items.length,\n ...(previousUpdate ? { previous: previousUpdate } : {}),\n });\n } catch {\n // Metadata must never change the result of a successful native update.\n }\n return value;\n}\n\n/** @internal Executes a native reverse and records its exact keyed-row permutation. */\nexport function createCompilerKeyedArrayReorder(previous: unknown, method: unknown): unknown {\n const value = NATIVE_REFLECT_APPLY(\n method as (...values: readonly unknown[]) => unknown,\n previous,\n [],\n );\n\n try {\n const previousTarget = compilerObject(previous);\n const valueTarget = compilerObject(value);\n if (\n !previousTarget ||\n !valueTarget ||\n !COMPILER_KEYED_COMMITTED_COLLECTIONS.has(previousTarget) ||\n !Array.isArray(previous) ||\n !Array.isArray(value) ||\n Object.getPrototypeOf(previous) !== NATIVE_ARRAY_PROTOTYPE ||\n Object.getPrototypeOf(value) !== NATIVE_ARRAY_PROTOTYPE ||\n method !== NATIVE_ARRAY_TO_REVERSED ||\n value.length !== previous.length\n ) {\n return value;\n }\n\n const sourceToken = compilerKeyedCollectionToken(previousTarget);\n if (!sourceToken) return value;\n COMPILER_KEYED_ARRAY_REORDERS.set(valueTarget, {\n kind: \"reverse\",\n sourceToken,\n sourceLength: previous.length,\n resultLength: value.length,\n });\n } catch {\n // Metadata must never change the result of a successful native update.\n }\n return value;\n}\n\n/** @internal Executes a native immutable sort and records its keyed-row permutation. */\nexport function createCompilerKeyedArraySort(\n previous: unknown,\n method: unknown,\n ...args: readonly unknown[]\n): unknown {\n const value = NATIVE_REFLECT_APPLY(\n method as (...values: readonly unknown[]) => unknown,\n previous,\n args,\n );\n\n try {\n const previousTarget = compilerObject(previous);\n const valueTarget = compilerObject(value);\n if (\n !previousTarget ||\n !valueTarget ||\n !COMPILER_KEYED_COMMITTED_COLLECTIONS.has(previousTarget) ||\n !Array.isArray(previous) ||\n !Array.isArray(value) ||\n Object.getPrototypeOf(previous) !== NATIVE_ARRAY_PROTOTYPE ||\n Object.getPrototypeOf(value) !== NATIVE_ARRAY_PROTOTYPE ||\n method !== NATIVE_ARRAY_TO_SORTED ||\n args.length > 1 ||\n (args.length === 1 && args[0] !== undefined && typeof args[0] !== \"function\") ||\n value.length !== previous.length\n ) {\n return value;\n }\n for (let index = 0; index < previous.length; index += 1) {\n if (!(index in previous)) return value;\n }\n\n const sourceToken = compilerKeyedCollectionToken(previousTarget);\n if (!sourceToken) return value;\n COMPILER_KEYED_ARRAY_REORDERS.set(valueTarget, {\n kind: \"sort\",\n sourceToken,\n sourceLength: previous.length,\n resultLength: value.length,\n });\n } catch {\n // Metadata must never change the result of a successful native update.\n }\n return value;\n}\n\n/** @internal Preserves a proven native collection mutation while recording its executed key. */\nexport function applyCompilerKeyedCollectionMutation(\n collection: unknown,\n method: unknown,\n operation: CompilerKeyedCollectionMutation,\n key: unknown,\n value?: unknown,\n): unknown {\n const args = operation === \"map-set\" ? [key, value] : [key];\n const result = NATIVE_REFLECT_APPLY(method as (...args: unknown[]) => unknown, collection, args);\n const target = compilerObject(collection);\n if (!target) return result;\n\n const kind: CompilerKeyedCollectionKind = operation.startsWith(\"set-\") ? \"set\" : \"map\";\n const nativeMethod =\n operation === \"set-add\"\n ? NATIVE_SET_ADD\n : operation === \"set-delete\"\n ? NATIVE_SET_DELETE\n : operation === \"map-set\"\n ? NATIVE_MAP_SET\n : NATIVE_MAP_DELETE;\n const nativePrototype = kind === \"set\" ? NATIVE_SET_PROTOTYPE : NATIVE_MAP_PROTOTYPE;\n if (method !== nativeMethod || Object.getPrototypeOf(collection) !== nativePrototype) {\n return result;\n }\n\n const existing = COMPILER_KEYED_COLLECTION_DRAFTS.get(target);\n if (existing && existing.kind !== kind) return result;\n if (existing) existing.changedKeys.push(key);\n else COMPILER_KEYED_COLLECTION_DRAFTS.set(target, { kind, changedKeys: [key] });\n return result;\n}\n\n/** @internal Connects compiler-owned immutable Set/Map mutations to their committed source. */\nexport function createCompilerKeyedCollectionUpdate(\n previous: unknown,\n value: unknown,\n kind: CompilerKeyedCollectionKind,\n): unknown {\n const previousTarget = compilerObject(previous);\n const valueTarget = compilerObject(value);\n if (!previousTarget || !valueTarget || previousTarget === valueTarget) return value;\n const draft = COMPILER_KEYED_COLLECTION_DRAFTS.get(valueTarget);\n if (!draft || draft.kind !== kind || draft.changedKeys.length === 0) return value;\n\n const sourceToken = compilerKeyedCollectionToken(previousTarget);\n if (!sourceToken) return value;\n const previousUpdate = !COMPILER_KEYED_COMMITTED_COLLECTIONS.has(previousTarget)\n ? COMPILER_KEYED_COLLECTION_UPDATES.get(previousTarget)\n : undefined;\n COMPILER_KEYED_COLLECTION_UPDATES.set(valueTarget, {\n kind,\n sourceToken: previousUpdate?.sourceToken || sourceToken,\n changedKeys: [...draft.changedKeys],\n ...(previousUpdate ? { previous: previousUpdate } : {}),\n });\n return value;\n}\n\nexport interface CompilerCell {\n get(): unknown;\n set(next: CompilerStateUpdater): void;\n}\n\ninterface RuntimeCell extends CompilerCell {\n flush(): boolean;\n replace(next: unknown): void;\n}\n\ntype PendingCellUpdate =\n | { kind: \"state\"; update: CompilerStateUpdater }\n | { kind: \"value\"; value: unknown };\n\ntype SelectableTextControl = HTMLInputElement | HTMLTextAreaElement;\n\ninterface InputSelectionSnapshot {\n element: SelectableTextControl;\n start: number;\n end: number;\n direction: \"forward\" | \"backward\" | \"none\";\n}\n\nexport interface CompilerTextBinding<Props> {\n kind: \"text\";\n /** Runtime tracking is useful only for compiler-proven short-circuiting readers. */\n tracking?: \"dynamic\";\n path: readonly number[];\n /** Stable ref target emitted by newer compiler versions. */\n target?: number;\n dependencies: readonly number[];\n read(props: Props, state: readonly CompilerCell[]): unknown;\n}\n\nexport interface CompilerAttributeBinding<Props> {\n kind: \"attribute\";\n /** Runtime tracking is useful only for compiler-proven short-circuiting readers. */\n tracking?: \"dynamic\";\n path: readonly number[];\n /** Stable ref target emitted by newer compiler versions. */\n target?: number;\n dependencies: readonly number[];\n name: string;\n read(props: Props, state: readonly CompilerCell[]): unknown;\n}\n\nexport interface CompilerStyleBinding<Props> {\n kind: \"style\";\n /** Runtime tracking is useful only for compiler-proven short-circuiting readers. */\n tracking?: \"dynamic\";\n path: readonly number[];\n /** Stable ref target emitted by newer compiler versions. */\n target?: number;\n dependencies: readonly number[];\n name: string;\n read(props: Props, state: readonly CompilerCell[]): unknown;\n}\n\nexport interface CompilerConditionalBlockBinding {\n kind: \"block\";\n id: number;\n /** Nearest conditional boundary that owns this block, when nested. */\n parent?: number;\n dependencies: readonly number[];\n}\n\nexport interface CompilerConditionalBlockProps {\n id: number;\n render(): React.ReactNode;\n}\n\nexport interface CompilerKeyedListBlockProps {\n id: number;\n render(): React.ReactNode;\n}\n\nexport interface CompilerHostElement {\n kind: \"element\";\n tag: string;\n attributes: readonly { name: string; value: unknown }[];\n styles: readonly { name: string; value: unknown }[];\n children: readonly (CompilerHostElement | unknown)[];\n /** Direct-child structure owned without creating another React fiber. */\n block?: CompilerHostBlock;\n}\n\nexport type CompilerKeyedRowElement = CompilerHostElement;\n\nexport interface CompilerKeyedRowEvent {\n name: string;\n /** Host-element path relative to the keyed row root. */\n path?: readonly number[];\n invoke(item: unknown, index: number, event: React.SyntheticEvent): unknown;\n}\n\nexport interface CompilerKeyedRowConditionalBranch {\n bindings: readonly CompilerKeyedRowBinding[];\n}\n\nexport interface CompilerKeyedRowConditional {\n id: number;\n /** Host-container path relative to the keyed row root. */\n path: readonly number[];\n test(item: unknown, index: number): unknown;\n logical: boolean;\n truthy?: CompilerKeyedRowConditionalBranch;\n falsy?: CompilerKeyedRowConditionalBranch;\n}\n\nexport interface CompilerHostConditionalBinding {\n kind: \"text\" | \"attribute\" | \"style\";\n path: readonly number[];\n name?: string;\n read(): unknown;\n}\n\nexport interface CompilerStaticRangeBinding {\n kind: \"text\" | \"attribute\" | \"style\";\n /** Static segment before range N, or the trailing segment at ranges.length. */\n segment: number;\n /** Direct host sibling inside that static segment. */\n sibling: number;\n /** Host-element path relative to the selected static sibling. */\n path: readonly number[];\n name?: string;\n read(): unknown;\n}\n\nexport interface CompilerHostConditionalBranch {\n create(): CompilerHostElement;\n bindings: readonly CompilerHostConditionalBinding[];\n}\n\nexport interface CompilerHostConditionalRanges {\n kind: \"conditional-ranges\";\n id: number;\n ranges: readonly CompilerConditionalRange[];\n trailing: number;\n bindings?: readonly CompilerStaticRangeBinding[];\n}\n\nexport interface CompilerHostKeyedRanges {\n kind: \"keyed-ranges\";\n id: number;\n ranges: readonly CompilerKeyedRange[];\n trailing: number;\n bindings?: readonly CompilerStaticRangeBinding[];\n /** Compiler output may store only static direct children and materialize rows from the ranges. */\n staticChildrenOnly?: boolean;\n}\n\nexport interface CompilerHostMixedRanges {\n kind: \"mixed-ranges\";\n id: number;\n ranges: readonly CompilerMixedRange[];\n trailing: number;\n bindings?: readonly CompilerStaticRangeBinding[];\n}\n\nexport type CompilerHostBlock =\n | CompilerHostConditionalRanges\n | CompilerHostKeyedRanges\n | CompilerHostMixedRanges;\n\nexport interface CompilerHostConditionalBlockProps {\n id: number;\n render(): React.ReactElement;\n test(): unknown;\n /** Logical && can produce a visible number instead of an empty branch. */\n logical?: boolean;\n truthy?: CompilerHostConditionalBranch;\n falsy?: CompilerHostConditionalBranch;\n}\n\nexport interface CompilerConditionalRange {\n /** Number of static direct host siblings between this slot and the previous slot. */\n before: number;\n test(): unknown;\n /** Logical && can produce a visible number instead of an empty branch. */\n logical?: boolean;\n truthy?: CompilerHostConditionalBranch;\n falsy?: CompilerHostConditionalBranch;\n}\n\nexport interface CompilerConditionalRangesBlockProps {\n id: number;\n render(): React.ReactElement;\n rootRef?: React.RefCallback<Element>;\n ranges: readonly CompilerConditionalRange[];\n /** Number of static direct host siblings after the final conditional slot. */\n trailing: number;\n bindings?: readonly CompilerStaticRangeBinding[];\n}\n\nexport interface CompilerKeyedRowBinding {\n kind: \"text\" | \"attribute\" | \"style\";\n path: readonly number[];\n name?: string;\n /** Component state cells read by this binding, when emitted by the compiler. */\n dependencies?: readonly number[];\n /** A compiler-proven primitive value compared strictly with this row's key. */\n identityTarget?: {\n dependency: number;\n read(): unknown;\n };\n /** A compiler-proven native Set whose members are compared with this row's key. */\n membershipTarget?: {\n dependency: number;\n read(): unknown;\n };\n /** A compiler-proven native Map whose values are read with this row's key. */\n mapLookupTarget?: {\n dependency: number;\n read(): unknown;\n };\n read(item: unknown, index: number): unknown;\n}\n\nexport interface CompilerKeyedRowsBlockProps {\n id: number;\n render(\n event: (\n item: unknown,\n index: number,\n eventId: number,\n ) => React.EventHandler<React.SyntheticEvent>,\n conditional: (\n item: unknown,\n index: number,\n conditionalId: number,\n render: (item: unknown, index: number) => React.ReactNode,\n ) => React.ReactNode,\n ): React.ReactElement;\n items(): Iterable<unknown> | null | undefined;\n /** Complete component-state dependencies used anywhere inside this boundary. */\n dependencies?: readonly number[];\n /** State cells that can change the row collection or its key projection. */\n structureDependencies?: readonly number[];\n /** Direct state cell supplying items, eligible for compiler-emitted update hints. */\n collectionDependency?: number;\n /** Compiler proof that shifted row indexes are not observed by this boundary. */\n filterIndexIndependent?: boolean;\n /** Compiler proof that prepending cannot expose shifted indexes to existing rows. */\n prependIndexIndependent?: boolean;\n /** Compiler proof that a known-position insert cannot expose shifted row indexes. */\n positionIndexIndependent?: boolean;\n /** Compiler proof that reordering cannot expose changed row indexes. */\n reorderIndexIndependent?: boolean;\n rowKey(item: unknown, index: number): React.Key;\n create(item: unknown, index: number): CompilerKeyedRowElement;\n bindings: readonly CompilerKeyedRowBinding[];\n events?: readonly CompilerKeyedRowEvent[];\n /** Route compiler-proven bubbling row events through the stable React container. */\n delegateEvents?: boolean;\n conditionals?: readonly CompilerKeyedRowConditional[];\n /** Row descriptors contain compiler-owned nested host scopes. */\n hostBlocks?: boolean;\n}\n\nexport interface CompilerKeyedRange {\n /** Number of static direct host siblings between this range and the previous range. */\n before: number;\n items(): Iterable<unknown> | null | undefined;\n rowKey(item: unknown, index: number): React.Key;\n create(item: unknown, index: number): CompilerKeyedRowElement;\n bindings: readonly CompilerKeyedRowBinding[];\n}\n\nexport type CompilerMixedRange =\n | ({ kind: \"conditional\" } & CompilerConditionalRange)\n | ({ kind: \"keyed\" } & CompilerKeyedRange);\n\nexport interface CompilerMixedRangesBlockProps {\n id: number;\n render(): React.ReactElement;\n create(): CompilerHostElement;\n rootRef?: React.RefCallback<Element>;\n}\n\nexport interface CompilerKeyedRangesBlockProps {\n id: number;\n render(): React.ReactElement;\n rootRef?: React.RefCallback<Element>;\n ranges: readonly CompilerKeyedRange[];\n /** Number of static direct host siblings after the final keyed range. */\n trailing: number;\n bindings?: readonly CompilerStaticRangeBinding[];\n}\n\nexport interface CompilerComponentBlockProps {\n id: number;\n render(): React.ReactNode;\n}\n\nexport interface CompilerBlockRuntime {\n Conditional: React.ComponentType<CompilerConditionalBlockProps>;\n HostConditional: React.ComponentType<CompilerHostConditionalBlockProps>;\n ConditionalRanges: React.ComponentType<CompilerConditionalRangesBlockProps>;\n KeyedList: React.ComponentType<CompilerKeyedListBlockProps>;\n KeyedRows: React.ComponentType<CompilerKeyedRowsBlockProps>;\n KeyedRanges: React.ComponentType<CompilerKeyedRangesBlockProps>;\n MixedRanges: React.ComponentType<CompilerMixedRangesBlockProps>;\n Component: React.ComponentType<CompilerComponentBlockProps>;\n target(id: number): React.RefCallback<Element>;\n}\n\nexport type CompilerBinding<Props> =\n | CompilerTextBinding<Props>\n | CompilerAttributeBinding<Props>\n | CompilerStyleBinding<Props>\n | CompilerConditionalBlockBinding;\n\nexport interface CompiledComponentDefinition<Props> {\n displayName: string;\n /** Scheduler selected by the compiler. Hand-authored definitions default to `static`. */\n reactivity?: CompilerRuntimeReactivity;\n /** Stable development-only identity used to preserve state across compatible refreshes. */\n hmrId?: string;\n /** Changes when the compiler-owned state layout is no longer refresh-compatible. */\n stateSignature?: string;\n initialize(props: Props): readonly unknown[];\n /**\n * Compiler-emitted flat prop reads. Primitive values can share the local\n * dependency graph; identity-bearing values retain normal React rendering.\n */\n readProps?(props: Props): readonly unknown[];\n render(\n props: Props,\n state: readonly CompilerCell[],\n blocks: CompilerBlockRuntime,\n ): React.ReactElement;\n bindings: readonly CompilerBinding<Props>[];\n}\n\ninterface CompiledDefinitionReference<Props> {\n current: CompiledComponentDefinition<Props>;\n}\n\ninterface CompilerHmrRegistryEntry {\n component: React.ComponentType<unknown>;\n definition: CompiledDefinitionReference<unknown>;\n refreshListeners: Set<() => void>;\n stateSignature: string;\n runtimeSignature: string;\n}\n\ntype CompilerHmrRegistry = Map<string, CompilerHmrRegistryEntry>;\n\nconst COMPILER_HMR_REGISTRY = Symbol.for(\"@farm.js/react/compiler-hmr-registry\");\n\nfunction getCompilerHmrRegistry(): CompilerHmrRegistry {\n const globalTarget = globalThis as typeof globalThis & Record<symbol, unknown>;\n const existing = globalTarget[COMPILER_HMR_REGISTRY];\n if (existing instanceof Map) return existing as CompilerHmrRegistry;\n const registry: CompilerHmrRegistry = new Map();\n globalTarget[COMPILER_HMR_REGISTRY] = registry;\n return registry;\n}\n\nfunction renderTextValue(value: unknown): string {\n if (Array.isArray(value)) return value.map(renderTextValue).join(\"\");\n if (value === null || value === undefined || typeof value === \"boolean\") return \"\";\n return String(value);\n}\n\nfunction isCompilerPrimitive(value: unknown): boolean {\n if (value === null) return true;\n const kind = typeof value;\n return (\n kind === \"string\" ||\n kind === \"number\" ||\n kind === \"boolean\" ||\n kind === \"bigint\" ||\n kind === \"undefined\"\n );\n}\n\nfunction findBindingTarget(\n root: Element,\n path: readonly number[],\n blockRoots: ReadonlySet<Element>,\n): Element | null {\n let current: Element | null = root;\n for (const index of path) {\n if (!current) return null;\n current = [...current.children].filter((child) => !blockRoots.has(child))[index] || null;\n }\n return current;\n}\n\nconst UNITLESS_STYLE_PROPERTIES = new Set([\n \"animationIterationCount\",\n \"aspectRatio\",\n \"borderImageOutset\",\n \"borderImageSlice\",\n \"borderImageWidth\",\n \"boxFlex\",\n \"boxFlexGroup\",\n \"boxOrdinalGroup\",\n \"columnCount\",\n \"columns\",\n \"flex\",\n \"flexGrow\",\n \"flexNegative\",\n \"flexOrder\",\n \"flexPositive\",\n \"flexShrink\",\n \"fontWeight\",\n \"gridArea\",\n \"gridColumn\",\n \"gridColumnEnd\",\n \"gridColumnSpan\",\n \"gridColumnStart\",\n \"gridRow\",\n \"gridRowEnd\",\n \"gridRowSpan\",\n \"gridRowStart\",\n \"lineClamp\",\n \"lineHeight\",\n \"opacity\",\n \"order\",\n \"orphans\",\n \"scale\",\n \"tabSize\",\n \"widows\",\n \"zIndex\",\n \"zoom\",\n \"fillOpacity\",\n \"floodOpacity\",\n \"stopOpacity\",\n \"strokeDasharray\",\n \"strokeDashoffset\",\n \"strokeMiterlimit\",\n \"strokeOpacity\",\n \"strokeWidth\",\n]);\n\nfunction unprefixedStyleName(name: string): string {\n const unprefixed = name.replace(/^(?:Webkit|Moz|ms|O)(?=[A-Z])/, \"\");\n return unprefixed ? unprefixed[0].toLowerCase() + unprefixed.slice(1) : name;\n}\n\nfunction isHtmlOrSvgElement(element: Element): element is HTMLElement | SVGElement {\n const view = element.ownerDocument.defaultView;\n return Boolean(\n view && (element instanceof view.HTMLElement || element instanceof view.SVGElement),\n );\n}\n\nfunction isInputElement(element: Element): element is HTMLInputElement {\n const view = element.ownerDocument.defaultView;\n return Boolean(view && element instanceof view.HTMLInputElement);\n}\n\nfunction isTextAreaElement(element: Element): element is HTMLTextAreaElement {\n const view = element.ownerDocument.defaultView;\n return Boolean(view && element instanceof view.HTMLTextAreaElement);\n}\n\nfunction isSelectElement(element: Element): element is HTMLSelectElement {\n const view = element.ownerDocument.defaultView;\n return Boolean(view && element instanceof view.HTMLSelectElement);\n}\n\nfunction isOptionElement(element: Element): element is HTMLOptionElement {\n const view = element.ownerDocument.defaultView;\n return Boolean(view && element instanceof view.HTMLOptionElement);\n}\n\nfunction isSelectableTextControl(\n element: Element | null | undefined,\n): element is SelectableTextControl {\n return Boolean(element && (isInputElement(element) || isTextAreaElement(element)));\n}\n\nfunction updateStyle(element: Element, name: string, value: unknown): void {\n if (!isHtmlOrSvgElement(element)) return;\n const customProperty = name.startsWith(\"--\");\n let nextValue = \"\";\n if (value !== null && value !== undefined && typeof value !== \"boolean\" && value !== \"\") {\n nextValue =\n typeof value === \"number\" &&\n value !== 0 &&\n !customProperty &&\n !UNITLESS_STYLE_PROPERTIES.has(unprefixedStyleName(name))\n ? `${value}px`\n : String(value).trim();\n }\n\n if (customProperty || name.includes(\"-\")) {\n element.style.setProperty(name, nextValue);\n } else {\n (element.style as unknown as Record<string, string>)[name] = nextValue;\n }\n}\n\nfunction updateSelectValue(element: HTMLSelectElement, value: unknown): void {\n const options = [...element.options];\n if (element.multiple) {\n const selected = new Set(\n (Array.isArray(value) ? value : value === null || value === undefined ? [] : [value]).map(\n String,\n ),\n );\n for (const option of options) option.selected = selected.has(option.value);\n return;\n }\n\n const selectedValue = value === null || value === undefined ? \"\" : String(value);\n let fallback: HTMLOptionElement | undefined;\n for (const option of options) {\n if (!option.disabled && !fallback) fallback = option;\n if (option.value === selectedValue) {\n option.selected = true;\n return;\n }\n }\n if (fallback) fallback.selected = true;\n}\n\nfunction updateAttribute(element: Element, name: string, value: unknown): void {\n const attributeName = name === \"className\" ? \"class\" : name === \"htmlFor\" ? \"for\" : name;\n const stringifiesBoolean = attributeName.startsWith(\"data-\") || attributeName.startsWith(\"aria-\");\n\n if (name === \"value\" && (isInputElement(element) || isTextAreaElement(element))) {\n const nextValue = value === null || value === undefined ? \"\" : String(value);\n if (element.value !== nextValue) element.value = nextValue;\n return;\n }\n\n if (name === \"value\" && isSelectElement(element)) {\n updateSelectValue(element, value);\n return;\n }\n\n if (name === \"checked\" && isInputElement(element)) {\n element.checked = Boolean(value);\n return;\n }\n\n if (name === \"selected\" && isOptionElement(element)) {\n element.selected = Boolean(value);\n return;\n }\n\n if (name === \"disabled\" && \"disabled\" in element) {\n (element as HTMLButtonElement).disabled = Boolean(value);\n return;\n }\n\n if (value === null || value === undefined || (value === false && !stringifiesBoolean)) {\n element.removeAttribute(attributeName);\n } else if (value === true && !stringifiesBoolean) {\n element.setAttribute(attributeName, \"\");\n } else {\n element.setAttribute(attributeName, String(value));\n }\n}\n\ntype CompilerBlockRefresh = (afterCommit?: () => void, dirtyState?: ReadonlySet<number>) => void;\n\nexport interface CompilerRuntimeFeatureOwner {\n setRoot(id: number, root: Element | null): void;\n subscribe(id: number, refresh: CompilerBlockRefresh): () => void;\n}\n\nexport interface CompilerRuntimeFeature {\n /** Stable identity used by Fast Refresh compatibility checks. */\n name: string;\n create(owner: CompilerRuntimeFeatureOwner): Partial<CompilerBlockRuntime>;\n}\n\ninterface ConditionalBlockOwner {\n setRoot(id: number, root: Element | null): void;\n subscribe(id: number, refresh: CompilerBlockRefresh): () => void;\n}\n\nfunction createConditionalBlockComponent(\n owner: ConditionalBlockOwner,\n): React.ComponentType<CompilerConditionalBlockProps> {\n class FarmConditionalBlock extends React.Component<CompilerConditionalBlockProps> {\n static displayName = \"FarmCompiledConditionalBlock\";\n\n private unsubscribe: (() => void) | undefined;\n\n private captureRoot = (root: Element | null) => {\n owner.setRoot(this.props.id, root);\n };\n\n private refresh = (afterCommit?: () => void) => {\n this.forceUpdate(afterCommit);\n };\n\n private subscribe(): void {\n this.unsubscribe = owner.subscribe(this.props.id, this.refresh);\n }\n\n componentDidMount(): void {\n this.subscribe();\n }\n\n componentDidUpdate(previous: CompilerConditionalBlockProps): void {\n if (previous.id === this.props.id) return;\n this.unsubscribe?.();\n owner.setRoot(previous.id, null);\n this.subscribe();\n }\n\n componentWillUnmount(): void {\n this.unsubscribe?.();\n owner.setRoot(this.props.id, null);\n }\n\n render(): React.ReactNode {\n const node = this.props.render();\n if (!React.isValidElement(node)) {\n if (\n node === null ||\n node === undefined ||\n typeof node === \"boolean\" ||\n typeof node === \"string\" ||\n typeof node === \"number\" ||\n typeof node === \"bigint\"\n ) {\n return node;\n }\n throw new TypeError(\n `Compiled conditional block ${this.props.id} must return one host element or an empty value.`,\n );\n }\n if (typeof node.type !== \"string\") {\n throw new TypeError(\n `Compiled conditional block ${this.props.id} must return one host element.`,\n );\n }\n return React.cloneElement(node, {\n ref: this.captureRoot,\n } as React.Attributes);\n }\n }\n\n return FarmConditionalBlock;\n}\n\nfunction createKeyedListBlockComponent(\n owner: Pick<ConditionalBlockOwner, \"subscribe\">,\n): React.ComponentType<CompilerKeyedListBlockProps> {\n class FarmKeyedListBlock extends React.Component<CompilerKeyedListBlockProps> {\n static displayName = \"FarmCompiledKeyedListBlock\";\n\n private unsubscribe: (() => void) | undefined;\n\n private refresh = (afterCommit?: () => void) => {\n this.forceUpdate(afterCommit);\n };\n\n private subscribe(): void {\n this.unsubscribe = owner.subscribe(this.props.id, this.refresh);\n }\n\n componentDidMount(): void {\n this.subscribe();\n }\n\n componentDidUpdate(previous: CompilerKeyedListBlockProps): void {\n if (previous.id === this.props.id) return;\n this.unsubscribe?.();\n this.subscribe();\n }\n\n componentWillUnmount(): void {\n this.unsubscribe?.();\n }\n\n render(): React.ReactNode {\n return this.props.render();\n }\n }\n\n return FarmKeyedListBlock;\n}\n\ninterface CompilerHostInstance {\n element: Element;\n values: unknown[];\n scope?: CompilerHostTreeScope;\n}\n\nfunction isCompilerHostElement(value: unknown): value is CompilerHostElement {\n return (\n typeof value === \"object\" && value !== null && (value as { kind?: unknown }).kind === \"element\"\n );\n}\n\nfunction createCompilerHostElement(document: Document, descriptor: CompilerHostElement): Element {\n const element = document.createElement(descriptor.tag);\n for (const attribute of descriptor.attributes) {\n updateAttribute(element, attribute.name, attribute.value);\n }\n for (const style of descriptor.styles) updateStyle(element, style.name, style.value);\n const appendChild = (child: unknown): void => {\n if (Array.isArray(child)) {\n for (const nested of child) appendChild(nested);\n return;\n }\n if (isCompilerHostElement(child)) {\n element.append(createCompilerHostElement(document, child));\n return;\n }\n const text = renderTextValue(child);\n if (text) element.append(document.createTextNode(text));\n };\n for (const child of materializeCompilerHostChildren(descriptor)) appendChild(child);\n // Select options and textarea text must exist before their controlled value\n // is finalized. Reapplying is harmless for other attributes and avoids a\n // transient/default selection becoming the compiled branch's final state.\n for (const attribute of descriptor.attributes) {\n if (attribute.name === \"value\" && (isSelectElement(element) || isTextAreaElement(element))) {\n updateAttribute(element, attribute.name, attribute.value);\n }\n }\n return element;\n}\n\nfunction matchesCompilerHostElement(\n element: Element,\n descriptor: CompilerHostElement,\n opaquePaths: ReadonlySet<string> = new Set(),\n path: readonly number[] = [],\n): boolean {\n if (element.tagName.toLowerCase() !== descriptor.tag.toLowerCase()) return false;\n if (opaquePaths.has(path.join(\".\")) || descriptor.block) return true;\n const expectedChildren = flattenCompilerHostElements(descriptor.children);\n if (element.children.length !== expectedChildren.length) return false;\n return expectedChildren.every((child, index) =>\n matchesCompilerHostElement(element.children[index], child, opaquePaths, [...path, index]),\n );\n}\n\nfunction flattenCompilerHostElements(children: readonly unknown[]): CompilerHostElement[] {\n const elements: CompilerHostElement[] = [];\n const visit = (child: unknown): void => {\n if (Array.isArray(child)) {\n for (const nested of child) visit(nested);\n } else if (isCompilerHostElement(child)) {\n elements.push(child);\n }\n };\n for (const child of children) visit(child);\n return elements;\n}\n\nfunction materializeCompilerHostChildren(descriptor: CompilerHostElement): readonly unknown[] {\n const block = descriptor.block;\n if (block?.kind !== \"keyed-ranges\" || !block.staticChildrenOnly) {\n return descriptor.children;\n }\n const staticChildren = flattenCompilerHostElements(descriptor.children);\n const children: CompilerHostElement[] = [];\n let cursor = 0;\n for (const range of block.ranges) {\n children.push(...staticChildren.slice(cursor, cursor + range.before));\n cursor += range.before;\n const items = materializeIterable(range.items());\n children.push(...items.map((item, index) => range.create(item, index)));\n }\n children.push(...staticChildren.slice(cursor, cursor + block.trailing));\n return children;\n}\n\nfunction collectCompilerHostBlockIds(descriptor: CompilerHostElement, ids: Set<number>): void {\n for (const child of flattenCompilerHostElements(descriptor.children)) {\n collectCompilerHostBlockIds(child, ids);\n }\n const block = descriptor.block;\n if (!block || ids.has(block.id)) return;\n ids.add(block.id);\n if (block.kind === \"conditional-ranges\") {\n for (const range of block.ranges) {\n if (range.truthy) collectCompilerHostBlockIds(range.truthy.create(), ids);\n if (range.falsy) collectCompilerHostBlockIds(range.falsy.create(), ids);\n }\n } else if (block.kind === \"keyed-ranges\") {\n for (const range of block.ranges) {\n const first = materializeIterable(range.items())[0];\n if (first !== undefined) collectCompilerHostBlockIds(range.create(first, 0), ids);\n }\n } else {\n for (const range of block.ranges) {\n if (range.kind === \"conditional\") {\n if (range.truthy) collectCompilerHostBlockIds(range.truthy.create(), ids);\n if (range.falsy) collectCompilerHostBlockIds(range.falsy.create(), ids);\n } else {\n const first = materializeIterable(range.items())[0];\n if (first !== undefined) collectCompilerHostBlockIds(range.create(first, 0), ids);\n }\n }\n }\n}\n\nfunction findCompilerHostTarget(root: Element, path: readonly number[]): Element | null {\n let current: Element | null = root;\n for (const index of path) current = current?.children[index] || null;\n return current;\n}\n\nconst UNSET_STATIC_RANGE_BINDING = Symbol(\"unset static range binding\");\n\nfunction normalizedStaticRangeBindingValue(\n binding: CompilerStaticRangeBinding,\n value: unknown,\n): unknown {\n return binding.kind === \"text\" ? renderTextValue(value) : value;\n}\n\nfunction applyStaticRangeBindings(\n bindings: readonly CompilerStaticRangeBinding[] | undefined,\n segments: readonly (readonly Element[])[],\n values: unknown[],\n): boolean {\n const activeBindings = bindings || [];\n if (values.length === 0 && activeBindings.length > 0) {\n values.push(...activeBindings.map(() => UNSET_STATIC_RANGE_BINDING));\n }\n if (values.length !== activeBindings.length) return false;\n\n for (let index = 0; index < activeBindings.length; index += 1) {\n const binding = activeBindings[index];\n if (\n !Number.isSafeInteger(binding.segment) ||\n binding.segment < 0 ||\n !Number.isSafeInteger(binding.sibling) ||\n binding.sibling < 0\n ) {\n return false;\n }\n const sibling = segments[binding.segment]?.[binding.sibling];\n const target = sibling && findCompilerHostTarget(sibling, binding.path);\n if (!target) return false;\n const rawValue = binding.read();\n const value = normalizedStaticRangeBindingValue(binding, rawValue);\n if (Object.is(values[index], value)) continue;\n values[index] = value;\n if (binding.kind === \"text\") {\n target.textContent = value as string;\n } else if (binding.kind === \"style\" && binding.name) {\n updateStyle(target, binding.name, rawValue);\n } else if (binding.kind === \"attribute\" && binding.name) {\n updateAttribute(target, binding.name, rawValue);\n } else {\n return false;\n }\n }\n return true;\n}\n\ninterface CompilerKeyedRowInstance extends CompilerHostInstance {\n key: string;\n item: unknown;\n index: number;\n conditionalValues: ReadonlyMap<number, readonly unknown[]>;\n}\n\ninterface CompilerKeyedIdentityTargetSnapshot {\n eligible: boolean;\n key?: string;\n}\n\ninterface CompilerKeyedMembershipTargetSnapshot {\n eligible: boolean;\n values?: ReadonlySet<unknown>;\n previous?: CompilerKeyedMembershipTargetSnapshot;\n changes?: ReadonlyMap<unknown, boolean>;\n sourceToken?: object;\n targetedKeys?: ReadonlySet<string>;\n depth?: number;\n}\n\ninterface CompilerKeyedMapLookupTargetSnapshot {\n eligible: boolean;\n values?: ReadonlyMap<unknown, unknown>;\n previous?: CompilerKeyedMapLookupTargetSnapshot;\n changes?: ReadonlyMap<unknown, CompilerKeyedMapLookupValue>;\n sourceToken?: object;\n targetedKeys?: ReadonlySet<string>;\n depth?: number;\n}\n\ninterface CompilerKeyedMapLookupValue {\n present: boolean;\n value?: unknown;\n}\n\nconst UNSET_KEYED_ROW_BINDING = Symbol(\"unset interactive keyed-row binding\");\n\nfunction keyedRowIdentity(key: React.Key): string {\n return String(key);\n}\n\nfunction keyedIdentityTargetSnapshot(value: unknown): CompilerKeyedIdentityTargetSnapshot {\n const kind = typeof value;\n return value === null ||\n value === undefined ||\n kind === \"string\" ||\n kind === \"number\" ||\n kind === \"bigint\"\n ? { eligible: true, key: String(value) }\n : { eligible: false };\n}\n\nconst NATIVE_SET_PROTOTYPE = Set.prototype;\nconst NATIVE_SET_ADD = Set.prototype.add;\nconst NATIVE_SET_DELETE = Set.prototype.delete;\nconst NATIVE_SET_HAS = Set.prototype.has;\nconst NATIVE_SET_VALUES = Set.prototype.values;\nconst KEYED_COLLECTION_SNAPSHOT_MAX_DEPTH = 64;\n\nfunction materializeKeyedMembershipSnapshot(\n snapshot: CompilerKeyedMembershipTargetSnapshot,\n): Set<unknown> | undefined {\n if (!snapshot.eligible) return undefined;\n if (snapshot.values) return new Set(snapshot.values);\n if (!snapshot.previous || !snapshot.changes) return undefined;\n const values = materializeKeyedMembershipSnapshot(snapshot.previous);\n if (!values) return undefined;\n for (const [key, present] of snapshot.changes) {\n if (present) NATIVE_SET_ADD.call(values, key);\n else NATIVE_SET_DELETE.call(values, key);\n }\n return values;\n}\n\nfunction keyedMembershipSnapshotHas(\n snapshot: CompilerKeyedMembershipTargetSnapshot,\n key: unknown,\n): boolean | undefined {\n for (\n let current: CompilerKeyedMembershipTargetSnapshot | undefined = snapshot;\n current;\n current = current.previous\n ) {\n if (!current.eligible) return undefined;\n if (current.changes?.has(key)) return current.changes.get(key);\n if (current.values) return NATIVE_SET_HAS.call(current.values, key);\n }\n return undefined;\n}\n\nfunction keyedMembershipDeltaSnapshot(\n value: unknown,\n previous: CompilerKeyedMembershipTargetSnapshot,\n): CompilerKeyedMembershipTargetSnapshot | undefined {\n if (!previous.eligible || !previous.sourceToken) return undefined;\n const target = compilerObject(value);\n if (!target) return undefined;\n const changedKeys = compilerKeyedCollectionChangedKeys(value, previous.sourceToken, \"set\");\n if (!changedKeys) return undefined;\n if (\n Object.getPrototypeOf(value) !== NATIVE_SET_PROTOTYPE ||\n Object.prototype.hasOwnProperty.call(value, \"has\") ||\n (value as Set<unknown>).has !== NATIVE_SET_HAS\n ) {\n return undefined;\n }\n\n const changes = new Map<unknown, boolean>();\n const targetedKeys = new Set<string>();\n try {\n for (const key of changedKeys) {\n if (!keyedIdentityTargetSnapshot(key).eligible) return undefined;\n const present = NATIVE_SET_HAS.call(value as Set<unknown>, key);\n const before = keyedMembershipSnapshotHas(previous, key);\n if (before === undefined) return undefined;\n changes.set(key, present);\n if (before !== present) NATIVE_SET_ADD.call(targetedKeys, String(key));\n }\n } catch {\n return undefined;\n }\n const depth = (previous.depth || 0) + 1;\n if (depth > KEYED_COLLECTION_SNAPSHOT_MAX_DEPTH) return undefined;\n return {\n eligible: true,\n previous,\n changes,\n sourceToken: commitCompilerKeyedCollection(value),\n targetedKeys,\n depth,\n };\n}\n\nfunction keyedMembershipTargetSnapshot(\n value: unknown,\n previous?: CompilerKeyedMembershipTargetSnapshot,\n): CompilerKeyedMembershipTargetSnapshot {\n if (previous) {\n const delta = keyedMembershipDeltaSnapshot(value, previous);\n if (delta) return delta;\n }\n if (typeof value !== \"object\" || value === null) return { eligible: false };\n let iterator: SetIterator<unknown>;\n try {\n iterator = NATIVE_SET_VALUES.call(value as Set<unknown>);\n } catch {\n return { eligible: false };\n }\n if (\n Object.getPrototypeOf(value) !== NATIVE_SET_PROTOTYPE ||\n Object.prototype.hasOwnProperty.call(value, \"has\") ||\n (value as Set<unknown>).has !== NATIVE_SET_HAS\n ) {\n return { eligible: false };\n }\n const values = new Set<unknown>();\n try {\n for (const entry of iterator) {\n if (!keyedIdentityTargetSnapshot(entry).eligible) return { eligible: false };\n NATIVE_SET_ADD.call(values, entry);\n }\n } catch {\n return { eligible: false };\n }\n return {\n eligible: true,\n values,\n sourceToken: commitCompilerKeyedCollection(value),\n depth: 0,\n };\n}\n\nfunction keyedMembershipChangedKeys(\n previousSnapshot: CompilerKeyedMembershipTargetSnapshot,\n nextSnapshot: CompilerKeyedMembershipTargetSnapshot,\n): Set<string> {\n if (nextSnapshot.targetedKeys) return new Set(nextSnapshot.targetedKeys);\n const previous = materializeKeyedMembershipSnapshot(previousSnapshot);\n const next = materializeKeyedMembershipSnapshot(nextSnapshot);\n const keys = new Set<string>();\n if (!previous || !next) return keys;\n for (const value of previous) {\n if (!NATIVE_SET_HAS.call(next, value)) NATIVE_SET_ADD.call(keys, String(value));\n }\n for (const value of next) {\n if (!NATIVE_SET_HAS.call(previous, value)) NATIVE_SET_ADD.call(keys, String(value));\n }\n return keys;\n}\n\nconst NATIVE_MAP_PROTOTYPE = Map.prototype;\nconst NATIVE_MAP_GET = Map.prototype.get;\nconst NATIVE_MAP_HAS = Map.prototype.has;\nconst NATIVE_MAP_SET = Map.prototype.set;\nconst NATIVE_MAP_DELETE = Map.prototype.delete;\nconst NATIVE_MAP_ENTRIES = Map.prototype.entries;\n\nfunction isSafeKeyedMapLookupValue(value: unknown): boolean {\n return (\n value === null ||\n value === undefined ||\n typeof value === \"string\" ||\n typeof value === \"number\" ||\n typeof value === \"bigint\" ||\n typeof value === \"boolean\"\n );\n}\n\nfunction materializeKeyedMapLookupSnapshot(\n snapshot: CompilerKeyedMapLookupTargetSnapshot,\n): Map<unknown, unknown> | undefined {\n if (!snapshot.eligible) return undefined;\n if (snapshot.values) return new Map(snapshot.values);\n if (!snapshot.previous || !snapshot.changes) return undefined;\n const values = materializeKeyedMapLookupSnapshot(snapshot.previous);\n if (!values) return undefined;\n for (const [key, entry] of snapshot.changes) {\n if (entry.present) NATIVE_MAP_SET.call(values, key, entry.value);\n else NATIVE_MAP_DELETE.call(values, key);\n }\n return values;\n}\n\nfunction keyedMapLookupSnapshotValue(\n snapshot: CompilerKeyedMapLookupTargetSnapshot,\n key: unknown,\n): CompilerKeyedMapLookupValue | undefined {\n for (\n let current: CompilerKeyedMapLookupTargetSnapshot | undefined = snapshot;\n current;\n current = current.previous\n ) {\n if (!current.eligible) return undefined;\n const changed = current.changes?.get(key);\n if (changed) return changed;\n if (current.values) {\n const present = NATIVE_MAP_HAS.call(current.values, key);\n return {\n present,\n ...(present ? { value: NATIVE_MAP_GET.call(current.values, key) } : {}),\n };\n }\n }\n return undefined;\n}\n\nfunction keyedMapLookupDeltaSnapshot(\n value: unknown,\n previous: CompilerKeyedMapLookupTargetSnapshot,\n): CompilerKeyedMapLookupTargetSnapshot | undefined {\n if (!previous.eligible || !previous.sourceToken) return undefined;\n const target = compilerObject(value);\n if (!target) return undefined;\n const changedKeys = compilerKeyedCollectionChangedKeys(value, previous.sourceToken, \"map\");\n if (!changedKeys) return undefined;\n if (\n Object.getPrototypeOf(value) !== NATIVE_MAP_PROTOTYPE ||\n Object.prototype.hasOwnProperty.call(value, \"get\") ||\n (value as Map<unknown, unknown>).get !== NATIVE_MAP_GET\n ) {\n return undefined;\n }\n\n const changes = new Map<unknown, CompilerKeyedMapLookupValue>();\n const targetedKeys = new Set<string>();\n try {\n for (const key of changedKeys) {\n if (!keyedIdentityTargetSnapshot(key).eligible) return undefined;\n const present = NATIVE_MAP_HAS.call(value as Map<unknown, unknown>, key);\n const entry = present ? NATIVE_MAP_GET.call(value as Map<unknown, unknown>, key) : undefined;\n if (present && !isSafeKeyedMapLookupValue(entry)) return undefined;\n const before = keyedMapLookupSnapshotValue(previous, key);\n if (!before) return undefined;\n changes.set(key, { present, ...(present ? { value: entry } : {}) });\n if (before.present !== present || !Object.is(before.value, entry)) {\n NATIVE_SET_ADD.call(targetedKeys, String(key));\n }\n }\n } catch {\n return undefined;\n }\n const depth = (previous.depth || 0) + 1;\n if (depth > KEYED_COLLECTION_SNAPSHOT_MAX_DEPTH) return undefined;\n return {\n eligible: true,\n previous,\n changes,\n sourceToken: commitCompilerKeyedCollection(value),\n targetedKeys,\n depth,\n };\n}\n\nfunction keyedMapLookupTargetSnapshot(\n value: unknown,\n previous?: CompilerKeyedMapLookupTargetSnapshot,\n): CompilerKeyedMapLookupTargetSnapshot {\n if (previous) {\n const delta = keyedMapLookupDeltaSnapshot(value, previous);\n if (delta) return delta;\n }\n if (typeof value !== \"object\" || value === null) return { eligible: false };\n let iterator: MapIterator<[unknown, unknown]>;\n try {\n iterator = NATIVE_MAP_ENTRIES.call(value as Map<unknown, unknown>);\n } catch {\n return { eligible: false };\n }\n if (\n Object.getPrototypeOf(value) !== NATIVE_MAP_PROTOTYPE ||\n Object.prototype.hasOwnProperty.call(value, \"get\") ||\n (value as Map<unknown, unknown>).get !== NATIVE_MAP_GET\n ) {\n return { eligible: false };\n }\n const values = new Map<unknown, unknown>();\n try {\n for (const [key, entry] of iterator) {\n if (!keyedIdentityTargetSnapshot(key).eligible || !isSafeKeyedMapLookupValue(entry)) {\n return { eligible: false };\n }\n NATIVE_MAP_SET.call(values, key, entry);\n }\n } catch {\n return { eligible: false };\n }\n return {\n eligible: true,\n values,\n sourceToken: commitCompilerKeyedCollection(value),\n depth: 0,\n };\n}\n\nfunction keyedMapLookupChangedKeys(\n previousSnapshot: CompilerKeyedMapLookupTargetSnapshot,\n nextSnapshot: CompilerKeyedMapLookupTargetSnapshot,\n): Set<string> {\n if (nextSnapshot.targetedKeys) return new Set(nextSnapshot.targetedKeys);\n const previous = materializeKeyedMapLookupSnapshot(previousSnapshot);\n const next = materializeKeyedMapLookupSnapshot(nextSnapshot);\n const keys = new Set<string>();\n if (!previous || !next) return keys;\n for (const [key, value] of previous) {\n if (!Object.is(value, NATIVE_MAP_GET.call(next, key))) {\n NATIVE_SET_ADD.call(keys, String(key));\n }\n }\n for (const [key, value] of next) {\n if (!Object.is(value, NATIVE_MAP_GET.call(previous, key))) {\n NATIVE_SET_ADD.call(keys, String(key));\n }\n }\n return keys;\n}\n\nfunction normalizedKeyedRowBindingValue(binding: CompilerKeyedRowBinding, value: unknown): unknown {\n return binding.kind === \"text\" ? renderTextValue(value) : value;\n}\n\ntype CompilerKeyedRowBindingSource = Pick<CompilerKeyedRowsBlockProps, \"bindings\">;\n\nfunction readKeyedRowBindingValues(\n props: CompilerKeyedRowBindingSource,\n item: unknown,\n index: number,\n): unknown[] {\n return props.bindings.map((binding) =>\n normalizedKeyedRowBindingValue(binding, binding.read(item, index)),\n );\n}\n\nfunction applyKeyedRowBindings(\n props: CompilerKeyedRowBindingSource,\n instance: CompilerKeyedRowInstance,\n item: unknown,\n index: number,\n): void {\n for (let bindingIndex = 0; bindingIndex < props.bindings.length; bindingIndex += 1) {\n applyKeyedRowBinding(props, instance, item, index, bindingIndex);\n }\n}\n\nfunction applyKeyedRowBinding(\n props: CompilerKeyedRowBindingSource,\n instance: CompilerKeyedRowInstance,\n item: unknown,\n index: number,\n bindingIndex: number,\n): void {\n const binding = props.bindings[bindingIndex];\n const rawValue = binding.read(item, index);\n const value = normalizedKeyedRowBindingValue(binding, rawValue);\n if (Object.is(instance.values[bindingIndex], value)) return;\n instance.values[bindingIndex] = value;\n const target = findCompilerHostTarget(instance.element, binding.path);\n if (!target) return;\n if (binding.kind === \"text\") {\n target.textContent = value as string;\n } else if (binding.kind === \"style\" && binding.name) {\n updateStyle(target, binding.name, rawValue);\n } else if (binding.kind === \"attribute\" && binding.name) {\n updateAttribute(target, binding.name, rawValue);\n }\n}\n\ntype CompilerPreparedKeyedRowBindingUpdate = readonly [\n bindingIndex: number,\n rawValue: unknown,\n target: Element,\n value: unknown,\n];\n\nfunction prepareKeyedRowBindingUpdates(\n props: CompilerKeyedRowBindingSource,\n instance: CompilerKeyedRowInstance,\n item: unknown,\n index: number,\n): CompilerPreparedKeyedRowBindingUpdate[] | undefined {\n const updates: CompilerPreparedKeyedRowBindingUpdate[] = [];\n for (let bindingIndex = 0; bindingIndex < props.bindings.length; bindingIndex += 1) {\n const binding = props.bindings[bindingIndex];\n const rawValue = binding.read(item, index);\n const value = normalizedKeyedRowBindingValue(binding, rawValue);\n if (Object.is(instance.values[bindingIndex], value)) continue;\n const target = findCompilerHostTarget(instance.element, binding.path);\n if (!target || (binding.kind !== \"text\" && !binding.name)) return undefined;\n updates.push([bindingIndex, rawValue, target, value]);\n }\n return updates;\n}\n\nfunction applyPreparedKeyedRowBindingUpdates(\n props: CompilerKeyedRowBindingSource,\n instance: CompilerKeyedRowInstance,\n updates: readonly CompilerPreparedKeyedRowBindingUpdate[],\n): void {\n for (const [bindingIndex, rawValue, target, value] of updates) {\n const binding = props.bindings[bindingIndex];\n instance.values[bindingIndex] = value;\n if (binding.kind === \"text\") {\n target.textContent = value as string;\n } else if (binding.kind === \"style\") {\n updateStyle(target, binding.name!, rawValue);\n } else {\n updateAttribute(target, binding.name!, rawValue);\n }\n }\n}\n\nfunction keyedRowConditionalSnapshot(\n conditional: CompilerKeyedRowConditional,\n item: unknown,\n index: number,\n): readonly unknown[] {\n const test = conditional.test(item, index);\n if (conditional.logical && !test) {\n return typeof test === \"number\" || typeof test === \"bigint\" ? [\"primitive\", test] : [\"empty\"];\n }\n const key = test ? \"truthy\" : \"falsy\";\n const branch = key === \"truthy\" ? conditional.truthy : conditional.falsy;\n if (!branch) return [\"empty\"];\n return [\n key,\n ...branch.bindings.map((binding) =>\n normalizedKeyedRowBindingValue(binding, binding.read(item, index)),\n ),\n ];\n}\n\nfunction readKeyedRowConditionalValues(\n props: CompilerKeyedRowsBlockProps,\n item: unknown,\n index: number,\n): ReadonlyMap<number, readonly unknown[]> {\n if (!props.conditionals?.length) return EMPTY_KEYED_ROW_CONDITIONAL_VALUES;\n return new Map(\n props.conditionals.map((conditional) => [\n conditional.id,\n keyedRowConditionalSnapshot(conditional, item, index),\n ]),\n );\n}\n\nconst EMPTY_KEYED_ROW_CONDITIONAL_VALUES: ReadonlyMap<number, readonly unknown[]> = new Map();\n\nfunction keyedRowConditionalChanged(\n previous: readonly unknown[] | undefined,\n next: readonly unknown[],\n): boolean {\n return (\n !previous ||\n previous.length !== next.length ||\n next.some((value, index) => !Object.is(value, previous[index]))\n );\n}\n\ntype CompilerHostConditionalSelection =\n | {\n kind: \"branch\";\n key: \"truthy\" | \"falsy\";\n branch: CompilerHostConditionalBranch;\n }\n | { kind: \"empty\" }\n | { kind: \"fallback\" };\ntype CompilerHostConditionalPreparedSelection = Exclude<\n CompilerHostConditionalSelection,\n { kind: \"fallback\" }\n>;\n\nfunction hostConditionalSelection(\n props: Pick<CompilerHostConditionalBlockProps, \"test\" | \"logical\" | \"truthy\" | \"falsy\">,\n): CompilerHostConditionalSelection {\n const test = props.test();\n if (props.logical && !test) {\n // React renders 0, NaN, and (where supported) 0n from `value && <Element />`.\n // The host-only fast path cannot represent that primitive branch, so retain\n // React's exact behavior rather than coercing it to an empty branch.\n if (typeof test === \"number\" || typeof test === \"bigint\") return { kind: \"fallback\" };\n return { kind: \"empty\" };\n }\n const key = test ? \"truthy\" : \"falsy\";\n const branch = key === \"truthy\" ? props.truthy : props.falsy;\n return branch ? { kind: \"branch\", key, branch } : { kind: \"empty\" };\n}\n\nfunction normalizedHostConditionalBindingValue(\n binding: CompilerHostConditionalBinding,\n value: unknown,\n): unknown {\n return binding.kind === \"text\" ? renderTextValue(value) : value;\n}\n\nfunction applyHostConditionalBindings(\n branch: CompilerHostConditionalBranch,\n instance: CompilerHostInstance,\n): void {\n for (let bindingIndex = 0; bindingIndex < branch.bindings.length; bindingIndex += 1) {\n const binding = branch.bindings[bindingIndex];\n const rawValue = binding.read();\n const value = normalizedHostConditionalBindingValue(binding, rawValue);\n if (Object.is(instance.values[bindingIndex], value)) continue;\n instance.values[bindingIndex] = value;\n const target = findCompilerHostTarget(instance.element, binding.path);\n if (!target) continue;\n if (binding.kind === \"text\") {\n target.textContent = value as string;\n } else if (binding.kind === \"style\" && binding.name) {\n updateStyle(target, binding.name, rawValue);\n } else if (binding.kind === \"attribute\" && binding.name) {\n updateAttribute(target, binding.name, rawValue);\n }\n }\n}\n\ninterface CompilerHostTreeScope {\n cleanup(): void;\n update(descriptor: CompilerHostElement): boolean;\n}\n\nconst UNSET_HOST_CONDITIONAL_BINDING = Symbol(\"unset host conditional binding\");\n\nfunction mountCompilerHostTree(\n owner: Pick<ConditionalBlockOwner, \"subscribe\">,\n element: Element,\n descriptor: CompilerHostElement,\n onFallback: () => void,\n): CompilerHostTreeScope | null {\n if (!matchesCompilerHostElement(element, descriptor)) return null;\n if (descriptor.block?.kind === \"conditional-ranges\") {\n const controller = new CompilerNestedConditionalRanges(\n owner,\n element,\n descriptor,\n descriptor.block,\n onFallback,\n );\n try {\n if (controller.adopt()) return controller;\n controller.cleanup();\n return null;\n } catch (error) {\n controller.cleanup();\n throw error;\n }\n }\n if (descriptor.block?.kind === \"keyed-ranges\") {\n const controller = new CompilerNestedKeyedRanges(\n owner,\n element,\n descriptor,\n descriptor.block,\n onFallback,\n );\n try {\n if (controller.adopt()) return controller;\n controller.cleanup();\n return null;\n } catch (error) {\n controller.cleanup();\n throw error;\n }\n }\n if (descriptor.block?.kind === \"mixed-ranges\") {\n const controller = new CompilerNestedMixedRanges(\n owner,\n element,\n descriptor,\n descriptor.block,\n onFallback,\n );\n try {\n if (controller.adopt()) return controller;\n controller.cleanup();\n return null;\n } catch (error) {\n controller.cleanup();\n throw error;\n }\n }\n\n const descriptors = flattenCompilerHostElements(descriptor.children);\n if (descriptors.length !== element.children.length) return null;\n const scopes: CompilerHostTreeScope[] = [];\n for (let index = 0; index < descriptors.length; index += 1) {\n const scope = mountCompilerHostTree(\n owner,\n element.children[index],\n descriptors[index],\n onFallback,\n );\n if (!scope) {\n for (const mounted of scopes) mounted.cleanup();\n return null;\n }\n scopes.push(scope);\n }\n let active = true;\n return {\n update(nextDescriptor) {\n if (!active || nextDescriptor.block || !matchesCompilerHostElement(element, nextDescriptor)) {\n return false;\n }\n const nextChildren = flattenCompilerHostElements(nextDescriptor.children);\n if (nextChildren.length !== scopes.length) return false;\n return scopes.every((scope, index) => scope.update(nextChildren[index]));\n },\n cleanup() {\n if (!active) return;\n active = false;\n for (const scope of scopes) scope.cleanup();\n },\n };\n}\n\nfunction mountCompilerHostInstance(\n owner: Pick<ConditionalBlockOwner, \"subscribe\">,\n element: Element,\n descriptor: CompilerHostElement,\n branch: Pick<CompilerHostConditionalBranch, \"bindings\">,\n onFallback: () => void,\n): CompilerHostInstance | null {\n const scope = mountCompilerHostTree(owner, element, descriptor, onFallback);\n if (!scope) return null;\n const instance: CompilerHostInstance = {\n element,\n scope,\n values: branch.bindings.map(() => UNSET_HOST_CONDITIONAL_BINDING),\n };\n try {\n applyHostConditionalBindings(branch as CompilerHostConditionalBranch, instance);\n } catch (error) {\n scope.cleanup();\n throw error;\n }\n return instance;\n}\n\ninterface NestedConditionalRangeInstance {\n key: \"truthy\" | \"falsy\";\n host: CompilerHostInstance;\n}\n\nclass CompilerNestedConditionalRanges implements CompilerHostTreeScope {\n private readonly instances: Array<NestedConditionalRangeInstance | null> = [];\n private readonly staticSegments: Element[][] = [];\n private readonly staticScopes: CompilerHostTreeScope[] = [];\n private readonly staticValues: unknown[] = [];\n private unsubscribe: (() => void) | undefined;\n private active = true;\n\n constructor(\n private readonly owner: Pick<ConditionalBlockOwner, \"subscribe\">,\n private readonly root: Element,\n private host: CompilerHostElement,\n private block: CompilerHostConditionalRanges,\n private readonly onFallback: () => void,\n ) {}\n\n private readSelections(): CompilerHostConditionalPreparedSelection[] | null {\n const selections: CompilerHostConditionalPreparedSelection[] = [];\n for (const range of this.block.ranges) {\n const selection = hostConditionalSelection(range);\n if (selection.kind === \"fallback\") return null;\n selections.push(selection);\n }\n return selections;\n }\n\n private mountStatic(\n elements: readonly Element[],\n descriptors: readonly CompilerHostElement[],\n ): boolean {\n if (elements.length !== descriptors.length) return false;\n for (let index = 0; index < elements.length; index += 1) {\n const scope = mountCompilerHostTree(\n this.owner,\n elements[index],\n descriptors[index],\n this.onFallback,\n );\n if (!scope) return false;\n this.staticScopes.push(scope);\n }\n return true;\n }\n\n adopt(): boolean {\n if (!Number.isSafeInteger(this.block.trailing) || this.block.trailing < 0) return false;\n const selections = this.readSelections();\n if (!selections) return false;\n const elements = [...this.root.children];\n const descriptors = flattenCompilerHostElements(this.host.children);\n if (elements.length !== descriptors.length) return false;\n let cursor = 0;\n\n for (let index = 0; index < this.block.ranges.length; index += 1) {\n const range = this.block.ranges[index];\n if (!Number.isSafeInteger(range.before) || range.before < 0) {\n this.cleanup();\n return false;\n }\n const staticEnd = cursor + range.before;\n if (\n staticEnd > elements.length ||\n !this.mountStatic(elements.slice(cursor, staticEnd), descriptors.slice(cursor, staticEnd))\n ) {\n this.cleanup();\n return false;\n }\n this.staticSegments.push(elements.slice(cursor, staticEnd));\n cursor = staticEnd;\n\n const selection = selections[index];\n if (selection.kind === \"empty\") {\n this.instances.push(null);\n continue;\n }\n const element = elements[cursor];\n if (!element) {\n this.cleanup();\n return false;\n }\n const descriptor = selection.branch.create();\n const host = mountCompilerHostInstance(\n this.owner,\n element,\n descriptor,\n selection.branch,\n this.onFallback,\n );\n if (!host) {\n this.cleanup();\n return false;\n }\n this.instances.push({ key: selection.key, host });\n cursor += 1;\n }\n\n const trailingEnd = cursor + this.block.trailing;\n if (\n trailingEnd !== elements.length ||\n !this.mountStatic(elements.slice(cursor), descriptors.slice(cursor))\n ) {\n this.cleanup();\n return false;\n }\n this.staticSegments.push(elements.slice(cursor));\n if (!applyStaticRangeBindings(this.block.bindings, this.staticSegments, this.staticValues)) {\n this.cleanup();\n return false;\n }\n this.unsubscribe = this.owner.subscribe(this.block.id, this.refresh);\n return true;\n }\n\n private anchorAfter(rangeIndex: number): ChildNode | null {\n for (let next = rangeIndex + 1; next < this.instances.length; next += 1) {\n const staticAnchor = this.staticSegments[next]?.[0];\n if (staticAnchor) return staticAnchor;\n const rangeAnchor = this.instances[next]?.host.element;\n if (rangeAnchor) return rangeAnchor;\n }\n return this.staticSegments[this.instances.length]?.[0] || null;\n }\n\n private reconcileRange(\n rangeIndex: number,\n selection: CompilerHostConditionalPreparedSelection,\n ): boolean {\n const previous = this.instances[rangeIndex];\n if (selection.kind === \"empty\") {\n previous?.host.scope?.cleanup();\n previous?.host.element.remove();\n this.instances[rangeIndex] = null;\n return true;\n }\n if (previous?.key === selection.key) {\n const descriptor = selection.branch.create();\n if (!previous.host.scope?.update(descriptor)) return false;\n applyHostConditionalBindings(selection.branch, previous.host);\n return true;\n }\n\n const descriptor = selection.branch.create();\n const element = createCompilerHostElement(this.root.ownerDocument, descriptor);\n const host = mountCompilerHostInstance(\n this.owner,\n element,\n descriptor,\n selection.branch,\n this.onFallback,\n );\n if (!host) return false;\n previous?.host.scope?.cleanup();\n if (previous) previous.host.element.replaceWith(element);\n else this.root.insertBefore(element, this.anchorAfter(rangeIndex));\n this.instances[rangeIndex] = { key: selection.key, host };\n return true;\n }\n\n private refresh = (afterCommit?: () => void) => {\n if (!this.active) {\n afterCommit?.();\n return;\n }\n const selections = this.readSelections();\n if (!selections || selections.length !== this.instances.length) {\n this.onFallback();\n afterCommit?.();\n return;\n }\n if (!applyStaticRangeBindings(this.block.bindings, this.staticSegments, this.staticValues)) {\n this.onFallback();\n afterCommit?.();\n return;\n }\n for (let index = this.instances.length - 1; index >= 0; index -= 1) {\n if (!this.reconcileRange(index, selections[index])) {\n this.onFallback();\n afterCommit?.();\n return;\n }\n }\n afterCommit?.();\n };\n\n private updateStaticScopes(\n descriptor: CompilerHostElement,\n selections: readonly CompilerHostConditionalPreparedSelection[],\n ): boolean {\n const descriptors = flattenCompilerHostElements(descriptor.children);\n let descriptorIndex = 0;\n let scopeIndex = 0;\n for (let rangeIndex = 0; rangeIndex < this.block.ranges.length; rangeIndex += 1) {\n const range = this.block.ranges[rangeIndex];\n for (let index = 0; index < range.before; index += 1) {\n const scope = this.staticScopes[scopeIndex++];\n const child = descriptors[descriptorIndex++];\n if (!scope || !child || !scope.update(child)) return false;\n }\n if (selections[rangeIndex].kind === \"branch\") descriptorIndex += 1;\n }\n for (let index = 0; index < this.block.trailing; index += 1) {\n const scope = this.staticScopes[scopeIndex++];\n const child = descriptors[descriptorIndex++];\n if (!scope || !child || !scope.update(child)) return false;\n }\n return scopeIndex === this.staticScopes.length && descriptorIndex === descriptors.length;\n }\n\n update(descriptor: CompilerHostElement): boolean {\n const block = descriptor.block;\n if (\n !this.active ||\n block?.kind !== \"conditional-ranges\" ||\n block.id !== this.block.id ||\n block.ranges.length !== this.block.ranges.length ||\n block.trailing !== this.block.trailing ||\n block.ranges.some((range, index) => range.before !== this.block.ranges[index].before)\n ) {\n return false;\n }\n this.host = descriptor;\n this.block = block;\n const selections = this.readSelections();\n if (\n !selections ||\n !this.updateStaticScopes(descriptor, selections) ||\n !applyStaticRangeBindings(this.block.bindings, this.staticSegments, this.staticValues)\n ) {\n return false;\n }\n for (let index = this.instances.length - 1; index >= 0; index -= 1) {\n if (!this.reconcileRange(index, selections[index])) return false;\n }\n return true;\n }\n\n cleanup(): void {\n if (!this.active) return;\n this.active = false;\n this.unsubscribe?.();\n for (const instance of this.instances) instance?.host.scope?.cleanup();\n for (const scope of this.staticScopes) scope.cleanup();\n this.instances.length = 0;\n this.staticSegments.length = 0;\n this.staticScopes.length = 0;\n this.staticValues.length = 0;\n }\n}\n\ninterface NestedReadKeyedRange {\n items: unknown[];\n keys: string[];\n}\n\nclass CompilerNestedKeyedRanges implements CompilerHostTreeScope {\n private readonly instances: Array<Map<string, CompilerKeyedRowInstance>> = [];\n private readonly staticSegments: Element[][] = [];\n private readonly staticScopes: CompilerHostTreeScope[] = [];\n private readonly staticValues: unknown[] = [];\n private unsubscribe: (() => void) | undefined;\n private active = true;\n\n constructor(\n private readonly owner: Pick<ConditionalBlockOwner, \"subscribe\">,\n private readonly root: Element,\n private host: CompilerHostElement,\n private block: CompilerHostKeyedRanges,\n private readonly onFallback: () => void,\n ) {}\n\n private readRange(range: CompilerKeyedRange): NestedReadKeyedRange | null {\n const items = materializeIterable(range.items());\n const keys = items.map((item, index) => keyedRowIdentity(range.rowKey(item, index)));\n return new Set(keys).size === keys.length ? { items, keys } : null;\n }\n\n private readRanges(): NestedReadKeyedRange[] | null {\n const ranges: NestedReadKeyedRange[] = [];\n for (const range of this.block.ranges) {\n const rows = this.readRange(range);\n if (!rows) return null;\n ranges.push(rows);\n }\n return ranges;\n }\n\n private mountStatic(\n elements: readonly Element[],\n descriptors: readonly CompilerHostElement[],\n ): boolean {\n if (elements.length !== descriptors.length) return false;\n for (let index = 0; index < elements.length; index += 1) {\n const scope = mountCompilerHostTree(\n this.owner,\n elements[index],\n descriptors[index],\n this.onFallback,\n );\n if (!scope) return false;\n this.staticScopes.push(scope);\n }\n return true;\n }\n\n adopt(): boolean {\n if (!Number.isSafeInteger(this.block.trailing) || this.block.trailing < 0) return false;\n const rowsByRange = this.readRanges();\n if (!rowsByRange) return false;\n const elements = [...this.root.children];\n const descriptors = flattenCompilerHostElements(materializeCompilerHostChildren(this.host));\n if (elements.length !== descriptors.length) return false;\n let cursor = 0;\n\n for (let rangeIndex = 0; rangeIndex < this.block.ranges.length; rangeIndex += 1) {\n const range = this.block.ranges[rangeIndex];\n const rows = rowsByRange[rangeIndex];\n if (!Number.isSafeInteger(range.before) || range.before < 0) {\n this.cleanup();\n return false;\n }\n const staticEnd = cursor + range.before;\n if (\n staticEnd > elements.length ||\n !this.mountStatic(elements.slice(cursor, staticEnd), descriptors.slice(cursor, staticEnd))\n ) {\n this.cleanup();\n return false;\n }\n this.staticSegments.push(elements.slice(cursor, staticEnd));\n cursor = staticEnd;\n\n const instances = new Map<string, CompilerKeyedRowInstance>();\n for (let index = 0; index < rows.items.length; index += 1) {\n const element = elements[cursor + index];\n if (!element) {\n this.cleanup();\n return false;\n }\n const descriptor = range.create(rows.items[index], index);\n const scope = mountCompilerHostTree(this.owner, element, descriptor, this.onFallback);\n if (!scope) {\n this.cleanup();\n return false;\n }\n instances.set(rows.keys[index], {\n key: rows.keys[index],\n element,\n scope,\n values: range.bindings.map(() => UNSET_KEYED_ROW_BINDING),\n item: rows.items[index],\n index,\n conditionalValues: new Map(),\n });\n applyKeyedRowBindings(range, instances.get(rows.keys[index])!, rows.items[index], index);\n }\n this.instances.push(instances);\n cursor += rows.items.length;\n }\n\n const trailingEnd = cursor + this.block.trailing;\n if (\n trailingEnd !== elements.length ||\n !this.mountStatic(elements.slice(cursor), descriptors.slice(cursor))\n ) {\n this.cleanup();\n return false;\n }\n this.staticSegments.push(elements.slice(cursor));\n if (!applyStaticRangeBindings(this.block.bindings, this.staticSegments, this.staticValues)) {\n this.cleanup();\n return false;\n }\n this.unsubscribe = this.owner.subscribe(this.block.id, this.refresh);\n return true;\n }\n\n private anchorAfter(rangeIndex: number): ChildNode | null {\n for (let next = rangeIndex + 1; next < this.instances.length; next += 1) {\n const staticAnchor = this.staticSegments[next]?.[0];\n if (staticAnchor) return staticAnchor;\n const rowAnchor = this.instances[next].values().next().value?.element;\n if (rowAnchor) return rowAnchor;\n }\n return this.staticSegments[this.instances.length]?.[0] || null;\n }\n\n private reconcileRange(rangeIndex: number, rows: NestedReadKeyedRange): boolean {\n const range = this.block.ranges[rangeIndex];\n const previous = this.instances[rangeIndex];\n const oldIndices = new Map<string, number>();\n [...previous.keys()].forEach((key, index) => oldIndices.set(key, index));\n const nextKeys = new Set(rows.keys);\n for (const [key, instance] of previous) {\n if (nextKeys.has(key)) continue;\n instance.scope?.cleanup();\n instance.element.remove();\n }\n\n const sequence = rows.keys.map((key) => oldIndices.get(key) ?? -1);\n const stablePositions = longestIncreasingSubsequencePositions(sequence);\n const nextInstances: CompilerKeyedRowInstance[] = [];\n for (let index = 0; index < rows.items.length; index += 1) {\n const key = rows.keys[index];\n const existing = previous.get(key);\n if (existing) {\n const descriptor = range.create(rows.items[index], index);\n if (!existing.scope?.update(descriptor)) return false;\n applyKeyedRowBindings(range, existing, rows.items[index], index);\n existing.item = rows.items[index];\n existing.index = index;\n nextInstances.push(existing);\n continue;\n }\n const descriptor = range.create(rows.items[index], index);\n const element = createCompilerHostElement(this.root.ownerDocument, descriptor);\n const scope = mountCompilerHostTree(this.owner, element, descriptor, this.onFallback);\n if (!scope) return false;\n nextInstances.push({\n key,\n element,\n scope,\n values: readKeyedRowBindingValues(range, rows.items[index], index),\n item: rows.items[index],\n index,\n conditionalValues: new Map(),\n });\n }\n\n let anchor = this.anchorAfter(rangeIndex);\n for (let index = nextInstances.length - 1; index >= 0; index -= 1) {\n const instance = nextInstances[index];\n if (\n sequence[index] < 0 ||\n (!stablePositions.has(index) && instance.element.nextSibling !== anchor)\n ) {\n this.root.insertBefore(instance.element, anchor);\n }\n anchor = instance.element;\n }\n this.instances[rangeIndex] = new Map(nextInstances.map((instance) => [instance.key, instance]));\n return true;\n }\n\n private refresh = (afterCommit?: () => void) => {\n if (!this.active) {\n afterCommit?.();\n return;\n }\n const rowsByRange = this.readRanges();\n if (!rowsByRange || rowsByRange.length !== this.instances.length) {\n this.onFallback();\n afterCommit?.();\n return;\n }\n if (!applyStaticRangeBindings(this.block.bindings, this.staticSegments, this.staticValues)) {\n this.onFallback();\n afterCommit?.();\n return;\n }\n const activeElement = this.root.ownerDocument.activeElement;\n const restoreFocus = Boolean(activeElement && this.root.contains(activeElement));\n for (let index = rowsByRange.length - 1; index >= 0; index -= 1) {\n if (!this.reconcileRange(index, rowsByRange[index])) {\n this.onFallback();\n afterCommit?.();\n return;\n }\n }\n if (\n restoreFocus &&\n activeElement?.isConnected &&\n activeElement.ownerDocument.activeElement !== activeElement &&\n \"focus\" in activeElement\n ) {\n (activeElement as HTMLElement).focus({ preventScroll: true });\n }\n afterCommit?.();\n };\n\n private updateStaticScopes(\n descriptor: CompilerHostElement,\n rowsByRange: readonly NestedReadKeyedRange[],\n ): boolean {\n const descriptors = flattenCompilerHostElements(materializeCompilerHostChildren(descriptor));\n let descriptorIndex = 0;\n let scopeIndex = 0;\n for (let rangeIndex = 0; rangeIndex < this.block.ranges.length; rangeIndex += 1) {\n const range = this.block.ranges[rangeIndex];\n for (let index = 0; index < range.before; index += 1) {\n const scope = this.staticScopes[scopeIndex++];\n const child = descriptors[descriptorIndex++];\n if (!scope || !child || !scope.update(child)) return false;\n }\n descriptorIndex += rowsByRange[rangeIndex].items.length;\n }\n for (let index = 0; index < this.block.trailing; index += 1) {\n const scope = this.staticScopes[scopeIndex++];\n const child = descriptors[descriptorIndex++];\n if (!scope || !child || !scope.update(child)) return false;\n }\n return scopeIndex === this.staticScopes.length && descriptorIndex === descriptors.length;\n }\n\n update(descriptor: CompilerHostElement): boolean {\n const block = descriptor.block;\n if (\n !this.active ||\n block?.kind !== \"keyed-ranges\" ||\n block.id !== this.block.id ||\n block.ranges.length !== this.block.ranges.length ||\n block.trailing !== this.block.trailing ||\n block.ranges.some((range, index) => range.before !== this.block.ranges[index].before)\n ) {\n return false;\n }\n this.host = descriptor;\n this.block = block;\n const rowsByRange = this.readRanges();\n if (\n !rowsByRange ||\n rowsByRange.length !== this.instances.length ||\n !this.updateStaticScopes(descriptor, rowsByRange) ||\n !applyStaticRangeBindings(this.block.bindings, this.staticSegments, this.staticValues)\n ) {\n return false;\n }\n for (let index = rowsByRange.length - 1; index >= 0; index -= 1) {\n if (!this.reconcileRange(index, rowsByRange[index])) return false;\n }\n return true;\n }\n\n cleanup(): void {\n if (!this.active) return;\n this.active = false;\n this.unsubscribe?.();\n for (const instances of this.instances) {\n for (const instance of instances.values()) instance.scope?.cleanup();\n }\n for (const scope of this.staticScopes) scope.cleanup();\n this.instances.length = 0;\n this.staticSegments.length = 0;\n this.staticScopes.length = 0;\n this.staticValues.length = 0;\n }\n}\n\ntype NestedMixedRangeSnapshot =\n | { kind: \"conditional\"; selection: CompilerHostConditionalPreparedSelection }\n | { kind: \"keyed\"; rows: NestedReadKeyedRange };\n\ntype NestedMixedRangeInstance =\n | { kind: \"conditional\"; value: NestedConditionalRangeInstance | null }\n | { kind: \"keyed\"; value: Map<string, CompilerKeyedRowInstance> };\n\nclass CompilerNestedMixedRanges implements CompilerHostTreeScope {\n private readonly instances: NestedMixedRangeInstance[] = [];\n private readonly staticSegments: Element[][] = [];\n private readonly staticScopes: CompilerHostTreeScope[] = [];\n private readonly staticValues: unknown[] = [];\n private unsubscribe: (() => void) | undefined;\n private active = true;\n\n constructor(\n private readonly owner: Pick<ConditionalBlockOwner, \"subscribe\">,\n private readonly root: Element,\n private host: CompilerHostElement,\n private block: CompilerHostMixedRanges,\n private readonly onFallback: () => void,\n ) {}\n\n private readSnapshots(): NestedMixedRangeSnapshot[] | null {\n const snapshots: NestedMixedRangeSnapshot[] = [];\n for (const range of this.block.ranges) {\n if (range.kind === \"conditional\") {\n const selection = hostConditionalSelection(range);\n if (selection.kind === \"fallback\") return null;\n snapshots.push({ kind: \"conditional\", selection });\n continue;\n }\n const items = materializeIterable(range.items());\n const keys = items.map((item, index) => keyedRowIdentity(range.rowKey(item, index)));\n if (new Set(keys).size !== keys.length) return null;\n snapshots.push({ kind: \"keyed\", rows: { items, keys } });\n }\n return snapshots;\n }\n\n private mountStatic(\n elements: readonly Element[],\n descriptors: readonly CompilerHostElement[],\n ): boolean {\n if (elements.length !== descriptors.length) return false;\n for (let index = 0; index < elements.length; index += 1) {\n const scope = mountCompilerHostTree(\n this.owner,\n elements[index],\n descriptors[index],\n this.onFallback,\n );\n if (!scope) return false;\n this.staticScopes.push(scope);\n }\n return true;\n }\n\n adopt(): boolean {\n if (!Number.isSafeInteger(this.block.trailing) || this.block.trailing < 0) return false;\n const snapshots = this.readSnapshots();\n if (!snapshots) return false;\n const elements = [...this.root.children];\n const descriptors = flattenCompilerHostElements(this.host.children);\n if (elements.length !== descriptors.length) return false;\n let cursor = 0;\n\n for (let rangeIndex = 0; rangeIndex < this.block.ranges.length; rangeIndex += 1) {\n const range = this.block.ranges[rangeIndex];\n const snapshot = snapshots[rangeIndex];\n if (!Number.isSafeInteger(range.before) || range.before < 0 || range.kind !== snapshot.kind) {\n this.cleanup();\n return false;\n }\n const staticEnd = cursor + range.before;\n if (\n staticEnd > elements.length ||\n !this.mountStatic(elements.slice(cursor, staticEnd), descriptors.slice(cursor, staticEnd))\n ) {\n this.cleanup();\n return false;\n }\n this.staticSegments.push(elements.slice(cursor, staticEnd));\n cursor = staticEnd;\n\n if (range.kind === \"conditional\" && snapshot.kind === \"conditional\") {\n if (snapshot.selection.kind === \"empty\") {\n this.instances.push({ kind: \"conditional\", value: null });\n continue;\n }\n const element = elements[cursor];\n if (!element) {\n this.cleanup();\n return false;\n }\n const descriptor = snapshot.selection.branch.create();\n const host = mountCompilerHostInstance(\n this.owner,\n element,\n descriptor,\n snapshot.selection.branch,\n this.onFallback,\n );\n if (!host) {\n this.cleanup();\n return false;\n }\n this.instances.push({\n kind: \"conditional\",\n value: { key: snapshot.selection.key, host },\n });\n cursor += 1;\n continue;\n }\n\n if (range.kind !== \"keyed\" || snapshot.kind !== \"keyed\") {\n this.cleanup();\n return false;\n }\n const keyedInstances = new Map<string, CompilerKeyedRowInstance>();\n for (let index = 0; index < snapshot.rows.items.length; index += 1) {\n const element = elements[cursor + index];\n if (!element) {\n this.cleanup();\n return false;\n }\n const descriptor = range.create(snapshot.rows.items[index], index);\n const scope = mountCompilerHostTree(this.owner, element, descriptor, this.onFallback);\n if (!scope) {\n this.cleanup();\n return false;\n }\n const instance: CompilerKeyedRowInstance = {\n key: snapshot.rows.keys[index],\n element,\n scope,\n values: range.bindings.map(() => UNSET_KEYED_ROW_BINDING),\n item: snapshot.rows.items[index],\n index,\n conditionalValues: new Map(),\n };\n try {\n applyKeyedRowBindings(range, instance, snapshot.rows.items[index], index);\n } catch (error) {\n scope.cleanup();\n throw error;\n }\n keyedInstances.set(snapshot.rows.keys[index], instance);\n }\n this.instances.push({ kind: \"keyed\", value: keyedInstances });\n cursor += snapshot.rows.items.length;\n }\n\n const trailingEnd = cursor + this.block.trailing;\n if (\n trailingEnd !== elements.length ||\n !this.mountStatic(elements.slice(cursor), descriptors.slice(cursor))\n ) {\n this.cleanup();\n return false;\n }\n this.staticSegments.push(elements.slice(cursor));\n if (!applyStaticRangeBindings(this.block.bindings, this.staticSegments, this.staticValues)) {\n this.cleanup();\n return false;\n }\n this.unsubscribe = this.owner.subscribe(this.block.id, this.refresh);\n return true;\n }\n\n private firstInstanceElement(instance: NestedMixedRangeInstance): Element | null {\n if (instance.kind === \"conditional\") return instance.value?.host.element || null;\n return instance.value.values().next().value?.element || null;\n }\n\n private anchorAfter(rangeIndex: number): ChildNode | null {\n for (let next = rangeIndex + 1; next < this.instances.length; next += 1) {\n const staticAnchor = this.staticSegments[next]?.[0];\n if (staticAnchor) return staticAnchor;\n const rangeAnchor = this.firstInstanceElement(this.instances[next]);\n if (rangeAnchor) return rangeAnchor;\n }\n return this.staticSegments[this.instances.length]?.[0] || null;\n }\n\n private reconcileConditional(\n rangeIndex: number,\n range: CompilerMixedRange & { kind: \"conditional\" },\n selection: CompilerHostConditionalPreparedSelection,\n ): boolean {\n const instance = this.instances[rangeIndex];\n if (instance.kind !== \"conditional\") return false;\n const previous = instance.value;\n if (selection.kind === \"empty\") {\n previous?.host.scope?.cleanup();\n previous?.host.element.remove();\n instance.value = null;\n return true;\n }\n if (previous?.key === selection.key) {\n const descriptor = selection.branch.create();\n if (!previous.host.scope?.update(descriptor)) return false;\n applyHostConditionalBindings(selection.branch, previous.host);\n return true;\n }\n const descriptor = selection.branch.create();\n const element = createCompilerHostElement(this.root.ownerDocument, descriptor);\n const host = mountCompilerHostInstance(\n this.owner,\n element,\n descriptor,\n selection.branch,\n this.onFallback,\n );\n if (!host) return false;\n previous?.host.scope?.cleanup();\n if (previous) previous.host.element.replaceWith(element);\n else this.root.insertBefore(element, this.anchorAfter(rangeIndex));\n instance.value = { key: selection.key, host };\n return true;\n }\n\n private reconcileKeyed(\n rangeIndex: number,\n range: CompilerMixedRange & { kind: \"keyed\" },\n rows: NestedReadKeyedRange,\n ): boolean {\n const instance = this.instances[rangeIndex];\n if (instance.kind !== \"keyed\") return false;\n const previous = instance.value;\n const oldIndices = new Map<string, number>();\n [...previous.keys()].forEach((key, index) => oldIndices.set(key, index));\n const nextKeys = new Set(rows.keys);\n for (const [key, row] of previous) {\n if (nextKeys.has(key)) continue;\n row.scope?.cleanup();\n row.element.remove();\n }\n\n const sequence = rows.keys.map((key) => oldIndices.get(key) ?? -1);\n const stablePositions = longestIncreasingSubsequencePositions(sequence);\n const nextInstances: CompilerKeyedRowInstance[] = [];\n for (let index = 0; index < rows.items.length; index += 1) {\n const key = rows.keys[index];\n const existing = previous.get(key);\n if (existing) {\n const descriptor = range.create(rows.items[index], index);\n if (!existing.scope?.update(descriptor)) return false;\n applyKeyedRowBindings(range, existing, rows.items[index], index);\n existing.item = rows.items[index];\n existing.index = index;\n nextInstances.push(existing);\n continue;\n }\n const descriptor = range.create(rows.items[index], index);\n const element = createCompilerHostElement(this.root.ownerDocument, descriptor);\n const scope = mountCompilerHostTree(this.owner, element, descriptor, this.onFallback);\n if (!scope) return false;\n let values: unknown[];\n try {\n values = readKeyedRowBindingValues(range, rows.items[index], index);\n } catch (error) {\n scope.cleanup();\n throw error;\n }\n nextInstances.push({\n key,\n element,\n scope,\n values,\n item: rows.items[index],\n index,\n conditionalValues: new Map(),\n });\n }\n\n let anchor = this.anchorAfter(rangeIndex);\n for (let index = nextInstances.length - 1; index >= 0; index -= 1) {\n const row = nextInstances[index];\n if (\n sequence[index] < 0 ||\n (!stablePositions.has(index) && row.element.nextSibling !== anchor)\n ) {\n this.root.insertBefore(row.element, anchor);\n }\n anchor = row.element;\n }\n instance.value = new Map(nextInstances.map((row) => [row.key, row]));\n return true;\n }\n\n private reconcileRange(rangeIndex: number, snapshot: NestedMixedRangeSnapshot): boolean {\n const range = this.block.ranges[rangeIndex];\n if (range.kind !== snapshot.kind) return false;\n return range.kind === \"conditional\" && snapshot.kind === \"conditional\"\n ? this.reconcileConditional(rangeIndex, range, snapshot.selection)\n : range.kind === \"keyed\" && snapshot.kind === \"keyed\"\n ? this.reconcileKeyed(rangeIndex, range, snapshot.rows)\n : false;\n }\n\n private refresh = (afterCommit?: () => void) => {\n if (!this.active) {\n afterCommit?.();\n return;\n }\n const snapshots = this.readSnapshots();\n if (!snapshots || snapshots.length !== this.instances.length) {\n this.onFallback();\n afterCommit?.();\n return;\n }\n if (!applyStaticRangeBindings(this.block.bindings, this.staticSegments, this.staticValues)) {\n this.onFallback();\n afterCommit?.();\n return;\n }\n const activeElement = this.root.ownerDocument.activeElement;\n const restoreFocus = Boolean(activeElement && this.root.contains(activeElement));\n for (let index = snapshots.length - 1; index >= 0; index -= 1) {\n if (!this.reconcileRange(index, snapshots[index])) {\n this.onFallback();\n afterCommit?.();\n return;\n }\n }\n if (\n restoreFocus &&\n activeElement?.isConnected &&\n activeElement.ownerDocument.activeElement !== activeElement &&\n \"focus\" in activeElement\n ) {\n (activeElement as HTMLElement).focus({ preventScroll: true });\n }\n afterCommit?.();\n };\n\n private updateStaticScopes(\n descriptor: CompilerHostElement,\n snapshots: readonly NestedMixedRangeSnapshot[],\n ): boolean {\n const descriptors = flattenCompilerHostElements(descriptor.children);\n let descriptorIndex = 0;\n let scopeIndex = 0;\n for (let rangeIndex = 0; rangeIndex < this.block.ranges.length; rangeIndex += 1) {\n const range = this.block.ranges[rangeIndex];\n for (let index = 0; index < range.before; index += 1) {\n const scope = this.staticScopes[scopeIndex++];\n const child = descriptors[descriptorIndex++];\n if (!scope || !child || !scope.update(child)) return false;\n }\n const snapshot = snapshots[rangeIndex];\n if (snapshot.kind === \"conditional\") {\n if (snapshot.selection.kind === \"branch\") descriptorIndex += 1;\n } else {\n descriptorIndex += snapshot.rows.items.length;\n }\n }\n for (let index = 0; index < this.block.trailing; index += 1) {\n const scope = this.staticScopes[scopeIndex++];\n const child = descriptors[descriptorIndex++];\n if (!scope || !child || !scope.update(child)) return false;\n }\n return scopeIndex === this.staticScopes.length && descriptorIndex === descriptors.length;\n }\n\n update(descriptor: CompilerHostElement): boolean {\n const block = descriptor.block;\n if (\n !this.active ||\n block?.kind !== \"mixed-ranges\" ||\n block.id !== this.block.id ||\n block.ranges.length !== this.block.ranges.length ||\n block.trailing !== this.block.trailing ||\n block.ranges.some(\n (range, index) =>\n range.kind !== this.block.ranges[index].kind ||\n range.before !== this.block.ranges[index].before,\n )\n ) {\n return false;\n }\n this.host = descriptor;\n this.block = block;\n const snapshots = this.readSnapshots();\n if (\n !snapshots ||\n snapshots.length !== this.instances.length ||\n !this.updateStaticScopes(descriptor, snapshots) ||\n !applyStaticRangeBindings(this.block.bindings, this.staticSegments, this.staticValues)\n ) {\n return false;\n }\n for (let index = snapshots.length - 1; index >= 0; index -= 1) {\n if (!this.reconcileRange(index, snapshots[index])) return false;\n }\n return true;\n }\n\n cleanup(): void {\n if (!this.active) return;\n this.active = false;\n this.unsubscribe?.();\n for (const instance of this.instances) {\n if (instance.kind === \"conditional\") {\n instance.value?.host.scope?.cleanup();\n } else {\n for (const row of instance.value.values()) row.scope?.cleanup();\n }\n }\n for (const scope of this.staticScopes) scope.cleanup();\n this.instances.length = 0;\n this.staticSegments.length = 0;\n this.staticScopes.length = 0;\n this.staticValues.length = 0;\n }\n}\n\nfunction createHostConditionalBlockComponent(\n owner: Pick<ConditionalBlockOwner, \"subscribe\">,\n): React.ComponentType<CompilerHostConditionalBlockProps> {\n interface State {\n fallback: boolean;\n }\n\n class FarmHostConditionalBlock extends React.Component<CompilerHostConditionalBlockProps, State> {\n static displayName = \"FarmCompiledHostConditional\";\n\n state: State = { fallback: false };\n private root: Element | null = null;\n private mounted = false;\n private fallbackRequested = false;\n private fallbackVersion = 0;\n private propSyncQueued = false;\n private currentProps = this.props;\n private unsubscribe: (() => void) | undefined;\n private fallbackUnsubscribers: Array<() => void> = [];\n private activeBranch: \"truthy\" | \"falsy\" | null = null;\n private instance: CompilerHostInstance | null = null;\n\n private requestNestedFallback = () => {\n this.instance?.scope?.cleanup();\n this.activateFallback();\n };\n\n private subscribeFallbackDescendants(): void {\n for (const unsubscribe of this.fallbackUnsubscribers) unsubscribe();\n this.fallbackUnsubscribers = [];\n const ids = new Set<number>();\n if (this.currentProps.truthy) {\n collectCompilerHostBlockIds(this.currentProps.truthy.create(), ids);\n }\n if (this.currentProps.falsy) {\n collectCompilerHostBlockIds(this.currentProps.falsy.create(), ids);\n }\n ids.delete(this.currentProps.id);\n for (const id of ids) {\n this.fallbackUnsubscribers.push(\n owner.subscribe(id, (afterCommit) => {\n this.fallbackVersion += 1;\n this.forceUpdate(afterCommit);\n }),\n );\n }\n }\n\n private captureRoot = (root: Element | null) => {\n this.root = root;\n };\n\n private adopt(): boolean {\n if (!this.root) return false;\n const selection = hostConditionalSelection(this.currentProps);\n if (selection.kind === \"fallback\") return false;\n if (selection.kind === \"empty\") {\n if (this.root.childNodes.length !== 0) return false;\n this.activeBranch = null;\n this.instance = null;\n return true;\n }\n if (\n this.root.childNodes.length !== 1 ||\n this.root.firstElementChild === null ||\n this.root.firstElementChild !== this.root.firstChild\n ) {\n return false;\n }\n const descriptor = selection.branch.create();\n const element = this.root.firstElementChild;\n if (!matchesCompilerHostElement(element, descriptor)) return false;\n const instance = mountCompilerHostInstance(\n owner,\n element,\n descriptor,\n selection.branch,\n this.requestNestedFallback,\n );\n if (!instance) return false;\n this.activeBranch = selection.key;\n this.instance = instance;\n return true;\n }\n\n private activateFallback(afterCommit?: () => void): void {\n if (!this.mounted || this.state.fallback || this.fallbackRequested) {\n afterCommit?.();\n return;\n }\n this.fallbackRequested = true;\n this.instance?.scope?.cleanup();\n this.instance = null;\n this.activeBranch = null;\n this.subscribeFallbackDescendants();\n // One key change on entry: the compiled path mutated the DOM behind\n // React's back, so the first fallback render must rebuild the subtree.\n this.fallbackVersion += 1;\n this.setState({ fallback: true }, afterCommit);\n }\n\n private reconcile(afterCommit?: () => void): void {\n if (!this.mounted || !this.root) {\n afterCommit?.();\n return;\n }\n if (this.state.fallback) {\n // React owns the container while in fallback; re-render with the\n // stable key so updates reconcile in place instead of remounting the\n // subtree (which would wipe uncontrolled inputs, focus, and scroll).\n this.forceUpdate(afterCommit);\n return;\n }\n\n const selection = hostConditionalSelection(this.currentProps);\n if (selection.kind === \"fallback\") {\n this.activateFallback(afterCommit);\n return;\n }\n if (selection.kind === \"empty\") {\n this.instance?.scope?.cleanup();\n if (this.instance) this.instance.element.remove();\n this.activeBranch = null;\n this.instance = null;\n afterCommit?.();\n return;\n }\n if (this.activeBranch === selection.key && this.instance) {\n const descriptor = selection.branch.create();\n const scope = mountCompilerHostTree(\n owner,\n this.instance.element,\n descriptor,\n this.requestNestedFallback,\n );\n if (!scope) {\n this.activateFallback(afterCommit);\n return;\n }\n this.instance.scope?.cleanup();\n this.instance.scope = scope;\n applyHostConditionalBindings(selection.branch, this.instance);\n afterCommit?.();\n return;\n }\n\n const descriptor = selection.branch.create();\n const element = createCompilerHostElement(this.root.ownerDocument, descriptor);\n const instance = mountCompilerHostInstance(\n owner,\n element,\n descriptor,\n selection.branch,\n this.requestNestedFallback,\n );\n if (!instance) {\n this.activateFallback(afterCommit);\n return;\n }\n this.instance?.scope?.cleanup();\n this.root.replaceChildren(element);\n this.activeBranch = selection.key;\n this.instance = instance;\n afterCommit?.();\n }\n\n private refresh = (afterCommit?: () => void) => {\n this.reconcile(afterCommit);\n };\n\n private schedulePropSync(): void {\n if (this.propSyncQueued) return;\n this.propSyncQueued = true;\n queueMicrotask(() => {\n this.propSyncQueued = false;\n if (this.mounted && !this.state.fallback) this.reconcile();\n });\n }\n\n shouldComponentUpdate(nextProps: CompilerHostConditionalBlockProps, nextState: State): boolean {\n this.currentProps = nextProps;\n if (nextState.fallback || this.state.fallback) return true;\n this.schedulePropSync();\n return false;\n }\n\n componentDidMount(): void {\n this.mounted = true;\n this.unsubscribe = owner.subscribe(this.props.id, this.refresh);\n if (!this.adopt()) this.activateFallback();\n }\n\n componentWillUnmount(): void {\n this.mounted = false;\n this.unsubscribe?.();\n for (const unsubscribe of this.fallbackUnsubscribers) unsubscribe();\n this.fallbackUnsubscribers = [];\n this.instance?.scope?.cleanup();\n this.root = null;\n this.activeBranch = null;\n this.instance = null;\n }\n\n render(): React.ReactNode {\n const container = this.currentProps.render();\n if (!React.isValidElement(container) || typeof container.type !== \"string\") {\n throw new TypeError(\n `Compiled host conditional ${this.currentProps.id} must own one host container.`,\n );\n }\n return React.cloneElement(container, {\n key: this.state.fallback ? `react-${this.fallbackVersion}` : \"compiled\",\n ref: this.captureRoot,\n } as React.Attributes);\n }\n }\n\n return FarmHostConditionalBlock;\n}\n\nfunction createConditionalRangesBlockComponent(\n owner: Pick<ConditionalBlockOwner, \"subscribe\">,\n): React.ComponentType<CompilerConditionalRangesBlockProps> {\n interface State {\n fallback: boolean;\n }\n\n interface ConditionalRangeInstance {\n key: \"truthy\" | \"falsy\";\n host: CompilerHostInstance;\n }\n\n class FarmConditionalRangesBlock extends React.Component<\n CompilerConditionalRangesBlockProps,\n State\n > {\n static displayName = \"FarmCompiledConditionalRanges\";\n\n state: State = { fallback: false };\n private root: Element | null = null;\n private mounted = false;\n private fallbackRequested = false;\n private fallbackVersion = 0;\n private propFallbackQueued = false;\n private currentProps = this.props;\n private unsubscribe: (() => void) | undefined;\n private fallbackUnsubscribers: Array<() => void> = [];\n private rangeInstances: Array<ConditionalRangeInstance | null> = [];\n private staticSegments: Element[][] = [];\n private readonly staticValues: unknown[] = [];\n\n private requestNestedFallback = () => {\n for (const instance of this.rangeInstances) instance?.host.scope?.cleanup();\n this.activateFallback();\n };\n\n private subscribeFallbackDescendants(): void {\n for (const unsubscribe of this.fallbackUnsubscribers) unsubscribe();\n this.fallbackUnsubscribers = [];\n const ids = new Set<number>();\n for (const range of this.currentProps.ranges) {\n if (range.truthy) collectCompilerHostBlockIds(range.truthy.create(), ids);\n if (range.falsy) collectCompilerHostBlockIds(range.falsy.create(), ids);\n }\n ids.delete(this.currentProps.id);\n for (const id of ids) {\n this.fallbackUnsubscribers.push(\n owner.subscribe(id, (afterCommit) => {\n this.fallbackVersion += 1;\n this.forceUpdate(afterCommit);\n }),\n );\n }\n }\n\n private captureRoot = (root: Element | null) => {\n this.root = root;\n this.currentProps.rootRef?.(root);\n };\n\n private readSelections(\n props: CompilerConditionalRangesBlockProps,\n ): CompilerHostConditionalPreparedSelection[] | null {\n const selections: CompilerHostConditionalPreparedSelection[] = [];\n for (const range of props.ranges) {\n const selection = hostConditionalSelection(range);\n if (selection.kind === \"fallback\") return null;\n selections.push(selection);\n }\n return selections;\n }\n\n private adopt(props: CompilerConditionalRangesBlockProps = this.currentProps): boolean {\n if (!this.root || !Number.isSafeInteger(props.trailing) || props.trailing < 0) return false;\n const selections = this.readSelections(props);\n if (!selections) return false;\n const elements = [...this.root.children];\n const staticSegments: Element[][] = [];\n const instances: Array<ConditionalRangeInstance | null> = [];\n const cleanupInstances = () => {\n for (const instance of instances) instance?.host.scope?.cleanup();\n };\n let cursor = 0;\n\n for (let rangeIndex = 0; rangeIndex < props.ranges.length; rangeIndex += 1) {\n const range = props.ranges[rangeIndex];\n if (!Number.isSafeInteger(range.before) || range.before < 0) {\n cleanupInstances();\n return false;\n }\n const staticEnd = cursor + range.before;\n if (staticEnd > elements.length) {\n cleanupInstances();\n return false;\n }\n staticSegments.push(elements.slice(cursor, staticEnd));\n cursor = staticEnd;\n\n const selection = selections[rangeIndex];\n if (selection.kind === \"empty\") {\n instances.push(null);\n continue;\n }\n const element = elements[cursor];\n if (!element) {\n cleanupInstances();\n return false;\n }\n const descriptor = selection.branch.create();\n if (!matchesCompilerHostElement(element, descriptor)) {\n cleanupInstances();\n return false;\n }\n const host = mountCompilerHostInstance(\n owner,\n element,\n descriptor,\n selection.branch,\n this.requestNestedFallback,\n );\n if (!host) {\n cleanupInstances();\n return false;\n }\n instances.push({\n key: selection.key,\n host,\n });\n cursor += 1;\n }\n\n if (cursor + props.trailing !== elements.length) {\n cleanupInstances();\n return false;\n }\n staticSegments.push(elements.slice(cursor));\n this.staticSegments = staticSegments;\n this.rangeInstances = instances;\n if (!applyStaticRangeBindings(props.bindings, this.staticSegments, this.staticValues)) {\n cleanupInstances();\n this.rangeInstances = [];\n this.staticSegments = [];\n return false;\n }\n return true;\n }\n\n private anchorAfter(rangeIndex: number): ChildNode | null {\n for (let next = rangeIndex + 1; next < this.rangeInstances.length; next += 1) {\n const staticAnchor = this.staticSegments[next]?.[0];\n if (staticAnchor) return staticAnchor;\n const rangeAnchor = this.rangeInstances[next]?.host.element;\n if (rangeAnchor) return rangeAnchor;\n }\n return this.staticSegments[this.rangeInstances.length]?.[0] || null;\n }\n\n private reconcileRange(\n rangeIndex: number,\n selection: CompilerHostConditionalPreparedSelection,\n ): boolean {\n if (!this.root) return false;\n const previous = this.rangeInstances[rangeIndex];\n if (selection.kind === \"empty\") {\n previous?.host.scope?.cleanup();\n previous?.host.element.remove();\n this.rangeInstances[rangeIndex] = null;\n return true;\n }\n if (previous?.key === selection.key) {\n const descriptor = selection.branch.create();\n const scope = mountCompilerHostTree(\n owner,\n previous.host.element,\n descriptor,\n this.requestNestedFallback,\n );\n if (!scope) {\n this.requestNestedFallback();\n return false;\n }\n previous.host.scope?.cleanup();\n previous.host.scope = scope;\n applyHostConditionalBindings(selection.branch, previous.host);\n return true;\n }\n\n const descriptor = selection.branch.create();\n const element = createCompilerHostElement(this.root.ownerDocument, descriptor);\n const host = mountCompilerHostInstance(\n owner,\n element,\n descriptor,\n selection.branch,\n this.requestNestedFallback,\n );\n if (!host) {\n this.requestNestedFallback();\n return false;\n }\n previous?.host.scope?.cleanup();\n if (previous) previous.host.element.replaceWith(element);\n else this.root.insertBefore(element, this.anchorAfter(rangeIndex));\n this.rangeInstances[rangeIndex] = {\n key: selection.key,\n host,\n };\n return true;\n }\n\n private reconcile(afterCommit?: () => void): void {\n if (!this.mounted || !this.root) {\n afterCommit?.();\n return;\n }\n if (this.state.fallback) {\n this.fallbackVersion += 1;\n this.forceUpdate(afterCommit);\n return;\n }\n if (this.currentProps.ranges.length !== this.rangeInstances.length) {\n this.activateFallback(afterCommit);\n return;\n }\n const selections = this.readSelections(this.currentProps);\n if (!selections) {\n this.activateFallback(afterCommit);\n return;\n }\n if (\n !applyStaticRangeBindings(\n this.currentProps.bindings,\n this.staticSegments,\n this.staticValues,\n )\n ) {\n this.activateFallback(afterCommit);\n return;\n }\n\n for (let rangeIndex = this.rangeInstances.length - 1; rangeIndex >= 0; rangeIndex -= 1) {\n if (!this.reconcileRange(rangeIndex, selections[rangeIndex])) {\n afterCommit?.();\n return;\n }\n }\n afterCommit?.();\n }\n\n private refresh = (afterCommit?: () => void) => {\n this.reconcile(afterCommit);\n };\n\n private activateFallback(afterCommit?: () => void): void {\n if (!this.mounted || this.state.fallback || this.fallbackRequested) {\n afterCommit?.();\n return;\n }\n this.fallbackRequested = true;\n for (const instance of this.rangeInstances) instance?.host.scope?.cleanup();\n this.subscribeFallbackDescendants();\n this.setState({ fallback: true }, afterCommit);\n }\n\n private schedulePropFallback(): void {\n if (this.propFallbackQueued) return;\n this.propFallbackQueued = true;\n queueMicrotask(() => {\n this.propFallbackQueued = false;\n if (this.mounted && !this.state.fallback) this.activateFallback();\n });\n }\n\n shouldComponentUpdate(\n nextProps: CompilerConditionalRangesBlockProps,\n nextState: State,\n ): boolean {\n this.currentProps = nextProps;\n if (nextState.fallback || this.state.fallback) return true;\n this.schedulePropFallback();\n return false;\n }\n\n componentDidMount(): void {\n this.mounted = true;\n this.unsubscribe = owner.subscribe(this.props.id, this.refresh);\n if (!this.adopt()) this.activateFallback();\n }\n\n componentWillUnmount(): void {\n this.mounted = false;\n this.unsubscribe?.();\n for (const unsubscribe of this.fallbackUnsubscribers) unsubscribe();\n this.fallbackUnsubscribers = [];\n for (const instance of this.rangeInstances) instance?.host.scope?.cleanup();\n this.root = null;\n this.rangeInstances = [];\n this.staticSegments = [];\n this.staticValues.length = 0;\n }\n\n render(): React.ReactNode {\n const container = this.currentProps.render();\n if (!React.isValidElement(container) || typeof container.type !== \"string\") {\n throw new TypeError(\n `Compiled conditional ranges ${this.currentProps.id} must own one host container.`,\n );\n }\n return React.cloneElement(container, {\n key: this.state.fallback ? `react-${this.fallbackVersion}` : \"compiled\",\n ref: this.captureRoot,\n } as React.Attributes);\n }\n }\n\n return FarmConditionalRangesBlock;\n}\n\n/** Returns positions forming the LIS while ignoring newly inserted (-1) entries. */\nfunction longestIncreasingSubsequencePositions(sequence: readonly number[]): Set<number> {\n const tails: number[] = [];\n const previous = Array.from({ length: sequence.length }, () => -1);\n\n for (let index = 0; index < sequence.length; index += 1) {\n if (sequence[index] < 0) continue;\n let low = 0;\n let high = tails.length;\n while (low < high) {\n const middle = (low + high) >> 1;\n if (sequence[tails[middle]] < sequence[index]) low = middle + 1;\n else high = middle;\n }\n if (low > 0) previous[index] = tails[low - 1];\n tails[low] = index;\n }\n\n const positions = new Set<number>();\n let cursor = tails.at(-1) ?? -1;\n while (cursor >= 0) {\n positions.add(cursor);\n cursor = previous[cursor];\n }\n return positions;\n}\n\nfunction reorderCompilerKeyedRows(\n root: Element,\n instances: readonly CompilerKeyedRowInstance[],\n sequence: readonly number[],\n anchor: ChildNode | null,\n): void {\n const activeElement = root.ownerDocument.activeElement;\n const restoreFocus = Boolean(activeElement && root.contains(activeElement));\n const stablePositions = longestIncreasingSubsequencePositions(sequence);\n for (let index = instances.length - 1; index >= 0; index -= 1) {\n const instance = instances[index];\n if (sequence[index] < 0) {\n let start = index;\n while (start > 0 && sequence[start - 1] < 0) start -= 1;\n const fragment = root.ownerDocument.createDocumentFragment();\n for (let itemIndex = start; itemIndex <= index; itemIndex += 1) {\n fragment.append(instances[itemIndex].element);\n }\n root.insertBefore(fragment, anchor);\n anchor = instances[start].element;\n index = start;\n } else {\n if (!stablePositions.has(index) && instance.element.nextSibling !== anchor) {\n root.insertBefore(instance.element, anchor);\n }\n anchor = instance.element;\n }\n }\n if (\n restoreFocus &&\n activeElement?.isConnected &&\n activeElement.ownerDocument.activeElement !== activeElement &&\n \"focus\" in activeElement\n ) {\n (activeElement as HTMLElement).focus({ preventScroll: true });\n }\n}\n\ntype RowConditionalRefresh = (item: unknown, index: number, afterCommit?: () => void) => void;\n\ninterface RowConditionalOwner {\n subscribe(key: string, id: number, refresh: RowConditionalRefresh): () => void;\n}\n\ninterface RowConditionalProps {\n owner: RowConditionalOwner;\n rowKey: string;\n id: number;\n renderVersion: number;\n item: unknown;\n index: number;\n render(item: unknown, index: number): React.ReactNode;\n}\n\ninterface RowConditionalState {\n renderVersion: number;\n item: unknown;\n index: number;\n}\n\ninterface KeyedRowConditionalRuntime {\n Component: React.ComponentType<RowConditionalProps>;\n readValues(\n props: Pick<CompilerKeyedRowsBlockProps, \"conditionals\">,\n item: unknown,\n index: number,\n ): ReadonlyMap<number, readonly unknown[]>;\n changed(previous: readonly unknown[] | undefined, next: readonly unknown[]): boolean;\n}\n\ninterface KeyedRowHostRuntime {\n mount(\n element: Element,\n descriptor: CompilerHostElement,\n requestFallback: () => void,\n ): CompilerHostTreeScope | null;\n}\n\ninterface KeyedUpdateRuntime {\n commit(value: unknown): object | undefined;\n append(\n props: CompilerKeyedRowsBlockProps,\n dirtyState: ReadonlySet<number>,\n collectionToken: object | undefined,\n instances: ReadonlyMap<string, CompilerKeyedRowInstance>,\n root: Element,\n reactOwnedRows: boolean,\n ): ReadonlyMap<string, CompilerKeyedRowInstance> | undefined;\n filter?(\n props: CompilerKeyedRowsBlockProps,\n dirtyState: ReadonlySet<number>,\n collectionToken: object | undefined,\n instances: ReadonlyMap<string, CompilerKeyedRowInstance>,\n reactOwnedRows: boolean,\n ): ReadonlyMap<string, CompilerKeyedRowInstance> | undefined;\n prepend?(\n props: CompilerKeyedRowsBlockProps,\n dirtyState: ReadonlySet<number>,\n collectionToken: object | undefined,\n instances: ReadonlyMap<string, CompilerKeyedRowInstance>,\n root: Element,\n reactOwnedRows: boolean,\n ): ReadonlyMap<string, CompilerKeyedRowInstance> | undefined;\n rollingWindow?(\n props: CompilerKeyedRowsBlockProps,\n dirtyState: ReadonlySet<number>,\n collectionToken: object | undefined,\n instances: ReadonlyMap<string, CompilerKeyedRowInstance>,\n root: Element,\n reactOwnedRows: boolean,\n ): ReadonlyMap<string, CompilerKeyedRowInstance> | undefined;\n position?(\n props: CompilerKeyedRowsBlockProps,\n dirtyState: ReadonlySet<number>,\n collectionToken: object | undefined,\n instances: ReadonlyMap<string, CompilerKeyedRowInstance>,\n root: Element,\n reactOwnedRows: boolean,\n ): ReadonlyMap<string, CompilerKeyedRowInstance> | undefined;\n reorder?(\n props: CompilerKeyedRowsBlockProps,\n dirtyState: ReadonlySet<number>,\n collectionToken: object | undefined,\n instances: ReadonlyMap<string, CompilerKeyedRowInstance>,\n root: Element,\n reactOwnedRows: boolean,\n ): ReadonlyMap<string, CompilerKeyedRowInstance> | undefined;\n reconcile(\n props: CompilerKeyedRowsBlockProps,\n dirtyState: ReadonlySet<number>,\n collectionToken: object | undefined,\n instances: ReadonlyMap<string, CompilerKeyedRowInstance>,\n conditionals: KeyedRowConditionalRuntime | undefined,\n ):\n | {\n collectionToken: object | undefined;\n conditionalChanges: readonly {\n key: string;\n id: number;\n item: unknown;\n index: number;\n }[];\n fallback: boolean;\n }\n | undefined;\n}\n\nconst keyedUpdateRuntime: KeyedUpdateRuntime = {\n append: reconcileCompilerKeyedArrayAppend,\n commit: commitCompilerKeyedCollection,\n reconcile: reconcileCompilerKeyedMapUpdate,\n};\n\nconst keyedFilterUpdateRuntime: KeyedUpdateRuntime = {\n ...keyedUpdateRuntime,\n filter: reconcileCompilerKeyedArrayFilter,\n};\n\nconst keyedPrependUpdateRuntime: KeyedUpdateRuntime = {\n ...keyedUpdateRuntime,\n prepend: reconcileCompilerKeyedArrayPrepend,\n};\n\nconst keyedFilterPrependUpdateRuntime: KeyedUpdateRuntime = {\n ...keyedFilterUpdateRuntime,\n prepend: reconcileCompilerKeyedArrayPrepend,\n};\n\nconst keyedPositionUpdateRuntime: KeyedUpdateRuntime = {\n ...keyedUpdateRuntime,\n position: reconcileCompilerKeyedArrayPosition,\n};\n\nconst keyedBatchPositionUpdateRuntime: KeyedUpdateRuntime = {\n ...keyedUpdateRuntime,\n position: reconcileCompilerKeyedArrayPositionWithBatch,\n};\n\nconst keyedWindowPositionUpdateRuntime: KeyedUpdateRuntime = {\n ...keyedUpdateRuntime,\n position: reconcileCompilerKeyedArrayPositionWithWindow,\n};\n\nconst keyedReorderUpdateRuntime: KeyedUpdateRuntime = {\n ...keyedUpdateRuntime,\n reorder: reconcileCompilerKeyedArrayReorder,\n};\n\nconst keyedCompleteUpdateRuntime: KeyedUpdateRuntime = {\n ...keyedFilterPrependUpdateRuntime,\n rollingWindow: reconcileCompilerKeyedArrayRollingWindow,\n};\n\nconst keyedEveryUpdateRuntime: KeyedUpdateRuntime = {\n ...keyedCompleteUpdateRuntime,\n position: reconcileCompilerKeyedArrayPosition,\n reorder: reconcileCompilerKeyedArrayReorder,\n};\n\nconst keyedBatchEveryUpdateRuntime: KeyedUpdateRuntime = {\n ...keyedEveryUpdateRuntime,\n position: reconcileCompilerKeyedArrayPositionWithBatch,\n};\n\nconst keyedWindowEveryUpdateRuntime: KeyedUpdateRuntime = {\n ...keyedEveryUpdateRuntime,\n position: reconcileCompilerKeyedArrayPositionWithWindow,\n};\n\ninterface KeyedRowsRuntimeOptions {\n conditionals?: KeyedRowConditionalRuntime;\n hostBlocks?: KeyedRowHostRuntime;\n keyedUpdates?: KeyedUpdateRuntime;\n}\n\nfunction reconcileCompilerKeyedMapUpdate(\n props: CompilerKeyedRowsBlockProps,\n dirtyState: ReadonlySet<number>,\n collectionToken: object | undefined,\n instances: ReadonlyMap<string, CompilerKeyedRowInstance>,\n conditionals: KeyedRowConditionalRuntime | undefined,\n): ReturnType<KeyedUpdateRuntime[\"reconcile\"]> {\n const dependency = props.collectionDependency;\n if (dependency === undefined) return undefined;\n const dependencies = props.dependencies || props.structureDependencies || [];\n const relevantDirty = [...dirtyState].filter((index) => dependencies.includes(index));\n if (relevantDirty.length !== 1 || relevantDirty[0] !== dependency) return undefined;\n\n const finalValue = props.items();\n const hintedIndices = compilerKeyedMapChangedIndices(finalValue, collectionToken);\n if (!hintedIndices || !Array.isArray(finalValue) || finalValue.length !== instances.size) {\n return undefined;\n }\n\n const changedIndices = [...new Set(hintedIndices)].sort((left, right) => left - right);\n const updates: Array<{\n key: string;\n item: unknown;\n index: number;\n instance: CompilerKeyedRowInstance;\n }> = [];\n try {\n for (const index of changedIndices) {\n if (!Number.isSafeInteger(index) || index < 0 || index >= finalValue.length) return undefined;\n const item = finalValue[index];\n const key = keyedRowIdentity(props.rowKey(item, index));\n const instance = instances.get(key);\n if (!instance || instance.index !== index) return undefined;\n updates.push({ key, item, index, instance });\n }\n } catch {\n return undefined;\n }\n\n const conditionalChanges: Array<{\n key: string;\n id: number;\n item: unknown;\n index: number;\n }> = [];\n for (const { key, item, index, instance } of updates) {\n if (props.hostBlocks) {\n const descriptor = props.create(item, index);\n if (!instance.scope?.update(descriptor)) {\n return { collectionToken, conditionalChanges: [], fallback: true };\n }\n }\n applyKeyedRowBindings(props, instance, item, index);\n const conditionalValues =\n conditionals?.readValues(props, item, index) || EMPTY_KEYED_ROW_CONDITIONAL_VALUES;\n for (const [id, values] of conditionalValues) {\n if (conditionals?.changed(instance.conditionalValues.get(id), values)) {\n conditionalChanges.push({ key, id, item, index });\n }\n }\n instance.conditionalValues = conditionalValues;\n instance.item = item;\n }\n return {\n collectionToken: commitCompilerKeyedCollection(finalValue),\n conditionalChanges,\n fallback: false,\n };\n}\n\nfunction reconcileCompilerKeyedArrayAppend(\n props: CompilerKeyedRowsBlockProps,\n dirtyState: ReadonlySet<number>,\n collectionToken: object | undefined,\n instances: ReadonlyMap<string, CompilerKeyedRowInstance>,\n root: Element,\n reactOwnedRows: boolean,\n): ReturnType<KeyedUpdateRuntime[\"append\"]> {\n if (\n reactOwnedRows ||\n props.hostBlocks ||\n (props.conditionals?.length || 0) > 0 ||\n props.collectionDependency === undefined\n ) {\n return undefined;\n }\n const collectionDependency = props.collectionDependency;\n if (props.bindings.some((binding) => binding.dependencies?.includes(collectionDependency))) {\n // Existing rows may read the collection itself (for example,\n // `rows.length`). Appending would need to refresh those rows too, so keep\n // the complete keyed reconciliation path for that shape.\n return undefined;\n }\n const dependencies = props.dependencies || props.structureDependencies;\n const relevantDirty = (dependencies || []).filter((index) => dirtyState.has(index));\n if (relevantDirty.length !== 1 || relevantDirty[0] !== collectionDependency) {\n return undefined;\n }\n\n const finalValue = props.items();\n const startIndex = compilerKeyedArrayAppendStart(finalValue, collectionToken, instances.size);\n if (startIndex === undefined || !Array.isArray(finalValue)) return undefined;\n\n const nextInstances = new Map(instances);\n const appended: CompilerKeyedRowInstance[] = [];\n try {\n for (let index = startIndex; index < finalValue.length; index += 1) {\n const item = finalValue[index];\n const key = keyedRowIdentity(props.rowKey(item, index));\n if (nextInstances.has(key)) return undefined;\n const descriptor = props.create(item, index);\n const instance: CompilerKeyedRowInstance = {\n key,\n element: createCompilerHostElement(root.ownerDocument, descriptor),\n values: readKeyedRowBindingValues(props, item, index),\n item,\n index,\n conditionalValues: EMPTY_KEYED_ROW_CONDITIONAL_VALUES,\n };\n appended.push(instance);\n nextInstances.set(key, instance);\n }\n } catch {\n return undefined;\n }\n\n if (appended.length > 0) {\n const fragment = root.ownerDocument.createDocumentFragment();\n for (const instance of appended) fragment.append(instance.element);\n root.append(fragment);\n }\n return nextInstances;\n}\n\nfunction reconcileCompilerKeyedArrayRollingWindow(\n props: CompilerKeyedRowsBlockProps,\n dirtyState: ReadonlySet<number>,\n collectionToken: object | undefined,\n instances: ReadonlyMap<string, CompilerKeyedRowInstance>,\n root: Element,\n reactOwnedRows: boolean,\n): ReadonlyMap<string, CompilerKeyedRowInstance> | undefined {\n if (\n reactOwnedRows ||\n props.hostBlocks ||\n (props.conditionals?.length || 0) > 0 ||\n !props.filterIndexIndependent ||\n props.collectionDependency === undefined\n ) {\n return undefined;\n }\n const collectionDependency = props.collectionDependency;\n if (props.bindings.some((binding) => binding.dependencies?.includes(collectionDependency))) {\n return undefined;\n }\n const dependencies = props.dependencies || props.structureDependencies;\n const relevantDirty = (dependencies || []).filter((index) => dirtyState.has(index));\n if (relevantDirty.length !== 1 || relevantDirty[0] !== collectionDependency) {\n return undefined;\n }\n\n const finalValue = props.items();\n const update = compilerKeyedArrayRollingWindow(finalValue, collectionToken, instances.size);\n if (!update || !Array.isArray(finalValue)) return undefined;\n const previousInstances = [...instances.values()];\n const retainedLength = update.retainedEnd - update.retainedStart;\n const survivors: CompilerKeyedRowInstance[] = [];\n try {\n for (let index = 0; index < retainedLength; index += 1) {\n const sourceIndex = update.retainedStart + index;\n const instance = previousInstances[sourceIndex];\n if (\n !instance ||\n instance.index !== sourceIndex ||\n !Object.is(instance.item, finalValue[index])\n ) {\n return undefined;\n }\n survivors.push(instance);\n }\n } catch {\n return undefined;\n }\n\n const knownKeys = new Set(instances.keys());\n const incoming: CompilerKeyedRowInstance[] = [];\n try {\n for (let index = retainedLength; index < finalValue.length; index += 1) {\n const item = finalValue[index];\n const key = keyedRowIdentity(props.rowKey(item, index));\n // Reusing any key from the committed window must take the complete keyed\n // reconciliation path so React-owned row identity is never recreated.\n if (knownKeys.has(key)) return undefined;\n knownKeys.add(key);\n const descriptor = props.create(item, index);\n incoming.push({\n key,\n element: createCompilerHostElement(root.ownerDocument, descriptor),\n values: readKeyedRowBindingValues(props, item, index),\n item,\n index,\n conditionalValues: EMPTY_KEYED_ROW_CONDITIONAL_VALUES,\n });\n }\n } catch {\n return undefined;\n }\n\n for (let index = 0; index < update.retainedStart; index += 1) {\n previousInstances[index].scope?.cleanup();\n previousInstances[index].element.remove();\n }\n for (let index = 0; index < survivors.length; index += 1) survivors[index].index = index;\n if (incoming.length > 0) {\n const fragment = root.ownerDocument.createDocumentFragment();\n for (const instance of incoming) fragment.append(instance.element);\n root.append(fragment);\n }\n const nextInstances = new Map(\n [...survivors, ...incoming].map((instance) => [instance.key, instance]),\n );\n return nextInstances;\n}\n\nfunction reconcileCompilerKeyedArrayPosition(\n props: CompilerKeyedRowsBlockProps,\n dirtyState: ReadonlySet<number>,\n collectionToken: object | undefined,\n instances: ReadonlyMap<string, CompilerKeyedRowInstance>,\n root: Element,\n reactOwnedRows: boolean,\n): ReadonlyMap<string, CompilerKeyedRowInstance> | undefined {\n if (\n reactOwnedRows ||\n props.hostBlocks ||\n (props.conditionals?.length || 0) > 0 ||\n !props.positionIndexIndependent ||\n props.collectionDependency === undefined\n ) {\n return undefined;\n }\n const collectionDependency = props.collectionDependency;\n if (props.bindings.some((binding) => binding.dependencies?.includes(collectionDependency))) {\n return undefined;\n }\n const dependencies = props.dependencies || props.structureDependencies;\n const relevantDirty = (dependencies || []).filter((index) => dirtyState.has(index));\n if (relevantDirty.length !== 1 || relevantDirty[0] !== collectionDependency) {\n return undefined;\n }\n\n const finalValue = props.items();\n const update = compilerKeyedArrayPosition(finalValue, collectionToken, instances.size);\n if (!update || !Array.isArray(finalValue)) return undefined;\n const previousInstances = [...instances.values()];\n const previous = previousInstances[update.position];\n\n if (update.kind === \"remove\") {\n const count = update.sourceLength - update.resultLength;\n const removed = previousInstances.slice(update.position, update.position + count);\n if (removed.some((instance, index) => instance.index !== update.position + index)) {\n return undefined;\n }\n for (const instance of removed) {\n instance.scope?.cleanup();\n instance.element.remove();\n }\n previousInstances.splice(update.position, count);\n for (let index = update.position; index < previousInstances.length; index += 1) {\n previousInstances[index].index = index;\n }\n return new Map(previousInstances.map((instance) => [instance.key, instance]));\n }\n\n let item: unknown;\n let key: string;\n try {\n item = finalValue[update.position];\n key = keyedRowIdentity(props.rowKey(item, update.position));\n } catch {\n return undefined;\n }\n\n if (update.kind === \"insert\") {\n if (instances.has(key)) return undefined;\n let inserted: CompilerKeyedRowInstance;\n try {\n const descriptor = props.create(item, update.position);\n inserted = {\n key,\n element: createCompilerHostElement(root.ownerDocument, descriptor),\n values: readKeyedRowBindingValues(props, item, update.position),\n item,\n index: update.position,\n conditionalValues: EMPTY_KEYED_ROW_CONDITIONAL_VALUES,\n };\n } catch {\n return undefined;\n }\n root.insertBefore(inserted.element, previous?.element || null);\n previousInstances.splice(update.position, 0, inserted);\n for (let index = update.position + 1; index < previousInstances.length; index += 1) {\n previousInstances[index].index = index;\n }\n return new Map(previousInstances.map((instance) => [instance.key, instance]));\n }\n\n if (!previous || previous.index !== update.position) return undefined;\n if (key === previous.key) {\n try {\n applyKeyedRowBindings(props, previous, item, update.position);\n } catch {\n return undefined;\n }\n previous.item = item;\n return instances;\n }\n if (instances.has(key)) return undefined;\n\n let replacement: CompilerKeyedRowInstance;\n try {\n const descriptor = props.create(item, update.position);\n replacement = {\n key,\n element: createCompilerHostElement(root.ownerDocument, descriptor),\n values: readKeyedRowBindingValues(props, item, update.position),\n item,\n index: update.position,\n conditionalValues: EMPTY_KEYED_ROW_CONDITIONAL_VALUES,\n };\n } catch {\n return undefined;\n }\n previous.scope?.cleanup();\n previous.element.replaceWith(replacement.element);\n previousInstances[update.position] = replacement;\n return new Map(previousInstances.map((instance) => [instance.key, instance]));\n}\n\nfunction reconcileCompilerKeyedArrayBatchInsert(\n props: CompilerKeyedRowsBlockProps,\n dirtyState: ReadonlySet<number>,\n collectionToken: object | undefined,\n instances: ReadonlyMap<string, CompilerKeyedRowInstance>,\n root: Element,\n reactOwnedRows: boolean,\n): ReadonlyMap<string, CompilerKeyedRowInstance> | undefined {\n if (\n reactOwnedRows ||\n props.hostBlocks ||\n (props.conditionals?.length || 0) > 0 ||\n !props.positionIndexIndependent ||\n props.collectionDependency === undefined\n ) {\n return undefined;\n }\n const collectionDependency = props.collectionDependency;\n if (props.bindings.some((binding) => binding.dependencies?.includes(collectionDependency))) {\n return undefined;\n }\n const dependencies = props.dependencies || props.structureDependencies;\n const relevantDirty = (dependencies || []).filter((index) => dirtyState.has(index));\n if (relevantDirty.length !== 1 || relevantDirty[0] !== collectionDependency) {\n return undefined;\n }\n\n const finalValue = props.items();\n const update = compilerKeyedArrayBatchInsert(finalValue, collectionToken, instances.size);\n if (!update || !Array.isArray(finalValue)) return undefined;\n const previousInstances = [...instances.values()];\n const insertCount = update.resultLength - update.sourceLength;\n for (let sourceIndex = 0; sourceIndex < update.sourceLength; sourceIndex += 1) {\n const instance = previousInstances[sourceIndex];\n const resultIndex = sourceIndex < update.position ? sourceIndex : sourceIndex + insertCount;\n if (\n !instance ||\n instance.index !== sourceIndex ||\n !Object.is(instance.item, finalValue[resultIndex])\n ) {\n return undefined;\n }\n }\n const knownKeys = new Set(instances.keys());\n const incoming: CompilerKeyedRowInstance[] = [];\n try {\n for (let offset = 0; offset < insertCount; offset += 1) {\n const index = update.position + offset;\n const item = finalValue[index];\n const key = keyedRowIdentity(props.rowKey(item, index));\n if (knownKeys.has(key)) return undefined;\n knownKeys.add(key);\n const descriptor = props.create(item, index);\n incoming.push({\n key,\n element: createCompilerHostElement(root.ownerDocument, descriptor),\n values: readKeyedRowBindingValues(props, item, index),\n item,\n index,\n conditionalValues: EMPTY_KEYED_ROW_CONDITIONAL_VALUES,\n });\n }\n } catch {\n return undefined;\n }\n\n const fragment = root.ownerDocument.createDocumentFragment();\n for (const instance of incoming) fragment.append(instance.element);\n root.insertBefore(fragment, previousInstances[update.position]?.element || null);\n previousInstances.splice(update.position, 0, ...incoming);\n for (let index = update.position + insertCount; index < previousInstances.length; index += 1) {\n previousInstances[index].index = index;\n }\n return new Map(previousInstances.map((instance) => [instance.key, instance]));\n}\n\nfunction reconcileCompilerKeyedArrayWindowReplace(\n props: CompilerKeyedRowsBlockProps,\n dirtyState: ReadonlySet<number>,\n collectionToken: object | undefined,\n instances: ReadonlyMap<string, CompilerKeyedRowInstance>,\n root: Element,\n reactOwnedRows: boolean,\n): ReadonlyMap<string, CompilerKeyedRowInstance> | undefined {\n if (\n reactOwnedRows ||\n props.hostBlocks ||\n (props.conditionals?.length || 0) > 0 ||\n !props.positionIndexIndependent ||\n props.collectionDependency === undefined\n ) {\n return undefined;\n }\n const collectionDependency = props.collectionDependency;\n if (props.bindings.some((binding) => binding.dependencies?.includes(collectionDependency))) {\n return undefined;\n }\n const dependencies = props.dependencies || props.structureDependencies;\n const relevantDirty = (dependencies || []).filter((index) => dirtyState.has(index));\n if (relevantDirty.length !== 1 || relevantDirty[0] !== collectionDependency) {\n return undefined;\n }\n\n const finalValue = props.items();\n const updates = compilerKeyedArrayWindowReplacements(finalValue, collectionToken, instances.size);\n if (!updates || !Array.isArray(finalValue)) return undefined;\n const previousInstances = [...instances.values()];\n if (updates.length > 1) {\n const touchedIndices = new Set<number>();\n for (const update of updates) {\n if (update.insertedCount !== update.removedCount) return undefined;\n for (let index = update.position; index < update.position + update.removedCount; index += 1) {\n touchedIndices.add(index);\n }\n }\n\n for (let index = 0; index < previousInstances.length; index += 1) {\n const instance = previousInstances[index];\n const touched = touchedIndices.has(index);\n if (\n !instance ||\n instance.index !== index ||\n (touched\n ? instance.element.parentNode !== root\n : !Object.is(instance.item, finalValue[index]))\n ) {\n return undefined;\n }\n }\n\n const knownKeys = new Set(instances.keys());\n const incomingKeys = new Set<string>();\n let replacesRows = false;\n const prepared: Array<\n readonly [\n index: number,\n instance: CompilerKeyedRowInstance,\n item: unknown,\n updates: readonly CompilerPreparedKeyedRowBindingUpdate[] | undefined,\n replacement: CompilerKeyedRowInstance | undefined,\n ]\n > = [];\n try {\n for (const index of [...touchedIndices].sort((left, right) => left - right)) {\n const instance = previousInstances[index];\n const item = finalValue[index];\n const key = keyedRowIdentity(props.rowKey(item, index));\n if (key !== instance.key) {\n // Fixed-length queued windows never shift positions, and React only\n // commits their final array. Intermediate identities were never\n // mounted, so only the final key must be new to the committed\n // rows and unique across the prepared replacements.\n if (knownKeys.has(key) || incomingKeys.has(key)) return undefined;\n incomingKeys.add(key);\n replacesRows = true;\n const descriptor = props.create(item, index);\n prepared.push([\n index,\n instance,\n item,\n undefined,\n {\n key,\n element: createCompilerHostElement(root.ownerDocument, descriptor),\n values: readKeyedRowBindingValues(props, item, index),\n item,\n index,\n conditionalValues: EMPTY_KEYED_ROW_CONDITIONAL_VALUES,\n },\n ]);\n continue;\n }\n const bindingUpdates = prepareKeyedRowBindingUpdates(props, instance, item, index);\n if (!bindingUpdates) return undefined;\n prepared.push([index, instance, item, bindingUpdates, undefined]);\n }\n } catch {\n return undefined;\n }\n for (const [index, instance, item, bindingUpdates, replacement] of prepared) {\n if (replacement) {\n instance.scope?.cleanup();\n instance.element.replaceWith(replacement.element);\n previousInstances[index] = replacement;\n } else {\n applyPreparedKeyedRowBindingUpdates(props, instance, bindingUpdates!);\n instance.item = item;\n }\n }\n return replacesRows\n ? new Map(previousInstances.map((instance) => [instance.key, instance]))\n : instances;\n }\n\n const update = updates[0];\n const removedEnd = update.position + update.removedCount;\n for (let sourceIndex = 0; sourceIndex < update.sourceLength; sourceIndex += 1) {\n const instance = previousInstances[sourceIndex];\n if (!instance || instance.index !== sourceIndex) return undefined;\n if (sourceIndex >= update.position && sourceIndex < removedEnd) continue;\n const resultIndex =\n sourceIndex < update.position\n ? sourceIndex\n : sourceIndex - update.removedCount + update.insertedCount;\n if (!Object.is(instance.item, finalValue[resultIndex])) return undefined;\n }\n\n const removed = previousInstances.slice(update.position, removedEnd);\n const anchor = previousInstances[removedEnd]?.element;\n if (\n removed.length !== update.removedCount ||\n removed.some((instance) => instance.element.parentNode !== root) ||\n (anchor && anchor.parentNode !== root)\n ) {\n return undefined;\n }\n\n const incomingItems: unknown[] = [];\n const incomingKeys: string[] = [];\n try {\n for (let offset = 0; offset < update.insertedCount; offset += 1) {\n const index = update.position + offset;\n const item = finalValue[index];\n const key = keyedRowIdentity(props.rowKey(item, index));\n incomingItems.push(item);\n incomingKeys.push(key);\n }\n } catch {\n return undefined;\n }\n\n if (\n update.insertedCount === update.removedCount &&\n incomingKeys.every((key, offset) => key === removed[offset].key)\n ) {\n const prepared: CompilerPreparedKeyedRowBindingUpdate[][] = [];\n try {\n for (let offset = 0; offset < update.insertedCount; offset += 1) {\n const updates = prepareKeyedRowBindingUpdates(\n props,\n removed[offset],\n incomingItems[offset],\n update.position + offset,\n );\n if (!updates) return undefined;\n prepared.push(updates);\n }\n } catch {\n return undefined;\n }\n for (let offset = 0; offset < update.insertedCount; offset += 1) {\n applyPreparedKeyedRowBindingUpdates(props, removed[offset], prepared[offset]);\n removed[offset].item = incomingItems[offset];\n }\n return instances;\n }\n\n if (update.insertedCount === update.removedCount) {\n const incomingKeySet = new Set(incomingKeys);\n if (incomingKeySet.size !== incomingKeys.length) return undefined;\n const removedByKey = new Map(\n removed.map((instance, offset) => [instance.key, { instance, offset }] as const),\n );\n if (incomingKeys.some((key) => removedByKey.has(key))) {\n const nextWindow: CompilerKeyedRowInstance[] = [];\n const sequence: number[] = [];\n const preparedBindings: Array<readonly CompilerPreparedKeyedRowBindingUpdate[] | undefined> =\n [];\n try {\n for (let offset = 0; offset < update.insertedCount; offset += 1) {\n const index = update.position + offset;\n const item = incomingItems[offset];\n const key = incomingKeys[offset];\n const retained = removedByKey.get(key);\n if (retained) {\n const bindingUpdates = prepareKeyedRowBindingUpdates(\n props,\n retained.instance,\n item,\n index,\n );\n if (!bindingUpdates) return undefined;\n nextWindow.push(retained.instance);\n sequence.push(retained.offset);\n preparedBindings.push(bindingUpdates);\n continue;\n }\n // A key owned outside this exact window would duplicate or move a\n // row across the proven boundary. Complete keyed reconciliation\n // remains responsible for that case.\n if (instances.has(key)) return undefined;\n const descriptor = props.create(item, index);\n nextWindow.push({\n key,\n element: createCompilerHostElement(root.ownerDocument, descriptor),\n values: readKeyedRowBindingValues(props, item, index),\n item,\n index,\n conditionalValues: EMPTY_KEYED_ROW_CONDITIONAL_VALUES,\n });\n sequence.push(-1);\n preparedBindings.push(undefined);\n }\n } catch {\n return undefined;\n }\n\n for (const instance of removed) {\n if (incomingKeySet.has(instance.key)) continue;\n instance.scope?.cleanup();\n instance.element.remove();\n }\n for (let offset = 0; offset < nextWindow.length; offset += 1) {\n const bindingUpdates = preparedBindings[offset];\n if (bindingUpdates) {\n const instance = nextWindow[offset];\n applyPreparedKeyedRowBindingUpdates(props, instance, bindingUpdates);\n instance.item = incomingItems[offset];\n instance.index = update.position + offset;\n }\n }\n\n reorderCompilerKeyedRows(root, nextWindow, sequence, anchor || null);\n previousInstances.splice(update.position, update.removedCount, ...nextWindow);\n return new Map(previousInstances.map((instance) => [instance.key, instance]));\n }\n }\n\n const knownKeys = new Set(instances.keys());\n const incoming: CompilerKeyedRowInstance[] = [];\n try {\n for (let offset = 0; offset < update.insertedCount; offset += 1) {\n const index = update.position + offset;\n const item = incomingItems[offset];\n const key = incomingKeys[offset];\n // Exact same-order reuse already returned above. Any remaining reuse is\n // reordered or mixed and needs complete keyed reconciliation.\n if (knownKeys.has(key)) return undefined;\n knownKeys.add(key);\n const descriptor = props.create(item, index);\n incoming.push({\n key,\n element: createCompilerHostElement(root.ownerDocument, descriptor),\n values: readKeyedRowBindingValues(props, item, index),\n item,\n index,\n conditionalValues: EMPTY_KEYED_ROW_CONDITIONAL_VALUES,\n });\n }\n } catch {\n return undefined;\n }\n\n for (const instance of removed) {\n instance.scope?.cleanup();\n instance.element.remove();\n }\n if (incoming.length > 0) {\n const fragment = root.ownerDocument.createDocumentFragment();\n for (const instance of incoming) fragment.append(instance.element);\n root.insertBefore(fragment, anchor || null);\n }\n previousInstances.splice(update.position, update.removedCount, ...incoming);\n for (\n let index = update.position + update.insertedCount;\n index < previousInstances.length;\n index += 1\n ) {\n previousInstances[index].index = index;\n }\n return new Map(previousInstances.map((instance) => [instance.key, instance]));\n}\n\nfunction reconcileCompilerKeyedArrayPositionWithBatch(\n ...args: Parameters<typeof reconcileCompilerKeyedArrayPosition>\n): ReadonlyMap<string, CompilerKeyedRowInstance> | undefined {\n return (\n reconcileCompilerKeyedArrayBatchInsert(...args) || reconcileCompilerKeyedArrayPosition(...args)\n );\n}\n\nfunction reconcileCompilerKeyedArrayPositionWithWindow(\n ...args: Parameters<typeof reconcileCompilerKeyedArrayPosition>\n): ReadonlyMap<string, CompilerKeyedRowInstance> | undefined {\n return (\n reconcileCompilerKeyedArrayWindowReplace(...args) ||\n reconcileCompilerKeyedArrayBatchInsert(...args) ||\n reconcileCompilerKeyedArrayPosition(...args)\n );\n}\n\nfunction reconcileCompilerKeyedArrayReorder(\n props: CompilerKeyedRowsBlockProps,\n dirtyState: ReadonlySet<number>,\n collectionToken: object | undefined,\n instances: ReadonlyMap<string, CompilerKeyedRowInstance>,\n root: Element,\n reactOwnedRows: boolean,\n): ReadonlyMap<string, CompilerKeyedRowInstance> | undefined {\n if (\n reactOwnedRows ||\n props.hostBlocks ||\n (props.conditionals?.length || 0) > 0 ||\n !props.reorderIndexIndependent ||\n props.collectionDependency === undefined\n ) {\n return undefined;\n }\n const collectionDependency = props.collectionDependency;\n if (props.bindings.some((binding) => binding.dependencies?.includes(collectionDependency))) {\n return undefined;\n }\n const dependencies = props.dependencies || props.structureDependencies;\n const relevantDirty = (dependencies || []).filter((index) => dirtyState.has(index));\n if (relevantDirty.length !== 1 || relevantDirty[0] !== collectionDependency) {\n return undefined;\n }\n\n const finalValue = props.items();\n const update = compilerKeyedArrayReorder(finalValue, collectionToken, instances.size);\n if (!update || !Array.isArray(finalValue)) return undefined;\n\n const previousInstances = [...instances.values()];\n if (update.kind === \"sort\") {\n const instancesByItem = new Map<unknown, CompilerKeyedRowInstance>();\n try {\n for (let sourceIndex = 0; sourceIndex < previousInstances.length; sourceIndex += 1) {\n const instance = previousInstances[sourceIndex];\n if (instance.index !== sourceIndex || instancesByItem.has(instance.item)) return undefined;\n instancesByItem.set(instance.item, instance);\n }\n\n const nextInstances: CompilerKeyedRowInstance[] = [];\n const sequence: number[] = [];\n for (let targetIndex = 0; targetIndex < finalValue.length; targetIndex += 1) {\n const item = finalValue[targetIndex];\n const instance = instancesByItem.get(item);\n if (!instance || !Object.is(instance.item, item)) return undefined;\n instancesByItem.delete(item);\n nextInstances.push(instance);\n sequence.push(instance.index);\n }\n if (instancesByItem.size > 0) return undefined;\n\n const activeElement = root.ownerDocument.activeElement;\n const restoreFocus = Boolean(activeElement && root.contains(activeElement));\n const stablePositions = longestIncreasingSubsequencePositions(sequence);\n let anchor: ChildNode | null = null;\n for (let index = nextInstances.length - 1; index >= 0; index -= 1) {\n const instance = nextInstances[index];\n if (!stablePositions.has(index) && instance.element.nextSibling !== anchor) {\n root.insertBefore(instance.element, anchor);\n }\n anchor = instance.element;\n instance.index = index;\n }\n if (\n restoreFocus &&\n activeElement?.isConnected &&\n activeElement.ownerDocument.activeElement !== activeElement &&\n \"focus\" in activeElement\n ) {\n (activeElement as HTMLElement).focus({ preventScroll: true });\n }\n return new Map(nextInstances.map((instance) => [instance.key, instance]));\n } catch {\n return undefined;\n }\n }\n\n try {\n for (let sourceIndex = 0; sourceIndex < previousInstances.length; sourceIndex += 1) {\n const instance = previousInstances[sourceIndex];\n const targetIndex = previousInstances.length - sourceIndex - 1;\n if (instance.index !== sourceIndex || !Object.is(instance.item, finalValue[targetIndex])) {\n return undefined;\n }\n }\n } catch {\n return undefined;\n }\n\n const activeElement = root.ownerDocument.activeElement;\n const restoreFocus = Boolean(activeElement && root.contains(activeElement));\n // A reverse has a one-row LIS. Keep the first committed row in place and\n // move every following row before the previous anchor, which performs the\n // minimum n - 1 connected DOM moves without rescanning keys or descriptors.\n let anchor = previousInstances[0]?.element || null;\n for (let sourceIndex = 1; sourceIndex < previousInstances.length; sourceIndex += 1) {\n const element = previousInstances[sourceIndex].element;\n root.insertBefore(element, anchor);\n anchor = element;\n }\n\n previousInstances.reverse();\n for (let index = 0; index < previousInstances.length; index += 1) {\n previousInstances[index].index = index;\n }\n if (\n restoreFocus &&\n activeElement?.isConnected &&\n activeElement.ownerDocument.activeElement !== activeElement &&\n \"focus\" in activeElement\n ) {\n (activeElement as HTMLElement).focus({ preventScroll: true });\n }\n return new Map(previousInstances.map((instance) => [instance.key, instance]));\n}\n\nfunction reconcileCompilerKeyedArrayPrepend(\n props: CompilerKeyedRowsBlockProps,\n dirtyState: ReadonlySet<number>,\n collectionToken: object | undefined,\n instances: ReadonlyMap<string, CompilerKeyedRowInstance>,\n root: Element,\n reactOwnedRows: boolean,\n): ReadonlyMap<string, CompilerKeyedRowInstance> | undefined {\n if (\n reactOwnedRows ||\n props.hostBlocks ||\n (props.conditionals?.length || 0) > 0 ||\n !props.prependIndexIndependent ||\n props.collectionDependency === undefined\n ) {\n return undefined;\n }\n const collectionDependency = props.collectionDependency;\n if (props.bindings.some((binding) => binding.dependencies?.includes(collectionDependency))) {\n return undefined;\n }\n const dependencies = props.dependencies || props.structureDependencies;\n const relevantDirty = (dependencies || []).filter((index) => dirtyState.has(index));\n if (relevantDirty.length !== 1 || relevantDirty[0] !== collectionDependency) {\n return undefined;\n }\n\n const finalValue = props.items();\n const prefixLength = compilerKeyedArrayPrependLength(finalValue, collectionToken, instances.size);\n if (prefixLength === undefined || !Array.isArray(finalValue)) return undefined;\n const previousInstances = [...instances.values()];\n for (let index = 0; index < previousInstances.length; index += 1) {\n const instance = previousInstances[index];\n if (instance.index !== index || !Object.is(instance.item, finalValue[prefixLength + index])) {\n return undefined;\n }\n }\n\n const knownKeys = new Set(instances.keys());\n const prepended: CompilerKeyedRowInstance[] = [];\n try {\n for (let index = 0; index < prefixLength; index += 1) {\n const item = finalValue[index];\n const key = keyedRowIdentity(props.rowKey(item, index));\n if (knownKeys.has(key)) return undefined;\n knownKeys.add(key);\n const descriptor = props.create(item, index);\n prepended.push({\n key,\n element: createCompilerHostElement(root.ownerDocument, descriptor),\n values: readKeyedRowBindingValues(props, item, index),\n item,\n index,\n conditionalValues: EMPTY_KEYED_ROW_CONDITIONAL_VALUES,\n });\n }\n } catch {\n return undefined;\n }\n\n if (prepended.length > 0) {\n const fragment = root.ownerDocument.createDocumentFragment();\n for (const instance of prepended) fragment.append(instance.element);\n root.insertBefore(fragment, root.firstChild);\n }\n for (let index = 0; index < previousInstances.length; index += 1) {\n previousInstances[index].index = prefixLength + index;\n }\n return new Map([...prepended, ...previousInstances].map((instance) => [instance.key, instance]));\n}\n\nfunction reconcileCompilerKeyedArrayFilter(\n props: CompilerKeyedRowsBlockProps,\n dirtyState: ReadonlySet<number>,\n collectionToken: object | undefined,\n instances: ReadonlyMap<string, CompilerKeyedRowInstance>,\n reactOwnedRows: boolean,\n): ReadonlyMap<string, CompilerKeyedRowInstance> | undefined {\n if (\n reactOwnedRows ||\n props.hostBlocks ||\n (props.conditionals?.length || 0) > 0 ||\n !props.filterIndexIndependent ||\n props.collectionDependency === undefined\n ) {\n return undefined;\n }\n const collectionDependency = props.collectionDependency;\n if (props.bindings.some((binding) => binding.dependencies?.includes(collectionDependency))) {\n return undefined;\n }\n const dependencies = props.dependencies || props.structureDependencies;\n const relevantDirty = (dependencies || []).filter((index) => dirtyState.has(index));\n if (relevantDirty.length !== 1 || relevantDirty[0] !== collectionDependency) {\n return undefined;\n }\n\n const finalValue = props.items();\n const survivorResult = compilerKeyedArrayFilterSurvivors(\n finalValue,\n collectionToken,\n instances.size,\n );\n if (!survivorResult || !Array.isArray(finalValue)) return undefined;\n const { indices: survivorIndices, keysStable } = survivorResult;\n const previousInstances = [...instances.values()];\n const survivors: CompilerKeyedRowInstance[] = [];\n try {\n for (let index = 0; index < survivorIndices.length; index += 1) {\n const sourceIndex = survivorIndices[index];\n const instance = previousInstances[sourceIndex];\n const item = finalValue[index];\n if (\n !instance ||\n instance.index !== sourceIndex ||\n !Object.is(instance.item, item) ||\n (!keysStable && keyedRowIdentity(props.rowKey(item, index)) !== instance.key)\n ) {\n return undefined;\n }\n survivors.push(instance);\n }\n } catch {\n return undefined;\n }\n\n const survivorSet = new Set(survivorIndices);\n for (let index = 0; index < previousInstances.length; index += 1) {\n if (survivorSet.has(index)) continue;\n previousInstances[index].scope?.cleanup();\n previousInstances[index].element.remove();\n }\n for (let index = 0; index < survivors.length; index += 1) {\n survivors[index].index = index;\n }\n return new Map(survivors.map((instance) => [instance.key, instance]));\n}\n\nfunction createKeyedRowConditionalRuntime(): KeyedRowConditionalRuntime {\n class FarmKeyedRowConditional extends React.Component<RowConditionalProps, RowConditionalState> {\n static displayName = \"FarmCompiledKeyedRowConditional\";\n\n state: RowConditionalState = {\n renderVersion: this.props.renderVersion,\n item: this.props.item,\n index: this.props.index,\n };\n private unsubscribe: (() => void) | undefined;\n\n static getDerivedStateFromProps(\n props: RowConditionalProps,\n state: RowConditionalState,\n ): Partial<RowConditionalState> | null {\n if (props.renderVersion === state.renderVersion) return null;\n return {\n renderVersion: props.renderVersion,\n item: props.item,\n index: props.index,\n };\n }\n\n private refresh: RowConditionalRefresh = (item, index, afterCommit) => {\n this.setState({ item, index }, afterCommit);\n };\n\n private subscribe(): void {\n this.unsubscribe = this.props.owner.subscribe(this.props.rowKey, this.props.id, this.refresh);\n }\n\n componentDidMount(): void {\n this.subscribe();\n }\n\n componentDidUpdate(previous: RowConditionalProps): void {\n if (\n previous.owner === this.props.owner &&\n previous.rowKey === this.props.rowKey &&\n previous.id === this.props.id\n ) {\n return;\n }\n this.unsubscribe?.();\n this.subscribe();\n }\n\n componentWillUnmount(): void {\n this.unsubscribe?.();\n }\n\n render(): React.ReactNode {\n return this.props.render(this.state.item, this.state.index);\n }\n }\n\n return {\n Component: FarmKeyedRowConditional,\n readValues: readKeyedRowConditionalValues,\n changed: keyedRowConditionalChanged,\n };\n}\n\nfunction createKeyedRowHostRuntime(): KeyedRowHostRuntime {\n const owner: Pick<ConditionalBlockOwner, \"subscribe\"> = {\n subscribe: () => () => {},\n };\n return {\n mount: (element, descriptor, requestFallback) =>\n mountCompilerHostTree(owner, element, descriptor, requestFallback),\n };\n}\n\nfunction createKeyedRowsBlockComponent(\n owner: Pick<ConditionalBlockOwner, \"subscribe\">,\n options: KeyedRowsRuntimeOptions = {},\n): React.ComponentType<CompilerKeyedRowsBlockProps> {\n interface State {\n fallback: boolean;\n }\n\n class FarmKeyedRowsBlock extends React.Component<CompilerKeyedRowsBlockProps, State> {\n static displayName = \"FarmCompiledKeyedRows\";\n\n state: State = { fallback: false };\n private root: Element | null = null;\n private mounted = false;\n private fallbackRequested = false;\n private fallbackVersion = 0;\n private fallbackKeysWereUnsafe = false;\n private propSyncQueued = false;\n private currentProps = this.props;\n private unsubscribe: (() => void) | undefined;\n private instances = new Map<string, CompilerKeyedRowInstance>();\n private identityTargets = new Map<number, CompilerKeyedIdentityTargetSnapshot>();\n private membershipTargets = new Map<number, CompilerKeyedMembershipTargetSnapshot>();\n private mapLookupTargets = new Map<number, CompilerKeyedMapLookupTargetSnapshot>();\n private collectionToken: object | undefined;\n private renderVersion = 0;\n private readonly eventHandlers = new Map<\n string,\n Map<number, React.EventHandler<React.SyntheticEvent>>\n >();\n private readonly conditionalListeners = new Map<string, Map<number, RowConditionalRefresh>>();\n private instancesByElement = new WeakMap<Element, CompilerKeyedRowInstance>();\n private readonly conditionalOwner: RowConditionalOwner = {\n subscribe: (key, id, refresh) => this.subscribeToRowConditional(key, id, refresh),\n };\n\n private captureRoot = (root: Element | null) => {\n this.root = root;\n };\n\n private requestHostScopeFallback = () => {\n this.activateFallback();\n };\n\n private readRows(\n props: CompilerKeyedRowsBlockProps,\n ): { items: unknown[]; keys: string[] } | null {\n const items = materializeIterable(props.items());\n const keys = items.map((item, index) => keyedRowIdentity(props.rowKey(item, index)));\n if (new Set(keys).size !== keys.length) return null;\n return { items, keys };\n }\n\n private rowEvent = (\n item: unknown,\n index: number,\n eventId: number,\n ): React.EventHandler<React.SyntheticEvent> => {\n if (this.state.fallback) {\n return (event) => this.currentProps.events?.[eventId]?.invoke(item, index, event);\n }\n if (this.usesDelegatedEvents()) {\n return undefined as unknown as React.EventHandler<React.SyntheticEvent>;\n }\n const key = keyedRowIdentity(this.currentProps.rowKey(item, index));\n let handlers = this.eventHandlers.get(key);\n if (!handlers) {\n handlers = new Map();\n this.eventHandlers.set(key, handlers);\n }\n const existing = handlers.get(eventId);\n if (existing) return existing;\n const handler: React.EventHandler<React.SyntheticEvent> = (event) => {\n const instance = this.instances.get(key);\n const descriptor = this.currentProps.events?.[eventId];\n if (!instance || !descriptor) return;\n return descriptor.invoke(instance.item, instance.index, event);\n };\n handlers.set(eventId, handler);\n return handler;\n };\n\n private usesDelegatedEvents(props: CompilerKeyedRowsBlockProps = this.currentProps): boolean {\n return Boolean(\n props.delegateEvents &&\n props.events?.length &&\n props.events.every((event) => event.path !== undefined),\n );\n }\n\n private rebuildElementIndex(instances: ReadonlyMap<string, CompilerKeyedRowInstance>): void {\n this.instancesByElement = new WeakMap();\n for (const instance of instances.values()) {\n this.instancesByElement.set(instance.element, instance);\n }\n }\n\n private eventRowInstance(event: React.SyntheticEvent): CompilerKeyedRowInstance | undefined {\n if (!this.root) return undefined;\n const target = event.target as Node | null;\n if (!target) return undefined;\n let element =\n target.nodeType === 1 ? (target as Element) : (target.parentElement as Element | null);\n while (element && element.parentElement !== this.root) element = element.parentElement;\n return element?.parentElement === this.root\n ? this.instancesByElement.get(element)\n : undefined;\n }\n\n private invokeDelegatedEvent(\n descriptor: CompilerKeyedRowEvent,\n instance: CompilerKeyedRowInstance,\n event: React.SyntheticEvent,\n currentTarget: Element,\n ): void {\n const ownCurrentTarget = Object.getOwnPropertyDescriptor(event, \"currentTarget\");\n try {\n Object.defineProperty(event, \"currentTarget\", {\n configurable: true,\n value: currentTarget,\n });\n descriptor.invoke(instance.item, instance.index, event);\n } finally {\n if (ownCurrentTarget) Object.defineProperty(event, \"currentTarget\", ownCurrentTarget);\n else Reflect.deleteProperty(event, \"currentTarget\");\n }\n }\n\n private dispatchDelegatedEvent = (name: string, event: React.SyntheticEvent): void => {\n const instance = this.eventRowInstance(event);\n const eventTarget = event.target as Node | null;\n if (!instance || !eventTarget) return;\n const capture = name.endsWith(\"Capture\");\n const matches = (this.currentProps.events || [])\n .filter((descriptor) => descriptor.name === name && descriptor.path !== undefined)\n .map((descriptor) => ({\n descriptor,\n target: findCompilerHostTarget(instance.element, descriptor.path || []),\n }))\n .filter((match): match is { descriptor: CompilerKeyedRowEvent; target: Element } =>\n Boolean(\n match.target && (match.target === eventTarget || match.target.contains(eventTarget)),\n ),\n )\n .sort((left, right) =>\n capture\n ? (left.descriptor.path?.length || 0) - (right.descriptor.path?.length || 0)\n : (right.descriptor.path?.length || 0) - (left.descriptor.path?.length || 0),\n );\n\n for (const match of matches) {\n this.invokeDelegatedEvent(match.descriptor, instance, event, match.target);\n if (event.isPropagationStopped()) break;\n }\n };\n\n private delegatedContainerProps(container: React.ReactElement): Record<string, unknown> {\n if (this.state.fallback || !this.usesDelegatedEvents()) return {};\n const props = container.props as Record<string, unknown>;\n return Object.fromEntries(\n [...new Set((this.currentProps.events || []).map((event) => event.name))].map((name) => {\n const existing = props[name] as React.EventHandler<React.SyntheticEvent> | undefined;\n const capture = name.endsWith(\"Capture\");\n const handler: React.EventHandler<React.SyntheticEvent> = (event) => {\n if (capture) existing?.(event);\n if (!event.isPropagationStopped()) this.dispatchDelegatedEvent(name, event);\n if (!capture && !event.isPropagationStopped()) existing?.(event);\n };\n return [name, handler];\n }),\n );\n }\n\n private rowConditional = (\n item: unknown,\n index: number,\n conditionalId: number,\n render: (item: unknown, index: number) => React.ReactNode,\n ): React.ReactNode => {\n if (this.state.fallback) return render(item, index);\n const key = keyedRowIdentity(this.currentProps.rowKey(item, index));\n const Conditional = options.conditionals?.Component;\n if (!Conditional) return render(item, index);\n return React.createElement(Conditional, {\n key: `${key}:${conditionalId}`,\n owner: this.conditionalOwner,\n rowKey: key,\n id: conditionalId,\n renderVersion: this.renderVersion,\n item,\n index,\n render,\n });\n };\n\n private subscribeToRowConditional(\n key: string,\n id: number,\n refresh: RowConditionalRefresh,\n ): () => void {\n let listeners = this.conditionalListeners.get(key);\n if (!listeners) {\n listeners = new Map();\n this.conditionalListeners.set(key, listeners);\n }\n listeners.set(id, refresh);\n return () => {\n const current = this.conditionalListeners.get(key);\n if (current?.get(id) !== refresh) return;\n current.delete(id);\n if (current.size === 0) this.conditionalListeners.delete(key);\n };\n }\n\n private hasReactOwnedRows(props: CompilerKeyedRowsBlockProps = this.currentProps): boolean {\n return Boolean(\n props.conditionals?.length || (props.events?.length && !this.usesDelegatedEvents(props)),\n );\n }\n\n private cleanupHostScopes(\n instances: ReadonlyMap<string, CompilerKeyedRowInstance> = this.instances,\n ): void {\n for (const instance of instances.values()) instance.scope?.cleanup();\n }\n\n private mountRowHostScope(\n element: Element,\n descriptor: CompilerHostElement,\n props: CompilerKeyedRowsBlockProps = this.currentProps,\n ): CompilerHostTreeScope | null | undefined {\n if (!props.hostBlocks) return undefined;\n return options.hostBlocks?.mount(element, descriptor, this.requestHostScopeFallback) || null;\n }\n\n private readConditionalValues(\n props: CompilerKeyedRowsBlockProps,\n item: unknown,\n index: number,\n ): ReadonlyMap<number, readonly unknown[]> {\n return (\n options.conditionals?.readValues(props, item, index) || EMPTY_KEYED_ROW_CONDITIONAL_VALUES\n );\n }\n\n private pruneEventHandlers(keys: readonly string[]): void {\n const active = new Set(keys);\n for (const key of this.eventHandlers.keys()) {\n if (!active.has(key)) this.eventHandlers.delete(key);\n }\n }\n\n private pruneConditionalListeners(keys: readonly string[]): void {\n const active = new Set(keys);\n for (const key of this.conditionalListeners.keys()) {\n if (!active.has(key)) this.conditionalListeners.delete(key);\n }\n }\n\n private commitCurrentCollection(dirtyState?: ReadonlySet<number>): void {\n this.collectionToken = options.keyedUpdates?.commit(this.currentProps.items());\n this.commitKeyedTargets(dirtyState);\n }\n\n private hasSafeMembershipTargets(dirtyState?: ReadonlySet<number>): boolean {\n for (const binding of this.currentProps.bindings) {\n const target = binding.membershipTarget;\n if (!target || (dirtyState && !dirtyState.has(target.dependency))) continue;\n if (!keyedMembershipTargetSnapshot(target.read()).eligible) return false;\n }\n return true;\n }\n\n private hasSafeMapLookupTargets(dirtyState?: ReadonlySet<number>): boolean {\n for (const binding of this.currentProps.bindings) {\n const target = binding.mapLookupTarget;\n if (!target || (dirtyState && !dirtyState.has(target.dependency))) continue;\n if (!keyedMapLookupTargetSnapshot(target.read()).eligible) return false;\n }\n return true;\n }\n\n private commitKeyedTargets(dirtyState?: ReadonlySet<number>): void {\n if (!dirtyState) {\n this.identityTargets.clear();\n this.membershipTargets.clear();\n this.mapLookupTargets.clear();\n }\n for (\n let bindingIndex = 0;\n bindingIndex < this.currentProps.bindings.length;\n bindingIndex += 1\n ) {\n const binding = this.currentProps.bindings[bindingIndex];\n const identityTarget = binding.identityTarget;\n if (!identityTarget) {\n this.identityTargets.delete(bindingIndex);\n } else if (!dirtyState || dirtyState.has(identityTarget.dependency)) {\n this.identityTargets.set(\n bindingIndex,\n keyedIdentityTargetSnapshot(identityTarget.read()),\n );\n }\n\n const membershipTarget = binding.membershipTarget;\n if (!membershipTarget) {\n this.membershipTargets.delete(bindingIndex);\n } else if (!dirtyState || dirtyState.has(membershipTarget.dependency)) {\n this.membershipTargets.set(\n bindingIndex,\n keyedMembershipTargetSnapshot(membershipTarget.read()),\n );\n }\n\n const mapLookupTarget = binding.mapLookupTarget;\n if (!mapLookupTarget) {\n this.mapLookupTargets.delete(bindingIndex);\n } else if (!dirtyState || dirtyState.has(mapLookupTarget.dependency)) {\n this.mapLookupTargets.set(\n bindingIndex,\n keyedMapLookupTargetSnapshot(mapLookupTarget.read()),\n );\n }\n }\n }\n\n private adopt(): boolean {\n if (!this.root) return false;\n if (!this.hasSafeMembershipTargets() || !this.hasSafeMapLookupTargets()) return false;\n const rows = this.readRows(this.currentProps);\n const elements = [...this.root.children];\n if (!rows || rows.items.length !== elements.length) return false;\n const opaqueConditionalPaths = new Set(\n (this.currentProps.conditionals || []).map((conditional) => conditional.path.join(\".\")),\n );\n const instances = new Map<string, CompilerKeyedRowInstance>();\n for (let index = 0; index < rows.items.length; index += 1) {\n const descriptor = this.currentProps.create(rows.items[index], index);\n if (\n this.hasReactOwnedRows() &&\n !matchesCompilerHostElement(elements[index], descriptor, opaqueConditionalPaths)\n ) {\n this.cleanupHostScopes(instances);\n return false;\n }\n const scope = this.mountRowHostScope(elements[index], descriptor);\n if (this.currentProps.hostBlocks && !scope) {\n this.cleanupHostScopes(instances);\n return false;\n }\n const instance: CompilerKeyedRowInstance = {\n key: rows.keys[index],\n element: elements[index],\n scope: scope || undefined,\n values: this.hasReactOwnedRows()\n ? this.currentProps.bindings.map(() => UNSET_KEYED_ROW_BINDING)\n : readKeyedRowBindingValues(this.currentProps, rows.items[index], index),\n item: rows.items[index],\n index,\n conditionalValues: this.readConditionalValues(\n this.currentProps,\n rows.items[index],\n index,\n ),\n };\n if (this.hasReactOwnedRows()) {\n // React compares the next row against its previous virtual props, not\n // against DOM values patched by Farm between commits. Reapply every\n // binding after a structural React commit so both views converge\n // before direct same-key patches resume.\n applyKeyedRowBindings(this.currentProps, instance, rows.items[index], index);\n }\n instances.set(rows.keys[index], instance);\n }\n this.cleanupHostScopes();\n this.instances = instances;\n this.rebuildElementIndex(instances);\n this.pruneEventHandlers(rows.keys);\n this.pruneConditionalListeners(rows.keys);\n this.commitCurrentCollection();\n return true;\n }\n\n private hasUnsafeFallbackKeys(): boolean {\n try {\n return this.readRows(this.currentProps) === null;\n } catch {\n return true;\n }\n }\n\n private activateFallback(afterCommit?: () => void): void {\n if (!this.mounted || this.state.fallback || this.fallbackRequested) {\n afterCommit?.();\n return;\n }\n this.fallbackRequested = true;\n this.fallbackKeysWereUnsafe = this.hasUnsafeFallbackKeys();\n // One key change on entry: the compiled path mutated the DOM behind\n // React's back, so the first fallback render must rebuild the subtree.\n this.cleanupHostScopes();\n this.fallbackVersion += 1;\n this.setState({ fallback: true }, afterCommit);\n }\n\n private synchronizeReactOwnedRows(afterCommit?: () => void): void {\n this.forceUpdate(() => {\n if (!this.mounted) {\n afterCommit?.();\n return;\n }\n if (!this.adopt()) {\n this.activateFallback(afterCommit);\n return;\n }\n afterCommit?.();\n });\n }\n\n private notifyConditionalChanges(\n changes: readonly {\n key: string;\n id: number;\n item: unknown;\n index: number;\n }[],\n afterCommit?: () => void,\n ): void {\n if (changes.length === 0) {\n afterCommit?.();\n return;\n }\n let pending = changes.length;\n const committed = () => {\n pending -= 1;\n if (pending === 0) afterCommit?.();\n };\n // The normal row bindings above are patched synchronously. Flush the\n // React-owned conditional boundaries in the same turn as well so React\n // 18 cannot expose a transient row where text and branch disagree.\n flushSync(() => {\n for (const change of changes) {\n const refresh = this.conditionalListeners.get(change.key)?.get(change.id);\n if (refresh) refresh(change.item, change.index, committed);\n else committed();\n }\n });\n }\n\n private refreshDirtyBindings(\n dirtyState: ReadonlySet<number>,\n afterCommit?: () => void,\n ): boolean {\n if (\n !this.mounted ||\n !this.root ||\n this.state.fallback ||\n this.hasReactOwnedRows() ||\n this.currentProps.hostBlocks ||\n !this.currentProps.structureDependencies ||\n this.currentProps.structureDependencies.some((dependency) => dirtyState.has(dependency)) ||\n this.currentProps.bindings.some((binding) => binding.dependencies === undefined)\n ) {\n return false;\n }\n\n const affectedBindingIndices: number[] = [];\n for (\n let bindingIndex = 0;\n bindingIndex < this.currentProps.bindings.length;\n bindingIndex += 1\n ) {\n const dependencies = this.currentProps.bindings[bindingIndex].dependencies || [];\n if (dependencies.some((dependency) => dirtyState.has(dependency))) {\n affectedBindingIndices.push(bindingIndex);\n }\n }\n\n const nextIdentityTargets = new Map<number, CompilerKeyedIdentityTargetSnapshot>();\n const nextMembershipTargets = new Map<number, CompilerKeyedMembershipTargetSnapshot>();\n const nextMapLookupTargets = new Map<number, CompilerKeyedMapLookupTargetSnapshot>();\n for (const bindingIndex of affectedBindingIndices) {\n const binding = this.currentProps.bindings[bindingIndex];\n if (binding.identityTarget) {\n nextIdentityTargets.set(\n bindingIndex,\n keyedIdentityTargetSnapshot(binding.identityTarget.read()),\n );\n }\n if (binding.membershipTarget) {\n const snapshot = keyedMembershipTargetSnapshot(\n binding.membershipTarget.read(),\n this.membershipTargets.get(bindingIndex),\n );\n if (!snapshot.eligible) {\n this.activateFallback(afterCommit);\n return true;\n }\n nextMembershipTargets.set(bindingIndex, snapshot);\n }\n if (binding.mapLookupTarget) {\n const snapshot = keyedMapLookupTargetSnapshot(\n binding.mapLookupTarget.read(),\n this.mapLookupTargets.get(bindingIndex),\n );\n if (!snapshot.eligible) {\n this.activateFallback(afterCommit);\n return true;\n }\n nextMapLookupTargets.set(bindingIndex, snapshot);\n }\n }\n\n for (const bindingIndex of affectedBindingIndices) {\n const binding = this.currentProps.bindings[bindingIndex];\n const identityTarget = binding.identityTarget;\n const previousIdentityTarget = this.identityTargets.get(bindingIndex);\n const nextIdentityTarget = nextIdentityTargets.get(bindingIndex);\n const canTargetIdentity = Boolean(\n identityTarget &&\n binding.dependencies?.length === 1 &&\n binding.dependencies[0] === identityTarget.dependency &&\n dirtyState.has(identityTarget.dependency) &&\n previousIdentityTarget?.eligible &&\n nextIdentityTarget?.eligible,\n );\n const membershipTarget = binding.membershipTarget;\n const previousMembershipTarget = this.membershipTargets.get(bindingIndex);\n const nextMembershipTarget = nextMembershipTargets.get(bindingIndex);\n const canTargetMembership = Boolean(\n membershipTarget &&\n binding.dependencies?.length === 1 &&\n binding.dependencies[0] === membershipTarget.dependency &&\n dirtyState.has(membershipTarget.dependency) &&\n previousMembershipTarget?.eligible &&\n nextMembershipTarget?.eligible,\n );\n const mapLookupTarget = binding.mapLookupTarget;\n const previousMapLookupTarget = this.mapLookupTargets.get(bindingIndex);\n const nextMapLookupTarget = nextMapLookupTargets.get(bindingIndex);\n const canTargetMapLookup = Boolean(\n mapLookupTarget &&\n binding.dependencies?.length === 1 &&\n binding.dependencies[0] === mapLookupTarget.dependency &&\n dirtyState.has(mapLookupTarget.dependency) &&\n previousMapLookupTarget?.eligible &&\n nextMapLookupTarget?.eligible,\n );\n\n if (canTargetMapLookup && previousMapLookupTarget && nextMapLookupTarget) {\n const keys = keyedMapLookupChangedKeys(previousMapLookupTarget, nextMapLookupTarget);\n for (const key of keys) {\n const instance = this.instances.get(key);\n if (instance) {\n applyKeyedRowBinding(\n this.currentProps,\n instance,\n instance.item,\n instance.index,\n bindingIndex,\n );\n }\n }\n } else if (canTargetMembership && previousMembershipTarget && nextMembershipTarget) {\n const keys = keyedMembershipChangedKeys(previousMembershipTarget, nextMembershipTarget);\n for (const key of keys) {\n const instance = this.instances.get(key);\n if (instance) {\n applyKeyedRowBinding(\n this.currentProps,\n instance,\n instance.item,\n instance.index,\n bindingIndex,\n );\n }\n }\n } else if (canTargetIdentity && previousIdentityTarget && nextIdentityTarget) {\n const keys = new Set<string>();\n if (previousIdentityTarget.key !== undefined) keys.add(previousIdentityTarget.key);\n if (nextIdentityTarget.key !== undefined) keys.add(nextIdentityTarget.key);\n for (const key of keys) {\n const instance = this.instances.get(key);\n if (instance) {\n applyKeyedRowBinding(\n this.currentProps,\n instance,\n instance.item,\n instance.index,\n bindingIndex,\n );\n }\n }\n } else {\n for (const instance of this.instances.values()) {\n applyKeyedRowBinding(\n this.currentProps,\n instance,\n instance.item,\n instance.index,\n bindingIndex,\n );\n }\n }\n\n if (nextIdentityTarget) this.identityTargets.set(bindingIndex, nextIdentityTarget);\n else this.identityTargets.delete(bindingIndex);\n if (nextMembershipTarget) {\n this.membershipTargets.set(bindingIndex, nextMembershipTarget);\n } else {\n this.membershipTargets.delete(bindingIndex);\n }\n if (nextMapLookupTarget) {\n this.mapLookupTargets.set(bindingIndex, nextMapLookupTarget);\n } else {\n this.mapLookupTargets.delete(bindingIndex);\n }\n }\n afterCommit?.();\n return true;\n }\n\n private reconcileStableRows(\n rows: { items: unknown[]; keys: string[] },\n afterCommit?: () => void,\n dirtyState?: ReadonlySet<number>,\n ): boolean {\n if (rows.keys.length !== this.instances.size) return false;\n let index = 0;\n for (const key of this.instances.keys()) {\n if (rows.keys[index] !== key) return false;\n index += 1;\n }\n\n const conditionalChanges: Array<{\n key: string;\n id: number;\n item: unknown;\n index: number;\n }> = [];\n for (index = 0; index < rows.items.length; index += 1) {\n const key = rows.keys[index];\n const existing = this.instances.get(key);\n if (!existing) return false;\n if (this.currentProps.hostBlocks) {\n const descriptor = this.currentProps.create(rows.items[index], index);\n if (!existing.scope?.update(descriptor)) {\n this.activateFallback(afterCommit);\n return true;\n }\n }\n applyKeyedRowBindings(this.currentProps, existing, rows.items[index], index);\n const conditionalValues = this.readConditionalValues(\n this.currentProps,\n rows.items[index],\n index,\n );\n for (const [id, values] of conditionalValues) {\n if (options.conditionals?.changed(existing.conditionalValues.get(id), values)) {\n conditionalChanges.push({\n key,\n id,\n item: rows.items[index],\n index,\n });\n }\n }\n existing.conditionalValues = conditionalValues;\n existing.item = rows.items[index];\n existing.index = index;\n }\n this.commitCurrentCollection(dirtyState);\n this.notifyConditionalChanges(conditionalChanges, afterCommit);\n return true;\n }\n\n private reconcileSingleRemoval(\n rows: { items: unknown[]; keys: string[] },\n afterCommit?: () => void,\n dirtyState?: ReadonlySet<number>,\n ): boolean {\n if (this.hasReactOwnedRows() || rows.keys.length + 1 !== this.instances.size) return false;\n const previousKeys = [...this.instances.keys()];\n let removedIndex = 0;\n while (\n removedIndex < rows.keys.length &&\n previousKeys[removedIndex] === rows.keys[removedIndex]\n ) {\n removedIndex += 1;\n }\n for (let index = removedIndex; index < rows.keys.length; index += 1) {\n if (previousKeys[index + 1] !== rows.keys[index]) return false;\n }\n\n const removedKey = previousKeys[removedIndex];\n const removed = this.instances.get(removedKey);\n if (!removed) return false;\n const conditionalChanges: Array<{\n key: string;\n id: number;\n item: unknown;\n index: number;\n }> = [];\n for (let index = 0; index < rows.items.length; index += 1) {\n const key = rows.keys[index];\n const existing = this.instances.get(key);\n if (!existing) return false;\n if (this.currentProps.hostBlocks) {\n const descriptor = this.currentProps.create(rows.items[index], index);\n if (!existing.scope?.update(descriptor)) {\n this.activateFallback(afterCommit);\n return true;\n }\n }\n applyKeyedRowBindings(this.currentProps, existing, rows.items[index], index);\n const conditionalValues = this.readConditionalValues(\n this.currentProps,\n rows.items[index],\n index,\n );\n for (const [id, values] of conditionalValues) {\n if (options.conditionals?.changed(existing.conditionalValues.get(id), values)) {\n conditionalChanges.push({\n key,\n id,\n item: rows.items[index],\n index,\n });\n }\n }\n existing.conditionalValues = conditionalValues;\n existing.item = rows.items[index];\n existing.index = index;\n }\n\n removed.scope?.cleanup();\n removed.element.remove();\n this.instances.delete(removedKey);\n this.eventHandlers.delete(removedKey);\n this.conditionalListeners.delete(removedKey);\n this.commitCurrentCollection(dirtyState);\n this.notifyConditionalChanges(conditionalChanges, afterCommit);\n return true;\n }\n\n private reconcile(afterCommit?: () => void, dirtyState?: ReadonlySet<number>): void {\n if (!this.mounted || !this.root) {\n afterCommit?.();\n return;\n }\n if (this.state.fallback) {\n // React owns the container while in fallback; keep the key stable so\n // updates reconcile in place instead of remounting the subtree (which\n // would wipe uncontrolled inputs, focus, and scroll). The exception\n // is duplicate runtime keys: React's reconciliation of a keyed list\n // with duplicates is unreliable, so any render touched by them (this\n // one, or the previously committed one) still remounts.\n const unsafeKeys = this.hasUnsafeFallbackKeys();\n if (unsafeKeys || this.fallbackKeysWereUnsafe) {\n this.fallbackVersion += 1;\n }\n this.fallbackKeysWereUnsafe = unsafeKeys;\n this.forceUpdate(afterCommit);\n return;\n }\n\n if (!this.hasSafeMembershipTargets(dirtyState)) {\n this.activateFallback(afterCommit);\n return;\n }\n\n if (!this.hasSafeMapLookupTargets(dirtyState)) {\n this.activateFallback(afterCommit);\n return;\n }\n\n const rows = this.readRows(this.currentProps);\n if (!rows) {\n this.activateFallback(afterCommit);\n return;\n }\n\n if (this.hasReactOwnedRows()) {\n const previousKeys = [...this.instances.keys()];\n if (\n rows.keys.length !== previousKeys.length ||\n rows.keys.some((key, index) => key !== previousKeys[index])\n ) {\n this.synchronizeReactOwnedRows(afterCommit);\n return;\n }\n }\n\n if (rows.items.length === 0) {\n this.cleanupHostScopes();\n this.root.replaceChildren();\n this.instances = new Map();\n this.instancesByElement = new WeakMap();\n this.eventHandlers.clear();\n this.conditionalListeners.clear();\n this.commitCurrentCollection(dirtyState);\n afterCommit?.();\n return;\n }\n\n if (this.reconcileStableRows(rows, afterCommit, dirtyState)) return;\n if (this.reconcileSingleRemoval(rows, afterCommit, dirtyState)) return;\n\n const nextKeys = new Set(rows.keys);\n const hasSurvivingRows = rows.keys.some((key) => this.instances.has(key));\n const oldIndices = new Map<string, number>();\n if (hasSurvivingRows) {\n [...this.instances].forEach(([key], index) => oldIndices.set(key, index));\n }\n for (const [key, instance] of this.instances) {\n if (!nextKeys.has(key)) {\n instance.scope?.cleanup();\n if (hasSurvivingRows) instance.element.remove();\n }\n }\n\n const sequence = hasSurvivingRows\n ? rows.keys.map((key) => oldIndices.get(key) ?? -1)\n : rows.keys.map(() => -1);\n const nextInstances: CompilerKeyedRowInstance[] = [];\n const conditionalChanges: Array<{\n key: string;\n id: number;\n item: unknown;\n index: number;\n }> = [];\n for (let index = 0; index < rows.items.length; index += 1) {\n const key = rows.keys[index];\n const existing = this.instances.get(key);\n if (existing) {\n if (this.currentProps.hostBlocks) {\n const descriptor = this.currentProps.create(rows.items[index], index);\n if (!existing.scope?.update(descriptor)) {\n this.activateFallback(afterCommit);\n return;\n }\n }\n applyKeyedRowBindings(this.currentProps, existing, rows.items[index], index);\n const conditionalValues = this.readConditionalValues(\n this.currentProps,\n rows.items[index],\n index,\n );\n for (const [id, values] of conditionalValues) {\n if (options.conditionals?.changed(existing.conditionalValues.get(id), values)) {\n conditionalChanges.push({\n key,\n id,\n item: rows.items[index],\n index,\n });\n }\n }\n existing.conditionalValues = conditionalValues;\n existing.item = rows.items[index];\n existing.index = index;\n nextInstances.push(existing);\n continue;\n }\n const descriptor = this.currentProps.create(rows.items[index], index);\n const element = createCompilerHostElement(this.root.ownerDocument, descriptor);\n const scope = this.mountRowHostScope(element, descriptor);\n if (this.currentProps.hostBlocks && !scope) {\n for (const instance of nextInstances) {\n if (!this.instances.has(instance.key)) instance.scope?.cleanup();\n }\n this.activateFallback(afterCommit);\n return;\n }\n nextInstances.push({\n key,\n element,\n scope: scope || undefined,\n values: readKeyedRowBindingValues(this.currentProps, rows.items[index], index),\n item: rows.items[index],\n index,\n conditionalValues: this.readConditionalValues(\n this.currentProps,\n rows.items[index],\n index,\n ),\n });\n }\n\n if (!hasSurvivingRows) {\n const fragment = this.root.ownerDocument.createDocumentFragment();\n for (const instance of nextInstances) fragment.append(instance.element);\n this.root.replaceChildren(fragment);\n } else {\n reorderCompilerKeyedRows(this.root, nextInstances, sequence, null);\n }\n this.instances = new Map(nextInstances.map((instance) => [instance.key, instance]));\n this.rebuildElementIndex(this.instances);\n this.pruneEventHandlers(rows.keys);\n this.pruneConditionalListeners(rows.keys);\n this.commitCurrentCollection(dirtyState);\n this.notifyConditionalChanges(conditionalChanges, afterCommit);\n }\n\n private refresh: CompilerBlockRefresh = (afterCommit, dirtyState) => {\n if (dirtyState && options.keyedUpdates && this.mounted && this.root && !this.state.fallback) {\n const result = options.keyedUpdates.reconcile(\n this.currentProps,\n dirtyState,\n this.collectionToken,\n this.instances,\n options.conditionals,\n );\n if (result) {\n if (result.fallback) this.activateFallback(afterCommit);\n else {\n this.collectionToken = result.collectionToken;\n this.notifyConditionalChanges(result.conditionalChanges, afterCommit);\n }\n return;\n }\n const appendedInstances = options.keyedUpdates.append(\n this.currentProps,\n dirtyState,\n this.collectionToken,\n this.instances,\n this.root,\n this.hasReactOwnedRows(),\n );\n if (appendedInstances) {\n this.instances = new Map(appendedInstances);\n this.rebuildElementIndex(this.instances);\n this.commitCurrentCollection(dirtyState);\n afterCommit?.();\n return;\n }\n const positionedInstances = options.keyedUpdates.position?.(\n this.currentProps,\n dirtyState,\n this.collectionToken,\n this.instances,\n this.root,\n this.hasReactOwnedRows(),\n );\n if (positionedInstances) {\n this.instances = new Map(positionedInstances);\n this.rebuildElementIndex(this.instances);\n const keys = [...this.instances.keys()];\n this.pruneEventHandlers(keys);\n this.pruneConditionalListeners(keys);\n this.commitCurrentCollection(dirtyState);\n afterCommit?.();\n return;\n }\n const reorderedInstances = options.keyedUpdates.reorder?.(\n this.currentProps,\n dirtyState,\n this.collectionToken,\n this.instances,\n this.root,\n this.hasReactOwnedRows(),\n );\n if (reorderedInstances) {\n this.instances = new Map(reorderedInstances);\n this.rebuildElementIndex(this.instances);\n this.commitCurrentCollection(dirtyState);\n afterCommit?.();\n return;\n }\n const rollingWindowInstances = options.keyedUpdates.rollingWindow?.(\n this.currentProps,\n dirtyState,\n this.collectionToken,\n this.instances,\n this.root,\n this.hasReactOwnedRows(),\n );\n if (rollingWindowInstances) {\n this.instances = new Map(rollingWindowInstances);\n this.rebuildElementIndex(this.instances);\n const keys = [...this.instances.keys()];\n this.pruneEventHandlers(keys);\n this.pruneConditionalListeners(keys);\n this.commitCurrentCollection(dirtyState);\n afterCommit?.();\n return;\n }\n const filteredInstances = options.keyedUpdates.filter?.(\n this.currentProps,\n dirtyState,\n this.collectionToken,\n this.instances,\n this.hasReactOwnedRows(),\n );\n if (filteredInstances) {\n this.instances = new Map(filteredInstances);\n this.rebuildElementIndex(this.instances);\n const keys = [...this.instances.keys()];\n this.pruneEventHandlers(keys);\n this.pruneConditionalListeners(keys);\n this.commitCurrentCollection(dirtyState);\n afterCommit?.();\n return;\n }\n const prependedInstances = options.keyedUpdates.prepend?.(\n this.currentProps,\n dirtyState,\n this.collectionToken,\n this.instances,\n this.root,\n this.hasReactOwnedRows(),\n );\n if (prependedInstances) {\n this.instances = new Map(prependedInstances);\n this.rebuildElementIndex(this.instances);\n this.commitCurrentCollection(dirtyState);\n afterCommit?.();\n return;\n }\n }\n if (dirtyState && this.refreshDirtyBindings(dirtyState, afterCommit)) return;\n this.reconcile(afterCommit, dirtyState);\n };\n\n private schedulePropSync(): void {\n if (this.propSyncQueued) return;\n this.propSyncQueued = true;\n queueMicrotask(() => {\n this.propSyncQueued = false;\n if (this.mounted && !this.state.fallback) this.reconcile();\n });\n }\n\n shouldComponentUpdate(nextProps: CompilerKeyedRowsBlockProps, nextState: State): boolean {\n const wasReactOwned = this.hasReactOwnedRows(this.currentProps);\n const willBeReactOwned = this.hasReactOwnedRows(nextProps);\n this.currentProps = nextProps;\n if (nextState.fallback || this.state.fallback) return true;\n if (wasReactOwned || willBeReactOwned) {\n // Parent prop updates and Fast Refresh definitions must pass through\n // React so event locations, static row markup, and proxy identities\n // cannot remain tied to an older render definition.\n this.eventHandlers.clear();\n return true;\n }\n this.schedulePropSync();\n return false;\n }\n\n componentDidUpdate(previousProps: CompilerKeyedRowsBlockProps): void {\n if (\n this.state.fallback ||\n previousProps === this.props ||\n (!this.hasReactOwnedRows(previousProps) && !this.hasReactOwnedRows(this.props)) ||\n this.adopt()\n ) {\n return;\n }\n this.activateFallback();\n }\n\n componentDidMount(): void {\n this.mounted = true;\n this.unsubscribe = owner.subscribe(this.props.id, this.refresh);\n if (!this.adopt()) this.activateFallback();\n }\n\n componentWillUnmount(): void {\n this.mounted = false;\n this.unsubscribe?.();\n this.root = null;\n this.cleanupHostScopes();\n this.instances.clear();\n this.identityTargets.clear();\n this.membershipTargets.clear();\n this.mapLookupTargets.clear();\n this.instancesByElement = new WeakMap();\n this.eventHandlers.clear();\n this.conditionalListeners.clear();\n }\n\n render(): React.ReactNode {\n this.renderVersion += 1;\n const container = this.currentProps.render(this.rowEvent, this.rowConditional);\n if (!React.isValidElement(container) || typeof container.type !== \"string\") {\n throw new TypeError(\n `Compiled keyed rows ${this.currentProps.id} must own one host container.`,\n );\n }\n return React.cloneElement(container, {\n ...this.delegatedContainerProps(container),\n key: this.state.fallback ? `react-${this.fallbackVersion}` : \"compiled\",\n ref: this.captureRoot,\n } as React.Attributes);\n }\n }\n\n return FarmKeyedRowsBlock;\n}\n\nfunction createKeyedRangesBlockComponent(\n owner: Pick<ConditionalBlockOwner, \"subscribe\">,\n): React.ComponentType<CompilerKeyedRangesBlockProps> {\n interface State {\n fallback: boolean;\n }\n\n interface ReadRange {\n items: unknown[];\n keys: string[];\n }\n\n class FarmKeyedRangesBlock extends React.Component<CompilerKeyedRangesBlockProps, State> {\n static displayName = \"FarmCompiledKeyedRanges\";\n\n state: State = { fallback: false };\n private root: Element | null = null;\n private mounted = false;\n private fallbackRequested = false;\n private fallbackVersion = 0;\n private propFallbackQueued = false;\n private currentProps = this.props;\n private unsubscribe: (() => void) | undefined;\n private rangeInstances: Array<Map<string, CompilerKeyedRowInstance>> = [];\n private staticSegments: Element[][] = [];\n private readonly staticValues: unknown[] = [];\n\n private captureRoot = (root: Element | null) => {\n this.root = root;\n this.currentProps.rootRef?.(root);\n };\n\n private readRange(range: CompilerKeyedRange): ReadRange | null {\n const items = materializeIterable(range.items());\n const keys = items.map((item, index) => keyedRowIdentity(range.rowKey(item, index)));\n if (new Set(keys).size !== keys.length) return null;\n return { items, keys };\n }\n\n private readRanges(props: CompilerKeyedRangesBlockProps): ReadRange[] | null {\n const ranges: ReadRange[] = [];\n for (const range of props.ranges) {\n const rows = this.readRange(range);\n if (!rows) return null;\n ranges.push(rows);\n }\n return ranges;\n }\n\n private adopt(props: CompilerKeyedRangesBlockProps = this.currentProps): boolean {\n if (!this.root || !Number.isSafeInteger(props.trailing) || props.trailing < 0) return false;\n const rowsByRange = this.readRanges(props);\n if (!rowsByRange) return false;\n const elements = [...this.root.children];\n const staticSegments: Element[][] = [];\n const instancesByRange: Array<Map<string, CompilerKeyedRowInstance>> = [];\n let cursor = 0;\n\n for (let rangeIndex = 0; rangeIndex < props.ranges.length; rangeIndex += 1) {\n const range = props.ranges[rangeIndex];\n const rows = rowsByRange[rangeIndex];\n if (!Number.isSafeInteger(range.before) || range.before < 0) return false;\n const staticEnd = cursor + range.before;\n if (staticEnd > elements.length) return false;\n staticSegments.push(elements.slice(cursor, staticEnd));\n cursor = staticEnd;\n\n const rowEnd = cursor + rows.items.length;\n if (rowEnd > elements.length) return false;\n const instances = new Map<string, CompilerKeyedRowInstance>();\n for (let index = 0; index < rows.items.length; index += 1) {\n const element = elements[cursor + index];\n if (!matchesCompilerHostElement(element, range.create(rows.items[index], index))) {\n return false;\n }\n instances.set(rows.keys[index], {\n key: rows.keys[index],\n element,\n values: readKeyedRowBindingValues(range, rows.items[index], index),\n item: rows.items[index],\n index,\n conditionalValues: new Map(),\n });\n }\n instancesByRange.push(instances);\n cursor = rowEnd;\n }\n\n if (cursor + props.trailing !== elements.length) return false;\n staticSegments.push(elements.slice(cursor));\n this.staticSegments = staticSegments;\n this.rangeInstances = instancesByRange;\n if (!applyStaticRangeBindings(props.bindings, this.staticSegments, this.staticValues)) {\n this.rangeInstances = [];\n this.staticSegments = [];\n return false;\n }\n return true;\n }\n\n private anchorAfter(rangeIndex: number): ChildNode | null {\n for (let next = rangeIndex + 1; next < this.rangeInstances.length; next += 1) {\n const staticAnchor = this.staticSegments[next]?.[0];\n if (staticAnchor) return staticAnchor;\n const rowAnchor = this.rangeInstances[next].values().next().value?.element;\n if (rowAnchor) return rowAnchor;\n }\n return this.staticSegments[this.rangeInstances.length]?.[0] || null;\n }\n\n private reconcileRange(rangeIndex: number, rows: ReadRange): void {\n if (!this.root) return;\n const range = this.currentProps.ranges[rangeIndex];\n const previous = this.rangeInstances[rangeIndex];\n const oldIndices = new Map<string, number>();\n [...previous.keys()].forEach((key, index) => oldIndices.set(key, index));\n const nextKeys = new Set(rows.keys);\n for (const [key, instance] of previous) {\n if (!nextKeys.has(key)) instance.element.remove();\n }\n\n const sequence = rows.keys.map((key) => oldIndices.get(key) ?? -1);\n const stablePositions = longestIncreasingSubsequencePositions(sequence);\n const nextInstances: CompilerKeyedRowInstance[] = [];\n for (let index = 0; index < rows.items.length; index += 1) {\n const key = rows.keys[index];\n const existing = previous.get(key);\n if (existing) {\n applyKeyedRowBindings(range, existing, rows.items[index], index);\n existing.item = rows.items[index];\n existing.index = index;\n nextInstances.push(existing);\n continue;\n }\n const element = createCompilerHostElement(\n this.root.ownerDocument,\n range.create(rows.items[index], index),\n );\n nextInstances.push({\n key,\n element,\n values: readKeyedRowBindingValues(range, rows.items[index], index),\n item: rows.items[index],\n index,\n conditionalValues: new Map(),\n });\n }\n\n let anchor = this.anchorAfter(rangeIndex);\n for (let index = nextInstances.length - 1; index >= 0; index -= 1) {\n const instance = nextInstances[index];\n if (sequence[index] < 0) {\n this.root.insertBefore(instance.element, anchor);\n } else if (!stablePositions.has(index) && instance.element.nextSibling !== anchor) {\n this.root.insertBefore(instance.element, anchor);\n }\n anchor = instance.element;\n }\n this.rangeInstances[rangeIndex] = new Map(\n nextInstances.map((instance) => [instance.key, instance]),\n );\n }\n\n private reconcile(afterCommit?: () => void): void {\n if (!this.mounted || !this.root) {\n afterCommit?.();\n return;\n }\n if (this.state.fallback) {\n this.fallbackVersion += 1;\n this.forceUpdate(afterCommit);\n return;\n }\n const rowsByRange = this.readRanges(this.currentProps);\n if (!rowsByRange || rowsByRange.length !== this.rangeInstances.length) {\n this.activateFallback(afterCommit);\n return;\n }\n if (\n !applyStaticRangeBindings(\n this.currentProps.bindings,\n this.staticSegments,\n this.staticValues,\n )\n ) {\n this.activateFallback(afterCommit);\n return;\n }\n\n const activeElement = this.root.ownerDocument.activeElement;\n const restoreFocus = Boolean(activeElement && this.root.contains(activeElement));\n for (let rangeIndex = rowsByRange.length - 1; rangeIndex >= 0; rangeIndex -= 1) {\n this.reconcileRange(rangeIndex, rowsByRange[rangeIndex]);\n }\n if (\n restoreFocus &&\n activeElement?.isConnected &&\n activeElement.ownerDocument.activeElement !== activeElement &&\n \"focus\" in activeElement\n ) {\n (activeElement as HTMLElement).focus({ preventScroll: true });\n }\n afterCommit?.();\n }\n\n private refresh = (afterCommit?: () => void) => {\n this.reconcile(afterCommit);\n };\n\n private activateFallback(afterCommit?: () => void): void {\n if (!this.mounted || this.state.fallback || this.fallbackRequested) {\n afterCommit?.();\n return;\n }\n this.fallbackRequested = true;\n this.setState({ fallback: true }, afterCommit);\n }\n\n private schedulePropFallback(): void {\n if (this.propFallbackQueued) return;\n this.propFallbackQueued = true;\n queueMicrotask(() => {\n this.propFallbackQueued = false;\n if (this.mounted && !this.state.fallback) this.activateFallback();\n });\n }\n\n shouldComponentUpdate(nextProps: CompilerKeyedRangesBlockProps, nextState: State): boolean {\n this.currentProps = nextProps;\n if (nextState.fallback || this.state.fallback) return true;\n // Parent props and compatible Fast Refresh definitions can change static\n // siblings that are deliberately outside the range descriptors. Remount\n // this one container through React instead of retaining stale markup.\n this.schedulePropFallback();\n return false;\n }\n\n componentDidMount(): void {\n this.mounted = true;\n this.unsubscribe = owner.subscribe(this.props.id, this.refresh);\n if (!this.adopt()) this.activateFallback();\n }\n\n componentWillUnmount(): void {\n this.mounted = false;\n this.unsubscribe?.();\n this.root = null;\n this.rangeInstances = [];\n this.staticSegments = [];\n this.staticValues.length = 0;\n }\n\n render(): React.ReactNode {\n const container = this.currentProps.render();\n if (!React.isValidElement(container) || typeof container.type !== \"string\") {\n throw new TypeError(\n `Compiled keyed ranges ${this.currentProps.id} must own one host container.`,\n );\n }\n return React.cloneElement(container, {\n key: this.state.fallback ? `react-${this.fallbackVersion}` : \"compiled\",\n ref: this.captureRoot,\n } as React.Attributes);\n }\n }\n\n return FarmKeyedRangesBlock;\n}\n\nfunction createMixedRangesBlockComponent(\n owner: Pick<ConditionalBlockOwner, \"subscribe\">,\n): React.ComponentType<CompilerMixedRangesBlockProps> {\n interface State {\n fallback: boolean;\n }\n\n class FarmMixedRangesBlock extends React.Component<CompilerMixedRangesBlockProps, State> {\n static displayName = \"FarmCompiledMixedRanges\";\n\n state: State = { fallback: false };\n private root: Element | null = null;\n private mounted = false;\n private fallbackRequested = false;\n private fallbackVersion = 0;\n private propFallbackQueued = false;\n private currentProps = this.props;\n private controller: CompilerNestedMixedRanges | null = null;\n private fallbackUnsubscribers: Array<() => void> = [];\n\n private captureRoot = (root: Element | null) => {\n this.root = root;\n this.currentProps.rootRef?.(root);\n };\n\n private clearFallbackSubscriptions(): void {\n for (const unsubscribe of this.fallbackUnsubscribers) unsubscribe();\n this.fallbackUnsubscribers = [];\n }\n\n private subscribeFallbackBlocks(): void {\n this.clearFallbackSubscriptions();\n const descriptor = this.currentProps.create();\n const ids = new Set<number>();\n collectCompilerHostBlockIds(descriptor, ids);\n for (const id of ids) {\n this.fallbackUnsubscribers.push(\n owner.subscribe(id, (afterCommit) => {\n if (!this.mounted || !this.state.fallback) {\n afterCommit?.();\n return;\n }\n this.fallbackVersion += 1;\n this.forceUpdate(afterCommit);\n }),\n );\n }\n }\n\n private adopt(): boolean {\n if (!this.root) return false;\n const descriptor = this.currentProps.create();\n const block = descriptor.block;\n if (block?.kind !== \"mixed-ranges\" || block.id !== this.currentProps.id) return false;\n const controller = new CompilerNestedMixedRanges(\n owner,\n this.root,\n descriptor,\n block,\n this.activateFallback,\n );\n try {\n if (!controller.adopt()) {\n controller.cleanup();\n return false;\n }\n } catch (error) {\n controller.cleanup();\n throw error;\n }\n this.controller = controller;\n return true;\n }\n\n private activateFallback = (afterCommit?: () => void): void => {\n if (!this.mounted || this.state.fallback || this.fallbackRequested) {\n afterCommit?.();\n return;\n }\n this.fallbackRequested = true;\n this.controller?.cleanup();\n this.controller = null;\n this.fallbackVersion += 1;\n this.setState({ fallback: true }, () => {\n this.subscribeFallbackBlocks();\n afterCommit?.();\n });\n };\n\n private schedulePropFallback(): void {\n if (this.propFallbackQueued) return;\n this.propFallbackQueued = true;\n queueMicrotask(() => {\n this.propFallbackQueued = false;\n if (this.mounted && !this.state.fallback) this.activateFallback();\n });\n }\n\n shouldComponentUpdate(nextProps: CompilerMixedRangesBlockProps, nextState: State): boolean {\n this.currentProps = nextProps;\n if (nextState.fallback || this.state.fallback) return true;\n this.schedulePropFallback();\n return false;\n }\n\n componentDidMount(): void {\n this.mounted = true;\n if (!this.adopt()) this.activateFallback();\n }\n\n componentDidUpdate(): void {\n if (this.state.fallback) this.subscribeFallbackBlocks();\n }\n\n componentWillUnmount(): void {\n this.mounted = false;\n this.controller?.cleanup();\n this.controller = null;\n this.clearFallbackSubscriptions();\n this.root = null;\n }\n\n render(): React.ReactNode {\n const container = this.currentProps.render();\n if (!React.isValidElement(container) || typeof container.type !== \"string\") {\n throw new TypeError(\n `Compiled mixed ranges ${this.currentProps.id} must own one host container.`,\n );\n }\n return React.cloneElement(container, {\n key: this.state.fallback ? `react-${this.fallbackVersion}` : \"compiled\",\n ref: this.captureRoot,\n } as React.Attributes);\n }\n }\n\n return FarmMixedRangesBlock;\n}\n\nfunction createComponentBlockComponent(\n owner: Pick<ConditionalBlockOwner, \"subscribe\">,\n): React.ComponentType<CompilerComponentBlockProps> {\n class FarmComponentBlock extends React.Component<CompilerComponentBlockProps> {\n static displayName = \"FarmCompiledComponentIsland\";\n\n private unsubscribe: (() => void) | undefined;\n\n private refresh = (afterCommit?: () => void) => {\n this.forceUpdate(afterCommit);\n };\n\n private subscribe(): void {\n this.unsubscribe = owner.subscribe(this.props.id, this.refresh);\n }\n\n componentDidMount(): void {\n this.subscribe();\n }\n\n componentDidUpdate(previous: CompilerComponentBlockProps): void {\n if (previous.id === this.props.id) return;\n this.unsubscribe?.();\n this.subscribe();\n }\n\n componentWillUnmount(): void {\n this.unsubscribe?.();\n }\n\n render(): React.ReactNode {\n return this.props.render();\n }\n }\n\n return FarmComponentBlock;\n}\n\nexport const conditionalRuntimeFeature: CompilerRuntimeFeature = {\n name: \"conditional\",\n create: (owner) => ({\n Conditional: createConditionalBlockComponent(owner),\n }),\n};\n\nexport const hostConditionalRuntimeFeature: CompilerRuntimeFeature = {\n name: \"host-conditional\",\n create: (owner) => ({\n HostConditional: createHostConditionalBlockComponent(owner),\n }),\n};\n\nexport const conditionalRangesRuntimeFeature: CompilerRuntimeFeature = {\n name: \"conditional-ranges\",\n create: (owner) => ({\n ConditionalRanges: createConditionalRangesBlockComponent(owner),\n }),\n};\n\nexport const keyedListRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-list\",\n create: (owner) => ({\n KeyedList: createKeyedListBlockComponent(owner),\n }),\n};\n\nexport const keyedRowsRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner),\n }),\n};\n\nexport const keyedRowsHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n keyedUpdates: keyedUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsPositionHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:position-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n keyedUpdates: keyedPositionUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsBatchPositionHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:batch-position-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n keyedUpdates: keyedBatchPositionUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsWindowPositionHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:window-position-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n keyedUpdates: keyedWindowPositionUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsReorderHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:reorder-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n keyedUpdates: keyedReorderUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsAllHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:all-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n keyedUpdates: keyedCompleteUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsEveryHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:every-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n keyedUpdates: keyedEveryUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsBatchEveryHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:batch-every-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n keyedUpdates: keyedBatchEveryUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsWindowEveryHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:window-every-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n keyedUpdates: keyedWindowEveryUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsFilterHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:filter-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n keyedUpdates: keyedFilterUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsPrependHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:prepend-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n keyedUpdates: keyedPrependUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsFilterPrependHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:filter-prepend-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n keyedUpdates: keyedFilterPrependUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsConditionalRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:conditional\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n }),\n }),\n};\n\nexport const keyedRowsConditionalHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:conditional:hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n keyedUpdates: keyedUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsConditionalPositionHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:conditional:position-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n keyedUpdates: keyedPositionUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsConditionalBatchPositionHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:conditional:batch-position-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n keyedUpdates: keyedBatchPositionUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsConditionalWindowPositionHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:conditional:window-position-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n keyedUpdates: keyedWindowPositionUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsConditionalReorderHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:conditional:reorder-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n keyedUpdates: keyedReorderUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsConditionalAllHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:conditional:all-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n keyedUpdates: keyedCompleteUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsConditionalEveryHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:conditional:every-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n keyedUpdates: keyedEveryUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsConditionalBatchEveryHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:conditional:batch-every-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n keyedUpdates: keyedBatchEveryUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsConditionalWindowEveryHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:conditional:window-every-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n keyedUpdates: keyedWindowEveryUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsConditionalFilterHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:conditional:filter-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n keyedUpdates: keyedFilterUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsConditionalPrependHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:conditional:prepend-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n keyedUpdates: keyedPrependUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsConditionalFilterPrependHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:conditional:filter-prepend-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n keyedUpdates: keyedFilterPrependUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsHostRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:host\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n hostBlocks: createKeyedRowHostRuntime(),\n }),\n }),\n};\n\nexport const keyedRowsHostHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:host:hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsHostPositionHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:host:position-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedPositionUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsHostBatchPositionHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:host:batch-position-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedBatchPositionUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsHostWindowPositionHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:host:window-position-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedWindowPositionUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsHostReorderHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:host:reorder-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedReorderUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsHostAllHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:host:all-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedCompleteUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsHostEveryHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:host:every-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedEveryUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsHostBatchEveryHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:host:batch-every-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedBatchEveryUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsHostWindowEveryHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:host:window-every-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedWindowEveryUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsHostFilterHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:host:filter-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedFilterUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsHostPrependHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:host:prepend-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedPrependUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsHostFilterPrependHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:host:filter-prepend-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedFilterPrependUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsCompleteRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:complete\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n hostBlocks: createKeyedRowHostRuntime(),\n }),\n }),\n};\n\nexport const keyedRowsCompleteHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:complete:hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsCompletePositionHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:complete:position-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedPositionUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsCompleteBatchPositionHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:complete:batch-position-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedBatchPositionUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsCompleteWindowPositionHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:complete:window-position-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedWindowPositionUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsCompleteReorderHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:complete:reorder-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedReorderUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsCompleteAllHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:complete:all-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedCompleteUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsCompleteEveryHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:complete:every-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedEveryUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsCompleteBatchEveryHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:complete:batch-every-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedBatchEveryUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsCompleteWindowEveryHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:complete:window-every-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedWindowEveryUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsCompleteFilterHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:complete:filter-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedFilterUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsCompletePrependHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:complete:prepend-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedPrependUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRowsCompleteFilterPrependHintedRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-rows:complete:filter-prepend-hinted\",\n create: (owner) => ({\n KeyedRows: createKeyedRowsBlockComponent(owner, {\n conditionals: createKeyedRowConditionalRuntime(),\n hostBlocks: createKeyedRowHostRuntime(),\n keyedUpdates: keyedFilterPrependUpdateRuntime,\n }),\n }),\n};\n\nexport const keyedRangesRuntimeFeature: CompilerRuntimeFeature = {\n name: \"keyed-ranges\",\n create: (owner) => ({\n KeyedRanges: createKeyedRangesBlockComponent(owner),\n }),\n};\n\nexport const mixedRangesRuntimeFeature: CompilerRuntimeFeature = {\n name: \"mixed-ranges\",\n create: (owner) => ({\n MixedRanges: createMixedRangesBlockComponent(owner),\n }),\n};\n\nexport const componentRuntimeFeature: CompilerRuntimeFeature = {\n name: \"component\",\n create: (owner) => ({\n Component: createComponentBlockComponent(owner),\n }),\n};\n\n/**\n * Tree-shakable runtime target emitted by the AOT transform.\n *\n * React owns initial placement, SSR, hydration, props, and event semantics.\n * Compiler cells own local updates and precomputed DOM paths. Structural\n * helpers are installed only when the compiler emitted that boundary kind.\n */\nexport function createCompiledComponentWithFeatures<Props>(\n definition: CompiledComponentDefinition<Props>,\n runtimeFeatures: readonly CompilerRuntimeFeature[],\n): React.ComponentType<Props> {\n const stateSignature = definition.stateSignature || String(definition.initialize.length);\n const runtimeSignature = [...new Set(runtimeFeatures.map((feature) => feature.name))]\n .sort()\n .join(\",\");\n if (definition.hmrId) {\n const registry = getCompilerHmrRegistry();\n const existing = registry.get(definition.hmrId);\n if (\n existing?.stateSignature === stateSignature &&\n existing.runtimeSignature === runtimeSignature\n ) {\n existing.definition.current = definition as CompiledComponentDefinition<unknown>;\n existing.component.displayName = `FarmCompiled(${definition.displayName})`;\n for (const refresh of existing.refreshListeners) refresh();\n return existing.component as React.ComponentType<Props>;\n }\n }\n\n const definitionReference: CompiledDefinitionReference<Props> = {\n current: definition,\n };\n const refreshListeners = new Set<() => void>();\n\n class FarmCompiledComponent extends React.Component<Props, Record<string, never>, boolean> {\n private root: Element | null = null;\n private mounted = false;\n private flushQueued = false;\n private bindingError: unknown;\n private hasBindingError = false;\n private inputSelection: InputSelectionSnapshot | null = null;\n private readonly dirtyState = new Set<number>();\n private indexedDefinition: CompiledComponentDefinition<Props> | null = null;\n private staticBindingsByDependency: CompilerBinding<Props>[][] = [];\n private blockBindingsByDependency: CompilerConditionalBlockBinding[][] = [];\n private readonly blockBindings = new Map<number, CompilerConditionalBlockBinding>();\n private trackedBindingsByDependency: Set<CompilerBinding<Props>>[] = [];\n private readonly trackedDependenciesByBinding = new Map<CompilerBinding<Props>, Set<number>>();\n private readonly bindingValues = new Map<CompilerBinding<Props>, unknown>();\n private activeBinding: CompilerBinding<Props> | null = null;\n private activeDependencies: Set<number> | null = null;\n private readonly cells: RuntimeCell[];\n private readonly propCellOffset: number;\n private renderedDefinition: CompiledComponentDefinition<Props> | null = null;\n private renderedElement: React.ReactElement | null = null;\n private readonly blockRefreshListeners = new Map<number, CompilerBlockRefresh>();\n private readonly blockRoots = new Map<number, Element>();\n private readonly blockRootElements = new Set<Element>();\n private readonly bindingTargets = new Map<number, Element>();\n private readonly bindingTargetRefs = new Map<number, React.RefCallback<Element>>();\n private readonly blockRuntime: CompilerBlockRuntime;\n\n constructor(props: Props) {\n super(props);\n const initialState = definitionReference.current.initialize(props);\n const initialProps = definitionReference.current.readProps?.(props) || [];\n this.propCellOffset = initialState.length;\n this.cells = [...initialState, ...initialProps].map((initialValue, index) => {\n let value = initialValue;\n const pending: PendingCellUpdate[] = [];\n return {\n get: () => {\n if (this.activeBinding && this.activeDependencies) {\n this.activeDependencies.add(index);\n }\n return value;\n },\n set: (next) => {\n pending.push({ kind: \"state\", update: next });\n this.scheduleBindingFlush(index);\n },\n replace: (next) => {\n pending.push({ kind: \"value\", value: next });\n },\n flush: () => {\n if (pending.length === 0) return false;\n const previous = value;\n for (const next of pending.splice(0)) {\n if (next.kind === \"value\") {\n value = next.value;\n } else {\n value = typeof next.update === \"function\" ? next.update(value) : next.update;\n }\n }\n return !Object.is(previous, value);\n },\n };\n });\n const featureOwner: CompilerRuntimeFeatureOwner = {\n setRoot: (id, root) => this.setBlockRoot(id, root),\n subscribe: (id, refresh) => this.subscribeToBlock(id, refresh),\n };\n const blockRuntime: Partial<CompilerBlockRuntime> = {\n target: (id) => this.bindingTarget(id),\n };\n for (const feature of runtimeFeatures) {\n Object.assign(blockRuntime, feature.create(featureOwner));\n }\n this.blockRuntime = blockRuntime as CompilerBlockRuntime;\n }\n\n private usesHybridReactivity(): boolean {\n return definitionReference.current.reactivity === \"hybrid\";\n }\n\n private canReuseRenderedElement(\n currentDefinition: CompiledComponentDefinition<Props>,\n propValues: readonly unknown[] | null,\n ): boolean {\n return Boolean(\n this.mounted &&\n propValues &&\n propValues.every(isCompilerPrimitive) &&\n this.renderedDefinition === currentDefinition &&\n this.renderedElement,\n );\n }\n\n private renderCellsForProps(propValues: readonly unknown[] | null): {\n cells: readonly CompilerCell[];\n commit(): void;\n } {\n if (!propValues) return { cells: this.cells, commit: () => undefined };\n // A full React render must see its own prop snapshot, including inside\n // nested block render callbacks. The view switches to committed cells\n // only when its root ref is attached, so an abandoned render cannot\n // publish values or replace the reusable element.\n let committed = false;\n const cells: CompilerCell[] = this.cells.slice(0, this.propCellOffset);\n for (let propIndex = 0; propIndex < propValues.length; propIndex += 1) {\n const cell = this.cells[this.propCellOffset + propIndex];\n if (!cell) continue;\n cells.push({\n get: () => (committed ? cell.get() : propValues[propIndex]),\n set: (next) => cell.set(next),\n });\n }\n return {\n cells,\n commit: () => {\n committed = true;\n },\n };\n }\n\n private tracksBinding(\n binding: Exclude<CompilerBinding<Props>, CompilerConditionalBlockBinding>,\n ): boolean {\n return this.usesHybridReactivity() && binding.tracking === \"dynamic\";\n }\n\n private ensureBindingIndex(): void {\n const currentDefinition = definitionReference.current;\n if (this.indexedDefinition === currentDefinition) return;\n\n this.indexedDefinition = currentDefinition;\n this.staticBindingsByDependency = Array.from({ length: this.cells.length }, () => []);\n this.blockBindingsByDependency = Array.from({ length: this.cells.length }, () => []);\n this.trackedBindingsByDependency = Array.from(\n { length: this.cells.length },\n () => new Set<CompilerBinding<Props>>(),\n );\n this.blockBindings.clear();\n this.trackedDependenciesByBinding.clear();\n this.bindingValues.clear();\n\n for (const binding of currentDefinition.bindings) {\n if (binding.kind === \"block\") this.blockBindings.set(binding.id, binding);\n for (const dependency of binding.dependencies) {\n if (dependency < 0 || dependency >= this.cells.length) continue;\n if (binding.kind === \"block\") {\n this.blockBindingsByDependency[dependency].push(binding);\n } else if (!this.tracksBinding(binding)) {\n this.staticBindingsByDependency[dependency].push(binding);\n }\n }\n }\n }\n\n private updateTrackedDependencies(\n binding: CompilerBinding<Props>,\n nextDependencies: Set<number>,\n ): void {\n const previousDependencies = this.trackedDependenciesByBinding.get(binding);\n if (previousDependencies) {\n for (const dependency of previousDependencies) {\n if (!nextDependencies.has(dependency)) {\n this.trackedBindingsByDependency[dependency]?.delete(binding);\n }\n }\n }\n for (const dependency of nextDependencies) {\n if (!previousDependencies?.has(dependency)) {\n this.trackedBindingsByDependency[dependency]?.add(binding);\n }\n }\n this.trackedDependenciesByBinding.set(binding, nextDependencies);\n }\n\n private readBinding(binding: Exclude<CompilerBinding<Props>, CompilerConditionalBlockBinding>) {\n if (!this.tracksBinding(binding)) return binding.read(this.props, this.cells);\n\n const previousBinding = this.activeBinding;\n const previousDependencies = this.activeDependencies;\n const nextDependencies = new Set<number>();\n this.activeBinding = binding;\n this.activeDependencies = nextDependencies;\n try {\n return binding.read(this.props, this.cells);\n } finally {\n this.activeBinding = previousBinding;\n this.activeDependencies = previousDependencies;\n this.updateTrackedDependencies(binding, nextDependencies);\n }\n }\n\n private bindingValue(\n binding: Exclude<CompilerBinding<Props>, CompilerConditionalBlockBinding>,\n value: unknown,\n ): unknown {\n return binding.kind === \"text\" ? renderTextValue(value) : value;\n }\n\n private primeHybridBindings(): void {\n if (!this.usesHybridReactivity()) return;\n for (const binding of definitionReference.current.bindings) {\n if (binding.kind === \"block\") continue;\n if (!this.tracksBinding(binding)) continue;\n const value = this.readBinding(binding);\n this.bindingValues.set(binding, this.bindingValue(binding, value));\n }\n }\n\n private captureRoot = (root: Element | null) => {\n this.root = root;\n };\n\n private refreshDefinition = () => {\n if (this.mounted) this.forceUpdate();\n };\n\n private bindingTarget(id: number): React.RefCallback<Element> {\n const existing = this.bindingTargetRefs.get(id);\n if (existing) return existing;\n const capture: React.RefCallback<Element> = (element) => {\n if (element) {\n this.bindingTargets.set(id, element);\n } else {\n this.bindingTargets.delete(id);\n }\n };\n this.bindingTargetRefs.set(id, capture);\n return capture;\n }\n\n private captureInputSelection(): void {\n const active = this.root?.ownerDocument.activeElement;\n if (\n !isSelectableTextControl(active) ||\n !this.root?.contains(active) ||\n active.selectionStart === null ||\n active.selectionEnd === null\n ) {\n return;\n }\n this.inputSelection = {\n element: active,\n start: active.selectionStart,\n end: active.selectionEnd,\n direction: active.selectionDirection || \"none\",\n };\n }\n\n private restoreInputSelection(snapshot: InputSelectionSnapshot | null): void {\n if (\n !snapshot ||\n !snapshot.element.isConnected ||\n snapshot.element.ownerDocument.activeElement !== snapshot.element\n ) {\n return;\n }\n snapshot.element.setSelectionRange(snapshot.start, snapshot.end, snapshot.direction);\n }\n\n private setBlockRoot(id: number, root: Element | null): void {\n const previous = this.blockRoots.get(id);\n if (previous) this.blockRootElements.delete(previous);\n if (root) {\n this.blockRoots.set(id, root);\n this.blockRootElements.add(root);\n } else {\n this.blockRoots.delete(id);\n }\n }\n\n private subscribeToBlock(id: number, refresh: CompilerBlockRefresh): () => void {\n this.blockRefreshListeners.set(id, refresh);\n return () => {\n if (this.blockRefreshListeners.get(id) === refresh) {\n this.blockRefreshListeners.delete(id);\n }\n };\n }\n\n private scheduleBindingFlush(index: number): void {\n this.dirtyState.add(index);\n this.captureInputSelection();\n if (!this.mounted || this.flushQueued) return;\n this.flushQueued = true;\n queueMicrotask(() => {\n this.flushQueued = false;\n this.flushBindingUpdates();\n });\n }\n\n private flushBindingUpdates(): void {\n const inputSelection = this.inputSelection;\n this.inputSelection = null;\n if (!this.mounted) return;\n const dirty = new Set<number>();\n for (const index of this.dirtyState) {\n if (this.cells[index]?.flush()) dirty.add(index);\n }\n this.dirtyState.clear();\n if (dirty.size === 0) return;\n try {\n this.ensureBindingIndex();\n const affectedBlockIds = new Set<number>();\n const affectedBindings = new Set<CompilerBinding<Props>>();\n\n for (const dependency of dirty) {\n for (const binding of this.blockBindingsByDependency[dependency] || []) {\n affectedBlockIds.add(binding.id);\n }\n for (const binding of this.staticBindingsByDependency[dependency] || []) {\n affectedBindings.add(binding);\n }\n if (this.usesHybridReactivity()) {\n for (const binding of this.trackedBindingsByDependency[dependency] || []) {\n affectedBindings.add(binding);\n }\n }\n }\n\n const hasAffectedMountedAncestor = (binding: CompilerConditionalBlockBinding): boolean => {\n let parent = binding.parent;\n while (parent !== undefined) {\n if (affectedBlockIds.has(parent) && this.blockRefreshListeners.has(parent)) {\n return true;\n }\n parent = this.blockBindings.get(parent)?.parent;\n }\n return false;\n };\n\n const blockRefreshes = [...affectedBlockIds]\n .map((id) => {\n const binding = this.blockBindings.get(id);\n const refresh = this.blockRefreshListeners.get(id);\n return binding && refresh && !hasAffectedMountedAncestor(binding) ? refresh : undefined;\n })\n .filter((refresh): refresh is CompilerBlockRefresh => refresh !== undefined);\n\n for (const binding of affectedBindings) {\n if (binding.kind !== \"block\") this.applyBinding(binding);\n }\n\n let pendingBlockCommits = blockRefreshes.length;\n for (const refresh of blockRefreshes) {\n refresh(() => {\n pendingBlockCommits -= 1;\n if (pendingBlockCommits === 0) this.restoreInputSelection(inputSelection);\n }, dirty);\n }\n if (blockRefreshes.length === 0) this.restoreInputSelection(inputSelection);\n } catch (error) {\n this.bindingError = error;\n this.hasBindingError = true;\n this.forceUpdate();\n }\n }\n\n private applyBinding(binding: CompilerBinding<Props>, force = false): void {\n if (!this.root || binding.kind === \"block\") return;\n const target =\n binding.target === undefined\n ? findBindingTarget(this.root, binding.path, this.blockRootElements)\n : binding.path.length === 0\n ? this.root\n : this.bindingTargets.get(binding.target) || null;\n if (!target) return;\n const value = this.readBinding(binding);\n const comparableValue = this.bindingValue(binding, value);\n if (!force && this.bindingValues.has(binding)) {\n if (Object.is(this.bindingValues.get(binding), comparableValue)) return;\n }\n if (binding.kind === \"text\") {\n target.textContent = comparableValue as string;\n } else if (binding.kind === \"style\") {\n updateStyle(target, binding.name, value);\n } else {\n updateAttribute(target, binding.name, value);\n }\n this.bindingValues.set(binding, comparableValue);\n }\n\n componentDidMount(): void {\n this.mounted = true;\n refreshListeners.add(this.refreshDefinition);\n this.ensureBindingIndex();\n this.primeHybridBindings();\n }\n\n getSnapshotBeforeUpdate(): boolean {\n const currentDefinition = definitionReference.current;\n const propValues = currentDefinition.readProps?.(this.props) || null;\n return this.canReuseRenderedElement(currentDefinition, propValues);\n }\n\n componentDidUpdate(\n _previousProps: Readonly<Props>,\n _previousState: Readonly<Record<string, never>>,\n reusedRenderedElement = false,\n ): void {\n const propValues = definitionReference.current.readProps?.(this.props) || null;\n if (propValues) {\n if (reusedRenderedElement) this.captureInputSelection();\n for (let propIndex = 0; propIndex < propValues.length; propIndex += 1) {\n const cellIndex = this.propCellOffset + propIndex;\n const cell = this.cells[cellIndex];\n if (!cell) continue;\n cell.replace(propValues[propIndex]);\n if (reusedRenderedElement) {\n this.dirtyState.add(cellIndex);\n } else {\n // React already reconciled a full render using the pending prop\n // snapshot. Commit the cell without scheduling duplicate work.\n cell.flush();\n }\n }\n this.flushBindingUpdates();\n return;\n }\n\n // Hand-authored definitions without prop cells retain the original\n // React-owned prop reconciliation behavior.\n this.ensureBindingIndex();\n for (const binding of definitionReference.current.bindings) {\n if (binding.kind !== \"block\") this.applyBinding(binding, true);\n }\n }\n\n componentWillUnmount(): void {\n this.mounted = false;\n this.root = null;\n this.dirtyState.clear();\n this.inputSelection = null;\n this.blockRefreshListeners.clear();\n this.blockRoots.clear();\n this.blockRootElements.clear();\n this.bindingTargets.clear();\n this.bindingTargetRefs.clear();\n this.indexedDefinition = null;\n this.staticBindingsByDependency = [];\n this.blockBindingsByDependency = [];\n this.blockBindings.clear();\n this.trackedBindingsByDependency = [];\n this.trackedDependenciesByBinding.clear();\n this.bindingValues.clear();\n this.activeBinding = null;\n this.activeDependencies = null;\n refreshListeners.delete(this.refreshDefinition);\n }\n\n render(): React.ReactNode {\n if (this.hasBindingError) throw this.bindingError;\n const currentDefinition = definitionReference.current;\n const propValues = currentDefinition.readProps?.(this.props) || null;\n if (this.canReuseRenderedElement(currentDefinition, propValues)) {\n return this.renderedElement;\n }\n\n const renderCells = this.renderCellsForProps(propValues);\n const element = currentDefinition.render(this.props, renderCells.cells, this.blockRuntime);\n if (!React.isValidElement(element)) {\n throw new TypeError(\n `Compiled component ${currentDefinition.displayName} must return one host element.`,\n );\n }\n let renderedElement: React.ReactElement;\n const captureCommittedRoot = (root: Element | null) => {\n this.captureRoot(root);\n if (!root) return;\n renderCells.commit();\n this.renderedDefinition = currentDefinition;\n this.renderedElement = renderedElement;\n };\n if (element.type === this.blockRuntime.KeyedRanges) {\n renderedElement = React.cloneElement(\n element as React.ReactElement<CompilerKeyedRangesBlockProps>,\n {\n rootRef: captureCommittedRoot,\n },\n );\n } else if (element.type === this.blockRuntime.ConditionalRanges) {\n renderedElement = React.cloneElement(\n element as React.ReactElement<CompilerConditionalRangesBlockProps>,\n { rootRef: captureCommittedRoot },\n );\n } else if (element.type === this.blockRuntime.MixedRanges) {\n renderedElement = React.cloneElement(\n element as React.ReactElement<CompilerMixedRangesBlockProps>,\n {\n rootRef: captureCommittedRoot,\n },\n );\n } else if (typeof element.type !== \"string\") {\n throw new TypeError(\n `Compiled component ${currentDefinition.displayName} must return one host element.`,\n );\n } else {\n renderedElement = React.cloneElement(element, {\n ref: captureCommittedRoot,\n } as React.Attributes);\n }\n return renderedElement;\n }\n }\n\n (FarmCompiledComponent as React.ComponentType<Props>).displayName =\n `FarmCompiled(${definition.displayName})`;\n const component = FarmCompiledComponent as React.ComponentType<Props>;\n\n if (definition.hmrId) {\n getCompilerHmrRegistry().set(definition.hmrId, {\n component: component as React.ComponentType<unknown>,\n definition: definitionReference as CompiledDefinitionReference<unknown>,\n refreshListeners,\n stateSignature,\n runtimeSignature,\n });\n }\n\n return component;\n}\n\nconst COMPLETE_RUNTIME_FEATURES: readonly CompilerRuntimeFeature[] = [\n conditionalRuntimeFeature,\n hostConditionalRuntimeFeature,\n conditionalRangesRuntimeFeature,\n keyedListRuntimeFeature,\n keyedRowsCompleteWindowEveryHintedRuntimeFeature,\n keyedRangesRuntimeFeature,\n mixedRangesRuntimeFeature,\n componentRuntimeFeature,\n];\n\n/**\n * Compatibility entry for hand-authored runtime definitions.\n * Compiler output uses createCompiledComponentWithFeatures so unused structural\n * runtimes can be removed from production bundles.\n */\nexport function createCompiledComponent<Props>(\n definition: CompiledComponentDefinition<Props>,\n): React.ComponentType<Props> {\n return createCompiledComponentWithFeatures(definition, COMPLETE_RUNTIME_FEATURES);\n}\n"]}