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/dist/dom.d.ts CHANGED
@@ -8,9 +8,9 @@ export { _await_content, _await_promise, _dynamic_tag, _dynamic_tag_content, _fo
8
8
  export { _attr_details_or_dialog_open as _attr_details_open, _attr_details_or_dialog_open_default as _attr_details_open_default, _attr_details_or_dialog_open_script as _attr_details_open_script, _attr_details_or_dialog_open as _attr_dialog_open, _attr_details_or_dialog_open_default as _attr_dialog_open_default, _attr_details_or_dialog_open_script as _attr_dialog_open_script, _attr_input_checked, _attr_input_checked_default, _attr_input_checked_script, _attr_input_checkedValue, _attr_input_checkedValue_default, _attr_input_checkedValue_script, _attr_input_value, _attr_input_value_attribute_default, _attr_input_value_default, _attr_input_value_dynamic_default, _attr_input_value_script, _attr_select_value, _attr_select_value_default, _attr_select_value_script, _attr_input_value as _attr_textarea_value, _attr_input_value_default as _attr_textarea_value_default, _attr_input_value_script as _attr_textarea_value_script, _controllable_input, _controllable_open, _controllable_select, _controllable_textarea, } from "./dom/controllable";
9
9
  export { _attr, _attr_class, _attr_class_item, _attr_class_items, _attr_class_names, _attr_content, _attr_nonce, _attr_style, _attr_style_item, _attr_style_items, _attrs, _attrs_content, _attrs_partial, _attrs_partial_content, _attrs_script, _html, _lifecycle, _style_rule_item, _style_shell, _text, _text_content, _to_text, } from "./dom/dom";
10
10
  export { _on } from "./dom/event";
11
- export { _load_event_trigger, _load_idle_trigger, _load_media_trigger, _load_race_trigger, _load_setup, _load_setup_var, _load_signal, _load_template, _load_visible_trigger, } from "./dom/load";
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-CtIT8Mpr.js"), empty = [], rest = Symbol(), classIdToBranch = /* @__PURE__ */ new Map(), classEventResolver, scopesByRender = /* @__PURE__ */ new WeakMap(), getRenderScopes = ($global) => {
3
- require_control_flow.Dt($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
- patchDynamicTag: require_control_flow.y,
8
- queueEffect: require_control_flow.dn,
7
+ patchDynamicTag: require_control_flow.v,
8
+ queueEffect: require_control_flow.un,
9
9
  init(warp10Noop) {
10
- require_control_flow.wt.$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.wt.$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.wt[id] = build;
21
+ require_control_flow.Ct[id] = build;
22
22
  },
23
23
  getScope($global, scopeId) {
24
24
  return getRenderScopes($global)?.[scopeId];
@@ -39,23 +39,23 @@ let require_control_flow = require("./dom-CtIT8Mpr.js"), empty = [], rest = Symb
39
39
  branch.S = startNode, branch.K = endNode;
40
40
  },
41
41
  runComponentEffects() {
42
- this.effects && require_control_flow.hn(this.effects);
42
+ this.effects && require_control_flow.mn(this.effects);
43
43
  },
44
44
  runComponentDestroy() {
45
- this.scope && require_control_flow.$t(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.Et(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
- let renderer = require_control_flow.ht("", 0, 0, 0, params)();
51
+ let renderer = require_control_flow.mt("", 0, 0, 0, params)();
52
52
  return renderer.b = (branch) => {
53
53
  let cloned = clone();
54
54
  branch.S = cloned.startNode, branch.K = cloned.endNode;
55
55
  }, renderer;
56
56
  },
57
57
  render(out, component, renderer, args) {
58
- require_control_flow.Dt(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] = {};
@@ -64,11 +64,11 @@ let require_control_flow = require("./dom-CtIT8Mpr.js"), empty = [], rest = Symb
64
64
  let renderBranch = () => {
65
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.pn ? renderBranch() : require_control_flow.ln(renderBranch), created) return require_control_flow.mt(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
- let renderer = require_control_flow.ht(id, template, walks, setup, inputSignal)();
71
- return renderer.mount = mount, renderer._ = renderer, require_control_flow.wt[id] = renderer;
70
+ let renderer = require_control_flow.mt(id, template, walks, setup, inputSignal)();
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.ln(() => {
108
+ let curValue, args = this.d, effects = require_control_flow.cn(() => {
109
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.pt(parentNode, nextSibling, branch.S, branch.K), require_control_flow.hn(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.Zt(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.hn(require_control_flow.ln(() => {
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.tn(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.un(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,43 +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.fn(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.ht("", ...mod._)(), require_control_flow.un(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
- function _load_setup_var(load) {
154
- let setup = _load_setup(load);
155
- return (owner, child, marker) => {
156
- require_control_flow.bt(child, child.F), require_control_flow.g(owner, child, child.L), setup(owner, child, marker);
157
- };
158
- }
159
153
  function insertLoaded(renderer, branch, marker, awaitCounter) {
160
154
  let parent = () => marker.parentNode, values = branch.X, clone = () => {
161
- require_control_flow.nn(branch), renderer.b(branch, parent().namespaceURI), branch.X = 0;
155
+ require_control_flow.tn(branch), renderer.b(branch, parent().namespaceURI), branch.X = 0;
162
156
  }, insert = () => {
163
- require_control_flow.en(branch, parent(), marker), marker.remove(), awaitCounter?.c();
157
+ require_control_flow.$t(branch, parent(), marker), marker.remove(), awaitCounter?.c();
164
158
  }, remaining;
165
159
  if (remaining = values?.size) {
166
160
  awaitCounter ||= require_control_flow.h(branch);
167
161
  let fail = loadFailed(branch, awaitCounter);
168
- values.forEach(([, apply], promise) => promise.then((mod) => (apply._ = mod._) && !--remaining && require_control_flow.un(branch, (branch) => {
162
+ values.forEach(([, apply], promise) => promise.then((mod) => (apply._ = mod._) && !--remaining && require_control_flow.ln(branch, (branch) => {
169
163
  clone(), renderer.c?.(branch), values.forEach(([value, apply]) => apply(branch, value)), insert();
170
164
  }), (error) => remaining > 0 && (remaining = 0, fail(error))));
171
- } else clone(), require_control_flow.xt(renderer, branch), insert();
165
+ } else clone(), require_control_flow.bt(renderer, branch), insert();
172
166
  }
173
167
  function loadFailed(scope, awaitCounter) {
174
168
  return (error) => {
175
- awaitCounter && (awaitCounter.m ? awaitCounter.i = 0 : awaitCounter.i && awaitCounter.c()), require_control_flow.un(scope, require_control_flow.b, error);
169
+ awaitCounter && (awaitCounter.m ? awaitCounter.i = 0 : awaitCounter.i && awaitCounter.c()), require_control_flow.ln(scope, require_control_flow.y, error);
176
170
  };
177
171
  }
178
172
  function _load_signal(load) {
179
173
  let pending, apply = (scope, value) => {
180
- pending ||= load(), scope.X || !("X" in scope) && scope.H === require_control_flow.gn ? (scope.X ||= /* @__PURE__ */ new Map()).set(pending, [value, apply]) : apply._ ? apply._(scope, value) : pending.then((mod) => require_control_flow.un(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);
181
175
  };
182
176
  return apply;
183
177
  }
@@ -204,9 +198,9 @@ function _load_race_trigger(...triggers) {
204
198
  function getSelectorOrResolve(selector, resolve) {
205
199
  return document.querySelector(selector) || resolve();
206
200
  }
207
- exports.$signal = require_control_flow.in, exports.$signalReset = require_control_flow.an, exports._assert_class_toggles = require_control_flow.xn, exports._assert_hoist = require_control_flow.Sn, exports._assert_init = require_control_flow.Qt, exports._attr = require_control_flow.G, exports._attr_class = require_control_flow.K, exports._attr_class_item = require_control_flow.q, exports._attr_class_items = require_control_flow.J, exports._attr_class_names = require_control_flow.Y, exports._attr_content = require_control_flow.X, exports._attr_details_open = require_control_flow.S, exports._attr_dialog_open = require_control_flow.S, exports._attr_details_open_default = require_control_flow.C, exports._attr_dialog_open_default = require_control_flow.C, exports._attr_details_open_script = require_control_flow.w, exports._attr_dialog_open_script = require_control_flow.w, exports._attr_input_checked = require_control_flow.T, exports._attr_input_checkedValue = require_control_flow.E, exports._attr_input_checkedValue_default = require_control_flow.D, exports._attr_input_checkedValue_script = require_control_flow.O, exports._attr_input_checked_default = require_control_flow.k, exports._attr_input_checked_script = require_control_flow.A, exports._attr_input_value = require_control_flow.j, exports._attr_textarea_value = require_control_flow.j, exports._attr_input_value_attribute_default = require_control_flow.M, exports._attr_input_value_default = require_control_flow.N, exports._attr_textarea_value_default = require_control_flow.N, exports._attr_input_value_dynamic_default = require_control_flow.P, exports._attr_input_value_script = require_control_flow.F, exports._attr_textarea_value_script = require_control_flow.F, exports._attr_nonce = require_control_flow.Z, exports._attr_select_value = require_control_flow.I, exports._attr_select_value_default = require_control_flow.L, exports._attr_select_value_script = require_control_flow.R, exports._attr_style = require_control_flow.Q, exports._attr_style_item = require_control_flow.$, exports._attr_style_items = require_control_flow.et, exports._attrs = require_control_flow.tt, exports._attrs_content = require_control_flow.nt, exports._attrs_partial = require_control_flow.rt, exports._attrs_partial_content = require_control_flow.it, exports._attrs_script = require_control_flow.at, exports._await_content = require_control_flow.t, exports._await_promise = require_control_flow.n, exports._call = require_control_flow.wn, exports._child_setup = require_control_flow.Mt, exports._closure = require_control_flow.Nt, exports._closure_get = require_control_flow.Pt, exports._const = require_control_flow.Ft, exports._content = require_control_flow.ht, exports._content_closures = require_control_flow.gt, exports._content_resume = require_control_flow._t, exports._controllable_input = require_control_flow.z, exports._controllable_open = require_control_flow.B, exports._controllable_select = require_control_flow.V, exports._controllable_textarea = require_control_flow.H, 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", {
208
202
  enumerable: !0,
209
203
  get: function() {
210
204
  return require_control_flow.r;
211
205
  }
212
- }), exports._dynamic_tag_content = require_control_flow.i, exports._dynamic_tag_var_resume = require_control_flow.St, exports._el = require_control_flow.Ct, exports._el_read = require_control_flow.It, exports._for_closure = require_control_flow.Lt, 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.Rt, 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.zt, exports._hoist = require_control_flow.Bt, exports._hoist_read_error = require_control_flow.Cn, exports._hoist_resume = require_control_flow.Vt, exports._html = require_control_flow.ot, exports._id = require_control_flow.Ht, exports._if = require_control_flow.f, exports._if_closure = require_control_flow.Ut, exports._let = require_control_flow.Wt, exports._let_change = require_control_flow.Gt, exports._lifecycle = require_control_flow.st, 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_setup_var = _load_setup_var, exports._load_signal = _load_signal, exports._load_template = _load_template, exports._load_visible_trigger = _load_visible_trigger, exports._on = require_control_flow.rn, exports._or = require_control_flow.Kt, exports._resumed = require_control_flow.wt, exports._return = require_control_flow.qt, exports._return_change = require_control_flow.Jt, exports._script = require_control_flow.Yt, exports._show = require_control_flow.p, exports._style_rule_item = require_control_flow.ct, exports._style_shell = require_control_flow.lt, exports._template = _template, exports._text = require_control_flow.ut, exports._text_content = require_control_flow.dt, exports._to_text = require_control_flow.ft, exports._try = require_control_flow.m, exports._var = require_control_flow.Xt, exports._var_change = require_control_flow.Zt, exports._var_resume = require_control_flow.Tt, exports.attrTag = attrTag, exports.attrTags = attrTags, exports.compat = compat, exports.forIn = require_control_flow._n, exports.forOf = require_control_flow.vn, exports.forTo = require_control_flow.yn, exports.forUntil = require_control_flow.bn, exports.init = require_control_flow.Dt, exports.initEmbedded = require_control_flow.Ot, exports.ready = require_control_flow.kt, exports.readyFailed = require_control_flow.At, exports.run = require_control_flow.mn;
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_item, $t as destroyBranch, A as _attr_input_checked_script, At as readyFailed, B as _controllable_open, Bt as _hoist, C as _attr_details_or_dialog_open_default, Cn as _hoist_read_error, Ct as _el, D as _attr_input_checkedValue_default, Dt as init, E as _attr_input_checkedValue, 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, It as _el_read, J as _attr_class_items, Jt as _return_change, K as _attr_class, Kt as _or, L as _attr_select_value_default, 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, 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 _assert_hoist, St as _dynamic_tag_var_resume, T as _attr_input_checked, 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 forIn, _t as _content_resume, a as _for_in, an as $signalReset, at as _attrs_script, b as renderCatch, bn as forUntil, bt as setParentBranch, c as _for_to, ct as _style_rule_item, d as _for_until_unkeyed, dn as queueEffect, dt as _text_content, en as insertBranchBefore, et as _attr_style_items, f as _if, fn as queueRender, ft as _to_text, g as bindTagVar, gn as runId, gt as _content_closures, h as addAwaitCounter, hn as runEffects, ht as _content, i as _dynamic_tag_content, in as $signal, it as _attrs_partial_content, j as _attr_input_value, k as _attr_input_checked_default, kt as ready, l as _for_to_unkeyed, ln as prepareEffects, lt as _style_shell, m as _try, mn as run, mt as toInsertNode, n as _await_promise, nn as syncGen, nt as _attrs_content, o as _for_of, ot as _html, p as _show, pn as rendering, pt as insertChildNodes, q as _attr_class_item, qt as _return, r as _dynamic_tag, rn as _on, rt as _attrs_partial, s as _for_of_unkeyed, st as _lifecycle, t as _await_content, tn as removeAndDestroyBranch, tt as _attrs, u as _for_until, un as queueAsyncRender, ut as _text, vn as forOf, vt as createAndSetupBranch, w as _attr_details_or_dialog_open_script, wn as _call, wt as _resumed, xn as _assert_class_toggles, xt as setupBranch, y as patchDynamicTag, yn as forTo, yt as createBranch, z as _controllable_input, zt as _global_read } from "./dom-DHg9YChM.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;
@@ -149,12 +149,6 @@ function _load_setup(load) {
149
149
  }
150
150
  };
151
151
  }
152
- function _load_setup_var(load) {
153
- let setup = _load_setup(load);
154
- return (owner, child, marker) => {
155
- setParentBranch(child, child.F), bindTagVar(owner, child, child.L), setup(owner, child, marker);
156
- };
157
- }
158
152
  function insertLoaded(renderer, branch, marker, awaitCounter) {
159
153
  let parent = () => marker.parentNode, values = branch.X, clone = () => {
160
154
  syncGen(branch), renderer.b(branch, parent().namespaceURI), branch.X = 0;
@@ -204,4 +198,4 @@ function getSelectorOrResolve(selector, resolve) {
204
198
  return document.querySelector(selector) || resolve();
205
199
  }
206
200
  //#endregion
207
- 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 };
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;
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) || {};
@@ -275,15 +275,15 @@ let empty = [], rest = Symbol(), unsafeStyleAttrReg = /[\\;]/g, replaceUnsafeSty
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
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,
@@ -615,14 +615,15 @@ function writeScopesRoot(state, flushes) {
615
615
  let { buf } = state, nextSlotId = -1, fillIndex = -1;
616
616
  for (let flush of flushes) {
617
617
  let scopeId = flush[0], scope = flush[1], ref = state.refs.get(scope) || newScopeReference(state, scope, scopeId), openIndex = buf.push("") - 1;
618
- writeObjectProps(state, flush[2], ref) ? (buf[openIndex] = nextSlotId === -1 ? "[" + scopeId + ",{" : (scopeId === nextSlotId ? "" : "," + (scopeId - nextSlotId)) + ",{", fillIndex === -1 && (fillIndex = openIndex), nextSlotId = scopeId + 1, buf.push("}")) : buf.pop();
618
+ writeObjectProps(state, flush[2], ref) ? (buf[openIndex] = nextSlotId === -1 ? scopeId + ",{" : (scopeId === nextSlotId ? "" : "," + (scopeId - nextSlotId)) + ",{", fillIndex === -1 && (fillIndex = openIndex), nextSlotId = scopeId + 1, buf.push("}")) : buf.pop();
619
619
  }
620
- nextSlotId !== -1 && buf.push("]");
621
620
  let extras = "";
622
- (state.pendingAssignments.size || hasChannelMutations(state)) && (extras = ",0)", fillIndex !== -1 && (buf[fillIndex] = "_(" + buf[fillIndex], buf.push(")")), writeAssigned(state));
621
+ (state.pendingAssignments.size || hasChannelMutations(state)) && (extras = ",0)", fillIndex !== -1 && (buf[fillIndex] = "_([" + buf[fillIndex], buf.push("])")), writeAssigned(state));
623
622
  let result = extras && "(";
624
623
  for (let chunk of buf) result += chunk;
625
- return result += extras, result ? state.wroteUndefined ? (state.wroteUndefined = !1, "(_,$)=>" + result) : "_=>" + result : "";
624
+ if (result += extras, !result) return "";
625
+ let arrow = state.wroteUndefined ? "(_,$)=>" : "_=>";
626
+ return state.wroteUndefined = !1, extras ? arrow + result : arrow + "[" + result + "]";
626
627
  }
627
628
  function writeAssigned(state) {
628
629
  let sep = state.buf.length ? "," : "";
@@ -2456,7 +2457,7 @@ function NOOP$1() {}
2456
2457
  //#endregion
2457
2458
  //#region src/html/assets.ts
2458
2459
  function withLoadAssets(renderer, flush, assetId, triggers) {
2459
- return Object.assign((input) => (writeLoadAsset(assetId, flush, triggers), writeWaitReady(assetId, renderer, input)), renderer);
2460
+ return register(renderer.a, Object.assign((input) => (writeLoadAsset(assetId, flush, triggers), writeWaitReady(assetId, renderer, input)), renderer));
2460
2461
  }
2461
2462
  function writeLoadAsset(assetId, flush, triggers) {
2462
2463
  let g = $global();
@@ -2485,7 +2486,7 @@ function takeAssets(g, at) {
2485
2486
  function writeAsset(g, asset) {
2486
2487
  if (needsWrite(asset.htmlAt) && (asset.htmlAt = void 0, g[kHead] || g.__flush__ !== flushPage)) {
2487
2488
  let block = blockHTML(g, asset);
2488
- _html(block + (asset.triggers ? "" : deferHTML(g, asset))), block && isInResumedBranch() && writeScript(`document.head.insertAdjacentHTML("beforeend",${_escape_script(JSON.stringify(block))})`), asset.htmlAt = catchableBoundary();
2489
+ _html(block + (asset.triggers ? "" : deferHTML(g, asset))), block && isInResumedBranch() && writeScript(`document.head.insertAdjacentHTML("beforeend",${quoteScriptTemplateLiteral(block)})`), asset.htmlAt = catchableBoundary();
2489
2490
  }
2490
2491
  if (asset.triggers && needsWrite(asset.scriptAt)) {
2491
2492
  let defer = deferHTML(g, asset);
@@ -2515,7 +2516,7 @@ function addAsset(g, id, flush, triggers) {
2515
2516
  }), asset;
2516
2517
  }
2517
2518
  function triggerScript(id, html, triggers) {
2518
- let htmlStr = _escape_script(JSON.stringify(html)), exprs = triggers.map((trigger) => {
2519
+ let htmlStr = quoteScriptTemplateLiteral(html), exprs = triggers.map((trigger) => {
2519
2520
  let options = trigger.options && toObjectExpression(trigger.options);
2520
2521
  switch (trigger.type) {
2521
2522
  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) || {};
@@ -274,15 +274,15 @@ let empty = [], rest = Symbol(), unsafeStyleAttrReg = /[\\;]/g, replaceUnsafeSty
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
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,
@@ -613,14 +613,15 @@ function writeScopesRoot(state, flushes) {
613
613
  let { buf } = state, nextSlotId = -1, fillIndex = -1;
614
614
  for (let flush of flushes) {
615
615
  let scopeId = flush[0], scope = flush[1], ref = state.refs.get(scope) || newScopeReference(state, scope, scopeId), openIndex = buf.push("") - 1;
616
- writeObjectProps(state, flush[2], ref) ? (buf[openIndex] = nextSlotId === -1 ? "[" + scopeId + ",{" : (scopeId === nextSlotId ? "" : "," + (scopeId - nextSlotId)) + ",{", fillIndex === -1 && (fillIndex = openIndex), nextSlotId = scopeId + 1, buf.push("}")) : buf.pop();
616
+ writeObjectProps(state, flush[2], ref) ? (buf[openIndex] = nextSlotId === -1 ? scopeId + ",{" : (scopeId === nextSlotId ? "" : "," + (scopeId - nextSlotId)) + ",{", fillIndex === -1 && (fillIndex = openIndex), nextSlotId = scopeId + 1, buf.push("}")) : buf.pop();
617
617
  }
618
- nextSlotId !== -1 && buf.push("]");
619
618
  let extras = "";
620
- (state.pendingAssignments.size || hasChannelMutations(state)) && (extras = ",0)", fillIndex !== -1 && (buf[fillIndex] = "_(" + buf[fillIndex], buf.push(")")), writeAssigned(state));
619
+ (state.pendingAssignments.size || hasChannelMutations(state)) && (extras = ",0)", fillIndex !== -1 && (buf[fillIndex] = "_([" + buf[fillIndex], buf.push("])")), writeAssigned(state));
621
620
  let result = extras && "(";
622
621
  for (let chunk of buf) result += chunk;
623
- return result += extras, result ? state.wroteUndefined ? (state.wroteUndefined = !1, "(_,$)=>" + result) : "_=>" + result : "";
622
+ if (result += extras, !result) return "";
623
+ let arrow = state.wroteUndefined ? "(_,$)=>" : "_=>";
624
+ return state.wroteUndefined = !1, extras ? arrow + result : arrow + "[" + result + "]";
624
625
  }
625
626
  function writeAssigned(state) {
626
627
  let sep = state.buf.length ? "," : "";
@@ -2454,7 +2455,7 @@ function NOOP$1() {}
2454
2455
  //#endregion
2455
2456
  //#region src/html/assets.ts
2456
2457
  function withLoadAssets(renderer, flush, assetId, triggers) {
2457
- return Object.assign((input) => (writeLoadAsset(assetId, flush, triggers), writeWaitReady(assetId, renderer, input)), renderer);
2458
+ return register(renderer.a, Object.assign((input) => (writeLoadAsset(assetId, flush, triggers), writeWaitReady(assetId, renderer, input)), renderer));
2458
2459
  }
2459
2460
  function writeLoadAsset(assetId, flush, triggers) {
2460
2461
  let g = $global();
@@ -2483,7 +2484,7 @@ function takeAssets(g, at) {
2483
2484
  function writeAsset(g, asset) {
2484
2485
  if (needsWrite(asset.htmlAt) && (asset.htmlAt = void 0, g[kHead] || g.__flush__ !== flushPage)) {
2485
2486
  let block = blockHTML(g, asset);
2486
- _html(block + (asset.triggers ? "" : deferHTML(g, asset))), block && isInResumedBranch() && writeScript(`document.head.insertAdjacentHTML("beforeend",${_escape_script(JSON.stringify(block))})`), asset.htmlAt = catchableBoundary();
2487
+ _html(block + (asset.triggers ? "" : deferHTML(g, asset))), block && isInResumedBranch() && writeScript(`document.head.insertAdjacentHTML("beforeend",${quoteScriptTemplateLiteral(block)})`), asset.htmlAt = catchableBoundary();
2487
2488
  }
2488
2489
  if (asset.triggers && needsWrite(asset.scriptAt)) {
2489
2490
  let defer = deferHTML(g, asset);
@@ -2513,7 +2514,7 @@ function addAsset(g, id, flush, triggers) {
2513
2514
  }), asset;
2514
2515
  }
2515
2516
  function triggerScript(id, html, triggers) {
2516
- let htmlStr = _escape_script(JSON.stringify(html)), exprs = triggers.map((trigger) => {
2517
+ let htmlStr = quoteScriptTemplateLiteral(html), exprs = triggers.map((trigger) => {
2517
2518
  let options = trigger.options && toObjectExpression(trigger.options);
2518
2519
  switch (trigger.type) {
2519
2520
  case "visible": return `(e=>e&&new IntersectionObserver((e,i)=>e.some(e=>e.isIntersecting)&&i.disconnect()+l()${options ? `,${options}` : ""}).observe(e))(${querySelectorOrLoad(trigger.selector)})`;