sibujs 1.0.0-beta.1 → 1.0.0-beta.3
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 +9 -0
- package/dist/browser.cjs +94 -56
- package/dist/browser.js +2 -3
- package/dist/build.cjs +370 -255
- package/dist/build.js +8 -9
- package/dist/cdn.global.js +4 -4
- package/dist/chunk-2HYHL6VW.js +269 -0
- package/dist/chunk-2PFRWZIE.js +65 -0
- package/dist/chunk-34TOFKL7.js +1803 -0
- package/dist/chunk-37NSPDPQ.js +284 -0
- package/dist/chunk-3CSF4TOG.js +282 -0
- package/dist/chunk-4MYMUBRS.js +21 -0
- package/dist/chunk-5XUAA53E.js +99 -0
- package/dist/chunk-6SNF5MZK.js +282 -0
- package/dist/chunk-7FYJUE77.js +282 -0
- package/dist/chunk-7XFBKLFB.js +90 -0
- package/dist/chunk-CQNVF2FD.js +282 -0
- package/dist/chunk-CRTHZHU7.js +26 -0
- package/dist/chunk-DAUTHAYH.js +20 -0
- package/dist/chunk-DI3Z32TV.js +1780 -0
- package/dist/chunk-DKGHW6MX.js +90 -0
- package/dist/chunk-DNTTC4V5.js +1803 -0
- package/dist/chunk-DWQQ2GZK.js +1787 -0
- package/dist/chunk-E5SMAKQQ.js +336 -0
- package/dist/chunk-EGZGFIXV.js +90 -0
- package/dist/chunk-EQACK65C.js +63 -0
- package/dist/chunk-EUFENPGJ.js +290 -0
- package/dist/chunk-F25CZRUH.js +282 -0
- package/dist/chunk-F4IYF3YU.js +266 -0
- package/dist/chunk-FBNDOAHU.js +54 -0
- package/dist/chunk-FDW3E54J.js +1767 -0
- package/dist/chunk-FEPU4KL6.js +63 -0
- package/dist/chunk-G4AX3DQ4.js +54 -0
- package/dist/chunk-GY5AAP4H.js +316 -0
- package/dist/chunk-HCWPQCZP.js +279 -0
- package/dist/chunk-IC4K4EOD.js +26 -0
- package/dist/chunk-IJU6TOZ6.js +65 -0
- package/dist/chunk-J7PD6L4B.js +1767 -0
- package/dist/chunk-L5IBT37O.js +263 -0
- package/dist/chunk-LAX5H35R.js +90 -0
- package/dist/chunk-LWNJN3IW.js +295 -0
- package/dist/chunk-M3QSBCXC.js +52 -0
- package/dist/chunk-MM46JVR2.js +359 -0
- package/dist/chunk-N6BRVUAP.js +1805 -0
- package/dist/chunk-NZNNXPEE.js +56 -0
- package/dist/chunk-OI5B74HF.js +26 -0
- package/dist/chunk-ONOO74UN.js +361 -0
- package/dist/chunk-PLFQZ7SS.js +90 -0
- package/dist/chunk-PPNH4Y6U.js +282 -0
- package/dist/chunk-Q54YZ4X3.js +26 -0
- package/dist/chunk-QJ5KLY2S.js +1821 -0
- package/dist/chunk-QQS7BSPA.js +26 -0
- package/dist/chunk-SR2DPCTT.js +1803 -0
- package/dist/chunk-SXXKZJI2.js +303 -0
- package/dist/chunk-TBA46SVX.js +1805 -0
- package/dist/chunk-TK4P3V5G.js +56 -0
- package/dist/chunk-TVV4JK5G.js +282 -0
- package/dist/chunk-UHFUQWST.js +65 -0
- package/dist/chunk-V6P4LDAV.js +65 -0
- package/dist/chunk-VI4KRBSU.js +291 -0
- package/dist/chunk-W3QH7BF5.js +282 -0
- package/dist/chunk-WZQNHS4J.js +52 -0
- package/dist/data.cjs +85 -47
- package/dist/data.js +4 -5
- package/dist/devtools.cjs +61 -33
- package/dist/devtools.js +1 -1
- package/dist/ecosystem.cjs +215 -172
- package/dist/ecosystem.d.cts +1 -1
- package/dist/ecosystem.d.ts +1 -1
- package/dist/ecosystem.js +5 -6
- package/dist/index.cjs +370 -255
- package/dist/index.d.cts +7 -30
- package/dist/index.d.ts +7 -30
- package/dist/index.js +8 -9
- package/dist/motion.cjs +61 -33
- package/dist/motion.js +1 -1
- package/dist/patterns.cjs +92 -53
- package/dist/patterns.js +3 -4
- package/dist/performance.cjs +61 -33
- package/dist/performance.js +1 -1
- package/dist/plugins.cjs +213 -162
- package/dist/plugins.js +4 -5
- package/dist/ssr.cjs +215 -172
- package/dist/ssr.js +5 -6
- package/dist/tagFactory-BDN7gDEp.d.cts +21 -0
- package/dist/tagFactory-BDN7gDEp.d.ts +21 -0
- package/dist/ui.cjs +85 -55
- package/dist/ui.js +4 -5
- package/dist/widgets.cjs +81 -41
- package/dist/widgets.js +2 -3
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1625,6 +1625,15 @@ npm run build
|
|
|
1625
1625
|
|
|
1626
1626
|
---
|
|
1627
1627
|
|
|
1628
|
+
## Contributing
|
|
1629
|
+
|
|
1630
|
+
Contributions are welcome! Please read our
|
|
1631
|
+
[Contributing Guide](.github/CONTRIBUTING.md) and
|
|
1632
|
+
[Code of Conduct](.github/CODE_OF_CONDUCT.md)
|
|
1633
|
+
before submitting a PR.
|
|
1634
|
+
|
|
1635
|
+
---
|
|
1636
|
+
|
|
1628
1637
|
## License
|
|
1629
1638
|
|
|
1630
1639
|
MIT -- (c) 2025 [hexplus](https://github.com/hexplus)
|
package/dist/browser.cjs
CHANGED
|
@@ -37,7 +37,9 @@ __export(browser_exports, {
|
|
|
37
37
|
module.exports = __toCommonJS(browser_exports);
|
|
38
38
|
|
|
39
39
|
// src/reactivity/track.ts
|
|
40
|
-
var subscriberStack =
|
|
40
|
+
var subscriberStack = new Array(32);
|
|
41
|
+
var stackCapacity = 32;
|
|
42
|
+
var stackTop = -1;
|
|
41
43
|
var currentSubscriber = null;
|
|
42
44
|
var signalSubscribers = /* @__PURE__ */ new WeakMap();
|
|
43
45
|
var SUBS = "__s";
|
|
@@ -49,16 +51,26 @@ var trackingSuspended = false;
|
|
|
49
51
|
function track(effectFn, subscriber) {
|
|
50
52
|
if (!subscriber) subscriber = effectFn;
|
|
51
53
|
cleanup(subscriber);
|
|
52
|
-
|
|
54
|
+
++stackTop;
|
|
55
|
+
if (stackTop >= stackCapacity) {
|
|
56
|
+
stackCapacity *= 2;
|
|
57
|
+
subscriberStack.length = stackCapacity;
|
|
58
|
+
}
|
|
59
|
+
subscriberStack[stackTop] = subscriber;
|
|
53
60
|
currentSubscriber = subscriber;
|
|
54
61
|
effectFn();
|
|
55
|
-
|
|
56
|
-
currentSubscriber = subscriberStack[
|
|
62
|
+
stackTop--;
|
|
63
|
+
currentSubscriber = stackTop >= 0 ? subscriberStack[stackTop] : null;
|
|
57
64
|
return () => cleanup(subscriber);
|
|
58
65
|
}
|
|
59
66
|
function suspendTracking() {
|
|
60
67
|
if (suspendDepth === 0) {
|
|
61
|
-
|
|
68
|
+
++stackTop;
|
|
69
|
+
if (stackTop >= stackCapacity) {
|
|
70
|
+
stackCapacity *= 2;
|
|
71
|
+
subscriberStack.length = stackCapacity;
|
|
72
|
+
}
|
|
73
|
+
subscriberStack[stackTop] = null;
|
|
62
74
|
currentSubscriber = null;
|
|
63
75
|
trackingSuspended = true;
|
|
64
76
|
}
|
|
@@ -67,32 +79,39 @@ function suspendTracking() {
|
|
|
67
79
|
function resumeTracking() {
|
|
68
80
|
suspendDepth--;
|
|
69
81
|
if (suspendDepth === 0) {
|
|
70
|
-
|
|
71
|
-
currentSubscriber = subscriberStack[
|
|
82
|
+
stackTop--;
|
|
83
|
+
currentSubscriber = stackTop >= 0 ? subscriberStack[stackTop] : null;
|
|
72
84
|
trackingSuspended = false;
|
|
73
85
|
}
|
|
74
86
|
}
|
|
75
87
|
function recordDependency(signal2) {
|
|
76
88
|
if (!currentSubscriber) return;
|
|
77
|
-
|
|
78
|
-
if (
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
if (!deps.has(signal2)) {
|
|
89
|
+
const sub = currentSubscriber;
|
|
90
|
+
if (sub._dep === signal2) return;
|
|
91
|
+
const deps = sub._deps;
|
|
92
|
+
if (deps) {
|
|
93
|
+
if (deps.has(signal2)) return;
|
|
83
94
|
deps.add(signal2);
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
95
|
+
} else if (sub._dep !== void 0) {
|
|
96
|
+
const set = /* @__PURE__ */ new Set();
|
|
97
|
+
set.add(sub._dep);
|
|
98
|
+
set.add(signal2);
|
|
99
|
+
sub._deps = set;
|
|
100
|
+
sub._dep = void 0;
|
|
101
|
+
} else {
|
|
102
|
+
sub._dep = signal2;
|
|
103
|
+
}
|
|
104
|
+
let subs = signal2[SUBS];
|
|
105
|
+
if (!subs) {
|
|
106
|
+
subs = /* @__PURE__ */ new Set();
|
|
107
|
+
signalSubscribers.set(signal2, subs);
|
|
108
|
+
signal2[SUBS] = subs;
|
|
109
|
+
}
|
|
110
|
+
subs.add(currentSubscriber);
|
|
111
|
+
if (subs.size === 1) {
|
|
112
|
+
signal2.__f = currentSubscriber;
|
|
113
|
+
} else if (signal2.__f !== void 0) {
|
|
114
|
+
signal2.__f = void 0;
|
|
96
115
|
}
|
|
97
116
|
}
|
|
98
117
|
function queueSignalNotification(signal2) {
|
|
@@ -127,8 +146,8 @@ function propagateDirty(sub) {
|
|
|
127
146
|
let sig = sub._sig;
|
|
128
147
|
let suspended = false;
|
|
129
148
|
if (sig && sig._g) {
|
|
130
|
-
const
|
|
131
|
-
if (
|
|
149
|
+
const isSingleDep = sub._dep !== void 0 || sub._deps && sub._deps.size === 1;
|
|
150
|
+
if (isSingleDep) {
|
|
132
151
|
suspendTracking();
|
|
133
152
|
suspended = true;
|
|
134
153
|
const s = sig;
|
|
@@ -143,8 +162,8 @@ function propagateDirty(sub) {
|
|
|
143
162
|
const nSig = first._sig;
|
|
144
163
|
nSig._d = true;
|
|
145
164
|
if (suspended && nSig._g) {
|
|
146
|
-
const
|
|
147
|
-
if (
|
|
165
|
+
const fSingleDep = first._dep !== void 0 || first._deps && first._deps.size === 1;
|
|
166
|
+
if (fSingleDep) {
|
|
148
167
|
nSig._d = false;
|
|
149
168
|
nSig._v = nSig._g();
|
|
150
169
|
}
|
|
@@ -253,7 +272,20 @@ function notifySubscribers(signal2) {
|
|
|
253
272
|
}
|
|
254
273
|
}
|
|
255
274
|
function cleanup(subscriber) {
|
|
256
|
-
const
|
|
275
|
+
const sub = subscriber;
|
|
276
|
+
const singleDep = sub._dep;
|
|
277
|
+
if (singleDep !== void 0) {
|
|
278
|
+
const subs = singleDep[SUBS];
|
|
279
|
+
if (subs) {
|
|
280
|
+
subs.delete(subscriber);
|
|
281
|
+
if (singleDep.__f === subscriber) {
|
|
282
|
+
singleDep.__f = void 0;
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
sub._dep = void 0;
|
|
286
|
+
return;
|
|
287
|
+
}
|
|
288
|
+
const deps = sub._deps;
|
|
257
289
|
if (!deps || deps.size === 0) return;
|
|
258
290
|
for (const signal2 of deps) {
|
|
259
291
|
const subs = signal2[SUBS];
|
|
@@ -287,18 +319,30 @@ function enqueueBatchedSignal(signal2) {
|
|
|
287
319
|
return true;
|
|
288
320
|
}
|
|
289
321
|
function flushBatch() {
|
|
290
|
-
const
|
|
291
|
-
pendingSignals.clear();
|
|
292
|
-
for (const signal2 of signals) {
|
|
322
|
+
for (const signal2 of pendingSignals) {
|
|
293
323
|
queueSignalNotification(signal2);
|
|
294
324
|
}
|
|
325
|
+
pendingSignals.clear();
|
|
295
326
|
drainNotificationQueue();
|
|
296
327
|
}
|
|
297
328
|
|
|
329
|
+
// src/core/dev.ts
|
|
330
|
+
function isDev() {
|
|
331
|
+
return typeof globalThis.__SIBU_DEV__ !== "undefined" ? !!globalThis.__SIBU_DEV__ : typeof __SIBU_DEV__ !== "undefined" ? __SIBU_DEV__ : true;
|
|
332
|
+
}
|
|
333
|
+
var _isDev = isDev();
|
|
334
|
+
function devAssert(condition, message) {
|
|
335
|
+
if (_isDev && !condition) {
|
|
336
|
+
throw new Error(`[Sibu] ${message}`);
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
|
|
298
340
|
// src/core/signals/signal.ts
|
|
341
|
+
var _g = globalThis;
|
|
342
|
+
var _isDev2 = isDev();
|
|
299
343
|
function signal(initial, options) {
|
|
300
344
|
const state = { value: initial };
|
|
301
|
-
const debugName = options?.name;
|
|
345
|
+
const debugName = _isDev2 ? options?.name : void 0;
|
|
302
346
|
if (debugName) {
|
|
303
347
|
state.__name = debugName;
|
|
304
348
|
}
|
|
@@ -311,16 +355,22 @@ function signal(initial, options) {
|
|
|
311
355
|
function set(next) {
|
|
312
356
|
const newValue = typeof next === "function" ? next(state.value) : next;
|
|
313
357
|
if (Object.is(newValue, state.value)) return;
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
358
|
+
if (_isDev2) {
|
|
359
|
+
const oldValue = state.value;
|
|
360
|
+
state.value = newValue;
|
|
361
|
+
const hook = _g.__SIBU_DEVTOOLS_GLOBAL_HOOK__;
|
|
362
|
+
if (hook) hook.emit("signal:update", { signal: state, name: debugName, oldValue, newValue });
|
|
363
|
+
} else {
|
|
364
|
+
state.value = newValue;
|
|
365
|
+
}
|
|
318
366
|
if (!enqueueBatchedSignal(state)) {
|
|
319
367
|
notifySubscribers(state);
|
|
320
368
|
}
|
|
321
369
|
}
|
|
322
|
-
|
|
323
|
-
|
|
370
|
+
if (_isDev2) {
|
|
371
|
+
const hook = _g.__SIBU_DEVTOOLS_GLOBAL_HOOK__;
|
|
372
|
+
if (hook) hook.emit("signal:create", { signal: state, name: debugName, getter: get, initial });
|
|
373
|
+
}
|
|
324
374
|
return [get, set];
|
|
325
375
|
}
|
|
326
376
|
|
|
@@ -343,16 +393,6 @@ function media(query) {
|
|
|
343
393
|
return { matches, dispose };
|
|
344
394
|
}
|
|
345
395
|
|
|
346
|
-
// src/core/dev.ts
|
|
347
|
-
function isDev() {
|
|
348
|
-
return typeof globalThis.__SIBU_DEV__ !== "undefined" ? !!globalThis.__SIBU_DEV__ : typeof __SIBU_DEV__ !== "undefined" ? __SIBU_DEV__ : true;
|
|
349
|
-
}
|
|
350
|
-
function devAssert(condition, message) {
|
|
351
|
-
if (isDev() && !condition) {
|
|
352
|
-
throw new Error(`[Sibu] ${message}`);
|
|
353
|
-
}
|
|
354
|
-
}
|
|
355
|
-
|
|
356
396
|
// src/core/ssr-context.ts
|
|
357
397
|
var ssrMode = false;
|
|
358
398
|
function isSSR() {
|
|
@@ -360,25 +400,23 @@ function isSSR() {
|
|
|
360
400
|
}
|
|
361
401
|
|
|
362
402
|
// src/core/signals/effect.ts
|
|
403
|
+
var _g2 = globalThis;
|
|
363
404
|
function effect(effectFn) {
|
|
364
405
|
devAssert(typeof effectFn === "function", "effect: argument must be a function.");
|
|
365
406
|
if (isSSR()) return () => {
|
|
366
407
|
};
|
|
367
|
-
let runCount = 0;
|
|
368
408
|
let cleanupHandle = () => {
|
|
369
409
|
};
|
|
370
|
-
const hook = globalThis.__SIBU_DEVTOOLS_GLOBAL_HOOK__;
|
|
371
410
|
const subscriber = () => {
|
|
372
411
|
cleanupHandle();
|
|
373
|
-
runCount++;
|
|
374
|
-
if (hook) hook.emit("effect:run", { effectFn, runCount });
|
|
375
412
|
cleanupHandle = track(effectFn, subscriber);
|
|
376
413
|
};
|
|
377
414
|
cleanupHandle = track(effectFn, subscriber);
|
|
378
|
-
|
|
415
|
+
const hook = _g2.__SIBU_DEVTOOLS_GLOBAL_HOOK__;
|
|
379
416
|
if (hook) hook.emit("effect:create", { effectFn });
|
|
380
417
|
return () => {
|
|
381
|
-
|
|
418
|
+
const h = _g2.__SIBU_DEVTOOLS_GLOBAL_HOOK__;
|
|
419
|
+
if (h) h.emit("effect:destroy", { effectFn });
|
|
382
420
|
cleanupHandle();
|
|
383
421
|
};
|
|
384
422
|
}
|
package/dist/browser.js
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
effect
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-MJNB47HB.js";
|
|
3
|
+
} from "./chunk-G4AX3DQ4.js";
|
|
5
4
|
import {
|
|
6
5
|
batch,
|
|
7
6
|
signal
|
|
8
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-ONOO74UN.js";
|
|
9
8
|
import "./chunk-MLKGABMK.js";
|
|
10
9
|
|
|
11
10
|
// src/browser/media.ts
|