UNPKG

react-archer

Version:

Draw arrows between DOM elements in React

65 lines (64 loc) 2.19 kB
/// <reference types="react" /> import { ShapeType, ValidLineStyles, SourceToTargetType } from '../types'; import { ArcherContainerContextType } from './ArcherContainer.context'; declare type FunctionChild = (context: React.Context<ArcherContainerContextType | null>) => React.ReactNode; export declare type ArcherContainerProps = { /** * A color string * * @example '#ff0000' */ strokeColor?: string; /** * A size in px */ strokeWidth?: number; /** * A string representing an array of sizes * See https://www.w3schools.com/graphics/svg_stroking.asp */ strokeDasharray?: string; style?: React.CSSProperties; /** * Style of the SVG container element. Useful if you want to add a z-index to your SVG container to draw the arrows under your elements, for example. */ svgContainerStyle?: React.CSSProperties; className?: string; /** * Optional number for space between element and start/end of stroke */ offset?: number; /** * Customize the end shape of the line. Defaults to a traditional "arrow" (triangle) shape. */ endShape?: ShapeType; /** * Set this to true of you want to render a marker at the start of the line */ startMarker?: boolean; /** * Set this to false of you do not want to render a marker at the end of the line */ endMarker?: boolean; /** * Define how the line is drawn, grid for angles, straight for direct line and curve for curves */ lineStyle?: ValidLineStyles; /** * Set this to true if you want angles instead of curves */ noCurves?: boolean; children?: React.ReactNode | FunctionChild; }; export declare type ArcherContainerRef = { /** * Use this to recompute all the arrow positions. Useful if arrows do not properly rerender * after the viewport or some elements moved. */ refreshScreen: () => void; /** Only for internal testing purposes */ arrowMarkerUniquePrefix: string; }; export declare type ArcherContainerHandle = ArcherContainerRef; export declare type SourceToTargetsArrayType = SourceToTargetType[]; export {};