import { jsx as _jsx } from "react/jsx-runtime";
import { Slot } from "@radix-ui/react-slot";
import { cva } from "class-variance-authority";
import { cn } from "../../lib/utils";
const buttonVariants = cva([
    "inline-flex",
    "items-center",
    "justify-center",
    "gap-2",
    "whitespace-nowrap",
    "rounded",
    "text-sm",
    "font-medium",
    "transition-all",
    "disabled:pointer-events-none",
    "disabled:opacity-50",
    "[&_svg]:pointer-events-none",
    "[&_svg:not([class*='size-'])]:size-4 shrink-0",
    "[&_svg]:shrink-0",
    "outline-none",
    "focus-visible:border-ring",
    "focus-visible:ring-ring/50",
    "focus-visible:ring-[3px]",
    "aria-invalid:ring-destructive/20",
    "dark:aria-invalid:ring-destructive/40",
    "aria-invalid:border-destructive",
], {
    variants: {
        variant: {
            default: "bg-theme-secondary text-primary-foreground shadow-xs hover:bg-theme-secondary/80",
            defaultInverted: "transition-colors duration-300 shadow-sm bg-white text-theme-secondary hover:bg-theme-secondary hover:text-white",
            destructive: "bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",
            outline: "border bg-background hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",
            select: "border border-gray-3 bg-background text-dark w-auto md:min-w-[120px] flex justify-between gap-3 roundedborder cursor-pointer hover:bg-gray-50 hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",
            secondary: "bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80",
            ghost: "hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",
            link: "text-primary underline-offset-4 hover:underline",
        },
        size: {
            default: "h-8 px-7 py-5 has-[>svg]:px-3",
            sm: "h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5 text-xs",
            xs: "h-7 rounded-md gap-1 px-2 has-[>svg]:px-2 text-2xs",
            xxs: "h-5 rounded-md gap-1 px-2 has-[>svg]:px-2 text-2xs",
            lg: "h-10 rounded-md px-6 has-[>svg]:px-4",
            icon: "size-9",
            iconSm: "size-8",
            iconXs: "size-7",
            select: "",
        },
    },
    compoundVariants: [
        {
            variant: "select",
            size: "select",
            class: "h-7 md:h-8 p-[7px] py-[11px] text-xs",
        },
    ],
    defaultVariants: {
        variant: "default",
        size: "default",
    },
});
function Button({ className, variant, size, asChild = false, ...props }) {
    const Comp = asChild ? Slot : "button";
    return (_jsx(Comp, { "data-slot": "button", className: cn("cursor-pointer", buttonVariants({
            variant,
            size: variant === "select" ? "select" : size,
            className,
        })), ...props }));
}
export { Button, buttonVariants };
//# sourceMappingURL=button.js.map