sigil-web-client: v0.15.2
Release keyed reconciliation in patch-children (9dcd0fe, e33f856): child nodes already in place are never detached during a render -- dropped children are removed explicitly and only out-of-place nodes move via insertBefore, so the focused element survives re-renders (detach-blur fired no focusout and silently stranded focus on <body>) and per-render DOM mutations drop from ~110 to a handful on a typical view update.
Requires sigil-wasm-dom >= 0.17.16 for the insert-before/remove-child DOM primitives; the dependency pin moves to ^0.17.16.
Behavior notes: foreign (non-vdom) children of vdom-managed elements now survive renders instead of being wiped and re-added each render, and a first render of an EMPTY view into a never-rendered root no longer clears pre-existing static markup (the first non-empty render still does).
package.sgl | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)package.sglmodified
(package name: "sigil-web-client" version: "0.15.1" version: "0.15.2" sigil: "^0.17" description: "Client-side WASM UI framework for Sigil: react-like browser app rendering" url: "https://codeberg.org/sigil/sigil-web-client" optimize: 2)) dependencies: (list (from-git url: "codeberg:sigil/sigil" package: "sigil-wasm-dom" version: "^0.17")) ;; ^0.17.16: keyed reconciliation needs the insert-before/remove-child ;; DOM primitives, first released in 0.17.16. (from-git url: "codeberg:sigil/sigil" package: "sigil-wasm-dom" version: "^0.17.16")) dev-dependencies: (list (from-git url: "codeberg:sigil/sigil" package: "sigil-test" version: "^0.17")