@dxc-technology/halstack-react 0.0.0-7303985 → 0.0.0-74ba970

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/BackgroundColorContext.js +0 -1
  2. package/HalstackContext.d.ts +12 -0
  3. package/HalstackContext.js +295 -0
  4. package/accordion/Accordion.d.ts +1 -1
  5. package/accordion/Accordion.js +122 -135
  6. package/accordion/Accordion.stories.tsx +20 -14
  7. package/accordion/Accordion.test.js +71 -0
  8. package/accordion/types.d.ts +10 -10
  9. package/accordion-group/AccordionGroup.d.ts +1 -1
  10. package/accordion-group/AccordionGroup.js +15 -36
  11. package/accordion-group/AccordionGroup.stories.tsx +28 -2
  12. package/accordion-group/AccordionGroup.test.js +126 -0
  13. package/accordion-group/types.d.ts +15 -9
  14. package/alert/Alert.js +5 -2
  15. package/alert/Alert.test.js +92 -0
  16. package/badge/Badge.d.ts +4 -0
  17. package/badge/Badge.js +5 -3
  18. package/badge/types.d.ts +5 -0
  19. package/{radio → badge}/types.js +0 -0
  20. package/bleed/Bleed.d.ts +3 -0
  21. package/bleed/Bleed.js +51 -0
  22. package/bleed/Bleed.stories.tsx +341 -0
  23. package/bleed/types.d.ts +37 -0
  24. package/bleed/types.js +5 -0
  25. package/box/Box.js +23 -33
  26. package/box/Box.test.js +18 -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/checkbox/Checkbox.d.ts +1 -1
  41. package/checkbox/Checkbox.js +102 -106
  42. package/checkbox/Checkbox.stories.tsx +124 -128
  43. package/checkbox/Checkbox.test.js +155 -0
  44. package/checkbox/types.d.ts +10 -6
  45. package/chip/Chip.d.ts +1 -1
  46. package/chip/Chip.js +14 -52
  47. package/chip/Chip.stories.tsx +6 -8
  48. package/chip/Chip.test.js +56 -0
  49. package/chip/types.d.ts +5 -13
  50. package/common/variables.js +275 -341
  51. package/date-input/DateInput.js +62 -48
  52. package/date-input/DateInput.stories.tsx +7 -7
  53. package/date-input/DateInput.test.js +479 -0
  54. package/date-input/types.d.ts +16 -9
  55. package/dialog/Dialog.js +48 -51
  56. package/dialog/Dialog.stories.tsx +1 -2
  57. package/dialog/Dialog.test.js +70 -0
  58. package/dialog/types.d.ts +2 -2
  59. package/dropdown/Dropdown.d.ts +1 -1
  60. package/dropdown/Dropdown.js +243 -273
  61. package/dropdown/Dropdown.stories.tsx +144 -79
  62. package/dropdown/Dropdown.test.js +591 -0
  63. package/dropdown/DropdownMenu.d.ts +4 -0
  64. package/dropdown/DropdownMenu.js +80 -0
  65. package/dropdown/DropdownMenuItem.d.ts +4 -0
  66. package/dropdown/DropdownMenuItem.js +92 -0
  67. package/dropdown/types.d.ts +29 -18
  68. package/file-input/FileInput.js +111 -39
  69. package/file-input/FileInput.stories.tsx +507 -0
  70. package/file-input/FileInput.test.js +457 -0
  71. package/file-input/FileItem.js +7 -5
  72. package/flex/Flex.d.ts +4 -0
  73. package/flex/Flex.js +57 -0
  74. package/flex/Flex.stories.tsx +103 -0
  75. package/flex/types.d.ts +21 -0
  76. package/flex/types.js +5 -0
  77. package/footer/Footer.js +24 -99
  78. package/footer/Footer.stories.tsx +8 -1
  79. package/footer/Footer.test.js +109 -0
  80. package/footer/Icons.js +1 -1
  81. package/footer/types.d.ts +1 -1
  82. package/header/Header.js +95 -114
  83. package/header/Header.stories.tsx +46 -36
  84. package/header/Header.test.js +79 -0
  85. package/header/Icons.js +2 -2
  86. package/header/types.d.ts +2 -2
  87. package/heading/Heading.stories.tsx +3 -2
  88. package/heading/Heading.test.js +186 -0
  89. package/inset/Inset.d.ts +3 -0
  90. package/inset/Inset.js +51 -0
  91. package/inset/Inset.stories.tsx +229 -0
  92. package/inset/types.d.ts +37 -0
  93. package/inset/types.js +5 -0
  94. package/layout/ApplicationLayout.d.ts +16 -6
  95. package/layout/ApplicationLayout.js +71 -125
  96. package/layout/ApplicationLayout.stories.tsx +84 -93
  97. package/layout/Icons.d.ts +5 -0
  98. package/layout/Icons.js +13 -2
  99. package/layout/SidenavContext.d.ts +5 -0
  100. package/layout/SidenavContext.js +19 -0
  101. package/layout/types.d.ts +18 -33
  102. package/link/Link.d.ts +3 -2
  103. package/link/Link.js +60 -85
  104. package/link/Link.stories.tsx +99 -52
  105. package/link/Link.test.js +83 -0
  106. package/link/types.d.ts +9 -29
  107. package/main.d.ts +11 -15
  108. package/main.js +53 -79
  109. package/number-input/NumberInput.js +11 -18
  110. package/number-input/NumberInput.stories.tsx +5 -5
  111. package/number-input/NumberInput.test.js +506 -0
  112. package/number-input/types.d.ts +17 -10
  113. package/package.json +16 -12
  114. package/paginator/Paginator.js +17 -38
  115. package/paginator/Paginator.test.js +308 -0
  116. package/paragraph/Paragraph.d.ts +6 -0
  117. package/paragraph/Paragraph.js +38 -0
  118. package/paragraph/Paragraph.stories.tsx +44 -0
  119. package/password-input/PasswordInput.js +7 -4
  120. package/password-input/PasswordInput.stories.tsx +3 -3
  121. package/password-input/PasswordInput.test.js +180 -0
  122. package/password-input/types.d.ts +14 -11
  123. package/progress-bar/ProgressBar.d.ts +2 -2
  124. package/progress-bar/ProgressBar.js +57 -51
  125. package/progress-bar/ProgressBar.stories.jsx +13 -11
  126. package/progress-bar/ProgressBar.test.js +110 -0
  127. package/progress-bar/types.d.ts +3 -4
  128. package/quick-nav/QuickNav.d.ts +4 -0
  129. package/quick-nav/QuickNav.js +118 -0
  130. package/quick-nav/QuickNav.stories.tsx +264 -0
  131. package/quick-nav/types.d.ts +21 -0
  132. package/quick-nav/types.js +5 -0
  133. package/radio-group/Radio.d.ts +4 -0
  134. package/radio-group/Radio.js +156 -0
  135. package/radio-group/RadioGroup.d.ts +4 -0
  136. package/radio-group/RadioGroup.js +279 -0
  137. package/radio-group/RadioGroup.stories.tsx +101 -0
  138. package/radio-group/RadioGroup.test.js +665 -0
  139. package/radio-group/types.d.ts +114 -0
  140. package/radio-group/types.js +5 -0
  141. package/resultsetTable/ResultsetTable.js +5 -2
  142. package/resultsetTable/ResultsetTable.stories.tsx +7 -8
  143. package/resultsetTable/ResultsetTable.test.js +348 -0
  144. package/select/Icons.d.ts +10 -0
  145. package/select/Icons.js +93 -0
  146. package/select/Listbox.d.ts +4 -0
  147. package/select/Listbox.js +198 -0
  148. package/select/Option.d.ts +4 -0
  149. package/select/Option.js +110 -0
  150. package/select/Select.d.ts +4 -0
  151. package/select/Select.js +146 -366
  152. package/select/Select.stories.tsx +231 -176
  153. package/select/Select.test.js +2175 -0
  154. package/select/types.d.ts +210 -0
  155. package/select/types.js +5 -0
  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 +1 -1
  162. package/slider/Slider.js +116 -94
  163. package/slider/Slider.stories.tsx +15 -9
  164. package/slider/Slider.test.js +250 -0
  165. package/slider/types.d.ts +6 -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 +147 -65
  171. package/switch/Switch.stories.tsx +21 -43
  172. package/switch/Switch.test.js +225 -0
  173. package/switch/types.d.ts +9 -6
  174. package/table/Table.stories.jsx +2 -1
  175. package/table/Table.test.js +26 -0
  176. package/tabs/Tab.d.ts +4 -0
  177. package/tabs/Tab.js +135 -0
  178. package/tabs/Tabs.d.ts +1 -1
  179. package/tabs/Tabs.js +364 -110
  180. package/tabs/Tabs.stories.tsx +81 -16
  181. package/tabs/Tabs.test.js +351 -0
  182. package/tabs/types.d.ts +39 -17
  183. package/tabs-nav/NavTabs.d.ts +8 -0
  184. package/tabs-nav/NavTabs.js +125 -0
  185. package/tabs-nav/NavTabs.stories.tsx +170 -0
  186. package/tabs-nav/NavTabs.test.js +82 -0
  187. package/tabs-nav/Tab.d.ts +4 -0
  188. package/tabs-nav/Tab.js +130 -0
  189. package/tabs-nav/types.d.ts +53 -0
  190. package/tabs-nav/types.js +5 -0
  191. package/tag/Tag.d.ts +1 -1
  192. package/tag/Tag.js +18 -28
  193. package/tag/Tag.stories.tsx +26 -29
  194. package/tag/Tag.test.js +60 -0
  195. package/tag/types.d.ts +23 -14
  196. package/text-input/Icons.d.ts +8 -0
  197. package/text-input/Icons.js +60 -0
  198. package/text-input/Suggestion.d.ts +4 -0
  199. package/text-input/Suggestion.js +57 -0
  200. package/text-input/Suggestions.d.ts +4 -0
  201. package/text-input/Suggestions.js +134 -0
  202. package/text-input/TextInput.js +144 -267
  203. package/text-input/TextInput.stories.tsx +218 -193
  204. package/text-input/TextInput.test.js +1713 -0
  205. package/text-input/types.d.ts +46 -13
  206. package/textarea/Textarea.js +20 -27
  207. package/textarea/Textarea.stories.jsx +37 -15
  208. package/textarea/Textarea.test.js +437 -0
  209. package/textarea/types.d.ts +18 -11
  210. package/toggle-group/ToggleGroup.d.ts +1 -1
  211. package/toggle-group/ToggleGroup.js +5 -4
  212. package/toggle-group/ToggleGroup.stories.tsx +4 -4
  213. package/toggle-group/ToggleGroup.test.js +156 -0
  214. package/toggle-group/types.d.ts +9 -1
  215. package/typography/Typography.d.ts +4 -0
  216. package/typography/Typography.js +131 -0
  217. package/typography/Typography.stories.tsx +198 -0
  218. package/typography/types.d.ts +18 -0
  219. package/typography/types.js +5 -0
  220. package/useTheme.js +2 -2
  221. package/useTranslatedLabels.d.ts +2 -0
  222. package/useTranslatedLabels.js +20 -0
  223. package/wizard/Wizard.d.ts +1 -1
  224. package/wizard/Wizard.js +58 -54
  225. package/wizard/Wizard.stories.tsx +33 -24
  226. package/wizard/Wizard.test.js +141 -0
  227. package/wizard/types.d.ts +10 -5
  228. package/ThemeContext.d.ts +0 -15
  229. package/ThemeContext.js +0 -243
  230. package/V3Select/V3Select.js +0 -455
  231. package/V3Select/index.d.ts +0 -27
  232. package/V3Textarea/V3Textarea.js +0 -260
  233. package/V3Textarea/index.d.ts +0 -27
  234. package/date/Date.js +0 -373
  235. package/date/index.d.ts +0 -27
  236. package/input-text/Icons.js +0 -22
  237. package/input-text/InputText.js +0 -611
  238. package/input-text/index.d.ts +0 -36
  239. package/list/List.d.ts +0 -8
  240. package/list/List.js +0 -47
  241. package/list/List.stories.tsx +0 -85
  242. package/radio/Radio.d.ts +0 -4
  243. package/radio/Radio.js +0 -174
  244. package/radio/Radio.stories.tsx +0 -192
  245. package/radio/types.d.ts +0 -54
  246. package/row/Row.d.ts +0 -11
  247. package/row/Row.js +0 -124
  248. package/row/Row.stories.tsx +0 -223
  249. package/select/index.d.ts +0 -131
  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,39 @@ 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 calculateWidth = function calculateWidth(margin, size) {
56
+ return size === "fillParent" ? "calc(".concat(sizes[size], " - ").concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")") : sizes[size];
86
57
  };
87
58
 
88
59
  var makeCancelable = function makeCancelable(promise) {
@@ -106,35 +77,16 @@ var makeCancelable = function makeCancelable(promise) {
106
77
  };
107
78
  };
108
79
 
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
- var patternMatch = function patternMatch(pattern, value) {
118
- return new RegExp(pattern).test(value);
119
- };
120
-
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
- };
129
-
130
- if (filteredSuggestions.length > 0) filteredSuggestions[0].options ? last = filteredSuggestions.reduce(reducer, 0) - 1 : last = filteredSuggestions.length - 1;
131
- return last;
80
+ var patternMissmatch = function patternMissmatch(pattern, value) {
81
+ return pattern && !new RegExp(pattern).test(value);
132
82
  };
133
83
 
134
84
  var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
135
85
  var label = _ref.label,
136
86
  _ref$name = _ref.name,
137
87
  name = _ref$name === void 0 ? "" : _ref$name,
88
+ _ref$defaultValue = _ref.defaultValue,
89
+ defaultValue = _ref$defaultValue === void 0 ? "" : _ref$defaultValue,
138
90
  value = _ref.value,
139
91
  helperText = _ref.helperText,
140
92
  _ref$placeholder = _ref.placeholder,
@@ -164,52 +116,48 @@ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
164
116
  size = _ref$size === void 0 ? "medium" : _ref$size,
165
117
  _ref$tabIndex = _ref.tabIndex,
166
118
  tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
119
+ var id = (0, _react.useState)((0, _uuid.v4)());
120
+ var inputId = "input-".concat(id);
121
+ var autosuggestId = "suggestions-".concat(id);
122
+ var errorId = "error-".concat(id);
167
123
 
168
- var _useState = (0, _react.useState)("input-".concat((0, _uuid.v4)())),
169
- _useState2 = (0, _slicedToArray2["default"])(_useState, 1),
170
- inputId = _useState2[0];
124
+ var _useState = (0, _react.useState)(defaultValue),
125
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
126
+ innerValue = _useState2[0],
127
+ setInnerValue = _useState2[1];
171
128
 
172
- var _useState3 = (0, _react.useState)(""),
129
+ var _useState3 = (0, _react.useState)(false),
173
130
  _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
174
- innerValue = _useState4[0],
175
- setInnerValue = _useState4[1];
131
+ isOpen = _useState4[0],
132
+ changeIsOpen = _useState4[1];
176
133
 
177
134
  var _useState5 = (0, _react.useState)(false),
178
135
  _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
179
- isOpen = _useState6[0],
180
- changeIsOpen = _useState6[1];
136
+ isSearching = _useState6[0],
137
+ changeIsSearching = _useState6[1];
181
138
 
182
139
  var _useState7 = (0, _react.useState)(false),
183
140
  _useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
184
- isSearching = _useState8[0],
185
- changeIsSearching = _useState8[1];
141
+ isAutosuggestError = _useState8[0],
142
+ changeIsAutosuggestError = _useState8[1];
186
143
 
187
- var _useState9 = (0, _react.useState)(false),
144
+ var _useState9 = (0, _react.useState)([]),
188
145
  _useState10 = (0, _slicedToArray2["default"])(_useState9, 2),
189
- isAutosuggestError = _useState10[0],
190
- changeIsAutosuggestError = _useState10[1];
146
+ filteredSuggestions = _useState10[0],
147
+ changeFilteredSuggestions = _useState10[1];
191
148
 
192
- var _useState11 = (0, _react.useState)([]),
149
+ var _useState11 = (0, _react.useState)(-1),
193
150
  _useState12 = (0, _slicedToArray2["default"])(_useState11, 2),
194
- filteredSuggestions = _useState12[0],
195
- changeFilteredSuggestions = _useState12[1];
196
-
197
- var _useState13 = (0, _react.useState)(-1),
198
- _useState14 = (0, _slicedToArray2["default"])(_useState13, 2),
199
- visualFocusedSuggIndex = _useState14[0],
200
- changeVisualFocusedSuggIndex = _useState14[1];
151
+ visualFocusIndex = _useState12[0],
152
+ changeVisualFocusIndex = _useState12[1];
201
153
 
202
- var suggestionsRef = (0, _react.useRef)(null);
154
+ var inputContainerRef = (0, _react.useRef)(null);
203
155
  var inputRef = (0, _react.useRef)(null);
204
156
  var actionRef = (0, _react.useRef)(null);
205
157
  var colorsTheme = (0, _useTheme["default"])();
158
+ var translatedLabels = (0, _useTranslatedLabels["default"])();
206
159
  var backgroundType = (0, _react.useContext)(_BackgroundColorContext["default"]);
207
- var autosuggestId = "".concat(inputId, "-listBox");
208
- var errorId = "error-message-".concat(inputId);
209
160
  var numberInputContext = (0, _react.useContext)(_NumberInputContext["default"]);
210
- var lastOptionIndex = (0, _react.useMemo)(function () {
211
- return getLastOptionIndex(filteredSuggestions);
212
- }, [filteredSuggestions]);
213
161
 
214
162
  var isNotOptional = function isNotOptional(value) {
215
163
  return value === "" && !optional;
@@ -219,10 +167,6 @@ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
219
167
  return value && minLength && maxLength && (value.length < minLength || value.length > maxLength);
220
168
  };
221
169
 
222
- var getLengthErrorMessage = function getLengthErrorMessage() {
223
- return "Min length ".concat(minLength, ", max length ").concat(maxLength, ".");
224
- };
225
-
226
170
  var isNumberIncorrect = function isNumberIncorrect(value) {
227
171
  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
172
  };
@@ -234,7 +178,7 @@ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
234
178
  };
235
179
 
236
180
  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, ".");
181
+ 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
182
  };
239
183
 
240
184
  var hasSuggestions = function hasSuggestions() {
@@ -246,8 +190,10 @@ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
246
190
  };
247
191
 
248
192
  var closeSuggestions = function closeSuggestions() {
249
- changeIsOpen(false);
250
- changeVisualFocusedSuggIndex(-1);
193
+ if (hasSuggestions()) {
194
+ changeIsOpen(false);
195
+ changeVisualFocusIndex(-1);
196
+ }
251
197
  };
252
198
 
253
199
  var changeValue = function changeValue(newValue) {
@@ -255,19 +201,18 @@ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
255
201
  var changedValue = typeof newValue === "number" ? newValue.toString() : newValue;
256
202
  if (isNotOptional(newValue)) onChange === null || onChange === void 0 ? void 0 : onChange({
257
203
  value: changedValue,
258
- error: getNotOptionalErrorMessage()
204
+ error: translatedLabels.formFields.requiredValueErrorMessage
259
205
  });else if (isLengthIncorrect(newValue)) onChange === null || onChange === void 0 ? void 0 : onChange({
260
206
  value: changedValue,
261
- error: getLengthErrorMessage()
262
- });else if (newValue && pattern && !patternMatch(pattern, newValue)) onChange === null || onChange === void 0 ? void 0 : onChange({
207
+ error: translatedLabels.formFields.lengthErrorMessage(minLength, maxLength)
208
+ });else if (patternMissmatch(pattern, newValue)) onChange === null || onChange === void 0 ? void 0 : onChange({
263
209
  value: changedValue,
264
- error: getPatternErrorMessage()
265
- });else if (newValue && isNumberIncorrect(newValue)) onChange === null || onChange === void 0 ? void 0 : onChange({
210
+ error: translatedLabels.formFields.formatRequestedErrorMessage
211
+ });else if (isNumberIncorrect(newValue)) onChange === null || onChange === void 0 ? void 0 : onChange({
266
212
  value: changedValue,
267
213
  error: getNumberErrorMessage(newValue)
268
214
  });else onChange === null || onChange === void 0 ? void 0 : onChange({
269
- value: changedValue,
270
- error: null
215
+ value: changedValue
271
216
  });
272
217
  };
273
218
 
@@ -286,38 +231,37 @@ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
286
231
  };
287
232
 
288
233
  var handleIOnBlur = function handleIOnBlur(event) {
289
- suggestions && closeSuggestions();
234
+ closeSuggestions();
290
235
  if (isNotOptional(event.target.value)) onBlur === null || onBlur === void 0 ? void 0 : onBlur({
291
236
  value: event.target.value,
292
- error: getNotOptionalErrorMessage()
237
+ error: translatedLabels.formFields.requiredValueErrorMessage
293
238
  });else if (isLengthIncorrect(event.target.value)) onBlur === null || onBlur === void 0 ? void 0 : onBlur({
294
239
  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({
240
+ error: translatedLabels.formFields.lengthErrorMessage(minLength, maxLength)
241
+ });else if (patternMissmatch(pattern, event.target.value)) onBlur === null || onBlur === void 0 ? void 0 : onBlur({
297
242
  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({
243
+ error: translatedLabels.formFields.formatRequestedErrorMessage
244
+ });else if (isNumberIncorrect(event.target.value)) onBlur === null || onBlur === void 0 ? void 0 : onBlur({
300
245
  value: event.target.value,
301
246
  error: getNumberErrorMessage(event.target.value)
302
247
  });else onBlur === null || onBlur === void 0 ? void 0 : onBlur({
303
- value: event.target.value,
304
- error: null
248
+ value: event.target.value
305
249
  });
306
250
  };
307
251
 
308
252
  var handleIOnKeyDown = function handleIOnKeyDown(event) {
309
- switch (event.keyCode) {
310
- case 40:
311
- // Arrow Down
253
+ switch (event.key) {
254
+ case "Down":
255
+ case "ArrowDown":
256
+ event.preventDefault();
257
+
312
258
  if ((numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.typeNumber) === "number") {
313
259
  decrementNumber();
314
- event.preventDefault();
315
260
  } else {
316
- event.preventDefault();
317
261
  openSuggestions();
318
262
 
319
263
  if (!isAutosuggestError && !isSearching && filteredSuggestions.length > 0) {
320
- changeVisualFocusedSuggIndex(function (visualFocusedSuggIndex) {
264
+ changeVisualFocusIndex(function (visualFocusedSuggIndex) {
321
265
  if (visualFocusedSuggIndex < filteredSuggestions.length - 1) return visualFocusedSuggIndex + 1;else if (visualFocusedSuggIndex === filteredSuggestions.length - 1) return 0;
322
266
  });
323
267
  }
@@ -325,17 +269,17 @@ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
325
269
 
326
270
  break;
327
271
 
328
- case 38:
329
- // Arrow Up
272
+ case "Up":
273
+ case "ArrowUp":
274
+ event.preventDefault();
275
+
330
276
  if ((numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.typeNumber) === "number") {
331
277
  incrementNumber();
332
- event.preventDefault();
333
278
  } else {
334
- event.preventDefault();
335
279
  openSuggestions();
336
280
 
337
281
  if (!isAutosuggestError && !isSearching && filteredSuggestions.length > 0) {
338
- changeVisualFocusedSuggIndex(function (visualFocusedSuggIndex) {
282
+ changeVisualFocusIndex(function (visualFocusedSuggIndex) {
339
283
  if (visualFocusedSuggIndex === 0 || visualFocusedSuggIndex === -1) return filteredSuggestions.length > 0 ? filteredSuggestions.length - 1 : suggestions.length - 1;else return visualFocusedSuggIndex - 1;
340
284
  });
341
285
  }
@@ -343,8 +287,8 @@ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
343
287
 
344
288
  break;
345
289
 
346
- case 27:
347
- // Esc
290
+ case "Esc":
291
+ case "Escape":
348
292
  event.preventDefault();
349
293
 
350
294
  if (hasSuggestions()) {
@@ -354,11 +298,10 @@ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
354
298
 
355
299
  break;
356
300
 
357
- case 13:
358
- // Enter
301
+ case "Enter":
359
302
  if (hasSuggestions() && !isSearching) {
360
- var validFocusedSuggestion = filteredSuggestions.length > 0 && visualFocusedSuggIndex >= 0 && visualFocusedSuggIndex < filteredSuggestions.length;
361
- validFocusedSuggestion && changeValue(filteredSuggestions[visualFocusedSuggIndex]);
303
+ var validFocusedSuggestion = filteredSuggestions.length > 0 && visualFocusIndex >= 0 && visualFocusIndex < filteredSuggestions.length;
304
+ validFocusedSuggestion && changeValue(filteredSuggestions[visualFocusIndex]);
362
305
  isOpen && closeSuggestions();
363
306
  }
364
307
 
@@ -431,15 +374,12 @@ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
431
374
  }
432
375
  };
433
376
 
434
- (0, _react.useLayoutEffect)(function () {
435
- var _suggestionsRef$curre, _visualFocusedOptionE;
377
+ var getTextInputWidth = (0, _react.useCallback)(function () {
378
+ var _inputContainerRef$cu;
436
379
 
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]);
380
+ var rect = inputContainerRef === null || inputContainerRef === void 0 ? void 0 : (_inputContainerRef$cu = inputContainerRef.current) === null || _inputContainerRef$cu === void 0 ? void 0 : _inputContainerRef$cu.getBoundingClientRect();
381
+ return rect === null || rect === void 0 ? void 0 : rect.width;
382
+ }, []);
443
383
  (0, _react.useEffect)(function () {
444
384
  if (typeof suggestions === "function") {
445
385
  changeIsSearching(true);
@@ -463,54 +403,36 @@ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
463
403
  changeFilteredSuggestions(suggestions.filter(function (suggestion) {
464
404
  return suggestion.toUpperCase().startsWith((value !== null && value !== void 0 ? value : innerValue).toUpperCase());
465
405
  }));
466
- changeVisualFocusedSuggIndex(-1);
406
+ changeVisualFocusIndex(-1);
467
407
  }
468
408
 
469
409
  (numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.typeNumber) === "number" && setNumberProps(numberInputContext.typeNumber, numberInputContext.minNumber, numberInputContext.maxNumber, numberInputContext.stepNumber);
470
410
  }, [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
411
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
495
412
  theme: colorsTheme.textInput
496
- }, /*#__PURE__*/_react["default"].createElement(DxcInput, {
413
+ }, /*#__PURE__*/_react["default"].createElement(TextInputContainer, {
497
414
  margin: margin,
498
- ref: ref,
499
- size: size
415
+ size: size,
416
+ ref: ref
500
417
  }, label && /*#__PURE__*/_react["default"].createElement(Label, {
501
418
  htmlFor: inputId,
502
419
  disabled: disabled,
503
420
  backgroundType: backgroundType,
504
- helperText: helperText
505
- }, label, " ", optional && /*#__PURE__*/_react["default"].createElement(OptionalLabel, null, "(Optional)")), helperText && /*#__PURE__*/_react["default"].createElement(HelperText, {
421
+ hasHelperText: helperText ? true : false
422
+ }, label, " ", optional && /*#__PURE__*/_react["default"].createElement(OptionalLabel, null, translatedLabels.formFields.optionalLabel)), helperText && /*#__PURE__*/_react["default"].createElement(HelperText, {
506
423
  disabled: disabled,
507
424
  backgroundType: backgroundType
508
- }, helperText), /*#__PURE__*/_react["default"].createElement(InputContainer, {
509
- error: error,
425
+ }, helperText), /*#__PURE__*/_react["default"].createElement(Popover.Root, {
426
+ open: isOpen && (filteredSuggestions.length > 0 || isSearching || isAutosuggestError)
427
+ }, /*#__PURE__*/_react["default"].createElement(Popover.Trigger, {
428
+ asChild: true
429
+ }, /*#__PURE__*/_react["default"].createElement(InputContainer, {
430
+ error: error ? true : false,
510
431
  disabled: disabled,
511
432
  backgroundType: backgroundType,
512
433
  onClick: handleInputContainerOnClick,
513
- onMouseDown: handleInputContainerOnMouseDown
434
+ onMouseDown: handleInputContainerOnMouseDown,
435
+ ref: inputContainerRef
514
436
  }, prefix && /*#__PURE__*/_react["default"].createElement(Prefix, {
515
437
  disabled: disabled,
516
438
  backgroundType: backgroundType
@@ -521,9 +443,7 @@ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
521
443
  placeholder: placeholder,
522
444
  onBlur: handleIOnBlur,
523
445
  onChange: handleIOnChange,
524
- onFocus: function onFocus() {
525
- openSuggestions();
526
- },
446
+ onFocus: openSuggestions,
527
447
  onKeyDown: handleIOnKeyDown,
528
448
  onMouseDown: function onMouseDown(event) {
529
449
  event.stopPropagation();
@@ -534,29 +454,30 @@ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
534
454
  pattern: pattern,
535
455
  minLength: minLength,
536
456
  maxLength: maxLength,
537
- autoComplete: autocomplete,
457
+ autoComplete: autocomplete === "off" ? "nope" : autocomplete,
538
458
  tabIndex: tabIndex,
539
459
  role: isTextInputType() && hasSuggestions() ? "combobox" : "textbox",
540
460
  "aria-autocomplete": isTextInputType() && hasSuggestions() ? "list" : undefined,
541
461
  "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"
462
+ "aria-disabled": disabled,
463
+ "aria-expanded": isTextInputType() && hasSuggestions() ? isOpen : undefined,
464
+ "aria-activedescendant": isTextInputType() && hasSuggestions() && isOpen && visualFocusIndex !== -1 ? "suggestion-".concat(visualFocusIndex) : undefined,
465
+ "aria-invalid": error ? true : false,
466
+ "aria-errormessage": error ? errorId : undefined,
467
+ "aria-required": optional ? false : true
547
468
  }), !disabled && error && /*#__PURE__*/_react["default"].createElement(ErrorIcon, {
548
469
  backgroundType: backgroundType,
549
470
  "aria-label": "Error"
550
- }, textInputIcons.error), !disabled && clearable && (value !== null && value !== void 0 ? value : innerValue).length > 0 && /*#__PURE__*/_react["default"].createElement(Action, {
471
+ }, _Icons["default"].error), !disabled && clearable && (value !== null && value !== void 0 ? value : innerValue).length > 0 && /*#__PURE__*/_react["default"].createElement(Action, {
551
472
  onClick: handleClearActionOnClick,
552
473
  onMouseDown: function onMouseDown(event) {
553
474
  event.stopPropagation();
554
475
  },
555
476
  backgroundType: backgroundType,
556
477
  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, {
478
+ title: translatedLabels.textInput.clearFieldActionTitle,
479
+ "aria-label": translatedLabels.textInput.clearFieldActionTitle
480
+ }, _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
481
  ref: actionRef,
561
482
  disabled: disabled,
562
483
  onClick: handleDecrementActionOnClick,
@@ -565,9 +486,9 @@ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
565
486
  },
566
487
  backgroundType: backgroundType,
567
488
  tabIndex: tabIndex,
568
- title: "Decrement value",
569
- "aria-label": "Decrement value"
570
- }, textInputIcons.decrement), /*#__PURE__*/_react["default"].createElement(Action, {
489
+ title: translatedLabels.numberInput.decrementValueTitle,
490
+ "aria-label": translatedLabels.numberInput.decrementValueTitle
491
+ }, _Icons["default"].decrement), /*#__PURE__*/_react["default"].createElement(Action, {
571
492
  ref: actionRef,
572
493
  disabled: disabled,
573
494
  onClick: handleIncrementActionOnClick,
@@ -576,9 +497,9 @@ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
576
497
  },
577
498
  backgroundType: backgroundType,
578
499
  tabIndex: tabIndex,
579
- title: "Increment value",
580
- "aria-label": "Increment value"
581
- }, textInputIcons.increment)) : action && /*#__PURE__*/_react["default"].createElement(Action, {
500
+ title: translatedLabels.numberInput.incrementValueTitle,
501
+ "aria-label": translatedLabels.numberInput.incrementValueTitle
502
+ }, _Icons["default"].increment)), action && /*#__PURE__*/_react["default"].createElement(Action, {
582
503
  ref: actionRef,
583
504
  disabled: disabled,
584
505
  onClick: action.onClick,
@@ -594,41 +515,37 @@ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
594
515
  }) : action.icon), suffix && /*#__PURE__*/_react["default"].createElement(Suffix, {
595
516
  disabled: disabled,
596
517
  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) {
518
+ }, suffix))), /*#__PURE__*/_react["default"].createElement(Popover.Content, {
519
+ sideOffset: 4,
520
+ onOpenAutoFocus: function onOpenAutoFocus(event) {
521
+ // Avoid select to lose focus when the list is opened
601
522
  event.preventDefault();
602
523
  },
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, {
524
+ onCloseAutoFocus: function onCloseAutoFocus(event) {
525
+ // Avoid select to lose focus when the list is closed
526
+ event.preventDefault();
527
+ }
528
+ }, /*#__PURE__*/_react["default"].createElement(_Suggestions["default"], {
529
+ id: autosuggestId,
530
+ value: value !== null && value !== void 0 ? value : innerValue,
531
+ suggestions: filteredSuggestions,
532
+ visualFocusIndex: visualFocusIndex,
533
+ highlightedSuggestions: typeof suggestions !== "function",
534
+ searchHasErrors: isAutosuggestError,
535
+ isSearching: isSearching,
536
+ suggestionOnClick: function suggestionOnClick(suggestion) {
537
+ changeValue(suggestion);
538
+ closeSuggestions();
539
+ },
540
+ getTextInputWidth: getTextInputWidth
541
+ }))), !disabled && typeof error === "string" && /*#__PURE__*/_react["default"].createElement(Error, {
615
542
  id: errorId,
616
- backgroundType: backgroundType
543
+ backgroundType: backgroundType,
544
+ "aria-live": error ? "assertive" : "off"
617
545
  }, error)));
618
546
  });
619
547
 
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) {
548
+ 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
549
  return calculateWidth(props.margin, props.size);
633
550
  }, function (props) {
634
551
  return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
@@ -655,7 +572,7 @@ var Label = _styledComponents["default"].label(_templateObject2 || (_templateObj
655
572
  }, function (props) {
656
573
  return props.theme.labelLineHeight;
657
574
  }, function (props) {
658
- return !props.helperText && "margin-bottom: 0.25rem";
575
+ return !props.hasHelperText && "margin-bottom: 0.25rem";
659
576
  });
660
577
 
661
578
  var OptionalLabel = _styledComponents["default"].span(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n font-weight: ", ";\n"])), function (props) {
@@ -742,45 +659,5 @@ var Error = _styledComponents["default"].span(_templateObject12 || (_templateObj
742
659
  return props.theme.fontFamily;
743
660
  });
744
661
 
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
662
  var _default = DxcTextInput;
786
663
  exports["default"] = _default;