sibujs 1.3.0 → 1.5.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 (87) hide show
  1. package/README.md +105 -119
  2. package/dist/browser.cjs +53 -14
  3. package/dist/browser.d.cts +14 -9
  4. package/dist/browser.d.ts +14 -9
  5. package/dist/browser.js +4 -4
  6. package/dist/build.cjs +125 -135
  7. package/dist/build.d.cts +1 -1
  8. package/dist/build.d.ts +1 -1
  9. package/dist/build.js +11 -91
  10. package/dist/cdn.global.js +6 -6
  11. package/dist/chunk-5ZYQ6KDD.js +154 -0
  12. package/dist/chunk-6BMPXPUW.js +26 -0
  13. package/dist/chunk-7GRNSCFT.js +1097 -0
  14. package/dist/chunk-BGTHZHJ5.js +1016 -0
  15. package/dist/chunk-BMPL52BF.js +654 -0
  16. package/dist/chunk-CNZ35WI2.js +178 -0
  17. package/dist/chunk-GJPXRJ45.js +37 -0
  18. package/dist/chunk-JCDUJN2F.js +2779 -0
  19. package/dist/chunk-K4G4ZQNR.js +286 -0
  20. package/dist/chunk-M4NLBH4I.js +725 -0
  21. package/dist/chunk-MB6QFH3I.js +2776 -0
  22. package/dist/chunk-MYRV7VDM.js +742 -0
  23. package/dist/chunk-NZIIMDWI.js +84 -0
  24. package/dist/chunk-P3XWXJZU.js +282 -0
  25. package/dist/chunk-PDZQY43A.js +616 -0
  26. package/dist/chunk-RJ46C3CS.js +1293 -0
  27. package/dist/chunk-SFKNRVCU.js +292 -0
  28. package/dist/chunk-TDGZL5CU.js +365 -0
  29. package/dist/chunk-UHNL42EF.js +2730 -0
  30. package/dist/chunk-VAPYJN4X.js +368 -0
  31. package/dist/chunk-VQDZK23A.js +1023 -0
  32. package/dist/chunk-VQNQZCWJ.js +61 -0
  33. package/dist/chunk-XHK6BDAJ.js +76 -0
  34. package/dist/chunk-XUEEGU5O.js +409 -0
  35. package/dist/chunk-ZWKZCBO6.js +317 -0
  36. package/dist/contracts-ey_Qh8ef.d.cts +239 -0
  37. package/dist/contracts-ey_Qh8ef.d.ts +239 -0
  38. package/dist/contracts-xo5ckdRP.d.cts +240 -0
  39. package/dist/contracts-xo5ckdRP.d.ts +240 -0
  40. package/dist/customElement-BL3Uo8dL.d.cts +318 -0
  41. package/dist/customElement-BL3Uo8dL.d.ts +318 -0
  42. package/dist/data.cjs +52 -11
  43. package/dist/data.js +6 -6
  44. package/dist/devtools.cjs +22 -24
  45. package/dist/devtools.d.cts +1 -1
  46. package/dist/devtools.d.ts +1 -1
  47. package/dist/devtools.js +26 -28
  48. package/dist/ecosystem.cjs +31 -6
  49. package/dist/ecosystem.d.cts +4 -4
  50. package/dist/ecosystem.d.ts +4 -4
  51. package/dist/ecosystem.js +7 -7
  52. package/dist/extras.cjs +305 -131
  53. package/dist/extras.d.cts +3 -3
  54. package/dist/extras.d.ts +3 -3
  55. package/dist/extras.js +21 -29
  56. package/dist/index.cjs +124 -56
  57. package/dist/index.d.cts +60 -72
  58. package/dist/index.d.ts +60 -72
  59. package/dist/index.js +10 -14
  60. package/dist/motion.cjs +13 -2
  61. package/dist/motion.d.cts +1 -1
  62. package/dist/motion.d.ts +1 -1
  63. package/dist/motion.js +3 -3
  64. package/dist/patterns.cjs +91 -46
  65. package/dist/patterns.d.cts +46 -60
  66. package/dist/patterns.d.ts +46 -60
  67. package/dist/patterns.js +6 -14
  68. package/dist/performance.cjs +97 -12
  69. package/dist/performance.d.cts +6 -1
  70. package/dist/performance.d.ts +6 -1
  71. package/dist/performance.js +5 -3
  72. package/dist/plugins.cjs +20 -14
  73. package/dist/plugins.d.cts +3 -3
  74. package/dist/plugins.d.ts +3 -3
  75. package/dist/plugins.js +17 -19
  76. package/dist/ssr.cjs +9 -0
  77. package/dist/ssr.d.cts +1 -1
  78. package/dist/ssr.d.ts +1 -1
  79. package/dist/ssr.js +7 -7
  80. package/dist/testing.js +2 -2
  81. package/dist/ui.cjs +130 -53
  82. package/dist/ui.d.cts +13 -16
  83. package/dist/ui.d.ts +13 -16
  84. package/dist/ui.js +7 -9
  85. package/dist/widgets.cjs +31 -6
  86. package/dist/widgets.js +5 -5
  87. package/package.json +1 -1
@@ -0,0 +1,286 @@
1
+ import {
2
+ devWarn,
3
+ isDev
4
+ } from "./chunk-5X6PP2UK.js";
5
+
6
+ // src/reactivity/track.ts
7
+ var _isDev = isDev();
8
+ var subscriberStack = new Array(32);
9
+ var stackCapacity = 32;
10
+ var stackTop = -1;
11
+ var currentSubscriber = null;
12
+ var signalSubscribers = /* @__PURE__ */ new WeakMap();
13
+ var SUBS = "__s";
14
+ var notifyDepth = 0;
15
+ var pendingQueue = [];
16
+ var pendingSet = /* @__PURE__ */ new Set();
17
+ function safeInvoke(sub) {
18
+ try {
19
+ sub();
20
+ } catch (err) {
21
+ if (_isDev) devWarn(`Subscriber threw during notification: ${err instanceof Error ? err.message : String(err)}`);
22
+ }
23
+ }
24
+ var suspendDepth = 0;
25
+ var trackingSuspended = false;
26
+ function track(effectFn, subscriber) {
27
+ if (!subscriber) subscriber = effectFn;
28
+ cleanup(subscriber);
29
+ ++stackTop;
30
+ if (stackTop >= stackCapacity) {
31
+ stackCapacity *= 2;
32
+ subscriberStack.length = stackCapacity;
33
+ }
34
+ subscriberStack[stackTop] = subscriber;
35
+ currentSubscriber = subscriber;
36
+ try {
37
+ effectFn();
38
+ } finally {
39
+ stackTop--;
40
+ currentSubscriber = stackTop >= 0 ? subscriberStack[stackTop] : null;
41
+ }
42
+ return () => cleanup(subscriber);
43
+ }
44
+ function suspendTracking() {
45
+ if (suspendDepth === 0) {
46
+ ++stackTop;
47
+ if (stackTop >= stackCapacity) {
48
+ stackCapacity *= 2;
49
+ subscriberStack.length = stackCapacity;
50
+ }
51
+ subscriberStack[stackTop] = null;
52
+ currentSubscriber = null;
53
+ trackingSuspended = true;
54
+ }
55
+ suspendDepth++;
56
+ }
57
+ function resumeTracking() {
58
+ suspendDepth--;
59
+ if (suspendDepth === 0) {
60
+ stackTop--;
61
+ currentSubscriber = stackTop >= 0 ? subscriberStack[stackTop] : null;
62
+ trackingSuspended = false;
63
+ }
64
+ }
65
+ function untracked(fn) {
66
+ suspendTracking();
67
+ try {
68
+ return fn();
69
+ } finally {
70
+ resumeTracking();
71
+ }
72
+ }
73
+ function recordDependency(signal) {
74
+ if (!currentSubscriber) return;
75
+ const sub = currentSubscriber;
76
+ if (sub._dep === signal) return;
77
+ const deps = sub._deps;
78
+ if (deps) {
79
+ if (deps.has(signal)) return;
80
+ deps.add(signal);
81
+ } else if (sub._dep !== void 0) {
82
+ const set = /* @__PURE__ */ new Set();
83
+ set.add(sub._dep);
84
+ set.add(signal);
85
+ sub._deps = set;
86
+ sub._dep = void 0;
87
+ } else {
88
+ sub._dep = signal;
89
+ }
90
+ let subs = signal[SUBS];
91
+ if (!subs) {
92
+ subs = /* @__PURE__ */ new Set();
93
+ signalSubscribers.set(signal, subs);
94
+ signal[SUBS] = subs;
95
+ }
96
+ subs.add(currentSubscriber);
97
+ if (subs.size === 1) {
98
+ signal.__f = currentSubscriber;
99
+ } else if (signal.__f !== void 0) {
100
+ signal.__f = void 0;
101
+ }
102
+ }
103
+ function queueSignalNotification(signal) {
104
+ const subs = signal[SUBS];
105
+ if (!subs) return;
106
+ for (const sub of subs) {
107
+ if (sub._c) {
108
+ propagateDirty(sub);
109
+ } else if (!pendingSet.has(sub)) {
110
+ pendingSet.add(sub);
111
+ pendingQueue.push(sub);
112
+ }
113
+ }
114
+ }
115
+ var MAX_DRAIN_ITERATIONS = 1e3;
116
+ function drainNotificationQueue() {
117
+ if (notifyDepth > 0) return;
118
+ notifyDepth++;
119
+ try {
120
+ let i = 0;
121
+ while (i < pendingQueue.length) {
122
+ if (i >= MAX_DRAIN_ITERATIONS) {
123
+ if (typeof console !== "undefined") {
124
+ console.error(
125
+ `[SibuJS] Notification queue exceeded ${MAX_DRAIN_ITERATIONS} iterations \u2014 likely an effect that writes to a signal it reads. Breaking to prevent infinite loop.`
126
+ );
127
+ }
128
+ break;
129
+ }
130
+ safeInvoke(pendingQueue[i]);
131
+ i++;
132
+ }
133
+ } finally {
134
+ pendingQueue.length = 0;
135
+ pendingSet.clear();
136
+ notifyDepth--;
137
+ }
138
+ }
139
+ function propagateDirty(sub) {
140
+ sub();
141
+ let sig = sub._sig;
142
+ while (sig) {
143
+ const first = sig.__f;
144
+ if (first) {
145
+ if (first._c) {
146
+ const nSig = first._sig;
147
+ nSig._d = true;
148
+ sig = nSig;
149
+ continue;
150
+ }
151
+ if (!pendingSet.has(first)) {
152
+ pendingSet.add(first);
153
+ pendingQueue.push(first);
154
+ }
155
+ break;
156
+ }
157
+ const subs = sig[SUBS];
158
+ if (!subs) break;
159
+ let nextSig;
160
+ for (const s of subs) {
161
+ if (s._c) {
162
+ s();
163
+ const nSig = s._sig;
164
+ if (nSig && !nextSig) {
165
+ nextSig = nSig;
166
+ } else if (nSig) {
167
+ propagateDirty(s);
168
+ }
169
+ } else if (!pendingSet.has(s)) {
170
+ pendingSet.add(s);
171
+ pendingQueue.push(s);
172
+ }
173
+ }
174
+ sig = nextSig;
175
+ }
176
+ }
177
+ function notifySubscribers(signal) {
178
+ const first = signal.__f;
179
+ if (first) {
180
+ if (notifyDepth > 0) {
181
+ if (first._c) {
182
+ propagateDirty(first);
183
+ } else if (!pendingSet.has(first)) {
184
+ pendingSet.add(first);
185
+ pendingQueue.push(first);
186
+ }
187
+ return;
188
+ }
189
+ notifyDepth++;
190
+ try {
191
+ if (first._c) {
192
+ propagateDirty(first);
193
+ } else {
194
+ safeInvoke(first);
195
+ }
196
+ let i = 0;
197
+ while (i < pendingQueue.length) {
198
+ safeInvoke(pendingQueue[i]);
199
+ i++;
200
+ }
201
+ } finally {
202
+ pendingQueue.length = 0;
203
+ pendingSet.clear();
204
+ notifyDepth--;
205
+ }
206
+ return;
207
+ }
208
+ const subs = signal[SUBS];
209
+ if (!subs || subs.size === 0) return;
210
+ if (notifyDepth > 0) {
211
+ for (const sub of subs) {
212
+ if (sub._c) {
213
+ propagateDirty(sub);
214
+ } else if (!pendingSet.has(sub)) {
215
+ pendingSet.add(sub);
216
+ pendingQueue.push(sub);
217
+ }
218
+ }
219
+ return;
220
+ }
221
+ notifyDepth++;
222
+ try {
223
+ let directCount = 0;
224
+ for (const sub of subs) {
225
+ pendingQueue[directCount++] = sub;
226
+ }
227
+ for (let i2 = 0; i2 < directCount; i2++) {
228
+ if (pendingQueue[i2]._c) {
229
+ propagateDirty(pendingQueue[i2]);
230
+ }
231
+ }
232
+ for (let i2 = 0; i2 < directCount; i2++) {
233
+ if (!pendingQueue[i2]._c) {
234
+ if (!pendingSet.has(pendingQueue[i2])) {
235
+ safeInvoke(pendingQueue[i2]);
236
+ }
237
+ }
238
+ }
239
+ let i = directCount;
240
+ while (i < pendingQueue.length) {
241
+ safeInvoke(pendingQueue[i]);
242
+ i++;
243
+ }
244
+ } finally {
245
+ pendingQueue.length = 0;
246
+ pendingSet.clear();
247
+ notifyDepth--;
248
+ }
249
+ }
250
+ function cleanup(subscriber) {
251
+ const sub = subscriber;
252
+ const singleDep = sub._dep;
253
+ if (singleDep !== void 0) {
254
+ const subs = singleDep[SUBS];
255
+ if (subs) {
256
+ subs.delete(subscriber);
257
+ if (singleDep.__f === subscriber) {
258
+ singleDep.__f = void 0;
259
+ }
260
+ }
261
+ sub._dep = void 0;
262
+ return;
263
+ }
264
+ const deps = sub._deps;
265
+ if (!deps || deps.size === 0) return;
266
+ for (const signal of deps) {
267
+ const subs = signal[SUBS];
268
+ if (subs) {
269
+ subs.delete(subscriber);
270
+ if (signal.__f === subscriber) {
271
+ signal.__f = void 0;
272
+ }
273
+ }
274
+ }
275
+ deps.clear();
276
+ }
277
+
278
+ export {
279
+ trackingSuspended,
280
+ track,
281
+ untracked,
282
+ recordDependency,
283
+ queueSignalNotification,
284
+ drainNotificationQueue,
285
+ notifySubscribers
286
+ };