unstale

npm / @xyflow/svelte

@xyflow/svelte

What changed in @xyflow/svelte 1, from its official release notes, upgrade guides and advisories. Sources checked 2026-11-12.

15 breaking19 new APIs and options1 performance9 behavior and defaults34 fixes and other

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli 0.2.12 on npm

@xyflow/svelte 178 changes

Breaking changes 15

  • Removes the unused CSS variable, so developers should not rely on it.

    1.6.0release notes

  • Using handleId without handleType now produces a type error.

    1.6.0release notes

  • The edgeId prop was removed from EdgeToolbar, so callers should no longer pass it.

    1.4.1release notes

  • The edges prop on SvelteFlow must now be bound, including when using function bindings for edges in a separate module.

    1.0.0upgrade guide

  • The nodes prop on SvelteFlow must now be bound, including when using function bindings for nodes in a separate module.

    1.0.0upgrade guide

  • Replaces EdgeLabelRenderer, automatically handles label clicks, and knows which edge it belongs to.

    1.0.0upgrade guide

  • The EdgeLabelRenderer component is renamed to EdgeLabel.

    1.0.0upgrade guide

  • Edges now use $state.raw instead of writable and must be treated as immutable; reassign the array to trigger updates.

    1.0.0upgrade guide

  • Nodes now use $state.raw instead of writable and must be treated as immutable; reassign the array to trigger updates.

    1.0.0upgrade guide

  • Replaces onEdgeCreate as the callback called before a new edge is created.

    1.0.0upgrade guide

  • The old onEdgeCreate callback is replaced by onbeforeconnect, which is called before a new edge is created.

    1.0.0upgrade guide

  • Custom node and edge props now use Svelte 5 $props() destructuring instead of $$Props and export let declarations.

    1.0.0upgrade guide

  • Hooks return reactive values rather than writables, exposed through a .current property; reassignments to .current work for useEdges.

    1.0.0upgrade guide

  • Hooks return reactive values rather than writables, exposed through a .current property; reassignments to .current work for useNodes.

    1.0.0upgrade guide

  • Hooks return reactive values rather than writables, exposed through a .current property.

    1.0.0upgrade guide

New APIs and options 19

Performance 1

  • Nodes are repainted less excessively during pan and zoom.

    1.7.1release notes

Behavior and default changes 9

  • A log is shown in development when a user hides attribution.

    1.6.4release notes

  • Control can activate pane panning with a primary-button drag.

    1.6.3release notes

  • Middle-mouse viewport panning can now start from a selection rectangle.

    1.6.3release notes

  • Child nodes of different parents are prevented from overlapping.

    1.4.0release notes

  • NodeResizer props can now change during an ongoing resize.

    1.4.0release notes

  • A selection can now be started above a node.

    1.4.0release notes

  • Allows creating a connection by clicking on handles one by one.

    1.0.0upgrade guiderelease notes

  • Is finetuned to work better with dynamically added nodes.

    1.0.0upgrade guiderelease notes

  • Adds keyboard navigation through nodes and edges, including moving nodes with the arrow keys.

    1.0.0release notes

Fixes and other changes 34

  • Respects nodeOrigin when passed a node object instead of { id }.

    1.7.1release notes

  • Clicking the pane cancels a pending click connection and calls onClickConnectEnd / onclickconnectend.

    1.7.1release notes

  • onresizeend now always fires after onresizestart.

    1.7.0release notes

  • Fixes incorrect values during resize when shouldResize returns false.

    1.7.0release notes

  • The attribution warning is prevented when the pane is not rendered either.

    1.6.6release notes

  • An edge is hidden if a connected node is hidden.

    1.6.6release notes

  • All properties in the provider store are reset when the flow unmounts.

    1.6.6release notes

  • Unnecessary edge rerenders are fixed.

    1.6.4release notes

  • Fixes MiniMap zooming out to include the origin when every node is hidden.

    1.6.4release notes

  • Fixes extent: 'parent' not immediately resolving when the parent has width or initialWidth.

    1.6.3release notes

  • Prevents a selection box from appearing when dragging the pane via touch, and prefers touch panning over drag selection with mouse-button-specific panOnDrag settings.

    1.6.3release notes

  • Fixes FinalConnectionState so it preserves the discriminated union.

    1.6.1release notes

  • The pane click handler no longer fires when a connection ends on the pane.

    1.6.1release notes

  • Passes the aria label through to the node DOM element.

    1.6.0release notes

  • Checks whether window is defined before calling browser functions.

    1.6.0release notes

  • Fixes control button props so changes to them are reactive.

    1.6.0release notes

  • Fixes node resizing beyond absolute extents.

    1.6.0release notes

  • Generic types better reflect custom node and edge data.

    1.6.0release notes

  • The type field may be omitted; a missing type is equivalent to type: "default".

    1.5.2release notes

  • Options are now passed correctly to useSvelteFlow viewport helper functions.

    1.5.2release notes

  • isValidConnection stays up to date during an ongoing connection, so its current value is used.

    1.5.1release notes

  • Child nodes now update on the Minimap when their parent is dragged.

    1.5.1release notes

  • onConnectEnd stays up to date during an ongoing connection, so its current value is used.

    1.5.1release notes

  • The return type is improved, allowing the data type to be narrowed by checking the node type.

    1.5.1release notes

  • An ongoing connection is updated when the user moves a node with the keyboard.

    1.5.0release notes

  • The current pointer position is passed to the connection.

    1.4.2release notes

  • Fixes node positions when resizing nodes with a non-default node origin.

    1.4.2release notes

  • Fixes onPaneClick firing when the viewport is moved.

    1.4.2release notes

  • onPaneClick events are no longer suppressed when selectionOnDrag=true.

    1.4.1release notes

  • The selection box no longer appears when no nodes are selected.

    1.4.1release notes

  • The selection box no longer shows a focus outline.

    1.4.1release notes

  • Prevents the mini map from crashing when all nodes are hidden.

    1.4.0release notes

  • Always calls onMoveEnd when onMoveStart was called.

    1.4.0release notes

  • Fixes eagerly setting selected to false on every node and edge.

    1.4.0release notes