'use client'; import * as React from 'react'; import { motion, Variants } from 'motion/react'; import { getVariants, useAnimateIconContext, IconWrapper, type IconProps, } from '@/registry/icons/icon'; type PinProps = IconProps; const animations = { default: { group: { initial: { scale: 1, rotate: 0, x: 0, y: 0, transformOrigin: 'bottom center', }, animate: { scale: [1, 0.75, 1, 1], rotate: [0, 30, -15, 0], x: [0, 0, 0, 0], y: [0, -6, 0, 0], transformOrigin: 'bottom center', transition: { ease: 'easeInOut', duration: 1 }, }, }, line: {}, path: {}, } satisfies Record, wiggle: { group: { initial: { rotate: 0, transformOrigin: 'bottom center', }, animate: { rotate: [0, 15, -10, 0], transformOrigin: 'bottom center', transition: { ease: 'easeInOut', duration: 1 }, }, }, line: {}, path: {}, } satisfies Record, rotate: { group: { initial: { transform: 'rotate3d(0, 1, 0, 0deg)', perspective: 600, }, animate: { transform: 'rotate3d(0, 1, 0, 360deg)', perspective: 600, transition: { ease: 'easeInOut', duration: 0.7 }, }, }, line: {}, path: {}, } satisfies Record, } as const; function IconComponent({ size, ...props }: PinProps) { const { controls } = useAnimateIconContext(); const variants = getVariants(animations); return ( ); } function Pin(props: PinProps) { return ; } export { animations, Pin, Pin as PinIcon, type PinProps, type PinProps as PinIconProps, };