import { ReactNode } from "react"; interface ButtonProps { children: ReactNode; // Button text or content size?: "sm" | "md"; // Button size variant?: "primary" | "outline"; // Button variant startIcon?: ReactNode; // Icon before the text endIcon?: ReactNode; // Icon after the text onClick?: () => void; // Click handler disabled?: boolean; // Disabled state className?: string; // Disabled state } const Button: React.FC = ({ children, size = "md", variant = "primary", startIcon, endIcon, onClick, className = "", disabled = false, }) => { // Size Classes const sizeClasses = { sm: "px-4 py-3 text-sm", md: "px-5 py-3.5 text-sm", }; // Variant Classes const variantClasses = { primary: "bg-brand-500 text-white shadow-theme-xs hover:bg-brand-600 disabled:bg-brand-300", outline: "bg-white text-gray-700 ring-1 ring-inset ring-gray-300 hover:bg-gray-50 dark:bg-gray-800 dark:text-gray-400 dark:ring-gray-700 dark:hover:bg-white/[0.03] dark:hover:text-gray-300", }; return ( ); }; export default Button;