import React from 'react'; interface ButtonProps { children: React.ReactNode; variant?: 'primary' | 'secondary' | 'outline' | 'ghost'; size?: 'small' | 'medium' | 'large'; disabled?: boolean; loading?: boolean; onClick?: () => void; type?: 'button' | 'submit' | 'reset'; className?: string; } /** * Button Atom - Reusable button component * Example atom component - feel free to modify or delete */ export const Button: React.FC = ({ children, variant = 'primary', size = 'medium', disabled = false, loading = false, onClick, type = 'button', className = '' }) => { const baseClasses = 'font-medium rounded-lg transition-colors focus:outline-none focus:ring-2'; const variantClasses = { primary: 'bg-blue-600 text-white hover:bg-blue-700 focus:ring-blue-500', secondary: 'bg-gray-600 text-white hover:bg-gray-700 focus:ring-gray-500', outline: 'border-2 border-blue-600 text-blue-600 hover:bg-blue-50 focus:ring-blue-500', ghost: 'text-blue-600 hover:bg-blue-50 focus:ring-blue-500' }; const sizeClasses = { small: 'px-3 py-1.5 text-sm', medium: 'px-4 py-2 text-base', large: 'px-6 py-3 text-lg' }; const classes = [ baseClasses, variantClasses[variant], sizeClasses[size], disabled || loading ? 'opacity-50 cursor-not-allowed' : 'cursor-pointer', className ].join(' '); return ( ); };