sibujs 3.3.0 → 3.3.1

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 (54) hide show
  1. package/dist/browser.cjs +210 -26
  2. package/dist/browser.js +4 -4
  3. package/dist/build.cjs +193 -89
  4. package/dist/build.js +10 -10
  5. package/dist/cdn.global.js +7 -7
  6. package/dist/{chunk-24DBWDTK.js → chunk-37BUKSLH.js} +1 -1
  7. package/dist/{chunk-IHBVTURX.js → chunk-4UUMSLSL.js} +4 -4
  8. package/dist/{chunk-USDR2GFV.js → chunk-6LTFHJQG.js} +3 -3
  9. package/dist/{chunk-MWZFOIBG.js → chunk-AMIKDMLP.js} +4 -4
  10. package/dist/{chunk-JBXNCZSC.js → chunk-F7FXQ3QS.js} +1 -1
  11. package/dist/{chunk-BEIKESVL.js → chunk-IKLYI3RF.js} +9 -9
  12. package/dist/{chunk-NUWKIEHE.js → chunk-LU2MQXQQ.js} +2 -2
  13. package/dist/{chunk-WVJJUFPC.js → chunk-M5KBNOSJ.js} +2 -2
  14. package/dist/{chunk-7JHWAGRQ.js → chunk-MHBCEJQO.js} +1 -1
  15. package/dist/{chunk-Q2ERM6NT.js → chunk-NHKQKKZU.js} +1 -1
  16. package/dist/{chunk-6G6UNHZI.js → chunk-RYMOSG5B.js} +5 -5
  17. package/dist/{chunk-F4UM7QBJ.js → chunk-SLMFA3ZZ.js} +1 -1
  18. package/dist/{chunk-X3NHE2DK.js → chunk-TEFZT5PJ.js} +83 -17
  19. package/dist/{chunk-SLCUP2EK.js → chunk-ULLTNDRA.js} +3 -3
  20. package/dist/{chunk-M6WSIGYW.js → chunk-VOVVTOEA.js} +2 -2
  21. package/dist/{chunk-XQ7XSGYP.js → chunk-WL7BIR6O.js} +1 -1
  22. package/dist/{chunk-CVMMULHO.js → chunk-WW6DAGGR.js} +4 -4
  23. package/dist/{chunk-5K72I3UQ.js → chunk-WZG2SZOT.js} +21 -4
  24. package/dist/{chunk-S4FHR5ZZ.js → chunk-XH2RTYEQ.js} +3 -3
  25. package/dist/{chunk-4WXWJ4SW.js → chunk-Z37APKBV.js} +4 -4
  26. package/dist/data.cjs +161 -23
  27. package/dist/data.js +6 -6
  28. package/dist/devtools.cjs +245 -31
  29. package/dist/devtools.js +4 -4
  30. package/dist/ecosystem.cjs +183 -45
  31. package/dist/ecosystem.js +7 -7
  32. package/dist/extras.cjs +185 -86
  33. package/dist/extras.js +19 -19
  34. package/dist/index.cjs +193 -89
  35. package/dist/index.d.cts +59 -8
  36. package/dist/index.d.ts +59 -8
  37. package/dist/index.js +10 -10
  38. package/dist/motion.cjs +329 -13
  39. package/dist/motion.js +3 -3
  40. package/dist/patterns.cjs +161 -23
  41. package/dist/patterns.js +5 -5
  42. package/dist/performance.cjs +258 -23
  43. package/dist/performance.js +4 -4
  44. package/dist/plugins.cjs +244 -51
  45. package/dist/plugins.js +6 -6
  46. package/dist/ssr.cjs +183 -44
  47. package/dist/ssr.js +7 -7
  48. package/dist/testing.cjs +396 -5
  49. package/dist/testing.js +2 -2
  50. package/dist/ui.cjs +221 -32
  51. package/dist/ui.js +6 -6
  52. package/dist/widgets.cjs +146 -26
  53. package/dist/widgets.js +6 -6
  54. package/package.json +1 -1
package/dist/ssr.cjs CHANGED
@@ -614,7 +614,7 @@ function hydrateProgressively(container, islands, options) {
614
614
  }
615
615
  container.setAttribute("data-sibu-hydrated", "progressive");
616
616
  return () => {
617
- for (const cleanup2 of cleanups) cleanup2();
617
+ for (const cleanup3 of cleanups) cleanup3();
618
618
  };
619
619
  }
620
620
  function resetSSRState() {
@@ -707,7 +707,7 @@ function escapeAttr(str) {
707
707
  return str.replace(/&/g, "&amp;").replace(/"/g, "&quot;").replace(/'/g, "&#39;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
708
708
  }
709
709
 
710
- // src/reactivity/track.ts
710
+ // src/reactivity/track-core.ts
711
711
  var _isDev3 = isDev();
712
712
  var POOL_MAX = 4096;
713
713
  var nodePool = [];
@@ -791,6 +791,7 @@ function unlinkSub(node) {
791
791
  else sub2.depsTail = prev;
792
792
  }
793
793
  var currentSubscriber = null;
794
+ var suspendSavedSub = null;
794
795
  var notifyDepth = 0;
795
796
  var pendingQueue = [];
796
797
  var pendingSet = /* @__PURE__ */ new Set();
@@ -802,6 +803,35 @@ function safeInvoke(sub2) {
802
803
  if (_isDev3) devWarn(`Subscriber threw during notification: ${err instanceof Error ? err.message : String(err)}`);
803
804
  }
804
805
  }
806
+ var suspendDepth = 0;
807
+ var trackingSuspended = false;
808
+ function suspendTracking() {
809
+ if (suspendDepth === 0) {
810
+ suspendSavedSub = currentSubscriber;
811
+ currentSubscriber = null;
812
+ trackingSuspended = true;
813
+ }
814
+ suspendDepth++;
815
+ }
816
+ function resumeTracking() {
817
+ suspendDepth--;
818
+ if (suspendDepth === 0) {
819
+ currentSubscriber = suspendSavedSub;
820
+ suspendSavedSub = null;
821
+ trackingSuspended = false;
822
+ }
823
+ }
824
+ function isTrackingSuspended() {
825
+ return trackingSuspended;
826
+ }
827
+ function untracked(fn) {
828
+ suspendTracking();
829
+ try {
830
+ return fn();
831
+ } finally {
832
+ resumeTracking();
833
+ }
834
+ }
805
835
  var subscriberEpochCounter = 0;
806
836
  function retrack(effectFn, subscriber) {
807
837
  const prev = currentSubscriber;
@@ -911,6 +941,16 @@ function cleanup(subscriber) {
911
941
  var maxSubscriberRepeats = 50;
912
942
  var maxDrainIterations = 1e6;
913
943
  var drainEpoch = 0;
944
+ function setMaxSubscriberRepeats(n) {
945
+ const prev = maxSubscriberRepeats;
946
+ if (Number.isFinite(n) && n > 0) maxSubscriberRepeats = Math.floor(n);
947
+ return prev;
948
+ }
949
+ function setMaxDrainIterations(n) {
950
+ const prev = maxDrainIterations;
951
+ if (Number.isFinite(n) && n > 0) maxDrainIterations = Math.floor(n);
952
+ return prev;
953
+ }
914
954
  function tickRepeat(sub2) {
915
955
  const s2 = sub2;
916
956
  if (s2._runEpoch !== drainEpoch) {
@@ -1059,6 +1099,85 @@ function notifySubscribers(signal2) {
1059
1099
  }
1060
1100
  }
1061
1101
  }
1102
+ function getSubscriberCount(signal2) {
1103
+ return signal2.__sc ?? 0;
1104
+ }
1105
+ function getSubscriberDeps(subscriber) {
1106
+ const sub2 = subscriber;
1107
+ const out = [];
1108
+ let node = sub2.depsHead ?? null;
1109
+ while (node) {
1110
+ if (node.sig) out.push(node.sig);
1111
+ node = node.subNext;
1112
+ }
1113
+ return out;
1114
+ }
1115
+ function forEachSubscriber(signal2, visit) {
1116
+ let node = signal2.subsHead ?? null;
1117
+ while (node) {
1118
+ const s2 = node.sub;
1119
+ if (s2) visit(s2);
1120
+ node = node.sigNext;
1121
+ }
1122
+ }
1123
+
1124
+ // src/reactivity/track.ts
1125
+ var _isDev4 = isDev();
1126
+ var _runtimeVersion = typeof __SIBU_VERSION__ !== "undefined" ? __SIBU_VERSION__ : "dev";
1127
+ var REGISTRY_KEY = /* @__PURE__ */ Symbol.for("sibujs.reactive.v1");
1128
+ function resolveReactiveApi() {
1129
+ const g2 = globalThis;
1130
+ const existing = g2[REGISTRY_KEY];
1131
+ if (existing) {
1132
+ if (_isDev4 && !existing.__dupWarned) {
1133
+ existing.__dupWarned = true;
1134
+ devWarn(
1135
+ `Multiple instances of the reactive runtime detected on this page (active: ${existing.version}, duplicate: ${_runtimeVersion}). Reactivity still works \u2014 all copies share the first one \u2014 but de-duplicate sibujs in your bundler (e.g. Vite optimizeDeps.exclude: ['sibujs'] or resolve.dedupe: ['sibujs']).`
1136
+ );
1137
+ }
1138
+ return existing;
1139
+ }
1140
+ const local = {
1141
+ suspendTracking,
1142
+ resumeTracking,
1143
+ isTrackingSuspended,
1144
+ untracked,
1145
+ retrack,
1146
+ track,
1147
+ reactiveBinding,
1148
+ recordDependency,
1149
+ cleanup,
1150
+ setMaxSubscriberRepeats,
1151
+ setMaxDrainIterations,
1152
+ drainNotificationQueue,
1153
+ queueSignalNotification,
1154
+ notifySubscribers,
1155
+ getSubscriberCount,
1156
+ getSubscriberDeps,
1157
+ forEachSubscriber,
1158
+ version: _runtimeVersion
1159
+ };
1160
+ g2[REGISTRY_KEY] = local;
1161
+ return local;
1162
+ }
1163
+ var API = resolveReactiveApi();
1164
+ var suspendTracking2 = API.suspendTracking;
1165
+ var resumeTracking2 = API.resumeTracking;
1166
+ var isTrackingSuspended2 = API.isTrackingSuspended;
1167
+ var untracked2 = API.untracked;
1168
+ var retrack2 = API.retrack;
1169
+ var track2 = API.track;
1170
+ var reactiveBinding2 = API.reactiveBinding;
1171
+ var recordDependency2 = API.recordDependency;
1172
+ var cleanup2 = API.cleanup;
1173
+ var setMaxSubscriberRepeats2 = API.setMaxSubscriberRepeats;
1174
+ var setMaxDrainIterations2 = API.setMaxDrainIterations;
1175
+ var drainNotificationQueue2 = API.drainNotificationQueue;
1176
+ var queueSignalNotification2 = API.queueSignalNotification;
1177
+ var notifySubscribers2 = API.notifySubscribers;
1178
+ var getSubscriberCount2 = API.getSubscriberCount;
1179
+ var getSubscriberDeps2 = API.getSubscriberDeps;
1180
+ var forEachSubscriber2 = API.forEachSubscriber;
1062
1181
 
1063
1182
  // src/core/signals/effect.ts
1064
1183
  var _g = globalThis;
@@ -1080,7 +1199,7 @@ function drainReruns(ctx) {
1080
1199
  do {
1081
1200
  ctx.rerunPending = false;
1082
1201
  if (ctx.userCleanups.length > 0) flushUserCleanups(ctx);
1083
- retrack(ctx.bodyFn, ctx.subscriber);
1202
+ retrack2(ctx.bodyFn, ctx.subscriber);
1084
1203
  } while (ctx.rerunPending && ++reruns <= MAX_RERUNS);
1085
1204
  if (ctx.rerunPending) {
1086
1205
  ctx.rerunPending = false;
@@ -1109,7 +1228,7 @@ function disposeEffect(ctx) {
1109
1228
  }
1110
1229
  }
1111
1230
  try {
1112
- cleanup(ctx.subscriber);
1231
+ cleanup2(ctx.subscriber);
1113
1232
  } catch (err) {
1114
1233
  if (typeof console !== "undefined") {
1115
1234
  console.warn("[SibuJS effect] dispose threw:", err);
@@ -1154,7 +1273,7 @@ function effect(effectFn, options) {
1154
1273
  try {
1155
1274
  ctx.rerunPending = false;
1156
1275
  if (ctx.userCleanups.length > 0) flushUserCleanups(ctx);
1157
- retrack(ctx.bodyFn, sub2);
1276
+ retrack2(ctx.bodyFn, sub2);
1158
1277
  if (ctx.rerunPending) drainReruns(ctx);
1159
1278
  } finally {
1160
1279
  ctx.running = false;
@@ -1170,7 +1289,7 @@ function effect(effectFn, options) {
1170
1289
  ctx.subscriber = sub2;
1171
1290
  ctx.running = true;
1172
1291
  try {
1173
- retrack(ctx.bodyFn, ctx.subscriber);
1292
+ retrack2(ctx.bodyFn, ctx.subscriber);
1174
1293
  if (ctx.rerunPending) drainReruns(ctx);
1175
1294
  } finally {
1176
1295
  ctx.running = false;
@@ -1218,7 +1337,7 @@ function Head(props) {
1218
1337
  const anchor = document.createComment("sibu-head");
1219
1338
  const managedElements = [];
1220
1339
  const effectCleanups = [];
1221
- const cleanup2 = () => {
1340
+ const cleanup3 = () => {
1222
1341
  for (const el of managedElements) {
1223
1342
  if (el.parentNode) el.parentNode.removeChild(el);
1224
1343
  }
@@ -1227,7 +1346,7 @@ function Head(props) {
1227
1346
  effectCleanups.length = 0;
1228
1347
  };
1229
1348
  const apply = () => {
1230
- cleanup2();
1349
+ cleanup3();
1231
1350
  if (props.title) {
1232
1351
  if (typeof props.title === "function") {
1233
1352
  const cleanupFn = effect(() => {
@@ -1348,7 +1467,7 @@ async function generateStaticSite(options) {
1348
1467
  // src/reactivity/batch.ts
1349
1468
  var batchDepth = 0;
1350
1469
  var pendingSignals = /* @__PURE__ */ new Set();
1351
- function batch(fn) {
1470
+ function batchImpl(fn) {
1352
1471
  batchDepth++;
1353
1472
  try {
1354
1473
  return fn();
@@ -1359,25 +1478,45 @@ function batch(fn) {
1359
1478
  }
1360
1479
  }
1361
1480
  }
1362
- function enqueueBatchedSignal(signal2) {
1481
+ function enqueueBatchedSignalImpl(signal2) {
1363
1482
  if (batchDepth === 0) return false;
1364
1483
  pendingSignals.add(signal2);
1365
1484
  return true;
1366
1485
  }
1486
+ function isBatchingImpl() {
1487
+ return batchDepth > 0;
1488
+ }
1367
1489
  function flushBatch() {
1368
1490
  try {
1369
1491
  for (const signal2 of pendingSignals) {
1370
- queueSignalNotification(signal2);
1492
+ queueSignalNotification2(signal2);
1371
1493
  }
1372
1494
  } finally {
1373
1495
  pendingSignals.clear();
1374
1496
  }
1375
- drainNotificationQueue();
1497
+ drainNotificationQueue2();
1498
+ }
1499
+ var BATCH_REGISTRY_KEY = /* @__PURE__ */ Symbol.for("sibujs.reactive.batch.v1");
1500
+ function resolveBatchApi() {
1501
+ const g2 = globalThis;
1502
+ const existing = g2[BATCH_REGISTRY_KEY];
1503
+ if (existing) return existing;
1504
+ const local = {
1505
+ batch: batchImpl,
1506
+ enqueueBatchedSignal: enqueueBatchedSignalImpl,
1507
+ isBatching: isBatchingImpl
1508
+ };
1509
+ g2[BATCH_REGISTRY_KEY] = local;
1510
+ return local;
1376
1511
  }
1512
+ var API2 = resolveBatchApi();
1513
+ var batch = API2.batch;
1514
+ var enqueueBatchedSignal = API2.enqueueBatchedSignal;
1515
+ var isBatching = API2.isBatching;
1377
1516
 
1378
1517
  // src/core/signals/signal.ts
1379
1518
  var _g2 = globalThis;
1380
- var _isDev4 = isDev();
1519
+ var _isDev5 = isDev();
1381
1520
  function signal(initial, options) {
1382
1521
  const state = {
1383
1522
  value: initial,
@@ -1388,11 +1527,11 @@ function signal(initial, options) {
1388
1527
  __activeNode: null,
1389
1528
  __name: void 0
1390
1529
  };
1391
- const debugName = _isDev4 ? options?.name : void 0;
1530
+ const debugName = _isDev5 ? options?.name : void 0;
1392
1531
  const equalsFn = options?.equals;
1393
1532
  if (debugName) state.__name = debugName;
1394
1533
  function get() {
1395
- recordDependency(state);
1534
+ recordDependency2(state);
1396
1535
  return state.value;
1397
1536
  }
1398
1537
  get.__signal = state;
@@ -1405,15 +1544,15 @@ function signal(initial, options) {
1405
1544
  if (equalsFn(prev, newValue)) return;
1406
1545
  state.value = newValue;
1407
1546
  state.__v++;
1408
- if (_isDev4) {
1547
+ if (_isDev5) {
1409
1548
  const hook = _g2.__SIBU_DEVTOOLS_GLOBAL_HOOK__;
1410
1549
  if (hook) hook.emit("signal:update", { signal: state, name: debugName, oldValue: prev, newValue });
1411
1550
  }
1412
1551
  if (!enqueueBatchedSignal(state)) {
1413
- notifySubscribers(state);
1552
+ notifySubscribers2(state);
1414
1553
  }
1415
1554
  };
1416
- } else if (_isDev4) {
1555
+ } else if (_isDev5) {
1417
1556
  set = (next) => {
1418
1557
  const prev = state.value;
1419
1558
  const newValue = typeof next === "function" ? next(prev) : next;
@@ -1423,7 +1562,7 @@ function signal(initial, options) {
1423
1562
  const hook = _g2.__SIBU_DEVTOOLS_GLOBAL_HOOK__;
1424
1563
  if (hook) hook.emit("signal:update", { signal: state, name: debugName, oldValue: prev, newValue });
1425
1564
  if (!enqueueBatchedSignal(state)) {
1426
- notifySubscribers(state);
1565
+ notifySubscribers2(state);
1427
1566
  }
1428
1567
  };
1429
1568
  } else {
@@ -1434,11 +1573,11 @@ function signal(initial, options) {
1434
1573
  state.value = newValue;
1435
1574
  state.__v++;
1436
1575
  if (!enqueueBatchedSignal(state)) {
1437
- notifySubscribers(state);
1576
+ notifySubscribers2(state);
1438
1577
  }
1439
1578
  };
1440
1579
  }
1441
- if (_isDev4) {
1580
+ if (_isDev5) {
1442
1581
  const hook = _g2.__SIBU_DEVTOOLS_GLOBAL_HOOK__;
1443
1582
  if (hook) hook.emit("signal:create", { signal: state, name: debugName, getter: get, initial });
1444
1583
  }
@@ -1592,13 +1731,13 @@ function createMiddlewareChain() {
1592
1731
  }
1593
1732
 
1594
1733
  // src/reactivity/bindAttribute.ts
1595
- var _isDev5 = isDev();
1734
+ var _isDev6 = isDev();
1596
1735
  function setProp(el, key, val) {
1597
1736
  el[key] = val;
1598
1737
  }
1599
1738
  function bindAttribute(el, attr, getter) {
1600
1739
  if (isEventHandlerAttr(attr)) {
1601
- if (_isDev5)
1740
+ if (_isDev6)
1602
1741
  devWarn(
1603
1742
  `bindAttribute: refusing to bind event-handler attribute "${attr}". Use on:{ ${attr.slice(2)}: fn } instead.`
1604
1743
  );
@@ -1610,7 +1749,7 @@ function bindAttribute(el, attr, getter) {
1610
1749
  try {
1611
1750
  value = getter();
1612
1751
  } catch (err) {
1613
- if (_isDev5)
1752
+ if (_isDev6)
1614
1753
  devWarn(`bindAttribute: getter for "${attr}" threw: ${err instanceof Error ? err.message : String(err)}`);
1615
1754
  return;
1616
1755
  }
@@ -1631,12 +1770,12 @@ function bindAttribute(el, attr, getter) {
1631
1770
  el.setAttribute(attr, sanitizeAttributeString(attr, str));
1632
1771
  }
1633
1772
  }
1634
- return reactiveBinding(commit);
1773
+ return reactiveBinding2(commit);
1635
1774
  }
1636
1775
 
1637
1776
  // src/core/rendering/dispose.ts
1638
1777
  var elementDisposers = /* @__PURE__ */ new WeakMap();
1639
- var _isDev6 = isDev();
1778
+ var _isDev7 = isDev();
1640
1779
  var activeBindingCount = 0;
1641
1780
  function registerDisposer(node, teardown) {
1642
1781
  let disposers = elementDisposers.get(node);
@@ -1645,7 +1784,7 @@ function registerDisposer(node, teardown) {
1645
1784
  elementDisposers.set(node, disposers);
1646
1785
  }
1647
1786
  disposers.push(teardown);
1648
- if (_isDev6) activeBindingCount++;
1787
+ if (_isDev7) activeBindingCount++;
1649
1788
  }
1650
1789
  function dispose(node) {
1651
1790
  const stack = [node];
@@ -1664,12 +1803,12 @@ function dispose(node) {
1664
1803
  if (disposers) {
1665
1804
  const snapshot = disposers.slice();
1666
1805
  elementDisposers.delete(current);
1667
- if (_isDev6) activeBindingCount -= snapshot.length;
1806
+ if (_isDev7) activeBindingCount -= snapshot.length;
1668
1807
  for (const d of snapshot) {
1669
1808
  try {
1670
1809
  d();
1671
1810
  } catch (err) {
1672
- if (_isDev6 && typeof console !== "undefined") {
1811
+ if (_isDev7 && typeof console !== "undefined") {
1673
1812
  console.warn("[SibuJS] Disposer threw during cleanup:", err);
1674
1813
  }
1675
1814
  }
@@ -1680,12 +1819,12 @@ function dispose(node) {
1680
1819
  if (!added || added.length === 0) break;
1681
1820
  const moreSnapshot = added.slice();
1682
1821
  elementDisposers.delete(current);
1683
- if (_isDev6) activeBindingCount -= moreSnapshot.length;
1822
+ if (_isDev7) activeBindingCount -= moreSnapshot.length;
1684
1823
  for (const d of moreSnapshot) {
1685
1824
  try {
1686
1825
  d();
1687
1826
  } catch (err) {
1688
- if (_isDev6 && typeof console !== "undefined") {
1827
+ if (_isDev7 && typeof console !== "undefined") {
1689
1828
  console.warn("[SibuJS] Disposer threw during cleanup:", err);
1690
1829
  }
1691
1830
  }
@@ -1696,7 +1835,7 @@ function dispose(node) {
1696
1835
  }
1697
1836
 
1698
1837
  // src/reactivity/bindChildNode.ts
1699
- var _isDev7 = isDev();
1838
+ var _isDev8 = isDev();
1700
1839
  function bindChildNode(placeholder, getter) {
1701
1840
  let lastNodes = [];
1702
1841
  function commit() {
@@ -1704,7 +1843,7 @@ function bindChildNode(placeholder, getter) {
1704
1843
  try {
1705
1844
  result = getter();
1706
1845
  } catch (err) {
1707
- if (_isDev7) devWarn(`bindChildNode: getter threw: ${err instanceof Error ? err.message : String(err)}`);
1846
+ if (_isDev8) devWarn(`bindChildNode: getter threw: ${err instanceof Error ? err.message : String(err)}`);
1708
1847
  return;
1709
1848
  }
1710
1849
  if (result == null || typeof result === "boolean") {
@@ -1730,7 +1869,7 @@ function bindChildNode(placeholder, getter) {
1730
1869
  if (item == null || typeof item === "boolean") continue;
1731
1870
  const node = item instanceof Node ? item : document.createTextNode(String(item));
1732
1871
  if (seen.has(node)) {
1733
- if (_isDev7)
1872
+ if (_isDev8)
1734
1873
  devWarn("bindChildNode: duplicate node reference in array \u2014 only the first occurrence is rendered.");
1735
1874
  continue;
1736
1875
  }
@@ -1765,12 +1904,12 @@ function bindChildNode(placeholder, getter) {
1765
1904
  }
1766
1905
  lastNodes = newNodes;
1767
1906
  }
1768
- return reactiveBinding(commit);
1907
+ return reactiveBinding2(commit);
1769
1908
  }
1770
1909
 
1771
1910
  // src/core/rendering/tagFactory.ts
1772
1911
  var SVG_NS = "http://www.w3.org/2000/svg";
1773
- var _isDev8 = isDev();
1912
+ var _isDev9 = isDev();
1774
1913
  var BLOCKED_TAGS = /* @__PURE__ */ new Set(["script", "iframe", "object", "embed", "frame", "frameset"]);
1775
1914
  function isBlockedTag(tag) {
1776
1915
  return BLOCKED_TAGS.has(tag.toLowerCase());
@@ -1813,7 +1952,7 @@ function toKebab(prop) {
1813
1952
  }
1814
1953
  function applyStyle(el, style2) {
1815
1954
  if (typeof style2 === "function") {
1816
- const teardown = track(() => {
1955
+ const teardown = track2(() => {
1817
1956
  el.setAttribute("style", style2());
1818
1957
  });
1819
1958
  registerDisposer(el, teardown);
@@ -1829,7 +1968,7 @@ function applyStyle(el, style2) {
1829
1968
  const name = toKebab(prop);
1830
1969
  if (typeof val === "function") {
1831
1970
  const getter = val;
1832
- const teardown = track(() => {
1971
+ const teardown = track2(() => {
1833
1972
  htmlEl.style.setProperty(name, sanitizeCSSValue(String(getter())));
1834
1973
  });
1835
1974
  registerDisposer(el, teardown);
@@ -1844,7 +1983,7 @@ function applyClass(el, cls) {
1844
1983
  return;
1845
1984
  }
1846
1985
  if (typeof cls === "function") {
1847
- const teardown = track(() => {
1986
+ const teardown = track2(() => {
1848
1987
  el.setAttribute("class", cls());
1849
1988
  });
1850
1989
  registerDisposer(el, teardown);
@@ -1871,7 +2010,7 @@ function applyClass(el, cls) {
1871
2010
  }
1872
2011
  el.setAttribute("class", r);
1873
2012
  };
1874
- const teardown = track(update);
2013
+ const teardown = track2(update);
1875
2014
  registerDisposer(el, teardown);
1876
2015
  } else {
1877
2016
  el.setAttribute("class", result);
@@ -1941,7 +2080,7 @@ var tagFactory = (tag, ns) => {
1941
2080
  appendChildren(el, second);
1942
2081
  return el;
1943
2082
  }
1944
- if (_isDev8 && looksLikeClassList(first)) {
2083
+ if (_isDev9 && looksLikeClassList(first)) {
1945
2084
  devWarn(
1946
2085
  `tagFactory: lone string "${first}" looks like a class list but is being rendered as TEXT. For a class, use ${tag}({ class: "${first}" }) \u2014 or ${tag}("${first}", children) to set the class AND add children.`
1947
2086
  );
@@ -1962,7 +2101,7 @@ var tagFactory = (tag, ns) => {
1962
2101
  if (pClass != null) applyClass(el, pClass);
1963
2102
  const pId = props.id;
1964
2103
  if (pId != null) {
1965
- if (_isDev8 && typeof pId === "string" && CLOBBER_RISKY_IDS.has(pId.toLowerCase())) {
2104
+ if (_isDev9 && typeof pId === "string" && CLOBBER_RISKY_IDS.has(pId.toLowerCase())) {
1966
2105
  devWarn(
1967
2106
  `tagFactory: element id="${pId}" matches a common global and may cause DOM clobbering. Avoid setting ids from untrusted input.`
1968
2107
  );
@@ -1977,7 +2116,7 @@ var tagFactory = (tag, ns) => {
1977
2116
  const handler = pOn[ev];
1978
2117
  if (typeof handler === "function") {
1979
2118
  el.addEventListener(ev, handler);
1980
- } else if (_isDev8) {
2119
+ } else if (_isDev9) {
1981
2120
  devWarn(
1982
2121
  `tagFactory: on.${ev} handler is not a function (got ${typeof handler}). Event listener was not attached.`
1983
2122
  );
@@ -2090,7 +2229,7 @@ var area = tagFactory("area");
2090
2229
  var audio = tagFactory("audio");
2091
2230
  var img = tagFactory("img");
2092
2231
  var map = tagFactory("map");
2093
- var track2 = tagFactory("track");
2232
+ var track3 = tagFactory("track");
2094
2233
  var video = tagFactory("video");
2095
2234
  var embed = tagFactory("embed");
2096
2235
  var iframe = tagFactory("iframe");
package/dist/ssr.js CHANGED
@@ -22,8 +22,8 @@ import {
22
22
  wasm,
23
23
  worker,
24
24
  workerFn
25
- } from "./chunk-USDR2GFV.js";
26
- import "./chunk-24DBWDTK.js";
25
+ } from "./chunk-6LTFHJQG.js";
26
+ import "./chunk-37BUKSLH.js";
27
27
  import {
28
28
  collectStream,
29
29
  deserializeState,
@@ -44,14 +44,14 @@ import {
44
44
  suspenseSwapScript,
45
45
  trustHTML
46
46
  } from "./chunk-R3QEDXFS.js";
47
- import "./chunk-NUWKIEHE.js";
48
- import "./chunk-Q2ERM6NT.js";
47
+ import "./chunk-LU2MQXQQ.js";
48
+ import "./chunk-NHKQKKZU.js";
49
49
  import "./chunk-5VGSK6D2.js";
50
50
  import "./chunk-L3GAGWCC.js";
51
- import "./chunk-7JHWAGRQ.js";
51
+ import "./chunk-MHBCEJQO.js";
52
52
  import "./chunk-GOJMFRBL.js";
53
- import "./chunk-5K72I3UQ.js";
54
- import "./chunk-X3NHE2DK.js";
53
+ import "./chunk-WZG2SZOT.js";
54
+ import "./chunk-TEFZT5PJ.js";
55
55
  import "./chunk-COY6PUD2.js";
56
56
  export {
57
57
  Head,