Skip to content

v0.7.3

Choose a tag to compare

@github-actions github-actions released this 07 Nov 19:23
aa0f3cf

Summary

Nativele 0.7.3: fixes found by migrating a real application to Nativele: list items at the top level of a Light DOM template are no longer removed, Light DOM slots place nodes from where they are, another template system's ./x.html imports are left alone, and several diagnostics point at the right fix.

Changes

  • Light DOM slots: a <template data-each> at a Light DOM template's top level keeps the items it inserts after the first render (adds, removes, reorders, inserts while disconnected); it used to lose them a microtask later, or have them moved into the default slot. Slot content is placed from the nodes' current positions, so a node moved within the same task, a node added while disconnected and a slot's fallback (with its data-if blocks and lists in their last state) all end up where they belong.
  • Template imports: lint, ts-dom check and the oxlint plugin treat only ./x.html.js as a Nativele template import; ./x.html (another template system's import) is no longer linted as one, and ts-dom doctor still reports a Nativele import without .js. docs/tooling.md describes how two template systems coexist.
  • unused-ref: refs destructured from any .refs expression, renamed, quoted, nested or followed by as/satisfies or no semicolon count as used; refs: { … } in a type or object literal no longer hides an unused ref.
  • Fix hints: the a11y name rules say to give an element a data-ref when TypeScript sets its name; TS2307 for a missing ./x.html.js says to run ts-dom gen and scan the template's folder.
  • Robustness: a folder that vanishes during a run, or a symbolic link to nothing, is skipped instead of crashing a long-running host; the bin path is written as npm normalizes it.
  • Skills: nativele-linting (coexisting template systems, data-ref and the a11y name rules), nativele-monorepo and nativele-vite (one tsDom() per workspace package, its dev server watches those folders), nativele-core (points at the store adapter), nativele-state-management (getSnapshot clients); each re-verified by a fresh agent trial on 2026-11-08.

Breaking Changes

None. A module importing a template as ./x.html (without .js) is no longer linted as a Nativele template; ts-dom doctor reports it (template-import-without-js).