import { Slot } from "@radix-ui/react-slot"; import type * as React from "react"; import { cn } from "../lib/utils"; type ButtonVariant = | "default" | "secondary" | "destructive" | "outline" | "ghost"; type ButtonSize = "default" | "sm" | "lg" | "icon"; const variants: Record = { default: "bg-primary text-primary-foreground shadow hover:bg-primary/90", secondary: "bg-[#FFB7C5] text-[#1a1a2e] hover:bg-[#FFB7C5]/80", destructive: "bg-[#FCA5A5] text-[#1a1a2e] hover:bg-[#FCA5A5]/80", outline: "border border-border bg-white hover:bg-primary-soft", ghost: "hover:bg-primary-soft", }; const sizes: Record = { default: "h-10 px-4 py-2", sm: "h-9 rounded-xl px-3", lg: "h-11 rounded-xl px-8", icon: "h-10 w-10", }; export interface ButtonProps extends React.ButtonHTMLAttributes { asChild?: boolean; variant?: ButtonVariant; size?: ButtonSize; } export function Button({ className, variant = "default", size = "default", asChild = false, ...props }: ButtonProps) { const Comp = asChild ? Slot : "button"; return ( ); }