mancha 0.25.2 → 0.26.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/store.js CHANGED
@@ -25,6 +25,8 @@ export const REACTIVE_DEBOUNCE_MILLIS = 10;
25
25
  const AST_FACTORY = new expressions.EvalAstFactory();
26
26
  /** Symbol used to identify proxified objects. */
27
27
  const PROXY_MARKER = "__is_proxy__";
28
+ /** Maps store proxies to their store, e.g. a $parent captured as one by a subrenderer created in an effect. */
29
+ const PROXY_STORES = new WeakMap();
28
30
  function isProxified(object) {
29
31
  return object instanceof SignalStore || object[PROXY_MARKER] === true;
30
32
  }
@@ -251,7 +253,7 @@ export class SignalStore {
251
253
  deepMutations.set(proxy, record);
252
254
  return proxy;
253
255
  }
254
- watch(key, observer) {
256
+ watch(key, observer, store = this) {
255
257
  const owner = getAncestorKeyStore(this, key);
256
258
  if (!owner) {
257
259
  throw new Error(`Cannot watch key "${key}" as it does not exist in the store.`);
@@ -263,7 +265,7 @@ export class SignalStore {
263
265
  const existing = Array.from(owner.observers.get(key) || []);
264
266
  if (!existing.some((entry) => entry.observer === observer)) {
265
267
  // Store the observer along with the store context that registered it.
266
- owner.observers.get(key)?.add({ observer, store: this });
268
+ owner.observers.get(key)?.add({ observer, store });
267
269
  }
268
270
  }
269
271
  addKeyHandler(pattern, handler) {
@@ -399,9 +401,9 @@ export class SignalStore {
399
401
  this._pending.set(key, { done, entries });
400
402
  return done;
401
403
  }
402
- get(key, observer) {
404
+ get(key, observer, store) {
403
405
  if (observer)
404
- this.watch(key, observer);
406
+ this.watch(key, observer, store);
405
407
  const stored = getAncestorValue(this, key);
406
408
  // Handle computed values: recompute if dirty, return the cached value.
407
409
  if (isComputedMarker(stored)) {
@@ -662,7 +664,8 @@ export class SignalStore {
662
664
  // like `$.prop = $computed(fn)` without requiring type casts.
663
665
  return { [COMPUTED_MARKER]: true, fn: fn, dirty: true };
664
666
  }
665
- proxify(observer) {
667
+ // `context` is the store the observer re-runs in, kept across nested stores like $parent.
668
+ proxify(observer, context = this) {
666
669
  const keys = Array.from(this._store.entries()).map(([key]) => key);
667
670
  const keyval = Object.fromEntries(keys.map((key) => [key, null]));
668
671
  // Wraps a function to use the receiver proxy as `this`, ensuring proper
@@ -674,7 +677,7 @@ export class SignalStore {
674
677
  }
675
678
  return value;
676
679
  };
677
- return new Proxy(keyval, {
680
+ const proxy = new Proxy(keyval, {
678
681
  has: (_, prop) => {
679
682
  if (typeof prop === "string") {
680
683
  if (getAncestorKeyStore(this, prop))
@@ -688,12 +691,11 @@ export class SignalStore {
688
691
  get: (_, prop, receiver) => {
689
692
  if (typeof prop === "string") {
690
693
  if (getAncestorKeyStore(this, prop)) {
691
- const value = this.get(prop, observer);
692
- // If the value is a SignalStore (e.g., $parent) and we have an
693
- // observer, return it as a proxy for proper dependency tracking.
694
- if (observer && value instanceof SignalStore) {
695
- return value.proxify(observer);
696
- }
694
+ const value = this.get(prop, observer, context);
695
+ // Nested stores (e.g. $parent) are proxied so reads are tracked and writes reactive.
696
+ const store = value instanceof SignalStore ? value : PROXY_STORES.get(value);
697
+ if (store)
698
+ return store.proxify(observer, context);
697
699
  return wrapMaybeFunction(value, prop, receiver);
698
700
  }
699
701
  // If the property is not found, but we are observing, we assume it's a
@@ -701,11 +703,11 @@ export class SignalStore {
701
703
  // undefined so that we can watch it.
702
704
  if (observer && prop !== PROXY_MARKER && !Reflect.has(this, prop)) {
703
705
  this.set(prop, undefined);
704
- return this.get(prop, observer);
706
+ return this.get(prop, observer, context);
705
707
  }
706
708
  }
707
709
  if (prop === "$") {
708
- return this.proxify(observer);
710
+ return this.proxify(observer, context);
709
711
  }
710
712
  else {
711
713
  const value = Reflect.get(this, prop, receiver);
@@ -726,6 +728,8 @@ export class SignalStore {
726
728
  return true;
727
729
  },
728
730
  });
731
+ PROXY_STORES.set(proxy, this);
732
+ return proxy;
729
733
  }
730
734
  get $() {
731
735
  return this.proxify();
@@ -740,12 +744,12 @@ export class SignalStore {
740
744
  const ast = expressions.parse(expr, AST_FACTORY);
741
745
  const scope = new Proxy(args, {
742
746
  has(target, prop) {
743
- return prop in target || prop in thisArg || prop in globalThis;
747
+ return Object.hasOwn(target, prop) || prop in thisArg || prop in globalThis;
744
748
  },
745
749
  get(target, prop) {
746
750
  if (typeof prop !== "string")
747
751
  return undefined;
748
- if (prop in target)
752
+ if (Object.hasOwn(target, prop))
749
753
  return target[prop];
750
754
  if (prop in thisArg)
751
755
  return thisArg[prop];
@@ -756,7 +760,7 @@ export class SignalStore {
756
760
  set(target, prop, value) {
757
761
  if (typeof prop !== "string")
758
762
  return false;
759
- if (prop in target) {
763
+ if (Object.hasOwn(target, prop)) {
760
764
  target[prop] = value;
761
765
  return true;
762
766
  }
@@ -787,7 +791,7 @@ export class SignalStore {
787
791
  // Use this.$ which returns a proxy. When called through an effect's proxy,
788
792
  // this.$ inherits the observer for proper dependency tracking.
789
793
  const thisArg = this.$;
790
- if (this._store.has(expr)) {
794
+ if (this._store.has(expr) && !Object.hasOwn(args, expr)) {
791
795
  // Shortcut: if the expression is just an item from the value store, use that directly.
792
796
  return thisArg[expr];
793
797
  }
package/dist/store.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
@@ -163,7 +163,7 @@ Creating dynamic lists—where users can add or remove items—is a common requi
163
163
  ```
164
164
 
165
165
  Key concepts for dynamic lists:
166
- - **`:key`**: Always provide a unique key when using `:for` with dynamic data. This enables "keyed reconciliation", which reuses existing DOM nodes and is significantly faster.
166
+ - **`:key`**: Always provide a unique key when using `:for` with dynamic data. This enables "keyed reconciliation", which keeps each item's DOM node, and its state, when the list is reordered.
167
167
  - **`$index`**: This special variable is automatically available inside any `:for` loop and provides the current iteration index.
168
168
  - **Array Mutations**: `mancha` detects when you use standard array methods like `push()`, `pop()`, or `splice()` and automatically updates the UI.
169
169
 
package/docs/01_syntax.md CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  ## Attributes
6
6
 
7
- - `:data` provides scoped variables to all subnodes, evaluated once at mount time. Use `$computed` for derived values that update automatically (see [Reactivity](./03_reactivity.md#computed-values)). Note: `:data` is re-evaluated when used with `:for` + `:key` and the keyed node is reused.
7
+ - `:data` provides scoped variables to all subnodes, evaluated once at mount time. Use `$computed` for derived values that update automatically (see [Reactivity](./03_reactivity.md#computed-values)). Note: `:data` is re-evaluated when used with `:for` and the row's node is reused.
8
8
  ```html
9
9
  <div :data="{ name: 'Stranger' }"></div>
10
10
  <div :data="{ count: 1, doubled: $computed(() => count * 2) }"></div>
@@ -19,7 +19,7 @@
19
19
  :attr:style="'width: ' + segment.width + '; background-color: ' + segment.color"
20
20
  ></div>
21
21
  ```
22
- - `:key` (used with `:for`) enables keyed reconciliation, which reuses DOM nodes when items have stable identifiers. This prevents unnecessary DOM recreation and preserves element state during updates. The key should be a unique primitive value (string or number). When used with `:data`, the `:data` expression is re-evaluated when a keyed node is reused with updated loop variables.
22
+ - `:key` (used with `:for`) enables keyed reconciliation, which reuses each item's DOM node by its identifier, so element state (focus, input values, scroll) follows the item when the list is reordered. Without `:key`, a row is reused only while its position holds the same item and is rebuilt otherwise, so that state is lost on reorders. The key should be a unique primitive value (string or number). When used with `:data`, the `:data` expression is re-evaluated when a node is reused with updated loop variables.
23
23
  ```html
24
24
  <div :for="user in users" :key="user.id">{{ user.name }}</div>
25
25
  <!-- :data bindings update when the item changes -->
@@ -79,7 +79,7 @@ When setting a variable, there are 3 possible cases:
79
79
 
80
80
  **NOTE**: This does not apply to variables defined via `:data` attribute, which always set a new variable for the newly created renderer.
81
81
 
82
- Renderers also have a `$parent`, `$rootRenderer` and `$rootNode` attributes. The `$parent` attribute references the immediate ancestor renderer if any, or it's `null` otherwise. The `$rootRenderer` attribute references the root renderer where `mancha` was mounted, which could be a self-reference. Finally, the `$rootNode` attribute references the HTML node where `mancha` was mounted.
82
+ Renderers also have a `$parent`, `$rootRenderer` and `$rootNode` attributes. The `$parent` attribute references the immediate ancestor renderer if any, or it's `null` otherwise. The `$rootRenderer` attribute references the root renderer where `mancha` was mounted, which could be a self-reference. Finally, the `$rootNode` attribute references the HTML node where `mancha` was mounted. Reads and writes through `$parent` and `$rootRenderer` are reactive, so `$parent.count = 5` updates the ancestor's `count` and re-renders anything that depends on it.
83
83
 
84
84
  While evaluating expressions, there will also be an `$elem` attribute which references the current element being rendered or, in the case of events, the element dispatching the event as well as the corresponding `$event` attribute.
85
85
 
@@ -354,7 +354,7 @@ When items are removed from the array, the corresponding `<li>` elements are rem
354
354
 
355
355
  ### Keyed Reconciliation and Observer Reuse
356
356
 
357
- When using `:key` with `:for`, subrenderers are reused for items with matching keys rather than being disposed and recreated. This is more efficient because existing observers remain attached:
357
+ `:for` reuses a row's node and subrenderer across updates rather than disposing and recreating it, so existing observers remain attached. With `:key`, rows are matched by key:
358
358
 
359
359
  ```html
360
360
  <ul :for="user in users" :key="user.id">
@@ -367,7 +367,7 @@ With `:key`, when the `users` array is updated:
367
367
  - Only truly removed items have their observers cleaned up
368
368
  - New items create new subrenderers with fresh observers
369
369
 
370
- Without `:key`, every update disposes all subrenderers and creates new ones, which triggers more cleanup and setup cycles. See [Performance](./09_performance.md#4-use-key-for-list-performance) for more details.
370
+ Without `:key`, rows are matched by position: a row is reused while its index still holds the same item (so editing an item's properties, or appending, keeps its row), and is rebuilt when a different item lands at that index. After a reorder, an insertion or a removal, the rows from that point on are rebuilt, losing DOM state such as focus, uncontrolled input values or scroll position. Use `:key="item.id"` when rows must keep their identity across reorders, insertions or removals. See [Performance](./09_performance.md#4-use-key-for-list-performance) for more details.
371
371
 
372
372
  ### Manual Cleanup with dispose()
373
373
 
@@ -23,7 +23,7 @@ You can mix and match content by processing `<include>` tags:
23
23
 
24
24
  ### Attribute Forwarding
25
25
 
26
- Attributes placed on the `<include>` tag are automatically copied to the root element of the included content. This is useful for styling and accessibility:
26
+ Attributes placed on the `<include>` tag are automatically copied to the root element of the included content. `class` and `style` are merged with the root element's existing values, with the `<include>` tag's values last; any other attribute overwrites the root element's value. This is useful for styling and accessibility:
27
27
 
28
28
  ```html
29
29
  <!-- ./icons/chart.svg -->
@@ -63,7 +63,7 @@ For reusable icon components where the icon name is determined at usage time, us
63
63
  ```html
64
64
  <!-- Register an icon component that references a sprite sheet -->
65
65
  <template is="icon">
66
- <svg class="w-4 h-4" :class="class">
66
+ <svg class="w-4 h-4">
67
67
  <use :attr:href="'./icons/sprite.svg#' + name"></use>
68
68
  </svg>
69
69
  </template>
@@ -74,7 +74,7 @@ For reusable icon components where the icon name is determined at usage time, us
74
74
  <icon :data="{ name: 'user' }" class="text-green-500"></icon>
75
75
  ```
76
76
 
77
- The `:data` attribute passes variables to the component's scope, making `name` available in expressions like `:attr:href`.
77
+ The `:data` attribute passes variables to the component's scope, making `name` available in expressions like `:attr:href`. The `class` on each `<icon>` is merged with the template's `w-4 h-4`, so the first icon renders as `<svg class="w-4 h-4 text-blue-500">`.
78
78
 
79
79
  SVG sprite sheets bundle multiple icons into a single file, with each icon defined as a `<symbol>`:
80
80
 
@@ -112,6 +112,12 @@ This approach loads the sprite sheet once and references individual icons by the
112
112
  </my-red-button>
113
113
  ```
114
114
 
115
+ Attributes placed on the component tag are copied to the root element of the template. As with includes, `class` and `style` are merged with the root element's existing values, with the component tag's values last; any other attribute overwrites the root element's value. For example, `<my-red-button class="w-full" style="color: white;">` renders `<button style="background-color: red;color: white;" class="w-full">`. An empty `class` or `style` leaves the root element's value unchanged. Directive attributes such as `:class` and `:attr:class` are forwarded as-is and overwrite the root element's same-named directive; only static `class` and `style` are merged.
116
+
117
+ Components can use other components in their templates. Component definitions can't be nested, though: never put a `<template is>` inside another component's template. Forwarded attributes compose through each level, so with `<template is="x-card"><my-red-button class="card"></my-red-button></template>`, the tag `<x-card class="w-full">` renders `<button style="background-color: red;" class="card w-full">`. A component that uses itself, directly or through another component, fails with a maximum recursion depth error.
118
+
119
+ Components and includes share one nesting budget, the `maxdepth` render parameter (default 10): a page renders up to 10 nested components or 9 nested includes, and anything deeper fails with `Maximum recursion depth reached`.
120
+
115
121
  ### Component Registries
116
122
 
117
123
  The components can live in their own, separate files. A common pattern is to separate each component into their own file, and import them all in a single "roll-up" file.
package/docs/05_css.md CHANGED
@@ -145,10 +145,11 @@ Spacing utilities use a 0.25rem (4px) unit by default.
145
145
 
146
146
  ### Colors
147
147
 
148
- Supported prefixes: `text-`, `bg-`, `border-`, `fill-`, `divide-`, `ring-`.
148
+ Supported prefixes: `text-`, `fill-`, `bg-`, `border-`, `divide-`, `ring-`.
149
149
 
150
150
  `ring-{color}` sets the ring color through the `--ring-color` custom property, so it
151
- needs a ring width utility (`ring`, `ring-2`, ...) alongside it to be visible.
151
+ needs a ring width utility (`ring`, `ring-2`, ...) alongside it to be visible. The
152
+ default is declared on every element, so a ring color does not reach descendants.
152
153
 
153
154
  | Color | Shades |
154
155
  | --- | --- |
@@ -634,7 +635,7 @@ Markup that Mancha did not render is the exception: it is never scanned, so call
634
635
 
635
636
  **Browser only**: Custom values require the CSSStyleSheet API and are not available in Worker or SSR environments.
636
637
 
637
- **Unknown classes warn**: A class that looks like a utility but matches no rule — a typo, or a color outside the palette such as `hover:bg-brand-500` — logs `No CSS rule for class: ...` once and is then ignored. Stylesheets loading after the first scan are picked up, so a late-loading sheet that defines the class still works.
638
+ **Unresolvable classes are reported**: a class that reaches on-demand injection and matches no rule logs `No CSS rule for class: ...` once for the life of the page. That covers a typo or a color outside the palette (`hover:bg-brand-500`), and also anything Mancha does not implement — a variant it does not know (`active:`, `group-hover:`), or a bracket value on a property it does not map (`rounded-[12px]`). Each of those does nothing, which is what the message is for. Sheets that arrive later are picked up, so a late-loading sheet defining the class still works.
638
639
 
639
640
  ### When to Use
640
641
 
@@ -187,23 +187,21 @@ for (const [key, count] of Object.entries(report.observers.byKey)) {
187
187
 
188
188
  ### 4. Use `:key` for List Performance
189
189
 
190
- When rendering lists with `:for`, add the `:key` attribute to enable keyed reconciliation. This reuses existing DOM nodes when items are updated, reordered, or partially changed, instead of recreating all nodes:
190
+ Without `:key`, `:for` reuses a row while its position holds the same item and rebuilds it otherwise; add `:key` to reuse rows by a stable identifier instead:
191
191
 
192
192
  ```html
193
- <!-- Without :key - all nodes recreated on every update -->
193
+ <!-- Without :key - rows reused while their position holds the same item -->
194
194
  <li :for="user in users">{{ user.name }}</li>
195
195
 
196
- <!-- With :key - nodes are reused based on stable identifier -->
196
+ <!-- With :key - rows reused based on stable identifier -->
197
197
  <li :for="user in users" :key="user.id">{{ user.name }}</li>
198
198
  ```
199
199
 
200
- Benefits of keyed reconciliation:
201
- - **Faster updates**: Only changed items trigger DOM operations
202
- - **No visual flicker**: Existing elements stay in place
203
- - **Preserved state**: Form inputs, scroll position, and animations are maintained
204
- - **Efficient reordering**: Moving items doesn't require recreation
200
+ Without `:key`, appends, removals at the end and in-place edits to an item's properties keep their rows. When items are reordered, inserted or removed elsewhere, every row from the change onwards is rebuilt, and its DOM state (focus, input values, scroll position, animations) is lost. Keyed reconciliation avoids both:
201
+ - **Faster reordering**: Moved items keep their rows and only change position
202
+ - **Preserved state**: Form inputs, scroll position, and animations follow their item
205
203
 
206
- The key should be a unique primitive value (string or number) that identifies each item. Avoid using array indices as keys if items can be reordered or inserted.
204
+ The key should be a unique primitive value (string or number) that identifies each item. Avoid `:key="$index"`: it reuses each row for whatever item lands at its index, so state set once per row, such as `:data` on a descendant, keeps the old item.
207
205
 
208
206
  ### 5. Reset on Each Mount
209
207
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mancha",
3
- "version": "0.25.2",
3
+ "version": "0.26.0",
4
4
  "description": "Javscript HTML rendering engine",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",