sibujs 1.5.0 → 2.0.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 (207) hide show
  1. package/dist/browser.cjs +238 -69
  2. package/dist/browser.d.cts +5 -0
  3. package/dist/browser.d.ts +5 -0
  4. package/dist/browser.js +6 -6
  5. package/dist/build.cjs +916 -292
  6. package/dist/build.js +15 -13
  7. package/dist/cdn.global.js +17 -16
  8. package/dist/chunk-2RA7SHDA.js +65 -0
  9. package/dist/chunk-2UPRY23K.js +80 -0
  10. package/dist/chunk-3JHCYHWN.js +125 -0
  11. package/dist/{chunk-VAPYJN4X.js → chunk-3LR7GLWQ.js} +93 -23
  12. package/dist/{chunk-RJ46C3CS.js → chunk-3NSGB5JN.js} +71 -20
  13. package/dist/{chunk-XUEEGU5O.js → chunk-52YJLLRO.js} +16 -4
  14. package/dist/{chunk-XHK6BDAJ.js → chunk-54EDRCEF.js} +25 -8
  15. package/dist/chunk-7JDB7I65.js +1327 -0
  16. package/dist/{chunk-WZSPOOER.js → chunk-CC65Y57T.js} +8 -5
  17. package/dist/{chunk-23VV7YD3.js → chunk-DFPFITST.js} +25 -30
  18. package/dist/{chunk-BGN5ZMP4.js → chunk-GTBNNBJ6.js} +14 -2
  19. package/dist/chunk-HB24TBAF.js +121 -0
  20. package/dist/{chunk-CZUGLNJS.js → chunk-ITX6OO3F.js} +3 -3
  21. package/dist/{chunk-BGTHZHJ5.js → chunk-JA6667UN.js} +188 -44
  22. package/dist/{chunk-7GRNSCFT.js → chunk-JXMMDLBY.js} +306 -183
  23. package/dist/{chunk-3X2YG6YM.js → chunk-JYD2PWXH.js} +59 -28
  24. package/dist/{chunk-SFKNRVCU.js → chunk-KLRMB5ZS.js} +135 -79
  25. package/dist/{chunk-5X6PP2UK.js → chunk-LMLD24FC.js} +2 -2
  26. package/dist/{chunk-M4NLBH4I.js → chunk-LYTCUZ7H.js} +3 -2
  27. package/dist/{chunk-BMPL52BF.js → chunk-MIUAXB7K.js} +118 -66
  28. package/dist/{chunk-JCDUJN2F.js → chunk-ND2664SF.js} +486 -153
  29. package/dist/{chunk-VQDZK23A.js → chunk-O2MNQFLP.js} +181 -66
  30. package/dist/{chunk-NHUC2QWH.js → chunk-R73P76YZ.js} +1 -1
  31. package/dist/{chunk-2BYQDGN3.js → chunk-SAHNHTFC.js} +234 -63
  32. package/dist/chunk-UCS6AMJ7.js +79 -0
  33. package/dist/{chunk-K4G4ZQNR.js → chunk-VLPPXTYG.js} +84 -38
  34. package/dist/{chunk-OUZZEE4S.js → chunk-WOMYAHHI.js} +17 -11
  35. package/dist/{customElement-BL3Uo8dL.d.cts → customElement-CPfIrbvg.d.cts} +14 -10
  36. package/dist/{customElement-BL3Uo8dL.d.ts → customElement-CPfIrbvg.d.ts} +14 -10
  37. package/dist/data.cjs +410 -99
  38. package/dist/data.d.cts +20 -2
  39. package/dist/data.d.ts +20 -2
  40. package/dist/data.js +11 -9
  41. package/dist/devtools.cjs +513 -223
  42. package/dist/devtools.d.cts +1 -1
  43. package/dist/devtools.d.ts +1 -1
  44. package/dist/devtools.js +12 -6
  45. package/dist/ecosystem.cjs +475 -144
  46. package/dist/ecosystem.d.cts +9 -7
  47. package/dist/ecosystem.d.ts +9 -7
  48. package/dist/ecosystem.js +12 -11
  49. package/dist/extras.cjs +3355 -1541
  50. package/dist/extras.d.cts +9 -9
  51. package/dist/extras.d.ts +9 -9
  52. package/dist/extras.js +58 -45
  53. package/dist/index.cjs +920 -292
  54. package/dist/index.d.cts +71 -8
  55. package/dist/index.d.ts +71 -8
  56. package/dist/index.js +28 -16
  57. package/dist/{introspect-BumjnBKr.d.cts → introspect-BWNjNw64.d.cts} +22 -2
  58. package/dist/{introspect-CZrlcaYy.d.ts → introspect-cY2pg9pW.d.ts} +22 -2
  59. package/dist/motion.cjs +77 -34
  60. package/dist/motion.js +4 -4
  61. package/dist/patterns.cjs +335 -69
  62. package/dist/patterns.d.cts +11 -12
  63. package/dist/patterns.d.ts +11 -12
  64. package/dist/patterns.js +7 -7
  65. package/dist/performance.cjs +279 -108
  66. package/dist/performance.d.cts +23 -16
  67. package/dist/performance.d.ts +23 -16
  68. package/dist/performance.js +13 -8
  69. package/dist/plugin-D30wlGW5.d.cts +71 -0
  70. package/dist/plugin-D30wlGW5.d.ts +71 -0
  71. package/dist/plugins.cjs +635 -260
  72. package/dist/plugins.d.cts +10 -3
  73. package/dist/plugins.d.ts +10 -3
  74. package/dist/plugins.js +106 -38
  75. package/dist/{ssr-Do_SiVoL.d.cts → ssr-CrVNy6Pa.d.cts} +9 -15
  76. package/dist/{ssr-Do_SiVoL.d.ts → ssr-CrVNy6Pa.d.ts} +9 -15
  77. package/dist/{ssr-4PBXAOO3.js → ssr-FXD2PPMC.js} +4 -3
  78. package/dist/ssr.cjs +642 -222
  79. package/dist/ssr.d.cts +26 -6
  80. package/dist/ssr.d.ts +26 -6
  81. package/dist/ssr.js +12 -11
  82. package/dist/{tagFactory-DaJ0YWX6.d.cts → tagFactory-S17H2qxu.d.cts} +9 -1
  83. package/dist/{tagFactory-DaJ0YWX6.d.ts → tagFactory-S17H2qxu.d.ts} +9 -1
  84. package/dist/testing.cjs +252 -63
  85. package/dist/testing.d.cts +17 -4
  86. package/dist/testing.d.ts +17 -4
  87. package/dist/testing.js +100 -44
  88. package/dist/ui.cjs +463 -137
  89. package/dist/ui.d.cts +1 -1
  90. package/dist/ui.d.ts +1 -1
  91. package/dist/ui.js +20 -17
  92. package/dist/widgets.cjs +977 -94
  93. package/dist/widgets.d.cts +104 -2
  94. package/dist/widgets.d.ts +104 -2
  95. package/dist/widgets.js +9 -7
  96. package/package.json +8 -2
  97. package/dist/chunk-32DY64NT.js +0 -282
  98. package/dist/chunk-3AIRKM3B.js +0 -1263
  99. package/dist/chunk-3ARAQO7B.js +0 -398
  100. package/dist/chunk-3CRQALYP.js +0 -877
  101. package/dist/chunk-4EI4AG32.js +0 -482
  102. package/dist/chunk-4MYMUBRS.js +0 -21
  103. package/dist/chunk-5ZYQ6KDD.js +0 -154
  104. package/dist/chunk-6BMPXPUW.js +0 -26
  105. package/dist/chunk-6HLLIF3K.js +0 -398
  106. package/dist/chunk-6LSNVCS2.js +0 -937
  107. package/dist/chunk-6SA3QQES.js +0 -61
  108. package/dist/chunk-77L6NL3X.js +0 -1097
  109. package/dist/chunk-7BF6TK55.js +0 -1097
  110. package/dist/chunk-7TQKR4PP.js +0 -294
  111. package/dist/chunk-7V26P53V.js +0 -712
  112. package/dist/chunk-AZ3ISID5.js +0 -298
  113. package/dist/chunk-B7SWRFUT.js +0 -332
  114. package/dist/chunk-BTU3TJDS.js +0 -365
  115. package/dist/chunk-BW3WT46K.js +0 -937
  116. package/dist/chunk-C6KFWOFV.js +0 -616
  117. package/dist/chunk-CHF5OHIA.js +0 -61
  118. package/dist/chunk-CHJ27IGK.js +0 -26
  119. package/dist/chunk-CMBFNA7L.js +0 -27
  120. package/dist/chunk-DAHRH4ON.js +0 -331
  121. package/dist/chunk-DKOHBI74.js +0 -924
  122. package/dist/chunk-DTCOOBMX.js +0 -725
  123. package/dist/chunk-EBGIRKQY.js +0 -616
  124. package/dist/chunk-EUZND3CB.js +0 -27
  125. package/dist/chunk-EVCZO745.js +0 -365
  126. package/dist/chunk-EWFVA3TJ.js +0 -282
  127. package/dist/chunk-F3FA4F32.js +0 -292
  128. package/dist/chunk-FGOEVHY3.js +0 -60
  129. package/dist/chunk-G3BOQPVO.js +0 -365
  130. package/dist/chunk-GCOK2LC3.js +0 -282
  131. package/dist/chunk-GJPXRJ45.js +0 -37
  132. package/dist/chunk-HGMJFBC7.js +0 -654
  133. package/dist/chunk-JAKHTMQU.js +0 -1000
  134. package/dist/chunk-JCI5M6U6.js +0 -956
  135. package/dist/chunk-K5ZUMYVS.js +0 -89
  136. package/dist/chunk-KQPDEVVS.js +0 -398
  137. package/dist/chunk-L6JRBDNS.js +0 -60
  138. package/dist/chunk-LA6KQEDU.js +0 -712
  139. package/dist/chunk-MB6QFH3I.js +0 -2776
  140. package/dist/chunk-MDVXJWFN.js +0 -304
  141. package/dist/chunk-MEZVEBPN.js +0 -2008
  142. package/dist/chunk-MK4ERFYL.js +0 -2249
  143. package/dist/chunk-MLKGABMK.js +0 -9
  144. package/dist/chunk-MQ5GOYPH.js +0 -2249
  145. package/dist/chunk-MYRV7VDM.js +0 -742
  146. package/dist/chunk-N6IZB6KJ.js +0 -567
  147. package/dist/chunk-NEKUBFPT.js +0 -60
  148. package/dist/chunk-NMRUZALC.js +0 -1097
  149. package/dist/chunk-NYVAC6P5.js +0 -37
  150. package/dist/chunk-NZIIMDWI.js +0 -84
  151. package/dist/chunk-OF7UZIVB.js +0 -725
  152. package/dist/chunk-P3XWXJZU.js +0 -282
  153. package/dist/chunk-P6W3STU4.js +0 -2249
  154. package/dist/chunk-PBHF5WKN.js +0 -616
  155. package/dist/chunk-PDZQY43A.js +0 -616
  156. package/dist/chunk-PTQJDMRT.js +0 -146
  157. package/dist/chunk-PZEGYCF5.js +0 -61
  158. package/dist/chunk-QBMDLBU2.js +0 -975
  159. package/dist/chunk-QWZG56ET.js +0 -2744
  160. package/dist/chunk-RQGQSLQK.js +0 -725
  161. package/dist/chunk-SDLZDHKP.js +0 -107
  162. package/dist/chunk-TDGZL5CU.js +0 -365
  163. package/dist/chunk-TNQWPPE6.js +0 -37
  164. package/dist/chunk-TSOKIX5Z.js +0 -654
  165. package/dist/chunk-UHNL42EF.js +0 -2730
  166. package/dist/chunk-UNXCEF6S.js +0 -21
  167. package/dist/chunk-V2XTI523.js +0 -347
  168. package/dist/chunk-VAU366PN.js +0 -2241
  169. package/dist/chunk-VMVDTCXB.js +0 -712
  170. package/dist/chunk-VQNQZCWJ.js +0 -61
  171. package/dist/chunk-VRW3FULF.js +0 -725
  172. package/dist/chunk-WADYRCO2.js +0 -304
  173. package/dist/chunk-WILQZRO4.js +0 -282
  174. package/dist/chunk-WR5D4EGH.js +0 -26
  175. package/dist/chunk-WUHJISPP.js +0 -298
  176. package/dist/chunk-XYU6TZOW.js +0 -182
  177. package/dist/chunk-Y6GP4QGG.js +0 -276
  178. package/dist/chunk-YECR7UIA.js +0 -347
  179. package/dist/chunk-YUTWTI4B.js +0 -654
  180. package/dist/chunk-Z65KYU7I.js +0 -26
  181. package/dist/chunk-Z6POF5YC.js +0 -975
  182. package/dist/chunk-ZBJP6WFL.js +0 -482
  183. package/dist/chunk-ZD6OAMTH.js +0 -277
  184. package/dist/chunk-ZWKZCBO6.js +0 -317
  185. package/dist/contracts-DDrwxvJ-.d.cts +0 -245
  186. package/dist/contracts-DDrwxvJ-.d.ts +0 -245
  187. package/dist/contracts-DOrhwbke.d.cts +0 -245
  188. package/dist/contracts-DOrhwbke.d.ts +0 -245
  189. package/dist/contracts-xo5ckdRP.d.cts +0 -240
  190. package/dist/contracts-xo5ckdRP.d.ts +0 -240
  191. package/dist/customElement-BKQfbSZQ.d.cts +0 -262
  192. package/dist/customElement-BKQfbSZQ.d.ts +0 -262
  193. package/dist/customElement-D2DJp_xn.d.cts +0 -313
  194. package/dist/customElement-D2DJp_xn.d.ts +0 -313
  195. package/dist/customElement-yz8uyk-0.d.cts +0 -308
  196. package/dist/customElement-yz8uyk-0.d.ts +0 -308
  197. package/dist/introspect-Cb0zgpi2.d.cts +0 -477
  198. package/dist/introspect-Y2xNXGSf.d.ts +0 -477
  199. package/dist/plugin-Bek4RhJY.d.cts +0 -43
  200. package/dist/plugin-Bek4RhJY.d.ts +0 -43
  201. package/dist/ssr-3RXHP5ES.js +0 -38
  202. package/dist/ssr-6GIMY5MX.js +0 -38
  203. package/dist/ssr-BA6sxxUd.d.cts +0 -135
  204. package/dist/ssr-BA6sxxUd.d.ts +0 -135
  205. package/dist/ssr-WKUPVSSK.js +0 -36
  206. package/dist/tagFactory-Dl8QCLga.d.cts +0 -23
  207. package/dist/tagFactory-Dl8QCLga.d.ts +0 -23
package/dist/motion.cjs CHANGED
@@ -283,7 +283,7 @@ function isDev() {
283
283
  var _isDev = isDev();
284
284
  function devWarn(message) {
285
285
  if (_isDev) {
286
- console.warn(`[Sibu] ${message}`);
286
+ console.warn(`[SibuJS] ${message}`);
287
287
  }
288
288
  }
289
289
 
@@ -291,11 +291,11 @@ function devWarn(message) {
291
291
  var _isDev2 = isDev();
292
292
  var subscriberStack = new Array(32);
293
293
  var currentSubscriber = null;
294
- var signalSubscribers = /* @__PURE__ */ new WeakMap();
295
294
  var SUBS = "__s";
296
295
  var notifyDepth = 0;
297
296
  var pendingQueue = [];
298
297
  var pendingSet = /* @__PURE__ */ new Set();
298
+ var propagateStack = [];
299
299
  function safeInvoke(sub) {
300
300
  try {
301
301
  sub();
@@ -323,7 +323,6 @@ function recordDependency(signal2) {
323
323
  let subs = signal2[SUBS];
324
324
  if (!subs) {
325
325
  subs = /* @__PURE__ */ new Set();
326
- signalSubscribers.set(signal2, subs);
327
326
  signal2[SUBS] = subs;
328
327
  }
329
328
  subs.add(currentSubscriber);
@@ -333,42 +332,46 @@ function recordDependency(signal2) {
333
332
  signal2.__f = void 0;
334
333
  }
335
334
  }
335
+ var maxDrainIterations = 1e5;
336
336
  function propagateDirty(sub) {
337
337
  sub();
338
- let sig = sub._sig;
339
- while (sig) {
338
+ const rootSig = sub._sig;
339
+ if (!rootSig) return;
340
+ const stack = propagateStack;
341
+ const baseLen = stack.length;
342
+ stack.push(rootSig);
343
+ while (stack.length > baseLen) {
344
+ const sig = stack.pop();
340
345
  const first = sig.__f;
341
346
  if (first) {
342
347
  if (first._c) {
343
348
  const nSig = first._sig;
344
- nSig._d = true;
345
- sig = nSig;
346
- continue;
347
- }
348
- if (!pendingSet.has(first)) {
349
+ if (!nSig._d) {
350
+ nSig._d = true;
351
+ stack.push(nSig);
352
+ }
353
+ } else if (!pendingSet.has(first)) {
349
354
  pendingSet.add(first);
350
355
  pendingQueue.push(first);
351
356
  }
352
- break;
357
+ continue;
353
358
  }
354
359
  const subs = sig[SUBS];
355
- if (!subs) break;
356
- let nextSig;
360
+ if (!subs) continue;
357
361
  for (const s of subs) {
358
362
  if (s._c) {
359
- s();
360
363
  const nSig = s._sig;
361
- if (nSig && !nextSig) {
362
- nextSig = nSig;
363
- } else if (nSig) {
364
- propagateDirty(s);
364
+ if (nSig && !nSig._d) {
365
+ nSig._d = true;
366
+ stack.push(nSig);
367
+ } else if (!nSig) {
368
+ s();
365
369
  }
366
370
  } else if (!pendingSet.has(s)) {
367
371
  pendingSet.add(s);
368
372
  pendingQueue.push(s);
369
373
  }
370
374
  }
371
- sig = nextSig;
372
375
  }
373
376
  }
374
377
  function notifySubscribers(signal2) {
@@ -392,13 +395,23 @@ function notifySubscribers(signal2) {
392
395
  }
393
396
  let i = 0;
394
397
  while (i < pendingQueue.length) {
398
+ if (i >= maxDrainIterations) {
399
+ if (typeof console !== "undefined") {
400
+ console.error(
401
+ `[SibuJS] Notification queue exceeded ${maxDrainIterations} iterations \u2014 likely an effect that writes to a signal it reads. Breaking to prevent infinite loop.`
402
+ );
403
+ }
404
+ break;
405
+ }
395
406
  safeInvoke(pendingQueue[i]);
396
407
  i++;
397
408
  }
398
409
  } finally {
399
- pendingQueue.length = 0;
400
- pendingSet.clear();
401
410
  notifyDepth--;
411
+ if (notifyDepth === 0) {
412
+ pendingQueue.length = 0;
413
+ pendingSet.clear();
414
+ }
402
415
  }
403
416
  return;
404
417
  }
@@ -418,30 +431,48 @@ function notifySubscribers(signal2) {
418
431
  notifyDepth++;
419
432
  try {
420
433
  let directCount = 0;
434
+ let hasComputedSub = false;
421
435
  for (const sub of subs) {
436
+ if (sub._c) hasComputedSub = true;
422
437
  pendingQueue[directCount++] = sub;
423
438
  }
424
- for (let i2 = 0; i2 < directCount; i2++) {
425
- if (pendingQueue[i2]._c) {
426
- propagateDirty(pendingQueue[i2]);
439
+ if (!hasComputedSub) {
440
+ for (let i2 = 0; i2 < directCount; i2++) {
441
+ safeInvoke(pendingQueue[i2]);
427
442
  }
428
- }
429
- for (let i2 = 0; i2 < directCount; i2++) {
430
- if (!pendingQueue[i2]._c) {
431
- if (!pendingSet.has(pendingQueue[i2])) {
432
- safeInvoke(pendingQueue[i2]);
443
+ } else {
444
+ for (let i2 = 0; i2 < directCount; i2++) {
445
+ if (pendingQueue[i2]._c) {
446
+ propagateDirty(pendingQueue[i2]);
447
+ }
448
+ }
449
+ for (let i2 = 0; i2 < directCount; i2++) {
450
+ const sub = pendingQueue[i2];
451
+ if (!sub._c && !pendingSet.has(sub)) {
452
+ pendingSet.add(sub);
453
+ safeInvoke(sub);
433
454
  }
434
455
  }
435
456
  }
436
457
  let i = directCount;
437
458
  while (i < pendingQueue.length) {
459
+ if (i - directCount >= maxDrainIterations) {
460
+ if (typeof console !== "undefined") {
461
+ console.error(
462
+ `[SibuJS] Notification queue exceeded ${maxDrainIterations} iterations \u2014 likely an effect that writes to a signal it reads. Breaking to prevent infinite loop.`
463
+ );
464
+ }
465
+ break;
466
+ }
438
467
  safeInvoke(pendingQueue[i]);
439
468
  i++;
440
469
  }
441
470
  } finally {
442
- pendingQueue.length = 0;
443
- pendingSet.clear();
444
471
  notifyDepth--;
472
+ if (notifyDepth === 0) {
473
+ pendingQueue.length = 0;
474
+ pendingSet.clear();
475
+ }
445
476
  }
446
477
  }
447
478
 
@@ -602,15 +633,24 @@ function springSignal(initial, options) {
602
633
  let velocity = 0;
603
634
  let target = initial;
604
635
  let rafId = null;
605
- function tick() {
636
+ let lastTime = 0;
637
+ const REF_DT_MS = 1e3 / 60;
638
+ const MAX_STEP_RATIO = 4;
639
+ function tick(now) {
640
+ if (lastTime === 0) lastTime = now;
641
+ const rawDt = now - lastTime;
642
+ lastTime = now;
643
+ const dt = Number.isFinite(rawDt) && rawDt > 0 ? rawDt : REF_DT_MS;
644
+ const ratio = Math.min(MAX_STEP_RATIO, Math.max(0.1, dt / REF_DT_MS));
606
645
  const force = -stiffness * (current - target);
607
646
  const dampingForce = -damping * velocity;
608
- velocity += force + dampingForce;
609
- current += velocity;
647
+ velocity += (force + dampingForce) * ratio;
648
+ current += velocity * ratio;
610
649
  if (Math.abs(current - target) < precision && Math.abs(velocity) < precision) {
611
650
  current = target;
612
651
  velocity = 0;
613
652
  rafId = null;
653
+ lastTime = 0;
614
654
  setValue(current);
615
655
  return;
616
656
  }
@@ -626,10 +666,12 @@ function springSignal(initial, options) {
626
666
  cancelAnimationFrame(rafId);
627
667
  rafId = null;
628
668
  }
669
+ lastTime = 0;
629
670
  setValue(current);
630
671
  return;
631
672
  }
632
673
  if (rafId === null) {
674
+ lastTime = 0;
633
675
  rafId = requestAnimationFrame(tick);
634
676
  }
635
677
  }
@@ -638,6 +680,7 @@ function springSignal(initial, options) {
638
680
  cancelAnimationFrame(rafId);
639
681
  rafId = null;
640
682
  }
683
+ lastTime = 0;
641
684
  }
642
685
  return [value, set, dispose];
643
686
  }
package/dist/motion.js CHANGED
@@ -19,10 +19,10 @@ import {
19
19
  stagger,
20
20
  transition,
21
21
  viewTransition
22
- } from "./chunk-XUEEGU5O.js";
23
- import "./chunk-NZIIMDWI.js";
24
- import "./chunk-K4G4ZQNR.js";
25
- import "./chunk-5X6PP2UK.js";
22
+ } from "./chunk-52YJLLRO.js";
23
+ import "./chunk-CC65Y57T.js";
24
+ import "./chunk-VLPPXTYG.js";
25
+ import "./chunk-LMLD24FC.js";
26
26
  export {
27
27
  TransitionGroup,
28
28
  animate,