| 19 | }; |
| 20 | |
| 21 | export interface LogoLoopProps { |
| 22 | logos: LogoItem[]; |
| 23 | speed?: number; |
| 24 | direction?: 'left' | 'right' | 'up' | 'down'; |
| 25 | width?: number | string; |
| 26 | logoHeight?: number; |
| 27 | gap?: number; |
| 28 | pauseOnHover?: boolean; |
| 29 | hoverSpeed?: number; |
| 30 | fadeOut?: boolean; |
| 31 | fadeOutColor?: string; |
| 32 | scaleOnHover?: boolean; |
| 33 | renderItem?: (item: LogoItem, key: React.Key) => React.ReactNode; |
| 34 | ariaLabel?: string; |
| 35 | className?: string; |
| 36 | style?: React.CSSProperties; |
| 37 | } |
| 38 | |
| 39 | const ANIMATION_CONFIG = { |
| 40 | SMOOTH_TAU: 0.25, |
nothing calls this directly
no outgoing calls
no test coverage detected