Button

Implement the button component with the following variants:

Button Component
tsx
1import { ButtonHTMLAttributes, forwardRef } from "react";
2import { cva, type VariantProps } from "class-variance-authority";
3import { cn } from "@/lib/cn";
4
5// Define button variants using class-variance-authority for better type safety and maintainability
6const buttonVariants = cva(
7 // Base styles that apply to all buttons
8 [
9 "inline-flex items-center justify-center gap-2 rounded-lg font-medium",
10 "transition-all duration-200 ease-in-out",