sibujs 1.4.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.
- package/README.md +105 -119
- package/dist/browser.cjs +288 -80
- package/dist/browser.d.cts +19 -9
- package/dist/browser.d.ts +19 -9
- package/dist/browser.js +6 -6
- package/dist/build.cjs +1019 -313
- package/dist/build.d.cts +1 -1
- package/dist/build.d.ts +1 -1
- package/dist/build.js +15 -13
- package/dist/cdn.global.js +17 -16
- package/dist/chunk-2RA7SHDA.js +65 -0
- package/dist/chunk-2UPRY23K.js +80 -0
- package/dist/chunk-3JHCYHWN.js +125 -0
- package/dist/{chunk-ZWKZCBO6.js → chunk-3LR7GLWQ.js} +154 -33
- package/dist/{chunk-3AIRKM3B.js → chunk-3NSGB5JN.js} +115 -34
- package/dist/{chunk-3ARAQO7B.js → chunk-52YJLLRO.js} +29 -6
- package/dist/chunk-54EDRCEF.js +93 -0
- package/dist/chunk-7JDB7I65.js +1327 -0
- package/dist/{chunk-WZSPOOER.js → chunk-CC65Y57T.js} +8 -5
- package/dist/{chunk-23VV7YD3.js → chunk-DFPFITST.js} +25 -30
- package/dist/{chunk-WR5D4EGH.js → chunk-GTBNNBJ6.js} +14 -2
- package/dist/chunk-HB24TBAF.js +121 -0
- package/dist/{chunk-CZUGLNJS.js → chunk-ITX6OO3F.js} +3 -3
- package/dist/{chunk-JAKHTMQU.js → chunk-JA6667UN.js} +206 -46
- package/dist/{chunk-77L6NL3X.js → chunk-JXMMDLBY.js} +306 -183
- package/dist/{chunk-3X2YG6YM.js → chunk-JYD2PWXH.js} +59 -28
- package/dist/{chunk-F3FA4F32.js → chunk-KLRMB5ZS.js} +135 -79
- package/dist/{chunk-5X6PP2UK.js → chunk-LMLD24FC.js} +2 -2
- package/dist/{chunk-M4NLBH4I.js → chunk-LYTCUZ7H.js} +3 -2
- package/dist/{chunk-TSOKIX5Z.js → chunk-MIUAXB7K.js} +126 -74
- package/dist/{chunk-QWZG56ET.js → chunk-ND2664SF.js} +558 -190
- package/dist/{chunk-JCI5M6U6.js → chunk-O2MNQFLP.js} +261 -79
- package/dist/{chunk-EWFVA3TJ.js → chunk-R73P76YZ.js} +1 -1
- package/dist/{chunk-2BYQDGN3.js → chunk-SAHNHTFC.js} +234 -63
- package/dist/chunk-UCS6AMJ7.js +79 -0
- package/dist/{chunk-ZD6OAMTH.js → chunk-VLPPXTYG.js} +90 -35
- package/dist/{chunk-OUZZEE4S.js → chunk-WOMYAHHI.js} +17 -11
- package/dist/{contracts-xo5ckdRP.d.cts → contracts-ey_Qh8ef.d.cts} +7 -8
- package/dist/{contracts-xo5ckdRP.d.ts → contracts-ey_Qh8ef.d.ts} +7 -8
- package/dist/{customElement-D2DJp_xn.d.cts → customElement-CPfIrbvg.d.cts} +18 -9
- package/dist/{customElement-D2DJp_xn.d.ts → customElement-CPfIrbvg.d.ts} +18 -9
- package/dist/data.cjs +452 -100
- package/dist/data.d.cts +20 -2
- package/dist/data.d.ts +20 -2
- package/dist/data.js +11 -9
- package/dist/devtools.cjs +535 -247
- package/dist/devtools.d.cts +1 -1
- package/dist/devtools.d.ts +1 -1
- package/dist/devtools.js +34 -30
- package/dist/ecosystem.cjs +499 -143
- package/dist/ecosystem.d.cts +13 -11
- package/dist/ecosystem.d.ts +13 -11
- package/dist/ecosystem.js +12 -11
- package/dist/extras.cjs +3639 -1629
- package/dist/extras.d.cts +11 -11
- package/dist/extras.d.ts +11 -11
- package/dist/extras.js +58 -45
- package/dist/index.cjs +1023 -313
- package/dist/index.d.cts +128 -55
- package/dist/index.d.ts +128 -55
- package/dist/index.js +28 -16
- package/dist/{introspect-BumjnBKr.d.cts → introspect-BWNjNw64.d.cts} +22 -2
- package/dist/{introspect-CZrlcaYy.d.ts → introspect-cY2pg9pW.d.ts} +22 -2
- package/dist/motion.cjs +90 -36
- package/dist/motion.d.cts +1 -1
- package/dist/motion.d.ts +1 -1
- package/dist/motion.js +4 -4
- package/dist/patterns.cjs +414 -81
- package/dist/patterns.d.cts +53 -20
- package/dist/patterns.d.ts +53 -20
- package/dist/patterns.js +7 -7
- package/dist/performance.cjs +364 -108
- package/dist/performance.d.cts +29 -17
- package/dist/performance.d.ts +29 -17
- package/dist/performance.js +13 -6
- package/dist/plugin-D30wlGW5.d.cts +71 -0
- package/dist/plugin-D30wlGW5.d.ts +71 -0
- package/dist/plugins.cjs +652 -271
- package/dist/plugins.d.cts +13 -6
- package/dist/plugins.d.ts +13 -6
- package/dist/plugins.js +116 -50
- package/dist/{ssr-Do_SiVoL.d.cts → ssr-CrVNy6Pa.d.cts} +9 -15
- package/dist/{ssr-Do_SiVoL.d.ts → ssr-CrVNy6Pa.d.ts} +9 -15
- package/dist/{ssr-4PBXAOO3.js → ssr-FXD2PPMC.js} +4 -3
- package/dist/ssr.cjs +648 -219
- package/dist/ssr.d.cts +27 -7
- package/dist/ssr.d.ts +27 -7
- package/dist/ssr.js +12 -11
- package/dist/{tagFactory-DaJ0YWX6.d.ts → tagFactory-S17H2qxu.d.cts} +9 -1
- package/dist/{tagFactory-DaJ0YWX6.d.cts → tagFactory-S17H2qxu.d.ts} +9 -1
- package/dist/testing.cjs +252 -63
- package/dist/testing.d.cts +17 -4
- package/dist/testing.d.ts +17 -4
- package/dist/testing.js +100 -44
- package/dist/ui.cjs +576 -168
- package/dist/ui.d.cts +13 -16
- package/dist/ui.d.ts +13 -16
- package/dist/ui.js +20 -17
- package/dist/widgets.cjs +1001 -93
- package/dist/widgets.d.cts +104 -2
- package/dist/widgets.d.ts +104 -2
- package/dist/widgets.js +9 -7
- package/package.json +8 -2
- package/dist/chunk-32DY64NT.js +0 -282
- package/dist/chunk-3CRQALYP.js +0 -877
- package/dist/chunk-4EI4AG32.js +0 -482
- package/dist/chunk-4MYMUBRS.js +0 -21
- package/dist/chunk-6HLLIF3K.js +0 -398
- package/dist/chunk-6LSNVCS2.js +0 -937
- package/dist/chunk-6SA3QQES.js +0 -61
- package/dist/chunk-7BF6TK55.js +0 -1097
- package/dist/chunk-7TQKR4PP.js +0 -294
- package/dist/chunk-7V26P53V.js +0 -712
- package/dist/chunk-AZ3ISID5.js +0 -298
- package/dist/chunk-B7SWRFUT.js +0 -332
- package/dist/chunk-BGN5ZMP4.js +0 -26
- package/dist/chunk-BTU3TJDS.js +0 -365
- package/dist/chunk-BW3WT46K.js +0 -937
- package/dist/chunk-C6KFWOFV.js +0 -616
- package/dist/chunk-CHF5OHIA.js +0 -61
- package/dist/chunk-CHJ27IGK.js +0 -26
- package/dist/chunk-CMBFNA7L.js +0 -27
- package/dist/chunk-DAHRH4ON.js +0 -331
- package/dist/chunk-DKOHBI74.js +0 -924
- package/dist/chunk-DTCOOBMX.js +0 -725
- package/dist/chunk-EBGIRKQY.js +0 -616
- package/dist/chunk-EUZND3CB.js +0 -27
- package/dist/chunk-EVCZO745.js +0 -365
- package/dist/chunk-FGOEVHY3.js +0 -60
- package/dist/chunk-G3BOQPVO.js +0 -365
- package/dist/chunk-GCOK2LC3.js +0 -282
- package/dist/chunk-HGMJFBC7.js +0 -654
- package/dist/chunk-K5ZUMYVS.js +0 -89
- package/dist/chunk-KQPDEVVS.js +0 -398
- package/dist/chunk-L6JRBDNS.js +0 -60
- package/dist/chunk-LA6KQEDU.js +0 -712
- package/dist/chunk-MDVXJWFN.js +0 -304
- package/dist/chunk-MEZVEBPN.js +0 -2008
- package/dist/chunk-MK4ERFYL.js +0 -2249
- package/dist/chunk-MLKGABMK.js +0 -9
- package/dist/chunk-MQ5GOYPH.js +0 -2249
- package/dist/chunk-N6IZB6KJ.js +0 -567
- package/dist/chunk-NEKUBFPT.js +0 -60
- package/dist/chunk-NHUC2QWH.js +0 -282
- package/dist/chunk-NMRUZALC.js +0 -1097
- package/dist/chunk-NYVAC6P5.js +0 -37
- package/dist/chunk-OF7UZIVB.js +0 -725
- package/dist/chunk-P6W3STU4.js +0 -2249
- package/dist/chunk-PBHF5WKN.js +0 -616
- package/dist/chunk-PTQJDMRT.js +0 -146
- package/dist/chunk-PZEGYCF5.js +0 -61
- package/dist/chunk-QBMDLBU2.js +0 -975
- package/dist/chunk-RQGQSLQK.js +0 -725
- package/dist/chunk-SDLZDHKP.js +0 -107
- package/dist/chunk-TNQWPPE6.js +0 -37
- package/dist/chunk-UHNL42EF.js +0 -2730
- package/dist/chunk-UNXCEF6S.js +0 -21
- package/dist/chunk-V2XTI523.js +0 -347
- package/dist/chunk-VAU366PN.js +0 -2241
- package/dist/chunk-VMVDTCXB.js +0 -712
- package/dist/chunk-VRW3FULF.js +0 -725
- package/dist/chunk-WADYRCO2.js +0 -304
- package/dist/chunk-WILQZRO4.js +0 -282
- package/dist/chunk-WUHJISPP.js +0 -298
- package/dist/chunk-XYU6TZOW.js +0 -182
- package/dist/chunk-Y6GP4QGG.js +0 -276
- package/dist/chunk-YECR7UIA.js +0 -347
- package/dist/chunk-YUTWTI4B.js +0 -654
- package/dist/chunk-Z65KYU7I.js +0 -26
- package/dist/chunk-Z6POF5YC.js +0 -975
- package/dist/chunk-ZBJP6WFL.js +0 -482
- package/dist/contracts-DDrwxvJ-.d.cts +0 -245
- package/dist/contracts-DDrwxvJ-.d.ts +0 -245
- package/dist/contracts-DOrhwbke.d.cts +0 -245
- package/dist/contracts-DOrhwbke.d.ts +0 -245
- package/dist/customElement-BKQfbSZQ.d.cts +0 -262
- package/dist/customElement-BKQfbSZQ.d.ts +0 -262
- package/dist/customElement-yz8uyk-0.d.cts +0 -308
- package/dist/customElement-yz8uyk-0.d.ts +0 -308
- package/dist/introspect-Cb0zgpi2.d.cts +0 -477
- package/dist/introspect-Y2xNXGSf.d.ts +0 -477
- package/dist/plugin-Bek4RhJY.d.cts +0 -43
- package/dist/plugin-Bek4RhJY.d.ts +0 -43
- package/dist/ssr-3RXHP5ES.js +0 -38
- package/dist/ssr-6GIMY5MX.js +0 -38
- package/dist/ssr-BA6sxxUd.d.cts +0 -135
- package/dist/ssr-BA6sxxUd.d.ts +0 -135
- package/dist/ssr-WKUPVSSK.js +0 -36
- package/dist/tagFactory-Dl8QCLga.d.cts +0 -23
- package/dist/tagFactory-Dl8QCLga.d.ts +0 -23
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
signal
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-CC65Y57T.js";
|
|
4
4
|
|
|
5
5
|
// src/ui/transition.ts
|
|
6
6
|
function transition(element, options = {}) {
|
|
@@ -16,20 +16,29 @@ function transition(element, options = {}) {
|
|
|
16
16
|
onLeaveDone
|
|
17
17
|
} = options;
|
|
18
18
|
const transitionValue = `${property} ${duration}ms ${easing} ${delay}ms`;
|
|
19
|
+
let activeTimer = null;
|
|
20
|
+
function cancelPending() {
|
|
21
|
+
if (activeTimer !== null) {
|
|
22
|
+
clearTimeout(activeTimer);
|
|
23
|
+
activeTimer = null;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
19
26
|
function enter() {
|
|
20
27
|
return new Promise((resolve) => {
|
|
28
|
+
cancelPending();
|
|
21
29
|
element.style.transition = transitionValue;
|
|
22
30
|
if (enterClass) element.classList.add(enterClass);
|
|
23
31
|
if (leaveClass) element.classList.remove(leaveClass);
|
|
24
32
|
void element.offsetHeight;
|
|
25
33
|
if (activeClass) element.classList.add(activeClass);
|
|
26
34
|
const done = () => {
|
|
35
|
+
activeTimer = null;
|
|
27
36
|
if (enterClass) element.classList.remove(enterClass);
|
|
28
37
|
onEnterDone?.();
|
|
29
38
|
resolve();
|
|
30
39
|
};
|
|
31
40
|
if (duration > 0) {
|
|
32
|
-
setTimeout(done, duration + delay);
|
|
41
|
+
activeTimer = setTimeout(done, duration + delay);
|
|
33
42
|
} else {
|
|
34
43
|
done();
|
|
35
44
|
}
|
|
@@ -37,17 +46,19 @@ function transition(element, options = {}) {
|
|
|
37
46
|
}
|
|
38
47
|
function leave() {
|
|
39
48
|
return new Promise((resolve) => {
|
|
49
|
+
cancelPending();
|
|
40
50
|
element.style.transition = transitionValue;
|
|
41
51
|
if (activeClass) element.classList.remove(activeClass);
|
|
42
52
|
if (leaveClass) element.classList.add(leaveClass);
|
|
43
53
|
if (enterClass) element.classList.remove(enterClass);
|
|
44
54
|
const done = () => {
|
|
55
|
+
activeTimer = null;
|
|
45
56
|
if (leaveClass) element.classList.remove(leaveClass);
|
|
46
57
|
onLeaveDone?.();
|
|
47
58
|
resolve();
|
|
48
59
|
};
|
|
49
60
|
if (duration > 0) {
|
|
50
|
-
setTimeout(done, duration + delay);
|
|
61
|
+
activeTimer = setTimeout(done, duration + delay);
|
|
51
62
|
} else {
|
|
52
63
|
done();
|
|
53
64
|
}
|
|
@@ -334,15 +345,24 @@ function springSignal(initial, options) {
|
|
|
334
345
|
let velocity = 0;
|
|
335
346
|
let target = initial;
|
|
336
347
|
let rafId = null;
|
|
337
|
-
|
|
348
|
+
let lastTime = 0;
|
|
349
|
+
const REF_DT_MS = 1e3 / 60;
|
|
350
|
+
const MAX_STEP_RATIO = 4;
|
|
351
|
+
function tick(now) {
|
|
352
|
+
if (lastTime === 0) lastTime = now;
|
|
353
|
+
const rawDt = now - lastTime;
|
|
354
|
+
lastTime = now;
|
|
355
|
+
const dt = Number.isFinite(rawDt) && rawDt > 0 ? rawDt : REF_DT_MS;
|
|
356
|
+
const ratio = Math.min(MAX_STEP_RATIO, Math.max(0.1, dt / REF_DT_MS));
|
|
338
357
|
const force = -stiffness * (current - target);
|
|
339
358
|
const dampingForce = -damping * velocity;
|
|
340
|
-
velocity += force + dampingForce;
|
|
341
|
-
current += velocity;
|
|
359
|
+
velocity += (force + dampingForce) * ratio;
|
|
360
|
+
current += velocity * ratio;
|
|
342
361
|
if (Math.abs(current - target) < precision && Math.abs(velocity) < precision) {
|
|
343
362
|
current = target;
|
|
344
363
|
velocity = 0;
|
|
345
364
|
rafId = null;
|
|
365
|
+
lastTime = 0;
|
|
346
366
|
setValue(current);
|
|
347
367
|
return;
|
|
348
368
|
}
|
|
@@ -358,10 +378,12 @@ function springSignal(initial, options) {
|
|
|
358
378
|
cancelAnimationFrame(rafId);
|
|
359
379
|
rafId = null;
|
|
360
380
|
}
|
|
381
|
+
lastTime = 0;
|
|
361
382
|
setValue(current);
|
|
362
383
|
return;
|
|
363
384
|
}
|
|
364
385
|
if (rafId === null) {
|
|
386
|
+
lastTime = 0;
|
|
365
387
|
rafId = requestAnimationFrame(tick);
|
|
366
388
|
}
|
|
367
389
|
}
|
|
@@ -370,6 +392,7 @@ function springSignal(initial, options) {
|
|
|
370
392
|
cancelAnimationFrame(rafId);
|
|
371
393
|
rafId = null;
|
|
372
394
|
}
|
|
395
|
+
lastTime = 0;
|
|
373
396
|
}
|
|
374
397
|
return [value, set, dispose];
|
|
375
398
|
}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import {
|
|
2
|
+
recordDependency,
|
|
3
|
+
retrack,
|
|
4
|
+
track,
|
|
5
|
+
trackingSuspended
|
|
6
|
+
} from "./chunk-VLPPXTYG.js";
|
|
7
|
+
import {
|
|
8
|
+
devAssert
|
|
9
|
+
} from "./chunk-LMLD24FC.js";
|
|
10
|
+
|
|
11
|
+
// src/core/signals/derived.ts
|
|
12
|
+
function derived(getter, options) {
|
|
13
|
+
devAssert(typeof getter === "function", "derived: argument must be a getter function.");
|
|
14
|
+
const debugName = options?.name;
|
|
15
|
+
const equals = options?.equals;
|
|
16
|
+
const cs = {};
|
|
17
|
+
cs._d = false;
|
|
18
|
+
cs._g = getter;
|
|
19
|
+
const markDirty = () => {
|
|
20
|
+
if (cs._d) return;
|
|
21
|
+
cs._d = true;
|
|
22
|
+
};
|
|
23
|
+
markDirty._c = 1;
|
|
24
|
+
markDirty._sig = cs;
|
|
25
|
+
track(() => {
|
|
26
|
+
let threw = true;
|
|
27
|
+
try {
|
|
28
|
+
cs._v = getter();
|
|
29
|
+
cs._d = false;
|
|
30
|
+
threw = false;
|
|
31
|
+
} finally {
|
|
32
|
+
if (threw) cs._d = true;
|
|
33
|
+
}
|
|
34
|
+
}, markDirty);
|
|
35
|
+
const hook = globalThis.__SIBU_DEVTOOLS_GLOBAL_HOOK__;
|
|
36
|
+
let evaluating = false;
|
|
37
|
+
function computedGetter() {
|
|
38
|
+
if (evaluating) {
|
|
39
|
+
throw new Error(
|
|
40
|
+
`[SibuJS] Circular dependency detected in derived${debugName ? ` "${debugName}"` : ""}. A derived signal cannot read itself (directly or through a chain).`
|
|
41
|
+
);
|
|
42
|
+
}
|
|
43
|
+
if (trackingSuspended) {
|
|
44
|
+
if (cs._d) {
|
|
45
|
+
evaluating = true;
|
|
46
|
+
let threw = true;
|
|
47
|
+
try {
|
|
48
|
+
retrack(() => {
|
|
49
|
+
cs._v = getter();
|
|
50
|
+
cs._d = false;
|
|
51
|
+
threw = false;
|
|
52
|
+
}, markDirty);
|
|
53
|
+
} finally {
|
|
54
|
+
evaluating = false;
|
|
55
|
+
if (threw) cs._d = true;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return cs._v;
|
|
59
|
+
}
|
|
60
|
+
recordDependency(cs);
|
|
61
|
+
if (cs._d) {
|
|
62
|
+
const oldValue = cs._v;
|
|
63
|
+
evaluating = true;
|
|
64
|
+
let threw = true;
|
|
65
|
+
try {
|
|
66
|
+
retrack(() => {
|
|
67
|
+
const next = getter();
|
|
68
|
+
cs._v = equals && cs._v !== void 0 ? equals(cs._v, next) ? cs._v : next : next;
|
|
69
|
+
cs._d = false;
|
|
70
|
+
threw = false;
|
|
71
|
+
}, markDirty);
|
|
72
|
+
} finally {
|
|
73
|
+
evaluating = false;
|
|
74
|
+
if (threw) cs._d = true;
|
|
75
|
+
}
|
|
76
|
+
if (hook && oldValue !== cs._v) {
|
|
77
|
+
hook.emit("computed:update", { signal: cs, oldValue, newValue: cs._v });
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
return cs._v;
|
|
81
|
+
}
|
|
82
|
+
if (debugName) {
|
|
83
|
+
computedGetter.__name = debugName;
|
|
84
|
+
cs.__name = debugName;
|
|
85
|
+
}
|
|
86
|
+
computedGetter.__signal = cs;
|
|
87
|
+
if (hook) hook.emit("computed:create", { signal: cs, name: debugName, getter: computedGetter });
|
|
88
|
+
return computedGetter;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
export {
|
|
92
|
+
derived
|
|
93
|
+
};
|