@hitachivantara/uikit-react-core 3.53.1 → 3.54.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/Snackbar/SnackbarProvider/SnackbarProvider.d.ts +30 -0
  3. package/dist/Snackbar/SnackbarProvider/SnackbarProvider.js +207 -0
  4. package/dist/Snackbar/SnackbarProvider/SnackbarProvider.js.map +1 -0
  5. package/dist/Snackbar/SnackbarProvider/index.d.ts +2 -0
  6. package/dist/Snackbar/SnackbarProvider/index.js +49 -0
  7. package/dist/Snackbar/SnackbarProvider/index.js.map +1 -0
  8. package/dist/Snackbar/stories/SnackbarProvider.stories.mdx +51 -0
  9. package/dist/TagsInput/TagsInput.d.ts +33 -4
  10. package/dist/TagsInput/TagsInput.js +124 -18
  11. package/dist/TagsInput/TagsInput.js.map +1 -1
  12. package/dist/TagsInput/styles.js +12 -8
  13. package/dist/TagsInput/styles.js.map +1 -1
  14. package/dist/index.d.ts +2 -0
  15. package/dist/index.js +16 -0
  16. package/dist/index.js.map +1 -1
  17. package/dist/legacy/Snackbar/SnackbarProvider/SnackbarProvider.d.ts +30 -0
  18. package/dist/legacy/Snackbar/SnackbarProvider/SnackbarProvider.js +169 -0
  19. package/dist/legacy/Snackbar/SnackbarProvider/SnackbarProvider.js.map +1 -0
  20. package/dist/legacy/Snackbar/SnackbarProvider/index.d.ts +2 -0
  21. package/dist/legacy/Snackbar/SnackbarProvider/index.js +3 -0
  22. package/dist/legacy/Snackbar/SnackbarProvider/index.js.map +1 -0
  23. package/dist/legacy/Snackbar/stories/SnackbarProvider.stories.mdx +51 -0
  24. package/dist/legacy/TagsInput/TagsInput.d.ts +33 -4
  25. package/dist/legacy/TagsInput/TagsInput.js +128 -24
  26. package/dist/legacy/TagsInput/TagsInput.js.map +1 -1
  27. package/dist/legacy/TagsInput/styles.js +12 -8
  28. package/dist/legacy/TagsInput/styles.js.map +1 -1
  29. package/dist/legacy/index.d.ts +2 -0
  30. package/dist/legacy/index.js +1 -0
  31. package/dist/legacy/index.js.map +1 -1
  32. package/dist/modern/Snackbar/SnackbarProvider/SnackbarProvider.d.ts +30 -0
  33. package/dist/modern/Snackbar/SnackbarProvider/SnackbarProvider.js +155 -0
  34. package/dist/modern/Snackbar/SnackbarProvider/SnackbarProvider.js.map +1 -0
  35. package/dist/modern/Snackbar/SnackbarProvider/index.d.ts +2 -0
  36. package/dist/modern/Snackbar/SnackbarProvider/index.js +3 -0
  37. package/dist/modern/Snackbar/SnackbarProvider/index.js.map +1 -0
  38. package/dist/modern/Snackbar/stories/SnackbarProvider.stories.mdx +51 -0
  39. package/dist/modern/TagsInput/TagsInput.d.ts +33 -4
  40. package/dist/modern/TagsInput/TagsInput.js +107 -18
  41. package/dist/modern/TagsInput/TagsInput.js.map +1 -1
  42. package/dist/modern/TagsInput/styles.js +12 -8
  43. package/dist/modern/TagsInput/styles.js.map +1 -1
  44. package/dist/modern/index.d.ts +2 -0
  45. package/dist/modern/index.js +1 -0
  46. package/dist/modern/index.js.map +1 -1
  47. package/package.json +4 -3
@@ -41,12 +41,12 @@ require("core-js/modules/es.array.slice.js");
41
41
 
42
42
  require("core-js/modules/es.array.map.js");
43
43
 
44
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
45
-
46
44
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
47
45
 
48
46
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
49
47
 
48
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
49
+
50
50
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
51
51
 
52
52
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
@@ -63,9 +63,13 @@ var _utils = require("../utils");
63
63
 
64
64
  var _ = require("..");
65
65
 
66
+ var _validationStates = _interopRequireDefault(require("../Forms/FormElement/validationStates"));
67
+
68
+ var _validations = require("../BaseInput/validations");
69
+
66
70
  var _styles = _interopRequireDefault(require("./styles"));
67
71
 
68
- var _excluded = ["classes", "className", "id", "name", "value", "defaultValue", "readOnly", "disabled", "label", "aria-label", "aria-labelledby", "description", "aria-describedby", "onChange", "placeholder", "hideCounter", "middleCountLabel", "maxTagsQuantity", "autoFocus", "resizable", "inputProps", "countCharProps", "multiline"],
72
+ var _excluded = ["classes", "className", "id", "name", "value", "defaultValue", "readOnly", "disabled", "required", "label", "aria-label", "aria-labelledby", "description", "aria-describedby", "onChange", "placeholder", "hideCounter", "middleCountLabel", "maxTagsQuantity", "autoFocus", "resizable", "inputProps", "countCharProps", "multiline", "status", "statusMessage", "validationMessages"],
69
73
  _excluded2 = ["label", "type"];
70
74
 
71
75
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
@@ -91,6 +95,8 @@ var HvTagsInput = function HvTagsInput(props) {
91
95
  readOnly = _props$readOnly === void 0 ? false : _props$readOnly,
92
96
  _props$disabled = props.disabled,
93
97
  disabled = _props$disabled === void 0 ? false : _props$disabled,
98
+ _props$required = props.required,
99
+ required = _props$required === void 0 ? false : _props$required,
94
100
  textAreaLabel = props.label,
95
101
  ariaLabel = props["aria-label"],
96
102
  ariaLabelledBy = props["aria-labelledby"],
@@ -113,6 +119,9 @@ var HvTagsInput = function HvTagsInput(props) {
113
119
  countCharProps = _props$countCharProps === void 0 ? {} : _props$countCharProps,
114
120
  _props$multiline = props.multiline,
115
121
  multiline = _props$multiline === void 0 ? false : _props$multiline,
122
+ status = props.status,
123
+ statusMessage = props.statusMessage,
124
+ validationMessages = props.validationMessages,
116
125
  others = (0, _objectWithoutProperties2.default)(props, _excluded);
117
126
  var elementId = (0, _.useUniqueId)(id, "hvTagsInput");
118
127
  var hasLabel = textAreaLabel != null;
@@ -133,6 +142,21 @@ var HvTagsInput = function HvTagsInput(props) {
133
142
  tagCursorPos = _useState4[0],
134
143
  setTagCursorPos = _useState4[1];
135
144
 
145
+ var _useControlled3 = (0, _utils.useControlled)(status, _validationStates.default.standBy),
146
+ _useControlled4 = (0, _slicedToArray2.default)(_useControlled3, 2),
147
+ validationState = _useControlled4[0],
148
+ setValidationState = _useControlled4[1];
149
+
150
+ var _useControlled5 = (0, _utils.useControlled)(statusMessage, ""),
151
+ _useControlled6 = (0, _slicedToArray2.default)(_useControlled5, 2),
152
+ validationMessage = _useControlled6[0],
153
+ setValidationMessage = _useControlled6[1];
154
+
155
+ var _useState5 = (0, _react.useState)(true),
156
+ _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
157
+ stateValid = _useState6[0],
158
+ setStateValid = _useState6[1];
159
+
136
160
  var isTagSelected = tagCursorPos >= 0 && tagCursorPos < value.length;
137
161
  var hasCounter = maxTagsQuantity != null && !hideCounter;
138
162
  var isStateInvalid = (0, _react.useMemo)(function () {
@@ -140,6 +164,22 @@ var HvTagsInput = function HvTagsInput(props) {
140
164
  }, [hasCounter, maxTagsQuantity, value.length]);
141
165
  var inputRef = (0, _react.useRef)();
142
166
  var containerRef = (0, _react.useRef)();
167
+ var errorMessages = (0, _react.useMemo)(function () {
168
+ return _objectSpread(_objectSpread({}, _validations.DEFAULT_ERROR_MESSAGES), validationMessages);
169
+ }, // eslint-disable-next-line react-hooks/exhaustive-deps
170
+ [validationMessages === null || validationMessages === void 0 ? void 0 : validationMessages.error, validationMessages === null || validationMessages === void 0 ? void 0 : validationMessages.requiredError, validationMessages === null || validationMessages === void 0 ? void 0 : validationMessages.minCharError, validationMessages === null || validationMessages === void 0 ? void 0 : validationMessages.maxCharError]);
171
+ var performValidation = (0, _react.useCallback)(function (currValue) {
172
+ if (maxTagsQuantity !== null && currValue.length > maxTagsQuantity) {
173
+ setValidationState(_validationStates.default.invalid);
174
+ setValidationMessage(errorMessages.maxCharError);
175
+ setStateValid(false);
176
+ } else {
177
+ setValidationState(_validationStates.default.valid);
178
+ setValidationMessage("");
179
+ setStateValid(true);
180
+ }
181
+ }, [errorMessages.maxCharError, maxTagsQuantity, setValidationMessage, setValidationState]);
182
+ var canShowError = status !== undefined && status === "invalid" && statusMessage !== undefined || !stateValid;
143
183
  /**
144
184
  * Handler for the `onChange` event on the tag input
145
185
  */
@@ -175,6 +215,8 @@ var HvTagsInput = function HvTagsInput(props) {
175
215
  */
176
216
 
177
217
  var onEnterHandler = (0, _react.useCallback)(function (event, tag) {
218
+ event.preventDefault();
219
+
178
220
  if (tag !== "") {
179
221
  var newTagsArr = [].concat((0, _toConsumableArray2.default)(value), [{
180
222
  label: tag,
@@ -183,9 +225,10 @@ var HvTagsInput = function HvTagsInput(props) {
183
225
  setValue(newTagsArr);
184
226
  setTagInput("");
185
227
  setTagCursorPos(newTagsArr.length);
186
- onChange === null || onChange === void 0 ? void 0 : onChange(newTagsArr);
228
+ performValidation(newTagsArr);
229
+ onChange === null || onChange === void 0 ? void 0 : onChange(event, newTagsArr);
187
230
  }
188
- }, [onChange, setValue, value]);
231
+ }, [onChange, performValidation, setValue, value]);
189
232
  /**
190
233
  * Handler for the `onKeyDown` event on the list container.
191
234
  */
@@ -209,7 +252,8 @@ var HvTagsInput = function HvTagsInput(props) {
209
252
  setValue(newTagsArr);
210
253
  setTagCursorPos(tagCursorPos > 0 ? tagCursorPos - 1 : 0);
211
254
  (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.focus();
212
- onChange === null || onChange === void 0 ? void 0 : onChange(newTagsArr);
255
+ performValidation(newTagsArr);
256
+ onChange === null || onChange === void 0 ? void 0 : onChange(event, newTagsArr);
213
257
  } else {
214
258
  setTagCursorPos(value.length - 1);
215
259
  }
@@ -225,7 +269,8 @@ var HvTagsInput = function HvTagsInput(props) {
225
269
  setValue(_newTagsArr);
226
270
  setTagCursorPos(tagCursorPos > 0 ? tagCursorPos - 1 : 0);
227
271
  (_inputRef$current2 = inputRef.current) === null || _inputRef$current2 === void 0 ? void 0 : _inputRef$current2.focus();
228
- onChange === null || onChange === void 0 ? void 0 : onChange(_newTagsArr);
272
+ performValidation(_newTagsArr);
273
+ onChange === null || onChange === void 0 ? void 0 : onChange(event, _newTagsArr);
229
274
  }
230
275
 
231
276
  break;
@@ -234,20 +279,22 @@ var HvTagsInput = function HvTagsInput(props) {
234
279
  break;
235
280
  }
236
281
  }
237
- }, [isTagSelected, onChange, setValue, tagCursorPos, tagInput, value]);
282
+ }, [isTagSelected, onChange, performValidation, setValue, tagCursorPos, tagInput, value]);
238
283
  /**
239
284
  * Handler for the `onDelete` event on the tag component
240
285
  */
241
286
 
242
- var onDeleteTagHandler = (0, _react.useCallback)(function (i) {
287
+ var onDeleteTagHandler = (0, _react.useCallback)(function (event, i) {
243
288
  var _inputRef$current3;
244
289
 
245
290
  var newTagsArr = [].concat((0, _toConsumableArray2.default)(value.slice(0, i)), (0, _toConsumableArray2.default)(value.slice(i + 1)));
291
+ setValidationState(_validationStates.default.standBy);
246
292
  setValue(newTagsArr);
247
293
  setTagCursorPos(newTagsArr.length);
248
294
  (_inputRef$current3 = inputRef.current) === null || _inputRef$current3 === void 0 ? void 0 : _inputRef$current3.focus();
249
- onChange === null || onChange === void 0 ? void 0 : onChange(newTagsArr);
250
- }, [value, setValue, onChange]);
295
+ performValidation(newTagsArr);
296
+ onChange === null || onChange === void 0 ? void 0 : onChange(event, newTagsArr);
297
+ }, [value, setValidationState, setValue, performValidation, onChange]);
251
298
  /**
252
299
  * Handler for the `onClick` event on the list container
253
300
  */
@@ -263,6 +310,8 @@ var HvTagsInput = function HvTagsInput(props) {
263
310
  name: name,
264
311
  disabled: disabled,
265
312
  readOnly: readOnly,
313
+ status: validationState,
314
+ required: required,
266
315
  className: (0, _clsx.default)(classes.root, className, disabled && classes.disabled)
267
316
  }, (hasLabel || hasDescription) && /*#__PURE__*/_react.default.createElement("div", {
268
317
  className: classes.labelContainer
@@ -281,7 +330,7 @@ var HvTagsInput = function HvTagsInput(props) {
281
330
  currentCharQuantity: value.length,
282
331
  maxCharQuantity: maxTagsQuantity
283
332
  }, countCharProps)), /*#__PURE__*/_react.default.createElement(_.HvListContainer, {
284
- className: (0, _clsx.default)(classes.tagsList, multiline ? resizable && classes.resizable : classes.singleLine, isStateInvalid && classes.invalid),
333
+ className: (0, _clsx.default)(classes.tagsList, multiline ? resizable && classes.resizable : classes.singleLine, canShowError && classes.error, isStateInvalid && classes.invalid),
285
334
  onKeyDown: onKeyDownHandler,
286
335
  onClick: onContainerClickHandler,
287
336
  ref: containerRef
@@ -306,10 +355,13 @@ var HvTagsInput = function HvTagsInput(props) {
306
355
  }, /*#__PURE__*/_react.default.createElement(_.HvTag, (0, _extends2.default)({
307
356
  label: label,
308
357
  className: (0, _clsx.default)(i === tagCursorPos && classes.tagSelected),
358
+ classes: {
359
+ chipRoot: classes.chipRoot
360
+ },
309
361
  type: type
310
362
  }, !(readOnly || disabled || type === "categorical") && {
311
- onDelete: function onDelete() {
312
- return onDeleteTagHandler(i);
363
+ onDelete: function onDelete(event) {
364
+ return onDeleteTagHandler(event, i);
313
365
  }
314
366
  }, {
315
367
  deleteButtonProps: {
@@ -345,7 +397,11 @@ var HvTagsInput = function HvTagsInput(props) {
345
397
  "aria-describedby": ariaDescribedBy != null ? ariaDescribedBy : description && (0, _utils.setId)(elementId, "description")
346
398
  }, inputProps),
347
399
  inputRef: inputRef
348
- }, others)))));
400
+ }, others)))), canShowError && /*#__PURE__*/_react.default.createElement(_.HvWarningText, {
401
+ id: (0, _utils.setId)(elementId, "error"),
402
+ disableBorder: true,
403
+ className: classes.error
404
+ }, validationMessage));
349
405
  };
350
406
 
351
407
  process.env.NODE_ENV !== "production" ? HvTagsInput.propTypes = {
@@ -378,6 +434,11 @@ process.env.NODE_ENV !== "production" ? HvTagsInput.propTypes = {
378
434
  */
379
435
  root: _propTypes.default.string,
380
436
 
437
+ /**
438
+ *
439
+ */
440
+ chipRoot: _propTypes.default.string,
441
+
381
442
  /**
382
443
  * Style applied to the root when resizable is `true`.
383
444
  */
@@ -444,9 +505,14 @@ process.env.NODE_ENV !== "production" ? HvTagsInput.propTypes = {
444
505
  tagInputRootFocused: _propTypes.default.string,
445
506
 
446
507
  /**
447
- * Styles applied to the container when in single line mode§.
508
+ * Styles applied to the container when in single line mode.
448
509
  */
449
- singleLine: _propTypes.default.string
510
+ singleLine: _propTypes.default.string,
511
+
512
+ /**
513
+ * Styles applied to the tags list when an error occurred.
514
+ */
515
+ error: _propTypes.default.string
450
516
  }).isRequired,
451
517
 
452
518
  /**
@@ -507,6 +573,11 @@ process.env.NODE_ENV !== "production" ? HvTagsInput.propTypes = {
507
573
  */
508
574
  readOnly: _propTypes.default.bool,
509
575
 
576
+ /**
577
+ * Indicates that the form element is required.
578
+ */
579
+ required: _propTypes.default.bool,
580
+
510
581
  /**
511
582
  * The function that will be executed onChange.
512
583
  */
@@ -556,7 +627,42 @@ process.env.NODE_ENV !== "production" ? HvTagsInput.propTypes = {
556
627
  /**
557
628
  * If `true` the component is in multiline mode.
558
629
  */
559
- multiline: _propTypes.default.bool
630
+ multiline: _propTypes.default.bool,
631
+
632
+ /**
633
+ * The status of the form element.
634
+ */
635
+ status: _propTypes.default.string,
636
+
637
+ /**
638
+ * The error message to show when `status` is "invalid".
639
+ */
640
+ statusMessage: _propTypes.default.string,
641
+
642
+ /**
643
+ * An Object containing the various texts associated with the input.
644
+ */
645
+ validationMessages: _propTypes.default.shape({
646
+ /**
647
+ * The value when a validation fails.
648
+ */
649
+ error: _propTypes.default.string,
650
+
651
+ /**
652
+ * The message that appears when there are too many characters.
653
+ */
654
+ maxCharError: _propTypes.default.string,
655
+
656
+ /**
657
+ * The message that appears when there are too few characters.
658
+ */
659
+ minCharError: _propTypes.default.string,
660
+
661
+ /**
662
+ * The message that appears when the input is empty and required.
663
+ */
664
+ requiredError: _propTypes.default.string
665
+ })
560
666
  } : void 0;
561
667
 
562
668
  var _default = (0, _core.withStyles)(_styles.default, {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/TagsInput/TagsInput.js"],"names":["HvTagsInput","props","classes","className","id","name","valueProp","value","defaultValue","readOnly","disabled","textAreaLabel","label","ariaLabel","ariaLabelledBy","description","ariaDescribedBy","onChange","placeholder","hideCounter","middleCountLabel","maxTagsQuantity","autoFocus","resizable","inputProps","countCharProps","multiline","others","elementId","hasLabel","hasDescription","setValue","tagInput","setTagInput","length","tagCursorPos","setTagCursorPos","isTagSelected","hasCounter","isStateInvalid","inputRef","containerRef","onChangeHandler","event","input","element","document","getElementById","offset","offsetWidth","current","scrollBy","tagId","setTimeout","scrollLeft","offsetLeft","getBoundingClientRect","width","focus","onEnterHandler","tag","newTagsArr","type","onKeyDownHandler","code","slice","onDeleteTagHandler","i","onContainerClickHandler","root","labelContainer","characterCounter","tagsList","singleLine","invalid","map","t","otherProps","gutters","listItemGutters","listItemRoot","tagSelected","onDelete","tabIndex","tagInputContainerRoot","tagInputRoot","inputBorderContainer","tagInputBorderContainer","inputRootFocused","tagInputRootFocused","propTypes","PropTypes","string","shape","isRequired","array","node","bool","func","number","instanceOf","Object","styles"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAWA;;;;;;;;;;;;;AAEA;AACA;AACA;AACA,IAAMA,WAAW,GAAG,SAAdA,WAAc,CAACC,KAAD,EAAW;AAC7B,MACEC,OADF,GAoCID,KApCJ,CACEC,OADF;AAAA,MAEEC,SAFF,GAoCIF,KApCJ,CAEEE,SAFF;AAAA,MAIEC,EAJF,GAoCIH,KApCJ,CAIEG,EAJF;AAAA,MAKEC,IALF,GAoCIJ,KApCJ,CAKEI,IALF;AAAA,MAOSC,SAPT,GAoCIL,KApCJ,CAOEM,KAPF;AAAA,4BAoCIN,KApCJ,CAQEO,YARF;AAAA,MAQEA,YARF,oCAQiB,EARjB;AAAA,wBAoCIP,KApCJ,CAUEQ,QAVF;AAAA,MAUEA,QAVF,gCAUa,KAVb;AAAA,wBAoCIR,KApCJ,CAWES,QAXF;AAAA,MAWEA,QAXF,gCAWa,KAXb;AAAA,MAaSC,aAbT,GAoCIV,KApCJ,CAaEW,KAbF;AAAA,MAcgBC,SAdhB,GAoCIZ,KApCJ,CAcE,YAdF;AAAA,MAeqBa,cAfrB,GAoCIb,KApCJ,CAeE,iBAfF;AAAA,MAgBEc,WAhBF,GAoCId,KApCJ,CAgBEc,WAhBF;AAAA,MAiBsBC,eAjBtB,GAoCIf,KApCJ,CAiBE,kBAjBF;AAAA,MAmBEgB,QAnBF,GAoCIhB,KApCJ,CAmBEgB,QAnBF;AAAA,MAqBEC,WArBF,GAoCIjB,KApCJ,CAqBEiB,WArBF;AAAA,2BAoCIjB,KApCJ,CAuBEkB,WAvBF;AAAA,MAuBEA,WAvBF,mCAuBgB,KAvBhB;AAAA,8BAoCIlB,KApCJ,CAwBEmB,gBAxBF;AAAA,MAwBEA,gBAxBF,sCAwBqB,GAxBrB;AAAA,MAyBEC,eAzBF,GAoCIpB,KApCJ,CAyBEoB,eAzBF;AAAA,yBAoCIpB,KApCJ,CA2BEqB,SA3BF;AAAA,MA2BEA,SA3BF,iCA2Bc,KA3Bd;AAAA,yBAoCIrB,KApCJ,CA4BEsB,SA5BF;AAAA,MA4BEA,SA5BF,iCA4Bc,IA5Bd;AAAA,0BAoCItB,KApCJ,CA8BEuB,UA9BF;AAAA,MA8BEA,UA9BF,kCA8Be,EA9Bf;AAAA,8BAoCIvB,KApCJ,CA+BEwB,cA/BF;AAAA,MA+BEA,cA/BF,sCA+BmB,EA/BnB;AAAA,yBAoCIxB,KApCJ,CAiCEyB,SAjCF;AAAA,MAiCEA,SAjCF,iCAiCc,KAjCd;AAAA,MAmCKC,MAnCL,0CAoCI1B,KApCJ;AAsCA,MAAM2B,SAAS,GAAG,mBAAYxB,EAAZ,EAAgB,aAAhB,CAAlB;AAEA,MAAMyB,QAAQ,GAAGlB,aAAa,IAAI,IAAlC;AACA,MAAMmB,cAAc,GAAGf,WAAW,IAAI,IAAtC;;AAEA,uBAA0B,0BAAcT,SAAd,EAAyBE,YAAzB,CAA1B;AAAA;AAAA,MAAOD,KAAP;AAAA,MAAcwB,QAAd;;AAEA,kBAAgC,qBAAS,EAAT,CAAhC;AAAA;AAAA,MAAOC,QAAP;AAAA,MAAiBC,WAAjB;;AACA,mBAAwC,qBAAS1B,KAAK,CAAC2B,MAAf,CAAxC;AAAA;AAAA,MAAOC,YAAP;AAAA,MAAqBC,eAArB;;AAEA,MAAMC,aAAa,GAAGF,YAAY,IAAI,CAAhB,IAAqBA,YAAY,GAAG5B,KAAK,CAAC2B,MAAhE;AAEA,MAAMI,UAAU,GAAGjB,eAAe,IAAI,IAAnB,IAA2B,CAACF,WAA/C;AAEA,MAAMoB,cAAc,GAAG,oBAAQ,YAAM;AACnC,WAAOD,UAAU,IAAI/B,KAAK,CAAC2B,MAAN,GAAeb,eAApC;AACD,GAFsB,EAEpB,CAACiB,UAAD,EAAajB,eAAb,EAA8Bd,KAAK,CAAC2B,MAApC,CAFoB,CAAvB;AAIA,MAAMM,QAAQ,GAAG,oBAAjB;AACA,MAAMC,YAAY,GAAG,oBAArB;AAEA;AACF;AACA;;AACE,MAAMC,eAAe,GAAG,wBAAY,UAACC,KAAD,EAAQC,KAAR,EAAkB;AACpDX,IAAAA,WAAW,CAACW,KAAD,CAAX;AACD,GAFuB,EAErB,EAFqB,CAAxB;AAIA,wBAAU,YAAM;AACd;AACA,QAAI,CAAClB,SAAL,EAAgB;AAAA;;AACd,UAAMmB,OAAO,GAAGC,QAAQ,CAACC,cAAT,CAAwB,WAAxB,CAAhB;AACA,UAAMC,MAAM,GAAGH,OAAH,aAAGA,OAAH,uBAAGA,OAAO,CAAEI,WAAxB;AACAR,MAAAA,YAAY,SAAZ,IAAAA,YAAY,WAAZ,qCAAAA,YAAY,CAAES,OAAd,0GAAuBC,QAAvB,8GAAkCH,MAAlC,aAAkCA,MAAlC,cAAkCA,MAAlC,GAA4C,CAA5C,EAA+C,CAA/C;AACD;AACF,GAPD,EAOG,CAACtB,SAAD,EAAYnB,KAAZ,CAPH;AASA,wBAAU,YAAM;AACd,QAAI,CAACmB,SAAL,EAAgB;AACd,UAAM0B,KAAK,iBAAUjB,YAAV,CAAX;AACA,UAAMU,OAAO,GAAGC,QAAQ,CAACC,cAAT,CAAwBK,KAAxB,CAAhB,CAFc,CAGd;AACA;;AACAC,MAAAA,UAAU,CAAC,YAAM;AACfZ,QAAAA,YAAY,CAACS,OAAb,CAAqBI,UAArB,GAAkCT,OAAO,GACrCA,OAAO,CAACU,UAAR,GACAd,YAAY,CAACS,OAAb,CAAqBM,qBAArB,GAA6CC,KAA7C,GAAqD,CADrD,GAEAZ,OAAO,CAACW,qBAAR,GAAgCC,KAAhC,GAAwC,CAHH,GAIrC,CAJJ;AAKD,OANS,EAMP,EANO,CAAV;AAQAZ,MAAAA,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAEa,KAAT;AACD,KAfa,CAgBd;;AACD,GAjBD,EAiBG,CAACvB,YAAD,CAjBH;AAmBA;AACF;AACA;;AACE,MAAMwB,cAAc,GAAG,wBACrB,UAAChB,KAAD,EAAQiB,GAAR,EAAgB;AACd,QAAIA,GAAG,KAAK,EAAZ,EAAgB;AACd,UAAMC,UAAU,8CAAOtD,KAAP,IAAc;AAAEK,QAAAA,KAAK,EAAEgD,GAAT;AAAcE,QAAAA,IAAI,EAAE;AAApB,OAAd,EAAhB;AACA/B,MAAAA,QAAQ,CAAC8B,UAAD,CAAR;AACA5B,MAAAA,WAAW,CAAC,EAAD,CAAX;AACAG,MAAAA,eAAe,CAACyB,UAAU,CAAC3B,MAAZ,CAAf;AAEAjB,MAAAA,QAAQ,SAAR,IAAAA,QAAQ,WAAR,YAAAA,QAAQ,CAAG4C,UAAH,CAAR;AACD;AACF,GAVoB,EAWrB,CAAC5C,QAAD,EAAWc,QAAX,EAAqBxB,KAArB,CAXqB,CAAvB;AAcA;AACF;AACA;;AACE,MAAMwD,gBAAgB,GAAG,wBACvB,UAACpB,KAAD,EAAW;AACT,QAAIX,QAAQ,KAAK,EAAjB,EAAqB;AACnB,cAAQW,KAAK,CAACqB,IAAd;AACE,aAAK,WAAL;AACE5B,UAAAA,eAAe,CAACD,YAAY,GAAG,CAAf,GAAmBA,YAAY,GAAG,CAAlC,GAAsC,CAAvC,CAAf;AACA;;AACF,aAAK,YAAL;AACEC,UAAAA,eAAe,CAACD,YAAY,GAAG5B,KAAK,CAAC2B,MAArB,GAA8BC,YAAY,GAAG,CAA7C,GAAiD5B,KAAK,CAAC2B,MAAxD,CAAf;AACA;;AACF,aAAK,WAAL;AACE,cAAIG,aAAJ,EAAmB;AAAA;;AACjB,gBAAMwB,UAAU,8CACXtD,KAAK,CAAC0D,KAAN,CAAY,CAAZ,EAAe9B,YAAf,CADW,oCAEX5B,KAAK,CAAC0D,KAAN,CAAY9B,YAAY,GAAG,CAA3B,CAFW,EAAhB;AAIAJ,YAAAA,QAAQ,CAAC8B,UAAD,CAAR;AACAzB,YAAAA,eAAe,CAACD,YAAY,GAAG,CAAf,GAAmBA,YAAY,GAAG,CAAlC,GAAsC,CAAvC,CAAf;AACA,iCAAAK,QAAQ,CAACU,OAAT,wEAAkBQ,KAAlB;AACAzC,YAAAA,QAAQ,SAAR,IAAAA,QAAQ,WAAR,YAAAA,QAAQ,CAAG4C,UAAH,CAAR;AACD,WATD,MASO;AACLzB,YAAAA,eAAe,CAAC7B,KAAK,CAAC2B,MAAN,GAAe,CAAhB,CAAf;AACD;;AACD;;AACF,aAAK,QAAL;AACE,cAAIG,aAAJ,EAAmB;AAAA;;AACjB,gBAAMwB,WAAU,8CACXtD,KAAK,CAAC0D,KAAN,CAAY,CAAZ,EAAe9B,YAAf,CADW,oCAEX5B,KAAK,CAAC0D,KAAN,CAAY9B,YAAY,GAAG,CAA3B,CAFW,EAAhB;;AAIAJ,YAAAA,QAAQ,CAAC8B,WAAD,CAAR;AACAzB,YAAAA,eAAe,CAACD,YAAY,GAAG,CAAf,GAAmBA,YAAY,GAAG,CAAlC,GAAsC,CAAvC,CAAf;AACA,kCAAAK,QAAQ,CAACU,OAAT,0EAAkBQ,KAAlB;AACAzC,YAAAA,QAAQ,SAAR,IAAAA,QAAQ,WAAR,YAAAA,QAAQ,CAAG4C,WAAH,CAAR;AACD;;AACD;;AACF;AACE;AAlCJ;AAoCD;AACF,GAxCsB,EAyCvB,CAACxB,aAAD,EAAgBpB,QAAhB,EAA0Bc,QAA1B,EAAoCI,YAApC,EAAkDH,QAAlD,EAA4DzB,KAA5D,CAzCuB,CAAzB;AA4CA;AACF;AACA;;AACE,MAAM2D,kBAAkB,GAAG,wBACzB,UAACC,CAAD,EAAO;AAAA;;AACL,QAAMN,UAAU,8CAAOtD,KAAK,CAAC0D,KAAN,CAAY,CAAZ,EAAeE,CAAf,CAAP,oCAA6B5D,KAAK,CAAC0D,KAAN,CAAYE,CAAC,GAAG,CAAhB,CAA7B,EAAhB;AACApC,IAAAA,QAAQ,CAAC8B,UAAD,CAAR;AACAzB,IAAAA,eAAe,CAACyB,UAAU,CAAC3B,MAAZ,CAAf;AACA,0BAAAM,QAAQ,CAACU,OAAT,0EAAkBQ,KAAlB;AACAzC,IAAAA,QAAQ,SAAR,IAAAA,QAAQ,WAAR,YAAAA,QAAQ,CAAG4C,UAAH,CAAR;AACD,GAPwB,EAQzB,CAACtD,KAAD,EAAQwB,QAAR,EAAkBd,QAAlB,CARyB,CAA3B;AAWA;AACF;AACA;;AACE,MAAMmD,uBAAuB,GAAG,wBAAY,YAAM;AAAA;;AAChD,0BAAA5B,QAAQ,CAACU,OAAT,0EAAkBQ,KAAlB;AACAtB,IAAAA,eAAe,CAAC7B,KAAK,CAAC2B,MAAP,CAAf;AACD,GAH+B,EAG7B,CAAC3B,KAAK,CAAC2B,MAAP,CAH6B,CAAhC;AAKA,sBACE,6BAAC,eAAD;AACE,IAAA,EAAE,EAAE9B,EADN;AAEE,IAAA,IAAI,EAAEC,IAFR;AAGE,IAAA,QAAQ,EAAEK,QAHZ;AAIE,IAAA,QAAQ,EAAED,QAJZ;AAKE,IAAA,SAAS,EAAE,mBAAKP,OAAO,CAACmE,IAAb,EAAmBlE,SAAnB,EACWO,QADX,IACRR,OAAO,CAACQ,QADA;AALb,KASG,CAACmB,QAAQ,IAAIC,cAAb,kBACC;AAAK,IAAA,SAAS,EAAE5B,OAAO,CAACoE;AAAxB,KACGzC,QAAQ,iBACP,6BAAC,SAAD;AACE,IAAA,SAAS,EAAE3B,OAAO,CAACU,KADrB;AAEE,IAAA,EAAE,EAAE,kBAAMR,EAAN,EAAU,OAAV,CAFN;AAGE,IAAA,OAAO,EAAE,kBAAMwB,SAAN,EAAiB,OAAjB,CAHX;AAIE,IAAA,KAAK,EAAEjB;AAJT,IAFJ,EAUGmB,cAAc,iBACb,6BAAC,eAAD;AAAe,IAAA,SAAS,EAAE5B,OAAO,CAACa,WAAlC;AAA+C,IAAA,EAAE,EAAE,kBAAMa,SAAN,EAAiB,aAAjB;AAAnD,KACGb,WADH,CAXJ,CAVJ,EA4BGuB,UAAU,iBACT,6BAAC,eAAD;AACE,IAAA,EAAE,EAAE,kBAAMV,SAAN,EAAiB,aAAjB,CADN;AAEE,IAAA,SAAS,EAAE1B,OAAO,CAACqE,gBAFrB;AAGE,IAAA,SAAS,EAAEnD,gBAHb;AAIE,IAAA,mBAAmB,EAAEb,KAAK,CAAC2B,MAJ7B;AAKE,IAAA,eAAe,EAAEb;AALnB,KAMMI,cANN,EA7BJ,eAuCE,6BAAC,iBAAD;AACE,IAAA,SAAS,EAAE,mBACTvB,OAAO,CAACsE,QADC,EAEI9C,SAFJ,GAETH,SAFS,IAEiBrB,OAAO,CAACqB,SAFzB,GAIKrB,OAAO,CAACuE,UAJb,EAGTlC,cAHS,IAGSrC,OAAO,CAACwE,OAHjB,CADb;AAOE,IAAA,SAAS,EAAEX,gBAPb;AAQE,IAAA,OAAO,EAAEK,uBARX;AASE,IAAA,GAAG,EAAE3B;AATP,KAWGlC,KAAK,IACJA,KAAK,CAACoE,GAAN,CAAU,UAACC,CAAD,EAAIT,CAAJ,EAAU;AAClB,QAAMP,GAAG,GACP,OAAOgB,CAAP,KAAa,QAAb,GACI;AACEhE,MAAAA,KAAK,EAAEgE,CADT;AAEEd,MAAAA,IAAI,EAAE;AAFR,KADJ,GAKIc,CANN;AAOA,QAAQhE,KAAR,GAAuCgD,GAAvC,CAAQhD,KAAR;AAAA,QAAekD,IAAf,GAAuCF,GAAvC,CAAeE,IAAf;AAAA,QAAwBe,UAAxB,0CAAuCjB,GAAvC;AACA,wBACE,6BAAC,YAAD,CACE;AADF;AAEE,MAAA,GAAG,YAAKA,GAAG,CAAChD,KAAT,cAAkBuD,CAAlB,CAFL;AAGE,MAAA,QAAQ,EAAE,CAAC,CAHb;AAIE,MAAA,SAAS,EAAE,mBAAK,CAACzC,SAAN,IAAmBxB,OAAO,CAACuE,UAA3B,CAJb;AAKE,MAAA,OAAO,EAAE;AACPK,QAAAA,OAAO,EAAE5E,OAAO,CAAC6E,eADV;AAEPV,QAAAA,IAAI,EAAEnE,OAAO,CAAC8E;AAFP,OALX;AASE,MAAA,EAAE,gBAASb,CAAT;AATJ,oBAWE,6BAAC,OAAD;AACE,MAAA,KAAK,EAAEvD,KADT;AAEE,MAAA,SAAS,EAAE,mBAAKuD,CAAC,KAAKhC,YAAX,IAA2BjC,OAAO,CAAC+E,WAAnC,CAFb;AAGE,MAAA,IAAI,EAAEnB;AAHR,OAIO,EAAErD,QAAQ,IAAIC,QAAZ,IAAwBoD,IAAI,KAAK,aAAnC,KAAqD;AACxDoB,MAAAA,QAAQ,EAAE;AAAA,eAAMhB,kBAAkB,CAACC,CAAD,CAAxB;AAAA;AAD8C,KAJ5D;AAOE,MAAA,iBAAiB,EAAE;AACjBgB,QAAAA,QAAQ,EAAE,CAAC;AADM;AAPrB,OAUMN,UAVN,EAXF,CADF;AA0BD,GAnCD,CAZJ,EAgDG,EAAEnE,QAAQ,IAAID,QAAd,kBACC,6BAAC,YAAD;AACE,IAAA,SAAS,EAAE,mBAAK,CAACiB,SAAN,IAAmBxB,OAAO,CAACuE,UAA3B,CADb;AAEE,IAAA,OAAO,EAAE;AACPJ,MAAAA,IAAI,EAAEnE,OAAO,CAACkF,qBADP;AAEPN,MAAAA,OAAO,EAAE5E,OAAO,CAAC6E;AAFV,KAFX;AAME,IAAA,EAAE,gBAASxE,KAAK,CAAC2B,MAAf;AANJ,kBAQE,6BAAC,SAAD;AACE,IAAA,KAAK,EAAEF,QADT;AAEE,IAAA,YAAY,MAFd;AAGE,IAAA,QAAQ,EAAEU,eAHZ;AAIE,IAAA,OAAO,EAAEiB,cAJX;AAKE,IAAA,WAAW,EAAEpD,KAAK,CAAC2B,MAAN,KAAiB,CAAjB,GAAqBhB,WAArB,GAAmC,EALlD;AAME,IAAA,SAAS,EAAEI,SANb;AAOE,IAAA,SAAS,EAAE,mBAAK,CAACI,SAAN,IAAmBxB,OAAO,CAACuE,UAA3B,CAPb;AAQE,IAAA,OAAO,EAAE;AACPJ,MAAAA,IAAI,EAAEnE,OAAO,CAACmF,YADP;AAEPzC,MAAAA,KAAK,EAAE1C,OAAO,CAAC0C,KAFR;AAGP0C,MAAAA,oBAAoB,EAAEpF,OAAO,CAACqF,uBAHvB;AAIPC,MAAAA,gBAAgB,EAAEtF,OAAO,CAACuF;AAJnB,KARX;AAcE,IAAA,QAAQ,EAAE/E,QAdZ;AAeE,IAAA,QAAQ,EAAED,QAAQ,IAAI4B,aAfxB;AAgBE,IAAA,UAAU;AACR,oBAAcxB,SADN;AAER,yBAAmBC,cAFX;AAGR,0BACEE,eAAe,IAAI,IAAnB,GACIA,eADJ,GAEID,WAAW,IAAI,kBAAMa,SAAN,EAAiB,aAAjB;AANb,OAQLJ,UARK,CAhBZ;AA0BE,IAAA,QAAQ,EAAEgB;AA1BZ,KA2BMb,MA3BN,EARF,CAjDJ,CAvCF,CADF;AAmID,CAxTD;;AA0TA,wCAAA3B,WAAW,CAAC0F,SAAZ,GAAwB;AACtB;AACF;AACA;AACEvF,EAAAA,SAAS,EAAEwF,mBAAUC,MAJC;;AAKtB;AACF;AACA;AACE1F,EAAAA,OAAO,EAAEyF,mBAAUA,SAAV,CAAoBE,KAApB,CAA0B;AACjC;AACJ;AACA;AACIjD,IAAAA,KAAK,EAAE+C,mBAAUC,MAJgB;;AAKjC;AACJ;AACA;AACIb,IAAAA,eAAe,EAAEY,mBAAUC,MARM;;AASjC;AACJ;AACA;AACIZ,IAAAA,YAAY,EAAEW,mBAAUC,MAZS;;AAajC;AACJ;AACA;AACIvB,IAAAA,IAAI,EAAEsB,mBAAUC,MAhBiB;;AAiBjC;AACJ;AACA;AACIlF,IAAAA,QAAQ,EAAEiF,mBAAUC,MApBa;;AAqBjC;AACJ;AACA;AACIrE,IAAAA,SAAS,EAAEoE,mBAAUC,MAxBY;;AAyBjC;AACJ;AACA;AACIlB,IAAAA,OAAO,EAAEiB,mBAAUC,MA5Bc;;AA6BjC;AACJ;AACA;AACItB,IAAAA,cAAc,EAAEqB,mBAAUC,MAhCO;;AAiCjC;AACJ;AACA;AACIhF,IAAAA,KAAK,EAAE+E,mBAAUC,MApCgB;;AAqCjC;AACJ;AACA;AACI7E,IAAAA,WAAW,EAAE4E,mBAAUC,MAxCU;;AAyCjC;AACJ;AACA;AACIrB,IAAAA,gBAAgB,EAAEoB,mBAAUC,MA5CK;;AA6CjC;AACJ;AACA;AACIpB,IAAAA,QAAQ,EAAEmB,mBAAUC,MAhDa;;AAiDjC;AACJ;AACA;AACIR,IAAAA,qBAAqB,EAAEO,mBAAUC,MApDA;;AAqDjC;AACJ;AACA;AACIP,IAAAA,YAAY,EAAEM,mBAAUC,MAxDS;;AAyDjC;AACJ;AACA;AACIX,IAAAA,WAAW,EAAEU,mBAAUC,MA5DU;;AA6DjC;AACJ;AACA;AACIL,IAAAA,uBAAuB,EAAEI,mBAAUC,MAhEF;;AAiEjC;AACJ;AACA;AACIH,IAAAA,mBAAmB,EAAEE,mBAAUC,MApEE;;AAqEjC;AACJ;AACA;AACInB,IAAAA,UAAU,EAAEkB,mBAAUC;AAxEW,GAA1B,EAyENE,UAjFmB;;AAkFtB;AACF;AACA;AACE1F,EAAAA,EAAE,EAAEuF,mBAAUC,MArFQ;;AAsFtB;AACF;AACA;AACEvF,EAAAA,IAAI,EAAEsF,mBAAUC,MAzFM;;AA0FtB;AACF;AACA;AACErF,EAAAA,KAAK,EAAEoF,mBAAUI,KA7FK;;AA8FtB;AACF;AACA;AACEvF,EAAAA,YAAY,EAAEmF,mBAAUI,KAjGF;;AAkGtB;AACF;AACA;AACA;AACA;AACA;AACEnF,EAAAA,KAAK,EAAE+E,mBAAUK,IAxGK;;AAyGtB;AACF;AACA;AACE,gBAAcL,mBAAUC,MA5GF;;AA6GtB;AACF;AACA;AACE,qBAAmBD,mBAAUC,MAhHP;;AAiHtB;AACF;AACA;AACE7E,EAAAA,WAAW,EAAE4E,mBAAUK,IApHD;;AAqHtB;AACF;AACA;AACE,sBAAoBL,mBAAUC,MAxHR;;AAyHtB;AACF;AACA;AACElF,EAAAA,QAAQ,EAAEiF,mBAAUM,IA5HE;;AA6HtB;AACF;AACA;AACExF,EAAAA,QAAQ,EAAEkF,mBAAUM,IAhIE;;AAiItB;AACF;AACA;AACEhF,EAAAA,QAAQ,EAAE0E,mBAAUO,IApIE;;AAqItB;AACF;AACA;AACEhF,EAAAA,WAAW,EAAEyE,mBAAUC,MAxID;;AAyItB;AACF;AACA;AACEzE,EAAAA,WAAW,EAAEwE,mBAAUM,IA5ID;;AA6ItB;AACF;AACA;AACE7E,EAAAA,gBAAgB,EAAEuE,mBAAUC,MAhJN;;AAiJtB;AACF;AACA;AACA;AACEvE,EAAAA,eAAe,EAAEsE,mBAAUQ,MArJL;;AAsJtB;AACF;AACA;AACE3E,EAAAA,UAAU,EAAEmE,mBAAUS,UAAV,CAAqBC,MAArB,CAzJU;;AA0JtB;AACF;AACA;AACE/E,EAAAA,SAAS,EAAEqE,mBAAUM,IA7JC;;AA8JtB;AACF;AACA;AACE1E,EAAAA,SAAS,EAAEoE,mBAAUM,IAjKC;;AAkKtB;AACF;AACA;AACExE,EAAAA,cAAc,EAAEkE,mBAAUS,UAAV,CAAqBC,MAArB,CArKM;;AAsKtB;AACF;AACA;AACE3E,EAAAA,SAAS,EAAEiE,mBAAUM;AAzKC,CAAxB;;eA4Ke,sBAAWK,eAAX,EAAmB;AAAEjG,EAAAA,IAAI,EAAE;AAAR,CAAnB,EAA4CL,WAA5C,C","sourcesContent":["import React, { useRef, useState, useCallback, useMemo, useEffect } from \"react\";\nimport PropTypes from \"prop-types\";\nimport clsx from \"clsx\";\nimport { withStyles } from \"@material-ui/core\";\nimport { setId, useControlled } from \"../utils\";\nimport {\n HvFormElement,\n HvListContainer,\n HvListItem,\n HvTag,\n HvInput,\n HvLabel,\n HvInfoMessage,\n HvCharCounter,\n useUniqueId,\n} from \"..\";\nimport styles from \"./styles\";\n\n/**\n * A text area is a multiline text input box, with an optional character counter when there is a length limit.\n */\nconst HvTagsInput = (props) => {\n const {\n classes,\n className,\n\n id,\n name,\n\n value: valueProp,\n defaultValue = [],\n\n readOnly = false,\n disabled = false,\n\n label: textAreaLabel,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n description,\n \"aria-describedby\": ariaDescribedBy,\n\n onChange,\n\n placeholder,\n\n hideCounter = false,\n middleCountLabel = \"/\",\n maxTagsQuantity,\n\n autoFocus = false,\n resizable = true,\n\n inputProps = {},\n countCharProps = {},\n\n multiline = false,\n\n ...others\n } = props;\n\n const elementId = useUniqueId(id, \"hvTagsInput\");\n\n const hasLabel = textAreaLabel != null;\n const hasDescription = description != null;\n\n const [value, setValue] = useControlled(valueProp, defaultValue);\n\n const [tagInput, setTagInput] = useState(\"\");\n const [tagCursorPos, setTagCursorPos] = useState(value.length);\n\n const isTagSelected = tagCursorPos >= 0 && tagCursorPos < value.length;\n\n const hasCounter = maxTagsQuantity != null && !hideCounter;\n\n const isStateInvalid = useMemo(() => {\n return hasCounter && value.length > maxTagsQuantity;\n }, [hasCounter, maxTagsQuantity, value.length]);\n\n const inputRef = useRef();\n const containerRef = useRef();\n\n /**\n * Handler for the `onChange` event on the tag input\n */\n const onChangeHandler = useCallback((event, input) => {\n setTagInput(input);\n }, []);\n\n useEffect(() => {\n // keep scroll focused on the input when the value changes\n if (!multiline) {\n const element = document.getElementById(\"tag-input\");\n const offset = element?.offsetWidth;\n containerRef?.current?.scrollBy?.(offset ?? 0, 0);\n }\n }, [multiline, value]);\n\n useEffect(() => {\n if (!multiline) {\n const tagId = `tag-${tagCursorPos}`;\n const element = document.getElementById(tagId);\n // this setTimeout is a workaround for Firefox not properly dealing\n // with setting the scrollLeft value.\n setTimeout(() => {\n containerRef.current.scrollLeft = element\n ? element.offsetLeft -\n containerRef.current.getBoundingClientRect().width / 2 +\n element.getBoundingClientRect().width / 2\n : 0;\n }, 50);\n\n element?.focus();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [tagCursorPos]);\n\n /**\n * Handler for the `onEnter` event on the tag input\n */\n const onEnterHandler = useCallback(\n (event, tag) => {\n if (tag !== \"\") {\n const newTagsArr = [...value, { label: tag, type: \"semantic\" }];\n setValue(newTagsArr);\n setTagInput(\"\");\n setTagCursorPos(newTagsArr.length);\n\n onChange?.(newTagsArr);\n }\n },\n [onChange, setValue, value]\n );\n\n /**\n * Handler for the `onKeyDown` event on the list container.\n */\n const onKeyDownHandler = useCallback(\n (event) => {\n if (tagInput === \"\") {\n switch (event.code) {\n case \"ArrowLeft\":\n setTagCursorPos(tagCursorPos > 0 ? tagCursorPos - 1 : 0);\n break;\n case \"ArrowRight\":\n setTagCursorPos(tagCursorPos < value.length ? tagCursorPos + 1 : value.length);\n break;\n case \"Backspace\":\n if (isTagSelected) {\n const newTagsArr = [\n ...value.slice(0, tagCursorPos),\n ...value.slice(tagCursorPos + 1),\n ];\n setValue(newTagsArr);\n setTagCursorPos(tagCursorPos > 0 ? tagCursorPos - 1 : 0);\n inputRef.current?.focus();\n onChange?.(newTagsArr);\n } else {\n setTagCursorPos(value.length - 1);\n }\n break;\n case \"Delete\":\n if (isTagSelected) {\n const newTagsArr = [\n ...value.slice(0, tagCursorPos),\n ...value.slice(tagCursorPos + 1),\n ];\n setValue(newTagsArr);\n setTagCursorPos(tagCursorPos > 0 ? tagCursorPos - 1 : 0);\n inputRef.current?.focus();\n onChange?.(newTagsArr);\n }\n break;\n default:\n break;\n }\n }\n },\n [isTagSelected, onChange, setValue, tagCursorPos, tagInput, value]\n );\n\n /**\n * Handler for the `onDelete` event on the tag component\n */\n const onDeleteTagHandler = useCallback(\n (i) => {\n const newTagsArr = [...value.slice(0, i), ...value.slice(i + 1)];\n setValue(newTagsArr);\n setTagCursorPos(newTagsArr.length);\n inputRef.current?.focus();\n onChange?.(newTagsArr);\n },\n [value, setValue, onChange]\n );\n\n /**\n * Handler for the `onClick` event on the list container\n */\n const onContainerClickHandler = useCallback(() => {\n inputRef.current?.focus();\n setTagCursorPos(value.length);\n }, [value.length]);\n\n return (\n <HvFormElement\n id={id}\n name={name}\n disabled={disabled}\n readOnly={readOnly}\n className={clsx(classes.root, className, {\n [classes.disabled]: disabled,\n })}\n >\n {(hasLabel || hasDescription) && (\n <div className={classes.labelContainer}>\n {hasLabel && (\n <HvLabel\n className={classes.label}\n id={setId(id, \"label\")}\n htmlFor={setId(elementId, \"input\")}\n label={textAreaLabel}\n />\n )}\n\n {hasDescription && (\n <HvInfoMessage className={classes.description} id={setId(elementId, \"description\")}>\n {description}\n </HvInfoMessage>\n )}\n </div>\n )}\n\n {hasCounter && (\n <HvCharCounter\n id={setId(elementId, \"charCounter\")}\n className={classes.characterCounter}\n separator={middleCountLabel}\n currentCharQuantity={value.length}\n maxCharQuantity={maxTagsQuantity}\n {...countCharProps}\n />\n )}\n\n <HvListContainer\n className={clsx(\n classes.tagsList,\n resizable && multiline && classes.resizable,\n isStateInvalid && classes.invalid,\n !multiline && classes.singleLine\n )}\n onKeyDown={onKeyDownHandler}\n onClick={onContainerClickHandler}\n ref={containerRef}\n >\n {value &&\n value.map((t, i) => {\n const tag =\n typeof t === \"string\"\n ? {\n label: t,\n type: \"semantic\",\n }\n : t;\n const { label, type, ...otherProps } = tag;\n return (\n <HvListItem\n // eslint-disable-next-line react/no-array-index-key\n key={`${tag.label}-${i}`}\n tabIndex={-1}\n className={clsx(!multiline && classes.singleLine)}\n classes={{\n gutters: classes.listItemGutters,\n root: classes.listItemRoot,\n }}\n id={`tag-${i}`}\n >\n <HvTag\n label={label}\n className={clsx(i === tagCursorPos && classes.tagSelected)}\n type={type}\n {...(!(readOnly || disabled || type === \"categorical\") && {\n onDelete: () => onDeleteTagHandler(i),\n })}\n deleteButtonProps={{\n tabIndex: -1,\n }}\n {...otherProps}\n />\n </HvListItem>\n );\n })}\n {!(disabled || readOnly) && (\n <HvListItem\n className={clsx(!multiline && classes.singleLine)}\n classes={{\n root: classes.tagInputContainerRoot,\n gutters: classes.listItemGutters,\n }}\n id={`tag-${value.length}`}\n >\n <HvInput\n value={tagInput}\n disableClear\n onChange={onChangeHandler}\n onEnter={onEnterHandler}\n placeholder={value.length === 0 ? placeholder : \"\"}\n autoFocus={autoFocus}\n className={clsx(!multiline && classes.singleLine)}\n classes={{\n root: classes.tagInputRoot,\n input: classes.input,\n inputBorderContainer: classes.tagInputBorderContainer,\n inputRootFocused: classes.tagInputRootFocused,\n }}\n disabled={disabled}\n readOnly={readOnly || isTagSelected}\n inputProps={{\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n \"aria-describedby\":\n ariaDescribedBy != null\n ? ariaDescribedBy\n : description && setId(elementId, \"description\"),\n\n ...inputProps,\n }}\n inputRef={inputRef}\n {...others}\n />\n </HvListItem>\n )}\n </HvListContainer>\n </HvFormElement>\n );\n};\n\nHvTagsInput.propTypes = {\n /**\n * Class names to be applied.\n */\n className: PropTypes.string,\n /**\n * A Jss Object used to override or extend the component styles applied.\n */\n classes: PropTypes.PropTypes.shape({\n /**\n * Styles applied to the input element.\n */\n input: PropTypes.string,\n /**\n * Styles applied to the list item gutters.\n */\n listItemGutters: PropTypes.string,\n /**\n * Styles applied to the list item element.\n */\n listItemRoot: PropTypes.string,\n /**\n * Styles applied to the root container of the textarea.\n */\n root: PropTypes.string,\n /**\n * Style applied to the root when resizable is `true`.\n */\n disabled: PropTypes.string,\n /**\n * Style applied to the root when resizable is `true`.\n */\n resizable: PropTypes.string,\n /**\n * Style applied to the root when invalid.\n */\n invalid: PropTypes.string,\n /**\n * Styles applied to text area container that holds the label, description and counter.\n */\n labelContainer: PropTypes.string,\n /**\n * Styles applied to the label element.\n */\n label: PropTypes.string,\n /**\n * Styles applied to the label element.\n */\n description: PropTypes.string,\n /**\n * Style applied on the character counter.\n */\n characterCounter: PropTypes.string,\n /**\n * Styles applied to the tags list container element.\n */\n tagsList: PropTypes.string,\n /**\n * Styles applied to the tag input container element.\n */\n tagInputContainerRoot: PropTypes.string,\n /**\n * Styles applied to the tag input element.\n */\n tagInputRoot: PropTypes.string,\n /**\n * Styles applied to a tag element when selected\n */\n tagSelected: PropTypes.string,\n /**\n * Styles applied to the input element border.\n */\n tagInputBorderContainer: PropTypes.string,\n /**\n * Styles applied to the input element when focused.\n */\n tagInputRootFocused: PropTypes.string,\n /**\n * Styles applied to the container when in single line mode§.\n */\n singleLine: PropTypes.string,\n }).isRequired,\n /**\n * Id to be applied to the form element root node.\n */\n id: PropTypes.string,\n /**\n * The form element name.\n */\n name: PropTypes.string,\n /**\n * The value of the form element.\n */\n value: PropTypes.array,\n /**\n * When uncontrolled, defines the initial input value.\n */\n defaultValue: PropTypes.array,\n /**\n * The label of the form element.\n *\n * The form element must be labeled for accessibility reasons.\n * If not provided, an aria-label or aria-labelledby must be inputted via inputProps.\n */\n label: PropTypes.node,\n /**\n * @ignore\n */\n \"aria-label\": PropTypes.string,\n /**\n * @ignore\n */\n \"aria-labelledby\": PropTypes.string,\n /**\n * Provide additional descriptive text for the form element.\n */\n description: PropTypes.node,\n /**\n * @ignore\n */\n \"aria-describedby\": PropTypes.string,\n /**\n * Indicates that the form element is disabled.\n */\n disabled: PropTypes.bool,\n /**\n * Indicates that the form element is not editable.\n */\n readOnly: PropTypes.bool,\n /**\n * The function that will be executed onChange.\n */\n onChange: PropTypes.func,\n /**\n * The placeholder value of the input.\n */\n placeholder: PropTypes.string,\n /**\n * If `true` the character counter isn't shown even if maxTagsQuantity is set.\n */\n hideCounter: PropTypes.bool,\n /**\n * Text between the current char counter and max value.\n */\n middleCountLabel: PropTypes.string,\n /**\n * The maximum allowed length of the characters, if this value is null no check\n * will be performed.\n */\n maxTagsQuantity: PropTypes.number,\n /**\n * Attributes applied to the input element.\n */\n inputProps: PropTypes.instanceOf(Object),\n /**\n * If `true` it should autofocus.\n */\n autoFocus: PropTypes.bool,\n /**\n * If `true` the component is resizable.\n */\n resizable: PropTypes.bool,\n /**\n * Props passed to the HvCharCount component.\n */\n countCharProps: PropTypes.instanceOf(Object),\n /**\n * If `true` the component is in multiline mode.\n */\n multiline: PropTypes.bool,\n};\n\nexport default withStyles(styles, { name: \"HvTagsInput\" })(HvTagsInput);\n"],"file":"TagsInput.js"}
1
+ {"version":3,"sources":["../../src/TagsInput/TagsInput.js"],"names":["HvTagsInput","props","classes","className","id","name","valueProp","value","defaultValue","readOnly","disabled","required","textAreaLabel","label","ariaLabel","ariaLabelledBy","description","ariaDescribedBy","onChange","placeholder","hideCounter","middleCountLabel","maxTagsQuantity","autoFocus","resizable","inputProps","countCharProps","multiline","status","statusMessage","validationMessages","others","elementId","hasLabel","hasDescription","setValue","tagInput","setTagInput","length","tagCursorPos","setTagCursorPos","validationStates","standBy","validationState","setValidationState","validationMessage","setValidationMessage","stateValid","setStateValid","isTagSelected","hasCounter","isStateInvalid","inputRef","containerRef","errorMessages","DEFAULT_ERROR_MESSAGES","error","requiredError","minCharError","maxCharError","performValidation","currValue","invalid","valid","canShowError","undefined","onChangeHandler","event","input","element","document","getElementById","offset","offsetWidth","current","scrollBy","tagId","setTimeout","scrollLeft","offsetLeft","getBoundingClientRect","width","focus","onEnterHandler","tag","preventDefault","newTagsArr","type","onKeyDownHandler","code","slice","onDeleteTagHandler","i","onContainerClickHandler","root","labelContainer","characterCounter","tagsList","singleLine","map","t","otherProps","gutters","listItemGutters","listItemRoot","tagSelected","chipRoot","onDelete","tabIndex","tagInputContainerRoot","tagInputRoot","inputBorderContainer","tagInputBorderContainer","inputRootFocused","tagInputRootFocused","propTypes","PropTypes","string","shape","isRequired","array","node","bool","func","number","instanceOf","Object","styles"],"mappings":"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","sourcesContent":["import React, { useRef, useState, useCallback, useMemo, useEffect } from \"react\";\nimport PropTypes from \"prop-types\";\nimport clsx from \"clsx\";\nimport { withStyles } from \"@material-ui/core\";\nimport { setId, useControlled } from \"../utils\";\nimport {\n HvFormElement,\n HvListContainer,\n HvListItem,\n HvTag,\n HvInput,\n HvLabel,\n HvInfoMessage,\n HvCharCounter,\n HvWarningText,\n useUniqueId,\n} from \"..\";\nimport validationStates from \"../Forms/FormElement/validationStates\";\nimport { DEFAULT_ERROR_MESSAGES } from \"../BaseInput/validations\";\nimport styles from \"./styles\";\n\n/**\n * A text area is a multiline text input box, with an optional character counter when there is a length limit.\n */\nconst HvTagsInput = (props) => {\n const {\n classes,\n className,\n\n id,\n name,\n\n value: valueProp,\n defaultValue = [],\n\n readOnly = false,\n disabled = false,\n required = false,\n\n label: textAreaLabel,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n description,\n \"aria-describedby\": ariaDescribedBy,\n\n onChange,\n\n placeholder,\n\n hideCounter = false,\n middleCountLabel = \"/\",\n maxTagsQuantity,\n\n autoFocus = false,\n resizable = true,\n\n inputProps = {},\n countCharProps = {},\n\n multiline = false,\n\n status,\n statusMessage,\n\n validationMessages,\n\n ...others\n } = props;\n const elementId = useUniqueId(id, \"hvTagsInput\");\n\n const hasLabel = textAreaLabel != null;\n const hasDescription = description != null;\n\n const [value, setValue] = useControlled(valueProp, defaultValue);\n\n const [tagInput, setTagInput] = useState(\"\");\n const [tagCursorPos, setTagCursorPos] = useState(value.length);\n\n const [validationState, setValidationState] = useControlled(status, validationStates.standBy);\n const [validationMessage, setValidationMessage] = useControlled(statusMessage, \"\");\n\n const [stateValid, setStateValid] = useState(true);\n\n const isTagSelected = tagCursorPos >= 0 && tagCursorPos < value.length;\n\n const hasCounter = maxTagsQuantity != null && !hideCounter;\n\n const isStateInvalid = useMemo(() => {\n return hasCounter && value.length > maxTagsQuantity;\n }, [hasCounter, maxTagsQuantity, value.length]);\n\n const inputRef = useRef();\n const containerRef = useRef();\n\n const errorMessages = useMemo(\n () => ({ ...DEFAULT_ERROR_MESSAGES, ...validationMessages }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n validationMessages?.error,\n validationMessages?.requiredError,\n validationMessages?.minCharError,\n validationMessages?.maxCharError,\n ]\n );\n\n const performValidation = useCallback(\n (currValue) => {\n if (maxTagsQuantity !== null && currValue.length > maxTagsQuantity) {\n setValidationState(validationStates.invalid);\n setValidationMessage(errorMessages.maxCharError);\n setStateValid(false);\n } else {\n setValidationState(validationStates.valid);\n setValidationMessage(\"\");\n setStateValid(true);\n }\n },\n [errorMessages.maxCharError, maxTagsQuantity, setValidationMessage, setValidationState]\n );\n\n const canShowError =\n (status !== undefined && status === \"invalid\" && statusMessage !== undefined) || !stateValid;\n\n /**\n * Handler for the `onChange` event on the tag input\n */\n const onChangeHandler = useCallback((event, input) => {\n setTagInput(input);\n }, []);\n\n useEffect(() => {\n // keep scroll focused on the input when the value changes\n if (!multiline) {\n const element = document.getElementById(\"tag-input\");\n const offset = element?.offsetWidth;\n containerRef?.current?.scrollBy?.(offset ?? 0, 0);\n }\n }, [multiline, value]);\n\n useEffect(() => {\n if (!multiline) {\n const tagId = `tag-${tagCursorPos}`;\n const element = document.getElementById(tagId);\n // this setTimeout is a workaround for Firefox not properly dealing\n // with setting the scrollLeft value.\n setTimeout(() => {\n containerRef.current.scrollLeft = element\n ? element.offsetLeft -\n containerRef.current.getBoundingClientRect().width / 2 +\n element.getBoundingClientRect().width / 2\n : 0;\n }, 50);\n\n element?.focus();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [tagCursorPos]);\n\n /**\n * Handler for the `onEnter` event on the tag input\n */\n const onEnterHandler = useCallback(\n (event, tag) => {\n event.preventDefault();\n if (tag !== \"\") {\n const newTagsArr = [...value, { label: tag, type: \"semantic\" }];\n setValue(newTagsArr);\n setTagInput(\"\");\n setTagCursorPos(newTagsArr.length);\n performValidation(newTagsArr);\n\n onChange?.(event, newTagsArr);\n }\n },\n [onChange, performValidation, setValue, value]\n );\n\n /**\n * Handler for the `onKeyDown` event on the list container.\n */\n const onKeyDownHandler = useCallback(\n (event) => {\n if (tagInput === \"\") {\n switch (event.code) {\n case \"ArrowLeft\":\n setTagCursorPos(tagCursorPos > 0 ? tagCursorPos - 1 : 0);\n break;\n case \"ArrowRight\":\n setTagCursorPos(tagCursorPos < value.length ? tagCursorPos + 1 : value.length);\n break;\n case \"Backspace\":\n if (isTagSelected) {\n const newTagsArr = [\n ...value.slice(0, tagCursorPos),\n ...value.slice(tagCursorPos + 1),\n ];\n setValue(newTagsArr);\n setTagCursorPos(tagCursorPos > 0 ? tagCursorPos - 1 : 0);\n inputRef.current?.focus();\n performValidation(newTagsArr);\n onChange?.(event, newTagsArr);\n } else {\n setTagCursorPos(value.length - 1);\n }\n break;\n case \"Delete\":\n if (isTagSelected) {\n const newTagsArr = [\n ...value.slice(0, tagCursorPos),\n ...value.slice(tagCursorPos + 1),\n ];\n setValue(newTagsArr);\n setTagCursorPos(tagCursorPos > 0 ? tagCursorPos - 1 : 0);\n inputRef.current?.focus();\n performValidation(newTagsArr);\n onChange?.(event, newTagsArr);\n }\n break;\n default:\n break;\n }\n }\n },\n [isTagSelected, onChange, performValidation, setValue, tagCursorPos, tagInput, value]\n );\n\n /**\n * Handler for the `onDelete` event on the tag component\n */\n const onDeleteTagHandler = useCallback(\n (event, i) => {\n const newTagsArr = [...value.slice(0, i), ...value.slice(i + 1)];\n setValidationState(validationStates.standBy);\n setValue(newTagsArr);\n setTagCursorPos(newTagsArr.length);\n inputRef.current?.focus();\n performValidation(newTagsArr);\n onChange?.(event, newTagsArr);\n },\n [value, setValidationState, setValue, performValidation, onChange]\n );\n\n /**\n * Handler for the `onClick` event on the list container\n */\n const onContainerClickHandler = useCallback(() => {\n inputRef.current?.focus();\n setTagCursorPos(value.length);\n }, [value.length]);\n\n return (\n <HvFormElement\n id={id}\n name={name}\n disabled={disabled}\n readOnly={readOnly}\n status={validationState}\n required={required}\n className={clsx(classes.root, className, {\n [classes.disabled]: disabled,\n })}\n >\n {(hasLabel || hasDescription) && (\n <div className={classes.labelContainer}>\n {hasLabel && (\n <HvLabel\n className={classes.label}\n id={setId(id, \"label\")}\n htmlFor={setId(elementId, \"input\")}\n label={textAreaLabel}\n />\n )}\n\n {hasDescription && (\n <HvInfoMessage className={classes.description} id={setId(elementId, \"description\")}>\n {description}\n </HvInfoMessage>\n )}\n </div>\n )}\n\n {hasCounter && (\n <HvCharCounter\n id={setId(elementId, \"charCounter\")}\n className={classes.characterCounter}\n separator={middleCountLabel}\n currentCharQuantity={value.length}\n maxCharQuantity={maxTagsQuantity}\n {...countCharProps}\n />\n )}\n\n <HvListContainer\n className={clsx(\n classes.tagsList,\n canShowError && classes.error,\n resizable && multiline && classes.resizable,\n isStateInvalid && classes.invalid,\n !multiline && classes.singleLine\n )}\n onKeyDown={onKeyDownHandler}\n onClick={onContainerClickHandler}\n ref={containerRef}\n >\n {value &&\n value.map((t, i) => {\n const tag =\n typeof t === \"string\"\n ? {\n label: t,\n type: \"semantic\",\n }\n : t;\n const { label, type, ...otherProps } = tag;\n return (\n <HvListItem\n // eslint-disable-next-line react/no-array-index-key\n key={`${tag.label}-${i}`}\n tabIndex={-1}\n className={clsx(!multiline && classes.singleLine)}\n classes={{\n gutters: classes.listItemGutters,\n root: classes.listItemRoot,\n }}\n id={`tag-${i}`}\n >\n <HvTag\n label={label}\n className={clsx(i === tagCursorPos && classes.tagSelected)}\n classes={{\n chipRoot: classes.chipRoot,\n }}\n type={type}\n {...(!(readOnly || disabled || type === \"categorical\") && {\n onDelete: (event) => onDeleteTagHandler(event, i),\n })}\n deleteButtonProps={{\n tabIndex: -1,\n }}\n {...otherProps}\n />\n </HvListItem>\n );\n })}\n {!(disabled || readOnly) && (\n <HvListItem\n className={clsx(!multiline && classes.singleLine)}\n classes={{\n root: classes.tagInputContainerRoot,\n gutters: classes.listItemGutters,\n }}\n id={`tag-${value.length}`}\n >\n <HvInput\n value={tagInput}\n disableClear\n onChange={onChangeHandler}\n onEnter={onEnterHandler}\n placeholder={value.length === 0 ? placeholder : \"\"}\n autoFocus={autoFocus}\n className={clsx(!multiline && classes.singleLine)}\n classes={{\n root: classes.tagInputRoot,\n input: classes.input,\n inputBorderContainer: classes.tagInputBorderContainer,\n inputRootFocused: classes.tagInputRootFocused,\n }}\n disabled={disabled}\n readOnly={readOnly || isTagSelected}\n inputProps={{\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n \"aria-describedby\":\n ariaDescribedBy != null\n ? ariaDescribedBy\n : description && setId(elementId, \"description\"),\n\n ...inputProps,\n }}\n inputRef={inputRef}\n {...others}\n />\n </HvListItem>\n )}\n </HvListContainer>\n {canShowError && (\n <HvWarningText id={setId(elementId, \"error\")} disableBorder className={classes.error}>\n {validationMessage}\n </HvWarningText>\n )}\n </HvFormElement>\n );\n};\n\nHvTagsInput.propTypes = {\n /**\n * Class names to be applied.\n */\n className: PropTypes.string,\n /**\n * A Jss Object used to override or extend the component styles applied.\n */\n classes: PropTypes.PropTypes.shape({\n /**\n * Styles applied to the input element.\n */\n input: PropTypes.string,\n /**\n * Styles applied to the list item gutters.\n */\n listItemGutters: PropTypes.string,\n /**\n * Styles applied to the list item element.\n */\n listItemRoot: PropTypes.string,\n /**\n * Styles applied to the root container of the textarea.\n */\n root: PropTypes.string,\n /**\n *\n */\n chipRoot: PropTypes.string,\n /**\n * Style applied to the root when resizable is `true`.\n */\n disabled: PropTypes.string,\n /**\n * Style applied to the root when resizable is `true`.\n */\n resizable: PropTypes.string,\n /**\n * Style applied to the root when invalid.\n */\n invalid: PropTypes.string,\n /**\n * Styles applied to text area container that holds the label, description and counter.\n */\n labelContainer: PropTypes.string,\n /**\n * Styles applied to the label element.\n */\n label: PropTypes.string,\n /**\n * Styles applied to the label element.\n */\n description: PropTypes.string,\n /**\n * Style applied on the character counter.\n */\n characterCounter: PropTypes.string,\n /**\n * Styles applied to the tags list container element.\n */\n tagsList: PropTypes.string,\n /**\n * Styles applied to the tag input container element.\n */\n tagInputContainerRoot: PropTypes.string,\n /**\n * Styles applied to the tag input element.\n */\n tagInputRoot: PropTypes.string,\n /**\n * Styles applied to a tag element when selected\n */\n tagSelected: PropTypes.string,\n /**\n * Styles applied to the input element border.\n */\n tagInputBorderContainer: PropTypes.string,\n /**\n * Styles applied to the input element when focused.\n */\n tagInputRootFocused: PropTypes.string,\n /**\n * Styles applied to the container when in single line mode.\n */\n singleLine: PropTypes.string,\n /**\n * Styles applied to the tags list when an error occurred.\n */\n error: PropTypes.string,\n }).isRequired,\n /**\n * Id to be applied to the form element root node.\n */\n id: PropTypes.string,\n /**\n * The form element name.\n */\n name: PropTypes.string,\n /**\n * The value of the form element.\n */\n value: PropTypes.array,\n /**\n * When uncontrolled, defines the initial input value.\n */\n defaultValue: PropTypes.array,\n /**\n * The label of the form element.\n *\n * The form element must be labeled for accessibility reasons.\n * If not provided, an aria-label or aria-labelledby must be inputted via inputProps.\n */\n label: PropTypes.node,\n /**\n * @ignore\n */\n \"aria-label\": PropTypes.string,\n /**\n * @ignore\n */\n \"aria-labelledby\": PropTypes.string,\n /**\n * Provide additional descriptive text for the form element.\n */\n description: PropTypes.node,\n /**\n * @ignore\n */\n \"aria-describedby\": PropTypes.string,\n /**\n * Indicates that the form element is disabled.\n */\n disabled: PropTypes.bool,\n /**\n * Indicates that the form element is not editable.\n */\n readOnly: PropTypes.bool,\n /**\n * Indicates that the form element is required.\n */\n required: PropTypes.bool,\n /**\n * The function that will be executed onChange.\n */\n onChange: PropTypes.func,\n /**\n * The placeholder value of the input.\n */\n placeholder: PropTypes.string,\n /**\n * If `true` the character counter isn't shown even if maxTagsQuantity is set.\n */\n hideCounter: PropTypes.bool,\n /**\n * Text between the current char counter and max value.\n */\n middleCountLabel: PropTypes.string,\n /**\n * The maximum allowed length of the characters, if this value is null no check\n * will be performed.\n */\n maxTagsQuantity: PropTypes.number,\n /**\n * Attributes applied to the input element.\n */\n inputProps: PropTypes.instanceOf(Object),\n /**\n * If `true` it should autofocus.\n */\n autoFocus: PropTypes.bool,\n /**\n * If `true` the component is resizable.\n */\n resizable: PropTypes.bool,\n /**\n * Props passed to the HvCharCount component.\n */\n countCharProps: PropTypes.instanceOf(Object),\n /**\n * If `true` the component is in multiline mode.\n */\n multiline: PropTypes.bool,\n /**\n * The status of the form element.\n */\n status: PropTypes.string,\n /**\n * The error message to show when `status` is \"invalid\".\n */\n statusMessage: PropTypes.string,\n\n /**\n * An Object containing the various texts associated with the input.\n */\n validationMessages: PropTypes.shape({\n /**\n * The value when a validation fails.\n */\n error: PropTypes.string,\n /**\n * The message that appears when there are too many characters.\n */\n maxCharError: PropTypes.string,\n /**\n * The message that appears when there are too few characters.\n */\n minCharError: PropTypes.string,\n /**\n * The message that appears when the input is empty and required.\n */\n requiredError: PropTypes.string,\n }),\n};\n\nexport default withStyles(styles, { name: \"HvTagsInput\" })(HvTagsInput);\n"],"file":"TagsInput.js"}
@@ -11,12 +11,18 @@ var styles = function styles(theme) {
11
11
  display: "inline-block",
12
12
  maxWidth: "100%"
13
13
  },
14
+ chipRoot: {
15
+ maxWidth: "none"
16
+ },
14
17
  resizable: {
15
18
  width: "auto",
16
19
  resize: "both",
17
20
  overflow: "auto"
18
21
  },
19
22
  disabled: {},
23
+ error: {
24
+ float: "left"
25
+ },
20
26
  invalid: {
21
27
  border: "1px solid ".concat(theme.hv.palette.semantic.sema4, "!important")
22
28
  },
@@ -82,21 +88,16 @@ var styles = function styles(theme) {
82
88
  border: "1px solid ".concat(theme.hv.palette.atmosphere.atmo4),
83
89
  borderRadius: "2px",
84
90
  "&:hover": {
85
- cursor: "text"
86
- },
87
- "&:focus": {
88
- outline: "none"
91
+ cursor: "text",
92
+ border: "1px solid ".concat(theme.hv.palette.accent.acce1)
89
93
  },
90
- "&:focus-visible": {
94
+ "&:focus, &:focus-within, &:focus-visible": {
91
95
  outlineColor: "#52A8EC",
92
96
  outlineStyle: "solid",
93
97
  outlineWidth: "0px",
94
98
  outlineOffset: "-1px",
95
99
  boxShadow: "0 0 0 1px #52A8EC, 0 0 0 4px rgba(29,155,209,.3)"
96
100
  },
97
- "&:focus-within, &:hover": {
98
- border: "1px solid ".concat(theme.hv.palette.accent.acce1)
99
- },
100
101
  "&$disabled": {
101
102
  backgroundColor: theme.hv.palette.atmosphere.atmo3,
102
103
  border: "1px solid ".concat(theme.hv.palette.atmosphere.atmo4),
@@ -111,6 +112,9 @@ var styles = function styles(theme) {
111
112
  display: "table-row",
112
113
  paddingTop: 0,
113
114
  paddingLeft: 4
115
+ },
116
+ "&$error": {
117
+ border: "1px solid ".concat(theme.hv.palette.semantic.sema4)
114
118
  }
115
119
  },
116
120
  tagInputContainerRoot: {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/TagsInput/styles.js"],"names":["styles","theme","root","display","maxWidth","resizable","width","resize","overflow","disabled","invalid","border","hv","palette","semantic","sema4","input","marginLeft","marginRight","flex","minWidth","height","lineHeight","padding","listItemGutters","listItemRoot","marginBottom","paddingTop","labelContainer","float","alignItems","label","paddingBottom","description","characterCounter","textAlign","tagsList","alignContent","clear","position","flexDirection","flexWrap","backgroundColor","atmosphere","atmo1","atmo4","borderRadius","cursor","outline","outlineColor","outlineStyle","outlineWidth","outlineOffset","boxShadow","accent","acce1","atmo3","overflowX","overflowY","paddingLeft","tagInputContainerRoot","flexGrow","verticalAlign","tagInputRoot","background","tagInputRootFocused","tagSelected","tagInputBorderContainer","singleLine"],"mappings":"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","sourcesContent":["const styles = (theme) => {\n return {\n root: {\n display: \"inline-block\",\n maxWidth: \"100%\",\n },\n resizable: {\n width: \"auto\",\n resize: \"both\",\n overflow: \"auto\",\n },\n disabled: {},\n invalid: {\n border: `1px solid ${theme.hv.palette.semantic.sema4}!important`,\n },\n input: {\n marginLeft: 0,\n marginRight: 0,\n width: 0,\n flex: \"1 1 auto\",\n minWidth: 48,\n height: 24,\n lineHeight: \"24px\",\n padding: 0,\n },\n listItemGutters: {\n padding: \"0 5px\",\n },\n listItemRoot: {\n marginBottom: 2,\n height: 24,\n lineHeight: \"24px\",\n \"&:not(:last-child)\": {\n marginBottom: 2,\n },\n \"&$singleLine\": {\n display: \"table-cell\",\n paddingTop: 2,\n },\n },\n labelContainer: {\n float: \"left\",\n display: \"flex\",\n alignItems: \"flex-start\",\n },\n label: {\n display: \"block\",\n float: \"left\",\n paddingBottom: \"6px\",\n },\n description: {\n display: \"block\",\n float: \"left\",\n },\n characterCounter: {\n display: \"block\",\n float: \"right\",\n textAlign: \"right\",\n marginBottom: \"6px\",\n },\n tagsList: {\n display: \"flex\",\n alignContent: \"flex-start\",\n float: \"left\",\n clear: \"both\",\n width: \"100%\",\n maxWidth: \"100%\",\n height: \"100%\",\n padding: 5,\n overflow: \"auto\",\n position: \"relative\",\n\n flexDirection: \"row\",\n flexWrap: \"wrap\",\n\n backgroundColor: theme.hv.palette.atmosphere.atmo1,\n border: `1px solid ${theme.hv.palette.atmosphere.atmo4}`,\n borderRadius: \"2px\",\n\n \"&:hover\": {\n cursor: \"text\",\n },\n\n \"&:focus\": {\n outline: \"none\",\n },\n\n \"&:focus-visible\": {\n outlineColor: \"#52A8EC\",\n outlineStyle: \"solid\",\n outlineWidth: \"0px\",\n outlineOffset: \"-1px\",\n boxShadow: \"0 0 0 1px #52A8EC, 0 0 0 4px rgba(29,155,209,.3)\",\n },\n\n \"&:focus-within, &:hover\": {\n border: `1px solid ${theme.hv.palette.accent.acce1}`,\n },\n\n \"&$disabled\": {\n backgroundColor: theme.hv.palette.atmosphere.atmo3,\n border: `1px solid ${theme.hv.palette.atmosphere.atmo4}`,\n\n \"&:focus-within, &:hover\": {\n border: `1px solid ${theme.hv.palette.atmosphere.atmo4}`,\n },\n },\n\n \"&$singleLine\": {\n overflowX: \"hidden\",\n overflowY: \"hidden\",\n height: 32,\n display: \"table-row\",\n paddingTop: 0,\n paddingLeft: 4,\n },\n },\n tagInputContainerRoot: {\n display: \"flex\",\n flexGrow: 1,\n height: 24,\n lineHeight: \"24px\",\n \"&$singleLine\": {\n display: \"table-cell\",\n minWidth: 100,\n width: \"100%\",\n paddingTop: 3,\n verticalAlign: \"middle\",\n },\n },\n tagInputRoot: {\n width: \"100%\",\n \"&:hover $tagInputBorderContainer\": {\n background: \"none\",\n },\n \"&:focus-within $tagInputBorderContainer\": {\n background: \"none\",\n },\n \"&$singleLine\": {},\n },\n tagInputRootFocused: {\n outline: \"none\",\n boxShadow: \"none\",\n },\n tagSelected: {\n outlineColor: \"#52A8EC\",\n outlineStyle: \"solid\",\n outlineWidth: \"0px\",\n outlineOffset: \"-1px\",\n boxShadow: \"0 0 0 1px #52A8EC, 0 0 0 4px rgba(29,155,209,.3)\",\n },\n tagInputBorderContainer: {\n border: \"none\",\n background: \"none\",\n },\n singleLine: {},\n };\n};\n\nexport default styles;\n"],"file":"styles.js"}
1
+ {"version":3,"sources":["../../src/TagsInput/styles.js"],"names":["styles","theme","root","display","maxWidth","chipRoot","resizable","width","resize","overflow","disabled","error","float","invalid","border","hv","palette","semantic","sema4","input","marginLeft","marginRight","flex","minWidth","height","lineHeight","padding","listItemGutters","listItemRoot","marginBottom","paddingTop","labelContainer","alignItems","label","paddingBottom","description","characterCounter","textAlign","tagsList","alignContent","clear","position","flexDirection","flexWrap","backgroundColor","atmosphere","atmo1","atmo4","borderRadius","cursor","accent","acce1","outlineColor","outlineStyle","outlineWidth","outlineOffset","boxShadow","atmo3","overflowX","overflowY","paddingLeft","tagInputContainerRoot","flexGrow","verticalAlign","tagInputRoot","background","tagInputRootFocused","outline","tagSelected","tagInputBorderContainer","singleLine"],"mappings":";;;;;;;AAAA,IAAMA,MAAM,GAAG,SAATA,MAAS,CAACC,KAAD,EAAW;AACxB,SAAO;AACLC,IAAAA,IAAI,EAAE;AACJC,MAAAA,OAAO,EAAE,cADL;AAEJC,MAAAA,QAAQ,EAAE;AAFN,KADD;AAKLC,IAAAA,QAAQ,EAAE;AACRD,MAAAA,QAAQ,EAAE;AADF,KALL;AAQLE,IAAAA,SAAS,EAAE;AACTC,MAAAA,KAAK,EAAE,MADE;AAETC,MAAAA,MAAM,EAAE,MAFC;AAGTC,MAAAA,QAAQ,EAAE;AAHD,KARN;AAaLC,IAAAA,QAAQ,EAAE,EAbL;AAcLC,IAAAA,KAAK,EAAE;AACLC,MAAAA,KAAK,EAAE;AADF,KAdF;AAiBLC,IAAAA,OAAO,EAAE;AACPC,MAAAA,MAAM,sBAAeb,KAAK,CAACc,EAAN,CAASC,OAAT,CAAiBC,QAAjB,CAA0BC,KAAzC;AADC,KAjBJ;AAoBLC,IAAAA,KAAK,EAAE;AACLC,MAAAA,UAAU,EAAE,CADP;AAELC,MAAAA,WAAW,EAAE,CAFR;AAGLd,MAAAA,KAAK,EAAE,CAHF;AAILe,MAAAA,IAAI,EAAE,UAJD;AAKLC,MAAAA,QAAQ,EAAE,EALL;AAMLC,MAAAA,MAAM,EAAE,EANH;AAOLC,MAAAA,UAAU,EAAE,MAPP;AAQLC,MAAAA,OAAO,EAAE;AARJ,KApBF;AA8BLC,IAAAA,eAAe,EAAE;AACfD,MAAAA,OAAO,EAAE;AADM,KA9BZ;AAiCLE,IAAAA,YAAY,EAAE;AACZC,MAAAA,YAAY,EAAE,CADF;AAEZL,MAAAA,MAAM,EAAE,EAFI;AAGZC,MAAAA,UAAU,EAAE,MAHA;AAIZ,4BAAsB;AACpBI,QAAAA,YAAY,EAAE;AADM,OAJV;AAOZ,sBAAgB;AACd1B,QAAAA,OAAO,EAAE,YADK;AAEd2B,QAAAA,UAAU,EAAE;AAFE;AAPJ,KAjCT;AA6CLC,IAAAA,cAAc,EAAE;AACdnB,MAAAA,KAAK,EAAE,MADO;AAEdT,MAAAA,OAAO,EAAE,MAFK;AAGd6B,MAAAA,UAAU,EAAE;AAHE,KA7CX;AAkDLC,IAAAA,KAAK,EAAE;AACL9B,MAAAA,OAAO,EAAE,OADJ;AAELS,MAAAA,KAAK,EAAE,MAFF;AAGLsB,MAAAA,aAAa,EAAE;AAHV,KAlDF;AAuDLC,IAAAA,WAAW,EAAE;AACXhC,MAAAA,OAAO,EAAE,OADE;AAEXS,MAAAA,KAAK,EAAE;AAFI,KAvDR;AA2DLwB,IAAAA,gBAAgB,EAAE;AAChBjC,MAAAA,OAAO,EAAE,OADO;AAEhBS,MAAAA,KAAK,EAAE,OAFS;AAGhByB,MAAAA,SAAS,EAAE,OAHK;AAIhBR,MAAAA,YAAY,EAAE;AAJE,KA3Db;AAiELS,IAAAA,QAAQ,EAAE;AACRnC,MAAAA,OAAO,EAAE,MADD;AAERoC,MAAAA,YAAY,EAAE,YAFN;AAGR3B,MAAAA,KAAK,EAAE,MAHC;AAIR4B,MAAAA,KAAK,EAAE,MAJC;AAKRjC,MAAAA,KAAK,EAAE,MALC;AAMRH,MAAAA,QAAQ,EAAE,MANF;AAORoB,MAAAA,MAAM,EAAE,MAPA;AAQRE,MAAAA,OAAO,EAAE,CARD;AASRjB,MAAAA,QAAQ,EAAE,MATF;AAURgC,MAAAA,QAAQ,EAAE,UAVF;AAYRC,MAAAA,aAAa,EAAE,KAZP;AAaRC,MAAAA,QAAQ,EAAE,MAbF;AAeRC,MAAAA,eAAe,EAAE3C,KAAK,CAACc,EAAN,CAASC,OAAT,CAAiB6B,UAAjB,CAA4BC,KAfrC;AAgBRhC,MAAAA,MAAM,sBAAeb,KAAK,CAACc,EAAN,CAASC,OAAT,CAAiB6B,UAAjB,CAA4BE,KAA3C,CAhBE;AAiBRC,MAAAA,YAAY,EAAE,KAjBN;AAmBR,iBAAW;AACTC,QAAAA,MAAM,EAAE,MADC;AAETnC,QAAAA,MAAM,sBAAeb,KAAK,CAACc,EAAN,CAASC,OAAT,CAAiBkC,MAAjB,CAAwBC,KAAvC;AAFG,OAnBH;AAwBR,kDAA4C;AAC1CC,QAAAA,YAAY,EAAE,SAD4B;AAE1CC,QAAAA,YAAY,EAAE,OAF4B;AAG1CC,QAAAA,YAAY,EAAE,KAH4B;AAI1CC,QAAAA,aAAa,EAAE,MAJ2B;AAK1CC,QAAAA,SAAS,EAAE;AAL+B,OAxBpC;AAgCR,oBAAc;AACZZ,QAAAA,eAAe,EAAE3C,KAAK,CAACc,EAAN,CAASC,OAAT,CAAiB6B,UAAjB,CAA4BY,KADjC;AAEZ3C,QAAAA,MAAM,sBAAeb,KAAK,CAACc,EAAN,CAASC,OAAT,CAAiB6B,UAAjB,CAA4BE,KAA3C,CAFM;AAIZ,mCAA2B;AACzBjC,UAAAA,MAAM,sBAAeb,KAAK,CAACc,EAAN,CAASC,OAAT,CAAiB6B,UAAjB,CAA4BE,KAA3C;AADmB;AAJf,OAhCN;AAyCR,sBAAgB;AACdW,QAAAA,SAAS,EAAE,QADG;AAEdC,QAAAA,SAAS,EAAE,QAFG;AAGdnC,QAAAA,MAAM,EAAE,EAHM;AAIdrB,QAAAA,OAAO,EAAE,WAJK;AAKd2B,QAAAA,UAAU,EAAE,CALE;AAMd8B,QAAAA,WAAW,EAAE;AANC,OAzCR;AAkDR,iBAAW;AACT9C,QAAAA,MAAM,sBAAeb,KAAK,CAACc,EAAN,CAASC,OAAT,CAAiBC,QAAjB,CAA0BC,KAAzC;AADG;AAlDH,KAjEL;AAuHL2C,IAAAA,qBAAqB,EAAE;AACrB1D,MAAAA,OAAO,EAAE,MADY;AAErB2D,MAAAA,QAAQ,EAAE,CAFW;AAGrBtC,MAAAA,MAAM,EAAE,EAHa;AAIrBC,MAAAA,UAAU,EAAE,MAJS;AAKrB,sBAAgB;AACdtB,QAAAA,OAAO,EAAE,YADK;AAEdoB,QAAAA,QAAQ,EAAE,GAFI;AAGdhB,QAAAA,KAAK,EAAE,MAHO;AAIduB,QAAAA,UAAU,EAAE,CAJE;AAKdiC,QAAAA,aAAa,EAAE;AALD;AALK,KAvHlB;AAoILC,IAAAA,YAAY,EAAE;AACZzD,MAAAA,KAAK,EAAE,MADK;AAEZ,0CAAoC;AAClC0D,QAAAA,UAAU,EAAE;AADsB,OAFxB;AAKZ,iDAA2C;AACzCA,QAAAA,UAAU,EAAE;AAD6B,OAL/B;AAQZ,sBAAgB;AARJ,KApIT;AA8ILC,IAAAA,mBAAmB,EAAE;AACnBC,MAAAA,OAAO,EAAE,MADU;AAEnBX,MAAAA,SAAS,EAAE;AAFQ,KA9IhB;AAkJLY,IAAAA,WAAW,EAAE;AACXhB,MAAAA,YAAY,EAAE,SADH;AAEXC,MAAAA,YAAY,EAAE,OAFH;AAGXC,MAAAA,YAAY,EAAE,KAHH;AAIXC,MAAAA,aAAa,EAAE,MAJJ;AAKXC,MAAAA,SAAS,EAAE;AALA,KAlJR;AAyJLa,IAAAA,uBAAuB,EAAE;AACvBvD,MAAAA,MAAM,EAAE,MADe;AAEvBmD,MAAAA,UAAU,EAAE;AAFW,KAzJpB;AA6JLK,IAAAA,UAAU,EAAE;AA7JP,GAAP;AA+JD,CAhKD;;eAkKetE,M","sourcesContent":["const styles = (theme) => {\n return {\n root: {\n display: \"inline-block\",\n maxWidth: \"100%\",\n },\n chipRoot: {\n maxWidth: \"none\",\n },\n resizable: {\n width: \"auto\",\n resize: \"both\",\n overflow: \"auto\",\n },\n disabled: {},\n error: {\n float: \"left\",\n },\n invalid: {\n border: `1px solid ${theme.hv.palette.semantic.sema4}!important`,\n },\n input: {\n marginLeft: 0,\n marginRight: 0,\n width: 0,\n flex: \"1 1 auto\",\n minWidth: 48,\n height: 24,\n lineHeight: \"24px\",\n padding: 0,\n },\n listItemGutters: {\n padding: \"0 5px\",\n },\n listItemRoot: {\n marginBottom: 2,\n height: 24,\n lineHeight: \"24px\",\n \"&:not(:last-child)\": {\n marginBottom: 2,\n },\n \"&$singleLine\": {\n display: \"table-cell\",\n paddingTop: 2,\n },\n },\n labelContainer: {\n float: \"left\",\n display: \"flex\",\n alignItems: \"flex-start\",\n },\n label: {\n display: \"block\",\n float: \"left\",\n paddingBottom: \"6px\",\n },\n description: {\n display: \"block\",\n float: \"left\",\n },\n characterCounter: {\n display: \"block\",\n float: \"right\",\n textAlign: \"right\",\n marginBottom: \"6px\",\n },\n tagsList: {\n display: \"flex\",\n alignContent: \"flex-start\",\n float: \"left\",\n clear: \"both\",\n width: \"100%\",\n maxWidth: \"100%\",\n height: \"100%\",\n padding: 5,\n overflow: \"auto\",\n position: \"relative\",\n\n flexDirection: \"row\",\n flexWrap: \"wrap\",\n\n backgroundColor: theme.hv.palette.atmosphere.atmo1,\n border: `1px solid ${theme.hv.palette.atmosphere.atmo4}`,\n borderRadius: \"2px\",\n\n \"&:hover\": {\n cursor: \"text\",\n border: `1px solid ${theme.hv.palette.accent.acce1}`,\n },\n\n \"&:focus, &:focus-within, &:focus-visible\": {\n outlineColor: \"#52A8EC\",\n outlineStyle: \"solid\",\n outlineWidth: \"0px\",\n outlineOffset: \"-1px\",\n boxShadow: \"0 0 0 1px #52A8EC, 0 0 0 4px rgba(29,155,209,.3)\",\n },\n\n \"&$disabled\": {\n backgroundColor: theme.hv.palette.atmosphere.atmo3,\n border: `1px solid ${theme.hv.palette.atmosphere.atmo4}`,\n\n \"&:focus-within, &:hover\": {\n border: `1px solid ${theme.hv.palette.atmosphere.atmo4}`,\n },\n },\n\n \"&$singleLine\": {\n overflowX: \"hidden\",\n overflowY: \"hidden\",\n height: 32,\n display: \"table-row\",\n paddingTop: 0,\n paddingLeft: 4,\n },\n\n \"&$error\": {\n border: `1px solid ${theme.hv.palette.semantic.sema4}`,\n },\n },\n tagInputContainerRoot: {\n display: \"flex\",\n flexGrow: 1,\n height: 24,\n lineHeight: \"24px\",\n \"&$singleLine\": {\n display: \"table-cell\",\n minWidth: 100,\n width: \"100%\",\n paddingTop: 3,\n verticalAlign: \"middle\",\n },\n },\n tagInputRoot: {\n width: \"100%\",\n \"&:hover $tagInputBorderContainer\": {\n background: \"none\",\n },\n \"&:focus-within $tagInputBorderContainer\": {\n background: \"none\",\n },\n \"&$singleLine\": {},\n },\n tagInputRootFocused: {\n outline: \"none\",\n boxShadow: \"none\",\n },\n tagSelected: {\n outlineColor: \"#52A8EC\",\n outlineStyle: \"solid\",\n outlineWidth: \"0px\",\n outlineOffset: \"-1px\",\n boxShadow: \"0 0 0 1px #52A8EC, 0 0 0 4px rgba(29,155,209,.3)\",\n },\n tagInputBorderContainer: {\n border: \"none\",\n background: \"none\",\n },\n singleLine: {},\n };\n};\n\nexport default styles;\n"],"file":"styles.js"}
package/dist/index.d.ts CHANGED
@@ -151,6 +151,8 @@ export * from "./Snackbar";
151
151
  export { default as HvSnackbarContent } from "./Snackbar/SnackbarContentWrapper";
152
152
  export * from "./Snackbar/SnackbarContentWrapper";
153
153
 
154
+ export { default as HvSnackbarProvider, useHvSnackbar } from "./Snackbar/SnackbarProvider";
155
+
154
156
  export { default as HvTab } from "./Tab";
155
157
  export * from "./Tab";
156
158
 
package/dist/index.js CHANGED
@@ -72,6 +72,8 @@ var _exportNames = {
72
72
  HvSwitch: true,
73
73
  HvSnackbar: true,
74
74
  HvSnackbarContent: true,
75
+ HvSnackbarProvider: true,
76
+ useHvSnackbar: true,
75
77
  HvTab: true,
76
78
  HvTag: true,
77
79
  HvTable: true,
@@ -419,6 +421,12 @@ Object.defineProperty(exports, "HvSnackbarContent", {
419
421
  return _SnackbarContentWrapper.default;
420
422
  }
421
423
  });
424
+ Object.defineProperty(exports, "HvSnackbarProvider", {
425
+ enumerable: true,
426
+ get: function get() {
427
+ return _SnackbarProvider.default;
428
+ }
429
+ });
422
430
  Object.defineProperty(exports, "HvSwitch", {
423
431
  enumerable: true,
424
432
  get: function get() {
@@ -575,6 +583,12 @@ Object.defineProperty(exports, "themeBuilder", {
575
583
  return _theme.themeBuilder;
576
584
  }
577
585
  });
586
+ Object.defineProperty(exports, "useHvSnackbar", {
587
+ enumerable: true,
588
+ get: function get() {
589
+ return _SnackbarProvider.useHvSnackbar;
590
+ }
591
+ });
578
592
  Object.defineProperty(exports, "useScrollTo", {
579
593
  enumerable: true,
580
594
  get: function get() {
@@ -808,6 +822,8 @@ var _Snackbar = _interopRequireDefault(require("./Snackbar"));
808
822
 
809
823
  var _SnackbarContentWrapper = _interopRequireDefault(require("./Snackbar/SnackbarContentWrapper"));
810
824
 
825
+ var _SnackbarProvider = _interopRequireWildcard(require("./Snackbar/SnackbarProvider"));
826
+
811
827
  var _Tab = _interopRequireDefault(require("./Tab"));
812
828
 
813
829
  var _Tag = _interopRequireDefault(require("./Tag"));