/* * Copyright (C) 2026 Mateusz Gruszczynski @linuxiarz.pl * Source-Available Code / Dual-Licensed. * See LICENSE.md for terms. */ export function reconcileChildren(container, desired) { const retained = new Set(desired); for (const node of [...container.childNodes]) { if (!retained.has(node)) node.remove(); } let cursor = container.firstChild; for (const node of desired) { if (node === cursor) cursor = cursor.nextSibling; else container.insertBefore(node, cursor); } }