import { default as React, CSSProperties } from 'react'; import { IconContent } from '../types/icon.types.js'; import { SlotClassNames, SlotStyles, DataProps } from '../types/slots.types.js'; import { ColorValue } from '../themeProvider/color.types.js'; /** How much the button stands out. Independent of its colour. */ export declare enum ButtonStyleType { /** Solid fill, for the one main action. */ Filled = "filled", /** A light tint of the colour behind text in the colour. */ Light = "light", /** Border and text in the colour, no fill. The default. */ Outlined = "outlined", /** Text in the colour, no fill and no border. For toolbar, icon and close buttons. */ Plain = "plain" } export declare enum ButtonSize { Small = "small", /** The default. */ Medium = "medium", Large = "large", /** Square, padding-free button for a lone icon. Give it its own width/height. */ Icon = "icon" } export declare enum ButtonType { Button = "button", Reset = "reset", Submit = "submit" } export type ButtonSlots = 'background' | 'content' | 'loadingContainer' | 'label' | 'shortcut'; interface ButtonOwnProps extends DataProps { className?: string; style?: CSSProperties; /** Emphasis: `Filled`, `Light`, `Outlined` (default) or `Plain`. */ styleType?: ButtonStyleType; /** A `ThemeColor` (default `Primary`) or any CSS colour, such as `'var(--brand)'`. */ color?: ColorValue; size?: ButtonSize; children?: React.ReactNode; icon?: IconContent; /** * A shortcut drawn after the label, in `useHotkeys` spelling (`'mod+s'`): `⌘S` on Apple * platforms, `Ctrl+S` elsewhere. Drawn only; bind it with `useHotkeys`. */ shortcut?: string; isLoading?: boolean; disabled?: boolean; title?: string; classNames?: SlotClassNames; styles?: SlotStyles; } /** * A Button without `href`, a `