@dxc-technology/halstack-react 0.0.0-65fe4ab → 0.0.0-660d852

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 (254) 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 +13 -14
  6. package/accordion/Accordion.test.js +71 -0
  7. package/accordion/types.d.ts +10 -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 +15 -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/{list → badge}/types.js +0 -0
  19. package/bleed/Bleed.js +1 -34
  20. package/bleed/Bleed.stories.tsx +94 -95
  21. package/bleed/types.d.ts +25 -1
  22. package/box/Box.js +23 -33
  23. package/box/Box.test.js +18 -0
  24. package/bulleted-list/BulletedList.d.ts +7 -0
  25. package/bulleted-list/BulletedList.js +123 -0
  26. package/bulleted-list/BulletedList.stories.tsx +200 -0
  27. package/bulleted-list/types.d.ts +11 -0
  28. package/{radio → bulleted-list}/types.js +0 -0
  29. package/button/Button.js +53 -68
  30. package/button/Button.stories.tsx +9 -0
  31. package/button/Button.test.js +35 -0
  32. package/button/types.d.ts +7 -7
  33. package/card/Card.js +24 -27
  34. package/card/Card.test.js +50 -0
  35. package/checkbox/Checkbox.d.ts +1 -1
  36. package/checkbox/Checkbox.js +103 -106
  37. package/checkbox/Checkbox.stories.tsx +124 -128
  38. package/checkbox/Checkbox.test.js +155 -0
  39. package/checkbox/types.d.ts +9 -5
  40. package/chip/Chip.d.ts +1 -1
  41. package/chip/Chip.js +14 -52
  42. package/chip/Chip.stories.tsx +6 -8
  43. package/chip/Chip.test.js +56 -0
  44. package/chip/types.d.ts +5 -13
  45. package/common/variables.js +237 -340
  46. package/date-input/DateInput.js +56 -42
  47. package/date-input/DateInput.stories.tsx +7 -7
  48. package/date-input/DateInput.test.js +479 -0
  49. package/date-input/types.d.ts +16 -9
  50. package/dialog/Dialog.js +46 -50
  51. package/dialog/Dialog.stories.tsx +1 -2
  52. package/dialog/Dialog.test.js +70 -0
  53. package/dialog/types.d.ts +2 -2
  54. package/dropdown/Dropdown.d.ts +1 -1
  55. package/dropdown/Dropdown.js +243 -273
  56. package/dropdown/Dropdown.stories.tsx +144 -79
  57. package/dropdown/Dropdown.test.js +591 -0
  58. package/dropdown/DropdownMenu.d.ts +4 -0
  59. package/dropdown/DropdownMenu.js +80 -0
  60. package/dropdown/DropdownMenuItem.d.ts +4 -0
  61. package/dropdown/DropdownMenuItem.js +92 -0
  62. package/dropdown/types.d.ts +29 -18
  63. package/file-input/FileInput.js +9 -6
  64. package/file-input/FileInput.test.js +457 -0
  65. package/file-input/FileItem.js +7 -5
  66. package/flex/Flex.d.ts +4 -0
  67. package/flex/Flex.js +57 -0
  68. package/flex/Flex.stories.tsx +103 -0
  69. package/flex/types.d.ts +21 -0
  70. package/{row → flex}/types.js +0 -0
  71. package/footer/Footer.js +15 -88
  72. package/footer/Footer.stories.tsx +8 -1
  73. package/footer/Footer.test.js +109 -0
  74. package/footer/Icons.js +1 -1
  75. package/footer/types.d.ts +1 -1
  76. package/header/Header.js +95 -114
  77. package/header/Header.stories.tsx +46 -36
  78. package/header/Header.test.js +79 -0
  79. package/header/Icons.js +2 -2
  80. package/header/types.d.ts +2 -2
  81. package/heading/Heading.test.js +186 -0
  82. package/inset/Inset.js +1 -34
  83. package/inset/Inset.stories.tsx +36 -36
  84. package/inset/types.d.ts +25 -1
  85. package/layout/ApplicationLayout.d.ts +16 -6
  86. package/layout/ApplicationLayout.js +71 -125
  87. package/layout/ApplicationLayout.stories.tsx +84 -93
  88. package/layout/Icons.d.ts +5 -0
  89. package/layout/Icons.js +13 -2
  90. package/layout/SidenavContext.d.ts +5 -0
  91. package/layout/SidenavContext.js +19 -0
  92. package/layout/types.d.ts +18 -33
  93. package/link/Link.d.ts +3 -2
  94. package/link/Link.js +60 -85
  95. package/link/Link.stories.tsx +99 -52
  96. package/link/Link.test.js +83 -0
  97. package/link/types.d.ts +9 -29
  98. package/main.d.ts +11 -15
  99. package/main.js +53 -79
  100. package/number-input/NumberInput.js +11 -18
  101. package/number-input/NumberInput.stories.tsx +5 -5
  102. package/number-input/NumberInput.test.js +506 -0
  103. package/number-input/types.d.ts +17 -10
  104. package/package.json +14 -12
  105. package/paginator/Paginator.js +17 -38
  106. package/paginator/Paginator.test.js +308 -0
  107. package/paragraph/Paragraph.d.ts +6 -0
  108. package/paragraph/Paragraph.js +38 -0
  109. package/paragraph/Paragraph.stories.tsx +44 -0
  110. package/password-input/PasswordInput.js +7 -4
  111. package/password-input/PasswordInput.test.js +180 -0
  112. package/password-input/types.d.ts +14 -11
  113. package/progress-bar/ProgressBar.d.ts +2 -2
  114. package/progress-bar/ProgressBar.js +57 -51
  115. package/progress-bar/ProgressBar.stories.jsx +13 -11
  116. package/progress-bar/ProgressBar.test.js +110 -0
  117. package/progress-bar/types.d.ts +3 -4
  118. package/quick-nav/QuickNav.d.ts +4 -0
  119. package/quick-nav/QuickNav.js +118 -0
  120. package/quick-nav/QuickNav.stories.tsx +264 -0
  121. package/quick-nav/types.d.ts +21 -0
  122. package/{stack → quick-nav}/types.js +0 -0
  123. package/radio-group/Radio.d.ts +1 -1
  124. package/radio-group/Radio.js +25 -24
  125. package/radio-group/RadioGroup.js +58 -50
  126. package/radio-group/RadioGroup.stories.tsx +60 -39
  127. package/radio-group/RadioGroup.test.js +530 -83
  128. package/radio-group/types.d.ts +80 -2
  129. package/resultsetTable/ResultsetTable.js +5 -2
  130. package/resultsetTable/ResultsetTable.test.js +348 -0
  131. package/select/Icons.d.ts +10 -0
  132. package/select/Icons.js +93 -0
  133. package/select/Listbox.d.ts +4 -0
  134. package/select/Listbox.js +198 -0
  135. package/select/Option.d.ts +4 -0
  136. package/select/Option.js +110 -0
  137. package/select/Select.js +145 -365
  138. package/select/Select.stories.tsx +231 -176
  139. package/select/Select.test.js +2175 -0
  140. package/select/types.d.ts +52 -12
  141. package/sidenav/Sidenav.d.ts +6 -5
  142. package/sidenav/Sidenav.js +184 -52
  143. package/sidenav/Sidenav.stories.tsx +154 -156
  144. package/sidenav/Sidenav.test.js +44 -0
  145. package/sidenav/types.d.ts +50 -27
  146. package/slider/Slider.d.ts +1 -1
  147. package/slider/Slider.js +116 -94
  148. package/slider/Slider.stories.tsx +15 -9
  149. package/slider/Slider.test.js +250 -0
  150. package/slider/types.d.ts +6 -2
  151. package/spinner/Spinner.js +1 -1
  152. package/spinner/Spinner.test.js +64 -0
  153. package/switch/Switch.d.ts +2 -2
  154. package/switch/Switch.js +128 -56
  155. package/switch/Switch.stories.tsx +20 -42
  156. package/switch/Switch.test.js +212 -0
  157. package/switch/types.d.ts +9 -6
  158. package/table/Table.test.js +26 -0
  159. package/tabs/Tab.d.ts +4 -0
  160. package/tabs/Tab.js +135 -0
  161. package/tabs/Tabs.d.ts +1 -1
  162. package/tabs/Tabs.js +362 -108
  163. package/tabs/Tabs.stories.tsx +74 -8
  164. package/tabs/Tabs.test.js +351 -0
  165. package/tabs/types.d.ts +19 -5
  166. package/tabs-nav/NavTabs.d.ts +8 -0
  167. package/tabs-nav/NavTabs.js +125 -0
  168. package/tabs-nav/NavTabs.stories.tsx +170 -0
  169. package/tabs-nav/NavTabs.test.js +82 -0
  170. package/tabs-nav/Tab.d.ts +4 -0
  171. package/tabs-nav/Tab.js +130 -0
  172. package/tabs-nav/types.d.ts +53 -0
  173. package/tabs-nav/types.js +5 -0
  174. package/tag/Tag.d.ts +1 -1
  175. package/tag/Tag.js +18 -28
  176. package/tag/Tag.stories.tsx +25 -28
  177. package/tag/Tag.test.js +60 -0
  178. package/tag/types.d.ts +23 -14
  179. package/text-input/Icons.d.ts +8 -0
  180. package/text-input/Icons.js +60 -0
  181. package/text-input/Suggestion.d.ts +4 -0
  182. package/text-input/Suggestion.js +57 -0
  183. package/text-input/Suggestions.d.ts +4 -0
  184. package/text-input/Suggestions.js +134 -0
  185. package/text-input/TextInput.js +148 -279
  186. package/text-input/TextInput.stories.tsx +219 -194
  187. package/text-input/TextInput.test.js +1713 -0
  188. package/text-input/types.d.ts +45 -12
  189. package/textarea/Textarea.js +20 -27
  190. package/textarea/Textarea.stories.jsx +33 -12
  191. package/textarea/Textarea.test.js +437 -0
  192. package/textarea/types.d.ts +18 -11
  193. package/toggle-group/ToggleGroup.d.ts +1 -1
  194. package/toggle-group/ToggleGroup.js +5 -4
  195. package/toggle-group/ToggleGroup.stories.tsx +4 -4
  196. package/toggle-group/ToggleGroup.test.js +156 -0
  197. package/toggle-group/types.d.ts +9 -1
  198. package/typography/Typography.d.ts +4 -0
  199. package/typography/Typography.js +131 -0
  200. package/typography/Typography.stories.tsx +198 -0
  201. package/typography/types.d.ts +18 -0
  202. package/typography/types.js +5 -0
  203. package/useTheme.js +2 -2
  204. package/useTranslatedLabels.d.ts +2 -0
  205. package/useTranslatedLabels.js +20 -0
  206. package/wizard/Wizard.d.ts +1 -1
  207. package/wizard/Wizard.js +58 -54
  208. package/wizard/Wizard.stories.tsx +33 -24
  209. package/wizard/Wizard.test.js +141 -0
  210. package/wizard/types.d.ts +10 -5
  211. package/ThemeContext.d.ts +0 -15
  212. package/ThemeContext.js +0 -243
  213. package/V3Select/V3Select.js +0 -455
  214. package/V3Select/index.d.ts +0 -27
  215. package/V3Textarea/V3Textarea.js +0 -260
  216. package/V3Textarea/index.d.ts +0 -27
  217. package/date/Date.js +0 -373
  218. package/date/index.d.ts +0 -27
  219. package/input-text/Icons.js +0 -22
  220. package/input-text/InputText.js +0 -611
  221. package/input-text/index.d.ts +0 -36
  222. package/list/List.d.ts +0 -4
  223. package/list/List.js +0 -47
  224. package/list/List.stories.tsx +0 -95
  225. package/list/types.d.ts +0 -7
  226. package/radio/Radio.d.ts +0 -4
  227. package/radio/Radio.js +0 -174
  228. package/radio/Radio.stories.tsx +0 -192
  229. package/radio/types.d.ts +0 -54
  230. package/row/Row.d.ts +0 -3
  231. package/row/Row.js +0 -127
  232. package/row/Row.stories.tsx +0 -237
  233. package/row/types.d.ts +0 -10
  234. package/stack/Stack.d.ts +0 -3
  235. package/stack/Stack.js +0 -97
  236. package/stack/Stack.stories.tsx +0 -164
  237. package/stack/types.d.ts +0 -9
  238. package/text/Text.d.ts +0 -7
  239. package/text/Text.js +0 -30
  240. package/text/Text.stories.tsx +0 -19
  241. package/toggle/Toggle.js +0 -186
  242. package/toggle/index.d.ts +0 -21
  243. package/upload/Upload.js +0 -201
  244. package/upload/buttons-upload/ButtonsUpload.js +0 -111
  245. package/upload/buttons-upload/Icons.js +0 -40
  246. package/upload/dragAndDropArea/DragAndDropArea.js +0 -225
  247. package/upload/dragAndDropArea/Icons.js +0 -39
  248. package/upload/file-upload/FileToUpload.js +0 -115
  249. package/upload/file-upload/Icons.js +0 -66
  250. package/upload/files-upload/FilesToUpload.js +0 -109
  251. package/upload/index.d.ts +0 -15
  252. package/upload/transaction/Icons.js +0 -160
  253. package/upload/transaction/Transaction.js +0 -104
  254. 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,62 +454,55 @@ 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, {
551
- onClick: function onClick() {
552
- return handleClearActionOnClick();
553
- },
471
+ }, _Icons["default"].error), !disabled && clearable && (value !== null && value !== void 0 ? value : innerValue).length > 0 && /*#__PURE__*/_react["default"].createElement(Action, {
472
+ onClick: handleClearActionOnClick,
554
473
  onMouseDown: function onMouseDown(event) {
555
474
  event.stopPropagation();
556
475
  },
557
476
  backgroundType: backgroundType,
558
477
  tabIndex: tabIndex,
559
- title: "Clear field",
560
- "aria-label": "Clear field"
561
- }, 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, {
562
481
  ref: actionRef,
563
482
  disabled: disabled,
564
- onClick: function onClick() {
565
- return handleDecrementActionOnClick();
566
- },
483
+ onClick: handleDecrementActionOnClick,
567
484
  onMouseDown: function onMouseDown(event) {
568
485
  event.stopPropagation();
569
486
  },
570
487
  backgroundType: backgroundType,
571
488
  tabIndex: tabIndex,
572
- title: "Decrement value",
573
- "aria-label": "Decrement value"
574
- }, 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, {
575
492
  ref: actionRef,
576
493
  disabled: disabled,
577
- onClick: function onClick() {
578
- return handleIncrementActionOnClick();
579
- },
494
+ onClick: handleIncrementActionOnClick,
580
495
  onMouseDown: function onMouseDown(event) {
581
496
  event.stopPropagation();
582
497
  },
583
498
  backgroundType: backgroundType,
584
499
  tabIndex: tabIndex,
585
- title: "Increment value",
586
- "aria-label": "Increment value"
587
- }, 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, {
588
503
  ref: actionRef,
589
504
  disabled: disabled,
590
- onClick: function onClick() {
591
- return action.onClick();
592
- },
505
+ onClick: action.onClick,
593
506
  onMouseDown: function onMouseDown(event) {
594
507
  event.stopPropagation();
595
508
  },
@@ -602,41 +515,37 @@ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
602
515
  }) : action.icon), suffix && /*#__PURE__*/_react["default"].createElement(Suffix, {
603
516
  disabled: disabled,
604
517
  backgroundType: backgroundType
605
- }, suffix), isOpen && (filteredSuggestions.length > 0 || isSearching || isAutosuggestError) && /*#__PURE__*/_react["default"].createElement(Suggestions, {
606
- id: autosuggestId,
607
- isError: isAutosuggestError,
608
- 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
609
522
  event.preventDefault();
610
523
  },
611
- ref: suggestionsRef,
612
- role: "listbox",
613
- "aria-label": label
614
- }, !isSearching && !isAutosuggestError && filteredSuggestions.length > 0 && filteredSuggestions.map(function (suggestion, index) {
615
- return /*#__PURE__*/_react["default"].createElement(HighlightedSuggestion, {
616
- key: "suggestion-".concat((0, _uuid.v4)()),
617
- suggestion: suggestion,
618
- index: index
619
- });
620
- }), isSearching && /*#__PURE__*/_react["default"].createElement(SuggestionsSystemMessage, null, "Searching..."), isAutosuggestError && /*#__PURE__*/_react["default"].createElement(SuggestionsError, null, /*#__PURE__*/_react["default"].createElement(SuggestionsErrorIcon, {
621
- backgroundType: backgroundType
622
- }, 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, {
623
542
  id: errorId,
624
- backgroundType: backgroundType
543
+ backgroundType: backgroundType,
544
+ "aria-live": error ? "assertive" : "off"
625
545
  }, error)));
626
546
  });
627
547
 
628
- var sizes = {
629
- small: "240px",
630
- medium: "360px",
631
- large: "480px",
632
- fillParent: "100%"
633
- };
634
-
635
- var calculateWidth = function calculateWidth(margin, size) {
636
- return size === "fillParent" ? "calc(".concat(sizes[size], " - ").concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")") : sizes[size];
637
- };
638
-
639
- var DxcInput = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n\n width: ", ";\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n"])), function (props) {
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) {
640
549
  return calculateWidth(props.margin, props.size);
641
550
  }, function (props) {
642
551
  return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
@@ -663,7 +572,7 @@ var Label = _styledComponents["default"].label(_templateObject2 || (_templateObj
663
572
  }, function (props) {
664
573
  return props.theme.labelLineHeight;
665
574
  }, function (props) {
666
- return !props.helperText && "margin-bottom: 0.25rem";
575
+ return !props.hasHelperText && "margin-bottom: 0.25rem";
667
576
  });
668
577
 
669
578
  var OptionalLabel = _styledComponents["default"].span(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n font-weight: ", ";\n"])), function (props) {
@@ -750,45 +659,5 @@ var Error = _styledComponents["default"].span(_templateObject12 || (_templateObj
750
659
  return props.theme.fontFamily;
751
660
  });
752
661
 
753
- var Suggestions = _styledComponents["default"].ul(_templateObject13 || (_templateObject13 = (0, _taggedTemplateLiteral2["default"])(["\n position: absolute;\n z-index: 1;\n max-height: 304px;\n overflow-y: auto;\n top: calc(100% + 4px);\n left: 0;\n margin: 0;\n padding: 0.25rem 0;\n width: 100%;\n background-color: ", ";\n border: 1px solid\n ", ";\n border-radius: 0.25rem;\n box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);\n cursor: default;\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n"])), function (props) {
754
- return props.isError ? props.theme.errorListDialogBackgroundColor : props.theme.listDialogBackgroundColor;
755
- }, function (props) {
756
- return props.isError ? props.theme.errorListDialogBorderColor : props.theme.listDialogBorderColor;
757
- }, function (props) {
758
- return props.theme.listOptionFontColor;
759
- }, function (props) {
760
- return props.theme.fontFamily;
761
- }, function (props) {
762
- return props.theme.listOptionFontSize;
763
- }, function (props) {
764
- return props.theme.listOptionFontStyle;
765
- }, function (props) {
766
- return props.theme.listOptionFontWeight;
767
- });
768
-
769
- var Suggestion = _styledComponents["default"].li(_templateObject14 || (_templateObject14 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n padding: 0 0.5rem;\n line-height: 1.715em;\n cursor: pointer;\n\n box-shadow: inset 0 0 0 2px\n ", ";\n &:hover {\n background-color: ", ";\n }\n &:active {\n background-color: ", ";\n }\n"])), function (props) {
770
- return props.visualFocused ? props.theme.focusListOptionBorderColor : "transparent";
771
- }, function (props) {
772
- return props.theme.hoverListOptionBackgroundColor;
773
- }, function (props) {
774
- return props.theme.activeListOptionBackgroundColor;
775
- });
776
-
777
- var StyledSuggestion = _styledComponents["default"].span(_templateObject15 || (_templateObject15 = (0, _taggedTemplateLiteral2["default"])(["\n width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n padding: 0.25rem 0.5rem 0.188rem 0.5rem;\n ", ";\n"])), function (props) {
778
- return props.last || props.visualFocused ? "border-bottom: 1px solid transparent" : "border-bottom: 1px solid ".concat(props.theme.listOptionDividerColor);
779
- });
780
-
781
- var SuggestionsSystemMessage = _styledComponents["default"].span(_templateObject16 || (_templateObject16 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n padding: 0.25rem 1rem;\n color: ", ";\n line-height: 1.715em;\n"])), function (props) {
782
- return props.theme.systemMessageFontColor;
783
- });
784
-
785
- var SuggestionsErrorIcon = _styledComponents["default"].span(_templateObject17 || (_templateObject17 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-wrap: wrap;\n align-content: center;\n margin-right: 0.5rem;\n height: 18px;\n width: 18px;\n color: ", ";\n"])), function (props) {
786
- return props.backgroundType === "dark" ? props.theme.errorIconColorOnDark : props.theme.errorIconColor;
787
- });
788
-
789
- var SuggestionsError = _styledComponents["default"].span(_templateObject18 || (_templateObject18 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n padding: 0.25rem 1rem;\n align-items: center;\n line-height: 1.715em;\n color: ", ";\n"])), function (props) {
790
- return props.theme.errorListDialogFontColor;
791
- });
792
-
793
662
  var _default = DxcTextInput;
794
663
  exports["default"] = _default;