marko 6.3.56 → 6.4.0

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 (81) hide show
  1. package/cheatsheet.md +2 -2
  2. package/dist/common/constants/accessor-prefix.d.ts +1 -0
  3. package/dist/common/constants/accessor-prefix.debug.d.ts +1 -0
  4. package/dist/common/constants/accessor-prop.d.ts +3 -0
  5. package/dist/common/constants/accessor-prop.debug.d.ts +3 -0
  6. package/dist/common/types.d.ts +8 -2
  7. package/dist/debug/dom/catch.feat.js +12 -14
  8. package/dist/debug/dom/catch.feat.mjs +12 -14
  9. package/dist/debug/dom/controllable-input.feat.js +1 -1
  10. package/dist/debug/dom/controllable-input.feat.mjs +1 -1
  11. package/dist/debug/dom/controllable-open.feat.js +1 -1
  12. package/dist/debug/dom/controllable-open.feat.mjs +1 -1
  13. package/dist/debug/dom/controllable-select.feat.js +1 -1
  14. package/dist/debug/dom/controllable-select.feat.mjs +1 -1
  15. package/dist/debug/dom/controllable-textarea.feat.js +1 -1
  16. package/dist/debug/dom/controllable-textarea.feat.mjs +1 -1
  17. package/dist/debug/dom/controllable.feat.js +1 -1
  18. package/dist/debug/dom/controllable.feat.mjs +1 -1
  19. package/dist/debug/dom/dynamic-tag-script.feat.js +1 -1
  20. package/dist/debug/dom/dynamic-tag-script.feat.mjs +1 -1
  21. package/dist/debug/dom/dynamic-tag-var.feat.js +1 -1
  22. package/dist/debug/dom/dynamic-tag-var.feat.mjs +1 -1
  23. package/dist/debug/dom/lazy.feat.js +4 -0
  24. package/dist/debug/dom/lazy.feat.mjs +4 -0
  25. package/dist/debug/dom/placeholder.feat.js +1 -1
  26. package/dist/debug/dom/placeholder.feat.mjs +1 -1
  27. package/dist/debug/{dom-DcwejnYg.js → dom-BRO5aArp.js} +232 -178
  28. package/dist/debug/{dom-BeCNT5R5.mjs → dom-Btj2QJhk.mjs} +215 -167
  29. package/dist/debug/dom.js +14 -12
  30. package/dist/debug/dom.mjs +14 -12
  31. package/dist/debug/html.js +603 -517
  32. package/dist/debug/html.mjs +602 -518
  33. package/dist/dom/abort-signal.d.ts +2 -0
  34. package/dist/dom/catch.feat.js +6 -7
  35. package/dist/dom/catch.feat.mjs +5 -7
  36. package/dist/dom/control-flow.d.ts +3 -5
  37. package/dist/dom/controllable-input.feat.js +3 -2
  38. package/dist/dom/controllable-input.feat.mjs +1 -1
  39. package/dist/dom/controllable-open.feat.js +3 -2
  40. package/dist/dom/controllable-open.feat.mjs +1 -1
  41. package/dist/dom/controllable-select.feat.js +3 -2
  42. package/dist/dom/controllable-select.feat.mjs +1 -1
  43. package/dist/dom/controllable-textarea.feat.js +3 -2
  44. package/dist/dom/controllable-textarea.feat.mjs +1 -1
  45. package/dist/dom/controllable.feat.js +3 -2
  46. package/dist/dom/controllable.feat.mjs +1 -1
  47. package/dist/dom/dynamic-tag-script.feat.js +3 -2
  48. package/dist/dom/dynamic-tag-script.feat.mjs +1 -1
  49. package/dist/dom/dynamic-tag-var.feat.js +2 -1
  50. package/dist/dom/dynamic-tag-var.feat.mjs +1 -1
  51. package/dist/dom/lazy.feat.d.ts +1 -0
  52. package/dist/dom/lazy.feat.js +4 -0
  53. package/dist/dom/lazy.feat.mjs +4 -0
  54. package/dist/dom/load.d.ts +3 -3
  55. package/dist/dom/placeholder.feat.js +4 -3
  56. package/dist/dom/placeholder.feat.mjs +1 -1
  57. package/dist/dom/queue.d.ts +2 -4
  58. package/dist/dom/resume.d.ts +1 -1
  59. package/dist/dom/scope.d.ts +0 -1
  60. package/dist/{dom-BwNsIevR.mjs → dom-B-v8Gw6T.mjs} +114 -87
  61. package/dist/{dom-QEF0csuC.js → dom-BSsI9OPC.js} +210 -182
  62. package/dist/dom.js +59 -56
  63. package/dist/dom.mjs +34 -32
  64. package/dist/html/attrs.d.ts +2 -0
  65. package/dist/html/writer.d.ts +5 -11
  66. package/dist/html.d.ts +1 -1
  67. package/dist/html.js +362 -317
  68. package/dist/html.mjs +361 -317
  69. package/dist/translator/index.js +791 -650
  70. package/dist/translator/util/binding-has-prop.d.ts +2 -0
  71. package/dist/translator/util/entry-builder.d.ts +2 -0
  72. package/dist/translator/util/generate-uid.d.ts +5 -0
  73. package/dist/translator/util/references.d.ts +3 -2
  74. package/dist/translator/util/runtime.d.ts +3 -3
  75. package/dist/translator/util/sections.d.ts +8 -2
  76. package/dist/translator/util/serialize-reasons.d.ts +2 -2
  77. package/dist/translator/util/setup-work.d.ts +5 -0
  78. package/dist/translator/util/signals.d.ts +5 -7
  79. package/dist/translator/visitors/tag/native-tag.d.ts +1 -0
  80. package/package.json +3 -3
  81. package/dist/translator/util/setup-statements.d.ts +0 -5
package/cheatsheet.md CHANGED
@@ -88,7 +88,7 @@ import { getUser } from "../data.js";
88
88
  </try>
89
89
  ```
90
90
 
91
- `@placeholder`/`@catch` go on `<try>`, never on `<await>`. On the server this streams (placeholder flushes first, content follows). It works in the browser too: hand `<await>` a new promise (e.g. a `<const>` derived from state) and it shows the placeholder again, then the new result. `@catch` can't recover in place: redirect (a `<script>` setting `location`), or re-render the `<try>` by bumping a key on a wrapping `<for>`.
91
+ `@placeholder`/`@catch` go on `<try>`, never on `<await>`, written directly inside it: once each, with only content, never inside `<if>`/`<for>`. A `<try>` needs at least one. On the server this streams (placeholder flushes first, content follows). It works in the browser too: hand `<await>` a new promise (e.g. a `<const>` derived from state) and it shows the placeholder again, then the new result. `@catch` can't recover in place: redirect (a `<script>` setting `location`), or re-render the `<try>` by bumping a key on a wrapping `<for>`.
92
92
 
93
93
  Don't fetch while rendering: start data loads early, pass the promise through the template, and `<await>` it where the data is rendered. Fetching inside each component that renders the data serializes the requests (waterfalls). Under @marko/run, load in the route handler (`return next({ user: getUser() })`, no await) and render with `<await|user|=$global.data.user>`.
94
94
 
@@ -140,7 +140,7 @@ Don't fetch while rendering: start data loads early, pass the promise through th
140
140
 
141
141
  - Read request-scoped `$global` from any template, no threading: `${$global.messages.title}`. Otherwise pass data down through `input`.
142
142
  - Populate at the render call: `template.render({ $global: { messages } })`. Under @marko/run a middleware's `return next({ messages })` merges into `$global.data`.
143
- - `$global` is not serialized to the client by default. Mark any key the browser itself evaluates, e.g. an event handler, a `<script>`, markup the browser (re)creates, or a `<const>` that recomputes from state: `$global.serializedGlobals = { messages: true }` at the render call (under @marko/run, `context.serializedGlobals.data = true`; it ships `params`/`url` already). What the server already rendered needs no opt-in; a debug build logs an unserialized key read in the browser.
143
+ - `$global` is not serialized to the client by default. Mark any key the browser itself evaluates, e.g. an event handler, a `<script>`, markup the browser (re)creates, or a `<const>` that recomputes from state: `$global.serializedGlobals = { messages: true }` at the render call (under @marko/run, `context.serializedGlobals.data = true`; it ships `params`/`url` already). A serialized key is embedded in the page, so copy the non-secret field the browser needs into its own key rather than serializing a whole request or session. What the server already rendered needs no opt-in; a debug build logs an unserialized key read in the browser.
144
144
 
145
145
  ## Client-side effects
146
146
 
@@ -13,6 +13,7 @@ export declare const KeyedScopes = "O";
13
13
  export declare const Lifecycle = "K";
14
14
  export declare const Promise = "L";
15
15
  export declare const TagVariableChange = "M";
16
+ export declare const TryBranch = "Q";
16
17
  type Self = typeof import("./accessor-prefix");
17
18
  export type Value = Self[keyof Self];
18
19
  export {};
@@ -13,6 +13,7 @@ export declare const KeyedScopes = "KeyedScopes:";
13
13
  export declare const Lifecycle = "Lifecycle:";
14
14
  export declare const Promise = "Promise:";
15
15
  export declare const TagVariableChange = "TagVariableChange:";
16
+ export declare const TryBranch = "TryBranch:";
16
17
  type Self = typeof import("./accessor-prefix.debug");
17
18
  export type Value = Self[keyof Self];
18
19
  export {};
@@ -17,15 +17,18 @@ export declare const LoopKey = "M";
17
17
  export declare const LoopIndex = "I";
18
18
  export declare const ParentBranch = "N";
19
19
  export declare const PendingEffects = "J";
20
+ export declare const PendingEffectScopes = "JS";
20
21
  export declare const PendingRenders = "W";
21
22
  export declare const PendingScopes = "Y";
22
23
  export declare const PlaceholderBranch = "P";
23
24
  export declare const PlaceholderContent = "Q";
24
25
  export declare const Renderer = "R";
26
+ export declare const ReturnValue = "RV";
25
27
  export declare const StartNode = "S";
26
28
  export declare const Subscriptions = "Z";
27
29
  export declare const TagVariable = "T";
28
30
  export declare const TagVariableChange = "U";
31
+ export declare const TryBranch = "PT";
29
32
  type Self = typeof import("./accessor-prop");
30
33
  export type Value = Self[keyof Self];
31
34
  export {};
@@ -17,15 +17,18 @@ export declare const LoopKey = "#LoopKey";
17
17
  export declare const LoopIndex = "#LoopIndex";
18
18
  export declare const ParentBranch = "#ParentBranch";
19
19
  export declare const PendingEffects = "#PendingEffects";
20
+ export declare const PendingEffectScopes = "#PendingEffectScopes";
20
21
  export declare const PendingRenders = "#PendingRenders";
21
22
  export declare const PendingScopes = "#PendingScopes";
22
23
  export declare const PlaceholderBranch = "#PlaceholderBranch";
23
24
  export declare const PlaceholderContent = "#PlaceholderContent";
24
25
  export declare const Renderer = "#Renderer";
26
+ export declare const ReturnValue = "#ReturnValue";
25
27
  export declare const StartNode = "#StartNode";
26
28
  export declare const Subscriptions = "#Subscriptions";
27
29
  export declare const TagVariable = "#TagVariable";
28
30
  export declare const TagVariableChange = "#TagVariableChange";
31
+ export declare const TryBranch = "#TryBranch";
29
32
  type Self = typeof import("./accessor-prop.debug");
30
33
  export type Value = Self[keyof Self];
31
34
  export {};
@@ -1,5 +1,6 @@
1
1
  import type { PendingRender } from "../dom/queue";
2
2
  import type { Renderer as ClientRenderer, Renderer } from "../dom/renderer";
3
+ import type { SignalFn } from "../dom/signals";
3
4
  import type { AccessorProp } from "./accessor.debug";
4
5
  import * as ControlledType from "./constants/controlled-type";
5
6
  import * as NodeType from "./constants/node-type";
@@ -15,8 +16,9 @@ export interface BranchScope extends Scope {
15
16
  [AccessorProp.BranchScopes]: Set<BranchScope> | undefined;
16
17
  [AccessorProp.Renderer]: ClientRenderer | string;
17
18
  [AccessorProp.AwaitCounter]: AwaitCounter | undefined;
18
- [AccessorProp.PendingEffects]: unknown[] | undefined;
19
+ [AccessorProp.PendingEffectScopes]: Scope[] | null | undefined;
19
20
  [AccessorProp.PlaceholderBranch]: BranchScope | undefined | 0;
21
+ [AccessorProp.TryBranch]: BranchScope | undefined;
20
22
  [AccessorProp.PendingRenders]: PendingRender[] | 0 | undefined;
21
23
  [AccessorProp.DetachedAwait]: Renderer | 0 | undefined;
22
24
  [AccessorProp.PendingScopes]: Scope[] | void;
@@ -26,9 +28,13 @@ export interface Scope {
26
28
  [AccessorProp.Global]: Record<string, unknown>;
27
29
  [AccessorProp.Id]: number;
28
30
  [AccessorProp.Gen]: number;
29
- [AccessorProp.AbortControllers]: Record<string | number, AbortController | void> | undefined;
31
+ [AccessorProp.AbortControllers]: Record<string | number, {
32
+ abort(): void;
33
+ signal?: AbortSignal;
34
+ } | void> | undefined;
30
35
  [AccessorProp.ClosestBranch]: BranchScope | undefined;
31
36
  [AccessorProp.ClosestBranchId]: number | undefined;
37
+ [AccessorProp.PendingEffects]: Set<SignalFn> | null | undefined;
32
38
  [AccessorProp.Subscriptions]: Set<Scope>[] | undefined;
33
39
  [x: `___${string}`]: never;
34
40
  [x: string | number]: any;
@@ -1,24 +1,22 @@
1
1
  "use strict";
2
- const require_control_flow = require("../dom-DcwejnYg.js");
2
+ const require_control_flow = require("../dom-BRO5aArp.js");
3
3
  //#region src/dom/catch.feat.ts
4
4
  const handlePendingTry = (fn, scope, branch) => {
5
5
  while (branch) {
6
- if (branch["#AwaitCounter"]?.i) return (branch[require_control_flow.PendingEffects] ||= []).push(fn, scope);
6
+ if (branch["#AwaitCounter"]?.i) return (scope[require_control_flow.PendingEffects] ||= ((branch[require_control_flow.PendingEffectScopes] ||= (branch["#AwaitCounter"].m && ((complete) => branch["#AwaitCounter"].c = () => complete() || require_control_flow.queueAsyncRender(branch, require_control_flow.queueEffect, require_control_flow.runPendingEffects))(branch["#AwaitCounter"].c), [])).push(scope), /* @__PURE__ */ new Set())).add(fn);
7
7
  branch = branch[require_control_flow.ParentBranch];
8
8
  }
9
9
  };
10
- require_control_flow.installCatch((runEffects) => (effects, checkPending = require_control_flow.placeholderShown.has(effects)) => {
11
- if (checkPending || require_control_flow.caughtError.has(effects)) {
12
- let i = 0;
13
- let fn;
14
- let scope;
15
- let branch;
16
- for (; i < effects.length;) {
17
- fn = effects[i++];
18
- scope = effects[i++];
19
- if ((branch = scope["#ClosestBranch"])?.["#Gen"] !== 0 && !(checkPending && handlePendingTry(fn, scope, branch))) fn(scope);
20
- }
21
- } else runEffects(effects);
10
+ require_control_flow.installCatch((effects) => {
11
+ let i = 0;
12
+ let fn;
13
+ let scope;
14
+ let branch;
15
+ for (; i < effects.length;) {
16
+ fn = effects[i++];
17
+ scope = effects[i++];
18
+ if ((branch = scope["#ClosestBranch"])?.["#Gen"] !== 0 && !handlePendingTry(fn, scope, branch)) fn(scope);
19
+ }
22
20
  }, (runRender) => (render) => {
23
21
  try {
24
22
  let branch = render[require_control_flow.Scope][require_control_flow.ClosestBranch];
@@ -1,23 +1,21 @@
1
- import { Dn as Scope, En as Pending, Fn as PendingEffects, In as PendingRenders, Pn as ParentBranch, an as installCatch, in as caughtError, kn as ClosestBranch, on as placeholderShown, y as renderCatch } from "../dom-BeCNT5R5.mjs";
1
+ import { Dn as Scope, En as Pending, Fn as PendingEffectScopes, In as PendingEffects, Ln as PendingRenders, Pn as ParentBranch, an as installCatch, b as runPendingEffects, cn as queueEffect, kn as ClosestBranch, sn as queueAsyncRender, y as renderCatch } from "../dom-Btj2QJhk.mjs";
2
2
  //#region src/dom/catch.feat.ts
3
3
  const handlePendingTry = (fn, scope, branch) => {
4
4
  while (branch) {
5
- if (branch["#AwaitCounter"]?.i) return (branch[PendingEffects] ||= []).push(fn, scope);
5
+ if (branch["#AwaitCounter"]?.i) return (scope[PendingEffects] ||= ((branch[PendingEffectScopes] ||= (branch["#AwaitCounter"].m && ((complete) => branch["#AwaitCounter"].c = () => complete() || queueAsyncRender(branch, queueEffect, runPendingEffects))(branch["#AwaitCounter"].c), [])).push(scope), /* @__PURE__ */ new Set())).add(fn);
6
6
  branch = branch[ParentBranch];
7
7
  }
8
8
  };
9
- installCatch((runEffects) => (effects, checkPending = placeholderShown.has(effects)) => {
10
- if (checkPending || caughtError.has(effects)) {
11
- let i = 0;
12
- let fn;
13
- let scope;
14
- let branch;
15
- for (; i < effects.length;) {
16
- fn = effects[i++];
17
- scope = effects[i++];
18
- if ((branch = scope["#ClosestBranch"])?.["#Gen"] !== 0 && !(checkPending && handlePendingTry(fn, scope, branch))) fn(scope);
19
- }
20
- } else runEffects(effects);
9
+ installCatch((effects) => {
10
+ let i = 0;
11
+ let fn;
12
+ let scope;
13
+ let branch;
14
+ for (; i < effects.length;) {
15
+ fn = effects[i++];
16
+ scope = effects[i++];
17
+ if ((branch = scope["#ClosestBranch"])?.["#Gen"] !== 0 && !handlePendingTry(fn, scope, branch)) fn(scope);
18
+ }
21
19
  }, (runRender) => (render) => {
22
20
  try {
23
21
  let branch = render[Scope][ClosestBranch];
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- const require_control_flow = require("../dom-DcwejnYg.js");
2
+ const require_control_flow = require("../dom-BRO5aArp.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 { E as _attr_input_checkedValue_script, H as controllableScripts, N as _attr_input_value_script, O as _attr_input_checked_script } from "../dom-BeCNT5R5.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-Btj2QJhk.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-DcwejnYg.js");
2
+ const require_control_flow = require("../dom-BRO5aArp.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 { H as controllableScripts, S as _attr_details_or_dialog_open_script } from "../dom-BeCNT5R5.mjs";
1
+ import { C as _attr_details_or_dialog_open_script, U as controllableScripts } from "../dom-Btj2QJhk.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-DcwejnYg.js");
2
+ const require_control_flow = require("../dom-BRO5aArp.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 { H as controllableScripts, I as _attr_select_value_script } from "../dom-BeCNT5R5.mjs";
1
+ import { L as _attr_select_value_script, U as controllableScripts } from "../dom-Btj2QJhk.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-DcwejnYg.js");
2
+ const require_control_flow = require("../dom-BRO5aArp.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 { H as controllableScripts, N as _attr_input_value_script } from "../dom-BeCNT5R5.mjs";
1
+ import { P as _attr_input_value_script, U as controllableScripts } from "../dom-Btj2QJhk.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-DcwejnYg.js");
2
+ const require_control_flow = require("../dom-BRO5aArp.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_textarea, L as _controllable_input, R as _controllable_open, V as controllableRenders, z as _controllable_select } from "../dom-BeCNT5R5.mjs";
1
+ import { B as _controllable_select, H as controllableRenders, R as _controllable_input, V as _controllable_textarea, z as _controllable_open } from "../dom-Btj2QJhk.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-DcwejnYg.js");
2
+ const require_control_flow = require("../dom-BRO5aArp.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 { $t as DYNAMIC_TAG_SCRIPT_REGISTER_ID, bt as _resumed, g as dynamicTagScript, xn as withBranches } from "../dom-BeCNT5R5.mjs";
1
+ import { en as DYNAMIC_TAG_SCRIPT_REGISTER_ID, g as dynamicTagScript, xn as withBranches, xt as _resumed } from "../dom-Btj2QJhk.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,5 +1,5 @@
1
1
  "use strict";
2
- const require_control_flow = require("../dom-DcwejnYg.js");
2
+ const require_control_flow = require("../dom-BRO5aArp.js");
3
3
  //#region src/dom/dynamic-tag-var.feat.ts
4
4
  require_control_flow.installDynamicTagVar((branch) => branch[require_control_flow.TagVariable](() => require_control_flow._el_read(branch[require_control_flow.StartNode])));
5
5
  //#endregion
@@ -1,4 +1,4 @@
1
- import { Mt as _el_read, Rn as StartNode, _ as installDynamicTagVar, zn as TagVariable } from "../dom-BeCNT5R5.mjs";
1
+ import { Bn as TagVariable, Nt as _el_read, _ as installDynamicTagVar, zn as StartNode } from "../dom-Btj2QJhk.mjs";
2
2
  //#region src/dom/dynamic-tag-var.feat.ts
3
3
  installDynamicTagVar((branch) => branch[TagVariable](() => _el_read(branch[StartNode])));
4
4
  //#endregion
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ //#region src/dom/lazy.feat.ts
3
+ require("../dom-BRO5aArp.js").withLazy();
4
+ //#endregion
@@ -0,0 +1,4 @@
1
+ import { Ot as withLazy } from "../dom-Btj2QJhk.mjs";
2
+ //#region src/dom/lazy.feat.ts
3
+ withLazy();
4
+ //#endregion
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- const require_control_flow = require("../dom-DcwejnYg.js");
2
+ const require_control_flow = require("../dom-BRO5aArp.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 { Ln as PlaceholderBranch, Yt as destroyBranch, bt as _resumed, en as PLACEHOLDER_DISMISS_REGISTER_ID } from "../dom-BeCNT5R5.mjs";
1
+ import { Rn as PlaceholderBranch, Xt as destroyBranch, tn as PLACEHOLDER_DISMISS_REGISTER_ID, xt as _resumed } from "../dom-Btj2QJhk.mjs";
2
2
  //#region src/dom/placeholder.feat.ts
3
3
  _resumed[PLACEHOLDER_DISMISS_REGISTER_ID] = (tryBranch) => {
4
4
  if (tryBranch["#PlaceholderBranch"]) {