"use client"; import React from "react"; import { Loader2 } from "lucide-react"; interface ButtonProps extends React.ButtonHTMLAttributes { variant?: "primary" | "secondary" | "danger" | "ghost"; size?: "sm" | "md" | "lg"; loading?: boolean; icon?: React.ReactNode; children: React.ReactNode; } const variantStyles = { primary: "bg-[var(--primary)] text-[var(--primary-foreground)] hover:opacity-90 shadow-md shadow-[var(--primary)]/15", secondary: "bg-[var(--secondary)] text-[var(--secondary-foreground)] hover:bg-[var(--muted)]", danger: "bg-[var(--destructive)] text-[var(--destructive-foreground)] hover:opacity-90 shadow-md shadow-[var(--destructive)]/15", ghost: "text-[var(--muted-foreground)] hover:bg-[var(--muted)] hover:text-[var(--foreground)]", }; const sizeStyles = { sm: "px-3 py-1.5 text-xs", md: "px-4 py-2 text-sm", lg: "px-6 py-3 text-base", }; export default function Button({ variant = "primary", size = "md", loading = false, icon, children, className = "", disabled, ...props }: ButtonProps) { return ( ); }