'use client'; import * as React from 'react'; import { motion, type Variants } from 'motion/react'; import { getVariants, useAnimateIconContext, IconWrapper, type IconProps, } from '@/registry/icons/icon'; type MessageSquareMoreProps = IconProps; const animations = { default: { group: { initial: { rotate: 0, }, animate: { transformOrigin: 'bottom left', rotate: [0, 8, -8, 2, 0], transition: { ease: 'easeInOut', duration: 0.8, times: [0, 0.4, 0.6, 0.8, 1], }, }, }, path: {}, line1: { initial: { y1: 10, y2: 10, transition: { ease: 'easeInOut', duration: 0.6 }, }, animate: { y1: [10, 8.5, 10], y2: [10, 11.5, 10], transition: { ease: 'easeInOut', duration: 0.6, delay: 0.2 }, }, }, line2: { initial: { y1: 10, y2: 10, transition: { ease: 'easeInOut', duration: 0.6 }, }, animate: { y1: [10, 8.5, 10], y2: [10, 11.5, 10], transition: { ease: 'easeInOut', duration: 0.6, delay: 0.1 }, }, }, line3: { initial: { y1: 10, y2: 10, transition: { ease: 'easeInOut', duration: 0.6 }, }, animate: { y1: [10, 8.5, 10], y2: [10, 11.5, 10], transition: { ease: 'easeInOut', duration: 0.6 }, }, }, } satisfies Record, pulse: { group: {}, path: {}, line1: { initial: { scale: 1, }, animate: { scale: [1, 1.5, 1], transition: { duration: 1, delay: 0.4, repeat: Infinity, ease: 'easeInOut', }, }, }, line2: { initial: { scale: 1, }, animate: { scale: [1, 1.5, 1], transition: { duration: 1, delay: 0.2, repeat: Infinity, ease: 'easeInOut', }, }, }, line3: { initial: { scale: 1, }, animate: { scale: [1, 1.5, 1], transition: { duration: 1, repeat: Infinity, ease: 'easeInOut', }, }, }, } satisfies Record, jump: { group: {}, path: {}, line1: { initial: { y: 0, }, animate: { y: [-0.75, 0.75], transition: { duration: 0.8, delay: 0.4, repeat: Infinity, repeatType: 'mirror', ease: 'easeInOut', }, }, }, line2: { initial: { y: 0, }, animate: { y: [-0.75, 0.75], transition: { duration: 0.8, delay: 0.2, repeat: Infinity, repeatType: 'mirror', ease: 'easeInOut', }, }, }, line3: { initial: { y: 0, }, animate: { y: [-0.75, 0.75], transition: { duration: 0.8, repeat: Infinity, repeatType: 'mirror', ease: 'easeInOut', }, }, }, } satisfies Record, } as const; function IconComponent({ size, ...props }: MessageSquareMoreProps) { const { controls } = useAnimateIconContext(); const variants = getVariants(animations); return ( ); } function MessageSquareMore(props: MessageSquareMoreProps) { return ; } export { animations, MessageSquareMore, MessageSquareMore as MessageSquareMoreIcon, type MessageSquareMoreProps, type MessageSquareMoreProps as MessageSquareMoreIconProps, };