import { type VariantProps } from 'class-variance-authority'; import * as React from 'react'; import { type ButtonProps } from '../../atoms/button'; export type IconButtonVariant = NonNullable; /** * IconButton's own size axis, no longer Button's. * * Button lost its sizes in 0.5.0 — Figma's `.button-main` draws exactly one 40px height — but * IconButton is not a Figma atom and an icon-only control genuinely needs more than one square. * The scale is kept here and declared as this component's own, which is honest: it is a rule-2 * gap that Figma does not speak to, not a size axis borrowed from a component that has none. */ export type IconButtonSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl'; declare const iconButtonVariants: (props?: ({ variant?: "link" | "destructive" | "primary" | "secondary" | "ghost" | null | undefined; size?: "lg" | "md" | "sm" | "xl" | "xs" | null | undefined; iconOnly?: boolean | null | undefined; } & import("class-variance-authority/types").ClassProp) | undefined) => string; export interface IconButtonProps extends Omit, Omit, 'iconOnly'> { /** Leading icon. Expects a 16×16 glyph, e.g. ``. */ iconLeft?: React.ReactNode; /** Trailing icon. Expects a 16×16 glyph, e.g. ``. */ iconRight?: React.ReactNode; variant?: IconButtonVariant; size?: IconButtonSize; } /** * A {@link Button} with leading and trailing icon slots. * * With no `children` the button is icon-only: it becomes square and an * `aria-label` (or `aria-labelledby`) is required, since the glyph is the only * content and a screen reader has nothing else to announce. A development-only * warning fires if that name is missing. * * Element swapping goes through Base UI's `render` prop — never `asChild` or * `as`. This is the first component to use that seam. * * @example } /> * @example } /> * @example }>Continue * @example } iconLeft={} /> */ export declare const IconButton: React.ForwardRefExoticComponent>; export { iconButtonVariants }; //# sourceMappingURL=icon-button.d.ts.map