@dschz/solid-flow 0.3.0-next.1 → 0.3.0-next.3

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.
@@ -1,6 +1,9 @@
1
1
  import { JSX } from "@solidjs/web";
2
+ import { Align as Align$1, AriaLabelConfig as AriaLabelConfig$1, BezierPathOptions as BezierPathOptions$1, Box as Box$1, ColorMode as ColorMode$1, ColorModeClass as ColorModeClass$1, Connection, Connection as Connection$1, ConnectionLineType, ConnectionLineType as ConnectionLineType$1, ConnectionMode, ConnectionMode as ConnectionMode$1, ConnectionState, ControlLinePosition, ControlPosition, ControlPosition as ControlPosition$1, CoordinateExtent, CoordinateExtent as CoordinateExtent$1, DefaultEdgeOptionsBase, Dimensions as Dimensions$1, EdgeBase, EdgeMarker, EdgeMarkerType as EdgeMarkerType$1, EdgePosition, EdgeToolbarBaseProps, FinalConnectionState, FitBounds, FitBoundsOptions as FitBoundsOptions$1, FitViewOptionsBase, GetBezierPathParams as GetBezierPathParams$1, GetSmoothStepPathParams as GetSmoothStepPathParams$1, GetStraightPathParams as GetStraightPathParams$1, Handle as Handle$1, HandleConnection, HandleConnection as HandleConnection$1, HandleProps, HandleType, InternalNodeBase, IsValidConnection as IsValidConnection$1, MarkerProps, MarkerType, NodeBase, NodeConnection, NodeConnection as NodeConnection$1, NodeOrigin, NodeOrigin as NodeOrigin$1, NodeProps as NodeProps$1, OnBeforeDeleteBase, OnConnect as OnConnect$1, OnConnectEnd as OnConnectEnd$1, OnConnectStart as OnConnectStart$1, OnConnectStartParams as OnConnectStartParams$1, OnError as OnError$1, OnMove, OnMove as OnMove$1, OnMoveEnd as OnMoveEnd$1, OnMoveStart as OnMoveStart$1, OnReconnect as OnReconnect$1, OnReconnectEnd as OnReconnectEnd$1, OnReconnectStart as OnReconnectStart$1, OnResize as OnResize$1, OnResizeEnd as OnResizeEnd$1, OnResizeStart as OnResizeStart$1, OnSelectionDrag as OnSelectionDrag$1, PanOnScrollMode, PanOnScrollMode as PanOnScrollMode$1, PanelPosition, PanelPosition as PanelPosition$1, Position, Position as Position$1, ProOptions as ProOptions$1, Rect as Rect$1, ResizeControlVariant, ResizeControlVariant as ResizeControlVariant$1, ResizeDragEvent as ResizeDragEvent$1, ResizeParams as ResizeParams$1, ResizeParamsWithDirection as ResizeParamsWithDirection$1, SelectionMode as SelectionMode$1, SelectionRect as SelectionRect$1, SetCenter, SetCenterOptions as SetCenterOptions$1, SetViewport, ShouldResize, ShouldResize as ShouldResize$1, SmoothStepPathOptions as SmoothStepPathOptions$1, SnapGrid as SnapGrid$1, StepPathOptions, Transform as Transform$1, UpdateNodeInternals, Viewport, Viewport as Viewport$1, ViewportHelperFunctionOptions as ViewportHelperFunctionOptions$1, XYPosition, XYPosition as XYPosition$1, XYZPosition as XYZPosition$1, ZIndexMode, ZoomInOut, addEdge, getBezierEdgeCenter as getBezierEdgeCenter$1, getBezierPath, getConnectedEdges, getEdgeCenter as getEdgeCenter$1, getIncomers, getNodesBounds, getOutgoers, getSmoothStepPath, getStraightPath, getViewportForBounds } from "@xyflow/system";
2
3
  import { Accessor, ParentComponent, ParentProps, Store, StoreSetter } from "solid-js";
3
- import { Align, Align as Align$1, AriaLabelConfig, AriaLabelConfig as AriaLabelConfig$1, BezierPathOptions, BezierPathOptions as BezierPathOptions$1, Box, ColorMode, ColorMode as ColorMode$1, ColorModeClass, ColorModeClass as ColorModeClass$1, Connection, Connection as Connection$1, ConnectionLineType, ConnectionLineType as ConnectionLineType$1, ConnectionMode, ConnectionMode as ConnectionMode$1, ConnectionState, ControlLinePosition, ControlPosition, ControlPosition as ControlPosition$1, CoordinateExtent, CoordinateExtent as CoordinateExtent$1, DefaultEdgeOptionsBase, Dimensions, EdgeBase, EdgeMarker, EdgeMarkerType, EdgePosition, EdgeToolbarBaseProps, FinalConnectionState, FitBounds, FitBoundsOptions, FitBoundsOptions as FitBoundsOptions$1, FitViewOptionsBase, GetBezierPathParams, GetSmoothStepPathParams, GetStraightPathParams, Handle as Handle$1, HandleConnection, HandleConnection as HandleConnection$1, HandleProps, HandleType, InternalNodeBase, IsValidConnection, MarkerProps, MarkerType, NodeBase, NodeConnection, NodeConnection as NodeConnection$1, NodeOrigin, NodeOrigin as NodeOrigin$1, NodeProps as NodeProps$1, OnBeforeDeleteBase, OnConnect, OnConnectEnd, OnConnectEnd as OnConnectEnd$1, OnConnectStart, OnConnectStart as OnConnectStart$1, OnConnectStartParams, OnError, OnError as OnError$1, OnMove, OnMove as OnMove$1, OnMoveEnd, OnMoveEnd as OnMoveEnd$1, OnMoveStart, OnMoveStart as OnMoveStart$1, OnReconnect, OnReconnect as OnReconnect$1, OnReconnectEnd, OnReconnectEnd as OnReconnectEnd$1, OnReconnectStart, OnReconnectStart as OnReconnectStart$1, OnResize, OnResize as OnResize$1, OnResizeEnd, OnResizeEnd as OnResizeEnd$1, OnResizeStart, OnResizeStart as OnResizeStart$1, OnSelectionDrag, PanOnScrollMode, PanOnScrollMode as PanOnScrollMode$1, PanelPosition, PanelPosition as PanelPosition$1, Position as Position$1, Position as Position$2, ProOptions, ProOptions as ProOptions$1, Rect, Rect as Rect$1, ResizeControlVariant, ResizeControlVariant as ResizeControlVariant$1, ResizeDragEvent, ResizeParams, ResizeParamsWithDirection, SelectionMode, SelectionMode as SelectionMode$1, SelectionRect, SetCenter, SetCenterOptions, SetCenterOptions as SetCenterOptions$1, SetViewport, ShouldResize, ShouldResize as ShouldResize$1, SmoothStepPathOptions, SmoothStepPathOptions as SmoothStepPathOptions$1, SnapGrid, SnapGrid as SnapGrid$1, StepPathOptions, Transform, UpdateNodeInternals, Viewport, Viewport as Viewport$1, ViewportHelperFunctionOptions, ViewportHelperFunctionOptions as ViewportHelperFunctionOptions$1, XYPosition, XYPosition as XYPosition$1, XYZPosition, ZIndexMode, ZoomInOut, addEdge, getBezierEdgeCenter, getBezierPath, getConnectedEdges, getEdgeCenter, getIncomers, getNodesBounds, getOutgoers, getSmoothStepPath, getStraightPath, getViewportForBounds } from "@xyflow/system";
4
+ //#region src/types/custom.d.ts
5
+ type UnknownStruct = Record<string, unknown>;
6
+ //#endregion
4
7
  //#region src/types/node.d.ts
5
8
  /**
6
9
  * The node data structure that gets used for internal nodes.
@@ -27,6 +30,7 @@ type Node<NodeData extends UnknownStruct = UnknownStruct, NodeType extends strin
27
30
  */
28
31
  domAttributes?: Omit<JSX.HTMLAttributes<HTMLDivElement>, "id" | "style" | "class" | "draggable" | "role" | "aria-label" | keyof JSX.HTMLAttributes<HTMLDivElement>>;
29
32
  };
33
+ /** Props passed to a node component (custom or built-in). */
30
34
  type NodeProps<TData extends UnknownStruct = UnknownStruct, TType extends string | undefined = string | undefined> = NodeProps$1<Node<TData, TType>>;
31
35
  /**
32
36
  * Map of node types to their components.
@@ -34,9 +38,11 @@ type NodeProps<TData extends UnknownStruct = UnknownStruct, TType extends string
34
38
  type NodeTypes = { [K in string]: {
35
39
  bivarianceHack(props: NodeProps<Record<string, unknown>, string | undefined>): JSX.Element;
36
40
  }["bivarianceHack"]; };
41
+ /** Union of the built-in node shapes (input, output, default, group). */
37
42
  type BuiltInNode = Node<{
38
43
  label: string;
39
44
  }, "input" | "output" | "default"> | Node<Record<string, never>, "group">;
45
+ /** The built-in node renderer map, keyed by node type. */
40
46
  type BuiltInNodeTypes = {
41
47
  input: (props: NodeProps<{
42
48
  label: string;
@@ -50,9 +56,6 @@ type BuiltInNodeTypes = {
50
56
  group: (props: NodeProps<Record<string, never>, "group">) => JSX.Element;
51
57
  };
52
58
  //#endregion
53
- //#region src/types/custom.d.ts
54
- type UnknownStruct = Record<string, unknown>;
55
- //#endregion
56
59
  //#region src/types/edge.d.ts
57
60
  /**
58
61
  * An `Edge` is the complete description with everything Svelte Flow needs to know in order to
@@ -115,10 +118,13 @@ type BaseEdgeProps = {
115
118
  type BezierEdgeProps = EdgeProps<Record<string, unknown>, "default"> & {
116
119
  pathOptions?: BezierPathOptions$1;
117
120
  };
121
+ /** Props for the built-in straight edge. */
118
122
  type StraightEdgeProps = Omit<EdgeProps<Record<string, unknown>, "straight">, "sourcePosition" | "targetPosition">;
123
+ /** Props for the built-in step edge. */
119
124
  type StepEdgeProps = EdgeProps<Record<string, unknown>, "step"> & {
120
125
  pathOptions?: StepPathOptions;
121
126
  };
127
+ /** Props for the built-in smooth-step edge. */
122
128
  type SmoothStepEdgeProps = EdgeProps<Record<string, unknown>, "smoothstep"> & {
123
129
  pathOptions?: SmoothStepPathOptions$1;
124
130
  };
@@ -141,6 +147,7 @@ type BuiltInEdge = BezierEdgeProps | StraightEdgeProps | StepEdgeProps | SmoothS
141
147
  type EdgeTypes = { [K in string]: {
142
148
  bivarianceHack(props: EdgeProps<Record<string, unknown>, string | undefined>): JSX.Element;
143
149
  }["bivarianceHack"]; };
150
+ /** Defaults applied to every new edge added to the flow. */
144
151
  type DefaultEdgeOptions = DefaultEdgeOptionsBase<Edge>;
145
152
  type EdgeLayouted<EdgeType extends Edge = Edge> = EdgeType & EdgePosition & {
146
153
  sourceNode?: Node;
@@ -164,6 +171,7 @@ type NodeTargetEventWithPointer<T = PointerEvent, NodeType extends Node = Node>
164
171
  nodes: NodeType[];
165
172
  event: T;
166
173
  }) => void;
174
+ /** Node pointer and drag event handlers accepted by the flow. */
167
175
  type NodeEvents<NodeType extends Node = Node> = {
168
176
  /** This event handler is called when a user clicks on a node. */
169
177
  onNodeClick?: NodeEventWithPointer<MouseEvent | TouchEvent, NodeType>;
@@ -182,12 +190,14 @@ type NodeEvents<NodeType extends Node = Node> = {
182
190
  /** This event handler is called when the pointer of a user moves over a node. */
183
191
  onNodePointerMove?: NodeEventWithPointer<PointerEvent, NodeType>;
184
192
  };
193
+ /** Selection-box event handlers. */
185
194
  type NodeSelectionEvents<NodeType extends Node = Node> = {
186
195
  /** This event handler is called when a user right-clicks the selection box. */
187
196
  onSelectionContextMenu?: NodesEventWithPointer<PointerEvent, NodeType>;
188
197
  /** This event handler is called when a user clicks the selection box. */
189
198
  onSelectionClick?: NodesEventWithPointer<MouseEvent, NodeType>;
190
199
  };
200
+ /** Pane (background) event handlers. */
191
201
  type PaneEvents = {
192
202
  /** This event handler is called when a user clicks the pane. */
193
203
  onPaneClick?: ({ event }: {
@@ -198,6 +208,7 @@ type PaneEvents = {
198
208
  event: PointerEvent;
199
209
  }) => void;
200
210
  };
211
+ /** Edge pointer event handlers. */
201
212
  type EdgeEvents<EdgeType extends Edge = Edge> = {
202
213
  /** This event handler is called when a user clicks an edge. */
203
214
  onEdgeClick?: ({ edge, event }: {
@@ -220,10 +231,12 @@ type EdgeEvents<EdgeType extends Edge = Edge> = {
220
231
  event: PointerEvent;
221
232
  }) => void;
222
233
  };
234
+ /** Handlers fired after node/edge deletions. */
223
235
  type DeleteEvents<NodeType extends Node = Node, EdgeType extends Edge = Edge> = {
224
236
  onNodesDelete?: (nodes: NodeType[]) => void;
225
237
  onEdgesDelete?: (edges: EdgeType[]) => void;
226
238
  };
239
+ /** Handlers for edge reconnection gestures. */
227
240
  type EdgeReconnectEvents<EdgeType extends Edge = Edge> = {
228
241
  /**
229
242
  * This handler is called when the source or target of a reconnectable edge is dragged from the
@@ -241,34 +254,65 @@ type EdgeReconnectEvents<EdgeType extends Edge = Edge> = {
241
254
  */
242
255
  onReconnectEnd?: (event: MouseEvent | TouchEvent, edge: EdgeType, handleType: HandleType, connectionState: FinalConnectionState) => void;
243
256
  };
244
- type OnSelectionDrag$1<NodeType extends Node = Node> = (event: MouseEvent, nodes: NodeType[]) => void;
257
+ type OnSelectionDrag$2<NodeType extends Node = Node> = (event: MouseEvent, nodes: NodeType[]) => void;
245
258
  //#endregion
246
259
  //#region src/types/general.d.ts
247
- type Position$3 = `${Position$2}`;
260
+ type Position$2 = `${Position$1}`;
248
261
  type ConnectionMode$2 = `${ConnectionMode$1}`;
249
- type ConnectionLineType$3 = `${ConnectionLineType$1}`;
262
+ type ConnectionLineType$2 = `${ConnectionLineType$1}`;
263
+ /**
264
+ * If you want to render a custom component for connection lines, you can set the
265
+ * `connectionLineComponent` prop on the [`<SolidFlow />`](/api-reference/react-flow#connection-connectionLineComponent)
266
+ * component. The `ConnectionLineComponentProps` are passed to your custom component.
267
+ *
268
+ * @public
269
+ */
270
+ type ConnectionLineComponentProps<NodeType extends Node = Node> = {
271
+ readonly connectionLineStyle?: JSX.CSSProperties;
272
+ readonly connectionLineType: ConnectionLineType$2;
273
+ readonly fromNode: InternalNode<NodeType>;
274
+ readonly fromHandle: Handle$1;
275
+ readonly fromX: number;
276
+ readonly fromY: number;
277
+ readonly toX: number;
278
+ readonly toY: number;
279
+ readonly fromPosition: Position$2;
280
+ readonly toPosition: Position$2;
281
+ readonly connectionStatus: "valid" | "invalid" | null;
282
+ readonly toNode: InternalNode<NodeType> | null;
283
+ readonly toHandle: Handle$1 | null;
284
+ };
250
285
  type SelectionMode$2 = `${SelectionMode$1}`;
251
286
  type PanOnScrollMode$2 = `${PanOnScrollMode$1}`;
252
287
  type ResizeControlVariant$2 = `${ResizeControlVariant$1}`;
288
+ /** A single keyboard modifier key. */
253
289
  type ShortcutModifier = "alt" | "ctrl" | "meta" | "shift";
290
+ /** Modifier requirement for a shortcut: none (`null`/`false`), one modifier, or a list that must all be held. */
254
291
  type ShortcutModifierDefinition = null | false | ShortcutModifier | (ShortcutModifier | ShortcutModifier[])[];
292
+ /** Alias of `ShortcutModifierDefinition`. */
255
293
  type KeyModifier = ShortcutModifierDefinition;
294
+ /** A key name plus an optional modifier requirement. */
256
295
  type KeyDefinitionObject = {
257
296
  key: string;
258
297
  modifier?: KeyModifier;
259
298
  };
299
+ /** A shortcut key: a plain key name or a `KeyDefinitionObject`. */
260
300
  type KeyDefinition = string | KeyDefinitionObject;
301
+ /** Live state of an in-progress connection gesture. */
261
302
  type ConnectionData = {
262
303
  connectionPosition: XYPosition$1 | null;
263
304
  connectionStartHandle: Handle$1 | null;
264
305
  connectionEndHandle: Handle$1 | null;
265
306
  connectionStatus: string | null;
266
307
  };
308
+ /** Options for `fitView`: padding, zoom bounds, duration, and the node subset to fit. */
267
309
  type FitViewOptions<NodeType extends Node = Node> = FitViewOptionsBase<NodeType>;
310
+ /** Handler called after nodes and/or edges are deleted. */
268
311
  type OnDelete<NodeType extends Node = Node, EdgeType extends Edge = Edge> = (params: {
269
312
  nodes: NodeType[];
270
313
  edges: EdgeType[];
271
314
  }) => void;
315
+ /** A connection together with the id of the edge it produced. */
272
316
  type EdgeConnection = Connection$1 & {
273
317
  id: string;
274
318
  };
@@ -276,30 +320,47 @@ type EdgeConnection = Connection$1 & {
276
320
  type OnBeforeEdgeConnect<EdgeType extends Edge = Edge> = (connection: EdgeConnection) => EdgeType | EdgeConnection | undefined;
277
321
  /** Callback that gets called after a handle connection is created. */
278
322
  type OnEdgeConnect = (connection: EdgeConnection) => void;
323
+ /** Callback fired before a reconnect is applied; return the modified edge, or `undefined` to cancel. */
279
324
  type OnBeforeReconnect<EdgeType extends Edge = Edge> = (newEdge: EdgeType, oldEdge: EdgeType) => EdgeType | undefined;
325
+ /** Callback fired before nodes/edges are deleted; can abort or narrow the deletion. */
280
326
  type OnBeforeDelete<NodeType extends Node = Node, EdgeType extends Edge = Edge> = OnBeforeDeleteBase<NodeType, EdgeType>;
281
- type IsValidConnection$1<EdgeType extends Edge = Edge> = (edge: EdgeType | Connection$1) => boolean;
327
+ type IsValidConnection$2<EdgeType extends Edge = Edge> = (edge: EdgeType | Connection$1) => boolean;
328
+ /** Handler called when the set of selected nodes and edges changes. */
282
329
  type OnSelectionChange<NodeType extends Node = Node, EdgeType extends Edge = Edge> = (params: {
283
330
  nodes: NodeType[];
284
331
  edges: EdgeType[];
285
332
  }) => void;
333
+ /** A nodes + edges pair describing a (sub)graph. */
286
334
  type NodeGraph<NodeType extends Node = Node, EdgeType extends Edge = Edge> = {
287
335
  readonly nodes: NodeType[];
288
336
  readonly edges: EdgeType[];
289
337
  };
338
+ /** Callback that maps a completed connection to the edge to create. */
290
339
  type OnEdgeCreate<EdgeType extends Edge = Edge> = (connection: Connection$1) => EdgeType | Connection$1;
291
340
  //#endregion
341
+ //#region src/components/connection/ConnectionLine.d.ts
342
+ type ConnectionLineProps<NodeType extends Node = Node> = {
343
+ readonly style: JSX.CSSProperties;
344
+ readonly type: ConnectionLineType$2;
345
+ readonly component: (props: ConnectionLineComponentProps<NodeType>) => JSX.Element;
346
+ readonly containerStyle: string | JSX.CSSProperties;
347
+ };
348
+ /** Internal component rendering the in-progress connection line. */
349
+ declare const ConnectionLine: <NodeType extends Node = Node>(props: ParentProps<Partial<ConnectionLineProps<NodeType>>>) => JSX.Element;
350
+ //#endregion
292
351
  //#region src/components/container/EdgeRenderer.d.ts
293
352
  type EdgeRendererProps<EdgeType extends Edge = Edge> = EdgeEvents<EdgeType> & {
294
353
  readonly defaultEdgeOptions?: DefaultEdgeOptions;
295
354
  readonly reconnectRadius: number;
296
355
  };
356
+ /** Internal renderer iterating the edge id list into `EdgeWrapper`s. */
297
357
  declare const EdgeRenderer: <NodeType extends Node = Node, EdgeType extends Edge = Edge>(props: EdgeRendererProps<EdgeType>) => JSX.Element;
298
358
  //#endregion
299
359
  //#region src/components/container/NodeRenderer.d.ts
300
360
  type NodeRendererProps<NodeType extends Node = Node> = NodeEvents<NodeType> & {
301
361
  readonly nodeClickDistance: number;
302
362
  };
363
+ /** Internal renderer iterating the node id list into `NodeWrapper`s; owns the shared measurement `ResizeObserver`. */
303
364
  declare const NodeRenderer: <NodeType extends Node = Node>(props: NodeRendererProps<NodeType>) => JSX.Element;
304
365
  //#endregion
305
366
  //#region src/components/container/Pane.d.ts
@@ -311,6 +372,7 @@ type PaneProps = PaneEvents & {
311
372
  readonly onSelectionStart?: (event: PointerEvent) => void;
312
373
  readonly onSelectionEnd?: (event: PointerEvent) => void;
313
374
  };
375
+ /** Internal interaction surface handling pane clicks, the selection box, and pan gestures. */
314
376
  declare const Pane: <NodeType extends Node = Node, EdgeType extends Edge = Edge>(props: ParentProps<PaneProps>) => JSX.Element;
315
377
  //#endregion
316
378
  //#region src/components/container/Panel.d.ts
@@ -323,9 +385,11 @@ type PanelProps = Omit<JSX.HTMLAttributes<HTMLDivElement>, "style"> & {
323
385
  readonly "data-testid"?: string;
324
386
  readonly "data-message"?: string;
325
387
  };
388
+ /** Positioned overlay container for UI placed above the flow (used by `Controls`, `MiniMap`, attribution). */
326
389
  declare const Panel: (props: ParentProps<PanelProps>) => JSX.Element;
327
390
  //#endregion
328
391
  //#region src/components/container/ViewportPortal.d.ts
392
+ /** Portals children into graph coordinate space so they pan and zoom with the viewport. */
329
393
  declare const ViewportPortal: (props: ParentProps) => JSX.Element;
330
394
  //#endregion
331
395
  //#region src/components/container/Zoom.d.ts
@@ -346,52 +410,22 @@ type ZoomProps = {
346
410
  readonly paneClickDistance: number;
347
411
  readonly selectionOnDrag?: boolean;
348
412
  };
413
+ /** Internal viewport controller wiring pan/zoom gestures (XYPanZoom) to the flow. */
349
414
  declare const Zoom: (props: ParentProps<ZoomProps>) => JSX.Element;
350
415
  //#endregion
351
- //#region src/components/graph/connection/types.d.ts
352
- type ConnectionLineType$2 = `${ConnectionLineType$1}`;
353
- /**
354
- * If you want to render a custom component for connection lines, you can set the
355
- * `connectionLineComponent` prop on the [`<SolidFlow />`](/api-reference/react-flow#connection-connectionLineComponent)
356
- * component. The `ConnectionLineComponentProps` are passed to your custom component.
357
- *
358
- * @public
359
- */
360
- type ConnectionLineComponentProps<NodeType extends Node = Node> = {
361
- readonly connectionLineStyle?: JSX.CSSProperties;
362
- readonly connectionLineType: ConnectionLineType$2;
363
- readonly fromNode: InternalNode<NodeType>;
364
- readonly fromHandle: Handle$1;
365
- readonly fromX: number;
366
- readonly fromY: number;
367
- readonly toX: number;
368
- readonly toY: number;
369
- readonly fromPosition: Position$3;
370
- readonly toPosition: Position$3;
371
- readonly connectionStatus: "valid" | "invalid" | null;
372
- readonly toNode: InternalNode<NodeType> | null;
373
- readonly toHandle: Handle$1 | null;
374
- };
375
- //#endregion
376
- //#region src/components/graph/connection/ConnectionLine.d.ts
377
- type ConnectionLineProps<NodeType extends Node = Node> = {
378
- readonly style: JSX.CSSProperties;
379
- readonly type: ConnectionLineType$2;
380
- readonly component: (props: ConnectionLineComponentProps<NodeType>) => JSX.Element;
381
- readonly containerStyle: string | JSX.CSSProperties;
382
- };
383
- declare const ConnectionLine: <NodeType extends Node = Node>(props: ParentProps<Partial<ConnectionLineProps<NodeType>>>) => JSX.Element;
384
- //#endregion
385
- //#region src/components/graph/edge/BaseEdge.d.ts
416
+ //#region src/components/edge/BaseEdge.d.ts
417
+ /** Lowest-level edge primitive: renders the SVG path, label, and interaction width. */
386
418
  declare const BaseEdge: (props: ParentProps<BaseEdgeProps>) => JSX.Element;
387
419
  //#endregion
388
- //#region src/components/graph/edge/BezierEdge.d.ts
420
+ //#region src/components/edge/BezierEdge.d.ts
421
+ /** Built-in bezier edge component. */
389
422
  declare const BezierEdge: (props: BezierEdgeProps) => JSX.Element;
390
423
  //#endregion
391
- //#region src/components/graph/edge/BezierEdgeInternal.d.ts
424
+ //#region src/components/edge/BezierEdgeInternal.d.ts
425
+ /** Renderer-internal bezier edge variant. */
392
426
  declare const BezierEdgeInternal: (props: BezierEdgeProps) => JSX.Element;
393
427
  //#endregion
394
- //#region src/components/graph/edge/EdgeLabel.d.ts
428
+ //#region src/components/edge/EdgeLabel.d.ts
395
429
  type EdgeLabelProps = {
396
430
  readonly x?: number;
397
431
  readonly y?: number;
@@ -401,12 +435,14 @@ type EdgeLabelProps = {
401
435
  readonly transparent?: boolean;
402
436
  readonly style?: JSX.CSSProperties;
403
437
  } & Omit<JSX.HTMLAttributes<HTMLDivElement>, "style">;
438
+ /** Renders an edge label positioned in graph coordinates. */
404
439
  declare const EdgeLabel: (props: ParentProps<EdgeLabelProps>) => JSX.Element;
405
440
  //#endregion
406
- //#region src/components/graph/edge/EdgeLabelRenderer.d.ts
441
+ //#region src/components/edge/EdgeLabelRenderer.d.ts
442
+ /** Portals edge labels into a shared HTML layer rendered above the edge SVG. */
407
443
  declare const EdgeLabelRenderer: (props: ParentProps) => JSX.Element;
408
444
  //#endregion
409
- //#region src/components/graph/edge/EdgeReconnectAnchor.d.ts
445
+ //#region src/components/edge/EdgeReconnectAnchor.d.ts
410
446
  type EdgeReconnectAnchorProps = {
411
447
  readonly type: HandleType;
412
448
  readonly class?: string;
@@ -415,328 +451,156 @@ type EdgeReconnectAnchorProps = {
415
451
  readonly size?: number;
416
452
  readonly reconnecting?: boolean;
417
453
  } & Omit<JSX.HTMLAttributes<HTMLDivElement>, "style">;
454
+ /** Grab area that lets an edge end be dragged off its handle and reconnected. */
418
455
  declare const EdgeReconnectAnchor: (props: ParentProps<EdgeReconnectAnchorProps>) => JSX.Element;
419
456
  //#endregion
420
- //#region src/components/graph/edge/EdgeWrapper.d.ts
457
+ //#region src/components/edge/EdgeWrapper.d.ts
421
458
  type EdgeWrapperProps<EdgeType extends Edge = Edge> = EdgeEvents<EdgeType> & {
422
459
  readonly edgeId: string;
423
460
  };
461
+ /** Internal per-edge wrapper: interaction, a11y, viewport culling, and the dynamic edge component. */
424
462
  declare const EdgeWrapper: <NodeType extends Node = Node, EdgeType extends Edge = Edge>(props: EdgeWrapperProps<EdgeType>) => JSX.Element;
425
463
  //#endregion
426
- //#region src/components/graph/edge/SmoothStepEdge.d.ts
464
+ //#region src/components/edge/SmoothStepEdge.d.ts
465
+ /** Built-in smooth-step edge component. */
427
466
  declare const SmoothStepEdge: (props: SmoothStepEdgeProps) => JSX.Element;
428
467
  //#endregion
429
- //#region src/components/graph/edge/SmoothStepEdgeInternal.d.ts
468
+ //#region src/components/edge/SmoothStepEdgeInternal.d.ts
469
+ /** Renderer-internal smooth-step edge variant. */
430
470
  declare const SmoothStepEdgeInternal: (props: SmoothStepEdgeProps) => JSX.Element;
431
471
  //#endregion
432
- //#region src/components/graph/edge/StepEdge.d.ts
472
+ //#region src/components/edge/StepEdge.d.ts
473
+ /** Built-in step edge component. */
433
474
  declare const StepEdge: (props: StepEdgeProps) => JSX.Element;
434
475
  //#endregion
435
- //#region src/components/graph/edge/StepEdgeInternal.d.ts
476
+ //#region src/components/edge/StepEdgeInternal.d.ts
477
+ /** Renderer-internal step edge variant. */
436
478
  declare const StepEdgeInternal: (props: StepEdgeProps) => JSX.Element;
437
479
  //#endregion
438
- //#region src/components/graph/edge/StraightEdge.d.ts
480
+ //#region src/components/edge/StraightEdge.d.ts
481
+ /** Built-in straight edge component. */
439
482
  declare const StraightEdge: (props: StraightEdgeProps) => JSX.Element;
440
483
  //#endregion
441
- //#region src/components/graph/edge/StraightEdgeInternal.d.ts
484
+ //#region src/components/edge/StraightEdgeInternal.d.ts
485
+ /** Renderer-internal straight edge variant. */
442
486
  declare const StraightEdgeInternal: (props: Omit<StraightEdgeProps, "sourcePosition" | "targetPosition">) => JSX.Element;
443
487
  //#endregion
444
- //#region src/components/graph/handle/Handle.d.ts
488
+ //#region src/components/handle/Handle.d.ts
445
489
  type HandleProps$1 = Omit<HandleProps, "position"> & {
446
- readonly position: Position$3;
490
+ readonly position: Position$2;
447
491
  readonly class?: string;
448
492
  readonly style?: JSX.CSSProperties;
449
493
  readonly onConnect?: (connections: Connection$1[]) => void;
450
494
  readonly onDisconnect?: (connections: Connection$1[]) => void;
451
495
  } & Omit<JSX.HTMLAttributes<HTMLDivElement>, "style">;
496
+ /** Connection point on a node; place inside custom nodes to make them connectable. */
452
497
  declare const Handle: <NodeType extends Node = Node, EdgeType extends Edge = Edge>(props: ParentProps<HandleProps$1>) => JSX.Element;
453
498
  //#endregion
454
- //#region src/components/graph/marker/Marker.d.ts
499
+ //#region src/components/marker/Marker.d.ts
455
500
  type MarkerProps$1 = MarkerProps & {
456
501
  readonly markerUnits?: "strokeWidth" | "userSpaceOnUse";
457
502
  readonly strokeWidth?: number;
458
503
  };
504
+ /** Internal SVG `<marker>` definition for one edge marker configuration. */
459
505
  declare const Marker: (props: MarkerProps$1) => JSX.Element;
460
506
  //#endregion
461
- //#region src/components/graph/marker/MarkerDefinition.d.ts
507
+ //#region src/components/marker/MarkerDefinition.d.ts
508
+ /** Internal collector rendering every unique edge marker into one SVG defs block. */
462
509
  declare const MarkerDefinition: () => JSX.Element;
463
510
  //#endregion
464
- //#region src/components/graph/node/DefaultNode.d.ts
511
+ //#region src/components/node/DefaultNode.d.ts
512
+ /** Built-in default node: label with source and target handles. */
465
513
  declare const DefaultNode: (props: NodeProps<{
466
514
  label: string;
467
515
  }, "default">) => JSX.Element;
468
516
  //#endregion
469
- //#region src/components/graph/node/GroupNode.d.ts
517
+ //#region src/components/node/GroupNode.d.ts
518
+ /** Built-in group node: a plain container for child nodes. */
470
519
  declare const GroupNode: (props: NodeProps<Record<string, never>>) => JSX.Element;
471
520
  //#endregion
472
- //#region src/components/graph/node/InputNode.d.ts
521
+ //#region src/components/node/InputNode.d.ts
522
+ /** Built-in input node: label with a source handle only. */
473
523
  declare const InputNode: (props: NodeProps<{
474
524
  label: string;
475
525
  }>) => JSX.Element;
476
526
  //#endregion
477
- //#region src/components/graph/node/NodeWrapper.d.ts
527
+ //#region src/components/node/NodeWrapper.d.ts
478
528
  type NodeWrapperProps<NodeType extends Node = Node> = NodeEvents<NodeType> & {
479
529
  readonly nodeId: string;
480
530
  readonly resizeObserver: ResizeObserver | undefined;
481
531
  readonly nodeClickDistance: number;
482
532
  };
533
+ /** Internal per-node wrapper: dragging, selection, a11y, measurement, viewport culling, and the dynamic node component. */
483
534
  declare const NodeWrapper: <NodeType extends Node = Node>(props: NodeWrapperProps<NodeType>) => JSX.Element;
484
535
  //#endregion
485
- //#region src/components/graph/node/OutputNode.d.ts
536
+ //#region src/components/node/OutputNode.d.ts
537
+ /** Built-in output node: label with a target handle only. */
486
538
  declare const OutputNode: (props: NodeProps<{
487
539
  label: string;
488
540
  }>) => JSX.Element;
489
541
  //#endregion
490
- //#region src/components/graph/plugins/background/types.d.ts
491
- type BackgroundVariant = "lines" | "dots" | "cross";
542
+ //#region src/components/selection/NodeSelection.d.ts
543
+ type NodeSelectionProps<NodeType extends Node = Node> = NodeSelectionEvents<NodeType> & Pick<NodeEvents<NodeType>, "onNodeDrag" | "onNodeDragStart" | "onNodeDragStop">;
544
+ /** Internal draggable bounding box rendered around multi-selected nodes. */
545
+ declare const NodeSelection: <NodeType extends Node = Node>(props: NodeSelectionProps<NodeType>) => JSX.Element;
492
546
  //#endregion
493
- //#region src/components/graph/plugins/background/Background.d.ts
494
- type BackgroundProps = {
495
- readonly id?: string;
496
- /** Variant of the pattern
497
- * @example 'lines', 'dots', 'cross'
498
- */
499
- readonly variant?: BackgroundVariant;
500
- /** Color of the background */
501
- readonly bgColor?: string;
502
- /** Color of the pattern */
503
- readonly patternColor?: string;
504
- /** Class applied to the pattern */
505
- readonly patternClass?: string;
506
- /** Class applied to the container */
507
- readonly class?: string;
508
- /** Gap between repetitions of the pattern */
509
- readonly gap?: number | [number, number];
510
- /** Size of a single pattern element */
511
- readonly size?: number;
512
- /** Line width of the Line pattern */
513
- readonly lineWidth?: number;
514
- /** Style applied to the container */
515
- readonly style?: JSX.CSSProperties;
547
+ //#region src/components/selection/Selection.d.ts
548
+ type SelectionProps = {
549
+ readonly x?: number;
550
+ readonly y?: number;
551
+ readonly width?: number | string;
552
+ readonly height?: number | string;
553
+ readonly isVisible?: boolean;
516
554
  };
517
- declare const Background: (props: BackgroundProps) => JSX.Element;
555
+ /** Internal selection-rectangle visual. */
556
+ declare const Selection: (props: SelectionProps) => JSX.Element;
518
557
  //#endregion
519
- //#region src/components/graph/plugins/controls/ControlButton.d.ts
520
- type ControlButtonProps = Omit<JSX.ButtonHTMLAttributes<HTMLButtonElement>, "onClick"> & {
521
- readonly class?: string;
522
- readonly bgColor?: string;
523
- readonly bgColorHover?: string;
524
- readonly color?: string;
525
- readonly colorHover?: string;
526
- readonly borderColor?: string;
527
- readonly onClick?: JSX.EventHandler<HTMLButtonElement, MouseEvent>;
558
+ //#region src/core/flowProps.d.ts
559
+ /** Initial (uncontrolled) values used to seed a flow before the first measure/fit. */
560
+ type SolidFlowInitialProps = {
561
+ readonly initialNodes: Node[];
562
+ readonly initialEdges: Edge[];
563
+ readonly initialWidth: number;
564
+ readonly initialHeight: number;
565
+ readonly fitView: boolean;
566
+ readonly nodeOrigin: NodeOrigin$1;
528
567
  };
529
- declare const ControlButton: (props: ParentProps<ControlButtonProps>) => JSX.Element;
530
- //#endregion
531
- //#region src/components/graph/plugins/controls/Controls.d.ts
532
- type ControlsOrientation = "horizontal" | "vertical";
533
- type ControlsProps = {
534
- /** Position of the controls on the pane
535
- * @example PanelPosition.TopLeft, PanelPosition.TopRight,
536
- * PanelPosition.BottomLeft, PanelPosition.BottomRight
537
- */
538
- readonly position?: PanelPosition$1;
539
- /** Show button for zoom in/out */
540
- readonly showZoom?: boolean;
541
- /** Show button for fit view */
542
- readonly showFitView?: boolean;
543
- /** Show button for toggling interactivity */
544
- readonly showLock?: boolean;
545
- readonly buttonBgColor?: string;
546
- readonly buttonBgColorHover?: string;
547
- readonly buttonColor?: string;
548
- readonly buttonColorHover?: string;
549
- readonly buttonBorderColor?: string;
550
- readonly style?: JSX.CSSProperties;
551
- readonly orientation?: ControlsOrientation;
552
- readonly fitViewOptions?: FitViewOptions;
553
- readonly beforeControls?: JSX.Element;
554
- readonly afterControls?: JSX.Element;
555
- } & Omit<JSX.HTMLAttributes<HTMLDivElement>, "style">;
556
- declare const Controls: (props: ParentProps<ControlsProps>) => JSX.Element;
557
- //#endregion
558
- //#region src/components/graph/plugins/EdgeToolbar.d.ts
559
- type EdgeToolbarProps = EdgeToolbarBaseProps & {
560
- /** If `true`, clicking the toolbar selects the edge it belongs to. */
561
- readonly selectEdgeOnClick?: boolean;
562
- } & Omit<JSX.HTMLAttributes<HTMLDivElement>, "style">;
563
568
  /**
564
- * The `<EdgeToolbar />` component renders a toolbar or tooltip for an edge.
565
- * It must be used inside a custom edge component. By default it is only
566
- * visible when the edge is selected; pass `isVisible` to control it manually.
567
- *
568
- * The toolbar does not scale with the viewport so that its content is always legible.
569
+ * Props accepted by the `SolidFlow` component the full configuration surface
570
+ * of a flow, and the config contract of the headless core (`createFlowState`).
569
571
  */
570
- declare const EdgeToolbar: (props: ParentProps<EdgeToolbarProps>) => JSX.Element;
571
- //#endregion
572
- //#region src/components/graph/plugins/minimap/MiniMap.d.ts
573
- type GetMiniMapNodeAttribute<NodeType extends Node> = (node: NodeType) => string;
574
- type MiniMapProps<NodeType extends Node> = Omit<JSX.HTMLAttributes<HTMLDivElement>, "style"> & {
575
- /** Background color of minimap */
576
- readonly bgColor?: string;
577
- /** Color of nodes on the minimap */
578
- readonly nodeColor?: string | GetMiniMapNodeAttribute<NodeType>;
579
- /** Stroke color of nodes on the minimap */
580
- readonly nodeStrokeColor?: string | GetMiniMapNodeAttribute<NodeType>;
581
- /** Class applied to nodes on the minimap */
582
- readonly nodeClass?: string | GetMiniMapNodeAttribute<NodeType>;
583
- /** Border radius of nodes on the minimap */
584
- readonly nodeBorderRadius?: number;
585
- /** Stroke width of nodes on the minimap */
586
- readonly nodeStrokeWidth?: number;
587
- /** Color of the mask representing viewport */
588
- readonly maskColor?: string;
589
- /** Stroke color of the mask representing viewport */
590
- readonly maskStrokeColor?: string;
591
- /** Stroke width of the mask representing viewport */
592
- readonly maskStrokeWidth?: number;
593
- /** Position of the minimap on the pane
594
- * @example PanelPosition.TopLeft, PanelPosition.TopRight,
595
- * PanelPosition.BottomLeft, PanelPosition.BottomRight
572
+ type SolidFlowProps<NodeType extends Node = Node, EdgeType extends Edge = Edge> = NodeEvents<NodeType> & NodeSelectionEvents<NodeType> & EdgeEvents<EdgeType> & DeleteEvents<NodeType, EdgeType> & PaneEvents & {
573
+ /**
574
+ * The id of the flow. This is necessary if you want to render multiple flows.
596
575
  */
597
- readonly position?: PanelPosition$1;
598
- /** Style applied to container */
599
- readonly style?: JSX.CSSProperties;
600
- /** The aria-label applied to container */
601
- readonly ariaLabel?: string | null;
602
- /** Width of minimap */
576
+ readonly id?: string;
577
+ /** Sets a fixed width for the flow */
603
578
  readonly width?: number;
604
- /** Height of minimap */
579
+ /** Sets a fixed height for the flow */
605
580
  readonly height?: number;
606
- readonly pannable?: boolean;
607
- readonly zoomable?: boolean;
608
- /** Invert the direction when panning the minimap viewport */
609
- readonly inversePan?: boolean;
610
- /** Step size for zooming in/out */
611
- readonly zoomStep?: number;
612
- };
613
- declare const MiniMap: <NodeType extends Node>(props: ParentProps<Partial<MiniMapProps<NodeType>>>) => JSX.Element;
614
- //#endregion
615
- //#region src/components/graph/plugins/nodeResizer/NodeResizer.d.ts
616
- type NodeResizerProps = {
617
- /** Id of the node it is resizing
618
- * @remarks optional if used inside custom node
581
+ /**
582
+ * An store of nodes to render in a flow.
583
+ * @example
584
+ * const [nodes] = createStore([
585
+ * {
586
+ * id: 'node-1',
587
+ * type: 'input',
588
+ * data: { label: 'Node 1' },
589
+ * position: { x: 250, y: 50 }
590
+ * }
591
+ * ]);
619
592
  */
620
- readonly nodeId?: string;
621
- /** Class applied to handle */
622
- readonly handleClass?: string;
623
- /** Style applied to handle */
624
- readonly handleStyle?: JSX.CSSProperties;
625
- /** Class applied to line */
626
- readonly lineClass?: string;
627
- /** Style applied to line */
628
- readonly lineStyle?: JSX.CSSProperties;
629
- /** Are the controls visible */
630
- readonly visible?: boolean;
631
- /** Minimum width of node */
632
- readonly minWidth?: number;
633
- /** Minimum height of node */
634
- readonly minHeight?: number;
635
- /** Maximum width of node */
636
- readonly maxWidth?: number;
637
- /** Maximum height of node */
638
- readonly maxHeight?: number;
639
- /** Keep aspect ratio when resizing */
640
- readonly keepAspectRatio?: boolean;
641
- /** Automatically scale the node when resizing */
642
- readonly autoScale?: boolean;
643
- /** Callback to determine if node should resize */
644
- readonly shouldResize?: ShouldResize$1;
645
- /** Callback called when resizing starts */
646
- readonly onResizeStart?: OnResizeStart$1;
647
- /** Callback called when resizing */
648
- readonly onResize?: OnResize$1;
649
- /** Callback called when resizing ends */
650
- readonly onResizeEnd?: OnResizeEnd$1;
651
- } & Omit<JSX.HTMLAttributes<HTMLDivElement>, "onResize" | "style">;
652
- declare const NodeResizer: (props: Partial<NodeResizerProps>) => JSX.Element;
653
- //#endregion
654
- //#region src/components/graph/plugins/nodeResizer/ResizeControl.d.ts
655
- type NodeResizerSubProps = Pick<NodeResizerProps, "nodeId" | "minWidth" | "minHeight" | "maxWidth" | "maxHeight" | "autoScale" | "keepAspectRatio" | "shouldResize" | "onResizeStart" | "onResize" | "onResizeEnd">;
656
- type ResizeControlProps = NodeResizerSubProps & {
657
- /** Position of control
658
- * @example ControlPosition.TopLeft, ControlPosition.TopRight,
659
- * ControlPosition.BottomLeft, ControlPosition.BottomRight
660
- */
661
- readonly position?: ControlPosition$1;
662
- /** Variant of control
663
- * @example ResizeControlVariant.Handle, ResizeControlVariant.Line
664
- */
665
- readonly variant?: ResizeControlVariant$2;
666
- readonly color?: string;
667
- readonly style?: JSX.CSSProperties;
668
- } & Omit<JSX.HTMLAttributes<HTMLDivElement>, "onResize" | "style">;
669
- declare const ResizeControl: <NodeType extends Node = Node>(props: ParentProps<ResizeControlProps>) => JSX.Element;
670
- //#endregion
671
- //#region src/components/graph/plugins/NodeToolbar.d.ts
672
- type NodeToolbarProps = Omit<JSX.HTMLAttributes<HTMLDivElement>, "style"> & {
673
- /** The id of the node, or array of ids the toolbar should be displayed at */
674
- readonly nodeId: string | string[];
675
- /** Position of the toolbar relative to the node
676
- * @example Position.TopLeft, Position.TopRight,
677
- * Position.BottomLeft, Position.BottomRight
678
- */
679
- readonly position: Position$3;
680
- /** Align the toolbar relative to the node
681
- * @example Align.Start, Align.Center, Align.End
682
- */
683
- readonly align: Align$1;
684
- /** Offset the toolbar from the node */
685
- readonly offset: number;
686
- /** If true, node toolbar is visible even if node is not selected */
687
- readonly isVisible: boolean;
688
- /** Style of the toolbar */
689
- readonly style: Omit<JSX.CSSProperties, "z-index" | "position" | "transform">;
690
- };
691
- declare const NodeToolbar: ParentComponent<Partial<NodeToolbarProps>>;
692
- //#endregion
693
- //#region src/components/graph/selection/NodeSelection.d.ts
694
- type NodeSelectionProps<NodeType extends Node = Node> = NodeSelectionEvents<NodeType> & Pick<NodeEvents<NodeType>, "onNodeDrag" | "onNodeDragStart" | "onNodeDragStop">;
695
- declare const NodeSelection: <NodeType extends Node = Node>(props: NodeSelectionProps<NodeType>) => JSX.Element;
696
- //#endregion
697
- //#region src/components/graph/selection/Selection.d.ts
698
- type SelectionProps = {
699
- readonly x?: number;
700
- readonly y?: number;
701
- readonly width?: number | string;
702
- readonly height?: number | string;
703
- readonly isVisible?: boolean;
704
- };
705
- declare const Selection: (props: SelectionProps) => JSX.Element;
706
- //#endregion
707
- //#region src/components/SolidFlow/types.d.ts
708
- type SolidFlowProps<NodeType extends Node = Node, EdgeType extends Edge = Edge> = NodeEvents<NodeType> & NodeSelectionEvents<NodeType> & EdgeEvents<EdgeType> & DeleteEvents<NodeType, EdgeType> & PaneEvents & {
709
- /**
710
- * The id of the flow. This is necessary if you want to render multiple flows.
711
- */
712
- readonly id?: string;
713
- /** Sets a fixed width for the flow */
714
- readonly width?: number;
715
- /** Sets a fixed height for the flow */
716
- readonly height?: number;
717
- /**
718
- * An store of nodes to render in a flow.
719
- * @example
720
- * const [nodes] = createStore([
721
- * {
722
- * id: 'node-1',
723
- * type: 'input',
724
- * data: { label: 'Node 1' },
725
- * position: { x: 250, y: 50 }
726
- * }
727
- * ]);
728
- */
729
- readonly nodes?: Store<NodeType[]>;
730
- /**
731
- * An store of edges to render in a flow.
732
- * @example
733
- * const [edges] = createStore([
734
- * {
735
- * id: 'edge-1-2',
736
- * source: 'node-1',
737
- * target: 'node-2',
738
- * }
739
- * ]);
593
+ readonly nodes?: Store<NodeType[]>;
594
+ /**
595
+ * An store of edges to render in a flow.
596
+ * @example
597
+ * const [edges] = createStore([
598
+ * {
599
+ * id: 'edge-1-2',
600
+ * source: 'node-1',
601
+ * target: 'node-2',
602
+ * }
603
+ * ]);
740
604
  */
741
605
  readonly edges?: Store<EdgeType[]>;
742
606
  /**
@@ -981,9 +845,13 @@ type SolidFlowProps<NodeType extends Node = Node, EdgeType extends Edge = Edge>
981
845
  */
982
846
  readonly selectionOnDrag?: boolean;
983
847
  /**
984
- * You can enable this optimization to instruct Solid Flow to only render nodes and edges that would be visible in the viewport.
985
- * This might improve performance when you have a large number of nodes and edges but also adds an overhead.
986
- * @default false
848
+ * Viewport culling: elements outside the (overscanned) viewport are hidden
849
+ * with CSS (`visibility: hidden` + `pointer-events: none`). Everything
850
+ * stays mounted — custom nodes keep their DOM state off-screen, and
851
+ * measurement/fitView/minimap are unaffected. Selected elements are never
852
+ * culled. Set to `false` to keep every element visible; note that culled
853
+ * elements leave the accessibility tree and tab order while off-screen.
854
+ * @default true
987
855
  */
988
856
  readonly onlyRenderVisibleElements?: boolean;
989
857
  /**
@@ -1023,7 +891,7 @@ type SolidFlowProps<NodeType extends Node = Node, EdgeType extends Edge = Edge>
1023
891
  * @example 'straight' | 'default' | 'step' | 'smoothstep' | 'bezier'
1024
892
  * @example ConnectionLineType.Straight | ConnectionLineType.Default | ConnectionLineType.Step | ConnectionLineType.SmoothStep | ConnectionLineType.Bezier
1025
893
  */
1026
- readonly connectionLineType?: ConnectionLineType$3;
894
+ readonly connectionLineType?: ConnectionLineType$2;
1027
895
  /** Enabling this option will raise the z-index of nodes when they are selected.
1028
896
  * @default true
1029
897
  */
@@ -1090,7 +958,7 @@ type SolidFlowProps<NodeType extends Node = Node, EdgeType extends Edge = Edge>
1090
958
  * before doing so.
1091
959
  */
1092
960
  readonly proOptions?: ProOptions$1;
1093
- readonly isValidConnection?: IsValidConnection$1<EdgeType>;
961
+ readonly isValidConnection?: IsValidConnection$2<EdgeType>;
1094
962
  /** This event handler is called when the user begins to pan or zoom the viewport */
1095
963
  readonly onMoveStart?: OnMoveStart$1;
1096
964
  /** This event handler is called when the user pans or zooms the viewport */
@@ -1138,11 +1006,11 @@ type SolidFlowProps<NodeType extends Node = Node, EdgeType extends Edge = Edge>
1138
1006
  /** This event handler gets called when the selected nodes & edges change */
1139
1007
  readonly onSelectionChange?: OnSelectionChange<NodeType, EdgeType>;
1140
1008
  /** This event handler gets called when a user starts to drag a selection box. */
1141
- readonly onSelectionDragStart?: OnSelectionDrag$1<NodeType>;
1009
+ readonly onSelectionDragStart?: OnSelectionDrag$2<NodeType>;
1142
1010
  /** This event handler gets called when a user drags a selection box. */
1143
- readonly onSelectionDrag?: OnSelectionDrag$1<NodeType>;
1011
+ readonly onSelectionDrag?: OnSelectionDrag$2<NodeType>;
1144
1012
  /** This event handler gets called when a user stops dragging a selection box. */
1145
- readonly onSelectionDragStop?: OnSelectionDrag$1<NodeType>;
1013
+ readonly onSelectionDragStop?: OnSelectionDrag$2<NodeType>;
1146
1014
  /** This event handler gets called when the user starts to drag a selection box */
1147
1015
  readonly onSelectionStart?: (event: PointerEvent) => void;
1148
1016
  /** This event handler gets called when the user finishes dragging a selection box */
@@ -1156,11 +1024,98 @@ type SolidFlowProps<NodeType extends Node = Node, EdgeType extends Edge = Edge>
1156
1024
  //#endregion
1157
1025
  //#region src/components/SolidFlow/component.d.ts
1158
1026
  type SolidFlowComponentProps<NodeType extends Node = Node, EdgeType extends Edge = Edge> = ParentProps<SolidFlowProps<NodeType, EdgeType>> & Omit<JSX.HTMLAttributes<HTMLDivElement>, "style" | "onselectionchange" | "onSelectionChange">;
1027
+ /** The flow canvas component: renders nodes and edges and wires up viewport and interactions. */
1159
1028
  declare const SolidFlow: <NodeType extends Node = Node, EdgeType extends Edge = Edge>(props: SolidFlowComponentProps<NodeType, EdgeType>) => JSX.Element;
1160
1029
  //#endregion
1161
1030
  //#region src/components/SolidFlow/provider.d.ts
1031
+ /** Hoists flow state above `SolidFlow` so hooks work outside the component (multi-panel UIs). */
1162
1032
  declare const SolidFlowProvider: <NodeType extends Node = Node, EdgeType extends Edge = Edge>(props: ParentProps<SolidFlowProps<NodeType, EdgeType>>) => JSX.Element;
1163
1033
  //#endregion
1034
+ //#region src/core/createEdgeStore.d.ts
1035
+ type ExtractEdgeInfo<T> = T extends ((props: EdgeProps<infer TData, infer TType>) => unknown) ? {
1036
+ data: TData;
1037
+ type: TType;
1038
+ } : never;
1039
+ type AllEdgeTypes<TUserEdgeTypes extends EdgeTypes> = TUserEdgeTypes extends Record<string, never> ? BuiltInEdgeTypes : BuiltInEdgeTypes & TUserEdgeTypes;
1040
+ type EdgesInput<TUserEdgeTypes extends EdgeTypes> = { [K in keyof AllEdgeTypes<TUserEdgeTypes>]: Edge<ExtractEdgeInfo<AllEdgeTypes<TUserEdgeTypes>[K]>["data"], ExtractEdgeInfo<AllEdgeTypes<TUserEdgeTypes>[K]>["type"]>; }[keyof AllEdgeTypes<TUserEdgeTypes>];
1041
+ /**
1042
+ * Creates a type-safe reactive store of edges for use in Solid Flow.
1043
+ *
1044
+ * This utility function provides full type safety and autocomplete for creating edges,
1045
+ * combining both built-in edge types (default, straight, step, smoothstep) and custom user-defined
1046
+ * edge types. When a specific edge type is selected, TypeScript automatically infers the
1047
+ * required data structure and validates the edge configuration.
1048
+ *
1049
+ * @template TUserEdgeTypes - The user's custom edge types map (optional)
1050
+ * @param edges - Array of edge configurations to create
1051
+ * @returns A SolidJS store tuple [store, setStore] with properly typed Edge objects
1052
+ *
1053
+ * @example
1054
+ * ```typescript
1055
+ * // Using only built-in edge types (no generic parameter needed)
1056
+ * const [builtInEdges, setBuiltInEdges] = createEdgeStore([
1057
+ * {
1058
+ * id: "1",
1059
+ * source: "1",
1060
+ * target: "2",
1061
+ * type: "default",
1062
+ * data: { label: "Start" }
1063
+ * },
1064
+ * {
1065
+ * id: "2",
1066
+ * source: "2",
1067
+ * target: "3",
1068
+ * type: "default",
1069
+ * data: { label: "Process" }
1070
+ * }
1071
+ * ]);
1072
+ * ```
1073
+ *
1074
+ * @example
1075
+ * ```typescript
1076
+ * // Using custom edge types (requires generic parameter)
1077
+ * const customEdgeTypes = {
1078
+ * textEdge: (props: EdgeProps<{ content: string }, "textEdge">) =>
1079
+ * <div>{props.data.content}</div>,
1080
+ * numberEdge: (props: EdgeProps<{ value: number }, "numberEdge">) =>
1081
+ * <div>{props.data.value}</div>
1082
+ * } satisfies EdgeTypes;
1083
+ *
1084
+ * const [mixedEdges, setMixedEdges] = createEdgeStore<typeof customEdgeTypes>([
1085
+ * {
1086
+ * id: "1",
1087
+ * source: "1",
1088
+ * target: "2",
1089
+ * type: "default", // Built-in type
1090
+ * data: { label: "Input" }
1091
+ * },
1092
+ * {
1093
+ * id: "2",
1094
+ * source: "2",
1095
+ * target: "3",
1096
+ * type: "textEdge", // Custom type - gets autocomplete
1097
+ * data: { content: "Custom text edge" } // Type-safe data
1098
+ * },
1099
+ * {
1100
+ * id: "3",
1101
+ * source: "3",
1102
+ * target: "4",
1103
+ * type: "numberEdge", // Another custom type
1104
+ * data: { value: 42 }, // Type-safe data
1105
+ * style: { "background-color": "lightblue" } // All Edge properties available
1106
+ * }
1107
+ * ]);
1108
+ * ```
1109
+ *
1110
+ * @remarks
1111
+ * - Provides autocomplete for the `type` field with all available node types
1112
+ * - Validates `data` structure based on the selected node type
1113
+ * - Supports all Node properties (style, draggable, hidden, etc.)
1114
+ * - Works seamlessly with both built-in and custom node types
1115
+ * - Type errors prevent invalid type names or incorrect data structures
1116
+ */
1117
+ declare const createEdgeStore: <TUserEdgeTypes extends EdgeTypes = Record<string, never>>(edges: EdgesInput<TUserEdgeTypes>[]) => readonly [Store<EdgesInput<TUserEdgeTypes>[]>, StoreSetter<EdgesInput<TUserEdgeTypes>[]>];
1118
+ //#endregion
1164
1119
  //#region src/core/projections/connections.d.ts
1165
1120
  /**
1166
1121
  * Lookup keys for the connection index. Each edge is registered under six
@@ -1169,6 +1124,7 @@ declare const SolidFlowProvider: <NodeType extends Node = Node, EdgeType extends
1169
1124
  * `${nodeId}` · `${nodeId}-${type}` · `${nodeId}-${type}-${handleId}`
1170
1125
  */
1171
1126
  declare const connectionKey: (nodeId: string, type?: HandleType, handleId?: string | null) => string;
1127
+ /** The connections index: a handle's `connectionKey` mapped to its live `HandleConnection`s. */
1172
1128
  type ConnectionsRecord = Record<string, Record<string, HandleConnection$1>>;
1173
1129
  //#endregion
1174
1130
  //#region src/core/flowState.d.ts
@@ -1313,92 +1269,7 @@ type FlowCommands<NodeType extends Node = Node, EdgeType extends Edge = Edge> =
1313
1269
  };
1314
1270
  };
1315
1271
  //#endregion
1316
- //#region src/data/createEdgeStore.d.ts
1317
- type ExtractEdgeInfo<T> = T extends ((props: EdgeProps<infer TData, infer TType>) => unknown) ? {
1318
- data: TData;
1319
- type: TType;
1320
- } : never;
1321
- type AllEdgeTypes<TUserEdgeTypes extends EdgeTypes> = TUserEdgeTypes extends Record<string, never> ? BuiltInEdgeTypes : BuiltInEdgeTypes & TUserEdgeTypes;
1322
- type EdgesInput<TUserEdgeTypes extends EdgeTypes> = { [K in keyof AllEdgeTypes<TUserEdgeTypes>]: Edge<ExtractEdgeInfo<AllEdgeTypes<TUserEdgeTypes>[K]>["data"], ExtractEdgeInfo<AllEdgeTypes<TUserEdgeTypes>[K]>["type"]>; }[keyof AllEdgeTypes<TUserEdgeTypes>];
1323
- /**
1324
- * Creates a type-safe reactive store of edges for use in Solid Flow.
1325
- *
1326
- * This utility function provides full type safety and autocomplete for creating edges,
1327
- * combining both built-in edge types (default, straight, step, smoothstep) and custom user-defined
1328
- * edge types. When a specific edge type is selected, TypeScript automatically infers the
1329
- * required data structure and validates the edge configuration.
1330
- *
1331
- * @template TUserEdgeTypes - The user's custom edge types map (optional)
1332
- * @param edges - Array of edge configurations to create
1333
- * @returns A SolidJS store tuple [store, setStore] with properly typed Edge objects
1334
- *
1335
- * @example
1336
- * ```typescript
1337
- * // Using only built-in edge types (no generic parameter needed)
1338
- * const [builtInEdges, setBuiltInEdges] = createEdgeStore([
1339
- * {
1340
- * id: "1",
1341
- * source: "1",
1342
- * target: "2",
1343
- * type: "default",
1344
- * data: { label: "Start" }
1345
- * },
1346
- * {
1347
- * id: "2",
1348
- * source: "2",
1349
- * target: "3",
1350
- * type: "default",
1351
- * data: { label: "Process" }
1352
- * }
1353
- * ]);
1354
- * ```
1355
- *
1356
- * @example
1357
- * ```typescript
1358
- * // Using custom edge types (requires generic parameter)
1359
- * const customEdgeTypes = {
1360
- * textEdge: (props: EdgeProps<{ content: string }, "textEdge">) =>
1361
- * <div>{props.data.content}</div>,
1362
- * numberEdge: (props: EdgeProps<{ value: number }, "numberEdge">) =>
1363
- * <div>{props.data.value}</div>
1364
- * } satisfies EdgeTypes;
1365
- *
1366
- * const [mixedEdges, setMixedEdges] = createEdgeStore<typeof customEdgeTypes>([
1367
- * {
1368
- * id: "1",
1369
- * source: "1",
1370
- * target: "2",
1371
- * type: "default", // Built-in type
1372
- * data: { label: "Input" }
1373
- * },
1374
- * {
1375
- * id: "2",
1376
- * source: "2",
1377
- * target: "3",
1378
- * type: "textEdge", // Custom type - gets autocomplete
1379
- * data: { content: "Custom text edge" } // Type-safe data
1380
- * },
1381
- * {
1382
- * id: "3",
1383
- * source: "3",
1384
- * target: "4",
1385
- * type: "numberEdge", // Another custom type
1386
- * data: { value: 42 }, // Type-safe data
1387
- * style: { "background-color": "lightblue" } // All Edge properties available
1388
- * }
1389
- * ]);
1390
- * ```
1391
- *
1392
- * @remarks
1393
- * - Provides autocomplete for the `type` field with all available node types
1394
- * - Validates `data` structure based on the selected node type
1395
- * - Supports all Node properties (style, draggable, hidden, etc.)
1396
- * - Works seamlessly with both built-in and custom node types
1397
- * - Type errors prevent invalid type names or incorrect data structures
1398
- */
1399
- declare const createEdgeStore: <TUserEdgeTypes extends EdgeTypes = Record<string, never>>(edges: EdgesInput<TUserEdgeTypes>[]) => readonly [Store<EdgesInput<TUserEdgeTypes>[]>, StoreSetter<EdgesInput<TUserEdgeTypes>[]>];
1400
- //#endregion
1401
- //#region src/data/createNodeStore.d.ts
1272
+ //#region src/core/createNodeStore.d.ts
1402
1273
  type ExtractNodeInfo<T> = T extends ((props: NodeProps<infer TData, infer TType>) => unknown) ? {
1403
1274
  data: TData;
1404
1275
  type: TType;
@@ -1523,6 +1394,7 @@ declare function useEdges<EdgeType extends Edge = Edge>(): Accessor<EdgeType[]>;
1523
1394
  declare function useViewport(): Accessor<Viewport$1>;
1524
1395
  //#endregion
1525
1396
  //#region src/hooks/useHandleEdgeSelect.d.ts
1397
+ /** Returns a callback applying edge-selection semantics for the given edge id. */
1526
1398
  declare function useHandleEdgeSelect(): (id: string) => void;
1527
1399
  //#endregion
1528
1400
  //#region src/hooks/useInitialized.d.ts
@@ -1584,6 +1456,7 @@ type NodeData<NodeType extends Node> = Pick<NodeType, "id" | "data" | "type">;
1584
1456
  * @returns A memo with an array of data objects
1585
1457
  */
1586
1458
  declare function useNodesData<NodeType extends Node = Node>(nodeId: Accessor<string | undefined | null>): Accessor<NodeData<NodeType> | undefined>;
1459
+ /** Reactive accessor for the `data` of one or many nodes by id. */
1587
1460
  declare function useNodesData<NodeType extends Node = Node>(nodeIds: Accessor<string[] | undefined | null>): Accessor<NodeData<NodeType>[]>;
1588
1461
  //#endregion
1589
1462
  //#region src/hooks/useSolidFlow.d.ts
@@ -1646,4 +1519,309 @@ declare function useSolidFlow<NodeType extends Node = Node, EdgeType extends Edg
1646
1519
  */
1647
1520
  declare function useUpdateNodeInternals(): UpdateNodeInternals;
1648
1521
  //#endregion
1649
- export { type Align, type AriaLabelConfig, Background, type BackgroundProps, type BackgroundVariant, BaseEdge, BezierEdge, BezierEdgeInternal, type BezierEdgeProps, type BezierPathOptions, type Box, type BuiltInEdge, type BuiltInNode, type BuiltInNodeTypes, type ColorMode, type ColorModeClass, type Connection, ConnectionData, ConnectionLine, type ConnectionLineComponentProps, ConnectionLineType, ConnectionMode, type ConnectionsRecord, ControlButton, type ControlLinePosition, type ControlPosition, Controls, type CoordinateExtent, type DefaultEdgeOptions, DefaultNode, DeleteEvents, type Dimensions, type Edge, EdgeConnection, EdgeEvents, EdgeLabel, EdgeLabelRenderer, type EdgeMarker, type EdgeMarkerType, type EdgeProps, EdgeReconnectAnchor, EdgeReconnectEvents, EdgeRenderer, EdgeToolbar, EdgeToolbarProps, type EdgeTypes, EdgeWrapper, type FitBounds, type FitBoundsOptions, FitViewOptions, type FlowCommands, type FlowSelection, type FlowState, type GetBezierPathParams, type GetSmoothStepPathParams, type GetStraightPathParams, GroupNode, Handle, type HandleConnection, InputNode, type InternalNode, IsValidConnection, KeyDefinition, KeyDefinitionObject, KeyModifier, Marker, MarkerDefinition, MarkerType, MiniMap, type Node, type NodeConnection, NodeEvents, NodeGraph, type NodeOrigin, type NodeProps, NodeRenderer, NodeResizer, NodeSelection, NodeSelectionEvents, NodeToolbar, NodeToolbarProps, type NodeTypes, NodeWrapper, OnBeforeDelete, OnBeforeEdgeConnect, OnBeforeReconnect, type OnConnect, type OnConnectEnd, type OnConnectStart, type OnConnectStartParams, OnDelete, OnEdgeConnect, OnEdgeCreate, type OnError, type OnMove, type OnMoveEnd, type OnMoveStart, type OnReconnect, type OnReconnectEnd, type OnReconnectStart, type OnResize, type OnResizeEnd, type OnResizeStart, OnSelectionChange, OnSelectionDrag, OutputNode, PanOnScrollMode, Pane, PaneEvents, Panel, type PanelPosition, Position$1 as Position, type ProOptions, type Rect, ResizeControl, ResizeControlVariant, type ResizeDragEvent, type ResizeParams, type ResizeParamsWithDirection, Selection, SelectionMode, type SelectionRect, type SetCenter, type SetCenterOptions, type SetViewport, ShortcutModifier, ShortcutModifierDefinition, type ShouldResize, SmoothStepEdge, SmoothStepEdgeInternal, type SmoothStepEdgeProps, type SmoothStepPathOptions, type SnapGrid, SolidFlow, SolidFlowProvider, StepEdge, StepEdgeInternal, type StepEdgeProps, StraightEdge, StraightEdgeInternal, type StraightEdgeProps, type Transform, UseSolidFlowReturn, Viewport, type ViewportHelperFunctionOptions, ViewportPortal, type XYPosition, type XYZPosition, Zoom, addEdge, connectionKey, createEdgeStore, createNodeStore, getBezierEdgeCenter, getBezierPath, getConnectedEdges, getEdgeCenter, getIncomers, getNodesBounds, getOutgoers, getSmoothStepPath, getStraightPath, getViewportForBounds, useColorMode, useConnection, useEdges, useHandleEdgeSelect, useInternalNode, useNodeConnections, useNodes, useNodesData, useNodesInitialized, useSolidFlow, useUpdateNodeInternals, useViewport, useViewportInitialized };
1522
+ //#region src/plugins/background/types.d.ts
1523
+ /** Available background pattern styles. */
1524
+ type BackgroundVariant = "lines" | "dots" | "cross";
1525
+ //#endregion
1526
+ //#region src/plugins/background/Background.d.ts
1527
+ /** Props for the `Background` plugin. */
1528
+ type BackgroundProps = {
1529
+ readonly id?: string;
1530
+ /** Variant of the pattern
1531
+ * @example 'lines', 'dots', 'cross'
1532
+ */
1533
+ readonly variant?: BackgroundVariant;
1534
+ /** Color of the background */
1535
+ readonly bgColor?: string;
1536
+ /** Color of the pattern */
1537
+ readonly patternColor?: string;
1538
+ /** Class applied to the pattern */
1539
+ readonly patternClass?: string;
1540
+ /** Class applied to the container */
1541
+ readonly class?: string;
1542
+ /** Gap between repetitions of the pattern */
1543
+ readonly gap?: number | [number, number];
1544
+ /** Size of a single pattern element */
1545
+ readonly size?: number;
1546
+ /** Line width of the Line pattern */
1547
+ readonly lineWidth?: number;
1548
+ /** Style applied to the container */
1549
+ readonly style?: JSX.CSSProperties;
1550
+ };
1551
+ /** Canvas background pattern (lines, dots, or cross) rendered beneath the graph. */
1552
+ declare const Background: (props: BackgroundProps) => JSX.Element;
1553
+ //#endregion
1554
+ //#region src/plugins/controls/ControlButton.d.ts
1555
+ type ControlButtonProps = Omit<JSX.ButtonHTMLAttributes<HTMLButtonElement>, "onClick"> & {
1556
+ readonly class?: string;
1557
+ readonly bgColor?: string;
1558
+ readonly bgColorHover?: string;
1559
+ readonly color?: string;
1560
+ readonly colorHover?: string;
1561
+ readonly borderColor?: string;
1562
+ readonly onClick?: JSX.EventHandler<HTMLButtonElement, MouseEvent>;
1563
+ };
1564
+ /** A styled button for use inside `Controls`. */
1565
+ declare const ControlButton: (props: ParentProps<ControlButtonProps>) => JSX.Element;
1566
+ //#endregion
1567
+ //#region src/plugins/controls/Controls.d.ts
1568
+ type ControlsOrientation = "horizontal" | "vertical";
1569
+ type ControlsProps = {
1570
+ /** Position of the controls on the pane
1571
+ * @example PanelPosition.TopLeft, PanelPosition.TopRight,
1572
+ * PanelPosition.BottomLeft, PanelPosition.BottomRight
1573
+ */
1574
+ readonly position?: PanelPosition$1;
1575
+ /** Show button for zoom in/out */
1576
+ readonly showZoom?: boolean;
1577
+ /** Show button for fit view */
1578
+ readonly showFitView?: boolean;
1579
+ /** Show button for toggling interactivity */
1580
+ readonly showLock?: boolean;
1581
+ readonly buttonBgColor?: string;
1582
+ readonly buttonBgColorHover?: string;
1583
+ readonly buttonColor?: string;
1584
+ readonly buttonColorHover?: string;
1585
+ readonly buttonBorderColor?: string;
1586
+ readonly style?: JSX.CSSProperties;
1587
+ readonly orientation?: ControlsOrientation;
1588
+ readonly fitViewOptions?: FitViewOptions;
1589
+ readonly beforeControls?: JSX.Element;
1590
+ readonly afterControls?: JSX.Element;
1591
+ } & Omit<JSX.HTMLAttributes<HTMLDivElement>, "style">;
1592
+ /** Viewport control panel: zoom in/out, fit view, and interactivity lock. */
1593
+ declare const Controls: (props: ParentProps<ControlsProps>) => JSX.Element;
1594
+ //#endregion
1595
+ //#region src/plugins/minimap/MiniMap.d.ts
1596
+ type GetMiniMapNodeAttribute<NodeType extends Node> = (node: NodeType) => string;
1597
+ type MiniMapProps<NodeType extends Node> = Omit<JSX.HTMLAttributes<HTMLDivElement>, "style"> & {
1598
+ /** Background color of minimap */
1599
+ readonly bgColor?: string;
1600
+ /** Color of nodes on the minimap */
1601
+ readonly nodeColor?: string | GetMiniMapNodeAttribute<NodeType>;
1602
+ /** Stroke color of nodes on the minimap */
1603
+ readonly nodeStrokeColor?: string | GetMiniMapNodeAttribute<NodeType>;
1604
+ /** Class applied to nodes on the minimap */
1605
+ readonly nodeClass?: string | GetMiniMapNodeAttribute<NodeType>;
1606
+ /** Border radius of nodes on the minimap */
1607
+ readonly nodeBorderRadius?: number;
1608
+ /** Stroke width of nodes on the minimap */
1609
+ readonly nodeStrokeWidth?: number;
1610
+ /** Color of the mask representing viewport */
1611
+ readonly maskColor?: string;
1612
+ /** Stroke color of the mask representing viewport */
1613
+ readonly maskStrokeColor?: string;
1614
+ /** Stroke width of the mask representing viewport */
1615
+ readonly maskStrokeWidth?: number;
1616
+ /** Position of the minimap on the pane
1617
+ * @example PanelPosition.TopLeft, PanelPosition.TopRight,
1618
+ * PanelPosition.BottomLeft, PanelPosition.BottomRight
1619
+ */
1620
+ readonly position?: PanelPosition$1;
1621
+ /** Style applied to container */
1622
+ readonly style?: JSX.CSSProperties;
1623
+ /** The aria-label applied to container */
1624
+ readonly ariaLabel?: string | null;
1625
+ /** Width of minimap */
1626
+ readonly width?: number;
1627
+ /** Height of minimap */
1628
+ readonly height?: number;
1629
+ readonly pannable?: boolean;
1630
+ readonly zoomable?: boolean;
1631
+ /** Invert the direction when panning the minimap viewport */
1632
+ readonly inversePan?: boolean;
1633
+ /** Step size for zooming in/out */
1634
+ readonly zoomStep?: number;
1635
+ };
1636
+ /** Miniature overview map of the whole flow, with optional pan/zoom interaction. */
1637
+ declare const MiniMap: <NodeType extends Node>(props: ParentProps<Partial<MiniMapProps<NodeType>>>) => JSX.Element;
1638
+ //#endregion
1639
+ //#region src/plugins/nodeResizer/NodeResizer.d.ts
1640
+ type NodeResizerProps = {
1641
+ /** Id of the node it is resizing
1642
+ * @remarks optional if used inside custom node
1643
+ */
1644
+ readonly nodeId?: string;
1645
+ /** Class applied to handle */
1646
+ readonly handleClass?: string;
1647
+ /** Style applied to handle */
1648
+ readonly handleStyle?: JSX.CSSProperties;
1649
+ /** Class applied to line */
1650
+ readonly lineClass?: string;
1651
+ /** Style applied to line */
1652
+ readonly lineStyle?: JSX.CSSProperties;
1653
+ /** Are the controls visible */
1654
+ readonly visible?: boolean;
1655
+ /** Minimum width of node */
1656
+ readonly minWidth?: number;
1657
+ /** Minimum height of node */
1658
+ readonly minHeight?: number;
1659
+ /** Maximum width of node */
1660
+ readonly maxWidth?: number;
1661
+ /** Maximum height of node */
1662
+ readonly maxHeight?: number;
1663
+ /** Keep aspect ratio when resizing */
1664
+ readonly keepAspectRatio?: boolean;
1665
+ /** Automatically scale the node when resizing */
1666
+ readonly autoScale?: boolean;
1667
+ /** Callback to determine if node should resize */
1668
+ readonly shouldResize?: ShouldResize$1;
1669
+ /** Callback called when resizing starts */
1670
+ readonly onResizeStart?: OnResizeStart$1;
1671
+ /** Callback called when resizing */
1672
+ readonly onResize?: OnResize$1;
1673
+ /** Callback called when resizing ends */
1674
+ readonly onResizeEnd?: OnResizeEnd$1;
1675
+ } & Omit<JSX.HTMLAttributes<HTMLDivElement>, "onResize" | "style">;
1676
+ /** Resize handles and lines around a node; place inside a custom node to make it resizable. */
1677
+ declare const NodeResizer: (props: Partial<NodeResizerProps>) => JSX.Element;
1678
+ //#endregion
1679
+ //#region src/plugins/nodeResizer/ResizeControl.d.ts
1680
+ type NodeResizerSubProps = Pick<NodeResizerProps, "nodeId" | "minWidth" | "minHeight" | "maxWidth" | "maxHeight" | "autoScale" | "keepAspectRatio" | "shouldResize" | "onResizeStart" | "onResize" | "onResizeEnd">;
1681
+ type ResizeControlProps = NodeResizerSubProps & {
1682
+ /** Position of control
1683
+ * @example ControlPosition.TopLeft, ControlPosition.TopRight,
1684
+ * ControlPosition.BottomLeft, ControlPosition.BottomRight
1685
+ */
1686
+ readonly position?: ControlPosition$1;
1687
+ /** Variant of control
1688
+ * @example ResizeControlVariant.Handle, ResizeControlVariant.Line
1689
+ */
1690
+ readonly variant?: ResizeControlVariant$2;
1691
+ readonly color?: string;
1692
+ readonly style?: JSX.CSSProperties;
1693
+ } & Omit<JSX.HTMLAttributes<HTMLDivElement>, "onResize" | "style">;
1694
+ /** A single resize handle or line — the building block of `NodeResizer`. */
1695
+ declare const ResizeControl: <NodeType extends Node = Node>(props: ParentProps<ResizeControlProps>) => JSX.Element;
1696
+ //#endregion
1697
+ //#region src/plugins/toolbar/EdgeToolbar.d.ts
1698
+ /** Props for the `EdgeToolbar` plugin. */
1699
+ type EdgeToolbarProps = EdgeToolbarBaseProps & {
1700
+ /** If `true`, clicking the toolbar selects the edge it belongs to. */
1701
+ readonly selectEdgeOnClick?: boolean;
1702
+ } & Omit<JSX.HTMLAttributes<HTMLDivElement>, "style">;
1703
+ /**
1704
+ * The `<EdgeToolbar />` component renders a toolbar or tooltip for an edge.
1705
+ * It must be used inside a custom edge component. By default it is only
1706
+ * visible when the edge is selected; pass `isVisible` to control it manually.
1707
+ *
1708
+ * The toolbar does not scale with the viewport so that its content is always legible.
1709
+ */
1710
+ declare const EdgeToolbar: (props: ParentProps<EdgeToolbarProps>) => JSX.Element;
1711
+ //#endregion
1712
+ //#region src/plugins/toolbar/NodeToolbar.d.ts
1713
+ /** Props for the `NodeToolbar` plugin. */
1714
+ type NodeToolbarProps = Omit<JSX.HTMLAttributes<HTMLDivElement>, "style"> & {
1715
+ /** The id of the node, or array of ids the toolbar should be displayed at */
1716
+ readonly nodeId: string | string[];
1717
+ /** Position of the toolbar relative to the node
1718
+ * @example Position.TopLeft, Position.TopRight,
1719
+ * Position.BottomLeft, Position.BottomRight
1720
+ */
1721
+ readonly position: Position$2;
1722
+ /** Align the toolbar relative to the node
1723
+ * @example Align.Start, Align.Center, Align.End
1724
+ */
1725
+ readonly align: Align$1;
1726
+ /** Offset the toolbar from the node */
1727
+ readonly offset: number;
1728
+ /** If true, node toolbar is visible even if node is not selected */
1729
+ readonly isVisible: boolean;
1730
+ /** Style of the toolbar */
1731
+ readonly style: Omit<JSX.CSSProperties, "z-index" | "position" | "transform">;
1732
+ };
1733
+ /** Toolbar attached to a node, rendered above the graph so it does not scale with zoom. */
1734
+ declare const NodeToolbar: ParentComponent<Partial<NodeToolbarProps>>;
1735
+ //#endregion
1736
+ //#region src/types/system.d.ts
1737
+ /** Alignment of an attached element (e.g. a toolbar) along its side: 'start' | 'center' | 'end'. */
1738
+ type Align = Align$1;
1739
+ /** Configurable UI strings and ARIA descriptions (localization / a11y overrides). */
1740
+ type AriaLabelConfig = AriaLabelConfig$1;
1741
+ /** Options controlling bezier edge path curvature. */
1742
+ type BezierPathOptions = BezierPathOptions$1;
1743
+ /** A rectangle expressed as top-left position plus bottom-right extent. */
1744
+ type Box = Box$1;
1745
+ /** Color scheme for the flow: an explicit class or 'system' (media-query resolved). */
1746
+ type ColorMode = ColorMode$1;
1747
+ /** A resolved color scheme class: 'light' | 'dark'. */
1748
+ type ColorModeClass = ColorModeClass$1;
1749
+ /** A width/height pair. */
1750
+ type Dimensions = Dimensions$1;
1751
+ /** An edge marker reference: a marker type string or a full `EdgeMarker` config. */
1752
+ type EdgeMarkerType = EdgeMarkerType$1;
1753
+ /** Options for fitting the viewport to a set of bounds. */
1754
+ type FitBoundsOptions = FitBoundsOptions$1;
1755
+ /** Parameters accepted by `getBezierPath`. */
1756
+ type GetBezierPathParams = GetBezierPathParams$1;
1757
+ /** Parameters accepted by `getSmoothStepPath`. */
1758
+ type GetSmoothStepPathParams = GetSmoothStepPathParams$1;
1759
+ /** Parameters accepted by `getStraightPath`. */
1760
+ type GetStraightPathParams = GetStraightPathParams$1;
1761
+ /** Predicate deciding whether a pending connection may become an edge. */
1762
+ type IsValidConnection<EdgeType extends EdgeBase = EdgeBase> = IsValidConnection$1<EdgeType>;
1763
+ /** Handler called when a connection successfully completes. */
1764
+ type OnConnect = OnConnect$1;
1765
+ /** Handler called when a connection gesture ends (whether or not an edge was made). */
1766
+ type OnConnectEnd<NodeType extends NodeBase = NodeBase> = OnConnectEnd$1<NodeType>;
1767
+ /** Handler called when a user starts dragging a connection from a handle. */
1768
+ type OnConnectStart = OnConnectStart$1;
1769
+ /** The handle a connection gesture started from. */
1770
+ type OnConnectStartParams = OnConnectStartParams$1;
1771
+ /** Handler for internal, non-fatal flow errors (logged instead of thrown). */
1772
+ type OnError = OnError$1;
1773
+ /** Handler called when the user starts panning or zooming the viewport. */
1774
+ type OnMoveStart = OnMove$1;
1775
+ /** Handler called when the user stops panning or zooming the viewport. */
1776
+ type OnMoveEnd = OnMove$1;
1777
+ /** Handler called after an edge has been reconnected to a different handle. */
1778
+ type OnReconnect<EdgeType extends EdgeBase = EdgeBase> = OnReconnect$1<EdgeType>;
1779
+ /** Handler called when an edge reconnection gesture ends. */
1780
+ type OnReconnectEnd<NodeType extends NodeBase = NodeBase, EdgeType extends EdgeBase = EdgeBase> = OnReconnectEnd$1<NodeType, EdgeType>;
1781
+ /** Handler called when the user starts dragging an edge end off its handle. */
1782
+ type OnReconnectStart<EdgeType extends EdgeBase = EdgeBase> = OnReconnectStart$1<EdgeType>;
1783
+ /** Handler called while a node is being resized. */
1784
+ type OnResize = OnResize$1;
1785
+ /** Handler called when a node resize gesture ends. */
1786
+ type OnResizeEnd = OnResizeEnd$1;
1787
+ /** Handler called when a node resize gesture starts. */
1788
+ type OnResizeStart = OnResizeStart$1;
1789
+ /** Handler called while a selection of nodes is dragged. */
1790
+ type OnSelectionDrag<NodeType extends NodeBase = NodeBase> = OnSelectionDrag$1<NodeType>;
1791
+ /** Pro/attribution options (`hideAttribution`). */
1792
+ type ProOptions = ProOptions$1;
1793
+ /** A rectangle: position plus dimensions. */
1794
+ type Rect = Rect$1;
1795
+ /** The drag event delivered to resize handlers. */
1796
+ type ResizeDragEvent = ResizeDragEvent$1;
1797
+ /** Geometry of a resize step: position and dimensions. */
1798
+ type ResizeParams = ResizeParams$1;
1799
+ /** Resize geometry plus the direction of the drag. */
1800
+ type ResizeParamsWithDirection = ResizeParamsWithDirection$1;
1801
+ /** The user-drawn selection rectangle in flow coordinates. */
1802
+ type SelectionRect = SelectionRect$1;
1803
+ /** Options for `setCenter`: zoom and transition behavior. */
1804
+ type SetCenterOptions = SetCenterOptions$1;
1805
+ /** Options controlling smooth-step edge path geometry. */
1806
+ type SmoothStepPathOptions = SmoothStepPathOptions$1;
1807
+ /** Grid nodes snap to while dragging: `[x, y]` step sizes. */
1808
+ type SnapGrid = SnapGrid$1;
1809
+ /** The viewport transform as `[translateX, translateY, zoom]`. */
1810
+ type Transform = Transform$1;
1811
+ /** Common options for viewport helper functions (e.g. transition duration). */
1812
+ type ViewportHelperFunctionOptions = ViewportHelperFunctionOptions$1;
1813
+ /** An x/y position with a z-index. */
1814
+ type XYZPosition = XYZPosition$1;
1815
+ /**
1816
+ * How drag-selection decides membership: 'full' requires nodes to be fully
1817
+ * inside the selection box, 'partial' selects on any overlap.
1818
+ */
1819
+ declare const SelectionMode: typeof SelectionMode$1;
1820
+ /** See {@link SelectionMode}. */
1821
+ type SelectionMode = SelectionMode$1;
1822
+ /** Returns the center `[x, y]` of a straight edge between two points. */
1823
+ declare const getEdgeCenter: typeof getEdgeCenter$1;
1824
+ /** Returns the label center and offsets for a bezier edge. */
1825
+ declare const getBezierEdgeCenter: typeof getBezierEdgeCenter$1;
1826
+ //#endregion
1827
+ export { Align, AriaLabelConfig, Background, type BackgroundProps, type BackgroundVariant, BaseEdge, BezierEdge, BezierEdgeInternal, type BezierEdgeProps, BezierPathOptions, Box, type BuiltInEdge, type BuiltInNode, type BuiltInNodeTypes, ColorMode, ColorModeClass, type Connection, ConnectionData, ConnectionLine, ConnectionLineComponentProps, ConnectionLineType, ConnectionMode, type ConnectionsRecord, ControlButton, type ControlLinePosition, type ControlPosition, Controls, type CoordinateExtent, type DefaultEdgeOptions, DefaultNode, DeleteEvents, Dimensions, type Edge, EdgeConnection, EdgeEvents, EdgeLabel, EdgeLabelRenderer, type EdgeMarker, EdgeMarkerType, type EdgeProps, EdgeReconnectAnchor, EdgeReconnectEvents, EdgeRenderer, EdgeToolbar, EdgeToolbarProps, type EdgeTypes, EdgeWrapper, type FitBounds, FitBoundsOptions, FitViewOptions, type FlowCommands, type FlowSelection, type FlowState, GetBezierPathParams, GetSmoothStepPathParams, GetStraightPathParams, GroupNode, Handle, type HandleConnection, InputNode, type InternalNode, IsValidConnection, KeyDefinition, KeyDefinitionObject, KeyModifier, Marker, MarkerDefinition, MarkerType, MiniMap, type Node, type NodeConnection, NodeEvents, NodeGraph, type NodeOrigin, type NodeProps, NodeRenderer, NodeResizer, NodeSelection, NodeSelectionEvents, NodeToolbar, NodeToolbarProps, type NodeTypes, NodeWrapper, OnBeforeDelete, OnBeforeEdgeConnect, OnBeforeReconnect, OnConnect, OnConnectEnd, OnConnectStart, OnConnectStartParams, OnDelete, OnEdgeConnect, OnEdgeCreate, OnError, type OnMove, OnMoveEnd, OnMoveStart, OnReconnect, OnReconnectEnd, OnReconnectStart, OnResize, OnResizeEnd, OnResizeStart, OnSelectionChange, OnSelectionDrag, OutputNode, PanOnScrollMode, Pane, PaneEvents, Panel, type PanelPosition, Position, ProOptions, Rect, ResizeControl, ResizeControlVariant, ResizeDragEvent, ResizeParams, ResizeParamsWithDirection, Selection, SelectionMode, SelectionRect, type SetCenter, SetCenterOptions, type SetViewport, ShortcutModifier, ShortcutModifierDefinition, type ShouldResize, SmoothStepEdge, SmoothStepEdgeInternal, type SmoothStepEdgeProps, SmoothStepPathOptions, SnapGrid, SolidFlow, type SolidFlowInitialProps, type SolidFlowProps, SolidFlowProvider, StepEdge, StepEdgeInternal, type StepEdgeProps, StraightEdge, StraightEdgeInternal, type StraightEdgeProps, Transform, UseSolidFlowReturn, Viewport, ViewportHelperFunctionOptions, ViewportPortal, type XYPosition, XYZPosition, Zoom, addEdge, connectionKey, createEdgeStore, createNodeStore, getBezierEdgeCenter, getBezierPath, getConnectedEdges, getEdgeCenter, getIncomers, getNodesBounds, getOutgoers, getSmoothStepPath, getStraightPath, getViewportForBounds, useColorMode, useConnection, useEdges, useHandleEdgeSelect, useInternalNode, useNodeConnections, useNodes, useNodesData, useNodesInitialized, useSolidFlow, useUpdateNodeInternals, useViewport, useViewportInitialized };