@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/x-ray.js CHANGED
@@ -1,6 +1,21 @@
1
+ function forceProbe(field) {
2
+ const fn = field.sample;
3
+ return typeof fn === 'function' ? (x, y) => fn.call(field, x, y) : null;
4
+ }
5
+ function energyProbe(field) {
6
+ const fn = field.energy;
7
+ return typeof fn === 'function' ? () => fn.call(field) : null;
8
+ }
1
9
  export function mountXRay(field, container, opts = {}) {
2
10
  const hotkey = opts.hotkey ?? '?';
3
11
  const pos = opts.position ?? 'bottom-right';
12
+ // Mount against the container's OWN document, not the global `document` — the field may live in
13
+ // an iframe, a popup window, or a test DOM. `ownerDocument` is null only for a Document node itself,
14
+ // in which case the container IS the document.
15
+ const doc = container.ownerDocument ?? container;
16
+ const mountParent = doc.body ?? doc.documentElement;
17
+ const sample = forceProbe(field);
18
+ const energy = energyProbe(field);
4
19
  let panel = null;
5
20
  let rafId = null;
6
21
  let cursorX = 0;
@@ -9,30 +24,75 @@ export function mountXRay(field, container, opts = {}) {
9
24
  const [v, h] = pos.split('-');
10
25
  return `position:fixed;${v}:16px;${h}:16px;z-index:99999;`;
11
26
  }
27
+ /** A styled key/value line. Values are set via textContent, never innerHTML — a hotkey (or any
28
+ * numeric readout) can never be interpreted as markup. */
29
+ function row(label, value, valueColor) {
30
+ const div = doc.createElement('div');
31
+ div.append(doc.createTextNode(label));
32
+ if (value !== undefined) {
33
+ const b = doc.createElement('b');
34
+ if (valueColor)
35
+ b.style.color = valueColor;
36
+ b.textContent = value;
37
+ div.append(doc.createTextNode(' '), b);
38
+ }
39
+ return div;
40
+ }
12
41
  function tick() {
13
42
  if (!panel)
14
43
  return;
15
44
  const n = field.particleCount();
16
- const sample = field.sample?.(cursorX, cursorY);
17
- const energy = field.energy?.();
18
- panel.innerHTML = `
19
- <div style="font:11px/1.4 monospace;color:#e2e8f0;padding:12px 14px;min-width:220px">
20
- <div style="color:#a0c4ff;font-weight:700;margin-bottom:8px;letter-spacing:.04em">⊕ FIELD X-RAY</div>
21
- <div>particles <b style="color:#ffd166">${n}</b></div>
22
- ${energy ? `<div>kinetic <b style="color:#ffd166">${energy.kinetic.toFixed(3)}</b> thermal <b style="color:#ffd166">${energy.thermal.toFixed(3)}</b></div>` : ''}
23
- ${sample ? `<div>force @ cursor fx <b style="color:#06d6a0">${sample.x.toFixed(3)}</b> fy <b style="color:#06d6a0">${sample.y.toFixed(3)}</b></div>` : ''}
24
- <div style="margin-top:6px;color:#718096;font-size:10px">press ${hotkey} to close · move cursor for force probe</div>
25
- </div>
26
- `;
45
+ const e = energy?.();
46
+ const f = sample?.(cursorX, cursorY);
47
+ // Rebuild the body from scratch each frame via typed nodes — no innerHTML anywhere.
48
+ const inner = doc.createElement('div');
49
+ inner.style.cssText = 'font:11px/1.4 monospace;color:#e2e8f0;padding:12px 14px;min-width:220px';
50
+ const title = doc.createElement('div');
51
+ title.style.cssText = 'color:#a0c4ff;font-weight:700;margin-bottom:8px;letter-spacing:.04em';
52
+ title.textContent = '⊕ FIELD X-RAY';
53
+ inner.append(title);
54
+ inner.append(row('particles', String(n), '#ffd166'));
55
+ if (e) {
56
+ const line = doc.createElement('div');
57
+ line.append(doc.createTextNode('kinetic '));
58
+ const k = doc.createElement('b');
59
+ k.style.color = '#ffd166';
60
+ k.textContent = e.kinetic.toFixed(3);
61
+ line.append(k, doc.createTextNode(' thermal '));
62
+ const t = doc.createElement('b');
63
+ t.style.color = '#ffd166';
64
+ t.textContent = e.thermal.toFixed(3);
65
+ line.append(t);
66
+ inner.append(line);
67
+ }
68
+ if (f) {
69
+ const line = doc.createElement('div');
70
+ line.append(doc.createTextNode('force @ cursor fx '));
71
+ const fx = doc.createElement('b');
72
+ fx.style.color = '#06d6a0';
73
+ fx.textContent = f.x.toFixed(3);
74
+ line.append(fx, doc.createTextNode(' fy '));
75
+ const fy = doc.createElement('b');
76
+ fy.style.color = '#06d6a0';
77
+ fy.textContent = f.y.toFixed(3);
78
+ line.append(fy);
79
+ inner.append(line);
80
+ }
81
+ const hint = doc.createElement('div');
82
+ hint.style.cssText = 'margin-top:6px;color:#718096;font-size:10px';
83
+ // hotkey is interpolated as TEXT — an `<img onerror=…>` hotkey renders as literal characters.
84
+ hint.textContent = `press ${hotkey} to close · move cursor for force probe`;
85
+ inner.append(hint);
86
+ panel.replaceChildren(inner);
27
87
  rafId = requestAnimationFrame(tick);
28
88
  }
29
89
  function open() {
30
90
  if (panel)
31
91
  return;
32
- panel = document.createElement('div');
92
+ panel = doc.createElement('div');
33
93
  panel.setAttribute('data-field-xray', '');
34
94
  panel.style.cssText = positionStyle() + 'background:rgba(10,15,28,.88);border:1px solid rgba(160,196,255,.18);border-radius:10px;backdrop-filter:blur(12px);box-shadow:0 8px 32px rgba(0,0,0,.5);';
35
- document.body.appendChild(panel);
95
+ mountParent.appendChild(panel);
36
96
  tick();
37
97
  }
38
98
  function close() {
package/dist/x-ray.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"x-ray.js","sourceRoot":"","sources":["../src/x-ray.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"x-ray.js","sourceRoot":"","sources":["../src/x-ray.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-engine/dom",
3
- "version": "0.9.1",
3
+ "version": "0.9.3",
4
4
  "description": "The platform-adjacent layer for Fundamental — native-first registries for measurement, semantic state, feedback, relationships, visual-semantic bindings, and overlays. The browser primitives Fundamental wishes existed, built on the ones it has.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -46,7 +46,7 @@
46
46
  "access": "public"
47
47
  },
48
48
  "dependencies": {
49
- "@fundamental-engine/core": "0.9.1"
49
+ "@fundamental-engine/core": "0.9.3"
50
50
  },
51
51
  "devDependencies": {
52
52
  "typescript": "^5.9.3"