@fundamental-engine/dom 0.9.1 → 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.
Files changed (50) hide show
  1. package/dist/apply-recipe.d.ts.map +1 -1
  2. package/dist/apply-recipe.js +9 -2
  3. package/dist/apply-recipe.js.map +1 -1
  4. package/dist/browser-host.js.map +1 -1
  5. package/dist/container-host.d.ts +1 -1
  6. package/dist/container-host.d.ts.map +1 -1
  7. package/dist/container-host.js +16 -0
  8. package/dist/container-host.js.map +1 -1
  9. package/dist/dev-warn.d.ts +16 -0
  10. package/dist/dev-warn.d.ts.map +1 -0
  11. package/dist/dev-warn.js +53 -0
  12. package/dist/dev-warn.js.map +1 -0
  13. package/dist/feedback.d.ts +5 -0
  14. package/dist/feedback.d.ts.map +1 -1
  15. package/dist/feedback.js +22 -0
  16. package/dist/feedback.js.map +1 -1
  17. package/dist/governor.d.ts +6 -2
  18. package/dist/governor.d.ts.map +1 -1
  19. package/dist/governor.js +6 -2
  20. package/dist/governor.js.map +1 -1
  21. package/dist/lint.d.ts +30 -1
  22. package/dist/lint.d.ts.map +1 -1
  23. package/dist/lint.js +147 -0
  24. package/dist/lint.js.map +1 -1
  25. package/dist/measurement.d.ts +8 -1
  26. package/dist/measurement.d.ts.map +1 -1
  27. package/dist/measurement.js +15 -4
  28. package/dist/measurement.js.map +1 -1
  29. package/dist/relationships.d.ts.map +1 -1
  30. package/dist/relationships.js +5 -0
  31. package/dist/relationships.js.map +1 -1
  32. package/dist/state.d.ts +3 -0
  33. package/dist/state.d.ts.map +1 -1
  34. package/dist/state.js +6 -0
  35. package/dist/state.js.map +1 -1
  36. package/dist/visual-bindings.d.ts +0 -24
  37. package/dist/visual-bindings.d.ts.map +1 -1
  38. package/dist/visual-bindings.js +7 -2
  39. package/dist/visual-bindings.js.map +1 -1
  40. package/dist/worker/offthread-bridge.d.ts.map +1 -1
  41. package/dist/worker/offthread-bridge.js +31 -8
  42. package/dist/worker/offthread-bridge.js.map +1 -1
  43. package/dist/worker/render-worker.d.ts +3 -2
  44. package/dist/worker/render-worker.d.ts.map +1 -1
  45. package/dist/worker/render-worker.js +9 -3
  46. package/dist/worker/render-worker.js.map +1 -1
  47. package/dist/x-ray.d.ts.map +1 -1
  48. package/dist/x-ray.js +73 -13
  49. package/dist/x-ray.js.map +1 -1
  50. package/package.json +2 -2
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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"}
@@ -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;IAwBlE,4DAA4D;IAC5D,IAAI,IAAI,SAAS,gBAAgB,EAAE;IAInC,0DAA0D;IAC1D,GAAG,CAAC,OAAO,EAAE,OAAO,GAAG,gBAAgB,GAAG,SAAS;CAGpD"}
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"}
@@ -28,6 +28,13 @@ function visibilityRatio(r, vp) {
28
28
  export class MeasurementRegistry {
29
29
  entries = new Map();
30
30
  snapshot = [];
31
+ /**
32
+ * Identity-keyed index into the current `snapshot`, rebuilt each `measure()`. Turns `for(element)`
33
+ * from an O(N) linear scan of the snapshot array (which forces called per-element → O(M×N)/frame)
34
+ * into an O(1) Map lookup. Reset before `measure()` populates it, so `for()` on a since-pruned
35
+ * element correctly returns undefined.
36
+ */
37
+ byElement = new Map();
31
38
  guard = null;
32
39
  /**
33
40
  * Install a phase guard (the FrameScheduler supplies one via `readGuard()`). It is consulted
@@ -59,6 +66,8 @@ export class MeasurementRegistry {
59
66
  this.guard?.('measure'); // read-phase discipline: reading layout off-phase thrashes
60
67
  const vp = viewport ?? defaultViewport();
61
68
  const out = [];
69
+ const index = this.byElement;
70
+ index.clear();
62
71
  for (const [el, e] of this.entries) {
63
72
  if (!el.isConnected) {
64
73
  this.entries.delete(el);
@@ -66,14 +75,16 @@ export class MeasurementRegistry {
66
75
  }
67
76
  const rect = toFieldRect(e.getRect ? e.getRect() : el.getBoundingClientRect());
68
77
  const ratio = visibilityRatio(rect, vp);
69
- out.push({
78
+ const m = {
70
79
  element: el,
71
80
  rect,
72
81
  visible: ratio > 0,
73
82
  visibilityRatio: ratio,
74
83
  coordinateSpace: e.coordinateSpace ?? 'viewport',
75
84
  timestamp: now,
76
- });
85
+ };
86
+ out.push(m);
87
+ index.set(el, m);
77
88
  }
78
89
  this.snapshot = out;
79
90
  return out;
@@ -82,9 +93,9 @@ export class MeasurementRegistry {
82
93
  last() {
83
94
  return this.snapshot;
84
95
  }
85
- /** The latest measurement for one element, if present. */
96
+ /** The latest measurement for one element, if present. O(1) via the identity index. */
86
97
  for(element) {
87
- return this.snapshot.find((m) => m.element === element);
98
+ return this.byElement.get(element);
88
99
  }
89
100
  }
90
101
  function defaultViewport() {
@@ -1 +1 @@
1
- {"version":3,"file":"measurement.js","sourceRoot":"","sources":["../src/measurement.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"measurement.js","sourceRoot":"","sources":["../src/measurement.ts"],"names":[],"mappings":"AAuBA,SAAS,WAAW,CAAC,CAAyE;IAC5F,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;IACpB,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC;IAClB,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;IACtB,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;IACxB,OAAO;QACL,CAAC,EAAE,IAAI;QACP,CAAC,EAAE,GAAG;QACN,KAAK;QACL,MAAM;QACN,EAAE,EAAE,IAAI,GAAG,KAAK,GAAG,CAAC;QACpB,EAAE,EAAE,GAAG,GAAG,MAAM,GAAG,CAAC;QACpB,GAAG;QACH,KAAK,EAAE,IAAI,GAAG,KAAK;QACnB,MAAM,EAAE,GAAG,GAAG,MAAM;QACpB,IAAI;KACL,CAAC;AACJ,CAAC;AAED,kEAAkE;AAClE,SAAS,eAAe,CAAC,CAAY,EAAE,EAAY;IACjD,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,IAAI,IAAI,IAAI,CAAC;QAAE,OAAO,CAAC,CAAC;IACxB,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC1E,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3E,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,OAAO,mBAAmB;IACb,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC7C,QAAQ,GAAgC,EAAE,CAAC;IACnD;;;;;OAKG;IACK,SAAS,GAAG,IAAI,GAAG,EAA6B,CAAC;IACjD,KAAK,GAAkC,IAAI,CAAC;IAEpD;;;;OAIG;IACH,aAAa,CAAC,KAAoC;QAChD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,+FAA+F;IAC/F,QAAQ,CAAC,OAAgB,EAAE,OAA4B,EAAE;QACvD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,UAAU,CAAC,OAAgB;QACzB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAED,0FAA0F;IAC1F,GAAG,CAAC,OAAgB;QAClB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;IAC3B,CAAC;IAED;;;OAGG;IACH,OAAO,CAAC,GAAG,GAAG,CAAC,EAAE,QAAmB;QAClC,IAAI,CAAC,KAAK,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,2DAA2D;QACpF,MAAM,EAAE,GAAG,QAAQ,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,GAAG,GAAuB,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;QAC7B,KAAK,CAAC,KAAK,EAAE,CAAC;QACd,KAAK,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACnC,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC;gBACpB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACxB,SAAS;YACX,CAAC;YACD,MAAM,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,qBAAqB,EAAE,CAAC,CAAC;YAC/E,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACxC,MAAM,CAAC,GAAqB;gBAC1B,OAAO,EAAE,EAAE;gBACX,IAAI;gBACJ,OAAO,EAAE,KAAK,GAAG,CAAC;gBAClB,eAAe,EAAE,KAAK;gBACtB,eAAe,EAAE,CAAC,CAAC,eAAe,IAAI,UAAU;gBAChD,SAAS,EAAE,GAAG;aACf,CAAC;YACF,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QACnB,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;QACpB,OAAO,GAAG,CAAC;IACb,CAAC;IAED,4DAA4D;IAC5D,IAAI;QACF,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,uFAAuF;IACvF,GAAG,CAAC,OAAgB;QAClB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;CACF;AAED,SAAS,eAAe;IACtB,IAAI,OAAO,MAAM,KAAK,WAAW;QAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC;IACnG,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;AACjC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"relationships.d.ts","sourceRoot":"","sources":["../src/relationships.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAElE,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;AACjF,MAAM,MAAM,qBAAqB,GAAG,SAAS,GAAG,SAAS,GAAG,eAAe,CAAC;AAE5E,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,OAAO,CAAC;IACd,EAAE,EAAE,OAAO,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,qBAAqB,CAAC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,yDAAyD;IACzD,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,kBAAkB,CAAC;CAC5B;AAED,uCAAuC;AACvC,MAAM,MAAM,QAAQ,GAAG,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,GAAG,IAAI,CAAC;AAuBtD,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B,UAAU,EAAE,sBAAsB,EAAE,CAAC;CACtC;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,GAAG,UAAU,CAmC5E;AAED,2GAA2G;AAC3G,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,GAAG,iBAAiB,EAAE,CAE5F;AAED,wGAAwG;AACxG,wBAAgB,kCAAkC,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,GAAG,sBAAsB,EAAE,CAE3G;AAED,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAwC;IAC7D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6C;IAE5E;;;;;OAKG;IACH,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,QAAQ,GAAG,IAAI;IAqBpD;;;OAGG;IACH,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IASlC,6EAA6E;IAC7E,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,iBAAiB,EAAE,IAAI,GAAG,WAAW,GAAG,QAAQ,GAAG,QAAQ,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC,GAAG,iBAAiB;IAYzH,GAAG,IAAI,iBAAiB,EAAE;IAI1B,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,yEAAyE;IACzE,aAAa,IAAI,sBAAsB,EAAE;IAIzC,IAAI,cAAc,IAAI,MAAM,CAE3B;IAED,oFAAoF;IACpF,QAAQ,IAAI,iBAAiB,EAAE;CAYhC"}
1
+ {"version":3,"file":"relationships.d.ts","sourceRoot":"","sources":["../src/relationships.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAGlE,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;AACjF,MAAM,MAAM,qBAAqB,GAAG,SAAS,GAAG,SAAS,GAAG,eAAe,CAAC;AAE5E,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,OAAO,CAAC;IACd,EAAE,EAAE,OAAO,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,qBAAqB,CAAC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,yDAAyD;IACzD,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,kBAAkB,CAAC;CAC5B;AAED,uCAAuC;AACvC,MAAM,MAAM,QAAQ,GAAG,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,GAAG,IAAI,CAAC;AAuBtD,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B,UAAU,EAAE,sBAAsB,EAAE,CAAC;CACtC;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,GAAG,UAAU,CAmC5E;AAED,2GAA2G;AAC3G,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,GAAG,iBAAiB,EAAE,CAE5F;AAED,wGAAwG;AACxG,wBAAgB,kCAAkC,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,GAAG,sBAAsB,EAAE,CAE3G;AAED,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAwC;IAC7D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6C;IAE5E;;;;;OAKG;IACH,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,QAAQ,GAAG,IAAI;IA4BpD;;;OAGG;IACH,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IASlC,6EAA6E;IAC7E,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,iBAAiB,EAAE,IAAI,GAAG,WAAW,GAAG,QAAQ,GAAG,QAAQ,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC,GAAG,iBAAiB;IAYzH,GAAG,IAAI,iBAAiB,EAAE;IAI1B,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,yEAAyE;IACzE,aAAa,IAAI,sBAAsB,EAAE;IAIzC,IAAI,cAAc,IAAI,MAAM,CAE3B;IAED,oFAAoF;IACpF,QAAQ,IAAI,iBAAiB,EAAE;CAYhC"}
@@ -1,3 +1,4 @@
1
+ import { warnIfFrameFrequent } from "./dev-warn.js";
1
2
  // Id-less elements need a STABLE, UNIQUE fallback id. A content hash (tagName) collapsed every
2
3
  // id-less <a> onto one key, so edges keyed by `${idOf(from)}~type~${idOf(to)}` collided and
3
4
  // silently overwrote each other. A WeakMap hands out `el-<seq>` on first sight: same element → same
@@ -81,6 +82,10 @@ export class RelationshipRegistry {
81
82
  * Resolved edges accumulate across passes — only disconnected ones are dropped.
82
83
  */
83
84
  discover(root, resolve) {
85
+ // layout-traversal trap: discover() walks the DOM with querySelectorAll to rebuild graph edges.
86
+ // It is meant to run on a throttle (see shouldDiscoverRelationships' every-30-frames cadence), not
87
+ // every frame — warn once (dev-only) if it is being called at frame frequency.
88
+ warnIfFrameFrequent('RELATIONSHIP_DISCOVER', 'RelationshipRegistry.discover() is being called at frame frequency — it walks the DOM (querySelectorAll) to rebuild the relationship graph. Throttle it (e.g. every ~30 frames) instead of running it each frame.');
84
89
  const r = resolve ?? ((id) => (typeof document !== 'undefined' ? document.getElementById(id) : null));
85
90
  // prune resolved edges whose from or to element left the DOM before rescanning
86
91
  for (const [id, rl] of this.rels) {
@@ -1 +1 @@
1
- {"version":3,"file":"relationships.js","sourceRoot":"","sources":["../src/relationships.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"relationships.js","sourceRoot":"","sources":["../src/relationships.ts"],"names":[],"mappings":"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"}
package/dist/state.d.ts CHANGED
@@ -28,6 +28,9 @@ export declare class StateRegistry {
28
28
  * at their natural moments — callers with a frame loop can run this on a cadence). */
29
29
  prune(): void;
30
30
  clear(element: Element): void;
31
+ /** Drop ALL held state and listeners — used on platform teardown to free every strong Element ref
32
+ * immediately rather than waiting for the registry object itself to be collected. */
33
+ clearAll(): void;
31
34
  /** Observe one key on one element. Returns an unsubscribe function. */
32
35
  observe(element: Element, key: string, fn: StateListener): () => void;
33
36
  private notify;
@@ -1 +1 @@
1
- {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,KAAK,GAAG,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAShE,MAAM,MAAM,aAAa,GAAG,CAAC,KAAK,EAAE,eAAe,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;AAE5F,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAoD;IAC1E,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAuD;IAEjF,gFAAgF;IAChF,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI;IAYpD,iEAAiE;IACjE,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM;IAK7C,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAI/D,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO;IAI3C,mDAAmD;IACnD,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,WAAW,CAAC,MAAM,EAAE,eAAe,CAAC;IAI9D,uEAAuE;IACvE,QAAQ,IAAI,OAAO,EAAE;IAIrB,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;IAiB3C;2FACuF;IACvF,KAAK,IAAI,IAAI;IAKb,KAAK,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAK7B,uEAAuE;IACvE,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,aAAa,GAAG,MAAM,IAAI;IAerE,OAAO,CAAC,MAAM;CAIf"}
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,KAAK,GAAG,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAShE,MAAM,MAAM,aAAa,GAAG,CAAC,KAAK,EAAE,eAAe,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;AAE5F,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAoD;IAC1E,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAuD;IAEjF,gFAAgF;IAChF,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI;IAYpD,iEAAiE;IACjE,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM;IAK7C,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAI/D,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO;IAI3C,mDAAmD;IACnD,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,WAAW,CAAC,MAAM,EAAE,eAAe,CAAC;IAI9D,uEAAuE;IACvE,QAAQ,IAAI,OAAO,EAAE;IAIrB,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;IAiB3C;2FACuF;IACvF,KAAK,IAAI,IAAI;IAKb,KAAK,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAK7B;0FACsF;IACtF,QAAQ,IAAI,IAAI;IAKhB,uEAAuE;IACvE,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,aAAa,GAAG,MAAM,IAAI;IAerE,OAAO,CAAC,MAAM;CAIf"}
package/dist/state.js CHANGED
@@ -75,6 +75,12 @@ export class StateRegistry {
75
75
  this.store.delete(element);
76
76
  this.listeners.delete(element);
77
77
  }
78
+ /** Drop ALL held state and listeners — used on platform teardown to free every strong Element ref
79
+ * immediately rather than waiting for the registry object itself to be collected. */
80
+ clearAll() {
81
+ this.store.clear();
82
+ this.listeners.clear();
83
+ }
78
84
  /** Observe one key on one element. Returns an unsubscribe function. */
79
85
  observe(element, key, fn) {
80
86
  let byKey = this.listeners.get(element);
package/dist/state.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"state.js","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"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"}
@@ -1,27 +1,3 @@
1
- /**
2
- * VisualBindingRegistry — bind an expressive visual layer (SVG, Canvas, WebGL) to its semantic DOM
3
- * source without duplicating meaning or harming accessibility. The native primitive Fundamental wishes
4
- * existed: a declarative "this visual represents that semantic element; don't double-expose it".
5
- *
6
- * The semantic source stays real HTML; the visual is `aria-hidden` unless it carries independent
7
- * meaning. `lint()` flags orphan visuals and accessibility hazards.
8
- *
9
- * Declarative authoring: mark the visual with `data-field-visual-for` (id/selector of the semantic
10
- * source) and `data-field-visual-role`, then call `scan(root)` to register it. This is the bridge from
11
- * semantic HTML + data attributes → VisualBindingRegistry
12
- * It does NOT extract glyph outlines or generate vector geometry — it only binds an authored visual
13
- * layer to its source so the field can lint and inspect the pairing.
14
- *
15
- * State mirroring (Body Matter Interaction — the Bound Visual tier): the element absorbs field
16
- * matter; the visual layer shows what that absorption means; the semantic text remains the source
17
- * of meaning. CSS custom properties don't cross to siblings, so with mirroring enabled
18
- * (`setMirroring(true)` — the platform default) every `representation`/`measurement` visual
19
- * receives its source's feedback channels (`--d`/`--field-density`, `--load`/`--mass`, the measured
20
- * metrics — see MIRRORED_CHANNELS) copied onto its own inline style: an aria-hidden SVG beside a
21
- * sink heading thickens its contours from `var(--load)` exactly as if it were the body itself.
22
- * Change-gated via a MutationObserver on the source's style attribute — no polling, no frame cost
23
- * while the field is quiet.
24
- */
25
1
  export type VisualRole = 'decorative' | 'representation' | 'debug' | 'relationship' | 'measurement';
26
2
  export interface VisualBinding {
27
3
  visual: Element;
@@ -1 +1 @@
1
- {"version":3,"file":"visual-bindings.d.ts","sourceRoot":"","sources":["../src/visual-bindings.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,MAAM,MAAM,UAAU,GAAG,YAAY,GAAG,gBAAgB,GAAG,OAAO,GAAG,cAAc,GAAG,aAAa,CAAC;AAOpG,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,OAAO,CAAC;IAChB,cAAc,EAAE,OAAO,GAAG,IAAI,CAAC;IAC/B,IAAI,EAAE,UAAU,CAAC;IACjB,aAAa,EAAE;QACb,UAAU,EAAE,OAAO,CAAC;QACpB,yDAAyD;QACzD,sBAAsB,EAAE,OAAO,CAAC;QAChC,6FAA6F;QAC7F,kBAAkB,EAAE,OAAO,CAAC;KAC7B,CAAC;CACH;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,uBAAuB,GAAG,mBAAmB,GAAG,qBAAqB,CAAC;IAC5E,QAAQ,EAAE,SAAS,GAAG,OAAO,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,oGAAoG;AACpG,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,OAAO,CAAC;IACjB,8DAA8D;IAC9D,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AACD,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,wBAAwB,EAAE,CAAC;CACtC;AAID;+FAC+F;AAC/F,eAAO,MAAM,iBAAiB,EAAE,SAAS,MAAM,EAU9C,CAAC;AA8BF,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqC;IAC9D,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAwC;IAElE,+FAA+F;IAC/F,IAAI,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;QAAC,IAAI,EAAE,UAAU,CAAA;KAAE,GAAG,aAAa;IAmBzF;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI;IAU/B,6FAA6F;IAC7F,SAAS,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAYhC,OAAO,CAAC,KAAK;IAUb,OAAO,CAAC,OAAO;IAQf;;;;;OAKG;IACH,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,GAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,GAAG,IAA4B,GAAG,uBAAuB;IAwCjH,GAAG,CAAC,MAAM,EAAE,OAAO,GAAG,aAAa,GAAG,SAAS;IAI/C,GAAG,IAAI,aAAa,EAAE;IAItB,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,wEAAwE;IACxE,IAAI,IAAI,iBAAiB,EAAE;CAc5B"}
1
+ {"version":3,"file":"visual-bindings.d.ts","sourceRoot":"","sources":["../src/visual-bindings.ts"],"names":[],"mappings":"AA0BA,MAAM,MAAM,UAAU,GAAG,YAAY,GAAG,gBAAgB,GAAG,OAAO,GAAG,cAAc,GAAG,aAAa,CAAC;AAOpG,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,OAAO,CAAC;IAChB,cAAc,EAAE,OAAO,GAAG,IAAI,CAAC;IAC/B,IAAI,EAAE,UAAU,CAAC;IACjB,aAAa,EAAE;QACb,UAAU,EAAE,OAAO,CAAC;QACpB,yDAAyD;QACzD,sBAAsB,EAAE,OAAO,CAAC;QAChC,6FAA6F;QAC7F,kBAAkB,EAAE,OAAO,CAAC;KAC7B,CAAC;CACH;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,uBAAuB,GAAG,mBAAmB,GAAG,qBAAqB,CAAC;IAC5E,QAAQ,EAAE,SAAS,GAAG,OAAO,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,oGAAoG;AACpG,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,OAAO,CAAC;IACjB,8DAA8D;IAC9D,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AACD,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,wBAAwB,EAAE,CAAC;CACtC;AAID;+FAC+F;AAC/F,eAAO,MAAM,iBAAiB,EAAE,SAAS,MAAM,EAS9C,CAAC;AA8BF,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqC;IAC9D,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAwC;IAElE,+FAA+F;IAC/F,IAAI,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;QAAC,IAAI,EAAE,UAAU,CAAA;KAAE,GAAG,aAAa;IAmBzF;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI;IAU/B,6FAA6F;IAC7F,SAAS,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAYhC,OAAO,CAAC,KAAK;IAUb,OAAO,CAAC,OAAO;IAQf;;;;;OAKG;IACH,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,GAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,GAAG,IAA4B,GAAG,uBAAuB;IAgDjH,GAAG,CAAC,MAAM,EAAE,OAAO,GAAG,aAAa,GAAG,SAAS;IAI/C,GAAG,IAAI,aAAa,EAAE;IAItB,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,wEAAwE;IACxE,IAAI,IAAI,iBAAiB,EAAE;CAc5B"}
@@ -16,12 +16,13 @@
16
16
  * matter; the visual layer shows what that absorption means; the semantic text remains the source
17
17
  * of meaning. CSS custom properties don't cross to siblings, so with mirroring enabled
18
18
  * (`setMirroring(true)` — the platform default) every `representation`/`measurement` visual
19
- * receives its source's feedback channels (`--d`/`--field-density`, `--load`/`--mass`, the measured
19
+ * receives its source's feedback channels (`--d`/`--field-density`, `--load`, the measured
20
20
  * metrics — see MIRRORED_CHANNELS) copied onto its own inline style: an aria-hidden SVG beside a
21
21
  * sink heading thickens its contours from `var(--load)` exactly as if it were the body itself.
22
22
  * Change-gated via a MutationObserver on the source's style attribute — no polling, no frame cost
23
23
  * while the field is quiet.
24
24
  */
25
+ import { warnIfFrameFrequent } from "./dev-warn.js";
25
26
  const VISUAL_ROLES = ['decorative', 'representation', 'debug', 'relationship', 'measurement'];
26
27
  const isVisualRole = (v) => v != null && VISUAL_ROLES.includes(v);
27
28
  /** roles that re-present existing meaning and therefore require a semantic source. */
@@ -33,7 +34,6 @@ export const MIRRORED_CHANNELS = [
33
34
  '--d',
34
35
  '--field-density',
35
36
  '--load',
36
- '--mass',
37
37
  '--lit',
38
38
  '--entropy',
39
39
  '--coherence',
@@ -149,6 +149,11 @@ export class VisualBindingRegistry {
149
149
  * and disconnected visuals are pruned. `resolve` defaults to a document-backed resolver.
150
150
  */
151
151
  scan(root, resolve = defaultResolver(root)) {
152
+ // layout-traversal trap: scan() walks the DOM with querySelectorAll to (re)discover declarative
153
+ // bindings. It is meant to run on mount / mutation, not every frame — warn once (dev-only) if it
154
+ // is being called at frame frequency. Once bound, mirroring is change-gated via MutationObserver,
155
+ // so per-frame rescans are pure overhead.
156
+ warnIfFrameFrequent('VISUAL_BINDING_SCAN', 'VisualBindingRegistry.scan() is being called at frame frequency — it walks the DOM (querySelectorAll) to rediscover bindings. Scan on mount / DOM mutation, not every frame (mirroring is already change-gated via MutationObserver).');
152
157
  // navigation hygiene: drop bindings whose visual OR source left the DOM (and stop mirroring
153
158
  // them). Pruning only on the visual leaves a MutationObserver pinned to a removed source —
154
159
  // holding that detached source subtree alive for as long as the visual stays mounted.
@@ -1 +1 @@
1
- {"version":3,"file":"visual-bindings.js","sourceRoot":"","sources":["../src/visual-bindings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"visual-bindings.js","sourceRoot":"","sources":["../src/visual-bindings.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"offthread-bridge.d.ts","sourceRoot":"","sources":["../../src/worker/offthread-bridge.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAK5D,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,iBAAiB,EACzB,IAAI,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAO,GAC1B,qBAAqB,CAqDvB"}
1
+ {"version":3,"file":"offthread-bridge.d.ts","sourceRoot":"","sources":["../../src/worker/offthread-bridge.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAK5D,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,iBAAiB,EACzB,IAAI,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAO,GAC1B,qBAAqB,CA+EvB"}
@@ -12,28 +12,51 @@ export function attachOffthreadRender(field, canvas, opts = {}) {
12
12
  let frameN = 0;
13
13
  let pending = false;
14
14
  let raf = null;
15
- // Shared particle buffer — allocated once, grown if needed
16
- let buf = new Float32Array(1000 * PARTICLE_STRIDE);
15
+ // Double-buffered particle transfer (#991). Instead of `buf.slice(...)` allocating a fresh copy
16
+ // every posted frame, we keep a small free-list of buffers and *transfer* ownership to the worker
17
+ // (zero-copy). The worker posts the buffer back on 'done', where it re-enters the pool. A pool of
18
+ // two lets frame N+1 fill one buffer while the worker still holds frame N's — but rendering is
19
+ // gated on `pending` (one frame in flight), so at most one buffer is ever out on the worker.
20
+ const pool = [
21
+ new Float32Array(1000 * PARTICLE_STRIDE),
22
+ new Float32Array(1000 * PARTICLE_STRIDE),
23
+ ];
24
+ function takeBuffer(minLen) {
25
+ // reuse a pooled buffer if one is large enough; else allocate (and let the small one drop).
26
+ for (let i = 0; i < pool.length; i++) {
27
+ if (pool[i].length >= minLen)
28
+ return pool.splice(i, 1)[0];
29
+ }
30
+ return new Float32Array(minLen * 2);
31
+ }
17
32
  function tick() {
18
33
  raf = requestAnimationFrame(tick);
19
34
  if (pending)
20
- return; // worker still rendering previous frame
35
+ return; // worker still rendering previous frame (its buffer is still out)
21
36
  const n = field.particleCount();
22
- if (n * PARTICLE_STRIDE > buf.length)
23
- buf = new Float32Array(n * PARTICLE_STRIDE * 2);
37
+ const need = n * PARTICLE_STRIDE;
38
+ const buf = takeBuffer(need);
24
39
  field.readParticles(buf);
25
40
  pending = true;
41
+ // Transfer the underlying ArrayBuffer — zero-copy hand-off. The buffer is neutered on this side
42
+ // until the worker returns it (below), which is safe because `pending` blocks the next fill.
26
43
  worker.postMessage({
27
44
  type: 'frame',
28
- particles: buf.slice(0, n * PARTICLE_STRIDE),
45
+ particles: buf,
29
46
  count: n,
30
47
  W: canvas.width / dpr,
31
48
  H: canvas.height / dpr,
32
49
  dpr,
33
50
  frameN: frameN++,
34
- });
51
+ }, [buf.buffer]);
35
52
  }
36
- worker.addEventListener('message', () => { pending = false; });
53
+ worker.addEventListener('message', (e) => {
54
+ // Reclaim the transferred buffer the worker sends back, and clear the in-flight gate.
55
+ const returned = e.data?.particles;
56
+ if (returned instanceof Float32Array && pool.length < 2)
57
+ pool.push(returned);
58
+ pending = false;
59
+ });
37
60
  tick();
38
61
  return {
39
62
  supported: true,
@@ -1 +1 @@
1
- {"version":3,"file":"offthread-bridge.js","sourceRoot":"","sources":["../../src/worker/offthread-bridge.ts"],"names":[],"mappings":"AAUA,kEAAkE;AAClE,MAAM,eAAe,GAAG,CAAC,CAAC;AAO1B,MAAM,UAAU,qBAAqB,CACnC,KAAkB,EAClB,MAAyB,EACzB,OAAyB,EAAE;IAE3B,iCAAiC;IACjC,IAAI,OAAO,eAAe,KAAK,WAAW,IAAI,CAAC,MAAM,CAAC,0BAA0B,EAAE,CAAC;QACjF,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IAClD,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,MAAM,CAAC,gBAAgB,IAAI,CAAC,CAAC;IACrD,MAAM,SAAS,GAAG,MAAM,CAAC,0BAA0B,EAAE,CAAC;IAEtD,MAAM,MAAM,GAAG,IAAI,MAAM,CACvB,IAAI,GAAG,CAAC,oBAAoB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAC9C,EAAE,IAAI,EAAE,QAAQ,EAAE,CACnB,CAAC;IAEF,MAAM,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC,SAAoC,CAAC,CAAC,CAAC;IAEhG,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,GAAG,GAAkB,IAAI,CAAC;IAE9B,2DAA2D;IAC3D,IAAI,GAAG,GAAG,IAAI,YAAY,CAAC,IAAI,GAAG,eAAe,CAAC,CAAC;IAEnD,SAAS,IAAI;QACX,GAAG,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,OAAO;YAAE,OAAO,CAAC,wCAAwC;QAE7D,MAAM,CAAC,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC;QAChC,IAAI,CAAC,GAAG,eAAe,GAAG,GAAG,CAAC,MAAM;YAAE,GAAG,GAAG,IAAI,YAAY,CAAC,CAAC,GAAG,eAAe,GAAG,CAAC,CAAC,CAAC;QACtF,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QAEzB,OAAO,GAAG,IAAI,CAAC;QACf,MAAM,CAAC,WAAW,CAAC;YACjB,IAAI,EAAE,OAAO;YACb,SAAS,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC;YAC5C,KAAK,EAAE,CAAC;YACR,CAAC,EAAE,MAAM,CAAC,KAAK,GAAG,GAAG;YACrB,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,GAAG;YACtB,GAAG;YACH,MAAM,EAAE,MAAM,EAAE;SACjB,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/D,IAAI,EAAE,CAAC;IAEP,OAAO;QACL,SAAS,EAAE,IAAI;QACf,QAAQ,EAAE,GAAG,EAAE;YACb,IAAI,GAAG,IAAI,IAAI;gBAAE,oBAAoB,CAAC,GAAG,CAAC,CAAC;YAC3C,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"offthread-bridge.js","sourceRoot":"","sources":["../../src/worker/offthread-bridge.ts"],"names":[],"mappings":"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"}
@@ -2,8 +2,9 @@
2
2
  * Off-main-thread render worker. Receives particle data each frame via postMessage,
3
3
  * draws to an OffscreenCanvas using the canvas2d API.
4
4
  * Protocol: main → worker: { type:'frame', particles: Float32Array, count: number,
5
- * W: number, H: number, dpr: number, frameN: number }
6
- * worker → main: { type:'done', frameN: number }
5
+ * W: number, H: number, dpr: number, frameN: number } — `particles.buffer` is transferred.
6
+ * worker → main: { type:'done', frameN: number, particles: Float32Array } — the particle buffer is
7
+ * transferred BACK so the main thread can recycle it (see offthread-bridge pool, #991).
7
8
  */
8
9
  export {};
9
10
  //# sourceMappingURL=render-worker.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"render-worker.d.ts","sourceRoot":"","sources":["../../src/worker/render-worker.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
1
+ {"version":3,"file":"render-worker.d.ts","sourceRoot":"","sources":["../../src/worker/render-worker.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
@@ -2,10 +2,15 @@
2
2
  * Off-main-thread render worker. Receives particle data each frame via postMessage,
3
3
  * draws to an OffscreenCanvas using the canvas2d API.
4
4
  * Protocol: main → worker: { type:'frame', particles: Float32Array, count: number,
5
- * W: number, H: number, dpr: number, frameN: number }
6
- * worker → main: { type:'done', frameN: number }
5
+ * W: number, H: number, dpr: number, frameN: number } — `particles.buffer` is transferred.
6
+ * worker → main: { type:'done', frameN: number, particles: Float32Array } — the particle buffer is
7
+ * transferred BACK so the main thread can recycle it (see offthread-bridge pool, #991).
7
8
  */
8
9
  let ctx = null;
10
+ // This module runs in a DedicatedWorkerGlobalScope, but the package tsconfig uses the DOM lib (not
11
+ // WebWorker), so `self` types as Window — whose postMessage overloads differ (targetOrigin first).
12
+ // Narrow to the worker shape for the transfer-list call below.
13
+ const workerScope = self;
9
14
  self.addEventListener('message', (e) => {
10
15
  const msg = e.data;
11
16
  if (msg.type === 'init') {
@@ -36,7 +41,8 @@ self.addEventListener('message', (e) => {
36
41
  ctx.fill();
37
42
  }
38
43
  ctx.restore();
39
- self.postMessage({ type: 'done', frameN });
44
+ // Transfer the particle buffer back to the main thread so it can be recycled (zero-copy pool).
45
+ workerScope.postMessage({ type: 'done', frameN, particles }, particles?.buffer ? [particles.buffer] : []);
40
46
  }
41
47
  });
42
48
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"render-worker.js","sourceRoot":"","sources":["../../src/worker/render-worker.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,IAAI,GAAG,GAA6C,IAAI,CAAC;AAEzD,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,CAAe,EAAE,EAAE;IACnD,MAAM,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC;IACnB,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACxB,GAAG,GAAI,GAAG,CAAC,MAA0B,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACvD,OAAO;IACT,CAAC;IACD,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,IAAI,GAAG,EAAE,CAAC;QAChC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;QAC5D,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC;QACtC,GAAG,CAAC,IAAI,EAAE,CAAC;QACX,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACpB,iDAAiD;QACjD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/B,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;YACnB,MAAM,CAAC,GAAG,SAAS,CAAC,IAAI,CAAE,CAAC;YAC3B,MAAM,CAAC,GAAG,SAAS,CAAC,IAAI,GAAG,CAAC,CAAE,CAAC;YAC/B,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,GAAG,CAAC,CAAE,CAAC;YAClC,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,GAAG,CAAC,CAAE,CAAC;YAClC,MAAM,KAAK,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,CAAC;YAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YACjC,GAAG,CAAC,SAAS,EAAE,CAAC;YAChB,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YACtC,iDAAiD;YACjD,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,GAAG,GAAG,CAAC,CAAC;YACtC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,GAAG,GAAG,CAAC,CAAC;YACvC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC;YACtC,GAAG,CAAC,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;YAC3D,GAAG,CAAC,IAAI,EAAE,CAAC;QACb,CAAC;QACD,GAAG,CAAC,OAAO,EAAE,CAAC;QACd,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"render-worker.js","sourceRoot":"","sources":["../../src/worker/render-worker.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,IAAI,GAAG,GAA6C,IAAI,CAAC;AAEzD,mGAAmG;AACnG,mGAAmG;AACnG,+DAA+D;AAC/D,MAAM,WAAW,GAAG,IAEnB,CAAC;AAEF,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,CAAe,EAAE,EAAE;IACnD,MAAM,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC;IACnB,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACxB,GAAG,GAAI,GAAG,CAAC,MAA0B,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACvD,OAAO;IACT,CAAC;IACD,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,IAAI,GAAG,EAAE,CAAC;QAChC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;QAC5D,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC;QACtC,GAAG,CAAC,IAAI,EAAE,CAAC;QACX,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACpB,iDAAiD;QACjD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/B,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;YACnB,MAAM,CAAC,GAAG,SAAS,CAAC,IAAI,CAAE,CAAC;YAC3B,MAAM,CAAC,GAAG,SAAS,CAAC,IAAI,GAAG,CAAC,CAAE,CAAC;YAC/B,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,GAAG,CAAC,CAAE,CAAC;YAClC,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,GAAG,CAAC,CAAE,CAAC;YAClC,MAAM,KAAK,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,CAAC;YAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YACjC,GAAG,CAAC,SAAS,EAAE,CAAC;YAChB,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YACtC,iDAAiD;YACjD,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,GAAG,GAAG,CAAC,CAAC;YACtC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,GAAG,GAAG,CAAC,CAAC;YACvC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC;YACtC,GAAG,CAAC,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;YAC3D,GAAG,CAAC,IAAI,EAAE,CAAC;QACb,CAAC;QACD,GAAG,CAAC,OAAO,EAAE,CAAC;QACd,+FAA+F;QAC/F,WAAW,CAAC,WAAW,CACrB,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,EACnC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAC5C,CAAC;IACJ,CAAC;AACH,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"x-ray.d.ts","sourceRoot":"","sources":["../src/x-ray.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAE5D,MAAM,WAAW,WAAW;IAC1B,gDAAgD;IAChD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yDAAyD;IACzD,QAAQ,CAAC,EAAE,UAAU,GAAG,WAAW,GAAG,aAAa,GAAG,cAAc,CAAC;CACtE;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,GAAG,WAAW,EAAE,IAAI,GAAE,WAAgB,GAAG,MAAM,IAAI,CAiErH"}
1
+ {"version":3,"file":"x-ray.d.ts","sourceRoot":"","sources":["../src/x-ray.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAE5D,MAAM,WAAW,WAAW;IAC1B,gDAAgD;IAChD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yDAAyD;IACzD,QAAQ,CAAC,EAAE,UAAU,GAAG,WAAW,GAAG,aAAa,GAAG,cAAc,CAAC;CACtE;AAiBD,wBAAgB,SAAS,CAAC,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,GAAG,WAAW,EAAE,IAAI,GAAE,WAAgB,GAAG,MAAM,IAAI,CAqHrH"}