@dxc-technology/halstack-react 0.0.0-df9dd3c → 0.0.0-dfb16f5

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 (269) 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 +122 -135
  5. package/accordion/Accordion.stories.tsx +20 -14
  6. package/accordion/Accordion.test.js +71 -0
  7. package/accordion/types.d.ts +11 -10
  8. package/accordion-group/AccordionGroup.d.ts +1 -1
  9. package/accordion-group/AccordionGroup.js +15 -36
  10. package/accordion-group/AccordionGroup.stories.tsx +28 -2
  11. package/accordion-group/AccordionGroup.test.js +126 -0
  12. package/accordion-group/types.d.ts +16 -9
  13. package/alert/Alert.js +5 -2
  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/{radio → badge}/types.js +0 -0
  19. package/bleed/Bleed.d.ts +3 -0
  20. package/bleed/Bleed.js +51 -0
  21. package/bleed/Bleed.stories.tsx +341 -0
  22. package/bleed/types.d.ts +37 -0
  23. package/bleed/types.js +5 -0
  24. package/box/Box.js +23 -33
  25. package/box/Box.test.js +18 -0
  26. package/box/types.d.ts +1 -0
  27. package/bulleted-list/BulletedList.d.ts +7 -0
  28. package/bulleted-list/BulletedList.js +123 -0
  29. package/bulleted-list/BulletedList.stories.tsx +200 -0
  30. package/bulleted-list/types.d.ts +11 -0
  31. package/bulleted-list/types.js +5 -0
  32. package/button/Button.d.ts +1 -1
  33. package/button/Button.js +57 -80
  34. package/button/Button.stories.tsx +15 -8
  35. package/button/Button.test.js +35 -0
  36. package/button/types.d.ts +8 -12
  37. package/card/Card.js +24 -27
  38. package/card/Card.stories.tsx +1 -1
  39. package/card/Card.test.js +50 -0
  40. package/card/types.d.ts +1 -0
  41. package/checkbox/Checkbox.d.ts +2 -2
  42. package/checkbox/Checkbox.js +106 -109
  43. package/checkbox/Checkbox.stories.tsx +146 -130
  44. package/checkbox/Checkbox.test.js +155 -0
  45. package/checkbox/types.d.ts +13 -5
  46. package/chip/Chip.d.ts +1 -1
  47. package/chip/Chip.js +14 -52
  48. package/chip/Chip.stories.tsx +6 -8
  49. package/chip/Chip.test.js +56 -0
  50. package/chip/types.d.ts +5 -13
  51. package/common/variables.js +250 -346
  52. package/date-input/DateInput.js +62 -48
  53. package/date-input/DateInput.stories.tsx +7 -7
  54. package/date-input/DateInput.test.js +479 -0
  55. package/date-input/types.d.ts +16 -9
  56. package/dialog/Dialog.js +46 -50
  57. package/dialog/Dialog.stories.tsx +57 -2
  58. package/dialog/Dialog.test.js +70 -0
  59. package/dialog/types.d.ts +3 -2
  60. package/dropdown/Dropdown.d.ts +1 -1
  61. package/dropdown/Dropdown.js +247 -273
  62. package/dropdown/Dropdown.stories.tsx +144 -79
  63. package/dropdown/Dropdown.test.js +585 -0
  64. package/dropdown/DropdownMenu.d.ts +4 -0
  65. package/dropdown/DropdownMenu.js +80 -0
  66. package/dropdown/DropdownMenuItem.d.ts +4 -0
  67. package/dropdown/DropdownMenuItem.js +92 -0
  68. package/dropdown/types.d.ts +29 -18
  69. package/file-input/FileInput.d.ts +2 -2
  70. package/file-input/FileInput.js +179 -220
  71. package/file-input/FileInput.stories.tsx +39 -10
  72. package/file-input/FileInput.test.js +498 -0
  73. package/file-input/FileItem.d.ts +4 -14
  74. package/file-input/FileItem.js +43 -66
  75. package/file-input/types.d.ts +17 -0
  76. package/flex/Flex.d.ts +4 -0
  77. package/flex/Flex.js +69 -0
  78. package/flex/Flex.stories.tsx +103 -0
  79. package/flex/types.d.ts +32 -0
  80. package/flex/types.js +5 -0
  81. package/footer/Footer.js +24 -99
  82. package/footer/Footer.stories.tsx +8 -1
  83. package/footer/Footer.test.js +109 -0
  84. package/footer/Icons.js +1 -1
  85. package/footer/types.d.ts +2 -1
  86. package/header/Header.js +95 -114
  87. package/header/Header.stories.tsx +46 -36
  88. package/header/Header.test.js +79 -0
  89. package/header/Icons.js +2 -2
  90. package/header/types.d.ts +3 -2
  91. package/heading/Heading.stories.tsx +3 -2
  92. package/heading/Heading.test.js +186 -0
  93. package/inset/Inset.d.ts +3 -0
  94. package/inset/Inset.js +51 -0
  95. package/inset/Inset.stories.tsx +229 -0
  96. package/inset/types.d.ts +37 -0
  97. package/inset/types.js +5 -0
  98. package/layout/ApplicationLayout.d.ts +16 -6
  99. package/layout/ApplicationLayout.js +71 -125
  100. package/layout/ApplicationLayout.stories.tsx +84 -93
  101. package/layout/Icons.d.ts +5 -0
  102. package/layout/Icons.js +13 -2
  103. package/layout/SidenavContext.d.ts +5 -0
  104. package/layout/SidenavContext.js +19 -0
  105. package/layout/types.d.ts +18 -33
  106. package/link/Link.d.ts +3 -2
  107. package/link/Link.js +60 -85
  108. package/link/Link.stories.tsx +99 -52
  109. package/link/Link.test.js +83 -0
  110. package/link/types.d.ts +9 -29
  111. package/main.d.ts +11 -15
  112. package/main.js +53 -79
  113. package/number-input/NumberInput.js +11 -18
  114. package/number-input/NumberInput.stories.tsx +5 -5
  115. package/number-input/NumberInput.test.js +543 -0
  116. package/number-input/types.d.ts +17 -10
  117. package/package.json +14 -12
  118. package/paginator/Paginator.js +17 -38
  119. package/paginator/Paginator.test.js +308 -0
  120. package/paragraph/Paragraph.d.ts +6 -0
  121. package/paragraph/Paragraph.js +38 -0
  122. package/paragraph/Paragraph.stories.tsx +44 -0
  123. package/password-input/PasswordInput.js +7 -4
  124. package/password-input/PasswordInput.stories.tsx +3 -3
  125. package/password-input/PasswordInput.test.js +181 -0
  126. package/password-input/types.d.ts +14 -11
  127. package/progress-bar/ProgressBar.d.ts +2 -2
  128. package/progress-bar/ProgressBar.js +57 -51
  129. package/progress-bar/ProgressBar.stories.jsx +13 -11
  130. package/progress-bar/ProgressBar.test.js +110 -0
  131. package/progress-bar/types.d.ts +3 -4
  132. package/quick-nav/QuickNav.d.ts +4 -0
  133. package/quick-nav/QuickNav.js +117 -0
  134. package/quick-nav/QuickNav.stories.tsx +342 -0
  135. package/quick-nav/types.d.ts +21 -0
  136. package/quick-nav/types.js +5 -0
  137. package/radio-group/Radio.d.ts +1 -1
  138. package/radio-group/Radio.js +79 -32
  139. package/radio-group/RadioGroup.js +153 -36
  140. package/radio-group/RadioGroup.stories.tsx +64 -19
  141. package/radio-group/RadioGroup.test.js +722 -0
  142. package/radio-group/types.d.ts +90 -13
  143. package/resultsetTable/ResultsetTable.js +6 -5
  144. package/resultsetTable/ResultsetTable.stories.tsx +7 -8
  145. package/resultsetTable/ResultsetTable.test.js +348 -0
  146. package/select/Icons.d.ts +10 -0
  147. package/select/Icons.js +93 -0
  148. package/select/Listbox.d.ts +4 -0
  149. package/select/Listbox.js +198 -0
  150. package/select/Option.d.ts +4 -0
  151. package/select/Option.js +110 -0
  152. package/select/Select.js +147 -365
  153. package/select/Select.stories.tsx +231 -176
  154. package/select/Select.test.js +2233 -0
  155. package/select/types.d.ts +52 -12
  156. package/sidenav/Sidenav.d.ts +6 -5
  157. package/sidenav/Sidenav.js +184 -52
  158. package/sidenav/Sidenav.stories.tsx +154 -139
  159. package/sidenav/Sidenav.test.js +44 -0
  160. package/sidenav/types.d.ts +50 -27
  161. package/slider/Slider.d.ts +2 -2
  162. package/slider/Slider.js +122 -96
  163. package/slider/Slider.stories.tsx +15 -9
  164. package/slider/Slider.test.js +250 -0
  165. package/slider/types.d.ts +10 -2
  166. package/spinner/Spinner.js +1 -1
  167. package/spinner/Spinner.stories.jsx +1 -0
  168. package/spinner/Spinner.test.js +64 -0
  169. package/switch/Switch.d.ts +2 -2
  170. package/switch/Switch.js +150 -67
  171. package/switch/Switch.stories.tsx +21 -43
  172. package/switch/Switch.test.js +225 -0
  173. package/switch/types.d.ts +12 -4
  174. package/table/Table.js +1 -1
  175. package/table/Table.stories.jsx +2 -1
  176. package/table/Table.test.js +26 -0
  177. package/tabs/Tab.d.ts +4 -0
  178. package/tabs/Tab.js +135 -0
  179. package/tabs/Tabs.d.ts +1 -1
  180. package/tabs/Tabs.js +364 -110
  181. package/tabs/Tabs.stories.tsx +81 -16
  182. package/tabs/Tabs.test.js +351 -0
  183. package/tabs/types.d.ts +39 -17
  184. package/tabs-nav/NavTabs.d.ts +8 -0
  185. package/tabs-nav/NavTabs.js +125 -0
  186. package/tabs-nav/NavTabs.stories.tsx +170 -0
  187. package/tabs-nav/NavTabs.test.js +82 -0
  188. package/tabs-nav/Tab.d.ts +4 -0
  189. package/tabs-nav/Tab.js +130 -0
  190. package/tabs-nav/types.d.ts +53 -0
  191. package/tabs-nav/types.js +5 -0
  192. package/tag/Tag.d.ts +1 -1
  193. package/tag/Tag.js +18 -28
  194. package/tag/Tag.stories.tsx +26 -29
  195. package/tag/Tag.test.js +60 -0
  196. package/tag/types.d.ts +23 -14
  197. package/text-input/Icons.d.ts +8 -0
  198. package/text-input/Icons.js +60 -0
  199. package/text-input/Suggestion.d.ts +4 -0
  200. package/text-input/Suggestion.js +57 -0
  201. package/text-input/Suggestions.d.ts +4 -0
  202. package/text-input/Suggestions.js +134 -0
  203. package/text-input/TextInput.js +213 -322
  204. package/text-input/TextInput.stories.tsx +218 -193
  205. package/text-input/TextInput.test.js +1771 -0
  206. package/text-input/types.d.ts +51 -13
  207. package/textarea/Textarea.js +20 -27
  208. package/textarea/Textarea.stories.jsx +37 -15
  209. package/textarea/Textarea.test.js +437 -0
  210. package/textarea/types.d.ts +18 -11
  211. package/toggle-group/ToggleGroup.d.ts +1 -1
  212. package/toggle-group/ToggleGroup.js +5 -4
  213. package/toggle-group/ToggleGroup.stories.tsx +4 -4
  214. package/toggle-group/ToggleGroup.test.js +156 -0
  215. package/toggle-group/types.d.ts +9 -1
  216. package/typography/Typography.d.ts +4 -0
  217. package/typography/Typography.js +131 -0
  218. package/typography/Typography.stories.tsx +198 -0
  219. package/typography/types.d.ts +18 -0
  220. package/typography/types.js +5 -0
  221. package/useTheme.js +2 -2
  222. package/useTranslatedLabels.d.ts +2 -0
  223. package/useTranslatedLabels.js +20 -0
  224. package/wizard/Wizard.d.ts +1 -1
  225. package/wizard/Wizard.js +58 -54
  226. package/wizard/Wizard.stories.tsx +33 -24
  227. package/wizard/Wizard.test.js +141 -0
  228. package/wizard/types.d.ts +10 -5
  229. package/ThemeContext.d.ts +0 -15
  230. package/ThemeContext.js +0 -243
  231. package/V3Select/V3Select.js +0 -455
  232. package/V3Select/index.d.ts +0 -27
  233. package/V3Textarea/V3Textarea.js +0 -260
  234. package/V3Textarea/index.d.ts +0 -27
  235. package/date/Date.js +0 -373
  236. package/date/index.d.ts +0 -27
  237. package/input-text/Icons.js +0 -22
  238. package/input-text/InputText.js +0 -611
  239. package/input-text/index.d.ts +0 -36
  240. package/list/List.d.ts +0 -8
  241. package/list/List.js +0 -47
  242. package/list/List.stories.tsx +0 -85
  243. package/radio/Radio.d.ts +0 -4
  244. package/radio/Radio.js +0 -174
  245. package/radio/Radio.stories.tsx +0 -192
  246. package/radio/types.d.ts +0 -54
  247. package/row/Row.d.ts +0 -11
  248. package/row/Row.js +0 -124
  249. package/row/Row.stories.tsx +0 -223
  250. package/stack/Stack.d.ts +0 -10
  251. package/stack/Stack.js +0 -94
  252. package/stack/Stack.stories.tsx +0 -150
  253. package/text/Text.d.ts +0 -7
  254. package/text/Text.js +0 -30
  255. package/text/Text.stories.tsx +0 -19
  256. package/toggle/Toggle.js +0 -186
  257. package/toggle/index.d.ts +0 -21
  258. package/upload/Upload.js +0 -201
  259. package/upload/buttons-upload/ButtonsUpload.js +0 -111
  260. package/upload/buttons-upload/Icons.js +0 -40
  261. package/upload/dragAndDropArea/DragAndDropArea.js +0 -225
  262. package/upload/dragAndDropArea/Icons.js +0 -39
  263. package/upload/file-upload/FileToUpload.js +0 -115
  264. package/upload/file-upload/Icons.js +0 -66
  265. package/upload/files-upload/FilesToUpload.js +0 -109
  266. package/upload/index.d.ts +0 -15
  267. package/upload/transaction/Icons.js +0 -160
  268. package/upload/transaction/Transaction.js +0 -104
  269. package/upload/transactions/Transactions.js +0 -94
@@ -21,68 +21,46 @@ 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");
27
29
 
28
- var _uuid = require("uuid");
29
-
30
30
  var _BackgroundColorContext = _interopRequireDefault(require("../BackgroundColorContext"));
31
31
 
32
32
  var _NumberInputContext = _interopRequireDefault(require("../number-input/NumberInputContext"));
33
33
 
34
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17, _templateObject18;
34
+ var _Suggestions = _interopRequireDefault(require("./Suggestions"));
35
+
36
+ var Popover = _interopRequireWildcard(require("@radix-ui/react-popover"));
37
+
38
+ var _Icons = _interopRequireDefault(require("./Icons"));
39
+
40
+ var _uuid = require("uuid");
41
+
42
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12;
35
43
 
36
44
  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
45
 
38
46
  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; }
39
47
 
40
- var textInputIcons = {
41
- error: /*#__PURE__*/_react["default"].createElement("svg", {
42
- xmlns: "http://www.w3.org/2000/svg",
43
- height: "24px",
44
- viewBox: "0 0 24 24",
45
- width: "24px",
46
- fill: "currentColor"
47
- }, /*#__PURE__*/_react["default"].createElement("path", {
48
- d: "M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z"
49
- })),
50
- clear: /*#__PURE__*/_react["default"].createElement("svg", {
51
- xmlns: "http://www.w3.org/2000/svg",
52
- width: "24",
53
- height: "24",
54
- viewBox: "0 0 24 24",
55
- fill: "currentColor"
56
- }, /*#__PURE__*/_react["default"].createElement("path", {
57
- d: "M0 0h24v24H0V0z",
58
- fill: "none"
59
- }), /*#__PURE__*/_react["default"].createElement("path", {
60
- d: "M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z"
61
- })),
62
- increment: /*#__PURE__*/_react["default"].createElement("svg", {
63
- xmlns: "http://www.w3.org/2000/svg",
64
- height: "24px",
65
- viewBox: "0 0 24 24",
66
- width: "24px",
67
- fill: "currentColor"
68
- }, /*#__PURE__*/_react["default"].createElement("path", {
69
- d: "M0 0h24v24H0z",
70
- fill: "none"
71
- }), /*#__PURE__*/_react["default"].createElement("path", {
72
- d: "M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"
73
- })),
74
- decrement: /*#__PURE__*/_react["default"].createElement("svg", {
75
- xmlns: "http://www.w3.org/2000/svg",
76
- height: "24px",
77
- viewBox: "0 0 24 24",
78
- width: "24px",
79
- fill: "currentColor"
80
- }, /*#__PURE__*/_react["default"].createElement("path", {
81
- d: "M0 0h24v24H0z",
82
- fill: "none"
83
- }), /*#__PURE__*/_react["default"].createElement("path", {
84
- d: "M19 13H5v-2h14v2z"
85
- }))
48
+ var sizes = {
49
+ small: "240px",
50
+ medium: "360px",
51
+ large: "480px",
52
+ fillParent: "100%"
53
+ };
54
+
55
+ var AutosuggestWrapper = function AutosuggestWrapper(_ref) {
56
+ var condition = _ref.condition,
57
+ wrapper = _ref.wrapper,
58
+ children = _ref.children;
59
+ return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, condition ? wrapper(children) : children);
60
+ };
61
+
62
+ var calculateWidth = function calculateWidth(margin, size) {
63
+ return size === "fillParent" ? "calc(".concat(sizes[size], " - ").concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")") : sizes[size];
86
64
  };
87
65
 
88
66
  var makeCancelable = function makeCancelable(promise) {
@@ -106,70 +84,70 @@ var makeCancelable = function makeCancelable(promise) {
106
84
  };
107
85
  };
108
86
 
109
- var getNotOptionalErrorMessage = function getNotOptionalErrorMessage() {
110
- return "This field is required. Please, enter a value.";
87
+ var hasSuggestions = function hasSuggestions(suggestions) {
88
+ return typeof suggestions === "function" || (suggestions === null || suggestions === void 0 ? void 0 : suggestions.length) > 0;
111
89
  };
112
90
 
113
- var getPatternErrorMessage = function getPatternErrorMessage() {
114
- return "Please match the format requested.";
91
+ var isNotOptional = function isNotOptional(value, optional) {
92
+ return value === "" && !optional;
115
93
  };
116
94
 
117
- var patternMatch = function patternMatch(pattern, value) {
118
- return new RegExp(pattern).test(value);
95
+ var isLengthIncorrect = function isLengthIncorrect(value, minLength, maxLength) {
96
+ return value && minLength && maxLength && (value.length < minLength || value.length > maxLength);
119
97
  };
120
98
 
121
- var getLastOptionIndex = function getLastOptionIndex(filteredSuggestions) {
122
- var last = 0;
123
-
124
- var reducer = function reducer(acc, current) {
125
- var _current$options;
126
-
127
- return acc + ((_current$options = current.options) === null || _current$options === void 0 ? void 0 : _current$options.length);
128
- };
99
+ var isNumberIncorrect = function isNumberIncorrect(value, minNumber, maxNumber) {
100
+ return minNumber && parseInt(value) < minNumber || maxNumber && parseInt(value) > maxNumber;
101
+ };
129
102
 
130
- if (filteredSuggestions.length > 0) filteredSuggestions[0].options ? last = filteredSuggestions.reduce(reducer, 0) - 1 : last = filteredSuggestions.length - 1;
131
- return last;
103
+ var patternMissmatch = function patternMissmatch(pattern, value) {
104
+ return pattern && !new RegExp(pattern).test(value);
132
105
  };
133
106
 
134
- var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
135
- var label = _ref.label,
136
- _ref$name = _ref.name,
137
- name = _ref$name === void 0 ? "" : _ref$name,
138
- value = _ref.value,
139
- helperText = _ref.helperText,
140
- _ref$placeholder = _ref.placeholder,
141
- placeholder = _ref$placeholder === void 0 ? "" : _ref$placeholder,
142
- action = _ref.action,
143
- _ref$clearable = _ref.clearable,
144
- clearable = _ref$clearable === void 0 ? false : _ref$clearable,
145
- _ref$disabled = _ref.disabled,
146
- disabled = _ref$disabled === void 0 ? false : _ref$disabled,
147
- _ref$optional = _ref.optional,
148
- optional = _ref$optional === void 0 ? false : _ref$optional,
149
- _ref$prefix = _ref.prefix,
150
- prefix = _ref$prefix === void 0 ? "" : _ref$prefix,
151
- _ref$suffix = _ref.suffix,
152
- suffix = _ref$suffix === void 0 ? "" : _ref$suffix,
153
- onChange = _ref.onChange,
154
- onBlur = _ref.onBlur,
155
- error = _ref.error,
156
- suggestions = _ref.suggestions,
157
- pattern = _ref.pattern,
158
- minLength = _ref.minLength,
159
- maxLength = _ref.maxLength,
160
- _ref$autocomplete = _ref.autocomplete,
161
- autocomplete = _ref$autocomplete === void 0 ? "off" : _ref$autocomplete,
162
- margin = _ref.margin,
163
- _ref$size = _ref.size,
164
- size = _ref$size === void 0 ? "medium" : _ref$size,
165
- _ref$tabIndex = _ref.tabIndex,
166
- tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
107
+ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref2, ref) {
108
+ var label = _ref2.label,
109
+ _ref2$name = _ref2.name,
110
+ name = _ref2$name === void 0 ? "" : _ref2$name,
111
+ _ref2$defaultValue = _ref2.defaultValue,
112
+ defaultValue = _ref2$defaultValue === void 0 ? "" : _ref2$defaultValue,
113
+ value = _ref2.value,
114
+ helperText = _ref2.helperText,
115
+ _ref2$placeholder = _ref2.placeholder,
116
+ placeholder = _ref2$placeholder === void 0 ? "" : _ref2$placeholder,
117
+ action = _ref2.action,
118
+ _ref2$clearable = _ref2.clearable,
119
+ clearable = _ref2$clearable === void 0 ? false : _ref2$clearable,
120
+ _ref2$disabled = _ref2.disabled,
121
+ disabled = _ref2$disabled === void 0 ? false : _ref2$disabled,
122
+ _ref2$optional = _ref2.optional,
123
+ optional = _ref2$optional === void 0 ? false : _ref2$optional,
124
+ _ref2$prefix = _ref2.prefix,
125
+ prefix = _ref2$prefix === void 0 ? "" : _ref2$prefix,
126
+ _ref2$suffix = _ref2.suffix,
127
+ suffix = _ref2$suffix === void 0 ? "" : _ref2$suffix,
128
+ onChange = _ref2.onChange,
129
+ onBlur = _ref2.onBlur,
130
+ error = _ref2.error,
131
+ suggestions = _ref2.suggestions,
132
+ pattern = _ref2.pattern,
133
+ minLength = _ref2.minLength,
134
+ maxLength = _ref2.maxLength,
135
+ _ref2$autocomplete = _ref2.autocomplete,
136
+ autocomplete = _ref2$autocomplete === void 0 ? "off" : _ref2$autocomplete,
137
+ margin = _ref2.margin,
138
+ _ref2$size = _ref2.size,
139
+ size = _ref2$size === void 0 ? "medium" : _ref2$size,
140
+ _ref2$tabIndex = _ref2.tabIndex,
141
+ tabIndex = _ref2$tabIndex === void 0 ? 0 : _ref2$tabIndex;
167
142
 
168
143
  var _useState = (0, _react.useState)("input-".concat((0, _uuid.v4)())),
169
144
  _useState2 = (0, _slicedToArray2["default"])(_useState, 1),
170
145
  inputId = _useState2[0];
171
146
 
172
- var _useState3 = (0, _react.useState)(""),
147
+ var autosuggestId = "suggestions-".concat(inputId);
148
+ var errorId = "error-".concat(inputId);
149
+
150
+ var _useState3 = (0, _react.useState)(defaultValue),
173
151
  _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
174
152
  innerValue = _useState4[0],
175
153
  setInnerValue = _useState4[1];
@@ -196,78 +174,55 @@ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
196
174
 
197
175
  var _useState13 = (0, _react.useState)(-1),
198
176
  _useState14 = (0, _slicedToArray2["default"])(_useState13, 2),
199
- visualFocusedSuggIndex = _useState14[0],
200
- changeVisualFocusedSuggIndex = _useState14[1];
177
+ visualFocusIndex = _useState14[0],
178
+ changeVisualFocusIndex = _useState14[1];
201
179
 
202
- var suggestionsRef = (0, _react.useRef)(null);
203
180
  var inputRef = (0, _react.useRef)(null);
204
181
  var actionRef = (0, _react.useRef)(null);
205
182
  var colorsTheme = (0, _useTheme["default"])();
183
+ var translatedLabels = (0, _useTranslatedLabels["default"])();
206
184
  var backgroundType = (0, _react.useContext)(_BackgroundColorContext["default"]);
207
- var autosuggestId = "".concat(inputId, "-listBox");
208
- var errorId = "error-message-".concat(inputId);
209
185
  var numberInputContext = (0, _react.useContext)(_NumberInputContext["default"]);
210
- var lastOptionIndex = (0, _react.useMemo)(function () {
211
- return getLastOptionIndex(filteredSuggestions);
212
- }, [filteredSuggestions]);
213
-
214
- var isNotOptional = function isNotOptional(value) {
215
- return value === "" && !optional;
216
- };
217
-
218
- var isLengthIncorrect = function isLengthIncorrect(value) {
219
- return value && minLength && maxLength && (value.length < minLength || value.length > maxLength);
220
- };
221
-
222
- var getLengthErrorMessage = function getLengthErrorMessage() {
223
- return "Min length ".concat(minLength, ", max length ").concat(maxLength, ".");
224
- };
225
-
226
- var isNumberIncorrect = function isNumberIncorrect(value) {
227
- 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
- };
229
-
230
- var isTextInputType = function isTextInputType() {
231
- var _inputRef$current, _inputRef$current2;
232
-
233
- return !(inputRef !== null && inputRef !== void 0 && (_inputRef$current = inputRef.current) !== null && _inputRef$current !== void 0 && _inputRef$current.getAttribute("type")) || (inputRef === null || inputRef === void 0 ? void 0 : (_inputRef$current2 = inputRef.current) === null || _inputRef$current2 === void 0 ? void 0 : _inputRef$current2.getAttribute("type")) === "text";
234
- };
235
186
 
236
187
  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, ".");
188
+ 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
189
  };
239
190
 
240
- var hasSuggestions = function hasSuggestions() {
241
- return typeof suggestions === "function" || (suggestions === null || suggestions === void 0 ? void 0 : suggestions.length) > 0;
242
- };
191
+ var getTextInputWidth = (0, _react.useCallback)(function () {
192
+ var _inputRef$current, _inputRef$current$par;
193
+
194
+ var rect = inputRef === null || inputRef === void 0 ? void 0 : (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : (_inputRef$current$par = _inputRef$current.parentElement) === null || _inputRef$current$par === void 0 ? void 0 : _inputRef$current$par.getBoundingClientRect();
195
+ return rect === null || rect === void 0 ? void 0 : rect.width;
196
+ }, []);
243
197
 
244
198
  var openSuggestions = function openSuggestions() {
245
- hasSuggestions() && changeIsOpen(true);
199
+ hasSuggestions(suggestions) && changeIsOpen(true);
246
200
  };
247
201
 
248
202
  var closeSuggestions = function closeSuggestions() {
249
- changeIsOpen(false);
250
- changeVisualFocusedSuggIndex(-1);
203
+ if (hasSuggestions(suggestions)) {
204
+ changeIsOpen(false);
205
+ changeVisualFocusIndex(-1);
206
+ }
251
207
  };
252
208
 
253
209
  var changeValue = function changeValue(newValue) {
254
210
  value !== null && value !== void 0 ? value : setInnerValue(newValue);
255
211
  var changedValue = typeof newValue === "number" ? newValue.toString() : newValue;
256
- if (isNotOptional(newValue)) onChange === null || onChange === void 0 ? void 0 : onChange({
212
+ if (isNotOptional(newValue, optional)) onChange === null || onChange === void 0 ? void 0 : onChange({
257
213
  value: changedValue,
258
- error: getNotOptionalErrorMessage()
259
- });else if (isLengthIncorrect(newValue)) onChange === null || onChange === void 0 ? void 0 : onChange({
214
+ error: translatedLabels.formFields.requiredValueErrorMessage
215
+ });else if (isLengthIncorrect(newValue, minLength, maxLength)) onChange === null || onChange === void 0 ? void 0 : onChange({
260
216
  value: changedValue,
261
- error: getLengthErrorMessage()
262
- });else if (newValue && pattern && !patternMatch(pattern, newValue)) onChange === null || onChange === void 0 ? void 0 : onChange({
217
+ error: translatedLabels.formFields.lengthErrorMessage(minLength, maxLength)
218
+ });else if (patternMissmatch(pattern, newValue)) onChange === null || onChange === void 0 ? void 0 : onChange({
263
219
  value: changedValue,
264
- error: getPatternErrorMessage()
265
- });else if (newValue && isNumberIncorrect(newValue)) onChange === null || onChange === void 0 ? void 0 : onChange({
220
+ error: translatedLabels.formFields.formatRequestedErrorMessage
221
+ });else if (isNumberIncorrect(newValue, numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.minNumber, numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.maxNumber)) onChange === null || onChange === void 0 ? void 0 : onChange({
266
222
  value: changedValue,
267
223
  error: getNumberErrorMessage(newValue)
268
224
  });else onChange === null || onChange === void 0 ? void 0 : onChange({
269
- value: changedValue,
270
- error: null
225
+ value: changedValue
271
226
  });
272
227
  };
273
228
 
@@ -280,44 +235,43 @@ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
280
235
  document.activeElement === inputRef.current && event.preventDefault();
281
236
  };
282
237
 
283
- var handleIOnChange = function handleIOnChange(event) {
238
+ var handleInputOnChange = function handleInputOnChange(event) {
284
239
  openSuggestions();
285
240
  changeValue(event.target.value);
286
241
  };
287
242
 
288
- var handleIOnBlur = function handleIOnBlur(event) {
289
- suggestions && closeSuggestions();
290
- if (isNotOptional(event.target.value)) onBlur === null || onBlur === void 0 ? void 0 : onBlur({
243
+ var handleInputOnBlur = function handleInputOnBlur(event) {
244
+ closeSuggestions();
245
+ if (isNotOptional(event.target.value, optional)) onBlur === null || onBlur === void 0 ? void 0 : onBlur({
291
246
  value: event.target.value,
292
- error: getNotOptionalErrorMessage()
293
- });else if (isLengthIncorrect(event.target.value)) onBlur === null || onBlur === void 0 ? void 0 : onBlur({
247
+ error: translatedLabels.formFields.requiredValueErrorMessage
248
+ });else if (isLengthIncorrect(event.target.value, minLength, maxLength)) onBlur === null || onBlur === void 0 ? void 0 : onBlur({
294
249
  value: event.target.value,
295
- error: getLengthErrorMessage()
296
- });else if (event.target.value && pattern && !patternMatch(pattern, event.target.value)) onBlur === null || onBlur === void 0 ? void 0 : onBlur({
250
+ error: translatedLabels.formFields.lengthErrorMessage(minLength, maxLength)
251
+ });else if (patternMissmatch(pattern, event.target.value)) onBlur === null || onBlur === void 0 ? void 0 : onBlur({
297
252
  value: event.target.value,
298
- error: getPatternErrorMessage()
299
- });else if (event.target.value && isNumberIncorrect(event.target.value)) onBlur === null || onBlur === void 0 ? void 0 : onBlur({
253
+ error: translatedLabels.formFields.formatRequestedErrorMessage
254
+ });else if (isNumberIncorrect(event.target.value, numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.minNumber, numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.maxNumber)) onBlur === null || onBlur === void 0 ? void 0 : onBlur({
300
255
  value: event.target.value,
301
256
  error: getNumberErrorMessage(event.target.value)
302
257
  });else onBlur === null || onBlur === void 0 ? void 0 : onBlur({
303
- value: event.target.value,
304
- error: null
258
+ value: event.target.value
305
259
  });
306
260
  };
307
261
 
308
- var handleIOnKeyDown = function handleIOnKeyDown(event) {
309
- switch (event.keyCode) {
310
- case 40:
311
- // Arrow Down
262
+ var handleInputOnKeyDown = function handleInputOnKeyDown(event) {
263
+ switch (event.key) {
264
+ case "Down":
265
+ case "ArrowDown":
266
+ event.preventDefault();
267
+
312
268
  if ((numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.typeNumber) === "number") {
313
269
  decrementNumber();
314
- event.preventDefault();
315
270
  } else {
316
- event.preventDefault();
317
271
  openSuggestions();
318
272
 
319
273
  if (!isAutosuggestError && !isSearching && filteredSuggestions.length > 0) {
320
- changeVisualFocusedSuggIndex(function (visualFocusedSuggIndex) {
274
+ changeVisualFocusIndex(function (visualFocusedSuggIndex) {
321
275
  if (visualFocusedSuggIndex < filteredSuggestions.length - 1) return visualFocusedSuggIndex + 1;else if (visualFocusedSuggIndex === filteredSuggestions.length - 1) return 0;
322
276
  });
323
277
  }
@@ -325,17 +279,17 @@ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
325
279
 
326
280
  break;
327
281
 
328
- case 38:
329
- // Arrow Up
282
+ case "Up":
283
+ case "ArrowUp":
284
+ event.preventDefault();
285
+
330
286
  if ((numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.typeNumber) === "number") {
331
287
  incrementNumber();
332
- event.preventDefault();
333
288
  } else {
334
- event.preventDefault();
335
289
  openSuggestions();
336
290
 
337
291
  if (!isAutosuggestError && !isSearching && filteredSuggestions.length > 0) {
338
- changeVisualFocusedSuggIndex(function (visualFocusedSuggIndex) {
292
+ changeVisualFocusIndex(function (visualFocusedSuggIndex) {
339
293
  if (visualFocusedSuggIndex === 0 || visualFocusedSuggIndex === -1) return filteredSuggestions.length > 0 ? filteredSuggestions.length - 1 : suggestions.length - 1;else return visualFocusedSuggIndex - 1;
340
294
  });
341
295
  }
@@ -343,22 +297,21 @@ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
343
297
 
344
298
  break;
345
299
 
346
- case 27:
347
- // Esc
300
+ case "Esc":
301
+ case "Escape":
348
302
  event.preventDefault();
349
303
 
350
- if (hasSuggestions()) {
304
+ if (hasSuggestions(suggestions)) {
351
305
  changeValue("");
352
306
  isOpen && closeSuggestions();
353
307
  }
354
308
 
355
309
  break;
356
310
 
357
- case 13:
358
- // Enter
359
- if (hasSuggestions() && !isSearching) {
360
- var validFocusedSuggestion = filteredSuggestions.length > 0 && visualFocusedSuggIndex >= 0 && visualFocusedSuggIndex < filteredSuggestions.length;
361
- validFocusedSuggestion && changeValue(filteredSuggestions[visualFocusedSuggIndex]);
311
+ case "Enter":
312
+ if (hasSuggestions(suggestions) && !isSearching) {
313
+ var validFocusedSuggestion = filteredSuggestions.length > 0 && visualFocusIndex >= 0 && visualFocusIndex < filteredSuggestions.length;
314
+ validFocusedSuggestion && changeValue(filteredSuggestions[visualFocusIndex]);
362
315
  isOpen && closeSuggestions();
363
316
  }
364
317
 
@@ -383,12 +336,12 @@ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
383
336
  };
384
337
 
385
338
  var setNumberProps = function setNumberProps(type, min, max, step) {
386
- var _inputRef$current3, _inputRef$current4, _inputRef$current5, _inputRef$current6;
339
+ var _inputRef$current2, _inputRef$current3, _inputRef$current4, _inputRef$current5;
387
340
 
388
- type && (inputRef === null || inputRef === void 0 ? void 0 : (_inputRef$current3 = inputRef.current) === null || _inputRef$current3 === void 0 ? void 0 : _inputRef$current3.setAttribute("type", type));
389
- min && (inputRef === null || inputRef === void 0 ? void 0 : (_inputRef$current4 = inputRef.current) === null || _inputRef$current4 === void 0 ? void 0 : _inputRef$current4.setAttribute("min", min));
390
- max && (inputRef === null || inputRef === void 0 ? void 0 : (_inputRef$current5 = inputRef.current) === null || _inputRef$current5 === void 0 ? void 0 : _inputRef$current5.setAttribute("max", max));
391
- step && (inputRef === null || inputRef === void 0 ? void 0 : (_inputRef$current6 = inputRef.current) === null || _inputRef$current6 === void 0 ? void 0 : _inputRef$current6.setAttribute("step", step));
341
+ type && (inputRef === null || inputRef === void 0 ? void 0 : (_inputRef$current2 = inputRef.current) === null || _inputRef$current2 === void 0 ? void 0 : _inputRef$current2.setAttribute("type", type));
342
+ min && (inputRef === null || inputRef === void 0 ? void 0 : (_inputRef$current3 = inputRef.current) === null || _inputRef$current3 === void 0 ? void 0 : _inputRef$current3.setAttribute("min", min));
343
+ max && (inputRef === null || inputRef === void 0 ? void 0 : (_inputRef$current4 = inputRef.current) === null || _inputRef$current4 === void 0 ? void 0 : _inputRef$current4.setAttribute("max", max));
344
+ step && (inputRef === null || inputRef === void 0 ? void 0 : (_inputRef$current5 = inputRef.current) === null || _inputRef$current5 === void 0 ? void 0 : _inputRef$current5.setAttribute("step", step));
392
345
  };
393
346
 
394
347
  var decrementNumber = function decrementNumber() {
@@ -431,15 +384,6 @@ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
431
384
  }
432
385
  };
433
386
 
434
- (0, _react.useLayoutEffect)(function () {
435
- var _suggestionsRef$curre, _visualFocusedOptionE;
436
-
437
- var visualFocusedOptionEl = suggestionsRef === null || suggestionsRef === void 0 ? void 0 : (_suggestionsRef$curre = suggestionsRef.current) === null || _suggestionsRef$curre === void 0 ? void 0 : _suggestionsRef$curre.querySelectorAll("[role='option']")[visualFocusedSuggIndex];
438
- visualFocusedOptionEl === null || visualFocusedOptionEl === void 0 ? void 0 : (_visualFocusedOptionE = visualFocusedOptionEl.scrollIntoView) === null || _visualFocusedOptionE === void 0 ? void 0 : _visualFocusedOptionE.call(visualFocusedOptionEl, {
439
- block: "nearest",
440
- inline: "start"
441
- });
442
- }, [visualFocusedSuggIndex]);
443
387
  (0, _react.useEffect)(function () {
444
388
  if (typeof suggestions === "function") {
445
389
  changeIsSearching(true);
@@ -463,50 +407,27 @@ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
463
407
  changeFilteredSuggestions(suggestions.filter(function (suggestion) {
464
408
  return suggestion.toUpperCase().startsWith((value !== null && value !== void 0 ? value : innerValue).toUpperCase());
465
409
  }));
466
- changeVisualFocusedSuggIndex(-1);
410
+ changeVisualFocusIndex(-1);
467
411
  }
468
412
 
469
413
  (numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.typeNumber) === "number" && setNumberProps(numberInputContext.typeNumber, numberInputContext.minNumber, numberInputContext.maxNumber, numberInputContext.stepNumber);
470
414
  }, [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
415
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
495
416
  theme: colorsTheme.textInput
496
- }, /*#__PURE__*/_react["default"].createElement(DxcInput, {
417
+ }, /*#__PURE__*/_react["default"].createElement(TextInputContainer, {
497
418
  margin: margin,
498
- ref: ref,
499
- size: size
419
+ size: size,
420
+ ref: ref
500
421
  }, label && /*#__PURE__*/_react["default"].createElement(Label, {
501
422
  htmlFor: inputId,
502
423
  disabled: disabled,
503
424
  backgroundType: backgroundType,
504
- helperText: helperText
505
- }, label, " ", optional && /*#__PURE__*/_react["default"].createElement(OptionalLabel, null, "(Optional)")), helperText && /*#__PURE__*/_react["default"].createElement(HelperText, {
425
+ hasHelperText: helperText ? true : false
426
+ }, label, " ", optional && /*#__PURE__*/_react["default"].createElement(OptionalLabel, null, translatedLabels.formFields.optionalLabel)), helperText && /*#__PURE__*/_react["default"].createElement(HelperText, {
506
427
  disabled: disabled,
507
428
  backgroundType: backgroundType
508
429
  }, helperText), /*#__PURE__*/_react["default"].createElement(InputContainer, {
509
- error: error,
430
+ error: error ? true : false,
510
431
  disabled: disabled,
511
432
  backgroundType: backgroundType,
512
433
  onClick: handleInputContainerOnClick,
@@ -514,17 +435,48 @@ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
514
435
  }, prefix && /*#__PURE__*/_react["default"].createElement(Prefix, {
515
436
  disabled: disabled,
516
437
  backgroundType: backgroundType
517
- }, prefix), /*#__PURE__*/_react["default"].createElement(Input, {
438
+ }, prefix), /*#__PURE__*/_react["default"].createElement(AutosuggestWrapper, {
439
+ condition: hasSuggestions(suggestions),
440
+ wrapper: function wrapper(children) {
441
+ return /*#__PURE__*/_react["default"].createElement(Popover.Root, {
442
+ open: isOpen && (filteredSuggestions.length > 0 || isSearching || isAutosuggestError)
443
+ }, /*#__PURE__*/_react["default"].createElement(Popover.Trigger, {
444
+ asChild: true,
445
+ "aria-controls": undefined
446
+ }, children), /*#__PURE__*/_react["default"].createElement(Popover.Content, {
447
+ sideOffset: 5,
448
+ onOpenAutoFocus: function onOpenAutoFocus(event) {
449
+ // Avoid select to lose focus when the list is opened
450
+ event.preventDefault();
451
+ },
452
+ onCloseAutoFocus: function onCloseAutoFocus(event) {
453
+ // Avoid select to lose focus when the list is closed
454
+ event.preventDefault();
455
+ }
456
+ }, /*#__PURE__*/_react["default"].createElement(_Suggestions["default"], {
457
+ id: autosuggestId,
458
+ value: value !== null && value !== void 0 ? value : innerValue,
459
+ suggestions: filteredSuggestions,
460
+ visualFocusIndex: visualFocusIndex,
461
+ highlightedSuggestions: typeof suggestions !== "function",
462
+ searchHasErrors: isAutosuggestError,
463
+ isSearching: isSearching,
464
+ suggestionOnClick: function suggestionOnClick(suggestion) {
465
+ changeValue(suggestion);
466
+ closeSuggestions();
467
+ },
468
+ getTextInputWidth: getTextInputWidth
469
+ })));
470
+ }
471
+ }, /*#__PURE__*/_react["default"].createElement(Input, {
518
472
  id: inputId,
519
473
  name: name,
520
474
  value: value !== null && value !== void 0 ? value : innerValue,
521
475
  placeholder: placeholder,
522
- onBlur: handleIOnBlur,
523
- onChange: handleIOnChange,
524
- onFocus: function onFocus() {
525
- openSuggestions();
526
- },
527
- onKeyDown: handleIOnKeyDown,
476
+ onBlur: handleInputOnBlur,
477
+ onChange: handleInputOnChange,
478
+ onFocus: openSuggestions,
479
+ onKeyDown: handleInputOnKeyDown,
528
480
  onMouseDown: function onMouseDown(event) {
529
481
  event.stopPropagation();
530
482
  },
@@ -534,29 +486,32 @@ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
534
486
  pattern: pattern,
535
487
  minLength: minLength,
536
488
  maxLength: maxLength,
537
- autoComplete: autocomplete,
489
+ autoComplete: autocomplete === "off" ? "nope" : autocomplete,
538
490
  tabIndex: tabIndex,
539
- role: isTextInputType() && hasSuggestions() ? "combobox" : "textbox",
540
- "aria-autocomplete": isTextInputType() && hasSuggestions() ? "list" : undefined,
541
- "aria-controls": isTextInputType() && hasSuggestions() ? autosuggestId : undefined,
542
- "aria-expanded": isTextInputType() && hasSuggestions() ? isOpen ? "true" : "false" : undefined,
543
- "aria-activedescendant": isTextInputType() && hasSuggestions() && isOpen && visualFocusedSuggIndex !== -1 ? "suggestion-".concat(visualFocusedSuggIndex) : undefined,
544
- "aria-invalid": error ? "true" : "false",
545
- "aria-describedby": error ? errorId : undefined,
546
- "aria-required": optional ? "false" : "true"
547
- }), !disabled && error && /*#__PURE__*/_react["default"].createElement(ErrorIcon, {
491
+ type: "text",
492
+ role: hasSuggestions(suggestions) ? "combobox" : undefined,
493
+ "aria-autocomplete": hasSuggestions(suggestions) ? "list" : undefined,
494
+ "aria-controls": hasSuggestions(suggestions) ? autosuggestId : undefined,
495
+ "aria-expanded": hasSuggestions(suggestions) ? isOpen : undefined,
496
+ "aria-haspopup": hasSuggestions(suggestions) ? "listbox" : undefined,
497
+ "aria-activedescendant": hasSuggestions(suggestions) && isOpen && visualFocusIndex !== -1 ? "suggestion-".concat(visualFocusIndex) : undefined,
498
+ "aria-invalid": error ? true : false,
499
+ "aria-errormessage": error ? errorId : undefined,
500
+ "aria-required": optional ? false : true
501
+ })), !disabled && error && /*#__PURE__*/_react["default"].createElement(ErrorIcon, {
548
502
  backgroundType: backgroundType,
549
503
  "aria-label": "Error"
550
- }, textInputIcons.error), !disabled && clearable && (value !== null && value !== void 0 ? value : innerValue).length > 0 && /*#__PURE__*/_react["default"].createElement(Action, {
504
+ }, _Icons["default"].error), !disabled && clearable && (value !== null && value !== void 0 ? value : innerValue).length > 0 && /*#__PURE__*/_react["default"].createElement(Action, {
551
505
  onClick: handleClearActionOnClick,
552
506
  onMouseDown: function onMouseDown(event) {
553
507
  event.stopPropagation();
554
508
  },
555
509
  backgroundType: backgroundType,
556
510
  tabIndex: tabIndex,
557
- title: "Clear field",
558
- "aria-label": "Clear field"
559
- }, 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, {
511
+ title: translatedLabels.textInput.clearFieldActionTitle,
512
+ "aria-label": translatedLabels.textInput.clearFieldActionTitle,
513
+ type: "button"
514
+ }, _Icons["default"].clear), (numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.typeNumber) === "number" && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(Action, {
560
515
  ref: actionRef,
561
516
  disabled: disabled,
562
517
  onClick: handleDecrementActionOnClick,
@@ -565,9 +520,10 @@ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
565
520
  },
566
521
  backgroundType: backgroundType,
567
522
  tabIndex: tabIndex,
568
- title: "Decrement value",
569
- "aria-label": "Decrement value"
570
- }, textInputIcons.decrement), /*#__PURE__*/_react["default"].createElement(Action, {
523
+ title: translatedLabels.numberInput.decrementValueTitle,
524
+ "aria-label": translatedLabels.numberInput.decrementValueTitle,
525
+ type: "button"
526
+ }, _Icons["default"].decrement), /*#__PURE__*/_react["default"].createElement(Action, {
571
527
  ref: actionRef,
572
528
  disabled: disabled,
573
529
  onClick: handleIncrementActionOnClick,
@@ -576,9 +532,10 @@ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
576
532
  },
577
533
  backgroundType: backgroundType,
578
534
  tabIndex: tabIndex,
579
- title: "Increment value",
580
- "aria-label": "Increment value"
581
- }, textInputIcons.increment)) : action && /*#__PURE__*/_react["default"].createElement(Action, {
535
+ title: translatedLabels.numberInput.incrementValueTitle,
536
+ "aria-label": translatedLabels.numberInput.incrementValueTitle,
537
+ type: "button"
538
+ }, _Icons["default"].increment)), action && /*#__PURE__*/_react["default"].createElement(Action, {
582
539
  ref: actionRef,
583
540
  disabled: disabled,
584
541
  onClick: action.onClick,
@@ -588,47 +545,21 @@ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
588
545
  title: action.title,
589
546
  "aria-label": action.title,
590
547
  backgroundType: backgroundType,
591
- tabIndex: tabIndex
548
+ tabIndex: tabIndex,
549
+ type: "button"
592
550
  }, typeof action.icon === "string" ? /*#__PURE__*/_react["default"].createElement(ActionIcon, {
593
551
  src: action.icon
594
552
  }) : action.icon), suffix && /*#__PURE__*/_react["default"].createElement(Suffix, {
595
553
  disabled: disabled,
596
554
  backgroundType: backgroundType
597
- }, suffix), isOpen && (filteredSuggestions.length > 0 || isSearching || isAutosuggestError) && /*#__PURE__*/_react["default"].createElement(Suggestions, {
598
- id: autosuggestId,
599
- isError: isAutosuggestError,
600
- onMouseDown: function onMouseDown(event) {
601
- event.preventDefault();
602
- },
603
- ref: suggestionsRef,
604
- role: "listbox",
605
- "aria-label": label
606
- }, !isSearching && !isAutosuggestError && filteredSuggestions.length > 0 && filteredSuggestions.map(function (suggestion, index) {
607
- return /*#__PURE__*/_react["default"].createElement(HighlightedSuggestion, {
608
- key: "suggestion-".concat((0, _uuid.v4)()),
609
- suggestion: suggestion,
610
- index: index
611
- });
612
- }), isSearching && /*#__PURE__*/_react["default"].createElement(SuggestionsSystemMessage, null, "Searching..."), isAutosuggestError && /*#__PURE__*/_react["default"].createElement(SuggestionsError, null, /*#__PURE__*/_react["default"].createElement(SuggestionsErrorIcon, {
613
- backgroundType: backgroundType
614
- }, textInputIcons.error), "Error fetching data"))), !disabled && typeof error === "string" && /*#__PURE__*/_react["default"].createElement(Error, {
555
+ }, suffix)), !disabled && typeof error === "string" && /*#__PURE__*/_react["default"].createElement(Error, {
615
556
  id: errorId,
616
- backgroundType: backgroundType
557
+ backgroundType: backgroundType,
558
+ "aria-live": error ? "assertive" : "off"
617
559
  }, error)));
618
560
  });
619
561
 
620
- var sizes = {
621
- small: "240px",
622
- medium: "360px",
623
- large: "480px",
624
- fillParent: "100%"
625
- };
626
-
627
- var calculateWidth = function calculateWidth(margin, size) {
628
- return size === "fillParent" ? "calc(".concat(sizes[size], " - ").concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")") : sizes[size];
629
- };
630
-
631
- 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) {
562
+ 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) {
632
563
  return calculateWidth(props.margin, props.size);
633
564
  }, function (props) {
634
565
  return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
@@ -655,7 +586,7 @@ var Label = _styledComponents["default"].label(_templateObject2 || (_templateObj
655
586
  }, function (props) {
656
587
  return props.theme.labelLineHeight;
657
588
  }, function (props) {
658
- return !props.helperText && "margin-bottom: 0.25rem";
589
+ return !props.hasHelperText && "margin-bottom: 0.25rem";
659
590
  });
660
591
 
661
592
  var OptionalLabel = _styledComponents["default"].span(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n font-weight: ", ";\n"])), function (props) {
@@ -685,7 +616,7 @@ var InputContainer = _styledComponents["default"].div(_templateObject5 || (_temp
685
616
  }, function (props) {
686
617
  return props.disabled && "cursor: not-allowed;";
687
618
  }, function (props) {
688
- return !props.disabled && "\n &:hover {\n border-color: ".concat(props.error ? "transparent" : props.backgroundType === "dark" ? props.theme.hoverBorderColorOnDark : props.theme.hoverBorderColor, ";\n ").concat(props.error && "box-shadow: 0 0 0 2px ".concat(props.backgroundType === "dark" ? props.theme.hoverErrorBorderColorOnDark : props.theme.hoverErrorBorderColor, ";"), "\n }\n &:focus-within {\n border-color: transparent;\n box-shadow: 0 0 0 2px ").concat(props.backgroundType === "dark" ? props.theme.focusBorderColorOnDark : props.theme.focusBorderColor, ";\n }\n ");
619
+ return !props.disabled && "\n &:hover {\n border-color: ".concat(props.error ? "transparent" : props.backgroundType === "dark" ? props.theme.hoverBorderColorOnDark : props.theme.hoverBorderColor, ";\n ").concat(props.error ? "box-shadow: 0 0 0 2px ".concat(props.backgroundType === "dark" ? props.theme.hoverErrorBorderColorOnDark : props.theme.hoverErrorBorderColor, ";") : "", "\n }\n &:focus-within {\n border-color: transparent;\n box-shadow: 0 0 0 2px ").concat(props.backgroundType === "dark" ? props.theme.focusBorderColorOnDark : props.theme.focusBorderColor, ";\n }\n ");
689
620
  });
690
621
 
691
622
  var Input = _styledComponents["default"].input(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n height: calc(2.5rem - 2px);\n width: 100%;\n background: none;\n border: none;\n outline: none;\n padding: 0 0.5rem;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n color: ", ";\n\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n line-height: 1.5em;\n ", "\n\n ::placeholder {\n color: ", ";\n }\n"])), function (props) {
@@ -742,45 +673,5 @@ var Error = _styledComponents["default"].span(_templateObject12 || (_templateObj
742
673
  return props.theme.fontFamily;
743
674
  });
744
675
 
745
- 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) {
746
- return props.isError ? props.theme.errorListDialogBackgroundColor : props.theme.listDialogBackgroundColor;
747
- }, function (props) {
748
- return props.isError ? props.theme.errorListDialogBorderColor : props.theme.listDialogBorderColor;
749
- }, function (props) {
750
- return props.theme.listOptionFontColor;
751
- }, function (props) {
752
- return props.theme.fontFamily;
753
- }, function (props) {
754
- return props.theme.listOptionFontSize;
755
- }, function (props) {
756
- return props.theme.listOptionFontStyle;
757
- }, function (props) {
758
- return props.theme.listOptionFontWeight;
759
- });
760
-
761
- 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) {
762
- return props.visualFocused ? props.theme.focusListOptionBorderColor : "transparent";
763
- }, function (props) {
764
- return props.theme.hoverListOptionBackgroundColor;
765
- }, function (props) {
766
- return props.theme.activeListOptionBackgroundColor;
767
- });
768
-
769
- 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) {
770
- return props.last || props.visualFocused ? "border-bottom: 1px solid transparent" : "border-bottom: 1px solid ".concat(props.theme.listOptionDividerColor);
771
- });
772
-
773
- 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) {
774
- return props.theme.systemMessageFontColor;
775
- });
776
-
777
- 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) {
778
- return props.backgroundType === "dark" ? props.theme.errorIconColorOnDark : props.theme.errorIconColor;
779
- });
780
-
781
- 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) {
782
- return props.theme.errorListDialogFontColor;
783
- });
784
-
785
676
  var _default = DxcTextInput;
786
677
  exports["default"] = _default;