@toyz/loom 0.17.8 → 0.18.1
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/element/decorators.d.ts +29 -0
- package/dist/element/decorators.d.ts.map +1 -1
- package/dist/element/decorators.js +92 -1
- package/dist/element/decorators.js.map +1 -1
- package/dist/element/index.d.ts +1 -1
- package/dist/element/index.d.ts.map +1 -1
- package/dist/element/index.js +1 -1
- package/dist/element/index.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/store/decorators.d.ts.map +1 -1
- package/dist/store/decorators.js +12 -7
- package/dist/store/decorators.js.map +1 -1
- package/dist/store/index.d.ts +2 -0
- package/dist/store/index.d.ts.map +1 -1
- package/dist/store/index.js +2 -0
- package/dist/store/index.js.map +1 -1
- package/dist/store/reactive.d.ts +3 -0
- package/dist/store/reactive.d.ts.map +1 -1
- package/dist/store/reactive.js +27 -15
- package/dist/store/reactive.js.map +1 -1
- package/dist/store/signal.d.ts +174 -0
- package/dist/store/signal.d.ts.map +1 -0
- package/dist/store/signal.js +332 -0
- package/dist/store/signal.js.map +1 -0
- package/package.json +1 -1
|
@@ -47,4 +47,33 @@ export declare function queryAll<V>(selector: string): <This extends object>(_ta
|
|
|
47
47
|
* Multiple `@styles()` calls stack (all sheets are adopted).
|
|
48
48
|
*/
|
|
49
49
|
export declare function styles(...sheets: CSSStyleSheet[]): (value: Function, _context: ClassDecoratorContext) => void;
|
|
50
|
+
/**
|
|
51
|
+
* Dynamic scoped styles from a method. The method returns a CSS string
|
|
52
|
+
* that is adopted into the component's shadow root. When any @reactive
|
|
53
|
+
* or @store value read during the method changes, the styles are
|
|
54
|
+
* automatically re-evaluated and updated in-place.
|
|
55
|
+
*
|
|
56
|
+
* Use this for theme-reactive or state-dependent styles that need
|
|
57
|
+
* to go beyond CSS custom properties or inline styles.
|
|
58
|
+
*
|
|
59
|
+
* ```ts
|
|
60
|
+
* @component("themed-card")
|
|
61
|
+
* class ThemedCard extends LoomElement {
|
|
62
|
+
* @reactive accessor accent = "#a78bfa";
|
|
63
|
+
* @reactive accessor radius = 8;
|
|
64
|
+
*
|
|
65
|
+
* @css
|
|
66
|
+
* dynamicStyles() {
|
|
67
|
+
* return `
|
|
68
|
+
* :host { border-radius: ${this.radius}px; }
|
|
69
|
+
* .card { border: 2px solid ${this.accent}; }
|
|
70
|
+
* `;
|
|
71
|
+
* }
|
|
72
|
+
* }
|
|
73
|
+
* ```
|
|
74
|
+
*
|
|
75
|
+
* Static styles should still use `@styles(css\`...\`)` for best
|
|
76
|
+
* performance (shared CSSStyleSheet, no re-evaluation).
|
|
77
|
+
*/
|
|
78
|
+
export declare function dynamicCss(method: Function, context: ClassMethodDecoratorContext): void;
|
|
50
79
|
//# sourceMappingURL=decorators.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../src/element/decorators.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAOH;;;;;;;;GAQG;AACH,eAAO,MAAM,SAAS;aAAmD,OAAO;2EA2C7D,CAAC;AAGpB;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,IAC/B,IAAI,SAAS,MAAM,EACzB,SAAS,4BAA4B,CAAC,IAAI,EAAE,CAAC,CAAC,EAC9C,UAAU,6BAA6B,CAAC,IAAI,EAAE,CAAC,CAAC,KAC/C,4BAA4B,CAAC,IAAI,EAAE,CAAC,CAAC,CAOzC;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,IAClC,IAAI,SAAS,MAAM,EACzB,SAAS,4BAA4B,CAAC,IAAI,EAAE,CAAC,CAAC,EAC9C,UAAU,6BAA6B,CAAC,IAAI,EAAE,CAAC,CAAC,KAC/C,4BAA4B,CAAC,IAAI,EAAE,CAAC,CAAC,CAOzC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,MAAM,CAAC,GAAG,MAAM,EAAE,aAAa,EAAE,IACvC,OAAO,QAAQ,EAAE,UAAU,qBAAqB,UAsBzD"}
|
|
1
|
+
{"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../src/element/decorators.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAOH;;;;;;;;GAQG;AACH,eAAO,MAAM,SAAS;aAAmD,OAAO;2EA2C7D,CAAC;AAGpB;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,IAC/B,IAAI,SAAS,MAAM,EACzB,SAAS,4BAA4B,CAAC,IAAI,EAAE,CAAC,CAAC,EAC9C,UAAU,6BAA6B,CAAC,IAAI,EAAE,CAAC,CAAC,KAC/C,4BAA4B,CAAC,IAAI,EAAE,CAAC,CAAC,CAOzC;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,IAClC,IAAI,SAAS,MAAM,EACzB,SAAS,4BAA4B,CAAC,IAAI,EAAE,CAAC,CAAC,EAC9C,UAAU,6BAA6B,CAAC,IAAI,EAAE,CAAC,CAAC,KAC/C,4BAA4B,CAAC,IAAI,EAAE,CAAC,CAAC,CAOzC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,MAAM,CAAC,GAAG,MAAM,EAAE,aAAa,EAAE,IACvC,OAAO,QAAQ,EAAE,UAAU,qBAAqB,UAsBzD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,UAAU,CACxB,MAAM,EAAE,QAAQ,EAChB,OAAO,EAAE,2BAA2B,QAyErC"}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* @queryAll — Lazy shadow DOM querySelectorAll (auto-accessor)
|
|
7
7
|
* @styles — Adopt CSSStyleSheets on connect (class decorator)
|
|
8
8
|
*/
|
|
9
|
-
import { PROPS, TRANSFORMS } from "../decorators/symbols";
|
|
9
|
+
import { PROPS, TRANSFORMS, CONNECT_HOOKS } from "../decorators/symbols";
|
|
10
10
|
import { app } from "../app";
|
|
11
11
|
import { createDecorator } from "../decorators/create";
|
|
12
12
|
import { pendingProps } from "../store/decorators";
|
|
@@ -127,4 +127,95 @@ export function styles(...sheets) {
|
|
|
127
127
|
};
|
|
128
128
|
};
|
|
129
129
|
}
|
|
130
|
+
/**
|
|
131
|
+
* Dynamic scoped styles from a method. The method returns a CSS string
|
|
132
|
+
* that is adopted into the component's shadow root. When any @reactive
|
|
133
|
+
* or @store value read during the method changes, the styles are
|
|
134
|
+
* automatically re-evaluated and updated in-place.
|
|
135
|
+
*
|
|
136
|
+
* Use this for theme-reactive or state-dependent styles that need
|
|
137
|
+
* to go beyond CSS custom properties or inline styles.
|
|
138
|
+
*
|
|
139
|
+
* ```ts
|
|
140
|
+
* @component("themed-card")
|
|
141
|
+
* class ThemedCard extends LoomElement {
|
|
142
|
+
* @reactive accessor accent = "#a78bfa";
|
|
143
|
+
* @reactive accessor radius = 8;
|
|
144
|
+
*
|
|
145
|
+
* @css
|
|
146
|
+
* dynamicStyles() {
|
|
147
|
+
* return `
|
|
148
|
+
* :host { border-radius: ${this.radius}px; }
|
|
149
|
+
* .card { border: 2px solid ${this.accent}; }
|
|
150
|
+
* `;
|
|
151
|
+
* }
|
|
152
|
+
* }
|
|
153
|
+
* ```
|
|
154
|
+
*
|
|
155
|
+
* Static styles should still use `@styles(css\`...\`)` for best
|
|
156
|
+
* performance (shared CSSStyleSheet, no re-evaluation).
|
|
157
|
+
*/
|
|
158
|
+
export function dynamicCss(method, context) {
|
|
159
|
+
const key = String(context.name);
|
|
160
|
+
context.addInitializer(function () {
|
|
161
|
+
const hooks = this[CONNECT_HOOKS.key] ?? [];
|
|
162
|
+
this[CONNECT_HOOKS.key] = hooks;
|
|
163
|
+
hooks.push((el) => {
|
|
164
|
+
const sheet = new CSSStyleSheet();
|
|
165
|
+
// Initial evaluation
|
|
166
|
+
const cssText = el[key]();
|
|
167
|
+
if (typeof cssText === "string" && cssText.length > 0) {
|
|
168
|
+
sheet.replaceSync(cssText);
|
|
169
|
+
}
|
|
170
|
+
// Adopt into shadow root
|
|
171
|
+
const root = el.constructor.__loom_noshadow
|
|
172
|
+
? el.getRootNode()
|
|
173
|
+
: el.shadow;
|
|
174
|
+
if ('adoptedStyleSheets' in root) {
|
|
175
|
+
root.adoptedStyleSheets = root.adoptedStyleSheets.concat(sheet);
|
|
176
|
+
}
|
|
177
|
+
// Subscribe to reactive changes — re-evaluate when deps fire
|
|
178
|
+
const unsubs = [];
|
|
179
|
+
// Use a flag to debounce rapid changes into one replaceSync
|
|
180
|
+
let cssScheduled = false;
|
|
181
|
+
const refreshCSS = () => {
|
|
182
|
+
if (cssScheduled)
|
|
183
|
+
return;
|
|
184
|
+
cssScheduled = true;
|
|
185
|
+
queueMicrotask(() => {
|
|
186
|
+
cssScheduled = false;
|
|
187
|
+
const newCSS = el[key]();
|
|
188
|
+
if (typeof newCSS === "string") {
|
|
189
|
+
sheet.replaceSync(newCSS);
|
|
190
|
+
}
|
|
191
|
+
});
|
|
192
|
+
};
|
|
193
|
+
// Discover all backing Reactive instances on the element.
|
|
194
|
+
// localSymbol creates Symbol() with description "loom:reactive:<field>",
|
|
195
|
+
// "loom:store:<field>", or "loom:signal:<field>".
|
|
196
|
+
const allSymbols = Object.getOwnPropertySymbols(el);
|
|
197
|
+
for (const sym of allSymbols) {
|
|
198
|
+
const desc = sym.description ?? "";
|
|
199
|
+
if (desc.startsWith("loom:reactive:") ||
|
|
200
|
+
desc.startsWith("loom:store:") ||
|
|
201
|
+
desc.startsWith("loom:signal:")) {
|
|
202
|
+
const reactive = el[sym];
|
|
203
|
+
if (reactive && typeof reactive.subscribe === "function") {
|
|
204
|
+
unsubs.push(reactive.subscribe(refreshCSS));
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
// Cleanup on disconnect
|
|
209
|
+
return () => {
|
|
210
|
+
for (const u of unsubs)
|
|
211
|
+
u();
|
|
212
|
+
unsubs.length = 0;
|
|
213
|
+
// Remove the sheet from adopted styles
|
|
214
|
+
if ('adoptedStyleSheets' in root) {
|
|
215
|
+
root.adoptedStyleSheets = root.adoptedStyleSheets.filter((s) => s !== sheet);
|
|
216
|
+
}
|
|
217
|
+
};
|
|
218
|
+
});
|
|
219
|
+
});
|
|
220
|
+
}
|
|
130
221
|
//# sourceMappingURL=decorators.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/element/decorators.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/element/decorators.ts"],"names":[],"mappings":"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"}
|
package/dist/element/index.d.ts
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* LoomElement base class, built-in elements, and element decorators.
|
|
5
5
|
*/
|
|
6
6
|
export { LoomElement } from "./element";
|
|
7
|
-
export { component, query, queryAll, styles } from "./decorators";
|
|
7
|
+
export { component, query, queryAll, styles, dynamicCss } from "./decorators";
|
|
8
8
|
export { catch_, suspend, mount, unmount } from "./lifecycle";
|
|
9
9
|
export { event } from "./events";
|
|
10
10
|
export { observer } from "./observers";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/element/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AASxC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/element/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AASxC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG9E,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAG9D,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAGjC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGvC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,KAAK,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAG7G,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAGjE,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,YAAY,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG3D,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAG/B,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,YAAY,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAGtD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAG3D,OAAO,EAAE,GAAG,EAAE,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAC/E,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAG5D,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAClE,YAAY,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAGjD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,YAAY,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAG9C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAGhC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,YAAY,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAGtD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5C,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,OAAO,CAAC"}
|
package/dist/element/index.js
CHANGED
|
@@ -11,7 +11,7 @@ export { LoomElement } from "./element";
|
|
|
11
11
|
// e.g. import { LoomCanvas } from "@toyz/loom/element/canvas"
|
|
12
12
|
// e.g. import { LoomImage } from "@toyz/loom/element/image"
|
|
13
13
|
// Element decorators
|
|
14
|
-
export { component, query, queryAll, styles } from "./decorators";
|
|
14
|
+
export { component, query, queryAll, styles, dynamicCss } from "./decorators";
|
|
15
15
|
// Lifecycle decorators
|
|
16
16
|
export { catch_, suspend, mount, unmount } from "./lifecycle";
|
|
17
17
|
// Event decorator
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/element/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC,kEAAkE;AAClE,gEAAgE;AAChE,0DAA0D;AAC1D,8DAA8D;AAC9D,4DAA4D;AAE5D,qBAAqB;AACrB,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/element/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC,kEAAkE;AAClE,gEAAgE;AAChE,0DAA0D;AAC1D,8DAA8D;AAC9D,4DAA4D;AAE5D,qBAAqB;AACrB,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE9E,uBAAuB;AACvB,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE9D,kBAAkB;AAClB,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEjC,qBAAqB;AACrB,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,oBAAoB;AACpB,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAA8B,MAAM,UAAU,CAAC;AAE7G,iBAAiB;AACjB,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAG9B,yBAAyB;AACzB,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE3D,iBAAiB;AACjB,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAE/B,uBAAuB;AACvB,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG1C,mBAAmB;AACnB,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlC,4BAA4B;AAC5B,OAAO,EAAE,GAAG,EAAE,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAG/E,oDAAoD;AACpD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAGlE,mDAAmD;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlC,sCAAsC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,oCAAoC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG1C,oCAAoC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,+BAA+B;AAC/B,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -21,7 +21,7 @@ export { jsx, jsxs, Fragment } from "./jsx-runtime";
|
|
|
21
21
|
export { renderLoop } from "./render-loop";
|
|
22
22
|
export type { RenderLoop } from "./render-loop";
|
|
23
23
|
export { reactive, prop, computed, watch, store } from "./store";
|
|
24
|
-
export { LoomElement, component, query, queryAll, styles, catch_, suspend, mount, unmount, event, observer, interval, timeout, debounce, throttle, animationFrame, } from "./element";
|
|
24
|
+
export { LoomElement, component, query, queryAll, styles, dynamicCss, catch_, suspend, mount, unmount, event, observer, interval, timeout, debounce, throttle, animationFrame, } from "./element";
|
|
25
25
|
export { on, emit, createDecorator, createSymbol, LoomSymbol, SYMBOL_REGISTRY } from "./decorators";
|
|
26
26
|
export { LoomResult } from "./result";
|
|
27
27
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,YAAY,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAGrC,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAC9C,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAGlD,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,YAAY,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAGtC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAGhC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGpD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,YAAY,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAIhD,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAIjE,OAAO,EACL,WAAW,EACX,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,YAAY,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAGrC,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAC9C,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAGlD,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,YAAY,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAGtC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAGhC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGpD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,YAAY,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAIhD,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAIjE,OAAO,EACL,WAAW,EACX,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAC9C,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAC/B,KAAK,EAAE,QAAQ,EACf,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,GACtD,MAAM,WAAW,CAAC;AAInB,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAGpG,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -25,7 +25,7 @@ export { renderLoop } from "./render-loop";
|
|
|
25
25
|
// ── Store (core only — adapters & route sentinels via @toyz/loom/store) ──
|
|
26
26
|
export { reactive, prop, computed, watch, store } from "./store";
|
|
27
27
|
// ── Element: base class + core decorators ──
|
|
28
|
-
export { LoomElement, component, query, queryAll, styles, catch_, suspend, mount, unmount, event, observer, interval, timeout, debounce, throttle, animationFrame, } from "./element";
|
|
28
|
+
export { LoomElement, component, query, queryAll, styles, dynamicCss, catch_, suspend, mount, unmount, event, observer, interval, timeout, debounce, throttle, animationFrame, } from "./element";
|
|
29
29
|
// ── Decorators: event decorators + factory ──
|
|
30
30
|
export { on, emit, createDecorator, createSymbol, LoomSymbol, SYMBOL_REGISTRY } from "./decorators";
|
|
31
31
|
// Result type
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,kBAAkB;AAClB,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAG5B,eAAe;AACf,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAG9C,MAAM;AACN,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAG5B,eAAe;AACf,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,wDAAwD;AACxD,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEpD,cAAc;AACd,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAG3C,4EAA4E;AAE5E,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEjE,8CAA8C;AAE9C,OAAO,EACL,WAAW,EACX,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,kBAAkB;AAClB,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAG5B,eAAe;AACf,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAG9C,MAAM;AACN,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAG5B,eAAe;AACf,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,wDAAwD;AACxD,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEpD,cAAc;AACd,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAG3C,4EAA4E;AAE5E,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEjE,8CAA8C;AAE9C,OAAO,EACL,WAAW,EACX,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAC9C,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAC/B,KAAK,EAAE,QAAQ,EACf,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,GACtD,MAAM,WAAW,CAAC;AAEnB,+CAA+C;AAE/C,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpG,cAAc;AACd,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../src/store/decorators.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAGhD;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CAAM,CAAC;AAIvD,qFAAqF;AACrF,eAAO,MAAM,MAAM,eAAiC,CAAC;AAErD,oFAAoF;AACpF,eAAO,MAAM,UAAU,eAAgC,CAAC;AAExD,8GAA8G;AAC9G,eAAO,MAAM,SAAS,eAA+B,CAAC;AAEtD;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,IAAI,SAAS,MAAM,EAAE,CAAC,EAC7C,MAAM,EAAE,4BAA4B,CAAC,IAAI,EAAE,CAAC,CAAC,EAC7C,OAAO,EAAE,6BAA6B,CAAC,IAAI,EAAE,CAAC,CAAC,GAC9C,4BAA4B,CAAC,IAAI,EAAE,CAAC,CAAC,CAuDvC;AAYD,KAAK,aAAa,GAAG;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACxB,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,IAAI,CAAC,IAAI,SAAS,MAAM,EAAE,CAAC,EACzC,MAAM,EAAE,4BAA4B,CAAC,IAAI,EAAE,CAAC,CAAC,EAC7C,OAAO,EAAE,6BAA6B,CAAC,IAAI,EAAE,CAAC,CAAC,GAC9C,4BAA4B,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AACzC,wBAAgB,IAAI,CAAC,IAAI,EAAE,aAAa,GAAG,CAAC,IAAI,SAAS,MAAM,EAAE,CAAC,EAChE,MAAM,EAAE,4BAA4B,CAAC,IAAI,EAAE,CAAC,CAAC,EAC7C,OAAO,EAAE,6BAA6B,CAAC,IAAI,EAAE,CAAC,CAAC,KAC5C,4BAA4B,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAiD3C;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,IAAI,SAAS,MAAM,EAAE,CAAC,EAC7C,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,EACzB,OAAO,EAAE,2BAA2B,CAAC,IAAI,EAAE,CAAC,CAAC,GAC5C,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,CAqBnB;
|
|
1
|
+
{"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../src/store/decorators.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAGhD;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CAAM,CAAC;AAIvD,qFAAqF;AACrF,eAAO,MAAM,MAAM,eAAiC,CAAC;AAErD,oFAAoF;AACpF,eAAO,MAAM,UAAU,eAAgC,CAAC;AAExD,8GAA8G;AAC9G,eAAO,MAAM,SAAS,eAA+B,CAAC;AAEtD;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,IAAI,SAAS,MAAM,EAAE,CAAC,EAC7C,MAAM,EAAE,4BAA4B,CAAC,IAAI,EAAE,CAAC,CAAC,EAC7C,OAAO,EAAE,6BAA6B,CAAC,IAAI,EAAE,CAAC,CAAC,GAC9C,4BAA4B,CAAC,IAAI,EAAE,CAAC,CAAC,CAuDvC;AAYD,KAAK,aAAa,GAAG;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACxB,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,IAAI,CAAC,IAAI,SAAS,MAAM,EAAE,CAAC,EACzC,MAAM,EAAE,4BAA4B,CAAC,IAAI,EAAE,CAAC,CAAC,EAC7C,OAAO,EAAE,6BAA6B,CAAC,IAAI,EAAE,CAAC,CAAC,GAC9C,4BAA4B,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AACzC,wBAAgB,IAAI,CAAC,IAAI,EAAE,aAAa,GAAG,CAAC,IAAI,SAAS,MAAM,EAAE,CAAC,EAChE,MAAM,EAAE,4BAA4B,CAAC,IAAI,EAAE,CAAC,CAAC,EAC7C,OAAO,EAAE,6BAA6B,CAAC,IAAI,EAAE,CAAC,CAAC,KAC5C,4BAA4B,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAiD3C;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,IAAI,SAAS,MAAM,EAAE,CAAC,EAC7C,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,EACzB,OAAO,EAAE,2BAA2B,CAAC,IAAI,EAAE,CAAC,CAAC,GAC5C,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,CAqBnB;AAgKD;;;;;;;;;;;;;;;;;;;;;GAqBG;AAGH,wBAAgB,KAAK,CAAC,IAAI,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,EACzD,MAAM,EAAE,4BAA4B,CAAC,IAAI,EAAE,CAAC,CAAC,EAC7C,OAAO,EAAE,6BAA6B,CAAC,IAAI,EAAE,CAAC,CAAC,GAC9C,4BAA4B,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAGzC,wBAAgB,KAAK,CAAC,CAAC,SAAS,MAAM,EACpC,QAAQ,EAAE,CAAC,EACX,OAAO,CAAC,EAAE,cAAc,GACvB,CAAC,IAAI,SAAS,MAAM,EACrB,MAAM,EAAE,4BAA4B,CAAC,IAAI,EAAE,CAAC,CAAC,EAC7C,OAAO,EAAE,6BAA6B,CAAC,IAAI,EAAE,CAAC,CAAC,KAC5C,4BAA4B,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC"}
|
package/dist/store/decorators.js
CHANGED
|
@@ -227,8 +227,10 @@ function buildStoreAccessor(defaults, persist, key) {
|
|
|
227
227
|
r.subscribe((v) => bus.emit(e.factory(v)));
|
|
228
228
|
}
|
|
229
229
|
}
|
|
230
|
-
// Snapshot callback —
|
|
231
|
-
|
|
230
|
+
// Snapshot callback — only needed when watchers exist for this field.
|
|
231
|
+
// Without watchers, skip the structuredClone on every mutation.
|
|
232
|
+
const hasWatchers = watchers?.some(w => w.field === key) ?? false;
|
|
233
|
+
const onBeforeMutate = hasWatchers ? () => {
|
|
232
234
|
if (self[prev_.key] === undefined) {
|
|
233
235
|
try {
|
|
234
236
|
self[prev_.key] = structuredClone(r.peek());
|
|
@@ -238,7 +240,7 @@ function buildStoreAccessor(defaults, persist, key) {
|
|
|
238
240
|
self[prev_.key] = r.peek();
|
|
239
241
|
}
|
|
240
242
|
}
|
|
241
|
-
};
|
|
243
|
+
} : undefined;
|
|
242
244
|
self[proxy_.key] = createDeepProxy(r.value, r, onBeforeMutate);
|
|
243
245
|
// Inject $reset method on the instance
|
|
244
246
|
const resetName = `$reset_${key}`;
|
|
@@ -335,7 +337,8 @@ export function store(targetOrDefaults, contextOrPersist) {
|
|
|
335
337
|
r.subscribe((v) => bus.emit(e.factory(v)));
|
|
336
338
|
}
|
|
337
339
|
}
|
|
338
|
-
const
|
|
340
|
+
const hasWatchers = watchers?.some(w => w.field === key) ?? false;
|
|
341
|
+
const onBeforeMutate = hasWatchers ? () => {
|
|
339
342
|
if (self[prev_.key] === undefined) {
|
|
340
343
|
try {
|
|
341
344
|
self[prev_.key] = structuredClone(r.peek());
|
|
@@ -344,7 +347,7 @@ export function store(targetOrDefaults, contextOrPersist) {
|
|
|
344
347
|
self[prev_.key] = r.peek();
|
|
345
348
|
}
|
|
346
349
|
}
|
|
347
|
-
};
|
|
350
|
+
} : undefined;
|
|
348
351
|
self[proxy_.key] = createDeepProxy(r.value, r, onBeforeMutate);
|
|
349
352
|
// $reset method
|
|
350
353
|
self[`$reset_${key}`] = () => {
|
|
@@ -363,7 +366,9 @@ export function store(targetOrDefaults, contextOrPersist) {
|
|
|
363
366
|
void this[key];
|
|
364
367
|
}
|
|
365
368
|
self[reactive_.key].set(val);
|
|
366
|
-
const
|
|
369
|
+
const watchers = WATCHERS.from(self);
|
|
370
|
+
const hasWatchers = watchers?.some(w => w.field === key) ?? false;
|
|
371
|
+
const onBeforeMutate = hasWatchers ? () => {
|
|
367
372
|
if (self[prev_.key] === undefined) {
|
|
368
373
|
try {
|
|
369
374
|
self[prev_.key] = structuredClone(self[reactive_.key].peek());
|
|
@@ -372,7 +377,7 @@ export function store(targetOrDefaults, contextOrPersist) {
|
|
|
372
377
|
self[prev_.key] = self[reactive_.key].peek();
|
|
373
378
|
}
|
|
374
379
|
}
|
|
375
|
-
};
|
|
380
|
+
} : undefined;
|
|
376
381
|
self[proxy_.key] = createDeepProxy(self[reactive_.key].value, self[reactive_.key], onBeforeMutate);
|
|
377
382
|
},
|
|
378
383
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/store/decorators.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/store/decorators.ts"],"names":[],"mappings":"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"}
|
package/dist/store/index.d.ts
CHANGED
|
@@ -10,4 +10,6 @@ export type { StorageAdapter, StorageMedium, PersistOptions } from "./storage";
|
|
|
10
10
|
export { reactive, prop, computed, params, routeQuery, store } from "./decorators";
|
|
11
11
|
export { readonly } from "./readonly";
|
|
12
12
|
export { watch } from "./watch";
|
|
13
|
+
export { SignalState, SignalComputed, toSignal, fromSignal, signal } from "./signal";
|
|
14
|
+
export type { Signal, SignalOptions } from "./signal";
|
|
13
15
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/store/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACvD,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAGpE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AACpG,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAG/E,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AACnF,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/store/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACvD,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAGpE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AACpG,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAG/E,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AACnF,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAGhC,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACrF,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC"}
|
package/dist/store/index.js
CHANGED
|
@@ -12,4 +12,6 @@ export { reactive, prop, computed, params, routeQuery, store } from "./decorator
|
|
|
12
12
|
export { readonly } from "./readonly";
|
|
13
13
|
// Watch
|
|
14
14
|
export { watch } from "./watch";
|
|
15
|
+
// TC39 Signals interop
|
|
16
|
+
export { SignalState, SignalComputed, toSignal, fromSignal, signal } from "./signal";
|
|
15
17
|
//# sourceMappingURL=index.js.map
|
package/dist/store/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/store/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,sBAAsB;AACtB,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAGvD,mBAAmB;AACnB,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAGpG,aAAa;AACb,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AACnF,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,QAAQ;AACR,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/store/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,sBAAsB;AACtB,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAGvD,mBAAmB;AACnB,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAGpG,aAAa;AACb,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AACnF,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,QAAQ;AACR,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,uBAAuB;AACvB,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC"}
|
package/dist/store/reactive.d.ts
CHANGED
|
@@ -30,6 +30,9 @@ export declare class Reactive<T> {
|
|
|
30
30
|
private _persists;
|
|
31
31
|
/** Monotonic version counter — bumps on every set() and notify() */
|
|
32
32
|
private _version;
|
|
33
|
+
/** Debounced persistence — coalesces N mutations into 1 storage write per microtask */
|
|
34
|
+
private _persistScheduled;
|
|
35
|
+
private _flushPersist;
|
|
33
36
|
constructor(initial: T, persist?: PersistOptions);
|
|
34
37
|
get value(): T;
|
|
35
38
|
/** Read without triggering trace recording — used for snapshot comparisons */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reactive.d.ts","sourceRoot":"","sources":["../../src/store/reactive.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAkB,MAAM,WAAW,CAAC;AAGhE,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;AACxD,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AAE9C;;;;;;;;;;;GAWG;AACH,qBAAa,QAAQ,CAAC,CAAC;IACrB,OAAO,CAAC,MAAM,CAAI;IAClB,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,IAAI,CAAC,CAAS;IACtB,OAAO,CAAC,QAAQ,CAAC,CAAiB;IAClC,8EAA8E;IAC9E,OAAO,CAAC,SAAS,CAAS;IAC1B,oEAAoE;IACpE,OAAO,CAAC,QAAQ,CAAK;
|
|
1
|
+
{"version":3,"file":"reactive.d.ts","sourceRoot":"","sources":["../../src/store/reactive.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAkB,MAAM,WAAW,CAAC;AAGhE,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;AACxD,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AAE9C;;;;;;;;;;;GAWG;AACH,qBAAa,QAAQ,CAAC,CAAC;IACrB,OAAO,CAAC,MAAM,CAAI;IAClB,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,IAAI,CAAC,CAAS;IACtB,OAAO,CAAC,QAAQ,CAAC,CAAiB;IAClC,8EAA8E;IAC9E,OAAO,CAAC,SAAS,CAAS;IAC1B,oEAAoE;IACpE,OAAO,CAAC,QAAQ,CAAK;IACrB,uFAAuF;IACvF,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,aAAa,CAGnB;gBAEU,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,cAAc;IAsBhD,IAAI,KAAK,IAAI,CAAC,CAIb;IAED,8EAA8E;IAC9E,IAAI,IAAI,CAAC;IAIT,+EAA+E;IAC/E,WAAW,IAAI,MAAM;IAIrB,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI;IAc3B,0DAA0D;IAC1D,SAAS,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI;IAQxC,wDAAwD;IACxD,KAAK,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI;IAKpC;;;;OAIG;IACH,MAAM,IAAI,IAAI;IASd,gDAAgD;IAChD,KAAK,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI;IAOvB,6EAA6E;IAC7E,WAAW,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;CAM3C;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;CACZ;AAED;;;;;;;;;;;;;;GAcG;AACH,qBAAa,eAAe,CAC1B,CAAC,SAAS,YAAY,CACtB,SAAQ,QAAQ,CAAC,CAAC,EAAE,CAAC;gBACT,OAAO,GAAE,CAAC,EAAO,EAAE,OAAO,CAAC,EAAE,cAAc;IAIvD,+DAA+D;IAC/D,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG;QAAE,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,CAAC;IAO7C,2BAA2B;IAC3B,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IASxB,0BAA0B;IAC1B,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IASxC,kDAAkD;IAClD,KAAK,IAAI,IAAI;IAIb,yBAAyB;IACzB,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;CAGhC"}
|
package/dist/store/reactive.js
CHANGED
|
@@ -28,6 +28,12 @@ export class Reactive {
|
|
|
28
28
|
_persists = false;
|
|
29
29
|
/** Monotonic version counter — bumps on every set() and notify() */
|
|
30
30
|
_version = 0;
|
|
31
|
+
/** Debounced persistence — coalesces N mutations into 1 storage write per microtask */
|
|
32
|
+
_persistScheduled = false;
|
|
33
|
+
_flushPersist = () => {
|
|
34
|
+
this._persistScheduled = false;
|
|
35
|
+
this._storage.set(this._key, JSON.stringify(this._value));
|
|
36
|
+
};
|
|
31
37
|
constructor(initial, persist) {
|
|
32
38
|
this._key = persist?.key;
|
|
33
39
|
this._storage = persist?.storage;
|
|
@@ -71,9 +77,9 @@ export class Reactive {
|
|
|
71
77
|
typeof next === "function" ? next(prev) : next;
|
|
72
78
|
if (this._value !== prev) {
|
|
73
79
|
this._version++;
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
80
|
+
if (this._persists && !this._persistScheduled) {
|
|
81
|
+
this._persistScheduled = true;
|
|
82
|
+
queueMicrotask(this._flushPersist);
|
|
77
83
|
}
|
|
78
84
|
for (let i = 0; i < this._subs.length; i++)
|
|
79
85
|
this._subs[i](this._value, prev);
|
|
@@ -100,8 +106,9 @@ export class Reactive {
|
|
|
100
106
|
*/
|
|
101
107
|
notify() {
|
|
102
108
|
this._version++;
|
|
103
|
-
if (this._persists) {
|
|
104
|
-
this.
|
|
109
|
+
if (this._persists && !this._persistScheduled) {
|
|
110
|
+
this._persistScheduled = true;
|
|
111
|
+
queueMicrotask(this._flushPersist);
|
|
105
112
|
}
|
|
106
113
|
for (let i = 0; i < this._subs.length; i++)
|
|
107
114
|
this._subs[i](this._value, this._value);
|
|
@@ -143,23 +150,28 @@ export class CollectionStore extends Reactive {
|
|
|
143
150
|
/** Add an item. If no `id` provided, one is auto-generated. */
|
|
144
151
|
add(item) {
|
|
145
152
|
const full = { ...item, id: item.id ?? crypto.randomUUID() };
|
|
146
|
-
this.
|
|
153
|
+
this.peek().push(full);
|
|
154
|
+
this.notify();
|
|
147
155
|
return full;
|
|
148
156
|
}
|
|
149
157
|
/** Remove an item by id */
|
|
150
158
|
remove(id) {
|
|
151
|
-
|
|
159
|
+
const arr = this.peek();
|
|
160
|
+
const idx = arr.findIndex((i) => i.id === id);
|
|
161
|
+
if (idx >= 0) {
|
|
162
|
+
arr.splice(idx, 1);
|
|
163
|
+
this.notify();
|
|
164
|
+
}
|
|
152
165
|
}
|
|
153
166
|
/** Patch an item by id */
|
|
154
167
|
update(id, patch) {
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
return updated;
|
|
168
|
+
const arr = this.peek();
|
|
169
|
+
const item = arr.find((i) => i.id === id);
|
|
170
|
+
if (!item)
|
|
171
|
+
return undefined;
|
|
172
|
+
Object.assign(item, patch, { id });
|
|
173
|
+
this.notify();
|
|
174
|
+
return item;
|
|
163
175
|
}
|
|
164
176
|
/** Clear all items (and persisted data if any) */
|
|
165
177
|
clear() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reactive.js","sourceRoot":"","sources":["../../src/store/reactive.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAK3C;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,QAAQ;IACX,MAAM,CAAI;IACV,KAAK,GAAoB,EAAE,CAAC;IAC5B,IAAI,CAAU;IACd,QAAQ,CAAkB;IAClC,8EAA8E;IACtE,SAAS,GAAG,KAAK,CAAC;IAC1B,oEAAoE;IAC5D,QAAQ,GAAG,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"reactive.js","sourceRoot":"","sources":["../../src/store/reactive.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Loom — TC39 Signals Interop
|
|
3
|
+
*
|
|
4
|
+
* Bridges TC39 Signals (Signal.State / Signal.Computed) with Loom's
|
|
5
|
+
* real-DOM reactive system. Loom doesn't use a VDOM — it patches the
|
|
6
|
+
* real DOM via morphing and fast-patch bindings. The trace engine
|
|
7
|
+
* tracks which Reactive instances are read during update().
|
|
8
|
+
*
|
|
9
|
+
* This module provides:
|
|
10
|
+
*
|
|
11
|
+
* SignalState<T> — A Signal.State-compatible wrapper around Reactive<T>.
|
|
12
|
+
* `.get()` integrates with Loom's trace engine.
|
|
13
|
+
*
|
|
14
|
+
* SignalComputed<T> — A Signal.Computed-compatible lazy derivation.
|
|
15
|
+
* Uses backing Reactive for trace integration.
|
|
16
|
+
*
|
|
17
|
+
* toSignal(r) — Wrap an existing Reactive<T> as a Signal.
|
|
18
|
+
* fromSignal(s) — Wrap an external Signal as a Reactive<T> for Loom.
|
|
19
|
+
*
|
|
20
|
+
* Why this matters for real DOM:
|
|
21
|
+
* Loom's trace engine intercepts Reactive.value reads to build a
|
|
22
|
+
* dependency graph. When a dependency changes, only the affected
|
|
23
|
+
* DOM nodes are patched (fast-patch) or the component re-morphs.
|
|
24
|
+
* Signals need to participate in this same tracking to work
|
|
25
|
+
* seamlessly with @reactive, @computed, @store, and @watch.
|
|
26
|
+
*
|
|
27
|
+
* How it works with real DOM (morph engine):
|
|
28
|
+
* 1. Component.update() runs inside a startTrace()/endTrace() block
|
|
29
|
+
* 2. Any SignalState.get() → Reactive.value → recorded as a dependency
|
|
30
|
+
* 3. When SignalState.set() fires → Reactive.set() → version bumps
|
|
31
|
+
* 4. Next scheduleUpdate() → hasDirtyDeps() sees changed version
|
|
32
|
+
* 5. Morph engine patches only the changed DOM nodes
|
|
33
|
+
*
|
|
34
|
+
* For closure bindings ({() => counter.get()}), the fast-patch path
|
|
35
|
+
* re-evaluates just that binding's patcher — no full morph needed.
|
|
36
|
+
*/
|
|
37
|
+
import { Reactive, type Subscriber } from "./reactive";
|
|
38
|
+
/** Matches the TC39 Signal interface — read-only `.get()` */
|
|
39
|
+
export interface Signal<T> {
|
|
40
|
+
get(): T;
|
|
41
|
+
}
|
|
42
|
+
/** Options for Signal construction, matching TC39 SignalOptions */
|
|
43
|
+
export interface SignalOptions<T> {
|
|
44
|
+
equals?: (a: T, b: T) => boolean;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* A read-write Signal backed by Loom's Reactive<T>.
|
|
48
|
+
* Reads via `.get()` participate in Loom's trace engine,
|
|
49
|
+
* so components that read this signal during update() will
|
|
50
|
+
* automatically re-render when the value changes.
|
|
51
|
+
*
|
|
52
|
+
* ```ts
|
|
53
|
+
* const count = new SignalState(0);
|
|
54
|
+
* count.get(); // 0 — tracked by trace engine
|
|
55
|
+
* count.set(1); // triggers re-render of dependent components
|
|
56
|
+
* ```
|
|
57
|
+
*/
|
|
58
|
+
export declare class SignalState<T> implements Signal<T> {
|
|
59
|
+
/** @internal — the backing Reactive, exposed for Loom internals */
|
|
60
|
+
readonly _reactive: Reactive<T>;
|
|
61
|
+
private _equals;
|
|
62
|
+
constructor(initial: T, options?: SignalOptions<T>);
|
|
63
|
+
/** Read the value — integrates with Loom's trace engine */
|
|
64
|
+
get(): T;
|
|
65
|
+
/** Write a new value — triggers subscribers + scheduleUpdate */
|
|
66
|
+
set(value: T): void;
|
|
67
|
+
/** Read without trace tracking */
|
|
68
|
+
peek(): T;
|
|
69
|
+
/** Subscribe to changes (Loom extension) */
|
|
70
|
+
subscribe(fn: Subscriber<T>): () => void;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* A read-only computed Signal. Lazily evaluates a callback,
|
|
74
|
+
* caches the result, and integrates with Loom's trace engine.
|
|
75
|
+
*
|
|
76
|
+
* Dependencies are tracked automatically: any SignalState.get()
|
|
77
|
+
* or Reactive.value access during the callback is recorded.
|
|
78
|
+
* When dependencies change, the cached value is invalidated.
|
|
79
|
+
*
|
|
80
|
+
* The backing Reactive participates in Loom's trace engine,
|
|
81
|
+
* so components reading this computed will re-render when it
|
|
82
|
+
* recomputes to a different value.
|
|
83
|
+
*
|
|
84
|
+
* ```ts
|
|
85
|
+
* const count = new SignalState(2);
|
|
86
|
+
* const doubled = new SignalComputed(() => count.get() * 2);
|
|
87
|
+
* doubled.get(); // 4 — tracked, lazy, memoized
|
|
88
|
+
* count.set(3);
|
|
89
|
+
* doubled.get(); // 6 — re-evaluated because count changed
|
|
90
|
+
* ```
|
|
91
|
+
*/
|
|
92
|
+
export declare class SignalComputed<T> implements Signal<T> {
|
|
93
|
+
/** @internal — Reactive backing for trace integration */
|
|
94
|
+
readonly _reactive: Reactive<T>;
|
|
95
|
+
private _cb;
|
|
96
|
+
private _dirty;
|
|
97
|
+
private _unsubs;
|
|
98
|
+
private _equals;
|
|
99
|
+
constructor(cb: () => T, options?: SignalOptions<T>);
|
|
100
|
+
/** Read the computed value — lazy, memoized, trace-integrated */
|
|
101
|
+
get(): T;
|
|
102
|
+
/** Read without trace tracking */
|
|
103
|
+
peek(): T;
|
|
104
|
+
/** Subscribe to changes (Loom extension) */
|
|
105
|
+
subscribe(fn: Subscriber<T>): () => void;
|
|
106
|
+
/** Dispose all subscriptions — prevents memory leaks */
|
|
107
|
+
dispose(): void;
|
|
108
|
+
private _recompute;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Wrap an existing Reactive<T> as a TC39-compatible Signal.
|
|
112
|
+
* The returned SignalState shares the same backing Reactive,
|
|
113
|
+
* so reads and writes are fully synchronized.
|
|
114
|
+
*
|
|
115
|
+
* ```ts
|
|
116
|
+
* const count = new Reactive(0);
|
|
117
|
+
* const sig = toSignal(count);
|
|
118
|
+
* sig.get(); // 0 — reads from same Reactive
|
|
119
|
+
* sig.set(5); // count.value is now 5
|
|
120
|
+
* ```
|
|
121
|
+
*/
|
|
122
|
+
export declare function toSignal<T>(reactive: Reactive<T>): SignalState<T>;
|
|
123
|
+
/**
|
|
124
|
+
* Wrap an external Signal (TC39-compatible) as a Loom Reactive<T>.
|
|
125
|
+
* The returned Reactive can be used with @watch, trace engine,
|
|
126
|
+
* component rendering, etc.
|
|
127
|
+
*
|
|
128
|
+
* Since external Signals may not have subscribe(), you must provide
|
|
129
|
+
* a `subscribe` callback that hooks into your framework's effect system.
|
|
130
|
+
*
|
|
131
|
+
* ```ts
|
|
132
|
+
* // With external framework's effect
|
|
133
|
+
* const r = fromSignal(externalSignal, (onChange) => {
|
|
134
|
+
* return myFramework.effect(() => {
|
|
135
|
+
* externalSignal.get(); // track
|
|
136
|
+
* onChange(); // notify Loom
|
|
137
|
+
* });
|
|
138
|
+
* });
|
|
139
|
+
* ```
|
|
140
|
+
*/
|
|
141
|
+
export declare function fromSignal<T>(signal: Signal<T>, subscribe?: (onChange: () => void) => () => void): Reactive<T>;
|
|
142
|
+
/**
|
|
143
|
+
* TC39 Signal-compatible reactive accessor.
|
|
144
|
+
* Works like `@reactive` but the accessor value is read/written
|
|
145
|
+
* through a `SignalState<T>` under the hood.
|
|
146
|
+
*
|
|
147
|
+
* The accessor surface exposes the raw value (for ergonomics),
|
|
148
|
+
* compatible with templates: `{() => this.count}`.
|
|
149
|
+
* For Signal interop, the backing `SignalState` is exposed as
|
|
150
|
+
* `this.$signal_<field>` so external Signal-based code can use
|
|
151
|
+
* `.get()` / `.set()` / `.peek()`.
|
|
152
|
+
*
|
|
153
|
+
* Integrates with `@watch`, `@emit`, `scheduleUpdate()`, and
|
|
154
|
+
* Loom's trace engine (morph + fast-patch).
|
|
155
|
+
*
|
|
156
|
+
* ```ts
|
|
157
|
+
* @component("my-counter")
|
|
158
|
+
* class Counter extends LoomElement {
|
|
159
|
+
* @signal accessor count = 0;
|
|
160
|
+
*
|
|
161
|
+
* update() {
|
|
162
|
+
* return <span>{() => this.count}</span>;
|
|
163
|
+
* }
|
|
164
|
+
*
|
|
165
|
+
* increment() {
|
|
166
|
+
* this.count++;
|
|
167
|
+
* // Or via Signal API:
|
|
168
|
+
* // this.$signal_count.set(this.$signal_count.get() + 1);
|
|
169
|
+
* }
|
|
170
|
+
* }
|
|
171
|
+
* ```
|
|
172
|
+
*/
|
|
173
|
+
export declare function signal<This extends object, V>(target: ClassAccessorDecoratorTarget<This, V>, context: ClassAccessorDecoratorContext<This, V>): ClassAccessorDecoratorResult<This, V>;
|
|
174
|
+
//# sourceMappingURL=signal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signal.d.ts","sourceRoot":"","sources":["../../src/store/signal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,OAAO,EAAE,QAAQ,EAAE,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAQvD,6DAA6D;AAC7D,MAAM,WAAW,MAAM,CAAC,CAAC;IACvB,GAAG,IAAI,CAAC,CAAC;CACV;AAED,mEAAmE;AACnE,MAAM,WAAW,aAAa,CAAC,CAAC;IAC9B,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC;CAClC;AAID;;;;;;;;;;;GAWG;AACH,qBAAa,WAAW,CAAC,CAAC,CAAE,YAAW,MAAM,CAAC,CAAC,CAAC;IAC9C,mEAAmE;IACnE,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IAChC,OAAO,CAAC,OAAO,CAA0B;gBAE7B,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC;IAKlD,2DAA2D;IAC3D,GAAG,IAAI,CAAC;IAIR,gEAAgE;IAChE,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI;IAKnB,kCAAkC;IAClC,IAAI,IAAI,CAAC;IAIT,4CAA4C;IAC5C,SAAS,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI;CAGzC;AAID;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,cAAc,CAAC,CAAC,CAAE,YAAW,MAAM,CAAC,CAAC,CAAC;IACjD,yDAAyD;IACzD,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IAChC,OAAO,CAAC,GAAG,CAAU;IACrB,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,OAAO,CAAsB;IACrC,OAAO,CAAC,OAAO,CAA0B;gBAE7B,EAAE,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC;IAOnD,iEAAiE;IACjE,GAAG,IAAI,CAAC;IAQR,kCAAkC;IAClC,IAAI,IAAI,CAAC;IAOT,4CAA4C;IAC5C,SAAS,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI;IAMxC,wDAAwD;IACxD,OAAO,IAAI,IAAI;IAKf,OAAO,CAAC,UAAU;CA0DnB;AAID;;;;;;;;;;;GAWG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAMjE;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAC1B,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EACjB,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,MAAM,IAAI,GAC/C,QAAQ,CAAC,CAAC,CAAC,CAab;AAID;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,MAAM,CAAC,IAAI,SAAS,MAAM,EAAE,CAAC,EAC3C,MAAM,EAAE,4BAA4B,CAAC,IAAI,EAAE,CAAC,CAAC,EAC7C,OAAO,EAAE,6BAA6B,CAAC,IAAI,EAAE,CAAC,CAAC,GAC9C,4BAA4B,CAAC,IAAI,EAAE,CAAC,CAAC,CAuDvC"}
|
|
@@ -0,0 +1,332 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Loom — TC39 Signals Interop
|
|
3
|
+
*
|
|
4
|
+
* Bridges TC39 Signals (Signal.State / Signal.Computed) with Loom's
|
|
5
|
+
* real-DOM reactive system. Loom doesn't use a VDOM — it patches the
|
|
6
|
+
* real DOM via morphing and fast-patch bindings. The trace engine
|
|
7
|
+
* tracks which Reactive instances are read during update().
|
|
8
|
+
*
|
|
9
|
+
* This module provides:
|
|
10
|
+
*
|
|
11
|
+
* SignalState<T> — A Signal.State-compatible wrapper around Reactive<T>.
|
|
12
|
+
* `.get()` integrates with Loom's trace engine.
|
|
13
|
+
*
|
|
14
|
+
* SignalComputed<T> — A Signal.Computed-compatible lazy derivation.
|
|
15
|
+
* Uses backing Reactive for trace integration.
|
|
16
|
+
*
|
|
17
|
+
* toSignal(r) — Wrap an existing Reactive<T> as a Signal.
|
|
18
|
+
* fromSignal(s) — Wrap an external Signal as a Reactive<T> for Loom.
|
|
19
|
+
*
|
|
20
|
+
* Why this matters for real DOM:
|
|
21
|
+
* Loom's trace engine intercepts Reactive.value reads to build a
|
|
22
|
+
* dependency graph. When a dependency changes, only the affected
|
|
23
|
+
* DOM nodes are patched (fast-patch) or the component re-morphs.
|
|
24
|
+
* Signals need to participate in this same tracking to work
|
|
25
|
+
* seamlessly with @reactive, @computed, @store, and @watch.
|
|
26
|
+
*
|
|
27
|
+
* How it works with real DOM (morph engine):
|
|
28
|
+
* 1. Component.update() runs inside a startTrace()/endTrace() block
|
|
29
|
+
* 2. Any SignalState.get() → Reactive.value → recorded as a dependency
|
|
30
|
+
* 3. When SignalState.set() fires → Reactive.set() → version bumps
|
|
31
|
+
* 4. Next scheduleUpdate() → hasDirtyDeps() sees changed version
|
|
32
|
+
* 5. Morph engine patches only the changed DOM nodes
|
|
33
|
+
*
|
|
34
|
+
* For closure bindings ({() => counter.get()}), the fast-patch path
|
|
35
|
+
* re-evaluates just that binding's patcher — no full morph needed.
|
|
36
|
+
*/
|
|
37
|
+
import { Reactive } from "./reactive";
|
|
38
|
+
import { __getActiveDeps } from "../trace";
|
|
39
|
+
import { REACTIVES, WATCHERS, EMITTERS, localSymbol } from "../decorators/symbols";
|
|
40
|
+
import { bus } from "../bus";
|
|
41
|
+
// ── SignalState<T> ──
|
|
42
|
+
/**
|
|
43
|
+
* A read-write Signal backed by Loom's Reactive<T>.
|
|
44
|
+
* Reads via `.get()` participate in Loom's trace engine,
|
|
45
|
+
* so components that read this signal during update() will
|
|
46
|
+
* automatically re-render when the value changes.
|
|
47
|
+
*
|
|
48
|
+
* ```ts
|
|
49
|
+
* const count = new SignalState(0);
|
|
50
|
+
* count.get(); // 0 — tracked by trace engine
|
|
51
|
+
* count.set(1); // triggers re-render of dependent components
|
|
52
|
+
* ```
|
|
53
|
+
*/
|
|
54
|
+
export class SignalState {
|
|
55
|
+
/** @internal — the backing Reactive, exposed for Loom internals */
|
|
56
|
+
_reactive;
|
|
57
|
+
_equals;
|
|
58
|
+
constructor(initial, options) {
|
|
59
|
+
this._reactive = new Reactive(initial);
|
|
60
|
+
this._equals = options?.equals ?? Object.is;
|
|
61
|
+
}
|
|
62
|
+
/** Read the value — integrates with Loom's trace engine */
|
|
63
|
+
get() {
|
|
64
|
+
return this._reactive.value; // .value triggers __getActiveDeps()
|
|
65
|
+
}
|
|
66
|
+
/** Write a new value — triggers subscribers + scheduleUpdate */
|
|
67
|
+
set(value) {
|
|
68
|
+
if (this._equals(this.peek(), value))
|
|
69
|
+
return;
|
|
70
|
+
this._reactive.set(value);
|
|
71
|
+
}
|
|
72
|
+
/** Read without trace tracking */
|
|
73
|
+
peek() {
|
|
74
|
+
return this._reactive.peek();
|
|
75
|
+
}
|
|
76
|
+
/** Subscribe to changes (Loom extension) */
|
|
77
|
+
subscribe(fn) {
|
|
78
|
+
return this._reactive.subscribe(fn);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
// ── SignalComputed<T> ──
|
|
82
|
+
/**
|
|
83
|
+
* A read-only computed Signal. Lazily evaluates a callback,
|
|
84
|
+
* caches the result, and integrates with Loom's trace engine.
|
|
85
|
+
*
|
|
86
|
+
* Dependencies are tracked automatically: any SignalState.get()
|
|
87
|
+
* or Reactive.value access during the callback is recorded.
|
|
88
|
+
* When dependencies change, the cached value is invalidated.
|
|
89
|
+
*
|
|
90
|
+
* The backing Reactive participates in Loom's trace engine,
|
|
91
|
+
* so components reading this computed will re-render when it
|
|
92
|
+
* recomputes to a different value.
|
|
93
|
+
*
|
|
94
|
+
* ```ts
|
|
95
|
+
* const count = new SignalState(2);
|
|
96
|
+
* const doubled = new SignalComputed(() => count.get() * 2);
|
|
97
|
+
* doubled.get(); // 4 — tracked, lazy, memoized
|
|
98
|
+
* count.set(3);
|
|
99
|
+
* doubled.get(); // 6 — re-evaluated because count changed
|
|
100
|
+
* ```
|
|
101
|
+
*/
|
|
102
|
+
export class SignalComputed {
|
|
103
|
+
/** @internal — Reactive backing for trace integration */
|
|
104
|
+
_reactive;
|
|
105
|
+
_cb;
|
|
106
|
+
_dirty = true;
|
|
107
|
+
_unsubs = [];
|
|
108
|
+
_equals;
|
|
109
|
+
constructor(cb, options) {
|
|
110
|
+
this._cb = cb;
|
|
111
|
+
this._equals = options?.equals ?? Object.is;
|
|
112
|
+
// Initialize with a placeholder; first .get() evaluates
|
|
113
|
+
this._reactive = new Reactive(undefined);
|
|
114
|
+
}
|
|
115
|
+
/** Read the computed value — lazy, memoized, trace-integrated */
|
|
116
|
+
get() {
|
|
117
|
+
if (this._dirty) {
|
|
118
|
+
this._recompute();
|
|
119
|
+
}
|
|
120
|
+
// Register in trace engine via Reactive.value
|
|
121
|
+
return this._reactive.value;
|
|
122
|
+
}
|
|
123
|
+
/** Read without trace tracking */
|
|
124
|
+
peek() {
|
|
125
|
+
if (this._dirty) {
|
|
126
|
+
this._recompute();
|
|
127
|
+
}
|
|
128
|
+
return this._reactive.peek();
|
|
129
|
+
}
|
|
130
|
+
/** Subscribe to changes (Loom extension) */
|
|
131
|
+
subscribe(fn) {
|
|
132
|
+
// Ensure we've computed at least once so subscription is meaningful
|
|
133
|
+
if (this._dirty)
|
|
134
|
+
this._recompute();
|
|
135
|
+
return this._reactive.subscribe(fn);
|
|
136
|
+
}
|
|
137
|
+
/** Dispose all subscriptions — prevents memory leaks */
|
|
138
|
+
dispose() {
|
|
139
|
+
for (let i = 0; i < this._unsubs.length; i++)
|
|
140
|
+
this._unsubs[i]();
|
|
141
|
+
this._unsubs.length = 0;
|
|
142
|
+
}
|
|
143
|
+
_recompute() {
|
|
144
|
+
// Tear down old dependency subscriptions
|
|
145
|
+
this.dispose();
|
|
146
|
+
// Intercept Reactive.value reads during callback.
|
|
147
|
+
// We create a temporary "spy" set to capture which Reactives are accessed.
|
|
148
|
+
const capturedDeps = new Set();
|
|
149
|
+
// Save the current trace deps (if we're inside a component's update())
|
|
150
|
+
const parentDeps = __getActiveDeps();
|
|
151
|
+
// We use a manual interception approach: we want to observe
|
|
152
|
+
// which Reactive.value calls happen during _cb(). The trace
|
|
153
|
+
// engine already records into activeDeps, so if a parent trace
|
|
154
|
+
// is active, those reads will be captured there. But we also
|
|
155
|
+
// need them for our own invalidation.
|
|
156
|
+
//
|
|
157
|
+
// Strategy: subscribe to every Reactive that was in the parent
|
|
158
|
+
// trace after evaluation. For stand-alone usage (no trace active),
|
|
159
|
+
// we must detect deps via subscription-based invalidation.
|
|
160
|
+
//
|
|
161
|
+
// The simplest correct approach: evaluate, and use a subscription
|
|
162
|
+
// on the source signals that the user explicitly manages.
|
|
163
|
+
const newValue = this._cb();
|
|
164
|
+
// If called within a Loom trace, the parent deps now contain
|
|
165
|
+
// our transitive dependencies. Grab them for self-invalidation.
|
|
166
|
+
if (parentDeps) {
|
|
167
|
+
for (const dep of parentDeps) {
|
|
168
|
+
capturedDeps.add(dep);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
// Subscribe to all captured deps for invalidation
|
|
172
|
+
for (const dep of capturedDeps) {
|
|
173
|
+
const unsub = dep.subscribe(() => {
|
|
174
|
+
if (!this._dirty) {
|
|
175
|
+
this._dirty = true;
|
|
176
|
+
// Eagerly recompute and propagate if value changed
|
|
177
|
+
const old = this._reactive.peek();
|
|
178
|
+
this._recompute();
|
|
179
|
+
if (!this._equals(old, this._reactive.peek())) {
|
|
180
|
+
// notify() triggers dependent components' scheduleUpdate
|
|
181
|
+
this._reactive.notify();
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
});
|
|
185
|
+
this._unsubs.push(unsub);
|
|
186
|
+
}
|
|
187
|
+
// Update cached value
|
|
188
|
+
const prev = this._reactive.peek();
|
|
189
|
+
if (!this._equals(prev, newValue)) {
|
|
190
|
+
this._reactive.set(newValue);
|
|
191
|
+
}
|
|
192
|
+
this._dirty = false;
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
// ── Converters ──
|
|
196
|
+
/**
|
|
197
|
+
* Wrap an existing Reactive<T> as a TC39-compatible Signal.
|
|
198
|
+
* The returned SignalState shares the same backing Reactive,
|
|
199
|
+
* so reads and writes are fully synchronized.
|
|
200
|
+
*
|
|
201
|
+
* ```ts
|
|
202
|
+
* const count = new Reactive(0);
|
|
203
|
+
* const sig = toSignal(count);
|
|
204
|
+
* sig.get(); // 0 — reads from same Reactive
|
|
205
|
+
* sig.set(5); // count.value is now 5
|
|
206
|
+
* ```
|
|
207
|
+
*/
|
|
208
|
+
export function toSignal(reactive) {
|
|
209
|
+
const sig = Object.create(SignalState.prototype);
|
|
210
|
+
// Directly share the backing Reactive — zero overhead
|
|
211
|
+
Object.defineProperty(sig, '_reactive', { value: reactive, writable: false });
|
|
212
|
+
Object.defineProperty(sig, '_equals', { value: Object.is, writable: false });
|
|
213
|
+
return sig;
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Wrap an external Signal (TC39-compatible) as a Loom Reactive<T>.
|
|
217
|
+
* The returned Reactive can be used with @watch, trace engine,
|
|
218
|
+
* component rendering, etc.
|
|
219
|
+
*
|
|
220
|
+
* Since external Signals may not have subscribe(), you must provide
|
|
221
|
+
* a `subscribe` callback that hooks into your framework's effect system.
|
|
222
|
+
*
|
|
223
|
+
* ```ts
|
|
224
|
+
* // With external framework's effect
|
|
225
|
+
* const r = fromSignal(externalSignal, (onChange) => {
|
|
226
|
+
* return myFramework.effect(() => {
|
|
227
|
+
* externalSignal.get(); // track
|
|
228
|
+
* onChange(); // notify Loom
|
|
229
|
+
* });
|
|
230
|
+
* });
|
|
231
|
+
* ```
|
|
232
|
+
*/
|
|
233
|
+
export function fromSignal(signal, subscribe) {
|
|
234
|
+
const r = new Reactive(signal.get());
|
|
235
|
+
if (subscribe) {
|
|
236
|
+
subscribe(() => {
|
|
237
|
+
const newVal = signal.get();
|
|
238
|
+
if (!Object.is(r.peek(), newVal)) {
|
|
239
|
+
r.set(newVal);
|
|
240
|
+
}
|
|
241
|
+
});
|
|
242
|
+
}
|
|
243
|
+
return r;
|
|
244
|
+
}
|
|
245
|
+
// ── @signal decorator ──
|
|
246
|
+
/**
|
|
247
|
+
* TC39 Signal-compatible reactive accessor.
|
|
248
|
+
* Works like `@reactive` but the accessor value is read/written
|
|
249
|
+
* through a `SignalState<T>` under the hood.
|
|
250
|
+
*
|
|
251
|
+
* The accessor surface exposes the raw value (for ergonomics),
|
|
252
|
+
* compatible with templates: `{() => this.count}`.
|
|
253
|
+
* For Signal interop, the backing `SignalState` is exposed as
|
|
254
|
+
* `this.$signal_<field>` so external Signal-based code can use
|
|
255
|
+
* `.get()` / `.set()` / `.peek()`.
|
|
256
|
+
*
|
|
257
|
+
* Integrates with `@watch`, `@emit`, `scheduleUpdate()`, and
|
|
258
|
+
* Loom's trace engine (morph + fast-patch).
|
|
259
|
+
*
|
|
260
|
+
* ```ts
|
|
261
|
+
* @component("my-counter")
|
|
262
|
+
* class Counter extends LoomElement {
|
|
263
|
+
* @signal accessor count = 0;
|
|
264
|
+
*
|
|
265
|
+
* update() {
|
|
266
|
+
* return <span>{() => this.count}</span>;
|
|
267
|
+
* }
|
|
268
|
+
*
|
|
269
|
+
* increment() {
|
|
270
|
+
* this.count++;
|
|
271
|
+
* // Or via Signal API:
|
|
272
|
+
* // this.$signal_count.set(this.$signal_count.get() + 1);
|
|
273
|
+
* }
|
|
274
|
+
* }
|
|
275
|
+
* ```
|
|
276
|
+
*/
|
|
277
|
+
export function signal(target, context) {
|
|
278
|
+
const key = String(context.name);
|
|
279
|
+
const storage = localSymbol(`signal:${key}`);
|
|
280
|
+
// Register as a reactive field for LoomElement introspection
|
|
281
|
+
context.addInitializer(function () {
|
|
282
|
+
const ctor = this.constructor;
|
|
283
|
+
const existing = REACTIVES.from(ctor);
|
|
284
|
+
if (!existing)
|
|
285
|
+
REACTIVES.set(ctor, [key]);
|
|
286
|
+
else if (!existing.includes(key))
|
|
287
|
+
existing.push(key);
|
|
288
|
+
});
|
|
289
|
+
return {
|
|
290
|
+
get() {
|
|
291
|
+
const self = this;
|
|
292
|
+
if (!self[storage.key]) {
|
|
293
|
+
const initial = target.get.call(this);
|
|
294
|
+
const sig = new SignalState(initial);
|
|
295
|
+
self[storage.key] = sig;
|
|
296
|
+
// Expose the SignalState on the instance
|
|
297
|
+
self[`$signal_${key}`] = sig;
|
|
298
|
+
// Wire scheduleUpdate
|
|
299
|
+
sig.subscribe(() => self.scheduleUpdate?.());
|
|
300
|
+
// Wire @watch handlers
|
|
301
|
+
const watchers = WATCHERS.from(self);
|
|
302
|
+
if (watchers) {
|
|
303
|
+
for (let i = 0; i < watchers.length; i++) {
|
|
304
|
+
const w = watchers[i];
|
|
305
|
+
if (w.field === key)
|
|
306
|
+
sig.subscribe((v, prev) => self[w.key](v, prev));
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
// Wire @emit handlers
|
|
310
|
+
const emitters = EMITTERS.from(self);
|
|
311
|
+
if (emitters) {
|
|
312
|
+
for (let i = 0; i < emitters.length; i++) {
|
|
313
|
+
const e = emitters[i];
|
|
314
|
+
if (e.field === key)
|
|
315
|
+
sig.subscribe((v) => bus.emit(e.factory(v)));
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
return self[storage.key].get();
|
|
320
|
+
},
|
|
321
|
+
set(val) {
|
|
322
|
+
const self = this;
|
|
323
|
+
if (!self[storage.key])
|
|
324
|
+
void self[key];
|
|
325
|
+
self[storage.key].set(val);
|
|
326
|
+
},
|
|
327
|
+
init(_val) {
|
|
328
|
+
return _val;
|
|
329
|
+
},
|
|
330
|
+
};
|
|
331
|
+
}
|
|
332
|
+
//# sourceMappingURL=signal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signal.js","sourceRoot":"","sources":["../../src/store/signal.ts"],"names":[],"mappings":"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"}
|