interface DogIconProps extends React.SVGProps { disabled?: boolean; } const DogIcon = ({ disabled = false, stroke, ...props }: DogIconProps) => { const fillColor = disabled ? "#71717A" : stroke || "#773EFF"; // CSS for the stepped animation states const animationCSS = ` .state1 { animation: showDogState1 600ms infinite; } .state2 { animation: showDogState2 600ms infinite; } .state3 { animation: showDogState3 600ms infinite; } .state4 { animation: showDogState4 600ms infinite; } @keyframes showDogState1 { 0%, 24.99% { opacity: 1; } 25%, 100% { opacity: 0; } } @keyframes showDogState2 { 0%, 24.99% { opacity: 0; } 25%, 49.99% { opacity: 1; } 50%, 100% { opacity: 0; } } @keyframes showDogState3 { 0%, 49.99% { opacity: 0; } 50%, 74.99% { opacity: 1; } 75%, 100% { opacity: 0; } } @keyframes showDogState4 { 0%, 74.99% { opacity: 0; } 75%, 100% { opacity: 1; } } `; return disabled ? ( Dog Icon ) : ( Dog Icon {/* State 1 - Add 14px left padding to align with state 3 */} {/* State 2 - Add 14px left padding to align with state 3 */} {/* State 3 - Already properly positioned */} {/* State 4 - Add 14px left padding to align with state 3 */} ); }; export default DogIcon;