@mantine/core
Version:
React components library focused on usability, accessibility and developer experience
38 lines • 1.93 kB
TypeScript
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