marko 6.4.2 → 6.4.4

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/accessor-prop.d.ts +1 -0
  3. package/dist/common/constants/accessor-prop.debug.d.ts +1 -0
  4. package/dist/common/constants/renderer-prop.d.ts +2 -0
  5. package/dist/common/constants/renderer-prop.debug.d.ts +2 -0
  6. package/dist/common/types.d.ts +1 -0
  7. package/dist/debug/dom/catch.feat.js +1 -1
  8. package/dist/debug/dom/catch.feat.mjs +1 -1
  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 +10 -2
  22. package/dist/debug/dom/dynamic-tag-var.feat.mjs +10 -2
  23. package/dist/debug/dom/lazy.feat.js +1 -1
  24. package/dist/debug/dom/lazy.feat.mjs +1 -1
  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-Cii0IA92.mjs → dom-BeY1nGUb.mjs} +74 -36
  28. package/dist/debug/{dom-BLbR0hEx.js → dom-CUxvM4i9.js} +109 -35
  29. package/dist/debug/dom.js +3 -1
  30. package/dist/debug/dom.mjs +3 -2
  31. package/dist/debug/html.js +37 -23
  32. package/dist/debug/html.mjs +37 -23
  33. package/dist/dom/catch.feat.js +3 -3
  34. package/dist/dom/catch.feat.mjs +1 -1
  35. package/dist/dom/control-flow.d.ts +3 -3
  36. package/dist/dom/controllable-input.feat.js +1 -1
  37. package/dist/dom/controllable-input.feat.mjs +1 -1
  38. package/dist/dom/controllable-open.feat.js +1 -1
  39. package/dist/dom/controllable-open.feat.mjs +1 -1
  40. package/dist/dom/controllable-select.feat.js +1 -1
  41. package/dist/dom/controllable-select.feat.mjs +1 -1
  42. package/dist/dom/controllable-textarea.feat.js +1 -1
  43. package/dist/dom/controllable-textarea.feat.mjs +1 -1
  44. package/dist/dom/controllable.feat.js +1 -1
  45. package/dist/dom/controllable.feat.mjs +1 -1
  46. package/dist/dom/dynamic-tag-script.feat.js +2 -2
  47. package/dist/dom/dynamic-tag-script.feat.mjs +1 -1
  48. package/dist/dom/dynamic-tag-var.feat.js +4 -2
  49. package/dist/dom/dynamic-tag-var.feat.mjs +4 -3
  50. package/dist/dom/lazy.feat.js +1 -1
  51. package/dist/dom/lazy.feat.mjs +1 -1
  52. package/dist/dom/placeholder.feat.js +3 -3
  53. package/dist/dom/placeholder.feat.mjs +1 -1
  54. package/dist/dom/queue.d.ts +4 -1
  55. package/dist/dom/renderer.d.ts +9 -2
  56. package/dist/{dom-BPjLe6YU.mjs → dom-DefWmvQB.mjs} +59 -32
  57. package/dist/{dom-B8UEYzOz.js → dom-Diu8MpmL.js} +132 -90
  58. package/dist/dom.d.ts +1 -1
  59. package/dist/dom.js +30 -30
  60. package/dist/dom.mjs +2 -2
  61. package/dist/html/assets.d.ts +1 -1
  62. package/dist/html/content.d.ts +1 -0
  63. package/dist/html/dynamic-tag.d.ts +1 -1
  64. package/dist/html/template.d.ts +1 -0
  65. package/dist/html/writer.d.ts +1 -1
  66. package/dist/html.js +25 -15
  67. package/dist/html.mjs +25 -15
  68. package/dist/translator/index.js +141 -83
  69. package/dist/translator/util/module-registrations.d.ts +1 -1
  70. package/dist/translator/util/solve-reasons.d.ts +1 -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 +3 -3
  74. package/tags-html.d.ts +9 -7
package/dist/dom.d.ts CHANGED
@@ -10,7 +10,7 @@ export { _attr, _attr_class, _attr_class_item, _attr_class_items, _attr_class_na
10
10
  export { _on } from "./dom/event";
11
11
  export { _load_event_trigger, _load_idle_trigger, _load_media_trigger, _load_race_trigger, _load_setup, _load_signal, _load_template, _load_visible_trigger, } from "./dom/load";
12
12
  export { run } from "./dom/queue";
13
- export { _content, _content_closures, _content_resume } from "./dom/renderer";
13
+ export { _content, _content_closures, _content_resume, _return_setup, } from "./dom/renderer";
14
14
  export { _dynamic_tag_var_resume, _el, _resumed, _var_resume, init, initEmbedded, ready, readyFailed, } from "./dom/resume";
15
15
  export { _assert_init } from "./dom/scope";
16
16
  export { _child_setup, _closure, _closure_get, _const, _el_read, _global_read, _for_closure, _for_selector, _hoist, _hoist_resume, _id, _if_closure, _let, _let_change, _or, _return, _return_change, _script, _var, _var_change, } from "./dom/signals";
package/dist/dom.js CHANGED
@@ -1,24 +1,24 @@
1
1
  "use strict";
2
- let require_control_flow = require("./dom-B8UEYzOz.js"), empty = [], rest = Symbol(), classIdToBranch = /* @__PURE__ */ new Map(), classEventResolver, scopesByRender = /* @__PURE__ */ new WeakMap(), getRenderScopes = ($global) => {
3
- require_control_flow.Tt($global.runtimeId);
2
+ let require_control_flow = require("./dom-Diu8MpmL.js"), empty = [], rest = Symbol(), classIdToBranch = /* @__PURE__ */ new Map(), classEventResolver, scopesByRender = /* @__PURE__ */ new WeakMap(), getRenderScopes = ($global) => {
3
+ require_control_flow.Et($global.runtimeId);
4
4
  let render = self[$global.runtimeId]?.[$global.renderId], scopes = render && scopesByRender.get(render);
5
5
  return render && !scopes && scopesByRender.set(render, scopes = {}), scopes;
6
6
  }, compat = {
7
7
  patchDynamicTag: require_control_flow.v,
8
- queueEffect: require_control_flow.sn,
8
+ queueEffect: require_control_flow.un,
9
9
  init(warp10Noop) {
10
- require_control_flow.St.$C_s = (scope) => {
10
+ require_control_flow.Ct.$C_s = (scope) => {
11
11
  if (getRenderScopes(scope.$)[scope.L] = scope, scope.m5c && classIdToBranch.set(scope.m5c, scope), classEventResolver) for (let key in scope) {
12
12
  let resolved = classEventResolver(scope[key], scope);
13
13
  resolved !== scope[key] && (scope[key] = resolved);
14
14
  }
15
- }, require_control_flow.St.$C_b = warp10Noop;
15
+ }, require_control_flow.Ct.$C_b = warp10Noop;
16
16
  },
17
17
  setClassEventResolver(fn) {
18
18
  classEventResolver = fn;
19
19
  },
20
20
  resumeClassFunction(id, build) {
21
- require_control_flow.St[id] = build;
21
+ require_control_flow.Ct[id] = build;
22
22
  },
23
23
  getScope($global, scopeId) {
24
24
  return getRenderScopes($global)?.[scopeId];
@@ -39,13 +39,13 @@ let require_control_flow = require("./dom-B8UEYzOz.js"), empty = [], rest = Symb
39
39
  branch.S = startNode, branch.K = endNode;
40
40
  },
41
41
  runComponentEffects() {
42
- this.effects && require_control_flow.dn(this.effects);
42
+ this.effects && require_control_flow.mn(this.effects);
43
43
  },
44
44
  runComponentDestroy() {
45
- this.scope && require_control_flow.Zt(this.scope);
45
+ this.scope && require_control_flow.Qt(this.scope);
46
46
  },
47
47
  resolveRegistered(value, $global) {
48
- return Array.isArray(value) && typeof value[0] == "string" ? require_control_flow.wt(value[0], getRenderScopes($global)?.[value[1]]) : value;
48
+ return Array.isArray(value) && typeof value[0] == "string" ? require_control_flow.Tt(value[0], getRenderScopes($global)?.[value[1]]) : value;
49
49
  },
50
50
  createRenderer(params, clone) {
51
51
  let renderer = require_control_flow.mt("", 0, 0, 0, params)();
@@ -55,20 +55,20 @@ let require_control_flow = require("./dom-B8UEYzOz.js"), empty = [], rest = Symb
55
55
  }, renderer;
56
56
  },
57
57
  render(out, component, renderer, args) {
58
- require_control_flow.Tt(out.global.runtimeId);
58
+ require_control_flow.Et(out.global.runtimeId);
59
59
  let branch = component.scope, created = 0;
60
60
  if (!branch && (branch = classIdToBranch.get(component.id)) && (component.scope = branch, classIdToBranch.delete(component.id)), args[0] && typeof args[0] == "object" && "renderBody" in args[0]) {
61
61
  let input = args[0], normalizedInput = args[0] = {};
62
62
  for (let key in input) normalizedInput[key === "renderBody" ? "content" : key] = input[key];
63
63
  }
64
64
  let renderBranch = () => {
65
- branch ||= (created = 1, component.scope = require_control_flow._t(out.global, renderer, renderer.e, document.body)), renderer.d?.(branch, renderer._ ? args[0] : args);
65
+ branch ||= (created = 1, component.scope = require_control_flow.vt(out.global, renderer, renderer.e, document.body)), renderer.d?.(branch, renderer._ ? args[0] : args);
66
66
  };
67
- if (component.effects = require_control_flow.ln ? renderBranch() : require_control_flow.an(renderBranch), created) return require_control_flow.pt(branch.S, branch.K);
67
+ if (component.effects = require_control_flow.fn ? renderBranch() : require_control_flow.cn(renderBranch), created) return require_control_flow.pt(branch.S, branch.K);
68
68
  }
69
69
  }, _template = (id, template, walks, setup, inputSignal) => {
70
70
  let renderer = require_control_flow.mt(id, template, walks, setup, inputSignal)();
71
- return renderer.mount = mount, renderer._ = renderer, require_control_flow.St[id] = renderer;
71
+ return renderer.mount = mount, renderer._ = renderer, require_control_flow.Ct[id] = renderer;
72
72
  }, noop = (_) => 0;
73
73
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
74
74
  //#region src/common/attr-tag.ts
@@ -105,25 +105,25 @@ function mount(input = {}, reference, position) {
105
105
  break;
106
106
  case "afterend": parentNode = reference.parentNode, nextSibling = reference.nextSibling;
107
107
  }
108
- let curValue, args = this.d, effects = require_control_flow.an(() => {
109
- branch = require_control_flow.vt($global, this, void 0, parentNode), branch.T = (newValue) => {
108
+ let curValue, args = this.d, effects = require_control_flow.cn(() => {
109
+ branch = require_control_flow.yt($global, this, void 0, parentNode), branch.T = (newValue) => {
110
110
  curValue = newValue;
111
111
  }, this.c?.(branch), args?.(branch, input);
112
112
  });
113
- return require_control_flow.ft(parentNode, nextSibling, branch.S, branch.K), require_control_flow.dn(effects), {
113
+ return require_control_flow.ft(parentNode, nextSibling, branch.S, branch.K), require_control_flow.mn(effects), {
114
114
  get value() {
115
115
  return curValue;
116
116
  },
117
117
  set value(newValue) {
118
- require_control_flow.Yt(branch, newValue);
118
+ require_control_flow.Xt(branch, newValue);
119
119
  },
120
120
  update(newInput = {}) {
121
- args && (newInput.$global && ({$global, ...newInput} = newInput), require_control_flow.dn(require_control_flow.an(() => {
121
+ args && (newInput.$global && ({$global, ...newInput} = newInput), require_control_flow.mn(require_control_flow.cn(() => {
122
122
  args(branch, newInput);
123
123
  })));
124
124
  },
125
125
  destroy() {
126
- require_control_flow.$t(branch);
126
+ require_control_flow.en(branch);
127
127
  }
128
128
  };
129
129
  }
@@ -133,7 +133,7 @@ function _load_template(id, load) {
133
133
  let pending, lazyTemplate = _template(id, 0, 0, (branch) => {
134
134
  let awaitCounter = require_control_flow.h(branch);
135
135
  branch.X ||= /* @__PURE__ */ new Map(), (pending ||= load()).then((renderer) => {
136
- Object.assign(lazyTemplate, renderer), require_control_flow.on(branch, (branch) => insertLoaded(renderer, branch, branch.S, awaitCounter));
136
+ Object.assign(lazyTemplate, renderer), require_control_flow.ln(branch, (branch) => insertLoaded(renderer, branch, branch.S, awaitCounter));
137
137
  }, loadFailed(branch, awaitCounter));
138
138
  }, _load_signal(() => (pending ||= load()).then((r) => ({ _: r.d || noop }))));
139
139
  return lazyTemplate;
@@ -141,37 +141,37 @@ function _load_template(id, load) {
141
141
  function _load_setup(load) {
142
142
  let pending, renderer, insertCached = (child, marker) => insertLoaded(renderer, child, marker);
143
143
  return (owner, child, marker) => {
144
- if (renderer) require_control_flow.cn(child, insertCached, -1, marker);
144
+ if (renderer) require_control_flow.dn(child, insertCached, -1, marker);
145
145
  else {
146
146
  let awaitCounter = require_control_flow.h(owner);
147
147
  child.X ||= /* @__PURE__ */ new Map(), (pending ||= load()).then((mod) => {
148
- renderer ||= require_control_flow.mt("", ...mod._)(), require_control_flow.on(child, (child) => insertLoaded(renderer, child, marker, awaitCounter));
148
+ renderer ||= require_control_flow.mt("", ...mod._)(), require_control_flow.ln(child, (child) => insertLoaded(renderer, child, marker, awaitCounter));
149
149
  }, loadFailed(child, awaitCounter));
150
150
  }
151
151
  };
152
152
  }
153
153
  function insertLoaded(renderer, branch, marker, awaitCounter) {
154
154
  let parent = () => marker.parentNode, values = branch.X, clone = () => {
155
- require_control_flow.en(branch), renderer.b(branch, parent().namespaceURI), branch.X = 0;
155
+ require_control_flow.tn(branch), renderer.b(branch, parent().namespaceURI), branch.X = 0;
156
156
  }, insert = () => {
157
- require_control_flow.Qt(branch, parent(), marker), marker.remove(), awaitCounter?.c();
157
+ require_control_flow.$t(branch, parent(), marker), marker.remove(), awaitCounter?.c();
158
158
  }, remaining;
159
159
  if (remaining = values?.size) {
160
160
  awaitCounter ||= require_control_flow.h(branch);
161
161
  let fail = loadFailed(branch, awaitCounter);
162
- values.forEach(([, apply], promise) => promise.then((mod) => (apply._ = mod._) && !--remaining && require_control_flow.on(branch, (branch) => {
162
+ values.forEach(([, apply], promise) => promise.then((mod) => (apply._ = mod._) && !--remaining && require_control_flow.ln(branch, (branch) => {
163
163
  clone(), renderer.c?.(branch), values.forEach(([value, apply]) => apply(branch, value)), insert();
164
164
  }), (error) => remaining > 0 && (remaining = 0, fail(error))));
165
- } else clone(), require_control_flow.yt(renderer, branch), insert();
165
+ } else clone(), require_control_flow.bt(renderer, branch), insert();
166
166
  }
167
167
  function loadFailed(scope, awaitCounter) {
168
168
  return (error) => {
169
- awaitCounter && (awaitCounter.m ? awaitCounter.i = 0 : awaitCounter.i && awaitCounter.c()), require_control_flow.on(scope, require_control_flow.y, error);
169
+ awaitCounter && (awaitCounter.m ? awaitCounter.i = 0 : awaitCounter.i && awaitCounter.c()), require_control_flow.ln(scope, require_control_flow.y, error);
170
170
  };
171
171
  }
172
172
  function _load_signal(load) {
173
173
  let pending, apply = (scope, value) => {
174
- pending ||= load(), scope.X || !("X" in scope) && scope.H === require_control_flow.fn ? (scope.X ||= /* @__PURE__ */ new Map()).set(pending, [value, apply]) : apply._ ? apply._(scope, value) : pending.then((mod) => require_control_flow.on(scope, apply._ = mod._, value), noop);
174
+ pending ||= load(), scope.X || !("X" in scope) && scope.H === require_control_flow.hn ? (scope.X ||= /* @__PURE__ */ new Map()).set(pending, [value, apply]) : apply._ ? apply._(scope, value) : pending.then((mod) => require_control_flow.ln(scope, apply._ = mod._, value), noop);
175
175
  };
176
176
  return apply;
177
177
  }
@@ -198,9 +198,9 @@ function _load_race_trigger(...triggers) {
198
198
  function getSelectorOrResolve(selector, resolve) {
199
199
  return document.querySelector(selector) || resolve();
200
200
  }
201
- exports.$signal = require_control_flow.nn, exports.$signalReset = require_control_flow.rn, exports._assert_class_toggles = require_control_flow._n, exports._assert_hoist = require_control_flow.vn, exports._assert_init = require_control_flow.Xt, exports._attr = require_control_flow.W, exports._attr_class = require_control_flow.G, exports._attr_class_item = require_control_flow.K, exports._attr_class_items = require_control_flow.q, exports._attr_class_names = require_control_flow.J, exports._attr_content = require_control_flow.Y, exports._attr_details_open = require_control_flow.x, exports._attr_dialog_open = require_control_flow.x, exports._attr_details_open_default = require_control_flow.S, exports._attr_dialog_open_default = require_control_flow.S, exports._attr_details_open_script = require_control_flow.C, exports._attr_dialog_open_script = require_control_flow.C, exports._attr_input_checked = require_control_flow.w, exports._attr_input_checkedValue = require_control_flow.T, exports._attr_input_checkedValue_default = require_control_flow.E, exports._attr_input_checkedValue_script = require_control_flow.D, exports._attr_input_checked_default = require_control_flow.O, exports._attr_input_checked_script = require_control_flow.k, exports._attr_input_value = require_control_flow.A, exports._attr_textarea_value = require_control_flow.A, exports._attr_input_value_attribute_default = require_control_flow.j, exports._attr_input_value_default = require_control_flow.M, exports._attr_textarea_value_default = require_control_flow.M, exports._attr_input_value_dynamic_default = require_control_flow.N, exports._attr_input_value_script = require_control_flow.P, exports._attr_textarea_value_script = require_control_flow.P, exports._attr_nonce = require_control_flow.X, exports._attr_select_value = require_control_flow.F, exports._attr_select_value_default = require_control_flow.I, exports._attr_select_value_script = require_control_flow.L, exports._attr_style = require_control_flow.Z, exports._attr_style_item = require_control_flow.Q, exports._attr_style_items = require_control_flow.$, exports._attrs = require_control_flow.et, exports._attrs_content = require_control_flow.tt, exports._attrs_partial = require_control_flow.nt, exports._attrs_partial_content = require_control_flow.rt, exports._attrs_script = require_control_flow.it, exports._await_content = require_control_flow.t, exports._await_promise = require_control_flow.n, exports._call = require_control_flow.bn, exports._child_setup = require_control_flow.At, exports._closure = require_control_flow.jt, exports._closure_get = require_control_flow.Mt, exports._const = require_control_flow.Nt, exports._content = require_control_flow.mt, exports._content_closures = require_control_flow.ht, exports._content_resume = require_control_flow.gt, exports._controllable_input = require_control_flow.R, exports._controllable_open = require_control_flow.z, exports._controllable_select = require_control_flow.B, exports._controllable_textarea = require_control_flow.V, Object.defineProperty(exports, "_dynamic_tag", {
201
+ exports.$signal = require_control_flow.rn, exports.$signalReset = require_control_flow.in, exports._assert_class_toggles = require_control_flow.bn, exports._assert_hoist = require_control_flow.xn, exports._assert_init = require_control_flow.Zt, exports._attr = require_control_flow.W, exports._attr_class = require_control_flow.G, exports._attr_class_item = require_control_flow.K, exports._attr_class_items = require_control_flow.q, exports._attr_class_names = require_control_flow.J, exports._attr_content = require_control_flow.Y, exports._attr_details_open = require_control_flow.x, exports._attr_dialog_open = require_control_flow.x, exports._attr_details_open_default = require_control_flow.S, exports._attr_dialog_open_default = require_control_flow.S, exports._attr_details_open_script = require_control_flow.C, exports._attr_dialog_open_script = require_control_flow.C, exports._attr_input_checked = require_control_flow.w, exports._attr_input_checkedValue = require_control_flow.T, exports._attr_input_checkedValue_default = require_control_flow.E, exports._attr_input_checkedValue_script = require_control_flow.D, exports._attr_input_checked_default = require_control_flow.O, exports._attr_input_checked_script = require_control_flow.k, exports._attr_input_value = require_control_flow.A, exports._attr_textarea_value = require_control_flow.A, exports._attr_input_value_attribute_default = require_control_flow.j, exports._attr_input_value_default = require_control_flow.M, exports._attr_textarea_value_default = require_control_flow.M, exports._attr_input_value_dynamic_default = require_control_flow.N, exports._attr_input_value_script = require_control_flow.P, exports._attr_textarea_value_script = require_control_flow.P, exports._attr_nonce = require_control_flow.X, exports._attr_select_value = require_control_flow.F, exports._attr_select_value_default = require_control_flow.I, exports._attr_select_value_script = require_control_flow.L, exports._attr_style = require_control_flow.Z, exports._attr_style_item = require_control_flow.Q, exports._attr_style_items = require_control_flow.$, exports._attrs = require_control_flow.et, exports._attrs_content = require_control_flow.tt, exports._attrs_partial = require_control_flow.nt, exports._attrs_partial_content = require_control_flow.rt, exports._attrs_script = require_control_flow.it, exports._await_content = require_control_flow.t, exports._await_promise = require_control_flow.n, exports._call = require_control_flow.Cn, exports._child_setup = require_control_flow.jt, exports._closure = require_control_flow.Mt, exports._closure_get = require_control_flow.Nt, exports._const = require_control_flow.Pt, exports._content = require_control_flow.mt, exports._content_closures = require_control_flow.ht, exports._content_resume = require_control_flow.gt, exports._controllable_input = require_control_flow.R, exports._controllable_open = require_control_flow.z, exports._controllable_select = require_control_flow.B, exports._controllable_textarea = require_control_flow.V, Object.defineProperty(exports, "_dynamic_tag", {
202
202
  enumerable: !0,
203
203
  get: function() {
204
204
  return require_control_flow.r;
205
205
  }
206
- }), exports._dynamic_tag_content = require_control_flow.i, exports._dynamic_tag_var_resume = require_control_flow.bt, exports._el = require_control_flow.xt, exports._el_read = require_control_flow.Pt, exports._for_closure = require_control_flow.Ft, exports._for_in = require_control_flow.a, exports._for_of = require_control_flow.o, exports._for_of_unkeyed = require_control_flow.s, exports._for_selector = require_control_flow.It, exports._for_to = require_control_flow.c, exports._for_to_unkeyed = require_control_flow.l, exports._for_until = require_control_flow.u, exports._for_until_unkeyed = require_control_flow.d, exports._global_read = require_control_flow.Lt, exports._hoist = require_control_flow.Rt, exports._hoist_read_error = require_control_flow.yn, exports._hoist_resume = require_control_flow.zt, exports._html = require_control_flow.at, exports._id = require_control_flow.Bt, exports._if = require_control_flow.f, exports._if_closure = require_control_flow.Vt, exports._let = require_control_flow.Ht, exports._let_change = require_control_flow.Ut, exports._lifecycle = require_control_flow.ot, exports._load_event_trigger = _load_event_trigger, exports._load_idle_trigger = _load_idle_trigger, exports._load_media_trigger = _load_media_trigger, exports._load_race_trigger = _load_race_trigger, exports._load_setup = _load_setup, exports._load_signal = _load_signal, exports._load_template = _load_template, exports._load_visible_trigger = _load_visible_trigger, exports._on = require_control_flow.tn, exports._or = require_control_flow.Wt, exports._resumed = require_control_flow.St, exports._return = require_control_flow.Gt, exports._return_change = require_control_flow.Kt, exports._script = require_control_flow.qt, exports._show = require_control_flow.p, exports._style_rule_item = require_control_flow.st, exports._style_shell = require_control_flow.ct, exports._template = _template, exports._text = require_control_flow.lt, exports._text_content = require_control_flow.ut, exports._to_text = require_control_flow.dt, exports._try = require_control_flow.m, exports._var = require_control_flow.Jt, exports._var_change = require_control_flow.Yt, exports._var_resume = require_control_flow.Ct, exports.attrTag = attrTag, exports.attrTags = attrTags, exports.compat = compat, exports.forIn = require_control_flow.pn, exports.forOf = require_control_flow.mn, exports.forTo = require_control_flow.hn, exports.forUntil = require_control_flow.gn, exports.init = require_control_flow.Tt, exports.initEmbedded = require_control_flow.Et, exports.ready = require_control_flow.Dt, exports.readyFailed = require_control_flow.Ot, exports.run = require_control_flow.un;
206
+ }), exports._dynamic_tag_content = require_control_flow.i, exports._dynamic_tag_var_resume = require_control_flow.xt, exports._el = require_control_flow.St, exports._el_read = require_control_flow.Ft, exports._for_closure = require_control_flow.It, exports._for_in = require_control_flow.a, exports._for_of = require_control_flow.o, exports._for_of_unkeyed = require_control_flow.s, exports._for_selector = require_control_flow.Lt, exports._for_to = require_control_flow.c, exports._for_to_unkeyed = require_control_flow.l, exports._for_until = require_control_flow.u, exports._for_until_unkeyed = require_control_flow.d, exports._global_read = require_control_flow.Rt, exports._hoist = require_control_flow.zt, exports._hoist_read_error = require_control_flow.Sn, exports._hoist_resume = require_control_flow.Bt, exports._html = require_control_flow.at, exports._id = require_control_flow.Vt, exports._if = require_control_flow.f, exports._if_closure = require_control_flow.Ht, exports._let = require_control_flow.Ut, exports._let_change = require_control_flow.Wt, exports._lifecycle = require_control_flow.ot, exports._load_event_trigger = _load_event_trigger, exports._load_idle_trigger = _load_idle_trigger, exports._load_media_trigger = _load_media_trigger, exports._load_race_trigger = _load_race_trigger, exports._load_setup = _load_setup, exports._load_signal = _load_signal, exports._load_template = _load_template, exports._load_visible_trigger = _load_visible_trigger, exports._on = require_control_flow.nn, exports._or = require_control_flow.Gt, exports._resumed = require_control_flow.Ct, exports._return = require_control_flow.Kt, exports._return_change = require_control_flow.qt, exports._return_setup = require_control_flow._t, exports._script = require_control_flow.Jt, exports._show = require_control_flow.p, exports._style_rule_item = require_control_flow.st, exports._style_shell = require_control_flow.ct, exports._template = _template, exports._text = require_control_flow.lt, exports._text_content = require_control_flow.ut, exports._to_text = require_control_flow.dt, exports._try = require_control_flow.m, exports._var = require_control_flow.Yt, exports._var_change = require_control_flow.Xt, exports._var_resume = require_control_flow.wt, exports.attrTag = attrTag, exports.attrTags = attrTags, exports.compat = compat, exports.forIn = require_control_flow.gn, exports.forOf = require_control_flow._n, exports.forTo = require_control_flow.vn, exports.forUntil = require_control_flow.yn, exports.init = require_control_flow.Et, exports.initEmbedded = require_control_flow.Dt, exports.ready = require_control_flow.Ot, exports.readyFailed = require_control_flow.kt, exports.run = require_control_flow.pn;
package/dist/dom.mjs CHANGED
@@ -69,7 +69,7 @@ let empty = [], rest = Symbol(), classIdToBranch = /* @__PURE__ */ new Map(), cl
69
69
  let renderer = _content(id, template, walks, setup, inputSignal)();
70
70
  return renderer.mount = mount, renderer._ = renderer, _resumed[id] = renderer;
71
71
  }, noop = (_) => 0;
72
- import { $ as _attr_style_items, $t as removeAndDestroyBranch, A as _attr_input_value, At as _child_setup, B as _controllable_select, Bt as _id, C as _attr_details_or_dialog_open_script, Ct as _var_resume, D as _attr_input_checkedValue_script, Dt as ready, E as _attr_input_checkedValue_default, Et as initEmbedded, F as _attr_select_value, Ft as _for_closure, G as _attr_class, Gt as _return, Ht as _let, I as _attr_select_value_default, It as _for_selector, J as _attr_class_names, Jt as _var, K as _attr_class_item, Kt as _return_change, L as _attr_select_value_script, Lt as _global_read, M as _attr_input_value_default, Mt as _closure_get, N as _attr_input_value_dynamic_default, Nt as _const, O as _attr_input_checked_default, Ot as readyFailed, P as _attr_input_value_script, Pt as _el_read, Q as _attr_style_item, Qt as insertBranchBefore, R as _controllable_input, Rt as _hoist, S as _attr_details_or_dialog_open_default, St as _resumed, T as _attr_input_checkedValue, Tt as init, Ut as _let_change, V as _controllable_textarea, Vt as _if_closure, W as _attr, Wt as _or, X as _attr_nonce, Xt as _assert_init, Y as _attr_content, Yt as _var_change, Z as _attr_style, Zt as destroyBranch, _n as _assert_class_toggles, _t as createAndSetupBranch, a as _for_in, an as prepareEffects, at as _html, bn as _call, bt as _dynamic_tag_var_resume, c as _for_to, cn as queueRender, ct as _style_shell, d as _for_until_unkeyed, dn as runEffects, dt as _to_text, en as syncGen, et as _attrs, f as _if, fn as runId, ft as insertChildNodes, gn as forUntil, gt as _content_resume, h as addAwaitCounter, hn as forTo, ht as _content_closures, i as _dynamic_tag_content, it as _attrs_script, j as _attr_input_value_attribute_default, jt as _closure, k as _attr_input_checked_script, l as _for_to_unkeyed, ln as rendering, lt as _text, m as _try, mn as forOf, mt as _content, n as _await_promise, nn as $signal, nt as _attrs_partial, o as _for_of, on as queueAsyncRender, ot as _lifecycle, p as _show, pn as forIn, pt as toInsertNode, q as _attr_class_items, qt as _script, r as _dynamic_tag, rn as $signalReset, rt as _attrs_partial_content, s as _for_of_unkeyed, sn as queueEffect, st as _style_rule_item, t as _await_content, tn as _on, tt as _attrs_content, u as _for_until, un as run, ut as _text_content, v as patchDynamicTag, vn as _assert_hoist, vt as createBranch, w as _attr_input_checked, wt as getRegisteredWithScope, x as _attr_details_or_dialog_open, xt as _el, y as renderCatch, yn as _hoist_read_error, yt as setupBranch, z as _controllable_open, zt as _hoist_resume } from "./dom-BPjLe6YU.mjs";
72
+ import { $ as _attr_style_items, $t as insertBranchBefore, A as _attr_input_value, B as _controllable_select, Bt as _hoist_resume, C as _attr_details_or_dialog_open_script, Cn as _call, Ct as _resumed, D as _attr_input_checkedValue_script, 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, 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, Mt as _closure, N as _attr_input_value_dynamic_default, Nt as _closure_get, O as _attr_input_checked_default, Ot as ready, P as _attr_input_value_script, Pt as _const, Q as _attr_style_item, Qt as destroyBranch, R as _controllable_input, Rt as _global_read, S as _attr_details_or_dialog_open_default, Sn as _hoist_read_error, St as _el, T as _attr_input_checkedValue, Tt as getRegisteredWithScope, Ut as _let, V as _controllable_textarea, 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 forOf, _t as _return_setup, a as _for_in, at as _html, bn as _assert_class_toggles, bt as setupBranch, c as _for_to, cn as prepareEffects, ct as _style_shell, d as _for_until_unkeyed, dn as queueRender, dt as _to_text, en as removeAndDestroyBranch, et as _attrs, f as _if, fn as rendering, ft as insertChildNodes, gn as forIn, gt as _content_resume, h as addAwaitCounter, hn as runId, ht as _content_closures, i as _dynamic_tag_content, in as $signalReset, it as _attrs_script, j as _attr_input_value_attribute_default, jt as _child_setup, k as _attr_input_checked_script, kt as readyFailed, l as _for_to_unkeyed, ln as queueAsyncRender, lt as _text, m as _try, mn as runEffects, mt as _content, n as _await_promise, nn as _on, nt as _attrs_partial, o as _for_of, ot as _lifecycle, p as _show, pn as run, pt as toInsertNode, q as _attr_class_items, qt as _return_change, r as _dynamic_tag, rn as $signal, 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 queueEffect, ut as _text_content, v as patchDynamicTag, vn as forTo, vt as createAndSetupBranch, w as _attr_input_checked, wt as _var_resume, x as _attr_details_or_dialog_open, xn as _assert_hoist, xt as _dynamic_tag_var_resume, y as renderCatch, yn as forUntil, yt as createBranch, z as _controllable_open, zt as _hoist } from "./dom-DefWmvQB.mjs";
73
73
  //#region src/common/attr-tag.ts
74
74
  function attrTag(attrs) {
75
75
  return attrs[Symbol.iterator] = attrTagIterator, attrs[rest] = empty, attrs;
@@ -198,4 +198,4 @@ function getSelectorOrResolve(selector, resolve) {
198
198
  return document.querySelector(selector) || resolve();
199
199
  }
200
200
  //#endregion
201
- 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, _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 };
201
+ 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 };
@@ -1,4 +1,4 @@
1
- import type { $Global, Template } from "../common/types";
1
+ import { type $Global, type Template } from "../common/types";
2
2
  import { type ServerRenderer } from "./template";
3
3
  import { type Boundary } from "./writer";
4
4
  declare const kAssets: unique symbol;
@@ -2,6 +2,7 @@ export declare function _to_text(val: unknown): string;
2
2
  export declare function _unescaped(val: unknown): string;
3
3
  export declare function _escape(val: unknown): string;
4
4
  export declare function _escape_script(val: unknown): string;
5
+ export declare const quoteScriptTemplateLiteral: (str: string) => string;
5
6
  export declare function _escape_style(val: unknown): string;
6
7
  export declare function _escape_style_value(val: unknown): string;
7
8
  export declare function _escape_comment(val: unknown): string;
@@ -5,7 +5,7 @@ interface BodyContentObject {
5
5
  [x: PropertyKey]: unknown;
6
6
  content: ServerRenderer;
7
7
  }
8
- export declare let _dynamic_tag: (scopeId: number, accessor: Accessor, tag: unknown | string | ServerRenderer | BodyContentObject, inputOrArgs: unknown, content?: (() => void) | 0, inputIsArgs?: 1, markerGuard?: 1 | 0) => unknown;
8
+ export declare let _dynamic_tag: (scopeId: number, accessor: Accessor, tag: unknown | string | ServerRenderer | BodyContentObject, inputOrArgs: unknown, content?: (() => void) | 0, inputIsArgs?: 1, markerGuard?: 1 | 0, tagVar?: 1) => unknown;
9
9
  export declare function _content(id: string, fn: ServerRenderer, scopeId?: number): ServerRenderer;
10
10
  export declare function _content_resume(id: string, fn: ServerRenderer, scopeId?: number, locals?: Locals): ServerRenderer;
11
11
  export declare const patchDynamicTag: (patch: (tag: unknown, scopeId: number, accessor: Accessor) => unknown) => void;
@@ -4,6 +4,7 @@ export type ServerRenderer = ((...args: unknown[]) => unknown) & {
4
4
  [RendererProp.Id]?: string;
5
5
  [RendererProp.Owner]?: number;
6
6
  [RendererProp.Embed]?: boolean;
7
+ [RendererProp.Lazy]?: 1;
7
8
  };
8
9
  export declare const _template: (templateId: string, renderer: ServerRenderer, page?: 1) => Template;
9
10
  export declare function startRender(template: Template & ServerRenderer, input: TemplateInput, StateClass: typeof State): RenderedTemplate;
@@ -152,7 +152,7 @@ export declare class Chunk {
152
152
  async: boolean;
153
153
  consumed: boolean;
154
154
  reorderId: string | null;
155
- reorderStart: string;
155
+ reorderBranch: number;
156
156
  deferredReady: Opt<Chunk>;
157
157
  heldEffects: Opt<Chunk>;
158
158
  deferredReorder: Chunk | null;
package/dist/html.js CHANGED
@@ -248,7 +248,7 @@ let empty = [], rest = Symbol(), unsafeStyleAttrReg = /[\\;]/g, replaceUnsafeSty
248
248
  }, unsafeQuoteReg = /["\\<\n\r\u2028\u2029\0\ud800-\udfff]/u, kSelectedValue = Symbol("selectedValue"), checkedValuesRefs = /* @__PURE__ */ new WeakMap(), singleQuoteAttrReplacements = /['\r]|&(?=[#a-zA-Z])/g, doubleQuoteAttrReplacements = /["\r]|&(?=[#a-zA-Z])/g, needsQuotedAttr = /["'>\s]|&[#a-zA-Z]|\/$/g, $chunk, kPendingContexts = Symbol("Pending Contexts"), kBranchId = Symbol("Branch Id"), kIsAsync = Symbol("Is Async"), writeScope = (scopeId, partialScope) => {
249
249
  let { state } = $chunk.boundary, target = $chunk.serializeState, scope = scopeWithId(state, scopeId), pending = target.writeScopes[scopeId];
250
250
  return state.needsMainRuntime = !0, countResumeWrite($chunk), Object.assign(scope, partialScope), pending && pending !== partialScope ? Object.assign(pending, partialScope) : target.writeScopes[scopeId] = partialScope, target.flushScopes = !0, scope;
251
- }, CLIENT_ALL = 715827883, NOOP$2 = () => {}, tick = globalThis.setImmediate || globalThis.setTimeout || globalThis.queueMicrotask || ((cb) => Promise.resolve().then(cb)), tickQueue, unsafeXMLReg = /[<&\r]/g, replaceUnsafeXML = (c) => c === "&" ? "&amp;" : c === "<" ? "&lt;" : "&#13;", escapeXMLStr = (str) => unsafeXMLReg.test(str) ? str.replace(unsafeXMLReg, replaceUnsafeXML) : str, unsafeScriptReg = /<(\/?script|!--)/gi, escapeScriptStr = (str) => unsafeScriptReg.test(str) ? str.replace(unsafeScriptReg, "\\x3C$1") : str, unsafeStyleReg = /<(\/style)/gi, escapeStyleStr = (str) => unsafeStyleReg.test(str) ? str.replace(unsafeStyleReg, "\\3C$1") : str, unsafeCommentReg = />/g, voidElementsReg = /^(?:area|b(?:ase|r)|col|embed|hr|i(?:mg|nput)|link|meta|param|source|track|wbr)$/, _dynamic_tag = (scopeId, accessor, tag, inputOrArgs, content, inputIsArgs, markerGuard) => {
251
+ }, CLIENT_ALL = 715827883, NOOP$2 = () => {}, tick = globalThis.setImmediate || globalThis.setTimeout || globalThis.queueMicrotask || ((cb) => Promise.resolve().then(cb)), tickQueue, unsafeXMLReg = /[<&\r]/g, replaceUnsafeXML = (c) => c === "&" ? "&amp;" : c === "<" ? "&lt;" : "&#13;", escapeXMLStr = (str) => unsafeXMLReg.test(str) ? str.replace(unsafeXMLReg, replaceUnsafeXML) : str, unsafeScriptReg = /<(\/?script|!--)/gi, escapeScriptStr = (str) => unsafeScriptReg.test(str) ? str.replace(unsafeScriptReg, "\\u003C$1") : str, unsafeScriptTemplateLiteralReg = /[`\\\r]|\$\{|<(?=\/?script|!--)/gi, replaceUnsafeScriptTemplateLiteral = (c) => c === "<" ? "\\x3C" : c === "\r" ? "\\r" : "\\" + c, quoteScriptTemplateLiteral = (str) => "`" + (unsafeScriptTemplateLiteralReg.test(str) ? str.replace(unsafeScriptTemplateLiteralReg, replaceUnsafeScriptTemplateLiteral) : str) + "`", unsafeStyleReg = /<(\/style)/gi, escapeStyleStr = (str) => unsafeStyleReg.test(str) ? str.replace(unsafeStyleReg, "\\3C$1") : str, unsafeCommentReg = />/g, voidElementsReg = /^(?:area|b(?:ase|r)|col|embed|hr|i(?:mg|nput)|link|meta|param|source|track|wbr)$/, _dynamic_tag = (scopeId, accessor, tag, inputOrArgs, content, inputIsArgs, markerGuard, tagVar) => {
252
252
  let shouldResume = markerGuard !== 0, renderer = normalizeDynamicRenderer(tag), state = getState(), branchId = _peek_scope_id(), rendered, result;
253
253
  if (typeof renderer == "string") {
254
254
  let input = (inputIsArgs ? inputOrArgs[0] : inputOrArgs) || {};
@@ -268,22 +268,22 @@ let empty = [], rest = Symbol(), unsafeStyleAttrReg = /[\\;]/g, replaceUnsafeSty
268
268
  } else {
269
269
  let chunk = getChunk(), beforeBranch = shouldResume ? deferBranchStart(chunk) : void 0, render = () => {
270
270
  if (renderer) try {
271
- return _set_scope_reason(shouldResume && inputOrArgs !== void 0 ? CLIENT_ALL : 0), inputIsArgs ? renderer(...inputOrArgs) : renderer(content ? {
271
+ return _set_scope_reason(shouldResume ? CLIENT_ALL : 0), inputIsArgs ? renderer(...inputOrArgs) : renderer(content ? {
272
272
  ...inputOrArgs,
273
273
  content
274
274
  } : inputOrArgs);
275
275
  } finally {
276
276
  _set_scope_reason(void 0);
277
277
  }
278
- else if (content) return content();
278
+ else content && content();
279
279
  };
280
- result = shouldResume ? withBranchId(branchId, render) : render(), rendered = _peek_scope_id() !== branchId, beforeBranch !== void 0 && (applyBranchStart(chunk, beforeBranch, rendered), _html(state.mark("]", scopeId + " " + accessor + (rendered ? " " + branchId : ""))));
280
+ result = shouldResume ? withBranchId(branchId, render) : render(), rendered = _peek_scope_id() !== branchId, beforeBranch !== void 0 && (applyBranchStart(chunk, beforeBranch, rendered), _html(state.mark("]", scopeId + " " + accessor + (rendered ? " " + branchId : ""))), renderer && _existing_scope(branchId));
281
281
  }
282
282
  return rendered ? shouldResume && writeScope(scopeId, { ["D" + accessor]: rendererKey(renderer) }) : _scope_id(), result;
283
283
  }, patchDynamicTag = /* @__PURE__ */ ((originalDynamicTag) => (patch) => {
284
- _dynamic_tag = (scopeId, accessor, tag, input, content, inputIsArgs, resume) => {
284
+ _dynamic_tag = (scopeId, accessor, tag, input, content, inputIsArgs, resume, tagVar) => {
285
285
  let patched = patch(tag, scopeId, accessor);
286
- return patched !== tag && (patched.a = tag), originalDynamicTag(scopeId, accessor, patched, input, content, inputIsArgs, resume);
286
+ return patched !== tag && (patched.a = tag), originalDynamicTag(scopeId, accessor, patched, input, content, inputIsArgs, resume, tagVar);
287
287
  };
288
288
  })(_dynamic_tag), CONSUMED_RESULT_MESSAGE = "Cannot read from a consumed render result", _template = (templateId, renderer, page) => (renderer.render = render, renderer.i = !page, renderer._ = renderer, _content_resume(templateId, renderer)), kAssets = Symbol(), kHead = Symbol(), SET_SCOPE_REGISTER_ID = "$C_s", RENDER_BODY_ID = "$C_b", K_TAGS_API_STATE = Symbol(), COMPAT_REGISTRY = /* @__PURE__ */ new WeakMap(), compat = {
289
289
  $global,
@@ -1588,7 +1588,12 @@ function _resume_branch(scopeId) {
1588
1588
  }
1589
1589
  function _attr_content(nodeAccessor, scopeId, content, markerGuard) {
1590
1590
  let shouldResume = markerGuard !== 0, render = normalizeServerRender(content), branchId = _peek_scope_id();
1591
- render && (shouldResume ? withBranchId(branchId, render) : render()), _peek_scope_id() === branchId ? _scope_id() : shouldResume && writeScope(scopeId, {
1591
+ if (render) try {
1592
+ _set_scope_reason(shouldResume ? CLIENT_ALL : 0), shouldResume ? withBranchId(branchId, render) : render();
1593
+ } finally {
1594
+ _set_scope_reason(void 0);
1595
+ }
1596
+ _peek_scope_id() === branchId ? _scope_id() : shouldResume && writeScope(scopeId, {
1592
1597
  ["A" + nodeAccessor]: writeScope(branchId, {}),
1593
1598
  ["D" + nodeAccessor]: rendererKey(render)
1594
1599
  });
@@ -1796,7 +1801,7 @@ function tryBoundary(content, catchContent, branchId, renderers) {
1796
1801
  chunk.catchRange = null, renderersAtSettle || catchChunk.render(clearTryRenderers, branchId);
1797
1802
  let inOrder = catchChunk === catchChunk.render(catchContent, catchBoundary.reason);
1798
1803
  if (boundary.aborted) return;
1799
- if ((bodyEnd.consumed || !inOrder) && (catchChunk.reorderStart = state.mark("*", branchId + "")), bodyEnd.consumed) catchChunk.reorderId = reorderId, state.reorder(catchChunk);
1804
+ if ((bodyEnd.consumed || !inOrder) && (catchChunk.reorderBranch = branchId), bodyEnd.consumed) catchChunk.reorderId = reorderId, state.reorder(catchChunk);
1800
1805
  else {
1801
1806
  let reorder = null;
1802
1807
  inOrder ? streamed && (reorder = chunk.fork(boundary, null)) : reorder = catchChunk, reorder && (reorder.reorderId = reorderId);
@@ -1942,7 +1947,7 @@ var State = class {
1942
1947
  async = !1;
1943
1948
  consumed = !1;
1944
1949
  reorderId = null;
1945
- reorderStart = "";
1950
+ reorderBranch = 0;
1946
1951
  deferredReady = null;
1947
1952
  heldEffects = null;
1948
1953
  deferredReorder = null;
@@ -2083,15 +2088,20 @@ var State = class {
2083
2088
  if (state.writeReorders) {
2084
2089
  for (let reorderedChunk of state.writeReorders) {
2085
2090
  needsWalk = !0, state.hasReorderRuntime || (state.hasReorderRuntime = !0, scripts = concatScripts(scripts, "(e=>{if(e.j)return;let i,l,r,t=e.p={},c=(i,l)=>e.l[i].replaceWith(...l.childNodes);e.j={},e.x=(n,a,d,o,g)=>{d==r&&i(),\"#\"==n?(t[a]=l).i++:\"T\"==d.tagName&&(a=d.getAttribute(e.i))&&(r=d.nextSibling,i=()=>{d.remove(),o||c(a,d),l.c()},l=t[a]||(o=t[a]={i:1,r:a,c(i=e.l[\"^\"+a],f=d.cloneNode()){if(--o.i)return 1;for(;f.prepend(r=e.l[a].previousSibling||i),i!=r;);c(a,d)}}),e.v.push({data:e.i+\"*\"+l.r}),(n=e.j[a])&&(g=l.c,l.c=()=>g()||n(e.r)))}})(" + runtimePrefix + ")"));
2086
- let { reorderId, reorderStart } = reorderedChunk, readyReservations = [], reorderHTML = "", reorderEffects = "", effectsBoundary = reorderedChunk.boundary, reorderScripts = "", cur = reorderedChunk.boundary.aborted ? null : reorderedChunk;
2091
+ let { reorderId, reorderBranch } = reorderedChunk, rootBranch = reorderBranch || +reorderId, readyReservations = [], reorderHTML = "", reorderEffects = "", effectsBoundary = reorderedChunk.boundary, reorderScripts = "", cur = reorderedChunk.boundary.aborted ? null : reorderedChunk;
2087
2092
  for (reorderedChunk.reorderId = null; cur;) {
2088
2093
  cur.markCatchRange(), cur.queueDeferredReorder(), cur.deferOwnReady();
2089
2094
  let { next } = cur, readyResumeScripts = cur.flushReadyScripts(boundary, readyReservations, this.async);
2090
- this.deferredReady = concat(this.deferredReady, cur.takeDeferredReady()), cur.consumed = !0, reorderHTML += cur.html, this.async && cur.effects && cur.boundary !== effectsBoundary && (reorderEffects &&= (holdReorderEffects(this, effectsBoundary, reorderEffects), ""), effectsBoundary = cur.boundary), reorderEffects = concatEffects(reorderEffects, cur.effects), reorderScripts = concatScripts(reorderScripts, concatScripts(readyResumeScripts, cur.scripts)), cur.async && (reorderHTML += state.mark("#", cur.reorderId = state.nextReorderId()), cur.reorderStart = reorderStart, (cur.boundary.pendingReorders ||= /* @__PURE__ */ new Set()).add(cur), cur.html = cur.effects = cur.scripts = cur.lastEffect = "", cur.next = null), cur = next;
2095
+ if (this.deferredReady = concat(this.deferredReady, cur.takeDeferredReady()), cur.consumed = !0, reorderHTML += cur.html, this.async && cur.effects && cur.boundary !== effectsBoundary && (reorderEffects &&= (holdReorderEffects(this, effectsBoundary, reorderEffects), ""), effectsBoundary = cur.boundary), reorderEffects = concatEffects(reorderEffects, cur.effects), reorderScripts = concatScripts(reorderScripts, concatScripts(readyResumeScripts, cur.scripts)), cur.async) {
2096
+ reorderHTML += state.mark("#", cur.reorderId = state.nextReorderId());
2097
+ let holeBranch = cur.context?.[kBranchId];
2098
+ cur.reorderBranch = holeBranch > rootBranch ? holeBranch : reorderBranch, (cur.boundary.pendingReorders ||= /* @__PURE__ */ new Set()).add(cur), cur.html = cur.effects = cur.scripts = cur.lastEffect = "", cur.next = null;
2099
+ }
2100
+ cur = next;
2091
2101
  }
2092
2102
  reorderEffects && (this.async ? holdReorderEffects(this, effectsBoundary, reorderEffects) : (needsResumeArray = !0, reorderScripts = concatScripts(reorderScripts, "_.push(\"" + reorderEffects + "\")")));
2093
2103
  for (let reservation of readyReservations) reordered = concatScripts(reordered, reservation);
2094
- reordered = concatScripts(reordered, reorderScripts && runtimePrefix + ".j" + toAccess(reorderId) + "=_=>{" + reorderScripts + "}"), html += "<t hidden " + state.commentPrefix + "=" + reorderId + ">" + reorderStart + reorderHTML + "</t>";
2104
+ reordered = concatScripts(reordered, reorderScripts && runtimePrefix + ".j" + toAccess(reorderId) + "=_=>{" + reorderScripts + "}"), html += "<t hidden " + state.commentPrefix + "=" + reorderId + ">" + (reorderBranch ? state.mark("*", reorderBranch + "") : "") + reorderHTML + "</t>";
2095
2105
  }
2096
2106
  state.writeReorders = null;
2097
2107
  }
@@ -2446,7 +2456,7 @@ function NOOP$1() {}
2446
2456
  //#endregion
2447
2457
  //#region src/html/assets.ts
2448
2458
  function withLoadAssets(renderer, flush, assetId, triggers) {
2449
- return Object.assign((input) => (writeLoadAsset(assetId, flush, triggers), writeWaitReady(assetId, renderer, input)), renderer);
2459
+ return register(renderer.a, Object.assign((input) => (writeLoadAsset(assetId, flush, triggers), writeWaitReady(assetId, renderer, input)), renderer));
2450
2460
  }
2451
2461
  function writeLoadAsset(assetId, flush, triggers) {
2452
2462
  let g = $global();
@@ -2475,7 +2485,7 @@ function takeAssets(g, at) {
2475
2485
  function writeAsset(g, asset) {
2476
2486
  if (needsWrite(asset.htmlAt) && (asset.htmlAt = void 0, g[kHead] || g.__flush__ !== flushPage)) {
2477
2487
  let block = blockHTML(g, asset);
2478
- _html(block + (asset.triggers ? "" : deferHTML(g, asset))), block && isInResumedBranch() && writeScript(`document.head.insertAdjacentHTML("beforeend",${_escape_script(JSON.stringify(block))})`), asset.htmlAt = catchableBoundary();
2488
+ _html(block + (asset.triggers ? "" : deferHTML(g, asset))), block && isInResumedBranch() && writeScript(`document.head.insertAdjacentHTML("beforeend",${quoteScriptTemplateLiteral(block)})`), asset.htmlAt = catchableBoundary();
2479
2489
  }
2480
2490
  if (asset.triggers && needsWrite(asset.scriptAt)) {
2481
2491
  let defer = deferHTML(g, asset);
@@ -2505,7 +2515,7 @@ function addAsset(g, id, flush, triggers) {
2505
2515
  }), asset;
2506
2516
  }
2507
2517
  function triggerScript(id, html, triggers) {
2508
- let htmlStr = _escape_script(JSON.stringify(html)), exprs = triggers.map((trigger) => {
2518
+ let htmlStr = quoteScriptTemplateLiteral(html), exprs = triggers.map((trigger) => {
2509
2519
  let options = trigger.options && toObjectExpression(trigger.options);
2510
2520
  switch (trigger.type) {
2511
2521
  case "visible": return `(e=>e&&new IntersectionObserver((e,i)=>e.some(e=>e.isIntersecting)&&i.disconnect()+l()${options ? `,${options}` : ""}).observe(e))(${querySelectorOrLoad(trigger.selector)})`;
package/dist/html.mjs CHANGED
@@ -247,7 +247,7 @@ let empty = [], rest = Symbol(), unsafeStyleAttrReg = /[\\;]/g, replaceUnsafeSty
247
247
  }, unsafeQuoteReg = /["\\<\n\r\u2028\u2029\0\ud800-\udfff]/u, kSelectedValue = Symbol("selectedValue"), checkedValuesRefs = /* @__PURE__ */ new WeakMap(), singleQuoteAttrReplacements = /['\r]|&(?=[#a-zA-Z])/g, doubleQuoteAttrReplacements = /["\r]|&(?=[#a-zA-Z])/g, needsQuotedAttr = /["'>\s]|&[#a-zA-Z]|\/$/g, $chunk, kPendingContexts = Symbol("Pending Contexts"), kBranchId = Symbol("Branch Id"), kIsAsync = Symbol("Is Async"), writeScope = (scopeId, partialScope) => {
248
248
  let { state } = $chunk.boundary, target = $chunk.serializeState, scope = scopeWithId(state, scopeId), pending = target.writeScopes[scopeId];
249
249
  return state.needsMainRuntime = !0, countResumeWrite($chunk), Object.assign(scope, partialScope), pending && pending !== partialScope ? Object.assign(pending, partialScope) : target.writeScopes[scopeId] = partialScope, target.flushScopes = !0, scope;
250
- }, CLIENT_ALL = 715827883, NOOP$2 = () => {}, tick = globalThis.setImmediate || globalThis.setTimeout || globalThis.queueMicrotask || ((cb) => Promise.resolve().then(cb)), tickQueue, unsafeXMLReg = /[<&\r]/g, replaceUnsafeXML = (c) => c === "&" ? "&amp;" : c === "<" ? "&lt;" : "&#13;", escapeXMLStr = (str) => unsafeXMLReg.test(str) ? str.replace(unsafeXMLReg, replaceUnsafeXML) : str, unsafeScriptReg = /<(\/?script|!--)/gi, escapeScriptStr = (str) => unsafeScriptReg.test(str) ? str.replace(unsafeScriptReg, "\\x3C$1") : str, unsafeStyleReg = /<(\/style)/gi, escapeStyleStr = (str) => unsafeStyleReg.test(str) ? str.replace(unsafeStyleReg, "\\3C$1") : str, unsafeCommentReg = />/g, voidElementsReg = /^(?:area|b(?:ase|r)|col|embed|hr|i(?:mg|nput)|link|meta|param|source|track|wbr)$/, _dynamic_tag = (scopeId, accessor, tag, inputOrArgs, content, inputIsArgs, markerGuard) => {
250
+ }, CLIENT_ALL = 715827883, NOOP$2 = () => {}, tick = globalThis.setImmediate || globalThis.setTimeout || globalThis.queueMicrotask || ((cb) => Promise.resolve().then(cb)), tickQueue, unsafeXMLReg = /[<&\r]/g, replaceUnsafeXML = (c) => c === "&" ? "&amp;" : c === "<" ? "&lt;" : "&#13;", escapeXMLStr = (str) => unsafeXMLReg.test(str) ? str.replace(unsafeXMLReg, replaceUnsafeXML) : str, unsafeScriptReg = /<(\/?script|!--)/gi, escapeScriptStr = (str) => unsafeScriptReg.test(str) ? str.replace(unsafeScriptReg, "\\u003C$1") : str, unsafeScriptTemplateLiteralReg = /[`\\\r]|\$\{|<(?=\/?script|!--)/gi, replaceUnsafeScriptTemplateLiteral = (c) => c === "<" ? "\\x3C" : c === "\r" ? "\\r" : "\\" + c, quoteScriptTemplateLiteral = (str) => "`" + (unsafeScriptTemplateLiteralReg.test(str) ? str.replace(unsafeScriptTemplateLiteralReg, replaceUnsafeScriptTemplateLiteral) : str) + "`", unsafeStyleReg = /<(\/style)/gi, escapeStyleStr = (str) => unsafeStyleReg.test(str) ? str.replace(unsafeStyleReg, "\\3C$1") : str, unsafeCommentReg = />/g, voidElementsReg = /^(?:area|b(?:ase|r)|col|embed|hr|i(?:mg|nput)|link|meta|param|source|track|wbr)$/, _dynamic_tag = (scopeId, accessor, tag, inputOrArgs, content, inputIsArgs, markerGuard, tagVar) => {
251
251
  let shouldResume = markerGuard !== 0, renderer = normalizeDynamicRenderer(tag), state = getState(), branchId = _peek_scope_id(), rendered, result;
252
252
  if (typeof renderer == "string") {
253
253
  let input = (inputIsArgs ? inputOrArgs[0] : inputOrArgs) || {};
@@ -267,22 +267,22 @@ let empty = [], rest = Symbol(), unsafeStyleAttrReg = /[\\;]/g, replaceUnsafeSty
267
267
  } else {
268
268
  let chunk = getChunk(), beforeBranch = shouldResume ? deferBranchStart(chunk) : void 0, render = () => {
269
269
  if (renderer) try {
270
- return _set_scope_reason(shouldResume && inputOrArgs !== void 0 ? CLIENT_ALL : 0), inputIsArgs ? renderer(...inputOrArgs) : renderer(content ? {
270
+ return _set_scope_reason(shouldResume ? CLIENT_ALL : 0), inputIsArgs ? renderer(...inputOrArgs) : renderer(content ? {
271
271
  ...inputOrArgs,
272
272
  content
273
273
  } : inputOrArgs);
274
274
  } finally {
275
275
  _set_scope_reason(void 0);
276
276
  }
277
- else if (content) return content();
277
+ else content && content();
278
278
  };
279
- result = shouldResume ? withBranchId(branchId, render) : render(), rendered = _peek_scope_id() !== branchId, beforeBranch !== void 0 && (applyBranchStart(chunk, beforeBranch, rendered), _html(state.mark("]", scopeId + " " + accessor + (rendered ? " " + branchId : ""))));
279
+ result = shouldResume ? withBranchId(branchId, render) : render(), rendered = _peek_scope_id() !== branchId, beforeBranch !== void 0 && (applyBranchStart(chunk, beforeBranch, rendered), _html(state.mark("]", scopeId + " " + accessor + (rendered ? " " + branchId : ""))), renderer && _existing_scope(branchId));
280
280
  }
281
281
  return rendered ? shouldResume && writeScope(scopeId, { ["D" + accessor]: rendererKey(renderer) }) : _scope_id(), result;
282
282
  }, patchDynamicTag = /* @__PURE__ */ ((originalDynamicTag) => (patch) => {
283
- _dynamic_tag = (scopeId, accessor, tag, input, content, inputIsArgs, resume) => {
283
+ _dynamic_tag = (scopeId, accessor, tag, input, content, inputIsArgs, resume, tagVar) => {
284
284
  let patched = patch(tag, scopeId, accessor);
285
- return patched !== tag && (patched.a = tag), originalDynamicTag(scopeId, accessor, patched, input, content, inputIsArgs, resume);
285
+ return patched !== tag && (patched.a = tag), originalDynamicTag(scopeId, accessor, patched, input, content, inputIsArgs, resume, tagVar);
286
286
  };
287
287
  })(_dynamic_tag), CONSUMED_RESULT_MESSAGE = "Cannot read from a consumed render result", _template = (templateId, renderer, page) => (renderer.render = render, renderer.i = !page, renderer._ = renderer, _content_resume(templateId, renderer)), kAssets = Symbol(), kHead = Symbol(), SET_SCOPE_REGISTER_ID = "$C_s", RENDER_BODY_ID = "$C_b", K_TAGS_API_STATE = Symbol(), COMPAT_REGISTRY = /* @__PURE__ */ new WeakMap(), compat = {
288
288
  $global,
@@ -1586,7 +1586,12 @@ function _resume_branch(scopeId) {
1586
1586
  }
1587
1587
  function _attr_content(nodeAccessor, scopeId, content, markerGuard) {
1588
1588
  let shouldResume = markerGuard !== 0, render = normalizeServerRender(content), branchId = _peek_scope_id();
1589
- render && (shouldResume ? withBranchId(branchId, render) : render()), _peek_scope_id() === branchId ? _scope_id() : shouldResume && writeScope(scopeId, {
1589
+ if (render) try {
1590
+ _set_scope_reason(shouldResume ? CLIENT_ALL : 0), shouldResume ? withBranchId(branchId, render) : render();
1591
+ } finally {
1592
+ _set_scope_reason(void 0);
1593
+ }
1594
+ _peek_scope_id() === branchId ? _scope_id() : shouldResume && writeScope(scopeId, {
1590
1595
  ["A" + nodeAccessor]: writeScope(branchId, {}),
1591
1596
  ["D" + nodeAccessor]: rendererKey(render)
1592
1597
  });
@@ -1794,7 +1799,7 @@ function tryBoundary(content, catchContent, branchId, renderers) {
1794
1799
  chunk.catchRange = null, renderersAtSettle || catchChunk.render(clearTryRenderers, branchId);
1795
1800
  let inOrder = catchChunk === catchChunk.render(catchContent, catchBoundary.reason);
1796
1801
  if (boundary.aborted) return;
1797
- if ((bodyEnd.consumed || !inOrder) && (catchChunk.reorderStart = state.mark("*", branchId + "")), bodyEnd.consumed) catchChunk.reorderId = reorderId, state.reorder(catchChunk);
1802
+ if ((bodyEnd.consumed || !inOrder) && (catchChunk.reorderBranch = branchId), bodyEnd.consumed) catchChunk.reorderId = reorderId, state.reorder(catchChunk);
1798
1803
  else {
1799
1804
  let reorder = null;
1800
1805
  inOrder ? streamed && (reorder = chunk.fork(boundary, null)) : reorder = catchChunk, reorder && (reorder.reorderId = reorderId);
@@ -1940,7 +1945,7 @@ var State = class {
1940
1945
  async = !1;
1941
1946
  consumed = !1;
1942
1947
  reorderId = null;
1943
- reorderStart = "";
1948
+ reorderBranch = 0;
1944
1949
  deferredReady = null;
1945
1950
  heldEffects = null;
1946
1951
  deferredReorder = null;
@@ -2081,15 +2086,20 @@ var State = class {
2081
2086
  if (state.writeReorders) {
2082
2087
  for (let reorderedChunk of state.writeReorders) {
2083
2088
  needsWalk = !0, state.hasReorderRuntime || (state.hasReorderRuntime = !0, scripts = concatScripts(scripts, "(e=>{if(e.j)return;let i,l,r,t=e.p={},c=(i,l)=>e.l[i].replaceWith(...l.childNodes);e.j={},e.x=(n,a,d,o,g)=>{d==r&&i(),\"#\"==n?(t[a]=l).i++:\"T\"==d.tagName&&(a=d.getAttribute(e.i))&&(r=d.nextSibling,i=()=>{d.remove(),o||c(a,d),l.c()},l=t[a]||(o=t[a]={i:1,r:a,c(i=e.l[\"^\"+a],f=d.cloneNode()){if(--o.i)return 1;for(;f.prepend(r=e.l[a].previousSibling||i),i!=r;);c(a,d)}}),e.v.push({data:e.i+\"*\"+l.r}),(n=e.j[a])&&(g=l.c,l.c=()=>g()||n(e.r)))}})(" + runtimePrefix + ")"));
2084
- let { reorderId, reorderStart } = reorderedChunk, readyReservations = [], reorderHTML = "", reorderEffects = "", effectsBoundary = reorderedChunk.boundary, reorderScripts = "", cur = reorderedChunk.boundary.aborted ? null : reorderedChunk;
2089
+ let { reorderId, reorderBranch } = reorderedChunk, rootBranch = reorderBranch || +reorderId, readyReservations = [], reorderHTML = "", reorderEffects = "", effectsBoundary = reorderedChunk.boundary, reorderScripts = "", cur = reorderedChunk.boundary.aborted ? null : reorderedChunk;
2085
2090
  for (reorderedChunk.reorderId = null; cur;) {
2086
2091
  cur.markCatchRange(), cur.queueDeferredReorder(), cur.deferOwnReady();
2087
2092
  let { next } = cur, readyResumeScripts = cur.flushReadyScripts(boundary, readyReservations, this.async);
2088
- this.deferredReady = concat(this.deferredReady, cur.takeDeferredReady()), cur.consumed = !0, reorderHTML += cur.html, this.async && cur.effects && cur.boundary !== effectsBoundary && (reorderEffects &&= (holdReorderEffects(this, effectsBoundary, reorderEffects), ""), effectsBoundary = cur.boundary), reorderEffects = concatEffects(reorderEffects, cur.effects), reorderScripts = concatScripts(reorderScripts, concatScripts(readyResumeScripts, cur.scripts)), cur.async && (reorderHTML += state.mark("#", cur.reorderId = state.nextReorderId()), cur.reorderStart = reorderStart, (cur.boundary.pendingReorders ||= /* @__PURE__ */ new Set()).add(cur), cur.html = cur.effects = cur.scripts = cur.lastEffect = "", cur.next = null), cur = next;
2093
+ if (this.deferredReady = concat(this.deferredReady, cur.takeDeferredReady()), cur.consumed = !0, reorderHTML += cur.html, this.async && cur.effects && cur.boundary !== effectsBoundary && (reorderEffects &&= (holdReorderEffects(this, effectsBoundary, reorderEffects), ""), effectsBoundary = cur.boundary), reorderEffects = concatEffects(reorderEffects, cur.effects), reorderScripts = concatScripts(reorderScripts, concatScripts(readyResumeScripts, cur.scripts)), cur.async) {
2094
+ reorderHTML += state.mark("#", cur.reorderId = state.nextReorderId());
2095
+ let holeBranch = cur.context?.[kBranchId];
2096
+ cur.reorderBranch = holeBranch > rootBranch ? holeBranch : reorderBranch, (cur.boundary.pendingReorders ||= /* @__PURE__ */ new Set()).add(cur), cur.html = cur.effects = cur.scripts = cur.lastEffect = "", cur.next = null;
2097
+ }
2098
+ cur = next;
2089
2099
  }
2090
2100
  reorderEffects && (this.async ? holdReorderEffects(this, effectsBoundary, reorderEffects) : (needsResumeArray = !0, reorderScripts = concatScripts(reorderScripts, "_.push(\"" + reorderEffects + "\")")));
2091
2101
  for (let reservation of readyReservations) reordered = concatScripts(reordered, reservation);
2092
- reordered = concatScripts(reordered, reorderScripts && runtimePrefix + ".j" + toAccess(reorderId) + "=_=>{" + reorderScripts + "}"), html += "<t hidden " + state.commentPrefix + "=" + reorderId + ">" + reorderStart + reorderHTML + "</t>";
2102
+ reordered = concatScripts(reordered, reorderScripts && runtimePrefix + ".j" + toAccess(reorderId) + "=_=>{" + reorderScripts + "}"), html += "<t hidden " + state.commentPrefix + "=" + reorderId + ">" + (reorderBranch ? state.mark("*", reorderBranch + "") : "") + reorderHTML + "</t>";
2093
2103
  }
2094
2104
  state.writeReorders = null;
2095
2105
  }
@@ -2444,7 +2454,7 @@ function NOOP$1() {}
2444
2454
  //#endregion
2445
2455
  //#region src/html/assets.ts
2446
2456
  function withLoadAssets(renderer, flush, assetId, triggers) {
2447
- return Object.assign((input) => (writeLoadAsset(assetId, flush, triggers), writeWaitReady(assetId, renderer, input)), renderer);
2457
+ return register(renderer.a, Object.assign((input) => (writeLoadAsset(assetId, flush, triggers), writeWaitReady(assetId, renderer, input)), renderer));
2448
2458
  }
2449
2459
  function writeLoadAsset(assetId, flush, triggers) {
2450
2460
  let g = $global();
@@ -2473,7 +2483,7 @@ function takeAssets(g, at) {
2473
2483
  function writeAsset(g, asset) {
2474
2484
  if (needsWrite(asset.htmlAt) && (asset.htmlAt = void 0, g[kHead] || g.__flush__ !== flushPage)) {
2475
2485
  let block = blockHTML(g, asset);
2476
- _html(block + (asset.triggers ? "" : deferHTML(g, asset))), block && isInResumedBranch() && writeScript(`document.head.insertAdjacentHTML("beforeend",${_escape_script(JSON.stringify(block))})`), asset.htmlAt = catchableBoundary();
2486
+ _html(block + (asset.triggers ? "" : deferHTML(g, asset))), block && isInResumedBranch() && writeScript(`document.head.insertAdjacentHTML("beforeend",${quoteScriptTemplateLiteral(block)})`), asset.htmlAt = catchableBoundary();
2477
2487
  }
2478
2488
  if (asset.triggers && needsWrite(asset.scriptAt)) {
2479
2489
  let defer = deferHTML(g, asset);
@@ -2503,7 +2513,7 @@ function addAsset(g, id, flush, triggers) {
2503
2513
  }), asset;
2504
2514
  }
2505
2515
  function triggerScript(id, html, triggers) {
2506
- let htmlStr = _escape_script(JSON.stringify(html)), exprs = triggers.map((trigger) => {
2516
+ let htmlStr = quoteScriptTemplateLiteral(html), exprs = triggers.map((trigger) => {
2507
2517
  let options = trigger.options && toObjectExpression(trigger.options);
2508
2518
  switch (trigger.type) {
2509
2519
  case "visible": return `(e=>e&&new IntersectionObserver((e,i)=>e.some(e=>e.isIntersecting)&&i.disconnect()+l()${options ? `,${options}` : ""}).observe(e))(${querySelectorOrLoad(trigger.selector)})`;