@ntbjs/react-components 0.0.1-beta.9 → 1.1.0-beta.1

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 (48) hide show
  1. package/ActionButton-90485300.js +43 -0
  2. package/AssetGallery-9bf4cd82.js +1403 -0
  3. package/AssetPreviewTopBar-a172fc5c.js +105 -0
  4. package/Badge-86593df4.js +146 -0
  5. package/Button-0d728b52.js +156 -0
  6. package/Checkbox-50f1f3c7.js +136 -0
  7. package/CompactTextInput-24126cf9.js +280 -0
  8. package/Popover-d3e2f6c0.js +97 -0
  9. package/README.md +1 -2
  10. package/Radio-0b46b2a8.js +83 -0
  11. package/SectionSeparator-12aff748.js +37 -0
  12. package/Switch-aa384260.js +104 -0
  13. package/TextArea-52cf4c0a.js +173 -0
  14. package/TextInput-a7c32f5f.js +250 -0
  15. package/Tooltip-f95a39f4.js +57 -0
  16. package/data/Badge/index.js +10 -0
  17. package/data/Popover/index.js +13 -5
  18. package/data/index.js +19 -6
  19. package/{defaultTheme-f1063879.js → defaultTheme-870f7df1.js} +15 -3
  20. package/icons/arrow-back.svg +4 -0
  21. package/icons/audio.svg +3 -0
  22. package/icons/check.svg +3 -0
  23. package/icons/close.svg +4 -0
  24. package/icons/edit-note.svg +4 -0
  25. package/icons/headset.svg +1 -0
  26. package/icons/library-add.svg +3 -0
  27. package/icons/link.svg +4 -0
  28. package/icons/search.svg +3 -0
  29. package/inputs/ActionButton/index.js +10 -4
  30. package/inputs/Button/index.js +10 -0
  31. package/inputs/Checkbox/index.js +12 -0
  32. package/inputs/CompactTextInput/index.js +17 -0
  33. package/inputs/Radio/index.js +12 -0
  34. package/inputs/Switch/index.js +12 -0
  35. package/inputs/TextArea/index.js +12 -0
  36. package/inputs/TextInput/index.js +12 -0
  37. package/inputs/index.js +33 -4
  38. package/layout/SectionSeparator/index.js +10 -0
  39. package/layout/index.js +12 -0
  40. package/package.json +13 -8
  41. package/ssr/index.js +14 -0
  42. package/widgets/AssetGallery/index.js +27 -10
  43. package/widgets/AssetPreview/AssetPreviewTopBar/index.js +10 -0
  44. package/widgets/index.js +31 -10
  45. package/ActionButton-dfa33fb3.js +0 -36
  46. package/AssetGallery-92320d63.js +0 -970
  47. package/Popover-01b3e392.js +0 -80
  48. package/Tooltip-830b629b.js +0 -49
@@ -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,156 @@
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, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14;
13
+ 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: 1rem;\n font-weight: 500;\n padding: 6px 18px;\n cursor: pointer;\n background: ", ";\n border: 2px solid ", ";\n line-height: 1.2;\n transition: all 250ms, opacity 200ms;\n\n &:hover {\n background: #5a9b88;\n border-color: #5a9b88;\n }\n\n ", "\n\n && {\n ", ";\n }\n\n && {\n ", ";\n }\n\n && {\n ", ";\n }\n\n ", ";\n\n ", ";\n\n ", ";\n"])), function (props) {
14
+ return props.theme.getColor('emerald-500');
15
+ }, function (props) {
16
+ return props.theme.getColor('emerald-500');
17
+ }, function (props) {
18
+ return props.theme.themeProp('color', props.theme.getColor('white'), props.theme.getColor('white'));
19
+ }, function (props) {
20
+ return props.secondary && styled.css(_templateObject2 || (_templateObject2 = defaultTheme._taggedTemplateLiteral(["\n background: ", ";\n ", "\n border-color: ", ";\n\n &:hover {\n background: ", ";\n border-color: ", ";\n }\n "])), function (props) {
21
+ return props.theme.getColor('gray-200');
22
+ }, props.theme.themeProp('color', props.theme.getColor('gray-700'), props.theme.getColor('gray-700')), function (props) {
23
+ return props.theme.getColor('gray-200');
24
+ }, function (props) {
25
+ return props.theme.getColor('gray-100');
26
+ }, function (props) {
27
+ return props.theme.getColor('gray-100');
28
+ });
29
+ }, function (props) {
30
+ return props.outlined && styled.css(_templateObject3 || (_templateObject3 = defaultTheme._taggedTemplateLiteral(["\n background: transparent;\n border-color: ", ";\n\n ", "\n &:hover {\n border-color: ", ";\n }\n "])), props.theme.getColor('gray-200'), props.theme.themeProp('color', props.theme.getColor('emerald-500'), props.theme.getColor('emerald-500')), props.theme.getColor('gray-300'));
31
+ }, function (props) {
32
+ return props.outlined && props.secondary && styled.css(_templateObject4 || (_templateObject4 = defaultTheme._taggedTemplateLiteral(["\n ", "\n\n &:hover {\n background: transparent;\n }\n "])), props.theme.themeProp('color', props.theme.getColor('gray-200'), props.theme.getColor('gray-700')));
33
+ }, function (props) {
34
+ return props.block && styled.css(_templateObject5 || (_templateObject5 = defaultTheme._taggedTemplateLiteral(["\n width: 100%;\n "])));
35
+ }, function (props) {
36
+ return props.disabled && styled.css(_templateObject6 || (_templateObject6 = defaultTheme._taggedTemplateLiteral(["\n opacity: 0.5;\n cursor: not-allowed;\n pointer-events: none;\n "])));
37
+ }, function (props) {
38
+ return props.size === 'small' && styled.css(_templateObject7 || (_templateObject7 = defaultTheme._taggedTemplateLiteral(["\n font-size: 0.875rem;\n line-height: 1.15;\n padding: 3px 12px;\n "])));
39
+ });
40
+ var ButtonContent = styled__default['default'].div.attrs(defaultTheme.applyDefaultTheme)(_templateObject8 || (_templateObject8 = 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: 7px;\n\n ", ";\n }\n\n ", "\n"])), function (props) {
41
+ return props.size === 'small' && styled.css(_templateObject9 || (_templateObject9 = defaultTheme._taggedTemplateLiteral(["\n max-width: 13px;\n max-height: 13px;\n "])));
42
+ }, function (props) {
43
+ return props.$loading && styled.css(_templateObject10 || (_templateObject10 = defaultTheme._taggedTemplateLiteral(["\n transform: scale(0.95);\n opacity: 0;\n "])));
44
+ });
45
+ var LoadingIndicator = styled__default['default'].div.attrs(defaultTheme.applyDefaultTheme)(_templateObject11 || (_templateObject11 = 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) {
46
+ return props.$loading && styled.css(_templateObject12 || (_templateObject12 = defaultTheme._taggedTemplateLiteral(["\n opacity: 1;\n "])));
47
+ });
48
+ var LoadingIndicatorSvg = styled__default['default'].svg.attrs(defaultTheme.applyDefaultTheme)(_templateObject13 || (_templateObject13 = defaultTheme._taggedTemplateLiteral(["\n height: 100%;\n color: inherit;\n transform: rotate(-88deg);\n"])));
49
+ var LoadingIndicatorSvgCircle = styled__default['default'].circle.attrs(defaultTheme.applyDefaultTheme)(_templateObject14 || (_templateObject14 = defaultTheme._taggedTemplateLiteral(["\n transition: stroke-dashoffset 300ms linear;\n stroke-dasharray: 113;\n"])));
50
+
51
+ var Button = React__default['default'].forwardRef(function Button(_ref, forwardedRef) {
52
+ var secondary = _ref.secondary,
53
+ outlined = _ref.outlined,
54
+ block = _ref.block,
55
+ icon = _ref.icon,
56
+ size = _ref.size,
57
+ disabled = _ref.disabled,
58
+ loading = _ref.loading,
59
+ className = _ref.className,
60
+ children = _ref.children,
61
+ props = defaultTheme._objectWithoutProperties(_ref, ["secondary", "outlined", "block", "icon", "size", "disabled", "loading", "className", "children"]);
62
+
63
+ var _useState = React.useState(loading || false),
64
+ _useState2 = defaultTheme._slicedToArray(_useState, 2),
65
+ loadingState = _useState2[0],
66
+ setLoadingState = _useState2[1];
67
+
68
+ var _useState3 = React.useState(113),
69
+ _useState4 = defaultTheme._slicedToArray(_useState3, 2),
70
+ loadingStep = _useState4[0],
71
+ setLoadingStep = _useState4[1];
72
+
73
+ var loadingInterval = React.useRef(0);
74
+
75
+ var enableLoading = function enableLoading() {
76
+ loadingInterval.current = setInterval(function () {
77
+ setLoadingStep(function (currentLoadingStep) {
78
+ var newLoadingStep = Math.round(currentLoadingStep - 15 * currentLoadingStep / 100);
79
+
80
+ if (newLoadingStep === currentLoadingStep) {
81
+ clearInterval(loadingInterval.current);
82
+ }
83
+
84
+ return newLoadingStep;
85
+ });
86
+ }, 300);
87
+ setLoadingState(true);
88
+ };
89
+
90
+ var disableLoading = function disableLoading() {
91
+ clearInterval(loadingInterval.current);
92
+ setLoadingStep(0);
93
+ setTimeout(function () {
94
+ setLoadingState(false);
95
+ setLoadingStep(113);
96
+ }, 500);
97
+ };
98
+
99
+ React.useEffect(function () {
100
+ if (loading) {
101
+ enableLoading();
102
+ } else {
103
+ disableLoading();
104
+ }
105
+
106
+ return function () {
107
+ return clearInterval(loadingInterval.current);
108
+ };
109
+ }, [loading]);
110
+ return React__default['default'].createElement(Button$1, defaultTheme._extends({
111
+ ref: forwardedRef,
112
+ secondary: secondary,
113
+ outlined: outlined,
114
+ block: block,
115
+ size: size,
116
+ disabled: disabled,
117
+ className: className,
118
+ "aria-busy": disabled
119
+ }, props), React__default['default'].createElement(ButtonContent, {
120
+ $loading: loadingState,
121
+ size: size
122
+ }, icon, children), React__default['default'].createElement(LoadingIndicator, {
123
+ $loading: loadingState,
124
+ style: {
125
+ opacity: loadingState ? 1 : 0
126
+ }
127
+ }, React__default['default'].createElement(LoadingIndicatorSvg, {
128
+ viewBox: "22 22 44 44"
129
+ }, React__default['default'].createElement(LoadingIndicatorSvgCircle, {
130
+ cx: "44",
131
+ cy: "44",
132
+ r: "18",
133
+ fill: "none",
134
+ strokeWidth: "4",
135
+ stroke: "currentColor",
136
+ style: {
137
+ strokeDashoffset: "".concat(loadingStep, "px")
138
+ }
139
+ }))));
140
+ });
141
+ Button.defaultProps = {
142
+ size: 'normal'
143
+ };
144
+ Button.propTypes = process.env.NODE_ENV !== "production" ? {
145
+ secondary: defaultTheme.PropTypes.bool,
146
+ outlined: defaultTheme.PropTypes.bool,
147
+ block: defaultTheme.PropTypes.bool,
148
+ icon: defaultTheme.PropTypes.element,
149
+ size: defaultTheme.PropTypes.oneOf(['normal', 'small']),
150
+ disabled: defaultTheme.PropTypes.bool,
151
+ loading: defaultTheme.PropTypes.bool,
152
+ className: defaultTheme.PropTypes.string,
153
+ children: defaultTheme.PropTypes.any.isRequired
154
+ } : {};
155
+
156
+ exports.Button = Button;
@@ -0,0 +1,136 @@
1
+ 'use strict';
2
+
3
+ var defaultTheme = require('./defaultTheme-870f7df1.js');
4
+ var React = require('react');
5
+ var nanoid = require('nanoid');
6
+ var styled = require('styled-components');
7
+ var lodash = require('lodash');
8
+
9
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
10
+
11
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
12
+ var styled__default = /*#__PURE__*/_interopDefaultLegacy(styled);
13
+
14
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8;
15
+ var checkboxSize = '18px';
16
+ var Checkbox$1 = styled__default['default'].div.attrs(defaultTheme.applyDefaultTheme)(_templateObject || (_templateObject = defaultTheme._taggedTemplateLiteral(["\n display: flex;\n flex-direction: column;\n"])));
17
+ var CheckIcon = styled__default['default'].div.attrs(defaultTheme.applyDefaultTheme)(_templateObject2 || (_templateObject2 = defaultTheme._taggedTemplateLiteral(["\n opacity: 0;\n transform: scale(0.1);\n transition: all 200ms;\n position: absolute;\n width: 12px;\n top: 4px;\n left: 3px;\n color: ", ";\n\n svg {\n width: 100%;\n display: block;\n }\n"])), function (props) {
18
+ return props.theme.getColor('gray-100');
19
+ });
20
+ var IndeterminateCheckIcon = styled__default['default'].div.attrs(defaultTheme.applyDefaultTheme)(_templateObject3 || (_templateObject3 = defaultTheme._taggedTemplateLiteral(["\n opacity: 0;\n transform: scale(0.1);\n transition: all 200ms;\n position: absolute;\n height: 2px;\n top: 8px;\n left: 4px;\n background: ", ";\n width: 10px;\n"])), function (props) {
21
+ return props.theme.getColor('gray-100');
22
+ });
23
+ var CheckboxLabel = styled__default['default'].label.attrs(defaultTheme.applyDefaultTheme)(_templateObject4 || (_templateObject4 = defaultTheme._taggedTemplateLiteral(["\n display: inline-flex;\n position: relative;\n cursor: pointer;\n user-select: none;\n min-height: ", ";\n text-align: left;\n flex-wrap: wrap;\n flex: 1;\n line-height: ", ";\n margin-right: auto;\n\n & input[type='checkbox'] {\n position: absolute;\n opacity: 0;\n pointer-events: none;\n margin: 0;\n }\n\n &::before {\n content: '';\n border: 2px solid ", ";\n border-radius: 2px;\n transition: all 200ms;\n width: ", ";\n height: ", ";\n box-sizing: border-box;\n }\n\n &:has(input[type='checkbox']:checked) {\n &::before {\n background: ", ";\n border-color: ", ";\n }\n }\n\n &:has(input[type='checkbox']:not([data-indeterminate='true']):checked) {\n ", " {\n opacity: 1;\n transform: scale(1);\n }\n }\n\n &:has(input[type='checkbox'][data-indeterminate='true']:checked) {\n ", " {\n opacity: 1;\n transform: scale(1);\n }\n }\n\n ", "\n"])), checkboxSize, checkboxSize, function (props) {
24
+ return props.theme.getColor('gray-300');
25
+ }, checkboxSize, checkboxSize, function (props) {
26
+ return props.theme.getColor('emerald-500');
27
+ }, function (props) {
28
+ return props.theme.getColor('emerald-500');
29
+ }, CheckIcon, IndeterminateCheckIcon, function (props) {
30
+ return props.disabled && styled.css(_templateObject5 || (_templateObject5 = defaultTheme._taggedTemplateLiteral(["\n opacity: 0.5;\n cursor: not-allowed;\n "])));
31
+ });
32
+ var CheckboxVisualLabel = styled__default['default'].div.attrs(defaultTheme.applyDefaultTheme)(_templateObject6 || (_templateObject6 = defaultTheme._taggedTemplateLiteral(["\n padding-left: 10px;\n font-weight: 400;\n font-size: 0.875rem;\n flex: 1;\n\n ", ";\n"])), function (props) {
33
+ return props.theme.themeProp('color', props.theme.getColor('gray-300'), props.theme.getColor('gray-600'));
34
+ });
35
+ var Description = styled__default['default'].p.attrs(defaultTheme.applyDefaultTheme)(_templateObject7 || (_templateObject7 = defaultTheme._taggedTemplateLiteral(["\n margin: 0.375rem 0 0 0;\n font-size: 0.75rem;\n line-height: 1.333;\n\n ", ";\n\n ", "\n"])), function (props) {
36
+ return props.theme.themeProp('color', props.theme.getColor('gray-400'), props.theme.getColor('gray-500'));
37
+ }, function (props) {
38
+ return props.error && styled.css(_templateObject8 || (_templateObject8 = defaultTheme._taggedTemplateLiteral(["\n content: 'error';\n ", "\n "])), props.theme.themeProp('color', props.theme.getColor('red-200'), props.theme.getColor('red-500')));
39
+ });
40
+
41
+ var Checkbox = React__default['default'].forwardRef(function Checkbox(_ref, forwardedRef) {
42
+ var checked = _ref.checked,
43
+ defaultChecked = _ref.defaultChecked,
44
+ disabled = _ref.disabled,
45
+ readOnly = _ref.readOnly,
46
+ name = _ref.name,
47
+ value = _ref.value,
48
+ description = _ref.description,
49
+ error = _ref.error,
50
+ indeterminate = _ref.indeterminate,
51
+ label = _ref.label,
52
+ onChange = _ref.onChange,
53
+ onBlur = _ref.onBlur,
54
+ className = _ref.className,
55
+ style = _ref.style;
56
+
57
+ var _useState = React.useState(nanoid.nanoid()),
58
+ _useState2 = defaultTheme._slicedToArray(_useState, 1),
59
+ uniqueId = _useState2[0];
60
+
61
+ var hasError = React.useMemo(function () {
62
+ if (lodash.isBoolean(error)) {
63
+ return error;
64
+ }
65
+
66
+ return !lodash.isEmpty(error);
67
+ }, [error]);
68
+ var descriptionText = React.useMemo(function () {
69
+ if (!lodash.isEmpty(error)) {
70
+ return error;
71
+ }
72
+
73
+ if (!lodash.isEmpty(description)) {
74
+ return description;
75
+ }
76
+
77
+ return null;
78
+ }, [description, error]);
79
+ var onClick = React.useCallback(function (event) {
80
+ if (readOnly) {
81
+ event.preventDefault();
82
+ }
83
+ }, [readOnly]);
84
+ return React__default['default'].createElement(Checkbox$1, {
85
+ className: className,
86
+ style: style
87
+ }, React__default['default'].createElement(CheckboxLabel, {
88
+ disabled: disabled || readOnly,
89
+ htmlFor: uniqueId,
90
+ onClick: onClick
91
+ }, React__default['default'].createElement("input", {
92
+ ref: forwardedRef,
93
+ id: uniqueId,
94
+ checked: checked,
95
+ defaultChecked: defaultChecked,
96
+ disabled: disabled,
97
+ readOnly: readOnly,
98
+ value: value,
99
+ name: name,
100
+ type: "checkbox",
101
+ onChange: onChange,
102
+ onBlur: onBlur,
103
+ "data-indeterminate": indeterminate
104
+ }), React__default['default'].createElement(IndeterminateCheckIcon, null), React__default['default'].createElement(CheckIcon, null, React__default['default'].createElement("svg", {
105
+ xmlns: "http://www.w3.org/2000/svg",
106
+ viewBox: "0 0 10.9 8.45"
107
+ }, React__default['default'].createElement("path", {
108
+ d: "m3.68,8.45L0,4.75l1.21-1.21,2.47,2.45L9.7,0l1.21,1.23-7.22,7.22Z",
109
+ fill: "currentColor"
110
+ }))), typeof label === 'string' && label.length > 0 && React__default['default'].createElement(CheckboxVisualLabel, null, label)), typeof descriptionText === 'string' && descriptionText.length > 0 && React__default['default'].createElement(Description, {
111
+ error: hasError
112
+ }, descriptionText));
113
+ });
114
+ Checkbox.propTypes = process.env.NODE_ENV !== "production" ? {
115
+ checked: defaultTheme.PropTypes.bool,
116
+ defaultChecked: defaultTheme.PropTypes.bool,
117
+ label: defaultTheme.PropTypes.string,
118
+ disabled: defaultTheme.PropTypes.bool,
119
+ readOnly: defaultTheme.PropTypes.bool,
120
+ name: defaultTheme.PropTypes.string,
121
+ value: defaultTheme.PropTypes.string,
122
+ description: defaultTheme.PropTypes.string,
123
+ error: defaultTheme.PropTypes.oneOfType([defaultTheme.PropTypes.bool, defaultTheme.PropTypes.string]),
124
+ indeterminate: defaultTheme.PropTypes.bool,
125
+ onChange: defaultTheme.PropTypes.func,
126
+ onBlur: defaultTheme.PropTypes.func,
127
+ className: defaultTheme.PropTypes.string,
128
+ style: defaultTheme.PropTypes.object
129
+ } : {};
130
+ Checkbox.defaultProps = {
131
+ disabled: false,
132
+ readOnly: false,
133
+ indeterminate: false
134
+ };
135
+
136
+ exports.Checkbox = Checkbox;