balises 0.2.1 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -35,13 +35,63 @@ export function isBatching() {
35
35
  return batchDepth > 0;
36
36
  }
37
37
  /** Add a subscriber to the batch queue */
38
- export function enqueueBatch(sub) {
38
+ export function enqueueBatchOne(sub) {
39
39
  batchQueue.add(sub);
40
40
  }
41
41
  /** Add multiple subscribers to the batch queue */
42
42
  export function enqueueBatchAll(subs) {
43
- for (let i = 0; i < subs.length; i++) {
43
+ for (let i = 0; i < subs.length; i++)
44
44
  batchQueue.add(subs[i]);
45
+ }
46
+ /** Scope disposal: collect all disposers in a scope */
47
+ let disposalStack = null;
48
+ /**
49
+ * Create a disposal scope that collects all subscriptions and computeds created within.
50
+ * Returns the result of the function and a dispose function that cleans up all resources.
51
+ *
52
+ * @example
53
+ * ```ts
54
+ * const [result, dispose] = scope(() => {
55
+ * const count = signal(0);
56
+ * const doubled = computed(() => count.value * 2);
57
+ * effect(() => console.log(doubled.value));
58
+ * return { count, doubled };
59
+ * });
60
+ *
61
+ * // Later: clean up all subscriptions and computeds
62
+ * dispose();
63
+ * ```
64
+ */
65
+ export function scope(fn) {
66
+ const disposers = [];
67
+ // Push new disposal context
68
+ if (!disposalStack)
69
+ disposalStack = [];
70
+ disposalStack.push(disposers);
71
+ try {
72
+ const result = fn();
73
+ return [
74
+ result,
75
+ () => {
76
+ for (let i = disposers.length - 1; i >= 0; i--) {
77
+ disposers[i]();
78
+ }
79
+ disposers.length = 0;
80
+ },
81
+ ];
45
82
  }
83
+ finally {
84
+ // Pop disposal context
85
+ disposalStack.pop();
86
+ if (disposalStack.length === 0)
87
+ disposalStack = null;
88
+ }
89
+ }
90
+ /**
91
+ * Register a disposer in the current scope (if any).
92
+ * This is called internally by computed/effect when they create cleanup functions.
93
+ */
94
+ export function registerDisposer(dispose) {
95
+ disposalStack?.at(-1)?.push(dispose);
46
96
  }
47
97
  //# sourceMappingURL=context.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/signals/context.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,iEAAiE;AACjE,MAAM,CAAC,IAAI,OAAO,GAA6B,IAAI,CAAC;AAEpD,wCAAwC;AACxC,MAAM,UAAU,UAAU,CAAC,CAA2B;IACpD,OAAO,GAAG,CAAC,CAAC;AACd,CAAC;AAED,qEAAqE;AACrE,IAAI,UAAU,GAAG,CAAC,CAAC;AACnB,IAAI,UAAU,GAA2B,IAAI,CAAC;AAE9C;;;GAGG;AACH,MAAM,UAAU,KAAK,CAAI,EAAW;IAClC,UAAU,EAAE,CAAC;IACb,IAAI,UAAU,KAAK,CAAC;QAAE,UAAU,GAAG,IAAI,GAAG,EAAE,CAAC;IAC7C,IAAI,CAAC;QACH,OAAO,EAAE,EAAE,CAAC;IACd,CAAC;YAAS,CAAC;QACT,IAAI,EAAE,UAAU,KAAK,CAAC,EAAE,CAAC;YACvB,MAAM,CAAC,GAAG,UAAW,CAAC;YACtB,UAAU,GAAG,IAAI,CAAC;YAClB,KAAK,MAAM,GAAG,IAAI,CAAC;gBAAE,GAAG,EAAE,CAAC;QAC7B,CAAC;IACH,CAAC;AACH,CAAC;AAED,kCAAkC;AAClC,MAAM,UAAU,UAAU;IACxB,OAAO,UAAU,GAAG,CAAC,CAAC;AACxB,CAAC;AAED,0CAA0C;AAC1C,MAAM,UAAU,YAAY,CAAC,GAAe;IAC1C,UAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACvB,CAAC;AAED,kDAAkD;AAClD,MAAM,UAAU,eAAe,CAAC,IAAkB;IAChD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,UAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,CAAC;IAC5B,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/signals/context.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,iEAAiE;AACjE,MAAM,CAAC,IAAI,OAAO,GAA6B,IAAI,CAAC;AAEpD,wCAAwC;AACxC,MAAM,UAAU,UAAU,CAAC,CAA2B;IACpD,OAAO,GAAG,CAAC,CAAC;AACd,CAAC;AAED,qEAAqE;AACrE,IAAI,UAAU,GAAG,CAAC,CAAC;AACnB,IAAI,UAAU,GAA2B,IAAI,CAAC;AAE9C;;;GAGG;AACH,MAAM,UAAU,KAAK,CAAI,EAAW;IAClC,UAAU,EAAE,CAAC;IACb,IAAI,UAAU,KAAK,CAAC;QAAE,UAAU,GAAG,IAAI,GAAG,EAAE,CAAC;IAC7C,IAAI,CAAC;QACH,OAAO,EAAE,EAAE,CAAC;IACd,CAAC;YAAS,CAAC;QACT,IAAI,EAAE,UAAU,KAAK,CAAC,EAAE,CAAC;YACvB,MAAM,CAAC,GAAG,UAAW,CAAC;YACtB,UAAU,GAAG,IAAI,CAAC;YAClB,KAAK,MAAM,GAAG,IAAI,CAAC;gBAAE,GAAG,EAAE,CAAC;QAC7B,CAAC;IACH,CAAC;AACH,CAAC;AAED,kCAAkC;AAClC,MAAM,UAAU,UAAU;IACxB,OAAO,UAAU,GAAG,CAAC,CAAC;AACxB,CAAC;AAED,0CAA0C;AAC1C,MAAM,UAAU,eAAe,CAAC,GAAe;IAC7C,UAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACvB,CAAC;AAED,kDAAkD;AAClD,MAAM,UAAU,eAAe,CAAC,IAAkB;IAChD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE;QAAE,UAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,CAAC;AAClE,CAAC;AAED,uDAAuD;AACvD,IAAI,aAAa,GAAoC,IAAI,CAAC;AAE1D;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,KAAK,CAAI,EAAW;IAClC,MAAM,SAAS,GAAsB,EAAE,CAAC;IAExC,4BAA4B;IAC5B,IAAI,CAAC,aAAa;QAAE,aAAa,GAAG,EAAE,CAAC;IACvC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAE9B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,EAAE,EAAE,CAAC;QACpB,OAAO;YACL,MAAM;YACN,GAAG,EAAE;gBACH,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC/C,SAAS,CAAC,CAAC,CAAE,EAAE,CAAC;gBAClB,CAAC;gBACD,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;YACvB,CAAC;SACF,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,uBAAuB;QACvB,aAAa,CAAC,GAAG,EAAE,CAAC;QACpB,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC;YAAE,aAAa,GAAG,IAAI,CAAC;IACvD,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAmB;IAClD,aAAa,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;AACvC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"effect.d.ts","sourceRoot":"","sources":["../../../src/signals/effect.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,MAAM,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAajD"}
1
+ {"version":3,"file":"effect.d.ts","sourceRoot":"","sources":["../../../src/signals/effect.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,MAAM,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAYjD"}
@@ -25,6 +25,7 @@ export function effect(fn) {
25
25
  });
26
26
  // Subscribe to make it reactive (rerun on dependency changes)
27
27
  const unsub = c.subscribe(() => { });
28
+ // Disposal already registered by computed constructor
28
29
  return () => {
29
30
  unsub();
30
31
  c.dispose();
@@ -1 +1 @@
1
- {"version":3,"file":"effect.js","sourceRoot":"","sources":["../../../src/signals/effect.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,MAAM,CAAC,EAAc;IACnC,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE;QACtB,EAAE,EAAE,CAAC;QACL,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC,CAAC;IAEH,8DAA8D;IAC9D,MAAM,KAAK,GAAG,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAEpC,OAAO,GAAG,EAAE;QACV,KAAK,EAAE,CAAC;QACR,CAAC,CAAC,OAAO,EAAE,CAAC;IACd,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"effect.js","sourceRoot":"","sources":["../../../src/signals/effect.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,MAAM,CAAC,EAAc;IACnC,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE;QACtB,EAAE,EAAE,CAAC;QACL,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC,CAAC;IACH,8DAA8D;IAC9D,MAAM,KAAK,GAAG,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACpC,sDAAsD;IACtD,OAAO,GAAG,EAAE;QACV,KAAK,EAAE,CAAC;QACR,CAAC,CAAC,OAAO,EAAE,CAAC;IACd,CAAC,CAAC;AACJ,CAAC"}
@@ -9,12 +9,12 @@ export { Signal, signal } from "./signal.js";
9
9
  export { Computed, computed } from "./computed.js";
10
10
  export { effect } from "./effect.js";
11
11
  export { store } from "./store.js";
12
- export { batch, type Subscriber } from "./context.js";
12
+ export { batch, scope, type Subscriber } from "./context.js";
13
13
  /** Common interface for reactive values (Signal or Computed). */
14
14
  export interface Reactive<T> {
15
15
  readonly value: T;
16
16
  subscribe(fn: () => void): () => void;
17
17
  }
18
- /** Check if a value is a reactive signal or computed. */
18
+ /** Check if a value is a reactive signal or computed. @internal */
19
19
  export declare const isSignal: (value: unknown) => value is Reactive<unknown>;
20
20
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/signals/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAKtD,iEAAiE;AACjE,MAAM,WAAW,QAAQ,CAAC,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IAClB,SAAS,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC;CACvC;AAED,yDAAyD;AACzD,eAAO,MAAM,QAAQ,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,QAAQ,CAAC,OAAO,CACb,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/signals/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAK7D,iEAAiE;AACjE,MAAM,WAAW,QAAQ,CAAC,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IAClB,SAAS,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC;CACvC;AAED,mEAAmE;AACnE,eAAO,MAAM,QAAQ,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,QAAQ,CAAC,OAAO,CACb,CAAC"}
@@ -9,9 +9,9 @@ export { Signal, signal } from "./signal.js";
9
9
  export { Computed, computed } from "./computed.js";
10
10
  export { effect } from "./effect.js";
11
11
  export { store } from "./store.js";
12
- export { batch } from "./context.js";
12
+ export { batch, scope } from "./context.js";
13
13
  import { Signal } from "./signal.js";
14
14
  import { Computed } from "./computed.js";
15
- /** Check if a value is a reactive signal or computed. */
15
+ /** Check if a value is a reactive signal or computed. @internal */
16
16
  export const isSignal = (value) => value instanceof Signal || value instanceof Computed;
17
17
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/signals/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,KAAK,EAAmB,MAAM,cAAc,CAAC;AAEtD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAQzC,yDAAyD;AACzD,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAc,EAA8B,EAAE,CACrE,KAAK,YAAY,MAAM,IAAI,KAAK,YAAY,QAAQ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/signals/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAmB,MAAM,cAAc,CAAC;AAE7D,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAQzC,mEAAmE;AACnE,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAc,EAA8B,EAAE,CACrE,KAAK,YAAY,MAAM,IAAI,KAAK,YAAY,QAAQ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/signals/store.ts"],"names":[],"mappings":"AAAA;;GAEG;AAWH;;;GAGG;AACH,wBAAgB,KAAK,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAmDjD"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/signals/store.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH;;;GAGG;AACH,wBAAgB,KAAK,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAuDjD"}
@@ -3,9 +3,6 @@
3
3
  */
4
4
  import { Signal } from "./signal.js";
5
5
  const STORE = Symbol();
6
- const isPlainObject = (value) => value !== null &&
7
- typeof value === "object" &&
8
- Object.getPrototypeOf(value) === Object.prototype;
9
6
  /**
10
7
  * Create a reactive store from a plain object.
11
8
  * Each property becomes a signal, and nested objects are recursively wrapped.
@@ -17,7 +14,9 @@ export function store(obj) {
17
14
  if (value !== null && typeof value === "object" && STORE in value) {
18
15
  return value; // Already a store
19
16
  }
20
- if (isPlainObject(value)) {
17
+ if (value !== null &&
18
+ typeof value === "object" &&
19
+ Object.getPrototypeOf(value) === Object.prototype) {
21
20
  return store(value);
22
21
  }
23
22
  if (Array.isArray(value)) {
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/signals/store.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC;AAEvB,MAAM,aAAa,GAAG,CAAC,KAAc,EAAoC,EAAE,CACzE,KAAK,KAAK,IAAI;IACd,OAAO,KAAK,KAAK,QAAQ;IACzB,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC,SAAS,CAAC;AAEpD;;;GAGG;AACH,MAAM,UAAU,KAAK,CAAmB,GAAM;IAC5C,MAAM,OAAO,GAAG,IAAI,GAAG,EAAoC,CAAC;IAE5D,iDAAiD;IACjD,MAAM,IAAI,GAAG,CAAC,KAAc,EAAW,EAAE;QACvC,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,IAAI,KAAK,EAAE,CAAC;YAClE,OAAO,KAAK,CAAC,CAAC,kBAAkB;QAClC,CAAC;QACD,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAEF,4CAA4C;IAC5C,MAAM,SAAS,GAAG,CAAC,GAAoB,EAAE,YAAqB,EAAE,EAAE;QAChE,IAAI,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC3B,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,GAAG,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;YACrC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACxB,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;IAEF,OAAO,IAAI,KAAK,CAAC,GAAG,EAAE;QACpB,GAAG,CAAC,MAAM,EAAE,GAAG;YACb,mEAAmE;YACnE,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;gBAC5B,OAAO,MAAM,CAAC,GAAc,CAAC,CAAC;YAChC,CAAC;YACD,OAAO,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,GAAc,CAAC,CAAC,CAAC,KAAK,CAAC;QACtD,CAAC;QAED,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK;YACpB,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;gBAC5B,MAAM,CAAC,GAAc,CAAC,GAAG,KAAK,CAAC;gBAC/B,OAAO,IAAI,CAAC;YACd,CAAC;YACD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;YAC5B,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,GAAc,CAAC,CAAC,CAAC,KAAK,GAAG,OAAO,CAAC;YACvD,MAAM,CAAC,GAAc,CAAC,GAAG,OAAqB,CAAC;YAC/C,OAAO,IAAI,CAAC;QACd,CAAC;QAED,GAAG,CAAC,MAAM,EAAE,GAAG;YACb,OAAO,GAAG,KAAK,KAAK,IAAI,GAAG,IAAI,MAAM,CAAC;QACxC,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/signals/store.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC;AAEvB;;;GAGG;AACH,MAAM,UAAU,KAAK,CAAmB,GAAM;IAC5C,MAAM,OAAO,GAAG,IAAI,GAAG,EAAoC,CAAC;IAE5D,iDAAiD;IACjD,MAAM,IAAI,GAAG,CAAC,KAAc,EAAW,EAAE;QACvC,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,IAAI,KAAK,EAAE,CAAC;YAClE,OAAO,KAAK,CAAC,CAAC,kBAAkB;QAClC,CAAC;QACD,IACE,KAAK,KAAK,IAAI;YACd,OAAO,KAAK,KAAK,QAAQ;YACzB,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC,SAAS,EACjD,CAAC;YACD,OAAO,KAAK,CAAC,KAAgC,CAAC,CAAC;QACjD,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAEF,4CAA4C;IAC5C,MAAM,SAAS,GAAG,CAAC,GAAoB,EAAE,YAAqB,EAAE,EAAE;QAChE,IAAI,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC3B,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,GAAG,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;YACrC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACxB,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;IAEF,OAAO,IAAI,KAAK,CAAC,GAAG,EAAE;QACpB,GAAG,CAAC,MAAM,EAAE,GAAG;YACb,mEAAmE;YACnE,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;gBAC5B,OAAO,MAAM,CAAC,GAAc,CAAC,CAAC;YAChC,CAAC;YACD,OAAO,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,GAAc,CAAC,CAAC,CAAC,KAAK,CAAC;QACtD,CAAC;QAED,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK;YACpB,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;gBAC5B,MAAM,CAAC,GAAc,CAAC,GAAG,KAAK,CAAC;gBAC/B,OAAO,IAAI,CAAC;YACd,CAAC;YACD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;YAC5B,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,GAAc,CAAC,CAAC,CAAC,KAAK,GAAG,OAAO,CAAC;YACvD,MAAM,CAAC,GAAc,CAAC,GAAG,OAAqB,CAAC;YAC/C,OAAO,IAAI,CAAC;QACd,CAAC;QAED,GAAG,CAAC,MAAM,EAAE,GAAG;YACb,OAAO,GAAG,KAAK,KAAK,IAAI,GAAG,IAAI,MAAM,CAAC;QACxC,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../src/template.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAA8B,KAAK,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAmB/E,gEAAgE;AAChE,qBAAa,QAAQ;IAEjB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,MAAM;gBADN,OAAO,EAAE,oBAAoB,EAC7B,MAAM,EAAE,OAAO,EAAE;IAG3B;;;OAGG;IACH,MAAM,IAAI;QAAE,QAAQ,EAAE,gBAAgB,CAAC;QAAC,OAAO,EAAE,MAAM,IAAI,CAAA;KAAE;CAyG9D;AAgID,mEAAmE;AACnE,eAAO,MAAM,IAAI,GAAI,SAAS,oBAAoB,EAAE,GAAG,QAAQ,OAAO,EAAE,aACzC,CAAC;AAEhC,2CAA2C;AAC3C,QAAA,MAAM,IAAI,eAAW,CAAC;AAEtB,4BAA4B;AAC5B,UAAU,cAAc,CAAC,CAAC;IACxB,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC;IACb,IAAI,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;IACpB,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;IAC3C,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,QAAQ,CAAC;CACjC;AAMD,6EAA6E;AAC7E,KAAK,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAStD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,IAAI,CAAC,CAAC,EACpB,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,EAClB,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,QAAQ,GAC9B,cAAc,CAAC,CAAC,CAAC,CAAC;AACrB,wBAAgB,IAAI,CAAC,CAAC,EACpB,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,EAClB,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,EAC1C,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,QAAQ,GAC9B,cAAc,CAAC,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../src/template.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAA8B,KAAK,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AA+B/E,gEAAgE;AAChE,qBAAa,QAAQ;IAEjB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,MAAM;gBADN,OAAO,EAAE,oBAAoB,EAC7B,MAAM,EAAE,OAAO,EAAE;IAG3B;;;OAGG;IACH,MAAM,IAAI;QAAE,QAAQ,EAAE,gBAAgB,CAAC;QAAC,OAAO,EAAE,MAAM,IAAI,CAAA;KAAE;CAuH9D;AA0HD,mEAAmE;AACnE,eAAO,MAAM,IAAI,GAAI,SAAS,oBAAoB,EAAE,GAAG,QAAQ,OAAO,EAAE,aACzC,CAAC;AAEhC,2CAA2C;AAC3C,QAAA,MAAM,IAAI,eAAW,CAAC;AAEtB,4BAA4B;AAC5B,UAAU,cAAc,CAAC,CAAC;IACxB,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC;IACb,IAAI,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;IACpB,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;IAC3C,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,QAAQ,CAAC;CACjC;AAED,6EAA6E;AAC7E,KAAK,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAEtD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,IAAI,CAAC,CAAC,EACpB,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,EAClB,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,QAAQ,GAC9B,cAAc,CAAC,CAAC,CAAC,CAAC;AACrB,wBAAgB,IAAI,CAAC,CAAC,EACpB,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,EAClB,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,EAC1C,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,QAAQ,GAC9B,cAAc,CAAC,CAAC,CAAC,CAAC"}
@@ -11,17 +11,27 @@
11
11
  */
12
12
  import { computed, isSignal, signal } from "./signals/index.js";
13
13
  import { HTMLParser } from "./parser.js";
14
+ const SVG_NS = "http://www.w3.org/2000/svg";
14
15
  /**
15
16
  * Bind a value to an update function.
16
17
  * If reactive, subscribes and returns unsubscribe. Otherwise returns null.
18
+ * Functions are wrapped in computed() for automatic reactivity.
17
19
  */
18
20
  function bind(value, update) {
21
+ if (typeof value === "function") {
22
+ const c = computed(value);
23
+ update(c.value);
24
+ const unsub = c.subscribe(() => update(c.value));
25
+ return () => {
26
+ unsub();
27
+ c.dispose();
28
+ };
29
+ }
19
30
  if (isSignal(value)) {
20
31
  update(value.value);
21
32
  return value.subscribe(() => update(value.value));
22
33
  }
23
34
  update(value);
24
- return null;
25
35
  }
26
36
  /** A parsed HTML template. Call render() to create live DOM. */
27
37
  export class Template {
@@ -41,12 +51,97 @@ export class Template {
41
51
  const stack = [fragment];
42
52
  const parser = new HTMLParser();
43
53
  const values = this.values;
54
+ const handleAttribute = (el, name, parts) => {
55
+ const part0 = parts[0];
56
+ // Event binding: @click=${handler}
57
+ if (name[0] === "@") {
58
+ if (part0 && typeof part0 !== "string") {
59
+ const handler = values[part0.index];
60
+ el.addEventListener(name.slice(1), handler);
61
+ disposers.push(() => el.removeEventListener(name.slice(1), handler));
62
+ }
63
+ return;
64
+ }
65
+ // Property binding: .value=${data} - sets DOM property directly
66
+ if (name[0] === ".") {
67
+ if (part0 && typeof part0 !== "string") {
68
+ const unsub = bind(values[part0.index], (v) => {
69
+ el[name.slice(1)] = v;
70
+ });
71
+ if (unsub)
72
+ disposers.push(unsub);
73
+ }
74
+ return;
75
+ }
76
+ // Dynamic attribute - collect dynamic parts
77
+ const dynParts = [];
78
+ for (const p of parts) {
79
+ if (typeof p !== "string")
80
+ dynParts.push(p);
81
+ }
82
+ // Static attribute (all parts are strings)
83
+ if (!dynParts.length) {
84
+ const value = parts.join("");
85
+ if (value || !parts.length)
86
+ el.setAttribute(name, value);
87
+ return;
88
+ }
89
+ // Wrap functions in computed, collect all reactive sources
90
+ const reactives = [];
91
+ for (const p of dynParts) {
92
+ const v = values[p.index];
93
+ if (typeof v === "function") {
94
+ const c = computed(v);
95
+ values[p.index] = c;
96
+ reactives.push(c);
97
+ disposers.push(() => c.dispose());
98
+ }
99
+ else if (isSignal(v)) {
100
+ reactives.push(v);
101
+ }
102
+ }
103
+ const getValue = (idx) => {
104
+ const v = values[idx];
105
+ return isSignal(v) ? v.value : v;
106
+ };
107
+ const update = () => {
108
+ if (parts.length === 1) {
109
+ const val = getValue(dynParts[0].index);
110
+ if (val == null || val === false)
111
+ el.removeAttribute(name);
112
+ else
113
+ el.setAttribute(name, val === true ? "" : String(val));
114
+ }
115
+ else {
116
+ el.setAttribute(name, parts
117
+ .map((p) => {
118
+ if (typeof p === "string")
119
+ return p;
120
+ const val = getValue(p.index);
121
+ return val == null ? "" : String(val);
122
+ })
123
+ .join(""));
124
+ }
125
+ };
126
+ update();
127
+ for (const s of reactives)
128
+ disposers.push(s.subscribe(update));
129
+ };
44
130
  parser.parseTemplate(this.strings, {
45
131
  onText: (text) => {
46
- stack.at(-1).appendChild(document.createTextNode(text));
132
+ stack.at(-1).append(text);
47
133
  },
48
- onElement: (el, selfClosing) => {
49
- stack.at(-1).appendChild(el);
134
+ onOpenTag: (tag, attrs, selfClosing) => {
135
+ const parent = stack.at(-1);
136
+ const el = tag === "svg" ||
137
+ tag === "SVG" ||
138
+ (parent instanceof Element && parent.namespaceURI === SVG_NS)
139
+ ? document.createElementNS(SVG_NS, tag)
140
+ : document.createElement(tag);
141
+ for (const [name, parts] of attrs) {
142
+ handleAttribute(el, name, parts);
143
+ }
144
+ parent.appendChild(el);
50
145
  if (!selfClosing)
51
146
  stack.push(el);
52
147
  },
@@ -54,74 +149,6 @@ export class Template {
54
149
  if (stack.length > 1)
55
150
  stack.pop();
56
151
  },
57
- onAttribute: (el, name, parts) => {
58
- const prefix = name[0];
59
- // Event binding: @click=${handler}
60
- if (prefix === "@") {
61
- const event = name.slice(1);
62
- const part = parts[0];
63
- if (part && typeof part !== "string") {
64
- const handler = values[part.index];
65
- el.addEventListener(event, handler);
66
- disposers.push(() => el.removeEventListener(event, handler));
67
- }
68
- return;
69
- }
70
- // Property binding: .value=${data} - sets DOM property directly
71
- if (prefix === ".") {
72
- const prop = name.slice(1);
73
- const part = parts[0];
74
- if (part && typeof part !== "string") {
75
- const unsub = bind(values[part.index], (v) => {
76
- el[prop] = v;
77
- });
78
- if (unsub)
79
- disposers.push(unsub);
80
- }
81
- return;
82
- }
83
- // Static attribute (all parts are strings)
84
- if (parts.every((p) => typeof p === "string")) {
85
- const value = parts.join("");
86
- if (value || parts.length === 0) {
87
- el.setAttribute(name, value);
88
- }
89
- return;
90
- }
91
- // Dynamic attribute - has at least one interpolated value
92
- const dynamicParts = parts.filter((p) => typeof p !== "string");
93
- const signals = dynamicParts
94
- .map((p) => values[p.index])
95
- .filter(isSignal);
96
- // Single dynamic with no static parts: handle null/false as removal
97
- const isSingleDynamic = parts.length === 1 && typeof parts[0] !== "string";
98
- const update = () => {
99
- if (isSingleDynamic) {
100
- // Boolean/null handling: false/null removes, true sets empty string
101
- const v = values[dynamicParts[0].index];
102
- const val = isSignal(v) ? v.value : v;
103
- if (val == null || val === false)
104
- el.removeAttribute(name);
105
- else
106
- el.setAttribute(name, val === true ? "" : String(val));
107
- }
108
- else {
109
- // Multi-part: concatenate all parts
110
- const resolved = parts
111
- .map((p) => {
112
- if (typeof p === "string")
113
- return p;
114
- const v = values[p.index];
115
- const val = isSignal(v) ? v.value : v;
116
- return val == null ? "" : String(val);
117
- })
118
- .join("");
119
- el.setAttribute(name, resolved);
120
- }
121
- };
122
- update();
123
- signals.forEach((s) => disposers.push(s.subscribe(update)));
124
- },
125
152
  onSlot: (index) => {
126
153
  // Marker comment anchors dynamic content
127
154
  const marker = document.createComment("");
@@ -147,10 +174,10 @@ function bindContent(marker, value) {
147
174
  nodes = [];
148
175
  };
149
176
  // Handle each() - keyed list for efficient list rendering
150
- if (isEach(value)) {
177
+ if (value != null && typeof value === "object" && EACH in value) {
151
178
  const cache = new Map();
152
179
  const { list, keyFn, renderFn } = value;
153
- let warnedDuplicate = false;
180
+ let warned = 0;
154
181
  const updateList = () => {
155
182
  const parent = marker.parentNode;
156
183
  const items = list.value;
@@ -160,11 +187,7 @@ function bindContent(marker, value) {
160
187
  const item = items[i];
161
188
  const key = keyFn(item, i);
162
189
  if (newKeys.has(key)) {
163
- if (!warnedDuplicate) {
164
- warnedDuplicate = true;
165
- console.warn(`[balises] Duplicate key in each(): ${String(key)}. ` +
166
- `Each item should have a unique key. Consider providing a keyFn.`);
167
- }
190
+ void (warned++ || console.warn("Duplicate key:", key));
168
191
  continue; // Skip duplicate
169
192
  }
170
193
  newKeys.add(key);
@@ -239,37 +262,23 @@ function bindContent(marker, value) {
239
262
  export const html = (strings, ...values) => new Template(strings, values);
240
263
  /** Marker symbol for keyed list objects */
241
264
  const EACH = Symbol();
242
- /** Type guard for Each descriptor */
243
- const isEach = (v) => v != null && typeof v === "object" && EACH in v;
244
- /** Normalize list input to a reactive signal */
245
- function toReactiveList(list) {
246
- if (Array.isArray(list))
247
- return signal(list);
248
- if (typeof list === "function")
249
- return computed(list);
250
- return list;
251
- }
252
265
  export function each(list, keyFnOrRenderFn, renderFn) {
253
- const reactiveList = toReactiveList(list);
254
- if (renderFn === undefined) {
255
- // Two-arg form: each(list, renderFn)
256
- // Use object reference for objects, index for primitives
257
- return {
258
- [EACH]: true,
259
- list: reactiveList,
260
- keyFn: (item, index) => item !== null &&
261
- (typeof item === "object" || typeof item === "function")
262
- ? item
263
- : index,
264
- renderFn: keyFnOrRenderFn,
265
- };
266
- }
267
- // Three-arg form: each(list, keyFn, renderFn)
266
+ // Two-arg form: each(list, renderFn) - use object ref for objects, index for primitives
267
+ const keyFn = renderFn
268
+ ? keyFnOrRenderFn
269
+ : (item, index) => item !== null &&
270
+ (typeof item === "object" || typeof item === "function")
271
+ ? item
272
+ : index;
268
273
  return {
269
274
  [EACH]: true,
270
- list: reactiveList,
271
- keyFn: keyFnOrRenderFn,
272
- renderFn,
275
+ list: Array.isArray(list)
276
+ ? signal(list)
277
+ : typeof list === "function"
278
+ ? computed(list)
279
+ : list,
280
+ keyFn,
281
+ renderFn: renderFn ?? keyFnOrRenderFn,
273
282
  };
274
283
  }
275
284
  //# sourceMappingURL=template.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"template.js","sourceRoot":"","sources":["../../src/template.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"template.js","sourceRoot":"","sources":["../../src/template.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "balises",
3
- "version": "0.2.1",
3
+ "version": "0.4.0",
4
4
  "description": "A very simple reactive html templating library",
5
5
  "author": "Julien Elbaz <elbywan@hotmail.com>",
6
6
  "type": "module",
@@ -56,15 +56,26 @@
56
56
  },
57
57
  "scripts": {
58
58
  "build": "rm -rf dist && tsc && rolldown -c",
59
- "test": "node --expose-gc --import tsx/esm --import ./tests/setup.ts --test tests/*.test.ts",
59
+ "test": "node --import tsx/esm --import ./tests/setup.ts --test tests/*.test.ts",
60
+ "typecheck": "tsc --project tsconfig.typecheck.json",
60
61
  "lint": "eslint .",
62
+ "lint:fix": "eslint . --fix",
63
+ "format": "prettier --write .",
64
+ "check": "yarn format && yarn lint:fix && yarn typecheck",
61
65
  "pretty": "prettier --write .",
62
66
  "examples": "rolldown -c examples/rolldown.config.ts && yarn dlx serve examples",
63
67
  "examples:build": "rolldown -c examples/rolldown.config.ts && cp docs/base.css examples/ && cp docs/example.css examples/",
64
- "bench": "cd bench && yarn && yarn start",
65
- "bench:self": "cd bench && yarn && yarn start:self",
68
+ "bench": "cd bench && yarn && yarn start --isolate",
69
+ "bench:update-readme": "cd bench && yarn && node update-readme.mjs",
70
+ "bench:self": "cd bench && yarn && yarn start:self --isolate",
71
+ "bench:layers": "cd bench && yarn && yarn start:layers --isolate",
72
+ "bench:wide": "cd bench && yarn && yarn start:wide --isolate",
73
+ "bench:diamond": "cd bench && yarn && yarn start:diamond --isolate",
74
+ "bench:create": "cd bench && yarn && yarn start:create --isolate",
75
+ "bench:conditional": "cd bench && yarn && yarn start:conditional --isolate",
76
+ "bench:list": "cd bench && yarn && yarn start:list --isolate",
66
77
  "docs": "yarn docs:build && yarn dlx serve _site",
67
- "docs:build": "yarn build && yarn examples:build && rm -rf _site && mkdir -p _site/assets && cp docs/index.html _site/ && cp docs/*.css _site/ && cp docs/quickstart-demo.js _site/ && cp docs/counter-demo.js _site/ && cp assets/logo.svg _site/assets/ && cp assets/logo-icon.svg _site/assets/ && cp -r examples _site/examples && cp dist/balises.esm.js _site/examples/"
78
+ "docs:build": "yarn build && yarn examples:build && rm -rf _site && mkdir -p _site/assets && cp docs/index.html _site/ && cp docs/*.css _site/ && cp docs/*.js _site/ && cp assets/logo.svg _site/assets/ && cp assets/logo-icon.svg _site/assets/ && cp -r examples _site/examples && cp dist/balises.esm.js _site/examples/"
68
79
  },
69
80
  "devDependencies": {
70
81
  "@eslint/js": "9.39.2",
@@ -79,6 +90,6 @@
79
90
  "typescript-eslint": "8.50.1"
80
91
  },
81
92
  "dependencies": {
82
- "balises": "^0.2.0"
93
+ "balises": "0.4.0"
83
94
  }
84
95
  }