UNPKG

@atlaskit/button

Version:

A button triggers an event or action. They let users know what will happen next.

75 lines 2.33 kB
import _extends from "@babel/runtime/helpers/extends"; import React, { forwardRef } from 'react'; import StarStarredIcon from '@atlaskit/icon/core/star-starred'; import Button from '../new-button/variants/default/button'; import LinkButton from '../new-button/variants/default/link'; import IconButton from '../new-button/variants/icon/button'; import LinkIconButton from '../new-button/variants/icon/link'; import { buttonAppearances } from './button-appearances'; import { buttonSpacing } from './button-spacing'; import { iconButtonAppearances } from './icon-button-appearances'; import { iconButtonShapes } from './icon-button-shapes'; import { iconButtonSpacing } from './icon-button-spacing'; import { linkButtonAppearances } from './link-button-appearances'; // Add required default props to variants const LinkButtonRender = /*#__PURE__*/forwardRef(({ href = 'home', children, ...rest }, ref) => /*#__PURE__*/React.createElement(LinkButton, _extends({ ref: ref, href: href }, rest), children)); const IconButtonRender = /*#__PURE__*/forwardRef(({ icon = StarStarredIcon, label = 'Label', ...rest }, ref) => /*#__PURE__*/React.createElement(IconButton, _extends({ ref: ref, icon: icon, label: label }, rest))); const LinkIconButtonRender = /*#__PURE__*/forwardRef(({ href = 'home', icon = StarStarredIcon, label = 'Label', ...rest }, ref) => /*#__PURE__*/React.createElement(LinkIconButton, _extends({ ref: ref, href: href, icon: icon, label: label }, rest))); const variants = { Button: { name: 'Button', Component: Button, elementType: HTMLButtonElement, appearances: buttonAppearances, spacing: buttonSpacing }, LinkButton: { name: 'LinkButton', Component: LinkButtonRender, elementType: HTMLAnchorElement, appearances: linkButtonAppearances, spacing: buttonSpacing }, IconButton: { name: 'IconButton', Component: IconButtonRender, elementType: HTMLButtonElement, appearances: iconButtonAppearances, spacing: iconButtonSpacing, shape: iconButtonShapes }, LinkIconButton: { name: 'LinkIconButton', Component: LinkIconButtonRender, elementType: HTMLAnchorElement, appearances: iconButtonAppearances, spacing: iconButtonSpacing, shape: iconButtonShapes } }; export default variants;