@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.
- package/dist/algorithm/cache.d.ts +7 -19
- package/dist/algorithm/cache.d.ts.map +1 -1
- package/dist/algorithm/cache.js +31 -27
- package/dist/algorithm/cache.js.map +1 -1
- package/dist/algorithm/index.d.ts +31 -0
- package/dist/algorithm/index.d.ts.map +1 -1
- package/dist/algorithm/index.js +105 -13
- package/dist/algorithm/index.js.map +1 -1
- package/dist/algorithm/round.d.ts +13 -0
- package/dist/algorithm/round.d.ts.map +1 -1
- package/dist/algorithm/round.js +33 -16
- package/dist/algorithm/round.js.map +1 -1
- package/dist/algorithm/spineless/classify.d.ts +47 -0
- package/dist/algorithm/spineless/classify.d.ts.map +1 -0
- package/dist/algorithm/spineless/classify.js +109 -0
- package/dist/algorithm/spineless/classify.js.map +1 -0
- package/dist/algorithm/spineless/field-id-pool.d.ts +28 -0
- package/dist/algorithm/spineless/field-id-pool.d.ts.map +1 -0
- package/dist/algorithm/spineless/field-id-pool.js +35 -0
- package/dist/algorithm/spineless/field-id-pool.js.map +1 -0
- package/dist/algorithm/spineless/flex-grammar.d.ts +394 -0
- package/dist/algorithm/spineless/flex-grammar.d.ts.map +1 -0
- package/dist/algorithm/spineless/flex-grammar.js +2509 -0
- package/dist/algorithm/spineless/flex-grammar.js.map +1 -0
- package/dist/algorithm/spineless/grammar.d.ts +156 -0
- package/dist/algorithm/spineless/grammar.d.ts.map +1 -0
- package/dist/algorithm/spineless/grammar.js +145 -0
- package/dist/algorithm/spineless/grammar.js.map +1 -0
- package/dist/algorithm/spineless/layout.d.ts +167 -0
- package/dist/algorithm/spineless/layout.d.ts.map +1 -0
- package/dist/algorithm/spineless/layout.js +893 -0
- package/dist/algorithm/spineless/layout.js.map +1 -0
- package/dist/algorithm/spineless/order-maintenance.bench.d.ts +25 -0
- package/dist/algorithm/spineless/order-maintenance.bench.d.ts.map +1 -0
- package/dist/algorithm/spineless/order-maintenance.bench.js +78 -0
- package/dist/algorithm/spineless/order-maintenance.bench.js.map +1 -0
- package/dist/algorithm/spineless/order-maintenance.d.ts +201 -0
- package/dist/algorithm/spineless/order-maintenance.d.ts.map +1 -0
- package/dist/algorithm/spineless/order-maintenance.js +300 -0
- package/dist/algorithm/spineless/order-maintenance.js.map +1 -0
- package/dist/algorithm/spineless/priority-queue.bench.d.ts +17 -0
- package/dist/algorithm/spineless/priority-queue.bench.d.ts.map +1 -0
- package/dist/algorithm/spineless/priority-queue.bench.js +57 -0
- package/dist/algorithm/spineless/priority-queue.bench.js.map +1 -0
- package/dist/algorithm/spineless/priority-queue.d.ts +73 -0
- package/dist/algorithm/spineless/priority-queue.d.ts.map +1 -0
- package/dist/algorithm/spineless/priority-queue.js +149 -0
- package/dist/algorithm/spineless/priority-queue.js.map +1 -0
- package/dist/algorithm/spineless/runtime.d.ts +292 -0
- package/dist/algorithm/spineless/runtime.d.ts.map +1 -0
- package/dist/algorithm/spineless/runtime.js +609 -0
- package/dist/algorithm/spineless/runtime.js.map +1 -0
- package/dist/algorithm/spineless/style-dirty.d.ts +65 -0
- package/dist/algorithm/spineless/style-dirty.d.ts.map +1 -0
- package/dist/algorithm/spineless/style-dirty.js +75 -0
- package/dist/algorithm/spineless/style-dirty.js.map +1 -0
- package/dist/dirty-flags.d.ts +30 -0
- package/dist/dirty-flags.d.ts.map +1 -0
- package/dist/dirty-flags.js +35 -0
- package/dist/dirty-flags.js.map +1 -0
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -1
- package/dist/index.js.map +1 -1
- package/dist/inspect.d.ts +27 -0
- package/dist/inspect.d.ts.map +1 -0
- package/dist/inspect.js +61 -0
- package/dist/inspect.js.map +1 -0
- package/dist/layout-pool.d.ts +49 -0
- package/dist/layout-pool.d.ts.map +1 -0
- package/dist/layout-pool.js +75 -0
- package/dist/layout-pool.js.map +1 -0
- package/dist/node.d.ts +20 -3
- package/dist/node.d.ts.map +1 -1
- package/dist/node.js +63 -42
- package/dist/node.js.map +1 -1
- 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
|