sibujs 1.5.0 → 2.1.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/dist/browser.cjs +332 -121
- package/dist/browser.d.cts +5 -0
- package/dist/browser.d.ts +5 -0
- package/dist/browser.js +6 -6
- package/dist/build.cjs +1049 -344
- 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-BMPL52BF.js → chunk-3DZP6OIT.js} +118 -66
- package/dist/chunk-3JHCYHWN.js +125 -0
- package/dist/{chunk-CZUGLNJS.js → chunk-45YP72ZQ.js} +3 -3
- package/dist/{chunk-JCDUJN2F.js → chunk-AMK2TYNW.js} +490 -153
- package/dist/{chunk-NHUC2QWH.js → chunk-CWBVQML6.js} +1 -1
- package/dist/{chunk-XHK6BDAJ.js → chunk-DRUZZAK4.js} +25 -8
- package/dist/{chunk-RJ46C3CS.js → chunk-GWWURC5M.js} +71 -20
- package/dist/{chunk-3X2YG6YM.js → chunk-JYD2PWXH.js} +59 -28
- package/dist/{chunk-2BYQDGN3.js → chunk-KGYT6UO6.js} +234 -63
- package/dist/{chunk-5X6PP2UK.js → chunk-LMLD24FC.js} +2 -2
- package/dist/{chunk-M4NLBH4I.js → chunk-LYTCUZ7H.js} +3 -2
- package/dist/{chunk-XUEEGU5O.js → chunk-NASX6ST2.js} +16 -4
- package/dist/{chunk-VQDZK23A.js → chunk-O6EFQ3KT.js} +181 -66
- package/dist/{chunk-BGN5ZMP4.js → chunk-OJ3P4ECI.js} +14 -2
- package/dist/chunk-ON5MMR2J.js +1327 -0
- package/dist/{chunk-SFKNRVCU.js → chunk-P2HSJDDN.js} +135 -79
- package/dist/chunk-QO3WC6FS.js +384 -0
- package/dist/{chunk-WZSPOOER.js → chunk-RDTDJCAB.js} +8 -5
- package/dist/{chunk-7GRNSCFT.js → chunk-TH2ILCYW.js} +312 -185
- package/dist/chunk-UCS6AMJ7.js +79 -0
- package/dist/{chunk-VAPYJN4X.js → chunk-V6C4FADE.js} +93 -23
- package/dist/{chunk-OUZZEE4S.js → chunk-WANSMF2L.js} +17 -11
- package/dist/{chunk-23VV7YD3.js → chunk-WIPZPFBQ.js} +25 -30
- package/dist/chunk-WZA53FXU.js +149 -0
- package/dist/{chunk-BGTHZHJ5.js → chunk-ZAQSMOED.js} +188 -44
- package/dist/{customElement-BL3Uo8dL.d.cts → customElement-CPfIrbvg.d.cts} +14 -10
- package/dist/{customElement-BL3Uo8dL.d.ts → customElement-CPfIrbvg.d.ts} +14 -10
- package/dist/data.cjs +536 -151
- package/dist/data.d.cts +20 -2
- package/dist/data.d.ts +20 -2
- package/dist/data.js +11 -9
- package/dist/devtools.cjs +613 -266
- package/dist/devtools.d.cts +1 -1
- package/dist/devtools.d.ts +1 -1
- package/dist/devtools.js +12 -6
- package/dist/ecosystem.cjs +602 -197
- package/dist/ecosystem.d.cts +9 -7
- package/dist/ecosystem.d.ts +9 -7
- package/dist/ecosystem.js +12 -11
- package/dist/extras.cjs +3500 -1608
- package/dist/extras.d.cts +9 -9
- package/dist/extras.d.ts +9 -9
- package/dist/extras.js +58 -45
- package/dist/index.cjs +1055 -344
- package/dist/index.d.cts +85 -8
- package/dist/index.d.ts +85 -8
- package/dist/index.js +32 -16
- package/dist/{introspect-BumjnBKr.d.cts → introspect-2TOlQ7oa.d.cts} +25 -3
- package/dist/{introspect-CZrlcaYy.d.ts → introspect-DnIpHQQz.d.ts} +25 -3
- package/dist/motion.cjs +122 -63
- package/dist/motion.js +4 -4
- package/dist/patterns.cjs +450 -110
- package/dist/patterns.d.cts +11 -12
- package/dist/patterns.d.ts +11 -12
- package/dist/patterns.js +7 -7
- package/dist/performance.cjs +373 -149
- package/dist/performance.d.cts +23 -16
- package/dist/performance.d.ts +23 -16
- package/dist/performance.js +13 -8
- package/dist/plugin-D30wlGW5.d.cts +71 -0
- package/dist/plugin-D30wlGW5.d.ts +71 -0
- package/dist/plugins.cjs +729 -301
- package/dist/plugins.d.cts +10 -3
- package/dist/plugins.d.ts +10 -3
- package/dist/plugins.js +106 -38
- 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 +736 -274
- package/dist/ssr.d.cts +26 -6
- package/dist/ssr.d.ts +26 -6
- package/dist/ssr.js +12 -11
- package/dist/{tagFactory-DaJ0YWX6.d.cts → tagFactory-S17H2qxu.d.cts} +9 -1
- package/dist/{tagFactory-DaJ0YWX6.d.ts → tagFactory-S17H2qxu.d.ts} +9 -1
- package/dist/testing.cjs +303 -76
- package/dist/testing.d.cts +17 -4
- package/dist/testing.d.ts +17 -4
- package/dist/testing.js +100 -44
- package/dist/ui.cjs +589 -178
- package/dist/ui.d.cts +1 -1
- package/dist/ui.d.ts +1 -1
- package/dist/ui.js +20 -17
- package/dist/widgets.cjs +1103 -146
- 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-3AIRKM3B.js +0 -1263
- package/dist/chunk-3ARAQO7B.js +0 -398
- package/dist/chunk-3CRQALYP.js +0 -877
- package/dist/chunk-4EI4AG32.js +0 -482
- package/dist/chunk-4MYMUBRS.js +0 -21
- package/dist/chunk-5ZYQ6KDD.js +0 -154
- package/dist/chunk-6BMPXPUW.js +0 -26
- package/dist/chunk-6HLLIF3K.js +0 -398
- package/dist/chunk-6LSNVCS2.js +0 -937
- package/dist/chunk-6SA3QQES.js +0 -61
- package/dist/chunk-77L6NL3X.js +0 -1097
- 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-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-EWFVA3TJ.js +0 -282
- package/dist/chunk-F3FA4F32.js +0 -292
- package/dist/chunk-FGOEVHY3.js +0 -60
- package/dist/chunk-G3BOQPVO.js +0 -365
- package/dist/chunk-GCOK2LC3.js +0 -282
- package/dist/chunk-GJPXRJ45.js +0 -37
- package/dist/chunk-HGMJFBC7.js +0 -654
- package/dist/chunk-JAKHTMQU.js +0 -1000
- package/dist/chunk-JCI5M6U6.js +0 -956
- package/dist/chunk-K4G4ZQNR.js +0 -286
- 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-MB6QFH3I.js +0 -2776
- 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-MYRV7VDM.js +0 -742
- package/dist/chunk-N6IZB6KJ.js +0 -567
- package/dist/chunk-NEKUBFPT.js +0 -60
- package/dist/chunk-NMRUZALC.js +0 -1097
- package/dist/chunk-NYVAC6P5.js +0 -37
- package/dist/chunk-NZIIMDWI.js +0 -84
- package/dist/chunk-OF7UZIVB.js +0 -725
- package/dist/chunk-P3XWXJZU.js +0 -282
- package/dist/chunk-P6W3STU4.js +0 -2249
- package/dist/chunk-PBHF5WKN.js +0 -616
- package/dist/chunk-PDZQY43A.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-QWZG56ET.js +0 -2744
- package/dist/chunk-RQGQSLQK.js +0 -725
- package/dist/chunk-SDLZDHKP.js +0 -107
- package/dist/chunk-TDGZL5CU.js +0 -365
- package/dist/chunk-TNQWPPE6.js +0 -37
- package/dist/chunk-TSOKIX5Z.js +0 -654
- 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-VQNQZCWJ.js +0 -61
- package/dist/chunk-VRW3FULF.js +0 -725
- package/dist/chunk-WADYRCO2.js +0 -304
- package/dist/chunk-WILQZRO4.js +0 -282
- package/dist/chunk-WR5D4EGH.js +0 -26
- 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/chunk-ZD6OAMTH.js +0 -277
- package/dist/chunk-ZWKZCBO6.js +0 -317
- 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/contracts-xo5ckdRP.d.cts +0 -240
- package/dist/contracts-xo5ckdRP.d.ts +0 -240
- package/dist/customElement-BKQfbSZQ.d.cts +0 -262
- package/dist/customElement-BKQfbSZQ.d.ts +0 -262
- package/dist/customElement-D2DJp_xn.d.cts +0 -313
- package/dist/customElement-D2DJp_xn.d.ts +0 -313
- 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
package/dist/chunk-Y6GP4QGG.js
DELETED
|
@@ -1,276 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
derived
|
|
3
|
-
} from "./chunk-FGOEVHY3.js";
|
|
4
|
-
import {
|
|
5
|
-
effect
|
|
6
|
-
} from "./chunk-PZEGYCF5.js";
|
|
7
|
-
import {
|
|
8
|
-
signal
|
|
9
|
-
} from "./chunk-YECR7UIA.js";
|
|
10
|
-
|
|
11
|
-
// src/patterns/machine.ts
|
|
12
|
-
function machine(config) {
|
|
13
|
-
const [state, setState] = signal(config.initial);
|
|
14
|
-
const [context, setContext] = signal(config.context || {});
|
|
15
|
-
const initialDef = config.states[config.initial];
|
|
16
|
-
if (initialDef?.entry) {
|
|
17
|
-
initialDef.entry(context());
|
|
18
|
-
}
|
|
19
|
-
function send(event) {
|
|
20
|
-
const currentState = state();
|
|
21
|
-
const stateDef = config.states[currentState];
|
|
22
|
-
if (!stateDef?.on) return;
|
|
23
|
-
const transition = stateDef.on[event];
|
|
24
|
-
if (!transition) return;
|
|
25
|
-
let target;
|
|
26
|
-
let guard;
|
|
27
|
-
let action;
|
|
28
|
-
if (typeof transition === "string") {
|
|
29
|
-
target = transition;
|
|
30
|
-
} else {
|
|
31
|
-
target = transition.target;
|
|
32
|
-
guard = transition.guard;
|
|
33
|
-
action = transition.action;
|
|
34
|
-
}
|
|
35
|
-
const ctx = context();
|
|
36
|
-
if (guard && !guard(ctx)) return;
|
|
37
|
-
if (stateDef.exit) {
|
|
38
|
-
stateDef.exit(ctx);
|
|
39
|
-
}
|
|
40
|
-
if (action) {
|
|
41
|
-
const patch = action(ctx);
|
|
42
|
-
setContext({ ...ctx, ...patch });
|
|
43
|
-
}
|
|
44
|
-
setState(target);
|
|
45
|
-
const targetDef = config.states[target];
|
|
46
|
-
if (targetDef?.entry) {
|
|
47
|
-
targetDef.entry(context());
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
function matches(s) {
|
|
51
|
-
return state() === s;
|
|
52
|
-
}
|
|
53
|
-
function can(event) {
|
|
54
|
-
const currentState = state();
|
|
55
|
-
const stateDef = config.states[currentState];
|
|
56
|
-
if (!stateDef?.on) return false;
|
|
57
|
-
const transition = stateDef.on[event];
|
|
58
|
-
if (!transition) return false;
|
|
59
|
-
if (typeof transition === "string") return true;
|
|
60
|
-
if (transition.guard) {
|
|
61
|
-
return transition.guard(context());
|
|
62
|
-
}
|
|
63
|
-
return true;
|
|
64
|
-
}
|
|
65
|
-
return { state, context, send, matches, can };
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
// src/patterns/persist.ts
|
|
69
|
-
function persisted(key, initial, options = {}) {
|
|
70
|
-
const storage = options.session ? sessionStorage : localStorage;
|
|
71
|
-
const serialize = options.serialize || JSON.stringify;
|
|
72
|
-
const deserialize = options.deserialize || JSON.parse;
|
|
73
|
-
const encrypt = options.encrypt;
|
|
74
|
-
const decrypt = options.decrypt;
|
|
75
|
-
let restored = initial;
|
|
76
|
-
try {
|
|
77
|
-
let raw = storage.getItem(key);
|
|
78
|
-
if (raw !== null) {
|
|
79
|
-
if (decrypt) raw = decrypt(raw);
|
|
80
|
-
const parsed = deserialize(raw);
|
|
81
|
-
restored = options.validate && !options.validate(parsed) ? initial : parsed;
|
|
82
|
-
}
|
|
83
|
-
} catch {
|
|
84
|
-
}
|
|
85
|
-
const [value, setValue] = signal(restored);
|
|
86
|
-
effect(() => {
|
|
87
|
-
const current = value();
|
|
88
|
-
try {
|
|
89
|
-
let serialized = serialize(current);
|
|
90
|
-
if (encrypt) serialized = encrypt(serialized);
|
|
91
|
-
storage.setItem(key, serialized);
|
|
92
|
-
} catch {
|
|
93
|
-
}
|
|
94
|
-
});
|
|
95
|
-
return [value, setValue];
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
// src/patterns/optimistic.ts
|
|
99
|
-
function optimistic(initialValue) {
|
|
100
|
-
const [value, setValue] = signal(initialValue);
|
|
101
|
-
const [_pending, setPending] = signal(false);
|
|
102
|
-
async function addOptimistic(optimisticValue, asyncAction) {
|
|
103
|
-
const previousValue = value();
|
|
104
|
-
setValue(optimisticValue);
|
|
105
|
-
setPending(true);
|
|
106
|
-
try {
|
|
107
|
-
const result = await asyncAction();
|
|
108
|
-
setValue(result);
|
|
109
|
-
} catch {
|
|
110
|
-
setValue(previousValue);
|
|
111
|
-
} finally {
|
|
112
|
-
setPending(false);
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
return [value, addOptimistic];
|
|
116
|
-
}
|
|
117
|
-
function optimisticList(initialValue) {
|
|
118
|
-
const [items, setItems] = signal([...initialValue]);
|
|
119
|
-
async function addOptimistic(item, asyncAction) {
|
|
120
|
-
const prev = items();
|
|
121
|
-
setItems([...prev, item]);
|
|
122
|
-
try {
|
|
123
|
-
const result = await asyncAction();
|
|
124
|
-
setItems((current) => {
|
|
125
|
-
const idx = current.lastIndexOf(item);
|
|
126
|
-
if (idx >= 0) {
|
|
127
|
-
const next = [...current];
|
|
128
|
-
next[idx] = result;
|
|
129
|
-
return next;
|
|
130
|
-
}
|
|
131
|
-
return [...current.filter((i) => i !== item), result];
|
|
132
|
-
});
|
|
133
|
-
} catch {
|
|
134
|
-
setItems(prev);
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
async function removeOptimistic(predicate, asyncAction) {
|
|
138
|
-
const prev = items();
|
|
139
|
-
setItems(prev.filter((item) => !predicate(item)));
|
|
140
|
-
try {
|
|
141
|
-
await asyncAction();
|
|
142
|
-
} catch {
|
|
143
|
-
setItems(prev);
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
async function updateOptimistic(predicate, update, asyncAction) {
|
|
147
|
-
const prev = items();
|
|
148
|
-
setItems(prev.map((item) => predicate(item) ? { ...item, ...update } : item));
|
|
149
|
-
try {
|
|
150
|
-
const result = await asyncAction();
|
|
151
|
-
setItems((current) => current.map((item) => predicate(item) ? result : item));
|
|
152
|
-
} catch {
|
|
153
|
-
setItems(prev);
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
return { items, addOptimistic, removeOptimistic, updateOptimistic };
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
// src/patterns/timeTravel.ts
|
|
160
|
-
function timeline(initial, maxHistory = 100) {
|
|
161
|
-
const [history, setHistory] = signal([initial]);
|
|
162
|
-
const [index, setIndex] = signal(0);
|
|
163
|
-
const value = derived(() => history()[index()]);
|
|
164
|
-
const canUndo = derived(() => index() > 0);
|
|
165
|
-
const canRedo = derived(() => index() < history().length - 1);
|
|
166
|
-
function set(next) {
|
|
167
|
-
const current = value();
|
|
168
|
-
const newValue = typeof next === "function" ? next(current) : next;
|
|
169
|
-
if (Object.is(newValue, current)) return;
|
|
170
|
-
const hist = history();
|
|
171
|
-
const idx = index();
|
|
172
|
-
const newHistory = hist.slice(0, idx + 1);
|
|
173
|
-
newHistory.push(newValue);
|
|
174
|
-
if (newHistory.length > maxHistory) {
|
|
175
|
-
newHistory.shift();
|
|
176
|
-
setHistory(newHistory);
|
|
177
|
-
setIndex(newHistory.length - 1);
|
|
178
|
-
} else {
|
|
179
|
-
setHistory(newHistory);
|
|
180
|
-
setIndex(idx + 1);
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
function undo() {
|
|
184
|
-
if (canUndo()) {
|
|
185
|
-
setIndex(index() - 1);
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
function redo() {
|
|
189
|
-
if (canRedo()) {
|
|
190
|
-
setIndex(index() + 1);
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
function reset() {
|
|
194
|
-
setHistory([initial]);
|
|
195
|
-
setIndex(0);
|
|
196
|
-
}
|
|
197
|
-
function jumpTo(targetIndex) {
|
|
198
|
-
const hist = history();
|
|
199
|
-
if (targetIndex >= 0 && targetIndex < hist.length) {
|
|
200
|
-
setIndex(targetIndex);
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
return { value, set, undo, redo, canUndo, canRedo, history, index, reset, jumpTo };
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
// src/patterns/globalStore.ts
|
|
207
|
-
function globalStore(config) {
|
|
208
|
-
const initialState = { ...config.state };
|
|
209
|
-
const [getState, setState] = signal({ ...initialState });
|
|
210
|
-
const listeners = /* @__PURE__ */ new Set();
|
|
211
|
-
const middlewares = config.middleware || [];
|
|
212
|
-
function dispatch(action, payload) {
|
|
213
|
-
const actionFn = config.actions[action];
|
|
214
|
-
if (!actionFn) throw new Error(`Unknown action: ${String(action)}`);
|
|
215
|
-
const execute = () => {
|
|
216
|
-
const current = getState();
|
|
217
|
-
const patch = actionFn(current, payload);
|
|
218
|
-
setState({ ...current, ...patch });
|
|
219
|
-
const newState = getState();
|
|
220
|
-
for (const listener of listeners) {
|
|
221
|
-
listener(newState);
|
|
222
|
-
}
|
|
223
|
-
};
|
|
224
|
-
if (middlewares.length === 0) {
|
|
225
|
-
execute();
|
|
226
|
-
return;
|
|
227
|
-
}
|
|
228
|
-
let index = 0;
|
|
229
|
-
const next = () => {
|
|
230
|
-
if (index < middlewares.length) {
|
|
231
|
-
const mw = middlewares[index++];
|
|
232
|
-
mw(getState(), String(action), payload, next);
|
|
233
|
-
} else {
|
|
234
|
-
execute();
|
|
235
|
-
}
|
|
236
|
-
};
|
|
237
|
-
next();
|
|
238
|
-
}
|
|
239
|
-
function select(selector) {
|
|
240
|
-
return derived(() => selector(getState()));
|
|
241
|
-
}
|
|
242
|
-
function subscribe(callback) {
|
|
243
|
-
listeners.add(callback);
|
|
244
|
-
return () => listeners.delete(callback);
|
|
245
|
-
}
|
|
246
|
-
function reset() {
|
|
247
|
-
setState({ ...initialState });
|
|
248
|
-
for (const listener of listeners) {
|
|
249
|
-
listener(getState());
|
|
250
|
-
}
|
|
251
|
-
}
|
|
252
|
-
return { getState, select, dispatch, subscribe, reset };
|
|
253
|
-
}
|
|
254
|
-
|
|
255
|
-
// src/patterns/primitives.ts
|
|
256
|
-
function createSignal(value) {
|
|
257
|
-
return signal(value);
|
|
258
|
-
}
|
|
259
|
-
function createMemo(fn) {
|
|
260
|
-
return derived(fn);
|
|
261
|
-
}
|
|
262
|
-
function createEffect(fn) {
|
|
263
|
-
return effect(fn);
|
|
264
|
-
}
|
|
265
|
-
|
|
266
|
-
export {
|
|
267
|
-
machine,
|
|
268
|
-
persisted,
|
|
269
|
-
optimistic,
|
|
270
|
-
optimisticList,
|
|
271
|
-
timeline,
|
|
272
|
-
globalStore,
|
|
273
|
-
createSignal,
|
|
274
|
-
createMemo,
|
|
275
|
-
createEffect
|
|
276
|
-
};
|
package/dist/chunk-YECR7UIA.js
DELETED
|
@@ -1,347 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
devWarn,
|
|
3
|
-
isDev
|
|
4
|
-
} from "./chunk-4MYMUBRS.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(signal2) {
|
|
74
|
-
if (!currentSubscriber) return;
|
|
75
|
-
const sub = currentSubscriber;
|
|
76
|
-
if (sub._dep === signal2) return;
|
|
77
|
-
const deps = sub._deps;
|
|
78
|
-
if (deps) {
|
|
79
|
-
if (deps.has(signal2)) return;
|
|
80
|
-
deps.add(signal2);
|
|
81
|
-
} else if (sub._dep !== void 0) {
|
|
82
|
-
const set = /* @__PURE__ */ new Set();
|
|
83
|
-
set.add(sub._dep);
|
|
84
|
-
set.add(signal2);
|
|
85
|
-
sub._deps = set;
|
|
86
|
-
sub._dep = void 0;
|
|
87
|
-
} else {
|
|
88
|
-
sub._dep = signal2;
|
|
89
|
-
}
|
|
90
|
-
let subs = signal2[SUBS];
|
|
91
|
-
if (!subs) {
|
|
92
|
-
subs = /* @__PURE__ */ new Set();
|
|
93
|
-
signalSubscribers.set(signal2, subs);
|
|
94
|
-
signal2[SUBS] = subs;
|
|
95
|
-
}
|
|
96
|
-
subs.add(currentSubscriber);
|
|
97
|
-
if (subs.size === 1) {
|
|
98
|
-
signal2.__f = currentSubscriber;
|
|
99
|
-
} else if (signal2.__f !== void 0) {
|
|
100
|
-
signal2.__f = void 0;
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
function queueSignalNotification(signal2) {
|
|
104
|
-
const subs = signal2[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
|
-
function drainNotificationQueue() {
|
|
116
|
-
if (notifyDepth > 0) return;
|
|
117
|
-
notifyDepth++;
|
|
118
|
-
try {
|
|
119
|
-
let i = 0;
|
|
120
|
-
while (i < pendingQueue.length) {
|
|
121
|
-
safeInvoke(pendingQueue[i]);
|
|
122
|
-
i++;
|
|
123
|
-
}
|
|
124
|
-
} finally {
|
|
125
|
-
pendingQueue.length = 0;
|
|
126
|
-
pendingSet.clear();
|
|
127
|
-
notifyDepth--;
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
function propagateDirty(sub) {
|
|
131
|
-
sub();
|
|
132
|
-
let sig = sub._sig;
|
|
133
|
-
while (sig) {
|
|
134
|
-
const first = sig.__f;
|
|
135
|
-
if (first) {
|
|
136
|
-
if (first._c) {
|
|
137
|
-
const nSig = first._sig;
|
|
138
|
-
nSig._d = true;
|
|
139
|
-
sig = nSig;
|
|
140
|
-
continue;
|
|
141
|
-
}
|
|
142
|
-
if (!pendingSet.has(first)) {
|
|
143
|
-
pendingSet.add(first);
|
|
144
|
-
pendingQueue.push(first);
|
|
145
|
-
}
|
|
146
|
-
break;
|
|
147
|
-
}
|
|
148
|
-
const subs = sig[SUBS];
|
|
149
|
-
if (!subs) break;
|
|
150
|
-
let nextSig;
|
|
151
|
-
for (const s of subs) {
|
|
152
|
-
if (s._c) {
|
|
153
|
-
s();
|
|
154
|
-
const nSig = s._sig;
|
|
155
|
-
if (nSig && !nextSig) {
|
|
156
|
-
nextSig = nSig;
|
|
157
|
-
} else if (nSig) {
|
|
158
|
-
propagateDirty(s);
|
|
159
|
-
}
|
|
160
|
-
} else if (!pendingSet.has(s)) {
|
|
161
|
-
pendingSet.add(s);
|
|
162
|
-
pendingQueue.push(s);
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
sig = nextSig;
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
function notifySubscribers(signal2) {
|
|
169
|
-
const first = signal2.__f;
|
|
170
|
-
if (first) {
|
|
171
|
-
if (notifyDepth > 0) {
|
|
172
|
-
if (first._c) {
|
|
173
|
-
propagateDirty(first);
|
|
174
|
-
} else if (!pendingSet.has(first)) {
|
|
175
|
-
pendingSet.add(first);
|
|
176
|
-
pendingQueue.push(first);
|
|
177
|
-
}
|
|
178
|
-
return;
|
|
179
|
-
}
|
|
180
|
-
notifyDepth++;
|
|
181
|
-
try {
|
|
182
|
-
if (first._c) {
|
|
183
|
-
propagateDirty(first);
|
|
184
|
-
} else {
|
|
185
|
-
safeInvoke(first);
|
|
186
|
-
}
|
|
187
|
-
let i = 0;
|
|
188
|
-
while (i < pendingQueue.length) {
|
|
189
|
-
safeInvoke(pendingQueue[i]);
|
|
190
|
-
i++;
|
|
191
|
-
}
|
|
192
|
-
} finally {
|
|
193
|
-
pendingQueue.length = 0;
|
|
194
|
-
pendingSet.clear();
|
|
195
|
-
notifyDepth--;
|
|
196
|
-
}
|
|
197
|
-
return;
|
|
198
|
-
}
|
|
199
|
-
const subs = signal2[SUBS];
|
|
200
|
-
if (!subs || subs.size === 0) return;
|
|
201
|
-
if (notifyDepth > 0) {
|
|
202
|
-
for (const sub of subs) {
|
|
203
|
-
if (sub._c) {
|
|
204
|
-
propagateDirty(sub);
|
|
205
|
-
} else if (!pendingSet.has(sub)) {
|
|
206
|
-
pendingSet.add(sub);
|
|
207
|
-
pendingQueue.push(sub);
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
return;
|
|
211
|
-
}
|
|
212
|
-
notifyDepth++;
|
|
213
|
-
try {
|
|
214
|
-
let directCount = 0;
|
|
215
|
-
for (const sub of subs) {
|
|
216
|
-
pendingQueue[directCount++] = sub;
|
|
217
|
-
}
|
|
218
|
-
for (let i2 = 0; i2 < directCount; i2++) {
|
|
219
|
-
if (pendingQueue[i2]._c) {
|
|
220
|
-
propagateDirty(pendingQueue[i2]);
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
for (let i2 = 0; i2 < directCount; i2++) {
|
|
224
|
-
if (!pendingQueue[i2]._c) {
|
|
225
|
-
if (!pendingSet.has(pendingQueue[i2])) {
|
|
226
|
-
safeInvoke(pendingQueue[i2]);
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
|
-
}
|
|
230
|
-
let i = directCount;
|
|
231
|
-
while (i < pendingQueue.length) {
|
|
232
|
-
safeInvoke(pendingQueue[i]);
|
|
233
|
-
i++;
|
|
234
|
-
}
|
|
235
|
-
} finally {
|
|
236
|
-
pendingQueue.length = 0;
|
|
237
|
-
pendingSet.clear();
|
|
238
|
-
notifyDepth--;
|
|
239
|
-
}
|
|
240
|
-
}
|
|
241
|
-
function cleanup(subscriber) {
|
|
242
|
-
const sub = subscriber;
|
|
243
|
-
const singleDep = sub._dep;
|
|
244
|
-
if (singleDep !== void 0) {
|
|
245
|
-
const subs = singleDep[SUBS];
|
|
246
|
-
if (subs) {
|
|
247
|
-
subs.delete(subscriber);
|
|
248
|
-
if (singleDep.__f === subscriber) {
|
|
249
|
-
singleDep.__f = void 0;
|
|
250
|
-
}
|
|
251
|
-
}
|
|
252
|
-
sub._dep = void 0;
|
|
253
|
-
return;
|
|
254
|
-
}
|
|
255
|
-
const deps = sub._deps;
|
|
256
|
-
if (!deps || deps.size === 0) return;
|
|
257
|
-
for (const signal2 of deps) {
|
|
258
|
-
const subs = signal2[SUBS];
|
|
259
|
-
if (subs) {
|
|
260
|
-
subs.delete(subscriber);
|
|
261
|
-
if (signal2.__f === subscriber) {
|
|
262
|
-
signal2.__f = void 0;
|
|
263
|
-
}
|
|
264
|
-
}
|
|
265
|
-
}
|
|
266
|
-
deps.clear();
|
|
267
|
-
}
|
|
268
|
-
|
|
269
|
-
// src/reactivity/batch.ts
|
|
270
|
-
var batchDepth = 0;
|
|
271
|
-
var pendingSignals = /* @__PURE__ */ new Set();
|
|
272
|
-
function batch(fn) {
|
|
273
|
-
batchDepth++;
|
|
274
|
-
try {
|
|
275
|
-
return fn();
|
|
276
|
-
} finally {
|
|
277
|
-
batchDepth--;
|
|
278
|
-
if (batchDepth === 0) {
|
|
279
|
-
flushBatch();
|
|
280
|
-
}
|
|
281
|
-
}
|
|
282
|
-
}
|
|
283
|
-
function enqueueBatchedSignal(signal2) {
|
|
284
|
-
if (batchDepth === 0) return false;
|
|
285
|
-
pendingSignals.add(signal2);
|
|
286
|
-
return true;
|
|
287
|
-
}
|
|
288
|
-
function isBatching() {
|
|
289
|
-
return batchDepth > 0;
|
|
290
|
-
}
|
|
291
|
-
function flushBatch() {
|
|
292
|
-
for (const signal2 of pendingSignals) {
|
|
293
|
-
queueSignalNotification(signal2);
|
|
294
|
-
}
|
|
295
|
-
pendingSignals.clear();
|
|
296
|
-
drainNotificationQueue();
|
|
297
|
-
}
|
|
298
|
-
|
|
299
|
-
// src/core/signals/signal.ts
|
|
300
|
-
var _g = globalThis;
|
|
301
|
-
var _isDev2 = isDev();
|
|
302
|
-
function signal(initial, options) {
|
|
303
|
-
const state = { value: initial };
|
|
304
|
-
const debugName = _isDev2 ? options?.name : void 0;
|
|
305
|
-
const equalsFn = options?.equals;
|
|
306
|
-
if (debugName) {
|
|
307
|
-
state.__name = debugName;
|
|
308
|
-
}
|
|
309
|
-
function get() {
|
|
310
|
-
recordDependency(state);
|
|
311
|
-
return state.value;
|
|
312
|
-
}
|
|
313
|
-
get.__signal = state;
|
|
314
|
-
if (debugName) get.__name = debugName;
|
|
315
|
-
function set(next) {
|
|
316
|
-
const newValue = typeof next === "function" ? next(state.value) : next;
|
|
317
|
-
if (equalsFn ? equalsFn(state.value, newValue) : Object.is(newValue, state.value)) return;
|
|
318
|
-
if (_isDev2) {
|
|
319
|
-
const oldValue = state.value;
|
|
320
|
-
state.value = newValue;
|
|
321
|
-
const hook = _g.__SIBU_DEVTOOLS_GLOBAL_HOOK__;
|
|
322
|
-
if (hook) hook.emit("signal:update", { signal: state, name: debugName, oldValue, newValue });
|
|
323
|
-
} else {
|
|
324
|
-
state.value = newValue;
|
|
325
|
-
}
|
|
326
|
-
if (!enqueueBatchedSignal(state)) {
|
|
327
|
-
notifySubscribers(state);
|
|
328
|
-
}
|
|
329
|
-
}
|
|
330
|
-
if (_isDev2) {
|
|
331
|
-
const hook = _g.__SIBU_DEVTOOLS_GLOBAL_HOOK__;
|
|
332
|
-
if (hook) hook.emit("signal:create", { signal: state, name: debugName, getter: get, initial });
|
|
333
|
-
}
|
|
334
|
-
return [get, set];
|
|
335
|
-
}
|
|
336
|
-
|
|
337
|
-
export {
|
|
338
|
-
trackingSuspended,
|
|
339
|
-
track,
|
|
340
|
-
untracked,
|
|
341
|
-
recordDependency,
|
|
342
|
-
notifySubscribers,
|
|
343
|
-
batch,
|
|
344
|
-
enqueueBatchedSignal,
|
|
345
|
-
isBatching,
|
|
346
|
-
signal
|
|
347
|
-
};
|