/**
 * Get Tabs trigger animation variants based on reduced motion preference
 * Provides subtle micro-interactions for enhanced UX while respecting accessibility
 */
const getTabsTriggerVariants = (shouldReduceMotion) => (shouldReduceMotion !== null && shouldReduceMotion !== void 0 ? shouldReduceMotion : false)
    ? undefined
    : {
        tap: {
            scale: 0.98,
            transition: {
                duration: 0.1,
                type: "spring",
                stiffness: 400,
                damping: 12,
            },
        },
        hover: {
            scale: 1.02,
            transition: {
                duration: 0.2,
                type: "spring",
                stiffness: 300,
                damping: 15,
            },
        },
    };
/**
 * Get underline transition configuration based on reduced motion preference
 * Uses spring animation for natural, fluid movement between tabs
 */
const getUnderlineTransition = (shouldReduceMotion) => {
    if (shouldReduceMotion !== null && shouldReduceMotion !== void 0 ? shouldReduceMotion : false) {
        // Reduced motion: instant transition
        return {
            duration: 0,
        };
    }
    // Full motion: smooth spring transition
    return {
        type: "spring",
        stiffness: 300,
        damping: 30,
        mass: 0.8,
        restDelta: 0.1,
    };
};
/**
 * Get TabsBody animation variants for directional fade animations
 * Provides smooth fade-in from bottom and fade-out to top transitions
 */
const getTabsBodyVariants = (shouldReduceMotion) => {
    if (shouldReduceMotion !== null && shouldReduceMotion !== void 0 ? shouldReduceMotion : false) {
        // Reduced motion: no animation variants
        return undefined;
    }
    // Full motion: directional fade animations
    return {
        initial: {
            opacity: 0,
            y: 10, // Start below natural position
        },
        animate: {
            opacity: 1,
            y: 0, // Move to natural position
            transition: {
                duration: 0.3,
                type: "spring",
                stiffness: 200,
                damping: 25,
                mass: 0.8,
            },
        },
        exit: {
            opacity: 0,
            y: -10, // Exit slightly upward
            transition: {
                duration: 0.2,
                ease: "easeIn",
            },
        },
    };
};

export { getTabsBodyVariants, getTabsTriggerVariants, getUnderlineTransition };
