import { cn } from "@/lib/utils"; import { forwardRef } from "react"; import { Loader2 } from "lucide-react"; interface MedicalButtonProps extends React.ButtonHTMLAttributes { variant?: "primary" | "secondary" | "danger" | "outline" | "ghost"; size?: "sm" | "md" | "lg" | "xl"; isLoading?: boolean; fullWidth?: boolean; } const MedicalButton = forwardRef( ({ className, variant = "primary", size = "md", isLoading = false, fullWidth = false, disabled, children, ...props }, ref) => { const sizeClasses = { sm: "px-4 py-2 text-sm", md: "px-6 py-3 text-base", lg: "px-8 py-4 text-lg", xl: "px-10 py-5 text-xl", }; const variantClasses = { primary: "btn-primary-glow", secondary: "btn-secondary-glow", danger: "btn-danger-glow", outline: "bg-transparent border-2 border-primary text-primary hover:bg-primary/10 transition-all duration-300", ghost: "bg-transparent text-foreground hover:bg-muted transition-all duration-300", }; return ( ); } ); MedicalButton.displayName = "MedicalButton"; export default MedicalButton;