@fundamental-engine/react 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.
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +35 -12
- package/dist/index.js.map +1 -1
- package/package.json +4 -3
package/dist/index.d.ts
CHANGED
|
@@ -21,7 +21,7 @@ export interface FieldFieldProps extends FieldOptions {
|
|
|
21
21
|
/** called once the field is created, with its handle (scan/burst/setAccent/…). */
|
|
22
22
|
onReady?: (field: FieldHandle) => void;
|
|
23
23
|
}
|
|
24
|
-
export declare function FieldField({ className, style, onReady, accent, density, depth, waves, waveStyle, waveCenter, background, render, overlay, overlayBackend, mass, palette, attention, causality, heatmap, dprCap, separation, rng, now, feedbackSink, }: FieldFieldProps): ReactElement;
|
|
24
|
+
export declare function FieldField({ className, style, onReady, accent, density, depth, integrator, waves, waveStyle, waveCenter, background, render, overlay, overlayBackend, mass, palette, attention, causality, heatmap, dprCap, separation, rng, now, feedbackSink, }: FieldFieldProps): ReactElement;
|
|
25
25
|
/**
|
|
26
26
|
* Hook form — returns a ref to attach to your own `<canvas>` and the live handle.
|
|
27
27
|
* Use when you need to own the canvas element (sizing, placement) yourself.
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACpE,OAAO,EAAsB,KAAK,WAAW,EAAE,KAAK,YAAY,EAAqB,MAAM,0BAA0B,CAAC;AACtH,OAAO,EAGL,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,qBAAqB,EAC1B,KAAK,YAAY,EAClB,MAAM,yBAAyB,CAAC;AAEjC,MAAM,WAAW,eAAgB,SAAQ,YAAY;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,kFAAkF;IAClF,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;CAGxC;AAKD,wBAAgB,UAAU,CAAC,EACzB,SAAS,EACT,KAAK,EACL,OAAO,EACP,MAAM,EACN,OAAO,EACP,KAAK,EACL,KAAK,EACL,SAAS,EACT,UAAU,EACV,UAAU,EACV,MAAM,EACN,OAAO,EACP,cAAc,EACd,IAAI,EACJ,OAAO,EACP,SAAS,EACT,SAAS,EACT,OAAO,EACP,MAAM,EACN,UAAU,EACV,GAAG,EACH,GAAG,EACH,YAAY,GACb,EAAE,eAAe,GAAG,YAAY,CA2ChC;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,GAAE,YAAiB,GAAG;IACtD,SAAS,EAAE,SAAS,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC;IAC/C,QAAQ,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;CACzC,CAwCA;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAC7B,OAAO,EAAE,CAAC,EAAE,EACZ,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,EACvB,OAAO,GAAE,eAAe,CAAC,CAAC,CAAM,GAC/B;IACD,YAAY,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAC/C,UAAU,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAC7C,OAAO,EAAE,MAAM,qBAAqB,GAAG,IAAI,CAAC;CAC7C,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACpE,OAAO,EAAsB,KAAK,WAAW,EAAE,KAAK,YAAY,EAAqB,MAAM,0BAA0B,CAAC;AACtH,OAAO,EAGL,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,qBAAqB,EAC1B,KAAK,YAAY,EAClB,MAAM,yBAAyB,CAAC;AAEjC,MAAM,WAAW,eAAgB,SAAQ,YAAY;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,kFAAkF;IAClF,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;CAGxC;AAKD,wBAAgB,UAAU,CAAC,EACzB,SAAS,EACT,KAAK,EACL,OAAO,EACP,MAAM,EACN,OAAO,EACP,KAAK,EACL,UAAU,EACV,KAAK,EACL,SAAS,EACT,UAAU,EACV,UAAU,EACV,MAAM,EACN,OAAO,EACP,cAAc,EACd,IAAI,EACJ,OAAO,EACP,SAAS,EACT,SAAS,EACT,OAAO,EACP,MAAM,EACN,UAAU,EACV,GAAG,EACH,GAAG,EACH,YAAY,GACb,EAAE,eAAe,GAAG,YAAY,CA2ChC;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,GAAE,YAAiB,GAAG;IACtD,SAAS,EAAE,SAAS,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC;IAC/C,QAAQ,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;CACzC,CAwCA;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAC7B,OAAO,EAAE,CAAC,EAAE,EACZ,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,EACvB,OAAO,GAAE,eAAe,CAAC,CAAC,CAAM,GAC/B;IACD,YAAY,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAC/C,UAAU,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAC7C,OAAO,EAAE,MAAM,qBAAqB,GAAG,IAAI,CAAC;CAC7C,CAqDA;AAID,YAAY,EACV,WAAW,EACX,YAAY,EACZ,IAAI,EACJ,SAAS,EACT,WAAW,EACX,WAAW,EACX,YAAY,EACZ,gBAAgB,GACjB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAGzD,YAAY,EACV,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,kBAAkB,EAClB,eAAe,EACf,WAAW,EACX,qBAAqB,GACtB,MAAM,yBAAyB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -13,12 +13,12 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
13
13
|
* The field reacts to `[data-body]` elements anywhere on the page (the field-reacts
|
|
14
14
|
* law); call `field.scan()` from `onReady` after you render new bodies.
|
|
15
15
|
*/
|
|
16
|
-
import { useEffect, useRef } from 'react';
|
|
16
|
+
import { useEffect, useRef, useState } from 'react';
|
|
17
17
|
import { FIELD_CANVAS_STYLE } from '@fundamental-engine/core';
|
|
18
18
|
import { createBrowserField, bindData, } from '@fundamental-engine/dom';
|
|
19
19
|
// the fixed, click-through surface — shared with the vanilla mount via core/surface.ts.
|
|
20
20
|
const FIXED = FIELD_CANVAS_STYLE;
|
|
21
|
-
export function FieldField({ className, style, onReady, accent, density, depth, waves, waveStyle, waveCenter, background, render, overlay, overlayBackend, mass, palette, attention, causality, heatmap, dprCap, separation, rng, now, feedbackSink, }) {
|
|
21
|
+
export function FieldField({ className, style, onReady, accent, density, depth, integrator, waves, waveStyle, waveCenter, background, render, overlay, overlayBackend, mass, palette, attention, causality, heatmap, dprCap, separation, rng, now, feedbackSink, }) {
|
|
22
22
|
const canvasRef = useRef(null);
|
|
23
23
|
const onReadyRef = useRef(onReady);
|
|
24
24
|
onReadyRef.current = onReady;
|
|
@@ -39,7 +39,7 @@ export function FieldField({ className, style, onReady, accent, density, depth,
|
|
|
39
39
|
overlayCanvasRef.current = oc;
|
|
40
40
|
}
|
|
41
41
|
const field = createBrowserField(canvas, {
|
|
42
|
-
accent, density, depth, waves, waveStyle, waveCenter, background, render,
|
|
42
|
+
accent, density, depth, integrator, waves, waveStyle, waveCenter, background, render,
|
|
43
43
|
overlay, overlayCanvas: overlayCanvasRef.current ?? undefined, overlayBackend,
|
|
44
44
|
mass, palette, attention, causality, heatmap, dprCap, separation,
|
|
45
45
|
rng, now, feedbackSink,
|
|
@@ -54,7 +54,7 @@ export function FieldField({ className, style, onReady, accent, density, depth,
|
|
|
54
54
|
// re-create only when a declarative engine option actually changes. The determinism/feedback
|
|
55
55
|
// seams (rng/now/feedbackSink/overlayBackend) are config-set-once — forwarded above, but kept
|
|
56
56
|
// out of the dep list so an inline value passed each render doesn't thrash the field.
|
|
57
|
-
}, [accent, density, depth, waves, waveStyle, waveCenter, background, render, overlay, mass, palette, attention, causality, heatmap, dprCap, separation]);
|
|
57
|
+
}, [accent, density, depth, integrator, waves, waveStyle, waveCenter, background, render, overlay, mass, palette, attention, causality, heatmap, dprCap, separation]);
|
|
58
58
|
return (_jsx("canvas", { ref: canvasRef, "aria-hidden": "true", className: className, style: { ...FIXED, ...style } }));
|
|
59
59
|
}
|
|
60
60
|
/**
|
|
@@ -66,7 +66,7 @@ export function useFieldField(opts = {}) {
|
|
|
66
66
|
const fieldRef = useRef(null);
|
|
67
67
|
/** Field Surfaces: the front overlay surface this hook owns, lazily created. */
|
|
68
68
|
const overlayCanvasRef = useRef(null);
|
|
69
|
-
const { accent, density, depth, waves, waveStyle, waveCenter, background, render, overlay, overlayBackend, mass, palette, attention, causality, heatmap, dprCap, separation, rng, now, feedbackSink, } = opts;
|
|
69
|
+
const { accent, density, depth, integrator, waves, waveStyle, waveCenter, background, render, overlay, overlayBackend, mass, palette, attention, causality, heatmap, dprCap, separation, rng, now, feedbackSink, } = opts;
|
|
70
70
|
useEffect(() => {
|
|
71
71
|
const canvas = canvasRef.current;
|
|
72
72
|
if (!canvas)
|
|
@@ -81,7 +81,7 @@ export function useFieldField(opts = {}) {
|
|
|
81
81
|
overlayCanvasRef.current = oc;
|
|
82
82
|
}
|
|
83
83
|
const field = createBrowserField(canvas, {
|
|
84
|
-
accent, density, depth, waves, waveStyle, waveCenter, background, render,
|
|
84
|
+
accent, density, depth, integrator, waves, waveStyle, waveCenter, background, render,
|
|
85
85
|
overlay, overlayCanvas: overlayCanvasRef.current ?? undefined, overlayBackend,
|
|
86
86
|
mass, palette, attention, causality, heatmap, dprCap, separation,
|
|
87
87
|
rng, now, feedbackSink,
|
|
@@ -95,7 +95,7 @@ export function useFieldField(opts = {}) {
|
|
|
95
95
|
overlayCanvasRef.current = null;
|
|
96
96
|
};
|
|
97
97
|
// declarative options drive recreation; the seams (rng/now/feedbackSink/overlayBackend) forward but stay out of deps.
|
|
98
|
-
}, [accent, density, depth, waves, waveStyle, waveCenter, background, render, overlay, mass, palette, attention, causality, heatmap, dprCap, separation]);
|
|
98
|
+
}, [accent, density, depth, integrator, waves, waveStyle, waveCenter, background, render, overlay, mass, palette, attention, causality, heatmap, dprCap, separation]);
|
|
99
99
|
return { canvasRef, fieldRef };
|
|
100
100
|
}
|
|
101
101
|
/**
|
|
@@ -116,8 +116,30 @@ export function useFieldField(opts = {}) {
|
|
|
116
116
|
* the full `DataBinding` (`ids()`, `applied()`, …) for advanced consumers. Mirrors `useFieldField`.
|
|
117
117
|
*/
|
|
118
118
|
export function useForcesData(records, mapper, options = {}) {
|
|
119
|
-
const containerRef = useRef(null);
|
|
120
119
|
const bindingRef = useRef(null);
|
|
120
|
+
// The host node is tracked in STATE, not just a ref, so the mount effect RE-RUNS the moment the
|
|
121
|
+
// node attaches. A plain `useRef` read once in a `[]`-dep effect stays null forever if the
|
|
122
|
+
// container mounts after the first effect pass (the #989 bug) — the effect never re-runs.
|
|
123
|
+
const [containerEl, setContainerEl] = useState(null);
|
|
124
|
+
// A STABLE RefObject-shaped view (built once) keeps the returned contract unchanged and avoids
|
|
125
|
+
// detach/reattach churn: React assigns `.current` on attach (node) / detach (null) in the commit
|
|
126
|
+
// phase; the setter records the node and — on a real change — flips state to wake the effect.
|
|
127
|
+
const refView = useRef(undefined);
|
|
128
|
+
if (!refView.current) {
|
|
129
|
+
let node = null;
|
|
130
|
+
refView.current = {
|
|
131
|
+
get current() {
|
|
132
|
+
return node;
|
|
133
|
+
},
|
|
134
|
+
set current(next) {
|
|
135
|
+
if (next === node)
|
|
136
|
+
return;
|
|
137
|
+
node = next;
|
|
138
|
+
setContainerEl(next);
|
|
139
|
+
},
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
const containerRef = refView.current;
|
|
121
143
|
// latest mapper/options/records held in refs so the binding can read them without re-creating
|
|
122
144
|
// the binding (and re-mounting every body) when an inline closure changes identity each render.
|
|
123
145
|
const mapperRef = useRef(mapper);
|
|
@@ -126,9 +148,10 @@ export function useForcesData(records, mapper, options = {}) {
|
|
|
126
148
|
optionsRef.current = options;
|
|
127
149
|
const recordsRef = useRef(records);
|
|
128
150
|
recordsRef.current = records;
|
|
129
|
-
// create/destroy the binding when the container element appears/disappears
|
|
151
|
+
// create/destroy the binding when the container element appears/disappears — keyed on the node,
|
|
152
|
+
// so a container that attaches AFTER first render still gets bound (the null-first-pass fix).
|
|
130
153
|
useEffect(() => {
|
|
131
|
-
const container =
|
|
154
|
+
const container = containerEl;
|
|
132
155
|
if (!container)
|
|
133
156
|
return;
|
|
134
157
|
const binding = bindData(container, recordsRef.current, (rec, i) => mapperRef.current(rec, i), optionsRef.current);
|
|
@@ -137,8 +160,8 @@ export function useForcesData(records, mapper, options = {}) {
|
|
|
137
160
|
binding.destroy();
|
|
138
161
|
bindingRef.current = null;
|
|
139
162
|
};
|
|
140
|
-
// mount
|
|
141
|
-
}, []);
|
|
163
|
+
// re-mount when the container node identity changes; data flows through update() in the effect below.
|
|
164
|
+
}, [containerEl]);
|
|
142
165
|
// push every records change into the live binding (diff by id is bindData's job).
|
|
143
166
|
useEffect(() => {
|
|
144
167
|
bindingRef.current?.update(records);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fundamental-engine/react",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.3",
|
|
4
4
|
"description": "React adapter for Fundamental — a reciprocal DOM-physics field as a <FieldField> component + useFieldField hook.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -45,8 +45,8 @@
|
|
|
45
45
|
"access": "public"
|
|
46
46
|
},
|
|
47
47
|
"dependencies": {
|
|
48
|
-
"@fundamental-engine/
|
|
49
|
-
"@fundamental-engine/
|
|
48
|
+
"@fundamental-engine/core": "0.9.3",
|
|
49
|
+
"@fundamental-engine/dom": "0.9.3"
|
|
50
50
|
},
|
|
51
51
|
"peerDependencies": {
|
|
52
52
|
"react": ">=18"
|
|
@@ -54,6 +54,7 @@
|
|
|
54
54
|
"devDependencies": {
|
|
55
55
|
"@types/react": "^19.0.0",
|
|
56
56
|
"react": "^19.0.0",
|
|
57
|
+
"react-test-renderer": "^19.2.7",
|
|
57
58
|
"typescript": "^5.9.3"
|
|
58
59
|
},
|
|
59
60
|
"scripts": {
|