const smoothEase = [0.65, 0, 0.35, 1];
/**
 * Checkmark SVG path draw-on animation
 * Animates pathLength from 0 → 1 for a smooth draw effect
 */
const checkmarkVariants = {
    unchecked: {
        pathLength: 0,
        opacity: 0,
        transition: {
            pathLength: { duration: 0.15, ease: smoothEase },
            opacity: { duration: 0.1, ease: "easeOut" },
        },
    },
    checked: {
        pathLength: 1,
        opacity: 1,
        transition: {
            pathLength: { duration: 0.2, ease: smoothEase },
            opacity: { duration: 0.05, ease: "easeOut" },
        },
    },
};
/**
 * Indeterminate dash draw-on animation
 */
const indeterminateVariants = {
    unchecked: {
        pathLength: 0,
        opacity: 0,
        transition: {
            pathLength: { duration: 0.1, ease: smoothEase },
            opacity: { duration: 0.08, ease: "easeOut" },
        },
    },
    checked: {
        pathLength: 1,
        opacity: 1,
        transition: {
            pathLength: { duration: 0.15, ease: smoothEase },
            opacity: { duration: 0.05, ease: "easeOut" },
        },
    },
};
/**
 * Reduced motion variants — instant opacity toggle, no path draw
 */
const reducedMotionVariants = {
    unchecked: { opacity: 0 },
    checked: { opacity: 1 },
};

export { checkmarkVariants, indeterminateVariants, reducedMotionVariants };
