import type { ButtonHTMLAttributes, ReactNode } from "react"; import type { InteractionStatesOptions } from "@react-md/states"; import type { PropsWithRef } from "@react-md/utils"; import type { ButtonThemeProps } from "./buttonThemeClassNames"; import type { FABPosition, FABProps } from "./FAB"; /** * This interface includes all the props that the `Button` component accepts so * the main use case might be creating a functionality wrapper for the `Button` * component, but passes all props down as normal. */ export interface ButtonProps extends ButtonThemeProps, ButtonHTMLAttributes, Omit, "disableSpacebarClick"> { /** * The button's type attribute. This is set to "button" by default so that * forms are not accidentally submitted when this prop is omitted since * buttons without a type attribute work as submit by default. */ type?: "button" | "reset" | "submit"; /** * Any children to render within the button. This will normally just be text * or an icon. * * Please note that it is considered invalid html to have a `
` as a * descendant of a `