UNPKG

@mantine/core

Version:

React components library focused on usability, accessibility and developer experience

38 lines 1.93 kB
import React from 'react'; import { DefaultProps, MantineSize, MantineNumberSize } from '../../theme'; import { ComponentPassThrough } from '../../types'; import useStyles from './Button.styles'; export { UnstyledButton } from './UnstyledButton/UnstyledButton'; export declare const BUTTON_SIZES: Record<MantineSize, number>; export declare const BUTTON_VARIANTS: string[]; export declare type ButtonVariant = 'link' | 'filled' | 'outline' | 'light'; export declare type ButtonStylesNames = Exclude<keyof ReturnType<typeof useStyles>, ButtonVariant>; interface ButtonBaseProps extends DefaultProps<ButtonStylesNames> { /** Predefined button size */ size?: MantineSize; /** Button type attribute */ type?: 'submit' | 'button' | 'reset'; /** Button color from theme */ color?: string; /** Adds icon before button label */ leftIcon?: React.ReactNode; /** Adds icon after button label */ rightIcon?: React.ReactNode; /** Sets button width to 100% of parent element */ fullWidth?: boolean; /** Button border-radius from theme or number to set border-radius in px */ radius?: MantineNumberSize; /** Controls button appearance */ variant?: 'link' | 'filled' | 'outline' | 'light'; /** Set text-transform to uppercase */ uppercase?: boolean; } export declare function Button<T extends React.ElementType = 'button', U extends HTMLElement = HTMLButtonElement>({ className, style, size, color, type, disabled, children, leftIcon, rightIcon, fullWidth, variant, radius, component: Element, elementRef, themeOverride, uppercase, classNames, styles, ...others }: ComponentPassThrough<T, ButtonBaseProps> & { /** Get root element ref */ elementRef?: React.ForwardedRef<U>; }): JSX.Element; export declare namespace Button { var displayName: string; } export declare type ButtonProps = React.ComponentProps<typeof Button>; //# sourceMappingURL=Button.d.ts.map