Node API

React Node props, callbacks, resize configuration, ref, and hooks.

Node renders a draggable node element and owns (or adopts) a core NodeMirror. The forwarded ref is the NodeMirror.

PropMeaning
idStable domain identity; minted when omitted — supply it for persistence
nodeObjectAdopt an existing NodeMirror instead of creating one
x, y, width, heightWorld geometry; changed props resynchronize the object
resizableEnable resize handles (default false)
minWidth, minHeightResize floor
resizeHandlestrue for all handles, or a subset of "n" \| "ne" \| "e" \| "se" \| "s" \| "sw" \| "w" \| "nw"
resizeHandleThicknessHandle hit area in pixels (default 14)
resizeCursorsPer-handle cursor overrides
metadataSnapLineMetadata attached to the node
callbacksNodeCallbacks object (drag, selection, resize, lines)
onGeometryChangedConvenience callback; batched final geometry for persistence
onSizeChangeConvenience callback for resize events
edgePanPan the camera when dragging near the viewport edge (default true)
lineComponentCustom line renderer for this node’s outgoing lines (defaults to Line)
className, stylePresentation for the outer node element
elementPropsFramework-native attributes and events for the outer node element
childrenNode content; Connector children register against this node

NodeMirrorContext provides the owning NodeMirror to descendants, and useNodeHandle() returns a callback ref that marks an element as the node’s dedicated drag surface.

Callback props stay current across renders and compose with callbacks already present on a supplied core object. During a live pointer gesture, core writes retained element geometry directly; the batched onGeometryChanged reports final values for application persistence.

The rendered element carries data-snapline-type="node" and data-selected / data-snapline-state="focus" | "idle" for styling.