'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 AlarmClockProps = IconProps; const animations = { default: { group: { initial: { x: 0, y: 0, }, animate: { x: [ 0, '2%', '-2%', '2%', '-2%', '2%', '-2%', '2%', '-2%', '2%', '-2%', 0, ], y: [ 0, '-5%', '-5%', '-5%', '-5%', '-5%', '-5%', '-5%', '-5%', '-5%', 0, ], transition: { ease: 'easeInOut', duration: 0.6, }, }, }, circle: {}, line1: { initial: { rotate: 0, }, animate: { transformOrigin: 'bottom left', rotate: [0, 5, -5, 5, -5, 5, -5, 5, -5, 5, -5, 0], transition: { ease: 'easeInOut', duration: 0.6 }, }, }, line2: { initial: { rotate: 0, }, animate: { transformOrigin: 'top left', rotate: [0, 5, -5, 5, -5, 5, -5, 5, -5, 5, -5, 0], transition: { ease: 'easeInOut', duration: 0.6 }, }, }, path1: { initial: { x: 0, }, animate: { x: [0, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 0], transition: { ease: 'easeInOut', duration: 0.6 }, }, }, path2: { initial: { x: 0, }, animate: { x: [0, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 0], transition: { ease: 'easeInOut', duration: 0.6 }, }, }, path3: {}, path4: {}, } satisfies Record, 'default-loop': { group: { initial: { x: 0, y: 0, }, animate: { x: ['2%', '-2%', '2%', '-2%', '2%', '-2%', '2%', '-2%', '2%', '-2%'], y: '-5%', transition: { duration: 0.5, x: { repeat: Infinity, repeatType: 'loop', }, y: { duration: 0.2, }, }, }, }, circle: {}, line1: { initial: { rotate: 0, }, animate: { transformOrigin: 'bottom left', rotate: [0, 10, -10, 10, -10, 10, -10, 10, -10, 10, -10, 0], transition: { duration: 0.5, repeat: Infinity, repeatType: 'loop' }, }, }, line2: { initial: { rotate: 0, }, animate: { transformOrigin: 'top left', rotate: [0, 10, -10, 10, -10, 10, -10, 10, -10, 10, -10, 0], transition: { duration: 0.5, repeat: Infinity, repeatType: 'loop' }, }, }, path1: { initial: { x: 0, }, animate: { x: [0, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 0], transition: { duration: 0.5, repeat: Infinity, repeatType: 'loop' }, }, }, path2: { initial: { x: 0, }, animate: { x: [0, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 0], transition: { duration: 0.5, repeat: Infinity, repeatType: 'loop' }, }, }, path3: {}, path4: {}, } satisfies Record, } as const; function IconComponent({ size, ...props }: AlarmClockProps) { const { controls } = useAnimateIconContext(); const variants = getVariants(animations); return ( ); } function AlarmClock(props: AlarmClockProps) { return ; } export { animations, AlarmClock, AlarmClock as AlarmClockIcon, type AlarmClockProps, type AlarmClockProps as AlarmClockIconProps, };