/** * @usevyre/react — Button * * AI CONTEXT: * ┌─────────────────────────────────────────────────────────┐ * │ Component: Button │ * │ Import: import { Button } from "@usevyre/react" │ * │ │ * │ Props: │ * │ variant = "primary"|"secondary"|"ghost"| │ * │ "accent"|"teal"|"danger" │ * │ size = "sm"|"md"(default)|"lg"|"icon" │ * │ disabled = boolean │ * │ loading = boolean (shows spinner, disables click) │ * │ as = React.ElementType (default: "button") │ * │ leftIcon = React.ReactNode │ * │ rightIcon = React.ReactNode │ * │ │ * │ All native * * // Destructive action * * * // Icon only * * * // As link * */ import React from "react"; import type { Variant, Size, BaseProps } from "../../types"; export interface ButtonProps extends React.ButtonHTMLAttributes, BaseProps { /** Visual style variant */ variant?: Variant; /** Size scale */ size?: Size; /** Show loading spinner and disable interaction */ loading?: boolean; /** Icon before label */ leftIcon?: React.ReactNode; /** Icon after label */ rightIcon?: React.ReactNode; /** Render as different element (e.g. "a" for link buttons) */ as?: React.ElementType; } export declare const Button: React.ForwardRefExoticComponent>;