@atlaskit/button
Version:
A button triggers an event or action. They let users know what will happen next.
61 lines (60 loc) • 2.87 kB
TypeScript
import React from 'react';
import Button from '../new-button/variants/default/button';
import { type LinkButtonProps } from '../new-button/variants/default/link';
import { type IconButtonProps } from '../new-button/variants/icon/button';
import { type LinkIconButtonProps } from '../new-button/variants/icon/link';
import { buttonAppearances, iconButtonAppearances, linkButtonAppearances } from './appearances';
import { buttonSpacing, iconButtonSpacing } from './spacing';
type IconButtonShape = 'default' | 'circle';
export declare const iconButtonShapes: IconButtonShape[];
type DefaultButtonVariant = {
name: 'Button';
Component: typeof Button;
elementType: typeof HTMLButtonElement;
appearances: typeof buttonAppearances;
spacing: typeof buttonSpacing;
};
type LinkButtonVariant = {
name: 'LinkButton';
Component: typeof LinkButtonRender;
elementType: typeof HTMLAnchorElement;
appearances: typeof linkButtonAppearances;
spacing: typeof buttonSpacing;
};
type IconButtonVariant = {
name: 'IconButton';
Component: typeof IconButtonRender;
elementType: typeof HTMLButtonElement;
appearances: typeof iconButtonAppearances;
spacing: typeof iconButtonSpacing;
shape: typeof iconButtonShapes;
};
type LinkIconButtonVariant = {
name: 'LinkIconButton';
Component: typeof LinkIconButtonRender;
elementType: typeof HTMLAnchorElement;
appearances: typeof iconButtonAppearances;
spacing: typeof iconButtonSpacing;
shape: typeof iconButtonShapes;
};
type DefaultButtonVariants = DefaultButtonVariant | LinkButtonVariant;
type LinkButtonVariants = LinkButtonVariant | LinkIconButtonVariant;
type IconButtonVariants = IconButtonVariant | LinkIconButtonVariant;
export type Variant = DefaultButtonVariant | LinkButtonVariant | IconButtonVariant | LinkIconButtonVariant;
declare const LinkButtonRender: React.ForwardRefExoticComponent<React.PropsWithoutRef<Omit<LinkButtonProps, 'href'> & {
href?: LinkButtonProps['href'];
}> & React.RefAttributes<HTMLAnchorElement>>;
declare const IconButtonRender: React.ForwardRefExoticComponent<React.PropsWithoutRef<Omit<IconButtonProps, 'icon' | 'label'> & {
icon?: IconButtonProps['icon'];
label?: IconButtonProps['label'];
}> & React.RefAttributes<HTMLButtonElement>>;
declare const LinkIconButtonRender: React.ForwardRefExoticComponent<React.PropsWithoutRef<Omit<LinkIconButtonProps, 'href' | 'icon' | 'label'> & {
href?: LinkIconButtonProps['href'];
icon?: LinkIconButtonProps['icon'];
label?: LinkIconButtonProps['label'];
}> & React.RefAttributes<HTMLAnchorElement>>;
declare const variants: Variant[];
export declare const defaultButtonVariants: DefaultButtonVariants[];
export declare const linkButtonVariants: LinkButtonVariants[];
export declare const iconButtonVariants: IconButtonVariants[];
export default variants;