@pilates/core 1.0.0 → 1.1.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 (53) hide show
  1. package/dist/algorithm/index.d.ts +31 -0
  2. package/dist/algorithm/index.d.ts.map +1 -1
  3. package/dist/algorithm/index.js +85 -1
  4. package/dist/algorithm/index.js.map +1 -1
  5. package/dist/algorithm/round.d.ts +13 -0
  6. package/dist/algorithm/round.d.ts.map +1 -1
  7. package/dist/algorithm/round.js +17 -0
  8. package/dist/algorithm/round.js.map +1 -1
  9. package/dist/algorithm/spineless/flex-grammar.d.ts +394 -0
  10. package/dist/algorithm/spineless/flex-grammar.d.ts.map +1 -0
  11. package/dist/algorithm/spineless/flex-grammar.js +2373 -0
  12. package/dist/algorithm/spineless/flex-grammar.js.map +1 -0
  13. package/dist/algorithm/spineless/grammar.d.ts +150 -0
  14. package/dist/algorithm/spineless/grammar.d.ts.map +1 -0
  15. package/dist/algorithm/spineless/grammar.js +144 -0
  16. package/dist/algorithm/spineless/grammar.js.map +1 -0
  17. package/dist/algorithm/spineless/layout.d.ts +130 -0
  18. package/dist/algorithm/spineless/layout.d.ts.map +1 -0
  19. package/dist/algorithm/spineless/layout.js +755 -0
  20. package/dist/algorithm/spineless/layout.js.map +1 -0
  21. package/dist/algorithm/spineless/order-maintenance.bench.d.ts +25 -0
  22. package/dist/algorithm/spineless/order-maintenance.bench.d.ts.map +1 -0
  23. package/dist/algorithm/spineless/order-maintenance.bench.js +78 -0
  24. package/dist/algorithm/spineless/order-maintenance.bench.js.map +1 -0
  25. package/dist/algorithm/spineless/order-maintenance.d.ts +192 -0
  26. package/dist/algorithm/spineless/order-maintenance.d.ts.map +1 -0
  27. package/dist/algorithm/spineless/order-maintenance.js +294 -0
  28. package/dist/algorithm/spineless/order-maintenance.js.map +1 -0
  29. package/dist/algorithm/spineless/priority-queue.bench.d.ts +17 -0
  30. package/dist/algorithm/spineless/priority-queue.bench.d.ts.map +1 -0
  31. package/dist/algorithm/spineless/priority-queue.bench.js +57 -0
  32. package/dist/algorithm/spineless/priority-queue.bench.js.map +1 -0
  33. package/dist/algorithm/spineless/priority-queue.d.ts +73 -0
  34. package/dist/algorithm/spineless/priority-queue.d.ts.map +1 -0
  35. package/dist/algorithm/spineless/priority-queue.js +149 -0
  36. package/dist/algorithm/spineless/priority-queue.js.map +1 -0
  37. package/dist/algorithm/spineless/runtime.d.ts +239 -0
  38. package/dist/algorithm/spineless/runtime.d.ts.map +1 -0
  39. package/dist/algorithm/spineless/runtime.js +458 -0
  40. package/dist/algorithm/spineless/runtime.js.map +1 -0
  41. package/dist/algorithm/spineless/style-dirty.d.ts +65 -0
  42. package/dist/algorithm/spineless/style-dirty.d.ts.map +1 -0
  43. package/dist/algorithm/spineless/style-dirty.js +75 -0
  44. package/dist/algorithm/spineless/style-dirty.js.map +1 -0
  45. package/dist/index.d.ts +3 -1
  46. package/dist/index.d.ts.map +1 -1
  47. package/dist/index.js +6 -1
  48. package/dist/index.js.map +1 -1
  49. package/dist/inspect.d.ts +27 -0
  50. package/dist/inspect.d.ts.map +1 -0
  51. package/dist/inspect.js +61 -0
  52. package/dist/inspect.js.map +1 -0
  53. 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,150 @@
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
+ * Phantom marker for the value type. Never read at runtime.
61
+ * @internal
62
+ */
63
+ readonly _valueType?: T;
64
+ }
65
+ /**
66
+ * A rule that computes the value of one field from its dependencies.
67
+ *
68
+ * `compute` is a pure function over the values of `deps`. It must not
69
+ * read any field outside `deps` and must not have side effects.
70
+ *
71
+ * The interpreter / Spineless runtime enforces this by passing a
72
+ * `GraphRead` to `compute` that exposes only fields in `deps`.
73
+ *
74
+ * @internal
75
+ */
76
+ export interface FieldRule<T = unknown> {
77
+ /**
78
+ * The fields this rule reads. The interpreter walks these
79
+ * transitively to discover the full dependency DAG.
80
+ */
81
+ readonly deps: ReadonlyArray<Field<unknown>>;
82
+ /**
83
+ * Compute the field's value from its dependencies' current values.
84
+ * `read(dep)` returns the cached value of `dep` (or throws if `dep`
85
+ * is not in `deps`).
86
+ */
87
+ compute(read: <U>(dep: Field<U>) => U): T;
88
+ }
89
+ /**
90
+ * The grammar — map from each field to its computation rule. The
91
+ * Spineless runtime queries this map on every recompute.
92
+ *
93
+ * Identity-keyed: `Field` instances are used as keys directly. The
94
+ * caller is responsible for allocating each logical field exactly
95
+ * once and reusing the same `Field` object.
96
+ *
97
+ * @internal
98
+ */
99
+ export type Grammar = Map<Field<unknown>, FieldRule<unknown>>;
100
+ /**
101
+ * Read-side interface used internally by `compute` callbacks. Returns
102
+ * the current value of a dependency field.
103
+ *
104
+ * @internal
105
+ */
106
+ export type ReadFn = <U>(dep: Field<U>) => U;
107
+ /**
108
+ * Naive topological interpreter. Evaluates every reachable field in
109
+ * the grammar from scratch on each `evaluate()` call. No incrementality.
110
+ *
111
+ * Two roles:
112
+ * 1. **Correctness oracle.** Once the full flex grammar lands, the
113
+ * Spineless runtime's incremental output must match the interpreter's
114
+ * output byte-for-byte. Differential mode runs both in parallel and
115
+ * asserts equality.
116
+ * 2. **Bootstrap path.** Lets us validate grammar correctness
117
+ * independently of the Spineless runtime, so the two big pieces
118
+ * (grammar + runtime) can be developed and tested separately.
119
+ *
120
+ * @internal
121
+ */
122
+ export declare class TopoInterpreter {
123
+ private readonly values;
124
+ private readonly grammar;
125
+ constructor(grammar: Grammar);
126
+ /**
127
+ * Read the current value of a field. Returns `undefined` if the
128
+ * field has never been computed (call `evaluate(field)` first).
129
+ */
130
+ read<T>(field: Field<T>): T | undefined;
131
+ /**
132
+ * Evaluate `field` and all its transitive dependencies. Returns the
133
+ * computed value.
134
+ *
135
+ * Topological evaluation via DFS: for each field, recursively
136
+ * evaluate its dependencies first, then run the field's rule.
137
+ *
138
+ * Detects cycles via a "visiting" set; throws on cycle. The flex
139
+ * grammar must be acyclic by construction.
140
+ */
141
+ evaluate<T>(field: Field<T>): T;
142
+ /**
143
+ * Reset all cached values. Forces re-evaluation on the next
144
+ * `evaluate()` call. Used by tests and the differential harness.
145
+ */
146
+ reset(): void;
147
+ private evalInternal;
148
+ }
149
+ export declare function field<T>(node: Node, name: string): Field<T>;
150
+ //# 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;AAE1C;;;;;;;;;;GAUG;AACH,MAAM,WAAW,KAAK,CAAC,CAAC,GAAG,OAAO;IAChC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;;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,144 @@
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
+ /**
45
+ * Naive topological interpreter. Evaluates every reachable field in
46
+ * the grammar from scratch on each `evaluate()` call. No incrementality.
47
+ *
48
+ * Two roles:
49
+ * 1. **Correctness oracle.** Once the full flex grammar lands, the
50
+ * Spineless runtime's incremental output must match the interpreter's
51
+ * output byte-for-byte. Differential mode runs both in parallel and
52
+ * asserts equality.
53
+ * 2. **Bootstrap path.** Lets us validate grammar correctness
54
+ * independently of the Spineless runtime, so the two big pieces
55
+ * (grammar + runtime) can be developed and tested separately.
56
+ *
57
+ * @internal
58
+ */
59
+ export class TopoInterpreter {
60
+ values = new Map();
61
+ grammar;
62
+ constructor(grammar) {
63
+ this.grammar = grammar;
64
+ }
65
+ /**
66
+ * Read the current value of a field. Returns `undefined` if the
67
+ * field has never been computed (call `evaluate(field)` first).
68
+ */
69
+ read(field) {
70
+ return this.values.get(field);
71
+ }
72
+ /**
73
+ * Evaluate `field` and all its transitive dependencies. Returns the
74
+ * computed value.
75
+ *
76
+ * Topological evaluation via DFS: for each field, recursively
77
+ * evaluate its dependencies first, then run the field's rule.
78
+ *
79
+ * Detects cycles via a "visiting" set; throws on cycle. The flex
80
+ * grammar must be acyclic by construction.
81
+ */
82
+ evaluate(field) {
83
+ return this.evalInternal(field, new Set());
84
+ }
85
+ /**
86
+ * Reset all cached values. Forces re-evaluation on the next
87
+ * `evaluate()` call. Used by tests and the differential harness.
88
+ */
89
+ reset() {
90
+ this.values.clear();
91
+ }
92
+ evalInternal(field, visiting) {
93
+ if (this.values.has(field))
94
+ return this.values.get(field);
95
+ if (visiting.has(field)) {
96
+ throw new Error(`[pilates grammar] cycle detected: field "${field.name}" on node depends on itself transitively`);
97
+ }
98
+ visiting.add(field);
99
+ const rule = this.grammar.get(field);
100
+ if (rule === undefined) {
101
+ throw new Error(`[pilates grammar] no rule for field "${field.name}". Did you forget to register it?`);
102
+ }
103
+ // Recursively evaluate every dependency first.
104
+ for (const dep of rule.deps) {
105
+ this.evalInternal(dep, visiting);
106
+ }
107
+ // All deps are now in `this.values`. Build the read fn restricted
108
+ // to declared deps (catches grammar bugs where compute reads a
109
+ // field not in its deps list).
110
+ const declaredDeps = new Set(rule.deps);
111
+ const read = (dep) => {
112
+ if (!declaredDeps.has(dep)) {
113
+ throw new Error(`[pilates grammar] rule for "${field.name}" reads "${dep.name}" but did not declare it as a dependency`);
114
+ }
115
+ return this.values.get(dep);
116
+ };
117
+ const value = rule.compute(read);
118
+ this.values.set(field, value);
119
+ visiting.delete(field);
120
+ return value;
121
+ }
122
+ }
123
+ /**
124
+ * Create a `Field` with stable identity. The same `(node, name)` pair
125
+ * passed to `field(...)` returns the SAME object on subsequent calls,
126
+ * which is what makes `Map<Field, ...>` work as identity-keyed storage.
127
+ *
128
+ * @internal
129
+ */
130
+ const FIELD_REGISTRY = new WeakMap();
131
+ export function field(node, name) {
132
+ let perNode = FIELD_REGISTRY.get(node);
133
+ if (perNode === undefined) {
134
+ perNode = new Map();
135
+ FIELD_REGISTRY.set(node, perNode);
136
+ }
137
+ let f = perNode.get(name);
138
+ if (f === undefined) {
139
+ f = { node, name };
140
+ perNode.set(name, f);
141
+ }
142
+ return f;
143
+ }
144
+ //# 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,130 @@
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 / graft —
48
+ * those finish whole-tree. */
49
+ movedSubtrees: number;
50
+ }
51
+ /**
52
+ * A layout driver bound to one root `Node`. Call `layout()` to
53
+ * produce a layout byte-equivalent to imperative `calculateLayout`;
54
+ * repeat calls reuse the runtime, relaying incrementally.
55
+ *
56
+ * @internal
57
+ */
58
+ export declare class SpinelessLayout {
59
+ private readonly root;
60
+ private built;
61
+ /** Build / relayout counters — for tests and diagnostics. */
62
+ readonly stats: {
63
+ fullBuilds: number;
64
+ incrementalRelayouts: number;
65
+ graftRelayouts: number;
66
+ detachRelayouts: number;
67
+ reorderRelayouts: number;
68
+ };
69
+ /** What the most recent `layout()` call did (phase 9). */
70
+ private _lastTrace;
71
+ constructor(root: Node);
72
+ /** The `LayoutTrace` of the most recent `layout()` call, or `null`
73
+ * if `layout()` has not run yet. */
74
+ get lastTrace(): LayoutTrace | null;
75
+ /**
76
+ * Lay the tree out. `availableWidth` / `availableHeight` size an
77
+ * `'auto'` root, matching `calculateLayout`'s availability args.
78
+ */
79
+ layout(availableWidth?: number, availableHeight?: number): void;
80
+ /** Discard any persisted state and build the grammar afresh. */
81
+ private fullBuild;
82
+ /**
83
+ * Fast-path a structural change that is exactly a single child
84
+ * append: `buildAppendFragment` + `graft`, no whole-tree rebuild.
85
+ * Returns `false` (and changes nothing) when the change is not a
86
+ * clean append the fast-path covers — the caller then rebuilds.
87
+ */
88
+ private tryGraftAppend;
89
+ /**
90
+ * Fast-path a structural change that is exactly a single subtree
91
+ * removal: `buildRemoveFragment` + `rebindRule` / `detach`, no
92
+ * whole-tree rebuild. Returns `false` (changing nothing) when the
93
+ * change is not a clean removal — the caller then rebuilds.
94
+ *
95
+ * `buildRemoveFragment` must see the removed `child` still attached
96
+ * (its regime check reads the parent's live child list and it walks
97
+ * the subtree for the fields to detach), but by the time `layout()`
98
+ * runs the caller has already detached it — so the removed subtree
99
+ * is briefly re-inserted at its old index for the fragment build,
100
+ * then detached again.
101
+ */
102
+ private tryDetachRemove;
103
+ /**
104
+ * Fast-path a structural change that is exactly one parent's
105
+ * children being reordered (a permutation — no node added or
106
+ * removed): `buildReorderFragment` + `rebindRule`, no whole-tree
107
+ * rebuild. Returns `false` (changing nothing) when the change is
108
+ * not a clean single-parent reorder — the caller then rebuilds.
109
+ */
110
+ private tryReorder;
111
+ /**
112
+ * Value relayout: re-`markDirty` only the input Fields of the dirty
113
+ * nodes (plus the root `available:*` inputs) whose value drifted,
114
+ * then `recompute()`. Returns the maximal subtree roots whose
115
+ * layout moved — for `finishIncremental` to write back.
116
+ */
117
+ private relayoutValues;
118
+ /** Push new `available` values into the holder the grammar closes over. */
119
+ private applyAvailable;
120
+ /** Write-back + round + scroll the whole tree (after a build / graft). */
121
+ private finishWhole;
122
+ /**
123
+ * Write-back + round + scroll, scoped to the subtrees that moved.
124
+ * A moved subtree's parent did not move, so its rounding is stable
125
+ * and the subtree can be re-rounded in isolation; only that
126
+ * parent's own scroll extent then needs a recompute.
127
+ */
128
+ private finishIncremental;
129
+ }
130
+ //# sourceMappingURL=layout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../../src/algorithm/spineless/layout.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAGH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AA2B1C;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;;OAKG;IACH,IAAI,EAAE,YAAY,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,aAAa,CAAC;IAC9E,oEAAoE;IACpE,UAAU,EAAE,MAAM,CAAC;IACnB;yEACqE;IACrE,gBAAgB,EAAE,MAAM,CAAC;IACzB,qDAAqD;IACrD,aAAa,EAAE,MAAM,CAAC;IACtB;mCAC+B;IAC/B,aAAa,EAAE,MAAM,CAAC;CACvB;AAyJD;;;;;;GAMG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAO;IAC5B,OAAO,CAAC,KAAK,CAAsB;IAEnC,6DAA6D;IAC7D,QAAQ,CAAC,KAAK;;;;;;MAMZ;IAEF,0DAA0D;IAC1D,OAAO,CAAC,UAAU,CAA4B;gBAElC,IAAI,EAAE,IAAI;IAItB;yCACqC;IACrC,IAAI,SAAS,IAAI,WAAW,GAAG,IAAI,CAElC;IAED;;;OAGG;IACH,MAAM,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI;IAsF/D,gEAAgE;IAChE,OAAO,CAAC,SAAS;IAkCjB;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IAsEtB;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,eAAe;IAsGvB;;;;;;OAMG;IACH,OAAO,CAAC,UAAU;IAiElB;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IA+CtB,2EAA2E;IAC3E,OAAO,CAAC,cAAc;IAMtB,0EAA0E;IAC1E,OAAO,CAAC,WAAW;IAUnB;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;CA8B1B"}