@ntbjs/react-components 1.0.0 → 1.1.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/{AssetGallery-2d26f3cf.js → AssetGallery-7ff60131.js} +10 -5
  2. package/AssetPreviewTopBar-a172fc5c.js +105 -0
  3. package/Badge-86593df4.js +146 -0
  4. package/Button-00ce7d0f.js +298 -0
  5. package/CompactStarRating-f9997240.js +242 -0
  6. package/CompactTextInput-f00e46a3.js +269 -0
  7. package/ContextMenu-a68d4f28.js +32 -0
  8. package/InputGroup-66dd343c.js +28 -0
  9. package/{Popover-d3e2f6c0.js → Popover-616682bf.js} +39 -9
  10. package/SectionSeparator-12aff748.js +37 -0
  11. package/Tab-06b7a58d.js +30 -0
  12. package/Tabs-cfbf45fe.js +99 -0
  13. package/{TextArea-52cf4c0a.js → TextArea-06d9e80b.js} +51 -20
  14. package/{TextInput-a7c32f5f.js → TextInput-e4c6d536.js} +42 -22
  15. package/{Tooltip-f95a39f4.js → Tooltip-860530ff.js} +1 -1
  16. package/data/Badge/index.js +10 -0
  17. package/data/Popover/index.js +1 -1
  18. package/data/Tab/index.js +10 -0
  19. package/data/Tabs/index.js +12 -0
  20. package/data/index.js +8 -2
  21. package/edit-note-c47d292e.js +41 -0
  22. package/icons/arrow-back.svg +4 -0
  23. package/icons/close.svg +4 -0
  24. package/icons/delete-context-menu.svg +4 -0
  25. package/icons/design-services.svg +4 -0
  26. package/icons/edit-note.svg +4 -0
  27. package/icons/expand-more.svg +4 -0
  28. package/icons/link.svg +4 -0
  29. package/icons/star-filled.svg +3 -0
  30. package/icons/star.svg +3 -0
  31. package/icons/triangle-right.svg +4 -0
  32. package/inputs/Button/index.js +6 -1
  33. package/inputs/CompactStarRating/index.js +11 -0
  34. package/inputs/CompactTextInput/index.js +20 -0
  35. package/inputs/TextArea/index.js +2 -1
  36. package/inputs/TextInput/index.js +2 -1
  37. package/inputs/index.js +16 -4
  38. package/layout/InputGroup/index.js +10 -0
  39. package/layout/SectionSeparator/index.js +10 -0
  40. package/layout/index.js +14 -0
  41. package/package.json +1 -1
  42. package/widgets/AssetGallery/index.js +15 -8
  43. package/widgets/AssetPreview/AssetPreviewTopBar/index.js +10 -0
  44. package/widgets/ContextMenu/index.js +10 -0
  45. package/widgets/index.js +18 -8
  46. package/Button-0d728b52.js +0 -156
@@ -3,17 +3,22 @@
3
3
  var defaultTheme = require('./defaultTheme-870f7df1.js');
4
4
  var React = require('react');
5
5
  var lodash = require('lodash');
6
- var TextInput = require('./TextInput-a7c32f5f.js');
6
+ var TextInput = require('./TextInput-e4c6d536.js');
7
7
  var ResizeObserver = require('resize-observer-polyfill');
8
8
  var reactLazyLoadImageComponent = require('react-lazy-load-image-component');
9
9
  var ActionButton = require('./ActionButton-90485300.js');
10
- require('./Button-0d728b52.js');
10
+ require('./Button-00ce7d0f.js');
11
11
  require('./Checkbox-50f1f3c7.js');
12
+ require('./CompactStarRating-f9997240.js');
13
+ require('./CompactTextInput-f00e46a3.js');
12
14
  require('./Radio-0b46b2a8.js');
13
- require('./TextArea-52cf4c0a.js');
15
+ require('./TextArea-06d9e80b.js');
14
16
  require('./Switch-aa384260.js');
15
- require('./Popover-d3e2f6c0.js');
16
- var Tooltip = require('./Tooltip-f95a39f4.js');
17
+ require('./Popover-616682bf.js');
18
+ var Tooltip = require('./Tooltip-860530ff.js');
19
+ require('./Tab-06b7a58d.js');
20
+ require('./Tabs-cfbf45fe.js');
21
+ require('./Badge-86593df4.js');
17
22
  var styled = require('styled-components');
18
23
  var polished = require('polished');
19
24
 
@@ -0,0 +1,105 @@
1
+ 'use strict';
2
+
3
+ var defaultTheme = require('./defaultTheme-870f7df1.js');
4
+ var React = require('react');
5
+ var styled = require('styled-components');
6
+
7
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
8
+
9
+ function _interopNamespace(e) {
10
+ if (e && e.__esModule) return e;
11
+ var n = Object.create(null);
12
+ if (e) {
13
+ Object.keys(e).forEach(function (k) {
14
+ if (k !== 'default') {
15
+ var d = Object.getOwnPropertyDescriptor(e, k);
16
+ Object.defineProperty(n, k, d.get ? d : {
17
+ enumerable: true,
18
+ get: function () {
19
+ return e[k];
20
+ }
21
+ });
22
+ }
23
+ });
24
+ }
25
+ n['default'] = e;
26
+ return Object.freeze(n);
27
+ }
28
+
29
+ var React__namespace = /*#__PURE__*/_interopNamespace(React);
30
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
31
+ var styled__default = /*#__PURE__*/_interopDefaultLegacy(styled);
32
+
33
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4;
34
+ var AssetPreviewTopBar$1 = styled__default['default'].div.attrs(defaultTheme.applyDefaultTheme)(_templateObject || (_templateObject = defaultTheme._taggedTemplateLiteral(["\n box-sizing: border-box;\n align-items: center;\n border-bottom: 1px solid;\n clip-path: inset(0px 0px -10px 0px);\n color: inherit;\n display: flex;\n font-family: ", ";\n font-weight: 400;\n min-height: 72px;\n padding: 0 24px;\n width: 100%;\n\n ", "\n\n ", "\n"])), function (props) {
35
+ return props.theme.primaryFontFamily;
36
+ }, function (props) {
37
+ return props.theme.themeProp('border-color', props.theme.getColor('gray-800'), props.theme.getColor('gray-200'));
38
+ }, function (props) {
39
+ return props.shadow && props.theme.themeProp('box-shadow', '0 -2px 12px #505050', '0 -3px 12px #b0b6b9');
40
+ });
41
+ var BackButtonContainer = styled__default['default'].a.attrs(defaultTheme.applyDefaultTheme)(_templateObject2 || (_templateObject2 = defaultTheme._taggedTemplateLiteral(["\n align-items: center;\n display: flex;\n font-size: 1.125rem;\n color: inherit;\n\n &:hover {\n cursor: pointer;\n }\n\n > svg {\n height: 24px;\n margin-right: 16px;\n width: 24px;\n }\n"])));
42
+ var LeftText = styled__default['default'].span.attrs(defaultTheme.applyDefaultTheme)(_templateObject3 || (_templateObject3 = defaultTheme._taggedTemplateLiteral(["\n font-size: 1.125rem;\n margin-left: 16px;\n\n ", ";\n"])), function (props) {
43
+ return props.theme.themeProp('color', props.theme.getColor('gray-500'), props.theme.getColor('gray-400'));
44
+ });
45
+ var ButtonsContainer = styled__default['default'].div.attrs(defaultTheme.applyDefaultTheme)(_templateObject4 || (_templateObject4 = defaultTheme._taggedTemplateLiteral(["\n align-items: center;\n display: flex;\n margin-left: auto;\n\n > span {\n margin-left: 16px;\n }\n"])));
46
+
47
+ function _extends$1() { _extends$1 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$1.apply(this, arguments); }
48
+
49
+ var _ref$1 = /*#__PURE__*/React__namespace.createElement("path", {
50
+ fill: "currentColor",
51
+ d: "M16 32L0 16 16 0l2.1 2.1L5.7 14.5H32v3H5.7l12.4 12.4L16 32z"
52
+ });
53
+
54
+ function SvgArrowBack(props) {
55
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends$1({
56
+ xmlns: "http://www.w3.org/2000/svg",
57
+ viewBox: "0 0 32 32"
58
+ }, props), _ref$1);
59
+ }
60
+
61
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
62
+
63
+ var _ref = /*#__PURE__*/React__namespace.createElement("path", {
64
+ fill: "currentColor",
65
+ d: "M2.1 27.3L0 25.2l11.55-11.55L0 2.1 2.1 0l11.55 11.55L25.2 0l2.1 2.1-11.55 11.55L27.3 25.2l-2.1 2.1-11.55-11.55L2.1 27.3z"
66
+ });
67
+
68
+ function SvgClose(props) {
69
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends({
70
+ xmlns: "http://www.w3.org/2000/svg",
71
+ viewBox: "0 0 27.3 27.3"
72
+ }, props), _ref);
73
+ }
74
+
75
+ var AssetPreviewTopBar = React__default['default'].forwardRef(function AssetPreviewTopBar(_ref, forwardedRef) {
76
+ var onBackButtonClick = _ref.onBackButtonClick,
77
+ backButtonText = _ref.backButtonText,
78
+ backButtonAsClose = _ref.backButtonAsClose,
79
+ leftText = _ref.leftText,
80
+ buttons = _ref.buttons,
81
+ shadow = _ref.shadow,
82
+ props = defaultTheme._objectWithoutProperties(_ref, ["onBackButtonClick", "backButtonText", "backButtonAsClose", "leftText", "buttons", "shadow"]);
83
+
84
+ return React__default['default'].createElement(AssetPreviewTopBar$1, defaultTheme._extends({
85
+ ref: forwardedRef,
86
+ shadow: shadow
87
+ }, props), React__default['default'].createElement(BackButtonContainer, {
88
+ onClick: onBackButtonClick
89
+ }, backButtonAsClose ? React__default['default'].createElement(SvgClose, null) : React__default['default'].createElement(SvgArrowBack, null), backButtonText), leftText && React__default['default'].createElement(LeftText, null, leftText), Array.isArray(buttons) && React__default['default'].createElement(ButtonsContainer, null, buttons.map(function (button, index) {
90
+ return React__default['default'].createElement("span", {
91
+ key: 'topBarButton-' + index
92
+ }, button);
93
+ })));
94
+ });
95
+ AssetPreviewTopBar.propTypes = process.env.NODE_ENV !== "production" ? {
96
+ onBackButtonClick: defaultTheme.PropTypes.func.isRequired,
97
+ backButtonText: defaultTheme.PropTypes.string.isRequired,
98
+ backButtonAsClose: defaultTheme.PropTypes.bool,
99
+ leftText: defaultTheme.PropTypes.string,
100
+ shadow: defaultTheme.PropTypes.bool,
101
+ buttons: defaultTheme.PropTypes.arrayOf(defaultTheme.PropTypes.node)
102
+ } : {};
103
+ AssetPreviewTopBar.defaultProps = {};
104
+
105
+ exports.AssetPreviewTopBar = AssetPreviewTopBar;
@@ -0,0 +1,146 @@
1
+ 'use strict';
2
+
3
+ var defaultTheme = require('./defaultTheme-870f7df1.js');
4
+ var React = require('react');
5
+ var styled = require('styled-components');
6
+
7
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
8
+
9
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
10
+ var styled__default = /*#__PURE__*/_interopDefaultLegacy(styled);
11
+
12
+ var _templateObject, _templateObject2, _templateObject3;
13
+ var Badge$1 = styled__default['default'].span.attrs(defaultTheme.applyDefaultTheme)(_templateObject || (_templateObject = defaultTheme._taggedTemplateLiteral(["\n align-content: center;\n display: ", ";\n font-family: ", ";\n font-size: 1rem;\n font-weight: 500;\n min-height: 26px;\n position: relative;\n width: ", ";\n"])), function (props) {
14
+ return props.elevated || !props.hasChildren ? 'inline-flex' : 'flex';
15
+ }, function (props) {
16
+ return props.theme.primaryFontFamily;
17
+ }, function (props) {
18
+ return props.elevated ? 'fit-content' : 'initial';
19
+ });
20
+ var BadgeChildrenContainer = styled__default['default'].span.attrs(defaultTheme.applyDefaultTheme)(_templateObject2 || (_templateObject2 = defaultTheme._taggedTemplateLiteral(["\n align-self: center;\n height: fit-content;\n margin-right: 8px;\n"])));
21
+ var BadgeLabel = styled__default['default'].span.attrs(defaultTheme.applyDefaultTheme)(_templateObject3 || (_templateObject3 = defaultTheme._taggedTemplateLiteral(["\n border-radius: ", ";\n display: inline-block;\n font-size: ", ";\n font-weight: normal;\n height: fit-content;\n letter-spacing: 0.32px;\n margin-left: ", ";\n padding ", ";\n position: ", ";\n right: 0;\n transform: ", ";\n\n ", "\n\n ", "\n"])), function (props) {
22
+ return props.elevated ? '12px' : '14px';
23
+ }, function (props) {
24
+ return props.elevated ? '0.625rem' : '0.750rem';
25
+ }, function (props) {
26
+ return props.elevated ? '15px' : 'auto';
27
+ }, function (props) {
28
+ return props.elevated ? '4px 7px' : '6px 10px';
29
+ }, function (props) {
30
+ return props.elevated ? 'absolute' : 'initial';
31
+ }, function (props) {
32
+ return props.elevated ? 'translate(33%, -8px)' : 'initial';
33
+ }, function (props) {
34
+ return props.theme.themeProp('background', function () {
35
+ var active = props.active;
36
+ var error = props.error;
37
+ var warning = props.warning;
38
+
39
+ switch (true) {
40
+ case !error && !warning && !active:
41
+ return props.theme.getColor('gray-600');
42
+
43
+ case !error && !warning && active:
44
+ return props.theme.getColor('gray-700');
45
+
46
+ case error && active:
47
+ return props.theme.getColor('red-500');
48
+
49
+ case error:
50
+ return props.theme.getColor('red-200');
51
+
52
+ case warning && active:
53
+ return props.theme.getColor('signal-yellow-500');
54
+
55
+ case warning:
56
+ return props.theme.getColor('signal-yellow-400');
57
+
58
+ default:
59
+ return props.theme.getColor('gray-600');
60
+ }
61
+ }, function () {
62
+ var active = props.active;
63
+ var error = props.error;
64
+ var warning = props.warning;
65
+
66
+ switch (true) {
67
+ case !error && !warning && !active:
68
+ return props.theme.getColor('gray-200');
69
+
70
+ case !error && !warning && active:
71
+ return props.theme.getColor('white');
72
+
73
+ case error && active:
74
+ return props.theme.getColor('red-500');
75
+
76
+ case error:
77
+ return props.theme.getColor('red-200');
78
+
79
+ case warning && active:
80
+ return props.theme.getColor('signal-yellow-500');
81
+
82
+ case warning:
83
+ return props.theme.getColor('signal-yellow-400');
84
+
85
+ default:
86
+ return props.theme.getColor('gray-200');
87
+ }
88
+ });
89
+ }, function (props) {
90
+ return props.theme.themeProp('color', function () {
91
+ if (props.warning && !props.error || props.error && !props.active) {
92
+ return props.theme.getColor('gray-900');
93
+ } else {
94
+ return props.theme.getColor('white');
95
+ }
96
+ }, function () {
97
+ if (props.error && props.active) {
98
+ return props.theme.getColor('white');
99
+ } else {
100
+ return props.theme.getColor('gray-900');
101
+ }
102
+ });
103
+ });
104
+
105
+ var Badge = React__default['default'].forwardRef(function Badge(_ref, forwardedRef) {
106
+ var badgeContent = _ref.badgeContent,
107
+ children = _ref.children,
108
+ elevated = _ref.elevated,
109
+ active = _ref.active,
110
+ error = _ref.error,
111
+ warning = _ref.warning,
112
+ props = defaultTheme._objectWithoutProperties(_ref, ["badgeContent", "children", "elevated", "active", "error", "warning"]);
113
+
114
+ if (typeof badgeContent === 'number') {
115
+ badgeContent = Intl.NumberFormat('en', {
116
+ notation: 'compact'
117
+ }).format(badgeContent);
118
+ }
119
+
120
+ return React__default['default'].createElement(Badge$1, defaultTheme._extends({
121
+ ref: forwardedRef,
122
+ elevated: elevated,
123
+ hasChildren: Boolean(children)
124
+ }, props), children && React__default['default'].createElement(BadgeChildrenContainer, null, children), badgeContent && React__default['default'].createElement(BadgeLabel, {
125
+ elevated: elevated,
126
+ active: active,
127
+ error: error,
128
+ warning: warning
129
+ }, badgeContent));
130
+ });
131
+ Badge.propTypes = process.env.NODE_ENV !== "production" ? {
132
+ badgeContent: defaultTheme.PropTypes.oneOfType([defaultTheme.PropTypes.string, defaultTheme.PropTypes.number]).isRequired,
133
+ children: defaultTheme.PropTypes.oneOfType([defaultTheme.PropTypes.node, defaultTheme.PropTypes.string]),
134
+ elevated: defaultTheme.PropTypes.bool,
135
+ active: defaultTheme.PropTypes.bool,
136
+ error: defaultTheme.PropTypes.bool,
137
+ warning: defaultTheme.PropTypes.bool
138
+ } : {};
139
+ Badge.defaultProps = {
140
+ elevated: false,
141
+ active: false,
142
+ error: false,
143
+ warning: false
144
+ };
145
+
146
+ exports.Badge = Badge;
@@ -0,0 +1,298 @@
1
+ 'use strict';
2
+
3
+ var defaultTheme = require('./defaultTheme-870f7df1.js');
4
+ var React = require('react');
5
+ var styled = require('styled-components');
6
+ var Popover = require('./Popover-616682bf.js');
7
+ var ContextMenu = require('./ContextMenu-a68d4f28.js');
8
+
9
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
10
+
11
+ function _interopNamespace(e) {
12
+ if (e && e.__esModule) return e;
13
+ var n = Object.create(null);
14
+ if (e) {
15
+ Object.keys(e).forEach(function (k) {
16
+ if (k !== 'default') {
17
+ var d = Object.getOwnPropertyDescriptor(e, k);
18
+ Object.defineProperty(n, k, d.get ? d : {
19
+ enumerable: true,
20
+ get: function () {
21
+ return e[k];
22
+ }
23
+ });
24
+ }
25
+ });
26
+ }
27
+ n['default'] = e;
28
+ return Object.freeze(n);
29
+ }
30
+
31
+ var React__namespace = /*#__PURE__*/_interopNamespace(React);
32
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
33
+ var styled__default = /*#__PURE__*/_interopDefaultLegacy(styled);
34
+
35
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17, _templateObject18, _templateObject19, _templateObject20, _templateObject21, _templateObject22, _templateObject23, _templateObject24, _templateObject25, _templateObject26, _templateObject27, _templateObject28;
36
+ var Button$1 = styled__default['default'].button.attrs(defaultTheme.applyDefaultTheme)(_templateObject || (_templateObject = defaultTheme._taggedTemplateLiteral(["\n position: relative;\n border-radius: 3px;\n font-family: inherit;\n font-size: 0.875rem;\n font-weight: 400;\n padding: 12px 16px;\n cursor: pointer;\n background: ", ";\n border: 2px solid ", ";\n transition: all 250ms, opacity 200ms;\n\n &:hover,\n &.dropdown-is-active {\n background: #296c58;\n border-color: #296c58;\n }\n\n ", "\n\n && {\n ", ";\n }\n\n && {\n ", ";\n }\n\n && {\n ", ";\n }\n\n && {\n ", ";\n }\n\n ", ";\n\n ", ";\n\n ", ";\n\n ", ";\n\n ", ";\n\n ", ";\n"])), function (props) {
37
+ return props.theme.getColor('emerald-500');
38
+ }, function (props) {
39
+ return props.theme.getColor('emerald-500');
40
+ }, function (props) {
41
+ return props.theme.themeProp('color', props.theme.getColor('white'), props.theme.getColor('white'));
42
+ }, function (props) {
43
+ return props.secondary && styled.css(_templateObject2 || (_templateObject2 = defaultTheme._taggedTemplateLiteral(["\n background: ", ";\n border-color: ", ";\n\n ", "\n\n &:hover,\n &.dropdown-is-active {\n background: ", ";\n border-color: ", ";\n }\n "])), function (props) {
44
+ return props.theme.getColor('gray-200');
45
+ }, function (props) {
46
+ return props.theme.getColor('gray-200');
47
+ }, props.theme.themeProp('color', props.theme.getColor('gray-700'), props.theme.getColor('gray-700')), function (props) {
48
+ return props.theme.getColor('gray-300');
49
+ }, function (props) {
50
+ return props.theme.getColor('gray-300');
51
+ });
52
+ }, function (props) {
53
+ return props.outlined && styled.css(_templateObject3 || (_templateObject3 = defaultTheme._taggedTemplateLiteral(["\n background: transparent;\n transition: none;\n\n ", "\n\n ", "\n\n &:hover,\n &.dropdown-is-active {\n background-color: #296c58;\n\n ", "\n\n ", "\n }\n "])), props.theme.themeProp('border-color', props.theme.getColor('emerald-400'), props.theme.getColor('emerald-500')), props.theme.themeProp('color', props.theme.getColor('emerald-400'), props.theme.getColor('emerald-500')), props.theme.themeProp('border-color', props.theme.getColor('emerald-400'), '#296c58'), props.theme.themeProp('color', props.theme.getColor('gray-200'), props.theme.getColor('gray-200')));
54
+ }, function (props) {
55
+ return props.outlined && props.secondary && styled.css(_templateObject4 || (_templateObject4 = defaultTheme._taggedTemplateLiteral(["\n ", "\n\n ", "\n\n &:hover,\n &.dropdown-is-active {\n background: ", ";\n\n ", "\n\n ", "\n }\n "])), props.theme.themeProp('border-color', props.theme.getColor('gray-200'), props.theme.getColor('gray-700')), props.theme.themeProp('color', props.theme.getColor('gray-200'), props.theme.getColor('gray-700')), props.theme.getColor('gray-300'), props.theme.themeProp('border-color', props.theme.getColor('gray-300'), props.theme.getColor('gray-300')), props.theme.themeProp('color', props.theme.getColor('gray-700'), props.theme.getColor('gray-700')));
56
+ }, function (props) {
57
+ return props.outlined && props.secondary && props.dropdownItems && styled.css(_templateObject5 || (_templateObject5 = defaultTheme._taggedTemplateLiteral(["\n &:hover,\n &.dropdown-is-active {\n ", "\n }\n "])), props.theme.themeProp('border-color', props.theme.getColor('gray-300'), props.theme.getColor('gray-700')));
58
+ }, function (props) {
59
+ return props.block && styled.css(_templateObject6 || (_templateObject6 = defaultTheme._taggedTemplateLiteral(["\n width: 100%;\n "])));
60
+ }, function (props) {
61
+ return props.disabled && styled.css(_templateObject7 || (_templateObject7 = defaultTheme._taggedTemplateLiteral(["\n opacity: 0.5;\n cursor: not-allowed;\n pointer-events: none;\n "])));
62
+ }, function (props) {
63
+ return props.size === 'x-small' && styled.css(_templateObject8 || (_templateObject8 = defaultTheme._taggedTemplateLiteral(["\n padding: 1px 16px;\n height: 24px;\n "])));
64
+ }, function (props) {
65
+ return props.size === 'small' && styled.css(_templateObject9 || (_templateObject9 = defaultTheme._taggedTemplateLiteral(["\n padding: 6px 16px;\n "])));
66
+ }, function (props) {
67
+ return props.size === 'large' && styled.css(_templateObject10 || (_templateObject10 = defaultTheme._taggedTemplateLiteral(["\n padding: 16px 16px;\n "])));
68
+ }, function (props) {
69
+ return props.singleAction && styled.css(_templateObject11 || (_templateObject11 = defaultTheme._taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n gap: 34px;\n border-radius: 3px !important;\n transition: all 250ms, opacity 200ms;\n "])));
70
+ });
71
+ var ButtonContent = styled__default['default'].div.attrs(defaultTheme.applyDefaultTheme)(_templateObject12 || (_templateObject12 = defaultTheme._taggedTemplateLiteral(["\n display: flex;\n justify-content: center;\n align-items: center;\n transform: scale(1);\n opacity: 1;\n transition: all 200ms;\n\n > svg {\n width: 100%;\n max-width: 16px;\n max-height: 16px;\n margin-right: 8px;\n\n ", ";\n\n ", ";\n }\n\n ", "\n\n ", ";\n"])), function (props) {
72
+ return props.size === 'small' && styled.css(_templateObject13 || (_templateObject13 = defaultTheme._taggedTemplateLiteral(["\n max-width: 13px;\n max-height: 13px;\n "])));
73
+ }, function (props) {
74
+ return props.size === 'x-small' && styled.css(_templateObject14 || (_templateObject14 = defaultTheme._taggedTemplateLiteral(["\n max-width: 11px;\n max-height: 11px;\n "])));
75
+ }, function (props) {
76
+ return props.$loading && styled.css(_templateObject15 || (_templateObject15 = defaultTheme._taggedTemplateLiteral(["\n transform: scale(0.95);\n opacity: 0;\n "])));
77
+ }, function (props) {
78
+ return props.singleAction && styled.css(_templateObject16 || (_templateObject16 = defaultTheme._taggedTemplateLiteral(["\n svg {\n width: 100% !important;\n height: 100% !important;\n margin-right: 24px;\n }\n "])));
79
+ });
80
+ var LoadingIndicator = styled__default['default'].div.attrs(defaultTheme.applyDefaultTheme)(_templateObject17 || (_templateObject17 = defaultTheme._taggedTemplateLiteral(["\n position: absolute;\n height: 100%;\n width: 100%;\n top: 0;\n left: 0;\n padding: 4px;\n background: inherit;\n opacity: 0;\n transition: opacity 200ms;\n box-sizing: border-box;\n\n ", "\n"])), function (props) {
81
+ return props.$loading && styled.css(_templateObject18 || (_templateObject18 = defaultTheme._taggedTemplateLiteral(["\n opacity: 1;\n "])));
82
+ });
83
+ var LoadingIndicatorSvg = styled__default['default'].svg.attrs(defaultTheme.applyDefaultTheme)(_templateObject19 || (_templateObject19 = defaultTheme._taggedTemplateLiteral(["\n height: 100%;\n color: inherit;\n transform: rotate(-88deg);\n"])));
84
+ var LoadingIndicatorSvgCircle = styled__default['default'].circle.attrs(defaultTheme.applyDefaultTheme)(_templateObject20 || (_templateObject20 = defaultTheme._taggedTemplateLiteral(["\n transition: stroke-dashoffset 300ms linear;\n stroke-dasharray: 113;\n"])));
85
+ var ButtonWrapper = styled__default['default'].span.attrs(defaultTheme.applyDefaultTheme)(_templateObject21 || (_templateObject21 = defaultTheme._taggedTemplateLiteral(["\n white-space: nowrap;\n"])));
86
+ var MainButtonContainer = styled__default['default'].div.attrs(defaultTheme.applyDefaultTheme)(_templateObject22 || (_templateObject22 = defaultTheme._taggedTemplateLiteral(["\n display: inline-block;\n button {\n ", ";\n\n ", ";\n }\n"])), function (props) {
87
+ return props.dropdownItems && styled.css(_templateObject23 || (_templateObject23 = defaultTheme._taggedTemplateLiteral(["\n border-bottom-right-radius: 0;\n border-top-right-radius: 0;\n "])));
88
+ }, function (props) {
89
+ return props.dropdownItems && props.outlined && styled.css(_templateObject24 || (_templateObject24 = defaultTheme._taggedTemplateLiteral(["\n border-right: none;\n "])));
90
+ });
91
+ var MainButtonContainerSingle = styled__default['default'].div.attrs(defaultTheme.applyDefaultTheme)(_templateObject25 || (_templateObject25 = defaultTheme._taggedTemplateLiteral(["\n display: inline-block;\n ", ";\n\n button {\n ", ";\n }\n"])), function (props) {
92
+ return props.singleAction && styled.css(_templateObject26 || (_templateObject26 = defaultTheme._taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n border-radius: 3px !important;\n transition: all 250ms, opacity 200ms;\n "])));
93
+ }, function (props) {
94
+ return props.dropdownItems && styled.css(_templateObject27 || (_templateObject27 = defaultTheme._taggedTemplateLiteral(["\n border-bottom-right-radius: 0;\n border-top-right-radius: 0;\n "])));
95
+ });
96
+ var DropdownButtonContainer = styled__default['default'].div.attrs(defaultTheme.applyDefaultTheme)(_templateObject28 || (_templateObject28 = defaultTheme._taggedTemplateLiteral(["\n display: inline-block;\n\n button {\n border-bottom-left-radius: 0;\n border-top-left-radius: 0;\n\n ", ";\n }\n\n svg {\n color: inherit;\n height: 7px;\n width: 12px;\n\n ", ";\n }\n"])), function (props) {
97
+ return !props.singleAction && 'border-left: none';
98
+ }, function (props) {
99
+ return !props.singleAction && 'margin-bottom: 1px';
100
+ });
101
+
102
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
103
+
104
+ var _ref = /*#__PURE__*/React__namespace.createElement("path", {
105
+ fill: "currentColor",
106
+ d: "M12 14.15l-12-12L2.15 0 12 9.9 21.85.05 24 2.2 12 14.15z"
107
+ });
108
+
109
+ function SvgExpandMore(props) {
110
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends({
111
+ xmlns: "http://www.w3.org/2000/svg",
112
+ viewBox: "0 0 24 14.15"
113
+ }, props), _ref);
114
+ }
115
+
116
+ var Button = React__default['default'].forwardRef(function Button(_ref, forwardedRef) {
117
+ var onClickEffect = _ref.onClickEffect,
118
+ singleAction = _ref.singleAction,
119
+ dropdownItems = _ref.dropdownItems,
120
+ secondary = _ref.secondary,
121
+ outlined = _ref.outlined,
122
+ block = _ref.block,
123
+ icon = _ref.icon,
124
+ size = _ref.size,
125
+ disabled = _ref.disabled,
126
+ loading = _ref.loading,
127
+ className = _ref.className,
128
+ children = _ref.children,
129
+ props = defaultTheme._objectWithoutProperties(_ref, ["onClickEffect", "singleAction", "dropdownItems", "secondary", "outlined", "block", "icon", "size", "disabled", "loading", "className", "children"]);
130
+
131
+ var _useState = React.useState(loading || false),
132
+ _useState2 = defaultTheme._slicedToArray(_useState, 2),
133
+ loadingState = _useState2[0],
134
+ setLoadingState = _useState2[1];
135
+
136
+ var _useState3 = React.useState(113),
137
+ _useState4 = defaultTheme._slicedToArray(_useState3, 2),
138
+ loadingStep = _useState4[0],
139
+ setLoadingStep = _useState4[1];
140
+
141
+ var loadingInterval = React.useRef(0);
142
+
143
+ var _useState5 = React.useState(false),
144
+ _useState6 = defaultTheme._slicedToArray(_useState5, 2),
145
+ dropdownIsActive = _useState6[0],
146
+ setDropdownIsActive = _useState6[1];
147
+
148
+ var enableLoading = function enableLoading() {
149
+ loadingInterval.current = setInterval(function () {
150
+ setLoadingStep(function (currentLoadingStep) {
151
+ var newLoadingStep = Math.round(currentLoadingStep - 15 * currentLoadingStep / 100);
152
+
153
+ if (newLoadingStep === currentLoadingStep) {
154
+ clearInterval(loadingInterval.current);
155
+ }
156
+
157
+ return newLoadingStep;
158
+ });
159
+ }, 300);
160
+ setLoadingState(true);
161
+ };
162
+
163
+ var disableLoading = function disableLoading() {
164
+ clearInterval(loadingInterval.current);
165
+ setLoadingStep(0);
166
+ setTimeout(function () {
167
+ setLoadingState(false);
168
+ setLoadingStep(113);
169
+ }, 500);
170
+ };
171
+
172
+ React.useEffect(function () {
173
+ if (loading) {
174
+ enableLoading();
175
+ } else {
176
+ disableLoading();
177
+ }
178
+
179
+ return function () {
180
+ return clearInterval(loadingInterval.current);
181
+ };
182
+ }, [loading]);
183
+
184
+ var handleDropdownButtonClick = function handleDropdownButtonClick() {
185
+ setDropdownIsActive(true);
186
+ };
187
+
188
+ var handleDropdownClose = function handleDropdownClose() {
189
+ setDropdownIsActive(false);
190
+ };
191
+
192
+ return React__default['default'].createElement(ButtonWrapper, null, !singleAction ? React__default['default'].createElement(React__default['default'].Fragment, null, React__default['default'].createElement(MainButtonContainer, {
193
+ dropdownItems: dropdownItems,
194
+ secondary: secondary,
195
+ outlined: outlined
196
+ }, React__default['default'].createElement(Button$1, defaultTheme._extends({
197
+ ref: forwardedRef,
198
+ onClick: onClickEffect,
199
+ singleAction: singleAction,
200
+ dropdownItems: dropdownItems,
201
+ secondary: secondary,
202
+ outlined: outlined,
203
+ block: block,
204
+ size: size,
205
+ disabled: disabled,
206
+ className: className,
207
+ "aria-busy": disabled
208
+ }, props), React__default['default'].createElement(ButtonContent, {
209
+ $loading: loadingState,
210
+ size: size
211
+ }, icon, children), React__default['default'].createElement(LoadingIndicator, {
212
+ $loading: loadingState,
213
+ style: {
214
+ opacity: loadingState ? 1 : 0
215
+ }
216
+ }, React__default['default'].createElement(LoadingIndicatorSvg, {
217
+ viewBox: "22 22 44 44"
218
+ }, React__default['default'].createElement(LoadingIndicatorSvgCircle, {
219
+ cx: "44",
220
+ cy: "44",
221
+ r: "18",
222
+ fill: "none",
223
+ strokeWidth: "4",
224
+ stroke: "currentColor",
225
+ style: {
226
+ strokeDashoffset: "".concat(loadingStep, "px")
227
+ }
228
+ }))))), dropdownItems && React__default['default'].createElement(DropdownButtonContainer, {
229
+ dropdownItems: dropdownItems,
230
+ secondary: secondary,
231
+ outlined: outlined
232
+ }, React__default['default'].createElement(Popover.Popover, {
233
+ content: React__default['default'].createElement(ContextMenu.ContextMenu, null, dropdownItems),
234
+ placement: 'bottom-end',
235
+ arrow: false,
236
+ contextMenu: true,
237
+ onHide: handleDropdownClose
238
+ }, React__default['default'].createElement(Button$1, {
239
+ ref: forwardedRef,
240
+ singleAction: singleAction,
241
+ dropdownItems: dropdownItems,
242
+ secondary: secondary,
243
+ outlined: outlined,
244
+ block: block,
245
+ size: size,
246
+ disabled: disabled,
247
+ onClick: handleDropdownButtonClick,
248
+ className: dropdownIsActive ? 'dropdown-is-active' : ''
249
+ }, React__default['default'].createElement(SvgExpandMore, null))))) : React__default['default'].createElement(React__default['default'].Fragment, null, React__default['default'].createElement(MainButtonContainerSingle, {
250
+ dropdownItems: dropdownItems,
251
+ secondary: secondary,
252
+ outlined: outlined,
253
+ className: className
254
+ }, React__default['default'].createElement(DropdownButtonContainer, {
255
+ singleAction: singleAction
256
+ }, React__default['default'].createElement(Popover.Popover, {
257
+ content: React__default['default'].createElement(ContextMenu.ContextMenu, null, dropdownItems),
258
+ placement: 'bottom-end',
259
+ arrow: false,
260
+ contextMenu: true,
261
+ onHide: handleDropdownClose
262
+ }, React__default['default'].createElement(Button$1, {
263
+ ref: forwardedRef,
264
+ singleAction: singleAction,
265
+ dropdownItems: dropdownItems,
266
+ secondary: secondary,
267
+ outlined: outlined,
268
+ block: block,
269
+ size: size,
270
+ disabled: disabled,
271
+ onClick: handleDropdownButtonClick,
272
+ className: dropdownIsActive ? 'dropdown-is-active' : ''
273
+ }, React__default['default'].createElement(ButtonContent, {
274
+ $loading: loadingState,
275
+ size: size,
276
+ singleAction: singleAction
277
+ }, icon, children), React__default['default'].createElement(SvgExpandMore, null)))))));
278
+ });
279
+ Button.propTypes = process.env.NODE_ENV !== "production" ? {
280
+ onClickEffect: defaultTheme.PropTypes.func,
281
+ singleAction: defaultTheme.PropTypes.bool,
282
+ dropdownItems: defaultTheme.PropTypes.node,
283
+ secondary: defaultTheme.PropTypes.bool,
284
+ outlined: defaultTheme.PropTypes.bool,
285
+ block: defaultTheme.PropTypes.bool,
286
+ icon: defaultTheme.PropTypes.element,
287
+ size: defaultTheme.PropTypes.oneOf(['x-small', 'small', 'normal', 'large']),
288
+ disabled: defaultTheme.PropTypes.bool,
289
+ loading: defaultTheme.PropTypes.bool,
290
+ className: defaultTheme.PropTypes.string,
291
+ children: defaultTheme.PropTypes.any.isRequired
292
+ } : {};
293
+ Button.defaultProps = {
294
+ size: 'normal',
295
+ singleHover: false
296
+ };
297
+
298
+ exports.Button = Button;