import * as React from "react"; import type { ButtonProps as MuiButtonProps, IconButtonProps as MuiIconButtonProps } from "@mui/material"; import type { GridJustification } from "./grid"; declare const BUTTON_SIZE_MAP: { xsmall: { height: string; padding: string; }; small: { height: string; padding: string; }; medium: { height: string; padding: string; }; large: { height: string; padding: string; }; }; export declare type ButtonSize = keyof typeof BUTTON_SIZE_MAP; /** Provides feedback to the user in regards to the action of the button. */ declare type ButtonVariant = "neutral" | "primary" | "danger" | "destructive" | "secondary"; declare const ICON_BUTTON_STYLE_MAP: { small: { size: number; padding: number; }; medium: { size: number; padding: number; }; large: { size: number; padding: number; }; }; export declare type IconButtonSize = keyof typeof ICON_BUTTON_STYLE_MAP; export declare const ICON_BUTTON_VARIANTS: string[]; export interface ButtonProps extends Pick { /** * Case-sensitive button text */ text: string; /** * The button variantion * @defaultValue primary */ variant?: ButtonVariant; /** * The buttons size * @defaultValue medium */ size?: ButtonSize; } /** A button with default themes based on use case. */ declare const Button: ({ text, variant, size, ...props }: ButtonProps) => JSX.Element; export interface IconButtonProps extends Pick { /** The button variantion. Defaults to primary. */ variant?: ButtonVariant; children: React.ReactElement; } /** * A button to wrap icons with default themes based on use case. * Will forwardRef so that tooltips can be wrapped around the buttons * @param variant valid color variant * @param size a valid size for the IconButton * @param children any children to render inside of the IconButton * @returns rendered IconButton component */ declare const IconButton: React.ForwardRefExoticComponent>; export interface ButtonGroupProps { /** Buttons within the group. */ children: React.ReactElement | React.ReactElement[]; /** Justification of buttons. */ justify?: GridJustification; /** Position of button group border. Defaults to top. */ border?: "top" | "bottom"; } /** A set of buttons to group together. */ declare const ButtonGroup: ({ children, justify, border }: ButtonGroupProps) => JSX.Element; export interface ClipboardButtonProps { /** Case-sensitive text to be copied. */ text: string; tooltip?: string; } /** * A button to copy text to a users clipboard. * * When clicked a checkmark is briefly displayed. */ declare const ClipboardButton: ({ text, tooltip }: ClipboardButtonProps) => JSX.Element; export { Button, ButtonGroup, ClipboardButton, IconButton }; //# sourceMappingURL=button.d.ts.map