import type { OverridableComponent } from "@mui/material/OverridableComponent"; import type { ColorJson } from "@vertigis/arcgis-extensions/json/SymbolJson"; import type { ButtonProps as GcxButtonProps } from "@vertigis/react-ui/Button"; import type { ReactNode } from "react"; import type { TranslatableText } from "../../region"; /** * The amount of emphasis placed on the button. */ export type Emphasis = "low" | "medium" | "high"; /** * The visual style of the button. The default will depend on where in the UI * the button appears. */ export type ButtonStyle = "square" | "round"; /** * The size of a button. The default is "medium". */ export type ButtonSize = "small" | "medium" | "large"; /** * The position of the icon on the button. Default is "before". */ export type ButtonIconPosition = "above" | "below" | "before" | "after"; /** * Options used for the visual presentation of a button. */ export interface ButtonPresentationSettings { /** * The amount of visual emphasis on the button. */ emphasis?: Emphasis; /** * The visual style of the button. */ buttonStyle?: ButtonStyle; /** * The size of the button. */ size?: ButtonSize; /** * The position of the icon on the button. Setting this prop overrides the * positioning of 'startIcon' and 'endIcon', so it is recommended that the * 'icon' prop on buttons be used with this instead. */ iconPosition?: ButtonIconPosition; /** * The foreground color of the button. */ foregroundColor?: ColorJson | string; /** * The background color of the button. */ backgroundColor?: ColorJson | string; /** * Whether to show a border on the button. Default is 'true'. */ border?: boolean; } /** * A version of the above for use outside of this component. "button" is * appended to every property name to disambiguate, except for "buttonStyle", * where it has already been added. */ export type ButtonContainerPresentationSettings = { [P in keyof Omit as `button${Capitalize

}`]?: ButtonPresentationSettings[P]; } & Pick; /** * Properties for the `Button` component. */ export type ButtonProps = Omit & ButtonPresentationSettings & { icon?: ReactNode; title?: TranslatableText; "aria-label"?: TranslatableText; }; /** * A button. */ declare const _default: OverridableComponent<{ props: ButtonProps; defaultComponent: "button"; }>; export default _default;