@ntbjs/react-components 0.0.1-beta.5 → 0.0.1-beta.50

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.
@@ -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
+ }, React__default['default'].createElement("input", {
91
+ ref: forwardedRef,
92
+ id: uniqueId,
93
+ checked: checked,
94
+ defaultChecked: defaultChecked,
95
+ disabled: disabled,
96
+ readOnly: readOnly,
97
+ value: value,
98
+ name: name,
99
+ type: "checkbox",
100
+ onClick: onClick,
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;
@@ -0,0 +1,97 @@
1
+ 'use strict';
2
+
3
+ var defaultTheme = require('./defaultTheme-870f7df1.js');
4
+ var React = require('react');
5
+ var lodash = require('lodash');
6
+ var styled = require('styled-components');
7
+ var polished = require('polished');
8
+ var TippyTooltip = require('@tippyjs/react');
9
+
10
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
11
+
12
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
13
+ var styled__default = /*#__PURE__*/_interopDefaultLegacy(styled);
14
+ var TippyTooltip__default = /*#__PURE__*/_interopDefaultLegacy(TippyTooltip);
15
+
16
+ var css_248z$1 = ".tippy-box[data-animation=fade][data-state=hidden]{opacity:0}[data-tippy-root]{max-width:calc(100vw - 10px)}.tippy-box{position:relative;background-color:#333;color:#fff;border-radius:4px;font-size:14px;line-height:1.4;outline:0;transition-property:transform,visibility,opacity}.tippy-box[data-placement^=top]>.tippy-arrow{bottom:0}.tippy-box[data-placement^=top]>.tippy-arrow:before{bottom:-7px;left:0;border-width:8px 8px 0;border-top-color:initial;transform-origin:center top}.tippy-box[data-placement^=bottom]>.tippy-arrow{top:0}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{top:-7px;left:0;border-width:0 8px 8px;border-bottom-color:initial;transform-origin:center bottom}.tippy-box[data-placement^=left]>.tippy-arrow{right:0}.tippy-box[data-placement^=left]>.tippy-arrow:before{border-width:8px 0 8px 8px;border-left-color:initial;right:-7px;transform-origin:center left}.tippy-box[data-placement^=right]>.tippy-arrow{left:0}.tippy-box[data-placement^=right]>.tippy-arrow:before{left:-7px;border-width:8px 8px 8px 0;border-right-color:initial;transform-origin:center right}.tippy-box[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}.tippy-arrow{width:16px;height:16px;color:#333}.tippy-arrow:before{content:\"\";position:absolute;border-color:transparent;border-style:solid}.tippy-content{position:relative;padding:5px 9px;z-index:1}";
17
+ defaultTheme.styleInject(css_248z$1);
18
+
19
+ var css_248z = ".tippy-box[data-animation=shift-away-subtle][data-state=hidden]{opacity:0}.tippy-box[data-animation=shift-away-subtle][data-state=hidden][data-placement^=top]{transform:translateY(5px)}.tippy-box[data-animation=shift-away-subtle][data-state=hidden][data-placement^=bottom]{transform:translateY(-5px)}.tippy-box[data-animation=shift-away-subtle][data-state=hidden][data-placement^=left]{transform:translateX(5px)}.tippy-box[data-animation=shift-away-subtle][data-state=hidden][data-placement^=right]{transform:translateX(-5px)}";
20
+ defaultTheme.styleInject(css_248z);
21
+
22
+ var _templateObject;
23
+ var Popover$1 = styled__default['default'](TippyTooltip__default['default']).attrs(defaultTheme.applyDefaultTheme)(_templateObject || (_templateObject = defaultTheme._taggedTemplateLiteral(["\n font-family: ", ";\n font-size: 1rem;\n font-weight: 400;\n color: inherit;\n border-radius: 0;\n ", "\n ", "\n line-height: inherit;\n\n ", "\n .tippy-content {\n padding: 0;\n }\n\n .tippy-arrow {\n ", "\n }\n\n && > .tippy-arrow::before {\n position: absolute;\n border-color: transparent;\n border-style: solid;\n }\n\n & > .tippy-arrow::after {\n content: '';\n position: absolute;\n border-color: transparent;\n border-style: solid;\n }\n\n &[data-placement^='top'] {\n & > .tippy-arrow:before {\n bottom: -16px;\n left: -5px;\n border-width: 15px 13px 0;\n ", "\n }\n\n & > .tippy-arrow:after {\n bottom: -15px;\n left: -5px;\n border-width: 15px 13px 0;\n border-top-color: initial;\n transform-origin: center top;\n }\n }\n\n &[data-placement^='right'] {\n & > .tippy-arrow:before {\n bottom: -5px;\n left: -16px;\n border-width: 13px 15px 13px 0;\n ", "\n }\n\n & > .tippy-arrow:after {\n bottom: -5px;\n left: -15px;\n border-width: 13px 15px 13px 0;\n border-right-color: initial;\n transform-origin: center top;\n }\n }\n\n &[data-placement^='bottom'] {\n & > .tippy-arrow:before {\n top: -16px;\n left: -5px;\n border-width: 0 13px 15px 13px;\n ", "\n }\n\n & > .tippy-arrow:after {\n top: -15px;\n left: -5px;\n border-width: 0 13px 15px 13px;\n border-bottom-color: initial;\n transform-origin: center top;\n }\n }\n\n &[data-placement^='left'] {\n & > .tippy-arrow::before {\n bottom: -5px;\n right: -16px;\n border-width: 13px 0 13px 15px;\n ", "\n }\n\n & > .tippy-arrow::after {\n bottom: -5px;\n right: -15px;\n border-width: 13px 0 13px 15px;\n border-left-color: initial;\n transform-origin: center top;\n }\n }\n"])), function (props) {
24
+ return props.theme.primaryFontFamily;
25
+ }, function (props) {
26
+ return props.theme.themeProp('background', props.theme.getColor('gray-700'), props.theme.getColor('white'));
27
+ }, function (props) {
28
+ return props.theme.themeProp('box-shadow', "0px 1px 6px -3px ".concat(polished.rgba(props.theme.getColor('black'), 0.7)), "0 1px 6px -4px ".concat(props.theme.getColor('black')));
29
+ }, function (props) {
30
+ return props.theme.themeProp('border', "1px solid ".concat(props.theme.getColor('gray-800')), "1px solid ".concat(props.theme.getColor('gray-300')));
31
+ }, function (props) {
32
+ return props.theme.themeProp('color', props.theme.getColor('gray-700'), props.theme.getColor('white'));
33
+ }, function (props) {
34
+ return props.theme.themeProp('border-top-color', props.theme.getColor('gray-800'), props.theme.getColor('gray-400'));
35
+ }, function (props) {
36
+ return props.theme.themeProp('border-right-color', props.theme.getColor('gray-800'), props.theme.getColor('gray-400'));
37
+ }, function (props) {
38
+ return props.theme.themeProp('border-bottom-color', props.theme.getColor('gray-800'), props.theme.getColor('gray-400'));
39
+ }, function (props) {
40
+ return props.theme.themeProp('border-left-color', props.theme.getColor('gray-800'), props.theme.getColor('gray-400'));
41
+ });
42
+
43
+ var Popover = React__default['default'].forwardRef(function Popover(_ref, ref) {
44
+ var content = _ref.content,
45
+ interactive = _ref.interactive,
46
+ placement = _ref.placement,
47
+ duration = _ref.duration,
48
+ trigger = _ref.trigger,
49
+ offset = _ref.offset,
50
+ arrow = _ref.arrow,
51
+ visible = _ref.visible,
52
+ children = _ref.children,
53
+ props = defaultTheme._objectWithoutProperties(_ref, ["content", "interactive", "placement", "duration", "trigger", "offset", "arrow", "visible", "children"]);
54
+
55
+ var errorOffset = React.useMemo(function () {
56
+ return arrow ? 15 : 0;
57
+ }, [arrow]);
58
+ var isControlled = React.useMemo(function () {
59
+ return lodash.isBoolean(visible);
60
+ }, [visible]);
61
+ return React__default['default'].createElement(Popover$1, defaultTheme._extends({
62
+ ref: ref,
63
+ content: content,
64
+ interactive: interactive,
65
+ placement: placement,
66
+ duration: duration,
67
+ animation: 'shift-away-subtle',
68
+ trigger: isControlled ? undefined : trigger,
69
+ offset: [offset[0], offset[1] + errorOffset],
70
+ arrow: arrow,
71
+ visible: visible
72
+ }, props), children);
73
+ });
74
+ Popover.propTypes = process.env.NODE_ENV !== "production" ? {
75
+ content: defaultTheme.PropTypes.oneOfType([defaultTheme.PropTypes.string, defaultTheme.PropTypes.element]).isRequired,
76
+ interactive: defaultTheme.PropTypes.bool,
77
+ placement: defaultTheme.PropTypes.oneOf(['top', 'top-start', 'top-end', 'right', 'right-start', 'right-end', 'bottom', 'bottom-start', 'bottom-end', 'left', 'left-start', 'left-end', 'auto', 'auto-start', 'auto-end']),
78
+ duration: defaultTheme.PropTypes.number,
79
+ trigger: defaultTheme.PropTypes.string,
80
+ offset: defaultTheme.PropTypes.arrayOf(defaultTheme.PropTypes.number),
81
+ arrow: defaultTheme.PropTypes.bool,
82
+ visible: defaultTheme.PropTypes.bool,
83
+ children: defaultTheme.PropTypes.node.isRequired
84
+ } : {};
85
+ Popover.defaultProps = {
86
+ content: 'Tooltip',
87
+ interactive: true,
88
+ placement: 'bottom-end',
89
+ duration: 350,
90
+ offset: [0, 8],
91
+ maxWidth: 'none',
92
+ trigger: 'click focus',
93
+ arrow: true,
94
+ visible: undefined
95
+ };
96
+
97
+ exports.Popover = Popover;
@@ -0,0 +1,83 @@
1
+ 'use strict';
2
+
3
+ var defaultTheme = require('./defaultTheme-870f7df1.js');
4
+ var React = require('react');
5
+ var nanoid = require('nanoid');
6
+ var polished = require('polished');
7
+ var styled = require('styled-components');
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;
15
+ var radioSize = '18px';
16
+ var RadioLabel = styled__default['default'].div.attrs(defaultTheme.applyDefaultTheme)(_templateObject || (_templateObject = defaultTheme._taggedTemplateLiteral(["\n padding-left: ", ";\n font-weight: 400;\n font-size: 0.875rem;\n\n ", ";\n"])), polished.math("".concat(radioSize, " + 10px")), function (props) {
17
+ return props.theme.themeProp('color', props.theme.getColor('gray-300'), props.theme.getColor('gray-600'));
18
+ });
19
+ var Radio$1 = styled__default['default'].label.attrs(defaultTheme.applyDefaultTheme)(_templateObject2 || (_templateObject2 = defaultTheme._taggedTemplateLiteral(["\n display: block;\n position: relative;\n cursor: pointer;\n line-height: ", ";\n user-select: none;\n\n &::before {\n content: '';\n position: absolute;\n border: 2px solid ", ";\n width: ", ";\n height: ", ";\n top: 0;\n border-radius: 50%;\n transition: all 200ms;\n box-sizing: border-box;\n }\n\n &::after {\n content: '';\n position: absolute;\n width: 8px;\n height: 8px;\n top: 5px;\n left: 5px;\n border-radius: 50%;\n transform: scale(0);\n transition: all 200ms;\n }\n\n &:has(input:checked) {\n ::before {\n border-color: ", ";\n }\n\n ::after {\n background: ", ";\n transform: scale(1);\n }\n\n ", " {\n opacity: 1;\n }\n }\n & {\n input[type='radio'] {\n position: absolute;\n opacity: 0;\n pointer-events: none;\n }\n }\n\n ", "\n"])), radioSize, function (props) {
20
+ return props.theme.getColor('gray-300');
21
+ }, radioSize, radioSize, function (props) {
22
+ return props.theme.getColor('emerald-500');
23
+ }, function (props) {
24
+ return props.theme.getColor('emerald-500');
25
+ }, RadioLabel, function (props) {
26
+ return props.disabled && styled.css(_templateObject3 || (_templateObject3 = defaultTheme._taggedTemplateLiteral(["\n opacity: 0.5;\n cursor: not-allowed;\n "])));
27
+ });
28
+
29
+ var Radio = React__default['default'].forwardRef(function Radio(_ref, forwardedRef) {
30
+ var name = _ref.name,
31
+ value = _ref.value,
32
+ checked = _ref.checked,
33
+ defaultChecked = _ref.defaultChecked,
34
+ disabled = _ref.disabled,
35
+ readOnly = _ref.readOnly,
36
+ label = _ref.label,
37
+ className = _ref.className,
38
+ style = _ref.style,
39
+ onChange = _ref.onChange,
40
+ onBlur = _ref.onBlur,
41
+ rest = defaultTheme._objectWithoutProperties(_ref, ["name", "value", "checked", "defaultChecked", "disabled", "readOnly", "label", "className", "style", "onChange", "onBlur"]);
42
+
43
+ var _useState = React.useState(nanoid.nanoid()),
44
+ _useState2 = defaultTheme._slicedToArray(_useState, 1),
45
+ uniqueId = _useState2[0];
46
+
47
+ return React__default['default'].createElement(Radio$1, {
48
+ htmlFor: uniqueId,
49
+ disabled: disabled || readOnly,
50
+ className: className,
51
+ style: style
52
+ }, React__default['default'].createElement("input", defaultTheme._extends({
53
+ ref: forwardedRef,
54
+ type: "radio",
55
+ name: name,
56
+ value: value,
57
+ checked: checked,
58
+ defaultChecked: defaultChecked,
59
+ disabled: disabled || readOnly,
60
+ readOnly: readOnly,
61
+ id: uniqueId,
62
+ onChange: onChange,
63
+ onBlur: onBlur
64
+ }, rest)), React__default['default'].createElement(RadioLabel, null, label));
65
+ });
66
+ Radio.propTypes = process.env.NODE_ENV !== "production" ? {
67
+ label: defaultTheme.PropTypes.any,
68
+ name: defaultTheme.PropTypes.string.isRequired,
69
+ value: defaultTheme.PropTypes.any.isRequired,
70
+ checked: defaultTheme.PropTypes.bool,
71
+ defaultChecked: defaultTheme.PropTypes.bool,
72
+ disabled: defaultTheme.PropTypes.bool,
73
+ readOnly: defaultTheme.PropTypes.bool,
74
+ className: defaultTheme.PropTypes.string,
75
+ style: defaultTheme.PropTypes.object,
76
+ onChange: defaultTheme.PropTypes.func,
77
+ onBlur: defaultTheme.PropTypes.func
78
+ } : {};
79
+ Radio.defaultProps = {
80
+ disabled: false
81
+ };
82
+
83
+ exports.Radio = Radio;
@@ -0,0 +1,104 @@
1
+ 'use strict';
2
+
3
+ var defaultTheme = require('./defaultTheme-870f7df1.js');
4
+ var React = require('react');
5
+ var nanoid = require('nanoid');
6
+ var polished = require('polished');
7
+ var styled = require('styled-components');
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;
15
+ var switchButtonSize = '16px';
16
+ var Switch$1 = styled__default['default'].div.attrs(defaultTheme.applyDefaultTheme)(_templateObject || (_templateObject = defaultTheme._taggedTemplateLiteral(["\n * {\n box-sizing: border-box;\n }\n\n display: flex;\n flex-direction: column;\n\n ", "\n"])), function (props) {
17
+ return props.disabled && styled.css(_templateObject2 || (_templateObject2 = defaultTheme._taggedTemplateLiteral(["\n opacity: 0.5;\n * {\n cursor: not-allowed;\n }\n "])));
18
+ });
19
+ var SwitchIndicator = styled__default['default'].div.attrs(defaultTheme.applyDefaultTheme)(_templateObject3 || (_templateObject3 = defaultTheme._taggedTemplateLiteral(["\n display: inline-block;\n position: relative;\n ", "\n height: ", ";\n width: 32px;\n border-radius: 20px;\n border: 1px solid;\n ", "\n transition: background 200ms;\n"])), function (props) {
20
+ return props.theme.themeProp('background', props.theme.getColor('gray-900'), props.theme.getColor('gray-200'));
21
+ }, polished.math("".concat(switchButtonSize, " + 2px")), function (props) {
22
+ return props.theme.themeProp('border-color', props.theme.getColor('gray-500'), props.theme.getColor('gray-300'));
23
+ });
24
+ var SwitchIndicatorButton = styled__default['default'].div.attrs(defaultTheme.applyDefaultTheme)(_templateObject4 || (_templateObject4 = defaultTheme._taggedTemplateLiteral(["\n position: absolute;\n ", "\n height: ", ";\n width: ", ";\n border-radius: 50%;\n box-shadow: ", " 0 0px 2px 0px;\n transition: left 200ms;\n"])), function (props) {
25
+ return props.theme.themeProp('background', props.theme.getColor('gray-200'), props.theme.getColor('white'));
26
+ }, switchButtonSize, switchButtonSize, function (props) {
27
+ return props.theme.getColor('gray-500');
28
+ });
29
+ var SwitchIndicatorLabelText = styled__default['default'].div.attrs(defaultTheme.applyDefaultTheme)(_templateObject5 || (_templateObject5 = defaultTheme._taggedTemplateLiteral(["\n padding-left: 10px;\n font-weight: 400;\n font-size: 0.875rem;\n line-height: 18px;\n\n ", ";\n"])), function (props) {
30
+ return props.theme.themeProp('color', props.theme.getColor('gray-300'), props.theme.getColor('gray-600'));
31
+ });
32
+ var SwitchLabel = styled__default['default'].label.attrs(defaultTheme.applyDefaultTheme)(_templateObject6 || (_templateObject6 = defaultTheme._taggedTemplateLiteral(["\n display: inline-flex;\n margin-right: auto;\n cursor: pointer;\n\n input[type='checkbox'] {\n position: absolute;\n opacity: 0;\n }\n\n &:has(input[type='checkbox']:not(:checked)) {\n ", " {\n left: 0;\n }\n }\n\n &:has(input[type='checkbox']:checked) {\n ", " {\n left: calc(100% - ", ");\n }\n\n ", " {\n background: ", ";\n\n ", "\n }\n }\n\n &:has(input[type='checkbox']:focus-visible) {\n ", " {\n ", "\n }\n }\n"])), SwitchIndicatorButton, SwitchIndicatorButton, switchButtonSize, SwitchIndicator, function (props) {
33
+ return props.theme.getColor('emerald-500');
34
+ }, function (props) {
35
+ return props.theme.themeProp('border-color', props.theme.getColor('gray-400'), props.theme.getColor('gray-300'), 1);
36
+ }, SwitchIndicatorButton, function (props) {
37
+ return props.theme.themeProp('outline', "8px solid ".concat(polished.rgba(props.theme.getColor('emerald-500'), 0.5)), "8px solid ".concat(polished.rgba(props.theme.getColor('emerald-500'), 0.3)), 1);
38
+ });
39
+ var Description = styled__default['default'].div.attrs(defaultTheme.applyDefaultTheme)(_templateObject7 || (_templateObject7 = defaultTheme._taggedTemplateLiteral(["\n margin: ", " 0 0 0;\n font-size: 0.75rem;\n line-height: 1.333;\n\n ", ";\n"])), function (props) {
40
+ return props.spaciousDescription ? '16px' : '6px';
41
+ }, function (props) {
42
+ return props.theme.themeProp('color', props.theme.getColor('gray-400'), props.theme.getColor('gray-500'));
43
+ });
44
+
45
+ var Switch = React__default['default'].forwardRef(function Switch(_ref, forwardedRef) {
46
+ var name = _ref.name,
47
+ checked = _ref.checked,
48
+ defaultChecked = _ref.defaultChecked,
49
+ label = _ref.label,
50
+ disabled = _ref.disabled,
51
+ readOnly = _ref.readOnly,
52
+ description = _ref.description,
53
+ spaciousDescription = _ref.spaciousDescription,
54
+ className = _ref.className,
55
+ style = _ref.style,
56
+ onChange = _ref.onChange,
57
+ onBlur = _ref.onBlur;
58
+
59
+ var _useState = React.useState(nanoid.nanoid()),
60
+ _useState2 = defaultTheme._slicedToArray(_useState, 1),
61
+ uniqueId = _useState2[0];
62
+
63
+ return React__default['default'].createElement(Switch$1, {
64
+ disabled: disabled || readOnly,
65
+ className: className,
66
+ style: style
67
+ }, React__default['default'].createElement(SwitchLabel, {
68
+ htmlFor: uniqueId
69
+ }, React__default['default'].createElement("input", {
70
+ ref: forwardedRef,
71
+ checked: checked,
72
+ defaultChecked: defaultChecked,
73
+ disabled: disabled || readOnly,
74
+ readOnly: readOnly,
75
+ id: uniqueId,
76
+ name: name,
77
+ type: "checkbox",
78
+ onBlur: onBlur,
79
+ onChange: onChange
80
+ }), React__default['default'].createElement(SwitchIndicator, null, React__default['default'].createElement(SwitchIndicatorButton, null)), typeof label === 'string' && label.length > 0 && React__default['default'].createElement(SwitchIndicatorLabelText, null, label)), typeof description === 'string' && description.length > 0 && React__default['default'].createElement(Description, {
81
+ spaciousDescription: spaciousDescription
82
+ }, description));
83
+ });
84
+ Switch.propTypes = process.env.NODE_ENV !== "production" ? {
85
+ children: defaultTheme.PropTypes.any,
86
+ name: defaultTheme.PropTypes.string.isRequired,
87
+ checked: defaultTheme.PropTypes.bool,
88
+ defaultChecked: defaultTheme.PropTypes.bool,
89
+ label: defaultTheme.PropTypes.string,
90
+ disabled: defaultTheme.PropTypes.bool,
91
+ readOnly: defaultTheme.PropTypes.bool,
92
+ description: defaultTheme.PropTypes.string,
93
+ spaciousDescription: defaultTheme.PropTypes.bool,
94
+ className: defaultTheme.PropTypes.string,
95
+ style: defaultTheme.PropTypes.object,
96
+ onChange: defaultTheme.PropTypes.func,
97
+ onBlur: defaultTheme.PropTypes.func
98
+ } : {};
99
+ Switch.defaultProps = {
100
+ disabled: false,
101
+ readOnly: false
102
+ };
103
+
104
+ exports.Switch = Switch;