marko 6.4.1 → 6.4.3

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 (80) hide show
  1. package/cheatsheet.md +1 -1
  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/errors.d.ts +1 -0
  5. package/dist/common/opt.d.ts +1 -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 +6 -2
  22. package/dist/debug/dom/dynamic-tag-var.feat.mjs +6 -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-ClV4kVOO.js → dom-C7F3yZTh.js} +119 -24
  28. package/dist/debug/{dom-LFrKxOk5.mjs → dom-uEY0J_H9.mjs} +78 -25
  29. package/dist/debug/dom.js +16 -4
  30. package/dist/debug/dom.mjs +14 -5
  31. package/dist/debug/html.js +288 -78
  32. package/dist/debug/html.mjs +288 -79
  33. package/dist/dom/catch.feat.js +4 -4
  34. package/dist/dom/catch.feat.mjs +1 -1
  35. package/dist/dom/control-flow.d.ts +2 -2
  36. package/dist/dom/controllable-input.feat.js +2 -2
  37. package/dist/dom/controllable-input.feat.mjs +1 -1
  38. package/dist/dom/controllable-open.feat.js +2 -2
  39. package/dist/dom/controllable-open.feat.mjs +1 -1
  40. package/dist/dom/controllable-select.feat.js +2 -2
  41. package/dist/dom/controllable-select.feat.mjs +1 -1
  42. package/dist/dom/controllable-textarea.feat.js +2 -2
  43. package/dist/dom/controllable-textarea.feat.mjs +1 -1
  44. package/dist/dom/controllable.feat.js +2 -2
  45. package/dist/dom/controllable.feat.mjs +1 -1
  46. package/dist/dom/dom.d.ts +1 -0
  47. package/dist/dom/dynamic-tag-script.feat.js +2 -2
  48. package/dist/dom/dynamic-tag-script.feat.mjs +1 -1
  49. package/dist/dom/dynamic-tag-var.feat.js +4 -2
  50. package/dist/dom/dynamic-tag-var.feat.mjs +4 -3
  51. package/dist/dom/lazy.feat.js +1 -1
  52. package/dist/dom/lazy.feat.mjs +1 -1
  53. package/dist/dom/load.d.ts +1 -0
  54. package/dist/dom/placeholder.feat.js +3 -3
  55. package/dist/dom/placeholder.feat.mjs +1 -1
  56. package/dist/dom/queue.d.ts +4 -1
  57. package/dist/{dom-CNglVi8P.js → dom-CtIT8Mpr.js} +201 -138
  58. package/dist/{dom-DfP3MCo0.mjs → dom-DHg9YChM.mjs} +60 -27
  59. package/dist/dom.d.ts +3 -3
  60. package/dist/dom.js +41 -34
  61. package/dist/dom.mjs +12 -5
  62. package/dist/html/assets.d.ts +12 -6
  63. package/dist/html/attrs.d.ts +1 -0
  64. package/dist/html/compat.d.ts +10 -2
  65. package/dist/html/serializer.d.ts +1 -0
  66. package/dist/html/writer.d.ts +8 -0
  67. package/dist/html.d.ts +1 -1
  68. package/dist/html.js +207 -62
  69. package/dist/html.mjs +207 -62
  70. package/dist/translator/index.js +432 -213
  71. package/dist/translator/util/bindings.d.ts +9 -1
  72. package/dist/translator/util/constants/structure-kind.d.ts +1 -0
  73. package/dist/translator/util/known-tag.d.ts +2 -1
  74. package/dist/translator/util/module-read.d.ts +21 -0
  75. package/dist/translator/util/references.d.ts +1 -0
  76. package/dist/translator/util/runtime.d.ts +2 -0
  77. package/dist/translator/util/sections.d.ts +5 -1
  78. package/dist/translator/util/structure.d.ts +1 -0
  79. package/package.json +3 -3
  80. package/tags-html.d.ts +6 -5
package/dist/html.mjs CHANGED
@@ -267,7 +267,7 @@ 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);
@@ -276,7 +276,7 @@ let empty = [], rest = Symbol(), unsafeStyleAttrReg = /[\\;]/g, replaceUnsafeSty
276
276
  }
277
277
  else if (content) return 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) => {
@@ -284,8 +284,9 @@ let empty = [], rest = Symbol(), unsafeStyleAttrReg = /[\\;]/g, replaceUnsafeSty
284
284
  let patched = patch(tag, scopeId, accessor);
285
285
  return patched !== tag && (patched.a = tag), originalDynamicTag(scopeId, accessor, patched, input, content, inputIsArgs, resume);
286
286
  };
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(), kBlockIndex = Symbol(), kDeferIndex = Symbol(), assetFlush, SET_SCOPE_REGISTER_ID = "$C_s", RENDER_BODY_ID = "$C_b", K_TAGS_API_STATE = Symbol(), COMPAT_REGISTRY = /* @__PURE__ */ new WeakMap(), compat = {
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,
289
+ writeLoadAsset,
289
290
  fork: _await,
290
291
  write: _html,
291
292
  writeScript,
@@ -304,7 +305,8 @@ let empty = [], rest = Symbol(), unsafeStyleAttrReg = /[\\;]/g, replaceUnsafeSty
304
305
  onFlush(fn) {
305
306
  let { flushHTML } = Chunk.prototype;
306
307
  Chunk.prototype.flushHTML = function(boundary) {
307
- return fn(this), flushHTML.call(this, boundary);
308
+ let { state } = boundary, reorders = swapReorders(state, null);
309
+ return fn(this), swapReorders(state, reorders), flushHTML.call(this, boundary);
308
310
  };
309
311
  },
310
312
  patchDynamicTag,
@@ -327,24 +329,45 @@ let empty = [], rest = Symbol(), unsafeStyleAttrReg = /[\\;]/g, replaceUnsafeSty
327
329
  return compatRegistered;
328
330
  };
329
331
  },
332
+ joinChunks(chunks) {
333
+ let joined;
334
+ for (let chunk of chunks) chunk.boundary.aborted || (joined ? joined.append(chunk) : joined = chunk);
335
+ return joined;
336
+ },
337
+ appendChunks(chunks) {
338
+ let chunk = getChunk();
339
+ for (let part of chunks) chunk.append(part), part.effects && (chunk.lastEffect = part.lastEffect);
340
+ },
341
+ deferReorders(reorders) {
342
+ let chunk = getChunk();
343
+ for (let i = reorders.length; i--;) {
344
+ let carrier = chunk.fork(chunk.boundary, chunk.next);
345
+ carrier.deferredReorder = reorders[i], chunk.next = carrier;
346
+ }
347
+ },
330
348
  createChunk($global) {
331
349
  let state = this.ensureState($global);
332
350
  return new Chunk(new Boundary(state), null, null, state);
333
351
  },
334
- flushScript($global, chunk) {
335
- chunk ||= this.createChunk($global);
336
- let { boundary } = chunk, scripts = boundary.flush() === 0 ? chunk.flushScript(boundary).scripts : "";
337
- if (boundary.aborted) throw boundary.reason;
352
+ flushScript(chunk, reorders) {
353
+ let { boundary } = chunk, { state } = boundary, html = "", scripts = "";
354
+ if (reorders) for (let reorder of reorders) state.reorder(reorder);
355
+ if (boundary.flush() === 0 && ({html, scripts} = chunk.flushScript(boundary)), boundary.aborted) throw boundary.reason;
338
356
  if (boundary.count) throw Error("Cannot serialize promise across tags/class compat layer.");
339
- return scripts;
357
+ return {
358
+ html,
359
+ scripts
360
+ };
340
361
  },
341
- render(renderer, willRerender, classAPIOut, component, input, completeChunks, registerChildScope) {
342
- let state = this.ensureState(classAPIOut.global), boundary = new Boundary(state), context = getChunk()?.context ?? null, head = new Chunk(boundary, new Chunk(boundary, null, context, state), context, state), normalizedInput = input;
362
+ render(renderer, willRerender, classAPIOut, component, input, componentScopes, registerChildScope, parentChunk) {
363
+ if (parentChunk?.boundary.aborted) return;
364
+ let state = this.ensureState(classAPIOut.global), boundary = new Boundary(state, void 0, parentChunk?.boundary), context = getChunk()?.context ?? null, head = new Chunk(boundary, new Chunk(boundary, null, context, state), context, state), normalizedInput = input;
343
365
  if ("renderBody" in input) {
344
366
  normalizedInput = {};
345
367
  for (let key in input) normalizedInput[key === "renderBody" ? "content" : key] = input[key];
346
368
  }
347
- head.render(() => {
369
+ let componentScope = new Chunk(boundary, null, context, state);
370
+ componentScope.render(() => {
348
371
  if (this.hasPendingClassFunctions(classAPIOut.global) && drainClassFunctions(classAPIOut.global, (hostId) => {
349
372
  let fnScopeId = _scope_id(), scope = writeScope(fnScopeId, {
350
373
  m5c: component.id,
@@ -355,6 +378,7 @@ let empty = [], rest = Symbol(), unsafeStyleAttrReg = /[\\;]/g, replaceUnsafeSty
355
378
  let scopeId = _peek_scope_id();
356
379
  writeScope(scopeId, { m5c: component.id }), _script(scopeId, SET_SCOPE_REGISTER_ID);
357
380
  }
381
+ }), head.render(() => {
358
382
  _set_scope_reason(willRerender ? CLIENT_ALL : 0);
359
383
  try {
360
384
  renderer(normalizedInput);
@@ -367,7 +391,16 @@ let empty = [], rest = Symbol(), unsafeStyleAttrReg = /[\\;]/g, replaceUnsafeSty
367
391
  });
368
392
  classAPIOut.onLast((next) => {
369
393
  (boundary.onNext = () => {
370
- boundary.aborted ? (asyncOut.error(boundary.reason), boundary.onNext = NOOP) : boundary.count || (boundary.onNext = NOOP, head = head.consume(boundary), asyncOut.write(head.html), asyncOut.script(head.scripts), asyncOut.end(), head.html = head.scripts = "", completeChunks.push(head), next());
394
+ if (boundary.aborted) boundary.onNext = NOOP, parentChunk?.boundary.aborted ? (asyncOut.end(), next()) : asyncOut.error(boundary.reason);
395
+ else if (!boundary.count) {
396
+ boundary.onNext = NOOP;
397
+ let queued = swapReorders(state, null);
398
+ head = head.consume(boundary);
399
+ let reorders = swapReorders(state, queued);
400
+ reorders && asyncOut.writer.get("reorders").push(...reorders);
401
+ let heldEffects = head.takeHeldEffects();
402
+ heldEffects && (head.effects = joinHeldEffects(heldEffects, head.effects), head.lastEffect = ""), asyncOut.write(head.html), asyncOut.script(head.scripts), head.html = head.scripts = "", asyncOut.writer.get("chunks").push(head), asyncOut.end(), componentScopes.push(componentScope), next();
403
+ }
371
404
  })();
372
405
  });
373
406
  });
@@ -448,6 +481,7 @@ function normalizeDynamicRenderer(value) {
448
481
  }
449
482
  //#endregion
450
483
  //#region src/common/errors.ts
484
+ function _assert_class_toggles(classes, toggles) {}
451
485
  function _el_read_error() {}
452
486
  function _hoist_read_error() {}
453
487
  function _assert_hoist(value) {}
@@ -472,6 +506,13 @@ function forUntil(until, from, step, cb) {
472
506
  }
473
507
  //#endregion
474
508
  //#region src/common/opt.ts
509
+ function reduce(opt, cb, acc) {
510
+ if (opt) {
511
+ if (Array.isArray(opt)) for (let item of opt) acc = cb(acc, item);
512
+ else acc = cb(acc, opt);
513
+ }
514
+ return acc;
515
+ }
475
516
  function push(opt, item) {
476
517
  return opt ? Array.isArray(opt) ? (opt.push(item), opt) : [opt, item] : item;
477
518
  }
@@ -544,6 +585,14 @@ var State$1 = class {
544
585
  channel
545
586
  });
546
587
  }
588
+ dropCall(value, object, property) {
589
+ let { mutated } = this.#state;
590
+ for (let i = 0; i < mutated.length; i++) {
591
+ let mutation = mutated[i];
592
+ if (mutation.value === value && mutation.object === object && mutation.property === property) return mutated.splice(i, 1), !0;
593
+ }
594
+ return !1;
595
+ }
547
596
  };
548
597
  function register(id, val, scope, locals) {
549
598
  return REGISTRY.set(val, {
@@ -1484,6 +1533,15 @@ function _html(html) {
1484
1533
  function writeScript(script) {
1485
1534
  $chunk.writeScript(script);
1486
1535
  }
1536
+ function catchableBoundary() {
1537
+ let { boundary } = $chunk;
1538
+ return boundary.withinCatch ? boundary : null;
1539
+ }
1540
+ function mayDrop(written) {
1541
+ let { boundary } = $chunk;
1542
+ for (let cur = written; cur && !isWithin(boundary, cur); cur = cur.parent) if (cur.aborted || cur.count) return !0;
1543
+ return !1;
1544
+ }
1487
1545
  function _script(scopeId, registryId, markerGuard) {
1488
1546
  markerGuard === 0 && ($chunk.serializeState.readyId || $chunk.context?.[kIsAsync]) && _resume_branch(scopeId), $chunk.boundary.state.needsMainRuntime = !0, $chunk.writeEffect(scopeId, registryId);
1489
1547
  }
@@ -1528,7 +1586,12 @@ function _resume_branch(scopeId) {
1528
1586
  }
1529
1587
  function _attr_content(nodeAccessor, scopeId, content, markerGuard) {
1530
1588
  let shouldResume = markerGuard !== 0, render = normalizeServerRender(content), branchId = _peek_scope_id();
1531
- 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, {
1532
1595
  ["A" + nodeAccessor]: writeScope(branchId, {}),
1533
1596
  ["D" + nodeAccessor]: rendererKey(render)
1534
1597
  });
@@ -1633,8 +1696,8 @@ function scopeWithId(state, scopeId) {
1633
1696
  }
1634
1697
  function _subscribe(subscribers, scope, resumeId, markerGuard) {
1635
1698
  if (subscribers) {
1636
- let { serializer } = $chunk.boundary.state;
1637
- !$chunk.serializeState.readyId && !serializer.written(subscribers) ? subscribers.add(scope) : resumeId ? _script(scope[K_SCOPE_ID], resumeId, markerGuard) : serializer.writeCall(scope, subscribers, "add", $chunk.serializeState);
1699
+ let { boundary, serializeState } = $chunk, { serializer } = boundary.state;
1700
+ !serializeState.readyId && !serializer.written(subscribers) ? subscribers.add(scope) : resumeId ? _script(scope[K_SCOPE_ID], resumeId, markerGuard) : serializer.writeCall(scope, subscribers, "add", serializeState), boundary.withinCatch && (boundary.subscribed ||= []).push(subscribers, scope, serializeState);
1638
1701
  }
1639
1702
  return scope;
1640
1703
  }
@@ -1711,7 +1774,9 @@ function tryPlaceholder(content, placeholder, branchId, scopeId, placeholderBran
1711
1774
  };
1712
1775
  }
1713
1776
  function tryBoundary(content, catchContent, branchId, renderers) {
1714
- let chunk = $chunk, { boundary } = chunk, { state } = boundary, catchBoundary = new Boundary(state, void 0, boundary), body = chunk.fork(catchBoundary, null), bodyEnd = body.render(() => withBranchId(branchId, content));
1777
+ let chunk = $chunk, { boundary } = chunk, { state } = boundary, catchBoundary = new Boundary(state, void 0, boundary);
1778
+ catchContent && (catchBoundary.withinCatch = !0);
1779
+ let body = chunk.fork(catchBoundary, null), bodyEnd = body.render(() => withBranchId(branchId, content));
1715
1780
  if (catchBoundary.aborted) {
1716
1781
  if (!catchContent) throw catchBoundary.reason;
1717
1782
  return catchContent(catchBoundary.reason), !0;
@@ -1731,10 +1796,10 @@ function tryBoundary(content, catchContent, branchId, renderers) {
1731
1796
  return;
1732
1797
  }
1733
1798
  let streamed = !chunk.catchRange, catchChunk = chunk.fork(boundary, null);
1734
- chunk.catchRange = null;
1799
+ chunk.catchRange = null, renderersAtSettle || catchChunk.render(clearTryRenderers, branchId);
1735
1800
  let inOrder = catchChunk === catchChunk.render(catchContent, catchBoundary.reason);
1736
1801
  if (boundary.aborted) return;
1737
- if (bodyEnd.consumed) catchChunk.reorderId = reorderId, state.reorder(catchChunk);
1802
+ if ((bodyEnd.consumed || !inOrder) && (catchChunk.reorderBranch = branchId), bodyEnd.consumed) catchChunk.reorderId = reorderId, state.reorder(catchChunk);
1738
1803
  else {
1739
1804
  let reorder = null;
1740
1805
  inOrder ? streamed && (reorder = chunk.fork(boundary, null)) : reorder = catchChunk, reorder && (reorder.reorderId = reorderId);
@@ -1747,6 +1812,18 @@ function tryBoundary(content, catchContent, branchId, renderers) {
1747
1812
  }
1748
1813
  }, renderersAtSettle;
1749
1814
  }
1815
+ function unsubscribe(subscribed, serializer) {
1816
+ for (let i = 0; i < subscribed.length; i += 3) {
1817
+ let subscribers = subscribed[i], scope = subscribed[i + 1];
1818
+ serializer.written(subscribers) ? serializer.dropCall(scope, subscribers, "add") || serializer.writeCall(scope, subscribers, "delete", subscribed[i + 2]) : subscribers.delete(scope);
1819
+ }
1820
+ }
1821
+ function clearTryRenderers(branchId) {
1822
+ writeScope(branchId, {
1823
+ E: 0,
1824
+ Q: _scope_with_id(branchId).Q && 0
1825
+ });
1826
+ }
1750
1827
  function writeTryRenderers(branchId, catchContent, placeholderContent) {
1751
1828
  writeScope(branchId, {
1752
1829
  E: catchContent,
@@ -1831,15 +1908,17 @@ var State = class {
1831
1908
  parent;
1832
1909
  aborted = !1;
1833
1910
  reason;
1911
+ subscribed;
1834
1912
  pendingReorders;
1835
1913
  children;
1914
+ withinCatch = !1;
1836
1915
  constructor(state, signal, parent) {
1837
- this.state = state, this.parent = parent, parent ? parent.aborted ? this.abort(parent.reason) : (parent.children ||= []).push(this) : signal && (signal.aborted ? this.abort(signal.reason) : signal.addEventListener("abort", this));
1916
+ this.state = state, this.parent = parent, parent ? (this.withinCatch = parent.withinCatch, parent.aborted ? this.abort(parent.reason) : (parent.children ||= []).push(this)) : signal && (signal.aborted ? this.abort(signal.reason) : signal.addEventListener("abort", this));
1838
1917
  }
1839
1918
  abort(reason) {
1840
1919
  if (this.aborted) return;
1841
1920
  let { state } = this;
1842
- if (this.aborted = !0, this.reason = reason, this.pendingReorders) {
1921
+ if (this.aborted = !0, this.reason = reason, this.subscribed && unsubscribe(this.subscribed, state.serializer), this.pendingReorders) {
1843
1922
  for (let reorder of this.pendingReorders) state.reorder(reorder);
1844
1923
  this.pendingReorders = void 0;
1845
1924
  }
@@ -1866,7 +1945,9 @@ var State = class {
1866
1945
  async = !1;
1867
1946
  consumed = !1;
1868
1947
  reorderId = null;
1948
+ reorderBranch = 0;
1869
1949
  deferredReady = null;
1950
+ heldEffects = null;
1870
1951
  deferredReorder = null;
1871
1952
  catchRange = null;
1872
1953
  placeholder = null;
@@ -1884,7 +1965,7 @@ var State = class {
1884
1965
  this.html += html;
1885
1966
  }
1886
1967
  writeEffect(scopeId, registryId) {
1887
- countResumeWrite(this), this.lastEffect === registryId ? this.effects += " " + scopeId : (this.lastEffect = registryId, this.effects = concatEffects(this.effects, registryId + " " + scopeId));
1968
+ countResumeWrite(this), this.lastEffect === registryId ? this.effects = concatEffects(this.effects, scopeId + "") : (this.lastEffect = registryId, this.effects = concatEffects(this.effects, registryId + " " + scopeId));
1888
1969
  }
1889
1970
  writeScript(script) {
1890
1971
  this.scripts = concatScripts(this.scripts, script);
@@ -1892,6 +1973,10 @@ var State = class {
1892
1973
  append(chunk) {
1893
1974
  this.html += chunk.html, this.effects = concatEffects(this.effects, chunk.effects), this.scripts = concatScripts(this.scripts, chunk.scripts), this.lastEffect = chunk.lastEffect || this.lastEffect, this.deferredReady = concat(this.deferredReady, chunk.takeDeferredReady());
1894
1975
  }
1976
+ takeHeldEffects() {
1977
+ let { heldEffects } = this;
1978
+ return this.heldEffects = null, heldEffects;
1979
+ }
1895
1980
  takeDeferredReady() {
1896
1981
  let { deferredReady } = this;
1897
1982
  return this.deferredReady = null, deferredReady;
@@ -1932,12 +2017,12 @@ var State = class {
1932
2017
  let { body } = placeholder, end = body;
1933
2018
  for (; end.next && !end.async;) end = end.next;
1934
2019
  if (!end.async) return end.next = this.next, this.next = body, !1;
1935
- let { branchId, scopeId, placeholderBranchId } = placeholder, reorderId = body.reorderId = branchId ? branchId + "" : state.nextReorderId();
2020
+ let { branchId, scopeId, placeholderBranchId } = placeholder, reorderId = body.reorderId = branchId + "";
1936
2021
  this.writeHTML(state.mark("!^", reorderId));
1937
2022
  let { effects } = this, beforeBranch = deferBranchStart(this);
1938
2023
  if (this.render(() => withBranchId(placeholderBranchId, placeholder.render)) !== this && this.boundary.abort(/* @__PURE__ */ Error("An @placeholder cannot contain async content.")), this.boundary.aborted) return !0;
1939
2024
  let stateful = this.effects !== effects;
1940
- return applyBranchStart(this, beforeBranch, stateful), stateful && (this.render(() => writeScope(branchId, { P: scopeWithId(state, placeholderBranchId) })), this.writeHTML(state.mark("]", scopeId + " " + ("P" + branchId) + " " + placeholderBranchId)), end.writeEffect(branchId, "_f")), this.writeHTML(state.mark("!", reorderId)), this.deferredReorder = body, !1;
2025
+ return applyBranchStart(this, beforeBranch, stateful), stateful && (this.render(() => writeScope(branchId, { P: scopeWithId(state, placeholderBranchId) })), this.writeHTML(state.mark("]", scopeId + " " + ("P" + branchId) + " " + placeholderBranchId)), dismissChunk(end, body).writeEffect(branchId, "_f")), this.writeHTML(state.mark("!", reorderId)), this.deferredReorder = body, !1;
1941
2026
  }
1942
2027
  markCatchRange() {
1943
2028
  let { catchRange } = this;
@@ -1952,9 +2037,9 @@ var State = class {
1952
2037
  }
1953
2038
  consume(boundary) {
1954
2039
  this.renderPlaceholders(boundary);
1955
- let cur = this, html = "", effects = "", scripts = "", lastEffect = "", deferredReady;
1956
- for (; cur.next && !cur.async;) cur.markCatchRange(), cur.queueDeferredReorder(), html += cur.html, cur.serializeState.readyId ? deferredReady = push(deferredReady, cur) : (effects = concatEffects(effects, cur.effects), scripts = concatScripts(scripts, cur.scripts), lastEffect = cur.lastEffect || lastEffect), deferredReady = concat(deferredReady, cur.takeDeferredReady()), cur.consumed = !0, cur = cur.next;
1957
- return cur.deferOwnReady(), cur.deferredReady = concat(deferredReady, cur.deferredReady), cur.html = html + cur.html, cur.effects = concatEffects(effects, cur.effects), cur.scripts = concatScripts(scripts, cur.scripts), cur.lastEffect ||= lastEffect, cur;
2040
+ let cur = this, html = "", effects = "", scripts = "", effectsEnd, heldEffects = this.heldEffects, deferredReady;
2041
+ for (this.heldEffects = null, this.serializeState.readyId && this.effects && followHeldEffects(this); cur.next && !cur.async;) cur.markCatchRange(), cur.queueDeferredReorder(), html += cur.html, cur.serializeState.readyId ? deferredReady = push(deferredReady, cur) : (cur.effects && (effectsEnd && effectsEnd.boundary !== cur.boundary && (heldEffects = holdEffectsOn(heldEffects, effectsEnd, effects), effects = ""), effectsEnd = cur, effects = concatEffects(effects, cur.effects)), scripts = concatScripts(scripts, cur.scripts)), deferredReady = concat(deferredReady, cur.takeDeferredReady()), cur.consumed = !0, cur = cur.next;
2042
+ return cur.deferOwnReady(), effects && (cur.serializeState.readyId ? heldEffects = holdEffectsOn(heldEffects, effectsEnd, effects) : effectsEnd.boundary === cur.boundary ? (cur.effects = concatEffects(effects, cur.effects), cur.lastEffect ||= effectsEnd.lastEffect) : (heldEffects = holdEffectsOn(heldEffects, effectsEnd, effects), isWithin(cur.boundary, effectsEnd.boundary) && (cur.lastEffect ||= effectsEnd.lastEffect))), cur.heldEffects = heldEffects, cur.deferredReady = concat(deferredReady, cur.deferredReady), cur.html = html + cur.html, cur.scripts = concatScripts(scripts, cur.scripts), cur;
1958
2043
  }
1959
2044
  render(content, val) {
1960
2045
  let prev = $chunk;
@@ -1988,32 +2073,37 @@ var State = class {
1988
2073
  }
1989
2074
  flushScript(boundary) {
1990
2075
  let { state } = boundary, { $global, runtimePrefix } = state, needsWalk = state.walkOnNextFlush;
1991
- needsWalk && (state.walkOnNextFlush = !1);
2076
+ needsWalk && (state.walkOnNextFlush = !1), flushSerializer(boundary, state);
1992
2077
  let readyResumeScripts = this.flushReadyScripts(boundary, void 0, this.async);
1993
2078
  for (let channel; !boundary.aborted && (channel = state.serializer.pendingReadyChannel());) {
1994
2079
  let resumes = state.serializer.stringifyScopes([], boundary, channel), deps = state.serializer.takeChannelDeps();
1995
2080
  state.needsMainRuntime = !0, readyResumeScripts = concatScripts(readyResumeScripts, state.writeReady(channel.readyId, concatSequence(depsMarker(deps), resumes)));
1996
2081
  }
1997
2082
  readyResumeScripts && (needsWalk = !0);
1998
- let effects = this.async ? "" : this.effects, { html, scripts } = this;
1999
- state.needsMainRuntime && !state.hasMainRuntime && (state.hasMainRuntime = !0, scripts = concatScripts(scripts, "(e=>(self[e]||=(l,f=e+l,s=f.length,a={},d=[],t=document,n=t.createTreeWalker(t,129))=>t=self[e][l]={i:f,d:t,l:a,v:d,x(){},w(e,l,r){for(;e=n.nextNode();)t.x(l=(l=e.data)&&!l.indexOf(f)&&(r=l.slice(s+1),(l=l[s])>\"#\"||(a[r]=e),l),r,e),l>\"#\"&&d.push(e)}},self[e]))(\"" + $global.runtimeId + "\")(\"" + $global.renderId + "\")")), scripts = concatScripts(scripts, readyResumeScripts), effects && (needsWalk = !0, state.resumes = state.resumes ? state.resumes + ",\"" + effects + "\"" : "\"" + effects + "\"");
2083
+ let effects = this.async ? "" : joinHeldEffects(this.takeHeldEffects(), this.effects), { html, scripts } = this;
2084
+ html && state.hasReorderRuntime && (html = state.mark("*", "") + html), state.needsMainRuntime && !state.hasMainRuntime && (state.hasMainRuntime = !0, scripts = concatScripts(scripts, "(e=>(self[e]||=(l,f=e+l,s=f.length,a={},d=[],t=document,n=t.createTreeWalker(t,129))=>t=self[e][l]={i:f,d:t,l:a,v:d,x(){},w(e,l,r){for(;e=n.nextNode();)t.x(l=(l=e.data)&&!l.indexOf(f)&&(r=l.slice(s+1),(l=l[s])>\"#\"||(a[r]=e),l),r,e),l>\"#\"&&d.push(e)}},self[e]))(\"" + $global.runtimeId + "\")(\"" + $global.renderId + "\")")), scripts = concatScripts(scripts, readyResumeScripts), effects && (needsWalk = !0, state.resumes = state.resumes ? state.resumes + ",\"" + effects + "\"" : "\"" + effects + "\"");
2000
2085
  let reordered = "", needsResumeArray = !1;
2001
2086
  if (state.writeReorders) {
2002
2087
  for (let reorderedChunk of state.writeReorders) {
2003
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 + ")"));
2004
- let { reorderId } = reorderedChunk, readyReservations = [], reorderHTML = "", reorderEffects = "", 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;
2005
2090
  for (reorderedChunk.reorderId = null; cur;) {
2006
2091
  cur.markCatchRange(), cur.queueDeferredReorder(), cur.deferOwnReady();
2007
2092
  let { next } = cur, readyResumeScripts = cur.flushReadyScripts(boundary, readyReservations, this.async);
2008
- this.deferredReady = concat(this.deferredReady, cur.takeDeferredReady()), cur.consumed = !0, reorderHTML += cur.html, reorderEffects = concatEffects(reorderEffects, cur.effects), reorderScripts = concatScripts(reorderScripts, concatScripts(readyResumeScripts, cur.scripts)), cur.async && (reorderHTML += state.mark("#", cur.reorderId = state.nextReorderId()), (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;
2009
2099
  }
2010
- reorderEffects && (this.async ? (this.effects = concatEffects(this.effects, reorderEffects), this.lastEffect = "") : (needsResumeArray = !0, reorderScripts = concatScripts(reorderScripts, "_.push(\"" + reorderEffects + "\")")));
2100
+ reorderEffects && (this.async ? holdReorderEffects(this, effectsBoundary, reorderEffects) : (needsResumeArray = !0, reorderScripts = concatScripts(reorderScripts, "_.push(\"" + reorderEffects + "\")")));
2011
2101
  for (let reservation of readyReservations) reordered = concatScripts(reordered, reservation);
2012
- reordered = concatScripts(reordered, reorderScripts && runtimePrefix + ".j" + toAccess(reorderId) + "=_=>{" + reorderScripts + "}"), html += "<t hidden " + state.commentPrefix + "=" + reorderId + ">" + reorderHTML + "</t>";
2102
+ reordered = concatScripts(reordered, reorderScripts && runtimePrefix + ".j" + toAccess(reorderId) + "=_=>{" + reorderScripts + "}"), html += "<t hidden " + state.commentPrefix + "=" + reorderId + ">" + (reorderBranch ? state.mark("*", reorderBranch + "") : "") + reorderHTML + "</t>";
2013
2103
  }
2014
2104
  state.writeReorders = null;
2015
2105
  }
2016
- return flushSerializer(boundary, state), (state.resumes || needsResumeArray && !state.hasWrittenResume) && (scripts = concatScripts(scripts, state.resumeScript(state.resumes))), scripts = concatScripts(scripts, reordered), needsWalk && (scripts = concatScripts(scripts, state.walkScript())), this.html = html, this.scripts = scripts, this.async || (this.effects = this.lastEffect = ""), state.resumes = "", this;
2106
+ return (state.resumes || needsResumeArray && !state.hasWrittenResume) && (scripts = concatScripts(scripts, state.resumeScript(state.resumes))), scripts = concatScripts(scripts, reordered), needsWalk && (scripts = concatScripts(scripts, state.walkScript())), this.html = html, this.scripts = scripts, this.async || (this.effects = this.lastEffect = ""), state.resumes = "", this;
2017
2107
  }
2018
2108
  flushHTML(boundary) {
2019
2109
  let { state } = boundary;
@@ -2029,6 +2119,33 @@ function renderReorderPlaceholders(reorder, reorders) {
2029
2119
  }
2030
2120
  return reorders;
2031
2121
  }
2122
+ function dismissChunk(end, body) {
2123
+ if (end.boundary !== body.boundary) for (; end.next;) end = end.next;
2124
+ return end;
2125
+ }
2126
+ function followHeldEffects(chunk) {
2127
+ let held = reduce(chunk.deferredReady, lastHeldOf, chunk);
2128
+ held !== chunk && (held.effects = concatEffects(held.effects, chunk.effects), chunk.effects = "");
2129
+ }
2130
+ function lastHeldOf(held, cur) {
2131
+ return cur.serializeState === held.serializeState && cur.boundary === held.boundary ? cur : held;
2132
+ }
2133
+ function holdEffectsOn(heldEffects, chunk, effects) {
2134
+ return chunk.effects = effects, push(heldEffects, chunk);
2135
+ }
2136
+ function isWithin(boundary, outer) {
2137
+ for (; boundary && boundary !== outer;) boundary = boundary.parent;
2138
+ return !!boundary;
2139
+ }
2140
+ function holdReorderEffects(head, boundary, effects) {
2141
+ head.serializeState.readyId || (head.effects && (head.heldEffects = holdEffectsOn(head.heldEffects, head.fork(head.boundary, null), head.effects)), head.effects = head.lastEffect = ""), head.heldEffects = holdEffectsOn(head.heldEffects, head.fork(boundary, null), effects);
2142
+ }
2143
+ function joinHeldEffects(heldEffects, effects) {
2144
+ return concatEffects(reduce(heldEffects, joinUncaught, ""), effects);
2145
+ }
2146
+ function joinUncaught(joined, held) {
2147
+ return held.boundary.aborted ? joined : concatEffects(joined, held.effects);
2148
+ }
2032
2149
  function flushSerializer(boundary, serializeState) {
2033
2150
  let { state } = boundary, { serializer } = state, pending = serializer.pending(serializeState);
2034
2151
  if (serializeState.flushScopes || pending) {
@@ -2336,42 +2453,66 @@ function settle(boundary) {
2336
2453
  function NOOP$1() {}
2337
2454
  //#endregion
2338
2455
  //#region src/html/assets.ts
2339
- function withLoadAssets(renderer, assetId, triggers) {
2340
- return Object.assign((input) => {
2341
- let g = $global();
2342
- return addAsset(g, assetId, triggers), _html(flush(g, "")), writeWaitReady(assetId, renderer, input);
2343
- }, renderer);
2456
+ function withLoadAssets(renderer, flush, assetId, triggers) {
2457
+ return Object.assign((input) => (writeLoadAsset(assetId, flush, triggers), writeWaitReady(assetId, renderer, input)), renderer);
2458
+ }
2459
+ function writeLoadAsset(assetId, flush, triggers) {
2460
+ let g = $global();
2461
+ writeAsset(g, addAsset(g, assetId, flush, triggers));
2344
2462
  }
2345
2463
  function withPageAssets(template, runtime, assetId, runtimeId) {
2346
- return assetFlush = runtime, Object.assign((input) => {
2464
+ return Object.assign((input) => {
2347
2465
  let g = $global();
2348
- return runtimeId && (g[kAssets] || (g.runtimeId = runtimeId)), addAsset(g, assetId), g.__flush__ ? (_html(flush(g, "")), writeWaitReady(assetId, template, input)) : (g.__flush__ = flush, template(input));
2466
+ runtimeId && (g[kAssets] || (g.runtimeId = runtimeId));
2467
+ let asset = addAsset(g, assetId, runtime);
2468
+ return g.__flush__ ? (writeAsset(g, asset), writeWaitReady(assetId, template, input)) : (g.__flush__ = flushPage, template(input));
2349
2469
  }, template);
2350
2470
  }
2351
2471
  function _flush_head() {
2352
2472
  let g = $global();
2353
- return g[kAssets] ? flush(g, "") : "";
2473
+ return g[kAssets] ? (g[kHead] = !0, takeAssets(g, catchableBoundary())) : "";
2474
+ }
2475
+ function flushPage(g, html) {
2476
+ return takeAssets(g, null) + html;
2354
2477
  }
2355
- function flush(g, html) {
2356
- let result = "", assets = g[kAssets], { length } = assets, bi = g[kBlockIndex], di = g[kDeferIndex];
2357
- for (; bi < length; bi++) result += assetFlush(g, "block", assets[bi].id);
2358
- for (; di < length; di++) {
2359
- let { id, triggers } = assets[di], deferHTML = assetFlush(g, "defer", id);
2360
- triggers ? deferHTML && writeTriggerScript(id, deferHTML, triggers) : result += deferHTML;
2478
+ function takeAssets(g, at) {
2479
+ let block = "", defer = "";
2480
+ for (let asset of g[kAssets]) asset.htmlAt === void 0 && (asset.htmlAt = at, block += blockHTML(g, asset), asset.triggers || (defer += deferHTML(g, asset)));
2481
+ return block + defer;
2482
+ }
2483
+ function writeAsset(g, asset) {
2484
+ if (needsWrite(asset.htmlAt) && (asset.htmlAt = void 0, g[kHead] || g.__flush__ !== flushPage)) {
2485
+ 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
+ }
2488
+ if (asset.triggers && needsWrite(asset.scriptAt)) {
2489
+ let defer = deferHTML(g, asset);
2490
+ defer && writeScript(asset.script ||= triggerScript(asset.id, defer, asset.triggers)), asset.scriptAt = catchableBoundary();
2361
2491
  }
2362
- return g[kBlockIndex] = bi, g[kDeferIndex] = di, result + html;
2363
2492
  }
2364
- function addAsset(g, id, triggers) {
2365
- let assets = g[kAssets];
2366
- assets ? assets.find((a) => a.id === id) || assets.push({
2367
- id,
2368
- triggers
2369
- }) : (g[kAssets] = [{
2370
- id,
2371
- triggers
2372
- }], g[kBlockIndex] = g[kDeferIndex] = 0);
2493
+ function needsWrite(at) {
2494
+ return at === void 0 || at !== null && mayDrop(at);
2495
+ }
2496
+ function blockHTML(g, asset) {
2497
+ return asset.block ??= asset.flush(g, "block", asset.id);
2498
+ }
2499
+ function deferHTML(g, asset) {
2500
+ return asset.defer ??= asset.flush(g, "defer", asset.id);
2373
2501
  }
2374
- function writeTriggerScript(id, html, triggers) {
2502
+ function addAsset(g, id, flush, triggers) {
2503
+ let assets = g[kAssets] ||= [], asset = assets.find((a) => a.id === id);
2504
+ return asset || assets.push(asset = {
2505
+ id,
2506
+ flush,
2507
+ triggers,
2508
+ block: void 0,
2509
+ defer: void 0,
2510
+ script: void 0,
2511
+ htmlAt: void 0,
2512
+ scriptAt: void 0
2513
+ }), asset;
2514
+ }
2515
+ function triggerScript(id, html, triggers) {
2375
2516
  let htmlStr = _escape_script(JSON.stringify(html)), exprs = triggers.map((trigger) => {
2376
2517
  let options = trigger.options && toObjectExpression(trigger.options);
2377
2518
  switch (trigger.type) {
@@ -2381,7 +2522,7 @@ function writeTriggerScript(id, html, triggers) {
2381
2522
  default: return `(e=>e?.addEventListener("${trigger.type.slice(3)}",l,{once:1}))(${querySelectorOrLoad(trigger.selector)})`;
2382
2523
  }
2383
2524
  });
2384
- writeScript(`((p,h,d,l=$=>{d||p.after(new Range().createContextualFragment(d=h))})=>${exprs.length > 1 ? `{${exprs.join(";")}}` : exprs[0]})(document.currentScript,${htmlStr})`);
2525
+ return `((h,d,l=$=>{d||document.head.append(new Range().createContextualFragment(d=h))})=>${exprs.length > 1 ? `{${exprs.join(";")}}` : exprs[0]})(${htmlStr})`;
2385
2526
  }
2386
2527
  function querySelectorOrLoad(selector) {
2387
2528
  return `document.querySelector(${JSON.stringify(selector)})||l()`;
@@ -2400,6 +2541,10 @@ function drainClassFunctions($global, writeScope) {
2400
2541
  for (let [id, fn, hostId] of pending) register(id, fn, scopeByHost[hostId] ||= writeScope(hostId));
2401
2542
  pending.length = 0;
2402
2543
  }
2544
+ function swapReorders(state, reorders) {
2545
+ let { writeReorders } = state;
2546
+ return state.writeReorders = reorders, writeReorders;
2547
+ }
2403
2548
  function NOOP() {}
2404
2549
  //#endregion
2405
- export { $global, _assert_hoist, _attr, _attr_and, _attr_class, _attr_content, _attr_details_or_dialog_open as _attr_details_open, _attr_details_or_dialog_open as _attr_dialog_open, _attr_input_checked, _attr_input_checkedValue, _attr_input_value, _attr_nonce, _attr_nullish, _attr_option_value, _attr_or, _attr_select_value, _attr_style, _attr_textarea_value, _attrs, _attrs_content, _attrs_partial, _attrs_partial_content, _attrs_select_value, _attrs_textarea_value, _await, _content, _content_resume, _dynamic_tag, _el, _el_read_error, _el_resume, _escape, _escape_comment, _escape_script, _escape_style, _escape_style_value, _existing_scope, _flush_head, _for_in, _for_of, _for_to, _for_until, _hoist, _hoist_read_error, _html, _html_resume, _id, _if, _peek_scope_id, _resume, _resume_branch, _resume_locals, writeScope as _scope, _scope_id, _scope_reason, _scope_with_id, _script, _set_scope_reason, _show_end, _show_start, _style_html, _subscribe, _template, _text_resume, _textarea_value, _to_text, _trailers, _try, _unescaped, _var, _write_guard, _write_if, attrTag, attrTags, compat, forIn, forOf, forTo, forUntil, withLoadAssets, withPageAssets };
2550
+ export { $global, _assert_class_toggles, _assert_hoist, _attr, _attr_and, _attr_class, _attr_content, _attr_details_or_dialog_open as _attr_details_open, _attr_details_or_dialog_open as _attr_dialog_open, _attr_input_checked, _attr_input_checkedValue, _attr_input_value, _attr_nonce, _attr_nullish, _attr_option_value, _attr_or, _attr_select_value, _attr_style, _attr_textarea_value, _attrs, _attrs_content, _attrs_partial, _attrs_partial_content, _attrs_select_value, _attrs_textarea_value, _await, _content, _content_resume, _dynamic_tag, _el, _el_read_error, _el_resume, _escape, _escape_comment, _escape_script, _escape_style, _escape_style_value, _existing_scope, _flush_head, _for_in, _for_of, _for_to, _for_until, _hoist, _hoist_read_error, _html, _html_resume, _id, _if, _peek_scope_id, _resume, _resume_branch, _resume_locals, writeScope as _scope, _scope_id, _scope_reason, _scope_with_id, _script, _set_scope_reason, _show_end, _show_start, _style_html, _subscribe, _template, _text_resume, _textarea_value, _to_text, _trailers, _try, _unescaped, _var, _write_guard, _write_if, attrTag, attrTags, compat, forIn, forOf, forTo, forUntil, withLoadAssets, withPageAssets };