@ntbjs/react-components 0.0.1-beta.47 → 0.0.1-beta.49

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.
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var defaultTheme = require('./defaultTheme-38b83bb5.js');
3
+ var defaultTheme = require('./defaultTheme-870f7df1.js');
4
4
  var React = require('react');
5
5
  var nanoid = require('nanoid');
6
6
  var styled = require('styled-components');
@@ -18,7 +18,7 @@ var placeholderBaseStyle = styled.css(_templateObject2 || (_templateObject2 = de
18
18
  }, function (props) {
19
19
  return props.theme.themeProp('opacity', 0.6, 0.5);
20
20
  });
21
- var TextInputField = styled__default["default"].textarea.attrs(defaultTheme.applyDefaultTheme)(_templateObject3 || (_templateObject3 = defaultTheme._taggedTemplateLiteral(["\n display: block;\n width: 100%;\n font-family: inherit;\n font-size: 0.875rem;\n border-radius: 2px;\n padding: 13px 10px;\n resize: vertical;\n ", "\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 ", "\n\n &::placeholder {\n ", "\n\n ", "\n }\n\n :focus {\n outline: none;\n ", "\n }\n"])), function (props) {
21
+ var TextInputField = styled__default['default'].textarea.attrs(defaultTheme.applyDefaultTheme)(_templateObject3 || (_templateObject3 = defaultTheme._taggedTemplateLiteral(["\n display: block;\n width: 100%;\n font-family: inherit;\n font-size: 0.875rem;\n border-radius: 2px;\n padding: 13px 10px;\n resize: vertical;\n ", "\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 ", "\n\n &::placeholder {\n ", "\n\n ", "\n }\n\n :focus {\n outline: none;\n ", "\n }\n"])), function (props) {
22
22
  return props.theme.themeProp('color', props.theme.getColor('gray-100'), props.theme.getColor('gray-900'));
23
23
  }, function (props) {
24
24
  return props.theme.themeProp('background', props.theme.getColor('gray-900'), props.theme.getColor('white'));
@@ -37,15 +37,15 @@ var TextInputField = styled__default["default"].textarea.attrs(defaultTheme.appl
37
37
  }, function (props) {
38
38
  return props.theme.themeProp('border-color', props.theme.getColor('gray-500'), props.theme.getColor('gray-600'));
39
39
  });
40
- var TextInputLabel = styled__default["default"].label.attrs(defaultTheme.applyDefaultTheme)(_templateObject7 || (_templateObject7 = 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 ", "\n\n ", "\n\n content: \"\";\n\n ", "\n"])), placeholderBaseStyle, function (props) {
40
+ var TextInputLabel = styled__default['default'].label.attrs(defaultTheme.applyDefaultTheme)(_templateObject7 || (_templateObject7 = 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 ", "\n\n ", "\n\n content: \"\";\n\n ", "\n"])), placeholderBaseStyle, function (props) {
41
41
  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%)"));
42
42
  }, function (props) {
43
43
  return props.hasPlaceholder && styled.css(_templateObject8 || (_templateObject8 = defaultTheme._taggedTemplateLiteral(["\n ", ";\n ", "\n "])), activeLabel, props.error && styled.css(_templateObject9 || (_templateObject9 = defaultTheme._taggedTemplateLiteral(["\n color: ", " !important;\n "])), props.theme.getColor('red-500')));
44
44
  }, function (props) {
45
45
  return props.hasIcon && styled.css(_templateObject10 || (_templateObject10 = defaultTheme._taggedTemplateLiteral(["\n left: 35px;\n "])));
46
46
  });
47
- var TextInputFieldIcon = styled__default["default"].div.attrs(defaultTheme.applyDefaultTheme)(_templateObject11 || (_templateObject11 = defaultTheme._taggedTemplateLiteral(["\n position: absolute;\n top: 0;\n left: 0;\n height: 2.625rem;\n display: flex;\n padding: 0 10px;\n\n svg {\n width: 15px;\n opacity: 0.6;\n transition: opacity 250ms;\n }\n"])));
48
- var TextInput = styled__default["default"].div.attrs(defaultTheme.applyDefaultTheme)(_templateObject12 || (_templateObject12 = defaultTheme._taggedTemplateLiteral(["\n position: relative;\n\n &:focus-within {\n ", " {\n ", ";\n }\n\n ", " {\n svg {\n opacity: 1;\n }\n }\n }\n\n ", ":not(:placeholder-shown) + ", " {\n ", ";\n ", "\n // ", "\n ", "\n }\n\n ", "\n"])), TextInputLabel, activeLabel, TextInputFieldIcon, TextInputField, TextInputLabel, activeLabel, function (props) {
47
+ var TextInputFieldIcon = styled__default['default'].div.attrs(defaultTheme.applyDefaultTheme)(_templateObject11 || (_templateObject11 = defaultTheme._taggedTemplateLiteral(["\n position: absolute;\n top: 0;\n left: 0;\n height: 2.625rem;\n display: flex;\n padding: 0 10px;\n\n svg {\n width: 15px;\n opacity: 0.6;\n transition: opacity 250ms;\n }\n"])));
48
+ var TextInput = styled__default['default'].div.attrs(defaultTheme.applyDefaultTheme)(_templateObject12 || (_templateObject12 = defaultTheme._taggedTemplateLiteral(["\n position: relative;\n\n &:focus-within {\n ", " {\n ", ";\n }\n\n ", " {\n svg {\n opacity: 1;\n }\n }\n }\n\n ", ":not(:placeholder-shown) + ", " {\n ", ";\n ", "\n // ", "\n ", "\n }\n\n ", "\n"])), TextInputLabel, activeLabel, TextInputFieldIcon, TextInputField, TextInputLabel, activeLabel, function (props) {
49
49
  return props.error && props.theme.themeProp('color', props.theme.getColor('red-200'), props.theme.getColor('red-500'));
50
50
  }, function (props) {
51
51
  return props.error && styled.css(_templateObject13 || (_templateObject13 = defaultTheme._taggedTemplateLiteral(["\n // color: ", " !important;\n //\n "])), props.theme.getColor('red-500'));
@@ -54,66 +54,72 @@ var TextInput = styled__default["default"].div.attrs(defaultTheme.applyDefaultTh
54
54
  }, function (props) {
55
55
  return props.disabled && styled.css(_templateObject15 || (_templateObject15 = defaultTheme._taggedTemplateLiteral(["\n opacity: 0.5;\n\n > * {\n cursor: not-allowed;\n }\n "])));
56
56
  });
57
- var Description = styled__default["default"].p.attrs(defaultTheme.applyDefaultTheme)(_templateObject16 || (_templateObject16 = defaultTheme._taggedTemplateLiteral(["\n margin: 8px 0 0 0;\n padding: 0 0.6875rem;\n font-size: 0.75rem;\n line-height: 1.333;\n\n ", ";\n\n ", "\n"])), function (props) {
57
+ var Description = styled__default['default'].p.attrs(defaultTheme.applyDefaultTheme)(_templateObject16 || (_templateObject16 = defaultTheme._taggedTemplateLiteral(["\n margin: 8px 0 0 0;\n padding: 0 0.6875rem;\n font-size: 0.75rem;\n line-height: 1.333;\n\n ", ";\n\n ", "\n"])), function (props) {
58
58
  return props.theme.themeProp('color', props.theme.getColor('gray-400'), props.theme.getColor('gray-500'));
59
59
  }, function (props) {
60
60
  return props.error && styled.css(_templateObject17 || (_templateObject17 = defaultTheme._taggedTemplateLiteral(["\n content: 'error';\n ", "\n "])), props.theme.themeProp('color', props.theme.getColor('red-200'), props.theme.getColor('red-500')));
61
61
  });
62
62
 
63
- var _excluded = ["value", "defaultValue", "name", "label", "placeholder", "required", "disabled", "autoComplete", "description", "error", "warning", "icon", "rows", "className", "style", "onChange", "onBlur"];
64
- var TextArea = React__default["default"].forwardRef(function TextArea(_ref, forwardedRef) {
63
+ var TextArea = React__default['default'].forwardRef(function TextArea(_ref, forwardedRef) {
65
64
  var value = _ref.value,
66
- defaultValue = _ref.defaultValue,
67
- name = _ref.name,
68
- label = _ref.label,
69
- placeholder = _ref.placeholder,
70
- required = _ref.required,
71
- disabled = _ref.disabled,
72
- autoComplete = _ref.autoComplete,
73
- description = _ref.description,
74
- error = _ref.error,
75
- warning = _ref.warning,
76
- icon = _ref.icon,
77
- rows = _ref.rows,
78
- className = _ref.className,
79
- style = _ref.style,
80
- onChange = _ref.onChange,
81
- onBlur = _ref.onBlur,
82
- rest = defaultTheme._objectWithoutProperties(_ref, _excluded);
65
+ defaultValue = _ref.defaultValue,
66
+ name = _ref.name,
67
+ label = _ref.label,
68
+ placeholder = _ref.placeholder,
69
+ required = _ref.required,
70
+ disabled = _ref.disabled,
71
+ autoComplete = _ref.autoComplete,
72
+ description = _ref.description,
73
+ error = _ref.error,
74
+ warning = _ref.warning,
75
+ icon = _ref.icon,
76
+ rows = _ref.rows,
77
+ className = _ref.className,
78
+ style = _ref.style,
79
+ onChange = _ref.onChange,
80
+ onBlur = _ref.onBlur,
81
+ rest = defaultTheme._objectWithoutProperties(_ref, ["value", "defaultValue", "name", "label", "placeholder", "required", "disabled", "autoComplete", "description", "error", "warning", "icon", "rows", "className", "style", "onChange", "onBlur"]);
82
+
83
83
  var _useState = React.useState(nanoid.nanoid()),
84
- _useState2 = defaultTheme._slicedToArray(_useState, 1),
85
- uniqueId = _useState2[0];
84
+ _useState2 = defaultTheme._slicedToArray(_useState, 1),
85
+ uniqueId = _useState2[0];
86
+
86
87
  var hasError = React.useMemo(function () {
87
88
  if (lodash.isBoolean(error)) {
88
89
  return error;
89
90
  }
91
+
90
92
  return !lodash.isEmpty(error);
91
93
  }, [error]);
92
94
  var hasWarning = React.useMemo(function () {
93
95
  if (lodash.isBoolean(warning)) {
94
96
  return warning;
95
97
  }
98
+
96
99
  return !lodash.isEmpty(warning);
97
100
  }, [warning]);
98
101
  var descriptionText = React.useMemo(function () {
99
102
  if (!lodash.isEmpty(error)) {
100
103
  return error;
101
104
  }
105
+
102
106
  if (!lodash.isEmpty(warning)) {
103
107
  return warning;
104
108
  }
109
+
105
110
  if (!lodash.isEmpty(description)) {
106
111
  return description;
107
112
  }
113
+
108
114
  return null;
109
115
  }, [description, error, warning]);
110
- return React__default["default"].createElement(TextInput, {
116
+ return React__default['default'].createElement(TextInput, {
111
117
  disabled: disabled,
112
118
  error: hasError,
113
119
  warning: hasWarning,
114
120
  className: className,
115
121
  style: style
116
- }, typeof icon !== 'undefined' && React__default["default"].createElement(TextInputFieldIcon, null, icon), React__default["default"].createElement(TextInputField, defaultTheme._extends({
122
+ }, typeof icon !== 'undefined' && React__default['default'].createElement(TextInputFieldIcon, null, icon), React__default['default'].createElement(TextInputField, defaultTheme._extends({
117
123
  ref: forwardedRef,
118
124
  rows: rows,
119
125
  value: value,
@@ -129,12 +135,12 @@ var TextArea = React__default["default"].forwardRef(function TextArea(_ref, forw
129
135
  id: "text-input-".concat(uniqueId),
130
136
  onChange: onChange,
131
137
  onBlur: onBlur
132
- }, rest)), label && React__default["default"].createElement(TextInputLabel, {
138
+ }, rest)), label && React__default['default'].createElement(TextInputLabel, {
133
139
  htmlFor: "text-input-".concat(uniqueId),
134
140
  hasPlaceholder: Boolean(placeholder),
135
141
  hasIcon: Boolean(icon),
136
142
  error: hasError
137
- }, label, required && ' *'), typeof descriptionText === 'string' && descriptionText.length > 0 && React__default["default"].createElement(Description, {
143
+ }, label, required && ' *'), typeof descriptionText === 'string' && descriptionText.length > 0 && React__default['default'].createElement(Description, {
138
144
  error: hasError
139
145
  }, descriptionText));
140
146
  });
@@ -0,0 +1,247 @@
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, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17, _templateObject18, _templateObject19, _templateObject20, _templateObject21, _templateObject22;
15
+ var activeLabel = styled.css(_templateObject || (_templateObject = defaultTheme._taggedTemplateLiteral(["\n font-size: 0.75rem;\n padding: 0 3px;\n top: -7px;\n letter-spacing: 0.03em;\n left: 8px !important;\n opacity: 1 !important;\n"])));
16
+ var Adornment = styled__default['default'].div.attrs(defaultTheme.applyDefaultTheme)(_templateObject2 || (_templateObject2 = defaultTheme._taggedTemplateLiteral(["\n flex-shrink: 0;\n font-family: inherit;\n font-size: 0.875rem;\n line-height: 1;\n padding: 13px 10px;\n ", "\n ", "\n border: 1px solid;\n ", "\n border-radius: 3px;\n z-index: 1;\n ", "\n box-sizing: border-box;\n appearance: none;\n transition: border-color 350ms;\n height: 2.5rem;\n\n ", "\n ", "\n"])), function (props) {
17
+ return props.theme.themeProp('color', props.theme.getColor('gray-400'), props.theme.getColor('gray-500'));
18
+ }, function (props) {
19
+ return props.theme.themeProp('background', props.theme.getColor('gray-900'), props.theme.getColor('white'));
20
+ }, function (props) {
21
+ return props.theme.themeProp('border-color', props.theme.getColor('gray-500'), props.theme.getColor('gray-400'));
22
+ }, function (props) {
23
+ return props.isPrefix ? styled.css(_templateObject3 || (_templateObject3 = defaultTheme._taggedTemplateLiteral(["\n padding-right: 0;\n margin-right: -3px;\n border-right: 0;\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n "]))) : styled.css(_templateObject4 || (_templateObject4 = defaultTheme._taggedTemplateLiteral(["\n padding-left: 0;\n margin-left: -3px;\n border-left: 0;\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n "])));
24
+ }, function (props) {
25
+ return props.warning && styled.css(_templateObject5 || (_templateObject5 = defaultTheme._taggedTemplateLiteral(["\n border-color: ", " !important;\n "])), props.theme.getColor('orange-500'));
26
+ }, function (props) {
27
+ return props.error && styled.css(_templateObject6 || (_templateObject6 = defaultTheme._taggedTemplateLiteral(["\n border-color: ", " !important;\n "])), props.theme.getColor('red-500'));
28
+ });
29
+ var TextInputWrapper = styled__default['default'].div.attrs(defaultTheme.applyDefaultTheme)(_templateObject7 || (_templateObject7 = defaultTheme._taggedTemplateLiteral(["\n display: flex;\n align-content: center;\n\n &:focus-within {\n ", " {\n outline: none;\n ", "\n }\n }\n"])), Adornment, function (props) {
30
+ return props.theme.themeProp('border-color', props.theme.getColor('gray-500'), props.theme.getColor('gray-600'), 1);
31
+ });
32
+ var TextInputField = styled__default['default'].input.attrs(defaultTheme.applyDefaultTheme)(_templateObject8 || (_templateObject8 = defaultTheme._taggedTemplateLiteral(["\n display: block;\n width: 100%;\n font-family: inherit;\n font-size: 0.875rem;\n line-height: 1;\n padding: 13px 10px;\n ", "\n ", "\n border: 1px solid;\n ", "\n border-radius: 3px;\n box-sizing: border-box;\n appearance: none;\n transition: border-color 350ms;\n height: 2.5rem !important; // important is needed to override the default Foundation styling used in the Mediebank\n margin-bottom: 0; // needed to override the default Foundation styling used in the Mediebank\n\n ", "\n ", "\n ", "\n\n &::placeholder {\n ", "\n\n ", "\n }\n\n :focus {\n outline: none;\n ", "\n }\n"])), function (props) {
33
+ return props.theme.themeProp('color', props.theme.getColor('gray-100'), props.theme.getColor('gray-900'));
34
+ }, function (props) {
35
+ return props.theme.themeProp('background', props.theme.getColor('gray-900'), props.theme.getColor('white'));
36
+ }, function (props) {
37
+ return props.theme.themeProp('border-color', props.theme.getColor('gray-500'), props.theme.getColor('gray-400'));
38
+ }, function (props) {
39
+ return props.warning && styled.css(_templateObject9 || (_templateObject9 = defaultTheme._taggedTemplateLiteral(["\n border-color: ", " !important;\n "])), props.theme.getColor('orange-500'));
40
+ }, function (props) {
41
+ return props.error && styled.css(_templateObject10 || (_templateObject10 = defaultTheme._taggedTemplateLiteral(["\n border-color: ", " !important;\n "])), props.theme.getColor('red-500'));
42
+ }, function (props) {
43
+ return props.hasIcon && styled.css(_templateObject11 || (_templateObject11 = defaultTheme._taggedTemplateLiteral(["\n padding-left: 35px;\n "])));
44
+ }, function (props) {
45
+ return props.theme.themeProp('color', props.theme.getColor('gray-300'), props.theme.getColor('gray-600'), 1);
46
+ }, function (props) {
47
+ return props.theme.themeProp('opacity', 0.6, 0.5, 1);
48
+ }, function (props) {
49
+ return props.theme.themeProp('border-color', props.theme.getColor('gray-500'), props.theme.getColor('gray-600'));
50
+ });
51
+ var TextInputLabel = styled__default['default'].label.attrs(defaultTheme.applyDefaultTheme)(_templateObject12 || (_templateObject12 = defaultTheme._taggedTemplateLiteral(["\n position: absolute;\n z-index: 1;\n top: 12px;\n left: 11px;\n line-height: 1.2;\n font-size: 0.875rem;\n transition: all 150ms;\n\n ", "\n\n ", "\n\n ", "\n\n ", "\n\n content: \"\";\n\n ", "\n"])), function (props) {
52
+ return props.theme.themeProp('color', props.theme.getColor('gray-300'), props.theme.getColor('gray-600'));
53
+ }, function (props) {
54
+ return props.theme.themeProp('opacity', 0.6, 0.5);
55
+ }, function (props) {
56
+ 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%)"));
57
+ }, function (props) {
58
+ return (props.hasPlaceholder || props.hasAdornments) && styled.css(_templateObject13 || (_templateObject13 = defaultTheme._taggedTemplateLiteral(["\n ", ";\n ", "\n "])), activeLabel, props.error && styled.css(_templateObject14 || (_templateObject14 = defaultTheme._taggedTemplateLiteral(["\n color: ", " !important;\n "])), props.theme.getColor('red-500')));
59
+ }, function (props) {
60
+ return props.hasIcon && styled.css(_templateObject15 || (_templateObject15 = defaultTheme._taggedTemplateLiteral(["\n left: 35px;\n "])));
61
+ });
62
+ var TextInputFieldIcon = styled__default['default'].div.attrs(defaultTheme.applyDefaultTheme)(_templateObject16 || (_templateObject16 = defaultTheme._taggedTemplateLiteral(["\n position: absolute;\n top: 0;\n left: 0;\n height: 2.625rem;\n display: flex;\n padding: 0 10px;\n\n svg {\n width: 15px;\n opacity: 0.6;\n transition: opacity 250ms;\n }\n"])));
63
+ var TextInput$1 = styled__default['default'].div.attrs(defaultTheme.applyDefaultTheme)(_templateObject17 || (_templateObject17 = defaultTheme._taggedTemplateLiteral(["\n position: relative;\n\n &:focus-within {\n ", " {\n ", ";\n }\n\n ", " {\n svg {\n opacity: 1;\n }\n }\n }\n\n ", ":not(:placeholder-shown) + ", " {\n ", ";\n ", "\n // ", "\n ", "\n }\n\n ", "\n"])), TextInputLabel, activeLabel, TextInputFieldIcon, TextInputField, TextInputLabel, activeLabel, function (props) {
64
+ return props.error && props.theme.themeProp('color', props.theme.getColor('red-200'), props.theme.getColor('red-500'));
65
+ }, function (props) {
66
+ return props.error && styled.css(_templateObject18 || (_templateObject18 = defaultTheme._taggedTemplateLiteral(["\n // color: ", " !important;\n //\n "])), props.theme.getColor('red-500'));
67
+ }, function (props) {
68
+ return props.warning && styled.css(_templateObject19 || (_templateObject19 = defaultTheme._taggedTemplateLiteral(["\n color: ", " !important;\n "])), props.theme.getColor('orange-500'));
69
+ }, function (props) {
70
+ return props.disabled && styled.css(_templateObject20 || (_templateObject20 = defaultTheme._taggedTemplateLiteral(["\n opacity: 0.5;\n\n > * {\n cursor: not-allowed;\n }\n "])));
71
+ });
72
+ var Description = styled__default['default'].p.attrs(defaultTheme.applyDefaultTheme)(_templateObject21 || (_templateObject21 = defaultTheme._taggedTemplateLiteral(["\n margin: 8px 0 0 0;\n padding: 0 0.6875rem;\n font-size: 0.75rem;\n line-height: 1.333;\n\n ", ";\n\n ", "\n"])), function (props) {
73
+ return props.theme.themeProp('color', props.theme.getColor('gray-400'), props.theme.getColor('gray-500'));
74
+ }, function (props) {
75
+ return props.error && styled.css(_templateObject22 || (_templateObject22 = defaultTheme._taggedTemplateLiteral(["\n content: 'error';\n ", "\n "])), props.theme.themeProp('color', props.theme.getColor('red-200'), props.theme.getColor('red-500')));
76
+ });
77
+
78
+ var toFnRef = function toFnRef(ref) {
79
+ return !ref || typeof ref === 'function' ? ref : function (value) {
80
+ ref.current = value;
81
+ };
82
+ };
83
+
84
+ function mergeRefs(refA, refB) {
85
+ var a = toFnRef(refA);
86
+ var b = toFnRef(refB);
87
+ return function (value) {
88
+ if (a) a(value);
89
+ if (b) b(value);
90
+ };
91
+ }
92
+ /**
93
+ * Create and returns a single callback ref composed from two other Refs.
94
+ *
95
+ * ```tsx
96
+ * const Button = React.forwardRef((props, ref) => {
97
+ * const [element, attachRef] = useCallbackRef<HTMLButtonElement>();
98
+ * const mergedRef = useMergedRefs(ref, attachRef);
99
+ *
100
+ * return <button ref={mergedRef} {...props}/>
101
+ * })
102
+ * ```
103
+ *
104
+ * @param refA A Callback or mutable Ref
105
+ * @param refB A Callback or mutable Ref
106
+ * @category refs
107
+ */
108
+
109
+ function useMergedRefs(refA, refB) {
110
+ return React.useMemo(function () {
111
+ return mergeRefs(refA, refB);
112
+ }, [refA, refB]);
113
+ }
114
+
115
+ var TextInput = React__default['default'].forwardRef(function TextInput(_ref, forwardedRef) {
116
+ var value = _ref.value,
117
+ defaultValue = _ref.defaultValue,
118
+ name = _ref.name,
119
+ label = _ref.label,
120
+ placeholder = _ref.placeholder,
121
+ type = _ref.type,
122
+ required = _ref.required,
123
+ disabled = _ref.disabled,
124
+ autoComplete = _ref.autoComplete,
125
+ description = _ref.description,
126
+ error = _ref.error,
127
+ warning = _ref.warning,
128
+ icon = _ref.icon,
129
+ adornments = _ref.adornments,
130
+ className = _ref.className,
131
+ style = _ref.style,
132
+ onChange = _ref.onChange,
133
+ onBlur = _ref.onBlur,
134
+ rest = defaultTheme._objectWithoutProperties(_ref, ["value", "defaultValue", "name", "label", "placeholder", "type", "required", "disabled", "autoComplete", "description", "error", "warning", "icon", "adornments", "className", "style", "onChange", "onBlur"]);
135
+
136
+ var textInputDomNode = React.useRef(null);
137
+ var textInputRef = useMergedRefs(forwardedRef, textInputDomNode);
138
+
139
+ var _useState = React.useState(nanoid.nanoid()),
140
+ _useState2 = defaultTheme._slicedToArray(_useState, 1),
141
+ uniqueId = _useState2[0];
142
+
143
+ var hasError = React.useMemo(function () {
144
+ if (lodash.isBoolean(error)) {
145
+ return error;
146
+ }
147
+
148
+ return !lodash.isEmpty(error);
149
+ }, [error]);
150
+ var hasWarning = React.useMemo(function () {
151
+ if (lodash.isBoolean(warning)) {
152
+ return warning;
153
+ }
154
+
155
+ return !lodash.isEmpty(warning);
156
+ }, [warning]);
157
+ var descriptionText = React.useMemo(function () {
158
+ if (!lodash.isEmpty(error)) {
159
+ return error;
160
+ }
161
+
162
+ if (!lodash.isEmpty(warning)) {
163
+ return warning;
164
+ }
165
+
166
+ if (!lodash.isEmpty(description)) {
167
+ return description;
168
+ }
169
+
170
+ return null;
171
+ }, [description, error, warning]);
172
+ return React__default['default'].createElement(TextInput$1, {
173
+ disabled: disabled,
174
+ error: hasError,
175
+ warning: hasWarning,
176
+ className: className,
177
+ style: style
178
+ }, typeof icon !== 'undefined' && React__default['default'].createElement(TextInputFieldIcon, null, icon), React__default['default'].createElement(TextInputWrapper, null, typeof (adornments === null || adornments === void 0 ? void 0 : adornments.prefix) === 'string' && adornments.prefix.length > 0 && React__default['default'].createElement(Adornment, {
179
+ htmlFor: "text-input-".concat(uniqueId),
180
+ error: hasError,
181
+ warning: hasWarning,
182
+ isPrefix: true,
183
+ onClick: function onClick() {
184
+ return textInputDomNode.current.focus();
185
+ }
186
+ }, adornments.prefix), React__default['default'].createElement(TextInputField, defaultTheme._extends({
187
+ ref: textInputRef,
188
+ value: value,
189
+ defaultValue: defaultValue,
190
+ name: name,
191
+ placeholder: placeholder || ' ',
192
+ type: type,
193
+ required: required,
194
+ disabled: disabled,
195
+ autoComplete: autoComplete,
196
+ hasIcon: Boolean(icon),
197
+ error: hasError,
198
+ warning: hasWarning,
199
+ id: "text-input-".concat(uniqueId),
200
+ onChange: onChange,
201
+ onBlur: onBlur
202
+ }, rest)), label && React__default['default'].createElement(TextInputLabel, {
203
+ htmlFor: "text-input-".concat(uniqueId),
204
+ hasPlaceholder: Boolean(placeholder),
205
+ hasAdornments: Boolean(typeof (adornments === null || adornments === void 0 ? void 0 : adornments.prefix) === 'string' && adornments.prefix.length > 0 || typeof (adornments === null || adornments === void 0 ? void 0 : adornments.suffix) === 'string' && adornments.suffix.length > 0),
206
+ hasIcon: Boolean(icon),
207
+ error: hasError
208
+ }, label, required && ' *'), typeof (adornments === null || adornments === void 0 ? void 0 : adornments.suffix) === 'string' && adornments.suffix.length > 0 && React__default['default'].createElement(Adornment, {
209
+ error: hasError,
210
+ warning: hasWarning,
211
+ isPrefix: false,
212
+ onClick: function onClick() {
213
+ return textInputDomNode.current.focus();
214
+ }
215
+ }, adornments.suffix)), typeof descriptionText === 'string' && descriptionText.length > 0 && React__default['default'].createElement(Description, {
216
+ error: hasError
217
+ }, descriptionText));
218
+ });
219
+ TextInput.defaultProps = {
220
+ type: 'text'
221
+ };
222
+ TextInput.propTypes = process.env.NODE_ENV !== "production" ? {
223
+ value: defaultTheme.PropTypes.string,
224
+ defaultValue: defaultTheme.PropTypes.string,
225
+ name: defaultTheme.PropTypes.string,
226
+ label: defaultTheme.PropTypes.string,
227
+ placeholder: defaultTheme.PropTypes.string,
228
+ type: defaultTheme.PropTypes.string,
229
+ required: defaultTheme.PropTypes.bool,
230
+ disabled: defaultTheme.PropTypes.bool,
231
+ autoComplete: defaultTheme.PropTypes.string,
232
+ description: defaultTheme.PropTypes.string,
233
+ error: defaultTheme.PropTypes.oneOfType([defaultTheme.PropTypes.bool, defaultTheme.PropTypes.string]),
234
+ warning: defaultTheme.PropTypes.oneOfType([defaultTheme.PropTypes.bool, defaultTheme.PropTypes.string]),
235
+ icon: defaultTheme.PropTypes.element,
236
+ adornments: defaultTheme.PropTypes.shape({
237
+ prefix: defaultTheme.PropTypes.string,
238
+ suffix: defaultTheme.PropTypes.string
239
+ }),
240
+ className: defaultTheme.PropTypes.string,
241
+ style: defaultTheme.PropTypes.object,
242
+ onChange: defaultTheme.PropTypes.func,
243
+ onBlur: defaultTheme.PropTypes.func
244
+ } : {};
245
+
246
+ exports.TextInput = TextInput;
247
+ exports.useMergedRefs = useMergedRefs;
@@ -1,10 +1,10 @@
1
1
  'use strict';
2
2
 
3
- var defaultTheme = require('./defaultTheme-38b83bb5.js');
3
+ var defaultTheme = require('./defaultTheme-870f7df1.js');
4
4
  var React = require('react');
5
5
  var styled = require('styled-components');
6
6
  var TippyTooltip = require('@tippyjs/react');
7
- require('./Popover-b16a26a5.js');
7
+ require('./Popover-d3e2f6c0.js');
8
8
 
9
9
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
10
10
 
@@ -13,7 +13,7 @@ var styled__default = /*#__PURE__*/_interopDefaultLegacy(styled);
13
13
  var TippyTooltip__default = /*#__PURE__*/_interopDefaultLegacy(TippyTooltip);
14
14
 
15
15
  var _templateObject;
16
- var Tooltip$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 background: ", ";\n border-radius: 3px;\n\n .tippy-content {\n padding: 9px 12px;\n }\n\n .tippy-arrow {\n color: ", ";\n }\n\n a {\n color: inherit;\n }\n"])), function (props) {
16
+ var Tooltip$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 background: ", ";\n border-radius: 3px;\n\n .tippy-content {\n padding: 9px 12px;\n }\n\n .tippy-arrow {\n color: ", ";\n }\n\n a {\n color: inherit;\n }\n"])), function (props) {
17
17
  return props.theme.primaryFontFamily;
18
18
  }, function (props) {
19
19
  return props.theme.getColor('gray-700');
@@ -21,15 +21,15 @@ var Tooltip$1 = styled__default["default"](TippyTooltip__default["default"]).att
21
21
  return props.theme.getColor('gray-700');
22
22
  });
23
23
 
24
- var _excluded = ["content", "interactive", "placement", "duration", "children"];
25
- var Tooltip = React__default["default"].forwardRef(function Tooltip(_ref, ref) {
24
+ var Tooltip = React__default['default'].forwardRef(function Tooltip(_ref, ref) {
26
25
  var content = _ref.content,
27
- interactive = _ref.interactive,
28
- placement = _ref.placement,
29
- duration = _ref.duration,
30
- children = _ref.children,
31
- props = defaultTheme._objectWithoutProperties(_ref, _excluded);
32
- return React__default["default"].createElement(Tooltip$1, defaultTheme._extends({
26
+ interactive = _ref.interactive,
27
+ placement = _ref.placement,
28
+ duration = _ref.duration,
29
+ children = _ref.children,
30
+ props = defaultTheme._objectWithoutProperties(_ref, ["content", "interactive", "placement", "duration", "children"]);
31
+
32
+ return React__default['default'].createElement(Tooltip$1, defaultTheme._extends({
33
33
  ref: ref,
34
34
  content: content,
35
35
  interactive: interactive,
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var Popover = require('../../Popover-b16a26a5.js');
4
- require('../../defaultTheme-38b83bb5.js');
3
+ var Popover = require('../../Popover-d3e2f6c0.js');
4
+ require('../../defaultTheme-870f7df1.js');
5
5
  require('styled-components');
6
6
  require('react');
7
7
  require('lodash');
package/data/index.js CHANGED
@@ -2,9 +2,9 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var Popover = require('../Popover-b16a26a5.js');
6
- var Tooltip = require('../Tooltip-a9271ef2.js');
7
- require('../defaultTheme-38b83bb5.js');
5
+ var Popover = require('../Popover-d3e2f6c0.js');
6
+ var Tooltip = require('../Tooltip-f95a39f4.js');
7
+ require('../defaultTheme-870f7df1.js');
8
8
  require('styled-components');
9
9
  require('react');
10
10
  require('lodash');