import { cva } from "class-variance-authority";
export { default as Button } from "./Button.vue";
export const buttonVariants = cva(
  "cursor-default tracking-wide inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-sm text-sm font-medium transition-all duration-180 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none aria-invalid:border-red-200 select-none",
  {
    variants: {
      variant: {
        default: "border border-slate-200 bg-white text-slate-700 hover:bg-[color-mix(in_srgb,var(--primary)_20%,white)] hover:border-[color-mix(in_srgb,var(--primary)_60%,white)] hover:text-(--primary)",
        destructive: "border border-red-200 text-red-600 bg-[color-mix(in_srgb,red_10%,white)] hover:bg-red-400 hover:border-red-400 hover:text-white",
        primary: "bg-(--primary) text-white hover:bg-[color-mix(in_srgb,var(--primary)_70%,white)]",
        ghost: "border-none bg-transparent text-slate-700 hover:bg-slate-100 hover:text-slate-900",
        link: "border-none bg-transparent text-(--primary) hover:bg-transparent focus:bg-transparent hover:opacity-80 duration-180 ease-out"
      },
      size: {
        default: "h-8 px-4 py-2 has-[>svg]:px-3",
        sm: "h-6 rounded gap-1.5 text-xs px-3 has-[>svg]:px-2.5",
        xs: "h-4 rounded gap-1 text-xs px-2 has-[>svg]:px-1"
      }
    },
    defaultVariants: {
      variant: "default",
      size: "default"
    }
  }
);
