import * as React from 'react'; export interface ButtonProps extends React.ButtonHTMLAttributes { variant?: 'primary' | 'secondary' | 'outline' | 'ghost' | 'danger'; size?: 'sm' | 'md' | 'lg' | 'icon'; } export default function Button({ children, className = '', variant = 'primary', size = 'md', type = 'button', ...props }: ButtonProps) { // Styles for different variants const baseStyle = 'inline-flex items-center justify-center font-medium transition-all duration-200 rounded-full focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-neutral-900 disabled:opacity-50 disabled:pointer-events-none active:scale-[0.98] cursor-pointer'; const variants = { primary: 'bg-neutral-900 text-white hover:bg-neutral-800 border border-neutral-900 shadow-sm', secondary: 'bg-neutral-100 text-neutral-800 hover:bg-neutral-200 border border-transparent', outline: 'bg-white border border-neutral-200 text-neutral-700 hover:bg-neutral-50 hover:border-neutral-300', ghost: 'text-neutral-600 hover:bg-neutral-100 hover:text-neutral-900 border border-transparent', danger: 'bg-red-50 text-red-600 border border-red-200 hover:bg-red-100 active:bg-red-200', }; const sizes = { sm: 'px-3 py-1.5 text-xs font-semibold', md: 'px-4 py-2.5 text-sm', lg: 'px-6 py-3.5 text-base', icon: 'p-2', }; return ( ); }