--- interface Props { animation: 'fade' | 'scale' | 'slide-up' | 'slide-down' | 'slide-left' | 'slide-right' | 'pulse'; duration?: number; // in milliseconds delay?: number; // in milliseconds easing?: string; // CSS easing function class?: string; tag?: string; // HTML tag to use } const { animation, duration = 300, delay = 0, easing = 'ease', class: className = '', tag: Tag = 'div' } = Astro.props; const animationClasses = { 'fade': 'animate-fade', 'scale': 'animate-scale', 'slide-up': 'animate-slide-up', 'slide-down': 'animate-slide-down', 'slide-left': 'animate-slide-left', 'slide-right': 'animate-slide-right', 'pulse': 'animate-pulse' }; const animationClass = animationClasses[animation] || ''; ---