@ntbjs/react-components 1.1.0-beta.90 → 1.1.0-beta.92

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.
@@ -3,7 +3,7 @@
3
3
  var defaultTheme = require('./defaultTheme-50f2b88f.js');
4
4
  var React = require('react');
5
5
  var lodash = require('lodash');
6
- var TextInput = require('./TextInput-8ea31a7b.js');
6
+ var useMergedRefs = require('./useMergedRefs-b6d2f8fc.js');
7
7
  var ResizeObserver = require('resize-observer-polyfill');
8
8
  var reactLazyLoadImageComponent = require('react-lazy-load-image-component');
9
9
  var ActionButton = require('./ActionButton-c3f5ed94.js');
@@ -14,7 +14,8 @@ require('./CompactStarRating-de1bcfe9.js');
14
14
  require('./CompactTextInput-480f59cc.js');
15
15
  require('./MultiSelect-01a257b8.js');
16
16
  require('./Radio-c811ce4a.js');
17
- require('./TextArea-14b4864b.js');
17
+ require('./TextArea-154c3bec.js');
18
+ require('./TextInput-5ff74c8e.js');
18
19
  require('./Switch-3ac11c97.js');
19
20
  require('./Alert-3e4f8be1.js');
20
21
  require('./Badge-9bcebe96.js');
@@ -883,7 +884,7 @@ var AssetGalleryBase = React__default['default'].forwardRef(function AssetGaller
883
884
  props = defaultTheme._objectWithoutProperties(_ref, ["assets", "viewMode", "thumbnailMaxHeight", "selectable", "selectedAssetKeys", "onAssetSelected", "onAssetUnselected", "softSelectable", "softSelectedAssetKey", "scrollElement", "onAssetSoftSelectedChanged", "component"]);
884
885
 
885
886
  var assetGalleryDOMNode = React.useRef();
886
- var assetGalleryCompactRef = TextInput.useMergedRefs(forwardedRef, assetGalleryDOMNode);
887
+ var assetGalleryCompactRef = useMergedRefs.useMergedRefs(forwardedRef, assetGalleryDOMNode);
887
888
  var assetGalleryWidth = React.useRef(0);
888
889
  var minimumRowAspectRatio = React.useRef(0);
889
890
  var calculatedAssets = React.useRef([]);
@@ -5,7 +5,7 @@ var lodash = require('lodash');
5
5
  var React = require('react');
6
6
  var warningCircle = require('./warning-circle-24522402.js');
7
7
  var CompactAutocompleteSelect = require('./CompactAutocompleteSelect-45b12179.js');
8
- var TextArea = require('./TextArea-14b4864b.js');
8
+ var TextArea = require('./TextArea-154c3bec.js');
9
9
  var styled = require('styled-components');
10
10
 
11
11
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
@@ -2,6 +2,7 @@
2
2
 
3
3
  var defaultTheme = require('./defaultTheme-50f2b88f.js');
4
4
  var React = require('react');
5
+ var useMergedRefs = require('./useMergedRefs-b6d2f8fc.js');
5
6
  var nanoid = require('nanoid');
6
7
  var check = require('./check-555d831b.js');
7
8
  var editNote = require('./edit-note-c47d292e.js');
@@ -12,7 +13,7 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
12
13
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
13
14
  var styled__default = /*#__PURE__*/_interopDefaultLegacy(styled);
14
15
 
15
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17, _templateObject18, _templateObject19, _templateObject20, _templateObject21, _templateObject22, _templateObject23, _templateObject24, _templateObject25, _templateObject26, _templateObject27, _templateObject28, _templateObject29, _templateObject30, _templateObject31, _templateObject32, _templateObject33, _templateObject34, _templateObject35, _templateObject36, _templateObject37, _templateObject38, _templateObject39, _templateObject40;
16
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17, _templateObject18, _templateObject19, _templateObject20, _templateObject21, _templateObject22, _templateObject23, _templateObject24, _templateObject25, _templateObject26, _templateObject27, _templateObject28, _templateObject29, _templateObject30, _templateObject31, _templateObject32, _templateObject33, _templateObject34, _templateObject35, _templateObject36, _templateObject37, _templateObject38, _templateObject39, _templateObject40, _templateObject41;
16
17
  var fadeInCheck = styled.keyframes(_templateObject || (_templateObject = defaultTheme._taggedTemplateLiteral(["\n from {\n opacity: 0\n }\n to {\n opacity: 1\n }\n"])));
17
18
  var fadeOutCheck = styled.keyframes(_templateObject2 || (_templateObject2 = defaultTheme._taggedTemplateLiteral(["\n from {\n opacity: 1\n }\n to {\n opacity: 0\n }\n"])));
18
19
  var activeLabel = styled.css(_templateObject3 || (_templateObject3 = 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"])));
@@ -26,17 +27,18 @@ var InputIconContainer = styled__default['default'].div.attrs(defaultTheme.apply
26
27
  }, function (props) {
27
28
  return props.disabled && styled.css(_templateObject6 || (_templateObject6 = defaultTheme._taggedTemplateLiteral(["\n display: none;\n "])));
28
29
  });
29
- var Container = styled__default['default'].div.attrs(defaultTheme.applyDefaultTheme)(_templateObject7 || (_templateObject7 = defaultTheme._taggedTemplateLiteral([""])));
30
- var TextInputField = styled__default['default'].textarea.attrs(defaultTheme.applyDefaultTheme)(_templateObject8 || (_templateObject8 = defaultTheme._taggedTemplateLiteral(["\n width: 100%;\n font-family: inherit;\n font-size: 0.875rem;\n border-radius: 2px;\n padding: 5px 10px;\n resize: vertical;\n transition: height 0.3s ease;\n z-index: 0;\n border-radius: 3px;\n box-sizing: border-box;\n appearance: none;\n transition: border-color 350ms;\n border: 1px solid;\n\n ", "\n ", "\n\n ", "\n ", "\n\n ", "\n \n ", "\n\n ", "\n\n ", "\n \n\n ", "\n\n ", " \n ", "\n\n &&:hover:not(:focus) {\n ", ";\n }\n\n ", "\n\n ", " \n ", "\n\n ", ";\n\n ", ";\n\n &&:hover:not(:focus) {\n ", ";\n transition: background 350ms;\n & + ", " {\n opacity: 1;\n ", ";\n transition: opacity 350ms;\n }\n }\n\n ", "\n ", "\n ", "\n\n ", "\n\n &::placeholder {\n ", "\n\n ", "\n }\n\n &&:focus {\n outline: none;\n ", "\n\n ", ";\n\n ", "\n ", "\n }\n"])), function (props) {
31
- return props.theme.themeProp('color', 'white', 'black');
30
+ var TextInputField = styled__default['default'].textarea.attrs(defaultTheme.applyDefaultTheme)(_templateObject7 || (_templateObject7 = defaultTheme._taggedTemplateLiteral(["\n width: 100%;\n font-family: inherit;\n font-size: 0.875rem;\n border-radius: 2px;\n padding: 5px 10px;\n resize: vertical;\n z-index: 0;\n border-radius: 3px;\n box-sizing: border-box;\n appearance: none;\n border: 1px solid;\n\n ", "\n ", "\n\n transition: height 550ms ease-in-out; border-color 350ms;\n\n ", "\n ", "\n\n\n\n ", "\n \n\n ", "\n \n ", "\n\n ", "\n\n ", "\n \n\n ", "\n\n ", " \n ", "\n\n &&:hover:not(:focus) {\n ", ";\n }\n\n ", "\n\n ", " \n ", "\n ", ";\n\n ", ";\n\n ", ";\n\n &&:hover:not(:focus) {\n ", ";\n transition: background 350ms;\n & + ", " {\n opacity: 1;\n ", ";\n transition: opacity 350ms;\n }\n }\n\n ", "\n ", "\n ", "\n\n ", "\n\n &::placeholder {\n ", "\n\n ", "\n }\n\n &&:focus {\n outline: none;\n ", "\n\n ", ";\n\n ", "\n ", "\n }\n"])), function (props) {
31
+ return props.expanded && styled.css(_templateObject8 || (_templateObject8 = defaultTheme._taggedTemplateLiteral(["\n height: ", "px;\n "])), props.defaultHeight);
32
+ }, function (props) {
33
+ return !props.expanded && styled.css(_templateObject9 || (_templateObject9 = defaultTheme._taggedTemplateLiteral(["\n height: ", "px;\n "])), props.maxHeight);
32
34
  }, function (props) {
33
- return props.disabled && styled.css(_templateObject9 || (_templateObject9 = defaultTheme._taggedTemplateLiteral(["\n opacity: 0.5;\n cursor: not-allowed;\n "])));
35
+ return props.theme.themeProp('color', 'white', 'black');
34
36
  }, function (props) {
35
- return props.readOnly && styled.css(_templateObject10 || (_templateObject10 = defaultTheme._taggedTemplateLiteral(["\n pointer-events: none;\n "])));
37
+ return props.disabled && styled.css(_templateObject10 || (_templateObject10 = defaultTheme._taggedTemplateLiteral(["\n opacity: 0.5;\n cursor: not-allowed;\n "])));
36
38
  }, function (props) {
37
- return props.expanded && styled.css(_templateObject11 || (_templateObject11 = defaultTheme._taggedTemplateLiteral(["\n height: ", "em;\n "])), props.maxHeight);
39
+ return props.readOnly && styled.css(_templateObject11 || (_templateObject11 = defaultTheme._taggedTemplateLiteral(["\n pointer-events: none;\n "])));
38
40
  }, function (props) {
39
- return props.showMore && styled.css(_templateObject12 || (_templateObject12 = defaultTheme._taggedTemplateLiteral(["\n overflow: hidden;\n "])));
41
+ return props.showMore && styled.css(_templateObject12 || (_templateObject12 = defaultTheme._taggedTemplateLiteral(["\n overflow: hidden;\n "])));
40
42
  }, function (props) {
41
43
  return props.theme.themeProp('color', props.theme.getColor('gray-100'), props.theme.getColor('gray-900'));
42
44
  }, function (props) {
@@ -48,7 +50,7 @@ var TextInputField = styled__default['default'].textarea.attrs(defaultTheme.appl
48
50
  }, function (props) {
49
51
  return props.noBorder && styled.css(_templateObject13 || (_templateObject13 = defaultTheme._taggedTemplateLiteral(["\n padding: 13px 15px 13px 10px;\n border-color: transparent !important;\n "])));
50
52
  }, function (props) {
51
- return props.state === 'error-border' && styled.css(_templateObject14 || (_templateObject14 = defaultTheme._taggedTemplateLiteral(["\n ", "\n "])), props.theme.themeProp('border-color', props.theme.getColor('red-200'), props.theme.getColor('red-500')));
53
+ return props.state === 'error-border' && styled.css(_templateObject14 || (_templateObject14 = defaultTheme._taggedTemplateLiteral(["\n ", "\n "])), props.theme.themeProp('border-color', props.theme.getColor('red-200'), props.theme.getColor('red-500')));
52
54
  }, function (props) {
53
55
  return !props.readOnly && props.theme.themeProp('background', props.theme.getColor('gray-700'), props.theme.getColor('gray-100'));
54
56
  }, function (props) {
@@ -58,7 +60,9 @@ var TextInputField = styled__default['default'].textarea.attrs(defaultTheme.appl
58
60
  }, function (props) {
59
61
  return props.state === 'error' && styled.css(_templateObject17 || (_templateObject17 = defaultTheme._taggedTemplateLiteral(["\n background: ", " !important;\n :focus {\n background: white !important;\n }\n &&:hover:not(:focus) {\n background: #f7d5d0 !important;\n }\n &&:read-only:hover {\n background: ", " !important;\n }\n "])), props.theme.getColor('red-200'), props.theme.getColor('red-200'));
60
62
  }, function (props) {
61
- return props.lightBackground && styled.css(_templateObject18 || (_templateObject18 = defaultTheme._taggedTemplateLiteral(["\n ", "\n ", "\n &&:hover {\n ", "\n }\n "])), props.theme.themeProp('background', '#FFFDDE', '#fffde8'), props.theme.themeProp('color', props.theme.getColor('gray-900'), props.theme.getColor('gray-900')), props.theme.themeProp('background', 'white', 'white'));
63
+ return props.lightBackground && styled.css(_templateObject18 || (_templateObject18 = defaultTheme._taggedTemplateLiteral(["\n ", "\n ", "\n &&:hover {\n ", "\n }\n "])), props.theme.themeProp('background', '#FFFDDE', '#fffde8'), props.theme.themeProp('color', props.theme.getColor('gray-900'), props.theme.getColor('gray-900')), props.theme.themeProp('background', 'white', 'white'));
64
+ }, function (props) {
65
+ return props.edit && props.theme.themeProp('background', '#505050', '#eff1f4');
62
66
  }, function (props) {
63
67
  return props.edit && !props.state === 'warning' && props.theme.themeProp('background', '#505050', '#eff1f4');
64
68
  }, function (props) {
@@ -74,7 +78,7 @@ var TextInputField = styled__default['default'].textarea.attrs(defaultTheme.appl
74
78
  }, function (props) {
75
79
  return props.hasIcon && styled.css(_templateObject22 || (_templateObject22 = defaultTheme._taggedTemplateLiteral(["\n padding-left: 55px;\n padding-right: 25px;\n "])));
76
80
  }, function (props) {
77
- return props.instructionsTextArea && styled.css(_templateObject23 || (_templateObject23 = defaultTheme._taggedTemplateLiteral(["\n padding-left: 55px;\n padding-top: 15px;\n padding-right: 50px;\n "])));
81
+ return props.instructionsTextArea && styled.css(_templateObject23 || (_templateObject23 = defaultTheme._taggedTemplateLiteral(["\n padding-left: 55px;\n padding-top: 15px;\n padding-right: 50px;\n "])));
78
82
  }, function (props) {
79
83
  return props.theme.themeProp('color', props.theme.getColor('gray-300'), props.theme.getColor('gray-600'), 1);
80
84
  }, function (props) {
@@ -120,10 +124,14 @@ var SuccessContainer = styled__default['default'].div.attrs(defaultTheme.applyDe
120
124
  }, function (props) {
121
125
  return props.theme.themeProp('color', props.theme.getColor('gray-300'), props.theme.getColor('gray-500'));
122
126
  });
123
- var ShowMoreText = styled__default['default'].div.attrs(defaultTheme.applyDefaultTheme)(_templateObject39 || (_templateObject39 = defaultTheme._taggedTemplateLiteral(["\n margin: 0 0 0 0;\n padding: 0 0.6875rem;\n font-size: 0.75rem;\n line-height: 1.333;\n cursor: pointer;\n ", ";\n\n ", "\n"])), function (props) {
127
+ var ShowMoreText = styled__default['default'].div.attrs(defaultTheme.applyDefaultTheme)(_templateObject39 || (_templateObject39 = defaultTheme._taggedTemplateLiteral(["\n margin-top: -20px;\n margin-bottom: 0;\n display: block;\n position: absolute;\n padding: 0 0.6875rem;\n font-size: 0.75rem;\n line-height: 1.333;\n cursor: pointer;\n\n ", "\n\n transition: margin-top 550ms ease-in-out;\n\n ", "\n ", ";\n\n ", "\n"])), function (props) {
128
+ return !props.expanded && styled.css(_templateObject40 || (_templateObject40 = defaultTheme._taggedTemplateLiteral(["\n margin-top: 0px;\n margin-bottom: 5px;\n "])));
129
+ }, function (props) {
130
+ return props.theme.themeProp('background', props.theme.getColor('gray-900'), props.theme.getColor('white'));
131
+ }, function (props) {
124
132
  return props.theme.themeProp('color', props.theme.getColor('gray-300'), props.theme.getColor('emerald-500'));
125
133
  }, function (props) {
126
- return props.state === 'error' && styled.css(_templateObject40 || (_templateObject40 = defaultTheme._taggedTemplateLiteral(["\n content: 'error';\n ", "\n "])), props.theme.themeProp('color', props.theme.getColor('red-200'), props.theme.getColor('red-500')));
134
+ return props.state === 'error' && styled.css(_templateObject41 || (_templateObject41 = defaultTheme._taggedTemplateLiteral(["\n content: 'error';\n ", "\n "])), props.theme.themeProp('color', props.theme.getColor('red-200'), props.theme.getColor('red-500')));
127
135
  });
128
136
 
129
137
  var TextArea = React__default['default'].forwardRef(function TextArea(_ref, forwardedRef) {
@@ -137,9 +145,9 @@ var TextArea = React__default['default'].forwardRef(function TextArea(_ref, forw
137
145
  hidden = _ref.hidden,
138
146
  readOnly = _ref.readOnly,
139
147
  edit = _ref.edit,
140
- isExpanded = _ref.isExpanded,
141
148
  showMore = _ref.showMore,
142
149
  showMoreText = _ref.showMoreText,
150
+ showLessText = _ref.showLessText,
143
151
  autoComplete = _ref.autoComplete,
144
152
  description = _ref.description,
145
153
  state = _ref.state,
@@ -152,9 +160,10 @@ var TextArea = React__default['default'].forwardRef(function TextArea(_ref, forw
152
160
  lightBackground = _ref.lightBackground,
153
161
  noBorder = _ref.noBorder,
154
162
  instructionsTextArea = _ref.instructionsTextArea,
155
- rest = defaultTheme._objectWithoutProperties(_ref, ["value", "defaultValue", "name", "label", "placeholder", "required", "disabled", "hidden", "readOnly", "edit", "isExpanded", "showMore", "showMoreText", "autoComplete", "description", "state", "icon", "rows", "className", "style", "onChange", "onBlur", "lightBackground", "noBorder", "instructionsTextArea"]);
163
+ rest = defaultTheme._objectWithoutProperties(_ref, ["value", "defaultValue", "name", "label", "placeholder", "required", "disabled", "hidden", "readOnly", "edit", "showMore", "showMoreText", "showLessText", "autoComplete", "description", "state", "icon", "rows", "className", "style", "onChange", "onBlur", "lightBackground", "noBorder", "instructionsTextArea"]);
156
164
 
157
- var textInputRef = React.useRef(null);
165
+ var textInputDomNode = React.useRef(null);
166
+ var textInputRef = useMergedRefs.useMergedRefs(forwardedRef, textInputDomNode);
158
167
 
159
168
  var _useState = React.useState(!(value || defaultValue)),
160
169
  _useState2 = defaultTheme._slicedToArray(_useState, 2),
@@ -163,64 +172,56 @@ var TextArea = React__default['default'].forwardRef(function TextArea(_ref, forw
163
172
 
164
173
  var _useState3 = React.useState(''),
165
174
  _useState4 = defaultTheme._slicedToArray(_useState3, 2),
166
- contentRows = _useState4[0],
167
- setContentRows = _useState4[1];
175
+ maxContentRows = _useState4[0],
176
+ setMaxContentRows = _useState4[1];
168
177
 
169
- var _useState5 = React.useState(''),
178
+ var _useState5 = React.useState(false),
170
179
  _useState6 = defaultTheme._slicedToArray(_useState5, 2),
171
- maxContentRows = _useState6[0],
172
- setMaxContentRows = _useState6[1];
180
+ expanded = _useState6[0],
181
+ setExpanded = _useState6[1];
173
182
 
174
- var _useState7 = React.useState(false),
183
+ var _useState7 = React.useState(''),
175
184
  _useState8 = defaultTheme._slicedToArray(_useState7, 2),
176
- expanded = _useState8[0],
177
- setExpanded = _useState8[1];
185
+ maxHeight = _useState8[0],
186
+ setMaxHeight = _useState8[1];
178
187
 
179
188
  var _useState9 = React.useState(''),
180
189
  _useState10 = defaultTheme._slicedToArray(_useState9, 2),
181
- maxHeight = _useState10[0],
182
- setMaxHeight = _useState10[1];
183
-
184
- var _useState11 = React.useState(false),
185
- _useState12 = defaultTheme._slicedToArray(_useState11, 2),
186
- showReadMore = _useState12[0],
187
- setShowReadMore = _useState12[1];
190
+ defaultHeight = _useState10[0],
191
+ setDefaultHeight = _useState10[1];
188
192
 
189
- var _useState13 = React.useState(nanoid.nanoid()),
190
- _useState14 = defaultTheme._slicedToArray(_useState13, 1),
191
- uniqueId = _useState14[0];
193
+ var _useState11 = React.useState(nanoid.nanoid()),
194
+ _useState12 = defaultTheme._slicedToArray(_useState11, 1),
195
+ uniqueId = _useState12[0];
192
196
 
193
197
  var handleTextAreaChange = function handleTextAreaChange() {
194
198
  setExpanded(!expanded);
195
- isExpanded(expanded);
196
-
197
- if (expanded === true) {
198
- setContentRows(maxContentRows);
199
- setMaxHeight(maxHeight);
200
- }
201
-
202
- if (expanded === false) {
203
- setContentRows(rows);
204
- }
205
199
  };
206
200
 
207
201
  var calculateRows = function calculateRows() {
208
- var textareaRefCurrent = textInputRef.current;
209
- var textarea = textareaRefCurrent.scrollHeight;
210
- var calculatedRows = Math.floor(textarea / 16);
211
- setMaxContentRows(calculatedRows);
202
+ var textareaRefCurrent = textInputDomNode === null || textInputDomNode === void 0 ? void 0 : textInputDomNode.current;
212
203
 
213
- if (calculatedRows > rows) {
214
- setExpanded(true);
215
- setShowReadMore(true);
216
- } else {
217
- setShowReadMore(false);
204
+ if (textareaRefCurrent !== null) {
205
+ var textAreaHeight = textareaRefCurrent === null || textareaRefCurrent === void 0 ? void 0 : textareaRefCurrent.scrollHeight;
206
+ console.log(textAreaHeight);
207
+ var lineHeight = 16;
208
+ var calculatedRows = Math.floor(textAreaHeight / lineHeight);
209
+ var defaultRowsHeight = rows * lineHeight;
210
+ setMaxContentRows(calculatedRows);
211
+
212
+ if (calculatedRows > rows) {
213
+ setExpanded(true);
214
+ setDefaultHeight(defaultRowsHeight);
215
+ setMaxHeight(textAreaHeight);
216
+ } else {
217
+ setMaxHeight();
218
+ }
218
219
  }
219
220
  };
220
221
 
221
222
  React.useEffect(function () {
222
223
  calculateRows();
223
- }, [value]);
224
+ }, [value, defaultValue]);
224
225
  if (hidden) return null;
225
226
  return React__default['default'].createElement(TextInput, {
226
227
  disabled: disabled,
@@ -228,10 +229,11 @@ var TextArea = React__default['default'].forwardRef(function TextArea(_ref, forw
228
229
  state: state,
229
230
  className: className,
230
231
  style: style
231
- }, React__default['default'].createElement(TextInputFieldIconAlert, null, icon), React__default['default'].createElement(Container, null, React__default['default'].createElement(TextInputField, defaultTheme._extends({
232
- ref: forwardedRef ? forwardedRef : textInputRef,
233
- rows: contentRows > rows ? contentRows : rows,
232
+ }, React__default['default'].createElement(TextInputFieldIconAlert, null, icon), React__default['default'].createElement(TextInputField, defaultTheme._extends({
233
+ ref: textInputRef,
234
+ rows: rows,
234
235
  expanded: expanded,
236
+ defaultHeight: defaultHeight,
235
237
  maxHeight: maxHeight,
236
238
  value: value,
237
239
  defaultValue: defaultValue,
@@ -265,7 +267,7 @@ var TextArea = React__default['default'].forwardRef(function TextArea(_ref, forw
265
267
  size: 12
266
268
  }), state === 'success' && React__default['default'].createElement(check.SvgCheck, null)), !readOnly && noBorder && React__default['default'].createElement(InputIconContainer, {
267
269
  disabled: disabled
268
- }, React__default['default'].createElement(editNote.SvgEditNote, null))), label && React__default['default'].createElement(TextInputLabel, {
270
+ }, React__default['default'].createElement(editNote.SvgEditNote, null)), label && React__default['default'].createElement(TextInputLabel, {
269
271
  htmlFor: "text-input-".concat(uniqueId),
270
272
  hasPlaceholder: Boolean(placeholder),
271
273
  hasIcon: Boolean(icon),
@@ -273,9 +275,10 @@ var TextArea = React__default['default'].forwardRef(function TextArea(_ref, forw
273
275
  inputIsEmpty: inputIsEmpty
274
276
  }, label, required && ' *'), typeof description === 'string' && description.length > 0 && React__default['default'].createElement(Description, {
275
277
  state: state
276
- }, description), maxContentRows > rows && showMore && showReadMore && React__default['default'].createElement(ShowMoreText, {
277
- onClick: handleTextAreaChange
278
- }, showMoreText));
278
+ }, description), maxContentRows > rows && showMore && React__default['default'].createElement(ShowMoreText, {
279
+ onClick: handleTextAreaChange,
280
+ expanded: expanded
281
+ }, expanded ? showMoreText : showLessText));
279
282
  });
280
283
  TextArea.defaultProps = {
281
284
  rows: 4,
@@ -285,6 +288,7 @@ TextArea.defaultProps = {
285
288
  hidden: false,
286
289
  showMore: false,
287
290
  showMoreText: '',
291
+ showLessText: '',
288
292
  state: '',
289
293
  instructionsTextArea: false
290
294
  };
@@ -300,6 +304,7 @@ TextArea.propTypes = process.env.NODE_ENV !== "production" ? {
300
304
  readOnly: defaultTheme.PropTypes.bool,
301
305
  showMore: defaultTheme.PropTypes.bool,
302
306
  showMoreText: defaultTheme.PropTypes.string,
307
+ showLessText: defaultTheme.PropTypes.string,
303
308
  edit: defaultTheme.PropTypes.bool,
304
309
  autoComplete: defaultTheme.PropTypes.string,
305
310
  description: defaultTheme.PropTypes.string,
@@ -313,7 +318,6 @@ TextArea.propTypes = process.env.NODE_ENV !== "production" ? {
313
318
  onChange: defaultTheme.PropTypes.func,
314
319
  onBlur: defaultTheme.PropTypes.func,
315
320
  noBorder: defaultTheme.PropTypes.bool,
316
- isExpanded: defaultTheme.PropTypes.func,
317
321
  state: defaultTheme.PropTypes.oneOf(['', 'error', 'error-border', 'warning', 'loading', 'success']),
318
322
  instructionsTextArea: defaultTheme.PropTypes.bool
319
323
  } : {};
@@ -3,6 +3,7 @@
3
3
  var defaultTheme = require('./defaultTheme-50f2b88f.js');
4
4
  var React = require('react');
5
5
  var nanoid = require('nanoid');
6
+ var useMergedRefs = require('./useMergedRefs-b6d2f8fc.js');
6
7
  var lodash = require('lodash');
7
8
  var editNote = require('./edit-note-c47d292e.js');
8
9
  var styled = require('styled-components');
@@ -12,43 +13,6 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
12
13
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
13
14
  var styled__default = /*#__PURE__*/_interopDefaultLegacy(styled);
14
15
 
15
- var toFnRef = function toFnRef(ref) {
16
- return !ref || typeof ref === 'function' ? ref : function (value) {
17
- ref.current = value;
18
- };
19
- };
20
-
21
- function mergeRefs(refA, refB) {
22
- var a = toFnRef(refA);
23
- var b = toFnRef(refB);
24
- return function (value) {
25
- if (a) a(value);
26
- if (b) b(value);
27
- };
28
- }
29
- /**
30
- * Create and returns a single callback ref composed from two other Refs.
31
- *
32
- * ```tsx
33
- * const Button = React.forwardRef((props, ref) => {
34
- * const [element, attachRef] = useCallbackRef<HTMLButtonElement>();
35
- * const mergedRef = useMergedRefs(ref, attachRef);
36
- *
37
- * return <button ref={mergedRef} {...props}/>
38
- * })
39
- * ```
40
- *
41
- * @param refA A Callback or mutable Ref
42
- * @param refB A Callback or mutable Ref
43
- * @category refs
44
- */
45
-
46
- function useMergedRefs(refA, refB) {
47
- return React.useMemo(function () {
48
- return mergeRefs(refA, refB);
49
- }, [refA, refB]);
50
- }
51
-
52
16
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17, _templateObject18, _templateObject19, _templateObject20, _templateObject21, _templateObject22, _templateObject23, _templateObject24;
53
17
  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"])));
54
18
  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: initial;\n padding: 13px 10px;\n ", "\n ", "\n border: 1px solid;\n ", "\n border-radius: 3px;\n ", "\n box-sizing: border-box;\n appearance: none;\n transition: border-color 350ms;\n height: 2.75rem;\n\n ", "\n ", "\n"])), function (props) {
@@ -148,7 +112,7 @@ var TextInput = React__default['default'].forwardRef(function TextInput(_ref, fo
148
112
  rest = defaultTheme._objectWithoutProperties(_ref, ["value", "defaultValue", "name", "label", "placeholder", "type", "required", "disabled", "readOnly", "autoComplete", "description", "error", "warning", "icon", "adornments", "className", "style", "onChange", "onBlur", "noBorder"]);
149
113
 
150
114
  var textInputDomNode = React.useRef(null);
151
- var textInputRef = useMergedRefs(forwardedRef, textInputDomNode);
115
+ var textInputRef = useMergedRefs.useMergedRefs(forwardedRef, textInputDomNode);
152
116
 
153
117
  var _useState = React.useState(nanoid.nanoid()),
154
118
  _useState2 = defaultTheme._slicedToArray(_useState, 1),
@@ -267,4 +231,3 @@ TextInput.propTypes = process.env.NODE_ENV !== "production" ? {
267
231
  } : {};
268
232
 
269
233
  exports.TextInput = TextInput;
270
- exports.useMergedRefs = useMergedRefs;
@@ -1,9 +1,10 @@
1
1
  'use strict';
2
2
 
3
- var TextArea = require('../../TextArea-14b4864b.js');
3
+ var TextArea = require('../../TextArea-154c3bec.js');
4
4
  require('../../defaultTheme-50f2b88f.js');
5
5
  require('styled-components');
6
6
  require('react');
7
+ require('../../useMergedRefs-b6d2f8fc.js');
7
8
  require('nanoid');
8
9
  require('../../check-555d831b.js');
9
10
  require('../../edit-note-c47d292e.js');
@@ -1,10 +1,11 @@
1
1
  'use strict';
2
2
 
3
- var TextInput = require('../../TextInput-8ea31a7b.js');
3
+ var TextInput = require('../../TextInput-5ff74c8e.js');
4
4
  require('../../defaultTheme-50f2b88f.js');
5
5
  require('styled-components');
6
6
  require('react');
7
7
  require('nanoid');
8
+ require('../../useMergedRefs-b6d2f8fc.js');
8
9
  require('lodash');
9
10
  require('../../edit-note-c47d292e.js');
10
11
 
package/inputs/index.js CHANGED
@@ -10,8 +10,8 @@ var CompactStarRating = require('../CompactStarRating-de1bcfe9.js');
10
10
  var CompactTextInput = require('../CompactTextInput-480f59cc.js');
11
11
  var MultiSelect = require('../MultiSelect-01a257b8.js');
12
12
  var Radio = require('../Radio-c811ce4a.js');
13
- var TextArea = require('../TextArea-14b4864b.js');
14
- var TextInput = require('../TextInput-8ea31a7b.js');
13
+ var TextArea = require('../TextArea-154c3bec.js');
14
+ var TextInput = require('../TextInput-5ff74c8e.js');
15
15
  var Switch = require('../Switch-3ac11c97.js');
16
16
  require('../defaultTheme-50f2b88f.js');
17
17
  require('styled-components');
@@ -36,6 +36,7 @@ require('../Badge-9bcebe96.js');
36
36
  require('../Tab-bd0f3345.js');
37
37
  require('../Tabs-bf42275e.js');
38
38
  require('../Tooltip-1b7b0052.js');
39
+ require('../useMergedRefs-b6d2f8fc.js');
39
40
 
40
41
 
41
42
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ntbjs/react-components",
3
- "version": "1.1.0-beta.90",
3
+ "version": "1.1.0-beta.92",
4
4
  "description": "NTBs common front-end design utilities and React components.",
5
5
  "scripts": {
6
6
  "build": "cross-env NODE_ENV=production rollup -c",
@@ -0,0 +1,42 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+
5
+ var toFnRef = function toFnRef(ref) {
6
+ return !ref || typeof ref === 'function' ? ref : function (value) {
7
+ ref.current = value;
8
+ };
9
+ };
10
+
11
+ function mergeRefs(refA, refB) {
12
+ var a = toFnRef(refA);
13
+ var b = toFnRef(refB);
14
+ return function (value) {
15
+ if (a) a(value);
16
+ if (b) b(value);
17
+ };
18
+ }
19
+ /**
20
+ * Create and returns a single callback ref composed from two other Refs.
21
+ *
22
+ * ```tsx
23
+ * const Button = React.forwardRef((props, ref) => {
24
+ * const [element, attachRef] = useCallbackRef<HTMLButtonElement>();
25
+ * const mergedRef = useMergedRefs(ref, attachRef);
26
+ *
27
+ * return <button ref={mergedRef} {...props}/>
28
+ * })
29
+ * ```
30
+ *
31
+ * @param refA A Callback or mutable Ref
32
+ * @param refB A Callback or mutable Ref
33
+ * @category refs
34
+ */
35
+
36
+ function useMergedRefs(refA, refB) {
37
+ return React.useMemo(function () {
38
+ return mergeRefs(refA, refB);
39
+ }, [refA, refB]);
40
+ }
41
+
42
+ exports.useMergedRefs = useMergedRefs;
@@ -1,13 +1,11 @@
1
1
  'use strict';
2
2
 
3
- var AssetGallery = require('../../AssetGallery-fa59b3c7.js');
3
+ var AssetGallery = require('../../AssetGallery-f45fe8af.js');
4
4
  require('../../defaultTheme-50f2b88f.js');
5
5
  require('styled-components');
6
6
  require('react');
7
7
  require('lodash');
8
- require('../../TextInput-8ea31a7b.js');
9
- require('nanoid');
10
- require('../../edit-note-c47d292e.js');
8
+ require('../../useMergedRefs-b6d2f8fc.js');
11
9
  require('resize-observer-polyfill');
12
10
  require('react-lazy-load-image-component');
13
11
  require('../../ActionButton-c3f5ed94.js');
@@ -19,6 +17,7 @@ require('../../shift-away-subtle-cfdf1dbe.js');
19
17
  require('../../ContextMenu-d088833b.js');
20
18
  require('../../expand-more-94585605.js');
21
19
  require('../../Checkbox-85394137.js');
20
+ require('nanoid');
22
21
  require('../../CompactAutocompleteSelect-45b12179.js');
23
22
  require('../../check-555d831b.js');
24
23
  require('react-select');
@@ -28,6 +27,7 @@ require('react-dom');
28
27
  require('../../close-ebf2f3cf.js');
29
28
  require('../../CompactStarRating-de1bcfe9.js');
30
29
  require('../../CompactTextInput-480f59cc.js');
30
+ require('../../edit-note-c47d292e.js');
31
31
  require('../../Alert-3e4f8be1.js');
32
32
  require('../../Badge-9bcebe96.js');
33
33
  require('../../Tab-bd0f3345.js');
@@ -35,7 +35,8 @@ require('../../Tabs-bf42275e.js');
35
35
  require('../../Tooltip-1b7b0052.js');
36
36
  require('../../MultiSelect-01a257b8.js');
37
37
  require('../../Radio-c811ce4a.js');
38
- require('../../TextArea-14b4864b.js');
38
+ require('../../TextArea-154c3bec.js');
39
+ require('../../TextInput-5ff74c8e.js');
39
40
  require('../../Switch-3ac11c97.js');
40
41
  require('../../warning-circle-24522402.js');
41
42
 
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var Instructions = require('../../Instructions-4041b686.js');
3
+ var Instructions = require('../../Instructions-b57e8027.js');
4
4
  require('../../defaultTheme-50f2b88f.js');
5
5
  require('styled-components');
6
6
  require('lodash');
@@ -15,7 +15,8 @@ require('../../react-select-creatable.esm-7231b55e.js');
15
15
  require('react-dom');
16
16
  require('../../close-ebf2f3cf.js');
17
17
  require('../../expand-more-94585605.js');
18
- require('../../TextArea-14b4864b.js');
18
+ require('../../TextArea-154c3bec.js');
19
+ require('../../useMergedRefs-b6d2f8fc.js');
19
20
  require('../../edit-note-c47d292e.js');
20
21
 
21
22
 
package/widgets/index.js CHANGED
@@ -2,17 +2,15 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var AssetGallery = require('../AssetGallery-fa59b3c7.js');
5
+ var AssetGallery = require('../AssetGallery-f45fe8af.js');
6
6
  var ContextMenu = require('../ContextMenu-d088833b.js');
7
7
  var AssetPreviewTopBar = require('../AssetPreviewTopBar-449e6019.js');
8
- var Instructions = require('../Instructions-4041b686.js');
8
+ var Instructions = require('../Instructions-b57e8027.js');
9
9
  require('../defaultTheme-50f2b88f.js');
10
10
  require('styled-components');
11
11
  require('react');
12
12
  require('lodash');
13
- require('../TextInput-8ea31a7b.js');
14
- require('nanoid');
15
- require('../edit-note-c47d292e.js');
13
+ require('../useMergedRefs-b6d2f8fc.js');
16
14
  require('resize-observer-polyfill');
17
15
  require('react-lazy-load-image-component');
18
16
  require('../ActionButton-c3f5ed94.js');
@@ -23,6 +21,7 @@ require('@tippyjs/react');
23
21
  require('../shift-away-subtle-cfdf1dbe.js');
24
22
  require('../expand-more-94585605.js');
25
23
  require('../Checkbox-85394137.js');
24
+ require('nanoid');
26
25
  require('../CompactAutocompleteSelect-45b12179.js');
27
26
  require('../check-555d831b.js');
28
27
  require('react-select');
@@ -32,6 +31,7 @@ require('react-dom');
32
31
  require('../close-ebf2f3cf.js');
33
32
  require('../CompactStarRating-de1bcfe9.js');
34
33
  require('../CompactTextInput-480f59cc.js');
34
+ require('../edit-note-c47d292e.js');
35
35
  require('../Alert-3e4f8be1.js');
36
36
  require('../Badge-9bcebe96.js');
37
37
  require('../Tab-bd0f3345.js');
@@ -39,7 +39,8 @@ require('../Tabs-bf42275e.js');
39
39
  require('../Tooltip-1b7b0052.js');
40
40
  require('../MultiSelect-01a257b8.js');
41
41
  require('../Radio-c811ce4a.js');
42
- require('../TextArea-14b4864b.js');
42
+ require('../TextArea-154c3bec.js');
43
+ require('../TextInput-5ff74c8e.js');
43
44
  require('../Switch-3ac11c97.js');
44
45
  require('../warning-circle-24522402.js');
45
46