@llui/dom 0.0.13 → 0.0.14
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/addressed.d.ts +1 -1
- package/dist/addressed.d.ts.map +1 -1
- package/dist/addressed.js +1 -1
- package/dist/addressed.js.map +1 -1
- package/dist/binding.d.ts +1 -1
- package/dist/binding.d.ts.map +1 -1
- package/dist/binding.js +15 -1
- package/dist/binding.js.map +1 -1
- package/dist/component.d.ts +1 -1
- package/dist/component.d.ts.map +1 -1
- package/dist/component.js.map +1 -1
- package/dist/compose.js.map +1 -1
- package/dist/devtools.js +2 -2
- package/dist/devtools.js.map +1 -1
- package/dist/el-split.d.ts +2 -2
- package/dist/el-split.d.ts.map +1 -1
- package/dist/el-split.js +19 -5
- package/dist/el-split.js.map +1 -1
- package/dist/el-template.d.ts +1 -1
- package/dist/el-template.d.ts.map +1 -1
- package/dist/el-template.js +3 -3
- package/dist/el-template.js.map +1 -1
- package/dist/elements.js +3 -3
- package/dist/elements.js.map +1 -1
- package/dist/form.js.map +1 -1
- package/dist/hmr.d.ts +1 -1
- package/dist/hmr.d.ts.map +1 -1
- package/dist/hmr.js +7 -7
- package/dist/hmr.js.map +1 -1
- package/dist/hydrate.js.map +1 -1
- package/dist/index.d.ts +34 -34
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +31 -31
- package/dist/index.js.map +1 -1
- package/dist/mathml-elements.js +3 -3
- package/dist/mathml-elements.js.map +1 -1
- package/dist/merge-handlers.js.map +1 -1
- package/dist/mount.d.ts +1 -1
- package/dist/mount.d.ts.map +1 -1
- package/dist/mount.js +37 -8
- package/dist/mount.js.map +1 -1
- package/dist/primitives/branch.d.ts +1 -1
- package/dist/primitives/branch.d.ts.map +1 -1
- package/dist/primitives/branch.js +40 -18
- package/dist/primitives/branch.js.map +1 -1
- package/dist/primitives/child.d.ts +1 -1
- package/dist/primitives/child.d.ts.map +1 -1
- package/dist/primitives/child.js +6 -6
- package/dist/primitives/child.js.map +1 -1
- package/dist/primitives/context.js +2 -2
- package/dist/primitives/context.js.map +1 -1
- package/dist/primitives/each.d.ts +1 -1
- package/dist/primitives/each.d.ts.map +1 -1
- package/dist/primitives/each.js +24 -20
- package/dist/primitives/each.js.map +1 -1
- package/dist/primitives/error-boundary.js +2 -2
- package/dist/primitives/error-boundary.js.map +1 -1
- package/dist/primitives/foreign.d.ts +1 -1
- package/dist/primitives/foreign.d.ts.map +1 -1
- package/dist/primitives/foreign.js +3 -3
- package/dist/primitives/foreign.js.map +1 -1
- package/dist/primitives/lazy.d.ts +2 -2
- package/dist/primitives/lazy.d.ts.map +1 -1
- package/dist/primitives/lazy.js +5 -5
- package/dist/primitives/lazy.js.map +1 -1
- package/dist/primitives/memo.js.map +1 -1
- package/dist/primitives/on-mount.d.ts +22 -0
- package/dist/primitives/on-mount.d.ts.map +1 -1
- package/dist/primitives/on-mount.js +59 -4
- package/dist/primitives/on-mount.js.map +1 -1
- package/dist/primitives/portal.d.ts +1 -1
- package/dist/primitives/portal.d.ts.map +1 -1
- package/dist/primitives/portal.js +2 -2
- package/dist/primitives/portal.js.map +1 -1
- package/dist/primitives/selector.d.ts +1 -1
- package/dist/primitives/selector.d.ts.map +1 -1
- package/dist/primitives/selector.js +5 -5
- package/dist/primitives/selector.js.map +1 -1
- package/dist/primitives/show.d.ts +1 -1
- package/dist/primitives/show.d.ts.map +1 -1
- package/dist/primitives/show.js +1 -1
- package/dist/primitives/show.js.map +1 -1
- package/dist/primitives/slice.d.ts +2 -2
- package/dist/primitives/slice.d.ts.map +1 -1
- package/dist/primitives/slice.js +7 -7
- package/dist/primitives/slice.js.map +1 -1
- package/dist/primitives/text.js +4 -4
- package/dist/primitives/text.js.map +1 -1
- package/dist/primitives/virtual-each.d.ts +1 -1
- package/dist/primitives/virtual-each.d.ts.map +1 -1
- package/dist/primitives/virtual-each.js +9 -8
- package/dist/primitives/virtual-each.js.map +1 -1
- package/dist/render-context.d.ts +2 -2
- package/dist/render-context.d.ts.map +1 -1
- package/dist/render-context.js +8 -2
- package/dist/render-context.js.map +1 -1
- package/dist/runtime.js +1 -1
- package/dist/runtime.js.map +1 -1
- package/dist/scope.d.ts +1 -1
- package/dist/scope.d.ts.map +1 -1
- package/dist/scope.js.map +1 -1
- package/dist/slice-handler.js.map +1 -1
- package/dist/ssr-dom.js.map +1 -1
- package/dist/ssr.d.ts +1 -1
- package/dist/ssr.d.ts.map +1 -1
- package/dist/ssr.js +4 -4
- package/dist/ssr.js.map +1 -1
- package/dist/structural.js.map +1 -1
- package/dist/svg-elements.js +3 -3
- package/dist/svg-elements.js.map +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/update-loop.d.ts +2 -2
- package/dist/update-loop.d.ts.map +1 -1
- package/dist/update-loop.js +10 -6
- package/dist/update-loop.js.map +1 -1
- package/dist/view-helpers.d.ts +3 -3
- package/dist/view-helpers.d.ts.map +1 -1
- package/dist/view-helpers.js +7 -7
- package/dist/view-helpers.js.map +1 -1
- package/package.json +10 -10
package/dist/addressed.d.ts
CHANGED
package/dist/addressed.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"addressed.d.ts","sourceRoot":"","sources":["../src/addressed.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"addressed.d.ts","sourceRoot":"","sources":["../src/addressed.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAG9C,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,IAAI,CAAA;IACjB,WAAW,EAAE,MAAM,GAAG,MAAM,CAAA;IAC5B,KAAK,EAAE,OAAO,CAAA;CACf;AAKD,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE;IAAE,IAAI,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAA;CAAE,GAAG,IAAI,CAEhG;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAE1D;AAYD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,IAAI,eAAe,CAM5E;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAC/B,GAAG,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAC1B,GAAG,EAAE,MAAM,GAAG,MAAM,GACnB,MAAM,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,KAAK,eAAe,CAAC,CAavD"}
|
package/dist/addressed.js
CHANGED
package/dist/addressed.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"addressed.js","sourceRoot":"","sources":["../src/addressed.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"addressed.js","sourceRoot":"","sources":["../src/addressed.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AAQzD,iDAAiD;AACjD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAqD,CAAA;AAE7E,MAAM,UAAU,aAAa,CAAC,GAAoB,EAAE,IAAsC;IACxF,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;AACzB,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,GAAoB;IAClD,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;AACtB,CAAC;AAED,SAAS,iBAAiB,CAAC,MAAwD;IACjF,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;IAC/C,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAC3B,CAAC;AACH,CAAC;AAED,0EAA0E;AAC1E,sBAAsB,CAAC,iBAAiB,CAAC,CAAA;AAEzC,MAAM,UAAU,iBAAiB,CAAC,MAAe;IAC/C,OAAO,CACL,OAAO,MAAM,KAAK,QAAQ;QAC1B,MAAM,KAAK,IAAI;QACd,MAA0B,CAAC,WAAW,KAAK,IAAI,CACjD,CAAA;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CACvB,GAA0B,EAC1B,GAAoB;IAEpB,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAA;IAC7B,IAAI,CAAC,QAAQ;QAAE,OAAO,EAAE,CAAA;IAExB,MAAM,OAAO,GAA0D,EAAE,CAAA;IACzE,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvD,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAgB,EAAE,EAAE,CAAC,CAAC;YACrC,WAAW,EAAE,IAAI;YACjB,WAAW,EAAE,GAAG;YAChB,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC;SACvB,CAAC,CAAA;IACJ,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC","sourcesContent":["import type { ComponentDef } from './types.js'\nimport { setAddressedDispatcher } from './update-loop.js'\n\nexport interface AddressedEffect {\n __addressed: true\n __targetKey: string | number\n __msg: unknown\n}\n\n// Global component registry — keyed by child key\nconst registry = new Map<string | number, { send: (msg: unknown) => void }>()\n\nexport function registerChild(key: string | number, inst: { send: (msg: unknown) => void }): void {\n registry.set(key, inst)\n}\n\nexport function unregisterChild(key: string | number): void {\n registry.delete(key)\n}\n\nfunction dispatchAddressed(effect: { __targetKey: string | number; __msg: unknown }): void {\n const target = registry.get(effect.__targetKey)\n if (target) {\n target.send(effect.__msg)\n }\n}\n\n// Register the dispatcher — this runs when addressed.ts is first imported\nsetAddressedDispatcher(dispatchAddressed)\n\nexport function isAddressedEffect(effect: unknown): effect is AddressedEffect {\n return (\n typeof effect === 'object' &&\n effect !== null &&\n (effect as AddressedEffect).__addressed === true\n )\n}\n\n/**\n * Build a typed address builder from a component definition's `receives` map.\n */\nexport function addressOf<S, M, E>(\n def: ComponentDef<S, M, E>,\n key: string | number,\n): Record<string, (params?: unknown) => AddressedEffect> {\n const receives = def.receives\n if (!receives) return {}\n\n const builder: Record<string, (params?: unknown) => AddressedEffect> = {}\n for (const [name, handler] of Object.entries(receives)) {\n builder[name] = (params?: unknown) => ({\n __addressed: true,\n __targetKey: key,\n __msg: handler(params),\n })\n }\n return builder\n}\n"]}
|
package/dist/binding.d.ts
CHANGED
package/dist/binding.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binding.d.ts","sourceRoot":"","sources":["../src/binding.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"binding.d.ts","sourceRoot":"","sources":["../src/binding.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAG7D,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAA;IACnC,IAAI,EAAE,WAAW,CAAA;IACjB,IAAI,EAAE,IAAI,CAAA;IACV,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,OAAO,CAAA;CACjB;AAID,wBAAgB,eAAe,IAAI,OAAO,EAAE,GAAG,IAAI,CAElD;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,IAAI,GAAG,IAAI,CAE3D;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAiB5E;AAED,wBAAgB,YAAY,CAC1B,MAAM,EAAE;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,IAAI,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,EACvD,KAAK,EAAE,OAAO,GACb,IAAI,CAyDN"}
|
package/dist/binding.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { addBinding } from './scope';
|
|
1
|
+
import { addBinding } from './scope.js';
|
|
2
2
|
let flatBindings = null;
|
|
3
3
|
export function getFlatBindings() {
|
|
4
4
|
return flatBindings;
|
|
@@ -24,6 +24,20 @@ export function createBinding(scope, opts) {
|
|
|
24
24
|
return binding;
|
|
25
25
|
}
|
|
26
26
|
export function applyBinding(target, value) {
|
|
27
|
+
// Defensive guard: if a reactive accessor leaks through as a raw
|
|
28
|
+
// function value, emitting its `.toString()` into the DOM (e.g. as
|
|
29
|
+
// an attribute) would be a silent correctness bug that only surfaces
|
|
30
|
+
// on server-rendered pages. Throw loudly so the callsite is obvious.
|
|
31
|
+
// Event handlers (onXxx → 'prop' kind) are NOT handled here; events
|
|
32
|
+
// are registered via addEventListener in the element helpers, not
|
|
33
|
+
// via applyBinding.
|
|
34
|
+
if (typeof value === 'function') {
|
|
35
|
+
throw new TypeError(`[LLui] applyBinding(${target.kind}${target.key ? `, '${target.key}'` : ''}) received ` +
|
|
36
|
+
`a function as its value. This means an accessor wasn't invoked before ` +
|
|
37
|
+
`reaching the binding layer — usually a bug in a compiled binding tuple or ` +
|
|
38
|
+
`in a helper that forwards props without calling them. The arrow's source ` +
|
|
39
|
+
`would have been serialized into the DOM otherwise. Offender: ${value.toString().slice(0, 120)}`);
|
|
40
|
+
}
|
|
27
41
|
switch (target.kind) {
|
|
28
42
|
case 'text':
|
|
29
43
|
target.node.nodeValue = String(value);
|
package/dist/binding.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binding.js","sourceRoot":"","sources":["../src/binding.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"binding.js","sourceRoot":"","sources":["../src/binding.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Scope, Binding, BindingKind } from './types.js'\nimport { addBinding } from './scope.js'\n\nexport interface CreateBindingOpts {\n mask: number\n accessor: (state: never) => unknown\n kind: BindingKind\n node: Node\n key?: string\n perItem: boolean\n}\n\nlet flatBindings: Binding[] | null = null\n\nexport function getFlatBindings(): Binding[] | null {\n return flatBindings\n}\n\nexport function setFlatBindings(arr: Binding[] | null): void {\n flatBindings = arr\n}\n\nexport function createBinding(scope: Scope, opts: CreateBindingOpts): Binding {\n const binding: Binding = {\n mask: opts.mask,\n accessor: opts.accessor as (state: unknown) => unknown,\n lastValue: undefined,\n kind: opts.kind,\n node: opts.node,\n key: opts.key,\n ownerScope: scope,\n perItem: opts.perItem,\n dead: false,\n }\n\n addBinding(scope, binding)\n if (flatBindings) flatBindings.push(binding)\n\n return binding\n}\n\nexport function applyBinding(\n target: { kind: BindingKind; node: Node; key?: string },\n value: unknown,\n): void {\n // Defensive guard: if a reactive accessor leaks through as a raw\n // function value, emitting its `.toString()` into the DOM (e.g. as\n // an attribute) would be a silent correctness bug that only surfaces\n // on server-rendered pages. Throw loudly so the callsite is obvious.\n // Event handlers (onXxx → 'prop' kind) are NOT handled here; events\n // are registered via addEventListener in the element helpers, not\n // via applyBinding.\n if (typeof value === 'function') {\n throw new TypeError(\n `[LLui] applyBinding(${target.kind}${target.key ? `, '${target.key}'` : ''}) received ` +\n `a function as its value. This means an accessor wasn't invoked before ` +\n `reaching the binding layer — usually a bug in a compiled binding tuple or ` +\n `in a helper that forwards props without calling them. The arrow's source ` +\n `would have been serialized into the DOM otherwise. Offender: ${value.toString().slice(0, 120)}`,\n )\n }\n\n switch (target.kind) {\n case 'text':\n target.node.nodeValue = String(value)\n break\n\n case 'prop': {\n const el = target.node as HTMLElement\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ;(el as any)[target.key!] = value\n break\n }\n\n case 'attr':\n if (value == null) {\n ;(target.node as Element).removeAttribute(target.key!)\n } else if (value === false) {\n // ARIA attributes need explicit \"false\"; others are removed\n if (target.key!.startsWith('aria-')) {\n ;(target.node as Element).setAttribute(target.key!, 'false')\n } else {\n ;(target.node as Element).removeAttribute(target.key!)\n }\n } else {\n ;(target.node as Element).setAttribute(target.key!, String(value))\n }\n break\n\n case 'class':\n ;(target.node as Element).setAttribute('class', value as string)\n break\n\n case 'style':\n if (value == null) {\n ;(target.node as HTMLElement).style.removeProperty(target.key!)\n } else {\n ;(target.node as HTMLElement).style.setProperty(target.key!, value as string)\n }\n break\n }\n}\n"]}
|
package/dist/component.d.ts
CHANGED
package/dist/component.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../src/component.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../src/component.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAE9C,wBAAgB,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,EACjD,GAAG,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAC5B,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAE1B"}
|
package/dist/component.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component.js","sourceRoot":"","sources":["../src/component.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,SAAS,CACvB,GAA6B;IAE7B,OAAO,GAAG,CAAA;AACZ,CAAC"}
|
|
1
|
+
{"version":3,"file":"component.js","sourceRoot":"","sources":["../src/component.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,SAAS,CACvB,GAA6B;IAE7B,OAAO,GAAG,CAAA;AACZ,CAAC","sourcesContent":["import type { ComponentDef } from './types.js'\n\nexport function component<S, M, E = never, D = void>(\n def: ComponentDef<S, M, E, D>,\n): ComponentDef<S, M, E, D> {\n return def\n}\n"]}
|
package/dist/compose.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compose.js","sourceRoot":"","sources":["../src/compose.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAiDH;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAC3B,OAAuF;IAEvF,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACjC,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QACpB,MAAM,CAAC,GAAG,GAAsC,CAAA;QAChD,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;YAAE,OAAO,IAAI,CAAA;QACzC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAA;QACvC,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAE,CAAA;QAC5B,MAAM,KAAK,GAAI,KAAiC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;QACxD,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,KAAc,EAAE,CAAC,CAAC,GAAY,CAAC,CAAA;QACvE,OAAO,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,SAAS,EAAO,EAAE,OAAc,CAAC,CAAA;IACjE,CAAC,CAAA;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"compose.js","sourceRoot":"","sources":["../src/compose.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAiDH;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAC3B,OAAuF;IAEvF,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACjC,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QACpB,MAAM,CAAC,GAAG,GAAsC,CAAA;QAChD,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;YAAE,OAAO,IAAI,CAAA;QACzC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAA;QACvC,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAE,CAAA;QAC5B,MAAM,KAAK,GAAI,KAAiC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;QACxD,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,KAAc,EAAE,CAAC,CAAC,GAAY,CAAC,CAAA;QACvE,OAAO,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,SAAS,EAAO,EAAE,OAAc,CAAC,CAAA;IACjE,CAAC,CAAA;AACH,CAAC","sourcesContent":["/**\n * Type-level utilities + runtime helper for composing multiple child\n * component modules into a parent's State and Msg types.\n *\n * Eliminates the manual State/Msg union declarations for each embedded\n * sub-component. The developer declares the children map once, and\n * `ChildState` / `ChildMsg` derive the wrapper types.\n *\n * ```ts\n * import type { ChildState, ChildMsg } from '@llui/dom'\n * import { childHandlers } from '@llui/dom'\n * import { dialog } from '@llui/components/dialog'\n * import { sortable } from '@llui/components/sortable'\n *\n * const children = { dialog, sort: sortable } as const\n *\n * type State = ChildState<typeof children> & { items: string[] }\n * type Msg = ChildMsg<typeof children> | { type: 'addItem'; text: string }\n *\n * const update = mergeHandlers<State, Msg, never>(\n * childHandlers(children),\n * appUpdate,\n * )\n * ```\n */\n\n/**\n * Extract the state type from a component module's update function.\n * Works with both property and method syntax.\n */\nexport type ModuleState<T> = T extends {\n update: (state: infer S, msg: infer _M) => [infer _S2, infer _E]\n}\n ? S\n : never\n\n/**\n * Extract the message type from a component module's update function.\n */\nexport type ModuleMsg<T> = T extends {\n update: (state: infer _S, msg: infer M) => [infer _S2, infer _E]\n}\n ? M\n : never\n\n/**\n * Given a record of component modules, derive the combined child state.\n * Each key maps to its module's state type.\n *\n * ```ts\n * const children = { dialog, sort: sortable } as const\n * type CS = ChildState<typeof children>\n * // → { dialog: DialogState; sort: SortableState }\n * ```\n */\nexport type ChildState<T extends Record<string, unknown>> = {\n [K in keyof T]: ModuleState<T[K]>\n}\n\n/**\n * Given a record of component modules, derive the combined child message\n * union. Each module's messages are wrapped in `{ type: key; msg: SubMsg }`.\n *\n * ```ts\n * const children = { dialog, sort: sortable } as const\n * type CM = ChildMsg<typeof children>\n * // → { type: 'dialog'; msg: DialogMsg } | { type: 'sort'; msg: SortableMsg }\n * ```\n */\nexport type ChildMsg<T extends Record<string, unknown>> = {\n [K in keyof T]: { type: K; msg: ModuleMsg<T[K]> }\n}[keyof T]\n\n/**\n * Create a merged handler from a map of component modules. Each module's\n * update is wired via `sliceHandler(key, module.update)` convention:\n * state[key] holds the sub-state, messages match `{ type: key; msg: SubMsg }`.\n *\n * Returns a handler compatible with `mergeHandlers`.\n */\nexport function childHandlers<S, M, E>(\n modules: Record<string, { update: (state: never, msg: never) => [unknown, unknown[]] }>,\n): (state: S, msg: M) => [S, E[]] | null {\n const keys = Object.keys(modules)\n return (state, msg) => {\n const m = msg as { type: string; msg?: unknown }\n if (!m.type || !('msg' in m)) return null\n if (!keys.includes(m.type)) return null\n const mod = modules[m.type]!\n const slice = (state as Record<string, unknown>)[m.type]\n const [nextSlice, effects] = mod.update(slice as never, m.msg as never)\n return [{ ...state, [m.type]: nextSlice } as S, effects as E[]]\n }\n}\n"]}
|
package/dist/devtools.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { flushInstance, _forceState } from './update-loop';
|
|
2
|
-
import { _setDevToolsInstall } from './mount';
|
|
1
|
+
import { flushInstance, _forceState } from './update-loop.js';
|
|
2
|
+
import { _setDevToolsInstall } from './mount.js';
|
|
3
3
|
/**
|
|
4
4
|
* Enable devtools auto-installation for every mountApp call. Called by
|
|
5
5
|
* compiler-generated dev code — never imported in production builds.
|
package/dist/devtools.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"devtools.js","sourceRoot":"","sources":["../src/devtools.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"devtools.js","sourceRoot":"","sources":["../src/devtools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,WAAW,EAA0B,MAAM,kBAAkB,CAAA;AACrF,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAGhD;;;;;GAKG;AACH,MAAM,UAAU,cAAc;IAC5B,mBAAmB,CAAC,eAAe,CAAC,CAAA;AACtC,CAAC;AAED,uEAAuE;AACvE,iEAAiE;AACjE,8EAA8E;AAC9E,EAAE;AACF,oEAAoE;AACpE,uEAAuE;AACvE,uDAAuD;AACvD,mEAAmE;AACnE,kDAAkD;AAElD,IAAI,SAAS,GAAG,IAAI,CAAA;AACpB,IAAI,cAAc,GAAG,KAAK,CAAA;AAQ1B,SAAS,aAAa,CAAC,EAAa,EAAE,KAAmB;IACvD,IAAI,GAAiB,CAAA;IACrB,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAiB,CAAA;IACtD,CAAC;IAAC,MAAM,CAAC;QACP,OAAM;IACR,CAAC;IACD,8DAA8D;IAC9D,MAAM,CAAC,GAAG,UAAiB,CAAA;IAC3B,IAAI,GAAG,CAAC,MAAM,KAAK,kBAAkB,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QACtE,MAAM,MAAM,GACV,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,gBAAgB;YACjC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;YACxF,CAAC,CAAC,IAAI,CAAA;QACV,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,CAAA;QAC7E,OAAM;IACR,CAAC;IACD,IAAI,GAAG,CAAC,MAAM,KAAK,mBAAmB,EAAE,CAAC;QACvC,MAAM,GAAG,GAAI,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAwB,IAAI,EAAE,CAAA;QACvD,MAAM,KAAK,GAAG,CAAC,CAAC,gBAAgB,EAAE,CAAC,GAAG,CAAC,CAAA;QACvC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,sBAAsB,GAAG,EAAE,EAAE,CAAC,CAAC,CAAA;YAC3E,OAAM;QACR,CAAC;QACD,CAAC,CAAC,WAAW,GAAG,KAAK,CAAA;QACrB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,CAAA;QAChE,OAAM;IACR,CAAC;IAED,MAAM,GAAG,GAAG,CAAC,CAAC,WAAuC,CAAA;IACrD,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,2BAA2B,EAAE,CAAC,CAAC,CAAA;QAC3E,OAAM;IACR,CAAC;IACD,8DAA8D;IAC9D,MAAM,EAAE,GAAI,GAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IACnC,IAAI,OAAO,EAAE,KAAK,UAAU,EAAE,CAAC;QAC7B,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,mBAAmB,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAA;QAC/E,OAAM;IACR,CAAC;IACD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAA;QAC5C,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,IAAI,IAAI,EAAE,CAAC,CAAC,CAAA;IACjE,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IAC5F,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,IAAY,EAAE,SAAkB;IACpD,IAAI,OAAO,SAAS,KAAK,WAAW;QAAE,OAAM;IAE5C,IAAI,EAAa,CAAA;IACjB,IAAI,CAAC;QACH,EAAE,GAAG,IAAI,SAAS,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAA;IAC9C,CAAC;IAAC,MAAM,CAAC;QACP,IAAI,CAAC,SAAS;YAAE,OAAO,CAAC,IAAI,CAAC,kDAAkD,IAAI,EAAE,CAAC,CAAA;QACtF,OAAM;IACR,CAAC;IAED,EAAE,CAAC,MAAM,GAAG,GAAG,EAAE;QACf,cAAc,GAAG,IAAI,CAAA;QACrB,OAAO,CAAC,GAAG,CAAC,0CAA0C,IAAI,EAAE,CAAC,CAAA;IAC/D,CAAC,CAAA;IACD,EAAE,CAAC,SAAS,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;IAClD,EAAE,CAAC,OAAO,GAAG,GAAG,EAAE;QAChB,IAAI,cAAc,EAAE,CAAC;YACnB,cAAc,GAAG,KAAK,CAAA;YACtB,OAAO,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAA;QAC5E,CAAC;IACH,CAAC,CAAA;IACD,EAAE,CAAC,OAAO,GAAG,GAAG,EAAE;QAChB,mDAAmD;IACrD,CAAC,CAAA;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,UAAU,CAAC,IAAI,GAAG,IAAI;IACpC,SAAS,GAAG,IAAI,CAAA;IAChB,IAAI,OAAO,SAAS,KAAK,WAAW;QAAE,OAAM;IAE5C,0CAA0C;IAC1C,8DAA8D;IAC9D,MAAM,CAAC,GAAG,UAAiB,CAAA;IAC3B,CAAC,CAAC,aAAa,GAAG,CAAC,CAAU,EAAE,EAAE;QAC/B,YAAY,CAAC,CAAC,IAAI,SAAS,EAAE,KAAK,CAAC,CAAA;IACrC,CAAC,CAAA;IAED,6EAA6E;IAC7E,IAAI,OAAO,KAAK,KAAK,WAAW,EAAE,CAAC;QACjC,KAAK,CAAC,oBAAoB,CAAC;aACxB,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAE,GAAG,CAAC,IAAI,EAAgC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;aAC1E,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;YACb,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC1C,SAAS,GAAG,IAAI,CAAC,IAAI,CAAA;gBACrB,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;YAC/B,CAAC;iBAAM,CAAC;gBACN,iEAAiE;gBACjE,kEAAkE;YACpE,CAAC;QACH,CAAC,CAAC;aACD,KAAK,CAAC,GAAG,EAAE;YACV,yEAAyE;YACzE,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QAC1B,CAAC,CAAC,CAAA;IACN,CAAC;SAAM,CAAC;QACN,0DAA0D;QAC1D,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IAC1B,CAAC;AACH,CAAC;AAkGD,MAAM,WAAW,GAAG,IAAI,CAAA;AAExB,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,MAAM,EAAE,GAAG,IAAyB,CAAA;IACpC,MAAM,OAAO,GAAoB,EAAE,CAAA;IACnC,IAAI,GAAG,GAAG,CAAC,CAAA;IACX,IAAI,aAAa,GAAG,CAAC,CAAA;IAErB,MAAM,GAAG,GAAiB;QACxB,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK;QACxB,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,GAAY,CAAC;QACpC,KAAK,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC;QAC9B,iBAAiB,EAAE,CAAC,IAAI,EAAE,EAAE;YAC1B,IAAI,MAAM,GAAG,OAAO,CAAA;YACpB,IAAI,IAAI,EAAE,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;gBACxB,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,CAAA;YAChD,CAAC;YACD,IAAI,IAAI,EAAE,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;gBAChD,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACpC,CAAC;YACD,OAAO,MAAM,CAAC,KAAK,EAAE,CAAA;QACvB,CAAC;QAED,UAAU,CAAC,GAAG;YACZ,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,GAAY,CAAC,CAAA;YAC9D,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAA;QAC3B,CAAC;QAED,WAAW;YACT,OAAO;gBACL,SAAS,EAAE,CAAU;gBACrB,SAAS,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI;gBACtB,WAAW,EAAE,UAAU;gBACvB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACnC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBAC3B,GAAG,EAAE,CAAC,CAAC,GAAG;oBACV,aAAa,EAAE,CAAC,CAAC,UAAU;oBAC3B,eAAe,EAAE,CAAC,CAAC,OAAO;iBAC3B,CAAC,CAAC;aACJ,CAAA;QACH,CAAC;QAED,QAAQ;YACN,OAAO,CAAC,MAAM,GAAG,CAAC,CAAA;YAClB,GAAG,GAAG,CAAC,CAAA;QACT,CAAC;QAED,eAAe,CAAC,GAAY;YAC1B,MAAM,MAAM,GAAG,EAAE,CAAC,GAAG,CAAC,WAET,CAAA;YACb,IAAI,CAAC,MAAM;gBAAE,OAAO,IAAI,CAAA;YAExB,IAAI,GAAG,IAAI,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;gBAC3C,OAAO;oBACL;wBACE,IAAI,EAAE,EAAE;wBACR,QAAQ,EAAE,QAAQ;wBAClB,QAAQ,EAAE,OAAO,GAAG;wBACpB,OAAO,EAAE,2BAA2B;qBACrC;iBACF,CAAA;YACH,CAAC;YAED,MAAM,MAAM,GAAG,GAA8B,CAAA;YAC7C,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,CAAA;YACxC,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC,CAAA;YAEtC,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC5B,OAAO;oBACL;wBACE,IAAI,EAAE,IAAI,YAAY,EAAE;wBACxB,QAAQ,EAAE,WAAW,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;6BAC9C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC;6BACpB,IAAI,CAAC,IAAI,CAAC,EAAE;wBACf,QAAQ,EAAE,WAAW;wBACrB,OAAO,EAAE,+BAA+B,YAAY,GAAG;qBACxD;iBACF,CAAA;YACH,CAAC;YAED,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;gBAClC,OAAO;oBACL;wBACE,IAAI,EAAE,IAAI,YAAY,EAAE;wBACxB,QAAQ,EAAE,QAAQ;wBAClB,QAAQ,EAAE,OAAO,SAAS;wBAC1B,OAAO,EAAE,uBAAuB,YAAY,oBAAoB;qBACjE;iBACF,CAAA;YACH,CAAC;YAED,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;YAC1C,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO;oBACL;wBACE,IAAI,EAAE,IAAI,YAAY,EAAE;wBACxB,QAAQ,EAAE,WAAW,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;6BAC9C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC;6BACpB,IAAI,CAAC,IAAI,CAAC,EAAE;wBACf,QAAQ,EAAE,IAAI,SAAS,GAAG;wBAC1B,OAAO,EAAE,yBAAyB,SAAS,GAAG;qBAC/C;iBACF,CAAA;YACH,CAAC;YAED,yCAAyC;YACzC,MAAM,MAAM,GAAsB,EAAE,CAAA;YACpC,KAAK,MAAM,CAAC,KAAK,EAAE,YAAY,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC5D,IAAI,KAAK,KAAK,YAAY;oBAAE,SAAQ;gBACpC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;gBAC3B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;oBACxB,MAAM,CAAC,IAAI,CAAC;wBACV,IAAI,EAAE,IAAI,KAAK,EAAE;wBACjB,QAAQ,EAAE,MAAM,CAAC,YAAY,CAAC;wBAC9B,QAAQ,EAAE,WAAW;wBACrB,OAAO,EAAE,2BAA2B,KAAK,GAAG;qBAC7C,CAAC,CAAA;gBACJ,CAAC;qBAAM,IAAI,OAAO,YAAY,KAAK,QAAQ,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;oBAC1E,IAAI,OAAO,KAAK,KAAK,YAAY,EAAE,CAAC;wBAClC,MAAM,CAAC,IAAI,CAAC;4BACV,IAAI,EAAE,IAAI,KAAK,EAAE;4BACjB,QAAQ,EAAE,YAAY;4BACtB,QAAQ,EAAE,OAAO,KAAK;4BACtB,OAAO,EAAE,UAAU,KAAK,kBAAkB;yBAC3C,CAAC,CAAA;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;YAED,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAA;QAC1C,CAAC;QAED,WAAW;YACT,MAAM,QAAQ,GAAc,EAAE,CAAC,WAAW,IAAI,EAAE,CAAA;YAChD,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC7B,KAAK,EAAE,CAAC;gBACR,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,SAAS,EAAE,CAAC,CAAC,SAAS;gBACtB,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,GAAG,EAAE,CAAC,CAAC,GAAG;gBACV,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,OAAO,EAAE,CAAC,CAAC,OAAO;aACnB,CAAC,CAAC,CAAA;QACL,CAAC;QAED,YAAY,CAAC,YAAoB;YAC/B,MAAM,QAAQ,GAAc,EAAE,CAAC,WAAW,IAAI,EAAE,CAAA;YAChD,MAAM,OAAO,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAA;YACtC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO;oBACL,YAAY;oBACZ,WAAW,EAAE,CAAC;oBACd,aAAa,EAAE,CAAC;oBAChB,OAAO,EAAE,KAAK;oBACd,cAAc,EAAE,SAAS;oBACzB,SAAS,EAAE,SAAS;oBACpB,OAAO,EAAE,KAAK;iBACf,CAAA;YACH,CAAC;YAED,MAAM,OAAO,GAAG,CAAC,OAAO,CAAC,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,CAAA;YACpD,IAAI,cAAuB,CAAA;YAC3B,IAAI,CAAC;gBACH,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,CAAA;YAC7C,CAAC;YAAC,MAAM,CAAC;gBACP,cAAc,GAAG,SAAS,CAAA;YAC5B,CAAC;YACD,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,cAAc,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;YAE7D,OAAO;gBACL,YAAY;gBACZ,WAAW,EAAE,OAAO,CAAC,IAAI;gBACzB,aAAa;gBACb,OAAO;gBACP,cAAc;gBACd,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,OAAO;aACR,CAAA;QACH,CAAC;QAED,WAAW,CAAC,KAAa;YACvB,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAC9B,IAAI,OAAO,GAAY,EAAE,CAAC,KAAK,CAAA;YAC/B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,IAAI,OAAO,IAAI,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ;oBAAE,OAAO,SAAS,CAAA;gBACpE,OAAO,GAAI,OAAmC,CAAC,IAAI,CAAC,CAAA;YACtD,CAAC;YACD,OAAO,OAAO,CAAA;QAChB,CAAC;QAED,gBAAgB;YACd,OAAQ,EAAE,CAAC,GAAG,CAAC,WAA6C,IAAI,IAAI,CAAA;QACtE,CAAC;QAED,aAAa;YACX,OAAO,EAAE,CAAC,GAAG,CAAC,YAAY,IAAI,IAAI,CAAA;QACpC,CAAC;QAED,UAAU,CAAC,IAAY;YACrB,MAAM,MAAM,GAAG,EAAE,CAAC,GAAG,CAAC,YAAY,CAAA;YAClC,IAAI,CAAC,MAAM;gBAAE,OAAO,EAAE,CAAA;YACtB,MAAM,MAAM,GAAa,EAAE,CAAA;YAC3B,KAAK,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAClD,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC;oBAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YAC5C,CAAC;YACD,OAAO,MAAM,CAAA;QACf,CAAC;QAED,gBAAgB;YACd,MAAM,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,eAAe,CAAA;YACnC,OAAO;gBACL,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI;gBACjB,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,IAAI;gBACxB,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,IAAI;aACzB,CAAA;QACH,CAAC;QAED,cAAc;YACZ,OAAQ,EAAE,CAAC,GAAG,CAAC,aAAoC,IAAI,IAAI,CAAA;QAC7D,CAAC;QAED,eAAe;YACb,OAAQ,EAAE,CAAC,GAAG,CAAC,cAAqC,IAAI,IAAI,CAAA;QAC9D,CAAC;QAED,aAAa;YACX,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;QAC7C,CAAC;QAED,YAAY,CAAC,IAAa;YACxB,WAAW,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;QACvB,CAAC;QAED,cAAc,CAAC,QAAgB;YAC7B,IAAI,OAAO,QAAQ,KAAK,WAAW;gBAAE,OAAO,EAAE,CAAA;YAC9C,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAA;YAChE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,EAAE,CAAA;YACpC,MAAM,UAAU,GAAG,IAAI,GAAG,CAAU,QAAQ,CAAC,CAAA;YAC7C,MAAM,OAAO,GAAsB,EAAE,CAAA;YACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC/C,MAAM,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,CAAE,CAAA;gBAC5B,IAAI,CAAC,CAAC,IAAI;oBAAE,SAAQ;gBACpB,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAA;gBACnB,IAAI,QAAQ,GAAmD,IAAI,CAAA;gBACnE,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,IAAe,CAAC,EAAE,CAAC;oBAC3D,QAAQ,GAAG,MAAM,CAAA;gBACnB,CAAC;qBAAM,IACL,CAAC,IAAI,CAAC,QAAQ,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,CAAC;oBAC5C,IAAI,CAAC,aAAa;oBAClB,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,EAClC,CAAC;oBACD,QAAQ,GAAG,IAAI,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,eAAe,CAAA;gBACjE,CAAC;gBACD,IAAI,CAAC,QAAQ;oBAAE,SAAQ;gBACvB,OAAO,CAAC,IAAI,CAAC;oBACX,YAAY,EAAE,CAAC;oBACf,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,GAAG,EAAE,CAAC,CAAC,GAAG;oBACV,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,SAAS,EAAE,CAAC,CAAC,SAAS;oBACtB,QAAQ;iBACT,CAAC,CAAA;YACJ,CAAC;YACD,OAAO,OAAO,CAAA;QAChB,CAAC;KACF,CAAA;IAED,yCAAyC;IACzC,MAAM,cAAc,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAA;IACpC,EAAE,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,KAAc,EAAE,GAAY,EAAE,EAAE;QAChD,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,GACvB,cACD,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;QACb,MAAM,KAAK,GAAG,EAAE,CAAC,GAAG,CAAC,OAAO;YAC1B,CAAC,CAAE,EAAE,CAAC,GAAG,CAAC,OAA8C,CAAC,KAAK,EAAE,QAAQ,CAAC;YACzE,CAAC,CAAC,CAAC,CAAC,CAAA;QAEN,aAAa,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAEtD,MAAM,MAAM,GAAkB;YAC5B,KAAK,EAAE,GAAG,EAAE;YACZ,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,GAAG;YACH,WAAW,EAAE,KAAK;YAClB,UAAU,EAAE,QAAQ;YACpB,OAAO;YACP,SAAS,EAAE,aAAa;SACzB,CAAA;QAED,IAAI,OAAO,CAAC,MAAM,IAAI,WAAW;YAAE,OAAO,CAAC,KAAK,EAAE,CAAA;QAClD,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAEpB,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;IAC5B,CAAC,CAAyB,CAAA;IAE1B,wEAAwE;IACxE,wEAAwE;IACxE,2DAA2D;IAC3D,8DAA8D;IAC9D,MAAM,CAAC,GAAG,UAAiB,CAAA;IAC3B,IAAI,CAAC,CAAC,CAAC,gBAAgB;QAAE,CAAC,CAAC,gBAAgB,GAAG,EAAkC,CAAA;IAChF,MAAM,YAAY,GAAG,UAAU,CAAC,CAAC,CAAC,gBAAgB,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IAChE,CAAC,CAAC,gBAAgB,CAAC,YAAY,CAAC,GAAG,GAAG,CAAA;IACtC,CAAC,CAAC,WAAW,GAAG,GAAG,CAElB;IAAC,GAAW,CAAC,cAAc,GAAG,YAAY,CAAA;AAC7C,CAAC;AAED,mEAAmE;AACnE,0DAA0D;AAC1D,SAAS,UAAU,CAAC,QAAiC,EAAE,IAAY;IACjE,IAAI,CAAC,CAAC,IAAI,IAAI,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAA;IACpC,IAAI,CAAC,GAAG,CAAC,CAAA;IACT,OAAO,GAAG,IAAI,IAAI,CAAC,EAAE,IAAI,QAAQ;QAAE,CAAC,EAAE,CAAA;IACtC,OAAO,GAAG,IAAI,IAAI,CAAC,EAAE,CAAA;AACvB,CAAC","sourcesContent":["import { flushInstance, _forceState, type ComponentInstance } from './update-loop.js'\nimport { _setDevToolsInstall } from './mount.js'\nimport type { Binding } from './types.js'\n\n/**\n * Enable devtools auto-installation for every mountApp call. Called by\n * compiler-generated dev code — never imported in production builds.\n * Once enabled, every mounted component attaches `globalThis.__lluiDebug`\n * to the most recently mounted instance.\n */\nexport function enableDevTools(): void {\n _setDevToolsInstall(installDevTools)\n}\n\n// ── MCP WebSocket Relay ─────────────────────────────────────────────\n// Forwards method calls from an out-of-process MCP server to the\n// current __lluiDebug API. Dev-mode only — compiler injects startRelay(port).\n//\n// On-demand: tries a SINGLE connection on page load. If it succeeds\n// (MCP server is already running), the relay stays open and reconnects\n// on drop. If it fails, no retry loop — just registers\n// `window.__lluiConnect(port?)` so the developer can connect later\n// from the console or when the MCP server starts.\n\nlet relayPort = 5200\nlet relayConnected = false\n\ninterface RelayRequest {\n id: string\n method: keyof LluiDebugAPI | '__listComponents' | '__selectComponent'\n args: unknown[]\n}\n\nfunction handleMessage(ws: WebSocket, event: MessageEvent): void {\n let req: RelayRequest\n try {\n req = JSON.parse(String(event.data)) as RelayRequest\n } catch {\n return\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const g = globalThis as any\n if (req.method === '__listComponents') {\n const keys = g.__lluiComponents ? Object.keys(g.__lluiComponents) : []\n const active =\n g.__lluiDebug && g.__lluiComponents\n ? (Object.entries(g.__lluiComponents).find(([, v]) => v === g.__lluiDebug)?.[0] ?? null)\n : null\n ws.send(JSON.stringify({ id: req.id, result: { components: keys, active } }))\n return\n }\n if (req.method === '__selectComponent') {\n const key = (req.args?.[0] as string | undefined) ?? ''\n const entry = g.__lluiComponents?.[key]\n if (!entry) {\n ws.send(JSON.stringify({ id: req.id, error: `unknown component: ${key}` }))\n return\n }\n g.__lluiDebug = entry\n ws.send(JSON.stringify({ id: req.id, result: { active: key } }))\n return\n }\n\n const api = g.__lluiDebug as LluiDebugAPI | undefined\n if (!api) {\n ws.send(JSON.stringify({ id: req.id, error: '__lluiDebug not available' }))\n return\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const fn = (api as any)[req.method]\n if (typeof fn !== 'function') {\n ws.send(JSON.stringify({ id: req.id, error: `unknown method: ${req.method}` }))\n return\n }\n try {\n const result = fn.apply(api, req.args ?? [])\n ws.send(JSON.stringify({ id: req.id, result: result ?? null }))\n } catch (e) {\n ws.send(JSON.stringify({ id: req.id, error: e instanceof Error ? e.message : String(e) }))\n }\n}\n\nfunction connectRelay(port: number, isInitial: boolean): void {\n if (typeof WebSocket === 'undefined') return\n\n let ws: WebSocket\n try {\n ws = new WebSocket(`ws://127.0.0.1:${port}`)\n } catch {\n if (!isInitial) console.warn(`[LLui MCP] failed to connect to ws://127.0.0.1:${port}`)\n return\n }\n\n ws.onopen = () => {\n relayConnected = true\n console.log(`[LLui MCP] connected to ws://127.0.0.1:${port}`)\n }\n ws.onmessage = (event) => handleMessage(ws, event)\n ws.onclose = () => {\n if (relayConnected) {\n relayConnected = false\n console.log('[LLui MCP] disconnected — call __lluiConnect() to reconnect')\n }\n }\n ws.onerror = () => {\n // onclose fires after onerror — nothing to do here\n }\n}\n\n/**\n * Register the MCP relay for this page.\n *\n * Discovery happens in two phases:\n *\n * 1. **Status endpoint** (preferred): fetches `/__llui_mcp_status`,\n * which the Vite plugin serves from the active marker file written\n * by `@llui/mcp`. If the MCP server is running, the response gives\n * us the actual port — we connect immediately. This avoids the race\n * where HMR events fire before the listener registers, and handles\n * cases where MCP runs on a non-default port.\n * 2. **Compile-time fallback**: if the status endpoint is unavailable\n * (404, network error, non-Vite environment), we attempt a single\n * connection to the compiled-in `port` parameter as a best-effort.\n *\n * Either way: no retry loop. If both fail, `window.__lluiConnect(port?)`\n * is exposed so the developer can connect manually from the console\n * when the MCP server starts. The Vite plugin also dispatches an\n * `llui:mcp-ready` HMR custom event when the marker file appears later,\n * which the compiler-injected dev code forwards to `__lluiConnect`.\n */\nexport function startRelay(port = 5200): void {\n relayPort = port\n if (typeof WebSocket === 'undefined') return\n\n // Expose manual connect for on-demand use\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const g = globalThis as any\n g.__lluiConnect = (p?: number) => {\n connectRelay(p ?? relayPort, false)\n }\n\n // Try the Vite middleware first (knows the actual port from the marker file)\n if (typeof fetch !== 'undefined') {\n fetch('/__llui_mcp_status')\n .then((res) => (res.ok ? (res.json() as Promise<{ port: number }>) : null))\n .then((data) => {\n if (data && typeof data.port === 'number') {\n relayPort = data.port\n connectRelay(data.port, true)\n } else {\n // Endpoint replied 404 — MCP not running. Don't fall back to the\n // compile-time port; the HMR event will fire if MCP starts later.\n }\n })\n .catch(() => {\n // Network error or non-Vite environment — fall back to compile-time port\n connectRelay(port, true)\n })\n } else {\n // No fetch available — use the compile-time port directly\n connectRelay(port, true)\n }\n}\n\nexport interface MessageRecord {\n index: number\n timestamp: number\n msg: unknown\n stateBefore: unknown\n stateAfter: unknown\n effects: unknown[]\n dirtyMask: number\n}\n\nexport interface BindingDebugInfo {\n index: number\n mask: number\n lastValue: unknown\n kind: string\n key: string | undefined\n dead: boolean\n perItem: boolean\n}\n\nexport interface UpdateExplanation {\n bindingIndex: number\n bindingMask: number\n lastDirtyMask: number\n matched: boolean\n accessorResult: unknown\n lastValue: unknown\n changed: boolean\n}\n\nexport interface ValidationError {\n path: string\n expected: string\n received: string\n message: string\n}\n\nexport interface LluiDebugAPI {\n getState(): unknown\n send(msg: unknown): void\n flush(): void\n getMessageHistory(opts?: { since?: number; limit?: number }): MessageRecord[]\n evalUpdate(msg: unknown): { state: unknown; effects: unknown[] }\n exportTrace(): {\n lluiTrace: 1\n component: string\n generatedBy: string\n timestamp: string\n entries: Array<{ msg: unknown; expectedState: unknown; expectedEffects: unknown[] }>\n }\n clearLog(): void\n validateMessage(msg: unknown): ValidationError[] | null\n getBindings(): BindingDebugInfo[]\n whyDidUpdate(bindingIndex: number): UpdateExplanation\n searchState(query: string): unknown\n /** Returns the compiled Msg schema (discriminant + variant field types). */\n getMessageSchema(): MessageSchemaInfo | null\n /** Returns the bit→field map injected by the compiler. Lets tools decode dirty-mask values. */\n getMaskLegend(): Record<string, number> | null\n /** Given a dirty mask, return the list of top-level fields it represents. */\n decodeMask(mask: number): string[]\n /** Component name + source location (file/line from compiler-injected metadata). */\n getComponentInfo(): ComponentInfo\n /** Returns the compiled State type shape (from TypeScript `type State = { … }`). */\n getStateSchema(): object | null\n /** Returns the compiled Effect schema (from TypeScript `type Effect = { … }` union). */\n getEffectSchema(): object | null\n /** Deep-clone the current state. Pair with restoreState() to checkpoint before risky operations. */\n snapshotState(): unknown\n /** Overwrite the current state with a previously-captured snapshot. Triggers a full re-render. */\n restoreState(snap: unknown): void\n /** Find all bindings whose target node matches or is a child of the selector. */\n getBindingsFor(selector: string): BindingLocation[]\n}\n\nexport interface BindingLocation {\n bindingIndex: number\n kind: string\n key: string | undefined\n mask: number\n lastValue: unknown\n /** How the binding's node relates to the matched element: 'self' (binding on the element itself) or 'text-child' (text node inside). */\n relation: 'self' | 'text-child' | 'comment-child'\n}\n\nexport interface ComponentInfo {\n name: string\n file: string | null\n line: number | null\n}\n\nexport interface MessageSchemaInfo {\n discriminant: string\n variants: Record<string, Record<string, unknown>>\n}\n\nconst MAX_HISTORY = 1000\n\nexport function installDevTools(inst: object): void {\n const ci = inst as ComponentInstance\n const history: MessageRecord[] = []\n let idx = 0\n let lastDirtyMask = 0\n\n const api: LluiDebugAPI = {\n getState: () => ci.state,\n send: (msg) => ci.send(msg as never),\n flush: () => flushInstance(ci),\n getMessageHistory: (opts) => {\n let result = history\n if (opts?.since !== undefined) {\n const since = opts.since\n result = result.filter((r) => r.index > since)\n }\n if (opts?.limit !== undefined && opts.limit > 0) {\n result = result.slice(-opts.limit)\n }\n return result.slice()\n },\n\n evalUpdate(msg) {\n const [state, effects] = ci.def.update(ci.state, msg as never)\n return { state, effects }\n },\n\n exportTrace() {\n return {\n lluiTrace: 1 as const,\n component: ci.def.name,\n generatedBy: 'devtools',\n timestamp: new Date().toISOString(),\n entries: history.map((h) => ({\n msg: h.msg,\n expectedState: h.stateAfter,\n expectedEffects: h.effects,\n })),\n }\n },\n\n clearLog() {\n history.length = 0\n idx = 0\n },\n\n validateMessage(msg: unknown): ValidationError[] | null {\n const schema = ci.def.__msgSchema as\n | { discriminant: string; variants: Record<string, Record<string, unknown>> }\n | undefined\n if (!schema) return null\n\n if (msg == null || typeof msg !== 'object') {\n return [\n {\n path: '',\n expected: 'object',\n received: typeof msg,\n message: 'Message must be an object',\n },\n ]\n }\n\n const msgObj = msg as Record<string, unknown>\n const discriminant = schema.discriminant\n const typeValue = msgObj[discriminant]\n\n if (typeValue === undefined) {\n return [\n {\n path: `.${discriminant}`,\n expected: `one of: ${Object.keys(schema.variants)\n .map((v) => `'${v}'`)\n .join(', ')}`,\n received: 'undefined',\n message: `Missing discriminant field '${discriminant}'`,\n },\n ]\n }\n\n if (typeof typeValue !== 'string') {\n return [\n {\n path: `.${discriminant}`,\n expected: 'string',\n received: typeof typeValue,\n message: `Discriminant field '${discriminant}' must be a string`,\n },\n ]\n }\n\n const variant = schema.variants[typeValue]\n if (!variant) {\n return [\n {\n path: `.${discriminant}`,\n expected: `one of: ${Object.keys(schema.variants)\n .map((v) => `'${v}'`)\n .join(', ')}`,\n received: `'${typeValue}'`,\n message: `Unknown message type '${typeValue}'`,\n },\n ]\n }\n\n // Validate fields of the matched variant\n const errors: ValidationError[] = []\n for (const [field, expectedType] of Object.entries(variant)) {\n if (field === discriminant) continue\n const value = msgObj[field]\n if (value === undefined) {\n errors.push({\n path: `.${field}`,\n expected: String(expectedType),\n received: 'undefined',\n message: `Missing required field '${field}'`,\n })\n } else if (typeof expectedType === 'string' && expectedType !== 'unknown') {\n if (typeof value !== expectedType) {\n errors.push({\n path: `.${field}`,\n expected: expectedType,\n received: typeof value,\n message: `Field '${field}' has wrong type`,\n })\n }\n }\n }\n\n return errors.length > 0 ? errors : null\n },\n\n getBindings(): BindingDebugInfo[] {\n const bindings: Binding[] = ci.allBindings ?? []\n return bindings.map((b, i) => ({\n index: i,\n mask: b.mask,\n lastValue: b.lastValue,\n kind: b.kind,\n key: b.key,\n dead: b.dead,\n perItem: b.perItem,\n }))\n },\n\n whyDidUpdate(bindingIndex: number): UpdateExplanation {\n const bindings: Binding[] = ci.allBindings ?? []\n const binding = bindings[bindingIndex]\n if (!binding) {\n return {\n bindingIndex,\n bindingMask: 0,\n lastDirtyMask: 0,\n matched: false,\n accessorResult: undefined,\n lastValue: undefined,\n changed: false,\n }\n }\n\n const matched = (binding.mask & lastDirtyMask) !== 0\n let accessorResult: unknown\n try {\n accessorResult = binding.accessor(ci.state)\n } catch {\n accessorResult = '<error>'\n }\n const changed = !Object.is(accessorResult, binding.lastValue)\n\n return {\n bindingIndex,\n bindingMask: binding.mask,\n lastDirtyMask,\n matched,\n accessorResult,\n lastValue: binding.lastValue,\n changed,\n }\n },\n\n searchState(query: string): unknown {\n const parts = query.split('.')\n let current: unknown = ci.state\n for (const part of parts) {\n if (current == null || typeof current !== 'object') return undefined\n current = (current as Record<string, unknown>)[part]\n }\n return current\n },\n\n getMessageSchema(): MessageSchemaInfo | null {\n return (ci.def.__msgSchema as MessageSchemaInfo | undefined) ?? null\n },\n\n getMaskLegend(): Record<string, number> | null {\n return ci.def.__maskLegend ?? null\n },\n\n decodeMask(mask: number): string[] {\n const legend = ci.def.__maskLegend\n if (!legend) return []\n const fields: string[] = []\n for (const [field, bit] of Object.entries(legend)) {\n if ((mask & bit) !== 0) fields.push(field)\n }\n return fields\n },\n\n getComponentInfo(): ComponentInfo {\n const meta = ci.def.__componentMeta\n return {\n name: ci.def.name,\n file: meta?.file ?? null,\n line: meta?.line ?? null,\n }\n },\n\n getStateSchema(): object | null {\n return (ci.def.__stateSchema as object | undefined) ?? null\n },\n\n getEffectSchema(): object | null {\n return (ci.def.__effectSchema as object | undefined) ?? null\n },\n\n snapshotState(): unknown {\n return JSON.parse(JSON.stringify(ci.state))\n },\n\n restoreState(snap: unknown): void {\n _forceState(ci, snap)\n },\n\n getBindingsFor(selector: string): BindingLocation[] {\n if (typeof document === 'undefined') return []\n const elements = Array.from(document.querySelectorAll(selector))\n if (elements.length === 0) return []\n const elementSet = new Set<Element>(elements)\n const results: BindingLocation[] = []\n for (let i = 0; i < ci.allBindings.length; i++) {\n const b = ci.allBindings[i]!\n if (b.dead) continue\n const node = b.node\n let relation: 'self' | 'text-child' | 'comment-child' | null = null\n if (node.nodeType === 1 && elementSet.has(node as Element)) {\n relation = 'self'\n } else if (\n (node.nodeType === 3 || node.nodeType === 8) &&\n node.parentElement &&\n elementSet.has(node.parentElement)\n ) {\n relation = node.nodeType === 3 ? 'text-child' : 'comment-child'\n }\n if (!relation) continue\n results.push({\n bindingIndex: i,\n kind: b.kind,\n key: b.key,\n mask: b.mask,\n lastValue: b.lastValue,\n relation,\n })\n }\n return results\n },\n }\n\n // Intercept update to record transitions\n const originalUpdate = ci.def.update\n ci.def.update = ((state: unknown, msg: unknown) => {\n const [newState, effects] = (\n originalUpdate as (s: unknown, m: unknown) => [unknown, unknown[]]\n )(state, msg)\n const dirty = ci.def.__dirty\n ? (ci.def.__dirty as (o: unknown, n: unknown) => number)(state, newState)\n : -1\n\n lastDirtyMask = typeof dirty === 'number' ? dirty : -1\n\n const record: MessageRecord = {\n index: idx++,\n timestamp: Date.now(),\n msg,\n stateBefore: state,\n stateAfter: newState,\n effects,\n dirtyMask: lastDirtyMask,\n }\n\n if (history.length >= MAX_HISTORY) history.shift()\n history.push(record)\n\n return [newState, effects]\n }) as typeof ci.def.update\n\n // Register in the multi-component registry and point __lluiDebug at the\n // newest mount (so single-component apps keep working unchanged). Tools\n // can switch the active pointer via llui_select_component.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const g = globalThis as any\n if (!g.__lluiComponents) g.__lluiComponents = {} as Record<string, LluiDebugAPI>\n const componentKey = uniqueName(g.__lluiComponents, ci.def.name)\n g.__lluiComponents[componentKey] = api\n g.__lluiDebug = api\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ;(api as any).__componentKey = componentKey\n}\n\n// Generate a unique key for a component name if it's already taken\n// (e.g. same component mounted into multiple containers).\nfunction uniqueName(registry: Record<string, unknown>, name: string): string {\n if (!(name in registry)) return name\n let i = 2\n while (`${name}#${i}` in registry) i++\n return `${name}#${i}`\n}\n"]}
|
package/dist/el-split.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type { BindingKind } from './types';
|
|
2
|
-
export declare function elSplit(tag: string, staticFn: ((el: HTMLElement) => void) | null, events: Array<[string, EventListener]> | null, bindings: Array<[number, BindingKind, string, (state: never) => unknown]> | null, children: Node
|
|
1
|
+
import type { BindingKind } from './types.js';
|
|
2
|
+
export declare function elSplit(tag: string, staticFn: ((el: HTMLElement) => void) | null, events: Array<[string, EventListener]> | null, bindings: Array<[number, BindingKind, string, (state: never) => unknown]> | null, children: Array<Node | string> | null): HTMLElement;
|
|
3
3
|
//# sourceMappingURL=el-split.d.ts.map
|
package/dist/el-split.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"el-split.d.ts","sourceRoot":"","sources":["../src/el-split.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"el-split.d.ts","sourceRoot":"","sources":["../src/el-split.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAK7C,wBAAgB,OAAO,CACrB,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,WAAW,KAAK,IAAI,CAAC,GAAG,IAAI,EAC5C,MAAM,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,GAAG,IAAI,EAC7C,QAAQ,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,CAAC,GAAG,IAAI,EAIhF,QAAQ,EAAE,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC,GAAG,IAAI,GACpC,WAAW,CAuDb"}
|
package/dist/el-split.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
|
-
import { getRenderContext } from './render-context';
|
|
2
|
-
import { createBinding, applyBinding } from './binding';
|
|
3
|
-
import { addCheckedItemUpdater } from './scope';
|
|
4
|
-
export function elSplit(tag, staticFn, events, bindings,
|
|
1
|
+
import { getRenderContext } from './render-context.js';
|
|
2
|
+
import { createBinding, applyBinding } from './binding.js';
|
|
3
|
+
import { addCheckedItemUpdater } from './scope.js';
|
|
4
|
+
export function elSplit(tag, staticFn, events, bindings,
|
|
5
|
+
// Accepts raw strings too — wrapped in Text nodes at append time so
|
|
6
|
+
// user code like `button([], ['Sign in'])` works without requiring
|
|
7
|
+
// an explicit text() wrapper.
|
|
8
|
+
children) {
|
|
5
9
|
const el = document.createElement(tag);
|
|
6
10
|
if (staticFn) {
|
|
7
11
|
staticFn(el);
|
|
@@ -38,7 +42,17 @@ export function elSplit(tag, staticFn, events, bindings, children) {
|
|
|
38
42
|
}
|
|
39
43
|
if (children) {
|
|
40
44
|
for (const child of children) {
|
|
41
|
-
|
|
45
|
+
// Strings get wrapped in Text nodes — matches createElement's
|
|
46
|
+
// behavior in elements.ts. Without this, user code that passes
|
|
47
|
+
// raw strings as children (e.g. `button([], ['Sign in'])`) crashes
|
|
48
|
+
// in jsdom with "parameter 1 is not of type 'Node'" during SSR
|
|
49
|
+
// and throws a TypeError in strict browsers.
|
|
50
|
+
if (typeof child === 'string') {
|
|
51
|
+
el.appendChild(document.createTextNode(child));
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
el.appendChild(child);
|
|
55
|
+
}
|
|
42
56
|
}
|
|
43
57
|
}
|
|
44
58
|
return el;
|
package/dist/el-split.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"el-split.js","sourceRoot":"","sources":["../src/el-split.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"el-split.js","sourceRoot":"","sources":["../src/el-split.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAA;AAElD,MAAM,UAAU,OAAO,CACrB,GAAW,EACX,QAA4C,EAC5C,MAA6C,EAC7C,QAAgF;AAChF,oEAAoE;AACpE,mEAAmE;AACnE,8BAA8B;AAC9B,QAAqC;IAErC,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAA;IAEtC,IAAI,QAAQ,EAAE,CAAC;QACb,QAAQ,CAAC,EAAE,CAAC,CAAA;IACd,CAAC;IAED,IAAI,MAAM,EAAE,CAAC;QACX,KAAK,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,MAAM,EAAE,CAAC;YAC1C,EAAE,CAAC,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;QACzC,CAAC;IACH,CAAC;IAED,MAAM,GAAG,GAAG,gBAAgB,EAAE,CAAA;IAE9B,IAAI,QAAQ,EAAE,CAAC;QACb,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,CAAC,IAAI,QAAQ,EAAE,CAAC;YACnD,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAA;YACrC,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,GAAG,GAAG,QAAoC,CAAA;gBAChD,MAAM,MAAM,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,CAAA;gBACtC,MAAM,OAAO,GAAG,qBAAqB,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAA;gBACzF,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;YAC/B,CAAC;iBAAM,CAAC;gBACN,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,CAAC,SAAS,EAAE;oBAC3C,IAAI;oBACJ,QAAQ;oBACR,IAAI;oBACJ,IAAI,EAAE,EAAE;oBACR,GAAG;oBACH,OAAO,EAAE,KAAK;iBACf,CAAC,CAAA;gBACF,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAc,CAAC,CAAA;gBACjD,OAAO,CAAC,SAAS,GAAG,YAAY,CAAA;gBAChC,YAAY,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,YAAY,CAAC,CAAA;YACrD,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,QAAQ,EAAE,CAAC;QACb,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;YAC7B,8DAA8D;YAC9D,+DAA+D;YAC/D,mEAAmE;YACnE,+DAA+D;YAC/D,6CAA6C;YAC7C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9B,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAA;YAChD,CAAC;iBAAM,CAAC;gBACN,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;YACvB,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,EAAE,CAAA;AACX,CAAC","sourcesContent":["import type { BindingKind } from './types.js'\nimport { getRenderContext } from './render-context.js'\nimport { createBinding, applyBinding } from './binding.js'\nimport { addCheckedItemUpdater } from './scope.js'\n\nexport function elSplit(\n tag: string,\n staticFn: ((el: HTMLElement) => void) | null,\n events: Array<[string, EventListener]> | null,\n bindings: Array<[number, BindingKind, string, (state: never) => unknown]> | null,\n // Accepts raw strings too — wrapped in Text nodes at append time so\n // user code like `button([], ['Sign in'])` works without requiring\n // an explicit text() wrapper.\n children: Array<Node | string> | null,\n): HTMLElement {\n const el = document.createElement(tag)\n\n if (staticFn) {\n staticFn(el)\n }\n\n if (events) {\n for (const [eventName, handler] of events) {\n el.addEventListener(eventName, handler)\n }\n }\n\n const ctx = getRenderContext()\n\n if (bindings) {\n for (const [mask, kind, key, accessor] of bindings) {\n const perItem = accessor.length === 0\n if (perItem) {\n const get = accessor as unknown as () => unknown\n const target = { kind, node: el, key }\n const initial = addCheckedItemUpdater(ctx.rootScope, get, (v) => applyBinding(target, v))\n applyBinding(target, initial)\n } else {\n const binding = createBinding(ctx.rootScope, {\n mask,\n accessor,\n kind,\n node: el,\n key,\n perItem: false,\n })\n const initialValue = accessor(ctx.state as never)\n binding.lastValue = initialValue\n applyBinding({ kind, node: el, key }, initialValue)\n }\n }\n }\n\n if (children) {\n for (const child of children) {\n // Strings get wrapped in Text nodes — matches createElement's\n // behavior in elements.ts. Without this, user code that passes\n // raw strings as children (e.g. `button([], ['Sign in'])`) crashes\n // in jsdom with \"parameter 1 is not of type 'Node'\" during SSR\n // and throws a TypeError in strict browsers.\n if (typeof child === 'string') {\n el.appendChild(document.createTextNode(child))\n } else {\n el.appendChild(child)\n }\n }\n }\n\n return el\n}\n"]}
|
package/dist/el-template.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { BindingKind } from './types';
|
|
1
|
+
import type { BindingKind } from './types.js';
|
|
2
2
|
/** Callback passed to patch functions — registers a reactive binding on a node. */
|
|
3
3
|
export type TemplateBind = (node: Node, mask: number, kind: BindingKind, key: string | undefined, accessor: (s: never) => unknown) => void;
|
|
4
4
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"el-template.d.ts","sourceRoot":"","sources":["../src/el-template.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"el-template.d.ts","sourceRoot":"","sources":["../src/el-template.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAQ7C,mFAAmF;AACnF,MAAM,MAAM,YAAY,GAAG,CACzB,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,WAAW,EACjB,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,QAAQ,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,OAAO,KAC5B,IAAI,CAAA;AAET;;;;;;;;;;;GAWG;AACH,wBAAgB,UAAU,CACxB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,KAAK,IAAI,GACjD,OAAO,CAoCT"}
|
package/dist/el-template.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { getRenderContext } from './render-context';
|
|
2
|
-
import { createBinding, applyBinding } from './binding';
|
|
3
|
-
import { addCheckedItemUpdater } from './scope';
|
|
1
|
+
import { getRenderContext } from './render-context.js';
|
|
2
|
+
import { createBinding, applyBinding } from './binding.js';
|
|
3
|
+
import { addCheckedItemUpdater } from './scope.js';
|
|
4
4
|
// Cache: HTML string → template element (created once, cloned per use)
|
|
5
5
|
const templateCache = new Map();
|
|
6
6
|
/**
|
package/dist/el-template.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"el-template.js","sourceRoot":"","sources":["../src/el-template.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"el-template.js","sourceRoot":"","sources":["../src/el-template.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAA;AAElD,uEAAuE;AACvE,MAAM,aAAa,GAAG,IAAI,GAAG,EAA+B,CAAA;AAW5D;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,UAAU,CACxB,IAAY,EACZ,KAAkD;IAElD,IAAI,IAAI,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IAClC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAA;QACzC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;QACrB,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IAC/B,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAkB,CAAC,SAAS,CAAC,IAAI,CAAY,CAAA;IACvE,MAAM,GAAG,GAAG,gBAAgB,EAAE,CAAA;IAE9B,MAAM,IAAI,GAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE;QAC7D,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAA;QACrC,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,GAAG,GAAG,QAAoC,CAAA;YAChD,MAAM,MAAM,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,CAAA;YAClC,MAAM,OAAO,GAAG,qBAAqB,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAA;YACzF,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QAC/B,CAAC;aAAM,CAAC;YACN,kDAAkD;YAClD,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,CAAC,SAAS,EAAE;gBAC3C,IAAI;gBACJ,QAAQ;gBACR,IAAI;gBACJ,IAAI;gBACJ,GAAG;gBACH,OAAO,EAAE,KAAK;aACf,CAAC,CAAA;YACF,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAc,CAAC,CAAA;YACjD,OAAO,CAAC,SAAS,GAAG,YAAY,CAAA;YAChC,YAAY,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,YAAY,CAAC,CAAA;QACjD,CAAC;IACH,CAAC,CAAA;IAED,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IACjB,OAAO,IAAI,CAAA;AACb,CAAC","sourcesContent":["import type { BindingKind } from './types.js'\nimport { getRenderContext } from './render-context.js'\nimport { createBinding, applyBinding } from './binding.js'\nimport { addCheckedItemUpdater } from './scope.js'\n\n// Cache: HTML string → template element (created once, cloned per use)\nconst templateCache = new Map<string, HTMLTemplateElement>()\n\n/** Callback passed to patch functions — registers a reactive binding on a node. */\nexport type TemplateBind = (\n node: Node,\n mask: number,\n kind: BindingKind,\n key: string | undefined,\n accessor: (s: never) => unknown,\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) => void,\n): Element {\n let tmpl = templateCache.get(html)\n if (!tmpl) {\n tmpl = document.createElement('template')\n tmpl.innerHTML = html\n templateCache.set(html, tmpl)\n }\n\n const root = tmpl.content.firstElementChild!.cloneNode(true) as Element\n const ctx = getRenderContext()\n\n const bind: TemplateBind = (node, mask, kind, key, accessor) => {\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.rootScope, 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.rootScope, {\n mask,\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)\n return root\n}\n"]}
|
package/dist/elements.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { getRenderContext } from './render-context';
|
|
2
|
-
import { createBinding, applyBinding } from './binding';
|
|
3
|
-
import { FULL_MASK } from './update-loop';
|
|
1
|
+
import { getRenderContext } from './render-context.js';
|
|
2
|
+
import { createBinding, applyBinding } from './binding.js';
|
|
3
|
+
import { FULL_MASK } from './update-loop.js';
|
|
4
4
|
// DOM properties set via elem[key] = value rather than setAttribute
|
|
5
5
|
const PROP_KEYS = new Set([
|
|
6
6
|
'value',
|
package/dist/elements.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"elements.js","sourceRoot":"","sources":["../src/elements.ts"],"names":[],"mappings":"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"}
|
|
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'\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 el = document.createElement(tag)\n const ctx = getRenderContext()\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 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 el.addEventListener(eventName, value as EventListener)\n continue\n }\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.rootScope, {\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 applyBinding({ kind, node: el, key }, initialValue)\n continue\n }\n\n // Static prop\n const kind = classifyKind(rawKey)\n const key = resolveKey(rawKey, kind)\n applyBinding({ kind, node: el, key }, value)\n }\n }\n\n if (children) {\n for (const child of children) {\n if (typeof child === 'string') {\n el.appendChild(document.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 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/form.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form.js","sourceRoot":"","sources":["../src/form.ts"],"names":[],"mappings":"AAiBA;;;;;;;GAOG;AACH,MAAM,UAAU,UAAU,CACxB,KAAQ,EACR,KAAQ,EACR,KAAW;IAEX,OAAO,EAAE,GAAG,KAAK,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAA;AACrC,CAAC"}
|
|
1
|
+
{"version":3,"file":"form.js","sourceRoot":"","sources":["../src/form.ts"],"names":[],"mappings":"AAiBA;;;;;;;GAOG;AACH,MAAM,UAAU,UAAU,CACxB,KAAQ,EACR,KAAQ,EACR,KAAW;IAEX,OAAO,EAAE,GAAG,KAAK,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAA;AACrC,CAAC","sourcesContent":["/**\n * Type utility for form field messages.\n * Generates a discriminated union where each field gets its own typed variant,\n * avoiding the need to define one message type per field.\n *\n * Usage:\n * type Fields = { name: string; email: string; age: number }\n * type Msg = FieldMsg<Fields> | { type: 'submit' }\n * // Produces: { type: 'setField'; field: 'name'; value: string }\n * // | { type: 'setField'; field: 'email'; value: string }\n * // | { type: 'setField'; field: 'age'; value: number }\n * // | { type: 'submit' }\n */\nexport type FieldMsg<Fields extends Record<string, unknown>> = {\n [K in keyof Fields]: { type: 'setField'; field: K; value: Fields[K] }\n}[keyof Fields]\n\n/**\n * Apply a field update to state immutably.\n * Returns a new state object with the specified field updated.\n *\n * Usage in update():\n * case 'setField':\n * return [applyField(state, msg.field, msg.value), []]\n */\nexport function applyField<S extends Record<string, unknown>, K extends keyof S>(\n state: S,\n field: K,\n value: S[K],\n): S {\n return { ...state, [field]: value }\n}\n"]}
|
package/dist/hmr.d.ts
CHANGED
package/dist/hmr.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hmr.d.ts","sourceRoot":"","sources":["../src/hmr.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"hmr.d.ts","sourceRoot":"","sources":["../src/hmr.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAUzD;;;GAGG;AACH,wBAAgB,SAAS,IAAI,IAAI,CAEhC;AAWD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,GAAG,IAAI,CAIvF;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAMjE;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EACtC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAC5B,SAAS,GAAG,IAAI,CAmElB"}
|
package/dist/hmr.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { flushInstance } from './update-loop';
|
|
2
|
-
import { createScope, disposeScope } from './scope';
|
|
3
|
-
import { setRenderContext, clearRenderContext } from './render-context';
|
|
4
|
-
import { setFlatBindings } from './binding';
|
|
5
|
-
import { unregisterInstance } from './runtime';
|
|
6
|
-
import { _setHmrModule } from './mount';
|
|
7
|
-
import { createView } from './view-helpers';
|
|
1
|
+
import { flushInstance } from './update-loop.js';
|
|
2
|
+
import { createScope, disposeScope } from './scope.js';
|
|
3
|
+
import { setRenderContext, clearRenderContext } from './render-context.js';
|
|
4
|
+
import { setFlatBindings } from './binding.js';
|
|
5
|
+
import { unregisterInstance } from './runtime.js';
|
|
6
|
+
import { _setHmrModule } from './mount.js';
|
|
7
|
+
import { createView } from './view-helpers.js';
|
|
8
8
|
/**
|
|
9
9
|
* Enable HMR state preservation. Called by compiler-generated dev code.
|
|
10
10
|
* Importing this module registers it with mountApp for hot-swapping.
|
package/dist/hmr.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hmr.js","sourceRoot":"","sources":["../src/hmr.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,
|
|
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 { createScope, disposeScope } from './scope.js'\nimport { setRenderContext, clearRenderContext } from './render-context.js'\nimport { setFlatBindings } from './binding.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({ enableHmr, registerForHmr, unregisterForHmr, replaceComponent })\n}\n\n// ── HMR Registry ─────────────────────────────────────────────────\n\ninterface HmrEntry {\n inst: ComponentInstance\n container: HTMLElement\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({ inst: inst as ComponentInstance, container })\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, and __dirty.\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>(\n name: string,\n newDef: ComponentDef<S, M, E>,\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\n for (const { inst, container } of entries) {\n const typedInst = inst as ComponentInstance<S, M, E>\n\n // Replace functions on the live definition\n typedInst.def = {\n ...typedInst.def,\n update: newDef.update,\n view: newDef.view,\n onEffect: newDef.onEffect,\n __dirty: newDef.__dirty,\n __update: newDef.__update,\n __handlers: newDef.__handlers,\n }\n\n // Dispose old scope tree — removes all old DOM nodes and bindings\n disposeScope(typedInst.rootScope)\n container.textContent = ''\n\n // Create fresh scope tree\n typedInst.rootScope = createScope(null)\n typedInst.allBindings = []\n typedInst.structuralBlocks = []\n\n // Re-run view with current state\n setFlatBindings(typedInst.allBindings)\n setRenderContext({\n rootScope: typedInst.rootScope,\n state: typedInst.state,\n allBindings: typedInst.allBindings,\n structuralBlocks: typedInst.structuralBlocks,\n container,\n send: typedInst.send as (msg: unknown) => void,\n })\n const nodes = typedInst.def.view(createView<S, M>(typedInst.send))\n clearRenderContext()\n setFlatBindings(null)\n\n for (const node of nodes) {\n container.appendChild(node)\n }\n\n // Return AppHandle for the first instance\n if (!handle) {\n handle = {\n dispose() {\n unregisterForHmr(name, inst)\n inst.abortController.abort()\n unregisterInstance(inst)\n disposeScope(typedInst.rootScope)\n container.textContent = ''\n },\n flush() {\n flushInstance(inst)\n },\n }\n }\n }\n\n console.log(`[LLui HMR] ${name} updated — state preserved`)\n\n return handle\n}\n"]}
|
package/dist/hydrate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hydrate.js","sourceRoot":"","sources":["../src/hydrate.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"hydrate.js","sourceRoot":"","sources":["../src/hydrate.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Hydration mode: patches document.createElement/createTextNode/createComment\n * to return existing server-rendered DOM nodes instead of creating new ones.\n *\n * During hydration, view() runs normally but DOM creation calls return\n * pre-existing nodes from the server HTML. Bindings and event listeners\n * are attached to the reused nodes.\n */\n\ninterface HydrationCursor {\n parent: Node\n index: number\n}\n\nconst cursorStack: HydrationCursor[] = []\nlet hydrating = false\n\nexport function isHydrating(): boolean {\n return hydrating\n}\n\nexport function startHydration(container: HTMLElement): void {\n hydrating = true\n cursorStack.length = 0\n cursorStack.push({ parent: container, index: 0 })\n}\n\nexport function endHydration(): void {\n hydrating = false\n cursorStack.length = 0\n}\n\n/**\n * Claim the next child node from the server HTML.\n * Falls back to creating a new node if none found (mismatch).\n */\nexport function claimElement(tag: string): HTMLElement {\n if (!hydrating) return document.createElement(tag)\n\n const cursor = cursorStack[cursorStack.length - 1]!\n const child = cursor.parent.childNodes[cursor.index]\n\n if (child && child.nodeType === 1 && (child as Element).tagName.toLowerCase() === tag) {\n cursor.index++\n return child as HTMLElement\n }\n\n // Mismatch — create a new element (hydration mismatch warning)\n if (typeof console !== 'undefined') {\n const got = child\n ? child.nodeType === 1\n ? `<${(child as Element).tagName.toLowerCase()}>`\n : child.nodeType === 3\n ? `text \"${(child.textContent ?? '').slice(0, 30)}\"`\n : `node type ${child.nodeType}`\n : 'nothing (no more children)'\n console.warn(\n `[LLui hydration] mismatch in <${cursor.parent.nodeName.toLowerCase()}>: ` +\n `expected <${tag}> at child index ${cursor.index}, got ${got}. ` +\n `This usually means the server-rendered HTML doesn't match the client's ` +\n `view() output — check that SSR and client use the same initial state.`,\n )\n }\n const el = document.createElement(tag)\n cursor.parent.insertBefore(el, child ?? null)\n cursor.index++\n return el\n}\n\nexport function claimText(content: string): Text {\n if (!hydrating) return document.createTextNode(content)\n\n const cursor = cursorStack[cursorStack.length - 1]!\n const child = cursor.parent.childNodes[cursor.index]\n\n if (child && child.nodeType === 3) {\n cursor.index++\n // Update content in case it differs (reactive initial value)\n if (child.textContent !== content) {\n child.textContent = content\n }\n return child as Text\n }\n\n // No text node — create one\n const text = document.createTextNode(content)\n cursor.parent.insertBefore(text, child ?? null)\n cursor.index++\n return text\n}\n\nexport function claimComment(content: string): Comment {\n if (!hydrating) return document.createComment(content)\n\n const cursor = cursorStack[cursorStack.length - 1]!\n const child = cursor.parent.childNodes[cursor.index]\n\n if (child && child.nodeType === 8) {\n cursor.index++\n return child as Comment\n }\n\n const comment = document.createComment(content)\n cursor.parent.insertBefore(comment, child ?? null)\n cursor.index++\n return comment\n}\n\n/**\n * Push cursor into an element's children.\n * Called when view() starts appending children to an element.\n */\nexport function pushCursor(parent: Node): void {\n if (hydrating) {\n cursorStack.push({ parent, index: 0 })\n }\n}\n\n/**\n * Pop cursor back to parent.\n * Called when view() finishes appending children to an element.\n */\nexport function popCursor(): void {\n if (hydrating) {\n cursorStack.pop()\n }\n}\n"]}
|