@pilates/core 1.0.1 → 2.0.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.
Files changed (77) hide show
  1. package/dist/algorithm/cache.d.ts +7 -19
  2. package/dist/algorithm/cache.d.ts.map +1 -1
  3. package/dist/algorithm/cache.js +31 -27
  4. package/dist/algorithm/cache.js.map +1 -1
  5. package/dist/algorithm/index.d.ts +31 -0
  6. package/dist/algorithm/index.d.ts.map +1 -1
  7. package/dist/algorithm/index.js +105 -13
  8. package/dist/algorithm/index.js.map +1 -1
  9. package/dist/algorithm/round.d.ts +13 -0
  10. package/dist/algorithm/round.d.ts.map +1 -1
  11. package/dist/algorithm/round.js +33 -16
  12. package/dist/algorithm/round.js.map +1 -1
  13. package/dist/algorithm/spineless/classify.d.ts +47 -0
  14. package/dist/algorithm/spineless/classify.d.ts.map +1 -0
  15. package/dist/algorithm/spineless/classify.js +109 -0
  16. package/dist/algorithm/spineless/classify.js.map +1 -0
  17. package/dist/algorithm/spineless/field-id-pool.d.ts +28 -0
  18. package/dist/algorithm/spineless/field-id-pool.d.ts.map +1 -0
  19. package/dist/algorithm/spineless/field-id-pool.js +35 -0
  20. package/dist/algorithm/spineless/field-id-pool.js.map +1 -0
  21. package/dist/algorithm/spineless/flex-grammar.d.ts +394 -0
  22. package/dist/algorithm/spineless/flex-grammar.d.ts.map +1 -0
  23. package/dist/algorithm/spineless/flex-grammar.js +2509 -0
  24. package/dist/algorithm/spineless/flex-grammar.js.map +1 -0
  25. package/dist/algorithm/spineless/grammar.d.ts +156 -0
  26. package/dist/algorithm/spineless/grammar.d.ts.map +1 -0
  27. package/dist/algorithm/spineless/grammar.js +145 -0
  28. package/dist/algorithm/spineless/grammar.js.map +1 -0
  29. package/dist/algorithm/spineless/layout.d.ts +167 -0
  30. package/dist/algorithm/spineless/layout.d.ts.map +1 -0
  31. package/dist/algorithm/spineless/layout.js +893 -0
  32. package/dist/algorithm/spineless/layout.js.map +1 -0
  33. package/dist/algorithm/spineless/order-maintenance.bench.d.ts +25 -0
  34. package/dist/algorithm/spineless/order-maintenance.bench.d.ts.map +1 -0
  35. package/dist/algorithm/spineless/order-maintenance.bench.js +78 -0
  36. package/dist/algorithm/spineless/order-maintenance.bench.js.map +1 -0
  37. package/dist/algorithm/spineless/order-maintenance.d.ts +201 -0
  38. package/dist/algorithm/spineless/order-maintenance.d.ts.map +1 -0
  39. package/dist/algorithm/spineless/order-maintenance.js +300 -0
  40. package/dist/algorithm/spineless/order-maintenance.js.map +1 -0
  41. package/dist/algorithm/spineless/priority-queue.bench.d.ts +17 -0
  42. package/dist/algorithm/spineless/priority-queue.bench.d.ts.map +1 -0
  43. package/dist/algorithm/spineless/priority-queue.bench.js +57 -0
  44. package/dist/algorithm/spineless/priority-queue.bench.js.map +1 -0
  45. package/dist/algorithm/spineless/priority-queue.d.ts +73 -0
  46. package/dist/algorithm/spineless/priority-queue.d.ts.map +1 -0
  47. package/dist/algorithm/spineless/priority-queue.js +149 -0
  48. package/dist/algorithm/spineless/priority-queue.js.map +1 -0
  49. package/dist/algorithm/spineless/runtime.d.ts +292 -0
  50. package/dist/algorithm/spineless/runtime.d.ts.map +1 -0
  51. package/dist/algorithm/spineless/runtime.js +609 -0
  52. package/dist/algorithm/spineless/runtime.js.map +1 -0
  53. package/dist/algorithm/spineless/style-dirty.d.ts +65 -0
  54. package/dist/algorithm/spineless/style-dirty.d.ts.map +1 -0
  55. package/dist/algorithm/spineless/style-dirty.js +75 -0
  56. package/dist/algorithm/spineless/style-dirty.js.map +1 -0
  57. package/dist/dirty-flags.d.ts +30 -0
  58. package/dist/dirty-flags.d.ts.map +1 -0
  59. package/dist/dirty-flags.js +35 -0
  60. package/dist/dirty-flags.js.map +1 -0
  61. package/dist/index.d.ts +4 -1
  62. package/dist/index.d.ts.map +1 -1
  63. package/dist/index.js +9 -1
  64. package/dist/index.js.map +1 -1
  65. package/dist/inspect.d.ts +27 -0
  66. package/dist/inspect.d.ts.map +1 -0
  67. package/dist/inspect.js +61 -0
  68. package/dist/inspect.js.map +1 -0
  69. package/dist/layout-pool.d.ts +49 -0
  70. package/dist/layout-pool.d.ts.map +1 -0
  71. package/dist/layout-pool.js +75 -0
  72. package/dist/layout-pool.js.map +1 -0
  73. package/dist/node.d.ts +20 -3
  74. package/dist/node.d.ts.map +1 -1
  75. package/dist/node.js +63 -42
  76. package/dist/node.js.map +1 -1
  77. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flex-grammar.js","sourceRoot":"","sources":["../../../src/algorithm/spineless/flex-grammar.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,156 @@
1
+ /**
2
+ * Attribute grammar for layout — type system + topological interpreter.
3
+ *
4
+ * Foundation for Spineless Traversal: re-expresses the imperative
5
+ * flex algorithm as a set of field-level dependencies. Each layout
6
+ * field (a `(Node, attribute-name)` pair) has a rule that computes
7
+ * its value from other fields it depends on. The runtime evaluates
8
+ * fields in topological order; mutations only propagate to fields
9
+ * that actually change.
10
+ *
11
+ * ## What this file ships (Phase 5a foundation)
12
+ *
13
+ * - **Types** — `Field`, `FieldRule`, `Grammar`. The clean abstractions
14
+ * the Spineless runtime will consume.
15
+ * - **`TopoInterpreter`** — naive topological evaluator. Given a
16
+ * grammar + a root field, walks the dependency DAG and evaluates
17
+ * every reachable field in order. Used both as a correctness oracle
18
+ * (Spineless runtime asserts byte-identical outputs) and as a
19
+ * reference for understanding the grammar.
20
+ *
21
+ * **The interpreter is NOT incremental.** It always evaluates every
22
+ * reachable field from scratch. The Spineless runtime (next sub-phase)
23
+ * makes it incremental by only recomputing fields whose dependencies
24
+ * changed.
25
+ *
26
+ * ## What this file does NOT ship
27
+ *
28
+ * - The actual flexbox grammar — that's `grammar/flex.ts` in the next
29
+ * sub-phase, ~2-3 weeks of work expressing ~50 layout fields with
30
+ * their dependencies (mirroring the paper's Megatron implementation).
31
+ * - The Spineless runtime — that's `runtime.ts`, ~3-4 weeks of work
32
+ * wiring OM + priority queue + grammar interpreter into an
33
+ * incremental driver.
34
+ *
35
+ * ## Type-level note: generics are erased
36
+ *
37
+ * The type system is structurally typed: `Field<T>` carries the
38
+ * value type only as a phantom for documentation. At runtime we
39
+ * store/read via the type-erased `Field` union; consumers cast at the
40
+ * read site. This keeps the runtime free of type-tag overhead.
41
+ *
42
+ * @internal
43
+ */
44
+ import type { Node } from '../../node.js';
45
+ /**
46
+ * Identifies a single attribute on a single Node. The unit of
47
+ * dependency tracking in Spineless Traversal.
48
+ *
49
+ * Identity: two `Field` values refer to the same conceptual attribute
50
+ * iff `node === node` AND `name === name`. We use object identity
51
+ * (single allocation per logical field) so `Set<Field>` works without
52
+ * a custom equality function.
53
+ *
54
+ * @internal
55
+ */
56
+ export interface Field<T = unknown> {
57
+ readonly node: Node;
58
+ readonly name: string;
59
+ /**
60
+ * Unique integer id for typed-array indexing in the Spineless
61
+ * runtime (phase 15I). Assigned at creation by the `field()` factory.
62
+ * @internal
63
+ */
64
+ readonly id: number;
65
+ /**
66
+ * Phantom marker for the value type. Never read at runtime.
67
+ * @internal
68
+ */
69
+ readonly _valueType?: T;
70
+ }
71
+ /**
72
+ * A rule that computes the value of one field from its dependencies.
73
+ *
74
+ * `compute` is a pure function over the values of `deps`. It must not
75
+ * read any field outside `deps` and must not have side effects.
76
+ *
77
+ * The interpreter / Spineless runtime enforces this by passing a
78
+ * `GraphRead` to `compute` that exposes only fields in `deps`.
79
+ *
80
+ * @internal
81
+ */
82
+ export interface FieldRule<T = unknown> {
83
+ /**
84
+ * The fields this rule reads. The interpreter walks these
85
+ * transitively to discover the full dependency DAG.
86
+ */
87
+ readonly deps: ReadonlyArray<Field<unknown>>;
88
+ /**
89
+ * Compute the field's value from its dependencies' current values.
90
+ * `read(dep)` returns the cached value of `dep` (or throws if `dep`
91
+ * is not in `deps`).
92
+ */
93
+ compute(read: <U>(dep: Field<U>) => U): T;
94
+ }
95
+ /**
96
+ * The grammar — map from each field to its computation rule. The
97
+ * Spineless runtime queries this map on every recompute.
98
+ *
99
+ * Identity-keyed: `Field` instances are used as keys directly. The
100
+ * caller is responsible for allocating each logical field exactly
101
+ * once and reusing the same `Field` object.
102
+ *
103
+ * @internal
104
+ */
105
+ export type Grammar = Map<Field<unknown>, FieldRule<unknown>>;
106
+ /**
107
+ * Read-side interface used internally by `compute` callbacks. Returns
108
+ * the current value of a dependency field.
109
+ *
110
+ * @internal
111
+ */
112
+ export type ReadFn = <U>(dep: Field<U>) => U;
113
+ /**
114
+ * Naive topological interpreter. Evaluates every reachable field in
115
+ * the grammar from scratch on each `evaluate()` call. No incrementality.
116
+ *
117
+ * Two roles:
118
+ * 1. **Correctness oracle.** Once the full flex grammar lands, the
119
+ * Spineless runtime's incremental output must match the interpreter's
120
+ * output byte-for-byte. Differential mode runs both in parallel and
121
+ * asserts equality.
122
+ * 2. **Bootstrap path.** Lets us validate grammar correctness
123
+ * independently of the Spineless runtime, so the two big pieces
124
+ * (grammar + runtime) can be developed and tested separately.
125
+ *
126
+ * @internal
127
+ */
128
+ export declare class TopoInterpreter {
129
+ private readonly values;
130
+ private readonly grammar;
131
+ constructor(grammar: Grammar);
132
+ /**
133
+ * Read the current value of a field. Returns `undefined` if the
134
+ * field has never been computed (call `evaluate(field)` first).
135
+ */
136
+ read<T>(field: Field<T>): T | undefined;
137
+ /**
138
+ * Evaluate `field` and all its transitive dependencies. Returns the
139
+ * computed value.
140
+ *
141
+ * Topological evaluation via DFS: for each field, recursively
142
+ * evaluate its dependencies first, then run the field's rule.
143
+ *
144
+ * Detects cycles via a "visiting" set; throws on cycle. The flex
145
+ * grammar must be acyclic by construction.
146
+ */
147
+ evaluate<T>(field: Field<T>): T;
148
+ /**
149
+ * Reset all cached values. Forces re-evaluation on the next
150
+ * `evaluate()` call. Used by tests and the differential harness.
151
+ */
152
+ reset(): void;
153
+ private evalInternal;
154
+ }
155
+ export declare function field<T>(node: Node, name: string): Field<T>;
156
+ //# sourceMappingURL=grammar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grammar.d.ts","sourceRoot":"","sources":["../../../src/algorithm/spineless/grammar.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAG1C;;;;;;;;;;GAUG;AACH,MAAM,WAAW,KAAK,CAAC,CAAC,GAAG,OAAO;IAChC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;CACzB;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,SAAS,CAAC,CAAC,GAAG,OAAO;IACpC;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IAE7C;;;;OAIG;IACH,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;CAC3C;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;AAE9D;;;;;GAKG;AACH,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAE7C;;;;;;;;;;;;;;GAcG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA2C;IAClE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;gBAEtB,OAAO,EAAE,OAAO;IAI5B;;;OAGG;IACH,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS;IAIvC;;;;;;;;;OASG;IACH,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;IAI/B;;;OAGG;IACH,KAAK,IAAI,IAAI;IAIb,OAAO,CAAC,YAAY;CAwCrB;AAWD,wBAAgB,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAY3D"}
@@ -0,0 +1,145 @@
1
+ /**
2
+ * Attribute grammar for layout — type system + topological interpreter.
3
+ *
4
+ * Foundation for Spineless Traversal: re-expresses the imperative
5
+ * flex algorithm as a set of field-level dependencies. Each layout
6
+ * field (a `(Node, attribute-name)` pair) has a rule that computes
7
+ * its value from other fields it depends on. The runtime evaluates
8
+ * fields in topological order; mutations only propagate to fields
9
+ * that actually change.
10
+ *
11
+ * ## What this file ships (Phase 5a foundation)
12
+ *
13
+ * - **Types** — `Field`, `FieldRule`, `Grammar`. The clean abstractions
14
+ * the Spineless runtime will consume.
15
+ * - **`TopoInterpreter`** — naive topological evaluator. Given a
16
+ * grammar + a root field, walks the dependency DAG and evaluates
17
+ * every reachable field in order. Used both as a correctness oracle
18
+ * (Spineless runtime asserts byte-identical outputs) and as a
19
+ * reference for understanding the grammar.
20
+ *
21
+ * **The interpreter is NOT incremental.** It always evaluates every
22
+ * reachable field from scratch. The Spineless runtime (next sub-phase)
23
+ * makes it incremental by only recomputing fields whose dependencies
24
+ * changed.
25
+ *
26
+ * ## What this file does NOT ship
27
+ *
28
+ * - The actual flexbox grammar — that's `grammar/flex.ts` in the next
29
+ * sub-phase, ~2-3 weeks of work expressing ~50 layout fields with
30
+ * their dependencies (mirroring the paper's Megatron implementation).
31
+ * - The Spineless runtime — that's `runtime.ts`, ~3-4 weeks of work
32
+ * wiring OM + priority queue + grammar interpreter into an
33
+ * incremental driver.
34
+ *
35
+ * ## Type-level note: generics are erased
36
+ *
37
+ * The type system is structurally typed: `Field<T>` carries the
38
+ * value type only as a phantom for documentation. At runtime we
39
+ * store/read via the type-erased `Field` union; consumers cast at the
40
+ * read site. This keeps the runtime free of type-tag overhead.
41
+ *
42
+ * @internal
43
+ */
44
+ import { allocateFieldId } from './field-id-pool.js';
45
+ /**
46
+ * Naive topological interpreter. Evaluates every reachable field in
47
+ * the grammar from scratch on each `evaluate()` call. No incrementality.
48
+ *
49
+ * Two roles:
50
+ * 1. **Correctness oracle.** Once the full flex grammar lands, the
51
+ * Spineless runtime's incremental output must match the interpreter's
52
+ * output byte-for-byte. Differential mode runs both in parallel and
53
+ * asserts equality.
54
+ * 2. **Bootstrap path.** Lets us validate grammar correctness
55
+ * independently of the Spineless runtime, so the two big pieces
56
+ * (grammar + runtime) can be developed and tested separately.
57
+ *
58
+ * @internal
59
+ */
60
+ export class TopoInterpreter {
61
+ values = new Map();
62
+ grammar;
63
+ constructor(grammar) {
64
+ this.grammar = grammar;
65
+ }
66
+ /**
67
+ * Read the current value of a field. Returns `undefined` if the
68
+ * field has never been computed (call `evaluate(field)` first).
69
+ */
70
+ read(field) {
71
+ return this.values.get(field);
72
+ }
73
+ /**
74
+ * Evaluate `field` and all its transitive dependencies. Returns the
75
+ * computed value.
76
+ *
77
+ * Topological evaluation via DFS: for each field, recursively
78
+ * evaluate its dependencies first, then run the field's rule.
79
+ *
80
+ * Detects cycles via a "visiting" set; throws on cycle. The flex
81
+ * grammar must be acyclic by construction.
82
+ */
83
+ evaluate(field) {
84
+ return this.evalInternal(field, new Set());
85
+ }
86
+ /**
87
+ * Reset all cached values. Forces re-evaluation on the next
88
+ * `evaluate()` call. Used by tests and the differential harness.
89
+ */
90
+ reset() {
91
+ this.values.clear();
92
+ }
93
+ evalInternal(field, visiting) {
94
+ if (this.values.has(field))
95
+ return this.values.get(field);
96
+ if (visiting.has(field)) {
97
+ throw new Error(`[pilates grammar] cycle detected: field "${field.name}" on node depends on itself transitively`);
98
+ }
99
+ visiting.add(field);
100
+ const rule = this.grammar.get(field);
101
+ if (rule === undefined) {
102
+ throw new Error(`[pilates grammar] no rule for field "${field.name}". Did you forget to register it?`);
103
+ }
104
+ // Recursively evaluate every dependency first.
105
+ for (const dep of rule.deps) {
106
+ this.evalInternal(dep, visiting);
107
+ }
108
+ // All deps are now in `this.values`. Build the read fn restricted
109
+ // to declared deps (catches grammar bugs where compute reads a
110
+ // field not in its deps list).
111
+ const declaredDeps = new Set(rule.deps);
112
+ const read = (dep) => {
113
+ if (!declaredDeps.has(dep)) {
114
+ throw new Error(`[pilates grammar] rule for "${field.name}" reads "${dep.name}" but did not declare it as a dependency`);
115
+ }
116
+ return this.values.get(dep);
117
+ };
118
+ const value = rule.compute(read);
119
+ this.values.set(field, value);
120
+ visiting.delete(field);
121
+ return value;
122
+ }
123
+ }
124
+ /**
125
+ * Create a `Field` with stable identity. The same `(node, name)` pair
126
+ * passed to `field(...)` returns the SAME object on subsequent calls,
127
+ * which is what makes `Map<Field, ...>` work as identity-keyed storage.
128
+ *
129
+ * @internal
130
+ */
131
+ const FIELD_REGISTRY = new WeakMap();
132
+ export function field(node, name) {
133
+ let perNode = FIELD_REGISTRY.get(node);
134
+ if (perNode === undefined) {
135
+ perNode = new Map();
136
+ FIELD_REGISTRY.set(node, perNode);
137
+ }
138
+ let f = perNode.get(name);
139
+ if (f === undefined) {
140
+ f = { node, name, id: allocateFieldId() };
141
+ perNode.set(name, f);
142
+ }
143
+ return f;
144
+ }
145
+ //# sourceMappingURL=grammar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grammar.js","sourceRoot":"","sources":["../../../src/algorithm/spineless/grammar.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,167 @@
1
+ /**
2
+ * `SpinelessLayout` — drives the Spineless incremental layout engine
3
+ * as a `calculateLayout`-equivalent (phase 8).
4
+ *
5
+ * The grammar (`buildFlexGrammar`) + runtime (`SpinelessRuntime`)
6
+ * compute each node's `{width, height, left, top}` in floating-point
7
+ * space; this driver writes those into `node._layout`, then runs
8
+ * integer-cell rounding and a scroll-extent pass — mirroring the
9
+ * tail of the imperative `calculateLayoutImpl`.
10
+ *
11
+ * The driver persists the grammar + runtime between `layout()` calls
12
+ * and keeps every step incremental:
13
+ *
14
+ * - DETECTION (v22) — the `Node` dirty flags scope change detection
15
+ * to the mutated region.
16
+ * - VALUE relayout — `recompute()` reports the fields it changed;
17
+ * write-back, rounding and scroll-extents (v23) touch only the
18
+ * subtrees whose layout actually moved.
19
+ * - GRAFT relayout (v21) — a single child append patches the
20
+ * runtime via `buildAppendFragment` + `graft`.
21
+ * - full REBUILD — any other structural change.
22
+ *
23
+ * @internal
24
+ */
25
+ import type { Node } from '../../node.js';
26
+ /**
27
+ * A record of what one layout call did — the observability surface
28
+ * phase 9 builds on. `path` names the engine route; the counts
29
+ * quantify how incremental the call was. Surfaced to consumers via
30
+ * `setLayoutProfiler` (see `algorithm/index.ts`).
31
+ */
32
+ export interface LayoutTrace {
33
+ /**
34
+ * Engine path the call took. `SpinelessLayout` sets `build` /
35
+ * `graft` / `detach` / `reorder` / `incremental`; the public
36
+ * `calculateLayout` reports `imperative` for a call the Spineless
37
+ * engine did not serve (a root's first / cold layout).
38
+ */
39
+ path: 'imperative' | 'build' | 'graft' | 'detach' | 'reorder' | 'incremental';
40
+ /** Nodes the dirty-flag walk classified as dirty (0 on a build). */
41
+ dirtyNodes: number;
42
+ /** Grammar Fields the runtime re-ran (0 on a pure build — a build
43
+ * computes every Field once during `init`, not via `recompute`). */
44
+ fieldsRecomputed: number;
45
+ /** Of those, Fields whose value actually changed. */
46
+ fieldsChanged: number;
47
+ /** Maximal moved-subtree roots written back. 0 on build — that path
48
+ * finishes the whole tree. Structural fast-paths report the scoped
49
+ * roots their `finishMoved` writes back. */
50
+ movedSubtrees: number;
51
+ }
52
+ /**
53
+ * A layout driver bound to one root `Node`. Call `layout()` to
54
+ * produce a layout byte-equivalent to imperative `calculateLayout`;
55
+ * repeat calls reuse the runtime, relaying incrementally.
56
+ *
57
+ * @internal
58
+ */
59
+ export declare class SpinelessLayout {
60
+ private readonly root;
61
+ private built;
62
+ /** Build / relayout counters — for tests and diagnostics. */
63
+ readonly stats: {
64
+ fullBuilds: number;
65
+ incrementalRelayouts: number;
66
+ graftRelayouts: number;
67
+ detachRelayouts: number;
68
+ reorderRelayouts: number;
69
+ };
70
+ /** What the most recent `layout()` call did (phase 9). */
71
+ private _lastTrace;
72
+ constructor(root: Node);
73
+ /** The `LayoutTrace` of the most recent `layout()` call, or `null`
74
+ * if `layout()` has not run yet. */
75
+ get lastTrace(): LayoutTrace | null;
76
+ /**
77
+ * Lay the tree out. `availableWidth` / `availableHeight` size an
78
+ * `'auto'` root, matching `calculateLayout`'s availability args.
79
+ */
80
+ layout(availableWidth?: number, availableHeight?: number): void;
81
+ /** Discard any persisted state and build the grammar afresh. */
82
+ private fullBuild;
83
+ /**
84
+ * Fast-path a structural change that is exactly a single child
85
+ * append at `pivot`: `buildAppendFragment` + `graft`, no whole-tree
86
+ * rebuild. Returns `null` (and changes nothing) when the change is
87
+ * not a clean append the fast-path covers — the caller then tries
88
+ * the next fast-path / rebuilds.
89
+ *
90
+ * The classifier supplies `pivot` — a dirty node whose snapshot
91
+ * exists (so sig / measure are unchanged) and whose children list
92
+ * differs from its snap's. The validator inspects ONLY pivot's
93
+ * children, not the whole tree.
94
+ */
95
+ private tryGraftAppend;
96
+ /**
97
+ * Fast-path a structural change that is exactly a single subtree
98
+ * removal at `pivot`: `buildRemoveFragment` + `rebindRule` /
99
+ * `detach`, no whole-tree rebuild. Returns `null` (changing nothing)
100
+ * when the change is not a clean removal — the caller then tries
101
+ * the next fast-path / rebuilds.
102
+ *
103
+ * `buildRemoveFragment` must see the removed `child` still attached
104
+ * (its regime check reads the parent's live child list and it walks
105
+ * the subtree for the fields to detach), but by the time `layout()`
106
+ * runs the caller has already detached it — so the removed subtree
107
+ * is briefly re-inserted at its old index for the fragment build,
108
+ * then detached again.
109
+ *
110
+ * The classifier supplies `pivot` — the parent whose children list
111
+ * differs from its snap's. The validator inspects ONLY pivot's
112
+ * children, not the whole tree.
113
+ */
114
+ private tryDetachRemove;
115
+ /**
116
+ * Fast-path a structural change that is exactly `pivot`'s children
117
+ * being reordered (a permutation — no node added or removed):
118
+ * `buildReorderFragment` + `rebindRule`, no whole-tree rebuild.
119
+ * Returns `null` (changing nothing) when the change is not a clean
120
+ * single-parent reorder — the caller then rebuilds.
121
+ *
122
+ * The classifier supplies `pivot` — the single node whose children
123
+ * list differs from its snap's. The validator inspects ONLY pivot's
124
+ * children, not the whole tree.
125
+ */
126
+ private tryReorder;
127
+ /**
128
+ * Value relayout: re-`markDirty` only the input Fields of the dirty
129
+ * nodes (plus the root `available:*` inputs) whose value drifted,
130
+ * then `recompute()`. Returns the maximal subtree roots whose
131
+ * layout moved — for `finishMoved` to write back.
132
+ */
133
+ private relayoutValues;
134
+ /**
135
+ * Re-`markDirty` only the input Fields of the dirty nodes (plus the
136
+ * root `available:*` inputs) whose live value drifted from the
137
+ * runtime's stored value. Shared by every relayout path — the value
138
+ * relayout and all three structural fast-paths.
139
+ *
140
+ * Iterates O(dirty inputs), not O(built.inputs) — every value
141
+ * mutation marks its owning node dirty, so non-dirty nodes can't
142
+ * have drifted inputs.
143
+ */
144
+ private markDriftedInputs;
145
+ /** Push new `available` values into the holder the grammar closes over. */
146
+ private applyAvailable;
147
+ /** Write-back + round + scroll the whole tree (after a build / graft). */
148
+ private finishWhole;
149
+ /**
150
+ * Reduce a set of changed Fields to the maximal moved-subtree roots.
151
+ * Used by the structural fast-paths to determine which subtrees need
152
+ * write-back after an incremental recompute.
153
+ */
154
+ private movedSubtreeRoots;
155
+ /**
156
+ * Write-back + round + scroll, scoped to the subtrees that moved.
157
+ * A moved subtree's parent did not move, so its rounding is stable
158
+ * and the subtree can be re-rounded in isolation; only that
159
+ * parent's own scroll extent then needs a recompute.
160
+ *
161
+ * `extraScrollParents` are additional nodes whose scroll extents
162
+ * must be recomputed — used by structural fast-paths to include
163
+ * the surviving parent of a removed or reordered subtree.
164
+ */
165
+ private finishMoved;
166
+ }
167
+ //# sourceMappingURL=layout.d.ts.map