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
|
@@ -3,10 +3,10 @@ import {
|
|
|
3
3
|
notifySubscribers,
|
|
4
4
|
queueSignalNotification,
|
|
5
5
|
recordDependency
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-VLPPXTYG.js";
|
|
7
7
|
import {
|
|
8
8
|
isDev
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-LMLD24FC.js";
|
|
10
10
|
|
|
11
11
|
// src/reactivity/batch.ts
|
|
12
12
|
var batchDepth = 0;
|
|
@@ -31,10 +31,13 @@ function isBatching() {
|
|
|
31
31
|
return batchDepth > 0;
|
|
32
32
|
}
|
|
33
33
|
function flushBatch() {
|
|
34
|
-
|
|
35
|
-
|
|
34
|
+
try {
|
|
35
|
+
for (const signal2 of pendingSignals) {
|
|
36
|
+
queueSignalNotification(signal2);
|
|
37
|
+
}
|
|
38
|
+
} finally {
|
|
39
|
+
pendingSignals.clear();
|
|
36
40
|
}
|
|
37
|
-
pendingSignals.clear();
|
|
38
41
|
drainNotificationQueue();
|
|
39
42
|
}
|
|
40
43
|
|
|
@@ -1,36 +1,34 @@
|
|
|
1
|
+
import {
|
|
2
|
+
isUrlAttribute,
|
|
3
|
+
sanitizeUrl
|
|
4
|
+
} from "./chunk-UCS6AMJ7.js";
|
|
1
5
|
import {
|
|
2
6
|
track
|
|
3
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-VLPPXTYG.js";
|
|
4
8
|
import {
|
|
5
9
|
devWarn,
|
|
6
10
|
isDev
|
|
7
|
-
} from "./chunk-
|
|
8
|
-
|
|
9
|
-
// src/utils/sanitize.ts
|
|
10
|
-
function sanitizeUrl(url) {
|
|
11
|
-
const trimmed = url.replace(/[\x00-\x20\x7f-\x9f]+/g, "").trim();
|
|
12
|
-
if (!trimmed) return "";
|
|
13
|
-
const lower = trimmed.toLowerCase();
|
|
14
|
-
if (lower.startsWith("javascript:") || lower.startsWith("data:") || lower.startsWith("vbscript:") || lower.startsWith("blob:")) {
|
|
15
|
-
return "";
|
|
16
|
-
}
|
|
17
|
-
return trimmed;
|
|
18
|
-
}
|
|
19
|
-
function sanitizeCSSValue(value) {
|
|
20
|
-
const lower = value.toLowerCase().replace(/\s+/g, "");
|
|
21
|
-
if (lower.includes("url(") || lower.includes("expression(") || lower.includes("javascript:") || lower.includes("-moz-binding")) {
|
|
22
|
-
return "";
|
|
23
|
-
}
|
|
24
|
-
return value;
|
|
25
|
-
}
|
|
26
|
-
var URL_ATTRIBUTES = /* @__PURE__ */ new Set(["href", "src", "action", "formaction", "cite", "poster", "background", "srcset"]);
|
|
27
|
-
function isUrlAttribute(attr) {
|
|
28
|
-
return URL_ATTRIBUTES.has(attr);
|
|
29
|
-
}
|
|
11
|
+
} from "./chunk-LMLD24FC.js";
|
|
30
12
|
|
|
31
13
|
// src/reactivity/bindAttribute.ts
|
|
32
14
|
var _isDev = isDev();
|
|
15
|
+
function setProp(el, key, val) {
|
|
16
|
+
el[key] = val;
|
|
17
|
+
}
|
|
18
|
+
function isEventHandlerAttr(name) {
|
|
19
|
+
if (name.length < 3) return false;
|
|
20
|
+
const lower = name.toLowerCase();
|
|
21
|
+
return lower[0] === "o" && lower[1] === "n" && lower.charCodeAt(2) >= 97 && lower.charCodeAt(2) <= 122;
|
|
22
|
+
}
|
|
33
23
|
function bindAttribute(el, attr, getter) {
|
|
24
|
+
if (isEventHandlerAttr(attr)) {
|
|
25
|
+
if (_isDev)
|
|
26
|
+
devWarn(
|
|
27
|
+
`bindAttribute: refusing to bind event-handler attribute "${attr}". Use on:{ ${attr.slice(2)}: fn } instead.`
|
|
28
|
+
);
|
|
29
|
+
return () => {
|
|
30
|
+
};
|
|
31
|
+
}
|
|
34
32
|
function commit() {
|
|
35
33
|
let value;
|
|
36
34
|
try {
|
|
@@ -42,7 +40,7 @@ function bindAttribute(el, attr, getter) {
|
|
|
42
40
|
}
|
|
43
41
|
if (typeof value === "boolean") {
|
|
44
42
|
if (attr in el && (attr === "checked" || attr === "disabled" || attr === "selected")) {
|
|
45
|
-
el
|
|
43
|
+
setProp(el, attr, value);
|
|
46
44
|
} else if (value) {
|
|
47
45
|
el.setAttribute(attr, "");
|
|
48
46
|
} else {
|
|
@@ -52,7 +50,7 @@ function bindAttribute(el, attr, getter) {
|
|
|
52
50
|
}
|
|
53
51
|
const str = String(value);
|
|
54
52
|
if ((attr === "value" || attr === "checked") && attr in el) {
|
|
55
|
-
el
|
|
53
|
+
setProp(el, attr, attr === "checked" ? Boolean(value) : str);
|
|
56
54
|
} else {
|
|
57
55
|
el.setAttribute(attr, isUrlAttribute(attr) ? sanitizeUrl(str) : str);
|
|
58
56
|
}
|
|
@@ -83,7 +81,7 @@ function bindDynamic(el, nameGetter, valueGetter) {
|
|
|
83
81
|
}
|
|
84
82
|
const str = String(value);
|
|
85
83
|
if ((name === "value" || name === "checked") && name in el) {
|
|
86
|
-
el
|
|
84
|
+
setProp(el, name, name === "checked" ? Boolean(value) : str);
|
|
87
85
|
} else {
|
|
88
86
|
el.setAttribute(name, isUrlAttribute(name) ? sanitizeUrl(str) : str);
|
|
89
87
|
}
|
|
@@ -99,9 +97,6 @@ function bindDynamic(el, nameGetter, valueGetter) {
|
|
|
99
97
|
}
|
|
100
98
|
|
|
101
99
|
export {
|
|
102
|
-
sanitizeUrl,
|
|
103
|
-
sanitizeCSSValue,
|
|
104
|
-
isUrlAttribute,
|
|
105
100
|
bindAttribute,
|
|
106
101
|
bindDynamic
|
|
107
102
|
};
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import {
|
|
2
2
|
signal
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-CC65Y57T.js";
|
|
4
4
|
|
|
5
5
|
// src/core/rendering/context.ts
|
|
6
6
|
function context(defaultValue) {
|
|
7
7
|
const [getValue, setValue] = signal(defaultValue);
|
|
8
|
-
|
|
8
|
+
const ctx = {
|
|
9
9
|
provide(value) {
|
|
10
|
+
const previous = getValue();
|
|
10
11
|
setValue(value);
|
|
12
|
+
return () => setValue(previous);
|
|
11
13
|
},
|
|
12
14
|
use() {
|
|
13
15
|
return getValue;
|
|
@@ -17,8 +19,18 @@ function context(defaultValue) {
|
|
|
17
19
|
},
|
|
18
20
|
set(value) {
|
|
19
21
|
setValue(value);
|
|
22
|
+
},
|
|
23
|
+
withContext(value, fn) {
|
|
24
|
+
const previous = getValue();
|
|
25
|
+
setValue(value);
|
|
26
|
+
try {
|
|
27
|
+
return fn();
|
|
28
|
+
} finally {
|
|
29
|
+
setValue(previous);
|
|
30
|
+
}
|
|
20
31
|
}
|
|
21
32
|
};
|
|
33
|
+
return ctx;
|
|
22
34
|
}
|
|
23
35
|
|
|
24
36
|
export {
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import {
|
|
2
|
+
isSSR
|
|
3
|
+
} from "./chunk-2RA7SHDA.js";
|
|
4
|
+
import {
|
|
5
|
+
track,
|
|
6
|
+
untracked
|
|
7
|
+
} from "./chunk-VLPPXTYG.js";
|
|
8
|
+
import {
|
|
9
|
+
devAssert
|
|
10
|
+
} from "./chunk-LMLD24FC.js";
|
|
11
|
+
|
|
12
|
+
// src/core/signals/effect.ts
|
|
13
|
+
var _g = globalThis;
|
|
14
|
+
function on(deps, handler) {
|
|
15
|
+
let prev;
|
|
16
|
+
let first = true;
|
|
17
|
+
return () => {
|
|
18
|
+
const value = deps();
|
|
19
|
+
if (first) {
|
|
20
|
+
first = false;
|
|
21
|
+
prev = value;
|
|
22
|
+
untracked(() => handler(value, void 0));
|
|
23
|
+
} else {
|
|
24
|
+
const p = prev;
|
|
25
|
+
prev = value;
|
|
26
|
+
untracked(() => handler(value, p));
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
function effect(effectFn, options) {
|
|
31
|
+
devAssert(typeof effectFn === "function", "effect: argument must be a function.");
|
|
32
|
+
if (isSSR()) return () => {
|
|
33
|
+
};
|
|
34
|
+
const onError = options?.onError;
|
|
35
|
+
let userCleanups = [];
|
|
36
|
+
const onCleanup = (fn) => {
|
|
37
|
+
userCleanups.push(fn);
|
|
38
|
+
};
|
|
39
|
+
const runUserCleanups = () => {
|
|
40
|
+
if (userCleanups.length === 0) return;
|
|
41
|
+
const list = userCleanups;
|
|
42
|
+
userCleanups = [];
|
|
43
|
+
for (let i = list.length - 1; i >= 0; i--) {
|
|
44
|
+
try {
|
|
45
|
+
list[i]();
|
|
46
|
+
} catch (err) {
|
|
47
|
+
if (typeof console !== "undefined") {
|
|
48
|
+
console.warn("[SibuJS effect] onCleanup threw:", err);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
const invokeBody = () => effectFn(onCleanup);
|
|
54
|
+
const wrappedFn = onError ? () => {
|
|
55
|
+
try {
|
|
56
|
+
invokeBody();
|
|
57
|
+
} catch (err) {
|
|
58
|
+
onError(err);
|
|
59
|
+
}
|
|
60
|
+
} : invokeBody;
|
|
61
|
+
let cleanupHandle = () => {
|
|
62
|
+
};
|
|
63
|
+
let running = false;
|
|
64
|
+
const subscriber = () => {
|
|
65
|
+
if (running) {
|
|
66
|
+
if (_g.__SIBU_DEV_WARN__ !== false && typeof console !== "undefined") {
|
|
67
|
+
console.warn(
|
|
68
|
+
"[SibuJS] effect re-entered itself while running \u2014 the triggering update will be ignored. Wrap mutual writes in `batch()` or split the effect to avoid this."
|
|
69
|
+
);
|
|
70
|
+
}
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
running = true;
|
|
74
|
+
try {
|
|
75
|
+
runUserCleanups();
|
|
76
|
+
cleanupHandle();
|
|
77
|
+
cleanupHandle = track(wrappedFn, subscriber);
|
|
78
|
+
} finally {
|
|
79
|
+
running = false;
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
running = true;
|
|
83
|
+
try {
|
|
84
|
+
cleanupHandle = track(wrappedFn, subscriber);
|
|
85
|
+
} finally {
|
|
86
|
+
running = false;
|
|
87
|
+
}
|
|
88
|
+
const hook = _g.__SIBU_DEVTOOLS_GLOBAL_HOOK__;
|
|
89
|
+
if (hook) hook.emit("effect:create", { effectFn });
|
|
90
|
+
let disposed = false;
|
|
91
|
+
return () => {
|
|
92
|
+
if (disposed) return;
|
|
93
|
+
disposed = true;
|
|
94
|
+
const h = _g.__SIBU_DEVTOOLS_GLOBAL_HOOK__;
|
|
95
|
+
if (h) {
|
|
96
|
+
try {
|
|
97
|
+
h.emit("effect:destroy", { effectFn });
|
|
98
|
+
} catch {
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
try {
|
|
102
|
+
runUserCleanups();
|
|
103
|
+
} catch (err) {
|
|
104
|
+
if (typeof console !== "undefined") {
|
|
105
|
+
console.warn("[SibuJS effect] onCleanup threw during dispose:", err);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
try {
|
|
109
|
+
cleanupHandle();
|
|
110
|
+
} catch (err) {
|
|
111
|
+
if (typeof console !== "undefined") {
|
|
112
|
+
console.warn("[SibuJS effect] dispose threw:", err);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
export {
|
|
119
|
+
on,
|
|
120
|
+
effect
|
|
121
|
+
};
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
isSSR
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-2RA7SHDA.js";
|
|
4
4
|
import {
|
|
5
5
|
track
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-VLPPXTYG.js";
|
|
7
7
|
import {
|
|
8
8
|
devAssert
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-LMLD24FC.js";
|
|
10
10
|
|
|
11
11
|
// src/core/signals/watch.ts
|
|
12
12
|
function watch(getter, callback) {
|