{ "$schema": "https://ui.shadcn.com/schema/registry-item.json", "name": "animated-button", "type": "registry:ui", "dependencies": [ "framer-motion" ], "files": [ { "path": "components/ui/animated-button.tsx", "content": "'use client'\r\n\r\nimport React from 'react'\r\nimport { motion, MotionProps } from 'framer-motion'\r\nimport { cn } from '@/lib/utils'\r\n\r\ntype AnimatedButtonProps = React.ButtonHTMLAttributes & MotionProps & {\r\n children?: React.ReactNode\r\n as?: any\r\n}\r\n\r\n/**\r\n * AnimatedButton\r\n * - theme-aware: uses Tailwind `dark:` classes so it works in both light and dark mode\r\n * - accepts all native button props (onClick, className, type, etc.)\r\n */\r\nconst AnimatedButton: React.FC = ({\r\n children = 'Browse Components',\r\n className = '',\r\n as = 'button',\r\n ...rest\r\n}) => {\r\n const Component = (motion as any)[as] || motion.button\r\n\r\n return (\r\n \r\n {/* Text with shine mask */}\r\n \r\n {children}\r\n \r\n\r\n {/* Border shine effect uses the --shine variable so it adapts to theme */}\r\n \r\n \r\n )\r\n}\r\n\r\nexport default AnimatedButton\r\n", "type": "registry:ui", "target": "components/ui/animated-button.tsx" } ] }