UNPKG

3.08 kBJavaScriptView Raw
1import { bool, node, string } from 'prop-types';
2import { buttonTypePropType, sizePropType } from './types/props.js';
3import styled from './styled/index.js';
4import { c as _objectWithoutPropertiesLoose, g as _extends } from './chunk-1f79df9b.js';
5import Box from 'reakit/Box';
6import 'reakit/Block';
7import 'reakit/Inline';
8import 'reakit/InlineBlock';
9import Flex from 'reakit/Flex';
10import 'reakit/InlineFlex';
11import 'reakit/Grid';
12import { createElement, Fragment } from 'react';
13import { b as iconPropTypes } from './chunk-8ecd810f.js';
14import Spinner from './Spinner/index.js';
15import _Button, { ButtonIcon } from './Button/styled.js';
16
17var Text = styled.span.withConfig({
18 displayName: "Button__Text",
19 componentId: "sc-9gxgrv-0"
20})(["align-items:center;display:inline-flex;"]);
21var SpinnerWrapper = styled(Box).withConfig({
22 displayName: "Button__SpinnerWrapper",
23 componentId: "sc-9gxgrv-1"
24})(["position:absolute;display:flex;align-items:center;justify-content:center;& + ", "{opacity:0;}"], Text);
25var Button = function Button(_ref) {
26 var children = _ref.children,
27 className = _ref.className,
28 disabled = _ref.disabled,
29 iconAfter = _ref.iconAfter,
30 iconBefore = _ref.iconBefore,
31 isLoading = _ref.isLoading,
32 isStatic = _ref.isStatic,
33 kind = _ref.kind,
34 palette = _ref.palette,
35 size = _ref.size,
36 props = _objectWithoutPropertiesLoose(_ref, ["children", "className", "disabled", "iconAfter", "iconBefore", "isLoading", "isStatic", "kind", "palette", "size"]);
37
38 var child = createElement(Fragment, null, iconBefore && createElement(ButtonIcon, {
39 a11yHidden: true,
40 icon: iconBefore,
41 isBefore: true
42 }), children, iconAfter && createElement(ButtonIcon, {
43 a11yHidden: true,
44 icon: iconAfter,
45 isAfter: true
46 }));
47 return createElement(_Button, _extends({
48 className: className,
49 disabled: disabled,
50 isLoading: isLoading,
51 isStatic: isStatic,
52 kind: kind,
53 palette: palette,
54 styledSize: size
55 }, props), isLoading ? createElement(Fragment, null, createElement(SpinnerWrapper, null, createElement(Spinner, {
56 use: Flex,
57 color: kind === 'default' ? (palette || '') + "Inverted" : palette,
58 size: "20px"
59 })), createElement(Text, null, child)) : child);
60};
61var buttonPropTypes = {
62 autoFocus: bool,
63 children: node.isRequired,
64 className: string,
65 disabled: bool,
66 id: string,
67 iconAfter: iconPropTypes['icon'],
68 iconBefore: iconPropTypes['icon'],
69 isLoading: bool,
70 isStatic: bool,
71 kind: buttonTypePropType,
72 palette: string,
73 size: sizePropType,
74 type: string
75};
76Button.propTypes = buttonPropTypes;
77var buttonDefaultProps = {
78 autoFocus: false,
79 className: undefined,
80 disabled: false,
81 id: undefined,
82 iconAfter: undefined,
83 iconBefore: undefined,
84 isLoading: false,
85 isStatic: false,
86 kind: 'default',
87 palette: 'default',
88 size: 'default',
89 type: 'button'
90};
91Button.defaultProps = buttonDefaultProps; // @ts-ignore
92
93var C = Button;
94
95export { C as a, buttonPropTypes as b, buttonDefaultProps as c, SpinnerWrapper as d };