@ntbjs/react-components 0.0.1-beta.4 → 0.0.1-beta.40

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,155 @@
1
+ 'use strict';
2
+
3
+ var defaultTheme = require('./defaultTheme-18d7c1ee.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
+ }, props), React__default['default'].createElement(ButtonContent, {
119
+ loading: loadingState,
120
+ size: size
121
+ }, icon, children), React__default['default'].createElement(LoadingIndicator, {
122
+ loading: loadingState,
123
+ style: {
124
+ opacity: loadingState ? 1 : 0
125
+ }
126
+ }, React__default['default'].createElement(LoadingIndicatorSvg, {
127
+ viewBox: "22 22 44 44"
128
+ }, React__default['default'].createElement(LoadingIndicatorSvgCircle, {
129
+ cx: "44",
130
+ cy: "44",
131
+ r: "18",
132
+ fill: "none",
133
+ strokeWidth: "4",
134
+ stroke: "currentColor",
135
+ style: {
136
+ strokeDashoffset: "".concat(loadingStep, "px")
137
+ }
138
+ }))));
139
+ });
140
+ Button.defaultProps = {
141
+ size: 'normal'
142
+ };
143
+ Button.propTypes = process.env.NODE_ENV !== "production" ? {
144
+ secondary: defaultTheme.PropTypes.bool,
145
+ outlined: defaultTheme.PropTypes.bool,
146
+ block: defaultTheme.PropTypes.bool,
147
+ icon: defaultTheme.PropTypes.element,
148
+ size: defaultTheme.PropTypes.oneOf(['normal', 'small']),
149
+ disabled: defaultTheme.PropTypes.bool,
150
+ loading: defaultTheme.PropTypes.bool,
151
+ className: defaultTheme.PropTypes.string,
152
+ children: defaultTheme.PropTypes.any.isRequired
153
+ } : {};
154
+
155
+ exports.Button = Button;
@@ -0,0 +1,130 @@
1
+ 'use strict';
2
+
3
+ var defaultTheme = require('./defaultTheme-18d7c1ee.js');
4
+ var React = require('react');
5
+ var nanoid = require('nanoid');
6
+ var styled = require('styled-components');
7
+
8
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
9
+
10
+ function _interopNamespace(e) {
11
+ if (e && e.__esModule) return e;
12
+ var n = Object.create(null);
13
+ if (e) {
14
+ Object.keys(e).forEach(function (k) {
15
+ if (k !== 'default') {
16
+ var d = Object.getOwnPropertyDescriptor(e, k);
17
+ Object.defineProperty(n, k, d.get ? d : {
18
+ enumerable: true,
19
+ get: function () {
20
+ return e[k];
21
+ }
22
+ });
23
+ }
24
+ });
25
+ }
26
+ n['default'] = e;
27
+ return Object.freeze(n);
28
+ }
29
+
30
+ var React__namespace = /*#__PURE__*/_interopNamespace(React);
31
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
32
+ var styled__default = /*#__PURE__*/_interopDefaultLegacy(styled);
33
+
34
+ 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); }
35
+
36
+ var _ref = /*#__PURE__*/React__namespace.createElement("path", {
37
+ fill: "currentColor",
38
+ d: "M7.627 14.435l-5.69-5.69L0 10.67l7.627 7.627L24 1.924 22.076 0z"
39
+ });
40
+
41
+ function SvgCheck(props) {
42
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends({
43
+ xmlns: "http://www.w3.org/2000/svg",
44
+ viewBox: "0 0 24 18.297"
45
+ }, props), _ref);
46
+ }
47
+
48
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6;
49
+ var checkboxSize = '17px';
50
+ var Checkbox$1 = styled__default['default'].label.attrs(defaultTheme.applyDefaultTheme)(_templateObject || (_templateObject = defaultTheme._taggedTemplateLiteral(["\n position: relative;\n cursor: pointer;\n user-select: none;\n min-height: ", ";\n text-align: left;\n display: flex;\n flex-wrap: wrap;\n flex: 1;\n line-height: ", ";\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 ", "\n\n ", "\n"])), checkboxSize, checkboxSize, function (props) {
51
+ return props.theme.getColor('gray-300');
52
+ }, checkboxSize, checkboxSize, function (props) {
53
+ return props.checked && styled.css(_templateObject2 || (_templateObject2 = defaultTheme._taggedTemplateLiteral(["\n &::before {\n background: ", ";\n border-color: ", ";\n }\n "])), function (props) {
54
+ return props.theme.getColor('emerald-500');
55
+ }, function (props) {
56
+ return props.theme.getColor('emerald-500');
57
+ });
58
+ }, function (props) {
59
+ return props.disabled && styled.css(_templateObject3 || (_templateObject3 = defaultTheme._taggedTemplateLiteral(["\n opacity: 0.5;\n cursor: not-allowed;\n "])));
60
+ });
61
+ var CheckboxLabel = styled__default['default'].div.attrs(defaultTheme.applyDefaultTheme)(_templateObject4 || (_templateObject4 = defaultTheme._taggedTemplateLiteral(["\n padding-left: 10px;\n font-weight: 400;\n font-size: 0.919rem;\n opacity: 0.75;\n flex: 1;\n"])));
62
+ var CheckIcon = styled__default['default'].svg.attrs(defaultTheme.applyDefaultTheme)(_templateObject5 || (_templateObject5 = defaultTheme._taggedTemplateLiteral(["\n position: absolute;\n width: 13px;\n left: 2px;\n top: 3px;\n color: ", ";\n"])), function (props) {
63
+ return props.theme.getColor('gray-100');
64
+ });
65
+ var IncompleteCheckIcon = styled__default['default'].div.attrs(defaultTheme.applyDefaultTheme)(_templateObject6 || (_templateObject6 = defaultTheme._taggedTemplateLiteral(["\n position: absolute;\n height: 2px;\n top: 7px;\n left: 3px;\n background: ", ";\n width: 11px;\n"])), function (props) {
66
+ return props.theme.getColor('gray-100');
67
+ });
68
+
69
+ var Checkbox = React__default['default'].forwardRef(function Checkbox(_ref, forwardedRef) {
70
+ var checked = _ref.checked,
71
+ disabled = _ref.disabled,
72
+ name = _ref.name,
73
+ incomplete = _ref.incomplete,
74
+ onChange = _ref.onChange,
75
+ className = _ref.className,
76
+ children = _ref.children;
77
+
78
+ var _useState = React.useState(nanoid.nanoid()),
79
+ _useState2 = defaultTheme._slicedToArray(_useState, 1),
80
+ uniqueId = _useState2[0];
81
+
82
+ var onChangeCallback = React.useCallback(function (event) {
83
+ if (onChange) {
84
+ onChange(event.target.checked);
85
+ }
86
+ }, [onChange]);
87
+ var checkIcon = React.useMemo(function () {
88
+ if (checked && incomplete) {
89
+ return React__default['default'].createElement(IncompleteCheckIcon, null);
90
+ }
91
+
92
+ if (checked) {
93
+ return React__default['default'].createElement(CheckIcon, {
94
+ as: SvgCheck
95
+ });
96
+ }
97
+
98
+ return null;
99
+ }, [checked, incomplete]);
100
+ return React__default['default'].createElement(Checkbox$1, {
101
+ checked: checked,
102
+ className: className,
103
+ disabled: disabled,
104
+ htmlFor: uniqueId
105
+ }, React__default['default'].createElement("input", {
106
+ checked: checked,
107
+ disabled: disabled,
108
+ id: uniqueId,
109
+ name: name,
110
+ ref: forwardedRef,
111
+ type: "checkbox",
112
+ onChange: onChangeCallback
113
+ }), checkIcon, React__default['default'].createElement(CheckboxLabel, null, children));
114
+ });
115
+ Checkbox.propTypes = process.env.NODE_ENV !== "production" ? {
116
+ checked: defaultTheme.PropTypes.bool,
117
+ disabled: defaultTheme.PropTypes.bool,
118
+ name: defaultTheme.PropTypes.string,
119
+ incomplete: defaultTheme.PropTypes.bool,
120
+ onChange: defaultTheme.PropTypes.func,
121
+ className: defaultTheme.PropTypes.string,
122
+ children: defaultTheme.PropTypes.any
123
+ } : {};
124
+ Checkbox.defaultProps = {
125
+ checked: false,
126
+ disabled: false,
127
+ incomplete: false
128
+ };
129
+
130
+ exports.Checkbox = Checkbox;
@@ -0,0 +1,97 @@
1
+ 'use strict';
2
+
3
+ var defaultTheme = require('./defaultTheme-18d7c1ee.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,74 @@
1
+ 'use strict';
2
+
3
+ var defaultTheme = require('./defaultTheme-18d7c1ee.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;
15
+ var radioSize = '17px';
16
+ var Radio$1 = styled__default['default'].label.attrs(defaultTheme.applyDefaultTheme)(_templateObject || (_templateObject = 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: 1px;\n border-radius: 50%;\n transition: all 200ms;\n box-sizing: border-box;\n }\n\n &::after {\n content: '';\n position: absolute;\n width: 7px;\n height: 7px;\n top: 6px;\n left: 5px;\n border-radius: 50%;\n transform: scale(0);\n transition: all 200ms;\n }\n\n ", "\n\n input[type='radio'] {\n position: absolute;\n opacity: 0;\n pointer-events: none;\n }\n\n ", "\n"])), polished.math("".concat(radioSize, " + 2 * 2")), function (props) {
17
+ return props.theme.getColor('gray-300');
18
+ }, radioSize, radioSize, function (props) {
19
+ return props.checked && styled.css(_templateObject2 || (_templateObject2 = defaultTheme._taggedTemplateLiteral(["\n &::before {\n border-color: ", ";\n }\n\n &::after {\n background: ", ";\n transform: scale(1);\n }\n\n ", " {\n opacity: 1;\n }\n "])), function (props) {
20
+ return props.theme.getColor('emerald-500');
21
+ }, function (props) {
22
+ return props.theme.getColor('emerald-500');
23
+ }, RadioLabel);
24
+ }, function (props) {
25
+ return props.disabled && styled.css(_templateObject3 || (_templateObject3 = defaultTheme._taggedTemplateLiteral(["\n opacity: 0.5;\n cursor: not-allowed;\n "])));
26
+ });
27
+ var RadioLabel = styled__default['default'].div.attrs(defaultTheme.applyDefaultTheme)(_templateObject4 || (_templateObject4 = defaultTheme._taggedTemplateLiteral(["\n padding-left: ", ";\n font-weight: 400;\n font-size: 0.9375rem;\n opacity: 0.75;\n"])), polished.math("".concat(radioSize, " * 1.7")));
28
+
29
+ var Radio = React__default['default'].forwardRef(function Radio(_ref, forwardedRef) {
30
+ var value = _ref.value,
31
+ checked = _ref.checked,
32
+ disabled = _ref.disabled,
33
+ name = _ref.name,
34
+ children = _ref.children,
35
+ onChange = _ref.onChange;
36
+
37
+ var _useState = React.useState(nanoid.nanoid()),
38
+ _useState2 = defaultTheme._slicedToArray(_useState, 1),
39
+ uniqueId = _useState2[0];
40
+
41
+ var clicked = function clicked() {
42
+ if (onChange) {
43
+ onChange(value);
44
+ }
45
+ };
46
+
47
+ return React__default['default'].createElement(Radio$1, {
48
+ htmlFor: uniqueId,
49
+ checked: checked,
50
+ disabled: disabled
51
+ }, React__default['default'].createElement("input", {
52
+ ref: forwardedRef,
53
+ checked: checked,
54
+ disabled: disabled,
55
+ id: uniqueId,
56
+ name: name,
57
+ type: "radio",
58
+ onChange: clicked
59
+ }), React__default['default'].createElement(RadioLabel, null, children));
60
+ });
61
+ Radio.propTypes = process.env.NODE_ENV !== "production" ? {
62
+ children: defaultTheme.PropTypes.any,
63
+ checked: defaultTheme.PropTypes.bool.isRequired,
64
+ disabled: defaultTheme.PropTypes.bool,
65
+ value: defaultTheme.PropTypes.string.isRequired,
66
+ name: defaultTheme.PropTypes.string,
67
+ onChange: defaultTheme.PropTypes.func
68
+ } : {};
69
+ Radio.defaultProps = {
70
+ checked: false,
71
+ disabled: false
72
+ };
73
+
74
+ exports.Radio = Radio;
@@ -0,0 +1,110 @@
1
+ 'use strict';
2
+
3
+ var defaultTheme = require('./defaultTheme-18d7c1ee.js');
4
+ var React = require('react');
5
+ var nanoid = require('nanoid');
6
+ var lodash = require('lodash');
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, _templateObject8;
15
+ var activeLabel = styled.css(_templateObject || (_templateObject = defaultTheme._taggedTemplateLiteral(["\n font-size: 0.75rem;\n padding: 0 3px;\n ", "\n top: -7px;\n left: 7px;\n opacity: 1;\n"])), function (props) {
16
+ return props.theme.themeProp('background', "linear-gradient(0deg, ".concat(props.theme.getColor('gray-900'), " calc(50% + 1px), transparent 50%)"), "linear-gradient(0deg, ".concat(props.theme.getColor('white'), " calc(50% + 1px), transparent 50%)"));
17
+ });
18
+ var placeholderBaseStyle = styled.css(_templateObject2 || (_templateObject2 = defaultTheme._taggedTemplateLiteral(["\n color: inherit;\n opacity: 0.7;\n"])));
19
+ var TextAreaLabel = styled__default['default'].label.attrs(defaultTheme.applyDefaultTheme)(_templateObject3 || (_templateObject3 = defaultTheme._taggedTemplateLiteral(["\n position: absolute;\n top: 13px;\n left: 11px;\n line-height: 1.2;\n font-size: 0.875rem;\n transition: all 150ms;\n ", "\n\n ", "\n"])), placeholderBaseStyle, function (props) {
20
+ var _props$inputValue;
21
+
22
+ return (props.placeholderVisible || ((_props$inputValue = props.inputValue) === null || _props$inputValue === void 0 ? void 0 : _props$inputValue.length)) && styled.css(_templateObject4 || (_templateObject4 = defaultTheme._taggedTemplateLiteral(["\n ", "\n "])), activeLabel);
23
+ });
24
+ var TextArea$1 = styled__default['default'].div.attrs(defaultTheme.applyDefaultTheme)(_templateObject5 || (_templateObject5 = defaultTheme._taggedTemplateLiteral(["\n position: relative;\n margin-top: 8px;\n\n &:focus-within {\n ", " {\n ", "\n }\n }\n\n ", "\n"])), TextAreaLabel, activeLabel, function (props) {
25
+ return props.disabled && styled.css(_templateObject6 || (_templateObject6 = defaultTheme._taggedTemplateLiteral(["\n opacity: 0.5;\n > * {\n cursor: not-allowed;\n }\n "])));
26
+ });
27
+ var TextAreaField = styled__default['default'].textarea.attrs(defaultTheme.applyDefaultTheme)(_templateObject7 || (_templateObject7 = defaultTheme._taggedTemplateLiteral(["\n display: block;\n width: 100%;\n font-family: inherit;\n font-size: 0.875rem;\n border-radius: 2px;\n padding: 12px 10px;\n margin: 0 0 1.07143rem;\n color: inherit;\n resize: vertical;\n overflow: auto;\n ", "\n border: 1px solid;\n ", "\n border-radius: 3px;\n box-sizing: border-box;\n appearance: none;\n transition: border-color 350ms;\n\n ", "\n\n &::placeholder {\n ", "\n }\n\n :focus {\n outline: none;\n ", "\n }\n"])), function (props) {
28
+ return props.theme.themeProp('background', props.theme.getColor('gray-900'), props.theme.getColor('white'));
29
+ }, function (props) {
30
+ return props.theme.themeProp('border-color', props.theme.getColor('gray-500'), props.theme.getColor('gray-400'));
31
+ }, function (props) {
32
+ return props.error && styled.css(_templateObject8 || (_templateObject8 = defaultTheme._taggedTemplateLiteral(["\n border-color: ", " !important;\n "])), props.theme.getColor('red-500'));
33
+ }, placeholderBaseStyle, function (props) {
34
+ return props.theme.themeProp('border-color', props.theme.getColor('gray-500'), props.theme.getColor('gray-600'));
35
+ });
36
+
37
+ var TextArea = React__default['default'].forwardRef(function TextArea(_ref, forwardedRef) {
38
+ var value = _ref.value,
39
+ defaultValue = _ref.defaultValue,
40
+ name = _ref.name,
41
+ label = _ref.label,
42
+ rows = _ref.rows,
43
+ placeholder = _ref.placeholder,
44
+ required = _ref.required,
45
+ disabled = _ref.disabled,
46
+ error = _ref.error,
47
+ onChange = _ref.onChange,
48
+ onBlur = _ref.onBlur;
49
+
50
+ var _useState = React.useState(nanoid.nanoid()),
51
+ _useState2 = defaultTheme._slicedToArray(_useState, 1),
52
+ uniqueId = _useState2[0];
53
+
54
+ var _useState3 = React.useState(value || defaultValue || ''),
55
+ _useState4 = defaultTheme._slicedToArray(_useState3, 2),
56
+ controlledValue = _useState4[0],
57
+ setControlledValue = _useState4[1];
58
+
59
+ React.useEffect(function () {
60
+ if (value !== undefined) {
61
+ setControlledValue(value);
62
+ }
63
+ }, [value]);
64
+
65
+ var onInputChange = function onInputChange(event) {
66
+ if (lodash.isFunction(onChange)) {
67
+ onChange(event);
68
+ }
69
+
70
+ setControlledValue(event.target.value);
71
+ };
72
+
73
+ return React__default['default'].createElement(TextArea$1, {
74
+ disabled: disabled
75
+ }, label && React__default['default'].createElement(TextAreaLabel, {
76
+ htmlFor: "text-area-".concat(uniqueId),
77
+ placeholderVisible: Boolean(placeholder),
78
+ inputValue: controlledValue
79
+ }, label, required && ' *'), React__default['default'].createElement(TextAreaField, {
80
+ rows: rows,
81
+ ref: forwardedRef,
82
+ value: controlledValue,
83
+ name: name,
84
+ placeholder: placeholder,
85
+ required: required,
86
+ disabled: disabled,
87
+ error: error,
88
+ id: "text-area-".concat(uniqueId),
89
+ onChange: onInputChange,
90
+ onBlur: onBlur
91
+ }));
92
+ });
93
+ TextArea.defaultProps = {
94
+ rows: 4
95
+ };
96
+ TextArea.propTypes = process.env.NODE_ENV !== "production" ? {
97
+ value: defaultTheme.PropTypes.string,
98
+ defaultValue: defaultTheme.PropTypes.string,
99
+ name: defaultTheme.PropTypes.string,
100
+ label: defaultTheme.PropTypes.string,
101
+ rows: defaultTheme.PropTypes.oneOfType([defaultTheme.PropTypes.number, defaultTheme.PropTypes.string]),
102
+ placeholder: defaultTheme.PropTypes.string,
103
+ required: defaultTheme.PropTypes.bool,
104
+ disabled: defaultTheme.PropTypes.bool,
105
+ error: defaultTheme.PropTypes.bool,
106
+ onChange: defaultTheme.PropTypes.func,
107
+ onBlur: defaultTheme.PropTypes.func
108
+ } : {};
109
+
110
+ exports.TextArea = TextArea;