@llui/dom 0.2.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.
Files changed (87) hide show
  1. package/dist/binding-registry.d.ts +10 -0
  2. package/dist/binding-registry.d.ts.map +1 -0
  3. package/dist/binding-registry.js +96 -0
  4. package/dist/binding-registry.js.map +1 -0
  5. package/dist/binding.d.ts +22 -0
  6. package/dist/binding.d.ts.map +1 -1
  7. package/dist/binding.js +56 -5
  8. package/dist/binding.js.map +1 -1
  9. package/dist/build-flags.d.ts +25 -0
  10. package/dist/build-flags.d.ts.map +1 -0
  11. package/dist/build-flags.js +18 -0
  12. package/dist/build-flags.js.map +1 -0
  13. package/dist/el-split.d.ts.map +1 -1
  14. package/dist/el-split.js +8 -4
  15. package/dist/el-split.js.map +1 -1
  16. package/dist/el-template.d.ts.map +1 -1
  17. package/dist/el-template.js +15 -18
  18. package/dist/el-template.js.map +1 -1
  19. package/dist/elements.d.ts.map +1 -1
  20. package/dist/elements.js +12 -4
  21. package/dist/elements.js.map +1 -1
  22. package/dist/hmr.js +9 -4
  23. package/dist/hmr.js.map +1 -1
  24. package/dist/index.d.ts +2 -0
  25. package/dist/index.d.ts.map +1 -1
  26. package/dist/index.js +2 -0
  27. package/dist/index.js.map +1 -1
  28. package/dist/internal/test-component-builder.d.ts +21 -0
  29. package/dist/internal/test-component-builder.d.ts.map +1 -0
  30. package/dist/internal/test-component-builder.js +65 -0
  31. package/dist/internal/test-component-builder.js.map +1 -0
  32. package/dist/internal.d.ts +1 -0
  33. package/dist/internal.d.ts.map +1 -1
  34. package/dist/internal.js +1 -0
  35. package/dist/internal.js.map +1 -1
  36. package/dist/lifetime.d.ts.map +1 -1
  37. package/dist/lifetime.js +16 -3
  38. package/dist/lifetime.js.map +1 -1
  39. package/dist/mount.d.ts +1 -0
  40. package/dist/mount.d.ts.map +1 -1
  41. package/dist/mount.js +32 -22
  42. package/dist/mount.js.map +1 -1
  43. package/dist/primitives/branch.d.ts.map +1 -1
  44. package/dist/primitives/branch.js +29 -16
  45. package/dist/primitives/branch.js.map +1 -1
  46. package/dist/primitives/client-only.d.ts +1 -1
  47. package/dist/primitives/client-only.d.ts.map +1 -1
  48. package/dist/primitives/client-only.js +3 -3
  49. package/dist/primitives/client-only.js.map +1 -1
  50. package/dist/primitives/context.d.ts.map +1 -1
  51. package/dist/primitives/context.js +6 -3
  52. package/dist/primitives/context.js.map +1 -1
  53. package/dist/primitives/each.d.ts.map +1 -1
  54. package/dist/primitives/each.js +121 -74
  55. package/dist/primitives/each.js.map +1 -1
  56. package/dist/primitives/foreign.js +2 -1
  57. package/dist/primitives/foreign.js.map +1 -1
  58. package/dist/primitives/lazy.d.ts +1 -1
  59. package/dist/primitives/lazy.d.ts.map +1 -1
  60. package/dist/primitives/lazy.js +11 -5
  61. package/dist/primitives/lazy.js.map +1 -1
  62. package/dist/primitives/portal.js +2 -1
  63. package/dist/primitives/portal.js.map +1 -1
  64. package/dist/primitives/sample.d.ts.map +1 -1
  65. package/dist/primitives/sample.js +22 -16
  66. package/dist/primitives/sample.js.map +1 -1
  67. package/dist/primitives/track.d.ts +54 -0
  68. package/dist/primitives/track.d.ts.map +1 -0
  69. package/dist/primitives/track.js +54 -0
  70. package/dist/primitives/track.js.map +1 -0
  71. package/dist/primitives/virtual-each.js +4 -2
  72. package/dist/primitives/virtual-each.js.map +1 -1
  73. package/dist/render-context.d.ts +27 -1
  74. package/dist/render-context.d.ts.map +1 -1
  75. package/dist/render-context.js +82 -33
  76. package/dist/render-context.js.map +1 -1
  77. package/dist/ssr.d.ts.map +1 -1
  78. package/dist/ssr.js +5 -3
  79. package/dist/ssr.js.map +1 -1
  80. package/dist/types.d.ts +2 -2
  81. package/dist/types.d.ts.map +1 -1
  82. package/dist/types.js.map +1 -1
  83. package/dist/update-loop.d.ts +1 -0
  84. package/dist/update-loop.d.ts.map +1 -1
  85. package/dist/update-loop.js +115 -50
  86. package/dist/update-loop.js.map +1 -1
  87. package/package.json +1 -1
@@ -1 +1 @@
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 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":"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,8DAA8D;gBAC9D,6DAA6D;gBAC7D,2DAA2D;gBAC3D,+DAA+D;gBAC/D,8DAA8D;gBAC9D,0CAA0C;gBAC1C,IAAI,OAAO,cAAc,KAAK,WAAW,IAAI,cAAc,EAAE,CAAC;oBAC5D,MAAM,MAAM,GAAI,KAAmE;wBACjF,EAAE,cAAc,CAAA;oBAClB,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;wBAChD,uBAAuB,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,CAAA;oBACjE,CAAC;gBACH,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 // 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
- const nodes = typedInst.def.view(createView(typedInst.send));
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":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAC/D,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAA;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAE9C;;;GAGG;AACH,MAAM,UAAU,SAAS;IACvB,aAAa,CAAC;QACZ,SAAS;QACT,cAAc;QACd,iBAAiB;QACjB,gBAAgB;QAChB,gBAAgB;QAChB,4BAA4B;QAC5B,yBAAyB;KAC1B,CAAC,CAAA;AACJ,CAAC;AAiBD,MAAM,WAAW,GAAG,IAAI,GAAG,EAAsB,CAAA;AAEjD,MAAM,UAAU,cAAc,CAAC,IAAY,EAAE,IAAY,EAAE,SAAsB;IAC/E,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAA;IAC3C,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,IAAyB,EAAE,SAAS,EAAE,CAAC,CAAA;IAC/E,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;AAChC,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,IAAY,EACZ,IAAY,EACZ,MAAe,EACf,WAAoB;IAEpB,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAA;IAC3C,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAyB,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAA;IACtF,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;AAChC,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAY,EAAE,IAAY;IACzD,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IACrC,IAAI,CAAC,OAAO;QAAE,OAAM;IACpB,MAAM,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAA;IACrD,IAAI,GAAG,KAAK,CAAC,CAAC;QAAE,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;IACtC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;AACpD,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,gBAAgB,CAC9B,IAAY,EACZ,MAAgC;IAEhC,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IACrC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IAEjD,IAAI,MAAM,GAAqB,IAAI,CAAA;IACnC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,CAAC,GAAG,SAAS,CAAa,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;QACpD,IAAI,CAAC,MAAM;YAAE,MAAM,GAAG,CAAC,CAAA;IACzB,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,4BAA4B,CAAC,CAAA;IAC3D,OAAO,MAAM,CAAA;AACf,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,4BAA4B,CAC1C,IAAY,EACZ,MAAgC,EAChC,SAAsB;IAEtB,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IACrC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IACjD,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAC3B,CAAC,CAAC,EAAiD,EAAE,CACnD,CAAC,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,CAAC,SAAS,KAAK,SAAS,CACtD,CAAA;IACD,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAA;IAC1B,MAAM,MAAM,GAAG,SAAS,CAAa,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;IAC5D,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,4BAA4B,CAAC,CAAA;IAC3D,OAAO,MAAM,CAAA;AACf,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,yBAAyB,CACvC,IAAY,EACZ,MAAgC,EAChC,MAAe;IAEf,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IACrC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IACjD,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAC3B,CAAC,CAAC,EAA8C,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAC9F,CAAA;IACD,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAA;IAC1B,MAAM,MAAM,GAAG,SAAS,CAAa,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;IAC5D,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,4BAA4B,CAAC,CAAA;IAC3D,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,SAAS,CAChB,KAAe,EACf,IAAY,EACZ,MAAgC;IAEhC,MAAM,SAAS,GAAG,KAAK,CAAC,IAAkC,CAAA;IAE1D,SAAS,CAAC,GAAG,GAAG;QACd,GAAG,SAAS,CAAC,GAAG;QAChB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,UAAU,EAAE,MAAM,CAAC,UAAU;KAC9B,CAAA;IAED,iEAAiE;IACjE,8DAA8D;IAC9D,2DAA2D;IAC3D,8DAA8D;IAC9D,4DAA4D;IAC5D,+DAA+D;IAC/D,4DAA4D;IAC5D,MAAM,SAAS,GACb,KAAK,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,IAAI,IAAI,CAAC,CAAA;IACrF,MAAM,aAAa,GAAG,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IAChE,MAAM,cAAc,GAAG,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IAElE,eAAe,CAAC,SAAS,CAAC,YAAY,CAAC,CAAA;IAEvC,mCAAmC;IACnC,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QAC/B,KAAK,CAAC,SAAS,CAAC,WAAW,GAAG,EAAE,CAAA;IAClC,CAAC;SAAM,CAAC;QACN,uEAAuE;QACvE,+DAA+D;QAC/D,IAAI,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,CAAA;QAClC,OAAO,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,KAAK,CAAC,WAAW,EAAE,CAAC;YACjD,MAAM,IAAI,GAAG,GAAG,CAAC,WAAW,CAAA;YAC5B,GAAG,CAAC,UAAW,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;YAChC,GAAG,GAAG,IAAI,CAAA;QACZ,CAAC;IACH,CAAC;IAED,SAAS,CAAC,YAAY,GAAG,cAAc,CAAC,IAAI,CAAC,CAAA;IAC7C,SAAS,CAAC,YAAY,CAAC,KAAK,GAAG,MAAM,CAAA;IACrC,SAAS,CAAC,WAAW,GAAG,EAAE,CAAA;IAC1B,SAAS,CAAC,gBAAgB,GAAG,EAAE,CAAA;IAE/B,eAAe,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA;IACtC,gBAAgB,CAAC;QACf,YAAY,EAAE,SAAS,CAAC,YAAY;QACpC,KAAK,EAAE,SAAS,CAAC,KAAK;QACtB,WAAW,EAAE,SAAS,CAAC,WAAW;QAClC,gBAAgB,EAAE,SAAS,CAAC,gBAAgB;QAC5C,GAAG,EAAE,SAAS,CAAC,GAAG;QAClB,SAAS,EACP,KAAK,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,IAAI,SAAS,CAAC;QAC1F,IAAI,EAAE,SAAS,CAAC,IAA8B;QAC9C,QAAQ,EAAE,SAA8B;KACzC,CAAC,CAAA;IACF,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAO,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;IAClE,kBAAkB,EAAE,CAAA;IACpB,eAAe,CAAC,IAAI,CAAC,CAAA;IAErB,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QAC/B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;QACnC,CAAC;IACH,CAAC;SAAM,CAAC;QACN,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,KAAK,CAAC,MAAM,CAAC,UAAW,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,WAAW,CAAC,CAAA;QAChE,CAAC;IACH,CAAC;IAED,gEAAgE;IAChE,kEAAkE;IAClE,+DAA+D;IAC/D,gEAAgE;IAChE,2DAA2D;IAC3D,8DAA8D;IAC9D,wBAAwB;IACxB,IAAI,SAAS,EAAE,CAAC;QACd,IAAI,aAAa;YAAE,YAAY,CAAC,SAAS,EAAE,aAAa,CAAC,CAAA;QACzD,IAAI,cAAc;YAAE,aAAa,CAAC,SAAS,EAAE,cAAc,CAAC,CAAA;IAC9D,CAAC;IAED,OAAO,qBAAqB,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,CAAA;AACtD,CAAC;AAED,SAAS,qBAAqB,CAC5B,IAAY,EACZ,KAAe,EACf,SAAqC;IAErC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAwB,CAAA;IACjD,SAAS,CAAC,SAAS,GAAG,CAAC,KAAc,EAAE,EAAE;QACvC,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YACtC,IAAI,CAAC;gBACH,CAAC,CAAC,KAAK,CAAC,CAAA;YACV,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,GAAG,CAAC,CAAA;YAC9C,CAAC;QACH,CAAC;IACH,CAAC,CAAA;IACD,IAAI,QAAQ,GAAG,KAAK,CAAA;IACpB,OAAO;QACL,OAAO;YACL,IAAI,QAAQ;gBAAE,OAAM;YACpB,QAAQ,GAAG,IAAI,CAAA;YACf,SAAS,CAAC,KAAK,EAAE,CAAA;YACjB,SAAS,CAAC,SAAS,GAAG,SAAS,CAAA;YAC/B,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;YAClC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAA;YAClC,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YAC9B,eAAe,CAAC,SAAS,CAAC,YAAY,CAAC,CAAA;YACvC,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBAC/B,KAAK,CAAC,SAAS,CAAC,WAAW,GAAG,EAAE,CAAA;YAClC,CAAC;iBAAM,CAAC;gBACN,IAAI,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,CAAA;gBAClC,OAAO,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,KAAK,CAAC,WAAW,EAAE,CAAC;oBACjD,MAAM,IAAI,GAAG,GAAG,CAAC,WAAW,CAAA;oBAC5B,GAAG,CAAC,UAAW,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;oBAChC,GAAG,GAAG,IAAI,CAAA;gBACZ,CAAC;gBACD,KAAK,CAAC,WAAW,CAAC,UAAU,EAAE,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;YAC9D,CAAC;QACH,CAAC;QACD,KAAK;YACH,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAC3B,CAAC;QACD,IAAI,CAAC,GAAY;YACf,CAAC;YAAC,SAAS,CAAC,IAA6B,CAAC,GAAG,CAAC,CAAA;QAChD,CAAC;QACD,QAAQ;YACN,OAAO,SAAS,CAAC,KAAK,CAAA;QACxB,CAAC;QACD,SAAS,CAAC,QAAkC;YAC1C,IAAI,QAAQ;gBAAE,OAAO,GAAG,EAAE,GAAE,CAAC,CAAA;YAC7B,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;YACvB,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;QACzC,CAAC;QACD,qBAAqB;YACnB,IAAI,QAAQ;gBAAE,OAAO,EAAE,CAAA;YACvB,OAAO,qBAAqB,CAAC,SAA8B,CAAC,CAAA;QAC9D,CAAC;QACD,UAAU,CAAC,SAAS,EAAE,WAAW;YAC/B,IAAI,QAAQ;gBAAE,OAAM;YACpB,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CACxB;YAAC,SAAS,CAAC,GAAoC,CAAC,MAAM,GAAG,SAAS,CAAA;YACnE,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;gBAC9B,CAAC;gBAAC,SAAS,CAAC,GAAyC,CAAC,QAAQ,GAAG,WAAW,CAAA;YAC9E,CAAC;QACH,CAAC;QACD,UAAU,CAAC,GAAG;YACZ,IAAI,QAAQ;gBAAE,OAAO,IAAI,CAAA;YACzB,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,GACpB,SAAS,CAAC,GAAG,CAAC,MACf,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;YACvB,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAoB,EAAE,CAAA;QACjD,CAAC;QACD,iBAAiB,CAAC,IAAI;YACpB,IAAI,QAAQ;gBAAE,OAAM;YACpB,SAAS,CAAC,eAAe,GAAG,IAAI,IAAI,SAAS,CAAA;QAC/C,CAAC;KACF,CAAA;AACH,CAAC;AA0BD,SAAS,YAAY,CAAC,IAAgB;IACpC,MAAM,GAAG,GAAI,IAAgB,CAAC,aAAa,IAAI,UAAU,CAAC,QAAQ,CAAA;IAClE,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAA;IACrB,MAAM,MAAM,GAAG,GAAG,CAAC,aAAa,CAAA;IAChC,IAAI,CAAC,MAAM,IAAI,MAAM,KAAK,GAAG,CAAC,IAAI;QAAE,OAAO,IAAI,CAAA;IAC/C,6DAA6D;IAC7D,2CAA2C;IAC3C,IAAI,CAAE,IAA0B,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAA;IAE9D,MAAM,IAAI,GAAG,gBAAgB,CAAC,IAAY,EAAE,MAAM,CAAC,CAAA;IACnD,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,IAAI,CAAA;IAE9B,IAAI,SAAS,GAA+B,IAAI,CAAA;IAChD,IAAI,MAAM,YAAY,gBAAgB,IAAI,MAAM,YAAY,mBAAmB,EAAE,CAAC;QAChF,uEAAuE;QACvE,iEAAiE;QACjE,IAAI,CAAC;YACH,IAAI,MAAM,CAAC,cAAc,KAAK,IAAI,IAAI,MAAM,CAAC,YAAY,KAAK,IAAI,EAAE,CAAC;gBACnE,SAAS,GAAG;oBACV,KAAK,EAAE,MAAM,CAAC,cAAc;oBAC5B,GAAG,EAAE,MAAM,CAAC,YAAY;oBACxB,SAAS,EAAE,CAAC,MAAM,CAAC,kBAAkB,IAAI,MAAM,CAAoC;iBACpF,CAAA;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,SAAS,GAAG,IAAI,CAAA;QAClB,CAAC;IACH,CAAC;IAED,OAAO;QACL,EAAE,EAAE,MAAM,CAAC,EAAE,IAAI,IAAI;QACrB,IAAI;QACJ,SAAS;KACV,CAAA;AACH,CAAC;AAED,SAAS,YAAY,CAAC,IAAgB,EAAE,IAAmB;IACzD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;IAC/C,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,YAAY,WAAW,CAAC;QAAE,OAAM;IACvD,IAAI,CAAC;QACH,MAAM,CAAC,KAAK,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAA;IACvC,CAAC;IAAC,MAAM,CAAC;QACP,OAAM;IACR,CAAC;IACD,IACE,IAAI,CAAC,SAAS;QACd,CAAC,MAAM,YAAY,gBAAgB,IAAI,MAAM,YAAY,mBAAmB,CAAC,EAC7E,CAAC;QACD,IAAI,CAAC;YACH,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;QAC9F,CAAC;QAAC,MAAM,CAAC;YACP,uDAAuD;QACzD,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,IAAgB;IACrC,4DAA4D;IAC5D,gEAAgE;IAChE,kEAAkE;IAClE,6CAA6C;IAC7C,MAAM,GAAG,GAAmB,EAAE,CAAA;IAC9B,MAAM,IAAI,GAAG,CAAC,IAAU,EAAQ,EAAE;QAChC,IAAI,IAAI,YAAY,WAAW,EAAE,CAAC;YAChC,IAAI,IAAI,CAAC,SAAS,KAAK,CAAC,IAAI,IAAI,CAAC,UAAU,KAAK,CAAC,EAAE,CAAC;gBAClD,MAAM,IAAI,GAAG,gBAAgB,CAAC,IAAY,EAAE,IAAI,CAAC,CAAA;gBACjD,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;oBAClB,GAAG,CAAC,IAAI,CAAC;wBACP,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,IAAI;wBACnB,IAAI;wBACJ,SAAS,EAAE,IAAI,CAAC,SAAS;wBACzB,UAAU,EAAE,IAAI,CAAC,UAAU;qBAC5B,CAAC,CAAA;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QACD,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;YAC5D,IAAI,CAAC,CAAC,CAAC,CAAA;QACT,CAAC;IACH,CAAC,CAAA;IACD,IAAI,CAAC,IAAY,CAAC,CAAA;IAClB,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,SAAS,aAAa,CAAC,IAAgB,EAAE,IAAoB;IAC3D,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAA;QACzC,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,YAAY,WAAW,CAAC;YAAE,SAAQ;QACzD,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAA;QAC9B,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAA;IAClC,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAS,gBAAgB,CAAC,QAAc,EAAE,MAAY;IACpD,MAAM,IAAI,GAAa,EAAE,CAAA;IACzB,IAAI,GAAG,GAAgB,MAAM,CAAA;IAC7B,OAAO,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;QACxC,MAAM,MAAM,GAAgB,GAAG,CAAC,UAAU,CAAA;QAC1C,IAAI,MAAM,KAAK,IAAI;YAAE,OAAO,IAAI,CAAA;QAChC,IAAI,GAAG,GAAG,CAAC,CAAA;QACX,IAAI,GAAG,GAAgB,MAAM,CAAC,UAAU,CAAA;QACxC,OAAO,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC;YACnC,GAAG,EAAE,CAAA;YACL,GAAG,GAAG,GAAG,CAAC,WAAW,CAAA;QACvB,CAAC;QACD,IAAI,GAAG,KAAK,IAAI;YAAE,OAAO,IAAI,CAAA;QAC7B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACd,GAAG,GAAG,MAAM,CAAA;IACd,CAAC;IACD,IAAI,GAAG,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAA;IACjC,OAAO,IAAI,CAAC,OAAO,EAAE,CAAA;AACvB,CAAC;AAED;;;;GAIG;AACH,SAAS,MAAM,CAAC,IAAgB,EAAE,EAAiB,EAAE,IAAc;IACjE,IAAI,EAAE,EAAE,CAAC;QACP,MAAM,GAAG,GAAI,IAAgB,CAAC,aAAa,IAAI,UAAU,CAAC,QAAQ,CAAA;QAClE,IAAI,GAAG,EAAE,CAAC;YACR,MAAM,IAAI,GAAG,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC,CAAA;YACnC,IAAI,IAAI,IAAK,IAA0B,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAAE,OAAO,IAAI,CAAA;QACrE,CAAC;IACH,CAAC;IACD,IAAI,GAAG,GAAS,IAAY,CAAA;IAC5B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,KAAK,GAAG,GAAG,CAAC,UAAU,CAAA;QAC1B,IAAI,CAAC,GAAG,CAAC,CAAA;QACT,OAAO,KAAK,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;YACxB,KAAK,GAAG,KAAK,CAAC,WAAW,CAAA;YACzB,CAAC,EAAE,CAAA;QACL,CAAC;QACD,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAA;QACvB,GAAG,GAAG,KAAK,CAAA;IACb,CAAC;IACD,OAAO,GAAG,YAAY,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAA;AAC5C,CAAC","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
@@ -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
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -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
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["// ── Types ─────────────────────────────────────────────────────────\n\nexport type {\n ComponentDef,\n Send,\n Props,\n AppHandle,\n Lifetime,\n Binding,\n BindingKind,\n TransitionOptions,\n BranchOptions,\n ShowOptions,\n EachOptions,\n ItemAccessor,\n PortalOptions,\n ForeignOptions,\n} from './types.js'\n\n// ── Component ─────────────────────────────────────────────────────\n\nexport { component } from './component.js'\nexport { createView, type View } from './view-helpers.js'\nexport { combine, type SliceReducer, type SliceMap, type TopReducer } from './combine.js'\n\n// ── Mount ─────────────────────────────────────────────────────────\n\nexport { mountApp, hydrateApp, mountAtAnchor, hydrateAtAnchor, type MountOptions } from './mount.js'\nexport type { BindingDescriptor } from './binding-descriptors.js'\n// Compiler-emitted runtime helper for the `*.connect(get, sendFn, …)`\n// pattern. User code never imports this directly — the vite-plugin's\n// connect-pattern matcher inserts the import + call sites\n// automatically alongside the existing event-handler tagger.\nexport { __registerScopeVariants } from './binding-descriptors.js'\n// Library helper for `*.connect` implementations — tags returned\n// event handlers with the variants they dispatch, so the runtime\n// binding-descriptor registry surfaces them to the agent layer's\n// `list_actions`. Library authors call this once per onClick.\nexport { tagSend } from './binding-descriptors.js'\n// installDevTools is NOT re-exported here to keep it out of production bundles.\n// Import directly: import { installDevTools } from '@llui/dom/devtools'\nexport type { LluiDebugAPI, ElementReport, MessageRecord, StateDiff } from './devtools.js'\nexport type { CoverageSnapshot } from './tracking/coverage.js'\nexport type { EachDiff } from './tracking/each-diff.js'\nexport type { DisposerEvent } from './tracking/disposer-log.js'\nexport type { PendingEffect, EffectTimelineEntry, EffectMatch } from './tracking/effect-timeline.js'\nexport type { LifetimeNode } from './types.js'\n\n// ── Runtime ───────────────────────────────────────────────────────\n\nexport { flush } from './runtime.js'\nexport { renderToString, renderNodes, serializeNodes } from './ssr.js'\nexport { browserEnv, type DomEnv } from './dom-env.js'\nexport { mergeHandlers } from './merge-handlers.js'\nexport {\n createContext,\n provide,\n provideValue,\n useContext,\n useContextValue,\n type Context,\n} from './primitives/context.js'\nexport { sliceHandler } from './slice-handler.js'\nexport {\n composeModules,\n type ModulesState,\n type ModulesMsg,\n type ModuleState,\n type ModuleMsg,\n} from './compose.js'\n\n// ── View Primitives ───────────────────────────────────────────────\n\nexport { text } from './primitives/text.js'\nexport { unsafeHtml } from './primitives/unsafe-html.js'\nexport { branch } from './primitives/branch.js'\nexport { each } from './primitives/each.js'\nexport { virtualEach, type VirtualEachOptions } from './primitives/virtual-each.js'\nexport { show } from './primitives/show.js'\nexport { scope } from './primitives/scope.js'\nexport type { ScopeOptions } from './types.js'\nexport { slice } from './primitives/slice.js'\nexport { portal } from './primitives/portal.js'\nexport { foreign } from './primitives/foreign.js'\nexport { lazy, type LazyOptions } from './primitives/lazy.js'\nexport type { LazyDef, AnyComponentDef } from './types.js'\nexport { memo } from './primitives/memo.js'\nexport { sample } from './primitives/sample.js'\nexport { selector } from './primitives/selector.js'\nexport { onMount } from './primitives/on-mount.js'\nexport { clientOnly, __clientOnlyStub, type ClientOnlyOptions } from './primitives/client-only.js'\nexport { errorBoundary } from './primitives/error-boundary.js'\n\n// ── Element Helpers ───────────────────────────────────────────────\n\nexport {\n a,\n abbr,\n article,\n aside,\n b,\n blockquote,\n br,\n button,\n canvas,\n code,\n dd,\n details,\n dialog,\n div,\n dl,\n dt,\n em,\n fieldset,\n figcaption,\n figure,\n footer,\n form,\n h1,\n h2,\n h3,\n h4,\n h5,\n h6,\n header,\n hr,\n i,\n iframe,\n img,\n input,\n label,\n legend,\n li,\n main,\n mark,\n nav,\n ol,\n optgroup,\n option,\n output,\n p,\n pre,\n progress,\n section,\n select,\n small,\n span,\n strong,\n sub,\n summary,\n sup,\n table,\n tbody,\n td,\n textarea,\n tfoot,\n th,\n thead,\n time,\n tr,\n ul,\n video,\n} from './elements.js'\n\n// ── SVG Elements ─────────────────────────────────────────────────\n\nexport {\n svg,\n g,\n defs,\n symbol,\n use,\n circle,\n ellipse,\n line,\n path,\n polygon,\n polyline,\n rect,\n text as svgText,\n tspan,\n textPath,\n clipPath,\n linearGradient,\n radialGradient,\n stop,\n mask,\n pattern,\n marker,\n filter,\n feBlend,\n feColorMatrix,\n feComponentTransfer,\n feComposite,\n feConvolveMatrix,\n feDiffuseLighting,\n feDisplacementMap,\n feDropShadow,\n feFlood,\n feGaussianBlur,\n feImage,\n feMerge,\n feMergeNode,\n feMorphology,\n feOffset,\n feSpecularLighting,\n feTile,\n feTurbulence,\n fePointLight,\n feSpotLight,\n feDistantLight,\n feFuncR,\n feFuncG,\n feFuncB,\n feFuncA,\n image,\n foreignObject,\n animate,\n animateMotion,\n animateTransform,\n set,\n mpath,\n desc,\n title as svgTitle,\n metadata,\n} from './svg-elements.js'\n\n// ── MathML Elements ──────────────────────────────────────────────\n\nexport {\n math,\n mi,\n mn,\n mo,\n ms,\n mtext,\n mrow,\n mfrac,\n msqrt,\n mroot,\n msup,\n msub,\n msubsup,\n munder,\n mover,\n munderover,\n mmultiscripts,\n mprescripts,\n mnone,\n mtable,\n mtr,\n mtd,\n mspace,\n mpadded,\n mphantom,\n menclose,\n merror,\n maction,\n semantics,\n annotation,\n annotationXml,\n} from './mathml-elements.js'\n\n// ── Form Utilities ────────────────────────────────────────────────\n\nexport { applyField, type FieldMsg } from './form.js'\n\n// ── Compiler Target ───────────────────────────────────────────────\n\nexport { elSplit } from './el-split.js'\nexport { elTemplate, __cloneStaticTemplate } from './el-template.js'\nexport { _runPhase2 as __runPhase2, _handleMsg as __handleMsg } from './update-loop.js'\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["// ── Types ─────────────────────────────────────────────────────────\n\nexport type {\n ComponentDef,\n Send,\n Props,\n AppHandle,\n Lifetime,\n Binding,\n BindingKind,\n TransitionOptions,\n BranchOptions,\n ShowOptions,\n EachOptions,\n ItemAccessor,\n PortalOptions,\n ForeignOptions,\n} from './types.js'\n\n// ── Component ─────────────────────────────────────────────────────\n\nexport { component } from './component.js'\nexport { createView, type View } from './view-helpers.js'\nexport { combine, type SliceReducer, type SliceMap, type TopReducer } from './combine.js'\n\n// ── Mount ─────────────────────────────────────────────────────────\n\nexport { mountApp, hydrateApp, mountAtAnchor, hydrateAtAnchor, type MountOptions } from './mount.js'\nexport type { BindingDescriptor } from './binding-descriptors.js'\n// Compiler-emitted runtime helper for the `*.connect(get, sendFn, …)`\n// pattern. User code never imports this directly — the vite-plugin's\n// connect-pattern matcher inserts the import + call sites\n// automatically alongside the existing event-handler tagger.\nexport { __registerScopeVariants } from './binding-descriptors.js'\n// Library helper for `*.connect` implementations — tags returned\n// event handlers with the variants they dispatch, so the runtime\n// binding-descriptor registry surfaces them to the agent layer's\n// `list_actions`. Library authors call this once per onClick.\nexport { tagSend } from './binding-descriptors.js'\n// installDevTools is NOT re-exported here to keep it out of production bundles.\n// Import directly: import { installDevTools } from '@llui/dom/devtools'\nexport type { LluiDebugAPI, ElementReport, MessageRecord, StateDiff } from './devtools.js'\nexport type { CoverageSnapshot } from './tracking/coverage.js'\nexport type { EachDiff } from './tracking/each-diff.js'\nexport type { DisposerEvent } from './tracking/disposer-log.js'\nexport type { PendingEffect, EffectTimelineEntry, EffectMatch } from './tracking/effect-timeline.js'\nexport type { LifetimeNode } from './types.js'\n\n// ── Runtime ───────────────────────────────────────────────────────\n\nexport { flush } from './runtime.js'\nexport { renderToString, renderNodes, serializeNodes } from './ssr.js'\nexport { browserEnv, type DomEnv } from './dom-env.js'\nexport { mergeHandlers } from './merge-handlers.js'\nexport {\n createContext,\n provide,\n provideValue,\n useContext,\n useContextValue,\n type Context,\n} from './primitives/context.js'\nexport { sliceHandler } from './slice-handler.js'\nexport {\n composeModules,\n type ModulesState,\n type ModulesMsg,\n type ModuleState,\n type ModuleMsg,\n} from './compose.js'\n\n// ── View Primitives ───────────────────────────────────────────────\n\nexport { text } from './primitives/text.js'\nexport { unsafeHtml } from './primitives/unsafe-html.js'\nexport { branch } from './primitives/branch.js'\nexport { each } from './primitives/each.js'\nexport { virtualEach, type VirtualEachOptions } from './primitives/virtual-each.js'\nexport { show } from './primitives/show.js'\nexport { scope } from './primitives/scope.js'\nexport type { ScopeOptions } from './types.js'\nexport { slice } from './primitives/slice.js'\nexport { portal } from './primitives/portal.js'\nexport { foreign } from './primitives/foreign.js'\nexport { lazy, type LazyOptions } from './primitives/lazy.js'\nexport type { LazyDef, AnyComponentDef } from './types.js'\nexport { memo } from './primitives/memo.js'\nexport { sample } from './primitives/sample.js'\nexport { selector } from './primitives/selector.js'\nexport { onMount } from './primitives/on-mount.js'\nexport { track, LluiCompilerSkippedError, type TrackOptions } from './primitives/track.js'\nexport { clientOnly, __clientOnlyStub, type ClientOnlyOptions } from './primitives/client-only.js'\nexport { errorBoundary } from './primitives/error-boundary.js'\n\n// ── Element Helpers ───────────────────────────────────────────────\n\nexport {\n a,\n abbr,\n article,\n aside,\n b,\n blockquote,\n br,\n button,\n canvas,\n code,\n dd,\n details,\n dialog,\n div,\n dl,\n dt,\n em,\n fieldset,\n figcaption,\n figure,\n footer,\n form,\n h1,\n h2,\n h3,\n h4,\n h5,\n h6,\n header,\n hr,\n i,\n iframe,\n img,\n input,\n label,\n legend,\n li,\n main,\n mark,\n nav,\n ol,\n optgroup,\n option,\n output,\n p,\n pre,\n progress,\n section,\n select,\n small,\n span,\n strong,\n sub,\n summary,\n sup,\n table,\n tbody,\n td,\n textarea,\n tfoot,\n th,\n thead,\n time,\n tr,\n ul,\n video,\n} from './elements.js'\n\n// ── SVG Elements ─────────────────────────────────────────────────\n\nexport {\n svg,\n g,\n defs,\n symbol,\n use,\n circle,\n ellipse,\n line,\n path,\n polygon,\n polyline,\n rect,\n text as svgText,\n tspan,\n textPath,\n clipPath,\n linearGradient,\n radialGradient,\n stop,\n mask,\n pattern,\n marker,\n filter,\n feBlend,\n feColorMatrix,\n feComponentTransfer,\n feComposite,\n feConvolveMatrix,\n feDiffuseLighting,\n feDisplacementMap,\n feDropShadow,\n feFlood,\n feGaussianBlur,\n feImage,\n feMerge,\n feMergeNode,\n feMorphology,\n feOffset,\n feSpecularLighting,\n feTile,\n feTurbulence,\n fePointLight,\n feSpotLight,\n feDistantLight,\n feFuncR,\n feFuncG,\n feFuncB,\n feFuncA,\n image,\n foreignObject,\n animate,\n animateMotion,\n animateTransform,\n set,\n mpath,\n desc,\n title as svgTitle,\n metadata,\n} from './svg-elements.js'\n\n// ── MathML Elements ──────────────────────────────────────────────\n\nexport {\n math,\n mi,\n mn,\n mo,\n ms,\n mtext,\n mrow,\n mfrac,\n msqrt,\n mroot,\n msup,\n msub,\n msubsup,\n munder,\n mover,\n munderover,\n mmultiscripts,\n mprescripts,\n mnone,\n mtable,\n mtr,\n mtd,\n mspace,\n mpadded,\n mphantom,\n menclose,\n merror,\n maction,\n semantics,\n annotation,\n annotationXml,\n} from './mathml-elements.js'\n\n// ── Form Utilities ────────────────────────────────────────────────\n\nexport { applyField, type FieldMsg } from './form.js'\n\n// ── Compiler Target ───────────────────────────────────────────────\n\nexport { elSplit } from './el-split.js'\nexport { __bindUncertain } from './binding.js'\nexport { elTemplate, __cloneStaticTemplate } from './el-template.js'\nexport { _runPhase2 as __runPhase2, _handleMsg as __handleMsg } from './update-loop.js'\n"]}
@@ -0,0 +1,21 @@
1
+ import type { ComponentDef } from '../types.js';
2
+ export interface DefineTestComponentInput<S, M, E = never, D = void> {
3
+ name: string;
4
+ init: (data: D) => [S, E[]];
5
+ update: (state: S, msg: M) => [S, E[]];
6
+ view: ComponentDef<S, M, E, D>['view'];
7
+ onEffect?: ComponentDef<S, M, E, D>['onEffect'];
8
+ }
9
+ /**
10
+ * Build a `ComponentDef` opted into the optimized runtime path. Carries
11
+ * the `'__test__'` sentinel `__compilerVersion` so `createInstance` skips
12
+ * the version gate. Bare-minimum — no `__update`, no `__handlers`, no
13
+ * `__prefixes` — meaning the runtime correctly routes to `genericUpdate`
14
+ * with FULL_MASK on every update.
15
+ *
16
+ * Tests that want to exercise the compiler's fast path explicitly should
17
+ * still construct raw `ComponentDef`s with the synthesized fields (and
18
+ * the v2c compiler-tests harness will cover those scenarios end-to-end).
19
+ */
20
+ export declare function defineTestComponentInternal<S, M, E = never, D = void>(input: DefineTestComponentInput<S, M, E, D>): ComponentDef<S, M, E, D>;
21
+ //# sourceMappingURL=test-component-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-component-builder.d.ts","sourceRoot":"","sources":["../../src/internal/test-component-builder.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE/C,MAAM,WAAW,wBAAwB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI;IACjE,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;IAC3B,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;IACtC,IAAI,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;IACtC,QAAQ,CAAC,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAA;CAChD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,2BAA2B,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,EACnE,KAAK,EAAE,wBAAwB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAC1C,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAU1B"}
@@ -0,0 +1,65 @@
1
+ // Internal — `defineTestComponent` builder shared by @llui/dom's own tests
2
+ // and `@llui/test`. v2b §6.3.
3
+ //
4
+ // At v2b ship, the runtime's `createInstance` rejects components without
5
+ // `__compilerVersion`. Tests that mount raw `ComponentDef` literals would
6
+ // flood the warn channel and break warn-count assertions. This builder
7
+ // produces a `ComponentDef` carrying the `'__test__'` sentinel version
8
+ // plus an identity `__prefixes` table — enough for the runtime to treat
9
+ // it as compiled.
10
+ //
11
+ // Why "shared private internal":
12
+ // - `@llui/dom`'s own test/ suite needs this; the test/ folder can't
13
+ // import from `@llui/test` (which depends on @llui/dom).
14
+ // - `@llui/test`'s consumers need the same builder to opt into the
15
+ // optimized path.
16
+ // The single source of truth lives here; both packages re-export
17
+ // through their own helper modules so consumers never reach into
18
+ // @llui/dom's internal/ namespace directly.
19
+ //
20
+ // Tree-shaking: the file is reachable only from test/ folders, which
21
+ // production bundles don't include. A `sideEffects: false` package +
22
+ // the import-graph-rooted-in-test-helpers shape guarantees zero bytes
23
+ // in `dist/`. See packages/dom/package.json `sideEffects` and the
24
+ // bundle-size fixture in v2b §6 (deferred to a follow-up).
25
+ /**
26
+ * Build a `ComponentDef` opted into the optimized runtime path. Carries
27
+ * the `'__test__'` sentinel `__compilerVersion` so `createInstance` skips
28
+ * the version gate. Bare-minimum — no `__update`, no `__handlers`, no
29
+ * `__prefixes` — meaning the runtime correctly routes to `genericUpdate`
30
+ * with FULL_MASK on every update.
31
+ *
32
+ * Tests that want to exercise the compiler's fast path explicitly should
33
+ * still construct raw `ComponentDef`s with the synthesized fields (and
34
+ * the v2c compiler-tests harness will cover those scenarios end-to-end).
35
+ */
36
+ export function defineTestComponentInternal(input) {
37
+ const out = {
38
+ name: input.name,
39
+ init: input.init,
40
+ update: input.update,
41
+ view: input.view,
42
+ __compilerVersion: '__test__',
43
+ };
44
+ if (input.onEffect)
45
+ out.onEffect = input.onEffect;
46
+ return out;
47
+ }
48
+ /**
49
+ * Idempotently stamp a `ComponentDef` with the `'__test__'`
50
+ * `__compilerVersion` sentinel. Used by test-harness adapters
51
+ * (`@llui/test`'s `testView`) that accept a `ComponentDef` from caller
52
+ * code: if the caller already used `defineTestComponent` (or supplied
53
+ * a real compiled def), the existing version is preserved; otherwise
54
+ * the sentinel silences `warnUncompiledOnce`.
55
+ *
56
+ * Lives inside @llui/dom because `__compilerVersion` is `@internal`
57
+ * and stripped from the dist `.d.ts`; external code can't address the
58
+ * field by name. v2b §6.
59
+ */
60
+ export function stampTestVersion(def) {
61
+ if (def.__compilerVersion)
62
+ return def;
63
+ return { ...def, __compilerVersion: '__test__' };
64
+ }
65
+ //# sourceMappingURL=test-component-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-component-builder.js","sourceRoot":"","sources":["../../src/internal/test-component-builder.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,8BAA8B;AAC9B,EAAE;AACF,yEAAyE;AACzE,0EAA0E;AAC1E,uEAAuE;AACvE,uEAAuE;AACvE,wEAAwE;AACxE,kBAAkB;AAClB,EAAE;AACF,iCAAiC;AACjC,uEAAuE;AACvE,6DAA6D;AAC7D,qEAAqE;AACrE,sBAAsB;AACtB,iEAAiE;AACjE,iEAAiE;AACjE,4CAA4C;AAC5C,EAAE;AACF,qEAAqE;AACrE,qEAAqE;AACrE,sEAAsE;AACtE,kEAAkE;AAClE,2DAA2D;AAY3D;;;;;;;;;;GAUG;AACH,MAAM,UAAU,2BAA2B,CACzC,KAA2C;IAE3C,MAAM,GAAG,GAA6B;QACpC,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,iBAAiB,EAAE,UAAU;KAC9B,CAAA;IACD,IAAI,KAAK,CAAC,QAAQ;QAAE,GAAG,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAA;IACjD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,gBAAgB,CAC9B,GAA6B;IAE7B,IAAI,GAAG,CAAC,iBAAiB;QAAE,OAAO,GAAG,CAAA;IACrC,OAAO,EAAE,GAAG,GAAG,EAAE,iBAAiB,EAAE,UAAU,EAAE,CAAA;AAClD,CAAC","sourcesContent":["// Internal — `defineTestComponent` builder shared by @llui/dom's own tests\n// and `@llui/test`. v2b §6.3.\n//\n// At v2b ship, the runtime's `createInstance` rejects components without\n// `__compilerVersion`. Tests that mount raw `ComponentDef` literals would\n// flood the warn channel and break warn-count assertions. This builder\n// produces a `ComponentDef` carrying the `'__test__'` sentinel version\n// plus an identity `__prefixes` table — enough for the runtime to treat\n// it as compiled.\n//\n// Why \"shared private internal\":\n// - `@llui/dom`'s own test/ suite needs this; the test/ folder can't\n// import from `@llui/test` (which depends on @llui/dom).\n// - `@llui/test`'s consumers need the same builder to opt into the\n// optimized path.\n// The single source of truth lives here; both packages re-export\n// through their own helper modules so consumers never reach into\n// @llui/dom's internal/ namespace directly.\n//\n// Tree-shaking: the file is reachable only from test/ folders, which\n// production bundles don't include. A `sideEffects: false` package +\n// the import-graph-rooted-in-test-helpers shape guarantees zero bytes\n// in `dist/`. See packages/dom/package.json `sideEffects` and the\n// bundle-size fixture in v2b §6 (deferred to a follow-up).\n\nimport type { ComponentDef } from '../types.js'\n\nexport interface DefineTestComponentInput<S, M, E = never, D = void> {\n name: string\n init: (data: D) => [S, E[]]\n update: (state: S, msg: M) => [S, E[]]\n view: ComponentDef<S, M, E, D>['view']\n onEffect?: ComponentDef<S, M, E, D>['onEffect']\n}\n\n/**\n * Build a `ComponentDef` opted into the optimized runtime path. Carries\n * the `'__test__'` sentinel `__compilerVersion` so `createInstance` skips\n * the version gate. Bare-minimum — no `__update`, no `__handlers`, no\n * `__prefixes` — meaning the runtime correctly routes to `genericUpdate`\n * with FULL_MASK on every update.\n *\n * Tests that want to exercise the compiler's fast path explicitly should\n * still construct raw `ComponentDef`s with the synthesized fields (and\n * the v2c compiler-tests harness will cover those scenarios end-to-end).\n */\nexport function defineTestComponentInternal<S, M, E = never, D = void>(\n input: DefineTestComponentInput<S, M, E, D>,\n): ComponentDef<S, M, E, D> {\n const out: ComponentDef<S, M, E, D> = {\n name: input.name,\n init: input.init,\n update: input.update,\n view: input.view,\n __compilerVersion: '__test__',\n }\n if (input.onEffect) out.onEffect = input.onEffect\n return out\n}\n\n/**\n * Idempotently stamp a `ComponentDef` with the `'__test__'`\n * `__compilerVersion` sentinel. Used by test-harness adapters\n * (`@llui/test`'s `testView`) that accept a `ComponentDef` from caller\n * code: if the caller already used `defineTestComponent` (or supplied\n * a real compiled def), the existing version is preserved; otherwise\n * the sentinel silences `warnUncompiledOnce`.\n *\n * Lives inside @llui/dom because `__compilerVersion` is `@internal`\n * and stripped from the dist `.d.ts`; external code can't address the\n * field by name. v2b §6.\n */\nexport function stampTestVersion<S, M, E, D>(\n def: ComponentDef<S, M, E, D>,\n): ComponentDef<S, M, E, D> {\n if (def.__compilerVersion) return def\n return { ...def, __compilerVersion: '__test__' }\n}\n"]}
@@ -19,4 +19,5 @@
19
19
  export { getRenderContext, setRenderContext, clearRenderContext } from './render-context.js';
20
20
  export type { RenderContext } from './render-context.js';
21
21
  export { createLifetime, disposeLifetime, addDisposer } from './lifetime.js';
22
+ export { defineTestComponentInternal as defineTestComponent, stampTestVersion, type DefineTestComponentInput, } from './internal/test-component-builder.js';
22
23
  //# sourceMappingURL=internal.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAC5F,YAAY,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA"}
1
+ {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAC5F,YAAY,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC5E,OAAO,EACL,2BAA2B,IAAI,mBAAmB,EAClD,gBAAgB,EAChB,KAAK,wBAAwB,GAC9B,MAAM,sCAAsC,CAAA"}
package/dist/internal.js CHANGED
@@ -18,4 +18,5 @@
18
18
  */
19
19
  export { getRenderContext, setRenderContext, clearRenderContext } from './render-context.js';
20
20
  export { createLifetime, disposeLifetime, addDisposer } from './lifetime.js';
21
+ export { defineTestComponentInternal as defineTestComponent, stampTestVersion, } from './internal/test-component-builder.js';
21
22
  //# sourceMappingURL=internal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"internal.js","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAE5F,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA","sourcesContent":["/**\n * Internal primitives surface — exported for framework-adapter packages\n * (`@llui/vike`, `@llui/router`, `@llui/transitions`) that need to build\n * their own structural primitives on top of LLui's scope + render-context\n * machinery.\n *\n * **Not part of the public API.** App authors should not import from\n * `@llui/dom/internal`. The shapes here are free to change without a\n * major version bump — the stability contract applies only to the public\n * barrel at `@llui/dom`. Reach for this subpath when you're writing a\n * primitive like `pageSlot()` (from `@llui/vike`) that has to participate\n * in the scope tree, not when you're writing application views.\n *\n * Added in 0.0.16 to support `@llui/vike`'s persistent-layout feature.\n * Any future adapter-level primitive that needs render-context / scope\n * access should re-export from this file rather than duplicating the\n * low-level glue.\n */\n\nexport { getRenderContext, setRenderContext, clearRenderContext } from './render-context.js'\nexport type { RenderContext } from './render-context.js'\nexport { createLifetime, disposeLifetime, addDisposer } from './lifetime.js'\n"]}
1
+ {"version":3,"file":"internal.js","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAE5F,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC5E,OAAO,EACL,2BAA2B,IAAI,mBAAmB,EAClD,gBAAgB,GAEjB,MAAM,sCAAsC,CAAA","sourcesContent":["/**\n * Internal primitives surface — exported for framework-adapter packages\n * (`@llui/vike`, `@llui/router`, `@llui/transitions`) that need to build\n * their own structural primitives on top of LLui's scope + render-context\n * machinery.\n *\n * **Not part of the public API.** App authors should not import from\n * `@llui/dom/internal`. The shapes here are free to change without a\n * major version bump — the stability contract applies only to the public\n * barrel at `@llui/dom`. Reach for this subpath when you're writing a\n * primitive like `pageSlot()` (from `@llui/vike`) that has to participate\n * in the scope tree, not when you're writing application views.\n *\n * Added in 0.0.16 to support `@llui/vike`'s persistent-layout feature.\n * Any future adapter-level primitive that needs render-context / scope\n * access should re-export from this file rather than duplicating the\n * low-level glue.\n */\n\nexport { getRenderContext, setRenderContext, clearRenderContext } from './render-context.js'\nexport type { RenderContext } from './render-context.js'\nexport { createLifetime, disposeLifetime, addDisposer } from './lifetime.js'\nexport {\n defineTestComponentInternal as defineTestComponent,\n stampTestVersion,\n type DefineTestComponentInput,\n} from './internal/test-component-builder.js'\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"lifetime.d.ts","sourceRoot":"","sources":["../src/lifetime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AA8CnD,wBAAgB,cAAc,CAAC,MAAM,EAAE,QAAQ,GAAG,IAAI,GAAG,QAAQ,CA8BhE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,QAAQ,EAAE,iBAAiB,UAAQ,GAAG,IAAI,CAqEhF;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,QAAQ,GAAG,IAAI,CAO7D;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAuC7D;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAIlE;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,IAAI,GAAG,IAAI,CAGzE;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EACrC,KAAK,EAAE,QAAQ,EACf,GAAG,EAAE,MAAM,CAAC,EACZ,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,GACxB,CAAC,CASH;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI,CAGvE"}
1
+ {"version":3,"file":"lifetime.d.ts","sourceRoot":"","sources":["../src/lifetime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AA8CnD,wBAAgB,cAAc,CAAC,MAAM,EAAE,QAAQ,GAAG,IAAI,GAAG,QAAQ,CA8BhE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,QAAQ,EAAE,iBAAiB,UAAQ,GAAG,IAAI,CA4EhF;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,QAAQ,GAAG,IAAI,CAO7D;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CA6C7D;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAIlE;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,IAAI,GAAG,IAAI,CAGzE;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EACrC,KAAK,EAAE,QAAQ,EACf,GAAG,EAAE,MAAM,CAAC,EACZ,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,GACxB,CAAC,CASH;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI,CAGvE"}