import { motion } from 'framer-motion'; import { cn } from '@/lib/utils'; export function Button({ children, variant = 'primary', size = 'md', className, loading, icon: Icon, ...props }) { const variants = { primary: 'bg-cyan-500 hover:bg-cyan-400 text-black font-semibold shadow-[0_0_20px_rgba(0,212,255,0.3)] hover:shadow-[0_0_30px_rgba(0,212,255,0.5)]', secondary: 'bg-white/10 hover:bg-white/15 text-white border border-white/20', danger: 'bg-red-500/20 hover:bg-red-500/30 text-red-400 border border-red-500/30', ghost: 'hover:bg-white/5 text-white/70 hover:text-white', outline: 'border border-cyan-500/50 text-cyan-400 hover:bg-cyan-500/10', }; const sizes = { sm: 'h-7 px-3 text-xs gap-1.5', md: 'h-9 px-4 text-sm gap-2', lg: 'h-11 px-6 text-base gap-2', icon: 'h-9 w-9 p-0', }; return ( {loading ? ( ) : Icon ? ( ) : null} {size !== 'icon' && children} ); }