Component props reference for dash_flows.

API reference

dash_flows

AnimatedCircleNode

AnimatedCircleNode - A circular node designed for use with animated edges. Features a distinctive pink circular design that works well with AnimatedNodeEdge to create animated dot effects along connections.

proptypedefaultdescription
data *dictNode data object containing the label content

AnimatedNodeEdge

AnimatedNodeEdge is a custom edge component that animates a node along its path.

proptypedefaultdescription
idstringThe ID of the edge
datadict{ animatedNode: '' }Edge data containing the ID of the node to animate
sourcePositionstringPosition of the source handle
sourceXnumberX coordinate of the source node
sourceYnumberY coordinate of the source node
targetPositionstringPosition of the target handle
targetXnumberX coordinate of the target node
targetYnumberY coordinate of the target node

AnimatedSvgEdge

AnimatedSvgEdge - An edge that animates a custom SVG element along the path Useful for showing data flow direction or active connections

proptypedefaultdescription
id *stringUnique identifier for the edge
datadictConfiguration data for the animated SVG edge
markerEndanyMarker configuration for the edge end
markerStartanyMarker configuration for the edge start
selectedboolWhether the edge is currently selected
sourcePositionstringPosition of the source handle ('top', 'bottom', 'left', 'right')
sourceX *numberX coordinate of the edge source
sourceY *numberY coordinate of the edge source
styleobjectCustom CSS styles for the edge path
targetPositionstringPosition of the target handle ('top', 'bottom', 'left', 'right')
targetX *numberX coordinate of the edge target
targetY *numberY coordinate of the edge target

ButtonEdge

ButtonEdge - Glass morphism styled edge with an interactive button and optional toolbar

proptypedefaultdescription
id *stringUnique identifier for the edge
datadictConfiguration data for the button edge
labelanyLabel text to display on the edge
labelStyleobjectCustom CSS styles for the label
markerEndanyMarker configuration for the edge end
markerStartanyMarker configuration for the edge start
selectedboolWhether the edge is currently selected
sourcePositionstringPosition of the source handle ('top', 'bottom', 'left', 'right')
sourceX *numberX coordinate of the edge source
sourceY *numberY coordinate of the edge source
styleobjectCustom CSS styles for the edge path
targetPositionstringPosition of the target handle ('top', 'bottom', 'left', 'right')
targetX *numberX coordinate of the edge target
targetY *numberY coordinate of the edge target

ButtonHandle

ButtonHandle - A handle that can also function as a button Useful for triggering actions when clicking on a connection point

proptypedefaultdescription
idstringUnique identifier for the handle
buttonClassNamestringCSS class for the button
buttonContentnodeContent to display in the button
buttonStyleobjectInline styles for the button
childrennodeChild content for the button
classNamestringCSS class for the handle
isConnectablebooltrueWhether the handle can connect to other nodes
onClickfuncClick handler for the button
onConnectfuncCalled when a connection is made
positionone of 'top', 'bottom', 'left', 'right''bottom'Position of the handle on the node
showButtonboolfalseWhether to show the button (default: false)
styleobjectInline styles for the handle
type *one of 'source', 'target'Type of handle - source or target

DashFlows

DashFlows - A React Flow-based node graph component for Dash applications. Provides interactive node-based workflow visualization with support for custom node types, edge types, glass morphism styling, and extensive callback integration for Python-based interactivity.

proptypedefaultdescription
idstringThe ID used to identify this component in Dash callbacks.
addNodeOnEdgeDropboolWhen true, dragging a connection from a handle and dropping on empty canvas creates a new default node at that position and connects it.
animateLayoutboolfalseEnable smooth animated transitions when applying ELK layout. Nodes interpolate from current to target positions with an ease-out curve.
animateLayoutDurationnumber300Duration of layout animation in milliseconds (default: 300)
ariaLabelConfigobjectARIA label configuration for accessibility. Customize labels for screen readers. Keys: nodes, edges, controls, minimap. Values are label strings.
autoPanOnConnectbooltrueAuto-pan viewport when making a new connection near edges
autoPanOnNodeDragbooltrueAuto-pan viewport when dragging a node near edges
autoPanOnNodeFocusbooltrueAuto-pan the viewport when focusing a node via keyboard (Tab key).
autoPanSpeednumber15Speed of auto-panning (default: 15)
backgroundColorstringColor of the background pattern
backgroundGapnumber \list of number16Gap between background pattern elements
backgroundSizenumber1Size of background pattern elements
backgroundVariantone of 'dots', 'lines', 'cross''dots'Background pattern type: 'dots', 'lines', 'cross'
classNamestring''CSS class name for the container div
clickedEdgedictThe edge that was clicked
clickedNodedictThe node that was clicked
clipboarddictInternal clipboard containing copied nodes and edges. Populated by copyAction, consumed by pasteAction.
collapsedGroupslist of stringList of currently collapsed group node IDs (read-only output).
colorModeone of 'light', 'dark', 'system''light'Color mode: 'light', 'dark', or 'system'
colorSchemeone of 'default', 'ocean', 'forest', 'sunset', 'midnight', 'rose'Color scheme preset for node and edge colors. Works in combination with themePreset for full customization. Each scheme includes light and dark mode variants. - default: Neutral blue/purple (default) - ocean: Blues and teals - forest: Greens and browns - sunset: Oranges and reds - midnight: Deep blues and purples - rose: Pinks and reds
computeActiondictTrigger a graph computation. Set to { action: 'compute' } to perform topological sort and emit traversal order with input mappings. Will be reset to null after execution.
computeResultdictResult of the last computation. Contains traversalOrder (array of node IDs in topological order) and nodeInputs (map of nodeId to input details).
connectOnClickbooltrueEnable click-based connection mode (click source then target)
connectionDragThresholdnumber0Minimum drag distance in pixels before a connection line appears. Useful to prevent accidental connections. Default is 0 (immediate).
connectionLineStyleobjectStyle for the connection line while dragging
connectionLineTypeone of 'bezier', 'straight', 'step', 'smoothstep', 'simplebezier''bezier'Type of connection line: 'bezier', 'straight', 'step', 'smoothstep', 'simplebezier'
connectionModeone of 'strict', 'loose''strict'Connection mode: 'strict' (same handle type) or 'loose' (any handle)
connectionRadiusnumber20Radius for connection drop detection (default: 20)
connectionRulesdictRules for validating connections
connectionStartHandledictCurrent connection being created
contextMenuEdgedictContext menu info for an edge
contextMenuNodedictContext menu info for a node
controlsPositionone of 'top-left', 'top-right', 'bottom-left', 'bottom-right', 'top-center', 'bottom-center''bottom-left'Position of controls panel
controlsShowFitViewbooltrueShow fit-view button in controls
controlsShowInteractivebooltrueShow interactive toggle in controls
controlsShowZoombooltrueShow zoom buttons in controls
copyActionboolTrigger to copy selected nodes and edges to clipboard. Set to true to copy. Will be reset to false after copying. If nothing is selected, copies all nodes and their connecting edges.
defaultEdgeOptionsdictDefault options applied to all new edges
defaultMarkerColorstring'#555'Default color for edge markers
defaultViewportdictThe initial viewport position and zoom level
deleteElementsActiondictDelete specific nodes and/or edges by ID. Routes through reactFlowInstance.deleteElements() so undo/redo middleware can capture the change. Set to { nodeIds: [...], edgeIds: [...] }; auto-resets to null.
deleteKeyCodestring'Backspace'Key code for deleting selected elements (default: 'Backspace', null to disable)
deletedEdgeslist of stringIDs of recently deleted edges
deletedNodeslist of stringIDs of recently deleted nodes
disableKeyboardA11yboolfalseDisable keyboard accessibility features
doubleClickedEdgedictThe edge that was double-clicked
doubleClickedNodedictThe node that was double-clicked
downloadImagedictTrigger to download the flow as an image. Set to a config object to initiate download. Will be reset to null after download. Config options: - format: 'png' \'svg' \'jpeg' (default: 'png') - filename: string (default: 'flow') - quality: number 0-1 (default: 0.95, for jpeg only) - backgroundColor: string (default: '#ffffff') - pixelRatio: number (default: 2, for higher resolution)
draggedNodedictThe node being dragged
droppedNodedictNode data from a drop event (drag and drop from external source). Contains the type, position, and data of the dropped item. Use this in a callback to create a new node at the drop position.
edgeDroppedNodedictInfo about the node created by dropping an edge on empty canvas. Contains nodeId, position, sourceNodeId, sourceHandleId, handleType, timestamp.
edgeslist of dict[]Array of edges defining connections between nodes
edgesFocusablebooltrueEnable/disable keyboard focus on edges
edgesReconnectablebooltrueAllow edges to be reconnected after creation
elementsSelectablebooltrueEnable/disable the ability to select elements
elevateEdgesOnSelectboolfalseRaise z-index of selected edges
elevateNodesOnSelectbooltrueRaise z-index of selected nodes
enableUndoRedoboolfalseEnable the undo/redo history system. When enabled, node and edge changes (add, remove, position drag-stop) are recorded to a history stack.
exportFlowStateboolTrigger to export the current flow state. Set to true to export. After export, this will be reset to false and flowState will be populated.
fitViewboolfalseAutomatically fit all nodes in view on initialization
fitViewOptionsdictOptions for fitView behavior
flowStatedictThe exported flow state as a serializable object containing nodes, edges, and viewport. This is populated when exportFlowState is triggered.
helperLineThresholdnumberDistance in pixels within which helper lines snap and appear (default: 5)
helperLinesboolEnable visual alignment guides (helper lines) when dragging nodes. Lines appear when a node aligns with another node's top/center/bottom or left/center/right.
hoveredEdgedictThe edge being hovered
hoveredNodedictThe node being hovered
imageDownloadeddictInformation about the last successful image download. Populated after a successful downloadImage operation.
initializedboolWhether the flow has been initialized
lastConnectiondictThe last connection that was made
lastErrordictLast error that occurred
layoutOptionsstringLayout options for arranging nodes using the ELK layout engine (JSON string)
maxZoomnumber2Maximum zoom level (default: 2)
minZoomnumber0.5Minimum zoom level (default: 0.5)
miniMapMaskColorstringColor for the minimap mask (viewport indicator)
miniMapNodeBorderRadiusnumberBorder radius for minimap nodes
miniMapNodeColorstringColor function or string for minimap nodes
miniMapNodeStrokeColorstringStroke color for minimap nodes
miniMapPannableboolfalseAllow panning by dragging the minimap
miniMapPositionone of 'top-left', 'top-right', 'bottom-left', 'bottom-right''bottom-right'Position of the minimap
miniMapZoomableboolfalseAllow zooming via the minimap
multiSelectionKeyCodestringKey code for adding to selection
noDragClassNamestring'nodrag'CSS class name that prevents dragging when applied to elements
noPanClassNamestring'nopan'CSS class name that prevents panning when applied to elements
noWheelClassNamestring'nowheel'CSS class name that prevents wheel zoom when applied to elements
nodeConnectionsobjectMap of nodeId to connection metadata. Each entry has 'incoming' and 'outgoing' arrays with edge/node details. Updated automatically when edges change.
nodeExtentlist of list of numberLimit where nodes can be placed [[minX, minY], [maxX, maxY]]
nodeslist of dict[]Array of nodes to display in the flow
nodesConnectablebooltrueEnable/disable the ability to make new connections between nodes
nodesDraggablebooltrueEnable/disable node dragging behavior
nodesFocusablebooltrueEnable/disable keyboard focus on nodes
onlyRenderVisibleElementsboolfalseOnly render nodes and edges that are visible in the viewport
panActivationKeyCodestring'Space'Key code to activate pan mode (default: 'Space')
panOnDragbool \list of numbertrueEnable/disable panning by dragging. Can be boolean or array of mouse buttons [0,1,2]
panOnScrollboolfalseEnable panning by scrolling
panOnScrollModeone of 'free', 'vertical', 'horizontal''free'Restrict scroll panning direction: 'free', 'vertical', 'horizontal'
panOnScrollSpeednumber0.5Speed of scroll-based panning (default: 0.5)
paneClickPositiondictPosition where the pane was clicked
paneContextMenudictContext menu info for the pane
panelslist of dictArray of panel configurations for custom UI overlays
pasteActiondictTrigger to paste nodes and edges from clipboard. Set to an object with optional offset: { offset: { x: 50, y: 50 } } Will be reset to null after pasting.
pastedElementsdictInformation about the last paste operation. Contains the IDs of newly created nodes and edges.
preventDeleteboolfalseEnable delete prevention checks
preventDeleteEdgeslist of stringList of edge IDs that cannot be deleted
preventDeleteNodeslist of stringList of node IDs that cannot be deleted
preventScrollingbooltruePrevent scrolling on the page when the mouse is over the flow
reconnectRadiusnumber10Radius for reconnection detection (default: 10)
restoreFlowStatedictImport/restore a previously exported flow state. Set this to a flowState object to restore the flow.
selectNodesOnDragbooltrueSelect nodes when dragging over them
selectedEdgeslist of stringIDs of currently selected edges
selectedNodeslist of stringIDs of currently selected nodes
selectionKeyCodestring'Shift'Key code for multi-selection box (default: 'Shift')
selectionModeone of 'full', 'partial''full'Selection mode: 'full' (fully enclosed) or 'partial' (touching)
selectionOnDragboolfalseEnable selection box by dragging on the pane
showBackgroundbooltrueShow/hide the background pattern
showControlsbooltrueShow/hide the control panel
showDevToolsboolfalseShow/hide the developer tools panel
showMiniMapbooltrueShow/hide the minimap navigation component
smartHandlesboolEnable smart handle positioning. When true, nodes render handles on all 4 sides and edges automatically connect to the closest handle pair based on relative node positions. This prevents edges from wrapping around nodes unnecessarily.
snapGridlist of number[15, 15]The grid size for snapping [x, y] (default: [15, 15])
snapToGridboolfalseWhether to snap nodes to a grid when dragging
styleobject{}Custom CSS styles for the container div
themedictCustom theme configuration. Overrides CSS variables for fine-grained control. All properties are optional - only specify what you want to customize.
themePresetone of 'glass', 'solid', 'minimal'Theme preset: 'glass' (default), 'solid', or 'minimal' - glass: Glassmorphism with blur and transparency - solid: Opaque nodes with subtle shadows (better for complex backgrounds) - minimal: Clean lines with minimal styling
toggleCollapseNodestringSet to a group node ID to toggle its collapsed/expanded state. When collapsed, child nodes are hidden and boundary edges remap to the group. Will be reset to null after processing.
trackNodeDragboolfalseTrack node position during drag (can be expensive)
trackViewportboolfalseTrack viewport changes during pan/zoom
translateExtentlist of list of numberLimit the viewport panning extent [[minX, minY], [maxX, maxY]]
undoRedoActiondictTrigger an undo or redo action. Set to { action: 'undo' } or { action: 'redo' }. Will be reset to null after execution.
undoRedoMaxHistorynumber50Maximum number of history snapshots to keep (default: 50)
undoRedoStatedictCurrent undo/redo state. Contains canUndo, canRedo, undoCount, redoCount. Updated automatically when history changes.
viewportdictCurrent viewport state (read-only, updated by callbacks)
viewportActiondictTrigger viewport actions programmatically. Set to an action object to execute. Will be reset to null after execution. Supported actions: - { action: 'fitView', options: {...} } - { action: 'zoomIn', options: {...} } - { action: 'zoomOut', options: {...} } - { action: 'setZoom', zoom: 1.5, options: {...} } - { action: 'setCenter', x: 100, y: 100, options: {...} } - { action: 'setViewport', viewport: {x, y, zoom}, options: {...} } - { action: 'focusNode', nodeId: 'node-1', zoom: 1.5, duration: 500 }
viewportMovingboolWhether viewport is currently moving (panning/zooming)
viewportOverlayslist of dictArray of overlay elements rendered in flow coordinates via ViewportPortal. Each overlay moves with the viewport (pan/zoom) and is positioned at (x, y) in flow space.
zIndexModeone of 'default', 'elevate'Z-index calculation mode. 'default' uses standard stacking. 'elevate' raises selected nodes and connected edges above all other elements.
zoomActivationKeyCodestringKey code to activate zoom mode
zoomOnDoubleClickbooltrueEnable zooming by double-clicking
zoomOnPinchbooltrueEnable zooming by pinching on touch devices
zoomOnScrollbooltrueEnable zooming by scrolling

DataEdge

DataEdge - An edge that displays data from the source node Useful for showing data flow between nodes

proptypedefaultdescription
id *stringUnique identifier for the edge
datadictConfiguration data for the data edge
markerEndanyMarker configuration for the edge end
markerStartanyMarker configuration for the edge start
selectedboolWhether the edge is currently selected
source *stringID of the source node to read data from
sourcePositionstringPosition of the source handle ('top', 'bottom', 'left', 'right')
sourceX *numberX coordinate of the edge source
sourceY *numberY coordinate of the edge source
styleobjectCustom CSS styles for the edge path
targetPositionstringPosition of the target handle ('top', 'bottom', 'left', 'right')
targetX *numberX coordinate of the edge target
targetY *numberY coordinate of the edge target

DefaultNode

DefaultNode - Glass morphism styled node with source and target handles Equivalent to React Flow's built-in 'default' node type

Uses CSS classes from glass-theme.css for styling, supporting:

proptypedefaultdescription
data *dictNode data object containing label, styling, and handle configuration
isConnectableboolWhether connections can be made to/from this node
selectedboolWhether the node is currently selected

DevTools

DevTools component for displaying debug information about the flow

proptypedefaultdescription
nodes *list of dictArray of nodes to display information about

FloatingEdge

FloatingEdge - Edge that connects to the nearest point on each node's border instead of fixed handle positions. Creates more natural-looking connections.

proptypedefaultdescription
id *stringUnique identifier for the edge
dataobjectAdditional data passed to the edge
labelanyLabel text to display on the edge
labelStyleobjectCustom CSS styles for the label
markerEndanyMarker configuration for the edge end
markerStartanyMarker configuration for the edge start
selectedboolWhether the edge is currently selected
source *stringSource node ID
sourceXnumberX coordinate of the edge source
sourceYnumberY coordinate of the edge source
styleobjectCustom CSS styles for the edge path
target *stringTarget node ID
targetXnumberX coordinate of the edge target
targetYnumberY coordinate of the edge target

GroupNode

GroupNode - A simple labeled group container for child nodes

This follows the React Flow pattern for group nodes:

Unlike standard nodes, group nodes are rendered as simple containers that React Flow manages for parent-child relationships.

proptypedefaultdescription
idstringNode ID
datadictNode data object containing label, icon, and styling options
selectedboolWhether the group is currently selected

InputNode

InputNode - Glass morphism styled node with only a source handle (no incoming connections) Features a green accent bar at the top

Uses CSS classes from glass-theme.css for styling, supporting:

proptypedefaultdescription
data *dictNode data configuration object containing display and behavior settings
isConnectableboolWhether connections can be made from this node
selectedboolWhether the node is currently selected

NodeSearch

NodeSearch - A search panel for finding and focusing nodes Supports searching by node id, label, or data properties

proptypedefaultdescription
classNamestringAdditional CSS class name
focusOnSelectbooltrueWhether to focus on the selected node
highlightDurationnumber2000Duration of highlight effect in ms
highlightOnSelectbooltrueWhether to highlight the selected node
isOpenboolfalseWhether the search panel is open
onClosefuncCallback when the panel should close
placeholderstring'Search nodes...'Placeholder text for the search input
searchKeyslist of string['id', 'label', 'type', 'title', 'name']Keys to search in node data (default: ['id', 'label', 'type'])
styleobjectCustom inline styles
zoomLevelnumber1.5Zoom level when focusing on a node

NodeStatusIndicator

NodeStatusIndicator - A wrapper component that shows status indicators around nodes Status can be: "initial", "loading", "success", "error" Loading variants: "border" (spinning border) or "overlay" (full overlay with spinner)

proptypedefaultdescription
childrennodeThe node content to wrap
classNamestringAdditional CSS class name
loadingVariantone of 'border', 'overlay''border'Loading animation variant - "border" shows spinning border, "overlay" shows full overlay
statusone of 'initial', 'loading', 'success', 'error''initial'The current status of the node
styleobjectCustom inline styles

NodeTooltip

NodeTooltip - A wrapper that displays a tooltip when hovered Built on top of React Flow's NodeToolbar component

proptypedefaultdescription
childrennodeThe node content
classNamestringCSS class for the container
offsetnumber10Offset from the node in pixels
positionone of 'top', 'bottom', 'left', 'right''top'Position of the tooltip relative to the node
showOnHoverbooltrueShow tooltip only on hover (default: true)
styleobjectInline styles for the container
tooltipClassNamestringCSS class for the tooltip
tooltipContentnodeContent to display in the tooltip
tooltipStyleobjectInline styles for the tooltip

OutputNode

OutputNode - Glass morphism styled node with only a target handle (no outgoing connections) Features a purple accent bar at the bottom

Uses CSS classes from glass-theme.css for styling, supporting:

proptypedefaultdescription
data *dictNode data configuration object containing display and behavior settings
isConnectableboolWhether connections can be made to this node
selectedboolWhether the node is currently selected

ResizableNode

ResizableNode - A node that can be resized by the user

This node supports embedding Dash components that will resize along with the node container. The node receives width/height from React Flow when resized.

proptypedefaultdescription
data *dictNode data object containing label, handles, and styling options
heightnumberCurrent height of the node (set by React Flow during resize)
selectedboolfalseWhether the node is currently selected
widthnumberCurrent width of the node (set by React Flow during resize)

SimpleBezierEdge

SimpleBezierEdge - Glass morphism styled simple bezier curve edge

proptypedefaultdescription
id *stringUnique identifier for the edge
dataobjectAdditional data passed to the edge
labelanyLabel text to display on the edge
labelStyleobjectCustom CSS styles for the label
markerEndanyMarker configuration for the edge end
markerStartanyMarker configuration for the edge start
selectedboolWhether the edge is currently selected
sourcePositionstringPosition of the source handle ('top', 'bottom', 'left', 'right')
sourceX *numberX coordinate of the edge source
sourceY *numberY coordinate of the edge source
styleobjectCustom CSS styles for the edge path
targetPositionstringPosition of the target handle ('top', 'bottom', 'left', 'right')
targetX *numberX coordinate of the edge target
targetY *numberY coordinate of the edge target

SmoothStepEdge

SmoothStepEdge - Glass morphism styled stepped edge with rounded corners

proptypedefaultdescription
id *stringUnique identifier for the edge
dataobjectAdditional data passed to the edge (borderRadius can be set here)
labelanyLabel text to display on the edge
labelStyleobjectCustom CSS styles for the label
markerEndanyMarker configuration for the edge end
markerStartanyMarker configuration for the edge start
selectedboolWhether the edge is currently selected
sourcePositionstringPosition of the source handle ('top', 'bottom', 'left', 'right')
sourceX *numberX coordinate of the edge source
sourceY *numberY coordinate of the edge source
styleobjectCustom CSS styles for the edge path
targetPositionstringPosition of the target handle ('top', 'bottom', 'left', 'right')
targetX *numberX coordinate of the edge target
targetY *numberY coordinate of the edge target

StepEdge

StepEdge - Glass morphism styled stepped edge with sharp corners

proptypedefaultdescription
id *stringUnique identifier for the edge
dataobjectAdditional data passed to the edge
labelanyLabel text to display on the edge
labelStyleobjectCustom CSS styles for the label
markerEndanyMarker configuration for the edge end
markerStartanyMarker configuration for the edge start
selectedboolWhether the edge is currently selected
sourcePositionstringPosition of the source handle ('top', 'bottom', 'left', 'right')
sourceX *numberX coordinate of the edge source
sourceY *numberY coordinate of the edge source
styleobjectCustom CSS styles for the edge path
targetPositionstringPosition of the target handle ('top', 'bottom', 'left', 'right')
targetX *numberX coordinate of the edge target
targetY *numberY coordinate of the edge target

StraightEdge

StraightEdge - Glass morphism styled straight line edge

proptypedefaultdescription
id *stringUnique identifier for the edge
dataobjectAdditional data passed to the edge
labelanyLabel text to display on the edge
labelStyleobjectCustom CSS styles for the label
markerEndanyMarker configuration for the edge end
markerStartanyMarker configuration for the edge start
selectedboolWhether the edge is currently selected
sourceX *numberX coordinate of the edge source
sourceY *numberY coordinate of the edge source
styleobjectCustom CSS styles for the edge path
targetX *numberX coordinate of the edge target
targetY *numberY coordinate of the edge target

ToolbarNode

ToolbarNode - Glass morphism styled node with a configurable toolbar

proptypedefaultdescription
data *dictNode data configuration object
isConnectableboolWhether connections can be made to/from this node
selectedboolWhether the node is currently selected

Note for AI agents: This is the static, prerendered view of an interactive Dash application served because we detected a non-JS user agent. Full prose docs: