@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.
@@ -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":"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"}
1
+ {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/element/decorators.ts"],"names":[],"mappings":"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"}
@@ -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;AAGlE,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"}
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"}
@@ -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;AAElE,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"}
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
@@ -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,EAClC,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"}
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,EAClC,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
+ {"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;AA8JD;;;;;;;;;;;;;;;;;;;;;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"}
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"}
@@ -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 — called by deep proxy before mutation
231
- const onBeforeMutate = () => {
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 onBeforeMutate = () => {
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 onBeforeMutate = () => {
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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"}
@@ -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"}
@@ -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
@@ -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"}
@@ -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;gBAET,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;IAQd,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;IAM7C,2BAA2B;IAC3B,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAIxB,0BAA0B;IAC1B,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IAYxC,kDAAkD;IAClD,KAAK,IAAI,IAAI;IAIb,yBAAyB;IACzB,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;CAGhC"}
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"}
@@ -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
- // Persist
75
- if (this._persists) {
76
- this._storage.set(this._key, JSON.stringify(this._value));
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._storage.set(this._key, JSON.stringify(this._value));
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.set((prev) => [...prev, full]);
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
- this.set((prev) => prev.filter((i) => i.id !== id));
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
- let updated;
156
- this.set((prev) => prev.map((i) => {
157
- if (i.id !== id)
158
- return i;
159
- updated = { ...i, ...patch, id };
160
- return updated;
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":"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"}
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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@toyz/loom",
3
- "version": "0.17.8",
3
+ "version": "0.18.1",
4
4
  "type": "module",
5
5
  "description": "Decorator-driven web component framework with reactive state, DOM morphing, DI, and JSX",
6
6
  "license": "MIT",