@xenolithengine/graph-react 0.7.0-beta.2 → 0.7.0-beta.5
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/README.md +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +35 -3
- package/dist/index.js.map +1 -1
- package/dist/react-widget.d.ts +2 -0
- package/dist/react-widget.d.ts.map +1 -1
- package/dist/react-widget.js +3 -1
- package/dist/react-widget.js.map +1 -1
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -49,8 +49,8 @@ export function Editor() {
|
|
|
49
49
|
|
|
50
50
|
## Docs
|
|
51
51
|
|
|
52
|
-
- [React guide](https://
|
|
53
|
-
- [API reference](https://
|
|
52
|
+
- [React guide](https://graph.xenolith.studio/guides/react/)
|
|
53
|
+
- [API reference](https://graph.xenolith.studio/guides/api/) — every method exposed by `XenolithEditor`
|
|
54
54
|
- [GitHub](https://github.com/XenolithEngine/xenolith-graph)
|
|
55
55
|
|
|
56
56
|
MIT © XenolithEngine
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAIA,OAAO,EAA+B,KAAK,aAAa,EAAE,KAAK,YAAY,EAAE,KAAK,SAAS,EAAE,KAAK,GAAG,EAAE,MAAM,OAAO,CAAA;AACpH,OAAO,EAA2C,KAAK,aAAa,EAAE,MAAM,oCAAoC,CAAA;AAChH,OAAO,KAAK,EAAgB,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAChF,OAAO,EAAc,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAGjE,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAC5E,OAAO,EACL,aAAa,EAAE,cAAc,EAAE,gBAAgB,EAAE,eAAe,EAChE,KAAK,aAAa,EAAE,KAAK,kBAAkB,EAAE,KAAK,mBAAmB,EACrE,KAAK,qBAAqB,EAAE,KAAK,oBAAoB,GACtD,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACrH,OAAO,EAAE,WAAW,EAAE,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAEjE,MAAM,WAAW,kBAAmB,SAAQ,aAAa,EAAE,cAAc;IACvE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,aAAa,CAAA;IACrB,mDAAmD;IACnD,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,CAAA;IAC1C,uEAAuE;IACvE,YAAY,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC,CAAA;IAClC,uGAAuG;IACvG,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAIA,OAAO,EAA+B,KAAK,aAAa,EAAE,KAAK,YAAY,EAAE,KAAK,SAAS,EAAE,KAAK,GAAG,EAAE,MAAM,OAAO,CAAA;AACpH,OAAO,EAA2C,KAAK,aAAa,EAAE,MAAM,oCAAoC,CAAA;AAChH,OAAO,KAAK,EAAgB,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAChF,OAAO,EAAc,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAGjE,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAC5E,OAAO,EACL,aAAa,EAAE,cAAc,EAAE,gBAAgB,EAAE,eAAe,EAChE,KAAK,aAAa,EAAE,KAAK,kBAAkB,EAAE,KAAK,mBAAmB,EACrE,KAAK,qBAAqB,EAAE,KAAK,oBAAoB,GACtD,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACrH,OAAO,EAAE,WAAW,EAAE,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAEjE,MAAM,WAAW,kBAAmB,SAAQ,aAAa,EAAE,cAAc;IACvE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,aAAa,CAAA;IACrB,mDAAmD;IACnD,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,CAAA;IAC1C,uEAAuE;IACvE,YAAY,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC,CAAA;IAClC,uGAAuG;IACvG,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB;AAgBD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,YAAY,CAqFrE;AAED,gGAAgG;AAChG,wBAAgB,WAAW,CACzB,OAAO,EAAE,GAAG,CAAC,cAAc,CAAC,EAC5B,KAAK,GAAE,aAAkB,GACxB;IAAE,SAAS,EAAE;QAAE,OAAO,EAAE,cAAc,GAAG,IAAI,CAAA;KAAE,CAAA;CAAE,CAqBnD"}
|
package/dist/index.js
CHANGED
|
@@ -13,6 +13,11 @@ export { XenolithPanel, XenolithButton, XenolithControls, XenolithMiniMap, } fro
|
|
|
13
13
|
export { useNodes, useEdges, useSelection, useViewport, useGraphJSON, useEditorEvent, useUndoRedo } from './hooks.js';
|
|
14
14
|
export { reactWidget } from './react-widget.js';
|
|
15
15
|
const EDITOR_KEYS = ['theme', 'graph', 'zoomBounds', 'minimap', 'disableGrid', 'snap', 'resizeToWindow', 'fitOnLoad', 'isValidConnection'];
|
|
16
|
+
// Module-level promise chain that serializes all editor mount/unmount lifecycle operations.
|
|
17
|
+
// React 19 StrictMode in dev runs every useEffect mount → cleanup → mount. With async PIXI init
|
|
18
|
+
// in the middle that races two apps onto the same host. Routing both init and teardown through
|
|
19
|
+
// this single chain guarantees ordering across the whole lifecycle.
|
|
20
|
+
let pendingChain = Promise.resolve();
|
|
16
21
|
function pickEditorProps(props) {
|
|
17
22
|
const out = {};
|
|
18
23
|
for (const k of EDITOR_KEYS)
|
|
@@ -34,17 +39,33 @@ export function XenolithGraph(props) {
|
|
|
34
39
|
const cbRef = useRef(props);
|
|
35
40
|
cbRef.current = props;
|
|
36
41
|
// Mount once. Subscriptions read the live cbRef, so they survive prop changes.
|
|
42
|
+
// React 19 StrictMode runs every useEffect twice in dev (mount → cleanup → mount). Because
|
|
43
|
+
// `createEditorBinding` is async (PIXI Application.init is async), a naive implementation
|
|
44
|
+
// starts a second editor before the first one finishes, leaving two PIXI apps registering
|
|
45
|
+
// global filter extensions on the same canvas → BindGroup state corrupts, first frame
|
|
46
|
+
// renders empty. The fix: serialize mount/destroy through a single promise chain on a ref —
|
|
47
|
+
// every cleanup waits for the in-flight init to settle, every re-mount waits for the
|
|
48
|
+
// previous binding to be fully torn down before starting its own init.
|
|
37
49
|
useEffect(() => {
|
|
38
50
|
const host = hostRef.current;
|
|
39
51
|
if (!host)
|
|
40
52
|
return;
|
|
41
53
|
let disposed = false;
|
|
42
54
|
const offs = [];
|
|
43
|
-
|
|
55
|
+
const cell = { binding: null };
|
|
56
|
+
// Wait for any pending teardown from a prior mount cycle (StrictMode) to finish before we
|
|
57
|
+
// touch the host. Chains all serializing through a shared module-level promise.
|
|
58
|
+
pendingChain = pendingChain
|
|
59
|
+
.catch(() => { })
|
|
60
|
+
.then(async () => {
|
|
61
|
+
if (disposed)
|
|
62
|
+
return;
|
|
63
|
+
const binding = await createEditorBinding(host, pickEditorProps(cbRef.current));
|
|
44
64
|
if (disposed) {
|
|
45
65
|
binding.destroy();
|
|
46
66
|
return;
|
|
47
67
|
}
|
|
68
|
+
cell.binding = binding;
|
|
48
69
|
bindingRef.current = binding;
|
|
49
70
|
cbRef.current.onReady?.(binding.editor);
|
|
50
71
|
setEditor(binding.editor);
|
|
@@ -59,8 +80,19 @@ export function XenolithGraph(props) {
|
|
|
59
80
|
disposed = true;
|
|
60
81
|
for (const off of offs)
|
|
61
82
|
off();
|
|
62
|
-
|
|
63
|
-
|
|
83
|
+
// Push teardown onto the same chain — guarantees we don't destroy() before the init
|
|
84
|
+
// promise has resolved (and thus before there's a binding to tear down), and any
|
|
85
|
+
// subsequent mount waits for this destroy() to finish before starting fresh.
|
|
86
|
+
pendingChain = pendingChain
|
|
87
|
+
.catch(() => { })
|
|
88
|
+
.then(() => {
|
|
89
|
+
if (cell.binding) {
|
|
90
|
+
cell.binding.destroy();
|
|
91
|
+
cell.binding = null;
|
|
92
|
+
}
|
|
93
|
+
if (bindingRef.current === cell.binding)
|
|
94
|
+
bindingRef.current = null;
|
|
95
|
+
});
|
|
64
96
|
setEditor(null);
|
|
65
97
|
};
|
|
66
98
|
}, []);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AACZ,uGAAuG;AACvG,kGAAkG;AAClG,wCAAwC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAmE,MAAM,OAAO,CAAA;AACpH,OAAO,EAAE,mBAAmB,EAA0C,MAAM,oCAAoC,CAAA;AAEhH,OAAO,EAAE,UAAU,EAAuB,MAAM,iBAAiB,CAAA;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAG9C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAC5E,OAAO,EACL,aAAa,EAAE,cAAc,EAAE,gBAAgB,EAAE,eAAe,GAGjE,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACrH,OAAO,EAAE,WAAW,EAAoB,MAAM,mBAAmB,CAAA;AAajE,MAAM,WAAW,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,EAAE,gBAAgB,EAAE,WAAW,EAAE,mBAAmB,CAAU,CAAA;AAEnJ,SAAS,eAAe,CAAC,KAAyB;IAChD,MAAM,GAAG,GAAkB,EAAE,CAAA;IAC7B,KAAK,MAAM,CAAC,IAAI,WAAW;QAAE,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS;YAAG,GAA+B,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;IACvG,OAAO,GAAG,CAAA;AACZ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,KAAyB;IACrD,MAAM,OAAO,GAAG,MAAM,CAAwB,IAAI,CAAC,CAAA;IACnD,MAAM,UAAU,GAAG,MAAM,CAAuB,IAAI,CAAC,CAAA;IACrD,4FAA4F;IAC5F,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAwB,IAAI,CAAC,CAAA;IACjE,gGAAgG;IAChG,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;IAC3B,KAAK,CAAC,OAAO,GAAG,KAAK,CAAA;IAErB,+EAA+E;IAC/E,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAA;QAC5B,IAAI,CAAC,IAAI;YAAE,OAAM;QACjB,IAAI,QAAQ,GAAG,KAAK,CAAA;QACpB,MAAM,IAAI,GAAsB,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"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"}
|
package/dist/react-widget.d.ts
CHANGED
|
@@ -5,6 +5,8 @@ import type { DomWidgetController } from '@xenolithengine/graph-editor';
|
|
|
5
5
|
export interface WidgetProps {
|
|
6
6
|
value: unknown;
|
|
7
7
|
setValue: (v: unknown) => void;
|
|
8
|
+
/** Opens the properties sidebar for the widget's node. */
|
|
9
|
+
openSidebar: () => void;
|
|
8
10
|
accent: string;
|
|
9
11
|
text: string;
|
|
10
12
|
muted: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react-widget.d.ts","sourceRoot":"","sources":["../src/react-widget.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAA;AAEvE;kGACkG;AAClG,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,OAAO,CAAA;IACd,QAAQ,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAA;IAC9B,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;CACf;AAED;;sEAEsE;AACtE,wBAAgB,WAAW,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,SAAS,GAAG,mBAAmB,
|
|
1
|
+
{"version":3,"file":"react-widget.d.ts","sourceRoot":"","sources":["../src/react-widget.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAA;AAEvE;kGACkG;AAClG,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,OAAO,CAAA;IACd,QAAQ,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAA;IAC9B,0DAA0D;IAC1D,WAAW,EAAE,MAAM,IAAI,CAAA;IACvB,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;CACf;AAED;;sEAEsE;AACtE,wBAAgB,WAAW,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,SAAS,GAAG,mBAAmB,CAiB7F"}
|
package/dist/react-widget.js
CHANGED
|
@@ -7,10 +7,12 @@ import { createRoot } from 'react-dom/client';
|
|
|
7
7
|
export function reactWidget(Component) {
|
|
8
8
|
let root = null;
|
|
9
9
|
let setValue = () => { };
|
|
10
|
-
|
|
10
|
+
let openSidebar = () => { };
|
|
11
|
+
const toProps = (c) => ({ value: c.value, setValue, openSidebar, accent: c.accent, text: c.text, muted: c.muted, width: c.width, height: c.height });
|
|
11
12
|
return {
|
|
12
13
|
mount(el, c) {
|
|
13
14
|
setValue = c.setValue;
|
|
15
|
+
openSidebar = c.openSidebar;
|
|
14
16
|
root = createRoot(el);
|
|
15
17
|
root.render(_jsx(Component, { ...toProps(c) }));
|
|
16
18
|
return () => { root?.unmount(); root = null; };
|
package/dist/react-widget.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react-widget.js","sourceRoot":"","sources":["../src/react-widget.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AACZ,OAAO,EAAE,UAAU,EAAa,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"react-widget.js","sourceRoot":"","sources":["../src/react-widget.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AACZ,OAAO,EAAE,UAAU,EAAa,MAAM,kBAAkB,CAAA;AAkBxD;;sEAEsE;AACtE,MAAM,UAAU,WAAW,CAAC,SAA4C;IACtE,IAAI,IAAI,GAAgB,IAAI,CAAA;IAC5B,IAAI,QAAQ,GAAyB,GAAG,EAAE,GAAE,CAAC,CAAA;IAC7C,IAAI,WAAW,GAAe,GAAG,EAAE,GAAE,CAAC,CAAA;IACtC,MAAM,OAAO,GAAG,CAAC,CAAiG,EAAe,EAAE,CACjI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAA;IAE/H,OAAO;QACL,KAAK,CAAC,EAAE,EAAE,CAAC;YACT,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAA;YACrB,WAAW,GAAG,CAAC,CAAC,WAAW,CAAA;YAC3B,IAAI,GAAG,UAAU,CAAC,EAAE,CAAC,CAAA;YACrB,IAAI,CAAC,MAAM,CAAC,KAAC,SAAS,OAAK,OAAO,CAAC,CAAC,CAAC,GAAI,CAAC,CAAA;YAC1C,OAAO,GAAG,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,IAAI,CAAA,CAAC,CAAC,CAAA;QAC/C,CAAC;QACD,MAAM,CAAC,CAAC,IAAI,IAAI,EAAE,MAAM,CAAC,KAAC,SAAS,OAAK,OAAO,CAAC,CAAC,CAAC,GAAI,CAAC,CAAA,CAAC,CAAC;KAC1D,CAAA;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xenolithengine/graph-react",
|
|
3
|
-
"version": "0.7.0-beta.
|
|
3
|
+
"version": "0.7.0-beta.5",
|
|
4
4
|
"description": "React adapter for XenolithGraph — <XenolithGraph> component + useXenolith hook.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -19,8 +19,8 @@
|
|
|
19
19
|
],
|
|
20
20
|
"sideEffects": false,
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@xenolithengine/graph-adapter-core": "0.7.0-beta.
|
|
23
|
-
"@xenolithengine/graph-editor": "0.7.0-beta.
|
|
22
|
+
"@xenolithengine/graph-adapter-core": "0.7.0-beta.5",
|
|
23
|
+
"@xenolithengine/graph-editor": "0.7.0-beta.5"
|
|
24
24
|
},
|
|
25
25
|
"peerDependencies": {
|
|
26
26
|
"pixi.js": "^8.6.0",
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
"url": "git+https://github.com/XenolithEngine/xenolith-graph.git",
|
|
56
56
|
"directory": "packages/react"
|
|
57
57
|
},
|
|
58
|
-
"homepage": "https://
|
|
58
|
+
"homepage": "https://graph.xenolith.studio/",
|
|
59
59
|
"bugs": {
|
|
60
60
|
"url": "https://github.com/XenolithEngine/xenolith-graph/issues"
|
|
61
61
|
},
|