@fundamental-engine/dom 0.9.2 → 0.9.3
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/browser-host.js.map +1 -1
- package/dist/container-host.d.ts +1 -1
- package/dist/container-host.d.ts.map +1 -1
- package/dist/container-host.js +16 -0
- package/dist/container-host.js.map +1 -1
- package/dist/dev-warn.d.ts +16 -0
- package/dist/dev-warn.d.ts.map +1 -0
- package/dist/dev-warn.js +53 -0
- package/dist/dev-warn.js.map +1 -0
- package/dist/feedback.d.ts +5 -0
- package/dist/feedback.d.ts.map +1 -1
- package/dist/feedback.js +22 -0
- package/dist/feedback.js.map +1 -1
- package/dist/governor.d.ts +6 -2
- package/dist/governor.d.ts.map +1 -1
- package/dist/governor.js +6 -2
- package/dist/governor.js.map +1 -1
- package/dist/lint.d.ts +30 -1
- package/dist/lint.d.ts.map +1 -1
- package/dist/lint.js +147 -0
- package/dist/lint.js.map +1 -1
- package/dist/measurement.d.ts +8 -1
- package/dist/measurement.d.ts.map +1 -1
- package/dist/measurement.js +15 -4
- package/dist/measurement.js.map +1 -1
- package/dist/relationships.d.ts.map +1 -1
- package/dist/relationships.js +5 -0
- package/dist/relationships.js.map +1 -1
- package/dist/state.d.ts +3 -0
- package/dist/state.d.ts.map +1 -1
- package/dist/state.js +6 -0
- package/dist/state.js.map +1 -1
- package/dist/visual-bindings.d.ts +0 -24
- package/dist/visual-bindings.d.ts.map +1 -1
- package/dist/visual-bindings.js +7 -2
- package/dist/visual-bindings.js.map +1 -1
- package/dist/worker/offthread-bridge.d.ts.map +1 -1
- package/dist/worker/offthread-bridge.js +31 -8
- package/dist/worker/offthread-bridge.js.map +1 -1
- package/dist/worker/render-worker.d.ts +3 -2
- package/dist/worker/render-worker.d.ts.map +1 -1
- package/dist/worker/render-worker.js +9 -3
- package/dist/worker/render-worker.js.map +1 -1
- package/dist/x-ray.d.ts.map +1 -1
- package/dist/x-ray.js +73 -13
- package/dist/x-ray.js.map +1 -1
- package/package.json +2 -2
package/dist/browser-host.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser-host.js","sourceRoot":"","sources":["../src/browser-host.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAEnE,MAAM,YAAY,GAAG,CAAC,aAAa,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,CAAU,CAAC;AAEhF,yDAAyD;AACzD,MAAM,UAAU,WAAW;IACzB,+FAA+F;IAC/F,gGAAgG;IAChG,uBAAuB,EAAE,CAAC;IAC1B,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,WAAW,EAAE,GAAG,EAAE,MAAM,CAAC,gBAAgB,IAAI,CAAC,EAAE,CAAC;QAC7G,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC;QAClC,YAAY,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,YAAY;QACzD,aAAa,EAAE,GAAG,EAAE,CAAC,oBAAoB,EAAE;QAC3C,MAAM,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE;QAC1B,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,qBAAqB,CAAC,EAAE,CAAC;QACtC,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,oBAAoB,CAAC,EAAE,CAAC;QAC3C,YAAY,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;QACpD,QAAQ,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"browser-host.js","sourceRoot":"","sources":["../src/browser-host.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAEnE,MAAM,YAAY,GAAG,CAAC,aAAa,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,CAAU,CAAC;AAEhF,yDAAyD;AACzD,MAAM,UAAU,WAAW;IACzB,+FAA+F;IAC/F,gGAAgG;IAChG,uBAAuB,EAAE,CAAC;IAC1B,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,WAAW,EAAE,GAAG,EAAE,MAAM,CAAC,gBAAgB,IAAI,CAAC,EAAE,CAAC;QAC7G,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC;QAClC,YAAY,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,YAAY;QACzD,aAAa,EAAE,GAAG,EAAE,CAAC,oBAAoB,EAAE;QAC3C,MAAM,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE;QAC1B,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,qBAAqB,CAAC,EAAE,CAAC;QACtC,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,oBAAoB,CAAC,EAAE,CAAC;QAC3C,YAAY,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;QACpD,QAAQ,EAAE,CAAC,EAAc,EAAE,EAAE;YAC3B,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YACzD,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACxD,CAAC;QACD,QAAQ,EAAE,CAAC,EAAc,EAAE,EAAE;YAC3B,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YACzD,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACxD,CAAC;QACD,YAAY,EAAE,CAAC,EAAc,EAAE,EAAE;YAC/B,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;YAClD,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;QACpE,CAAC;QACD,OAAO,EAAE,CAAC,EAAc,EAAE,EAAE;YAC1B,KAAK,MAAM,EAAE,IAAI,YAAY;gBAAE,MAAM,CAAC,gBAAgB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YAClF,OAAO,GAAG,EAAE;gBACV,KAAK,MAAM,EAAE,IAAI,YAAY;oBAAE,MAAM,CAAC,mBAAmB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YACpE,CAAC,CAAC;QACJ,CAAC;QACD,WAAW,EAAE,CAAC,IAAY,EAAE,EAAsB,EAAE,EAAE;YACpD,QAAQ,CAAC,gBAAgB,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACpC,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACtD,CAAC;KACF,CAAC;AACJ,CAAC"}
|
package/dist/container-host.d.ts
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* CONTAINED, card-sized field — pass `bounds: el` to `createField`/`FieldField`, or wire it directly:
|
|
7
7
|
* `createField(canvas, { host: containerHost(card) })`. The first concrete `FieldSurface` (#539).
|
|
8
8
|
*/
|
|
9
|
-
import type
|
|
9
|
+
import { type FieldHost } from '@fundamental-engine/core';
|
|
10
10
|
/** Build a FieldHost scoped to `el` — a contained field in the element's local coordinate space. */
|
|
11
11
|
export declare function containerHost(el: HTMLElement): FieldHost;
|
|
12
12
|
//# sourceMappingURL=container-host.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"container-host.d.ts","sourceRoot":"","sources":["../src/container-host.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"container-host.d.ts","sourceRoot":"","sources":["../src/container-host.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAuB,KAAK,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAK/E,oGAAoG;AACpG,wBAAgB,aAAa,CAAC,EAAE,EAAE,WAAW,GAAG,SAAS,CA4DxD"}
|
package/dist/container-host.js
CHANGED
|
@@ -1,9 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* containerHost — a {@link FieldHost} scoped to a single element instead of the window (#540). The
|
|
3
|
+
* field, its bodies, and its canvas all live in the container's local coordinate space: `viewport()`
|
|
4
|
+
* returns the element's size + its `left,top` as the field-space origin, `root` scans only inside the
|
|
5
|
+
* element, and scroll/resize/input are observed on the element. This is the supported way to render a
|
|
6
|
+
* CONTAINED, card-sized field — pass `bounds: el` to `createField`/`FieldField`, or wire it directly:
|
|
7
|
+
* `createField(canvas, { host: containerHost(card) })`. The first concrete `FieldSurface` (#539).
|
|
8
|
+
*/
|
|
9
|
+
import { FIELD_BOUNDARY_ATTR } from '@fundamental-engine/core';
|
|
1
10
|
import { prefersReducedMotion, pageHidden } from "./env.js";
|
|
2
11
|
const INPUT_EVENTS = ['pointerdown', 'wheel', 'keydown', 'touchstart'];
|
|
3
12
|
/** Build a FieldHost scoped to `el` — a contained field in the element's local coordinate space. */
|
|
4
13
|
export function containerHost(el) {
|
|
14
|
+
// Nearest-enclosing-field ownership (#980): mark the bounds element as a field boundary at
|
|
15
|
+
// attach, so an OUTER field's scan (the page `<field-root>` scans `document`) skips the bodies
|
|
16
|
+
// this contained field owns — two engines writing `--d` on the same elements is the per-frame
|
|
17
|
+
// flicker this prevents. Idempotent (setting an already-set marker is a no-op; a re-attach after
|
|
18
|
+
// destroy simply re-marks); `detach()` removes it so the outer field re-adopts on rescan.
|
|
19
|
+
el.setAttribute(FIELD_BOUNDARY_ATTR, '');
|
|
5
20
|
return {
|
|
6
21
|
root: el,
|
|
22
|
+
detach: () => el.removeAttribute(FIELD_BOUNDARY_ATTR),
|
|
7
23
|
viewport: () => {
|
|
8
24
|
const r = el.getBoundingClientRect();
|
|
9
25
|
// originX/Y = the container's viewport position → bodies/threads/moves are measured
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"container-host.js","sourceRoot":"","sources":["../src/container-host.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"container-host.js","sourceRoot":"","sources":["../src/container-host.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/** Turn dom dev warnings on or off explicitly (tests, or to silence in a specific env). */
|
|
2
|
+
export declare function setDomDevWarnings(on: boolean): void;
|
|
3
|
+
/** Dev-only, deduped `console.warn`. Deduped by `id`, so a call made every frame warns at most once. */
|
|
4
|
+
export declare function devWarn(id: string, message: string): void;
|
|
5
|
+
/** Clear the dedup set — for tests that assert a warn fires. */
|
|
6
|
+
export declare function resetDomDevWarnings(): void;
|
|
7
|
+
/**
|
|
8
|
+
* Track how often a named layout-traversing operation is invoked and warn ONCE if it is being called
|
|
9
|
+
* at frame frequency (more than `maxPerWindow` calls inside `windowMs`) — the "layout-traversal
|
|
10
|
+
* trap": `RelationshipRegistry.discover()` and `VisualBindingRegistry.scan()` walk the DOM with
|
|
11
|
+
* `querySelectorAll`, so running them every frame is a silent perf sink (they are meant to run on a
|
|
12
|
+
* throttle, e.g. `shouldDiscoverRelationships`'s every-30-frames cadence). Dev-only + deduped, so it
|
|
13
|
+
* fires at most once per `id` for the lifetime of the process. Returns nothing; never throws.
|
|
14
|
+
*/
|
|
15
|
+
export declare function warnIfFrameFrequent(id: string, hint: string, maxPerWindow?: number, windowMs?: number): void;
|
|
16
|
+
//# sourceMappingURL=dev-warn.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dev-warn.d.ts","sourceRoot":"","sources":["../src/dev-warn.ts"],"names":[],"mappings":"AAaA,2FAA2F;AAC3F,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI,CAEnD;AAID,wGAAwG;AACxG,wBAAgB,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAKzD;AAED,gEAAgE;AAChE,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,SAAK,EAAE,QAAQ,SAAO,GAAG,IAAI,CAUtG"}
|
package/dist/dev-warn.js
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dom-package dev diagnostics — a tiny, deduped, production-stripped `console.warn`, mirroring
|
|
3
|
+
* core's `devWarnNoOp` (packages/core/src/contracts/guards.ts) but local to this package (core's
|
|
4
|
+
* guard is internal and not on the public entry). A no-op unless checks are enabled, which default
|
|
5
|
+
* ON outside `NODE_ENV === 'production'`, so a bundler that defines `NODE_ENV` dead-code-eliminates
|
|
6
|
+
* the body. Never throws — advisory only.
|
|
7
|
+
*/
|
|
8
|
+
function defaultDev() {
|
|
9
|
+
const env = globalThis.process?.env;
|
|
10
|
+
return env?.NODE_ENV !== 'production';
|
|
11
|
+
}
|
|
12
|
+
let CHECKS = defaultDev();
|
|
13
|
+
/** Turn dom dev warnings on or off explicitly (tests, or to silence in a specific env). */
|
|
14
|
+
export function setDomDevWarnings(on) {
|
|
15
|
+
CHECKS = on;
|
|
16
|
+
}
|
|
17
|
+
const warnedOnce = new Set();
|
|
18
|
+
/** Dev-only, deduped `console.warn`. Deduped by `id`, so a call made every frame warns at most once. */
|
|
19
|
+
export function devWarn(id, message) {
|
|
20
|
+
if (!CHECKS)
|
|
21
|
+
return;
|
|
22
|
+
if (warnedOnce.has(id))
|
|
23
|
+
return;
|
|
24
|
+
warnedOnce.add(id);
|
|
25
|
+
console.warn(`[Fundamental:${id}] ${message}`);
|
|
26
|
+
}
|
|
27
|
+
/** Clear the dedup set — for tests that assert a warn fires. */
|
|
28
|
+
export function resetDomDevWarnings() {
|
|
29
|
+
warnedOnce.clear();
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Track how often a named layout-traversing operation is invoked and warn ONCE if it is being called
|
|
33
|
+
* at frame frequency (more than `maxPerWindow` calls inside `windowMs`) — the "layout-traversal
|
|
34
|
+
* trap": `RelationshipRegistry.discover()` and `VisualBindingRegistry.scan()` walk the DOM with
|
|
35
|
+
* `querySelectorAll`, so running them every frame is a silent perf sink (they are meant to run on a
|
|
36
|
+
* throttle, e.g. `shouldDiscoverRelationships`'s every-30-frames cadence). Dev-only + deduped, so it
|
|
37
|
+
* fires at most once per `id` for the lifetime of the process. Returns nothing; never throws.
|
|
38
|
+
*/
|
|
39
|
+
export function warnIfFrameFrequent(id, hint, maxPerWindow = 20, windowMs = 1000) {
|
|
40
|
+
if (!CHECKS)
|
|
41
|
+
return;
|
|
42
|
+
const now = typeof performance !== 'undefined' && performance.now ? performance.now() : Date.now();
|
|
43
|
+
const rec = frequency.get(id);
|
|
44
|
+
if (!rec || now - rec.windowStart > windowMs) {
|
|
45
|
+
frequency.set(id, { windowStart: now, count: 1 });
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
rec.count++;
|
|
49
|
+
if (rec.count > maxPerWindow)
|
|
50
|
+
devWarn(`FREQUENT_${id}`, hint);
|
|
51
|
+
}
|
|
52
|
+
const frequency = new Map();
|
|
53
|
+
//# sourceMappingURL=dev-warn.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dev-warn.js","sourceRoot":"","sources":["../src/dev-warn.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,SAAS,UAAU;IACjB,MAAM,GAAG,GAAI,UAAyE,CAAC,OAAO,EAAE,GAAG,CAAC;IACpG,OAAO,GAAG,EAAE,QAAQ,KAAK,YAAY,CAAC;AACxC,CAAC;AACD,IAAI,MAAM,GAAG,UAAU,EAAE,CAAC;AAE1B,2FAA2F;AAC3F,MAAM,UAAU,iBAAiB,CAAC,EAAW;IAC3C,MAAM,GAAG,EAAE,CAAC;AACd,CAAC;AAED,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;AAErC,wGAAwG;AACxG,MAAM,UAAU,OAAO,CAAC,EAAU,EAAE,OAAe;IACjD,IAAI,CAAC,MAAM;QAAE,OAAO;IACpB,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAAE,OAAO;IAC/B,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACnB,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,KAAK,OAAO,EAAE,CAAC,CAAC;AACjD,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,mBAAmB;IACjC,UAAU,CAAC,KAAK,EAAE,CAAC;AACrB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CAAC,EAAU,EAAE,IAAY,EAAE,YAAY,GAAG,EAAE,EAAE,QAAQ,GAAG,IAAI;IAC9F,IAAI,CAAC,MAAM;QAAE,OAAO;IACpB,MAAM,GAAG,GAAG,OAAO,WAAW,KAAK,WAAW,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;IACnG,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC9B,IAAI,CAAC,GAAG,IAAI,GAAG,GAAG,GAAG,CAAC,WAAW,GAAG,QAAQ,EAAE,CAAC;QAC7C,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QAClD,OAAO;IACT,CAAC;IACD,GAAG,CAAC,KAAK,EAAE,CAAC;IACZ,IAAI,GAAG,CAAC,KAAK,GAAG,YAAY;QAAE,OAAO,CAAC,YAAY,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkD,CAAC"}
|
package/dist/feedback.d.ts
CHANGED
|
@@ -66,6 +66,11 @@ export declare class FeedbackRegistry {
|
|
|
66
66
|
* the DOM and you want immediate reclamation rather than waiting for the next flush() sweep.
|
|
67
67
|
*/
|
|
68
68
|
unregister(element: Element): void;
|
|
69
|
+
/** Drop the entries for every element that left the DOM (strong-ref reclamation without a flush). */
|
|
70
|
+
prune(): void;
|
|
71
|
+
/** Drop ALL bindings, direct writes, thresholds, and activity — used on platform teardown to free
|
|
72
|
+
* every strong Element ref immediately rather than waiting for the registry object to be collected. */
|
|
73
|
+
clearAll(): void;
|
|
69
74
|
/**
|
|
70
75
|
* Write-phase: apply bound state → CSS vars, apply queued direct writes, and run thresholders →
|
|
71
76
|
* fire edge events. `state` supplies the numeric values for bound vars + thresholds. Disconnected
|
package/dist/feedback.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feedback.d.ts","sourceRoot":"","sources":["../src/feedback.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,8DAA8D;AAC9D,KAAK,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AA6BzC,MAAM,WAAW,gBAAgB;IAC/B,uDAAuD;IACvD,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qFAAqF;IACrF,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;uGACuG;AACvG,MAAM,WAAW,gBAAgB;IAC/B,kFAAkF;IAClF,OAAO,EAAE,MAAM,CAAC;IAChB,6EAA6E;IAC7E,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkC;IAC3D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA8C;IACrE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAwB;IACnD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAwC;IACjE,OAAO,CAAC,mBAAmB,CAAK;IAEhC,4GAA4G;IAC5G,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,UAAU,GAAG,IAAI;IAI7C;;;;;;OAMG;IACH,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;IAK7C,4FAA4F;IAC5F,SAAS,IAAI,KAAK,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAIxD;;;;;;OAMG;IACH,gBAAgB,IAAI,KAAK,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAIlF;;;;OAIG;IACH,kBAAkB,IAAI,MAAM;IAI5B,kEAAkE;IAClE,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,GAAG,IAAI;IAMlE,iGAAiG;IACjG,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,GAAG,IAAI;IAU5E;;;OAGG;IACH,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAUlC;;;;;OAKG;IACH,KAAK,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,SAAI,GAAG,IAAI;CA8B3C"}
|
|
1
|
+
{"version":3,"file":"feedback.d.ts","sourceRoot":"","sources":["../src/feedback.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,8DAA8D;AAC9D,KAAK,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AA6BzC,MAAM,WAAW,gBAAgB;IAC/B,uDAAuD;IACvD,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qFAAqF;IACrF,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;uGACuG;AACvG,MAAM,WAAW,gBAAgB;IAC/B,kFAAkF;IAClF,OAAO,EAAE,MAAM,CAAC;IAChB,6EAA6E;IAC7E,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkC;IAC3D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA8C;IACrE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAwB;IACnD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAwC;IACjE,OAAO,CAAC,mBAAmB,CAAK;IAEhC,4GAA4G;IAC5G,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,UAAU,GAAG,IAAI;IAI7C;;;;;;OAMG;IACH,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;IAK7C,4FAA4F;IAC5F,SAAS,IAAI,KAAK,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAIxD;;;;;;OAMG;IACH,gBAAgB,IAAI,KAAK,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAIlF;;;;OAIG;IACH,kBAAkB,IAAI,MAAM;IAI5B,kEAAkE;IAClE,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,GAAG,IAAI;IAMlE,iGAAiG;IACjG,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,GAAG,IAAI;IAU5E;;;OAGG;IACH,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAUlC,qGAAqG;IACrG,KAAK,IAAI,IAAI;IAMb;4GACwG;IACxG,QAAQ,IAAI,IAAI;IAOhB;;;;;OAKG;IACH,KAAK,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,SAAI,GAAG,IAAI;CA8B3C"}
|
package/dist/feedback.js
CHANGED
|
@@ -100,6 +100,28 @@ export class FeedbackRegistry {
|
|
|
100
100
|
this.thresholds.splice(i, 1);
|
|
101
101
|
}
|
|
102
102
|
}
|
|
103
|
+
/** Drop the entries for every element that left the DOM (strong-ref reclamation without a flush). */
|
|
104
|
+
prune() {
|
|
105
|
+
for (const el of this.bindings.keys())
|
|
106
|
+
if (el.isConnected === false) {
|
|
107
|
+
this.bindings.delete(el);
|
|
108
|
+
this.activity.delete(el);
|
|
109
|
+
}
|
|
110
|
+
for (const el of this.direct.keys())
|
|
111
|
+
if (el.isConnected === false)
|
|
112
|
+
this.direct.delete(el);
|
|
113
|
+
for (let i = this.thresholds.length - 1; i >= 0; i--)
|
|
114
|
+
if (!this.thresholds[i].element.isConnected)
|
|
115
|
+
this.thresholds.splice(i, 1);
|
|
116
|
+
}
|
|
117
|
+
/** Drop ALL bindings, direct writes, thresholds, and activity — used on platform teardown to free
|
|
118
|
+
* every strong Element ref immediately rather than waiting for the registry object to be collected. */
|
|
119
|
+
clearAll() {
|
|
120
|
+
this.bindings.clear();
|
|
121
|
+
this.direct.clear();
|
|
122
|
+
this.activity.clear();
|
|
123
|
+
this.thresholds.length = 0;
|
|
124
|
+
}
|
|
103
125
|
/**
|
|
104
126
|
* Write-phase: apply bound state → CSS vars, apply queued direct writes, and run thresholders →
|
|
105
127
|
* fire edge events. `state` supplies the numeric values for bound vars + thresholds. Disconnected
|
package/dist/feedback.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feedback.js","sourceRoot":"","sources":["../src/feedback.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"feedback.js","sourceRoot":"","sources":["../src/feedback.ts"],"names":[],"mappings":"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"}
|
package/dist/governor.d.ts
CHANGED
|
@@ -10,8 +10,12 @@
|
|
|
10
10
|
*
|
|
11
11
|
* Shipped consumer: the `<field-root>` platform runtime throttles its own tick cadence (the
|
|
12
12
|
* measurement/feedback DOM work) to every 2nd frame at tier 2 and every 4th at tier 3, and
|
|
13
|
-
*
|
|
14
|
-
*
|
|
13
|
+
* forwards each tier change to the engine via `handle.setQualityTier` (#413) — the engine then
|
|
14
|
+
* caps the effective backing-store DPR and drops the heatmap at tier 2+ on its own levers,
|
|
15
|
+
* reversibly. The `field:quality-tier` event still fires so embedders can layer further
|
|
16
|
+
* responses (render simplification, particle caps) on top — those remain manual. Raw
|
|
17
|
+
* `createField` wires NO governor: a consumer on that path constructs one and forwards
|
|
18
|
+
* `feed()` results to `handle.setQualityTier` itself.
|
|
15
19
|
*
|
|
16
20
|
* Feed it rAF-to-rAF spacing (or better, measured work time). Callers should skip discontinuity
|
|
17
21
|
* frames (tab switches, system sleep) and reset() on visibilitychange — the elements runtime does.
|
package/dist/governor.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"governor.d.ts","sourceRoot":"","sources":["../src/governor.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"governor.d.ts","sourceRoot":"","sources":["../src/governor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAgBxC,qBAAa,eAAe;IAC1B,OAAO,CAAC,KAAK,CAAkB;IAC/B,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;gBAEpB,QAAQ,SAAQ;IAI5B,IAAI,IAAI,IAAI,WAAW,CAAuB;IAE9C;;;OAGG;IACH,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IA0BjD,KAAK,IAAI,IAAI;CAKd"}
|
package/dist/governor.js
CHANGED
|
@@ -10,8 +10,12 @@
|
|
|
10
10
|
*
|
|
11
11
|
* Shipped consumer: the `<field-root>` platform runtime throttles its own tick cadence (the
|
|
12
12
|
* measurement/feedback DOM work) to every 2nd frame at tier 2 and every 4th at tier 3, and
|
|
13
|
-
*
|
|
14
|
-
*
|
|
13
|
+
* forwards each tier change to the engine via `handle.setQualityTier` (#413) — the engine then
|
|
14
|
+
* caps the effective backing-store DPR and drops the heatmap at tier 2+ on its own levers,
|
|
15
|
+
* reversibly. The `field:quality-tier` event still fires so embedders can layer further
|
|
16
|
+
* responses (render simplification, particle caps) on top — those remain manual. Raw
|
|
17
|
+
* `createField` wires NO governor: a consumer on that path constructs one and forwards
|
|
18
|
+
* `feed()` results to `handle.setQualityTier` itself.
|
|
15
19
|
*
|
|
16
20
|
* Feed it rAF-to-rAF spacing (or better, measured work time). Callers should skip discontinuity
|
|
17
21
|
* frames (tab switches, system sleep) and reset() on visibilitychange — the elements runtime does.
|
package/dist/governor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"governor.js","sourceRoot":"","sources":["../src/governor.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"governor.js","sourceRoot":"","sources":["../src/governor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAUH,MAAM,QAAQ,GAAwB;IACpC,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;IACpC,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAG,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE;IACpC,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAG,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE;CACrC,CAAC;AAEF,MAAM,cAAc,GAAG,EAAE,CAAC,CAAC,sCAAsC;AAEjE,MAAM,OAAO,eAAe;IAClB,KAAK,GAAgB,CAAC,CAAC;IACvB,aAAa,GAAG,CAAC,CAAC;IAClB,WAAW,GAAG,CAAC,CAAC;IACP,MAAM,CAAS;IAEhC,YAAY,QAAQ,GAAG,KAAK;QAC1B,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;IACzB,CAAC;IAED,IAAI,IAAI,KAAkB,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAE9C;;;OAGG;IACH,IAAI,CAAC,UAAkB;QACrB,MAAM,OAAO,GAAG,UAAU,GAAG,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;QAE/C,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;YACrB,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;gBAC5B,IAAI,UAAU,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;oBAC7F,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC;oBACvB,OAAO,IAAI,CAAC,KAAK,CAAC;gBACpB,CAAC;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;YACvB,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;gBACnB,IAAI,CAAC,WAAW,EAAE,CAAC;gBACnB,IAAI,IAAI,CAAC,WAAW,IAAI,cAAc,EAAE,CAAC;oBACvC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;oBACrB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAgB,CAAC;oBACxD,OAAO,IAAI,CAAC,KAAK,CAAC;gBACpB,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,KAAK;QACH,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;QACf,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;IACvB,CAAC;CACF"}
|
package/dist/lint.d.ts
CHANGED
|
@@ -15,7 +15,7 @@ import type { RelationshipRegistry } from './relationships.ts';
|
|
|
15
15
|
import type { VisualBindingRegistry } from './visual-bindings.ts';
|
|
16
16
|
import type { FrameScheduler } from './schedule.ts';
|
|
17
17
|
import type { Resolver } from './relationships.ts';
|
|
18
|
-
export type LintCode = 'relation-target-missing' | 'visual-orphan' | 'visual-not-hidden' | 'state-unregistered' | 'overlay-without-links' | 'feedback-non-css-var' | 'measurement-off-phase' | 'sink-without-feedback' | 'feedback-vars-unwritten' | 'feedback-writes-unread' | 'feedback-reads-unwritten' | 'feedback-never-written' | 'feedback-lane-inert' | 'compositing-fill-trap';
|
|
18
|
+
export type LintCode = 'relation-target-missing' | 'visual-orphan' | 'visual-not-hidden' | 'state-unregistered' | 'overlay-without-links' | 'feedback-non-css-var' | 'measurement-off-phase' | 'sink-without-feedback' | 'feedback-vars-unwritten' | 'feedback-writes-unread' | 'feedback-reads-unwritten' | 'feedback-never-written' | 'feedback-lane-inert' | 'compositing-fill-trap' | 'motion-without-reduced-motion';
|
|
19
19
|
export interface PlatformLintWarning {
|
|
20
20
|
code: LintCode;
|
|
21
21
|
severity: 'warning' | 'error';
|
|
@@ -127,6 +127,35 @@ export interface LintOptions {
|
|
|
127
127
|
* `getComputedStyle`), matching the rest of lint.
|
|
128
128
|
*/
|
|
129
129
|
export declare function lintCompositingPerf(root: ParentNode): PlatformLintWarning[];
|
|
130
|
+
/**
|
|
131
|
+
* The accessibility sibling of the silent-contract lint (`lintFeedbackWritesUnread`): a `[data-body]`
|
|
132
|
+
* that expresses **independent** motion — a CSS `@keyframes` animation, or a static (non-feedback-driven)
|
|
133
|
+
* `transform`/`translate`/`rotate`/`scale` — but has **no** `@media (prefers-reduced-motion: reduce)`
|
|
134
|
+
* companion rule that matches it. That is the a11y invariant this gate enforces: *reduced motion removes
|
|
135
|
+
* motion, not meaning* — a body that moves on its own must offer a still form. Without the reduced-motion
|
|
136
|
+
* branch, a user who asked the OS to stop animations still gets the movement.
|
|
137
|
+
*
|
|
138
|
+
* **Feedback-var-driven motion is deliberately exempt.** This engine gates motion at the ENGINE level:
|
|
139
|
+
* under `prefers-reduced-motion` the simulation freezes (dt=0 — the integrator early-returns), so ambient,
|
|
140
|
+
* sim-driven change in `--d`/`--field-*`/`--load` stops; the feedback lane stays live for direct
|
|
141
|
+
* engagement (pointer/focus), so what remains is a discrete interaction response, not autonomous motion —
|
|
142
|
+
* reduced-motion-safe, no per-body `@media` rule needed. Flagging those would be architecturally wrong
|
|
143
|
+
* (and would flood the site's own hundreds of feedback-driven bodies). So only genuinely independent
|
|
144
|
+
* motion, which the engine cannot gate, is flagged.
|
|
145
|
+
*
|
|
146
|
+
* "Has a reduced-motion equivalent" is determined structurally: some rule inside a
|
|
147
|
+
* `@media (prefers-reduced-motion: reduce)` block has a selector that matches the same body (after
|
|
148
|
+
* pseudo-class/element stripping). The author opted the body into a reduced-motion branch; the lint
|
|
149
|
+
* trusts that branch neutralizes the motion (it does not attempt to prove the branch is *correct* —
|
|
150
|
+
* that is the human AT-pass half of RC-8).
|
|
151
|
+
*
|
|
152
|
+
* **Dev-only, heuristic, browser-coupled** — like the feedback consumer lints, it walks the document's
|
|
153
|
+
* accessible stylesheets and no-ops where they are unreachable (SSR / tests / cross-origin), so it can
|
|
154
|
+
* only ever under-report, never false-positive. Scoped to `[data-body]` elements only. Bodies whose
|
|
155
|
+
* independent motion is expressed *inline* are also considered, and are only cleared by a matching
|
|
156
|
+
* reduced-motion rule — inline styles can't carry a media query.
|
|
157
|
+
*/
|
|
158
|
+
export declare function lintReducedMotion(root: ParentNode): PlatformLintWarning[];
|
|
130
159
|
/** Run every platform lint rule over a FieldPlatform and return the aggregated warnings. */
|
|
131
160
|
export declare function lintPlatform(platform: PlatformLike, opts?: LintOptions): PlatformLintWarning[];
|
|
132
161
|
//# sourceMappingURL=lint.d.ts.map
|
package/dist/lint.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lint.d.ts","sourceRoot":"","sources":["../src/lint.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAGnD,MAAM,MAAM,QAAQ,GAChB,yBAAyB,GACzB,eAAe,GACf,mBAAmB,GACnB,oBAAoB,GACpB,uBAAuB,GACvB,sBAAsB,GACtB,uBAAuB,GACvB,uBAAuB,GACvB,yBAAyB,GACzB,wBAAwB,GACxB,0BAA0B,GAC1B,wBAAwB,GACxB,qBAAqB,GACrB,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"lint.d.ts","sourceRoot":"","sources":["../src/lint.ts"],"names":[],"mappings":"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"}
|
package/dist/lint.js
CHANGED
|
@@ -309,6 +309,152 @@ export function lintCompositingPerf(root) {
|
|
|
309
309
|
});
|
|
310
310
|
return out;
|
|
311
311
|
}
|
|
312
|
+
/**
|
|
313
|
+
* Whether a declaration block expresses **independent** motion — movement the engine cannot gate under
|
|
314
|
+
* reduced motion, so the author must supply a `prefers-reduced-motion` branch. Two families count:
|
|
315
|
+
*
|
|
316
|
+
* 1. a CSS `animation` (keyframes run on the compositor timeline, unaffected by the field), and
|
|
317
|
+
* 2. a `transform`/`translate`/`rotate`/`scale`, or a `transition` on one of those (or `all`), whose
|
|
318
|
+
* value is a **static author value** — NOT derived from a field feedback var.
|
|
319
|
+
*
|
|
320
|
+
* The critical exemption (architectural): this engine handles reduced motion at the ENGINE level. Under
|
|
321
|
+
* `prefers-reduced-motion` the SIMULATION freezes (dt=0 — the integrator early-returns), so ambient,
|
|
322
|
+
* sim-driven change in the feedback channels (`--d`, `--field-*`, `--load`) stops. The feedback lane
|
|
323
|
+
* itself stays live — feedback is written every frame outside the dt gate, and engagement (pointer/focus)
|
|
324
|
+
* still moves it — so a body whose motion reads a feedback var degrades to a DISCRETE ENGAGEMENT
|
|
325
|
+
* RESPONSE: interaction feedback, not autonomous/ambient animation, which is what reduced motion is
|
|
326
|
+
* about. Motion freezes; the signals stay honest. Such a body is reduced-motion-safe and must NOT be
|
|
327
|
+
* flagged, so a motion property whose value reads a feedback var is treated as engine-gated (not
|
|
328
|
+
* independent). `opacity`/`color` are not movement and never count. Case-folded; operates on
|
|
329
|
+
* `cssText`/inline style text (no computed styles) to match the rest of lint.
|
|
330
|
+
*/
|
|
331
|
+
function expressesIndependentMotion(cssText) {
|
|
332
|
+
const css = cssText.toLowerCase();
|
|
333
|
+
// 1. a CSS animation (name + @keyframes) runs independent of the field → always independent motion.
|
|
334
|
+
if (/\banimation(-name)?\s*:/.test(css) && !/\banimation(-name)?\s*:\s*none\b/.test(css))
|
|
335
|
+
return true;
|
|
336
|
+
// 2. a transform-family set / transitioned — but ONLY if its value is NOT a feedback var (else the
|
|
337
|
+
// engine gates it under reduced motion). We check each transform-family declaration individually so a
|
|
338
|
+
// feedback-driven transform in the same block doesn't get mis-read as static.
|
|
339
|
+
// The property name is anchored on the LEFT with (?<![\w-]) — `\b` alone treats the hyphen in
|
|
340
|
+
// `text-transform:` as a boundary and mis-reads a purely typographic declaration as motion (the
|
|
341
|
+
// false positive that flagged every uppercase heading). The trade: vendor-prefixed forms
|
|
342
|
+
// (`-webkit-transform:`) are no longer seen — acceptable under-reporting for a heuristic dev lint,
|
|
343
|
+
// which promises never to false-positive, not never to miss.
|
|
344
|
+
for (const m of css.matchAll(/(?<![\w-])(transform|translate|rotate|scale)\s*:\s*([^;}]*)/g)) {
|
|
345
|
+
const value = m[2] ?? '';
|
|
346
|
+
if (/\bnone\b/.test(value))
|
|
347
|
+
continue; // transform:none is identity → no motion
|
|
348
|
+
if (FEEDBACK_VAR_READS.some((v) => value.includes(v)))
|
|
349
|
+
continue; // feedback-driven → engine-gated
|
|
350
|
+
return true; // a static author transform → independent motion
|
|
351
|
+
}
|
|
352
|
+
// a `transition` that animates a movement property (or `all`) with a static author value is independent.
|
|
353
|
+
// (A transition merely eases changes; if the changing property is itself feedback-driven, the engine
|
|
354
|
+
// freeze stills it — so a transition is only independent when paired with a static transform above,
|
|
355
|
+
// which the loop already caught. A bare `transition: transform …` with no static transform in the same
|
|
356
|
+
// block does nothing on its own, so it is not counted here.)
|
|
357
|
+
return false;
|
|
358
|
+
}
|
|
359
|
+
/** Strip pseudo-classes / pseudo-elements from a selector so it can be matched against a body. */
|
|
360
|
+
function cleanSelector(part) {
|
|
361
|
+
return part.trim().replace(/::?[\w-]+(\([^)]*\))?/g, '');
|
|
362
|
+
}
|
|
363
|
+
/**
|
|
364
|
+
* The accessibility sibling of the silent-contract lint (`lintFeedbackWritesUnread`): a `[data-body]`
|
|
365
|
+
* that expresses **independent** motion — a CSS `@keyframes` animation, or a static (non-feedback-driven)
|
|
366
|
+
* `transform`/`translate`/`rotate`/`scale` — but has **no** `@media (prefers-reduced-motion: reduce)`
|
|
367
|
+
* companion rule that matches it. That is the a11y invariant this gate enforces: *reduced motion removes
|
|
368
|
+
* motion, not meaning* — a body that moves on its own must offer a still form. Without the reduced-motion
|
|
369
|
+
* branch, a user who asked the OS to stop animations still gets the movement.
|
|
370
|
+
*
|
|
371
|
+
* **Feedback-var-driven motion is deliberately exempt.** This engine gates motion at the ENGINE level:
|
|
372
|
+
* under `prefers-reduced-motion` the simulation freezes (dt=0 — the integrator early-returns), so ambient,
|
|
373
|
+
* sim-driven change in `--d`/`--field-*`/`--load` stops; the feedback lane stays live for direct
|
|
374
|
+
* engagement (pointer/focus), so what remains is a discrete interaction response, not autonomous motion —
|
|
375
|
+
* reduced-motion-safe, no per-body `@media` rule needed. Flagging those would be architecturally wrong
|
|
376
|
+
* (and would flood the site's own hundreds of feedback-driven bodies). So only genuinely independent
|
|
377
|
+
* motion, which the engine cannot gate, is flagged.
|
|
378
|
+
*
|
|
379
|
+
* "Has a reduced-motion equivalent" is determined structurally: some rule inside a
|
|
380
|
+
* `@media (prefers-reduced-motion: reduce)` block has a selector that matches the same body (after
|
|
381
|
+
* pseudo-class/element stripping). The author opted the body into a reduced-motion branch; the lint
|
|
382
|
+
* trusts that branch neutralizes the motion (it does not attempt to prove the branch is *correct* —
|
|
383
|
+
* that is the human AT-pass half of RC-8).
|
|
384
|
+
*
|
|
385
|
+
* **Dev-only, heuristic, browser-coupled** — like the feedback consumer lints, it walks the document's
|
|
386
|
+
* accessible stylesheets and no-ops where they are unreachable (SSR / tests / cross-origin), so it can
|
|
387
|
+
* only ever under-report, never false-positive. Scoped to `[data-body]` elements only. Bodies whose
|
|
388
|
+
* independent motion is expressed *inline* are also considered, and are only cleared by a matching
|
|
389
|
+
* reduced-motion rule — inline styles can't carry a media query.
|
|
390
|
+
*/
|
|
391
|
+
export function lintReducedMotion(root) {
|
|
392
|
+
const out = [];
|
|
393
|
+
if (typeof document === 'undefined')
|
|
394
|
+
return out;
|
|
395
|
+
// Pass 1: collect motion-bearing selectors (outside reduced-motion) and reduced-motion selectors.
|
|
396
|
+
const motionSelectors = [];
|
|
397
|
+
const reducedSelectors = [];
|
|
398
|
+
const collect = (rules, underReduced) => {
|
|
399
|
+
for (const rule of Array.from(rules ?? [])) {
|
|
400
|
+
// a nested @media — recurse, flagging whether it is a reduced-motion block.
|
|
401
|
+
const media = rule.media?.mediaText;
|
|
402
|
+
if (media !== undefined) {
|
|
403
|
+
const isReduced = /prefers-reduced-motion\s*:\s*reduce/.test(media);
|
|
404
|
+
collect(rule.cssRules, underReduced || isReduced);
|
|
405
|
+
continue;
|
|
406
|
+
}
|
|
407
|
+
const r = rule;
|
|
408
|
+
if (!r.selectorText || !r.cssText)
|
|
409
|
+
continue;
|
|
410
|
+
if (underReduced) {
|
|
411
|
+
reducedSelectors.push(r.selectorText);
|
|
412
|
+
}
|
|
413
|
+
else if (expressesIndependentMotion(r.cssText)) {
|
|
414
|
+
motionSelectors.push(r.selectorText);
|
|
415
|
+
}
|
|
416
|
+
}
|
|
417
|
+
};
|
|
418
|
+
for (const sheet of Array.from(document.styleSheets)) {
|
|
419
|
+
let rules;
|
|
420
|
+
try {
|
|
421
|
+
rules = sheet.cssRules;
|
|
422
|
+
}
|
|
423
|
+
catch {
|
|
424
|
+
continue;
|
|
425
|
+
} // cross-origin sheet → unreadable, skip
|
|
426
|
+
collect(rules, false);
|
|
427
|
+
}
|
|
428
|
+
const matchesAny = (selectors, el) => selectors.some((sel) => sel.split(',').some((part) => {
|
|
429
|
+
const clean = cleanSelector(part);
|
|
430
|
+
if (!clean)
|
|
431
|
+
return false;
|
|
432
|
+
try {
|
|
433
|
+
return el.matches(clean);
|
|
434
|
+
}
|
|
435
|
+
catch {
|
|
436
|
+
return false;
|
|
437
|
+
}
|
|
438
|
+
}));
|
|
439
|
+
// Pass 2: for each body, does it move INDEPENDENTLY (via CSS rule or inline) and lack a reduced-motion
|
|
440
|
+
// branch? Feedback-var-driven motion is already engine-gated, so it never reaches here.
|
|
441
|
+
root.querySelectorAll('[data-body]').forEach((el) => {
|
|
442
|
+
const style = el.getAttribute('style') ?? '';
|
|
443
|
+
const movesInline = expressesIndependentMotion(style);
|
|
444
|
+
const movesViaRule = matchesAny(motionSelectors, el);
|
|
445
|
+
if (!movesInline && !movesViaRule)
|
|
446
|
+
return; // static / engine-gated body → nothing to guard
|
|
447
|
+
if (matchesAny(reducedSelectors, el))
|
|
448
|
+
return; // has a reduced-motion branch → honoured
|
|
449
|
+
out.push({
|
|
450
|
+
code: 'motion-without-reduced-motion',
|
|
451
|
+
severity: 'warning',
|
|
452
|
+
element: el,
|
|
453
|
+
message: 'a field body expresses independent motion (a CSS animation, or a static transform not driven by a field feedback var) but no @media (prefers-reduced-motion: reduce) rule matches it — reduced motion must remove motion without removing meaning; add a reduced-motion branch that stills it',
|
|
454
|
+
});
|
|
455
|
+
});
|
|
456
|
+
return out;
|
|
457
|
+
}
|
|
312
458
|
/** Run every platform lint rule over a FieldPlatform and return the aggregated warnings. */
|
|
313
459
|
export function lintPlatform(platform, opts = {}) {
|
|
314
460
|
const root = opts.root ?? platform.root;
|
|
@@ -316,6 +462,7 @@ export function lintPlatform(platform, opts = {}) {
|
|
|
316
462
|
const warnings = [
|
|
317
463
|
...lintRelationTargets(root, resolve),
|
|
318
464
|
...lintCompositingPerf(root),
|
|
465
|
+
...lintReducedMotion(root),
|
|
319
466
|
...lintSinkFeedback(root),
|
|
320
467
|
...lintFeedbackVarReads(root),
|
|
321
468
|
...lintFeedbackWritesUnread(root),
|
package/dist/lint.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lint.js","sourceRoot":"","sources":["../src/lint.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lint.js","sourceRoot":"","sources":["../src/lint.ts"],"names":[],"mappings":"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"}
|
package/dist/measurement.d.ts
CHANGED
|
@@ -18,6 +18,13 @@ export interface MeasureRegistration {
|
|
|
18
18
|
export declare class MeasurementRegistry {
|
|
19
19
|
private readonly entries;
|
|
20
20
|
private snapshot;
|
|
21
|
+
/**
|
|
22
|
+
* Identity-keyed index into the current `snapshot`, rebuilt each `measure()`. Turns `for(element)`
|
|
23
|
+
* from an O(N) linear scan of the snapshot array (which forces called per-element → O(M×N)/frame)
|
|
24
|
+
* into an O(1) Map lookup. Reset before `measure()` populates it, so `for()` on a since-pruned
|
|
25
|
+
* element correctly returns undefined.
|
|
26
|
+
*/
|
|
27
|
+
private byElement;
|
|
21
28
|
private guard;
|
|
22
29
|
/**
|
|
23
30
|
* Install a phase guard (the FrameScheduler supplies one via `readGuard()`). It is consulted
|
|
@@ -38,7 +45,7 @@ export declare class MeasurementRegistry {
|
|
|
38
45
|
measure(now?: number, viewport?: Viewport): readonly FieldMeasurement[];
|
|
39
46
|
/** The most recent snapshot (without re-reading layout). */
|
|
40
47
|
last(): readonly FieldMeasurement[];
|
|
41
|
-
/** The latest measurement for one element, if present. */
|
|
48
|
+
/** The latest measurement for one element, if present. O(1) via the identity index. */
|
|
42
49
|
for(element: Element): FieldMeasurement | undefined;
|
|
43
50
|
}
|
|
44
51
|
//# sourceMappingURL=measurement.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"measurement.d.ts","sourceRoot":"","sources":["../src/measurement.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAa,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEzF,MAAM,WAAW,mBAAmB;IAClC,uEAAuE;IACvE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,+FAA+F;IAC/F,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC;CACzB;AAkCD,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6B;IACrD,OAAO,CAAC,QAAQ,CAAmC;IACnD,OAAO,CAAC,KAAK,CAAuC;IAEpD;;;;OAIG;IACH,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI;IAIzD,+FAA+F;IAC/F,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,GAAE,mBAAwB,GAAG,IAAI;IAIhE,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIlC,0FAA0F;IAC1F,GAAG,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO;IAI9B,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;;OAGG;IACH,OAAO,CAAC,GAAG,SAAI,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,SAAS,gBAAgB,EAAE;
|
|
1
|
+
{"version":3,"file":"measurement.d.ts","sourceRoot":"","sources":["../src/measurement.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAa,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEzF,MAAM,WAAW,mBAAmB;IAClC,uEAAuE;IACvE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,+FAA+F;IAC/F,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC;CACzB;AAkCD,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6B;IACrD,OAAO,CAAC,QAAQ,CAAmC;IACnD;;;;;OAKG;IACH,OAAO,CAAC,SAAS,CAAwC;IACzD,OAAO,CAAC,KAAK,CAAuC;IAEpD;;;;OAIG;IACH,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI;IAIzD,+FAA+F;IAC/F,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,GAAE,mBAAwB,GAAG,IAAI;IAIhE,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIlC,0FAA0F;IAC1F,GAAG,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO;IAI9B,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;;OAGG;IACH,OAAO,CAAC,GAAG,SAAI,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,SAAS,gBAAgB,EAAE;IA4BlE,4DAA4D;IAC5D,IAAI,IAAI,SAAS,gBAAgB,EAAE;IAInC,uFAAuF;IACvF,GAAG,CAAC,OAAO,EAAE,OAAO,GAAG,gBAAgB,GAAG,SAAS;CAGpD"}
|