React-адаптер
См. англоязычную версию — там полное API адаптера @xenolithengine/graph-react:
<XenolithGraph>, useEditor, useNodes / useEdges / useSelection / useViewport /
useGraphJSON / useUndoRedo / useEditorEvent, in-editor компоненты (<XenolithPanel>,
<XenolithButton>, <XenolithControls>, <XenolithMiniMap>), reactWidget(Component) для
кастомных виджетов на React, и события через on* props.
Controlled-состояние (на коммите)
Мигранты с React Flow: useNodesState() даёт controlled-тройку — nodes, edges,
applyChanges, setNodes — свернутую из массивов graph:changed на коммите (ADR
0006).
Одно намеренное отличие от React Flow: позиции приходят, когда перетаскивание КОММИТИТСЯ,
никогда покадрово — дерево неподвижно, пока drag владеет WebGL-рендерер. setNodes(next)
применяет диф одним шагом undo; эхи идемпотентны. Для Redux/Zustand берите чистый редьюсер
reduceGraphChanges.