{ "$schema": "https://ui.shadcn.com/schema/registry-item.json", "name": "shimmer-button", "title": "Shimmer Button", "description": "A shimmering button component", "dependencies": [ "framer-motion" ], "files": [ { "path": "registry/pioneerui/shimmer-button.tsx", "content": "\"use client\"\n\nimport React, { type CSSProperties, type ComponentPropsWithoutRef } from \"react\"\nimport { cn } from \"@/lib/utils\"\nimport { Loader2 } from \"lucide-react\"\n\nexport interface ShimmerButtonProps extends ComponentPropsWithoutRef<\"button\"> {\n shimmerColor?: string\n shimmerSize?: string\n borderRadius?: string\n shimmerDuration?: string\n background?: string\n className?: string\n children?: React.ReactNode\n icon?: React.ReactNode\n isLoading?: boolean\n}\n\nexport const ShimmerButton = React.forwardRef(\n (\n {\n shimmerColor = \"#ffffff\",\n shimmerSize = \"0.05em\",\n shimmerDuration = \"3s\",\n borderRadius = \"100px\",\n background = \"rgba(0, 0, 0, 1)\",\n className,\n children,\n icon,\n isLoading = false,\n disabled,\n ...props\n },\n ref,\n ) => {\n return (\n \n {/* spark container */}\n
\n {/* spark */}\n
\n {/* spark before */}\n
\n
\n
\n\n {isLoading ? (\n \n ) : icon ? (\n {icon}\n ) : null}\n {children}\n\n {/* Highlight */}\n \n\n {/* backdrop */}\n
\n \n )\n },\n)\n\nShimmerButton.displayName = \"ShimmerButton\"\n\n", "type": "registry:ui", "target": "components/pioneerui/shimmer-button.tsx" } ], "type": "registry:ui" }