@szum-tech/design-system
Version:
Szum-Tech design system with tailwindcss support
41 lines (37 loc) • 1.62 kB
TypeScript
import * as React from 'react';
import { MotionProps, UseInViewOptions } from 'motion/react';
type TypingTextAnimationVariant = "fadeIn" | "blurIn" | "blurInUp" | "blurInDown" | "slideUp" | "slideDown" | "slideLeft" | "slideRight" | "scaleUp" | "scaleDown";
type TypingTextProps = Omit<MotionProps, "children"> & {
/** Text to animate */
text?: string;
/** Array of texts to cycle through */
texts?: string[];
/** Typing speed in milliseconds */
speed?: number;
/** Delay before starting animation */
delay?: number;
/** Whether to show cursor */
showCursor?: boolean;
/** Cursor character */
cursor?: string;
/** Cursor className */
cursorClassName?: string;
/** Whether to loop through texts */
loop?: boolean;
/** Pause duration between loops */
pauseDuration?: number;
/** Custom className */
className?: string;
/** Callback when typing completes */
onComplete?: () => void;
/** Whether to start animation when component enters viewport */
startOnView?: boolean;
/** Whether to animate only once */
once?: boolean;
/** The animation preset to use */
animation?: TypingTextAnimationVariant;
/** Margin for in-view detection (rootMargin) */
inViewMargin?: UseInViewOptions["margin"];
};
declare function TypingText({ text, texts, speed, delay, showCursor, cursorClassName, cursor, loop, pauseDuration, className, onComplete, startOnView, once, animation, inViewMargin, ...props }: TypingTextProps): React.JSX.Element;
export { TypingText, type TypingTextAnimationVariant, type TypingTextProps };