// Spring configuration for smooth, natural animations
const springConfig = {
    type: 'spring',
    stiffness: 300,
    damping: 30,
    mass: 1,
};
const fastSpringConfig = {
    type: 'spring',
    stiffness: 400,
    damping: 25,
    mass: 0.8,
};
const layoutSpringConfig = {
    type: 'spring',
    stiffness: 200,
    damping: 25,
    mass: 1,
};
// Drag state animations
const dragAnimations = {
    initial: {
        opacity: 1,
        scale: 1,
        zIndex: 1,
        rotate: 0,
    },
    dragging: {
        opacity: 0.9,
        scale: 1.02,
        zIndex: 10,
        rotate: 2,
        transition: springConfig,
    },
    idle: {
        opacity: 1,
        scale: 1,
        zIndex: 1,
        rotate: 0,
        transition: springConfig,
    },
};
// Layout animation configuration
const layoutAnimations = {
    layout: {
        ...layoutSpringConfig,
        // Slightly slower for smooth settling effect
        stiffness: 180,
        damping: 28,
    }};
// Drag handle animations
const dragHandleAnimations = {
    hover: {
        scale: 1.1,
        transition: fastSpringConfig,
    },
    tap: {
        scale: 0.9,
        transition: {
            ...fastSpringConfig,
            stiffness: 500,
        },
    },
};
// Animation variants for different states
const itemVariants = {
    initial: dragAnimations.initial,
    dragging: dragAnimations.dragging,
    idle: dragAnimations.idle,
};
// Export configuration objects
const sortableAnimations = {
    layout: layoutAnimations,
    dragHandle: dragHandleAnimations,
    variants: itemVariants,
};

export { dragAnimations, dragHandleAnimations, itemVariants, layoutAnimations, sortableAnimations };
