marko 6.3.36 → 6.3.38

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 (47) hide show
  1. package/dist/debug/dom/catch.feat.js +1 -1
  2. package/dist/debug/dom/catch.feat.mjs +1 -1
  3. package/dist/debug/dom/controllable-input.feat.js +1 -1
  4. package/dist/debug/dom/controllable-input.feat.mjs +1 -1
  5. package/dist/debug/dom/controllable-open.feat.js +1 -1
  6. package/dist/debug/dom/controllable-open.feat.mjs +1 -1
  7. package/dist/debug/dom/controllable-select.feat.js +1 -1
  8. package/dist/debug/dom/controllable-select.feat.mjs +1 -1
  9. package/dist/debug/dom/controllable-textarea.feat.js +1 -1
  10. package/dist/debug/dom/controllable-textarea.feat.mjs +1 -1
  11. package/dist/debug/dom/controllable.feat.js +1 -1
  12. package/dist/debug/dom/controllable.feat.mjs +1 -1
  13. package/dist/debug/dom/dynamic-tag-var.feat.js +1 -1
  14. package/dist/debug/dom/dynamic-tag-var.feat.mjs +1 -1
  15. package/dist/debug/{dom-BbFAdZEB.js → dom-BkYlHM4b.js} +24 -9
  16. package/dist/debug/{dom-ClMc0GK9.mjs → dom-woc_wRhN.mjs} +19 -10
  17. package/dist/debug/dom.js +7 -7
  18. package/dist/debug/dom.mjs +7 -7
  19. package/dist/debug/html.js +6 -3
  20. package/dist/debug/html.mjs +6 -3
  21. package/dist/dom/abort-signal.d.ts +2 -0
  22. package/dist/dom/catch.feat.js +3 -3
  23. package/dist/dom/catch.feat.mjs +1 -1
  24. package/dist/dom/controllable-input.feat.js +1 -1
  25. package/dist/dom/controllable-input.feat.mjs +1 -1
  26. package/dist/dom/controllable-open.feat.js +1 -1
  27. package/dist/dom/controllable-open.feat.mjs +1 -1
  28. package/dist/dom/controllable-select.feat.js +1 -1
  29. package/dist/dom/controllable-select.feat.mjs +1 -1
  30. package/dist/dom/controllable-textarea.feat.js +1 -1
  31. package/dist/dom/controllable-textarea.feat.mjs +1 -1
  32. package/dist/dom/controllable.feat.js +1 -1
  33. package/dist/dom/controllable.feat.mjs +1 -1
  34. package/dist/dom/dynamic-tag-var.feat.js +1 -1
  35. package/dist/dom/dynamic-tag-var.feat.mjs +1 -1
  36. package/dist/dom/load.d.ts +3 -3
  37. package/dist/dom/resume.d.ts +1 -0
  38. package/dist/{dom-59H9kVUF.js → dom-B15s3PHD.js} +60 -56
  39. package/dist/{dom-BKDjlXIl.mjs → dom-CPUybM_C.mjs} +13 -14
  40. package/dist/dom.js +44 -47
  41. package/dist/dom.mjs +28 -31
  42. package/dist/html/inlined-runtimes.d.ts +1 -1
  43. package/dist/html/inlined-runtimes.debug.d.ts +1 -1
  44. package/dist/html.js +1 -1
  45. package/dist/html.mjs +1 -1
  46. package/dist/translator/index.js +28 -13
  47. package/package.json +3 -3
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- const require_control_flow = require("../dom-BbFAdZEB.js");
2
+ const require_control_flow = require("../dom-BkYlHM4b.js");
3
3
  //#region src/dom/catch.feat.ts
4
4
  const handlePendingTry = (fn, scope, branch) => {
5
5
  while (branch) {
@@ -1,4 +1,4 @@
1
- import { Cn as ParentBranch, Qt as placeholderShown, Tn as PendingRenders, Xt as caughtError, Zt as installCatch, g as renderCatch, gn as Scope, hn as Pending, vn as ClosestBranch, wn as PendingEffects } from "../dom-ClMc0GK9.mjs";
1
+ import { $t as placeholderShown, En as PendingRenders, Qt as installCatch, Tn as PendingEffects, Zt as caughtError, _n as Scope, g as renderCatch, gn as Pending, wn as ParentBranch, yn as ClosestBranch } from "../dom-woc_wRhN.mjs";
2
2
  //#region src/dom/catch.feat.ts
3
3
  const handlePendingTry = (fn, scope, branch) => {
4
4
  while (branch) {
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- const require_control_flow = require("../dom-BbFAdZEB.js");
2
+ const require_control_flow = require("../dom-BkYlHM4b.js");
3
3
  //#region src/dom/controllable-input.feat.ts
4
4
  require_control_flow.controllableScripts[0] = require_control_flow._attr_input_checked_script;
5
5
  require_control_flow.controllableScripts[1] = require_control_flow._attr_input_checkedValue_script;
@@ -1,4 +1,4 @@
1
- import { A as _attr_input_value_script, C as _attr_input_checkedValue_script, T as _attr_input_checked_script, z as controllableScripts } from "../dom-ClMc0GK9.mjs";
1
+ import { A as _attr_input_value_script, C as _attr_input_checkedValue_script, T as _attr_input_checked_script, z as controllableScripts } from "../dom-woc_wRhN.mjs";
2
2
  //#region src/dom/controllable-input.feat.ts
3
3
  controllableScripts[0] = _attr_input_checked_script;
4
4
  controllableScripts[1] = _attr_input_checkedValue_script;
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- const require_control_flow = require("../dom-BbFAdZEB.js");
2
+ const require_control_flow = require("../dom-BkYlHM4b.js");
3
3
  //#region src/dom/controllable-open.feat.ts
4
4
  require_control_flow.controllableScripts[4] = require_control_flow._attr_details_or_dialog_open_script;
5
5
  //#endregion
@@ -1,4 +1,4 @@
1
- import { y as _attr_details_or_dialog_open_script, z as controllableScripts } from "../dom-ClMc0GK9.mjs";
1
+ import { y as _attr_details_or_dialog_open_script, z as controllableScripts } from "../dom-woc_wRhN.mjs";
2
2
  //#region src/dom/controllable-open.feat.ts
3
3
  controllableScripts[4] = _attr_details_or_dialog_open_script;
4
4
  //#endregion
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- const require_control_flow = require("../dom-BbFAdZEB.js");
2
+ const require_control_flow = require("../dom-BkYlHM4b.js");
3
3
  //#region src/dom/controllable-select.feat.ts
4
4
  require_control_flow.controllableScripts[3] = require_control_flow._attr_select_value_script;
5
5
  //#endregion
@@ -1,4 +1,4 @@
1
- import { N as _attr_select_value_script, z as controllableScripts } from "../dom-ClMc0GK9.mjs";
1
+ import { N as _attr_select_value_script, z as controllableScripts } from "../dom-woc_wRhN.mjs";
2
2
  //#region src/dom/controllable-select.feat.ts
3
3
  controllableScripts[3] = _attr_select_value_script;
4
4
  //#endregion
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- const require_control_flow = require("../dom-BbFAdZEB.js");
2
+ const require_control_flow = require("../dom-BkYlHM4b.js");
3
3
  //#region src/dom/controllable-textarea.feat.ts
4
4
  require_control_flow.controllableScripts[2] = require_control_flow._attr_input_value_script;
5
5
  //#endregion
@@ -1,4 +1,4 @@
1
- import { A as _attr_input_value_script, z as controllableScripts } from "../dom-ClMc0GK9.mjs";
1
+ import { A as _attr_input_value_script, z as controllableScripts } from "../dom-woc_wRhN.mjs";
2
2
  //#region src/dom/controllable-textarea.feat.ts
3
3
  controllableScripts[2] = _attr_input_value_script;
4
4
  //#endregion
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- const require_control_flow = require("../dom-BbFAdZEB.js");
2
+ const require_control_flow = require("../dom-BkYlHM4b.js");
3
3
  require("./controllable-input.feat.js");
4
4
  require("./controllable-open.feat.js");
5
5
  require("./controllable-select.feat.js");
@@ -1,4 +1,4 @@
1
- import { F as _controllable_open, I as _controllable_select, L as _controllable_textarea, P as _controllable_input, R as controllableRenders } from "../dom-ClMc0GK9.mjs";
1
+ import { F as _controllable_open, I as _controllable_select, L as _controllable_textarea, P as _controllable_input, R as controllableRenders } from "../dom-woc_wRhN.mjs";
2
2
  import "./controllable-input.feat.mjs";
3
3
  import "./controllable-open.feat.mjs";
4
4
  import "./controllable-select.feat.mjs";
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- const require_control_flow = require("../dom-BbFAdZEB.js");
2
+ const require_control_flow = require("../dom-BkYlHM4b.js");
3
3
  //#region src/dom/dynamic-tag-var.feat.ts
4
4
  const elementGetter = (branch) => () => require_control_flow._el_read(branch[require_control_flow.StartNode]);
5
5
  require_control_flow.installDynamicTagVar((branch) => branch[require_control_flow.TagVariable](elementGetter(branch)));
@@ -1,4 +1,4 @@
1
- import { Dn as TagVariable, En as StartNode, Et as _el_read, gt as _resume, m as installDynamicTagVar, qt as DYNAMIC_TAG_VAR_REGISTER_ID } from "../dom-ClMc0GK9.mjs";
1
+ import { Dn as StartNode, Dt as _el_read, Jt as DYNAMIC_TAG_VAR_REGISTER_ID, On as TagVariable, gt as _resume, m as installDynamicTagVar } from "../dom-woc_wRhN.mjs";
2
2
  //#region src/dom/dynamic-tag-var.feat.ts
3
3
  const elementGetter = (branch) => () => _el_read(branch[StartNode]);
4
4
  installDynamicTagVar((branch) => branch[TagVariable](elementGetter(branch)));
@@ -364,8 +364,8 @@ function run() {
364
364
  runEffects(effects);
365
365
  }
366
366
  function queueAsyncRender(scope, signal, value) {
367
+ if (!pendingRenders.length) queueMicrotask(run);
367
368
  queueRender(scope, signal, -1, value);
368
- queueMicrotask(run);
369
369
  }
370
370
  function prepareEffects(fn) {
371
371
  const prevRenders = pendingRenders;
@@ -431,6 +431,7 @@ function $signalReset(scope, id) {
431
431
  }
432
432
  }
433
433
  function $signal(scope, id) {
434
+ abortsEnabled = 1;
434
435
  trackCleanup(scope);
435
436
  return ((scope[AbortControllers] ||= {})[id] ||= new AbortController()).signal;
436
437
  }
@@ -438,8 +439,13 @@ function $signal(scope, id) {
438
439
  function trackCleanup(scope, subscribers) {
439
440
  const branch = scope[ClosestBranch];
440
441
  if (branch) (branch[AbortScopes] ||= /* @__PURE__ */ new Set()).add(scope);
441
- if (subscribers) (scope[Subscriptions] ||= []).push(subscribers);
442
+ if (subscribers) {
443
+ subscriptionsEnabled = 1;
444
+ (scope[Subscriptions] ||= []).push(subscribers);
445
+ }
442
446
  }
447
+ let abortsEnabled;
448
+ let subscriptionsEnabled;
443
449
  function abort(ctrl) {
444
450
  ctrl.abort();
445
451
  }
@@ -545,8 +551,8 @@ const destroyNestedScopes = function destroyNestedScopes(scope) {
545
551
  scope[AbortScopes]?.forEach(cleanupScope);
546
552
  };
547
553
  function cleanupScope(scope) {
548
- scope[Subscriptions]?.forEach(unsubscribe, scope);
549
- for (const id in scope[AbortControllers]) $signalReset(scope, id);
554
+ if (subscriptionsEnabled) scope[Subscriptions]?.forEach(unsubscribe, scope);
555
+ if (abortsEnabled) for (const id in scope[AbortControllers]) $signalReset(scope, id);
550
556
  }
551
557
  function unsubscribe(subscribers) {
552
558
  subscribers.delete(this);
@@ -849,10 +855,15 @@ const registeredValues = {};
849
855
  let curRenders;
850
856
  let embedRenders;
851
857
  let readyIds;
858
+ let lazyEnabled;
852
859
  function ready(readyId) {
853
860
  (readyIds ||= /* @__PURE__ */ new Set()).add(readyId);
854
861
  for (const renderId in curRenders) runResumeEffects(curRenders[renderId]);
855
862
  }
863
+ function withLazy(runtime) {
864
+ lazyEnabled = 1;
865
+ return runtime;
866
+ }
856
867
  function initEmbedded(readyId, runtimeId) {
857
868
  if (!embedRenders) {
858
869
  embedRenders = /* @__PURE__ */ new Map();
@@ -1011,7 +1022,7 @@ function init(runtimeId = "M") {
1011
1022
  const prev = visit.previousSibling;
1012
1023
  visitScope[nextToken()] = prev && (prev.nodeType < 8 || prev.data) ? prev : visit.parentNode.insertBefore(new Text(), visit);
1013
1024
  } else if (branchesEnabled) (visitBranches ||= createVisitBranches())();
1014
- else if (render.b) visits[retained++] = visit;
1025
+ else if (lazyEnabled && render.b) visits[retained++] = visit;
1015
1026
  }
1016
1027
  if (embedRenders && !embedAnchor && visit) embedRenders.set(embedAnchor = visit.parentNode.insertBefore(new Text(), visit.nextSibling), [renderId, scopeLookup]);
1017
1028
  visits.length = retained;
@@ -1566,6 +1577,7 @@ function observeOnce(scope, nodeAccessor, init, callback) {
1566
1577
  }
1567
1578
  function syncControllableFormInput(el, hasChanged, onChange) {
1568
1579
  el._ = onChange;
1580
+ el.c = hasChanged;
1569
1581
  delegate("input", handleChange);
1570
1582
  if (el.form) delegate("reset", handleFormReset);
1571
1583
  if (isResuming && hasChanged(el)) queueMicrotask(onChange);
@@ -1575,7 +1587,7 @@ function handleChange(ev) {
1575
1587
  }
1576
1588
  function handleFormReset(ev) {
1577
1589
  const handlers = [];
1578
- for (const el of ev.target.elements) if (el._ && hasFormElementChanged(el)) handlers.push(el._);
1590
+ for (const el of ev.target.elements) if (el._ && el.c(el)) handlers.push(el._);
1579
1591
  requestAnimationFrame(() => {
1580
1592
  if (!ev.defaultPrevented) for (const change of handlers) change();
1581
1593
  });
@@ -1589,9 +1601,6 @@ function hasCheckboxChanged(el) {
1589
1601
  function hasSelectChanged(el) {
1590
1602
  for (const opt of el.options) if (opt.selected !== opt.defaultSelected) return true;
1591
1603
  }
1592
- function hasFormElementChanged(el) {
1593
- return el.options ? hasSelectChanged(el) : hasValueChanged(el) || hasCheckboxChanged(el);
1594
- }
1595
1604
  function normalizeStrProp(value) {
1596
1605
  return normalizeAttrValue(value) || "";
1597
1606
  }
@@ -2874,3 +2883,9 @@ Object.defineProperty(exports, "toInsertNode", {
2874
2883
  return toInsertNode;
2875
2884
  }
2876
2885
  });
2886
+ Object.defineProperty(exports, "withLazy", {
2887
+ enumerable: true,
2888
+ get: function() {
2889
+ return withLazy;
2890
+ }
2891
+ });
@@ -363,8 +363,8 @@ function run() {
363
363
  runEffects(effects);
364
364
  }
365
365
  function queueAsyncRender(scope, signal, value) {
366
+ if (!pendingRenders.length) queueMicrotask(run);
366
367
  queueRender(scope, signal, -1, value);
367
- queueMicrotask(run);
368
368
  }
369
369
  function prepareEffects(fn) {
370
370
  const prevRenders = pendingRenders;
@@ -430,6 +430,7 @@ function $signalReset(scope, id) {
430
430
  }
431
431
  }
432
432
  function $signal(scope, id) {
433
+ abortsEnabled = 1;
433
434
  trackCleanup(scope);
434
435
  return ((scope[AbortControllers] ||= {})[id] ||= new AbortController()).signal;
435
436
  }
@@ -437,8 +438,13 @@ function $signal(scope, id) {
437
438
  function trackCleanup(scope, subscribers) {
438
439
  const branch = scope[ClosestBranch];
439
440
  if (branch) (branch[AbortScopes] ||= /* @__PURE__ */ new Set()).add(scope);
440
- if (subscribers) (scope[Subscriptions] ||= []).push(subscribers);
441
+ if (subscribers) {
442
+ subscriptionsEnabled = 1;
443
+ (scope[Subscriptions] ||= []).push(subscribers);
444
+ }
441
445
  }
446
+ let abortsEnabled;
447
+ let subscriptionsEnabled;
442
448
  function abort(ctrl) {
443
449
  ctrl.abort();
444
450
  }
@@ -544,8 +550,8 @@ const destroyNestedScopes = function destroyNestedScopes(scope) {
544
550
  scope[AbortScopes]?.forEach(cleanupScope);
545
551
  };
546
552
  function cleanupScope(scope) {
547
- scope[Subscriptions]?.forEach(unsubscribe, scope);
548
- for (const id in scope[AbortControllers]) $signalReset(scope, id);
553
+ if (subscriptionsEnabled) scope[Subscriptions]?.forEach(unsubscribe, scope);
554
+ if (abortsEnabled) for (const id in scope[AbortControllers]) $signalReset(scope, id);
549
555
  }
550
556
  function unsubscribe(subscribers) {
551
557
  subscribers.delete(this);
@@ -848,10 +854,15 @@ const registeredValues = {};
848
854
  let curRenders;
849
855
  let embedRenders;
850
856
  let readyIds;
857
+ let lazyEnabled;
851
858
  function ready(readyId) {
852
859
  (readyIds ||= /* @__PURE__ */ new Set()).add(readyId);
853
860
  for (const renderId in curRenders) runResumeEffects(curRenders[renderId]);
854
861
  }
862
+ function withLazy(runtime) {
863
+ lazyEnabled = 1;
864
+ return runtime;
865
+ }
855
866
  function initEmbedded(readyId, runtimeId) {
856
867
  if (!embedRenders) {
857
868
  embedRenders = /* @__PURE__ */ new Map();
@@ -1010,7 +1021,7 @@ function init(runtimeId = "M") {
1010
1021
  const prev = visit.previousSibling;
1011
1022
  visitScope[nextToken()] = prev && (prev.nodeType < 8 || prev.data) ? prev : visit.parentNode.insertBefore(new Text(), visit);
1012
1023
  } else if (branchesEnabled) (visitBranches ||= createVisitBranches())();
1013
- else if (render.b) visits[retained++] = visit;
1024
+ else if (lazyEnabled && render.b) visits[retained++] = visit;
1014
1025
  }
1015
1026
  if (embedRenders && !embedAnchor && visit) embedRenders.set(embedAnchor = visit.parentNode.insertBefore(new Text(), visit.nextSibling), [renderId, scopeLookup]);
1016
1027
  visits.length = retained;
@@ -1565,6 +1576,7 @@ function observeOnce(scope, nodeAccessor, init, callback) {
1565
1576
  }
1566
1577
  function syncControllableFormInput(el, hasChanged, onChange) {
1567
1578
  el._ = onChange;
1579
+ el.c = hasChanged;
1568
1580
  delegate("input", handleChange);
1569
1581
  if (el.form) delegate("reset", handleFormReset);
1570
1582
  if (isResuming && hasChanged(el)) queueMicrotask(onChange);
@@ -1574,7 +1586,7 @@ function handleChange(ev) {
1574
1586
  }
1575
1587
  function handleFormReset(ev) {
1576
1588
  const handlers = [];
1577
- for (const el of ev.target.elements) if (el._ && hasFormElementChanged(el)) handlers.push(el._);
1589
+ for (const el of ev.target.elements) if (el._ && el.c(el)) handlers.push(el._);
1578
1590
  requestAnimationFrame(() => {
1579
1591
  if (!ev.defaultPrevented) for (const change of handlers) change();
1580
1592
  });
@@ -1588,9 +1600,6 @@ function hasCheckboxChanged(el) {
1588
1600
  function hasSelectChanged(el) {
1589
1601
  for (const opt of el.options) if (opt.selected !== opt.defaultSelected) return true;
1590
1602
  }
1591
- function hasFormElementChanged(el) {
1592
- return el.options ? hasSelectChanged(el) : hasValueChanged(el) || hasCheckboxChanged(el);
1593
- }
1594
1603
  function normalizeStrProp(value) {
1595
1604
  return normalizeAttrValue(value) || "";
1596
1605
  }
@@ -2063,4 +2072,4 @@ function byFirstArg(name) {
2063
2072
  return name;
2064
2073
  }
2065
2074
  //#endregion
2066
- export { _attrs_script as $, prepareEffects as $t, _attr_input_value_script as A, _hoist_resume as At, _attr as B, _var_change as Bt, _attr_input_checkedValue_script as C, ParentBranch as Cn, _closure as Ct, _attr_input_value_attribute_default as D, TagVariable as Dn, _for_closure as Dt, _attr_input_value as E, StartNode as En, _el_read as Et, _controllable_open as F, _or as Ft, _attr_nonce as G, syncGen as Gt, _attr_class_item as H, destroyBranch as Ht, _controllable_select as I, _return as It, _attr_style_items as J, $signal as Jt, _attr_style as K, _on as Kt, _controllable_textarea as L, _return_change as Lt, _attr_select_value_default as M, _if_closure as Mt, _attr_select_value_script as N, _let as Nt, _attr_input_value_default as O, _for_selector as Ot, _controllable_input as P, _let_change as Pt, _attrs_partial_content as Q, placeholderShown as Qt, controllableRenders as R, _script as Rt, _attr_input_checkedValue_default as S, Load as Sn, _child_setup as St, _attr_input_checked_script as T, PendingRenders as Tn, _const as Tt, _attr_class_items as U, insertBranchBefore as Ut, _attr_class as V, _assert_init as Vt, _attr_content as W, removeAndDestroyBranch as Wt, _attrs_content as X, caughtError as Xt, _attrs as Y, $signalReset as Yt, _attrs_partial as Z, installCatch as Zt, _attr_details_or_dialog_open as _, AwaitCounter as _n, _var_resume as _t, _for_in as a, forIn as an, _text_content as at, _attr_input_checked as b, Gen$1 as bn, initEmbedded as bt, _for_until as c, forUntil as cn, toInsertNode as ct, _show as d, Clone as dn, _content_resume as dt, queueAsyncRender as en, _html as et, _try as f, Owner as fn, createAndSetupBranch as ft, renderCatch as g, Scope as gn, _resume as gt, patchDynamicTag as h, Pending as hn, _el as ht, _dynamic_tag_content as i, runId as in, _text as it, _attr_select_value as j, _id as jt, _attr_input_value_dynamic_default as k, _hoist as kt, _if as l, _assert_hoist as ln, _content as lt, installDynamicTagVar as m, Setup as mn, setupBranch as mt, _await_promise as n, run as nn, _style_rule_item as nt, _for_of as o, forOf as on, _to_text as ot, addAwaitCounter as p, Params as pn, createBranch as pt, _attr_style_item as q, DYNAMIC_TAG_VAR_REGISTER_ID as qt, _dynamic_tag as r, runEffects as rn, _style_shell as rt, _for_to as s, forTo as sn, insertChildNodes as st, _await_content as t, queueEffect as tn, _lifecycle as tt, _resume_dynamic_tag as u, _call as un, _content_closures as ut, _attr_details_or_dialog_open_default as v, ClosestBranch as vn, getRegisteredWithScope as vt, _attr_input_checked_default as w, PendingEffects as wn, _closure_get as wt, _attr_input_checkedValue as x, Global as xn, ready as xt, _attr_details_or_dialog_open_script as y, EndNode as yn, init as yt, controllableScripts as z, _var as zt };
2075
+ export { _attrs_script as $, placeholderShown as $t, _attr_input_value_script as A, _hoist as At, _attr as B, _var as Bt, _attr_input_checkedValue_script as C, Load as Cn, _child_setup as Ct, _attr_input_value_attribute_default as D, StartNode as Dn, _el_read as Dt, _attr_input_value as E, PendingRenders as En, _const as Et, _controllable_open as F, _let_change as Ft, _attr_nonce as G, removeAndDestroyBranch as Gt, _attr_class_item as H, _assert_init as Ht, _controllable_select as I, _or as It, _attr_style_items as J, DYNAMIC_TAG_VAR_REGISTER_ID as Jt, _attr_style as K, syncGen as Kt, _controllable_textarea as L, _return as Lt, _attr_select_value_default as M, _id as Mt, _attr_select_value_script as N, _if_closure as Nt, _attr_input_value_default as O, TagVariable as On, _for_closure as Ot, _controllable_input as P, _let as Pt, _attrs_partial_content as Q, installCatch as Qt, controllableRenders as R, _return_change as Rt, _attr_input_checkedValue_default as S, Global as Sn, withLazy as St, _attr_input_checked_script as T, PendingEffects as Tn, _closure_get as Tt, _attr_class_items as U, destroyBranch as Ut, _attr_class as V, _var_change as Vt, _attr_content as W, insertBranchBefore as Wt, _attrs_content as X, $signalReset as Xt, _attrs as Y, $signal as Yt, _attrs_partial as Z, caughtError as Zt, _attr_details_or_dialog_open as _, Scope as _n, _var_resume as _t, _for_in as a, runId as an, _text_content as at, _attr_input_checked as b, EndNode as bn, initEmbedded as bt, _for_until as c, forTo as cn, toInsertNode as ct, _show as d, _call as dn, _content_resume as dt, prepareEffects as en, _html as et, _try as f, Clone as fn, createAndSetupBranch as ft, renderCatch as g, Pending as gn, _resume as gt, patchDynamicTag as h, Setup as hn, _el as ht, _dynamic_tag_content as i, runEffects as in, _text as it, _attr_select_value as j, _hoist_resume as jt, _attr_input_value_dynamic_default as k, _for_selector as kt, _if as l, forUntil as ln, _content as lt, installDynamicTagVar as m, Params as mn, setupBranch as mt, _await_promise as n, queueEffect as nn, _style_rule_item as nt, _for_of as o, forIn as on, _to_text as ot, addAwaitCounter as p, Owner as pn, createBranch as pt, _attr_style_item as q, _on as qt, _dynamic_tag as r, run as rn, _style_shell as rt, _for_to as s, forOf as sn, insertChildNodes as st, _await_content as t, queueAsyncRender as tn, _lifecycle as tt, _resume_dynamic_tag as u, _assert_hoist as un, _content_closures as ut, _attr_details_or_dialog_open_default as v, AwaitCounter as vn, getRegisteredWithScope as vt, _attr_input_checked_default as w, ParentBranch as wn, _closure as wt, _attr_input_checkedValue as x, Gen$1 as xn, ready as xt, _attr_details_or_dialog_open_script as y, ClosestBranch as yn, init as yt, controllableScripts as z, _script as zt };
package/dist/debug/dom.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const require_control_flow = require("./dom-BbFAdZEB.js");
3
+ const require_control_flow = require("./dom-BkYlHM4b.js");
4
4
  //#region src/common/attr-tag.ts
5
5
  const empty = [];
6
6
  const rest = Symbol("Attribute Tag");
@@ -195,7 +195,7 @@ function mount(input = {}, reference, position) {
195
195
  }
196
196
  //#endregion
197
197
  //#region src/dom/load.ts
198
- function _load_template(id, load) {
198
+ const _load_template = /*@__PURE__*/ require_control_flow.withLazy((id, load) => {
199
199
  let pending;
200
200
  const lazyTemplate = _template(id, 0, 0, (branch) => {
201
201
  const awaitCounter = require_control_flow.addAwaitCounter(branch);
@@ -206,8 +206,8 @@ function _load_template(id, load) {
206
206
  }, loadFailed(branch, awaitCounter));
207
207
  }, _load_signal(() => (pending ||= load()).then((r) => ({ _: r[require_control_flow.Params] }))));
208
208
  return lazyTemplate;
209
- }
210
- function _load_setup(nodeAccessor, childScopeAccessor, load) {
209
+ });
210
+ const _load_setup = /*@__PURE__*/ require_control_flow.withLazy((nodeAccessor, childScopeAccessor, load) => {
211
211
  let pending;
212
212
  let renderer;
213
213
  return (owner) => {
@@ -222,7 +222,7 @@ function _load_setup(nodeAccessor, childScopeAccessor, load) {
222
222
  }, loadFailed(child, awaitCounter));
223
223
  }
224
224
  };
225
- }
225
+ });
226
226
  function insertLoaded(renderer, branch, marker, awaitCounter) {
227
227
  const parent = marker.parentNode, values = branch[require_control_flow.Load], insert = () => {
228
228
  require_control_flow.insertBranchBefore(branch, parent, marker);
@@ -256,7 +256,7 @@ function loadFailed(scope, awaitCounter) {
256
256
  require_control_flow.queueAsyncRender(scope, require_control_flow.renderCatch, error);
257
257
  };
258
258
  }
259
- function _load_signal(load) {
259
+ const _load_signal = /*@__PURE__*/ require_control_flow.withLazy((load) => {
260
260
  let pending;
261
261
  let signal;
262
262
  return (scope, value) => {
@@ -265,7 +265,7 @@ function _load_signal(load) {
265
265
  else if (signal) signal(scope, value);
266
266
  else pending.then((mod) => require_control_flow.queueAsyncRender(scope, signal = mod._, value), () => 0);
267
267
  };
268
- }
268
+ });
269
269
  function _load_visible_trigger(selector, options) {
270
270
  let pending;
271
271
  let el;
@@ -1,4 +1,4 @@
1
- import { $ as _attrs_script, $t as prepareEffects, A as _attr_input_value_script, At as _hoist_resume, B as _attr, Bt as _var_change, C as _attr_input_checkedValue_script, Ct as _closure, D as _attr_input_value_attribute_default, Dn as TagVariable, Dt as _for_closure, E as _attr_input_value, En as StartNode, Et as _el_read, F as _controllable_open, Ft as _or, G as _attr_nonce, Gt as syncGen, H as _attr_class_item, Ht as destroyBranch, I as _controllable_select, It as _return, J as _attr_style_items, Jt as $signal, K as _attr_style, Kt as _on, L as _controllable_textarea, Lt as _return_change, M as _attr_select_value_default, Mt as _if_closure, N as _attr_select_value_script, Nt as _let, O as _attr_input_value_default, Ot as _for_selector, P as _controllable_input, Pt as _let_change, Q as _attrs_partial_content, Rt as _script, S as _attr_input_checkedValue_default, Sn as Load, St as _child_setup, T as _attr_input_checked_script, Tt as _const, U as _attr_class_items, Ut as insertBranchBefore, V as _attr_class, Vt as _assert_init, W as _attr_content, Wt as removeAndDestroyBranch, X as _attrs_content, Y as _attrs, Yt as $signalReset, Z as _attrs_partial, _ as _attr_details_or_dialog_open, _t as _var_resume, a as _for_in, an as forIn, at as _text_content, b as _attr_input_checked, bt as initEmbedded, c as _for_until, cn as forUntil, ct as toInsertNode, d as _show, dn as Clone, dt as _content_resume, en as queueAsyncRender, et as _html, f as _try, fn as Owner, ft as createAndSetupBranch, g as renderCatch, gt as _resume, h as patchDynamicTag, ht as _el, i as _dynamic_tag_content, in as runId, it as _text, j as _attr_select_value, jt as _id, k as _attr_input_value_dynamic_default, kt as _hoist, l as _if, ln as _assert_hoist, lt as _content, mn as Setup, mt as setupBranch, n as _await_promise, nn as run, nt as _style_rule_item, o as _for_of, on as forOf, ot as _to_text, p as addAwaitCounter, pn as Params, pt as createBranch, q as _attr_style_item, r as _dynamic_tag, rn as runEffects, rt as _style_shell, s as _for_to, sn as forTo, st as insertChildNodes, t as _await_content, tn as queueEffect, tt as _lifecycle, u as _resume_dynamic_tag, un as _call, ut as _content_closures, v as _attr_details_or_dialog_open_default, vt as getRegisteredWithScope, w as _attr_input_checked_default, wt as _closure_get, x as _attr_input_checkedValue, xn as Global, xt as ready, y as _attr_details_or_dialog_open_script, yn as EndNode, yt as init, zt as _var } from "./dom-ClMc0GK9.mjs";
1
+ import { $ as _attrs_script, A as _attr_input_value_script, At as _hoist, B as _attr, Bt as _var, C as _attr_input_checkedValue_script, Cn as Load, Ct as _child_setup, D as _attr_input_value_attribute_default, Dn as StartNode, Dt as _el_read, E as _attr_input_value, Et as _const, F as _controllable_open, Ft as _let_change, G as _attr_nonce, Gt as removeAndDestroyBranch, H as _attr_class_item, Ht as _assert_init, I as _controllable_select, It as _or, J as _attr_style_items, K as _attr_style, Kt as syncGen, L as _controllable_textarea, Lt as _return, M as _attr_select_value_default, Mt as _id, N as _attr_select_value_script, Nt as _if_closure, O as _attr_input_value_default, On as TagVariable, Ot as _for_closure, P as _controllable_input, Pt as _let, Q as _attrs_partial_content, Rt as _return_change, S as _attr_input_checkedValue_default, Sn as Global, St as withLazy, T as _attr_input_checked_script, Tt as _closure_get, U as _attr_class_items, Ut as destroyBranch, V as _attr_class, Vt as _var_change, W as _attr_content, Wt as insertBranchBefore, X as _attrs_content, Xt as $signalReset, Y as _attrs, Yt as $signal, Z as _attrs_partial, _ as _attr_details_or_dialog_open, _t as _var_resume, a as _for_in, an as runId, at as _text_content, b as _attr_input_checked, bn as EndNode, bt as initEmbedded, c as _for_until, cn as forTo, ct as toInsertNode, d as _show, dn as _call, dt as _content_resume, en as prepareEffects, et as _html, f as _try, fn as Clone, ft as createAndSetupBranch, g as renderCatch, gt as _resume, h as patchDynamicTag, hn as Setup, ht as _el, i as _dynamic_tag_content, in as runEffects, it as _text, j as _attr_select_value, jt as _hoist_resume, k as _attr_input_value_dynamic_default, kt as _for_selector, l as _if, ln as forUntil, lt as _content, mn as Params, mt as setupBranch, n as _await_promise, nn as queueEffect, nt as _style_rule_item, o as _for_of, on as forIn, ot as _to_text, p as addAwaitCounter, pn as Owner, pt as createBranch, q as _attr_style_item, qt as _on, r as _dynamic_tag, rn as run, rt as _style_shell, s as _for_to, sn as forOf, st as insertChildNodes, t as _await_content, tn as queueAsyncRender, tt as _lifecycle, u as _resume_dynamic_tag, un as _assert_hoist, ut as _content_closures, v as _attr_details_or_dialog_open_default, vt as getRegisteredWithScope, w as _attr_input_checked_default, wt as _closure, x as _attr_input_checkedValue, xt as ready, y as _attr_details_or_dialog_open_script, yt as init, zt as _script } from "./dom-woc_wRhN.mjs";
2
2
  //#region src/common/attr-tag.ts
3
3
  const empty = [];
4
4
  const rest = Symbol("Attribute Tag");
@@ -193,7 +193,7 @@ function mount(input = {}, reference, position) {
193
193
  }
194
194
  //#endregion
195
195
  //#region src/dom/load.ts
196
- function _load_template(id, load) {
196
+ const _load_template = /*@__PURE__*/ withLazy((id, load) => {
197
197
  let pending;
198
198
  const lazyTemplate = _template(id, 0, 0, (branch) => {
199
199
  const awaitCounter = addAwaitCounter(branch);
@@ -204,8 +204,8 @@ function _load_template(id, load) {
204
204
  }, loadFailed(branch, awaitCounter));
205
205
  }, _load_signal(() => (pending ||= load()).then((r) => ({ _: r[Params] }))));
206
206
  return lazyTemplate;
207
- }
208
- function _load_setup(nodeAccessor, childScopeAccessor, load) {
207
+ });
208
+ const _load_setup = /*@__PURE__*/ withLazy((nodeAccessor, childScopeAccessor, load) => {
209
209
  let pending;
210
210
  let renderer;
211
211
  return (owner) => {
@@ -220,7 +220,7 @@ function _load_setup(nodeAccessor, childScopeAccessor, load) {
220
220
  }, loadFailed(child, awaitCounter));
221
221
  }
222
222
  };
223
- }
223
+ });
224
224
  function insertLoaded(renderer, branch, marker, awaitCounter) {
225
225
  const parent = marker.parentNode, values = branch[Load], insert = () => {
226
226
  insertBranchBefore(branch, parent, marker);
@@ -254,7 +254,7 @@ function loadFailed(scope, awaitCounter) {
254
254
  queueAsyncRender(scope, renderCatch, error);
255
255
  };
256
256
  }
257
- function _load_signal(load) {
257
+ const _load_signal = /*@__PURE__*/ withLazy((load) => {
258
258
  let pending;
259
259
  let signal;
260
260
  return (scope, value) => {
@@ -263,7 +263,7 @@ function _load_signal(load) {
263
263
  else if (signal) signal(scope, value);
264
264
  else pending.then((mod) => queueAsyncRender(scope, signal = mod._, value), () => 0);
265
265
  };
266
- }
266
+ });
267
267
  function _load_visible_trigger(selector, options) {
268
268
  let pending;
269
269
  let el;
@@ -1895,12 +1895,15 @@ const REORDER_RUNTIME_CODE = `((runtime) => {
1895
1895
  (placeholderRoot = placeholders[id] =
1896
1896
  {
1897
1897
  i: runtime.l[id] ? 1 : 2,
1898
- c(start = runtime.l["^" + id]) {
1898
+ // Resume may still walk markers inside the dropped placeholder, so
1899
+ // park it in any detached parent (a bare <t> clone is the cheapest).
1900
+ c(start = runtime.l["^" + id], removed = node.cloneNode()) {
1899
1901
  if (--placeholderRoot.i) return 1;
1900
1902
  for (
1901
1903
  ;
1902
- (nextSibling =
1903
- runtime.l[id].previousSibling || start).remove(),
1904
+ removed.prepend(
1905
+ (nextSibling = runtime.l[id].previousSibling || start),
1906
+ ),
1904
1907
  start != nextSibling;
1905
1908
 
1906
1909
  );
@@ -1893,12 +1893,15 @@ const REORDER_RUNTIME_CODE = `((runtime) => {
1893
1893
  (placeholderRoot = placeholders[id] =
1894
1894
  {
1895
1895
  i: runtime.l[id] ? 1 : 2,
1896
- c(start = runtime.l["^" + id]) {
1896
+ // Resume may still walk markers inside the dropped placeholder, so
1897
+ // park it in any detached parent (a bare <t> clone is the cheapest).
1898
+ c(start = runtime.l["^" + id], removed = node.cloneNode()) {
1897
1899
  if (--placeholderRoot.i) return 1;
1898
1900
  for (
1899
1901
  ;
1900
- (nextSibling =
1901
- runtime.l[id].previousSibling || start).remove(),
1902
+ removed.prepend(
1903
+ (nextSibling = runtime.l[id].previousSibling || start),
1904
+ ),
1902
1905
  start != nextSibling;
1903
1906
 
1904
1907
  );
@@ -3,3 +3,5 @@ export declare function $signalReset(scope: Scope, id: string | number): void;
3
3
  export declare function $signal(scope: Scope, id: string | number): AbortSignal;
4
4
  /** Enrols `scope` with its branch so destroying the branch cleans it up. */
5
5
  export declare function trackCleanup(scope: Scope, subscribers?: Set<Scope>): void;
6
+ export declare let abortsEnabled: undefined | 1;
7
+ export declare let subscriptionsEnabled: undefined | 1;
@@ -1,12 +1,12 @@
1
- let require_control_flow = require("../dom-59H9kVUF.js"), handlePendingTry = (fn, scope, branch) => {
1
+ let require_control_flow = require("../dom-B15s3PHD.js"), handlePendingTry = (fn, scope, branch) => {
2
2
  for (; branch;) {
3
3
  if (branch.O?.i) return (branch.J ||= []).push(fn, scope);
4
4
  branch = branch.N;
5
5
  }
6
6
  };
7
7
  //#region src/dom/catch.feat.ts
8
- require_control_flow.Xt((runEffects) => (effects, checkPending = require_control_flow.Zt.has(effects)) => {
9
- if (checkPending || require_control_flow.Yt.has(effects)) {
8
+ require_control_flow.Zt((runEffects) => (effects, checkPending = require_control_flow.Qt.has(effects)) => {
9
+ if (checkPending || require_control_flow.Xt.has(effects)) {
10
10
  let i = 0, fn, scope, branch;
11
11
  for (; i < effects.length;) fn = effects[i++], scope = effects[i++], (branch = scope.F)?.H !== 0 && !(checkPending && handlePendingTry(fn, scope, branch)) && fn(scope);
12
12
  } else runEffects(effects);
@@ -4,7 +4,7 @@ let handlePendingTry = (fn, scope, branch) => {
4
4
  branch = branch.N;
5
5
  }
6
6
  };
7
- import { Xt as installCatch, Yt as caughtError, Zt as placeholderShown, g as renderCatch } from "../dom-BKDjlXIl.mjs";
7
+ import { Qt as placeholderShown, Xt as caughtError, Zt as installCatch, g as renderCatch } from "../dom-CPUybM_C.mjs";
8
8
  //#region src/dom/catch.feat.ts
9
9
  installCatch((runEffects) => (effects, checkPending = placeholderShown.has(effects)) => {
10
10
  if (checkPending || caughtError.has(effects)) {
@@ -1,3 +1,3 @@
1
- let require_control_flow = require("../dom-59H9kVUF.js");
1
+ let require_control_flow = require("../dom-B15s3PHD.js");
2
2
  require_control_flow.z[0] = require_control_flow.T, require_control_flow.z[1] = require_control_flow.C, require_control_flow.z[2] = require_control_flow.A;
3
3
  //#endregion
@@ -1,3 +1,3 @@
1
- import { A as _attr_input_value_script, C as _attr_input_checkedValue_script, T as _attr_input_checked_script, z as controllableScripts } from "../dom-BKDjlXIl.mjs";
1
+ import { A as _attr_input_value_script, C as _attr_input_checkedValue_script, T as _attr_input_checked_script, z as controllableScripts } from "../dom-CPUybM_C.mjs";
2
2
  controllableScripts[0] = _attr_input_checked_script, controllableScripts[1] = _attr_input_checkedValue_script, controllableScripts[2] = _attr_input_value_script;
3
3
  //#endregion
@@ -1,4 +1,4 @@
1
- let require_control_flow = require("../dom-59H9kVUF.js");
1
+ let require_control_flow = require("../dom-B15s3PHD.js");
2
2
  //#region src/dom/controllable-open.feat.ts
3
3
  require_control_flow.z[4] = require_control_flow.y;
4
4
  //#endregion
@@ -1,4 +1,4 @@
1
- import { y as _attr_details_or_dialog_open_script, z as controllableScripts } from "../dom-BKDjlXIl.mjs";
1
+ import { y as _attr_details_or_dialog_open_script, z as controllableScripts } from "../dom-CPUybM_C.mjs";
2
2
  //#region src/dom/controllable-open.feat.ts
3
3
  controllableScripts[4] = _attr_details_or_dialog_open_script;
4
4
  //#endregion
@@ -1,4 +1,4 @@
1
- let require_control_flow = require("../dom-59H9kVUF.js");
1
+ let require_control_flow = require("../dom-B15s3PHD.js");
2
2
  //#region src/dom/controllable-select.feat.ts
3
3
  require_control_flow.z[3] = require_control_flow.N;
4
4
  //#endregion
@@ -1,4 +1,4 @@
1
- import { N as _attr_select_value_script, z as controllableScripts } from "../dom-BKDjlXIl.mjs";
1
+ import { N as _attr_select_value_script, z as controllableScripts } from "../dom-CPUybM_C.mjs";
2
2
  //#region src/dom/controllable-select.feat.ts
3
3
  controllableScripts[3] = _attr_select_value_script;
4
4
  //#endregion
@@ -1,4 +1,4 @@
1
- let require_control_flow = require("../dom-59H9kVUF.js");
1
+ let require_control_flow = require("../dom-B15s3PHD.js");
2
2
  //#region src/dom/controllable-textarea.feat.ts
3
3
  require_control_flow.z[2] = require_control_flow.A;
4
4
  //#endregion
@@ -1,4 +1,4 @@
1
- import { A as _attr_input_value_script, z as controllableScripts } from "../dom-BKDjlXIl.mjs";
1
+ import { A as _attr_input_value_script, z as controllableScripts } from "../dom-CPUybM_C.mjs";
2
2
  //#region src/dom/controllable-textarea.feat.ts
3
3
  controllableScripts[2] = _attr_input_value_script;
4
4
  //#endregion
@@ -1,3 +1,3 @@
1
- let require_control_flow = require("../dom-59H9kVUF.js");
1
+ let require_control_flow = require("../dom-B15s3PHD.js");
2
2
  require("./controllable-input.feat.js"), require("./controllable-open.feat.js"), require("./controllable-select.feat.js"), require_control_flow.R.INPUT = require_control_flow.P, require_control_flow.R.TEXTAREA = require_control_flow.L, require_control_flow.R.SELECT = require_control_flow.I, require_control_flow.R.DETAILS = require_control_flow.R.DIALOG = require_control_flow.F;
3
3
  //#endregion
@@ -1,4 +1,4 @@
1
- import { F as _controllable_open, I as _controllable_select, L as _controllable_textarea, P as _controllable_input, R as controllableRenders } from "../dom-BKDjlXIl.mjs";
1
+ import { F as _controllable_open, I as _controllable_select, L as _controllable_textarea, P as _controllable_input, R as controllableRenders } from "../dom-CPUybM_C.mjs";
2
2
  import "./controllable-input.feat.mjs";
3
3
  import "./controllable-open.feat.mjs";
4
4
  import "./controllable-select.feat.mjs";
@@ -1,3 +1,3 @@
1
- let require_control_flow = require("../dom-59H9kVUF.js"), elementGetter = (branch) => () => branch.S;
1
+ let require_control_flow = require("../dom-B15s3PHD.js"), elementGetter = (branch) => () => branch.S;
2
2
  require_control_flow.m((branch) => branch.T(elementGetter(branch))), require_control_flow.gt("e", elementGetter);
3
3
  //#endregion
@@ -1,4 +1,4 @@
1
1
  let elementGetter = (branch) => () => branch.S;
2
- import { gt as _resume, m as installDynamicTagVar } from "../dom-BKDjlXIl.mjs";
2
+ import { gt as _resume, m as installDynamicTagVar } from "../dom-CPUybM_C.mjs";
3
3
  installDynamicTagVar((branch) => branch.T(elementGetter(branch))), _resume("e", elementGetter);
4
4
  //#endregion
@@ -10,9 +10,9 @@ interface LoadSignal {
10
10
  export interface LoadTrigger {
11
11
  <T>(load: () => Promise<T>): () => Promise<T>;
12
12
  }
13
- export declare function _load_template(id: string, load: () => Promise<Renderer>): Template & Renderer;
14
- export declare function _load_setup(nodeAccessor: EncodedAccessor, childScopeAccessor: EncodedAccessor, load: () => Promise<LoadModule>): (owner: Scope) => void;
15
- export declare function _load_signal(load: () => Promise<LoadSignal>): Signal;
13
+ export declare const _load_template: (id: string, load: () => Promise<Renderer>) => Template & Renderer;
14
+ export declare const _load_setup: (nodeAccessor: EncodedAccessor, childScopeAccessor: EncodedAccessor, load: () => Promise<LoadModule>) => (owner: Scope) => void;
15
+ export declare const _load_signal: (load: () => Promise<LoadSignal>) => Signal;
16
16
  export declare function _load_visible_trigger(selector: string, options?: IntersectionObserverInit): LoadTrigger;
17
17
  export declare function _load_idle_trigger(options?: {
18
18
  timeout?: number;
@@ -24,6 +24,7 @@ export interface RenderData {
24
24
  p?: Record<string | number, AwaitCounter>;
25
25
  }
26
26
  export declare function ready(readyId: string): void;
27
+ export declare function withLazy<T>(runtime: T): T;
27
28
  export declare function initEmbedded(readyId: string, runtimeId?: string): void;
28
29
  export declare function init(runtimeId?: string): void;
29
30
  export declare let isResuming: undefined | 0 | 1;