"use client";
import { motion, useReducedMotion, type Variants } from "framer-motion";
export interface IconAccessibilityProps extends React.SVGProps<SVGSVGElement> {
size?: number;
strokeWidth?: number;
}
const limbVariants: Variants = {
rest: { rotate: 0 },
hover: {
rotate: [0, -5, 5, 0],
transition: {
duration: 1.5,
repeat: Infinity,
ease: "easeInOut",
},
},
};
const headVariants: Variants = {
rest: { y: 0 },
hover: {
y: [0, -0.5, 0],
transition: {
duration: 1.5,
repeat: Infinity,
ease: "easeInOut",
},
},
};
export function IconAccessibility({
size = 24,
strokeWidth = 2,
className,
...props
}: IconAccessibilityProps) {
const { onAnimationStart, onAnimationEnd, onDragStart, onDrag, onDragEnd, ...restOptions } = props;
const prefersReducedMotion = useReducedMotion();
return (
<motion.svg
xmlns="http://www.w3.org/2000/svg"
width={size}
height={size}
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
strokeWidth={strokeWidth}
strokeLinecap="round"
strokeLinejoin="round"
initial={prefersReducedMotion ? false : "rest"}
whileHover={prefersReducedMotion ? undefined : "hover"}
whileTap={prefersReducedMotion ? undefined : "tap"}
className={`outline-none focus:outline-none focus:ring-0 select-none ${className ?? ""}`.trim()}
style={{ overflow: "visible" }}
{...restOptions}
>
<motion.circle
cx="16" cy="4" r="1"
variants={headVariants}
/>
<path d="M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z" />
</motion.svg>
);
}