/** * @fileoverview Animated connection beam between two DOM elements. * @author Saasflareâ„¢ * Draws an SVG path between two ref-targeted elements with a pulsing * gradient animation. Perfect for architecture/integration diagrams. * @module packages/ui/components/ui/animated/beam * @package ui * * @component * @example * import { AnimatedBeam } from '@saasflare/ui'; * const containerRef = useRef(null); * const fromRef = useRef(null); * const toRef = useRef(null); * *
*
Source
*
Target
* *
*/ import { type RefObject } from "react"; import { type SaasflareComponentProps } from "../../../providers"; /** Props for the AnimatedBeam component. */ export interface AnimatedBeamProps extends SaasflareComponentProps { /** Ref to the container element (provides coordinate space). */ containerRef: RefObject; /** Ref to the source element. */ fromRef: RefObject; /** Ref to the target element. */ toRef: RefObject; /** Beam stroke color. Default: `"var(--primary)"` */ color?: string; /** Beam stroke width. Default: `2` */ strokeWidth?: number; /** Curvature offset for the bezier curve. Default: `50` */ curvature?: number; /** Pulse animation duration in seconds. Default: `3` */ duration?: number; /** Additional class names for the SVG. */ className?: string; } /** * Animated SVG beam connecting two DOM elements. * * - Calculates path dynamically from element positions * - Uses a gradient dash animation for the pulse effect * - Recalculates on resize * - Renders a static line when `animated` is false (prop or provider) or * reduced motion is preferred * * @component * @package ui */ export declare function AnimatedBeam({ containerRef, fromRef, toRef, color, strokeWidth, curvature, duration, className, surface, radius, animated, iconWeight, }: AnimatedBeamProps): import("react/jsx-runtime").JSX.Element | null;