@pilates/core 1.0.0-rc.2 → 1.0.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.
@@ -20,6 +20,44 @@ export function roundLayout(root) {
20
20
  collectAbsolutes(root, 0, 0, absolutes);
21
21
  applyRounding(root, absolutes, 0, 0);
22
22
  }
23
+ /**
24
+ * Round the layout of a subtree that sits at a known absolute position.
25
+ *
26
+ * Used by the Phase 3 relayout-boundary path: when a boundary node is
27
+ * re-laid out under a cache-hit root, its children's positions are in
28
+ * floating-point space. We round them in isolation using the boundary
29
+ * node's already-rounded absolute position as the origin.
30
+ *
31
+ * The boundary node's own `width`/`height` are explicit integers (that is
32
+ * the boundary invariant) and its `left`/`top` were restored from the
33
+ * parent's rounded cache, so they are already integers. We therefore do
34
+ * NOT re-round the boundary node itself — only its children. The parent
35
+ * absolute corner is `(parentAbsX + node.left, parentAbsY + node.top)`.
36
+ *
37
+ * @internal
38
+ */
39
+ export function roundLayoutSubtree(node, parentAbsX, parentAbsY) {
40
+ // Use the pre-rounding float left/top (node._floatLeft/Top) rather than the
41
+ // rounded integer _layout.left/top. The boundary node's _layout.left/top were
42
+ // restored from the parent's rounded cache (integers), but the true float
43
+ // position is stored in _floatLeft/Top (also restored from cache). Using the
44
+ // float position ensures that absolute coordinates of the boundary's children
45
+ // are computed in the same floating-point space as the full-tree roundLayout pass.
46
+ const nodeAbsX = parentAbsX + node._floatLeft;
47
+ const nodeAbsY = parentAbsY + node._floatTop;
48
+ const absolutes = new Map();
49
+ // Collect children relative to the node's absolute corner.
50
+ for (let i = 0; i < node.getChildCount(); i++) {
51
+ collectAbsolutes(node.getChild(i), nodeAbsX, nodeAbsY, absolutes);
52
+ }
53
+ // Round children (their positions are relative to `node`, so
54
+ // parentRoundedX/Y for each child is node's absolute corner rounded).
55
+ const roundedNodeX = Math.round(nodeAbsX);
56
+ const roundedNodeY = Math.round(nodeAbsY);
57
+ for (let i = 0; i < node.getChildCount(); i++) {
58
+ applyRounding(node.getChild(i), absolutes, roundedNodeX, roundedNodeY);
59
+ }
60
+ }
23
61
  function collectAbsolutes(node, parentX, parentY, out) {
24
62
  const x = parentX + node.layout.left;
25
63
  const y = parentY + node.layout.top;
@@ -1 +1 @@
1
- {"version":3,"file":"round.js","sourceRoot":"","sources":["../../src/algorithm/round.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAWH,MAAM,UAAU,WAAW,CAAC,IAAU;IACpC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAmB,CAAC;IAC7C,gBAAgB,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;IACxC,aAAa,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,gBAAgB,CACvB,IAAU,EACV,OAAe,EACf,OAAe,EACf,GAAyB;IAEzB,MAAM,CAAC,GAAG,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;IACrC,MAAM,CAAC,GAAG,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;IACpC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IACrE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9C,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;IACjD,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CACpB,IAAU,EACV,GAAyB,EACzB,cAAsB,EACtB,cAAsB;IAEtB,MAAM,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC;IAC1B,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IAEzC,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,QAAQ,GAAG,cAAc,CAAC;IAC9C,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,QAAQ,GAAG,cAAc,CAAC;IAC7C,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC,CAAC;IACtD,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC,CAAC;IAEvD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9C,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC5D,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"round.js","sourceRoot":"","sources":["../../src/algorithm/round.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export declare const VERSION = "1.0.0-rc.1";
1
+ export declare const VERSION = "1.0.1";
2
2
  export { Node } from './node.js';
3
3
  export { Edge } from './edge.js';
4
4
  export type { Align, Display, FlexDirection, FlexWrap, Justify, Length, Overflow, PositionType, Style, } from './style.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,eAAe,CAAC;AAGpC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,YAAY,EACV,KAAK,EACL,OAAO,EACP,aAAa,EACb,QAAQ,EACR,OAAO,EACP,MAAM,EACN,QAAQ,EACR,YAAY,EACZ,KAAK,GACN,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGlE,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAIlD,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,QAAQ,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,UAAU,CAAC;AAG/B,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,YAAY,EACV,KAAK,EACL,OAAO,EACP,aAAa,EACb,QAAQ,EACR,OAAO,EACP,MAAM,EACN,QAAQ,EACR,YAAY,EACZ,KAAK,GACN,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGlE,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAIlD,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,QAAQ,EAAE,MAAM,oBAAoB,CAAC"}
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- export const VERSION = '1.0.0-rc.1';
1
+ export const VERSION = '1.0.1';
2
2
  // Tree
3
3
  export { Node } from './node.js';
4
4
  // Style values
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,YAAY,CAAC;AAEpC,OAAO;AACP,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,eAAe;AACf,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAajC,mBAAmB;AACnB,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAMhD,yEAAyE;AACzE,uDAAuD;AACvD,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAiB,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC;AAE/B,OAAO;AACP,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,eAAe;AACf,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAajC,mBAAmB;AACnB,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAMhD,yEAAyE;AACzE,uDAAuD;AACvD,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAiB,MAAM,oBAAoB,CAAC"}
package/dist/node.d.ts CHANGED
@@ -15,6 +15,7 @@
15
15
  * - `measure` — optional measure function for leaf intrinsic sizing.
16
16
  * - `dirty` — set on style/tree mutation; consumed by the algorithm.
17
17
  */
18
+ import { type LayoutCache, MeasureCache } from './algorithm/cache.js';
18
19
  import { Edge } from './edge.js';
19
20
  import { type ComputedLayout } from './layout.js';
20
21
  import type { MeasureFunc } from './measure-func.js';
@@ -69,6 +70,54 @@ export declare class Node {
69
70
  private _measure;
70
71
  /** True if style or tree has changed since the last `calculateLayout()`. */
71
72
  private _dirty;
73
+ /**
74
+ * True if any descendant has been marked dirty (even if dirty propagation
75
+ * was stopped by a relayout boundary before reaching this node). Used by
76
+ * the root cache-hit path to skip `layoutChildren` for subtrees that have
77
+ * no mutations at all — not just subtrees where this node itself is clean.
78
+ *
79
+ * Invariant: `_dirty` implies `_hasDirtyDescendant` on the parent (if any).
80
+ * Cleared by `clearDirty()` after each `calculateLayout()`.
81
+ */
82
+ _hasDirtyDescendant: boolean;
83
+ /**
84
+ * Lazy-allocated measure-func result cache. Created the first time
85
+ * `setMeasureFunc()` installs a measurer. Cleared by `markDirty()`
86
+ * (which fires on every style/tree mutation) and by re-installing
87
+ * the measure function. Read by `callMeasureFunc()` in
88
+ * `algorithm/main-axis.ts`.
89
+ *
90
+ * @internal
91
+ */
92
+ _measureCache?: MeasureCache;
93
+ /**
94
+ * Lazy-allocated layout-cache. Created the first time `layoutChildren`
95
+ * (or `calculateLayout` at the root) stores a result. Cleared by
96
+ * `markDirty()`. Read by `layoutChildren` and the root
97
+ * `calculateLayout` path in `algorithm/`.
98
+ *
99
+ * @internal
100
+ */
101
+ _layoutCache?: LayoutCache;
102
+ /**
103
+ * Pre-rounding (float) left/top position of this node within its parent,
104
+ * as computed by the flex algorithm BEFORE `roundLayout` converts positions
105
+ * to integers.
106
+ *
107
+ * Written by the position-write helpers in `algorithm/main-axis.ts` at the
108
+ * same time as `_layout.left/top`. After `roundLayout` runs, `_layout.left/top`
109
+ * become integers but `_floatLeft/Top` retain the float values. These are
110
+ * captured by `snapshotForCache` and restored by `restoreFromCache` so that
111
+ * `roundLayoutSubtree` can compute the correct absolute float coordinate for
112
+ * a re-laid-out boundary node's children.
113
+ *
114
+ * Initialized to 0 (same as `_layout.left/top`).
115
+ *
116
+ * @internal
117
+ */
118
+ _floatLeft: number;
119
+ /** See {@link _floatLeft}. @internal */
120
+ _floatTop: number;
72
121
  /** Construct via `Node.create()` to mirror Yoga's factory style. */
73
122
  static create(): Node;
74
123
  insertChild(child: Node, index: number): void;
@@ -142,11 +191,71 @@ export declare class Node {
142
191
  * Before `calculateLayout()` has run, all values are 0.
143
192
  */
144
193
  getComputedLayout(): ComputedLayout;
194
+ /**
195
+ * A node is a relayout boundary iff its layout size is fully
196
+ * independent of both parent flex distribution and descendant changes:
197
+ *
198
+ * 1. `width` AND `height` are explicit numbers (not `'auto'`) — pins
199
+ * the node's own preferred size on both axes.
200
+ * 2. `flexGrow <= 0` — the node won't be grown by parent free space.
201
+ * 3. `flexShrink <= 0` — the node won't be shrunk by parent overflow.
202
+ *
203
+ * The early spec draft argued (1) alone was sufficient ("flex grow/shrink
204
+ * adjust size based on parent state, not descendant state"). The fuzzer
205
+ * disproved this: with `flexGrow > 0`, the parent's flex distribution
206
+ * gives the boundary a post-grow width different from style.width. After
207
+ * a descendant mutation dirties the boundary but not its ancestors, the
208
+ * cached parent layout reuses the post-grow width, but the cold
209
+ * recompute may produce a different post-grow width if any sibling
210
+ * changed (or even due to micro-rounding interactions). The fuzzer
211
+ * surfaced this with a `setFlexGrow(1)` boundary producing
212
+ * `cached=17 vs cold=16` width drift.
213
+ *
214
+ * Conditions (2) + (3) ensure the boundary's actual size equals its
215
+ * style values exactly, so the cached parent layout stays valid no
216
+ * matter what siblings do.
217
+ *
218
+ * Boundaries stop the upward dirty propagation in `markDirtyFromChild()`
219
+ * so descendant mutations don't invalidate ancestor layout caches.
220
+ *
221
+ * See `docs/superpowers/specs/2026-05-09-relayout-boundaries-design.md`
222
+ * for the full rationale and edge-case analysis.
223
+ */
224
+ private isLayoutBoundary;
145
225
  /**
146
226
  * Walk up the tree marking every ancestor dirty too. The algorithm uses
147
227
  * this hint to short-circuit work in subtrees that did not change.
148
228
  */
149
229
  markDirty(): void;
230
+ /**
231
+ * Called when a child (or descendant via recursion) is mutated. Marks
232
+ * this node dirty and propagates upward — but stops here if this node
233
+ * is a relayout boundary. The boundary semantics apply only when the
234
+ * mutation originates in a descendant, not when this node's own setters
235
+ * call `markDirty()` directly.
236
+ *
237
+ * See `isLayoutBoundary()` for the boundary definition and rationale.
238
+ */
239
+ private markDirtyFromChild;
240
+ /**
241
+ * Propagate the "has a dirty descendant somewhere below" signal upward
242
+ * without marking ancestors `_dirty`. Called when a relayout boundary
243
+ * stops the dirty propagation but still needs to let the root know that
244
+ * some subtree needs attention. Stops if the parent is already dirty
245
+ * (in which case the root will recompute everything anyway) or already
246
+ * has a dirty descendant flag set.
247
+ */
248
+ private markHasDirtyDescendant;
249
+ /**
250
+ * Set dirty + clear caches + propagate up unconditionally, bypassing
251
+ * the layout-boundary short-circuit in `markDirty()`. Used only by
252
+ * `markDirtyDeep` in `algorithm/cache.ts` for differential-mode and
253
+ * fuzzer validation that need to force the full tree onto the cold
254
+ * path regardless of boundary semantics.
255
+ *
256
+ * @internal
257
+ */
258
+ _forceDirty(): void;
150
259
  isDirty(): boolean;
151
260
  /**
152
261
  * Called by the algorithm once layout is fresh. Not part of the public
@@ -1 +1 @@
1
- {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"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"}
package/dist/node.js CHANGED
@@ -15,6 +15,7 @@
15
15
  * - `measure` — optional measure function for leaf intrinsic sizing.
16
16
  * - `dirty` — set on style/tree mutation; consumed by the algorithm.
17
17
  */
18
+ import { MeasureCache } from './algorithm/cache.js';
18
19
  import { calculateLayout as runCalculateLayout } from './algorithm/index.js';
19
20
  import { Edge } from './edge.js';
20
21
  import { defaultLayout } from './layout.js';
@@ -90,6 +91,54 @@ export class Node {
90
91
  _measure = null;
91
92
  /** True if style or tree has changed since the last `calculateLayout()`. */
92
93
  _dirty = true;
94
+ /**
95
+ * True if any descendant has been marked dirty (even if dirty propagation
96
+ * was stopped by a relayout boundary before reaching this node). Used by
97
+ * the root cache-hit path to skip `layoutChildren` for subtrees that have
98
+ * no mutations at all — not just subtrees where this node itself is clean.
99
+ *
100
+ * Invariant: `_dirty` implies `_hasDirtyDescendant` on the parent (if any).
101
+ * Cleared by `clearDirty()` after each `calculateLayout()`.
102
+ */
103
+ _hasDirtyDescendant = false;
104
+ /**
105
+ * Lazy-allocated measure-func result cache. Created the first time
106
+ * `setMeasureFunc()` installs a measurer. Cleared by `markDirty()`
107
+ * (which fires on every style/tree mutation) and by re-installing
108
+ * the measure function. Read by `callMeasureFunc()` in
109
+ * `algorithm/main-axis.ts`.
110
+ *
111
+ * @internal
112
+ */
113
+ _measureCache;
114
+ /**
115
+ * Lazy-allocated layout-cache. Created the first time `layoutChildren`
116
+ * (or `calculateLayout` at the root) stores a result. Cleared by
117
+ * `markDirty()`. Read by `layoutChildren` and the root
118
+ * `calculateLayout` path in `algorithm/`.
119
+ *
120
+ * @internal
121
+ */
122
+ _layoutCache;
123
+ /**
124
+ * Pre-rounding (float) left/top position of this node within its parent,
125
+ * as computed by the flex algorithm BEFORE `roundLayout` converts positions
126
+ * to integers.
127
+ *
128
+ * Written by the position-write helpers in `algorithm/main-axis.ts` at the
129
+ * same time as `_layout.left/top`. After `roundLayout` runs, `_layout.left/top`
130
+ * become integers but `_floatLeft/Top` retain the float values. These are
131
+ * captured by `snapshotForCache` and restored by `restoreFromCache` so that
132
+ * `roundLayoutSubtree` can compute the correct absolute float coordinate for
133
+ * a re-laid-out boundary node's children.
134
+ *
135
+ * Initialized to 0 (same as `_layout.left/top`).
136
+ *
137
+ * @internal
138
+ */
139
+ _floatLeft = 0;
140
+ /** See {@link _floatLeft}. @internal */
141
+ _floatTop = 0;
93
142
  /** Construct via `Node.create()` to mirror Yoga's factory style. */
94
143
  static create() {
95
144
  return new Node();
@@ -139,6 +188,17 @@ export class Node {
139
188
  throw new Error('cannot set a measure function on a node with children');
140
189
  }
141
190
  this._measure = fn;
191
+ if (fn === null) {
192
+ this._measureCache?.clear();
193
+ }
194
+ else {
195
+ if (this._measureCache === undefined) {
196
+ this._measureCache = new MeasureCache();
197
+ }
198
+ else {
199
+ this._measureCache.clear();
200
+ }
201
+ }
142
202
  this.markDirty();
143
203
  }
144
204
  getMeasureFunc() {
@@ -338,14 +398,116 @@ export class Node {
338
398
  return { ...this.layout };
339
399
  }
340
400
  // ─── dirty tracking ────────────────────────────────────────────────────
401
+ /**
402
+ * A node is a relayout boundary iff its layout size is fully
403
+ * independent of both parent flex distribution and descendant changes:
404
+ *
405
+ * 1. `width` AND `height` are explicit numbers (not `'auto'`) — pins
406
+ * the node's own preferred size on both axes.
407
+ * 2. `flexGrow <= 0` — the node won't be grown by parent free space.
408
+ * 3. `flexShrink <= 0` — the node won't be shrunk by parent overflow.
409
+ *
410
+ * The early spec draft argued (1) alone was sufficient ("flex grow/shrink
411
+ * adjust size based on parent state, not descendant state"). The fuzzer
412
+ * disproved this: with `flexGrow > 0`, the parent's flex distribution
413
+ * gives the boundary a post-grow width different from style.width. After
414
+ * a descendant mutation dirties the boundary but not its ancestors, the
415
+ * cached parent layout reuses the post-grow width, but the cold
416
+ * recompute may produce a different post-grow width if any sibling
417
+ * changed (or even due to micro-rounding interactions). The fuzzer
418
+ * surfaced this with a `setFlexGrow(1)` boundary producing
419
+ * `cached=17 vs cold=16` width drift.
420
+ *
421
+ * Conditions (2) + (3) ensure the boundary's actual size equals its
422
+ * style values exactly, so the cached parent layout stays valid no
423
+ * matter what siblings do.
424
+ *
425
+ * Boundaries stop the upward dirty propagation in `markDirtyFromChild()`
426
+ * so descendant mutations don't invalidate ancestor layout caches.
427
+ *
428
+ * See `docs/superpowers/specs/2026-05-09-relayout-boundaries-design.md`
429
+ * for the full rationale and edge-case analysis.
430
+ */
431
+ isLayoutBoundary() {
432
+ return (typeof this._style.width === 'number' &&
433
+ typeof this._style.height === 'number' &&
434
+ this._style.flexGrow <= 0 &&
435
+ this._style.flexShrink <= 0);
436
+ }
341
437
  /**
342
438
  * Walk up the tree marking every ancestor dirty too. The algorithm uses
343
439
  * this hint to short-circuit work in subtrees that did not change.
344
440
  */
345
441
  markDirty() {
346
442
  this._dirty = true;
443
+ // Optional-chain: only fires on leaves with a measure func installed.
444
+ // Ancestor nodes (containers with children) cannot have a MeasureCache
445
+ // because setMeasureFunc rejects nodes with children; the optional-chain
446
+ // is a deliberate no-op as we propagate dirty up the tree.
447
+ this._measureCache?.clear();
448
+ this._layoutCache?.clear();
449
+ if (this._parent !== null && !this._parent._dirty)
450
+ this._parent.markDirtyFromChild(this);
451
+ }
452
+ /**
453
+ * Called when a child (or descendant via recursion) is mutated. Marks
454
+ * this node dirty and propagates upward — but stops here if this node
455
+ * is a relayout boundary. The boundary semantics apply only when the
456
+ * mutation originates in a descendant, not when this node's own setters
457
+ * call `markDirty()` directly.
458
+ *
459
+ * See `isLayoutBoundary()` for the boundary definition and rationale.
460
+ */
461
+ markDirtyFromChild(_child) {
462
+ this._dirty = true;
463
+ this._layoutCache?.clear();
464
+ // Stop dirty propagation at relayout boundaries — see isLayoutBoundary
465
+ // and the Phase 3 spec for why explicit width+height makes the
466
+ // boundary's size independent of descendant changes.
467
+ //
468
+ // Even though we stop dirty propagation here, we still need to inform
469
+ // ancestors that some descendant of theirs is dirty (so the root
470
+ // cache-hit path knows to recurse into this subtree). We do this via
471
+ // the separate `_hasDirtyDescendant` signal, which continues upward
472
+ // past this boundary without marking ancestors dirty.
473
+ if (this.isLayoutBoundary()) {
474
+ if (this._parent !== null)
475
+ this._parent.markHasDirtyDescendant();
476
+ return;
477
+ }
478
+ if (this._parent !== null && !this._parent._dirty)
479
+ this._parent.markDirtyFromChild(this);
480
+ }
481
+ /**
482
+ * Propagate the "has a dirty descendant somewhere below" signal upward
483
+ * without marking ancestors `_dirty`. Called when a relayout boundary
484
+ * stops the dirty propagation but still needs to let the root know that
485
+ * some subtree needs attention. Stops if the parent is already dirty
486
+ * (in which case the root will recompute everything anyway) or already
487
+ * has a dirty descendant flag set.
488
+ */
489
+ markHasDirtyDescendant() {
490
+ if (this._hasDirtyDescendant)
491
+ return; // already set; further propagation is a no-op
492
+ this._hasDirtyDescendant = true;
493
+ if (this._parent !== null && !this._parent._dirty)
494
+ this._parent.markHasDirtyDescendant();
495
+ }
496
+ /**
497
+ * Set dirty + clear caches + propagate up unconditionally, bypassing
498
+ * the layout-boundary short-circuit in `markDirty()`. Used only by
499
+ * `markDirtyDeep` in `algorithm/cache.ts` for differential-mode and
500
+ * fuzzer validation that need to force the full tree onto the cold
501
+ * path regardless of boundary semantics.
502
+ *
503
+ * @internal
504
+ */
505
+ _forceDirty() {
506
+ this._dirty = true;
507
+ this._measureCache?.clear();
508
+ this._layoutCache?.clear();
347
509
  if (this._parent !== null && !this._parent._dirty)
348
- this._parent.markDirty();
510
+ this._parent._forceDirty();
349
511
  }
350
512
  isDirty() {
351
513
  return this._dirty;
@@ -359,6 +521,7 @@ export class Node {
359
521
  */
360
522
  clearDirty() {
361
523
  this._dirty = false;
524
+ this._hasDirtyDescendant = false;
362
525
  }
363
526
  }
364
527
  function writeEdge(box, edge, value) {
package/dist/node.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"node.js","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"node.js","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pilates/core",
3
- "version": "1.0.0-rc.2",
3
+ "version": "1.0.1",
4
4
  "description": "Headless flex layout engine for terminal UIs. Pure TypeScript, zero dependencies.",
5
5
  "license": "MIT",
6
6
  "author": "Zhijie Wang",