silvery 0.21.0 → 0.23.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 +1 -1
- package/dist/{Text-Lq0dmj8-.mjs → Text-Ci6UCSTL.mjs} +46 -48
- package/dist/Text-Ci6UCSTL.mjs.map +1 -0
- package/dist/{render-string-DkQacASz.mjs → ag-q9lRlKlt.mjs} +5322 -4259
- package/dist/ag-q9lRlKlt.mjs.map +1 -0
- package/dist/{animation-ZMN2_XKv.mjs → animation-CZ4x2R7C.mjs} +1 -1
- package/dist/{animation-ZMN2_XKv.mjs.map → animation-CZ4x2R7C.mjs.map} +1 -1
- package/dist/{ansi-D1KQMAbf.mjs → ansi-CLmIMnop.mjs} +1 -1
- package/dist/{ansi-D1KQMAbf.mjs.map → ansi-CLmIMnop.mjs.map} +1 -1
- package/dist/{ansi-2Xn0yatP.d.mts → ansi-zmNzgkPB.d.mts} +1 -1
- package/dist/{ansi-2Xn0yatP.d.mts.map → ansi-zmNzgkPB.d.mts.map} +1 -1
- package/dist/{backend-B-WYLUib.mjs → backend-DSiSIc-h.mjs} +2 -2
- package/dist/{backend-B-WYLUib.mjs.map → backend-DSiSIc-h.mjs.map} +1 -1
- package/dist/chain-bridge-CkYcMxlq.mjs +4149 -0
- package/dist/chain-bridge-CkYcMxlq.mjs.map +1 -0
- package/dist/{chunk-BSw8zbkd.mjs → chunk-BEJ448es.mjs} +1 -3
- package/dist/cli-VNqUKlXw.mjs +4 -0
- package/dist/{context-BU5LkkIy.mjs → context-CEhuD1R_.mjs} +1 -1
- package/dist/{context-BU5LkkIy.mjs.map → context-CEhuD1R_.mjs.map} +1 -1
- package/dist/devtools-BF4IMumr.mjs +2 -0
- package/dist/{devtools-DcQjgyjL.mjs → devtools-td2AjFwc.mjs} +5 -5
- package/dist/{devtools-DcQjgyjL.mjs.map → devtools-td2AjFwc.mjs.map} +1 -1
- package/dist/{easing-BI-ASGMO.d.mts → easing-C5MrdO7V.d.mts} +1 -1
- package/dist/{easing-BI-ASGMO.d.mts.map → easing-C5MrdO7V.d.mts.map} +1 -1
- package/dist/{eta-CJlGH06n.mjs → eta-BwYWEjfS.mjs} +1 -1
- package/dist/{eta-CJlGH06n.mjs.map → eta-BwYWEjfS.mjs.map} +1 -1
- package/dist/{flexily-zero-adapter-C4lW_Ov5.mjs → flexily-zero-adapter-DktX3HsX.mjs} +1 -1
- package/dist/{flexily-zero-adapter-C3Vj0fPt.mjs → flexily-zero-adapter-VoBGHG14.mjs} +1 -1
- package/dist/{flexily-zero-adapter-C3Vj0fPt.mjs.map → flexily-zero-adapter-VoBGHG14.mjs.map} +1 -1
- package/dist/hit-registry-D_nxOivS.d.mts +71 -0
- package/dist/hit-registry-D_nxOivS.d.mts.map +1 -0
- package/dist/{UPNG-DosRPdF4.mjs → image-CIF75xMr.mjs} +891 -6
- package/dist/image-CIF75xMr.mjs.map +1 -0
- package/dist/{index-CSQf13CI.d.mts → index-377zdPLP.d.mts} +35 -12
- package/dist/index-377zdPLP.d.mts.map +1 -0
- package/dist/{index-Cl9KKjQ_.d.mts → index-BcSr0RAQ.d.mts} +8670 -10659
- package/dist/index-BcSr0RAQ.d.mts.map +1 -0
- package/dist/{index-XbNrPhWl.d.mts → index-DLnpxDAm.d.mts} +2 -2
- package/dist/{index-XbNrPhWl.d.mts.map → index-DLnpxDAm.d.mts.map} +1 -1
- package/dist/{index-BUMxS65f.d.mts → index-DlNmckTq.d.mts} +2 -2
- package/dist/{index-BUMxS65f.d.mts.map → index-DlNmckTq.d.mts.map} +1 -1
- package/dist/index.d.mts +12 -8
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +18 -15
- package/dist/index.mjs.map +1 -1
- package/dist/{layout-engine-C2px0RJE.mjs → layout-engine-BgR58vL0.mjs} +3 -3
- package/dist/{layout-engine-C2px0RJE.mjs.map → layout-engine-BgR58vL0.mjs.map} +1 -1
- package/dist/{layout-engine-C07LEXWT.mjs → layout-engine-DNjTha8f.mjs} +1 -1
- package/dist/{layout-signals-Cnw6xk8Q.mjs → layout-signals-CGYbHmxy.mjs} +146 -23
- package/dist/layout-signals-CGYbHmxy.mjs.map +1 -0
- package/dist/{bound-term-0sPrrzH1.d.mts → mouse-events-B2z5tbsL.d.mts} +780 -379
- package/dist/mouse-events-B2z5tbsL.d.mts.map +1 -0
- package/dist/{mouse-events-Dki3ISIp.mjs → mouse-events-WQ2h-uqG.mjs} +45 -10
- package/dist/mouse-events-WQ2h-uqG.mjs.map +1 -0
- package/dist/{multi-progress-DHZ2xUT2.d.mts → multi-progress-BaEFfHKP.d.mts} +2 -2
- package/dist/{multi-progress-DHZ2xUT2.d.mts.map → multi-progress-BaEFfHKP.d.mts.map} +1 -1
- package/dist/{multi-progress-CIRjrzma.mjs → multi-progress-zCWHEm9P.mjs} +3 -3
- package/dist/{multi-progress-CIRjrzma.mjs.map → multi-progress-zCWHEm9P.mjs.map} +1 -1
- package/dist/{node-CjM5Rt-M.mjs → node-CJ3J_rW-.mjs} +1 -1
- package/dist/{node-CjM5Rt-M.mjs.map → node-CJ3J_rW-.mjs.map} +1 -1
- package/dist/{progress-DB_Xo071.mjs → progress-6vJ7nxUg.mjs} +4 -4
- package/dist/{progress-DB_Xo071.mjs.map → progress-6vJ7nxUg.mjs.map} +1 -1
- package/dist/{progress-bar-oJwq22CR.mjs → progress-bar-BlFNsZL8.mjs} +4 -4
- package/dist/{progress-bar-oJwq22CR.mjs.map → progress-bar-BlFNsZL8.mjs.map} +1 -1
- package/dist/{reconciler-DldIJB93.mjs → reconciler--_-biN23.mjs} +190 -134
- package/dist/reconciler--_-biN23.mjs.map +1 -0
- package/dist/{render-string-BcoCpjCB.mjs → render-string-DaghHpLN.mjs} +1 -1
- package/dist/render-string-DtHZP0cU.mjs +215 -0
- package/dist/render-string-DtHZP0cU.mjs.map +1 -0
- package/dist/runtime.d.mts +4 -3
- package/dist/runtime.mjs +4 -3
- package/dist/schemes-DWQPxXAi.mjs +2516 -0
- package/dist/{schemes-JjNp4aSl.mjs.map → schemes-DWQPxXAi.mjs.map} +1 -1
- package/dist/{spinner-D9lrHr8s.mjs → spinner-B50hILqx.mjs} +19 -4
- package/dist/{spinner-D9lrHr8s.mjs.map → spinner-B50hILqx.mjs.map} +1 -1
- package/dist/{spinner-CZINHpkV.d.mts → spinner-DN10UfF0.d.mts} +2 -2
- package/dist/{spinner-CZINHpkV.d.mts.map → spinner-DN10UfF0.d.mts.map} +1 -1
- package/dist/{src-BNTToU7l.mjs → src-B8lf1kiR.mjs} +1507 -1166
- package/dist/src-B8lf1kiR.mjs.map +1 -0
- package/dist/{src-5w9QR6_8.mjs → src-BOLdi3WG.mjs} +105 -237
- package/dist/src-BOLdi3WG.mjs.map +1 -0
- package/dist/{src-BR4xNwdG.mjs → src-BXeTHHlL.mjs} +20240 -25437
- package/dist/src-BXeTHHlL.mjs.map +1 -0
- package/dist/{src-DKp-_OFG.mjs → src-BqeBFB3X.mjs} +90 -47
- package/dist/src-BqeBFB3X.mjs.map +1 -0
- package/dist/src-DbqcSrhy.mjs +3901 -0
- package/dist/src-DbqcSrhy.mjs.map +1 -0
- package/dist/{steps-Bp2uNqnn.d.mts → steps-B2kBmFpb.d.mts} +1 -1
- package/dist/{steps-Bp2uNqnn.d.mts.map → steps-B2kBmFpb.d.mts.map} +1 -1
- package/dist/{svg-Cz0UXcDj.mjs → svg-NmV9dgB9.mjs} +1 -1
- package/dist/{svg-Cz0UXcDj.mjs.map → svg-NmV9dgB9.mjs.map} +1 -1
- package/dist/{svg-g1D6ErwR.d.mts → svg-VUr78l5d.d.mts} +1 -1
- package/dist/{svg-g1D6ErwR.d.mts.map → svg-VUr78l5d.d.mts.map} +1 -1
- package/dist/term.d.mts +2 -2
- package/dist/term.mjs +3 -8
- package/dist/test.d.mts +673 -0
- package/dist/test.d.mts.map +1 -0
- package/dist/test.mjs +2829 -0
- package/dist/test.mjs.map +1 -0
- package/dist/theme.d.mts +2 -2
- package/dist/theme.d.mts.map +1 -1
- package/dist/theme.mjs +3 -8
- package/dist/{types-kt_fKR37.d.mts → types-D_E0FbqA.d.mts} +1 -1
- package/dist/{types-kt_fKR37.d.mts.map → types-D_E0FbqA.d.mts.map} +1 -1
- package/dist/ui/animation.d.mts +2 -2
- package/dist/ui/animation.mjs +1 -1
- package/dist/ui/ansi.d.mts +1 -1
- package/dist/ui/ansi.mjs +1 -1
- package/dist/ui/cli.d.mts +3 -3
- package/dist/ui/cli.mjs +5 -5
- package/dist/ui/image.d.mts +1 -1
- package/dist/ui/image.mjs +1 -1
- package/dist/ui/progress.d.mts +4 -4
- package/dist/ui/progress.mjs +4 -4
- package/dist/ui/react.d.mts +1 -1
- package/dist/ui/react.mjs +2 -2
- package/dist/ui/recording-chrome-react.d.mts +1 -1
- package/dist/ui/recording-chrome-react.mjs +2 -2
- package/dist/ui/recording-chrome.d.mts +1 -1
- package/dist/ui/recording-chrome.mjs +1 -1
- package/dist/ui/utils.mjs +1 -1
- package/dist/ui/wrappers.d.mts +2 -2
- package/dist/ui/wrappers.mjs +1 -1
- package/dist/ui.d.mts +6 -6
- package/dist/ui.mjs +7 -7
- package/dist/unicode-CxyxVGmB.mjs +11077 -0
- package/dist/unicode-CxyxVGmB.mjs.map +1 -0
- package/dist/{useLatest-DRDDVwjh.d.mts → useLatest-UOvWy0ZW.d.mts} +2 -2
- package/dist/{useLatest-DRDDVwjh.d.mts.map → useLatest-UOvWy0ZW.d.mts.map} +1 -1
- package/dist/useLayout-D5cE8OCI.mjs +424 -0
- package/dist/useLayout-D5cE8OCI.mjs.map +1 -0
- package/dist/{with-text-input-YeohVLeo.d.mts → with-text-input-DLoSCBrm.d.mts} +3 -3
- package/dist/{with-text-input-YeohVLeo.d.mts.map → with-text-input-DLoSCBrm.d.mts.map} +1 -1
- package/dist/wrap-measurer-registration-IV2HtcCd.d.mts +3106 -0
- package/dist/wrap-measurer-registration-IV2HtcCd.d.mts.map +1 -0
- package/dist/{wrapper-C70ATkVv.mjs → wrapper-CD29afOs.mjs} +59 -17
- package/dist/wrapper-CD29afOs.mjs.map +1 -0
- package/dist/{wrappers-BCUYITrY.mjs → wrappers-CInBJm44.mjs} +18 -8
- package/dist/wrappers-CInBJm44.mjs.map +1 -0
- package/dist/{yoga-adapter-BnZX1PAY.mjs → yoga-adapter-9uab5Qn-.mjs} +2 -2
- package/dist/{yoga-adapter-BnZX1PAY.mjs.map → yoga-adapter-9uab5Qn-.mjs.map} +1 -1
- package/dist/yoga-adapter-yqTl1aXK.mjs +2 -0
- package/package.json +59 -14
- package/dist/Text-Lq0dmj8-.mjs.map +0 -1
- package/dist/UPNG-Bo33r8rA.mjs +0 -3
- package/dist/UPNG-DosRPdF4.mjs.map +0 -1
- package/dist/__vite-browser-external-2447137e-D_JM6skp.mjs +0 -6
- package/dist/__vite-browser-external-2447137e-D_JM6skp.mjs.map +0 -1
- package/dist/ansi-yC4RyBNY.mjs +0 -22441
- package/dist/ansi-yC4RyBNY.mjs.map +0 -1
- package/dist/apng-CR08rIaH.mjs +0 -58
- package/dist/apng-CR08rIaH.mjs.map +0 -1
- package/dist/apng-DaHfVaVI.mjs +0 -3
- package/dist/assets/resvgjs.darwin-arm64-BtufyGW1.node +0 -0
- package/dist/assets/skia.darwin-arm64-DQs5sT6N.node +0 -0
- package/dist/backends-CUtan80W.mjs +0 -3
- package/dist/backends-DIVYzKqd.mjs +0 -1083
- package/dist/backends-DIVYzKqd.mjs.map +0 -1
- package/dist/bound-term-0sPrrzH1.d.mts.map +0 -1
- package/dist/canvas-1v7dPT-_.mjs +0 -3
- package/dist/canvas-CSuPOMNt.mjs +0 -1442
- package/dist/canvas-CSuPOMNt.mjs.map +0 -1
- package/dist/cli-dvo0r2fs.mjs +0 -4
- package/dist/compare-CQodSH4G.mjs +0 -376
- package/dist/compare-CQodSH4G.mjs.map +0 -1
- package/dist/compare-DHlcxEYA.mjs +0 -3
- package/dist/devtools-CJdt5H0X.mjs +0 -2
- package/dist/fonts-BFmhXDv7.mjs +0 -88
- package/dist/fonts-BFmhXDv7.mjs.map +0 -1
- package/dist/gif-C_AjaT9d.mjs +0 -188
- package/dist/gif-C_AjaT9d.mjs.map +0 -1
- package/dist/gif-DaC4XrxA.mjs +0 -3
- package/dist/gifenc-BOUT-KFB.mjs +0 -730
- package/dist/gifenc-BOUT-KFB.mjs.map +0 -1
- package/dist/image-C2Birh2x.mjs +0 -1252
- package/dist/image-C2Birh2x.mjs.map +0 -1
- package/dist/index-CSQf13CI.d.mts.map +0 -1
- package/dist/index-Cl9KKjQ_.d.mts.map +0 -1
- package/dist/key-mapping-CS-YD_cD.mjs +0 -132
- package/dist/key-mapping-CS-YD_cD.mjs.map +0 -1
- package/dist/key-mapping-Yn-Jgrij.mjs +0 -3
- package/dist/layout-signals-Cnw6xk8Q.mjs.map +0 -1
- package/dist/mouse-events-Dki3ISIp.mjs.map +0 -1
- package/dist/playwright-D5YiZcNS.mjs +0 -76397
- package/dist/playwright-D5YiZcNS.mjs.map +0 -1
- package/dist/png-codec-Dp84742B.mjs +0 -36
- package/dist/png-codec-Dp84742B.mjs.map +0 -1
- package/dist/png-codec-QwOtJ8Zs.mjs +0 -3
- package/dist/rasterizer-BRXrDdWx.mjs +0 -3
- package/dist/rasterizer-CpEhJvdR.mjs +0 -296
- package/dist/rasterizer-CpEhJvdR.mjs.map +0 -1
- package/dist/reconciler-DldIJB93.mjs.map +0 -1
- package/dist/render-string-DkQacASz.mjs.map +0 -1
- package/dist/resvg-js-DkOndZI3.mjs +0 -203
- package/dist/resvg-js-DkOndZI3.mjs.map +0 -1
- package/dist/schemes-JjNp4aSl.mjs +0 -2611
- package/dist/src-5w9QR6_8.mjs.map +0 -1
- package/dist/src-BNTToU7l.mjs.map +0 -1
- package/dist/src-BR4xNwdG.mjs.map +0 -1
- package/dist/src-DKp-_OFG.mjs.map +0 -1
- package/dist/src-bt8wSrfJ.mjs +0 -258
- package/dist/src-bt8wSrfJ.mjs.map +0 -1
- package/dist/src-e33Y6kNJ.mjs +0 -3
- package/dist/src-iDwu25UD.mjs +0 -1814
- package/dist/src-iDwu25UD.mjs.map +0 -1
- package/dist/svg-15lZZzxq.mjs +0 -486
- package/dist/svg-15lZZzxq.mjs.map +0 -1
- package/dist/svg-DY72a4HK.mjs +0 -3
- package/dist/term.mjs.map +0 -1
- package/dist/theme.mjs.map +0 -1
- package/dist/ui/display.d.mts +0 -35
- package/dist/ui/display.d.mts.map +0 -1
- package/dist/ui/display.mjs +0 -123
- package/dist/ui/display.mjs.map +0 -1
- package/dist/ui/input.d.mts +0 -184
- package/dist/ui/input.d.mts.map +0 -1
- package/dist/ui/input.mjs +0 -285
- package/dist/ui/input.mjs.map +0 -1
- package/dist/wrapper-C70ATkVv.mjs.map +0 -1
- package/dist/wrappers-BCUYITrY.mjs.map +0 -1
- package/dist/yoga-adapter-DxgsQ_gg.mjs +0 -2
- package/dist/zipBundle-3nqeDRtm.mjs +0 -3
- package/dist/zipBundle-VNAYFmqJ.mjs +0 -2003
- package/dist/zipBundle-VNAYFmqJ.mjs.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
//#region ../../node_modules/.bun/alien-signals@3.1
|
|
1
|
+
//#region ../../node_modules/.bun/alien-signals@3.2.1/node_modules/alien-signals/esm/system.mjs
|
|
2
2
|
function createReactiveSystem({ update, notify, unwatched }) {
|
|
3
3
|
return {
|
|
4
4
|
link,
|
|
@@ -34,11 +34,7 @@ function createReactiveSystem({ update, notify, unwatched }) {
|
|
|
34
34
|
else dep.subs = newLink;
|
|
35
35
|
}
|
|
36
36
|
function unlink(link, sub = link.sub) {
|
|
37
|
-
const dep = link
|
|
38
|
-
const prevDep = link.prevDep;
|
|
39
|
-
const nextDep = link.nextDep;
|
|
40
|
-
const nextSub = link.nextSub;
|
|
41
|
-
const prevSub = link.prevSub;
|
|
37
|
+
const { dep, prevDep, nextDep, nextSub, prevSub } = link;
|
|
42
38
|
if (nextDep !== void 0) nextDep.prevDep = prevDep;
|
|
43
39
|
else sub.depsTail = prevDep;
|
|
44
40
|
if (prevDep !== void 0) prevDep.nextDep = nextDep;
|
|
@@ -49,14 +45,16 @@ function createReactiveSystem({ update, notify, unwatched }) {
|
|
|
49
45
|
else if ((dep.subs = nextSub) === void 0) unwatched(dep);
|
|
50
46
|
return nextDep;
|
|
51
47
|
}
|
|
52
|
-
function propagate(link) {
|
|
48
|
+
function propagate(link, innerWrite) {
|
|
53
49
|
let next = link.nextSub;
|
|
54
50
|
let stack;
|
|
55
51
|
top: do {
|
|
56
52
|
const sub = link.sub;
|
|
57
53
|
let flags = sub.flags;
|
|
58
|
-
if (!(flags & 60))
|
|
59
|
-
|
|
54
|
+
if (!(flags & 60)) {
|
|
55
|
+
sub.flags = flags | 32;
|
|
56
|
+
if (innerWrite) sub.flags |= 8;
|
|
57
|
+
} else if (!(flags & 12)) flags = 0;
|
|
60
58
|
else if (!(flags & 4)) sub.flags = flags & -9 | 32;
|
|
61
59
|
else if (!(flags & 48) && isValidLink(link, sub)) {
|
|
62
60
|
sub.flags = flags | 40;
|
|
@@ -101,13 +99,13 @@ function createReactiveSystem({ update, notify, unwatched }) {
|
|
|
101
99
|
const flags = dep.flags;
|
|
102
100
|
if (sub.flags & 16) dirty = true;
|
|
103
101
|
else if ((flags & 17) === 17) {
|
|
102
|
+
const subs = dep.subs;
|
|
104
103
|
if (update(dep)) {
|
|
105
|
-
const subs = dep.subs;
|
|
106
104
|
if (subs.nextSub !== void 0) shallowPropagate(subs);
|
|
107
105
|
dirty = true;
|
|
108
106
|
}
|
|
109
107
|
} else if ((flags & 33) === 33) {
|
|
110
|
-
|
|
108
|
+
stack = {
|
|
111
109
|
value: link,
|
|
112
110
|
prev: stack
|
|
113
111
|
};
|
|
@@ -124,15 +122,12 @@ function createReactiveSystem({ update, notify, unwatched }) {
|
|
|
124
122
|
}
|
|
125
123
|
}
|
|
126
124
|
while (checkDepth--) {
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
if (hasMultipleSubs) {
|
|
130
|
-
link = stack.value;
|
|
131
|
-
stack = stack.prev;
|
|
132
|
-
} else link = firstSub;
|
|
125
|
+
link = stack.value;
|
|
126
|
+
stack = stack.prev;
|
|
133
127
|
if (dirty) {
|
|
128
|
+
const subs = sub.subs;
|
|
134
129
|
if (update(sub)) {
|
|
135
|
-
if (
|
|
130
|
+
if (subs.nextSub !== void 0) shallowPropagate(subs);
|
|
136
131
|
sub = link.sub;
|
|
137
132
|
continue;
|
|
138
133
|
}
|
|
@@ -145,7 +140,7 @@ function createReactiveSystem({ update, notify, unwatched }) {
|
|
|
145
140
|
continue top;
|
|
146
141
|
}
|
|
147
142
|
}
|
|
148
|
-
return dirty;
|
|
143
|
+
return dirty && !!sub.flags;
|
|
149
144
|
} while (true);
|
|
150
145
|
}
|
|
151
146
|
function shallowPropagate(link) {
|
|
@@ -168,16 +163,20 @@ function createReactiveSystem({ update, notify, unwatched }) {
|
|
|
168
163
|
}
|
|
169
164
|
}
|
|
170
165
|
//#endregion
|
|
171
|
-
//#region ../../node_modules/.bun/alien-signals@3.1
|
|
166
|
+
//#region ../../node_modules/.bun/alien-signals@3.2.1/node_modules/alien-signals/esm/index.mjs
|
|
167
|
+
const HasChildEffect = 64;
|
|
172
168
|
let cycle = 0;
|
|
169
|
+
let runDepth = 0;
|
|
173
170
|
let notifyIndex = 0;
|
|
174
171
|
let queuedLength = 0;
|
|
175
172
|
let activeSub;
|
|
176
173
|
const queued = [];
|
|
177
174
|
const { link, unlink, propagate, checkDirty, shallowPropagate } = createReactiveSystem({
|
|
178
175
|
update(node) {
|
|
179
|
-
if (
|
|
180
|
-
|
|
176
|
+
if ("getter" in node) return updateComputed(node);
|
|
177
|
+
if ("currentValue" in node) return updateSignal(node);
|
|
178
|
+
node.flags = 1;
|
|
179
|
+
return true;
|
|
181
180
|
},
|
|
182
181
|
notify(effect) {
|
|
183
182
|
let insertIndex = queuedLength;
|
|
@@ -196,12 +195,13 @@ const { link, unlink, propagate, checkDirty, shallowPropagate } = createReactive
|
|
|
196
195
|
}
|
|
197
196
|
},
|
|
198
197
|
unwatched(node) {
|
|
199
|
-
if (
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
}
|
|
198
|
+
if ("getter" in node) {
|
|
199
|
+
if (node.depsTail !== void 0) {
|
|
200
|
+
node.flags = 17;
|
|
201
|
+
disposeAllDepsInReverse(node);
|
|
202
|
+
}
|
|
203
|
+
} else if ("currentValue" in node) {} else if ("fn" in node) effectOper.call(node);
|
|
204
|
+
else effectScopeOper.call(node);
|
|
205
205
|
}
|
|
206
206
|
});
|
|
207
207
|
function setActiveSub(sub) {
|
|
@@ -232,6 +232,7 @@ function computed(getter) {
|
|
|
232
232
|
function effect(fn) {
|
|
233
233
|
const e = {
|
|
234
234
|
fn,
|
|
235
|
+
cleanup: void 0,
|
|
235
236
|
subs: void 0,
|
|
236
237
|
subsTail: void 0,
|
|
237
238
|
deps: void 0,
|
|
@@ -239,21 +240,35 @@ function effect(fn) {
|
|
|
239
240
|
flags: 6
|
|
240
241
|
};
|
|
241
242
|
const prevSub = setActiveSub(e);
|
|
242
|
-
if (prevSub !== void 0)
|
|
243
|
+
if (prevSub !== void 0) {
|
|
244
|
+
link(e, prevSub, 0);
|
|
245
|
+
prevSub.flags |= HasChildEffect;
|
|
246
|
+
}
|
|
243
247
|
try {
|
|
244
|
-
|
|
248
|
+
++runDepth;
|
|
249
|
+
e.cleanup = e.fn();
|
|
245
250
|
} finally {
|
|
251
|
+
--runDepth;
|
|
246
252
|
activeSub = prevSub;
|
|
247
253
|
e.flags &= -5;
|
|
248
254
|
}
|
|
249
255
|
return effectOper.bind(e);
|
|
250
256
|
}
|
|
251
257
|
function updateComputed(c) {
|
|
252
|
-
|
|
258
|
+
if (c.flags & HasChildEffect) {
|
|
259
|
+
let link = c.depsTail;
|
|
260
|
+
while (link !== void 0) {
|
|
261
|
+
const prev = link.prevDep;
|
|
262
|
+
const dep = link.dep;
|
|
263
|
+
if (!("getter" in dep) && !("currentValue" in dep)) unlink(link, c);
|
|
264
|
+
link = prev;
|
|
265
|
+
}
|
|
266
|
+
}
|
|
253
267
|
c.depsTail = void 0;
|
|
254
268
|
c.flags = 5;
|
|
255
269
|
const prevSub = setActiveSub(c);
|
|
256
270
|
try {
|
|
271
|
+
++cycle;
|
|
257
272
|
const oldValue = c.value;
|
|
258
273
|
return oldValue !== (c.value = c.getter(oldValue));
|
|
259
274
|
} finally {
|
|
@@ -269,18 +284,33 @@ function updateSignal(s) {
|
|
|
269
284
|
function run(e) {
|
|
270
285
|
const flags = e.flags;
|
|
271
286
|
if (flags & 16 || flags & 32 && checkDirty(e.deps, e)) {
|
|
272
|
-
|
|
287
|
+
if (flags & HasChildEffect) {
|
|
288
|
+
let link = e.depsTail;
|
|
289
|
+
while (link !== void 0) {
|
|
290
|
+
const prev = link.prevDep;
|
|
291
|
+
const dep = link.dep;
|
|
292
|
+
if (!("getter" in dep) && !("currentValue" in dep)) unlink(link, e);
|
|
293
|
+
link = prev;
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
if (e.cleanup) {
|
|
297
|
+
runCleanup(e);
|
|
298
|
+
if (!e.flags) return;
|
|
299
|
+
}
|
|
273
300
|
e.depsTail = void 0;
|
|
274
301
|
e.flags = 6;
|
|
275
302
|
const prevSub = setActiveSub(e);
|
|
276
303
|
try {
|
|
277
|
-
|
|
304
|
+
++cycle;
|
|
305
|
+
++runDepth;
|
|
306
|
+
e.cleanup = e.fn();
|
|
278
307
|
} finally {
|
|
308
|
+
--runDepth;
|
|
279
309
|
activeSub = prevSub;
|
|
280
310
|
e.flags &= -5;
|
|
281
311
|
purgeDeps(e);
|
|
282
312
|
}
|
|
283
|
-
} else e.flags = 2;
|
|
313
|
+
} else if (e.deps !== void 0) e.flags = 2 | flags & HasChildEffect;
|
|
284
314
|
}
|
|
285
315
|
function flush() {
|
|
286
316
|
try {
|
|
@@ -326,7 +356,7 @@ function signalOper(...value) {
|
|
|
326
356
|
this.flags = 17;
|
|
327
357
|
const subs = this.subs;
|
|
328
358
|
if (subs !== void 0) {
|
|
329
|
-
propagate(subs);
|
|
359
|
+
propagate(subs, !!runDepth);
|
|
330
360
|
flush();
|
|
331
361
|
}
|
|
332
362
|
}
|
|
@@ -337,27 +367,40 @@ function signalOper(...value) {
|
|
|
337
367
|
if (subs !== void 0) shallowPropagate(subs);
|
|
338
368
|
}
|
|
339
369
|
}
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
if (sub.flags & 3) {
|
|
343
|
-
link(this, sub, cycle);
|
|
344
|
-
break;
|
|
345
|
-
}
|
|
346
|
-
sub = sub.subs?.sub;
|
|
347
|
-
}
|
|
370
|
+
const sub = activeSub;
|
|
371
|
+
if (sub !== void 0) link(this, sub, cycle);
|
|
348
372
|
return this.currentValue;
|
|
349
373
|
}
|
|
350
374
|
}
|
|
375
|
+
function runCleanup(e) {
|
|
376
|
+
const cleanup = e.cleanup;
|
|
377
|
+
e.cleanup = void 0;
|
|
378
|
+
const prevSub = activeSub;
|
|
379
|
+
activeSub = void 0;
|
|
380
|
+
try {
|
|
381
|
+
cleanup();
|
|
382
|
+
} finally {
|
|
383
|
+
activeSub = prevSub;
|
|
384
|
+
}
|
|
385
|
+
}
|
|
351
386
|
function effectOper() {
|
|
352
387
|
effectScopeOper.call(this);
|
|
388
|
+
if (this.cleanup) runCleanup(this);
|
|
353
389
|
}
|
|
354
390
|
function effectScopeOper() {
|
|
355
|
-
this.depsTail = void 0;
|
|
356
391
|
this.flags = 0;
|
|
357
|
-
|
|
392
|
+
disposeAllDepsInReverse(this);
|
|
358
393
|
const sub = this.subs;
|
|
359
394
|
if (sub !== void 0) unlink(sub);
|
|
360
395
|
}
|
|
396
|
+
function disposeAllDepsInReverse(sub) {
|
|
397
|
+
let link = sub.depsTail;
|
|
398
|
+
while (link !== void 0) {
|
|
399
|
+
const prev = link.prevDep;
|
|
400
|
+
unlink(link, sub);
|
|
401
|
+
link = prev;
|
|
402
|
+
}
|
|
403
|
+
}
|
|
361
404
|
function purgeDeps(sub) {
|
|
362
405
|
const depsTail = sub.depsTail;
|
|
363
406
|
let dep = depsTail !== void 0 ? depsTail.nextDep : sub.deps;
|
|
@@ -369,7 +412,7 @@ function purgeDeps(sub) {
|
|
|
369
412
|
* Subscribe to signal changes via an imperative callback.
|
|
370
413
|
*
|
|
371
414
|
* alien-signals' `effect()` runs once eagerly to establish dependencies,
|
|
372
|
-
* which means
|
|
415
|
+
* which means an `effect(() => { handler(sig()) })` fires with the seed
|
|
373
416
|
* value. `watch()` swallows that first fire and only calls `onChange` when
|
|
374
417
|
* the value actually changes — matching the old `.subscribe(handler)`
|
|
375
418
|
* semantic consumers often want.
|
|
@@ -405,4 +448,4 @@ function watch(read, onChange, opts = {}) {
|
|
|
405
448
|
//#endregion
|
|
406
449
|
export { signal as i, computed as n, effect as r, watch as t };
|
|
407
450
|
|
|
408
|
-
//# sourceMappingURL=src-
|
|
451
|
+
//# sourceMappingURL=src-BqeBFB3X.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"src-BqeBFB3X.mjs","names":[],"sources":["../../../node_modules/.bun/alien-signals@3.2.1/node_modules/alien-signals/esm/system.mjs","../../../node_modules/.bun/alien-signals@3.2.1/node_modules/alien-signals/esm/index.mjs","../packages/signals/src/index.ts"],"sourcesContent":["export const ReactiveFlags = {\n None: 0,\n Mutable: 1,\n Watching: 2,\n RecursedCheck: 4,\n Recursed: 8,\n Dirty: 16,\n Pending: 32,\n};\nexport function createReactiveSystem({ update, notify, unwatched, }) {\n return {\n link,\n unlink,\n propagate,\n checkDirty,\n shallowPropagate,\n };\n function link(dep, sub, version) {\n const prevDep = sub.depsTail;\n if (prevDep !== undefined && prevDep.dep === dep) {\n return;\n }\n const nextDep = prevDep !== undefined ? prevDep.nextDep : sub.deps;\n if (nextDep !== undefined && nextDep.dep === dep) {\n nextDep.version = version;\n sub.depsTail = nextDep;\n return;\n }\n const prevSub = dep.subsTail;\n if (prevSub !== undefined && prevSub.version === version && prevSub.sub === sub) {\n return;\n }\n const newLink = sub.depsTail\n = dep.subsTail\n = {\n version,\n dep,\n sub,\n prevDep,\n nextDep,\n prevSub,\n nextSub: undefined,\n };\n if (nextDep !== undefined) {\n nextDep.prevDep = newLink;\n }\n if (prevDep !== undefined) {\n prevDep.nextDep = newLink;\n }\n else {\n sub.deps = newLink;\n }\n if (prevSub !== undefined) {\n prevSub.nextSub = newLink;\n }\n else {\n dep.subs = newLink;\n }\n }\n function unlink(link, sub = link.sub) {\n const { dep, prevDep, nextDep, nextSub, prevSub } = link;\n if (nextDep !== undefined) {\n nextDep.prevDep = prevDep;\n }\n else {\n sub.depsTail = prevDep;\n }\n if (prevDep !== undefined) {\n prevDep.nextDep = nextDep;\n }\n else {\n sub.deps = nextDep;\n }\n if (nextSub !== undefined) {\n nextSub.prevSub = prevSub;\n }\n else {\n dep.subsTail = prevSub;\n }\n if (prevSub !== undefined) {\n prevSub.nextSub = nextSub;\n }\n else if ((dep.subs = nextSub) === undefined) {\n unwatched(dep);\n }\n return nextDep;\n }\n function propagate(link, innerWrite) {\n let next = link.nextSub;\n let stack;\n top: do {\n const sub = link.sub;\n let flags = sub.flags;\n if (!(flags & (4 | 8 | 16 | 32))) {\n sub.flags = flags | 32;\n if (innerWrite) {\n sub.flags |= 8;\n }\n }\n else if (!(flags & (4 | 8))) {\n flags = 0;\n }\n else if (!(flags & 4)) {\n sub.flags = (flags & ~8) | 32;\n }\n else if (!(flags & (16 | 32)) && isValidLink(link, sub)) {\n sub.flags = flags | (8 | 32);\n flags &= 1;\n }\n else {\n flags = 0;\n }\n if (flags & 2) {\n notify(sub);\n }\n if (flags & 1) {\n const subSubs = sub.subs;\n if (subSubs !== undefined) {\n const nextSub = (link = subSubs).nextSub;\n if (nextSub !== undefined) {\n stack = { value: next, prev: stack };\n next = nextSub;\n }\n continue;\n }\n }\n if ((link = next) !== undefined) {\n next = link.nextSub;\n continue;\n }\n while (stack !== undefined) {\n link = stack.value;\n stack = stack.prev;\n if (link !== undefined) {\n next = link.nextSub;\n continue top;\n }\n }\n break;\n } while (true);\n }\n function checkDirty(link, sub) {\n let stack;\n let checkDepth = 0;\n let dirty = false;\n top: do {\n const dep = link.dep;\n const flags = dep.flags;\n if (sub.flags & 16) {\n dirty = true;\n }\n else if ((flags & (1 | 16)) === (1 | 16)) {\n const subs = dep.subs;\n if (update(dep)) {\n if (subs.nextSub !== undefined) {\n shallowPropagate(subs);\n }\n dirty = true;\n }\n }\n else if ((flags & (1 | 32)) === (1 | 32)) {\n stack = { value: link, prev: stack };\n link = dep.deps;\n sub = dep;\n ++checkDepth;\n continue;\n }\n if (!dirty) {\n const nextDep = link.nextDep;\n if (nextDep !== undefined) {\n link = nextDep;\n continue;\n }\n }\n while (checkDepth--) {\n link = stack.value;\n stack = stack.prev;\n if (dirty) {\n const subs = sub.subs;\n if (update(sub)) {\n if (subs.nextSub !== undefined) {\n shallowPropagate(subs);\n }\n sub = link.sub;\n continue;\n }\n dirty = false;\n }\n else {\n sub.flags &= ~32;\n }\n sub = link.sub;\n const nextDep = link.nextDep;\n if (nextDep !== undefined) {\n link = nextDep;\n continue top;\n }\n }\n return dirty && !!sub.flags;\n } while (true);\n }\n function shallowPropagate(link) {\n do {\n const sub = link.sub;\n const flags = sub.flags;\n if ((flags & (32 | 16)) === 32) {\n sub.flags = flags | 16;\n if ((flags & (2 | 4)) === 2) {\n notify(sub);\n }\n }\n } while ((link = link.nextSub) !== undefined);\n }\n function isValidLink(checkLink, sub) {\n let link = sub.depsTail;\n while (link !== undefined) {\n if (link === checkLink) {\n return true;\n }\n link = link.prevDep;\n }\n return false;\n }\n}\n","import { createReactiveSystem } from './system.mjs';\nconst HasChildEffect = 64;\nlet cycle = 0;\nlet runDepth = 0;\nlet batchDepth = 0;\nlet notifyIndex = 0;\nlet queuedLength = 0;\nlet activeSub;\nconst queued = [];\nconst { link, unlink, propagate, checkDirty, shallowPropagate, } = createReactiveSystem({\n update(node) {\n if ('getter' in node) {\n return updateComputed(node);\n }\n if ('currentValue' in node) {\n return updateSignal(node);\n }\n node.flags = 1;\n return true;\n },\n notify(effect) {\n let insertIndex = queuedLength;\n let firstInsertedIndex = insertIndex;\n do {\n queued[insertIndex++] = effect;\n effect.flags &= ~2;\n effect = effect.subs?.sub;\n if (effect === undefined || !(effect.flags & 2)) {\n break;\n }\n } while (true);\n queuedLength = insertIndex;\n while (firstInsertedIndex < --insertIndex) {\n const left = queued[firstInsertedIndex];\n queued[firstInsertedIndex++] = queued[insertIndex];\n queued[insertIndex] = left;\n }\n },\n unwatched(node) {\n if ('getter' in node) {\n if (node.depsTail !== undefined) {\n node.flags = 1 | 16;\n disposeAllDepsInReverse(node);\n }\n }\n else if ('currentValue' in node) {\n }\n else if ('fn' in node) {\n effectOper.call(node);\n }\n else {\n effectScopeOper.call(node);\n }\n },\n});\nexport function getActiveSub() {\n return activeSub;\n}\nexport function setActiveSub(sub) {\n const prevSub = activeSub;\n activeSub = sub;\n return prevSub;\n}\nexport function getBatchDepth() {\n return batchDepth;\n}\nexport function startBatch() {\n ++batchDepth;\n}\nexport function endBatch() {\n if (!--batchDepth) {\n flush();\n }\n}\nexport function isSignal(fn) {\n return fn.name === 'bound ' + signalOper.name;\n}\nexport function isComputed(fn) {\n return fn.name === 'bound ' + computedOper.name;\n}\nexport function isEffect(fn) {\n return fn.name === 'bound ' + effectOper.name;\n}\nexport function isEffectScope(fn) {\n return fn.name === 'bound ' + effectScopeOper.name;\n}\nexport function signal(initialValue) {\n return signalOper.bind({\n currentValue: initialValue,\n pendingValue: initialValue,\n subs: undefined,\n subsTail: undefined,\n flags: 1,\n });\n}\nexport function computed(getter) {\n return computedOper.bind({\n value: undefined,\n subs: undefined,\n subsTail: undefined,\n deps: undefined,\n depsTail: undefined,\n flags: 0,\n getter: getter,\n });\n}\nexport function effect(fn) {\n const e = {\n fn,\n cleanup: undefined,\n subs: undefined,\n subsTail: undefined,\n deps: undefined,\n depsTail: undefined,\n flags: 2 | 4,\n };\n const prevSub = setActiveSub(e);\n if (prevSub !== undefined) {\n link(e, prevSub, 0);\n prevSub.flags |= HasChildEffect;\n }\n try {\n ++runDepth;\n e.cleanup = e.fn();\n }\n finally {\n --runDepth;\n activeSub = prevSub;\n e.flags &= ~4;\n }\n return effectOper.bind(e);\n}\nexport function effectScope(fn) {\n const e = {\n deps: undefined,\n depsTail: undefined,\n subs: undefined,\n subsTail: undefined,\n flags: 1,\n };\n const prevSub = setActiveSub(e);\n if (prevSub !== undefined) {\n link(e, prevSub, 0);\n prevSub.flags |= HasChildEffect;\n }\n try {\n fn();\n }\n finally {\n activeSub = prevSub;\n }\n return effectScopeOper.bind(e);\n}\nexport function trigger(fn) {\n const sub = {\n deps: undefined,\n depsTail: undefined,\n flags: 2,\n };\n const prevSub = setActiveSub(sub);\n try {\n fn();\n }\n finally {\n activeSub = prevSub;\n sub.flags = 0;\n let link = sub.deps;\n while (link !== undefined) {\n const dep = link.dep;\n link = unlink(link, sub);\n const subs = dep.subs;\n if (subs !== undefined) {\n propagate(subs, !!runDepth);\n shallowPropagate(subs);\n }\n }\n if (!batchDepth) {\n flush();\n }\n }\n}\nfunction updateComputed(c) {\n if (c.flags & HasChildEffect) {\n let link = c.depsTail;\n while (link !== undefined) {\n const prev = link.prevDep;\n const dep = link.dep;\n if (!('getter' in dep) && !('currentValue' in dep)) {\n unlink(link, c);\n }\n link = prev;\n }\n }\n c.depsTail = undefined;\n c.flags = 1 | 4;\n const prevSub = setActiveSub(c);\n try {\n ++cycle;\n const oldValue = c.value;\n return oldValue !== (c.value = c.getter(oldValue));\n }\n finally {\n activeSub = prevSub;\n c.flags &= ~4;\n purgeDeps(c);\n }\n}\nfunction updateSignal(s) {\n s.flags = 1;\n return s.currentValue !== (s.currentValue = s.pendingValue);\n}\nfunction run(e) {\n const flags = e.flags;\n if (flags & 16\n || (flags & 32\n && checkDirty(e.deps, e))) {\n if (flags & HasChildEffect) {\n let link = e.depsTail;\n while (link !== undefined) {\n const prev = link.prevDep;\n const dep = link.dep;\n if (!('getter' in dep) && !('currentValue' in dep)) {\n unlink(link, e);\n }\n link = prev;\n }\n }\n if (e.cleanup) {\n runCleanup(e);\n if (!e.flags) {\n return;\n }\n }\n e.depsTail = undefined;\n e.flags = 2 | 4;\n const prevSub = setActiveSub(e);\n try {\n ++cycle;\n ++runDepth;\n e.cleanup = e.fn();\n }\n finally {\n --runDepth;\n activeSub = prevSub;\n e.flags &= ~4;\n purgeDeps(e);\n }\n }\n else if (e.deps !== undefined) {\n e.flags = 2 | (flags & HasChildEffect);\n }\n}\nfunction flush() {\n try {\n while (notifyIndex < queuedLength) {\n const effect = queued[notifyIndex];\n queued[notifyIndex++] = undefined;\n run(effect);\n }\n }\n finally {\n while (notifyIndex < queuedLength) {\n const effect = queued[notifyIndex];\n queued[notifyIndex++] = undefined;\n effect.flags |= 2 | 8;\n }\n notifyIndex = 0;\n queuedLength = 0;\n }\n}\nfunction computedOper() {\n const flags = this.flags;\n if (flags & 16\n || (flags & 32\n && (checkDirty(this.deps, this)\n || (this.flags = flags & ~32, false)))) {\n if (updateComputed(this)) {\n const subs = this.subs;\n if (subs !== undefined) {\n shallowPropagate(subs);\n }\n }\n }\n else if (!flags) {\n this.flags = 1 | 4;\n const prevSub = setActiveSub(this);\n try {\n this.value = this.getter();\n }\n finally {\n activeSub = prevSub;\n this.flags &= ~4;\n }\n }\n const sub = activeSub;\n if (sub !== undefined) {\n link(this, sub, cycle);\n }\n return this.value;\n}\nfunction signalOper(...value) {\n if (value.length) {\n if (this.pendingValue !== (this.pendingValue = value[0])) {\n this.flags = 1 | 16;\n const subs = this.subs;\n if (subs !== undefined) {\n propagate(subs, !!runDepth);\n if (!batchDepth) {\n flush();\n }\n }\n }\n }\n else {\n if (this.flags & 16) {\n if (updateSignal(this)) {\n const subs = this.subs;\n if (subs !== undefined) {\n shallowPropagate(subs);\n }\n }\n }\n const sub = activeSub;\n if (sub !== undefined) {\n link(this, sub, cycle);\n }\n return this.currentValue;\n }\n}\nfunction runCleanup(e) {\n const cleanup = e.cleanup;\n e.cleanup = undefined;\n const prevSub = activeSub;\n activeSub = undefined;\n try {\n cleanup();\n }\n finally {\n activeSub = prevSub;\n }\n}\nfunction effectOper() {\n effectScopeOper.call(this);\n if (this.cleanup) {\n runCleanup(this);\n }\n}\nfunction effectScopeOper() {\n this.flags = 0;\n disposeAllDepsInReverse(this);\n const sub = this.subs;\n if (sub !== undefined) {\n unlink(sub);\n }\n}\nfunction disposeAllDepsInReverse(sub) {\n let link = sub.depsTail;\n while (link !== undefined) {\n const prev = link.prevDep;\n unlink(link, sub);\n link = prev;\n }\n}\nfunction purgeDeps(sub) {\n const depsTail = sub.depsTail;\n let dep = depsTail !== undefined ? depsTail.nextDep : sub.deps;\n while (dep !== undefined) {\n dep = unlink(dep, sub);\n }\n}\n","/**\n * @silvery/signals — Reactive signals for silvery.\n *\n * Thin wrapper around alien-signals providing:\n * - signal(value) — create a reactive value (call to read, call with arg to write)\n * - computed(fn) — derived reactive value that recomputes on dependency changes\n * - effect(fn) — side effect that re-runs when dependencies change\n * - effectScope(fn) — group effects for collective disposal\n * - batch(fn) — batch multiple signal updates into one notification\n * - watch(read, onChange) — change-only subscription (skips the seed fire)\n *\n * @packageDocumentation\n */\n\nexport {\n signal,\n computed,\n effect,\n effectScope,\n startBatch,\n endBatch,\n trigger,\n isSignal,\n isComputed,\n isEffect,\n isEffectScope,\n getActiveSub,\n setActiveSub,\n getBatchDepth,\n} from \"alien-signals\"\n\nimport { effect, startBatch, endBatch } from \"alien-signals\"\n\n/**\n * A reactive value — callable getter/setter.\n *\n * - `sig()` reads the current value (and subscribes the active effect/computed).\n * - `sig(next)` writes a new value; subscribers re-run only if `next !== current`.\n *\n * Matches the return shape of `signal<T>(initial)` from alien-signals, so any\n * `signal()` result is assignable to `Signal<T>`.\n */\nexport type Signal<T> = {\n (): T\n (value: T): void\n}\n\n/**\n * A read-only reactive value — callable getter that subscribes the active\n * effect/computed but cannot be written to. Matches the return shape of\n * `computed<T>(fn)` from alien-signals.\n */\nexport type ReadSignal<T> = () => T\n\n/** Batch multiple signal updates, notifying subscribers once at the end. */\nexport function batch(fn: () => void): void {\n startBatch()\n try {\n fn()\n } finally {\n endBatch()\n }\n}\n\n/**\n * Options for {@link watch}.\n */\nexport interface WatchOptions<T> {\n /** If true, fire `onChange` on the seed read with `(next, next)`. Default false (change-only). */\n immediate?: boolean\n /** Equality predicate — handler fires only when `equals(next, prev)` is false. Default `Object.is`. */\n equals?: (a: T, b: T) => boolean\n}\n\n/**\n * Subscribe to signal changes via an imperative callback.\n *\n * alien-signals' `effect()` runs once eagerly to establish dependencies,\n * which means an `effect(() => { handler(sig()) })` fires with the seed\n * value. `watch()` swallows that first fire and only calls `onChange` when\n * the value actually changes — matching the old `.subscribe(handler)`\n * semantic consumers often want.\n *\n * ```ts\n * const stop = watch(\n * () => size.snapshot(),\n * (next, prev) => { emit({ cols: next.cols, rows: next.rows }) },\n * )\n * // stop() to unsubscribe\n * ```\n *\n * Returns the effect's stop function.\n */\nexport function watch<T>(\n read: () => T,\n onChange: (next: T, prev: T) => void,\n opts: WatchOptions<T> = {},\n): () => void {\n const equals = opts.equals ?? Object.is\n let seeded = false\n let prev!: T\n return effect(() => {\n const next = read()\n if (!seeded) {\n seeded = true\n prev = next\n if (opts.immediate) onChange(next, next)\n return\n }\n if (equals(next, prev)) return\n const old = prev\n prev = next\n onChange(next, old)\n })\n}\n"],"x_google_ignoreList":[0,1],"mappings":"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"}
|