"use client"; // Primitives UI d'Immbot AI — style sobre, accessible, thème clair/sombre. import { forwardRef, type ButtonHTMLAttributes, type InputHTMLAttributes, type ReactNode, type TextareaHTMLAttributes } from "react"; export function cn(...cls: (string | false | null | undefined)[]): string { return cls.filter(Boolean).join(" "); } // ---------- Button ---------- type ButtonProps = ButtonHTMLAttributes & { variant?: "primary" | "secondary" | "ghost" | "danger" | "gold"; size?: "sm" | "md" | "lg" | "icon"; }; export const Button = forwardRef(function Button( { variant = "primary", size = "md", className, ...props }, ref ) { const variants = { primary: "bg-brand-600 hover:bg-brand-700 text-white shadow-sm disabled:bg-brand-600/50", secondary: "bg-card border border-app hover:bg-surface-2 dark:hover:bg-brand-900/40 text-fg", ghost: "hover:bg-surface-2 dark:hover:bg-brand-900/40 text-fg", danger: "bg-red-600 hover:bg-red-700 text-white", gold: "bg-gold-500 hover:bg-gold-600 text-brand-900 font-semibold shadow-sm", }; const sizes = { sm: "h-8 px-3 text-[13px] rounded-md gap-1.5", md: "h-9.5 px-4 text-sm rounded-lg gap-2 font-semibold", lg: "h-11 px-5 text-[15px] rounded-xl gap-2", icon: "h-9 w-9 rounded-lg justify-center", }; return (