import React from 'react' import { motion } from 'framer-motion' const Button = ({ children, variant = 'primary', size = 'md', icon: Icon, onClick, disabled = false, loading = false, className = '', ...props }) => { const baseClasses = 'font-semibold rounded-xl transition-all flex items-center justify-center gap-2' const variants = { primary: 'bg-gradient-to-r from-primary-600 to-primary-700 text-white shadow-lg hover:shadow-xl', secondary: 'bg-white text-primary-700 border-2 border-primary-200 hover:bg-primary-50 hover:border-primary-300', success: 'bg-gradient-to-r from-green-600 to-emerald-700 text-white shadow-lg hover:shadow-xl', danger: 'bg-gradient-to-r from-red-600 to-pink-700 text-white shadow-lg hover:shadow-xl', ghost: 'bg-transparent text-slate-700 hover:bg-slate-100' } const sizes = { sm: 'px-4 py-2 text-sm', md: 'px-6 py-3', lg: 'px-8 py-4 text-lg' } const classes = `${baseClasses} ${variants[variant]} ${sizes[size]} ${className} ${ disabled || loading ? 'opacity-50 cursor-not-allowed' : '' }` return ( {loading ? (
) : Icon ? ( ) : null} {children}
) } export default Button