@dxc-technology/halstack-react 5.0.0 → 6.0.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 (128) hide show
  1. package/HalstackContext.d.ts +4 -2
  2. package/HalstackContext.js +110 -58
  3. package/accordion/Accordion.stories.tsx +1 -1
  4. package/accordion-group/AccordionGroup.js +1 -0
  5. package/alert/Alert.js +4 -1
  6. package/badge/Badge.d.ts +1 -1
  7. package/badge/Badge.js +5 -3
  8. package/badge/types.d.ts +1 -0
  9. package/bleed/Bleed.js +1 -34
  10. package/bleed/Bleed.stories.tsx +94 -95
  11. package/bleed/types.d.ts +1 -1
  12. package/box/Box.js +22 -32
  13. package/bulleted-list/BulletedList.d.ts +7 -0
  14. package/bulleted-list/BulletedList.js +123 -0
  15. package/bulleted-list/BulletedList.stories.tsx +200 -0
  16. package/bulleted-list/types.d.ts +11 -0
  17. package/{list → bulleted-list}/types.js +0 -0
  18. package/button/Button.js +3 -1
  19. package/card/Card.js +34 -36
  20. package/checkbox/Checkbox.js +4 -1
  21. package/common/variables.js +211 -88
  22. package/date-input/DateInput.js +5 -2
  23. package/dropdown/Dropdown.stories.tsx +1 -1
  24. package/file-input/FileInput.js +9 -6
  25. package/file-input/FileItem.js +7 -5
  26. package/flex/Flex.d.ts +4 -0
  27. package/flex/Flex.js +57 -0
  28. package/flex/Flex.stories.tsx +103 -0
  29. package/flex/types.d.ts +21 -0
  30. package/{radio → flex}/types.js +0 -0
  31. package/footer/Footer.js +7 -5
  32. package/footer/Icons.js +1 -1
  33. package/header/Header.js +7 -4
  34. package/inset/Inset.js +1 -34
  35. package/inset/Inset.stories.tsx +36 -36
  36. package/inset/types.d.ts +1 -1
  37. package/layout/ApplicationLayout.d.ts +16 -6
  38. package/layout/ApplicationLayout.js +70 -117
  39. package/layout/ApplicationLayout.stories.tsx +83 -93
  40. package/layout/Icons.d.ts +5 -0
  41. package/layout/Icons.js +13 -2
  42. package/layout/SidenavContext.d.ts +5 -0
  43. package/layout/SidenavContext.js +19 -0
  44. package/layout/types.d.ts +18 -33
  45. package/link/Link.d.ts +3 -2
  46. package/link/Link.js +57 -70
  47. package/link/Link.stories.tsx +88 -53
  48. package/link/Link.test.js +7 -15
  49. package/link/types.d.ts +7 -23
  50. package/main.d.ts +7 -10
  51. package/main.js +38 -56
  52. package/number-input/types.d.ts +1 -1
  53. package/package.json +3 -1
  54. package/paginator/Paginator.js +17 -38
  55. package/paginator/Paginator.test.js +42 -0
  56. package/paragraph/Paragraph.d.ts +6 -0
  57. package/paragraph/Paragraph.js +38 -0
  58. package/paragraph/Paragraph.stories.tsx +44 -0
  59. package/password-input/PasswordInput.js +7 -4
  60. package/password-input/PasswordInput.test.js +1 -2
  61. package/password-input/types.d.ts +1 -1
  62. package/progress-bar/ProgressBar.js +1 -1
  63. package/progress-bar/ProgressBar.stories.jsx +11 -11
  64. package/quick-nav/QuickNav.js +74 -20
  65. package/quick-nav/QuickNav.stories.tsx +43 -16
  66. package/quick-nav/types.d.ts +4 -4
  67. package/radio-group/Radio.js +1 -1
  68. package/radio-group/RadioGroup.js +10 -7
  69. package/resultsetTable/ResultsetTable.test.js +42 -0
  70. package/select/Listbox.d.ts +1 -1
  71. package/select/Listbox.js +35 -8
  72. package/select/Select.js +83 -78
  73. package/select/Select.stories.tsx +144 -100
  74. package/select/Select.test.js +299 -194
  75. package/select/types.d.ts +3 -4
  76. package/sidenav/Sidenav.d.ts +6 -5
  77. package/sidenav/Sidenav.js +172 -52
  78. package/sidenav/Sidenav.stories.tsx +154 -156
  79. package/sidenav/Sidenav.test.js +25 -37
  80. package/sidenav/types.d.ts +50 -27
  81. package/spinner/Spinner.js +1 -1
  82. package/switch/Switch.js +4 -1
  83. package/tabs/Tabs.stories.tsx +0 -6
  84. package/tabs-nav/NavTabs.d.ts +8 -0
  85. package/tabs-nav/NavTabs.js +125 -0
  86. package/tabs-nav/NavTabs.stories.tsx +170 -0
  87. package/tabs-nav/NavTabs.test.js +82 -0
  88. package/tabs-nav/Tab.d.ts +4 -0
  89. package/tabs-nav/Tab.js +132 -0
  90. package/tabs-nav/types.d.ts +53 -0
  91. package/{row → tabs-nav}/types.js +0 -0
  92. package/text-input/Suggestion.d.ts +4 -0
  93. package/text-input/Suggestion.js +55 -0
  94. package/text-input/TextInput.js +46 -72
  95. package/text-input/TextInput.test.js +1 -1
  96. package/text-input/types.d.ts +14 -2
  97. package/textarea/Textarea.js +10 -19
  98. package/textarea/types.d.ts +1 -1
  99. package/typography/Typography.d.ts +4 -0
  100. package/typography/Typography.js +131 -0
  101. package/typography/Typography.stories.tsx +198 -0
  102. package/typography/types.d.ts +18 -0
  103. package/{stack → typography}/types.js +0 -0
  104. package/useTranslatedLabels.d.ts +2 -0
  105. package/useTranslatedLabels.js +20 -0
  106. package/wizard/Wizard.js +36 -41
  107. package/wizard/Wizard.stories.tsx +20 -1
  108. package/wizard/types.d.ts +4 -3
  109. package/list/List.d.ts +0 -4
  110. package/list/List.js +0 -47
  111. package/list/List.stories.tsx +0 -95
  112. package/list/types.d.ts +0 -7
  113. package/radio/Radio.d.ts +0 -4
  114. package/radio/Radio.js +0 -173
  115. package/radio/Radio.stories.tsx +0 -192
  116. package/radio/Radio.test.js +0 -71
  117. package/radio/types.d.ts +0 -54
  118. package/row/Row.d.ts +0 -3
  119. package/row/Row.js +0 -127
  120. package/row/Row.stories.tsx +0 -237
  121. package/row/types.d.ts +0 -28
  122. package/stack/Stack.d.ts +0 -3
  123. package/stack/Stack.js +0 -97
  124. package/stack/Stack.stories.tsx +0 -164
  125. package/stack/types.d.ts +0 -24
  126. package/text/Text.d.ts +0 -7
  127. package/text/Text.js +0 -30
  128. package/text/Text.stories.tsx +0 -19
@@ -21,6 +21,8 @@ var _styledComponents = _interopRequireWildcard(require("styled-components"));
21
21
 
22
22
  var _useTheme = _interopRequireDefault(require("../useTheme"));
23
23
 
24
+ var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
25
+
24
26
  var _variables = require("../common/variables.js");
25
27
 
26
28
  var _utils = require("../common/utils.js");
@@ -31,7 +33,9 @@ var _BackgroundColorContext = _interopRequireDefault(require("../BackgroundColor
31
33
 
32
34
  var _NumberInputContext = _interopRequireDefault(require("../number-input/NumberInputContext"));
33
35
 
34
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17, _templateObject18;
36
+ var _Suggestion = _interopRequireDefault(require("./Suggestion"));
37
+
38
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16;
35
39
 
36
40
  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); }
37
41
 
@@ -205,6 +209,7 @@ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
205
209
  var inputRef = (0, _react.useRef)(null);
206
210
  var actionRef = (0, _react.useRef)(null);
207
211
  var colorsTheme = (0, _useTheme["default"])();
212
+ var translatedLabels = (0, _useTranslatedLabels["default"])();
208
213
  var backgroundType = (0, _react.useContext)(_BackgroundColorContext["default"]);
209
214
  var autosuggestId = "".concat(inputId, "-listBox");
210
215
  var errorId = "error-".concat(inputId);
@@ -221,10 +226,6 @@ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
221
226
  return value && minLength && maxLength && (value.length < minLength || value.length > maxLength);
222
227
  };
223
228
 
224
- var getLengthErrorMessage = function getLengthErrorMessage() {
225
- return "Min length ".concat(minLength, ", max length ").concat(maxLength, ".");
226
- };
227
-
228
229
  var isNumberIncorrect = function isNumberIncorrect(value) {
229
230
  return (numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.minNumber) && parseInt(value) < (numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.minNumber) || (numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.maxNumber) && parseInt(value) > (numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.maxNumber);
230
231
  };
@@ -236,7 +237,7 @@ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
236
237
  };
237
238
 
238
239
  var getNumberErrorMessage = function getNumberErrorMessage(value) {
239
- if (numberInputContext !== null && numberInputContext !== void 0 && numberInputContext.minNumber && parseInt(value) < (numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.minNumber)) return "Value must be greater than or equal to ".concat(numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.minNumber, ".");else if (numberInputContext !== null && numberInputContext !== void 0 && numberInputContext.maxNumber && parseInt(value) > (numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.maxNumber)) return "Value must be less than or equal to ".concat(numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.maxNumber, ".");
240
+ if (numberInputContext !== null && numberInputContext !== void 0 && numberInputContext.minNumber && parseInt(value) < (numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.minNumber)) return translatedLabels.numberInput.valueGreaterThanOrEqualToErrorMessage(numberInputContext.minNumber);else if (numberInputContext !== null && numberInputContext !== void 0 && numberInputContext.maxNumber && parseInt(value) > (numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.maxNumber)) return translatedLabels.numberInput.valueLessThanOrEqualToErrorMessage(numberInputContext.maxNumber);
240
241
  };
241
242
 
242
243
  var hasSuggestions = function hasSuggestions() {
@@ -257,13 +258,13 @@ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
257
258
  var changedValue = typeof newValue === "number" ? newValue.toString() : newValue;
258
259
  if (isNotOptional(newValue)) onChange === null || onChange === void 0 ? void 0 : onChange({
259
260
  value: changedValue,
260
- error: getNotOptionalErrorMessage()
261
+ error: translatedLabels.formFields.requiredValueErrorMessage
261
262
  });else if (isLengthIncorrect(newValue)) onChange === null || onChange === void 0 ? void 0 : onChange({
262
263
  value: changedValue,
263
- error: getLengthErrorMessage()
264
+ error: translatedLabels.formFields.lengthErrorMessage(minLength, maxLength)
264
265
  });else if (newValue && pattern && !patternMatch(pattern, newValue)) onChange === null || onChange === void 0 ? void 0 : onChange({
265
266
  value: changedValue,
266
- error: getPatternErrorMessage()
267
+ error: translatedLabels.formFields.formatRequestedErrorMessage
267
268
  });else if (newValue && isNumberIncorrect(newValue)) onChange === null || onChange === void 0 ? void 0 : onChange({
268
269
  value: changedValue,
269
270
  error: getNumberErrorMessage(newValue)
@@ -290,13 +291,13 @@ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
290
291
  suggestions && closeSuggestions();
291
292
  if (isNotOptional(event.target.value)) onBlur === null || onBlur === void 0 ? void 0 : onBlur({
292
293
  value: event.target.value,
293
- error: getNotOptionalErrorMessage()
294
+ error: translatedLabels.formFields.requiredValueErrorMessage
294
295
  });else if (isLengthIncorrect(event.target.value)) onBlur === null || onBlur === void 0 ? void 0 : onBlur({
295
296
  value: event.target.value,
296
- error: getLengthErrorMessage()
297
+ error: translatedLabels.formFields.lengthErrorMessage(minLength, maxLength)
297
298
  });else if (event.target.value && pattern && !patternMatch(pattern, event.target.value)) onBlur === null || onBlur === void 0 ? void 0 : onBlur({
298
299
  value: event.target.value,
299
- error: getPatternErrorMessage()
300
+ error: translatedLabels.formFields.formatRequestedErrorMessage
300
301
  });else if (event.target.value && isNumberIncorrect(event.target.value)) onBlur === null || onBlur === void 0 ? void 0 : onBlur({
301
302
  value: event.target.value,
302
303
  error: getNumberErrorMessage(event.target.value)
@@ -468,45 +469,22 @@ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
468
469
 
469
470
  (numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.typeNumber) === "number" && setNumberProps(numberInputContext.typeNumber, numberInputContext.minNumber, numberInputContext.maxNumber, numberInputContext.stepNumber);
470
471
  }, [value, innerValue, suggestions, numberInputContext]);
471
-
472
- var HighlightedSuggestion = function HighlightedSuggestion(_ref2) {
473
- var suggestion = _ref2.suggestion,
474
- index = _ref2.index;
475
- var regEx = new RegExp(value !== null && value !== void 0 ? value : innerValue, "i");
476
- var matchedWords = suggestion.match(regEx);
477
- var noMatchedWords = suggestion.replace(regEx, "");
478
- var isLastOption = index === lastOptionIndex;
479
- return /*#__PURE__*/_react["default"].createElement(Suggestion, {
480
- id: "suggestion-".concat(index),
481
- onClick: function onClick() {
482
- changeValue(suggestion);
483
- closeSuggestions();
484
- },
485
- visualFocused: visualFocusedSuggIndex === index,
486
- role: "option",
487
- "aria-selected": visualFocusedSuggIndex === index && "true"
488
- }, /*#__PURE__*/_react["default"].createElement(StyledSuggestion, {
489
- last: isLastOption,
490
- visualFocused: visualFocusedSuggIndex === index
491
- }, typeof suggestions === "function" ? suggestion : /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("strong", null, matchedWords), noMatchedWords)));
492
- };
493
-
494
472
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
495
473
  theme: colorsTheme.textInput
496
- }, /*#__PURE__*/_react["default"].createElement(DxcInput, {
474
+ }, /*#__PURE__*/_react["default"].createElement(TextInputContainer, {
497
475
  margin: margin,
498
- ref: ref,
499
- size: size
476
+ size: size,
477
+ ref: ref
500
478
  }, label && /*#__PURE__*/_react["default"].createElement(Label, {
501
479
  htmlFor: inputId,
502
480
  disabled: disabled,
503
481
  backgroundType: backgroundType,
504
- helperText: helperText
505
- }, label, " ", optional && /*#__PURE__*/_react["default"].createElement(OptionalLabel, null, "(Optional)")), helperText && /*#__PURE__*/_react["default"].createElement(HelperText, {
482
+ hasHelperText: helperText ? true : false
483
+ }, label, " ", optional && /*#__PURE__*/_react["default"].createElement(OptionalLabel, null, translatedLabels.formFields.optionalLabel)), helperText && /*#__PURE__*/_react["default"].createElement(HelperText, {
506
484
  disabled: disabled,
507
485
  backgroundType: backgroundType
508
486
  }, helperText), /*#__PURE__*/_react["default"].createElement(InputContainer, {
509
- error: error,
487
+ error: error ? true : false,
510
488
  disabled: disabled,
511
489
  backgroundType: backgroundType,
512
490
  onClick: handleInputContainerOnClick,
@@ -557,8 +535,8 @@ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
557
535
  },
558
536
  backgroundType: backgroundType,
559
537
  tabIndex: tabIndex,
560
- title: "Clear field",
561
- "aria-label": "Clear field"
538
+ title: translatedLabels.textInput.clearFieldActionTitle,
539
+ "aria-label": translatedLabels.textInput.clearFieldActionTitle
562
540
  }, textInputIcons.clear), (numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.typeNumber) === "number" ? /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(Action, {
563
541
  ref: actionRef,
564
542
  disabled: disabled,
@@ -570,8 +548,8 @@ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
570
548
  },
571
549
  backgroundType: backgroundType,
572
550
  tabIndex: tabIndex,
573
- title: "Decrement value",
574
- "aria-label": "Decrement value"
551
+ title: translatedLabels.numberInput.decrementValueTitle,
552
+ "aria-label": translatedLabels.numberInput.decrementValueTitle
575
553
  }, textInputIcons.decrement), /*#__PURE__*/_react["default"].createElement(Action, {
576
554
  ref: actionRef,
577
555
  disabled: disabled,
@@ -583,8 +561,8 @@ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
583
561
  },
584
562
  backgroundType: backgroundType,
585
563
  tabIndex: tabIndex,
586
- title: "Increment value",
587
- "aria-label": "Increment value"
564
+ title: translatedLabels.numberInput.incrementValueTitle,
565
+ "aria-label": translatedLabels.numberInput.incrementValueTitle
588
566
  }, textInputIcons.increment)) : action && /*#__PURE__*/_react["default"].createElement(Action, {
589
567
  ref: actionRef,
590
568
  disabled: disabled,
@@ -605,7 +583,7 @@ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
605
583
  backgroundType: backgroundType
606
584
  }, suffix), isOpen && (filteredSuggestions.length > 0 || isSearching || isAutosuggestError) && /*#__PURE__*/_react["default"].createElement(Suggestions, {
607
585
  id: autosuggestId,
608
- isError: isAutosuggestError,
586
+ error: isAutosuggestError ? true : false,
609
587
  onMouseDown: function onMouseDown(event) {
610
588
  event.preventDefault();
611
589
  },
@@ -613,14 +591,22 @@ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
613
591
  role: "listbox",
614
592
  "aria-label": label
615
593
  }, !isSearching && !isAutosuggestError && filteredSuggestions.length > 0 && filteredSuggestions.map(function (suggestion, index) {
616
- return /*#__PURE__*/_react["default"].createElement(HighlightedSuggestion, {
617
- key: "suggestion-".concat((0, _uuid.v4)()),
594
+ return /*#__PURE__*/_react["default"].createElement(_Suggestion["default"], {
595
+ key: "suggestion-".concat(index),
596
+ id: "suggestion-".concat(index),
597
+ value: value !== null && value !== void 0 ? value : innerValue,
598
+ onClick: function onClick() {
599
+ changeValue(suggestion);
600
+ closeSuggestions();
601
+ },
618
602
  suggestion: suggestion,
619
- index: index
603
+ isLast: index === lastOptionIndex,
604
+ visuallyFocused: visualFocusedSuggIndex === index,
605
+ highlighted: typeof suggestions === "function"
620
606
  });
621
- }), isSearching && /*#__PURE__*/_react["default"].createElement(SuggestionsSystemMessage, null, "Searching..."), isAutosuggestError && /*#__PURE__*/_react["default"].createElement(SuggestionsError, null, /*#__PURE__*/_react["default"].createElement(SuggestionsErrorIcon, {
607
+ }), isSearching && /*#__PURE__*/_react["default"].createElement(SuggestionsSystemMessage, null, translatedLabels.textInput.searchingMessage), isAutosuggestError && /*#__PURE__*/_react["default"].createElement(SuggestionsError, null, /*#__PURE__*/_react["default"].createElement(SuggestionsErrorIcon, {
622
608
  backgroundType: backgroundType
623
- }, textInputIcons.error), "Error fetching data"))), !disabled && typeof error === "string" && /*#__PURE__*/_react["default"].createElement(Error, {
609
+ }, textInputIcons.error), translatedLabels.textInput.fetchingDataErrorMessage))), !disabled && typeof error === "string" && /*#__PURE__*/_react["default"].createElement(Error, {
624
610
  id: errorId,
625
611
  backgroundType: backgroundType,
626
612
  "aria-live": error ? "assertive" : "off"
@@ -638,7 +624,7 @@ var calculateWidth = function calculateWidth(margin, size) {
638
624
  return size === "fillParent" ? "calc(".concat(sizes[size], " - ").concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")") : sizes[size];
639
625
  };
640
626
 
641
- var DxcInput = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n\n width: ", ";\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n"])), function (props) {
627
+ var TextInputContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n\n width: ", ";\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n"])), function (props) {
642
628
  return calculateWidth(props.margin, props.size);
643
629
  }, function (props) {
644
630
  return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
@@ -665,7 +651,7 @@ var Label = _styledComponents["default"].label(_templateObject2 || (_templateObj
665
651
  }, function (props) {
666
652
  return props.theme.labelLineHeight;
667
653
  }, function (props) {
668
- return !props.helperText && "margin-bottom: 0.25rem";
654
+ return !props.hasHelperText && "margin-bottom: 0.25rem";
669
655
  });
670
656
 
671
657
  var OptionalLabel = _styledComponents["default"].span(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n font-weight: ", ";\n"])), function (props) {
@@ -753,9 +739,9 @@ var Error = _styledComponents["default"].span(_templateObject12 || (_templateObj
753
739
  });
754
740
 
755
741
  var Suggestions = _styledComponents["default"].ul(_templateObject13 || (_templateObject13 = (0, _taggedTemplateLiteral2["default"])(["\n position: absolute;\n z-index: 1;\n max-height: 304px;\n overflow-y: auto;\n top: calc(100% + 4px);\n left: 0;\n margin: 0;\n padding: 0.25rem 0;\n width: 100%;\n background-color: ", ";\n border: 1px solid\n ", ";\n border-radius: 0.25rem;\n box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);\n cursor: default;\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n"])), function (props) {
756
- return props.isError ? props.theme.errorListDialogBackgroundColor : props.theme.listDialogBackgroundColor;
742
+ return props.error ? props.theme.errorListDialogBackgroundColor : props.theme.listDialogBackgroundColor;
757
743
  }, function (props) {
758
- return props.isError ? props.theme.errorListDialogBorderColor : props.theme.listDialogBorderColor;
744
+ return props.error ? props.theme.errorListDialogBorderColor : props.theme.listDialogBorderColor;
759
745
  }, function (props) {
760
746
  return props.theme.listOptionFontColor;
761
747
  }, function (props) {
@@ -768,27 +754,15 @@ var Suggestions = _styledComponents["default"].ul(_templateObject13 || (_templat
768
754
  return props.theme.listOptionFontWeight;
769
755
  });
770
756
 
771
- var Suggestion = _styledComponents["default"].li(_templateObject14 || (_templateObject14 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n padding: 0 0.5rem;\n line-height: 1.715em;\n cursor: pointer;\n\n box-shadow: inset 0 0 0 2px\n ", ";\n &:hover {\n background-color: ", ";\n }\n &:active {\n background-color: ", ";\n }\n"])), function (props) {
772
- return props.visualFocused ? props.theme.focusListOptionBorderColor : "transparent";
773
- }, function (props) {
774
- return props.theme.hoverListOptionBackgroundColor;
775
- }, function (props) {
776
- return props.theme.activeListOptionBackgroundColor;
777
- });
778
-
779
- var StyledSuggestion = _styledComponents["default"].span(_templateObject15 || (_templateObject15 = (0, _taggedTemplateLiteral2["default"])(["\n width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n padding: 0.25rem 0.5rem 0.188rem 0.5rem;\n ", ";\n"])), function (props) {
780
- return props.last || props.visualFocused ? "border-bottom: 1px solid transparent" : "border-bottom: 1px solid ".concat(props.theme.listOptionDividerColor);
781
- });
782
-
783
- var SuggestionsSystemMessage = _styledComponents["default"].span(_templateObject16 || (_templateObject16 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n padding: 0.25rem 1rem;\n color: ", ";\n line-height: 1.715em;\n"])), function (props) {
757
+ var SuggestionsSystemMessage = _styledComponents["default"].span(_templateObject14 || (_templateObject14 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n padding: 0.25rem 1rem;\n color: ", ";\n line-height: 1.715em;\n"])), function (props) {
784
758
  return props.theme.systemMessageFontColor;
785
759
  });
786
760
 
787
- var SuggestionsErrorIcon = _styledComponents["default"].span(_templateObject17 || (_templateObject17 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-wrap: wrap;\n align-content: center;\n margin-right: 0.5rem;\n height: 18px;\n width: 18px;\n color: ", ";\n"])), function (props) {
761
+ var SuggestionsErrorIcon = _styledComponents["default"].span(_templateObject15 || (_templateObject15 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-wrap: wrap;\n align-content: center;\n margin-right: 0.5rem;\n height: 18px;\n width: 18px;\n color: ", ";\n"])), function (props) {
788
762
  return props.backgroundType === "dark" ? props.theme.errorIconColorOnDark : props.theme.errorIconColor;
789
763
  });
790
764
 
791
- var SuggestionsError = _styledComponents["default"].span(_templateObject18 || (_templateObject18 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n padding: 0.25rem 1rem;\n align-items: center;\n line-height: 1.715em;\n color: ", ";\n"])), function (props) {
765
+ var SuggestionsError = _styledComponents["default"].span(_templateObject16 || (_templateObject16 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n padding: 0.25rem 1rem;\n align-items: center;\n line-height: 1.715em;\n color: ", ";\n"])), function (props) {
792
766
  return props.theme.errorListDialogFontColor;
793
767
  });
794
768
 
@@ -628,7 +628,7 @@ describe("TextInput component tests", function () {
628
628
  expect(input.getAttribute("aria-expanded")).toBe("true");
629
629
  expect(list.getAttribute("aria-label")).toBe("Autocomplete Countries");
630
630
  var options = getAllByRole("option");
631
- expect(options[0].getAttribute("aria-selected")).toBe("false");
631
+ expect(options[0].getAttribute("aria-selected")).toBeNull();
632
632
  });
633
633
  });
634
634
  describe("TextInput component synchronous autosuggest tests", function () {
@@ -6,7 +6,7 @@ declare type Margin = {
6
6
  left?: Space;
7
7
  right?: Space;
8
8
  };
9
- declare type SVG = React.SVGProps<SVGSVGElement> | React.FunctionComponent<React.SVGProps<SVGSVGElement>>;
9
+ declare type SVG = React.SVGProps<SVGSVGElement>;
10
10
  declare type Action = {
11
11
  /**
12
12
  * This function will be called when the user clicks the action.
@@ -151,7 +151,7 @@ declare type Props = {
151
151
  */
152
152
  margin?: Space | Margin;
153
153
  /**
154
- * Size of the component ('small' | 'medium' | 'large' | 'fillParent').
154
+ * Size of the component.
155
155
  */
156
156
  size?: "small" | "medium" | "large" | "fillParent";
157
157
  /**
@@ -163,4 +163,16 @@ declare type Props = {
163
163
  * Reference to the component.
164
164
  */
165
165
  export declare type RefType = HTMLDivElement;
166
+ /**
167
+ * Single suggestion of the Autosuggest Text Input component.
168
+ */
169
+ export declare type SuggestionProps = {
170
+ id: string;
171
+ value: string;
172
+ onClick: () => void;
173
+ suggestion: string;
174
+ isLast: boolean;
175
+ visuallyFocused: boolean;
176
+ highlighted: boolean;
177
+ };
166
178
  export default Props;
@@ -23,6 +23,8 @@ var _utils = require("../common/utils.js");
23
23
 
24
24
  var _useTheme = _interopRequireDefault(require("../useTheme"));
25
25
 
26
+ var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
27
+
26
28
  var _variables = require("../common/variables.js");
27
29
 
28
30
  var _uuid = require("uuid");
@@ -35,14 +37,6 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
35
37
 
36
38
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof3(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
37
39
 
38
- var getNotOptionalErrorMessage = function getNotOptionalErrorMessage() {
39
- return "This field is required. Please, enter a value.";
40
- };
41
-
42
- var getPatternErrorMessage = function getPatternErrorMessage() {
43
- return "Please match the format requested.";
44
- };
45
-
46
40
  var patternMatch = function patternMatch(pattern, value) {
47
41
  return new RegExp(pattern).test(value);
48
42
  };
@@ -90,13 +84,10 @@ var DxcTextarea = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref)
90
84
 
91
85
  var colorsTheme = (0, _useTheme["default"])();
92
86
  var backgroundType = (0, _react.useContext)(_BackgroundColorContext["default"]);
87
+ var translatedLabels = (0, _useTranslatedLabels["default"])();
93
88
  var textareaRef = (0, _react.useRef)(null);
94
89
  var errorId = "error-".concat(textareaId);
95
90
 
96
- var getLengthErrorMessage = function getLengthErrorMessage() {
97
- return "Min length ".concat(minLength, ", max length ").concat(maxLength, ".");
98
- };
99
-
100
91
  var isNotOptional = function isNotOptional(value) {
101
92
  return value === "" && !optional;
102
93
  };
@@ -109,13 +100,13 @@ var DxcTextarea = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref)
109
100
  value !== null && value !== void 0 ? value : setInnerValue(newValue);
110
101
  if (isNotOptional(newValue)) onChange === null || onChange === void 0 ? void 0 : onChange({
111
102
  value: newValue,
112
- error: getNotOptionalErrorMessage()
103
+ error: translatedLabels.formFields.requiredValueErrorMessage
113
104
  });else if (isLengthIncorrect(newValue)) onChange === null || onChange === void 0 ? void 0 : onChange({
114
105
  value: newValue,
115
- error: getLengthErrorMessage()
106
+ error: translatedLabels.formFields.lengthErrorMessage(minLength, maxLength)
116
107
  });else if (newValue && pattern && !patternMatch(pattern, newValue)) onChange === null || onChange === void 0 ? void 0 : onChange({
117
108
  value: newValue,
118
- error: getPatternErrorMessage()
109
+ error: translatedLabels.formFields.formatRequestedErrorMessage
119
110
  });else onChange === null || onChange === void 0 ? void 0 : onChange({
120
111
  value: newValue
121
112
  });
@@ -124,13 +115,13 @@ var DxcTextarea = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref)
124
115
  var handleTOnBlur = function handleTOnBlur(event) {
125
116
  if (isNotOptional(event.target.value)) onBlur === null || onBlur === void 0 ? void 0 : onBlur({
126
117
  value: event.target.value,
127
- error: getNotOptionalErrorMessage()
118
+ error: translatedLabels.formFields.requiredValueErrorMessage
128
119
  });else if (isLengthIncorrect(event.target.value)) onBlur === null || onBlur === void 0 ? void 0 : onBlur({
129
120
  value: event.target.value,
130
- error: getLengthErrorMessage()
121
+ error: translatedLabels.formFields.lengthErrorMessage(minLength, maxLength)
131
122
  });else if (event.target.value && pattern && !patternMatch(pattern, event.target.value)) onBlur === null || onBlur === void 0 ? void 0 : onBlur({
132
123
  value: event.target.value,
133
- error: getPatternErrorMessage()
124
+ error: translatedLabels.formFields.formatRequestedErrorMessage
134
125
  });else onBlur === null || onBlur === void 0 ? void 0 : onBlur({
135
126
  value: event.target.value
136
127
  });
@@ -160,7 +151,7 @@ var DxcTextarea = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref)
160
151
  disabled: disabled,
161
152
  backgroundType: backgroundType,
162
153
  helperText: helperText
163
- }, label, " ", optional && /*#__PURE__*/_react["default"].createElement(OptionalLabel, null, "(Optional)")), helperText && /*#__PURE__*/_react["default"].createElement(HelperText, {
154
+ }, label, " ", optional && /*#__PURE__*/_react["default"].createElement(OptionalLabel, null, translatedLabels.formFields.optionalLabel)), helperText && /*#__PURE__*/_react["default"].createElement(HelperText, {
164
155
  disabled: disabled,
165
156
  backgroundType: backgroundType
166
157
  }, helperText), /*#__PURE__*/_react["default"].createElement(Textarea, {
@@ -122,7 +122,7 @@ declare type Props = {
122
122
  */
123
123
  margin?: Space | Margin;
124
124
  /**
125
- * Size of the component ('small' | 'medium' | 'large' | 'fillParent').
125
+ * Size of the component.
126
126
  */
127
127
  size?: "small" | "medium" | "large" | "fillParent";
128
128
  /**
@@ -0,0 +1,4 @@
1
+ /// <reference types="react" />
2
+ import TypographyPropsTypes from "./types";
3
+ declare const Typography: ({ as, display, fontFamily, fontSize, fontStyle, fontWeight, letterSpacing, lineHeight, textAlign, color, textDecoration, textOverflow, whiteSpace, children, }: TypographyPropsTypes) => JSX.Element;
4
+ export default Typography;
@@ -0,0 +1,131 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports["default"] = void 0;
11
+
12
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
13
+
14
+ var _react = _interopRequireWildcard(require("react"));
15
+
16
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
17
+
18
+ var _templateObject;
19
+
20
+ 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); }
21
+
22
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
23
+
24
+ var TypographyContext = /*#__PURE__*/_react["default"].createContext(null);
25
+
26
+ var Typography = function Typography(_ref) {
27
+ var as = _ref.as,
28
+ display = _ref.display,
29
+ fontFamily = _ref.fontFamily,
30
+ fontSize = _ref.fontSize,
31
+ fontStyle = _ref.fontStyle,
32
+ fontWeight = _ref.fontWeight,
33
+ letterSpacing = _ref.letterSpacing,
34
+ lineHeight = _ref.lineHeight,
35
+ textAlign = _ref.textAlign,
36
+ color = _ref.color,
37
+ textDecoration = _ref.textDecoration,
38
+ textOverflow = _ref.textOverflow,
39
+ whiteSpace = _ref.whiteSpace,
40
+ children = _ref.children;
41
+ var componentContext = (0, _react.useContext)(TypographyContext);
42
+ var asValue = as !== null && as !== void 0 ? as : (componentContext === null || componentContext === void 0 ? void 0 : componentContext.as) || "span";
43
+ var displayValue = display !== null && display !== void 0 ? display : (componentContext === null || componentContext === void 0 ? void 0 : componentContext.display) || "inline";
44
+ var fontFamilyValue = fontFamily !== null && fontFamily !== void 0 ? fontFamily : (componentContext === null || componentContext === void 0 ? void 0 : componentContext.fontFamily) || "Open Sans, sans-serif";
45
+ var fontSizeValue = fontSize !== null && fontSize !== void 0 ? fontSize : (componentContext === null || componentContext === void 0 ? void 0 : componentContext.fontSize) || "1rem";
46
+ var fontStyleValue = fontStyle !== null && fontStyle !== void 0 ? fontStyle : (componentContext === null || componentContext === void 0 ? void 0 : componentContext.fontStyle) || "normal";
47
+ var fontWeightValue = fontWeight !== null && fontWeight !== void 0 ? fontWeight : (componentContext === null || componentContext === void 0 ? void 0 : componentContext.fontWeight) || "400";
48
+ var letterSpacingValue = letterSpacing !== null && letterSpacing !== void 0 ? letterSpacing : (componentContext === null || componentContext === void 0 ? void 0 : componentContext.letterSpacing) || "0em";
49
+ var lineHeightValue = lineHeight !== null && lineHeight !== void 0 ? lineHeight : (componentContext === null || componentContext === void 0 ? void 0 : componentContext.lineHeight) || "1.5em";
50
+ var textAlignValue = textAlign !== null && textAlign !== void 0 ? textAlign : (componentContext === null || componentContext === void 0 ? void 0 : componentContext.textAlign) || "left";
51
+ var colorValue = color !== null && color !== void 0 ? color : (componentContext === null || componentContext === void 0 ? void 0 : componentContext.color) || "#000000";
52
+ var textDecorationValue = textDecoration !== null && textDecoration !== void 0 ? textDecoration : (componentContext === null || componentContext === void 0 ? void 0 : componentContext.textDecoration) || "none";
53
+ var textOverflowValue = textOverflow !== null && textOverflow !== void 0 ? textOverflow : (componentContext === null || componentContext === void 0 ? void 0 : componentContext.textOverflow) || "unset";
54
+ var whiteSpaceValue = whiteSpace !== null && whiteSpace !== void 0 ? whiteSpace : (componentContext === null || componentContext === void 0 ? void 0 : componentContext.whiteSpace) || "normal";
55
+ return /*#__PURE__*/_react["default"].createElement(TypographyContext.Provider, {
56
+ value: {
57
+ as: asValue,
58
+ display: displayValue,
59
+ fontFamily: fontFamilyValue,
60
+ fontSize: fontSizeValue,
61
+ fontStyle: fontStyleValue,
62
+ fontWeight: fontWeightValue,
63
+ letterSpacing: letterSpacingValue,
64
+ lineHeight: lineHeightValue,
65
+ textAlign: textAlignValue,
66
+ color: colorValue,
67
+ textDecoration: textDecorationValue,
68
+ textOverflow: textOverflowValue,
69
+ whiteSpace: whiteSpaceValue
70
+ }
71
+ }, /*#__PURE__*/_react["default"].createElement(StyledTypography, {
72
+ as: asValue,
73
+ display: displayValue,
74
+ fontFamily: fontFamilyValue,
75
+ fontSize: fontSizeValue,
76
+ fontStyle: fontStyleValue,
77
+ fontWeight: fontWeightValue,
78
+ letterSpacing: letterSpacingValue,
79
+ lineHeight: lineHeightValue,
80
+ textAlign: textAlignValue,
81
+ color: colorValue,
82
+ textDecoration: textDecorationValue,
83
+ textOverflow: textOverflowValue,
84
+ whiteSpace: whiteSpaceValue
85
+ }, children));
86
+ };
87
+
88
+ var StyledTypography = _styledComponents["default"].span(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n margin: 0px;\n display: ", ";\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n letter-spacing: ", ";\n text-align: ", ";\n line-height: ", ";\n text-decoration: ", ";\n text-overflow: ", ";\n white-space: ", ";\n overflow: ", ";\n"])), function (_ref2) {
89
+ var display = _ref2.display;
90
+ return display;
91
+ }, function (_ref3) {
92
+ var color = _ref3.color;
93
+ return color;
94
+ }, function (_ref4) {
95
+ var fontFamily = _ref4.fontFamily;
96
+ return fontFamily;
97
+ }, function (_ref5) {
98
+ var fontSize = _ref5.fontSize;
99
+ return fontSize;
100
+ }, function (_ref6) {
101
+ var fontStyle = _ref6.fontStyle;
102
+ return fontStyle;
103
+ }, function (_ref7) {
104
+ var fontWeight = _ref7.fontWeight;
105
+ return fontWeight;
106
+ }, function (_ref8) {
107
+ var letterSpacing = _ref8.letterSpacing;
108
+ return letterSpacing;
109
+ }, function (_ref9) {
110
+ var textAlign = _ref9.textAlign;
111
+ return textAlign;
112
+ }, function (_ref10) {
113
+ var lineHeight = _ref10.lineHeight;
114
+ return lineHeight;
115
+ }, function (_ref11) {
116
+ var textDecoration = _ref11.textDecoration;
117
+ return textDecoration;
118
+ }, function (_ref12) {
119
+ var textOverflow = _ref12.textOverflow;
120
+ return textOverflow;
121
+ }, function (_ref13) {
122
+ var whiteSpace = _ref13.whiteSpace,
123
+ textOverflow = _ref13.textOverflow;
124
+ return whiteSpace !== "normal" ? whiteSpace : textOverflow !== "unset" ? "nowrap" : "normal";
125
+ }, function (_ref14) {
126
+ var textOverflow = _ref14.textOverflow;
127
+ return textOverflow !== "unset" ? "hidden" : "visible";
128
+ });
129
+
130
+ var _default = Typography;
131
+ exports["default"] = _default;