1 | import { bool, node, string } from 'prop-types';
|
2 | import { buttonTypePropType, sizePropType } from './types/props.js';
|
3 | import styled from './styled/index.js';
|
4 | import { c as _objectWithoutPropertiesLoose, g as _extends } from './chunk-1f79df9b.js';
|
5 | import Box from 'reakit/Box';
|
6 | import 'reakit/Block';
|
7 | import 'reakit/Inline';
|
8 | import 'reakit/InlineBlock';
|
9 | import Flex from 'reakit/Flex';
|
10 | import 'reakit/InlineFlex';
|
11 | import 'reakit/Grid';
|
12 | import { createElement, Fragment } from 'react';
|
13 | import { b as iconPropTypes } from './chunk-8ecd810f.js';
|
14 | import Spinner from './Spinner/index.js';
|
15 | import _Button, { ButtonIcon } from './Button/styled.js';
|
16 |
|
17 | var Text = styled.span.withConfig({
|
18 | displayName: "Button__Text",
|
19 | componentId: "sc-9gxgrv-0"
|
20 | })(["align-items:center;display:inline-flex;"]);
|
21 | var 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);
|
25 | var 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 | };
|
61 | var 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 | };
|
76 | Button.propTypes = buttonPropTypes;
|
77 | var 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 | };
|
91 | Button.defaultProps = buttonDefaultProps;
|
92 |
|
93 | var C = Button;
|
94 |
|
95 | export { C as a, buttonPropTypes as b, buttonDefaultProps as c, SpinnerWrapper as d };
|