import React from "react"; import type { MergeElementProps } from "../typings"; interface ButtonBaseProps { /** * The content of the button. */ label: string; /** * Append to the classNames applied to the component so you can override or * extend the styles. */ className?: string; /** * If `true`, the button will be rounded. * @default false */ rounded?: boolean; /** * If `true`, the button will be disabled. * @default false */ disabled?: boolean; /** * If `true`, the button will have elavation. * * Note: You can only use the `raised={true}` property on `filled` buttons.` * @default false */ raised?: boolean; /** * If `true`, the button will have a loading indicator. * @default false */ loading?: boolean; /** * The size of the button. * @default "medium" */ size?: "large" | "medium" | "small"; /** * The color of the button. * @default "default" */ color?: "default" | "primary" | "secondary"; /** * The variant of the button. * @default "filled" */ variant?: "filled" | "outlined" | "inlined"; /** * The leading icon element placed before the label. */ leadingIcon?: React.ReactNode; /** * The trailing icon element placed before the label. */ trailingIcon?: React.ReactNode; onClick?: React.MouseEventHandler; } export declare type ButtonProps = MergeElementProps; declare type Component = { (props: ButtonProps): JSX.Element; propTypes?: React.WeakValidationMap | undefined; displayName?: string | undefined; }; declare const Button: Component; export default Button;