@llui/dom 0.1.0 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/binding-registry.d.ts +10 -0
- package/dist/binding-registry.d.ts.map +1 -0
- package/dist/binding-registry.js +96 -0
- package/dist/binding-registry.js.map +1 -0
- package/dist/binding.d.ts +22 -0
- package/dist/binding.d.ts.map +1 -1
- package/dist/binding.js +56 -5
- package/dist/binding.js.map +1 -1
- package/dist/build-flags.d.ts +25 -0
- package/dist/build-flags.d.ts.map +1 -0
- package/dist/build-flags.js +18 -0
- package/dist/build-flags.js.map +1 -0
- package/dist/compose.d.ts +27 -21
- package/dist/compose.d.ts.map +1 -1
- package/dist/compose.js +19 -13
- package/dist/compose.js.map +1 -1
- package/dist/el-split.d.ts.map +1 -1
- package/dist/el-split.js +8 -4
- package/dist/el-split.js.map +1 -1
- package/dist/el-template.d.ts.map +1 -1
- package/dist/el-template.js +15 -18
- package/dist/el-template.js.map +1 -1
- package/dist/elements.d.ts.map +1 -1
- package/dist/elements.js +12 -4
- package/dist/elements.js.map +1 -1
- package/dist/hmr.js +9 -4
- package/dist/hmr.js.map +1 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/internal/test-component-builder.d.ts +21 -0
- package/dist/internal/test-component-builder.d.ts.map +1 -0
- package/dist/internal/test-component-builder.js +65 -0
- package/dist/internal/test-component-builder.js.map +1 -0
- package/dist/internal.d.ts +1 -0
- package/dist/internal.d.ts.map +1 -1
- package/dist/internal.js +1 -0
- package/dist/internal.js.map +1 -1
- package/dist/lifetime.d.ts.map +1 -1
- package/dist/lifetime.js +16 -3
- package/dist/lifetime.js.map +1 -1
- package/dist/mount.d.ts +1 -0
- package/dist/mount.d.ts.map +1 -1
- package/dist/mount.js +32 -22
- package/dist/mount.js.map +1 -1
- package/dist/primitives/branch.d.ts.map +1 -1
- package/dist/primitives/branch.js +29 -16
- package/dist/primitives/branch.js.map +1 -1
- package/dist/primitives/client-only.d.ts +1 -1
- package/dist/primitives/client-only.d.ts.map +1 -1
- package/dist/primitives/client-only.js +3 -3
- package/dist/primitives/client-only.js.map +1 -1
- package/dist/primitives/context.d.ts.map +1 -1
- package/dist/primitives/context.js +6 -3
- package/dist/primitives/context.js.map +1 -1
- package/dist/primitives/each.d.ts.map +1 -1
- package/dist/primitives/each.js +121 -74
- package/dist/primitives/each.js.map +1 -1
- package/dist/primitives/foreign.js +2 -1
- package/dist/primitives/foreign.js.map +1 -1
- package/dist/primitives/lazy.d.ts +1 -1
- package/dist/primitives/lazy.d.ts.map +1 -1
- package/dist/primitives/lazy.js +11 -5
- package/dist/primitives/lazy.js.map +1 -1
- package/dist/primitives/portal.js +2 -1
- package/dist/primitives/portal.js.map +1 -1
- package/dist/primitives/sample.d.ts +2 -2
- package/dist/primitives/sample.d.ts.map +1 -1
- package/dist/primitives/sample.js +24 -18
- package/dist/primitives/sample.js.map +1 -1
- package/dist/primitives/track.d.ts +54 -0
- package/dist/primitives/track.d.ts.map +1 -0
- package/dist/primitives/track.js +54 -0
- package/dist/primitives/track.js.map +1 -0
- package/dist/primitives/virtual-each.js +4 -2
- package/dist/primitives/virtual-each.js.map +1 -1
- package/dist/render-context.d.ts +27 -1
- package/dist/render-context.d.ts.map +1 -1
- package/dist/render-context.js +82 -33
- package/dist/render-context.js.map +1 -1
- package/dist/ssr.d.ts.map +1 -1
- package/dist/ssr.js +5 -3
- package/dist/ssr.js.map +1 -1
- package/dist/types.d.ts +8 -13
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/update-loop.d.ts +1 -0
- package/dist/update-loop.d.ts.map +1 -1
- package/dist/update-loop.js +115 -50
- package/dist/update-loop.js.map +1 -1
- package/package.json +1 -1
package/dist/el-template.js
CHANGED
|
@@ -1,18 +1,17 @@
|
|
|
1
1
|
import { getRenderContext } from './render-context.js';
|
|
2
2
|
import { createBinding, applyBinding } from './binding.js';
|
|
3
3
|
import { addCheckedItemUpdater } from './lifetime.js';
|
|
4
|
-
//
|
|
5
|
-
//
|
|
6
|
-
//
|
|
7
|
-
//
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
return cache;
|
|
4
|
+
// Template cache. Each HTML string maps to its parsed
|
|
5
|
+
// `HTMLTemplateElement`. Single shared `Map` keyed only on the HTML —
|
|
6
|
+
// the WeakMap-by-env layer that wrapped this used to support
|
|
7
|
+
// concurrent SSR with mixed envs (jsdom + linkedom in one process)
|
|
8
|
+
// but in practice each runtime uses one env and the layer was
|
|
9
|
+
// zero-benefit overhead. SSR processes that need a fresh cache call
|
|
10
|
+
// `_resetTemplateCache()` at boundary points.
|
|
11
|
+
const templateCache = new Map();
|
|
12
|
+
/** @internal SSR-only — clear the cache between independent renders. */
|
|
13
|
+
export function _resetTemplateCache() {
|
|
14
|
+
templateCache.clear();
|
|
16
15
|
}
|
|
17
16
|
/**
|
|
18
17
|
* Clone a cached HTML template and apply a patch function.
|
|
@@ -28,12 +27,11 @@ function getTemplateCache(env) {
|
|
|
28
27
|
*/
|
|
29
28
|
export function elTemplate(html, patch) {
|
|
30
29
|
const ctx = getRenderContext();
|
|
31
|
-
|
|
32
|
-
let tmpl = cache.get(html);
|
|
30
|
+
let tmpl = templateCache.get(html);
|
|
33
31
|
if (!tmpl) {
|
|
34
32
|
tmpl = ctx.dom.createElement('template');
|
|
35
33
|
tmpl.innerHTML = html;
|
|
36
|
-
|
|
34
|
+
templateCache.set(html, tmpl);
|
|
37
35
|
}
|
|
38
36
|
const root = tmpl.content.firstElementChild.cloneNode(true);
|
|
39
37
|
const bind = (node, mask, kind, key, accessor, maskHi = 0) => {
|
|
@@ -76,12 +74,11 @@ export function elTemplate(html, patch) {
|
|
|
76
74
|
*/
|
|
77
75
|
export function __cloneStaticTemplate(html) {
|
|
78
76
|
const ctx = getRenderContext('cloneStaticTemplate');
|
|
79
|
-
|
|
80
|
-
let tmpl = cache.get(html);
|
|
77
|
+
let tmpl = templateCache.get(html);
|
|
81
78
|
if (!tmpl) {
|
|
82
79
|
tmpl = ctx.dom.createElement('template');
|
|
83
80
|
tmpl.innerHTML = html;
|
|
84
|
-
|
|
81
|
+
templateCache.set(html, tmpl);
|
|
85
82
|
}
|
|
86
83
|
return tmpl.content.cloneNode(true).firstChild;
|
|
87
84
|
}
|
package/dist/el-template.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"el-template.js","sourceRoot":"","sources":["../src/el-template.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AAErD,
|
|
1
|
+
{"version":3,"file":"el-template.js","sourceRoot":"","sources":["../src/el-template.ts"],"names":[],"mappings":"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","sourcesContent":["import type { BindingKind } from './types.js'\nimport type { DomEnv } from './dom-env.js'\nimport { getRenderContext } from './render-context.js'\nimport { createBinding, applyBinding } from './binding.js'\nimport { addCheckedItemUpdater } from './lifetime.js'\n\n// Template cache. Each HTML string maps to its parsed\n// `HTMLTemplateElement`. Single shared `Map` keyed only on the HTML —\n// the WeakMap-by-env layer that wrapped this used to support\n// concurrent SSR with mixed envs (jsdom + linkedom in one process)\n// but in practice each runtime uses one env and the layer was\n// zero-benefit overhead. SSR processes that need a fresh cache call\n// `_resetTemplateCache()` at boundary points.\nconst templateCache = new Map<string, HTMLTemplateElement>()\n\n/** @internal SSR-only — clear the cache between independent renders. */\nexport function _resetTemplateCache(): void {\n templateCache.clear()\n}\n\n/** Callback passed to patch functions — registers a reactive binding on a node.\n *\n * `maskHi` (optional, defaults to 0) carries the high-word mask for\n * accessors that read prefixes at bit positions 31..61. Stale\n * compiled bundles emitted before multi-word support omit the\n * parameter entirely; the defaulting keeps them correct under\n * ≤31-prefix components. */\nexport type TemplateBind = (\n node: Node,\n mask: number,\n kind: BindingKind,\n key: string | undefined,\n accessor: (s: never) => unknown,\n maskHi?: number,\n) => void\n\n/**\n * Clone a cached HTML template and apply a patch function.\n *\n * The patch function receives the cloned root element and a `bind` helper\n * that registers reactive bindings in the current render context.\n *\n * Per-item bindings (accessor.length === 0) are registered as direct\n * updaters on the scope — called by each() when item changes, bypassing\n * the Phase 2 binding scan entirely.\n *\n * Fast path for each() rows — 1 cloneNode instead of N createElement.\n */\nexport function elTemplate(\n html: string,\n patch: (root: Element, bind: TemplateBind, dom: DomEnv) => void,\n): Element {\n const ctx = getRenderContext()\n let tmpl = templateCache.get(html)\n if (!tmpl) {\n tmpl = ctx.dom.createElement('template') as HTMLTemplateElement\n tmpl.innerHTML = html\n templateCache.set(html, tmpl)\n }\n\n const root = tmpl.content.firstElementChild!.cloneNode(true) as Element\n\n const bind: TemplateBind = (node, mask, kind, key, accessor, maskHi = 0) => {\n const perItem = accessor.length === 0\n if (perItem) {\n const get = accessor as unknown as () => unknown\n const target = { kind, node, key }\n const initial = addCheckedItemUpdater(ctx.rootLifetime, get, (v) => applyBinding(target, v))\n applyBinding(target, initial)\n } else {\n // State-level: use the binding system for Phase 2\n const binding = createBinding(ctx.rootLifetime, {\n mask,\n maskHi,\n accessor,\n kind,\n node,\n key,\n perItem: false,\n })\n const initialValue = accessor(ctx.state as never)\n binding.lastValue = initialValue\n applyBinding({ kind, node, key }, initialValue)\n }\n }\n\n patch(root, bind, ctx.dom)\n return root\n}\n\n/**\n * Emitted by `@llui/vite-plugin` for static-content template clones\n * (no bindings). Replaces the bare `document.createElement('template')`\n * IIFE the compiler used to emit, threading through `ctx.dom` so SSR\n * in non-browser envs (jsdom, linkedom) works without globalThis mutation.\n *\n * App authors should not call this directly — use `elTemplate` for\n * dynamic content and element helpers (`div`, `span`, …) for everything\n * else. The underscore prefix signals the compiler-only surface; the\n * export exists because the compiler emits import references to it.\n */\nexport function __cloneStaticTemplate(html: string): Node {\n const ctx = getRenderContext('cloneStaticTemplate')\n let tmpl = templateCache.get(html)\n if (!tmpl) {\n tmpl = ctx.dom.createElement('template') as HTMLTemplateElement\n tmpl.innerHTML = html\n templateCache.set(html, tmpl)\n }\n return tmpl.content.cloneNode(true).firstChild!\n}\n"]}
|
package/dist/elements.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"elements.d.ts","sourceRoot":"","sources":["../src/elements.ts"],"names":[],"mappings":"AAMA,KAAK,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAC3C,KAAK,KAAK,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,EAAE,CAAA;AACnC,KAAK,QAAQ,GAAG,KAAK,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"elements.d.ts","sourceRoot":"","sources":["../src/elements.ts"],"names":[],"mappings":"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"}
|
package/dist/elements.js
CHANGED
|
@@ -70,10 +70,18 @@ function createElement(tag, propsOrChildren, maybeChildren) {
|
|
|
70
70
|
// through `list_actions`. The lifetime hook removes the
|
|
71
71
|
// entries on scope dispose (item unmount, branch swap, etc.)
|
|
72
72
|
// so the LLM sees only what's currently affordable.
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
73
|
+
// Agent-only — gated by the build-time `__LLUI_AGENT__` flag.
|
|
74
|
+
// Vite-plugin sets the flag to `false` by default; consumers
|
|
75
|
+
// pass `llui({ agent: true })` to flip it. When false, the
|
|
76
|
+
// bundler dead-codes this branch and `registerBindingVariants`
|
|
77
|
+
// becomes unreachable, allowing the whole binding-descriptors
|
|
78
|
+
// module to tree-shake out of the bundle.
|
|
79
|
+
if (typeof __LLUI_AGENT__ !== 'undefined' && __LLUI_AGENT__) {
|
|
80
|
+
const tagged = value
|
|
81
|
+
?.__lluiVariants;
|
|
82
|
+
if (tagged && tagged.length > 0 && ctx.instance) {
|
|
83
|
+
registerBindingVariants(ctx.instance, ctx.rootLifetime, tagged);
|
|
84
|
+
}
|
|
77
85
|
}
|
|
78
86
|
el.addEventListener(eventName, value);
|
|
79
87
|
continue;
|
package/dist/elements.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"elements.js","sourceRoot":"","sources":["../src/elements.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAC5C,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAA;AAMlE,oEAAoE;AACpE,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC;IACxB,OAAO;IACP,SAAS;IACT,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,eAAe;IACf,cAAc;IACd,gBAAgB;IAChB,WAAW;IACX,aAAa;CACd,CAAC,CAAA;AAEF,SAAS,YAAY,CAAC,GAAW;IAC/B,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,WAAW;QAAE,OAAO,OAAO,CAAA;IAC1D,IAAI,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,OAAO,CAAA;IAC5C,IAAI,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,MAAM,CAAA;IACrC,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,UAAU,CAAC,GAAW,EAAE,IAAiB;IAChD,IAAI,IAAI,KAAK,OAAO;QAAE,OAAO,SAAS,CAAA;IACtC,IAAI,IAAI,KAAK,OAAO;QAAE,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA,CAAC,iBAAiB;IAC3D,IAAI,IAAI,KAAK,MAAM;QAAE,OAAO,GAAG,CAAA;IAC/B,OAAO;IACP,IAAI,GAAG,KAAK,WAAW;QAAE,OAAO,OAAO,CAAA;IACvC,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,SAAS,aAAa,CACpB,GAAM,EACN,eAAyC,EACzC,aAAwB;IAExB,MAAM,GAAG,GAAG,gBAAgB,EAAE,CAAA;IAC9B,MAAM,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,CAA6B,CAAA;IAEjE,2FAA2F;IAC3F,MAAM,KAAK,GAA6B,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC;QACpE,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,eAAe,CAAA;IACnB,MAAM,QAAQ,GAAyB,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC;QACnE,CAAC,CAAC,eAAe;QACjB,CAAC,CAAC,aAAa,CAAA;IAEjB,iEAAiE;IACjE,iEAAiE;IACjE,6DAA6D;IAC7D,kEAAkE;IAClE,iEAAiE;IACjE,mEAAmE;IACnE,wDAAwD;IACxD,MAAM,QAAQ,GAAsB,EAAE,CAAA;IAEtC,IAAI,KAAK,EAAE,CAAC;QACV,KAAK,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACpD,IAAI,MAAM,KAAK,KAAK;gBAAE,SAAQ;YAE9B,gBAAgB;YAChB,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC5B,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAA;gBAC/C,4DAA4D;gBAC5D,2DAA2D;gBAC3D,yDAAyD;gBACzD,4DAA4D;gBAC5D,0DAA0D;gBAC1D,wDAAwD;gBACxD,6DAA6D;gBAC7D,oDAAoD;gBACpD,MAAM,MAAM,GAAI,KAAmE;oBACjF,EAAE,cAAc,CAAA;gBAClB,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;oBAChD,uBAAuB,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,CAAA;gBACjE,CAAC;gBACD,EAAE,CAAC,gBAAgB,CAAC,SAAS,EAAE,KAAsB,CAAC,CAAA;gBACtD,SAAQ;YACV,CAAC;YAED,MAAM,aAAa,GAAG,GAAG,KAAK,QAAQ,IAAI,MAAM,KAAK,OAAO,CAAA;YAE5D,yCAAyC;YACzC,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;gBAChC,MAAM,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC,CAAA;gBACjC,MAAM,GAAG,GAAG,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;gBACpC,MAAM,QAAQ,GAAG,KAAkC,CAAA;gBACnD,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,KAAK,CAAC,CAAA;gBAElC,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,CAAC,YAAY,EAAE;oBAC9C,IAAI,EAAE,SAAS;oBACf,QAAQ;oBACR,IAAI;oBACJ,IAAI,EAAE,EAAE;oBACR,GAAG;oBACH,OAAO;iBACR,CAAC,CAAA;gBAEF,MAAM,YAAY,GAAG,OAAO,CAAC,CAAC,CAAE,KAAuB,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAc,CAAC,CAAA;gBACxF,OAAO,CAAC,SAAS,GAAG,YAAY,CAAA;gBAChC,IAAI,aAAa,EAAE,CAAC;oBAClB,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,YAAY,CAAC,CAAC,CAAA;gBAC1E,CAAC;qBAAM,CAAC;oBACN,YAAY,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,YAAY,CAAC,CAAA;gBACrD,CAAC;gBACD,SAAQ;YACV,CAAC;YAED,cAAc;YACd,MAAM,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC,CAAA;YACjC,MAAM,GAAG,GAAG,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;YACpC,IAAI,aAAa,EAAE,CAAC;gBAClB,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC,CAAA;YACnE,CAAC;iBAAM,CAAC;gBACN,YAAY,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,CAAC,CAAA;YAC9C,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,QAAQ,EAAE,CAAC;QACb,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;YAC7B,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9B,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAA;YAC/C,CAAC;iBAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBAChC,KAAK,MAAM,IAAI,IAAI,KAAK;oBAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;YAChD,CAAC;iBAAM,CAAC;gBACN,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;YACvB,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,MAAM,EAAE,IAAI,QAAQ;QAAE,EAAE,EAAE,CAAA;IAE/B,OAAO,EAAE,CAAA;AACX,CAAC;AAeD,+CAA+C;AAC/C,kBAAkB;AAClB,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAA2B,EAAE,CAAY,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAc,CAAA;AACvG,kBAAkB;AAClB,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,CAA2B,EAAE,CAAY,EAAE,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAiB,CAAA;AAChH,kBAAkB;AAClB,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,CAAC,CAA2B,EAAE,CAAY,EAAE,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,CAAoB,CAAA;AACzH,kBAAkB;AAClB,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAA2B,EAAE,CAAY,EAAE,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAkB,CAAA;AACnH,kBAAkB;AAClB,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAA2B,EAAE,CAAY,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAc,CAAA;AACvG,kBAAkB;AAClB,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC,CAA2B,EAAE,CAAY,EAAE,EAAE,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC,CAAC,CAAuB,CAAA;AAClI,kBAAkB;AAClB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAgB,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,CAAmB,CAAA;AAClF,kBAAkB;AAClB,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,CAAC,CAA2B,EAAE,CAAY,EAAE,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAmB,CAAA;AACtH,kBAAkB;AAClB,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,CAAC,CAA2B,EAAE,CAAY,EAAE,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAmB,CAAA;AACtH,kBAAkB;AAClB,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,CAA2B,EAAE,CAAY,EAAE,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAiB,CAAA;AAChH,kBAAkB;AAClB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAA2B,EAAE,CAAY,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAe,CAAA;AAC1G,kBAAkB;AAClB,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,CAAC,CAA2B,EAAE,CAAY,EAAE,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,CAAoB,CAAA;AACzH,kBAAkB;AAClB,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,CAAC,CAA2B,EAAE,CAAY,EAAE,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAmB,CAAA;AACtH,kBAAkB;AAClB,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAA2B,EAAE,CAAY,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAgB,CAAA;AAC7G,kBAAkB;AAClB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAA2B,EAAE,CAAY,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAe,CAAA;AAC1G,kBAAkB;AAClB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAA2B,EAAE,CAAY,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAe,CAAA;AAC1G,kBAAkB;AAClB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAA2B,EAAE,CAAY,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAe,CAAA;AAC1G,kBAAkB;AAClB,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAC,CAA2B,EAAE,CAAY,EAAE,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC,CAAqB,CAAA;AAC5H,kBAAkB;AAClB,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC,CAA2B,EAAE,CAAY,EAAE,EAAE,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC,CAAC,CAAuB,CAAA;AAClI,kBAAkB;AAClB,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,CAAC,CAA2B,EAAE,CAAY,EAAE,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAmB,CAAA;AACtH,kBAAkB;AAClB,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,CAAC,CAA2B,EAAE,CAAY,EAAE,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAmB,CAAA;AACtH,kBAAkB;AAClB,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,CAA2B,EAAE,CAAY,EAAE,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAiB,CAAA;AAChH,kBAAkB;AAClB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAA2B,EAAE,CAAY,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAe,CAAA;AAC1G,kBAAkB;AAClB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAA2B,EAAE,CAAY,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAe,CAAA;AAC1G,kBAAkB;AAClB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAA2B,EAAE,CAAY,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAe,CAAA;AAC1G,kBAAkB;AAClB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAA2B,EAAE,CAAY,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAe,CAAA;AAC1G,kBAAkB;AAClB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAA2B,EAAE,CAAY,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAe,CAAA;AAC1G,kBAAkB;AAClB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAA2B,EAAE,CAAY,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAe,CAAA;AAC1G,kBAAkB;AAClB,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,CAAC,CAA2B,EAAE,CAAY,EAAE,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAmB,CAAA;AACtH,kBAAkB;AAClB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAgB,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,CAAmB,CAAA;AAClF,kBAAkB;AAClB,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAA2B,EAAE,CAAY,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAc,CAAA;AACvG,kBAAkB;AAClB,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,CAAC,CAA2B,EAAE,CAAY,EAAE,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAmB,CAAA;AACtH,kBAAkB;AAClB,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAgB,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC,CAAoB,CAAA;AACrF,kBAAkB;AAClB,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAgB,EAAE,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC,CAAsB,CAAA;AAC3F,kBAAkB;AAClB,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAA2B,EAAE,CAAY,EAAE,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAkB,CAAA;AACnH,kBAAkB;AAClB,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,CAAC,CAA2B,EAAE,CAAY,EAAE,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAmB,CAAA;AACtH,kBAAkB;AAClB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAA2B,EAAE,CAAY,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAe,CAAA;AAC1G,kBAAkB;AAClB,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,CAA2B,EAAE,CAAY,EAAE,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAiB,CAAA;AAChH,kBAAkB;AAClB,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,CAA2B,EAAE,CAAY,EAAE,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAiB,CAAA;AAChH,kBAAkB;AAClB,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAA2B,EAAE,CAAY,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAgB,CAAA;AAC7G,kBAAkB;AAClB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAA2B,EAAE,CAAY,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAe,CAAA;AAC1G,kBAAkB;AAClB,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAC,CAA2B,EAAE,CAAY,EAAE,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC,CAAqB,CAAA;AAC5H,kBAAkB;AAClB,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,CAAC,CAA2B,EAAE,CAAY,EAAE,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAmB,CAAA;AACtH,kBAAkB;AAClB,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,CAAC,CAA2B,EAAE,CAAY,EAAE,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAmB,CAAA;AACtH,kBAAkB;AAClB,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAA2B,EAAE,CAAY,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAc,CAAA;AACvG,kBAAkB;AAClB,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAA2B,EAAE,CAAY,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAgB,CAAA;AAC7G,kBAAkB;AAClB,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAC,CAA2B,EAAE,CAAY,EAAE,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC,CAAqB,CAAA;AAC5H,kBAAkB;AAClB,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,CAAC,CAA2B,EAAE,CAAY,EAAE,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,CAAoB,CAAA;AACzH,kBAAkB;AAClB,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,CAAC,CAA2B,EAAE,CAAY,EAAE,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAmB,CAAA;AACtH,kBAAkB;AAClB,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAA2B,EAAE,CAAY,EAAE,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAkB,CAAA;AACnH,kBAAkB;AAClB,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,CAA2B,EAAE,CAAY,EAAE,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAiB,CAAA;AAChH,kBAAkB;AAClB,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,CAAC,CAA2B,EAAE,CAAY,EAAE,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAmB,CAAA;AACtH,kBAAkB;AAClB,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAA2B,EAAE,CAAY,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAgB,CAAA;AAC7G,kBAAkB;AAClB,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,CAAC,CAA2B,EAAE,CAAY,EAAE,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,CAAoB,CAAA;AACzH,kBAAkB;AAClB,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAA2B,EAAE,CAAY,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAgB,CAAA;AAC7G,kBAAkB;AAClB,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAA2B,EAAE,CAAY,EAAE,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAkB,CAAA;AACnH,kBAAkB;AAClB,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAA2B,EAAE,CAAY,EAAE,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAkB,CAAA;AACnH,kBAAkB;AAClB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAA2B,EAAE,CAAY,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAe,CAAA;AAC1G,kBAAkB;AAClB,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAC,CAA2B,EAAE,CAAY,EAAE,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC,CAAqB,CAAA;AAC5H,kBAAkB;AAClB,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAA2B,EAAE,CAAY,EAAE,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAkB,CAAA;AACnH,kBAAkB;AAClB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAA2B,EAAE,CAAY,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAe,CAAA;AAC1G,kBAAkB;AAClB,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAA2B,EAAE,CAAY,EAAE,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAkB,CAAA;AACnH,kBAAkB;AAClB,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,CAA2B,EAAE,CAAY,EAAE,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAiB,CAAA;AAChH,kBAAkB;AAClB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAA2B,EAAE,CAAY,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAe,CAAA;AAC1G,kBAAkB;AAClB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAA2B,EAAE,CAAY,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAe,CAAA;AAC1G,kBAAkB;AAClB,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAA2B,EAAE,CAAY,EAAE,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAkB,CAAA;AACnH,oBAAoB","sourcesContent":["import type { BindingKind } from './types.js'\nimport { getRenderContext } from './render-context.js'\nimport { createBinding, applyBinding } from './binding.js'\nimport { FULL_MASK } from './update-loop.js'\nimport { registerBindingVariants } from './binding-descriptors.js'\n\ntype ElementProps = Record<string, unknown>\ntype Child = Node | string | Node[]\ntype Children = Child[]\n\n// DOM properties set via elem[key] = value rather than setAttribute\nconst PROP_KEYS = new Set([\n 'value',\n 'checked',\n 'selected',\n 'disabled',\n 'readOnly',\n 'multiple',\n 'indeterminate',\n 'defaultValue',\n 'defaultChecked',\n 'innerHTML',\n 'textContent',\n])\n\nfunction classifyKind(key: string): BindingKind {\n if (key === 'class' || key === 'className') return 'class'\n if (key.startsWith('style.')) return 'style'\n if (PROP_KEYS.has(key)) return 'prop'\n return 'attr'\n}\n\nfunction resolveKey(key: string, kind: BindingKind): string | undefined {\n if (kind === 'class') return undefined\n if (kind === 'style') return key.slice(6) // strip 'style.'\n if (kind === 'prop') return key\n // attr\n if (key === 'className') return 'class'\n return key\n}\n\nfunction createElement<K extends keyof HTMLElementTagNameMap>(\n tag: K,\n propsOrChildren?: ElementProps | Children,\n maybeChildren?: Children,\n): HTMLElementTagNameMap[K] {\n const ctx = getRenderContext()\n const el = ctx.dom.createElement(tag) as HTMLElementTagNameMap[K]\n\n // Distinguish (props, children) from (children,) — if first arg is an Array, it's children\n const props: ElementProps | undefined = Array.isArray(propsOrChildren)\n ? undefined\n : propsOrChildren\n const children: Children | undefined = Array.isArray(propsOrChildren)\n ? propsOrChildren\n : maybeChildren\n\n // Props that have to apply AFTER children are appended. `<select\n // value=...>` is the canonical case: setting `value` on a select\n // without options is a silent no-op in real browsers + jsdom\n // (value falls through to the first option on append), and a hard\n // throw under linkedom (its HTMLSelectElement.value setter, once\n // patched, walks options — but there are none yet if we set before\n // appending). Deferring the apply fixes all three envs.\n const deferred: Array<() => void> = []\n\n if (props) {\n for (const [rawKey, value] of Object.entries(props)) {\n if (rawKey === 'key') continue\n\n // Event handler\n if (/^on[A-Z]/.test(rawKey)) {\n const eventName = rawKey.slice(2).toLowerCase()\n // Compiler-tagged variants: when the handler arrow contains\n // literal `send({type: 'X'})` calls, the @llui/vite-plugin\n // tagger pass attaches `__lluiVariants: ['X', …]` to the\n // function. Register those with the active component's live\n // descriptor registry so the agent layer can surface them\n // through `list_actions`. The lifetime hook removes the\n // entries on scope dispose (item unmount, branch swap, etc.)\n // so the LLM sees only what's currently affordable.\n const tagged = (value as { __lluiVariants?: readonly string[] } | null | undefined)\n ?.__lluiVariants\n if (tagged && tagged.length > 0 && ctx.instance) {\n registerBindingVariants(ctx.instance, ctx.rootLifetime, tagged)\n }\n el.addEventListener(eventName, value as EventListener)\n continue\n }\n\n const isSelectValue = tag === 'select' && rawKey === 'value'\n\n // Reactive binding — value is a function\n if (typeof value === 'function') {\n const kind = classifyKind(rawKey)\n const key = resolveKey(rawKey, kind)\n const accessor = value as (state: never) => unknown\n const perItem = value.length === 0\n\n const binding = createBinding(ctx.rootLifetime, {\n mask: FULL_MASK,\n accessor,\n kind,\n node: el,\n key,\n perItem,\n })\n\n const initialValue = perItem ? (value as () => unknown)() : accessor(ctx.state as never)\n binding.lastValue = initialValue\n if (isSelectValue) {\n deferred.push(() => applyBinding({ kind, node: el, key }, initialValue))\n } else {\n applyBinding({ kind, node: el, key }, initialValue)\n }\n continue\n }\n\n // Static prop\n const kind = classifyKind(rawKey)\n const key = resolveKey(rawKey, kind)\n if (isSelectValue) {\n deferred.push(() => applyBinding({ kind, node: el, key }, value))\n } else {\n applyBinding({ kind, node: el, key }, value)\n }\n }\n }\n\n if (children) {\n for (const child of children) {\n if (typeof child === 'string') {\n el.appendChild(ctx.dom.createTextNode(child))\n } else if (Array.isArray(child)) {\n for (const node of child) el.appendChild(node)\n } else {\n el.appendChild(child)\n }\n }\n }\n\n for (const fn of deferred) fn()\n\n return el\n}\n\n// Element helper signature — accepts (props, children?), (children,), or no args\ntype ElFn<K extends keyof HTMLElementTagNameMap> = {\n (): HTMLElementTagNameMap[K]\n (props: ElementProps, children?: Children): HTMLElementTagNameMap[K]\n (children: Children): HTMLElementTagNameMap[K]\n}\n\n// Void-element helper signature — no children allowed\ntype VoidElFn<K extends keyof HTMLElementTagNameMap> = {\n (): HTMLElementTagNameMap[K]\n (props: ElementProps): HTMLElementTagNameMap[K]\n}\n\n/* v8 ignore start — mechanical tag wrappers */\n// prettier-ignore\nexport const a = ((p?: ElementProps | Children, c?: Children) => createElement('a', p, c)) as ElFn<'a'>\n// prettier-ignore\nexport const abbr = ((p?: ElementProps | Children, c?: Children) => createElement('abbr', p, c)) as ElFn<'abbr'>\n// prettier-ignore\nexport const article = ((p?: ElementProps | Children, c?: Children) => createElement('article', p, c)) as ElFn<'article'>\n// prettier-ignore\nexport const aside = ((p?: ElementProps | Children, c?: Children) => createElement('aside', p, c)) as ElFn<'aside'>\n// prettier-ignore\nexport const b = ((p?: ElementProps | Children, c?: Children) => createElement('b', p, c)) as ElFn<'b'>\n// prettier-ignore\nexport const blockquote = ((p?: ElementProps | Children, c?: Children) => createElement('blockquote', p, c)) as ElFn<'blockquote'>\n// prettier-ignore\nexport const br = ((p?: ElementProps) => createElement('br', p)) as VoidElFn<'br'>\n// prettier-ignore\nexport const button = ((p?: ElementProps | Children, c?: Children) => createElement('button', p, c)) as ElFn<'button'>\n// prettier-ignore\nexport const canvas = ((p?: ElementProps | Children, c?: Children) => createElement('canvas', p, c)) as ElFn<'canvas'>\n// prettier-ignore\nexport const code = ((p?: ElementProps | Children, c?: Children) => createElement('code', p, c)) as ElFn<'code'>\n// prettier-ignore\nexport const dd = ((p?: ElementProps | Children, c?: Children) => createElement('dd', p, c)) as ElFn<'dd'>\n// prettier-ignore\nexport const details = ((p?: ElementProps | Children, c?: Children) => createElement('details', p, c)) as ElFn<'details'>\n// prettier-ignore\nexport const dialog = ((p?: ElementProps | Children, c?: Children) => createElement('dialog', p, c)) as ElFn<'dialog'>\n// prettier-ignore\nexport const div = ((p?: ElementProps | Children, c?: Children) => createElement('div', p, c)) as ElFn<'div'>\n// prettier-ignore\nexport const dl = ((p?: ElementProps | Children, c?: Children) => createElement('dl', p, c)) as ElFn<'dl'>\n// prettier-ignore\nexport const dt = ((p?: ElementProps | Children, c?: Children) => createElement('dt', p, c)) as ElFn<'dt'>\n// prettier-ignore\nexport const em = ((p?: ElementProps | Children, c?: Children) => createElement('em', p, c)) as ElFn<'em'>\n// prettier-ignore\nexport const fieldset = ((p?: ElementProps | Children, c?: Children) => createElement('fieldset', p, c)) as ElFn<'fieldset'>\n// prettier-ignore\nexport const figcaption = ((p?: ElementProps | Children, c?: Children) => createElement('figcaption', p, c)) as ElFn<'figcaption'>\n// prettier-ignore\nexport const figure = ((p?: ElementProps | Children, c?: Children) => createElement('figure', p, c)) as ElFn<'figure'>\n// prettier-ignore\nexport const footer = ((p?: ElementProps | Children, c?: Children) => createElement('footer', p, c)) as ElFn<'footer'>\n// prettier-ignore\nexport const form = ((p?: ElementProps | Children, c?: Children) => createElement('form', p, c)) as ElFn<'form'>\n// prettier-ignore\nexport const h1 = ((p?: ElementProps | Children, c?: Children) => createElement('h1', p, c)) as ElFn<'h1'>\n// prettier-ignore\nexport const h2 = ((p?: ElementProps | Children, c?: Children) => createElement('h2', p, c)) as ElFn<'h2'>\n// prettier-ignore\nexport const h3 = ((p?: ElementProps | Children, c?: Children) => createElement('h3', p, c)) as ElFn<'h3'>\n// prettier-ignore\nexport const h4 = ((p?: ElementProps | Children, c?: Children) => createElement('h4', p, c)) as ElFn<'h4'>\n// prettier-ignore\nexport const h5 = ((p?: ElementProps | Children, c?: Children) => createElement('h5', p, c)) as ElFn<'h5'>\n// prettier-ignore\nexport const h6 = ((p?: ElementProps | Children, c?: Children) => createElement('h6', p, c)) as ElFn<'h6'>\n// prettier-ignore\nexport const header = ((p?: ElementProps | Children, c?: Children) => createElement('header', p, c)) as ElFn<'header'>\n// prettier-ignore\nexport const hr = ((p?: ElementProps) => createElement('hr', p)) as VoidElFn<'hr'>\n// prettier-ignore\nexport const i = ((p?: ElementProps | Children, c?: Children) => createElement('i', p, c)) as ElFn<'i'>\n// prettier-ignore\nexport const iframe = ((p?: ElementProps | Children, c?: Children) => createElement('iframe', p, c)) as ElFn<'iframe'>\n// prettier-ignore\nexport const img = ((p?: ElementProps) => createElement('img', p)) as VoidElFn<'img'>\n// prettier-ignore\nexport const input = ((p?: ElementProps) => createElement('input', p)) as VoidElFn<'input'>\n// prettier-ignore\nexport const label = ((p?: ElementProps | Children, c?: Children) => createElement('label', p, c)) as ElFn<'label'>\n// prettier-ignore\nexport const legend = ((p?: ElementProps | Children, c?: Children) => createElement('legend', p, c)) as ElFn<'legend'>\n// prettier-ignore\nexport const li = ((p?: ElementProps | Children, c?: Children) => createElement('li', p, c)) as ElFn<'li'>\n// prettier-ignore\nexport const main = ((p?: ElementProps | Children, c?: Children) => createElement('main', p, c)) as ElFn<'main'>\n// prettier-ignore\nexport const mark = ((p?: ElementProps | Children, c?: Children) => createElement('mark', p, c)) as ElFn<'mark'>\n// prettier-ignore\nexport const nav = ((p?: ElementProps | Children, c?: Children) => createElement('nav', p, c)) as ElFn<'nav'>\n// prettier-ignore\nexport const ol = ((p?: ElementProps | Children, c?: Children) => createElement('ol', p, c)) as ElFn<'ol'>\n// prettier-ignore\nexport const optgroup = ((p?: ElementProps | Children, c?: Children) => createElement('optgroup', p, c)) as ElFn<'optgroup'>\n// prettier-ignore\nexport const option = ((p?: ElementProps | Children, c?: Children) => createElement('option', p, c)) as ElFn<'option'>\n// prettier-ignore\nexport const output = ((p?: ElementProps | Children, c?: Children) => createElement('output', p, c)) as ElFn<'output'>\n// prettier-ignore\nexport const p = ((p?: ElementProps | Children, c?: Children) => createElement('p', p, c)) as ElFn<'p'>\n// prettier-ignore\nexport const pre = ((p?: ElementProps | Children, c?: Children) => createElement('pre', p, c)) as ElFn<'pre'>\n// prettier-ignore\nexport const progress = ((p?: ElementProps | Children, c?: Children) => createElement('progress', p, c)) as ElFn<'progress'>\n// prettier-ignore\nexport const section = ((p?: ElementProps | Children, c?: Children) => createElement('section', p, c)) as ElFn<'section'>\n// prettier-ignore\nexport const select = ((p?: ElementProps | Children, c?: Children) => createElement('select', p, c)) as ElFn<'select'>\n// prettier-ignore\nexport const small = ((p?: ElementProps | Children, c?: Children) => createElement('small', p, c)) as ElFn<'small'>\n// prettier-ignore\nexport const span = ((p?: ElementProps | Children, c?: Children) => createElement('span', p, c)) as ElFn<'span'>\n// prettier-ignore\nexport const strong = ((p?: ElementProps | Children, c?: Children) => createElement('strong', p, c)) as ElFn<'strong'>\n// prettier-ignore\nexport const sub = ((p?: ElementProps | Children, c?: Children) => createElement('sub', p, c)) as ElFn<'sub'>\n// prettier-ignore\nexport const summary = ((p?: ElementProps | Children, c?: Children) => createElement('summary', p, c)) as ElFn<'summary'>\n// prettier-ignore\nexport const sup = ((p?: ElementProps | Children, c?: Children) => createElement('sup', p, c)) as ElFn<'sup'>\n// prettier-ignore\nexport const table = ((p?: ElementProps | Children, c?: Children) => createElement('table', p, c)) as ElFn<'table'>\n// prettier-ignore\nexport const tbody = ((p?: ElementProps | Children, c?: Children) => createElement('tbody', p, c)) as ElFn<'tbody'>\n// prettier-ignore\nexport const td = ((p?: ElementProps | Children, c?: Children) => createElement('td', p, c)) as ElFn<'td'>\n// prettier-ignore\nexport const textarea = ((p?: ElementProps | Children, c?: Children) => createElement('textarea', p, c)) as ElFn<'textarea'>\n// prettier-ignore\nexport const tfoot = ((p?: ElementProps | Children, c?: Children) => createElement('tfoot', p, c)) as ElFn<'tfoot'>\n// prettier-ignore\nexport const th = ((p?: ElementProps | Children, c?: Children) => createElement('th', p, c)) as ElFn<'th'>\n// prettier-ignore\nexport const thead = ((p?: ElementProps | Children, c?: Children) => createElement('thead', p, c)) as ElFn<'thead'>\n// prettier-ignore\nexport const time = ((p?: ElementProps | Children, c?: Children) => createElement('time', p, c)) as ElFn<'time'>\n// prettier-ignore\nexport const tr = ((p?: ElementProps | Children, c?: Children) => createElement('tr', p, c)) as ElFn<'tr'>\n// prettier-ignore\nexport const ul = ((p?: ElementProps | Children, c?: Children) => createElement('ul', p, c)) as ElFn<'ul'>\n// prettier-ignore\nexport const video = ((p?: ElementProps | Children, c?: Children) => createElement('video', p, c)) as ElFn<'video'>\n/* v8 ignore stop */\n"]}
|
|
1
|
+
{"version":3,"file":"elements.js","sourceRoot":"","sources":["../src/elements.ts"],"names":[],"mappings":"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","sourcesContent":["import type { BindingKind } from './types.js'\nimport { getRenderContext } from './render-context.js'\nimport { createBinding, applyBinding } from './binding.js'\nimport { FULL_MASK } from './update-loop.js'\nimport { registerBindingVariants } from './binding-descriptors.js'\n\ntype ElementProps = Record<string, unknown>\ntype Child = Node | string | Node[]\ntype Children = Child[]\n\n// DOM properties set via elem[key] = value rather than setAttribute\nconst PROP_KEYS = new Set([\n 'value',\n 'checked',\n 'selected',\n 'disabled',\n 'readOnly',\n 'multiple',\n 'indeterminate',\n 'defaultValue',\n 'defaultChecked',\n 'innerHTML',\n 'textContent',\n])\n\nfunction classifyKind(key: string): BindingKind {\n if (key === 'class' || key === 'className') return 'class'\n if (key.startsWith('style.')) return 'style'\n if (PROP_KEYS.has(key)) return 'prop'\n return 'attr'\n}\n\nfunction resolveKey(key: string, kind: BindingKind): string | undefined {\n if (kind === 'class') return undefined\n if (kind === 'style') return key.slice(6) // strip 'style.'\n if (kind === 'prop') return key\n // attr\n if (key === 'className') return 'class'\n return key\n}\n\nfunction createElement<K extends keyof HTMLElementTagNameMap>(\n tag: K,\n propsOrChildren?: ElementProps | Children,\n maybeChildren?: Children,\n): HTMLElementTagNameMap[K] {\n const ctx = getRenderContext()\n const el = ctx.dom.createElement(tag) as HTMLElementTagNameMap[K]\n\n // Distinguish (props, children) from (children,) — if first arg is an Array, it's children\n const props: ElementProps | undefined = Array.isArray(propsOrChildren)\n ? undefined\n : propsOrChildren\n const children: Children | undefined = Array.isArray(propsOrChildren)\n ? propsOrChildren\n : maybeChildren\n\n // Props that have to apply AFTER children are appended. `<select\n // value=...>` is the canonical case: setting `value` on a select\n // without options is a silent no-op in real browsers + jsdom\n // (value falls through to the first option on append), and a hard\n // throw under linkedom (its HTMLSelectElement.value setter, once\n // patched, walks options — but there are none yet if we set before\n // appending). Deferring the apply fixes all three envs.\n const deferred: Array<() => void> = []\n\n if (props) {\n for (const [rawKey, value] of Object.entries(props)) {\n if (rawKey === 'key') continue\n\n // Event handler\n if (/^on[A-Z]/.test(rawKey)) {\n const eventName = rawKey.slice(2).toLowerCase()\n // Compiler-tagged variants: when the handler arrow contains\n // literal `send({type: 'X'})` calls, the @llui/vite-plugin\n // tagger pass attaches `__lluiVariants: ['X', …]` to the\n // function. Register those with the active component's live\n // descriptor registry so the agent layer can surface them\n // through `list_actions`. The lifetime hook removes the\n // entries on scope dispose (item unmount, branch swap, etc.)\n // so the LLM sees only what's currently affordable.\n // Agent-only — gated by the build-time `__LLUI_AGENT__` flag.\n // Vite-plugin sets the flag to `false` by default; consumers\n // pass `llui({ agent: true })` to flip it. When false, the\n // bundler dead-codes this branch and `registerBindingVariants`\n // becomes unreachable, allowing the whole binding-descriptors\n // module to tree-shake out of the bundle.\n if (typeof __LLUI_AGENT__ !== 'undefined' && __LLUI_AGENT__) {\n const tagged = (value as { __lluiVariants?: readonly string[] } | null | undefined)\n ?.__lluiVariants\n if (tagged && tagged.length > 0 && ctx.instance) {\n registerBindingVariants(ctx.instance, ctx.rootLifetime, tagged)\n }\n }\n el.addEventListener(eventName, value as EventListener)\n continue\n }\n\n const isSelectValue = tag === 'select' && rawKey === 'value'\n\n // Reactive binding — value is a function\n if (typeof value === 'function') {\n const kind = classifyKind(rawKey)\n const key = resolveKey(rawKey, kind)\n const accessor = value as (state: never) => unknown\n const perItem = value.length === 0\n\n const binding = createBinding(ctx.rootLifetime, {\n mask: FULL_MASK,\n accessor,\n kind,\n node: el,\n key,\n perItem,\n })\n\n const initialValue = perItem ? (value as () => unknown)() : accessor(ctx.state as never)\n binding.lastValue = initialValue\n if (isSelectValue) {\n deferred.push(() => applyBinding({ kind, node: el, key }, initialValue))\n } else {\n applyBinding({ kind, node: el, key }, initialValue)\n }\n continue\n }\n\n // Static prop\n const kind = classifyKind(rawKey)\n const key = resolveKey(rawKey, kind)\n if (isSelectValue) {\n deferred.push(() => applyBinding({ kind, node: el, key }, value))\n } else {\n applyBinding({ kind, node: el, key }, value)\n }\n }\n }\n\n if (children) {\n for (const child of children) {\n if (typeof child === 'string') {\n el.appendChild(ctx.dom.createTextNode(child))\n } else if (Array.isArray(child)) {\n for (const node of child) el.appendChild(node)\n } else {\n el.appendChild(child)\n }\n }\n }\n\n for (const fn of deferred) fn()\n\n return el\n}\n\n// Element helper signature — accepts (props, children?), (children,), or no args\ntype ElFn<K extends keyof HTMLElementTagNameMap> = {\n (): HTMLElementTagNameMap[K]\n (props: ElementProps, children?: Children): HTMLElementTagNameMap[K]\n (children: Children): HTMLElementTagNameMap[K]\n}\n\n// Void-element helper signature — no children allowed\ntype VoidElFn<K extends keyof HTMLElementTagNameMap> = {\n (): HTMLElementTagNameMap[K]\n (props: ElementProps): HTMLElementTagNameMap[K]\n}\n\n/* v8 ignore start — mechanical tag wrappers */\n// prettier-ignore\nexport const a = ((p?: ElementProps | Children, c?: Children) => createElement('a', p, c)) as ElFn<'a'>\n// prettier-ignore\nexport const abbr = ((p?: ElementProps | Children, c?: Children) => createElement('abbr', p, c)) as ElFn<'abbr'>\n// prettier-ignore\nexport const article = ((p?: ElementProps | Children, c?: Children) => createElement('article', p, c)) as ElFn<'article'>\n// prettier-ignore\nexport const aside = ((p?: ElementProps | Children, c?: Children) => createElement('aside', p, c)) as ElFn<'aside'>\n// prettier-ignore\nexport const b = ((p?: ElementProps | Children, c?: Children) => createElement('b', p, c)) as ElFn<'b'>\n// prettier-ignore\nexport const blockquote = ((p?: ElementProps | Children, c?: Children) => createElement('blockquote', p, c)) as ElFn<'blockquote'>\n// prettier-ignore\nexport const br = ((p?: ElementProps) => createElement('br', p)) as VoidElFn<'br'>\n// prettier-ignore\nexport const button = ((p?: ElementProps | Children, c?: Children) => createElement('button', p, c)) as ElFn<'button'>\n// prettier-ignore\nexport const canvas = ((p?: ElementProps | Children, c?: Children) => createElement('canvas', p, c)) as ElFn<'canvas'>\n// prettier-ignore\nexport const code = ((p?: ElementProps | Children, c?: Children) => createElement('code', p, c)) as ElFn<'code'>\n// prettier-ignore\nexport const dd = ((p?: ElementProps | Children, c?: Children) => createElement('dd', p, c)) as ElFn<'dd'>\n// prettier-ignore\nexport const details = ((p?: ElementProps | Children, c?: Children) => createElement('details', p, c)) as ElFn<'details'>\n// prettier-ignore\nexport const dialog = ((p?: ElementProps | Children, c?: Children) => createElement('dialog', p, c)) as ElFn<'dialog'>\n// prettier-ignore\nexport const div = ((p?: ElementProps | Children, c?: Children) => createElement('div', p, c)) as ElFn<'div'>\n// prettier-ignore\nexport const dl = ((p?: ElementProps | Children, c?: Children) => createElement('dl', p, c)) as ElFn<'dl'>\n// prettier-ignore\nexport const dt = ((p?: ElementProps | Children, c?: Children) => createElement('dt', p, c)) as ElFn<'dt'>\n// prettier-ignore\nexport const em = ((p?: ElementProps | Children, c?: Children) => createElement('em', p, c)) as ElFn<'em'>\n// prettier-ignore\nexport const fieldset = ((p?: ElementProps | Children, c?: Children) => createElement('fieldset', p, c)) as ElFn<'fieldset'>\n// prettier-ignore\nexport const figcaption = ((p?: ElementProps | Children, c?: Children) => createElement('figcaption', p, c)) as ElFn<'figcaption'>\n// prettier-ignore\nexport const figure = ((p?: ElementProps | Children, c?: Children) => createElement('figure', p, c)) as ElFn<'figure'>\n// prettier-ignore\nexport const footer = ((p?: ElementProps | Children, c?: Children) => createElement('footer', p, c)) as ElFn<'footer'>\n// prettier-ignore\nexport const form = ((p?: ElementProps | Children, c?: Children) => createElement('form', p, c)) as ElFn<'form'>\n// prettier-ignore\nexport const h1 = ((p?: ElementProps | Children, c?: Children) => createElement('h1', p, c)) as ElFn<'h1'>\n// prettier-ignore\nexport const h2 = ((p?: ElementProps | Children, c?: Children) => createElement('h2', p, c)) as ElFn<'h2'>\n// prettier-ignore\nexport const h3 = ((p?: ElementProps | Children, c?: Children) => createElement('h3', p, c)) as ElFn<'h3'>\n// prettier-ignore\nexport const h4 = ((p?: ElementProps | Children, c?: Children) => createElement('h4', p, c)) as ElFn<'h4'>\n// prettier-ignore\nexport const h5 = ((p?: ElementProps | Children, c?: Children) => createElement('h5', p, c)) as ElFn<'h5'>\n// prettier-ignore\nexport const h6 = ((p?: ElementProps | Children, c?: Children) => createElement('h6', p, c)) as ElFn<'h6'>\n// prettier-ignore\nexport const header = ((p?: ElementProps | Children, c?: Children) => createElement('header', p, c)) as ElFn<'header'>\n// prettier-ignore\nexport const hr = ((p?: ElementProps) => createElement('hr', p)) as VoidElFn<'hr'>\n// prettier-ignore\nexport const i = ((p?: ElementProps | Children, c?: Children) => createElement('i', p, c)) as ElFn<'i'>\n// prettier-ignore\nexport const iframe = ((p?: ElementProps | Children, c?: Children) => createElement('iframe', p, c)) as ElFn<'iframe'>\n// prettier-ignore\nexport const img = ((p?: ElementProps) => createElement('img', p)) as VoidElFn<'img'>\n// prettier-ignore\nexport const input = ((p?: ElementProps) => createElement('input', p)) as VoidElFn<'input'>\n// prettier-ignore\nexport const label = ((p?: ElementProps | Children, c?: Children) => createElement('label', p, c)) as ElFn<'label'>\n// prettier-ignore\nexport const legend = ((p?: ElementProps | Children, c?: Children) => createElement('legend', p, c)) as ElFn<'legend'>\n// prettier-ignore\nexport const li = ((p?: ElementProps | Children, c?: Children) => createElement('li', p, c)) as ElFn<'li'>\n// prettier-ignore\nexport const main = ((p?: ElementProps | Children, c?: Children) => createElement('main', p, c)) as ElFn<'main'>\n// prettier-ignore\nexport const mark = ((p?: ElementProps | Children, c?: Children) => createElement('mark', p, c)) as ElFn<'mark'>\n// prettier-ignore\nexport const nav = ((p?: ElementProps | Children, c?: Children) => createElement('nav', p, c)) as ElFn<'nav'>\n// prettier-ignore\nexport const ol = ((p?: ElementProps | Children, c?: Children) => createElement('ol', p, c)) as ElFn<'ol'>\n// prettier-ignore\nexport const optgroup = ((p?: ElementProps | Children, c?: Children) => createElement('optgroup', p, c)) as ElFn<'optgroup'>\n// prettier-ignore\nexport const option = ((p?: ElementProps | Children, c?: Children) => createElement('option', p, c)) as ElFn<'option'>\n// prettier-ignore\nexport const output = ((p?: ElementProps | Children, c?: Children) => createElement('output', p, c)) as ElFn<'output'>\n// prettier-ignore\nexport const p = ((p?: ElementProps | Children, c?: Children) => createElement('p', p, c)) as ElFn<'p'>\n// prettier-ignore\nexport const pre = ((p?: ElementProps | Children, c?: Children) => createElement('pre', p, c)) as ElFn<'pre'>\n// prettier-ignore\nexport const progress = ((p?: ElementProps | Children, c?: Children) => createElement('progress', p, c)) as ElFn<'progress'>\n// prettier-ignore\nexport const section = ((p?: ElementProps | Children, c?: Children) => createElement('section', p, c)) as ElFn<'section'>\n// prettier-ignore\nexport const select = ((p?: ElementProps | Children, c?: Children) => createElement('select', p, c)) as ElFn<'select'>\n// prettier-ignore\nexport const small = ((p?: ElementProps | Children, c?: Children) => createElement('small', p, c)) as ElFn<'small'>\n// prettier-ignore\nexport const span = ((p?: ElementProps | Children, c?: Children) => createElement('span', p, c)) as ElFn<'span'>\n// prettier-ignore\nexport const strong = ((p?: ElementProps | Children, c?: Children) => createElement('strong', p, c)) as ElFn<'strong'>\n// prettier-ignore\nexport const sub = ((p?: ElementProps | Children, c?: Children) => createElement('sub', p, c)) as ElFn<'sub'>\n// prettier-ignore\nexport const summary = ((p?: ElementProps | Children, c?: Children) => createElement('summary', p, c)) as ElFn<'summary'>\n// prettier-ignore\nexport const sup = ((p?: ElementProps | Children, c?: Children) => createElement('sup', p, c)) as ElFn<'sup'>\n// prettier-ignore\nexport const table = ((p?: ElementProps | Children, c?: Children) => createElement('table', p, c)) as ElFn<'table'>\n// prettier-ignore\nexport const tbody = ((p?: ElementProps | Children, c?: Children) => createElement('tbody', p, c)) as ElFn<'tbody'>\n// prettier-ignore\nexport const td = ((p?: ElementProps | Children, c?: Children) => createElement('td', p, c)) as ElFn<'td'>\n// prettier-ignore\nexport const textarea = ((p?: ElementProps | Children, c?: Children) => createElement('textarea', p, c)) as ElFn<'textarea'>\n// prettier-ignore\nexport const tfoot = ((p?: ElementProps | Children, c?: Children) => createElement('tfoot', p, c)) as ElFn<'tfoot'>\n// prettier-ignore\nexport const th = ((p?: ElementProps | Children, c?: Children) => createElement('th', p, c)) as ElFn<'th'>\n// prettier-ignore\nexport const thead = ((p?: ElementProps | Children, c?: Children) => createElement('thead', p, c)) as ElFn<'thead'>\n// prettier-ignore\nexport const time = ((p?: ElementProps | Children, c?: Children) => createElement('time', p, c)) as ElFn<'time'>\n// prettier-ignore\nexport const tr = ((p?: ElementProps | Children, c?: Children) => createElement('tr', p, c)) as ElFn<'tr'>\n// prettier-ignore\nexport const ul = ((p?: ElementProps | Children, c?: Children) => createElement('ul', p, c)) as ElFn<'ul'>\n// prettier-ignore\nexport const video = ((p?: ElementProps | Children, c?: Children) => createElement('video', p, c)) as ElFn<'video'>\n/* v8 ignore stop */\n"]}
|
package/dist/hmr.js
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { flushInstance } from './update-loop.js';
|
|
2
2
|
import { createLifetime, disposeLifetime } from './lifetime.js';
|
|
3
|
-
import { setRenderContext, clearRenderContext } from './render-context.js';
|
|
3
|
+
import { setRenderContext, clearRenderContext, getInstanceViewBag } from './render-context.js';
|
|
4
4
|
import { setFlatBindings } from './binding.js';
|
|
5
5
|
import { getBindingDescriptors } from './binding-descriptors.js';
|
|
6
6
|
import { unregisterInstance } from './runtime.js';
|
|
7
7
|
import { _setHmrModule } from './mount.js';
|
|
8
|
-
import { createView } from './view-helpers.js';
|
|
9
8
|
/**
|
|
10
9
|
* Enable HMR state preservation. Called by compiler-generated dev code.
|
|
11
10
|
* Importing this module registers it with mountApp for hot-swapping.
|
|
@@ -124,7 +123,6 @@ function swapEntry(entry, name, newDef) {
|
|
|
124
123
|
update: newDef.update,
|
|
125
124
|
view: newDef.view,
|
|
126
125
|
onEffect: newDef.onEffect,
|
|
127
|
-
__update: newDef.__update,
|
|
128
126
|
__handlers: newDef.__handlers,
|
|
129
127
|
__prefixes: newDef.__prefixes,
|
|
130
128
|
};
|
|
@@ -168,7 +166,11 @@ function swapEntry(entry, name, newDef) {
|
|
|
168
166
|
send: typedInst.send,
|
|
169
167
|
instance: typedInst,
|
|
170
168
|
});
|
|
171
|
-
|
|
169
|
+
// v0.4 Tier 1.2 + cache: HMR clears _viewBag below before re-render so
|
|
170
|
+
// the next call rebuilds from the new def.__view factory.
|
|
171
|
+
typedInst._viewBag = undefined;
|
|
172
|
+
const bag = getInstanceViewBag(typedInst, typedInst.send);
|
|
173
|
+
const nodes = typedInst.def.view(bag);
|
|
172
174
|
clearRenderContext();
|
|
173
175
|
setFlatBindings(null);
|
|
174
176
|
if (entry.kind === 'container') {
|
|
@@ -250,6 +252,9 @@ function makeReplacementHandle(name, entry, typedInst) {
|
|
|
250
252
|
return () => listeners.delete(listener);
|
|
251
253
|
},
|
|
252
254
|
getBindingDescriptors() {
|
|
255
|
+
// Agent-only — see mount.ts's matching guard for rationale.
|
|
256
|
+
if (typeof __LLUI_AGENT__ === 'undefined' || !__LLUI_AGENT__)
|
|
257
|
+
return [];
|
|
253
258
|
if (disposed)
|
|
254
259
|
return [];
|
|
255
260
|
return getBindingDescriptors(typedInst);
|
package/dist/hmr.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hmr.js","sourceRoot":"","sources":["../src/hmr.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ComponentDef, AppHandle } from './types.js'\nimport type { ComponentInstance } from './update-loop.js'\nimport { flushInstance } from './update-loop.js'\nimport { createLifetime, disposeLifetime } from './lifetime.js'\nimport { setRenderContext, clearRenderContext } from './render-context.js'\nimport { setFlatBindings } from './binding.js'\nimport { getBindingDescriptors } from './binding-descriptors.js'\nimport { unregisterInstance } from './runtime.js'\nimport { _setHmrModule } from './mount.js'\nimport { createView } from './view-helpers.js'\n\n/**\n * Enable HMR state preservation. Called by compiler-generated dev code.\n * Importing this module registers it with mountApp for hot-swapping.\n */\nexport function enableHmr(): void {\n _setHmrModule({\n enableHmr,\n registerForHmr,\n registerForAnchor,\n unregisterForHmr,\n replaceComponent,\n replaceComponentForContainer,\n replaceComponentForAnchor,\n })\n}\n\n// ── HMR Registry ─────────────────────────────────────────────────\n\ntype HmrEntry =\n | {\n kind: 'container'\n inst: ComponentInstance\n container: HTMLElement\n }\n | {\n kind: 'anchor'\n inst: ComponentInstance\n anchor: Comment\n endSentinel: Comment\n }\n\nconst hmrRegistry = new Map<string, HmrEntry[]>()\n\nexport function registerForHmr(name: string, inst: object, container: HTMLElement): void {\n const entries = hmrRegistry.get(name) ?? []\n entries.push({ kind: 'container', inst: inst as ComponentInstance, container })\n hmrRegistry.set(name, entries)\n}\n\nexport function registerForAnchor(\n name: string,\n inst: object,\n anchor: Comment,\n endSentinel: Comment,\n): void {\n const entries = hmrRegistry.get(name) ?? []\n entries.push({ kind: 'anchor', inst: inst as ComponentInstance, anchor, endSentinel })\n hmrRegistry.set(name, entries)\n}\n\nexport function unregisterForHmr(name: string, inst: object): void {\n const entries = hmrRegistry.get(name)\n if (!entries) return\n const idx = entries.findIndex((e) => e.inst === inst)\n if (idx !== -1) entries.splice(idx, 1)\n if (entries.length === 0) hmrRegistry.delete(name)\n}\n\n/**\n * Hot-swap a component definition on all live instances.\n *\n * Preserves the current state. Replaces update, view, onEffect, __update,\n * __handlers, and __prefixes (compiler-emitted reactivity table).\n * Disposes the old scope tree (removing old DOM and bindings),\n * re-runs view(currentState, send) to rebuild fresh DOM.\n *\n * Returns an AppHandle for the first instance (for mountApp compatibility),\n * or null if no instances are registered (first mount).\n */\nexport function replaceComponent<S, M, E, D = void>(\n name: string,\n newDef: ComponentDef<S, M, E, D>,\n): AppHandle | null {\n const entries = hmrRegistry.get(name)\n if (!entries || entries.length === 0) return null\n\n let handle: AppHandle | null = null\n for (const entry of entries) {\n const h = swapEntry<S, M, E, D>(entry, name, newDef)\n if (!handle) handle = h\n }\n\n console.log(`[LLui HMR] ${name} updated — state preserved`)\n return handle\n}\n\n/**\n * Container-scoped hot-swap. Used by `mountApp` / `hydrateApp`'s HMR\n * fast path: when the same `def.name` is mounted into multiple distinct\n * containers (e.g. a page's onMount iterating placeholders and mounting\n * an inline widget into each), a re-entry of the mount/hydrate path for\n * a fresh container must NOT swap any of the existing entries — those\n * are independent mounts, not module re-execution targeting the same\n * root. Only swap when the existing entry's container is the very same\n * node we're being asked to mount into.\n *\n * Returns the swapped handle when a matching container entry exists,\n * `null` otherwise so the caller can fall through to a fresh mount.\n */\nexport function replaceComponentForContainer<S, M, E, D = void>(\n name: string,\n newDef: ComponentDef<S, M, E, D>,\n container: HTMLElement,\n): AppHandle | null {\n const entries = hmrRegistry.get(name)\n if (!entries || entries.length === 0) return null\n const matching = entries.find(\n (e): e is Extract<HmrEntry, { kind: 'container' }> =>\n e.kind === 'container' && e.container === container,\n )\n if (!matching) return null\n const handle = swapEntry<S, M, E, D>(matching, name, newDef)\n console.log(`[LLui HMR] ${name} updated — state preserved`)\n return handle\n}\n\n/**\n * Anchor-scoped hot-swap. The anchor-rooted analog of\n * `replaceComponentForContainer` — used by `mountAtAnchor` /\n * `hydrateAtAnchor`'s HMR fast path. A second call to the anchor-rooted\n * mount entry on the same anchor (typical of HMR module re-execution\n * for a vike persistent layout layer) hot-swaps in place rather than\n * leaving the prior instance orphaned with a stale end sentinel.\n *\n * Matches on anchor identity (not name alone): independent mounts of\n * the same-named component at different anchors must not collide with\n * each other.\n *\n * Returns the swapped handle when a matching anchor entry exists,\n * `null` otherwise so the caller can fall through to fresh mount /\n * hydrate.\n */\nexport function replaceComponentForAnchor<S, M, E, D = void>(\n name: string,\n newDef: ComponentDef<S, M, E, D>,\n anchor: Comment,\n): AppHandle | null {\n const entries = hmrRegistry.get(name)\n if (!entries || entries.length === 0) return null\n const matching = entries.find(\n (e): e is Extract<HmrEntry, { kind: 'anchor' }> => e.kind === 'anchor' && e.anchor === anchor,\n )\n if (!matching) return null\n const handle = swapEntry<S, M, E, D>(matching, name, newDef)\n console.log(`[LLui HMR] ${name} updated — state preserved`)\n return handle\n}\n\nfunction swapEntry<S, M, E, D = void>(\n entry: HmrEntry,\n name: string,\n newDef: ComponentDef<S, M, E, D>,\n): AppHandle {\n const typedInst = entry.inst as ComponentInstance<S, M, E>\n\n typedInst.def = {\n ...typedInst.def,\n update: newDef.update,\n view: newDef.view,\n onEffect: newDef.onEffect,\n __update: newDef.__update,\n __handlers: newDef.__handlers,\n __prefixes: newDef.__prefixes,\n }\n\n // Snapshot focus + selection + scroll BEFORE disposal — once the\n // root lifetime tears down its DOM, the activeElement and any\n // scrollable subtree are detached and can't be queried. We\n // restore best-effort after the new view renders. The cost of\n // skipping this step is the every-edit experience: the user\n // types in an input, saves, the input rebuilds and loses focus\n // and cursor position. That kills incremental editing flow.\n const ownerRoot: ParentNode | null =\n entry.kind === 'container' ? entry.container : (entry.anchor.parentElement ?? null)\n const focusSnapshot = ownerRoot ? captureFocus(ownerRoot) : null\n const scrollSnapshot = ownerRoot ? captureScroll(ownerRoot) : null\n\n disposeLifetime(typedInst.rootLifetime)\n\n // Clear the owned region per-kind.\n if (entry.kind === 'container') {\n entry.container.textContent = ''\n } else {\n // anchor kind — wipe siblings between anchor and endSentinel, keep the\n // anchor AND the end sentinel (they bracket the fresh render).\n let sib = entry.anchor.nextSibling\n while (sib !== null && sib !== entry.endSentinel) {\n const next = sib.nextSibling\n sib.parentNode!.removeChild(sib)\n sib = next\n }\n }\n\n typedInst.rootLifetime = createLifetime(null)\n typedInst.rootLifetime._kind = 'root'\n typedInst.allBindings = []\n typedInst.structuralBlocks = []\n\n setFlatBindings(typedInst.allBindings)\n setRenderContext({\n rootLifetime: typedInst.rootLifetime,\n state: typedInst.state,\n allBindings: typedInst.allBindings,\n structuralBlocks: typedInst.structuralBlocks,\n dom: typedInst.dom,\n container:\n entry.kind === 'container' ? entry.container : (entry.anchor.parentElement ?? undefined),\n send: typedInst.send as (msg: unknown) => void,\n instance: typedInst as ComponentInstance,\n })\n const nodes = typedInst.def.view(createView<S, M>(typedInst.send))\n clearRenderContext()\n setFlatBindings(null)\n\n if (entry.kind === 'container') {\n for (const node of nodes) {\n entry.container.appendChild(node)\n }\n } else {\n for (const node of nodes) {\n entry.anchor.parentNode!.insertBefore(node, entry.endSentinel)\n }\n }\n\n // Restore focus, selection, and scroll positions in the freshly\n // rendered DOM. Best-effort: when the new view's DOM has diverged\n // structurally (different IDs, different element ordering, the\n // input that was focused no longer exists), the restorers no-op\n // silently. This is the right tradeoff — failing loudly on\n // structural divergence would just mean every meaningful view\n // edit prints an error.\n if (ownerRoot) {\n if (focusSnapshot) restoreFocus(ownerRoot, focusSnapshot)\n if (scrollSnapshot) restoreScroll(ownerRoot, scrollSnapshot)\n }\n\n return makeReplacementHandle(name, entry, typedInst)\n}\n\nfunction makeReplacementHandle<S, M, E>(\n name: string,\n entry: HmrEntry,\n typedInst: ComponentInstance<S, M, E>,\n): AppHandle {\n const listeners = new Set<(s: unknown) => void>()\n typedInst._onCommit = (state: unknown) => {\n for (const l of Array.from(listeners)) {\n try {\n l(state)\n } catch (err) {\n console.error('[llui] listener threw:', err)\n }\n }\n }\n let disposed = false\n return {\n dispose() {\n if (disposed) return\n disposed = true\n listeners.clear()\n typedInst._onCommit = undefined\n unregisterForHmr(name, entry.inst)\n entry.inst.abortController.abort()\n unregisterInstance(entry.inst)\n disposeLifetime(typedInst.rootLifetime)\n if (entry.kind === 'container') {\n entry.container.textContent = ''\n } else {\n let sib = entry.anchor.nextSibling\n while (sib !== null && sib !== entry.endSentinel) {\n const next = sib.nextSibling\n sib.parentNode!.removeChild(sib)\n sib = next\n }\n entry.endSentinel.parentNode?.removeChild(entry.endSentinel)\n }\n },\n flush() {\n flushInstance(entry.inst)\n },\n send(msg: unknown) {\n ;(typedInst.send as (m: unknown) => void)(msg)\n },\n getState() {\n return typedInst.state\n },\n subscribe(listener: (state: unknown) => void) {\n if (disposed) return () => {}\n listeners.add(listener)\n return () => listeners.delete(listener)\n },\n getBindingDescriptors() {\n if (disposed) return []\n return getBindingDescriptors(typedInst as ComponentInstance)\n },\n swapUpdate(newUpdate, newOnEffect) {\n if (disposed) return\n flushInstance(entry.inst)\n ;(typedInst.def as { update: typeof newUpdate }).update = newUpdate\n if (newOnEffect !== undefined) {\n ;(typedInst.def as { onEffect?: typeof newOnEffect }).onEffect = newOnEffect\n }\n },\n runReducer(msg) {\n if (disposed) return null\n const [state, effects] = (\n typedInst.def.update as (s: unknown, m: unknown) => [unknown, unknown[]]\n )(typedInst.state, msg)\n return { state, effects: effects as unknown[] }\n },\n setOnBindingError(hook) {\n if (disposed) return\n typedInst._onBindingError = hook ?? undefined\n },\n }\n}\n\n// ── Focus / selection / scroll preservation across HMR ──────────\n\n/**\n * What we record before disposing the root DOM. The locator is a\n * structural pointer: prefer `id` (resilient to view restructuring),\n * fall back to a child-index path through the rendered subtree. If\n * the new DOM doesn't match either, the restore call no-ops.\n */\ntype FocusSnapshot = {\n /** The element's `id` if it had one, else `null`. */\n id: string | null\n /** Sibling-index path from `ownerRoot` down to the focused element. */\n path: number[]\n /** Selection range if the focused element is a text input/textarea. */\n selection: { start: number; end: number; direction: 'forward' | 'backward' | 'none' } | null\n}\n\ntype ScrollSnapshot = Array<{\n id: string | null\n path: number[]\n scrollTop: number\n scrollLeft: number\n}>\n\nfunction captureFocus(root: ParentNode): FocusSnapshot | null {\n const doc = (root as Element).ownerDocument ?? globalThis.document\n if (!doc) return null\n const active = doc.activeElement\n if (!active || active === doc.body) return null\n // Only capture focus for elements inside our owned subtree —\n // anything outside is not ours to restore.\n if (!(root as ParentNode & Node).contains(active)) return null\n\n const path = pathFromAncestor(root as Node, active)\n if (path === null) return null\n\n let selection: FocusSnapshot['selection'] = null\n if (active instanceof HTMLInputElement || active instanceof HTMLTextAreaElement) {\n // Some input types (number, email, etc.) reject selectionStart access.\n // Wrapper try/catch keeps the snapshot resilient to those cases.\n try {\n if (active.selectionStart !== null && active.selectionEnd !== null) {\n selection = {\n start: active.selectionStart,\n end: active.selectionEnd,\n direction: (active.selectionDirection ?? 'none') as 'forward' | 'backward' | 'none',\n }\n }\n } catch {\n selection = null\n }\n }\n\n return {\n id: active.id || null,\n path,\n selection,\n }\n}\n\nfunction restoreFocus(root: ParentNode, snap: FocusSnapshot): void {\n const target = locate(root, snap.id, snap.path)\n if (!target || !(target instanceof HTMLElement)) return\n try {\n target.focus({ preventScroll: true })\n } catch {\n return\n }\n if (\n snap.selection &&\n (target instanceof HTMLInputElement || target instanceof HTMLTextAreaElement)\n ) {\n try {\n target.setSelectionRange(snap.selection.start, snap.selection.end, snap.selection.direction)\n } catch {\n // Some input types throw on setSelectionRange; ignore.\n }\n }\n}\n\nfunction captureScroll(root: ParentNode): ScrollSnapshot {\n // Walk the subtree and snapshot every element with non-zero\n // scroll. Most subtrees have at most a handful, so the per-edit\n // cost is small. Capturing all-zeroes wastes the restore work for\n // no benefit; the filter keeps things tight.\n const out: ScrollSnapshot = []\n const walk = (node: Node): void => {\n if (node instanceof HTMLElement) {\n if (node.scrollTop !== 0 || node.scrollLeft !== 0) {\n const path = pathFromAncestor(root as Node, node)\n if (path !== null) {\n out.push({\n id: node.id || null,\n path,\n scrollTop: node.scrollTop,\n scrollLeft: node.scrollLeft,\n })\n }\n }\n }\n for (let c = node.firstChild; c !== null; c = c.nextSibling) {\n walk(c)\n }\n }\n walk(root as Node)\n return out\n}\n\nfunction restoreScroll(root: ParentNode, snap: ScrollSnapshot): void {\n for (const s of snap) {\n const target = locate(root, s.id, s.path)\n if (!target || !(target instanceof HTMLElement)) continue\n target.scrollTop = s.scrollTop\n target.scrollLeft = s.scrollLeft\n }\n}\n\n/**\n * Compute the child-index path from `ancestor` down to `target`, or\n * `null` if `target` isn't in the subtree. The path is what gets\n * walked on restore — no document-wide selectors, no string-encoded\n * selectors that can break on punctuation in IDs.\n */\nfunction pathFromAncestor(ancestor: Node, target: Node): number[] | null {\n const path: number[] = []\n let cur: Node | null = target\n while (cur !== null && cur !== ancestor) {\n const parent: Node | null = cur.parentNode\n if (parent === null) return null\n let idx = 0\n let sib: Node | null = parent.firstChild\n while (sib !== null && sib !== cur) {\n idx++\n sib = sib.nextSibling\n }\n if (sib === null) return null\n path.push(idx)\n cur = parent\n }\n if (cur !== ancestor) return null\n return path.reverse()\n}\n\n/**\n * Restore lookup: try `id` first (cheap and resilient to structural\n * change), then walk the captured child-index path. Returns `null`\n * if neither lookup succeeds — the restore caller silently no-ops.\n */\nfunction locate(root: ParentNode, id: string | null, path: number[]): Element | null {\n if (id) {\n const doc = (root as Element).ownerDocument ?? globalThis.document\n if (doc) {\n const byId = doc.getElementById(id)\n if (byId && (root as ParentNode & Node).contains(byId)) return byId\n }\n }\n let cur: Node = root as Node\n for (const idx of path) {\n let child = cur.firstChild\n let i = 0\n while (child && i < idx) {\n child = child.nextSibling\n i++\n }\n if (!child) return null\n cur = child\n }\n return cur instanceof Element ? cur : null\n}\n"]}
|
|
1
|
+
{"version":3,"file":"hmr.js","sourceRoot":"","sources":["../src/hmr.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ComponentDef, AppHandle } from './types.js'\nimport type { ComponentInstance } from './update-loop.js'\nimport { flushInstance } from './update-loop.js'\nimport { createLifetime, disposeLifetime } from './lifetime.js'\nimport { setRenderContext, clearRenderContext, getInstanceViewBag } from './render-context.js'\nimport { setFlatBindings } from './binding.js'\nimport { getBindingDescriptors } from './binding-descriptors.js'\nimport { unregisterInstance } from './runtime.js'\nimport { _setHmrModule } from './mount.js'\nimport type { View } from './view-helpers.js'\n\n/**\n * Enable HMR state preservation. Called by compiler-generated dev code.\n * Importing this module registers it with mountApp for hot-swapping.\n */\nexport function enableHmr(): void {\n _setHmrModule({\n enableHmr,\n registerForHmr,\n registerForAnchor,\n unregisterForHmr,\n replaceComponent,\n replaceComponentForContainer,\n replaceComponentForAnchor,\n })\n}\n\n// ── HMR Registry ─────────────────────────────────────────────────\n\ntype HmrEntry =\n | {\n kind: 'container'\n inst: ComponentInstance\n container: HTMLElement\n }\n | {\n kind: 'anchor'\n inst: ComponentInstance\n anchor: Comment\n endSentinel: Comment\n }\n\nconst hmrRegistry = new Map<string, HmrEntry[]>()\n\nexport function registerForHmr(name: string, inst: object, container: HTMLElement): void {\n const entries = hmrRegistry.get(name) ?? []\n entries.push({ kind: 'container', inst: inst as ComponentInstance, container })\n hmrRegistry.set(name, entries)\n}\n\nexport function registerForAnchor(\n name: string,\n inst: object,\n anchor: Comment,\n endSentinel: Comment,\n): void {\n const entries = hmrRegistry.get(name) ?? []\n entries.push({ kind: 'anchor', inst: inst as ComponentInstance, anchor, endSentinel })\n hmrRegistry.set(name, entries)\n}\n\nexport function unregisterForHmr(name: string, inst: object): void {\n const entries = hmrRegistry.get(name)\n if (!entries) return\n const idx = entries.findIndex((e) => e.inst === inst)\n if (idx !== -1) entries.splice(idx, 1)\n if (entries.length === 0) hmrRegistry.delete(name)\n}\n\n/**\n * Hot-swap a component definition on all live instances.\n *\n * Preserves the current state. Replaces update, view, onEffect, __update,\n * __handlers, and __prefixes (compiler-emitted reactivity table).\n * Disposes the old scope tree (removing old DOM and bindings),\n * re-runs view(currentState, send) to rebuild fresh DOM.\n *\n * Returns an AppHandle for the first instance (for mountApp compatibility),\n * or null if no instances are registered (first mount).\n */\nexport function replaceComponent<S, M, E, D = void>(\n name: string,\n newDef: ComponentDef<S, M, E, D>,\n): AppHandle | null {\n const entries = hmrRegistry.get(name)\n if (!entries || entries.length === 0) return null\n\n let handle: AppHandle | null = null\n for (const entry of entries) {\n const h = swapEntry<S, M, E, D>(entry, name, newDef)\n if (!handle) handle = h\n }\n\n console.log(`[LLui HMR] ${name} updated — state preserved`)\n return handle\n}\n\n/**\n * Container-scoped hot-swap. Used by `mountApp` / `hydrateApp`'s HMR\n * fast path: when the same `def.name` is mounted into multiple distinct\n * containers (e.g. a page's onMount iterating placeholders and mounting\n * an inline widget into each), a re-entry of the mount/hydrate path for\n * a fresh container must NOT swap any of the existing entries — those\n * are independent mounts, not module re-execution targeting the same\n * root. Only swap when the existing entry's container is the very same\n * node we're being asked to mount into.\n *\n * Returns the swapped handle when a matching container entry exists,\n * `null` otherwise so the caller can fall through to a fresh mount.\n */\nexport function replaceComponentForContainer<S, M, E, D = void>(\n name: string,\n newDef: ComponentDef<S, M, E, D>,\n container: HTMLElement,\n): AppHandle | null {\n const entries = hmrRegistry.get(name)\n if (!entries || entries.length === 0) return null\n const matching = entries.find(\n (e): e is Extract<HmrEntry, { kind: 'container' }> =>\n e.kind === 'container' && e.container === container,\n )\n if (!matching) return null\n const handle = swapEntry<S, M, E, D>(matching, name, newDef)\n console.log(`[LLui HMR] ${name} updated — state preserved`)\n return handle\n}\n\n/**\n * Anchor-scoped hot-swap. The anchor-rooted analog of\n * `replaceComponentForContainer` — used by `mountAtAnchor` /\n * `hydrateAtAnchor`'s HMR fast path. A second call to the anchor-rooted\n * mount entry on the same anchor (typical of HMR module re-execution\n * for a vike persistent layout layer) hot-swaps in place rather than\n * leaving the prior instance orphaned with a stale end sentinel.\n *\n * Matches on anchor identity (not name alone): independent mounts of\n * the same-named component at different anchors must not collide with\n * each other.\n *\n * Returns the swapped handle when a matching anchor entry exists,\n * `null` otherwise so the caller can fall through to fresh mount /\n * hydrate.\n */\nexport function replaceComponentForAnchor<S, M, E, D = void>(\n name: string,\n newDef: ComponentDef<S, M, E, D>,\n anchor: Comment,\n): AppHandle | null {\n const entries = hmrRegistry.get(name)\n if (!entries || entries.length === 0) return null\n const matching = entries.find(\n (e): e is Extract<HmrEntry, { kind: 'anchor' }> => e.kind === 'anchor' && e.anchor === anchor,\n )\n if (!matching) return null\n const handle = swapEntry<S, M, E, D>(matching, name, newDef)\n console.log(`[LLui HMR] ${name} updated — state preserved`)\n return handle\n}\n\nfunction swapEntry<S, M, E, D = void>(\n entry: HmrEntry,\n name: string,\n newDef: ComponentDef<S, M, E, D>,\n): AppHandle {\n const typedInst = entry.inst as ComponentInstance<S, M, E>\n\n typedInst.def = {\n ...typedInst.def,\n update: newDef.update,\n view: newDef.view,\n onEffect: newDef.onEffect,\n __handlers: newDef.__handlers,\n __prefixes: newDef.__prefixes,\n }\n\n // Snapshot focus + selection + scroll BEFORE disposal — once the\n // root lifetime tears down its DOM, the activeElement and any\n // scrollable subtree are detached and can't be queried. We\n // restore best-effort after the new view renders. The cost of\n // skipping this step is the every-edit experience: the user\n // types in an input, saves, the input rebuilds and loses focus\n // and cursor position. That kills incremental editing flow.\n const ownerRoot: ParentNode | null =\n entry.kind === 'container' ? entry.container : (entry.anchor.parentElement ?? null)\n const focusSnapshot = ownerRoot ? captureFocus(ownerRoot) : null\n const scrollSnapshot = ownerRoot ? captureScroll(ownerRoot) : null\n\n disposeLifetime(typedInst.rootLifetime)\n\n // Clear the owned region per-kind.\n if (entry.kind === 'container') {\n entry.container.textContent = ''\n } else {\n // anchor kind — wipe siblings between anchor and endSentinel, keep the\n // anchor AND the end sentinel (they bracket the fresh render).\n let sib = entry.anchor.nextSibling\n while (sib !== null && sib !== entry.endSentinel) {\n const next = sib.nextSibling\n sib.parentNode!.removeChild(sib)\n sib = next\n }\n }\n\n typedInst.rootLifetime = createLifetime(null)\n typedInst.rootLifetime._kind = 'root'\n typedInst.allBindings = []\n typedInst.structuralBlocks = []\n\n setFlatBindings(typedInst.allBindings)\n setRenderContext({\n rootLifetime: typedInst.rootLifetime,\n state: typedInst.state,\n allBindings: typedInst.allBindings,\n structuralBlocks: typedInst.structuralBlocks,\n dom: typedInst.dom,\n container:\n entry.kind === 'container' ? entry.container : (entry.anchor.parentElement ?? undefined),\n send: typedInst.send as (msg: unknown) => void,\n instance: typedInst as ComponentInstance,\n })\n // v0.4 Tier 1.2 + cache: HMR clears _viewBag below before re-render so\n // the next call rebuilds from the new def.__view factory.\n typedInst._viewBag = undefined\n const bag = getInstanceViewBag<S, M>(typedInst as ComponentInstance, typedInst.send) as View<S, M>\n const nodes = typedInst.def.view(bag)\n clearRenderContext()\n setFlatBindings(null)\n\n if (entry.kind === 'container') {\n for (const node of nodes) {\n entry.container.appendChild(node)\n }\n } else {\n for (const node of nodes) {\n entry.anchor.parentNode!.insertBefore(node, entry.endSentinel)\n }\n }\n\n // Restore focus, selection, and scroll positions in the freshly\n // rendered DOM. Best-effort: when the new view's DOM has diverged\n // structurally (different IDs, different element ordering, the\n // input that was focused no longer exists), the restorers no-op\n // silently. This is the right tradeoff — failing loudly on\n // structural divergence would just mean every meaningful view\n // edit prints an error.\n if (ownerRoot) {\n if (focusSnapshot) restoreFocus(ownerRoot, focusSnapshot)\n if (scrollSnapshot) restoreScroll(ownerRoot, scrollSnapshot)\n }\n\n return makeReplacementHandle(name, entry, typedInst)\n}\n\nfunction makeReplacementHandle<S, M, E>(\n name: string,\n entry: HmrEntry,\n typedInst: ComponentInstance<S, M, E>,\n): AppHandle {\n const listeners = new Set<(s: unknown) => void>()\n typedInst._onCommit = (state: unknown) => {\n for (const l of Array.from(listeners)) {\n try {\n l(state)\n } catch (err) {\n console.error('[llui] listener threw:', err)\n }\n }\n }\n let disposed = false\n return {\n dispose() {\n if (disposed) return\n disposed = true\n listeners.clear()\n typedInst._onCommit = undefined\n unregisterForHmr(name, entry.inst)\n entry.inst.abortController.abort()\n unregisterInstance(entry.inst)\n disposeLifetime(typedInst.rootLifetime)\n if (entry.kind === 'container') {\n entry.container.textContent = ''\n } else {\n let sib = entry.anchor.nextSibling\n while (sib !== null && sib !== entry.endSentinel) {\n const next = sib.nextSibling\n sib.parentNode!.removeChild(sib)\n sib = next\n }\n entry.endSentinel.parentNode?.removeChild(entry.endSentinel)\n }\n },\n flush() {\n flushInstance(entry.inst)\n },\n send(msg: unknown) {\n ;(typedInst.send as (m: unknown) => void)(msg)\n },\n getState() {\n return typedInst.state\n },\n subscribe(listener: (state: unknown) => void) {\n if (disposed) return () => {}\n listeners.add(listener)\n return () => listeners.delete(listener)\n },\n getBindingDescriptors() {\n // Agent-only — see mount.ts's matching guard for rationale.\n if (typeof __LLUI_AGENT__ === 'undefined' || !__LLUI_AGENT__) return []\n if (disposed) return []\n return getBindingDescriptors(typedInst as ComponentInstance)\n },\n swapUpdate(newUpdate, newOnEffect) {\n if (disposed) return\n flushInstance(entry.inst)\n ;(typedInst.def as { update: typeof newUpdate }).update = newUpdate\n if (newOnEffect !== undefined) {\n ;(typedInst.def as { onEffect?: typeof newOnEffect }).onEffect = newOnEffect\n }\n },\n runReducer(msg) {\n if (disposed) return null\n const [state, effects] = (\n typedInst.def.update as (s: unknown, m: unknown) => [unknown, unknown[]]\n )(typedInst.state, msg)\n return { state, effects: effects as unknown[] }\n },\n setOnBindingError(hook) {\n if (disposed) return\n typedInst._onBindingError = hook ?? undefined\n },\n }\n}\n\n// ── Focus / selection / scroll preservation across HMR ──────────\n\n/**\n * What we record before disposing the root DOM. The locator is a\n * structural pointer: prefer `id` (resilient to view restructuring),\n * fall back to a child-index path through the rendered subtree. If\n * the new DOM doesn't match either, the restore call no-ops.\n */\ntype FocusSnapshot = {\n /** The element's `id` if it had one, else `null`. */\n id: string | null\n /** Sibling-index path from `ownerRoot` down to the focused element. */\n path: number[]\n /** Selection range if the focused element is a text input/textarea. */\n selection: { start: number; end: number; direction: 'forward' | 'backward' | 'none' } | null\n}\n\ntype ScrollSnapshot = Array<{\n id: string | null\n path: number[]\n scrollTop: number\n scrollLeft: number\n}>\n\nfunction captureFocus(root: ParentNode): FocusSnapshot | null {\n const doc = (root as Element).ownerDocument ?? globalThis.document\n if (!doc) return null\n const active = doc.activeElement\n if (!active || active === doc.body) return null\n // Only capture focus for elements inside our owned subtree —\n // anything outside is not ours to restore.\n if (!(root as ParentNode & Node).contains(active)) return null\n\n const path = pathFromAncestor(root as Node, active)\n if (path === null) return null\n\n let selection: FocusSnapshot['selection'] = null\n if (active instanceof HTMLInputElement || active instanceof HTMLTextAreaElement) {\n // Some input types (number, email, etc.) reject selectionStart access.\n // Wrapper try/catch keeps the snapshot resilient to those cases.\n try {\n if (active.selectionStart !== null && active.selectionEnd !== null) {\n selection = {\n start: active.selectionStart,\n end: active.selectionEnd,\n direction: (active.selectionDirection ?? 'none') as 'forward' | 'backward' | 'none',\n }\n }\n } catch {\n selection = null\n }\n }\n\n return {\n id: active.id || null,\n path,\n selection,\n }\n}\n\nfunction restoreFocus(root: ParentNode, snap: FocusSnapshot): void {\n const target = locate(root, snap.id, snap.path)\n if (!target || !(target instanceof HTMLElement)) return\n try {\n target.focus({ preventScroll: true })\n } catch {\n return\n }\n if (\n snap.selection &&\n (target instanceof HTMLInputElement || target instanceof HTMLTextAreaElement)\n ) {\n try {\n target.setSelectionRange(snap.selection.start, snap.selection.end, snap.selection.direction)\n } catch {\n // Some input types throw on setSelectionRange; ignore.\n }\n }\n}\n\nfunction captureScroll(root: ParentNode): ScrollSnapshot {\n // Walk the subtree and snapshot every element with non-zero\n // scroll. Most subtrees have at most a handful, so the per-edit\n // cost is small. Capturing all-zeroes wastes the restore work for\n // no benefit; the filter keeps things tight.\n const out: ScrollSnapshot = []\n const walk = (node: Node): void => {\n if (node instanceof HTMLElement) {\n if (node.scrollTop !== 0 || node.scrollLeft !== 0) {\n const path = pathFromAncestor(root as Node, node)\n if (path !== null) {\n out.push({\n id: node.id || null,\n path,\n scrollTop: node.scrollTop,\n scrollLeft: node.scrollLeft,\n })\n }\n }\n }\n for (let c = node.firstChild; c !== null; c = c.nextSibling) {\n walk(c)\n }\n }\n walk(root as Node)\n return out\n}\n\nfunction restoreScroll(root: ParentNode, snap: ScrollSnapshot): void {\n for (const s of snap) {\n const target = locate(root, s.id, s.path)\n if (!target || !(target instanceof HTMLElement)) continue\n target.scrollTop = s.scrollTop\n target.scrollLeft = s.scrollLeft\n }\n}\n\n/**\n * Compute the child-index path from `ancestor` down to `target`, or\n * `null` if `target` isn't in the subtree. The path is what gets\n * walked on restore — no document-wide selectors, no string-encoded\n * selectors that can break on punctuation in IDs.\n */\nfunction pathFromAncestor(ancestor: Node, target: Node): number[] | null {\n const path: number[] = []\n let cur: Node | null = target\n while (cur !== null && cur !== ancestor) {\n const parent: Node | null = cur.parentNode\n if (parent === null) return null\n let idx = 0\n let sib: Node | null = parent.firstChild\n while (sib !== null && sib !== cur) {\n idx++\n sib = sib.nextSibling\n }\n if (sib === null) return null\n path.push(idx)\n cur = parent\n }\n if (cur !== ancestor) return null\n return path.reverse()\n}\n\n/**\n * Restore lookup: try `id` first (cheap and resilient to structural\n * change), then walk the captured child-index path. Returns `null`\n * if neither lookup succeeds — the restore caller silently no-ops.\n */\nfunction locate(root: ParentNode, id: string | null, path: number[]): Element | null {\n if (id) {\n const doc = (root as Element).ownerDocument ?? globalThis.document\n if (doc) {\n const byId = doc.getElementById(id)\n if (byId && (root as ParentNode & Node).contains(byId)) return byId\n }\n }\n let cur: Node = root as Node\n for (const idx of path) {\n let child = cur.firstChild\n let i = 0\n while (child && i < idx) {\n child = child.nextSibling\n i++\n }\n if (!child) return null\n cur = child\n }\n return cur instanceof Element ? cur : null\n}\n"]}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type { ComponentDef, Send, Props, AppHandle, Lifetime, Binding, BindingKind, TransitionOptions, BranchOptions, ShowOptions, EachOptions, ItemAccessor, PortalOptions, ForeignOptions,
|
|
1
|
+
export type { ComponentDef, Send, Props, AppHandle, Lifetime, Binding, BindingKind, TransitionOptions, BranchOptions, ShowOptions, EachOptions, ItemAccessor, PortalOptions, ForeignOptions, } from './types.js';
|
|
2
2
|
export { component } from './component.js';
|
|
3
3
|
export { createView, type View } from './view-helpers.js';
|
|
4
4
|
export { combine, type SliceReducer, type SliceMap, type TopReducer } from './combine.js';
|
|
@@ -18,7 +18,7 @@ export { browserEnv, type DomEnv } from './dom-env.js';
|
|
|
18
18
|
export { mergeHandlers } from './merge-handlers.js';
|
|
19
19
|
export { createContext, provide, provideValue, useContext, useContextValue, type Context, } from './primitives/context.js';
|
|
20
20
|
export { sliceHandler } from './slice-handler.js';
|
|
21
|
-
export {
|
|
21
|
+
export { composeModules, type ModulesState, type ModulesMsg, type ModuleState, type ModuleMsg, } from './compose.js';
|
|
22
22
|
export { text } from './primitives/text.js';
|
|
23
23
|
export { unsafeHtml } from './primitives/unsafe-html.js';
|
|
24
24
|
export { branch } from './primitives/branch.js';
|
|
@@ -36,6 +36,7 @@ export { memo } from './primitives/memo.js';
|
|
|
36
36
|
export { sample } from './primitives/sample.js';
|
|
37
37
|
export { selector } from './primitives/selector.js';
|
|
38
38
|
export { onMount } from './primitives/on-mount.js';
|
|
39
|
+
export { track, LluiCompilerSkippedError, type TrackOptions } from './primitives/track.js';
|
|
39
40
|
export { clientOnly, __clientOnlyStub, type ClientOnlyOptions } from './primitives/client-only.js';
|
|
40
41
|
export { errorBoundary } from './primitives/error-boundary.js';
|
|
41
42
|
export { a, abbr, article, aside, b, blockquote, br, button, canvas, code, dd, details, dialog, div, dl, dt, em, fieldset, figcaption, figure, footer, form, h1, h2, h3, h4, h5, h6, header, hr, i, iframe, img, input, label, legend, li, main, mark, nav, ol, optgroup, option, output, p, pre, progress, section, select, small, span, strong, sub, summary, sup, table, tbody, td, textarea, tfoot, th, thead, time, tr, ul, video, } from './elements.js';
|
|
@@ -43,6 +44,7 @@ export { svg, g, defs, symbol, use, circle, ellipse, line, path, polygon, polyli
|
|
|
43
44
|
export { math, mi, mn, mo, ms, mtext, mrow, mfrac, msqrt, mroot, msup, msub, msubsup, munder, mover, munderover, mmultiscripts, mprescripts, mnone, mtable, mtr, mtd, mspace, mpadded, mphantom, menclose, merror, maction, semantics, annotation, annotationXml, } from './mathml-elements.js';
|
|
44
45
|
export { applyField, type FieldMsg } from './form.js';
|
|
45
46
|
export { elSplit } from './el-split.js';
|
|
47
|
+
export { __bindUncertain } from './binding.js';
|
|
46
48
|
export { elTemplate, __cloneStaticTemplate } from './el-template.js';
|
|
47
49
|
export { _runPhase2 as __runPhase2, _handleMsg as __handleMsg } from './update-loop.js';
|
|
48
50
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,YAAY,EACV,YAAY,EACZ,IAAI,EACJ,KAAK,EACL,SAAS,EACT,QAAQ,EACR,OAAO,EACP,WAAW,EACX,iBAAiB,EACjB,aAAa,EACb,WAAW,EACX,WAAW,EACX,YAAY,EACZ,aAAa,EACb,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -22,7 +22,7 @@ export { browserEnv } from './dom-env.js';
|
|
|
22
22
|
export { mergeHandlers } from './merge-handlers.js';
|
|
23
23
|
export { createContext, provide, provideValue, useContext, useContextValue, } from './primitives/context.js';
|
|
24
24
|
export { sliceHandler } from './slice-handler.js';
|
|
25
|
-
export {
|
|
25
|
+
export { composeModules, } from './compose.js';
|
|
26
26
|
// ── View Primitives ───────────────────────────────────────────────
|
|
27
27
|
export { text } from './primitives/text.js';
|
|
28
28
|
export { unsafeHtml } from './primitives/unsafe-html.js';
|
|
@@ -39,6 +39,7 @@ export { memo } from './primitives/memo.js';
|
|
|
39
39
|
export { sample } from './primitives/sample.js';
|
|
40
40
|
export { selector } from './primitives/selector.js';
|
|
41
41
|
export { onMount } from './primitives/on-mount.js';
|
|
42
|
+
export { track, LluiCompilerSkippedError } from './primitives/track.js';
|
|
42
43
|
export { clientOnly, __clientOnlyStub } from './primitives/client-only.js';
|
|
43
44
|
export { errorBoundary } from './primitives/error-boundary.js';
|
|
44
45
|
// ── Element Helpers ───────────────────────────────────────────────
|
|
@@ -51,6 +52,7 @@ export { math, mi, mn, mo, ms, mtext, mrow, mfrac, msqrt, mroot, msup, msub, msu
|
|
|
51
52
|
export { applyField } from './form.js';
|
|
52
53
|
// ── Compiler Target ───────────────────────────────────────────────
|
|
53
54
|
export { elSplit } from './el-split.js';
|
|
55
|
+
export { __bindUncertain } from './binding.js';
|
|
54
56
|
export { elTemplate, __cloneStaticTemplate } from './el-template.js';
|
|
55
57
|
export { _runPhase2 as __runPhase2, _handleMsg as __handleMsg } from './update-loop.js';
|
|
56
58
|
//# sourceMappingURL=index.js.map
|