marko 6.4.3 → 6.4.5

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 (74) hide show
  1. package/cheatsheet.md +2 -2
  2. package/dist/common/constants/renderer-prop.d.ts +2 -0
  3. package/dist/common/constants/renderer-prop.debug.d.ts +2 -0
  4. package/dist/debug/dom/catch.feat.js +1 -1
  5. package/dist/debug/dom/catch.feat.mjs +1 -1
  6. package/dist/debug/dom/controllable-input.feat.js +1 -1
  7. package/dist/debug/dom/controllable-input.feat.mjs +1 -1
  8. package/dist/debug/dom/controllable-open.feat.js +1 -1
  9. package/dist/debug/dom/controllable-open.feat.mjs +1 -1
  10. package/dist/debug/dom/controllable-select.feat.js +1 -1
  11. package/dist/debug/dom/controllable-select.feat.mjs +1 -1
  12. package/dist/debug/dom/controllable-textarea.feat.js +1 -1
  13. package/dist/debug/dom/controllable-textarea.feat.mjs +1 -1
  14. package/dist/debug/dom/controllable.feat.js +1 -1
  15. package/dist/debug/dom/controllable.feat.mjs +1 -1
  16. package/dist/debug/dom/dynamic-tag-script.feat.js +1 -1
  17. package/dist/debug/dom/dynamic-tag-script.feat.mjs +1 -1
  18. package/dist/debug/dom/dynamic-tag-var.feat.js +5 -1
  19. package/dist/debug/dom/dynamic-tag-var.feat.mjs +5 -1
  20. package/dist/debug/dom/lazy.feat.js +1 -1
  21. package/dist/debug/dom/lazy.feat.mjs +1 -1
  22. package/dist/debug/dom/placeholder.feat.js +1 -1
  23. package/dist/debug/dom/placeholder.feat.mjs +1 -1
  24. package/dist/debug/{dom-uEY0J_H9.mjs → dom-BeY1nGUb.mjs} +15 -12
  25. package/dist/debug/{dom-C7F3yZTh.js → dom-CUxvM4i9.js} +32 -23
  26. package/dist/debug/dom.js +3 -10
  27. package/dist/debug/dom.mjs +3 -10
  28. package/dist/debug/html.js +30 -24
  29. package/dist/debug/html.mjs +30 -24
  30. package/dist/dom/catch.feat.js +4 -4
  31. package/dist/dom/catch.feat.mjs +1 -1
  32. package/dist/dom/control-flow.d.ts +2 -2
  33. package/dist/dom/controllable-input.feat.js +2 -2
  34. package/dist/dom/controllable-input.feat.mjs +1 -1
  35. package/dist/dom/controllable-open.feat.js +2 -2
  36. package/dist/dom/controllable-open.feat.mjs +1 -1
  37. package/dist/dom/controllable-select.feat.js +2 -2
  38. package/dist/dom/controllable-select.feat.mjs +1 -1
  39. package/dist/dom/controllable-textarea.feat.js +2 -2
  40. package/dist/dom/controllable-textarea.feat.mjs +1 -1
  41. package/dist/dom/controllable.feat.js +2 -2
  42. package/dist/dom/controllable.feat.mjs +1 -1
  43. package/dist/dom/dynamic-tag-script.feat.js +2 -2
  44. package/dist/dom/dynamic-tag-script.feat.mjs +1 -1
  45. package/dist/dom/dynamic-tag-var.feat.js +3 -3
  46. package/dist/dom/dynamic-tag-var.feat.mjs +1 -1
  47. package/dist/dom/lazy.feat.js +1 -1
  48. package/dist/dom/lazy.feat.mjs +1 -1
  49. package/dist/dom/load.d.ts +0 -1
  50. package/dist/dom/placeholder.feat.js +3 -3
  51. package/dist/dom/placeholder.feat.mjs +1 -1
  52. package/dist/dom/renderer.d.ts +9 -2
  53. package/dist/{dom-DHg9YChM.mjs → dom-DefWmvQB.mjs} +10 -7
  54. package/dist/{dom-CtIT8Mpr.js → dom-Diu8MpmL.js} +124 -126
  55. package/dist/dom.d.ts +2 -2
  56. package/dist/dom.js +31 -37
  57. package/dist/dom.mjs +2 -8
  58. package/dist/html/assets.d.ts +1 -1
  59. package/dist/html/content.d.ts +1 -0
  60. package/dist/html/dynamic-tag.d.ts +1 -1
  61. package/dist/html/template.d.ts +1 -0
  62. package/dist/html.js +12 -11
  63. package/dist/html.mjs +12 -11
  64. package/dist/translator/index.js +202 -109
  65. package/dist/translator/util/entry-builder.d.ts +10 -3
  66. package/dist/translator/util/module-registrations.d.ts +1 -1
  67. package/dist/translator/util/references.d.ts +2 -1
  68. package/dist/translator/util/signals.d.ts +10 -1
  69. package/dist/translator/util/solve-reasons.d.ts +1 -0
  70. package/dist/translator/util/write-guard.d.ts +4 -0
  71. package/dist/translator/visitors/function.d.ts +15 -10
  72. package/dist/translator/visitors/import-declaration.d.ts +3 -4
  73. package/package.json +4 -4
  74. package/tags-html.d.ts +3 -2
package/cheatsheet.md CHANGED
@@ -16,7 +16,7 @@ Marko 6 = HTML superset, not JSX and not Marko 4/5 syntax. `.marko` files are co
16
16
  6. Events: method shorthand `onClick() { ... }` or `onClick=fn`. Handlers receive `(event, element)`; delegation means the element is the second parameter, not `event.currentTarget`: `onSubmit(e) { e.preventDefault(); save() }`, `onClick(e, el) { el.focus() }`. Don't sync input values through `onInput`/`onChange`; that's what the change handlers below are for. Prefix with `async` to `await` in the body: `async onClick() { await save() }`.
17
17
  7. Native inputs are uncontrolled by default: `value=` sets the default value. Later writes update what `form.reset()` restores, never a dirty field's display. Adding the matching `*Change` handler is what makes them controlled: `valueChange` on `<input>`/`<textarea>`/`<select>`, `checkedChange` on checkboxes/radios, `openChange` on `<details>`/`<dialog>`. `value:=text` is the shorthand for `value=text valueChange(v) { text = v }`. (`<textarea value:=text/>`: value attribute, not body.) `:=` differs by operand: on an identifier (`value:=text`) it assigns that variable; on a member expression (`<let/count:=input.count>` in a child) it wires `input.countChange`, so the child is controlled when the parent passes that handler and keeps its own state when it doesn't.
18
18
  8. Transform in the handler when needed; number inputs give strings: `<input type="number" value=n valueChange(v) { n = +v }>`, or `value:parseFloat:=n`. Uncommitted edits (debounce, commit on blur) never sync through a `<script>`; that is rule 4's derive-by-effect trap. Pair a controllable `<let/value:=input.value>` with `<let/pending=null>`, show `<const/draft=pending ?? value>`, collect with `valueChange(v) { pending = v }`, and commit by assigning `value = pending; pending = null`. Prefer that to calling `input.valueChange(...)`, which throws unless every caller controls the tag.
19
- 9. Radio/checkbox groups: `checkedValue:=picked` on each input (shared var, distinct `value=`); the match is checked; array var for multi-checkbox. Dropdown: `<select value:=picked>`.
19
+ 9. Radio/checkbox groups: `checkedValue:=picked` on each input (shared var, distinct `value=`); the match is checked; array var for multi-checkbox. Dropdown: `<select value:=picked>`. Every bound value needs a rendered input/`<option>`.
20
20
  10. Module-level values, helpers and type aliases need `static`: `static const LIMIT = 10`, `static function fmt(n) {…}`, `static type Row = {…}`. Prefer it to `<const>` for anything that never changes: `<const/LIMIT=10>` runs per instance, `static` hoists it to a module constant. `server`/`client` narrow `static` to one platform (`client import { Chart } from "chart"`); the binding is `undefined` on the other, so read a `client` one only from `<script>`/handlers/`<lifecycle>`. Reading it while rendering throws `is not a function` during SSR.
21
21
  11. `$!{html}` and the contents of `<html-script>`/`<html-style>` are written as-is: the latter are escaped only so they can't close the element, and run as code. Never put user-provided content in them.
22
22
 
@@ -171,7 +171,7 @@ Imperative libs (charts, maps) needing mount/update/destroy: use `<lifecycle>`,
171
171
 
172
172
  ## Lazy loading
173
173
 
174
- Defer a tag's JS into its own bundle until a trigger fires: `visible#sel`, `idle`, `media(...)`, `on-click#sel` (combine with `|`), or `render` alone. Server HTML renders immediately; in the browser `<try>` shows a `@placeholder` while loading. Don't hand-roll an `IntersectionObserver`.
174
+ Defer a tag's JS into its own bundle until a trigger fires: `visible#sel`, `idle`, `media(...)`, `on-click#sel` (combine with `|`), or `render` alone. Server HTML renders immediately; in the browser `<try>` shows a `@placeholder` while loading. Don't hand-roll an `IntersectionObserver`. A lazy tag takes no tag variable: bind state down instead (`<Modal open:=open/>`).
175
175
 
176
176
  ```marko
177
177
  import PriceChart from "<price-chart>" with { load: "visible#chart" }
@@ -5,7 +5,9 @@ export declare const Params = "d";
5
5
  export declare const Owner = "e";
6
6
  export declare const Accessor = "f";
7
7
  export declare const LocalClosures = "g";
8
+ export declare const Returns = "h";
8
9
  export declare const Embed = "i";
10
+ export declare const Lazy = "j";
9
11
  type Self = typeof import("./renderer-prop");
10
12
  export type Value = Self[keyof Self];
11
13
  export {};
@@ -5,7 +5,9 @@ export declare const Params = "params";
5
5
  export declare const Owner = "owner";
6
6
  export declare const Accessor = "accessor";
7
7
  export declare const LocalClosures = "localClosures";
8
+ export declare const Returns = "returns";
8
9
  export declare const Embed = "embed";
10
+ export declare const Lazy = "lazy";
9
11
  type Self = typeof import("./renderer-prop.debug");
10
12
  export type Value = Self[keyof Self];
11
13
  export {};
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- const require_control_flow = require("../dom-C7F3yZTh.js");
2
+ const require_control_flow = require("../dom-CUxvM4i9.js");
3
3
  //#region src/dom/catch.feat.ts
4
4
  const handlePendingTry = (fn, scope, branch) => {
5
5
  while (branch) {
@@ -1,4 +1,4 @@
1
- import { Hn as PendingEffectScopes, In as ClosestBranch, Mn as Pending, Nn as Scope, Un as PendingEffects, Vn as ParentBranch, Wn as PendingRenders, b as renderCatch, fn as queueAsyncRender, pn as queueEffect, un as installCatch, x as runPendingEffects } from "../dom-uEY0J_H9.mjs";
1
+ import { Gn as PendingRenders, Hn as ParentBranch, Ln as ClosestBranch, Nn as Pending, Pn as Scope, Un as PendingEffectScopes, Wn as PendingEffects, b as runPendingEffects, dn as queueAsyncRender, fn as queueEffect, ln as installCatch, y as renderCatch } from "../dom-BeY1nGUb.mjs";
2
2
  //#region src/dom/catch.feat.ts
3
3
  const handlePendingTry = (fn, scope, branch) => {
4
4
  while (branch) {
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- const require_control_flow = require("../dom-C7F3yZTh.js");
2
+ const require_control_flow = require("../dom-CUxvM4i9.js");
3
3
  //#region src/dom/controllable-input.feat.ts
4
4
  require_control_flow.controllableScripts[0] = require_control_flow._attr_input_checked_script;
5
5
  require_control_flow.controllableScripts[1] = require_control_flow._attr_input_checkedValue_script;
@@ -1,4 +1,4 @@
1
- import { A as _attr_input_checked_script, F as _attr_input_value_script, O as _attr_input_checkedValue_script, W as controllableScripts } from "../dom-uEY0J_H9.mjs";
1
+ import { D as _attr_input_checkedValue_script, P as _attr_input_value_script, U as controllableScripts, k as _attr_input_checked_script } from "../dom-BeY1nGUb.mjs";
2
2
  //#region src/dom/controllable-input.feat.ts
3
3
  controllableScripts[0] = _attr_input_checked_script;
4
4
  controllableScripts[1] = _attr_input_checkedValue_script;
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- const require_control_flow = require("../dom-C7F3yZTh.js");
2
+ const require_control_flow = require("../dom-CUxvM4i9.js");
3
3
  //#region src/dom/controllable-open.feat.ts
4
4
  require_control_flow.controllableScripts[4] = require_control_flow._attr_details_or_dialog_open_script;
5
5
  //#endregion
@@ -1,4 +1,4 @@
1
- import { W as controllableScripts, w as _attr_details_or_dialog_open_script } from "../dom-uEY0J_H9.mjs";
1
+ import { C as _attr_details_or_dialog_open_script, U as controllableScripts } from "../dom-BeY1nGUb.mjs";
2
2
  //#region src/dom/controllable-open.feat.ts
3
3
  controllableScripts[4] = _attr_details_or_dialog_open_script;
4
4
  //#endregion
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- const require_control_flow = require("../dom-C7F3yZTh.js");
2
+ const require_control_flow = require("../dom-CUxvM4i9.js");
3
3
  //#region src/dom/controllable-select.feat.ts
4
4
  require_control_flow.controllableScripts[3] = require_control_flow._attr_select_value_script;
5
5
  //#endregion
@@ -1,4 +1,4 @@
1
- import { R as _attr_select_value_script, W as controllableScripts } from "../dom-uEY0J_H9.mjs";
1
+ import { L as _attr_select_value_script, U as controllableScripts } from "../dom-BeY1nGUb.mjs";
2
2
  //#region src/dom/controllable-select.feat.ts
3
3
  controllableScripts[3] = _attr_select_value_script;
4
4
  //#endregion
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- const require_control_flow = require("../dom-C7F3yZTh.js");
2
+ const require_control_flow = require("../dom-CUxvM4i9.js");
3
3
  //#region src/dom/controllable-textarea.feat.ts
4
4
  require_control_flow.controllableScripts[2] = require_control_flow._attr_input_value_script;
5
5
  //#endregion
@@ -1,4 +1,4 @@
1
- import { F as _attr_input_value_script, W as controllableScripts } from "../dom-uEY0J_H9.mjs";
1
+ import { P as _attr_input_value_script, U as controllableScripts } from "../dom-BeY1nGUb.mjs";
2
2
  //#region src/dom/controllable-textarea.feat.ts
3
3
  controllableScripts[2] = _attr_input_value_script;
4
4
  //#endregion
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- const require_control_flow = require("../dom-C7F3yZTh.js");
2
+ const require_control_flow = require("../dom-CUxvM4i9.js");
3
3
  require("./controllable-input.feat.js");
4
4
  require("./controllable-open.feat.js");
5
5
  require("./controllable-select.feat.js");
@@ -1,4 +1,4 @@
1
- import { B as _controllable_open, H as _controllable_textarea, U as controllableRenders, V as _controllable_select, z as _controllable_input } from "../dom-uEY0J_H9.mjs";
1
+ import { B as _controllable_select, H as controllableRenders, R as _controllable_input, V as _controllable_textarea, z as _controllable_open } from "../dom-BeY1nGUb.mjs";
2
2
  import "./controllable-input.feat.mjs";
3
3
  import "./controllable-open.feat.mjs";
4
4
  import "./controllable-select.feat.mjs";
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- const require_control_flow = require("../dom-C7F3yZTh.js");
2
+ const require_control_flow = require("../dom-CUxvM4i9.js");
3
3
  //#region src/dom/dynamic-tag-script.feat.ts
4
4
  require_control_flow._resumed[require_control_flow.DYNAMIC_TAG_SCRIPT_REGISTER_ID] = require_control_flow.withBranches(require_control_flow.dynamicTagScript);
5
5
  //#endregion
@@ -1,4 +1,4 @@
1
- import { Dn as withBranches, _ as dynamicTagScript, rn as DYNAMIC_TAG_SCRIPT_REGISTER_ID, wt as _resumed } from "../dom-uEY0J_H9.mjs";
1
+ import { Ct as _resumed, En as withBranches, g as dynamicTagScript, nn as DYNAMIC_TAG_SCRIPT_REGISTER_ID } from "../dom-BeY1nGUb.mjs";
2
2
  //#region src/dom/dynamic-tag-script.feat.ts
3
3
  _resumed[DYNAMIC_TAG_SCRIPT_REGISTER_ID] = withBranches(dynamicTagScript);
4
4
  //#endregion
@@ -1,9 +1,13 @@
1
1
  "use strict";
2
- const require_control_flow = require("../dom-C7F3yZTh.js");
2
+ const require_control_flow = require("../dom-CUxvM4i9.js");
3
3
  //#region src/dom/dynamic-tag-var.feat.ts
4
4
  require_control_flow.installBranchRenders();
5
5
  require_control_flow.installDynamicTagVar((scope, branch, scopeKey, renderer) => {
6
6
  branch[require_control_flow.BranchRenders] = require_control_flow.createBranchRenders(scope, scopeKey);
7
7
  if (typeof renderer === "string") branch[require_control_flow.TagVariable](() => require_control_flow._el_read(branch[require_control_flow.StartNode]));
8
+ else {
9
+ if (renderer["lazy"]) throw new Error(`A dynamic tag with a [tag variable](https://markojs.com/docs/reference/language#tag-variables) rendered \`${renderer["id"]}\`, which is lazily loaded, so it does not support one. Import it without \`load\`, or remove the variable.`);
10
+ if (!(renderer["setup"] || renderer["params"])?.["returns"]) throw new Error(`A dynamic tag with a [tag variable](https://markojs.com/docs/reference/language#tag-variables) rendered \`${renderer["id"]}\`, which does not [\`<return>\`](https://markojs.com/docs/reference/core-tag#return) a value. Add a \`<return>\` to it, or remove the variable.`);
11
+ }
8
12
  });
9
13
  //#endregion
@@ -1,8 +1,12 @@
1
- import { Fn as BranchRenders, It as _el_read, Kn as StartNode, cn as createBranchRenders, ln as installBranchRenders, qn as TagVariable, v as installDynamicTagVar } from "../dom-uEY0J_H9.mjs";
1
+ import { Ft as _el_read, In as BranchRenders, Jn as TagVariable, _ as installDynamicTagVar, cn as installBranchRenders, qn as StartNode, sn as createBranchRenders } from "../dom-BeY1nGUb.mjs";
2
2
  //#region src/dom/dynamic-tag-var.feat.ts
3
3
  installBranchRenders();
4
4
  installDynamicTagVar((scope, branch, scopeKey, renderer) => {
5
5
  branch[BranchRenders] = createBranchRenders(scope, scopeKey);
6
6
  if (typeof renderer === "string") branch[TagVariable](() => _el_read(branch[StartNode]));
7
+ else {
8
+ if (renderer["lazy"]) throw new Error(`A dynamic tag with a [tag variable](https://markojs.com/docs/reference/language#tag-variables) rendered \`${renderer["id"]}\`, which is lazily loaded, so it does not support one. Import it without \`load\`, or remove the variable.`);
9
+ if (!(renderer["setup"] || renderer["params"])?.["returns"]) throw new Error(`A dynamic tag with a [tag variable](https://markojs.com/docs/reference/language#tag-variables) rendered \`${renderer["id"]}\`, which does not [\`<return>\`](https://markojs.com/docs/reference/core-tag#return) a value. Add a \`<return>\` to it, or remove the variable.`);
10
+ }
7
11
  });
8
12
  //#endregion
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
2
  //#region src/dom/lazy.feat.ts
3
- require("../dom-C7F3yZTh.js").withLazy();
3
+ require("../dom-CUxvM4i9.js").withLazy();
4
4
  //#endregion
@@ -1,4 +1,4 @@
1
- import { jt as withLazy } from "../dom-uEY0J_H9.mjs";
1
+ import { At as withLazy } from "../dom-BeY1nGUb.mjs";
2
2
  //#region src/dom/lazy.feat.ts
3
3
  withLazy();
4
4
  //#endregion
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- const require_control_flow = require("../dom-C7F3yZTh.js");
2
+ const require_control_flow = require("../dom-CUxvM4i9.js");
3
3
  //#region src/dom/placeholder.feat.ts
4
4
  require_control_flow._resumed[require_control_flow.PLACEHOLDER_DISMISS_REGISTER_ID] = (tryBranch) => {
5
5
  if (tryBranch["#PlaceholderBranch"]) {
@@ -1,4 +1,4 @@
1
- import { $t as destroyBranch, Gn as PlaceholderBranch, in as PLACEHOLDER_DISMISS_REGISTER_ID, wt as _resumed } from "../dom-uEY0J_H9.mjs";
1
+ import { Ct as _resumed, Kn as PlaceholderBranch, Qt as destroyBranch, rn as PLACEHOLDER_DISMISS_REGISTER_ID } from "../dom-BeY1nGUb.mjs";
2
2
  //#region src/dom/placeholder.feat.ts
3
3
  _resumed[PLACEHOLDER_DISMISS_REGISTER_ID] = (tryBranch) => {
4
4
  if (tryBranch["#PlaceholderBranch"]) {
@@ -67,6 +67,8 @@ const Params = "params";
67
67
  const Owner = "owner";
68
68
  const Accessor = "accessor";
69
69
  const LocalClosures = "localClosures";
70
+ const Returns = "returns";
71
+ const Lazy = "lazy";
70
72
  //#endregion
71
73
  //#region src/common/helpers.ts
72
74
  const htmlAttrNameReg = /^[^a-z_]|[^a-z0-9._:-]/i;
@@ -1113,13 +1115,13 @@ function init(runtimeId = "M") {
1113
1115
  visitScope[nextToken()] = visitType === "%" ? visit.parentNode.insertBefore(new Text(), visit) : visit.previousSibling;
1114
1116
  if ((branchesEnabled || lazyEnabled) && pending[pending.length - 1] !== visitScope) pending.push(visitScope);
1115
1117
  }
1118
+ if (embedRenders && !embedAnchor && visit.parentNode) embedRenders.set(embedAnchor = visit.parentNode.insertBefore(new Text(), visit), [renderId, scopeLookup]);
1116
1119
  }
1117
1120
  if (branchesEnabled && visitBranches) {
1118
1121
  visitType = "*";
1119
1122
  lastToken = "";
1120
1123
  visitBranches();
1121
1124
  }
1122
- if (embedRenders && !embedAnchor && visit?.parentNode) embedRenders.set(embedAnchor = visit.parentNode.insertBefore(new Text(), visit.nextSibling), [renderId, scopeLookup]);
1123
1125
  visits.length = retained;
1124
1126
  return effects;
1125
1127
  };
@@ -1187,6 +1189,10 @@ function setupBranch(renderer, branch) {
1187
1189
  if (renderer["setup"]) queueRender(branch, renderer[Setup], -1);
1188
1190
  return branch;
1189
1191
  }
1192
+ function _return_setup(setup) {
1193
+ (setup._ || setup)[Returns] = 1;
1194
+ return setup;
1195
+ }
1190
1196
  function _content(id, template, walks, setup, params, dynamicScopesAccessor) {
1191
1197
  walks = walks ? walks.replace(/[^\0-1]+$/, "") : "";
1192
1198
  setup = setup ? setup._ || setup : void 0;
@@ -1680,11 +1686,8 @@ function getSelectValue(el, multiple) {
1680
1686
  return multiple ? Array.from(el.selectedOptions, (opt) => opt.value) : el.value;
1681
1687
  }
1682
1688
  function assertSelectValueMatchesOption(el, normalizedValue, value) {
1683
- const multiple = Array.isArray(normalizedValue);
1684
- if (multiple ? normalizedValue.some(Boolean) : normalizedValue) {
1685
- for (const opt of el.options) if (multiple ? normalizedValue.includes(opt.value) : opt.value === normalizedValue) return;
1686
- console.error("A controlled `<select>`'s `value` has no matching `<option>`:", value);
1687
- }
1689
+ const options = Array.from(el.options, (opt) => opt.value);
1690
+ if ((Array.isArray(normalizedValue) ? normalizedValue : [normalizedValue]).some((v) => v && !options.includes(v))) console.error("A controlled `<select>`'s `value` has no matching `<option>`:", value);
1688
1691
  }
1689
1692
  function _attr_details_or_dialog_open_default(scope, nodeAccessor, open) {
1690
1693
  if (scope["#Gen"] === runId) scope[nodeAccessor].open = isNotVoid(open);
@@ -1719,7 +1722,7 @@ function syncControllableFormInput(el, hasChanged, onChange) {
1719
1722
  el._ = onChange;
1720
1723
  el.c = hasChanged;
1721
1724
  delegate("input", handleChange);
1722
- if (el.form) delegate("reset", handleFormReset);
1725
+ delegate("reset", handleFormReset);
1723
1726
  if (isResuming && hasChanged(el)) queueMicrotask(onChange);
1724
1727
  }
1725
1728
  function handleChange(ev) {
@@ -1727,7 +1730,7 @@ function handleChange(ev) {
1727
1730
  }
1728
1731
  function handleFormReset(ev) {
1729
1732
  const handlers = [];
1730
- for (const el of ev.target.elements) if (el._ && el.c(el)) handlers.push(el._);
1733
+ for (const el of ev.target.elements || []) if (el._ && el.c(el)) handlers.push(el._);
1731
1734
  requestAnimationFrame(() => {
1732
1735
  if (!ev.defaultPrevented) for (const change of handlers) change();
1733
1736
  });
@@ -2029,14 +2032,14 @@ let _dynamic_tag = /*@__PURE__*/ withBranches((nodeAccessor, getContent, getTagV
2029
2032
  const rendererAccessor = ConditionalRenderer + nodeAccessor;
2030
2033
  return (scope, newRenderer, getInput) => {
2031
2034
  const normalizedRenderer = normalizeDynamicRenderer(newRenderer);
2032
- if (scope[rendererAccessor] !== (scope[rendererAccessor] = rendererKey(normalizedRenderer)) || getContent && !(normalizedRenderer || scope[childScopeAccessor])) {
2035
+ if (scope[rendererAccessor] !== (scope[rendererAccessor] = rendererKey(normalizedRenderer) || (getContent ? void 0 : 0)) || getContent && !(normalizedRenderer || scope[childScopeAccessor])) {
2033
2036
  const renderer = normalizedRenderer || (getContent ? getContent(scope) : void 0);
2034
2037
  setConditionalRenderer(scope, nodeAccessor, renderer, createBranchWithTagNameOrRenderer);
2035
2038
  if (getTagVar) {
2036
- if (scope[childScopeAccessor]) {
2039
+ if (normalizedRenderer) {
2037
2040
  scope[childScopeAccessor][TagVariable] = (value) => getTagVar()(scope, value);
2038
2041
  bindTagVar(scope, scope[childScopeAccessor], scope[scopeOffsetAccessor], normalizedRenderer);
2039
- } else getTagVar()(scope, void 0);
2042
+ } else getTagVar()(scope);
2040
2043
  }
2041
2044
  if (typeof renderer === "string") {
2042
2045
  if (getContent) {
@@ -2247,4 +2250,4 @@ function byFirstArg(name) {
2247
2250
  return name;
2248
2251
  }
2249
2252
  //#endregion
2250
- export { _attr_style_item as $, destroyBranch as $t, _attr_input_checked_script as A, Params as An, readyFailed as At, _controllable_open as B, Load as Bn, _hoist as Bt, _attr_details_or_dialog_open_default as C, _assert_class_toggles as Cn, _el as Ct, _attr_input_checkedValue_default as D, withBranches as Dn, init as Dt, _attr_input_checkedValue as E, _call as En, getRegisteredWithScope as Et, _attr_input_value_script as F, BranchRenders as Fn, _const as Ft, _attr as G, PlaceholderBranch as Gn, _let_change as Gt, _controllable_textarea as H, PendingEffectScopes as Hn, _id as Ht, _attr_select_value as I, ClosestBranch as In, _el_read as It, _attr_class_items as J, _return_change as Jt, _attr_class as K, StartNode as Kn, _or as Kt, _attr_select_value_default as L, EndNode as Ln, _for_closure as Lt, _attr_input_value_attribute_default as M, Pending as Mn, _child_setup as Mt, _attr_input_value_default as N, Scope as Nn, _closure as Nt, _attr_input_checkedValue_script as O, Clone as On, initEmbedded as Ot, _attr_input_value_dynamic_default as P, AwaitCounter as Pn, _closure_get as Pt, _attr_style as Q, _assert_init as Qt, _attr_select_value_script as R, Gen$1 as Rn, _for_selector as Rt, _attr_details_or_dialog_open as S, forUntil as Sn, _dynamic_tag_var_resume as St, _attr_input_checked as T, _hoist_read_error as Tn, _var_resume as Tt, controllableRenders as U, PendingEffects as Un, _if_closure as Ut, _controllable_select as V, ParentBranch as Vn, _hoist_resume as Vt, controllableScripts as W, PendingRenders as Wn, _let as Wt, _attr_content as X, _var as Xt, _attr_class_names as Y, _script as Yt, _attr_nonce as Z, _var_change as Zt, dynamicTagScript as _, runEffects as _n, _content_resume as _t, _for_in as a, _on as an, _attrs_script as at, renderCatch as b, forOf as bn, setParentBranch as bt, _for_to as c, createBranchRenders as cn, _style_rule_item as ct, _for_until_unkeyed as d, prepareEffects as dn, _text_content as dt, insertBranchBefore as en, _attr_style_items as et, _if as f, queueAsyncRender as fn, _to_text as ft, bindTagVar as g, run as gn, _content_closures as gt, addAwaitCounter as h, rendering as hn, _content as ht, _dynamic_tag_content as i, PLACEHOLDER_DISMISS_REGISTER_ID as in, _attrs_partial_content as it, _attr_input_value as j, Setup as jn, withLazy as jt, _attr_input_checked_default as k, Owner as kn, ready as kt, _for_to_unkeyed as l, installBranchRenders as ln, _style_shell as lt, _try as m, queueRender as mn, toInsertNode as mt, _await_promise as n, syncGen as nn, _attrs_content as nt, _for_of as o, $signal as on, _html as ot, _show as p, queueEffect as pn, insertChildNodes as pt, _attr_class_item as q, TagVariable as qn, _return as qt, _dynamic_tag as r, DYNAMIC_TAG_SCRIPT_REGISTER_ID as rn, _attrs_partial as rt, _for_of_unkeyed as s, $signalReset as sn, _lifecycle as st, _await_content as t, removeAndDestroyBranch as tn, _attrs as tt, _for_until as u, installCatch as un, _text as ut, installDynamicTagVar as v, runId as vn, createAndSetupBranch as vt, _attr_details_or_dialog_open_script as w, _assert_hoist as wn, _resumed as wt, runPendingEffects as x, forTo as xn, setupBranch as xt, patchDynamicTag as y, forIn as yn, createBranch as yt, _controllable_input as z, Global as zn, _global_read as zt };
2253
+ export { _attr_style_items as $, insertBranchBefore as $t, _attr_input_value as A, Params as An, withLazy as At, _controllable_select as B, Global as Bn, _hoist_resume as Bt, _attr_details_or_dialog_open_script as C, _assert_hoist as Cn, _resumed as Ct, _attr_input_checkedValue_script as D, Clone as Dn, initEmbedded as Dt, _attr_input_checkedValue_default as E, withBranches as En, init as Et, _attr_select_value as F, AwaitCounter as Fn, _el_read as Ft, _attr_class as G, PendingRenders as Gn, _or as Gt, controllableRenders as H, ParentBranch as Hn, _if_closure as Ht, _attr_select_value_default as I, BranchRenders as In, _for_closure as It, _attr_class_names as J, TagVariable as Jn, _script as Jt, _attr_class_item as K, PlaceholderBranch as Kn, _return as Kt, _attr_select_value_script as L, ClosestBranch as Ln, _for_selector as Lt, _attr_input_value_default as M, Setup as Mn, _closure as Mt, _attr_input_value_dynamic_default as N, Pending as Nn, _closure_get as Nt, _attr_input_checked_default as O, Lazy as On, ready as Ot, _attr_input_value_script as P, Scope as Pn, _const as Pt, _attr_style_item as Q, destroyBranch as Qt, _controllable_input as R, EndNode as Rn, _global_read as Rt, _attr_details_or_dialog_open_default as S, _assert_class_toggles as Sn, _el as St, _attr_input_checkedValue as T, _call as Tn, getRegisteredWithScope as Tt, controllableScripts as U, PendingEffectScopes as Un, _let as Ut, _controllable_textarea as V, Load as Vn, _id as Vt, _attr as W, PendingEffects as Wn, _let_change as Wt, _attr_nonce as X, _var_change as Xt, _attr_content as Y, _var as Yt, _attr_style as Z, _assert_init as Zt, installDynamicTagVar as _, runId as _n, _return_setup as _t, _for_in as a, $signal as an, _html as at, runPendingEffects as b, forTo as bn, setupBranch as bt, _for_to as c, installBranchRenders as cn, _style_shell as ct, _for_until_unkeyed as d, queueAsyncRender as dn, _to_text as dt, removeAndDestroyBranch as en, _attrs as et, _if as f, queueEffect as fn, insertChildNodes as ft, dynamicTagScript as g, runEffects as gn, _content_resume as gt, addAwaitCounter as h, run as hn, _content_closures as ht, _dynamic_tag_content as i, _on as in, _attrs_script as it, _attr_input_value_attribute_default as j, Returns as jn, _child_setup as jt, _attr_input_checked_script as k, Owner as kn, readyFailed as kt, _for_to_unkeyed as l, installCatch as ln, _text as lt, _try as m, rendering as mn, _content as mt, _await_promise as n, DYNAMIC_TAG_SCRIPT_REGISTER_ID as nn, _attrs_partial as nt, _for_of as o, $signalReset as on, _lifecycle as ot, _show as p, queueRender as pn, toInsertNode as pt, _attr_class_items as q, StartNode as qn, _return_change as qt, _dynamic_tag as r, PLACEHOLDER_DISMISS_REGISTER_ID as rn, _attrs_partial_content as rt, _for_of_unkeyed as s, createBranchRenders as sn, _style_rule_item as st, _await_content as t, syncGen as tn, _attrs_content as tt, _for_until as u, prepareEffects as un, _text_content as ut, patchDynamicTag as v, forIn as vn, createAndSetupBranch as vt, _attr_input_checked as w, _hoist_read_error as wn, _var_resume as wt, _attr_details_or_dialog_open as x, forUntil as xn, _dynamic_tag_var_resume as xt, renderCatch as y, forOf as yn, createBranch as yt, _controllable_open as z, Gen$1 as zn, _hoist as zt };
@@ -68,6 +68,8 @@ const Params = "params";
68
68
  const Owner = "owner";
69
69
  const Accessor = "accessor";
70
70
  const LocalClosures = "localClosures";
71
+ const Returns = "returns";
72
+ const Lazy = "lazy";
71
73
  //#endregion
72
74
  //#region src/common/helpers.ts
73
75
  const htmlAttrNameReg = /^[^a-z_]|[^a-z0-9._:-]/i;
@@ -1114,13 +1116,13 @@ function init(runtimeId = "M") {
1114
1116
  visitScope[nextToken()] = visitType === "%" ? visit.parentNode.insertBefore(new Text(), visit) : visit.previousSibling;
1115
1117
  if ((branchesEnabled || lazyEnabled) && pending[pending.length - 1] !== visitScope) pending.push(visitScope);
1116
1118
  }
1119
+ if (embedRenders && !embedAnchor && visit.parentNode) embedRenders.set(embedAnchor = visit.parentNode.insertBefore(new Text(), visit), [renderId, scopeLookup]);
1117
1120
  }
1118
1121
  if (branchesEnabled && visitBranches) {
1119
1122
  visitType = "*";
1120
1123
  lastToken = "";
1121
1124
  visitBranches();
1122
1125
  }
1123
- if (embedRenders && !embedAnchor && visit?.parentNode) embedRenders.set(embedAnchor = visit.parentNode.insertBefore(new Text(), visit.nextSibling), [renderId, scopeLookup]);
1124
1126
  visits.length = retained;
1125
1127
  return effects;
1126
1128
  };
@@ -1188,6 +1190,10 @@ function setupBranch(renderer, branch) {
1188
1190
  if (renderer["setup"]) queueRender(branch, renderer[Setup], -1);
1189
1191
  return branch;
1190
1192
  }
1193
+ function _return_setup(setup) {
1194
+ (setup._ || setup)[Returns] = 1;
1195
+ return setup;
1196
+ }
1191
1197
  function _content(id, template, walks, setup, params, dynamicScopesAccessor) {
1192
1198
  walks = walks ? walks.replace(/[^\0-1]+$/, "") : "";
1193
1199
  setup = setup ? setup._ || setup : void 0;
@@ -1681,11 +1687,8 @@ function getSelectValue(el, multiple) {
1681
1687
  return multiple ? Array.from(el.selectedOptions, (opt) => opt.value) : el.value;
1682
1688
  }
1683
1689
  function assertSelectValueMatchesOption(el, normalizedValue, value) {
1684
- const multiple = Array.isArray(normalizedValue);
1685
- if (multiple ? normalizedValue.some(Boolean) : normalizedValue) {
1686
- for (const opt of el.options) if (multiple ? normalizedValue.includes(opt.value) : opt.value === normalizedValue) return;
1687
- console.error("A controlled `<select>`'s `value` has no matching `<option>`:", value);
1688
- }
1690
+ const options = Array.from(el.options, (opt) => opt.value);
1691
+ if ((Array.isArray(normalizedValue) ? normalizedValue : [normalizedValue]).some((v) => v && !options.includes(v))) console.error("A controlled `<select>`'s `value` has no matching `<option>`:", value);
1689
1692
  }
1690
1693
  function _attr_details_or_dialog_open_default(scope, nodeAccessor, open) {
1691
1694
  if (scope["#Gen"] === runId) scope[nodeAccessor].open = isNotVoid(open);
@@ -1720,7 +1723,7 @@ function syncControllableFormInput(el, hasChanged, onChange) {
1720
1723
  el._ = onChange;
1721
1724
  el.c = hasChanged;
1722
1725
  delegate("input", handleChange);
1723
- if (el.form) delegate("reset", handleFormReset);
1726
+ delegate("reset", handleFormReset);
1724
1727
  if (isResuming && hasChanged(el)) queueMicrotask(onChange);
1725
1728
  }
1726
1729
  function handleChange(ev) {
@@ -1728,7 +1731,7 @@ function handleChange(ev) {
1728
1731
  }
1729
1732
  function handleFormReset(ev) {
1730
1733
  const handlers = [];
1731
- for (const el of ev.target.elements) if (el._ && el.c(el)) handlers.push(el._);
1734
+ for (const el of ev.target.elements || []) if (el._ && el.c(el)) handlers.push(el._);
1732
1735
  requestAnimationFrame(() => {
1733
1736
  if (!ev.defaultPrevented) for (const change of handlers) change();
1734
1737
  });
@@ -2030,14 +2033,14 @@ let _dynamic_tag = /*@__PURE__*/ withBranches((nodeAccessor, getContent, getTagV
2030
2033
  const rendererAccessor = ConditionalRenderer + nodeAccessor;
2031
2034
  return (scope, newRenderer, getInput) => {
2032
2035
  const normalizedRenderer = normalizeDynamicRenderer(newRenderer);
2033
- if (scope[rendererAccessor] !== (scope[rendererAccessor] = rendererKey(normalizedRenderer)) || getContent && !(normalizedRenderer || scope[childScopeAccessor])) {
2036
+ if (scope[rendererAccessor] !== (scope[rendererAccessor] = rendererKey(normalizedRenderer) || (getContent ? void 0 : 0)) || getContent && !(normalizedRenderer || scope[childScopeAccessor])) {
2034
2037
  const renderer = normalizedRenderer || (getContent ? getContent(scope) : void 0);
2035
2038
  setConditionalRenderer(scope, nodeAccessor, renderer, createBranchWithTagNameOrRenderer);
2036
2039
  if (getTagVar) {
2037
- if (scope[childScopeAccessor]) {
2040
+ if (normalizedRenderer) {
2038
2041
  scope[childScopeAccessor][TagVariable] = (value) => getTagVar()(scope, value);
2039
2042
  bindTagVar(scope, scope[childScopeAccessor], scope[scopeOffsetAccessor], normalizedRenderer);
2040
- } else getTagVar()(scope, void 0);
2043
+ } else getTagVar()(scope);
2041
2044
  }
2042
2045
  if (typeof renderer === "string") {
2043
2046
  if (getContent) {
@@ -2308,6 +2311,12 @@ Object.defineProperty(exports, "Global", {
2308
2311
  return Global;
2309
2312
  }
2310
2313
  });
2314
+ Object.defineProperty(exports, "Lazy", {
2315
+ enumerable: true,
2316
+ get: function() {
2317
+ return Lazy;
2318
+ }
2319
+ });
2311
2320
  Object.defineProperty(exports, "Load", {
2312
2321
  enumerable: true,
2313
2322
  get: function() {
@@ -2368,6 +2377,12 @@ Object.defineProperty(exports, "PlaceholderBranch", {
2368
2377
  return PlaceholderBranch;
2369
2378
  }
2370
2379
  });
2380
+ Object.defineProperty(exports, "Returns", {
2381
+ enumerable: true,
2382
+ get: function() {
2383
+ return Returns;
2384
+ }
2385
+ });
2371
2386
  Object.defineProperty(exports, "Scope", {
2372
2387
  enumerable: true,
2373
2388
  get: function() {
@@ -2866,6 +2881,12 @@ Object.defineProperty(exports, "_return_change", {
2866
2881
  return _return_change;
2867
2882
  }
2868
2883
  });
2884
+ Object.defineProperty(exports, "_return_setup", {
2885
+ enumerable: true,
2886
+ get: function() {
2887
+ return _return_setup;
2888
+ }
2889
+ });
2869
2890
  Object.defineProperty(exports, "_script", {
2870
2891
  enumerable: true,
2871
2892
  get: function() {
@@ -2938,12 +2959,6 @@ Object.defineProperty(exports, "addAwaitCounter", {
2938
2959
  return addAwaitCounter;
2939
2960
  }
2940
2961
  });
2941
- Object.defineProperty(exports, "bindTagVar", {
2942
- enumerable: true,
2943
- get: function() {
2944
- return bindTagVar;
2945
- }
2946
- });
2947
2962
  Object.defineProperty(exports, "controllableRenders", {
2948
2963
  enumerable: true,
2949
2964
  get: function() {
@@ -3142,12 +3157,6 @@ Object.defineProperty(exports, "runPendingEffects", {
3142
3157
  return runPendingEffects;
3143
3158
  }
3144
3159
  });
3145
- Object.defineProperty(exports, "setParentBranch", {
3146
- enumerable: true,
3147
- get: function() {
3148
- return setParentBranch;
3149
- }
3150
- });
3151
3160
  Object.defineProperty(exports, "setupBranch", {
3152
3161
  enumerable: true,
3153
3162
  get: function() {
package/dist/debug/dom.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const require_control_flow = require("./dom-C7F3yZTh.js");
3
+ const require_control_flow = require("./dom-CUxvM4i9.js");
4
4
  //#region src/common/attr-tag.ts
5
5
  const empty = [];
6
6
  const rest = Symbol("Attribute Tag");
@@ -205,6 +205,7 @@ function _load_template(id, load) {
205
205
  require_control_flow.queueAsyncRender(branch, (branch) => insertLoaded(renderer, branch, branch[require_control_flow.StartNode], awaitCounter));
206
206
  }, loadFailed(branch, awaitCounter));
207
207
  }, _load_signal(() => (pending ||= load()).then((r) => ({ _: r["params"] || noop }))));
208
+ lazyTemplate[require_control_flow.Lazy] = 1;
208
209
  return lazyTemplate;
209
210
  }
210
211
  function _load_setup(load) {
@@ -223,14 +224,6 @@ function _load_setup(load) {
223
224
  }
224
225
  };
225
226
  }
226
- function _load_setup_var(load) {
227
- const setup = _load_setup(load);
228
- return (owner, child, marker) => {
229
- require_control_flow.setParentBranch(child, child[require_control_flow.ClosestBranch]);
230
- require_control_flow.bindTagVar(owner, child, child["#Id"]);
231
- setup(owner, child, marker);
232
- };
233
- }
234
227
  function insertLoaded(renderer, branch, marker, awaitCounter) {
235
228
  const parent = () => marker.parentNode, values = branch[require_control_flow.Load], clone = () => {
236
229
  require_control_flow.syncGen(branch);
@@ -394,7 +387,6 @@ exports._load_idle_trigger = _load_idle_trigger;
394
387
  exports._load_media_trigger = _load_media_trigger;
395
388
  exports._load_race_trigger = _load_race_trigger;
396
389
  exports._load_setup = _load_setup;
397
- exports._load_setup_var = _load_setup_var;
398
390
  exports._load_signal = _load_signal;
399
391
  exports._load_template = _load_template;
400
392
  exports._load_visible_trigger = _load_visible_trigger;
@@ -403,6 +395,7 @@ exports._or = require_control_flow._or;
403
395
  exports._resumed = require_control_flow._resumed;
404
396
  exports._return = require_control_flow._return;
405
397
  exports._return_change = require_control_flow._return_change;
398
+ exports._return_setup = require_control_flow._return_setup;
406
399
  exports._script = require_control_flow._script;
407
400
  exports._show = require_control_flow._show;
408
401
  exports._style_rule_item = require_control_flow._style_rule_item;
@@ -1,4 +1,4 @@
1
- import { $ as _attr_style_item, $t as destroyBranch, A as _attr_input_checked_script, An as Params, At as readyFailed, B as _controllable_open, Bn as Load, Bt as _hoist, C as _attr_details_or_dialog_open_default, Cn as _assert_class_toggles, Ct as _el, D as _attr_input_checkedValue_default, Dt as init, E as _attr_input_checkedValue, En as _call, Et as getRegisteredWithScope, F as _attr_input_value_script, Ft as _const, G as _attr, Gt as _let_change, H as _controllable_textarea, Ht as _id, I as _attr_select_value, In as ClosestBranch, It as _el_read, J as _attr_class_items, Jt as _return_change, K as _attr_class, Kn as StartNode, Kt as _or, L as _attr_select_value_default, Ln as EndNode, Lt as _for_closure, M as _attr_input_value_attribute_default, Mt as _child_setup, N as _attr_input_value_default, Nt as _closure, O as _attr_input_checkedValue_script, On as Clone, Ot as initEmbedded, P as _attr_input_value_dynamic_default, Pt as _closure_get, Q as _attr_style, Qt as _assert_init, R as _attr_select_value_script, Rt as _for_selector, S as _attr_details_or_dialog_open, Sn as forUntil, St as _dynamic_tag_var_resume, T as _attr_input_checked, Tn as _hoist_read_error, Tt as _var_resume, Ut as _if_closure, V as _controllable_select, Vt as _hoist_resume, Wt as _let, X as _attr_content, Xt as _var, Y as _attr_class_names, Yt as _script, Z as _attr_nonce, Zt as _var_change, _n as runEffects, _t as _content_resume, a as _for_in, an as _on, at as _attrs_script, b as renderCatch, bn as forOf, bt as setParentBranch, c as _for_to, ct as _style_rule_item, d as _for_until_unkeyed, dn as prepareEffects, dt as _text_content, en as insertBranchBefore, et as _attr_style_items, f as _if, fn as queueAsyncRender, ft as _to_text, g as bindTagVar, gn as run, gt as _content_closures, h as addAwaitCounter, hn as rendering, ht as _content, i as _dynamic_tag_content, it as _attrs_partial_content, j as _attr_input_value, jn as Setup, k as _attr_input_checked_default, kn as Owner, kt as ready, l as _for_to_unkeyed, lt as _style_shell, m as _try, mn as queueRender, mt as toInsertNode, n as _await_promise, nn as syncGen, nt as _attrs_content, o as _for_of, on as $signal, ot as _html, p as _show, pn as queueEffect, pt as insertChildNodes, q as _attr_class_item, qn as TagVariable, qt as _return, r as _dynamic_tag, rt as _attrs_partial, s as _for_of_unkeyed, sn as $signalReset, st as _lifecycle, t as _await_content, tn as removeAndDestroyBranch, tt as _attrs, u as _for_until, ut as _text, vn as runId, vt as createAndSetupBranch, w as _attr_details_or_dialog_open_script, wn as _assert_hoist, wt as _resumed, xn as forTo, xt as setupBranch, y as patchDynamicTag, yn as forIn, yt as createBranch, z as _controllable_input, zn as Global, zt as _global_read } from "./dom-uEY0J_H9.mjs";
1
+ import { $ as _attr_style_items, $t as insertBranchBefore, A as _attr_input_value, An as Params, B as _controllable_select, Bn as Global, Bt as _hoist_resume, C as _attr_details_or_dialog_open_script, Cn as _assert_hoist, Ct as _resumed, D as _attr_input_checkedValue_script, Dn as Clone, Dt as initEmbedded, E as _attr_input_checkedValue_default, Et as init, F as _attr_select_value, Ft as _el_read, G as _attr_class, Gt as _or, Ht as _if_closure, I as _attr_select_value_default, It as _for_closure, J as _attr_class_names, Jn as TagVariable, Jt as _script, K as _attr_class_item, Kt as _return, L as _attr_select_value_script, Lt as _for_selector, M as _attr_input_value_default, Mn as Setup, Mt as _closure, N as _attr_input_value_dynamic_default, Nt as _closure_get, O as _attr_input_checked_default, On as Lazy, Ot as ready, P as _attr_input_value_script, Pt as _const, Q as _attr_style_item, Qt as destroyBranch, R as _controllable_input, Rn as EndNode, Rt as _global_read, S as _attr_details_or_dialog_open_default, Sn as _assert_class_toggles, St as _el, T as _attr_input_checkedValue, Tn as _call, Tt as getRegisteredWithScope, Ut as _let, V as _controllable_textarea, Vn as Load, Vt as _id, W as _attr, Wt as _let_change, X as _attr_nonce, Xt as _var_change, Y as _attr_content, Yt as _var, Z as _attr_style, Zt as _assert_init, _n as runId, _t as _return_setup, a as _for_in, an as $signal, at as _html, bn as forTo, bt as setupBranch, c as _for_to, ct as _style_shell, d as _for_until_unkeyed, dn as queueAsyncRender, dt as _to_text, en as removeAndDestroyBranch, et as _attrs, f as _if, fn as queueEffect, ft as insertChildNodes, gn as runEffects, gt as _content_resume, h as addAwaitCounter, hn as run, ht as _content_closures, i as _dynamic_tag_content, in as _on, it as _attrs_script, j as _attr_input_value_attribute_default, jt as _child_setup, k as _attr_input_checked_script, kn as Owner, kt as readyFailed, l as _for_to_unkeyed, lt as _text, m as _try, mn as rendering, mt as _content, n as _await_promise, nt as _attrs_partial, o as _for_of, on as $signalReset, ot as _lifecycle, p as _show, pn as queueRender, pt as toInsertNode, q as _attr_class_items, qn as StartNode, qt as _return_change, r as _dynamic_tag, rt as _attrs_partial_content, s as _for_of_unkeyed, st as _style_rule_item, t as _await_content, tn as syncGen, tt as _attrs_content, u as _for_until, un as prepareEffects, ut as _text_content, v as patchDynamicTag, vn as forIn, vt as createAndSetupBranch, w as _attr_input_checked, wn as _hoist_read_error, wt as _var_resume, x as _attr_details_or_dialog_open, xn as forUntil, xt as _dynamic_tag_var_resume, y as renderCatch, yn as forOf, yt as createBranch, z as _controllable_open, zt as _hoist } from "./dom-BeY1nGUb.mjs";
2
2
  //#region src/common/attr-tag.ts
3
3
  const empty = [];
4
4
  const rest = Symbol("Attribute Tag");
@@ -203,6 +203,7 @@ function _load_template(id, load) {
203
203
  queueAsyncRender(branch, (branch) => insertLoaded(renderer, branch, branch[StartNode], awaitCounter));
204
204
  }, loadFailed(branch, awaitCounter));
205
205
  }, _load_signal(() => (pending ||= load()).then((r) => ({ _: r["params"] || noop }))));
206
+ lazyTemplate[Lazy] = 1;
206
207
  return lazyTemplate;
207
208
  }
208
209
  function _load_setup(load) {
@@ -221,14 +222,6 @@ function _load_setup(load) {
221
222
  }
222
223
  };
223
224
  }
224
- function _load_setup_var(load) {
225
- const setup = _load_setup(load);
226
- return (owner, child, marker) => {
227
- setParentBranch(child, child[ClosestBranch]);
228
- bindTagVar(owner, child, child["#Id"]);
229
- setup(owner, child, marker);
230
- };
231
- }
232
225
  function insertLoaded(renderer, branch, marker, awaitCounter) {
233
226
  const parent = () => marker.parentNode, values = branch[Load], clone = () => {
234
227
  syncGen(branch);
@@ -300,4 +293,4 @@ function getSelectorOrResolve(selector, resolve) {
300
293
  return document.querySelector(selector) || (console.warn(`A lazy load trigger could not find an element matching "${selector}". The module was loaded immediately.`), resolve());
301
294
  }
302
295
  //#endregion
303
- export { $signal, $signalReset, _assert_class_toggles, _assert_hoist, _assert_init, _attr, _attr_class, _attr_class_item, _attr_class_items, _attr_class_names, _attr_content, _attr_details_or_dialog_open as _attr_details_open, _attr_details_or_dialog_open as _attr_dialog_open, _attr_details_or_dialog_open_default as _attr_details_open_default, _attr_details_or_dialog_open_default as _attr_dialog_open_default, _attr_details_or_dialog_open_script as _attr_details_open_script, _attr_details_or_dialog_open_script as _attr_dialog_open_script, _attr_input_checked, _attr_input_checkedValue, _attr_input_checkedValue_default, _attr_input_checkedValue_script, _attr_input_checked_default, _attr_input_checked_script, _attr_input_value, _attr_input_value as _attr_textarea_value, _attr_input_value_attribute_default, _attr_input_value_default, _attr_input_value_default as _attr_textarea_value_default, _attr_input_value_dynamic_default, _attr_input_value_script, _attr_input_value_script as _attr_textarea_value_script, _attr_nonce, _attr_select_value, _attr_select_value_default, _attr_select_value_script, _attr_style, _attr_style_item, _attr_style_items, _attrs, _attrs_content, _attrs_partial, _attrs_partial_content, _attrs_script, _await_content, _await_promise, _call, _child_setup, _closure, _closure_get, _const, _content, _content_closures, _content_resume, _controllable_input, _controllable_open, _controllable_select, _controllable_textarea, _dynamic_tag, _dynamic_tag_content, _dynamic_tag_var_resume, _el, _el_read, _for_closure, _for_in, _for_of, _for_of_unkeyed, _for_selector, _for_to, _for_to_unkeyed, _for_until, _for_until_unkeyed, _global_read, _hoist, _hoist_read_error, _hoist_resume, _html, _id, _if, _if_closure, _let, _let_change, _lifecycle, _load_event_trigger, _load_idle_trigger, _load_media_trigger, _load_race_trigger, _load_setup, _load_setup_var, _load_signal, _load_template, _load_visible_trigger, _on, _or, _resumed, _return, _return_change, _script, _show, _style_rule_item, _style_shell, _template, _text, _text_content, _to_text, _try, _var, _var_change, _var_resume, attrTag, attrTags, compat, forIn, forOf, forTo, forUntil, init, initEmbedded, ready, readyFailed, run };
296
+ export { $signal, $signalReset, _assert_class_toggles, _assert_hoist, _assert_init, _attr, _attr_class, _attr_class_item, _attr_class_items, _attr_class_names, _attr_content, _attr_details_or_dialog_open as _attr_details_open, _attr_details_or_dialog_open as _attr_dialog_open, _attr_details_or_dialog_open_default as _attr_details_open_default, _attr_details_or_dialog_open_default as _attr_dialog_open_default, _attr_details_or_dialog_open_script as _attr_details_open_script, _attr_details_or_dialog_open_script as _attr_dialog_open_script, _attr_input_checked, _attr_input_checkedValue, _attr_input_checkedValue_default, _attr_input_checkedValue_script, _attr_input_checked_default, _attr_input_checked_script, _attr_input_value, _attr_input_value as _attr_textarea_value, _attr_input_value_attribute_default, _attr_input_value_default, _attr_input_value_default as _attr_textarea_value_default, _attr_input_value_dynamic_default, _attr_input_value_script, _attr_input_value_script as _attr_textarea_value_script, _attr_nonce, _attr_select_value, _attr_select_value_default, _attr_select_value_script, _attr_style, _attr_style_item, _attr_style_items, _attrs, _attrs_content, _attrs_partial, _attrs_partial_content, _attrs_script, _await_content, _await_promise, _call, _child_setup, _closure, _closure_get, _const, _content, _content_closures, _content_resume, _controllable_input, _controllable_open, _controllable_select, _controllable_textarea, _dynamic_tag, _dynamic_tag_content, _dynamic_tag_var_resume, _el, _el_read, _for_closure, _for_in, _for_of, _for_of_unkeyed, _for_selector, _for_to, _for_to_unkeyed, _for_until, _for_until_unkeyed, _global_read, _hoist, _hoist_read_error, _hoist_resume, _html, _id, _if, _if_closure, _let, _let_change, _lifecycle, _load_event_trigger, _load_idle_trigger, _load_media_trigger, _load_race_trigger, _load_setup, _load_signal, _load_template, _load_visible_trigger, _on, _or, _resumed, _return, _return_change, _return_setup, _script, _show, _style_rule_item, _style_shell, _template, _text, _text_content, _to_text, _try, _var, _var_change, _var_resume, attrTag, attrTags, compat, forIn, forOf, forTo, forUntil, init, initEmbedded, ready, readyFailed, run };