@dxc-technology/halstack-react 0.0.0-1853afe → 0.0.0-18ada02

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 (244) hide show
  1. package/HalstackContext.d.ts +12 -0
  2. package/HalstackContext.js +295 -0
  3. package/accordion/Accordion.d.ts +1 -1
  4. package/accordion/Accordion.js +7 -28
  5. package/accordion/Accordion.stories.tsx +12 -12
  6. package/accordion/Accordion.test.js +72 -0
  7. package/accordion/types.d.ts +5 -1
  8. package/accordion-group/AccordionGroup.d.ts +1 -1
  9. package/accordion-group/AccordionGroup.js +14 -15
  10. package/accordion-group/AccordionGroup.stories.tsx +1 -1
  11. package/accordion-group/AccordionGroup.test.js +151 -0
  12. package/accordion-group/types.d.ts +5 -1
  13. package/alert/Alert.js +4 -1
  14. package/alert/Alert.test.js +92 -0
  15. package/badge/Badge.d.ts +4 -0
  16. package/badge/Badge.js +5 -3
  17. package/badge/types.d.ts +5 -0
  18. package/{list → badge}/types.js +0 -0
  19. package/bleed/Bleed.js +1 -34
  20. package/bleed/Bleed.stories.tsx +94 -95
  21. package/bleed/types.d.ts +25 -1
  22. package/box/Box.js +22 -32
  23. package/box/Box.test.js +18 -0
  24. package/bulleted-list/BulletedList.d.ts +7 -0
  25. package/bulleted-list/BulletedList.js +123 -0
  26. package/bulleted-list/BulletedList.stories.tsx +200 -0
  27. package/bulleted-list/types.d.ts +11 -0
  28. package/{radio → bulleted-list}/types.js +0 -0
  29. package/button/Button.js +53 -68
  30. package/button/Button.stories.tsx +9 -0
  31. package/button/Button.test.js +35 -0
  32. package/button/types.d.ts +7 -7
  33. package/card/Card.js +24 -27
  34. package/card/Card.test.js +50 -0
  35. package/checkbox/Checkbox.d.ts +1 -1
  36. package/checkbox/Checkbox.js +43 -39
  37. package/checkbox/Checkbox.stories.tsx +124 -128
  38. package/checkbox/Checkbox.test.js +78 -0
  39. package/checkbox/types.d.ts +7 -3
  40. package/chip/Chip.test.js +56 -0
  41. package/chip/types.d.ts +1 -1
  42. package/common/variables.js +229 -336
  43. package/date-input/DateInput.js +56 -42
  44. package/date-input/DateInput.stories.tsx +7 -7
  45. package/date-input/DateInput.test.js +479 -0
  46. package/date-input/types.d.ts +16 -9
  47. package/dialog/Dialog.js +46 -50
  48. package/dialog/Dialog.stories.tsx +1 -2
  49. package/dialog/Dialog.test.js +70 -0
  50. package/dialog/types.d.ts +2 -2
  51. package/dropdown/Dropdown.d.ts +1 -1
  52. package/dropdown/Dropdown.js +242 -272
  53. package/dropdown/Dropdown.stories.tsx +144 -79
  54. package/dropdown/Dropdown.test.js +591 -0
  55. package/dropdown/DropdownMenu.d.ts +4 -0
  56. package/dropdown/DropdownMenu.js +80 -0
  57. package/dropdown/DropdownMenuItem.d.ts +4 -0
  58. package/dropdown/DropdownMenuItem.js +92 -0
  59. package/dropdown/types.d.ts +29 -18
  60. package/file-input/FileInput.js +9 -6
  61. package/file-input/FileInput.test.js +457 -0
  62. package/file-input/FileItem.js +7 -5
  63. package/flex/Flex.d.ts +4 -0
  64. package/flex/Flex.js +57 -0
  65. package/flex/Flex.stories.tsx +103 -0
  66. package/flex/types.d.ts +21 -0
  67. package/{row → flex}/types.js +0 -0
  68. package/footer/Footer.js +15 -88
  69. package/footer/Footer.test.js +109 -0
  70. package/footer/Icons.js +1 -1
  71. package/footer/types.d.ts +1 -1
  72. package/header/Header.js +95 -114
  73. package/header/Header.stories.tsx +46 -36
  74. package/header/Header.test.js +79 -0
  75. package/header/Icons.js +2 -2
  76. package/header/types.d.ts +2 -2
  77. package/heading/Heading.test.js +186 -0
  78. package/inset/Inset.js +1 -34
  79. package/inset/Inset.stories.tsx +36 -36
  80. package/inset/types.d.ts +25 -1
  81. package/layout/ApplicationLayout.d.ts +16 -6
  82. package/layout/ApplicationLayout.js +71 -125
  83. package/layout/ApplicationLayout.stories.tsx +83 -93
  84. package/layout/Icons.d.ts +5 -0
  85. package/layout/Icons.js +13 -2
  86. package/layout/SidenavContext.d.ts +5 -0
  87. package/layout/SidenavContext.js +19 -0
  88. package/layout/types.d.ts +18 -33
  89. package/link/Link.d.ts +3 -2
  90. package/link/Link.js +60 -85
  91. package/link/Link.stories.tsx +99 -52
  92. package/link/Link.test.js +83 -0
  93. package/link/types.d.ts +9 -29
  94. package/main.d.ts +11 -15
  95. package/main.js +53 -79
  96. package/number-input/NumberInput.js +11 -18
  97. package/number-input/NumberInput.stories.tsx +5 -5
  98. package/number-input/NumberInput.test.js +506 -0
  99. package/number-input/types.d.ts +17 -10
  100. package/package.json +14 -12
  101. package/paginator/Paginator.js +17 -38
  102. package/paginator/Paginator.test.js +308 -0
  103. package/paragraph/Paragraph.d.ts +6 -0
  104. package/paragraph/Paragraph.js +38 -0
  105. package/paragraph/Paragraph.stories.tsx +44 -0
  106. package/password-input/PasswordInput.js +7 -4
  107. package/password-input/PasswordInput.test.js +180 -0
  108. package/password-input/types.d.ts +14 -11
  109. package/progress-bar/ProgressBar.d.ts +2 -2
  110. package/progress-bar/ProgressBar.js +57 -51
  111. package/progress-bar/ProgressBar.stories.jsx +13 -11
  112. package/progress-bar/ProgressBar.test.js +110 -0
  113. package/progress-bar/types.d.ts +3 -4
  114. package/quick-nav/QuickNav.d.ts +4 -0
  115. package/quick-nav/QuickNav.js +118 -0
  116. package/quick-nav/QuickNav.stories.tsx +264 -0
  117. package/quick-nav/types.d.ts +21 -0
  118. package/{stack → quick-nav}/types.js +0 -0
  119. package/radio-group/Radio.d.ts +1 -1
  120. package/radio-group/Radio.js +25 -24
  121. package/radio-group/RadioGroup.js +58 -50
  122. package/radio-group/RadioGroup.stories.tsx +60 -39
  123. package/radio-group/RadioGroup.test.js +530 -83
  124. package/radio-group/types.d.ts +80 -2
  125. package/resultsetTable/ResultsetTable.js +5 -2
  126. package/resultsetTable/ResultsetTable.test.js +348 -0
  127. package/select/Icons.d.ts +10 -0
  128. package/select/Icons.js +93 -0
  129. package/select/Listbox.d.ts +4 -0
  130. package/select/Listbox.js +199 -0
  131. package/select/Option.d.ts +4 -0
  132. package/select/Option.js +110 -0
  133. package/select/Select.js +145 -365
  134. package/select/Select.stories.tsx +231 -176
  135. package/select/Select.test.js +2175 -0
  136. package/select/types.d.ts +52 -12
  137. package/sidenav/Sidenav.d.ts +6 -5
  138. package/sidenav/Sidenav.js +184 -52
  139. package/sidenav/Sidenav.stories.tsx +154 -156
  140. package/sidenav/Sidenav.test.js +44 -0
  141. package/sidenav/types.d.ts +50 -27
  142. package/slider/Slider.d.ts +1 -1
  143. package/slider/Slider.js +114 -98
  144. package/slider/Slider.stories.tsx +15 -9
  145. package/slider/Slider.test.js +250 -0
  146. package/slider/types.d.ts +6 -2
  147. package/spinner/Spinner.js +1 -1
  148. package/spinner/Spinner.test.js +64 -0
  149. package/switch/Switch.d.ts +2 -2
  150. package/switch/Switch.js +127 -55
  151. package/switch/Switch.stories.tsx +20 -42
  152. package/switch/Switch.test.js +212 -0
  153. package/switch/types.d.ts +9 -6
  154. package/table/Table.test.js +26 -0
  155. package/tabs/Tabs.d.ts +1 -1
  156. package/tabs/Tabs.js +9 -11
  157. package/tabs/Tabs.stories.tsx +0 -8
  158. package/tabs/Tabs.test.js +140 -0
  159. package/tabs/types.d.ts +5 -1
  160. package/tabs-nav/NavTabs.d.ts +8 -0
  161. package/tabs-nav/NavTabs.js +125 -0
  162. package/tabs-nav/NavTabs.stories.tsx +170 -0
  163. package/tabs-nav/NavTabs.test.js +82 -0
  164. package/tabs-nav/Tab.d.ts +4 -0
  165. package/tabs-nav/Tab.js +130 -0
  166. package/tabs-nav/types.d.ts +53 -0
  167. package/tabs-nav/types.js +5 -0
  168. package/tag/Tag.d.ts +1 -1
  169. package/tag/Tag.js +17 -27
  170. package/tag/Tag.stories.tsx +25 -28
  171. package/tag/Tag.test.js +60 -0
  172. package/tag/types.d.ts +23 -14
  173. package/text-input/Suggestion.d.ts +4 -0
  174. package/text-input/Suggestion.js +55 -0
  175. package/text-input/TextInput.js +68 -101
  176. package/text-input/TextInput.stories.tsx +31 -14
  177. package/text-input/TextInput.test.js +1712 -0
  178. package/text-input/types.d.ts +31 -12
  179. package/textarea/Textarea.js +20 -27
  180. package/textarea/Textarea.stories.jsx +33 -12
  181. package/textarea/Textarea.test.js +437 -0
  182. package/textarea/types.d.ts +18 -11
  183. package/toggle-group/ToggleGroup.d.ts +1 -1
  184. package/toggle-group/ToggleGroup.js +5 -4
  185. package/toggle-group/ToggleGroup.stories.tsx +4 -4
  186. package/toggle-group/ToggleGroup.test.js +156 -0
  187. package/toggle-group/types.d.ts +9 -1
  188. package/typography/Typography.d.ts +4 -0
  189. package/typography/Typography.js +131 -0
  190. package/typography/Typography.stories.tsx +198 -0
  191. package/typography/types.d.ts +18 -0
  192. package/typography/types.js +5 -0
  193. package/useTheme.js +2 -2
  194. package/useTranslatedLabels.d.ts +2 -0
  195. package/useTranslatedLabels.js +20 -0
  196. package/wizard/Wizard.d.ts +1 -1
  197. package/wizard/Wizard.js +58 -54
  198. package/wizard/Wizard.stories.tsx +33 -24
  199. package/wizard/Wizard.test.js +141 -0
  200. package/wizard/types.d.ts +10 -5
  201. package/ThemeContext.d.ts +0 -15
  202. package/ThemeContext.js +0 -243
  203. package/V3Select/V3Select.js +0 -455
  204. package/V3Select/index.d.ts +0 -27
  205. package/V3Textarea/V3Textarea.js +0 -260
  206. package/V3Textarea/index.d.ts +0 -27
  207. package/date/Date.js +0 -373
  208. package/date/index.d.ts +0 -27
  209. package/input-text/Icons.js +0 -22
  210. package/input-text/InputText.js +0 -611
  211. package/input-text/index.d.ts +0 -36
  212. package/list/List.d.ts +0 -4
  213. package/list/List.js +0 -47
  214. package/list/List.stories.tsx +0 -95
  215. package/list/types.d.ts +0 -7
  216. package/radio/Radio.d.ts +0 -4
  217. package/radio/Radio.js +0 -174
  218. package/radio/Radio.stories.tsx +0 -192
  219. package/radio/types.d.ts +0 -54
  220. package/row/Row.d.ts +0 -3
  221. package/row/Row.js +0 -127
  222. package/row/Row.stories.tsx +0 -237
  223. package/row/types.d.ts +0 -10
  224. package/stack/Stack.d.ts +0 -3
  225. package/stack/Stack.js +0 -97
  226. package/stack/Stack.stories.tsx +0 -164
  227. package/stack/types.d.ts +0 -9
  228. package/text/Text.d.ts +0 -7
  229. package/text/Text.js +0 -30
  230. package/text/Text.stories.tsx +0 -19
  231. package/toggle/Toggle.js +0 -186
  232. package/toggle/index.d.ts +0 -21
  233. package/upload/Upload.js +0 -201
  234. package/upload/buttons-upload/ButtonsUpload.js +0 -111
  235. package/upload/buttons-upload/Icons.js +0 -40
  236. package/upload/dragAndDropArea/DragAndDropArea.js +0 -225
  237. package/upload/dragAndDropArea/Icons.js +0 -39
  238. package/upload/file-upload/FileToUpload.js +0 -115
  239. package/upload/file-upload/Icons.js +0 -66
  240. package/upload/files-upload/FilesToUpload.js +0 -109
  241. package/upload/index.d.ts +0 -15
  242. package/upload/transaction/Icons.js +0 -160
  243. package/upload/transaction/Transaction.js +0 -104
  244. package/upload/transactions/Transactions.js +0 -94
@@ -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
 
@@ -106,14 +110,6 @@ var makeCancelable = function makeCancelable(promise) {
106
110
  };
107
111
  };
108
112
 
109
- var getNotOptionalErrorMessage = function getNotOptionalErrorMessage() {
110
- return "This field is required. Please, enter a value.";
111
- };
112
-
113
- var getPatternErrorMessage = function getPatternErrorMessage() {
114
- return "Please match the format requested.";
115
- };
116
-
117
113
  var patternMatch = function patternMatch(pattern, value) {
118
114
  return new RegExp(pattern).test(value);
119
115
  };
@@ -135,6 +131,8 @@ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
135
131
  var label = _ref.label,
136
132
  _ref$name = _ref.name,
137
133
  name = _ref$name === void 0 ? "" : _ref$name,
134
+ _ref$defaultValue = _ref.defaultValue,
135
+ defaultValue = _ref$defaultValue === void 0 ? "" : _ref$defaultValue,
138
136
  value = _ref.value,
139
137
  helperText = _ref.helperText,
140
138
  _ref$placeholder = _ref.placeholder,
@@ -169,7 +167,7 @@ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
169
167
  _useState2 = (0, _slicedToArray2["default"])(_useState, 1),
170
168
  inputId = _useState2[0];
171
169
 
172
- var _useState3 = (0, _react.useState)(""),
170
+ var _useState3 = (0, _react.useState)(defaultValue),
173
171
  _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
174
172
  innerValue = _useState4[0],
175
173
  setInnerValue = _useState4[1];
@@ -203,9 +201,10 @@ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
203
201
  var inputRef = (0, _react.useRef)(null);
204
202
  var actionRef = (0, _react.useRef)(null);
205
203
  var colorsTheme = (0, _useTheme["default"])();
204
+ var translatedLabels = (0, _useTranslatedLabels["default"])();
206
205
  var backgroundType = (0, _react.useContext)(_BackgroundColorContext["default"]);
207
206
  var autosuggestId = "".concat(inputId, "-listBox");
208
- var errorId = "error-message-".concat(inputId);
207
+ var errorId = "error-".concat(inputId);
209
208
  var numberInputContext = (0, _react.useContext)(_NumberInputContext["default"]);
210
209
  var lastOptionIndex = (0, _react.useMemo)(function () {
211
210
  return getLastOptionIndex(filteredSuggestions);
@@ -219,10 +218,6 @@ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
219
218
  return value && minLength && maxLength && (value.length < minLength || value.length > maxLength);
220
219
  };
221
220
 
222
- var getLengthErrorMessage = function getLengthErrorMessage() {
223
- return "Min length ".concat(minLength, ", max length ").concat(maxLength, ".");
224
- };
225
-
226
221
  var isNumberIncorrect = function isNumberIncorrect(value) {
227
222
  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);
228
223
  };
@@ -234,7 +229,7 @@ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
234
229
  };
235
230
 
236
231
  var getNumberErrorMessage = function getNumberErrorMessage(value) {
237
- 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, ".");
232
+ 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);
238
233
  };
239
234
 
240
235
  var hasSuggestions = function hasSuggestions() {
@@ -255,19 +250,18 @@ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
255
250
  var changedValue = typeof newValue === "number" ? newValue.toString() : newValue;
256
251
  if (isNotOptional(newValue)) onChange === null || onChange === void 0 ? void 0 : onChange({
257
252
  value: changedValue,
258
- error: getNotOptionalErrorMessage()
253
+ error: translatedLabels.formFields.requiredValueErrorMessage
259
254
  });else if (isLengthIncorrect(newValue)) onChange === null || onChange === void 0 ? void 0 : onChange({
260
255
  value: changedValue,
261
- error: getLengthErrorMessage()
256
+ error: translatedLabels.formFields.lengthErrorMessage(minLength, maxLength)
262
257
  });else if (newValue && pattern && !patternMatch(pattern, newValue)) onChange === null || onChange === void 0 ? void 0 : onChange({
263
258
  value: changedValue,
264
- error: getPatternErrorMessage()
259
+ error: translatedLabels.formFields.formatRequestedErrorMessage
265
260
  });else if (newValue && isNumberIncorrect(newValue)) onChange === null || onChange === void 0 ? void 0 : onChange({
266
261
  value: changedValue,
267
262
  error: getNumberErrorMessage(newValue)
268
263
  });else onChange === null || onChange === void 0 ? void 0 : onChange({
269
- value: changedValue,
270
- error: null
264
+ value: changedValue
271
265
  });
272
266
  };
273
267
 
@@ -289,31 +283,30 @@ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
289
283
  suggestions && closeSuggestions();
290
284
  if (isNotOptional(event.target.value)) onBlur === null || onBlur === void 0 ? void 0 : onBlur({
291
285
  value: event.target.value,
292
- error: getNotOptionalErrorMessage()
286
+ error: translatedLabels.formFields.requiredValueErrorMessage
293
287
  });else if (isLengthIncorrect(event.target.value)) onBlur === null || onBlur === void 0 ? void 0 : onBlur({
294
288
  value: event.target.value,
295
- error: getLengthErrorMessage()
289
+ error: translatedLabels.formFields.lengthErrorMessage(minLength, maxLength)
296
290
  });else if (event.target.value && pattern && !patternMatch(pattern, event.target.value)) onBlur === null || onBlur === void 0 ? void 0 : onBlur({
297
291
  value: event.target.value,
298
- error: getPatternErrorMessage()
292
+ error: translatedLabels.formFields.formatRequestedErrorMessage
299
293
  });else if (event.target.value && isNumberIncorrect(event.target.value)) onBlur === null || onBlur === void 0 ? void 0 : onBlur({
300
294
  value: event.target.value,
301
295
  error: getNumberErrorMessage(event.target.value)
302
296
  });else onBlur === null || onBlur === void 0 ? void 0 : onBlur({
303
- value: event.target.value,
304
- error: null
297
+ value: event.target.value
305
298
  });
306
299
  };
307
300
 
308
301
  var handleIOnKeyDown = function handleIOnKeyDown(event) {
309
- switch (event.keyCode) {
310
- case 40:
311
- // Arrow Down
302
+ switch (event.key) {
303
+ case "Down":
304
+ case "ArrowDown":
305
+ event.preventDefault();
306
+
312
307
  if ((numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.typeNumber) === "number") {
313
308
  decrementNumber();
314
- event.preventDefault();
315
309
  } else {
316
- event.preventDefault();
317
310
  openSuggestions();
318
311
 
319
312
  if (!isAutosuggestError && !isSearching && filteredSuggestions.length > 0) {
@@ -325,13 +318,13 @@ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
325
318
 
326
319
  break;
327
320
 
328
- case 38:
329
- // Arrow Up
321
+ case "Up":
322
+ case "ArrowUp":
323
+ event.preventDefault();
324
+
330
325
  if ((numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.typeNumber) === "number") {
331
326
  incrementNumber();
332
- event.preventDefault();
333
327
  } else {
334
- event.preventDefault();
335
328
  openSuggestions();
336
329
 
337
330
  if (!isAutosuggestError && !isSearching && filteredSuggestions.length > 0) {
@@ -343,8 +336,8 @@ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
343
336
 
344
337
  break;
345
338
 
346
- case 27:
347
- // Esc
339
+ case "Esc":
340
+ case "Escape":
348
341
  event.preventDefault();
349
342
 
350
343
  if (hasSuggestions()) {
@@ -354,8 +347,7 @@ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
354
347
 
355
348
  break;
356
349
 
357
- case 13:
358
- // Enter
350
+ case "Enter":
359
351
  if (hasSuggestions() && !isSearching) {
360
352
  var validFocusedSuggestion = filteredSuggestions.length > 0 && visualFocusedSuggIndex >= 0 && visualFocusedSuggIndex < filteredSuggestions.length;
361
353
  validFocusedSuggestion && changeValue(filteredSuggestions[visualFocusedSuggIndex]);
@@ -468,45 +460,22 @@ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
468
460
 
469
461
  (numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.typeNumber) === "number" && setNumberProps(numberInputContext.typeNumber, numberInputContext.minNumber, numberInputContext.maxNumber, numberInputContext.stepNumber);
470
462
  }, [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
463
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
495
464
  theme: colorsTheme.textInput
496
- }, /*#__PURE__*/_react["default"].createElement(DxcInput, {
465
+ }, /*#__PURE__*/_react["default"].createElement(TextInputContainer, {
497
466
  margin: margin,
498
- ref: ref,
499
- size: size
467
+ size: size,
468
+ ref: ref
500
469
  }, label && /*#__PURE__*/_react["default"].createElement(Label, {
501
470
  htmlFor: inputId,
502
471
  disabled: disabled,
503
472
  backgroundType: backgroundType,
504
- helperText: helperText
505
- }, label, " ", optional && /*#__PURE__*/_react["default"].createElement(OptionalLabel, null, "(Optional)")), helperText && /*#__PURE__*/_react["default"].createElement(HelperText, {
473
+ hasHelperText: helperText ? true : false
474
+ }, label, " ", optional && /*#__PURE__*/_react["default"].createElement(OptionalLabel, null, translatedLabels.formFields.optionalLabel)), helperText && /*#__PURE__*/_react["default"].createElement(HelperText, {
506
475
  disabled: disabled,
507
476
  backgroundType: backgroundType
508
477
  }, helperText), /*#__PURE__*/_react["default"].createElement(InputContainer, {
509
- error: error,
478
+ error: error ? true : false,
510
479
  disabled: disabled,
511
480
  backgroundType: backgroundType,
512
481
  onClick: handleInputContainerOnClick,
@@ -539,10 +508,11 @@ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
539
508
  role: isTextInputType() && hasSuggestions() ? "combobox" : "textbox",
540
509
  "aria-autocomplete": isTextInputType() && hasSuggestions() ? "list" : undefined,
541
510
  "aria-controls": isTextInputType() && hasSuggestions() ? autosuggestId : undefined,
511
+ "aria-disabled": disabled,
542
512
  "aria-expanded": isTextInputType() && hasSuggestions() ? isOpen ? "true" : "false" : undefined,
543
513
  "aria-activedescendant": isTextInputType() && hasSuggestions() && isOpen && visualFocusedSuggIndex !== -1 ? "suggestion-".concat(visualFocusedSuggIndex) : undefined,
544
514
  "aria-invalid": error ? "true" : "false",
545
- "aria-describedby": error ? errorId : undefined,
515
+ "aria-errormessage": error ? errorId : undefined,
546
516
  "aria-required": optional ? "false" : "true"
547
517
  }), !disabled && error && /*#__PURE__*/_react["default"].createElement(ErrorIcon, {
548
518
  backgroundType: backgroundType,
@@ -556,8 +526,8 @@ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
556
526
  },
557
527
  backgroundType: backgroundType,
558
528
  tabIndex: tabIndex,
559
- title: "Clear field",
560
- "aria-label": "Clear field"
529
+ title: translatedLabels.textInput.clearFieldActionTitle,
530
+ "aria-label": translatedLabels.textInput.clearFieldActionTitle
561
531
  }, 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, {
562
532
  ref: actionRef,
563
533
  disabled: disabled,
@@ -569,8 +539,8 @@ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
569
539
  },
570
540
  backgroundType: backgroundType,
571
541
  tabIndex: tabIndex,
572
- title: "Decrement value",
573
- "aria-label": "Decrement value"
542
+ title: translatedLabels.numberInput.decrementValueTitle,
543
+ "aria-label": translatedLabels.numberInput.decrementValueTitle
574
544
  }, textInputIcons.decrement), /*#__PURE__*/_react["default"].createElement(Action, {
575
545
  ref: actionRef,
576
546
  disabled: disabled,
@@ -582,8 +552,8 @@ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
582
552
  },
583
553
  backgroundType: backgroundType,
584
554
  tabIndex: tabIndex,
585
- title: "Increment value",
586
- "aria-label": "Increment value"
555
+ title: translatedLabels.numberInput.incrementValueTitle,
556
+ "aria-label": translatedLabels.numberInput.incrementValueTitle
587
557
  }, textInputIcons.increment)) : action && /*#__PURE__*/_react["default"].createElement(Action, {
588
558
  ref: actionRef,
589
559
  disabled: disabled,
@@ -604,7 +574,7 @@ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
604
574
  backgroundType: backgroundType
605
575
  }, suffix), isOpen && (filteredSuggestions.length > 0 || isSearching || isAutosuggestError) && /*#__PURE__*/_react["default"].createElement(Suggestions, {
606
576
  id: autosuggestId,
607
- isError: isAutosuggestError,
577
+ error: isAutosuggestError ? true : false,
608
578
  onMouseDown: function onMouseDown(event) {
609
579
  event.preventDefault();
610
580
  },
@@ -612,16 +582,25 @@ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
612
582
  role: "listbox",
613
583
  "aria-label": label
614
584
  }, !isSearching && !isAutosuggestError && filteredSuggestions.length > 0 && filteredSuggestions.map(function (suggestion, index) {
615
- return /*#__PURE__*/_react["default"].createElement(HighlightedSuggestion, {
616
- key: "suggestion-".concat((0, _uuid.v4)()),
585
+ return /*#__PURE__*/_react["default"].createElement(_Suggestion["default"], {
586
+ key: "suggestion-".concat(index),
587
+ id: "suggestion-".concat(index),
588
+ value: value !== null && value !== void 0 ? value : innerValue,
589
+ onClick: function onClick() {
590
+ changeValue(suggestion);
591
+ closeSuggestions();
592
+ },
617
593
  suggestion: suggestion,
618
- index: index
594
+ isLast: index === lastOptionIndex,
595
+ visuallyFocused: visualFocusedSuggIndex === index,
596
+ highlighted: typeof suggestions === "function"
619
597
  });
620
- }), isSearching && /*#__PURE__*/_react["default"].createElement(SuggestionsSystemMessage, null, "Searching..."), isAutosuggestError && /*#__PURE__*/_react["default"].createElement(SuggestionsError, null, /*#__PURE__*/_react["default"].createElement(SuggestionsErrorIcon, {
598
+ }), isSearching && /*#__PURE__*/_react["default"].createElement(SuggestionsSystemMessage, null, translatedLabels.textInput.searchingMessage), isAutosuggestError && /*#__PURE__*/_react["default"].createElement(SuggestionsError, null, /*#__PURE__*/_react["default"].createElement(SuggestionsErrorIcon, {
621
599
  backgroundType: backgroundType
622
- }, textInputIcons.error), "Error fetching data"))), !disabled && typeof error === "string" && /*#__PURE__*/_react["default"].createElement(Error, {
600
+ }, textInputIcons.error), translatedLabels.textInput.fetchingDataErrorMessage))), !disabled && typeof error === "string" && /*#__PURE__*/_react["default"].createElement(Error, {
623
601
  id: errorId,
624
- backgroundType: backgroundType
602
+ backgroundType: backgroundType,
603
+ "aria-live": error ? "assertive" : "off"
625
604
  }, error)));
626
605
  });
627
606
 
@@ -636,7 +615,7 @@ var calculateWidth = function calculateWidth(margin, size) {
636
615
  return size === "fillParent" ? "calc(".concat(sizes[size], " - ").concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")") : sizes[size];
637
616
  };
638
617
 
639
- 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) {
618
+ 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) {
640
619
  return calculateWidth(props.margin, props.size);
641
620
  }, function (props) {
642
621
  return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
@@ -663,7 +642,7 @@ var Label = _styledComponents["default"].label(_templateObject2 || (_templateObj
663
642
  }, function (props) {
664
643
  return props.theme.labelLineHeight;
665
644
  }, function (props) {
666
- return !props.helperText && "margin-bottom: 0.25rem";
645
+ return !props.hasHelperText && "margin-bottom: 0.25rem";
667
646
  });
668
647
 
669
648
  var OptionalLabel = _styledComponents["default"].span(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n font-weight: ", ";\n"])), function (props) {
@@ -751,9 +730,9 @@ var Error = _styledComponents["default"].span(_templateObject12 || (_templateObj
751
730
  });
752
731
 
753
732
  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) {
754
- return props.isError ? props.theme.errorListDialogBackgroundColor : props.theme.listDialogBackgroundColor;
733
+ return props.error ? props.theme.errorListDialogBackgroundColor : props.theme.listDialogBackgroundColor;
755
734
  }, function (props) {
756
- return props.isError ? props.theme.errorListDialogBorderColor : props.theme.listDialogBorderColor;
735
+ return props.error ? props.theme.errorListDialogBorderColor : props.theme.listDialogBorderColor;
757
736
  }, function (props) {
758
737
  return props.theme.listOptionFontColor;
759
738
  }, function (props) {
@@ -766,27 +745,15 @@ var Suggestions = _styledComponents["default"].ul(_templateObject13 || (_templat
766
745
  return props.theme.listOptionFontWeight;
767
746
  });
768
747
 
769
- 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) {
770
- return props.visualFocused ? props.theme.focusListOptionBorderColor : "transparent";
771
- }, function (props) {
772
- return props.theme.hoverListOptionBackgroundColor;
773
- }, function (props) {
774
- return props.theme.activeListOptionBackgroundColor;
775
- });
776
-
777
- 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) {
778
- return props.last || props.visualFocused ? "border-bottom: 1px solid transparent" : "border-bottom: 1px solid ".concat(props.theme.listOptionDividerColor);
779
- });
780
-
781
- 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) {
748
+ 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) {
782
749
  return props.theme.systemMessageFontColor;
783
750
  });
784
751
 
785
- 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) {
752
+ 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) {
786
753
  return props.backgroundType === "dark" ? props.theme.errorIconColorOnDark : props.theme.errorIconColor;
787
754
  });
788
755
 
789
- 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) {
756
+ 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) {
790
757
  return props.theme.errorListDialogFontColor;
791
758
  });
792
759
 
@@ -1,6 +1,5 @@
1
1
  import React from "react";
2
- import { userEvent, within, waitFor } from "@storybook/testing-library";
3
- import { fireEvent } from "@testing-library/react";
2
+ import { userEvent, within, fireEvent } from "@storybook/testing-library";
4
3
  import { BackgroundColorProvider } from "../BackgroundColorContext";
5
4
  import Title from "../../.storybook/components/Title";
6
5
  import ExampleContainer from "../../.storybook/components/ExampleContainer";
@@ -70,7 +69,7 @@ export const Chromatic = () => (
70
69
  </ExampleContainer>
71
70
  <ExampleContainer pseudoState="pseudo-hover">
72
71
  <Title title="Hovered action" theme="light" level={4} />
73
- <DxcTextInput label="Text input" value="Text" clearable />
72
+ <DxcTextInput label="Text input" defaultValue="Text" clearable />
74
73
  </ExampleContainer>
75
74
  <ExampleContainer>
76
75
  <Title title="Without label" theme="light" level={4} />
@@ -82,13 +81,13 @@ export const Chromatic = () => (
82
81
  </ExampleContainer>
83
82
  <ExampleContainer>
84
83
  <Title title="Helper text, optional, and clearable" theme="light" level={4} />
85
- <DxcTextInput label="Text input" clearable value="Text" helperText="Help message" optional />
84
+ <DxcTextInput label="Text input" clearable defaultValue="Text" helperText="Help message" optional />
86
85
  </ExampleContainer>
87
86
  <ExampleContainer>
88
87
  <Title title="Clearable and large icon action" theme="light" level={4} />
89
88
  <DxcTextInput
90
89
  label="Text input"
91
- value="Text text text text text text text text text text"
90
+ defaultValue="Text text text text text text text text text text"
92
91
  clearable
93
92
  action={actionLargeIcon}
94
93
  />
@@ -107,12 +106,21 @@ export const Chromatic = () => (
107
106
  label="Error text input"
108
107
  helperText="Help message"
109
108
  error="Error message."
110
- value="Text"
109
+ defaultValue="Text"
111
110
  clearable
112
111
  optional
113
112
  action={action}
114
113
  />
115
114
  </ExampleContainer>
115
+ <ExampleContainer pseudoState="pseudo-hover">
116
+ <Title title="Invalid and hovered" theme="light" level={4} />
117
+ <DxcTextInput
118
+ label="Error text input"
119
+ helperText="Help message"
120
+ placeholder="Placeholder"
121
+ error="Error message."
122
+ />
123
+ </ExampleContainer>
116
124
  <ExampleContainer>
117
125
  <Title title="Disabled and placeholder" theme="light" level={4} />
118
126
  <DxcTextInput label="Disabled text input" disabled placeholder="Placeholder" />
@@ -124,7 +132,7 @@ export const Chromatic = () => (
124
132
  helperText="Help message"
125
133
  disabled
126
134
  optional
127
- value="Text"
135
+ defaultValue="Text"
128
136
  action={action}
129
137
  />
130
138
  </ExampleContainer>
@@ -137,7 +145,7 @@ export const Chromatic = () => (
137
145
  optional
138
146
  prefix="+34"
139
147
  suffix="USD"
140
- value="Text"
148
+ defaultValue="Text"
141
149
  action={action}
142
150
  />
143
151
  </ExampleContainer>
@@ -154,7 +162,7 @@ export const Chromatic = () => (
154
162
  </ExampleContainer>
155
163
  <ExampleContainer pseudoState="pseudo-hover">
156
164
  <Title title="Hovered action" theme="dark" level={4} />
157
- <DxcTextInput label="Text input" value="Text" clearable />
165
+ <DxcTextInput label="Text input" defaultValue="Text" clearable />
158
166
  </ExampleContainer>
159
167
  <ExampleContainer>
160
168
  <Title title="Helper text, placeholder, optional and action" theme="dark" level={4} />
@@ -168,16 +176,25 @@ export const Chromatic = () => (
168
176
  />
169
177
  </ExampleContainer>
170
178
  <ExampleContainer>
171
- <Title title="Helper text, clearable value, error and action" theme="dark" level={4} />
179
+ <Title title="Invalid" theme="dark" level={4} />
172
180
  <DxcTextInput
173
- label="Text input"
181
+ label="Error text input"
174
182
  helperText="Help message"
175
183
  error="Error message."
176
- value="Text"
184
+ defaultValue="Text"
177
185
  clearable
178
186
  action={action}
179
187
  />
180
188
  </ExampleContainer>
189
+ <ExampleContainer pseudoState="pseudo-hover">
190
+ <Title title="Invalid and hovered" theme="dark" level={4} />
191
+ <DxcTextInput
192
+ label="Error text input"
193
+ helperText="Help message"
194
+ placeholder="Placeholder"
195
+ error="Error message."
196
+ />
197
+ </ExampleContainer>
181
198
  <ExampleContainer>
182
199
  <Title title="Prefix and suffix" theme="dark" level={4} />
183
200
  <DxcTextInput label="With prefix and suffix" prefix="+34" suffix="USD" />
@@ -193,7 +210,7 @@ export const Chromatic = () => (
193
210
  helperText="Help message"
194
211
  disabled
195
212
  optional
196
- value="Text"
213
+ defaultValue="Text"
197
214
  action={action}
198
215
  />
199
216
  </ExampleContainer>
@@ -206,7 +223,7 @@ export const Chromatic = () => (
206
223
  optional
207
224
  prefix="+34"
208
225
  suffix="USD"
209
- value="Text"
226
+ defaultValue="Text"
210
227
  action={action}
211
228
  />
212
229
  </ExampleContainer>