import { OverridableComponentProps } from "../overridable"; import * as React from "react"; export interface MaterialButtonPropsInterface extends OverridableComponentProps { /** * The URL to link to when the button is clicked. * If defined, an `` element will be used as the root node. * @default undefined */ href?: string; /** * - uppercase: convert label to upper case * - capitalize: convert first letter of each word on label to upper case * - lowercase: convert label to lower case * - none: no text decoration * @default 'uppercase' */ textTransform?: "uppercase" | "capitalize" | "lowercase" | "none"; /** * The type of style that will be rendered. * - contained: with background color * - outlined: border and transparent backgorund, on hover background color takes the color * - text: no borders and no background color, on hover * @default 'contained' */ variant?: "text" | "outlined" | "contained"; /** * The text label for the button */ label?: string; /** * If `true`, the component is disabled. * @default false */ disabled?: boolean; resetStyles?: boolean; /** * If true, will not show a ripple effect everytime * the user drops files or clicks the dropzone for selecting files * @default false */ disableRipple?: boolean; /** * If true, dark mode colors are used in the component. */ darkMode?: boolean; } type DefButtonPropsMap = React.DetailedHTMLProps, HTMLButtonElement>; type DefButtonProps = { [F in keyof DefButtonPropsMap]: DefButtonPropsMap[F]; }; export type MaterialButtonProps = { [F in keyof MaterialButtonPropsInterface]: MaterialButtonPropsInterface[F]; } & DefButtonProps; export {};