@dxc-technology/halstack-react 0.0.0-e884f9f → 0.0.0-e922b5b

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 (285) hide show
  1. package/BackgroundColorContext.d.ts +10 -0
  2. package/BackgroundColorContext.js +1 -4
  3. package/HalstackContext.d.ts +12 -0
  4. package/HalstackContext.js +295 -0
  5. package/accordion/Accordion.d.ts +1 -1
  6. package/accordion/Accordion.js +124 -137
  7. package/accordion/Accordion.stories.tsx +306 -0
  8. package/accordion/Accordion.test.js +71 -0
  9. package/accordion/types.d.ts +11 -11
  10. package/accordion-group/AccordionGroup.d.ts +1 -1
  11. package/accordion-group/AccordionGroup.js +16 -37
  12. package/accordion-group/AccordionGroup.stories.tsx +251 -0
  13. package/accordion-group/AccordionGroup.test.js +126 -0
  14. package/accordion-group/types.d.ts +16 -10
  15. package/alert/Alert.js +7 -4
  16. package/alert/Alert.test.js +92 -0
  17. package/badge/Badge.d.ts +4 -0
  18. package/badge/Badge.js +6 -4
  19. package/badge/types.d.ts +5 -0
  20. package/{radio → badge}/types.js +0 -0
  21. package/bleed/Bleed.d.ts +3 -0
  22. package/bleed/Bleed.js +51 -0
  23. package/bleed/Bleed.stories.tsx +341 -0
  24. package/bleed/types.d.ts +37 -0
  25. package/bleed/types.js +5 -0
  26. package/box/Box.js +25 -35
  27. package/box/Box.test.js +18 -0
  28. package/bulleted-list/BulletedList.d.ts +7 -0
  29. package/bulleted-list/BulletedList.js +123 -0
  30. package/bulleted-list/BulletedList.stories.tsx +200 -0
  31. package/bulleted-list/types.d.ts +11 -0
  32. package/bulleted-list/types.js +5 -0
  33. package/button/Button.d.ts +1 -1
  34. package/button/Button.js +62 -83
  35. package/button/Button.stories.tsx +15 -8
  36. package/button/Button.test.js +35 -0
  37. package/button/types.d.ts +10 -14
  38. package/card/Card.js +25 -28
  39. package/card/Card.stories.tsx +1 -1
  40. package/card/Card.test.js +50 -0
  41. package/checkbox/Checkbox.d.ts +1 -1
  42. package/checkbox/Checkbox.js +104 -108
  43. package/checkbox/Checkbox.stories.tsx +124 -128
  44. package/checkbox/Checkbox.test.js +155 -0
  45. package/checkbox/types.d.ts +10 -6
  46. package/chip/Chip.d.ts +4 -0
  47. package/chip/Chip.js +16 -76
  48. package/chip/Chip.stories.tsx +6 -8
  49. package/chip/Chip.test.js +56 -0
  50. package/chip/types.d.ts +45 -0
  51. package/chip/types.js +5 -0
  52. package/common/variables.js +290 -359
  53. package/date-input/DateInput.js +66 -55
  54. package/date-input/DateInput.stories.tsx +7 -7
  55. package/date-input/DateInput.test.js +479 -0
  56. package/date-input/types.d.ts +16 -9
  57. package/dialog/Dialog.js +50 -53
  58. package/dialog/Dialog.stories.tsx +1 -2
  59. package/dialog/Dialog.test.js +70 -0
  60. package/dialog/types.d.ts +2 -2
  61. package/dropdown/Dropdown.d.ts +1 -1
  62. package/dropdown/Dropdown.js +243 -273
  63. package/dropdown/Dropdown.stories.tsx +312 -0
  64. package/dropdown/Dropdown.test.js +591 -0
  65. package/dropdown/DropdownMenu.d.ts +4 -0
  66. package/dropdown/DropdownMenu.js +80 -0
  67. package/dropdown/DropdownMenuItem.d.ts +4 -0
  68. package/dropdown/DropdownMenuItem.js +92 -0
  69. package/dropdown/types.d.ts +30 -19
  70. package/file-input/FileInput.d.ts +1 -1
  71. package/file-input/FileInput.js +165 -83
  72. package/file-input/FileInput.stories.tsx +507 -0
  73. package/file-input/FileInput.test.js +457 -0
  74. package/file-input/FileItem.js +12 -8
  75. package/file-input/types.d.ts +32 -7
  76. package/flex/Flex.d.ts +4 -0
  77. package/flex/Flex.js +57 -0
  78. package/flex/Flex.stories.tsx +103 -0
  79. package/flex/types.d.ts +21 -0
  80. package/flex/types.js +5 -0
  81. package/footer/Footer.d.ts +1 -1
  82. package/footer/Footer.js +32 -113
  83. package/footer/{Footer.stories.jsx → Footer.stories.tsx} +5 -19
  84. package/footer/Footer.test.js +109 -0
  85. package/footer/Icons.d.ts +2 -0
  86. package/footer/Icons.js +4 -4
  87. package/footer/types.d.ts +21 -17
  88. package/header/Header.js +97 -116
  89. package/header/Header.stories.tsx +46 -36
  90. package/header/Header.test.js +79 -0
  91. package/header/Icons.d.ts +2 -0
  92. package/header/Icons.js +2 -2
  93. package/header/types.d.ts +2 -2
  94. package/heading/Heading.js +1 -1
  95. package/heading/Heading.stories.tsx +3 -2
  96. package/heading/Heading.test.js +186 -0
  97. package/inset/Inset.d.ts +3 -0
  98. package/inset/Inset.js +51 -0
  99. package/inset/Inset.stories.tsx +229 -0
  100. package/inset/types.d.ts +37 -0
  101. package/inset/types.js +5 -0
  102. package/layout/ApplicationLayout.d.ts +20 -0
  103. package/layout/ApplicationLayout.js +71 -135
  104. package/layout/ApplicationLayout.stories.tsx +162 -0
  105. package/layout/Icons.d.ts +5 -0
  106. package/layout/Icons.js +13 -2
  107. package/layout/SidenavContext.d.ts +5 -0
  108. package/layout/SidenavContext.js +19 -0
  109. package/layout/types.d.ts +42 -0
  110. package/layout/types.js +5 -0
  111. package/link/Link.d.ts +3 -2
  112. package/link/Link.js +61 -86
  113. package/link/Link.stories.tsx +99 -52
  114. package/link/Link.test.js +83 -0
  115. package/link/types.d.ts +9 -29
  116. package/main.d.ts +12 -12
  117. package/main.js +64 -58
  118. package/number-input/NumberInput.js +14 -24
  119. package/number-input/NumberInput.stories.tsx +5 -5
  120. package/number-input/NumberInput.test.js +506 -0
  121. package/number-input/NumberInputContext.d.ts +4 -0
  122. package/number-input/NumberInputContext.js +5 -2
  123. package/number-input/numberInputContextTypes.d.ts +19 -0
  124. package/number-input/numberInputContextTypes.js +5 -0
  125. package/number-input/types.d.ts +17 -10
  126. package/package.json +16 -12
  127. package/paginator/Paginator.js +19 -46
  128. package/paginator/Paginator.test.js +308 -0
  129. package/paragraph/Paragraph.d.ts +6 -0
  130. package/paragraph/Paragraph.js +38 -0
  131. package/paragraph/Paragraph.stories.tsx +44 -0
  132. package/password-input/PasswordInput.js +23 -19
  133. package/password-input/PasswordInput.stories.tsx +3 -3
  134. package/password-input/PasswordInput.test.js +180 -0
  135. package/password-input/types.d.ts +29 -19
  136. package/progress-bar/ProgressBar.d.ts +2 -2
  137. package/progress-bar/ProgressBar.js +59 -53
  138. package/progress-bar/ProgressBar.stories.jsx +13 -11
  139. package/progress-bar/ProgressBar.test.js +110 -0
  140. package/progress-bar/types.d.ts +3 -4
  141. package/quick-nav/QuickNav.d.ts +4 -0
  142. package/quick-nav/QuickNav.js +118 -0
  143. package/quick-nav/QuickNav.stories.tsx +264 -0
  144. package/quick-nav/types.d.ts +21 -0
  145. package/quick-nav/types.js +5 -0
  146. package/radio-group/Radio.d.ts +4 -0
  147. package/radio-group/Radio.js +141 -0
  148. package/radio-group/RadioGroup.d.ts +4 -0
  149. package/radio-group/RadioGroup.js +281 -0
  150. package/radio-group/RadioGroup.stories.tsx +100 -0
  151. package/radio-group/RadioGroup.test.js +695 -0
  152. package/radio-group/types.d.ts +114 -0
  153. package/radio-group/types.js +5 -0
  154. package/resultsetTable/ResultsetTable.d.ts +4 -0
  155. package/resultsetTable/ResultsetTable.js +9 -29
  156. package/resultsetTable/ResultsetTable.stories.tsx +275 -0
  157. package/resultsetTable/ResultsetTable.test.js +348 -0
  158. package/resultsetTable/types.d.ts +67 -0
  159. package/resultsetTable/types.js +5 -0
  160. package/select/Icons.d.ts +10 -0
  161. package/select/Icons.js +93 -0
  162. package/select/Listbox.d.ts +4 -0
  163. package/select/Listbox.js +198 -0
  164. package/select/Option.d.ts +4 -0
  165. package/select/Option.js +110 -0
  166. package/select/Select.d.ts +4 -0
  167. package/select/Select.js +158 -380
  168. package/select/Select.stories.tsx +231 -176
  169. package/select/Select.test.js +2175 -0
  170. package/select/types.d.ts +210 -0
  171. package/select/types.js +5 -0
  172. package/sidenav/Sidenav.d.ts +6 -5
  173. package/sidenav/Sidenav.js +186 -54
  174. package/sidenav/Sidenav.stories.tsx +154 -139
  175. package/sidenav/Sidenav.test.js +44 -0
  176. package/sidenav/types.d.ts +50 -27
  177. package/slider/Slider.d.ts +1 -1
  178. package/slider/Slider.js +117 -95
  179. package/slider/Slider.stories.tsx +15 -9
  180. package/slider/Slider.test.js +250 -0
  181. package/slider/types.d.ts +6 -2
  182. package/spinner/Spinner.js +3 -3
  183. package/spinner/Spinner.stories.jsx +1 -0
  184. package/spinner/Spinner.test.js +64 -0
  185. package/switch/Switch.d.ts +2 -2
  186. package/switch/Switch.js +149 -67
  187. package/switch/Switch.stories.tsx +21 -43
  188. package/switch/Switch.test.js +225 -0
  189. package/switch/types.d.ts +9 -6
  190. package/table/Table.js +3 -3
  191. package/table/Table.stories.jsx +2 -1
  192. package/table/Table.test.js +26 -0
  193. package/tabs/Tab.d.ts +4 -0
  194. package/tabs/Tab.js +135 -0
  195. package/tabs/Tabs.d.ts +1 -1
  196. package/tabs/Tabs.js +364 -110
  197. package/tabs/Tabs.stories.tsx +186 -0
  198. package/tabs/Tabs.test.js +351 -0
  199. package/tabs/types.d.ts +39 -17
  200. package/tabs-nav/NavTabs.d.ts +8 -0
  201. package/tabs-nav/NavTabs.js +125 -0
  202. package/tabs-nav/NavTabs.stories.tsx +170 -0
  203. package/tabs-nav/NavTabs.test.js +82 -0
  204. package/tabs-nav/Tab.d.ts +4 -0
  205. package/tabs-nav/Tab.js +130 -0
  206. package/tabs-nav/types.d.ts +53 -0
  207. package/tabs-nav/types.js +5 -0
  208. package/tag/Tag.d.ts +1 -1
  209. package/tag/Tag.js +19 -29
  210. package/tag/Tag.stories.tsx +26 -29
  211. package/tag/Tag.test.js +60 -0
  212. package/tag/types.d.ts +23 -14
  213. package/text-input/Icons.d.ts +8 -0
  214. package/text-input/Icons.js +60 -0
  215. package/text-input/Suggestion.d.ts +4 -0
  216. package/text-input/Suggestion.js +57 -0
  217. package/text-input/Suggestions.d.ts +4 -0
  218. package/text-input/Suggestions.js +134 -0
  219. package/text-input/TextInput.d.ts +4 -0
  220. package/text-input/TextInput.js +166 -328
  221. package/text-input/TextInput.stories.tsx +481 -0
  222. package/text-input/TextInput.test.js +1713 -0
  223. package/text-input/types.d.ts +192 -0
  224. package/text-input/types.js +5 -0
  225. package/textarea/Textarea.d.ts +4 -0
  226. package/textarea/Textarea.js +39 -79
  227. package/textarea/Textarea.stories.jsx +37 -15
  228. package/textarea/Textarea.test.js +437 -0
  229. package/textarea/types.d.ts +137 -0
  230. package/textarea/types.js +5 -0
  231. package/toggle-group/ToggleGroup.d.ts +4 -0
  232. package/toggle-group/ToggleGroup.js +18 -46
  233. package/toggle-group/ToggleGroup.stories.tsx +27 -32
  234. package/toggle-group/ToggleGroup.test.js +156 -0
  235. package/toggle-group/types.d.ts +105 -0
  236. package/toggle-group/types.js +5 -0
  237. package/typography/Typography.d.ts +4 -0
  238. package/typography/Typography.js +131 -0
  239. package/typography/Typography.stories.tsx +198 -0
  240. package/typography/types.d.ts +18 -0
  241. package/typography/types.js +5 -0
  242. package/useTheme.d.ts +2 -0
  243. package/useTheme.js +2 -2
  244. package/useTranslatedLabels.d.ts +2 -0
  245. package/useTranslatedLabels.js +20 -0
  246. package/wizard/Wizard.d.ts +1 -1
  247. package/wizard/Wizard.js +112 -58
  248. package/wizard/{Wizard.stories.jsx → Wizard.stories.tsx} +33 -24
  249. package/wizard/Wizard.test.js +141 -0
  250. package/wizard/types.d.ts +13 -12
  251. package/ThemeContext.js +0 -246
  252. package/V3Select/V3Select.js +0 -455
  253. package/V3Select/index.d.ts +0 -27
  254. package/V3Textarea/V3Textarea.js +0 -260
  255. package/V3Textarea/index.d.ts +0 -27
  256. package/chip/index.d.ts +0 -22
  257. package/date/Date.js +0 -373
  258. package/date/index.d.ts +0 -27
  259. package/input-text/Icons.js +0 -22
  260. package/input-text/InputText.js +0 -611
  261. package/input-text/index.d.ts +0 -36
  262. package/radio/Radio.d.ts +0 -4
  263. package/radio/Radio.js +0 -174
  264. package/radio/Radio.stories.tsx +0 -192
  265. package/radio/types.d.ts +0 -54
  266. package/resultsetTable/index.d.ts +0 -19
  267. package/select/index.d.ts +0 -131
  268. package/text-input/index.d.ts +0 -135
  269. package/textarea/index.d.ts +0 -117
  270. package/toggle/Toggle.js +0 -186
  271. package/toggle/index.d.ts +0 -21
  272. package/toggle-group/index.d.ts +0 -21
  273. package/upload/Upload.js +0 -201
  274. package/upload/buttons-upload/ButtonsUpload.js +0 -111
  275. package/upload/buttons-upload/Icons.js +0 -40
  276. package/upload/dragAndDropArea/DragAndDropArea.js +0 -225
  277. package/upload/dragAndDropArea/Icons.js +0 -39
  278. package/upload/file-upload/FileToUpload.js +0 -115
  279. package/upload/file-upload/Icons.js +0 -66
  280. package/upload/files-upload/FilesToUpload.js +0 -109
  281. package/upload/index.d.ts +0 -15
  282. package/upload/transaction/Icons.js +0 -160
  283. package/upload/transaction/Transaction.js +0 -104
  284. package/upload/transactions/Transactions.js +0 -94
  285. package/wizard/Icons.js +0 -65
@@ -9,8 +9,6 @@ Object.defineProperty(exports, "__esModule", {
9
9
  });
10
10
  exports["default"] = void 0;
11
11
 
12
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
-
14
12
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
15
13
 
16
14
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
@@ -21,72 +19,41 @@ var _react = _interopRequireWildcard(require("react"));
21
19
 
22
20
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
23
21
 
24
- var _useTheme = _interopRequireDefault(require("../useTheme.js"));
22
+ var _useTheme = _interopRequireDefault(require("../useTheme"));
25
23
 
26
- var _propTypes = _interopRequireDefault(require("prop-types"));
24
+ var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
27
25
 
28
26
  var _variables = require("../common/variables.js");
29
27
 
30
28
  var _utils = require("../common/utils.js");
31
29
 
32
- var _uuid = require("uuid");
30
+ var _BackgroundColorContext = _interopRequireDefault(require("../BackgroundColorContext"));
31
+
32
+ var _NumberInputContext = _interopRequireDefault(require("../number-input/NumberInputContext"));
33
33
 
34
- var _BackgroundColorContext = _interopRequireDefault(require("../BackgroundColorContext.js"));
34
+ var _Suggestions = _interopRequireDefault(require("./Suggestions"));
35
35
 
36
- var _NumberInputContext = _interopRequireDefault(require("../number-input/NumberInputContext.js"));
36
+ var Popover = _interopRequireWildcard(require("@radix-ui/react-popover"));
37
+
38
+ var _Icons = _interopRequireDefault(require("./Icons"));
39
+
40
+ var _uuid = require("uuid");
37
41
 
38
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17, _templateObject18;
42
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12;
39
43
 
40
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); }
41
45
 
42
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; }
43
47
 
44
- var textInputIcons = {
45
- error: /*#__PURE__*/_react["default"].createElement("svg", {
46
- xmlns: "http://www.w3.org/2000/svg",
47
- height: "24px",
48
- viewBox: "0 0 24 24",
49
- width: "24px",
50
- fill: "currentColor"
51
- }, /*#__PURE__*/_react["default"].createElement("path", {
52
- 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"
53
- })),
54
- clear: /*#__PURE__*/_react["default"].createElement("svg", {
55
- xmlns: "http://www.w3.org/2000/svg",
56
- width: "24",
57
- height: "24",
58
- viewBox: "0 0 24 24",
59
- fill: "currentColor"
60
- }, /*#__PURE__*/_react["default"].createElement("path", {
61
- d: "M0 0h24v24H0V0z",
62
- fill: "none"
63
- }), /*#__PURE__*/_react["default"].createElement("path", {
64
- 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"
65
- })),
66
- increment: /*#__PURE__*/_react["default"].createElement("svg", {
67
- xmlns: "http://www.w3.org/2000/svg",
68
- height: "24px",
69
- viewBox: "0 0 24 24",
70
- width: "24px",
71
- fill: "currentColor"
72
- }, /*#__PURE__*/_react["default"].createElement("path", {
73
- d: "M0 0h24v24H0z",
74
- fill: "none"
75
- }), /*#__PURE__*/_react["default"].createElement("path", {
76
- d: "M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"
77
- })),
78
- decrement: /*#__PURE__*/_react["default"].createElement("svg", {
79
- xmlns: "http://www.w3.org/2000/svg",
80
- height: "24px",
81
- viewBox: "0 0 24 24",
82
- width: "24px",
83
- fill: "currentColor"
84
- }, /*#__PURE__*/_react["default"].createElement("path", {
85
- d: "M0 0h24v24H0z",
86
- fill: "none"
87
- }), /*#__PURE__*/_react["default"].createElement("path", {
88
- d: "M19 13H5v-2h14v2z"
89
- }))
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];
90
57
  };
91
58
 
92
59
  var makeCancelable = function makeCancelable(promise) {
@@ -110,45 +77,18 @@ var makeCancelable = function makeCancelable(promise) {
110
77
  };
111
78
  };
112
79
 
113
- var getNotOptionalErrorMessage = function getNotOptionalErrorMessage() {
114
- return "This field is required. Please, enter a value.";
115
- };
116
-
117
- var getLengthErrorMessage = function getLengthErrorMessage(length) {
118
- return "Min length ".concat(length.min, ", max length ").concat(length.max, ".");
119
- };
120
-
121
- var getPatternErrorMessage = function getPatternErrorMessage() {
122
- return "Please match the format requested.";
123
- };
124
-
125
- var patternMatch = function patternMatch(pattern, value) {
126
- return new RegExp(pattern).test(value);
127
- };
128
-
129
- var getLastOptionIndex = function getLastOptionIndex(filteredSuggestions) {
130
- var last = 0;
131
-
132
- var reducer = function reducer(acc, current) {
133
- var _current$options;
134
-
135
- return acc + ((_current$options = current.options) === null || _current$options === void 0 ? void 0 : _current$options.length);
136
- };
137
-
138
- if (filteredSuggestions.length > 0) filteredSuggestions[0].options ? last = filteredSuggestions.reduce(reducer, 0) - 1 : last = filteredSuggestions.length - 1;
139
- return last;
80
+ var patternMissmatch = function patternMissmatch(pattern, value) {
81
+ return pattern && !new RegExp(pattern).test(value);
140
82
  };
141
83
 
142
84
  var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
143
- var _action$title;
144
-
145
- var _ref$label = _ref.label,
146
- label = _ref$label === void 0 ? "" : _ref$label,
85
+ var label = _ref.label,
147
86
  _ref$name = _ref.name,
148
87
  name = _ref$name === void 0 ? "" : _ref$name,
88
+ _ref$defaultValue = _ref.defaultValue,
89
+ defaultValue = _ref$defaultValue === void 0 ? "" : _ref$defaultValue,
149
90
  value = _ref.value,
150
- _ref$helperText = _ref.helperText,
151
- helperText = _ref$helperText === void 0 ? "" : _ref$helperText,
91
+ helperText = _ref.helperText,
152
92
  _ref$placeholder = _ref.placeholder,
153
93
  placeholder = _ref$placeholder === void 0 ? "" : _ref$placeholder,
154
94
  action = _ref.action,
@@ -164,11 +104,11 @@ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
164
104
  suffix = _ref$suffix === void 0 ? "" : _ref$suffix,
165
105
  onChange = _ref.onChange,
166
106
  onBlur = _ref.onBlur,
167
- _ref$error = _ref.error,
168
- error = _ref$error === void 0 ? "" : _ref$error,
107
+ error = _ref.error,
169
108
  suggestions = _ref.suggestions,
170
109
  pattern = _ref.pattern,
171
- length = _ref.length,
110
+ minLength = _ref.minLength,
111
+ maxLength = _ref.maxLength,
172
112
  _ref$autocomplete = _ref.autocomplete,
173
113
  autocomplete = _ref$autocomplete === void 0 ? "off" : _ref$autocomplete,
174
114
  margin = _ref.margin,
@@ -176,59 +116,55 @@ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
176
116
  size = _ref$size === void 0 ? "medium" : _ref$size,
177
117
  _ref$tabIndex = _ref.tabIndex,
178
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);
179
123
 
180
- var _useState = (0, _react.useState)("input-".concat((0, _uuid.v4)())),
181
- _useState2 = (0, _slicedToArray2["default"])(_useState, 1),
182
- 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];
183
128
 
184
- var _useState3 = (0, _react.useState)(""),
129
+ var _useState3 = (0, _react.useState)(false),
185
130
  _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
186
- innerValue = _useState4[0],
187
- setInnerValue = _useState4[1];
131
+ isOpen = _useState4[0],
132
+ changeIsOpen = _useState4[1];
188
133
 
189
134
  var _useState5 = (0, _react.useState)(false),
190
135
  _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
191
- isOpen = _useState6[0],
192
- changeIsOpen = _useState6[1];
136
+ isSearching = _useState6[0],
137
+ changeIsSearching = _useState6[1];
193
138
 
194
139
  var _useState7 = (0, _react.useState)(false),
195
140
  _useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
196
- isSearching = _useState8[0],
197
- changeIsSearching = _useState8[1];
141
+ isAutosuggestError = _useState8[0],
142
+ changeIsAutosuggestError = _useState8[1];
198
143
 
199
- var _useState9 = (0, _react.useState)(false),
144
+ var _useState9 = (0, _react.useState)([]),
200
145
  _useState10 = (0, _slicedToArray2["default"])(_useState9, 2),
201
- isAutosuggestError = _useState10[0],
202
- changeIsAutosuggestError = _useState10[1];
146
+ filteredSuggestions = _useState10[0],
147
+ changeFilteredSuggestions = _useState10[1];
203
148
 
204
- var _useState11 = (0, _react.useState)([]),
149
+ var _useState11 = (0, _react.useState)(-1),
205
150
  _useState12 = (0, _slicedToArray2["default"])(_useState11, 2),
206
- filteredSuggestions = _useState12[0],
207
- changeFilteredSuggestions = _useState12[1];
208
-
209
- var _useState13 = (0, _react.useState)(-1),
210
- _useState14 = (0, _slicedToArray2["default"])(_useState13, 2),
211
- visualFocusedSuggIndex = _useState14[0],
212
- changeVisualFocusedSuggIndex = _useState14[1];
151
+ visualFocusIndex = _useState12[0],
152
+ changeVisualFocusIndex = _useState12[1];
213
153
 
214
- var suggestionsRef = (0, _react.useRef)(null);
154
+ var inputContainerRef = (0, _react.useRef)(null);
215
155
  var inputRef = (0, _react.useRef)(null);
216
156
  var actionRef = (0, _react.useRef)(null);
217
157
  var colorsTheme = (0, _useTheme["default"])();
158
+ var translatedLabels = (0, _useTranslatedLabels["default"])();
218
159
  var backgroundType = (0, _react.useContext)(_BackgroundColorContext["default"]);
219
- var autosuggestId = "".concat(inputId, "-listBox");
220
- var errorId = "error-message-".concat(inputId);
221
160
  var numberInputContext = (0, _react.useContext)(_NumberInputContext["default"]);
222
- var lastOptionIndex = (0, _react.useMemo)(function () {
223
- return getLastOptionIndex(filteredSuggestions);
224
- }, [filteredSuggestions]);
225
161
 
226
162
  var isNotOptional = function isNotOptional(value) {
227
163
  return value === "" && !optional;
228
164
  };
229
165
 
230
166
  var isLengthIncorrect = function isLengthIncorrect(value) {
231
- return value && (length === null || length === void 0 ? void 0 : length.min) && (length === null || length === void 0 ? void 0 : length.max) && (value.length < length.min || value.length > length.max);
167
+ return value && minLength && maxLength && (value.length < minLength || value.length > maxLength);
232
168
  };
233
169
 
234
170
  var isNumberIncorrect = function isNumberIncorrect(value) {
@@ -242,7 +178,7 @@ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
242
178
  };
243
179
 
244
180
  var getNumberErrorMessage = function getNumberErrorMessage(value) {
245
- 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);
246
182
  };
247
183
 
248
184
  var hasSuggestions = function hasSuggestions() {
@@ -254,8 +190,10 @@ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
254
190
  };
255
191
 
256
192
  var closeSuggestions = function closeSuggestions() {
257
- changeIsOpen(false);
258
- changeVisualFocusedSuggIndex(-1);
193
+ if (hasSuggestions()) {
194
+ changeIsOpen(false);
195
+ changeVisualFocusIndex(-1);
196
+ }
259
197
  };
260
198
 
261
199
  var changeValue = function changeValue(newValue) {
@@ -263,19 +201,18 @@ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
263
201
  var changedValue = typeof newValue === "number" ? newValue.toString() : newValue;
264
202
  if (isNotOptional(newValue)) onChange === null || onChange === void 0 ? void 0 : onChange({
265
203
  value: changedValue,
266
- error: getNotOptionalErrorMessage()
204
+ error: translatedLabels.formFields.requiredValueErrorMessage
267
205
  });else if (isLengthIncorrect(newValue)) onChange === null || onChange === void 0 ? void 0 : onChange({
268
206
  value: changedValue,
269
- error: getLengthErrorMessage(length)
270
- });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({
271
209
  value: changedValue,
272
- error: getPatternErrorMessage()
273
- });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({
274
212
  value: changedValue,
275
213
  error: getNumberErrorMessage(newValue)
276
214
  });else onChange === null || onChange === void 0 ? void 0 : onChange({
277
- value: changedValue,
278
- error: null
215
+ value: changedValue
279
216
  });
280
217
  };
281
218
 
@@ -294,38 +231,37 @@ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
294
231
  };
295
232
 
296
233
  var handleIOnBlur = function handleIOnBlur(event) {
297
- suggestions && closeSuggestions();
234
+ closeSuggestions();
298
235
  if (isNotOptional(event.target.value)) onBlur === null || onBlur === void 0 ? void 0 : onBlur({
299
236
  value: event.target.value,
300
- error: getNotOptionalErrorMessage()
237
+ error: translatedLabels.formFields.requiredValueErrorMessage
301
238
  });else if (isLengthIncorrect(event.target.value)) onBlur === null || onBlur === void 0 ? void 0 : onBlur({
302
239
  value: event.target.value,
303
- error: getLengthErrorMessage(length)
304
- });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({
305
242
  value: event.target.value,
306
- error: getPatternErrorMessage()
307
- });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({
308
245
  value: event.target.value,
309
246
  error: getNumberErrorMessage(event.target.value)
310
247
  });else onBlur === null || onBlur === void 0 ? void 0 : onBlur({
311
- value: event.target.value,
312
- error: null
248
+ value: event.target.value
313
249
  });
314
250
  };
315
251
 
316
252
  var handleIOnKeyDown = function handleIOnKeyDown(event) {
317
- switch (event.keyCode) {
318
- case 40:
319
- // Arrow Down
320
- if (numberInputContext) {
253
+ switch (event.key) {
254
+ case "Down":
255
+ case "ArrowDown":
256
+ event.preventDefault();
257
+
258
+ if ((numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.typeNumber) === "number") {
321
259
  decrementNumber();
322
- event.preventDefault();
323
260
  } else {
324
- event.preventDefault();
325
261
  openSuggestions();
326
262
 
327
263
  if (!isAutosuggestError && !isSearching && filteredSuggestions.length > 0) {
328
- changeVisualFocusedSuggIndex(function (visualFocusedSuggIndex) {
264
+ changeVisualFocusIndex(function (visualFocusedSuggIndex) {
329
265
  if (visualFocusedSuggIndex < filteredSuggestions.length - 1) return visualFocusedSuggIndex + 1;else if (visualFocusedSuggIndex === filteredSuggestions.length - 1) return 0;
330
266
  });
331
267
  }
@@ -333,17 +269,17 @@ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
333
269
 
334
270
  break;
335
271
 
336
- case 38:
337
- // Arrow Up
338
- if (numberInputContext) {
272
+ case "Up":
273
+ case "ArrowUp":
274
+ event.preventDefault();
275
+
276
+ if ((numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.typeNumber) === "number") {
339
277
  incrementNumber();
340
- event.preventDefault();
341
278
  } else {
342
- event.preventDefault();
343
279
  openSuggestions();
344
280
 
345
281
  if (!isAutosuggestError && !isSearching && filteredSuggestions.length > 0) {
346
- changeVisualFocusedSuggIndex(function (visualFocusedSuggIndex) {
282
+ changeVisualFocusIndex(function (visualFocusedSuggIndex) {
347
283
  if (visualFocusedSuggIndex === 0 || visualFocusedSuggIndex === -1) return filteredSuggestions.length > 0 ? filteredSuggestions.length - 1 : suggestions.length - 1;else return visualFocusedSuggIndex - 1;
348
284
  });
349
285
  }
@@ -351,8 +287,8 @@ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
351
287
 
352
288
  break;
353
289
 
354
- case 27:
355
- // Esc
290
+ case "Esc":
291
+ case "Escape":
356
292
  event.preventDefault();
357
293
 
358
294
  if (hasSuggestions()) {
@@ -362,11 +298,10 @@ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
362
298
 
363
299
  break;
364
300
 
365
- case 13:
366
- // Enter
301
+ case "Enter":
367
302
  if (hasSuggestions() && !isSearching) {
368
- var validFocusedSuggestion = filteredSuggestions.length > 0 && visualFocusedSuggIndex >= 0 && visualFocusedSuggIndex < filteredSuggestions.length;
369
- validFocusedSuggestion && changeValue(filteredSuggestions[visualFocusedSuggIndex]);
303
+ var validFocusedSuggestion = filteredSuggestions.length > 0 && visualFocusIndex >= 0 && visualFocusIndex < filteredSuggestions.length;
304
+ validFocusedSuggestion && changeValue(filteredSuggestions[visualFocusIndex]);
370
305
  isOpen && closeSuggestions();
371
306
  }
372
307
 
@@ -439,15 +374,12 @@ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
439
374
  }
440
375
  };
441
376
 
442
- (0, _react.useLayoutEffect)(function () {
443
- var _suggestionsRef$curre, _visualFocusedOptionE;
377
+ var getTextInputWidth = (0, _react.useCallback)(function () {
378
+ var _inputContainerRef$cu;
444
379
 
445
- 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];
446
- visualFocusedOptionEl === null || visualFocusedOptionEl === void 0 ? void 0 : (_visualFocusedOptionE = visualFocusedOptionEl.scrollIntoView) === null || _visualFocusedOptionE === void 0 ? void 0 : _visualFocusedOptionE.call(visualFocusedOptionEl, {
447
- block: "nearest",
448
- inline: "start"
449
- });
450
- }, [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
+ }, []);
451
383
  (0, _react.useEffect)(function () {
452
384
  if (typeof suggestions === "function") {
453
385
  changeIsSearching(true);
@@ -471,53 +403,36 @@ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
471
403
  changeFilteredSuggestions(suggestions.filter(function (suggestion) {
472
404
  return suggestion.toUpperCase().startsWith((value !== null && value !== void 0 ? value : innerValue).toUpperCase());
473
405
  }));
474
- changeVisualFocusedSuggIndex(-1);
406
+ changeVisualFocusIndex(-1);
475
407
  }
476
408
 
477
- numberInputContext && setNumberProps(numberInputContext.typeNumber, numberInputContext.minNumber, numberInputContext.maxNumber, numberInputContext.stepNumber);
409
+ (numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.typeNumber) === "number" && setNumberProps(numberInputContext.typeNumber, numberInputContext.minNumber, numberInputContext.maxNumber, numberInputContext.stepNumber);
478
410
  }, [value, innerValue, suggestions, numberInputContext]);
479
-
480
- var HighlightedSuggestion = function HighlightedSuggestion(_ref2) {
481
- var suggestion = _ref2.suggestion,
482
- index = _ref2.index;
483
- var regEx = new RegExp(value !== null && value !== void 0 ? value : innerValue, "i");
484
- var matchedWords = suggestion.match(regEx);
485
- var noMatchedWords = suggestion.replace(regEx, "");
486
- var isLastOption = index === lastOptionIndex;
487
- return /*#__PURE__*/_react["default"].createElement(Suggestion, {
488
- id: "suggestion-".concat(index),
489
- onClick: function onClick() {
490
- changeValue(suggestion);
491
- closeSuggestions();
492
- },
493
- visualFocused: visualFocusedSuggIndex === index,
494
- role: "option",
495
- "aria-selected": visualFocusedSuggIndex === index && "true"
496
- }, /*#__PURE__*/_react["default"].createElement(StyledSuggestion, {
497
- last: isLastOption,
498
- visualFocused: visualFocusedSuggIndex === index
499
- }, typeof suggestions === "function" ? suggestion : /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("strong", null, matchedWords), noMatchedWords)));
500
- };
501
-
502
411
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
503
412
  theme: colorsTheme.textInput
504
- }, /*#__PURE__*/_react["default"].createElement(DxcInput, {
413
+ }, /*#__PURE__*/_react["default"].createElement(TextInputContainer, {
505
414
  margin: margin,
506
- ref: ref,
507
- size: size
508
- }, /*#__PURE__*/_react["default"].createElement(Label, {
415
+ size: size,
416
+ ref: ref
417
+ }, label && /*#__PURE__*/_react["default"].createElement(Label, {
509
418
  htmlFor: inputId,
510
419
  disabled: disabled,
511
- backgroundType: backgroundType
512
- }, label, " ", optional && /*#__PURE__*/_react["default"].createElement(OptionalLabel, null, "(Optional)")), /*#__PURE__*/_react["default"].createElement(HelperText, {
420
+ backgroundType: backgroundType,
421
+ hasHelperText: helperText ? true : false
422
+ }, label, " ", optional && /*#__PURE__*/_react["default"].createElement(OptionalLabel, null, translatedLabels.formFields.optionalLabel)), helperText && /*#__PURE__*/_react["default"].createElement(HelperText, {
513
423
  disabled: disabled,
514
424
  backgroundType: backgroundType
515
- }, helperText), /*#__PURE__*/_react["default"].createElement(InputContainer, {
516
- 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,
517
431
  disabled: disabled,
518
432
  backgroundType: backgroundType,
519
433
  onClick: handleInputContainerOnClick,
520
- onMouseDown: handleInputContainerOnMouseDown
434
+ onMouseDown: handleInputContainerOnMouseDown,
435
+ ref: inputContainerRef
521
436
  }, prefix && /*#__PURE__*/_react["default"].createElement(Prefix, {
522
437
  disabled: disabled,
523
438
  backgroundType: backgroundType
@@ -528,9 +443,7 @@ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
528
443
  placeholder: placeholder,
529
444
  onBlur: handleIOnBlur,
530
445
  onChange: handleIOnChange,
531
- onFocus: function onFocus() {
532
- openSuggestions();
533
- },
446
+ onFocus: openSuggestions,
534
447
  onKeyDown: handleIOnKeyDown,
535
448
  onMouseDown: function onMouseDown(event) {
536
449
  event.stopPropagation();
@@ -539,30 +452,32 @@ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
539
452
  ref: inputRef,
540
453
  backgroundType: backgroundType,
541
454
  pattern: pattern,
542
- minLength: length === null || length === void 0 ? void 0 : length.min,
543
- maxLength: length === null || length === void 0 ? void 0 : length.max,
544
- autoComplete: autocomplete,
455
+ minLength: minLength,
456
+ maxLength: maxLength,
457
+ autoComplete: autocomplete === "off" ? "nope" : autocomplete,
545
458
  tabIndex: tabIndex,
546
459
  role: isTextInputType() && hasSuggestions() ? "combobox" : "textbox",
547
460
  "aria-autocomplete": isTextInputType() && hasSuggestions() ? "list" : undefined,
548
461
  "aria-controls": isTextInputType() && hasSuggestions() ? autosuggestId : undefined,
549
- "aria-expanded": isTextInputType() && hasSuggestions() ? isOpen ? "true" : "false" : undefined,
550
- "aria-activedescendant": isTextInputType() && hasSuggestions() && isOpen && visualFocusedSuggIndex !== -1 ? "suggestion-".concat(visualFocusedSuggIndex) : undefined,
551
- "aria-invalid": error ? "true" : "false",
552
- "aria-describedby": error ? errorId : undefined,
553
- "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
554
468
  }), !disabled && error && /*#__PURE__*/_react["default"].createElement(ErrorIcon, {
555
469
  backgroundType: backgroundType,
556
470
  "aria-label": "Error"
557
- }, 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, {
558
472
  onClick: handleClearActionOnClick,
559
473
  onMouseDown: function onMouseDown(event) {
560
474
  event.stopPropagation();
561
475
  },
562
476
  backgroundType: backgroundType,
563
477
  tabIndex: tabIndex,
564
- "aria-label": "Clear"
565
- }, 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, {
566
481
  ref: actionRef,
567
482
  disabled: disabled,
568
483
  onClick: handleDecrementActionOnClick,
@@ -571,8 +486,9 @@ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
571
486
  },
572
487
  backgroundType: backgroundType,
573
488
  tabIndex: tabIndex,
574
- "aria-label": "Decrement"
575
- }, 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, {
576
492
  ref: actionRef,
577
493
  disabled: disabled,
578
494
  onClick: handleIncrementActionOnClick,
@@ -581,15 +497,17 @@ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
581
497
  },
582
498
  backgroundType: backgroundType,
583
499
  tabIndex: tabIndex,
584
- "aria-label": "Increment"
585
- }, 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, {
586
503
  ref: actionRef,
587
504
  disabled: disabled,
588
505
  onClick: action.onClick,
589
506
  onMouseDown: function onMouseDown(event) {
590
507
  event.stopPropagation();
591
508
  },
592
- title: (_action$title = action.title) !== null && _action$title !== void 0 ? _action$title : action.title,
509
+ title: action.title,
510
+ "aria-label": action.title,
593
511
  backgroundType: backgroundType,
594
512
  tabIndex: tabIndex
595
513
  }, typeof action.icon === "string" ? /*#__PURE__*/_react["default"].createElement(ActionIcon, {
@@ -597,41 +515,37 @@ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
597
515
  }) : action.icon), suffix && /*#__PURE__*/_react["default"].createElement(Suffix, {
598
516
  disabled: disabled,
599
517
  backgroundType: backgroundType
600
- }, suffix), isOpen && (filteredSuggestions.length > 0 || isSearching || isAutosuggestError) && /*#__PURE__*/_react["default"].createElement(Suggestions, {
601
- id: autosuggestId,
602
- isError: isAutosuggestError,
603
- 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
604
522
  event.preventDefault();
605
523
  },
606
- ref: suggestionsRef,
607
- role: "listbox",
608
- "aria-label": label
609
- }, !isSearching && !isAutosuggestError && filteredSuggestions.length > 0 && filteredSuggestions.map(function (suggestion, index) {
610
- return /*#__PURE__*/_react["default"].createElement(HighlightedSuggestion, {
611
- key: "suggestion-".concat((0, _uuid.v4)()),
612
- suggestion: suggestion,
613
- index: index
614
- });
615
- }), isSearching && /*#__PURE__*/_react["default"].createElement(SuggestionsSystemMessage, null, "Searching..."), isAutosuggestError && /*#__PURE__*/_react["default"].createElement(SuggestionsError, null, /*#__PURE__*/_react["default"].createElement(SuggestionsErrorIcon, {
616
- backgroundType: backgroundType
617
- }, textInputIcons.error), "Error fetching data"))), !disabled && /*#__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, {
618
542
  id: errorId,
619
- backgroundType: backgroundType
543
+ backgroundType: backgroundType,
544
+ "aria-live": error ? "assertive" : "off"
620
545
  }, error)));
621
546
  });
622
547
 
623
- var sizes = {
624
- small: "240px",
625
- medium: "360px",
626
- large: "480px",
627
- fillParent: "100%"
628
- };
629
-
630
- var calculateWidth = function calculateWidth(margin, size) {
631
- return size === "fillParent" ? "calc(".concat(sizes[size], " - ").concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")") : sizes[size];
632
- };
633
-
634
- 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) {
635
549
  return calculateWidth(props.margin, props.size);
636
550
  }, function (props) {
637
551
  return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
@@ -645,7 +559,7 @@ var DxcInput = _styledComponents["default"].div(_templateObject || (_templateObj
645
559
  return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
646
560
  });
647
561
 
648
- var Label = _styledComponents["default"].label(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n line-height: ", ";\n"])), function (props) {
562
+ var Label = _styledComponents["default"].label(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n line-height: ", ";\n ", "\n"])), function (props) {
649
563
  return props.disabled ? props.backgroundType === "dark" ? props.theme.disabledLabelFontColorOnDark : props.theme.disabledLabelFontColor : props.backgroundType === "dark" ? props.theme.labelFontColorOnDark : props.theme.labelFontColor;
650
564
  }, function (props) {
651
565
  return props.theme.fontFamily;
@@ -657,13 +571,15 @@ var Label = _styledComponents["default"].label(_templateObject2 || (_templateObj
657
571
  return props.theme.labelFontWeight;
658
572
  }, function (props) {
659
573
  return props.theme.labelLineHeight;
574
+ }, function (props) {
575
+ return !props.hasHelperText && "margin-bottom: 0.25rem";
660
576
  });
661
577
 
662
578
  var OptionalLabel = _styledComponents["default"].span(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n font-weight: ", ";\n"])), function (props) {
663
579
  return props.theme.optionalLabelFontWeight;
664
580
  });
665
581
 
666
- var HelperText = _styledComponents["default"].span(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n line-height: ", ";\n"])), function (props) {
582
+ var HelperText = _styledComponents["default"].span(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n line-height: ", ";\n margin-bottom: 0.25rem;\n"])), function (props) {
667
583
  return props.disabled ? props.backgroundType === "dark" ? props.theme.disabledHelperTextFontColorOnDark : props.theme.disabledHelperTextFontColor : props.backgroundType === "dark" ? props.theme.helperTextFontColorOnDark : props.theme.helperTextFontColor;
668
584
  }, function (props) {
669
585
  return props.theme.fontFamily;
@@ -677,9 +593,7 @@ var HelperText = _styledComponents["default"].span(_templateObject4 || (_templat
677
593
  return props.theme.helperTextLineHeight;
678
594
  });
679
595
 
680
- var InputContainer = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n position: relative;\n align-items: center;\n height: calc(2.5rem - 2px);\n margin: ", ";\n padding: 0 0.5rem;\n\n ", "\n box-shadow: 0 0 0 2px transparent;\n border-radius: 4px;\n border: 1px solid\n ", ";\n ", "\n ", ";\n\n ", ";\n"])), function (props) {
681
- return "".concat(props.theme.inputMarginTop, " 0 ").concat(props.theme.inputMarginBottom, " 0");
682
- }, function (props) {
596
+ var InputContainer = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n position: relative;\n align-items: center;\n height: calc(2.5rem - 2px);\n padding: 0 0.5rem;\n\n ", "\n box-shadow: 0 0 0 2px transparent;\n border-radius: 4px;\n border: 1px solid\n ", ";\n ", "\n ", ";\n\n ", ";\n"])), function (props) {
683
597
  if (props.disabled) return props.backgroundType === "dark" ? "background-color: ".concat(props.theme.disabledContainerFillColorOnDark, ";") : "background-color: ".concat(props.theme.disabledContainerFillColor, ";");
684
598
  }, function (props) {
685
599
  if (props.disabled) return props.backgroundType === "dark" ? props.theme.disabledBorderColorOnDark : props.theme.disabledBorderColor;else return props.backgroundType === "dark" ? props.theme.enabledBorderColorOnDark : props.theme.enabledBorderColor;
@@ -691,7 +605,7 @@ var InputContainer = _styledComponents["default"].div(_templateObject5 || (_temp
691
605
  return !props.disabled && "\n &:hover {\n border-color: ".concat(props.error ? "transparent" : props.backgroundType === "dark" ? props.theme.hoverBorderColorOnDark : props.theme.hoverBorderColor, ";\n ").concat(props.error && "box-shadow: 0 0 0 2px ".concat(props.backgroundType === "dark" ? props.theme.hoverErrorBorderColorOnDark : props.theme.hoverErrorBorderColor, ";"), "\n }\n &:focus-within {\n border-color: transparent;\n box-shadow: 0 0 0 2px ").concat(props.backgroundType === "dark" ? props.theme.focusBorderColorOnDark : props.theme.focusBorderColor, ";\n }\n ");
692
606
  });
693
607
 
694
- var Input = _styledComponents["default"].input(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n height: calc(2.5rem - 2px);\n width: 100%;\n background: none;\n border: none;\n outline: none;\n padding: 0 0.5rem;\n\n color: ", ";\n\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n line-height: 1.5em;\n ", "\n\n ::placeholder {\n color: ", ";\n }\n"])), function (props) {
608
+ var Input = _styledComponents["default"].input(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n height: calc(2.5rem - 2px);\n width: 100%;\n background: none;\n border: none;\n outline: none;\n padding: 0 0.5rem;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n color: ", ";\n\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n line-height: 1.5em;\n ", "\n\n ::placeholder {\n color: ", ";\n }\n"])), function (props) {
695
609
  return props.disabled ? props.backgroundType === "dark" ? props.theme.disabledValueFontColorOnDark : props.theme.disabledValueFontColor : props.backgroundType === "dark" ? props.theme.valueFontColorOnDark : props.theme.valueFontColor;
696
610
  }, function (props) {
697
611
  return props.theme.fontFamily;
@@ -739,87 +653,11 @@ var ErrorIcon = _styledComponents["default"].span(_templateObject11 || (_templat
739
653
  return props.backgroundType === "dark" ? props.theme.errorIconColorOnDark : props.theme.errorIconColor;
740
654
  });
741
655
 
742
- var Error = _styledComponents["default"].span(_templateObject12 || (_templateObject12 = (0, _taggedTemplateLiteral2["default"])(["\n min-height: 1.5em;\n color: ", ";\n font-family: ", ";\n font-size: 0.75rem;\n font-weight: 400;\n line-height: 1.5em;\n"])), function (props) {
656
+ var Error = _styledComponents["default"].span(_templateObject12 || (_templateObject12 = (0, _taggedTemplateLiteral2["default"])(["\n min-height: 1.5em;\n color: ", ";\n font-family: ", ";\n font-size: 0.75rem;\n font-weight: 400;\n line-height: 1.5em;\n margin-top: 0.25rem;\n"])), function (props) {
743
657
  return props.backgroundType === "dark" ? props.theme.errorMessageColorOnDark : props.theme.errorMessageColor;
744
658
  }, function (props) {
745
659
  return props.theme.fontFamily;
746
660
  });
747
661
 
748
- 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) {
749
- return props.isError ? props.theme.errorListDialogBackgroundColor : props.theme.listDialogBackgroundColor;
750
- }, function (props) {
751
- return props.isError ? props.theme.errorListDialogBorderColor : props.theme.listDialogBorderColor;
752
- }, function (props) {
753
- return props.theme.listOptionFontColor;
754
- }, function (props) {
755
- return props.theme.fontFamily;
756
- }, function (props) {
757
- return props.theme.listOptionFontSize;
758
- }, function (props) {
759
- return props.theme.listOptionFontStyle;
760
- }, function (props) {
761
- return props.theme.listOptionFontWeight;
762
- });
763
-
764
- var Suggestion = _styledComponents["default"].li(_templateObject14 || (_templateObject14 = (0, _taggedTemplateLiteral2["default"])(["\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) {
765
- return props.visualFocused ? props.theme.focusListOptionBorderColor : "transparent";
766
- }, function (props) {
767
- return props.theme.hoverListOptionBackgroundColor;
768
- }, function (props) {
769
- return props.theme.activeListOptionBackgroundColor;
770
- });
771
-
772
- var StyledSuggestion = _styledComponents["default"].span(_templateObject15 || (_templateObject15 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\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) {
773
- return props.last || props.visualFocused ? "border-bottom: 1px solid transparent" : "border-bottom: 1px solid ".concat(props.theme.listOptionDividerColor);
774
- });
775
-
776
- 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) {
777
- return props.theme.systemMessageFontColor;
778
- });
779
-
780
- 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) {
781
- return props.backgroundType === "dark" ? props.theme.errorIconColorOnDark : props.theme.errorIconColor;
782
- });
783
-
784
- 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) {
785
- return props.theme.errorListDialogFontColor;
786
- });
787
-
788
- DxcTextInput.propTypes = {
789
- label: _propTypes["default"].string,
790
- name: _propTypes["default"].string,
791
- value: _propTypes["default"].string,
792
- helperText: _propTypes["default"].string,
793
- placeholder: _propTypes["default"].string,
794
- action: _propTypes["default"].shape({
795
- onClick: _propTypes["default"].func.isRequired,
796
- icon: _propTypes["default"].oneOfType([_propTypes["default"].shape({
797
- type: _propTypes["default"].oneOf(["svg"])
798
- }), _propTypes["default"].string]).isRequired
799
- }),
800
- clearable: _propTypes["default"].bool,
801
- disabled: _propTypes["default"].bool,
802
- optional: _propTypes["default"].bool,
803
- prefix: _propTypes["default"].string,
804
- suffix: _propTypes["default"].string,
805
- onChange: _propTypes["default"].func,
806
- onBlur: _propTypes["default"].func,
807
- error: _propTypes["default"].string,
808
- autocomplete: _propTypes["default"].string,
809
- margin: _propTypes["default"].oneOfType([_propTypes["default"].shape({
810
- top: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
811
- bottom: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
812
- left: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
813
- right: _propTypes["default"].oneOf(Object.keys(_variables.spaces))
814
- }), _propTypes["default"].oneOf((0, _toConsumableArray2["default"])(Object.keys(_variables.spaces)))]),
815
- size: _propTypes["default"].oneOf((0, _toConsumableArray2["default"])(Object.keys(sizes))),
816
- suggestions: _propTypes["default"].oneOfType([_propTypes["default"].func, _propTypes["default"].array]),
817
- pattern: _propTypes["default"].string,
818
- length: _propTypes["default"].shape({
819
- min: _propTypes["default"].number,
820
- max: _propTypes["default"].number
821
- }),
822
- tabIndex: _propTypes["default"].number
823
- };
824
662
  var _default = DxcTextInput;
825
663
  exports["default"] = _default;