marko 6.3.56 → 6.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/cheatsheet.md +2 -2
  2. package/dist/common/constants/accessor-prefix.d.ts +1 -0
  3. package/dist/common/constants/accessor-prefix.debug.d.ts +1 -0
  4. package/dist/common/constants/accessor-prop.d.ts +3 -0
  5. package/dist/common/constants/accessor-prop.debug.d.ts +3 -0
  6. package/dist/common/types.d.ts +8 -2
  7. package/dist/debug/dom/catch.feat.js +12 -14
  8. package/dist/debug/dom/catch.feat.mjs +12 -14
  9. package/dist/debug/dom/controllable-input.feat.js +1 -1
  10. package/dist/debug/dom/controllable-input.feat.mjs +1 -1
  11. package/dist/debug/dom/controllable-open.feat.js +1 -1
  12. package/dist/debug/dom/controllable-open.feat.mjs +1 -1
  13. package/dist/debug/dom/controllable-select.feat.js +1 -1
  14. package/dist/debug/dom/controllable-select.feat.mjs +1 -1
  15. package/dist/debug/dom/controllable-textarea.feat.js +1 -1
  16. package/dist/debug/dom/controllable-textarea.feat.mjs +1 -1
  17. package/dist/debug/dom/controllable.feat.js +1 -1
  18. package/dist/debug/dom/controllable.feat.mjs +1 -1
  19. package/dist/debug/dom/dynamic-tag-script.feat.js +1 -1
  20. package/dist/debug/dom/dynamic-tag-script.feat.mjs +1 -1
  21. package/dist/debug/dom/dynamic-tag-var.feat.js +1 -1
  22. package/dist/debug/dom/dynamic-tag-var.feat.mjs +1 -1
  23. package/dist/debug/dom/lazy.feat.js +4 -0
  24. package/dist/debug/dom/lazy.feat.mjs +4 -0
  25. package/dist/debug/dom/placeholder.feat.js +1 -1
  26. package/dist/debug/dom/placeholder.feat.mjs +1 -1
  27. package/dist/debug/{dom-DcwejnYg.js → dom-BRO5aArp.js} +232 -178
  28. package/dist/debug/{dom-BeCNT5R5.mjs → dom-Btj2QJhk.mjs} +215 -167
  29. package/dist/debug/dom.js +14 -12
  30. package/dist/debug/dom.mjs +14 -12
  31. package/dist/debug/html.js +603 -517
  32. package/dist/debug/html.mjs +602 -518
  33. package/dist/dom/abort-signal.d.ts +2 -0
  34. package/dist/dom/catch.feat.js +6 -7
  35. package/dist/dom/catch.feat.mjs +5 -7
  36. package/dist/dom/control-flow.d.ts +3 -5
  37. package/dist/dom/controllable-input.feat.js +3 -2
  38. package/dist/dom/controllable-input.feat.mjs +1 -1
  39. package/dist/dom/controllable-open.feat.js +3 -2
  40. package/dist/dom/controllable-open.feat.mjs +1 -1
  41. package/dist/dom/controllable-select.feat.js +3 -2
  42. package/dist/dom/controllable-select.feat.mjs +1 -1
  43. package/dist/dom/controllable-textarea.feat.js +3 -2
  44. package/dist/dom/controllable-textarea.feat.mjs +1 -1
  45. package/dist/dom/controllable.feat.js +3 -2
  46. package/dist/dom/controllable.feat.mjs +1 -1
  47. package/dist/dom/dynamic-tag-script.feat.js +3 -2
  48. package/dist/dom/dynamic-tag-script.feat.mjs +1 -1
  49. package/dist/dom/dynamic-tag-var.feat.js +2 -1
  50. package/dist/dom/dynamic-tag-var.feat.mjs +1 -1
  51. package/dist/dom/lazy.feat.d.ts +1 -0
  52. package/dist/dom/lazy.feat.js +4 -0
  53. package/dist/dom/lazy.feat.mjs +4 -0
  54. package/dist/dom/load.d.ts +3 -3
  55. package/dist/dom/placeholder.feat.js +4 -3
  56. package/dist/dom/placeholder.feat.mjs +1 -1
  57. package/dist/dom/queue.d.ts +2 -4
  58. package/dist/dom/resume.d.ts +1 -1
  59. package/dist/dom/scope.d.ts +0 -1
  60. package/dist/{dom-BwNsIevR.mjs → dom-B-v8Gw6T.mjs} +114 -87
  61. package/dist/{dom-QEF0csuC.js → dom-BSsI9OPC.js} +210 -182
  62. package/dist/dom.js +59 -56
  63. package/dist/dom.mjs +34 -32
  64. package/dist/html/attrs.d.ts +2 -0
  65. package/dist/html/writer.d.ts +5 -11
  66. package/dist/html.d.ts +1 -1
  67. package/dist/html.js +362 -317
  68. package/dist/html.mjs +361 -317
  69. package/dist/translator/index.js +791 -650
  70. package/dist/translator/util/binding-has-prop.d.ts +2 -0
  71. package/dist/translator/util/entry-builder.d.ts +2 -0
  72. package/dist/translator/util/generate-uid.d.ts +5 -0
  73. package/dist/translator/util/references.d.ts +3 -2
  74. package/dist/translator/util/runtime.d.ts +3 -3
  75. package/dist/translator/util/sections.d.ts +8 -2
  76. package/dist/translator/util/serialize-reasons.d.ts +2 -2
  77. package/dist/translator/util/setup-work.d.ts +5 -0
  78. package/dist/translator/util/signals.d.ts +5 -7
  79. package/dist/translator/visitors/tag/native-tag.d.ts +1 -0
  80. package/package.json +3 -3
  81. package/dist/translator/util/setup-statements.d.ts +0 -5
@@ -13,6 +13,7 @@ const KeyedScopes = "KeyedScopes:";
13
13
  const Lifecycle = "Lifecycle:";
14
14
  const Promise$1 = "Promise:";
15
15
  const TagVariableChange$1 = "TagVariableChange:";
16
+ const TryBranch$1 = "TryBranch:";
16
17
  //#endregion
17
18
  //#region src/common/constants/accessor-prop.debug.ts
18
19
  const Global = "$global";
@@ -31,15 +32,18 @@ const Load = "#Load";
31
32
  const LoopKey = "#LoopKey";
32
33
  const ParentBranch = "#ParentBranch";
33
34
  const PendingEffects = "#PendingEffects";
35
+ const PendingEffectScopes = "#PendingEffectScopes";
34
36
  const PendingRenders = "#PendingRenders";
35
37
  const PendingScopes = "#PendingScopes";
36
38
  const PlaceholderBranch = "#PlaceholderBranch";
37
39
  const PlaceholderContent = "#PlaceholderContent";
38
40
  const Renderer = "#Renderer";
41
+ const ReturnValue = "#ReturnValue";
39
42
  const StartNode = "#StartNode";
40
43
  const Subscriptions = "#Subscriptions";
41
44
  const TagVariable = "#TagVariable";
42
45
  const TagVariableChange = "#TagVariableChange";
46
+ const TryBranch = "#TryBranch";
43
47
  //#endregion
44
48
  //#region src/common/constants/closure-scopes-prop.debug.ts
45
49
  const Changed = "Changed";
@@ -134,19 +138,21 @@ const toDelimitedString = function toDelimitedString(val, delimiter, stringify)
134
138
  let str = "";
135
139
  let sep = "";
136
140
  let part;
137
- if (val) if (typeof val !== "object") str += val;
138
- else if (Array.isArray(val)) for (const v of val) {
139
- part = toDelimitedString(v, delimiter, stringify);
140
- if (part) {
141
- str += sep + part;
142
- sep = delimiter;
141
+ if (val) {
142
+ if (typeof val !== "object") str += val;
143
+ else if (Array.isArray(val)) for (const v of val) {
144
+ part = toDelimitedString(v, delimiter, stringify);
145
+ if (part) {
146
+ str += sep + part;
147
+ sep = delimiter;
148
+ }
143
149
  }
144
- }
145
- else for (const name in val) {
146
- part = stringify(name, val[name]);
147
- if (part) {
148
- str += sep + part;
149
- sep = delimiter;
150
+ else for (const name in val) {
151
+ part = stringify(name, val[name]);
152
+ if (part) {
153
+ str += sep + part;
154
+ sep = delimiter;
155
+ }
150
156
  }
151
157
  }
152
158
  return str;
@@ -319,8 +325,6 @@ function forUntil(until, from, step, cb) {
319
325
  //#region src/dom/queue.ts
320
326
  let rendering;
321
327
  let runId = 2;
322
- const caughtError = /* @__PURE__ */ new WeakSet();
323
- const placeholderShown = /* @__PURE__ */ new WeakSet();
324
328
  let pendingEffects = [];
325
329
  let pendingRenders = [];
326
330
  const scopeKeyOffset = 1e6;
@@ -397,10 +401,10 @@ let runRender = (render) => {
397
401
  if (!branchesEnabled || render["scope"]["#ClosestBranch"]?.["#Gen"] !== 0) render[Signal](render[Scope], render[Value]);
398
402
  };
399
403
  let catchEnabled;
400
- function installCatch(wrapEffects, wrapRender) {
404
+ function installCatch(catchEffects, wrapRender) {
401
405
  catchEnabled = 1;
402
406
  withBranches();
403
- runEffects = wrapEffects(runEffects);
407
+ runEffects = catchEffects;
404
408
  runRender = wrapRender(runRender);
405
409
  }
406
410
  function runRenders() {
@@ -441,6 +445,12 @@ function $signal(scope, id) {
441
445
  trackCleanup(scope);
442
446
  return ((scope[AbortControllers] ||= {})[id] ||= new AbortController()).signal;
443
447
  }
448
+ /** Runs `abort` as a destroyed scope's `$signal` would fire, without creating one. */
449
+ function trackAbort(scope, id, abort) {
450
+ abortsEnabled = 1;
451
+ trackCleanup(scope);
452
+ (scope[AbortControllers] ||= {})[id] = { abort };
453
+ }
444
454
  /** Enrols `scope` with its branch so destroying the branch cleans it up. */
445
455
  function trackCleanup(scope, subscribers) {
446
456
  const branch = scope[ClosestBranch];
@@ -461,8 +471,10 @@ function toArray(opt) {
461
471
  return opt ? Array.isArray(opt) ? opt : [opt] : [];
462
472
  }
463
473
  function forEach(opt, cb) {
464
- if (opt) if (Array.isArray(opt)) for (const item of opt) cb(item);
465
- else cb(opt);
474
+ if (opt) {
475
+ if (Array.isArray(opt)) for (const item of opt) cb(item);
476
+ else cb(opt);
477
+ }
466
478
  }
467
479
  function push(opt, item) {
468
480
  return opt ? Array.isArray(opt) ? (opt.push(item), opt) : [opt, item] : item;
@@ -537,11 +549,6 @@ function collectScopes(fn) {
537
549
  function skipScope() {
538
550
  return nextScopeId++;
539
551
  }
540
- function findBranchWithKey(scope, key) {
541
- let branch = scope[ClosestBranch];
542
- while (branch && branch[key] == null) branch = branch[ParentBranch];
543
- return branch;
544
- }
545
552
  function destroyBranch(branch) {
546
553
  branch[ParentBranch]?.[BranchScopes]?.delete(branch);
547
554
  destroyNestedScopes(branch);
@@ -632,11 +639,12 @@ function _let_change(id, fn) {
632
639
  const valueChangeAccessor = TagVariableChange$1 + valueAccessor;
633
640
  const base = _let(id, fn);
634
641
  return (scope, value, valueChange) => {
635
- if (rendering) if ((scope[valueChangeAccessor] = valueChange) && (scope[valueAccessor] !== value || !(valueAccessor in scope))) {
636
- scope[valueAccessor] = value;
637
- fn?.(scope);
638
- } else base(scope, value);
639
- else if (scope[valueChangeAccessor]) scope[valueChangeAccessor](value);
642
+ if (rendering) {
643
+ if ((scope[valueChangeAccessor] = valueChange) && (scope[valueAccessor] !== value || !(valueAccessor in scope))) {
644
+ scope[valueAccessor] = value;
645
+ fn?.(scope);
646
+ } else base(scope, value);
647
+ } else if (scope[valueChangeAccessor]) scope[valueChangeAccessor](value);
640
648
  else base(scope, value);
641
649
  return value;
642
650
  };
@@ -651,10 +659,11 @@ function _const(valueAccessor, fn) {
651
659
  }
652
660
  function _or(id, fn, defaultPending = 1, scopeIdAccessor = "#Id") {
653
661
  return (scope) => {
654
- if (scope["#Gen"] === runId) if (~id in scope) {
655
- if (!--scope[~id]) fn(scope);
656
- } else scope[~id] = defaultPending;
657
- else queueRender(scope, fn, id, 0, scope[scopeIdAccessor]);
662
+ if (scope["#Gen"] === runId) {
663
+ if (~id in scope) {
664
+ if (!--scope[~id]) fn(scope);
665
+ } else scope[~id] = defaultPending;
666
+ } else queueRender(scope, fn, id, 0, scope[scopeIdAccessor]);
658
667
  };
659
668
  }
660
669
  function _for_closure(ownerLoopNodeAccessor, fn) {
@@ -737,7 +746,8 @@ function _closure_get(valueAccessor, fn, getOwnerScope, resumeId) {
737
746
  const closureSignal = ((scope, resumed) => {
738
747
  const ownerScope = getOwnerScope ? getOwnerScope(scope) : scope["_"];
739
748
  scope[closureSignal[SignalIndexAccessor]] = closureSignal[Index];
740
- if (!resumed || ownerScope[closureSignal["scopeInstancesAccessor"]]["Changed"]) fn(scope);
749
+ if (!resumed) fn(scope);
750
+ else if (ownerScope[closureSignal["scopeInstancesAccessor"]]["Changed"]) queueAsyncRender(scope, closureSignal);
741
751
  subscribeToScopeSet(ownerScope, closureSignal[ScopeInstancesAccessor], scope);
742
752
  });
743
753
  closureSignal[ScopeInstancesAccessor] = ClosureScopes + valueAccessor;
@@ -753,9 +763,11 @@ function _child_setup(setup) {
753
763
  return setup;
754
764
  }
755
765
  function _var(scope, childAccessor, signal) {
756
- scope[childAccessor][TagVariable] = (value) => signal(scope, value);
766
+ const childScope = scope[childAccessor];
767
+ childScope[TagVariable] = (value) => signal(scope, value);
768
+ if ("#ReturnValue" in childScope) signal(scope, childScope[ReturnValue]);
757
769
  }
758
- const _return = (scope, value) => scope[TagVariable]?.(value);
770
+ const _return = (scope, value) => scope["#TagVariable"] ? scope[TagVariable](value) : scope[ReturnValue] = value;
759
771
  function _return_change(scope, changeHandler) {
760
772
  scope[TagVariableChange] = changeHandler || void 0;
761
773
  }
@@ -782,7 +794,7 @@ function _script(id, fn) {
782
794
  };
783
795
  }
784
796
  function _global_read($global, key) {
785
- if (!(key in $global)) console.error(`\`$global.${key}\` is not serialized to the client, so this read is \`undefined\`. Add \`${key}\` to \`serializedGlobals\` at the render call.`);
797
+ if (!(key in $global)) console.error(`\`$global.${key}\` is not serialized to the client, so this read is \`undefined\`. Serialized globals are embedded in the page: add \`${key}\` to \`serializedGlobals\` at the render call only if it holds no secrets; otherwise copy the field the client needs into its own \`$global\` key and serialize that.`);
786
798
  return $global[key];
787
799
  }
788
800
  function _el_read(value) {
@@ -791,12 +803,14 @@ function _el_read(value) {
791
803
  }
792
804
  function* traverse(scope, path, args, i = path.length - 1) {
793
805
  if (rendering) _hoist_read_error();
794
- if (scope) if (Symbol.iterator in scope) {
795
- for (const childScope of scope.values()) if (childScope["#Gen"] !== 0) yield* traverse(childScope, path, args, i);
796
- } else {
797
- const item = scope[path[i]];
798
- if (i) yield* traverse(item, path, args, i - 1);
799
- else yield typeof item === "function" ? item(...args) : item;
806
+ if (scope) {
807
+ if (Symbol.iterator in scope) {
808
+ for (const childScope of scope.values()) if (childScope["#Gen"] !== 0) yield* traverse(childScope, path, args, i);
809
+ } else {
810
+ const item = scope[path[i]];
811
+ if (i) yield* traverse(item, path, args, i - 1);
812
+ else yield typeof item === "function" ? item(...args) : item;
813
+ }
800
814
  }
801
815
  }
802
816
  function _hoist(...path) {
@@ -880,9 +894,8 @@ function readyFailed(readyId) {
880
894
  (failedIds ||= /* @__PURE__ */ new Set()).add(readyId);
881
895
  console.error(`The lazy module for "${readyId}" failed to load; its server-rendered content cannot become interactive.`);
882
896
  }
883
- function withLazy(runtime) {
897
+ function withLazy() {
884
898
  lazyEnabled = 1;
885
- return runtime;
886
899
  }
887
900
  function initEmbedded(readyId, runtimeId) {
888
901
  if (!embedRenders) {
@@ -956,7 +969,7 @@ function init(runtimeId = "M") {
956
969
  setParentBranch(branch, branch[ClosestBranch]);
957
970
  if (branch["#AwaitCounter"] = render.p?.[branchId]) branch[AwaitCounter].m = render.m;
958
971
  if (singleNode) {
959
- while (startVisit.previousSibling && ~visits.indexOf(startVisit = startVisit.previousSibling));
972
+ while (startVisit.previousSibling && (startVisit = startVisit.previousSibling).nodeType > 1);
960
973
  branch["_"] ??= visitScope;
961
974
  branch[EndNode] = branch[StartNode] = startVisit;
962
975
  if (visitType === "(") branch[getDebugKey(0, startVisit)] = startVisit;
@@ -1023,6 +1036,7 @@ function init(runtimeId = "M") {
1023
1036
  let embedAnchor;
1024
1037
  serializeContext._ = _resumed;
1025
1038
  if (render.m) throw new Error(`Marko rendered multiple times with $global.runtimeId as ${JSON.stringify(runtimeId)} and $global.renderId as ${JSON.stringify(renderId)}. Ensure each render into a page has a unique $global.renderId.`);
1039
+ for (const otherId in curRenders) if (otherId !== renderId && (otherId.startsWith(renderId) || renderId.startsWith(otherId))) console.error(`Marko rendered with $global.runtimeId as ${JSON.stringify(runtimeId)} and $global.renderId as both ${JSON.stringify(otherId)} and ${JSON.stringify(renderId)}, so one render claims the other's resume comments. Ensure no $global.renderId in a page starts another.`);
1026
1040
  render.m = (effects) => {
1027
1041
  processResumes(render.r, effects);
1028
1042
  if (readyIds && render.b) for (let progress = 1; progress;) {
@@ -1038,13 +1052,14 @@ function init(runtimeId = "M") {
1038
1052
  visitText = visit.data;
1039
1053
  visitType = visitText[lastTokenIndex++];
1040
1054
  visitScope = getScope(nextToken());
1041
- if (dynamicHtmlEnabled && visitType > "%" && visitType <= "'") if (visitType === "&") htmlStart = visit;
1042
- else {
1043
- visitScope[nextToken()] = htmlStart;
1044
- visitScope[DynamicHTMLLastChild + lastToken] = visit;
1045
- if ((branchesEnabled || lazyEnabled) && pending[pending.length - 1] !== visitScope) pending.push(visitScope);
1046
- }
1047
- else if (branchesEnabled && visitType > "'") (visitBranches ||= createVisitBranches())();
1055
+ if (dynamicHtmlEnabled && visitType > "%" && visitType <= "'") {
1056
+ if (visitType === "&") htmlStart = visit;
1057
+ else {
1058
+ visitScope[nextToken()] = htmlStart;
1059
+ visitScope[DynamicHTMLLastChild + lastToken] = visit;
1060
+ if ((branchesEnabled || lazyEnabled) && pending[pending.length - 1] !== visitScope) pending.push(visitScope);
1061
+ }
1062
+ } else if (branchesEnabled && visitType > "'") (visitBranches ||= createVisitBranches())();
1048
1063
  else if (lazyEnabled && render.b && visitType > "%") visits[retained++] = visit;
1049
1064
  else {
1050
1065
  visitScope[nextToken()] = visitType === "%" ? visit.parentNode.insertBefore(new Text(), visit) : visit.previousSibling;
@@ -1079,7 +1094,7 @@ let isResuming;
1079
1094
  function runResumeEffects(render) {
1080
1095
  try {
1081
1096
  isResuming = 1;
1082
- runEffects(render.m([]), 1);
1097
+ runEffects(render.m([]));
1083
1098
  } finally {
1084
1099
  isResuming = 0;
1085
1100
  }
@@ -1195,8 +1210,10 @@ function _attr(element, name, value) {
1195
1210
  setAttribute(element, name, normalizeAttrValue(value));
1196
1211
  }
1197
1212
  function setAttribute(element, name, value) {
1198
- if (element.getAttribute(name) != value) if (value === void 0) element.removeAttribute(name);
1199
- else element.setAttribute(name, value);
1213
+ if (element.getAttribute(name) != value) {
1214
+ if (value === void 0) element.removeAttribute(name);
1215
+ else element.setAttribute(name, value);
1216
+ }
1200
1217
  }
1201
1218
  function _attr_class(element, value) {
1202
1219
  setAttribute(element, "class", toDelimitedString(value, " ", stringifyClassObject) || void 0);
@@ -1301,7 +1318,6 @@ function attrsInternal(scope, nodeAccessor, nextAttrs, controllable) {
1301
1318
  assertValidAttrName(name);
1302
1319
  if (isEventHandler(name)) (events ||= scope[EventAttributes + nodeAccessor] = {})[getEventHandlerName(name)] = value;
1303
1320
  else if (!(skip?.test(name) || name === "content" && el.tagName !== "META")) _attr(el, name, value);
1304
- break;
1305
1321
  }
1306
1322
  }
1307
1323
  }
@@ -1334,8 +1350,10 @@ const _html = /*@__PURE__*/ withDynamicHtml(function _html(scope, value, accesso
1334
1350
  });
1335
1351
  function normalizeClientRender(value) {
1336
1352
  const renderer = normalizeDynamicRenderer(value);
1337
- if (renderer) if (renderer["id"]) return renderer;
1338
- else throw new Error(`Invalid \`content\` attribute. Received ${typeof value}`);
1353
+ if (renderer) {
1354
+ if (renderer["id"]) return renderer;
1355
+ else throw new Error(`Invalid \`content\` attribute. Received ${typeof value}`);
1356
+ }
1339
1357
  }
1340
1358
  function normalizeAttrValue(value) {
1341
1359
  if (isNotVoid(value)) return value === true ? "" : value + "";
@@ -1353,7 +1371,7 @@ function _lifecycle(scope, thisObj, index = 0) {
1353
1371
  Object.assign(thisObj, thisObj.onMount?.());
1354
1372
  for (const prop in snapshot) if (!Object.is(snapshot[prop], thisObj[prop])) throw new Error(`Tried to overwrite existing property "${prop}" in <lifecycle> onMount.`);
1355
1373
  }
1356
- $signal(scope, accessor).onabort = () => thisObj.onDestroy?.();
1374
+ trackAbort(scope, accessor, () => thisObj.onDestroy?.());
1357
1375
  }
1358
1376
  }
1359
1377
  function removeChildNodes(startNode, endNode) {
@@ -1455,8 +1473,10 @@ function _attr_input_checkedValue(scope, nodeAccessor, checkedValue, checkedValu
1455
1473
  }
1456
1474
  function _attr_input_checkedValue_script(scope, nodeAccessor) {
1457
1475
  const el = scope[nodeAccessor];
1458
- if (isResuming && el.defaultChecked) if (scope["ControlledValue:" + nodeAccessor]) scope[ControlledValue + nodeAccessor].push(el.value);
1459
- else scope[ControlledValue + nodeAccessor] = el.value;
1476
+ if (isResuming && el.defaultChecked) {
1477
+ if (scope["ControlledValue:" + nodeAccessor]) scope[ControlledValue + nodeAccessor].push(el.value);
1478
+ else scope[ControlledValue + nodeAccessor] = el.value;
1479
+ }
1460
1480
  syncControllableFormInput(el, hasCheckboxChanged, () => {
1461
1481
  const checkedValueChange = scope[ControlledHandler + nodeAccessor];
1462
1482
  if (checkedValueChange) {
@@ -1565,14 +1585,16 @@ function _attr_select_value_script(scope, nodeAccessor) {
1565
1585
  run();
1566
1586
  }
1567
1587
  };
1568
- if (isResuming) if (el.multiple) {
1569
- scope[ControlledValue + nodeAccessor] = [];
1570
- for (const opt of el.options) if (opt.defaultSelected) scope[ControlledValue + nodeAccessor].push(opt.value);
1571
- } else {
1572
- scope[ControlledValue + nodeAccessor] = "";
1573
- for (const opt of el.options) if (opt.defaultSelected) {
1574
- scope[ControlledValue + nodeAccessor] = opt.value;
1575
- break;
1588
+ if (isResuming) {
1589
+ if (el.multiple) {
1590
+ scope[ControlledValue + nodeAccessor] = [];
1591
+ for (const opt of el.options) if (opt.defaultSelected) scope[ControlledValue + nodeAccessor].push(opt.value);
1592
+ } else {
1593
+ scope[ControlledValue + nodeAccessor] = "";
1594
+ for (const opt of el.options) if (opt.defaultSelected) {
1595
+ scope[ControlledValue + nodeAccessor] = opt.value;
1596
+ break;
1597
+ }
1576
1598
  }
1577
1599
  }
1578
1600
  syncControllableFormInput(el, hasSelectChanged, onChange);
@@ -1694,6 +1716,7 @@ function _controllable_open(scope, nodeAccessor, nextAttrs) {
1694
1716
  function _await_promise(nodeAccessor, params) {
1695
1717
  const promiseAccessor = Promise$1 + nodeAccessor;
1696
1718
  const branchAccessor = BranchScopes$1 + nodeAccessor;
1719
+ const tryAccessor = TryBranch$1 + nodeAccessor;
1697
1720
  const resolveAwait = (scope, referenceNode, value) => {
1698
1721
  const awaitBranch = scope[branchAccessor];
1699
1722
  if (awaitBranch["#DetachedAwait"]) {
@@ -1709,80 +1732,73 @@ function _await_promise(nodeAccessor, params) {
1709
1732
  const awaitPromise = (scope, promise) => {
1710
1733
  if (!isPromise(scope[promiseAccessor])) scope[promiseAccessor] = 0;
1711
1734
  let awaitBranch = scope[branchAccessor];
1712
- const tryPlaceholder = (isPromise(promise) || scope[promiseAccessor]) && findBranchWithKey(scope, "#PlaceholderContent");
1713
- const tryBranch = tryPlaceholder || awaitBranch;
1735
+ const tryBranch = scope[tryAccessor] || isPromise(promise) && findTryWithPlaceholder(scope) || awaitBranch;
1714
1736
  if (!tryBranch) {
1715
1737
  const deferred = scope[promiseAccessor] = () => deferred === scope[promiseAccessor] && awaitPromise(scope, promise);
1716
- const awaitCounter = findBranchWithKey(scope, PlaceholderContent)?.[AwaitCounter];
1738
+ const awaitCounter = findTryWithPlaceholder(scope)?.[AwaitCounter];
1717
1739
  if (awaitCounter?.i) {
1718
1740
  const complete = awaitCounter.c;
1719
1741
  awaitCounter.c = () => complete() || queueAsyncRender(scope, deferred);
1720
1742
  }
1721
1743
  return;
1722
1744
  }
1723
- if (!isPromise(promise)) return scope[promiseAccessor] ? awaitPromise(scope, Promise.resolve(promise)) : resolveAwait(scope, scope[nodeAccessor], promise);
1745
+ if (!isPromise(promise)) return scope[tryAccessor] ? awaitPromise(scope, Promise.resolve(promise)) : resolveAwait(scope, scope[nodeAccessor], promise);
1724
1746
  let awaitCounter = tryBranch[AwaitCounter];
1725
- placeholderShown.add(pendingEffects);
1726
- if (!tryPlaceholder && !awaitCounter?.i) awaitCounter = createAwaitCounter(tryBranch, () => {
1727
- if (tryBranch === scope[branchAccessor]) {
1728
- const anchor = scope[nodeAccessor];
1729
- if (anchor.parentNode) {
1730
- const detachedParent = scope[branchAccessor][StartNode].parentNode;
1731
- if (detachedParent === anchor.parentNode) anchor.remove();
1732
- else anchor.replaceWith(detachedParent);
1733
- }
1734
- }
1735
- });
1736
- if (!scope[promiseAccessor]) {
1737
- if (awaitBranch) awaitBranch[PendingRenders] ||= [];
1738
- if (tryPlaceholder) awaitCounter = addAwaitCounter(scope, tryPlaceholder);
1739
- else scheduleAwaitFrame(awaitCounter, scope, () => {
1740
- if (!awaitBranch["#DetachedAwait"]) {
1741
- awaitBranch[StartNode].parentNode.insertBefore(scope[nodeAccessor], awaitBranch[StartNode]);
1742
- tempDetachBranch(tryBranch);
1743
- }
1747
+ if (!scope[tryAccessor]) {
1748
+ scope[tryAccessor] = tryBranch;
1749
+ trackAbort(scope, promiseAccessor, () => {
1750
+ scope[promiseAccessor] = 0;
1751
+ if (scope[tryAccessor]) queueAsyncRender(scope[tryAccessor], completeAwaitCounter, awaitCounter);
1744
1752
  });
1753
+ if (awaitBranch) awaitBranch[PendingRenders] ||= [];
1754
+ if (tryBranch !== awaitBranch) awaitCounter = addAwaitCounter(scope, tryBranch);
1755
+ else {
1756
+ if (!awaitCounter?.i) awaitCounter = createAwaitCounter(tryBranch, () => {
1757
+ if (tryBranch === scope[branchAccessor]) {
1758
+ const anchor = scope[nodeAccessor];
1759
+ if (anchor.parentNode) {
1760
+ const detachedParent = scope[branchAccessor][StartNode].parentNode;
1761
+ if (detachedParent === anchor.parentNode) anchor.remove();
1762
+ else anchor.replaceWith(detachedParent);
1763
+ }
1764
+ }
1765
+ });
1766
+ scheduleAwaitFrame(awaitCounter, scope, () => {
1767
+ if (!awaitBranch["#DetachedAwait"]) {
1768
+ awaitBranch[StartNode].parentNode.insertBefore(scope[nodeAccessor], awaitBranch[StartNode]);
1769
+ tempDetachBranch(tryBranch);
1770
+ }
1771
+ });
1772
+ }
1745
1773
  }
1746
1774
  const thisPromise = scope[promiseAccessor] = promise.then((data) => {
1747
1775
  if (thisPromise === scope[promiseAccessor]) {
1748
1776
  const referenceNode = scope[nodeAccessor];
1749
1777
  scope[promiseAccessor] = 0;
1750
- if (!scope[branchAccessor] || scope["#ClosestBranch"]?.["#Gen"] === 0) {
1751
- if (!scope[branchAccessor]) awaitPromise(scope, data);
1778
+ if (!scope[branchAccessor]) {
1779
+ scope[tryAccessor] = 0;
1780
+ awaitPromise(scope, data);
1752
1781
  awaitCounter.c();
1753
1782
  run();
1754
- return;
1755
- }
1756
- queueAsyncRender(scope, () => {
1757
- awaitBranch = resolveAwait(scope, referenceNode, data);
1758
- const pendingRenders = awaitBranch[PendingRenders];
1759
- awaitBranch[PendingRenders] = 0;
1760
- pendingRenders?.forEach(queuePendingRender);
1761
- placeholderShown.add(pendingEffects);
1762
- awaitCounter.c();
1763
- if (awaitCounter.m) {
1764
- const fnScopes = /* @__PURE__ */ new Map();
1765
- const effects = awaitCounter.m([]);
1766
- for (let i = 0; i < pendingEffects.length;) {
1767
- const fn = pendingEffects[i++];
1768
- let scopes = fnScopes.get(fn);
1769
- if (!scopes) fnScopes.set(fn, scopes = /* @__PURE__ */ new Set());
1770
- scopes.add(pendingEffects[i++]);
1771
- }
1772
- for (let i = 0; i < effects.length;) {
1773
- const fn = effects[i++];
1774
- const scope = effects[i++];
1775
- if (!fnScopes.get(fn)?.has(scope)) queueEffect(scope, fn);
1776
- }
1783
+ } else queueAsyncRender(scope, () => {
1784
+ if (!scope[promiseAccessor]) {
1785
+ awaitBranch = resolveAwait(scope, referenceNode, data);
1786
+ const pendingRenders = awaitBranch[PendingRenders];
1787
+ awaitBranch[PendingRenders] = 0;
1788
+ pendingRenders?.forEach(queuePendingRender);
1789
+ scope[tryAccessor] = 0;
1790
+ queueCompleteAwaitCounter(tryBranch, awaitCounter);
1777
1791
  }
1778
1792
  });
1779
1793
  }
1780
1794
  }, (error) => {
1781
1795
  if (thisPromise === scope[promiseAccessor]) {
1782
- scope[promiseAccessor] = 0;
1783
- if (tryPlaceholder && !awaitCounter.m) awaitCounter.c();
1784
- else awaitCounter.i = 0;
1796
+ scope[promiseAccessor] = scope[tryAccessor] = 0;
1785
1797
  queueAsyncRender(scope, renderCatch, error);
1798
+ if (tryBranch !== awaitBranch && !awaitCounter.m) {
1799
+ if (findTryWithCatch(scope)) queueCompleteAwaitCounter(tryBranch, awaitCounter);
1800
+ else awaitCounter.c();
1801
+ } else awaitCounter.i = 0;
1786
1802
  }
1787
1803
  });
1788
1804
  };
@@ -1798,13 +1814,13 @@ function _await_content(nodeAccessor, template, walks, setup) {
1798
1814
  if (typeof scope[promiseAccessor] === "function") scope[promiseAccessor]();
1799
1815
  };
1800
1816
  }
1801
- function addAwaitCounter(scope, tryBranch = findBranchWithKey(scope, PlaceholderContent)) {
1817
+ function addAwaitCounter(scope, tryBranch = findTryWithPlaceholder(scope)) {
1802
1818
  if (!tryBranch) return;
1803
1819
  let awaitCounter = tryBranch[AwaitCounter];
1804
1820
  if (!awaitCounter?.i) awaitCounter = createAwaitCounter(tryBranch, () => dismissPlaceholder(tryBranch));
1805
- placeholderShown.add(pendingEffects);
1806
1821
  scheduleAwaitFrame(awaitCounter, tryBranch, () => {
1807
- insertBranchBefore(tryBranch[PlaceholderBranch] = createAndSetupBranch(tryBranch[Global], tryBranch[PlaceholderContent], tryBranch["_"], tryBranch[StartNode].parentNode), tryBranch[StartNode].parentNode, tryBranch[StartNode]);
1822
+ (tryBranch[PlaceholderBranch] = createAndSetupBranch(tryBranch[Global], tryBranch[PlaceholderContent](), tryBranch["_"], tryBranch[StartNode].parentNode))[TryBranch] = tryBranch;
1823
+ insertBranchBefore(tryBranch[PlaceholderBranch], tryBranch[StartNode].parentNode, tryBranch[StartNode]);
1808
1824
  tempDetachBranch(tryBranch);
1809
1825
  });
1810
1826
  return awaitCounter;
@@ -1812,10 +1828,32 @@ function addAwaitCounter(scope, tryBranch = findBranchWithKey(scope, Placeholder
1812
1828
  function scheduleAwaitFrame(awaitCounter, scope, render) {
1813
1829
  if (!awaitCounter.i++) requestAnimationFrame(() => awaitCounter.i && runEffects(prepareEffects(() => queueRender(scope, render, -1))));
1814
1830
  }
1831
+ function queueCompleteAwaitCounter(tryBranch, awaitCounter) {
1832
+ queueRender(tryBranch, completeAwaitCounter, -1, awaitCounter, tryBranch["#Id"] + 1e9);
1833
+ }
1834
+ function completeAwaitCounter(_scope, awaitCounter) {
1835
+ awaitCounter.c();
1836
+ if (awaitCounter.m) {
1837
+ const fnScopes = /* @__PURE__ */ new Map();
1838
+ const effects = awaitCounter.m([]);
1839
+ for (let i = 0; i < pendingEffects.length;) {
1840
+ const fn = pendingEffects[i++];
1841
+ let scopes = fnScopes.get(fn);
1842
+ if (!scopes) fnScopes.set(fn, scopes = /* @__PURE__ */ new Set());
1843
+ scopes.add(pendingEffects[i++]);
1844
+ }
1845
+ for (let i = 0; i < effects.length;) {
1846
+ const fn = effects[i++];
1847
+ const scope = effects[i++];
1848
+ if (!fnScopes.get(fn)?.has(scope)) queueEffect(scope, fn);
1849
+ }
1850
+ }
1851
+ }
1815
1852
  function createAwaitCounter(tryBranch, done) {
1816
1853
  const awaitCounter = tryBranch[AwaitCounter] = {
1817
1854
  i: 0,
1818
1855
  c() {
1856
+ if (awaitCounter.i < 1) throw new Error("An await counter completed more counts than it took.");
1819
1857
  if (--awaitCounter.i) return 1;
1820
1858
  done();
1821
1859
  queueEffect(tryBranch, runPendingEffects);
@@ -1823,12 +1861,8 @@ function createAwaitCounter(tryBranch, done) {
1823
1861
  };
1824
1862
  return awaitCounter;
1825
1863
  }
1826
- function runPendingEffects(scope) {
1827
- const effects = scope[PendingEffects];
1828
- if (effects) {
1829
- scope[PendingEffects] = [];
1830
- runEffects(effects, 1);
1831
- }
1864
+ function runPendingEffects(tryBranch) {
1865
+ tryBranch[PendingEffectScopes]?.forEach((scope) => scope[PendingEffects].forEach((fn) => runEffects([fn, scope]), scope[PendingEffects] = null), tryBranch[PendingEffectScopes] = null);
1832
1866
  }
1833
1867
  function dismissPlaceholder(tryBranch) {
1834
1868
  const placeholderBranch = tryBranch[PlaceholderBranch];
@@ -1838,21 +1872,19 @@ function dismissPlaceholder(tryBranch) {
1838
1872
  removeAndDestroyBranch(placeholderBranch);
1839
1873
  }
1840
1874
  }
1841
- function _try(nodeAccessor, template, walks, setup) {
1875
+ function _try(nodeAccessor, template, walks, setup, placeholderContent, catchContent) {
1842
1876
  const branchAccessor = BranchScopes$1 + nodeAccessor;
1843
1877
  const renderer = _content("", template, walks, setup)();
1844
- return (scope, input) => {
1845
- if (!scope[branchAccessor]) setConditionalRenderer(scope, nodeAccessor, renderer, createAndSetupBranch);
1878
+ return (scope) => {
1879
+ setConditionalRenderer(scope, nodeAccessor, renderer, createAndSetupBranch);
1846
1880
  const branch = scope[branchAccessor];
1847
- if (branch) {
1848
- branch[BranchAccessor] = nodeAccessor;
1849
- branch[CatchContent] = input.catch && (normalizeDynamicRenderer(input.catch) || 0);
1850
- branch[PlaceholderContent] = normalizeDynamicRenderer(input.placeholder);
1851
- }
1881
+ branch[BranchAccessor] = nodeAccessor;
1882
+ branch[CatchContent] = catchContent;
1883
+ branch[PlaceholderContent] = placeholderContent || void 0;
1852
1884
  };
1853
1885
  }
1854
1886
  function renderCatch(scope, error) {
1855
- const tryWithCatch = findBranchWithKey(scope, CatchContent);
1887
+ const tryWithCatch = findTryWithCatch(scope);
1856
1888
  if (!tryWithCatch) throw error;
1857
1889
  else {
1858
1890
  const owner = tryWithCatch["_"];
@@ -1862,11 +1894,21 @@ function renderCatch(scope, error) {
1862
1894
  owner[BranchScopes$1 + tryWithCatch[BranchAccessor]] = placeholderBranch;
1863
1895
  destroyBranch(tryWithCatch);
1864
1896
  }
1865
- caughtError.add(pendingEffects);
1866
- setConditionalRenderer(owner, tryWithCatch[BranchAccessor], tryWithCatch[CatchContent], createAndSetupBranch);
1867
- tryWithCatch[CatchContent]?.[Params]?.(owner[BranchScopes$1 + tryWithCatch[BranchAccessor]], [error]);
1897
+ const catchContent = tryWithCatch[CatchContent]();
1898
+ setConditionalRenderer(owner, tryWithCatch[BranchAccessor], catchContent, createAndSetupBranch);
1899
+ catchContent[Params]?.(owner[BranchScopes$1 + tryWithCatch[BranchAccessor]], [error]);
1868
1900
  }
1869
1901
  }
1902
+ function findTryWithPlaceholder(scope) {
1903
+ let branch = scope[ClosestBranch];
1904
+ while (branch && !branch["#PlaceholderContent"]) branch = branch[ParentBranch];
1905
+ return branch;
1906
+ }
1907
+ function findTryWithCatch(scope) {
1908
+ let branch = scope[ClosestBranch];
1909
+ while (branch && !branch["#CatchContent"]) branch = branch["#TryBranch"] || branch["#ParentBranch"];
1910
+ return branch;
1911
+ }
1870
1912
  const _if = /*@__PURE__*/ withBranches((nodeAccessor, ...branchesArgs) => {
1871
1913
  const branchAccessor = ConditionalRenderer + nodeAccessor;
1872
1914
  const branches = [];
@@ -1923,10 +1965,12 @@ let _dynamic_tag = /*@__PURE__*/ withBranches((nodeAccessor, getContent, getTagV
1923
1965
  if (scope[rendererAccessor] !== (scope[rendererAccessor] = rendererKey(normalizedRenderer)) || getContent && !(normalizedRenderer || scope[childScopeAccessor])) {
1924
1966
  const renderer = normalizedRenderer || (getContent ? getContent(scope) : void 0);
1925
1967
  setConditionalRenderer(scope, nodeAccessor, renderer, createBranchWithTagNameOrRenderer);
1926
- if (getTagVar) if (scope[childScopeAccessor]) {
1927
- scope[childScopeAccessor][TagVariable] = (value) => getTagVar()(scope, value);
1928
- if (typeof normalizedRenderer === "string") bindNativeTagVar?.(scope[childScopeAccessor]);
1929
- } else getTagVar()(scope, void 0);
1968
+ if (getTagVar) {
1969
+ if (scope[childScopeAccessor]) {
1970
+ scope[childScopeAccessor][TagVariable] = (value) => getTagVar()(scope, value);
1971
+ if (typeof normalizedRenderer === "string") bindNativeTagVar?.(scope[childScopeAccessor]);
1972
+ } else getTagVar()(scope, void 0);
1973
+ }
1930
1974
  if (typeof renderer === "string") {
1931
1975
  if (getContent) {
1932
1976
  const content = getContent(scope);
@@ -1944,13 +1988,15 @@ let _dynamic_tag = /*@__PURE__*/ withBranches((nodeAccessor, getContent, getTagV
1944
1988
  if (childScope["EventAttributes:" + nodeAccessor] || childScope["ControlledHandler:" + nodeAccessor]) queueEffect(childScope, dynamicTagScript);
1945
1989
  } else {
1946
1990
  normalizedRenderer[LocalClosures]?.(childScope);
1947
- if (normalizedRenderer["params"]) if (inputIsArgs) normalizedRenderer[Params](childScope, normalizedRenderer._ ? args[0] : args);
1948
- else {
1949
- const inputWithContent = getContent ? {
1950
- ...args,
1951
- content: getContent(scope)
1952
- } : args || {};
1953
- normalizedRenderer[Params](childScope, normalizedRenderer._ ? inputWithContent : [inputWithContent]);
1991
+ if (normalizedRenderer["params"]) {
1992
+ if (inputIsArgs) normalizedRenderer[Params](childScope, normalizedRenderer._ ? args[0] : args);
1993
+ else {
1994
+ const inputWithContent = getContent ? {
1995
+ ...args,
1996
+ content: getContent(scope)
1997
+ } : args || {};
1998
+ normalizedRenderer[Params](childScope, normalizedRenderer._ ? inputWithContent : [inputWithContent]);
1999
+ }
1954
2000
  }
1955
2001
  }
1956
2002
  }
@@ -2088,20 +2134,22 @@ function reorderKeyed(newScopes, start, newEnd, parentNode, afterReference) {
2088
2134
  let hi;
2089
2135
  let mid;
2090
2136
  for (let i = diffLen; i--;) sources[i] = newScopes[start + i]["#LoopIndex"] ?? -1;
2091
- for (let i = 0; i < diffLen; i++) if (~sources[i]) if (tail < 0 || sources[tails[tail]] < sources[i]) {
2092
- if (~tail) pred[i] = tails[tail];
2093
- tails[++tail] = i;
2094
- } else {
2095
- lo = 0;
2096
- hi = tail;
2097
- while (lo < hi) {
2098
- mid = (lo + hi) / 2 | 0;
2099
- if (sources[tails[mid]] < sources[i]) lo = mid + 1;
2100
- else hi = mid;
2101
- }
2102
- if (sources[i] < sources[tails[lo]]) {
2103
- if (lo > 0) pred[i] = tails[lo - 1];
2104
- tails[lo] = i;
2137
+ for (let i = 0; i < diffLen; i++) if (~sources[i]) {
2138
+ if (tail < 0 || sources[tails[tail]] < sources[i]) {
2139
+ if (~tail) pred[i] = tails[tail];
2140
+ tails[++tail] = i;
2141
+ } else {
2142
+ lo = 0;
2143
+ hi = tail;
2144
+ while (lo < hi) {
2145
+ mid = (lo + hi) / 2 | 0;
2146
+ if (sources[tails[mid]] < sources[i]) lo = mid + 1;
2147
+ else hi = mid;
2148
+ }
2149
+ if (sources[i] < sources[tails[lo]]) {
2150
+ if (lo > 0) pred[i] = tails[lo - 1];
2151
+ tails[lo] = i;
2152
+ }
2105
2153
  }
2106
2154
  }
2107
2155
  hi = tails[tail];
@@ -2130,4 +2178,4 @@ function byFirstArg(name) {
2130
2178
  return name;
2131
2179
  }
2132
2180
  //#endregion
2133
- export { _attrs_content as $, DYNAMIC_TAG_SCRIPT_REGISTER_ID as $t, _attr_input_value_attribute_default as A, EndNode as An, _closure_get as At, _controllable_textarea as B, _let as Bt, _attr_input_checked as C, Owner as Cn, init as Ct, _attr_input_checked_default as D, Scope as Dn, withLazy as Dt, _attr_input_checkedValue_script as E, Pending as En, readyFailed as Et, _attr_select_value_default as F, PendingEffects as Fn, _global_read as Ft, _attr_class_item as G, _script as Gt, controllableScripts as H, _or as Ht, _attr_select_value_script as I, PendingRenders as In, _hoist as It, _attr_nonce as J, _assert_init as Jt, _attr_class_items as K, _var as Kt, _controllable_input as L, PlaceholderBranch as Ln, _hoist_resume as Lt, _attr_input_value_dynamic_default as M, Global as Mn, _el_read as Mt, _attr_input_value_script as N, Load as Nn, _for_closure as Nt, _attr_input_checked_script as O, AwaitCounter as On, _child_setup as Ot, _attr_select_value as P, ParentBranch as Pn, _for_selector as Pt, _attrs as Q, syncGen as Qt, _controllable_open as R, StartNode as Rn, _id as Rt, _attr_details_or_dialog_open_script as S, Clone as Sn, getRegisteredWithScope as St, _attr_input_checkedValue_default as T, Setup as Tn, ready as Tt, _attr as U, _return as Ut, controllableRenders as V, _let_change as Vt, _attr_class as W, _return_change as Wt, _attr_style_item as X, insertBranchBefore as Xt, _attr_style as Y, destroyBranch as Yt, _attr_style_items as Z, removeAndDestroyBranch as Zt, installDynamicTagVar as _, forUntil as _n, setupBranch as _t, _for_in as a, installCatch as an, _style_rule_item as at, _attr_details_or_dialog_open as b, _call as bn, _resumed as bt, _for_to as c, queueAsyncRender as cn, _text_content as ct, _for_until_unkeyed as d, run as dn, toInsertNode as dt, PLACEHOLDER_DISMISS_REGISTER_ID as en, _attrs_partial as et, _if as f, runEffects as fn, _content as ft, dynamicTagScript as g, forTo as gn, createBranch as gt, addAwaitCounter as h, forOf as hn, createAndSetupBranch as ht, _dynamic_tag_content as i, caughtError as in, _lifecycle as it, _attr_input_value_default as j, Gen$1 as jn, _const as jt, _attr_input_value as k, ClosestBranch as kn, _closure as kt, _for_to_unkeyed as l, queueEffect as ln, _to_text as lt, _try as m, forIn as mn, _content_resume as mt, _await_promise as n, $signal as nn, _attrs_script as nt, _for_of as o, placeholderShown as on, _style_shell as ot, _show as p, runId as pn, _content_closures as pt, _attr_content as q, _var_change as qt, _dynamic_tag as r, $signalReset as rn, _html as rt, _for_of_unkeyed as s, prepareEffects as sn, _text as st, _await_content as t, _on as tn, _attrs_partial_content as tt, _for_until as u, queueRender as un, insertChildNodes as ut, patchDynamicTag as v, _assert_hoist as vn, _dynamic_tag_var_resume as vt, _attr_input_checkedValue as w, Params as wn, initEmbedded as wt, _attr_details_or_dialog_open_default as x, withBranches as xn, _var_resume as xt, renderCatch as y, _hoist_read_error as yn, _el as yt, _controllable_select as z, TagVariable as zn, _if_closure as zt };
2181
+ export { _attrs as $, syncGen as $t, _attr_input_value as A, EndNode as An, _closure as At, _controllable_select as B, TagVariable as Bn, _if_closure as Bt, _attr_details_or_dialog_open_script as C, Owner as Cn, getRegisteredWithScope as Ct, _attr_input_checkedValue_script as D, Scope as Dn, readyFailed as Dt, _attr_input_checkedValue_default as E, Pending as En, ready as Et, _attr_select_value as F, PendingEffectScopes as Fn, _for_selector as Ft, _attr_class as G, _return_change as Gt, controllableRenders as H, _let_change as Ht, _attr_select_value_default as I, PendingEffects as In, _global_read as It, _attr_content as J, _var_change as Jt, _attr_class_item as K, _script as Kt, _attr_select_value_script as L, PendingRenders as Ln, _hoist as Lt, _attr_input_value_default as M, Global as Mn, _const as Mt, _attr_input_value_dynamic_default as N, Load as Nn, _el_read as Nt, _attr_input_checked_default as O, AwaitCounter as On, withLazy as Ot, _attr_input_value_script as P, ParentBranch as Pn, _for_closure as Pt, _attr_style_items as Q, removeAndDestroyBranch as Qt, _controllable_input as R, PlaceholderBranch as Rn, _hoist_resume as Rt, _attr_details_or_dialog_open_default as S, Clone as Sn, _var_resume as St, _attr_input_checkedValue as T, Setup as Tn, initEmbedded as Tt, controllableScripts as U, _or as Ut, _controllable_textarea as V, _let as Vt, _attr as W, _return as Wt, _attr_style as X, destroyBranch as Xt, _attr_nonce as Y, _assert_init as Yt, _attr_style_item as Z, insertBranchBefore as Zt, installDynamicTagVar as _, forUntil as _n, createBranch as _t, _for_in as a, installCatch as an, _lifecycle as at, runPendingEffects as b, _call as bn, _el as bt, _for_to as c, queueEffect as cn, _text as ct, _for_until_unkeyed as d, run as dn, insertChildNodes as dt, DYNAMIC_TAG_SCRIPT_REGISTER_ID as en, _attrs_content as et, _if as f, runEffects as fn, toInsertNode as ft, dynamicTagScript as g, forTo as gn, createAndSetupBranch as gt, addAwaitCounter as h, forOf as hn, _content_resume as ht, _dynamic_tag_content as i, $signalReset as in, _html as it, _attr_input_value_attribute_default as j, Gen$1 as jn, _closure_get as jt, _attr_input_checked_script as k, ClosestBranch as kn, _child_setup as kt, _for_to_unkeyed as l, queueRender as ln, _text_content as lt, _try as m, forIn as mn, _content_closures as mt, _await_promise as n, _on as nn, _attrs_partial_content as nt, _for_of as o, prepareEffects as on, _style_rule_item as ot, _show as p, runId as pn, _content as pt, _attr_class_items as q, _var as qt, _dynamic_tag as r, $signal as rn, _attrs_script as rt, _for_of_unkeyed as s, queueAsyncRender as sn, _style_shell as st, _await_content as t, PLACEHOLDER_DISMISS_REGISTER_ID as tn, _attrs_partial as tt, _for_until as u, rendering as un, _to_text as ut, patchDynamicTag as v, _assert_hoist as vn, setupBranch as vt, _attr_input_checked as w, Params as wn, init as wt, _attr_details_or_dialog_open as x, withBranches as xn, _resumed as xt, renderCatch as y, _hoist_read_error as yn, _dynamic_tag_var_resume as yt, _controllable_open as z, StartNode as zn, _id as zt };