{ "$schema": "https://ui.shadcn.com/schema/registry-item.json", "name": "logo-slider", "type": "registry:ui", "dependencies": [], "files": [ { "path": "components/ui/logo-slider.tsx", "content": "\"use client\";\r\n\r\nimport * as React from \"react\";\r\nimport { cn } from \"@/lib/utils\";\r\n\r\n/* =============================================================================\r\n LogoSlider Component\r\n \r\n A smooth, infinite marquee/slider component for displaying logos.\r\n Uses Tailwind CSS where possible, raw CSS only for animations/masks.\r\n============================================================================= */\r\n\r\nexport interface LogoSliderProps {\r\n /** Array of React nodes (logos, icons, images) to display */\r\n logos: React.ReactNode[];\r\n /** Animation speed - higher = slower (default: 60) */\r\n speed?: number;\r\n /** Scroll direction. Default: \"left\" */\r\n direction?: \"left\" | \"right\";\r\n /** Whether to show blur overlays on edges. Default: true */\r\n showBlur?: boolean;\r\n /** Number of blur layers for progressive effect. Default: 8 */\r\n blurLayers?: number;\r\n /** Blur intensity multiplier. Default: 1 */\r\n blurIntensity?: number;\r\n /** Additional CSS classes */\r\n className?: string;\r\n /** Whether to pause animation on hover. Default: false */\r\n pauseOnHover?: boolean;\r\n}\r\n\r\n/**\r\n * LogoSlider Component\r\n *\r\n * A beautiful infinite marquee for showcasing logos, partners, or any content.\r\n * Uses per-item CSS animations for optimal performance.\r\n */\r\n\r\n\r\nexport const LogoSlider = ({\r\n logos,\r\n speed = 60,\r\n direction = \"left\",\r\n showBlur = true,\r\n blurLayers = 8,\r\n blurIntensity = 1,\r\n className,\r\n pauseOnHover = false,\r\n}: LogoSliderProps) => {\r\n return (\r\n