/** * Button — ported 1:1 from the Veryfront Studio `Button` primitive. Studio's * semantic Tailwind classes (`bg-primary`, `vf-type-base`, `vf-weight-normal`) * are mechanically remapped to veryfront's arbitrary-value vocabulary * (`bg-[var(--primary)]`, `text-base`, `font-normal`) — a deterministic token * mapping, not a redesign. Private to the chat module. * * Hover rule: every variant converges to primary/secondary on hover; primary * inverts the other way; destructive deepens; outline drops its border; link * drops underline. Loading keeps the label, sets `aria-busy` + `disabled`, and * applies a subtle opacity pulse. * * @module react/components/ui/button */ import * as React from "react"; import { type VariantProps } from "./cva.js"; declare const buttonVariants: (props?: ({ variant?: "link" | "text" | "primary" | "outline" | "destructive" | "ghost" | "icon-ghost" | "icon-primary" | "icon-secondary" | "icon-tertiary" | "secondary" | "secondary-to-link" | "tertiary" | null | undefined; on?: "card" | "chrome" | null | undefined; iconAfter?: "true" | null | undefined; size?: "default" | "icon-default" | "icon-lg" | "icon-sm" | "icon-xl" | "icon-xs" | "lg" | "lg-to-default" | "sm" | null | undefined; } & { class?: import("../../../utils/clsx.js").ClassValue; className?: import("../../../utils/clsx.js").ClassValue; }) | undefined) => string; /** Props accepted by `