@dxc-technology/halstack-react 0.0.0-31c6b1f → 0.0.0-324b670

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 (311) hide show
  1. package/BackgroundColorContext.d.ts +1 -10
  2. package/BackgroundColorContext.js +5 -22
  3. package/HalstackContext.d.ts +1235 -0
  4. package/HalstackContext.js +310 -0
  5. package/README.md +47 -0
  6. package/accordion/Accordion.d.ts +1 -1
  7. package/accordion/Accordion.js +116 -160
  8. package/accordion/Accordion.stories.tsx +103 -127
  9. package/accordion/Accordion.test.js +25 -41
  10. package/accordion/types.d.ts +5 -16
  11. package/accordion-group/AccordionGroup.d.ts +4 -3
  12. package/accordion-group/AccordionGroup.js +31 -98
  13. package/accordion-group/AccordionGroup.stories.tsx +94 -67
  14. package/accordion-group/AccordionGroup.test.js +52 -105
  15. package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
  16. package/accordion-group/AccordionGroupAccordion.js +31 -0
  17. package/accordion-group/types.d.ts +11 -16
  18. package/alert/Alert.js +23 -59
  19. package/alert/Alert.stories.tsx +28 -0
  20. package/alert/Alert.test.js +29 -46
  21. package/alert/types.d.ts +5 -5
  22. package/badge/Badge.d.ts +1 -1
  23. package/badge/Badge.js +8 -19
  24. package/badge/types.d.ts +2 -1
  25. package/bleed/Bleed.js +14 -55
  26. package/bleed/Bleed.stories.tsx +95 -95
  27. package/bleed/types.d.ts +2 -2
  28. package/box/Box.d.ts +1 -1
  29. package/box/Box.js +30 -81
  30. package/box/Box.stories.tsx +38 -51
  31. package/box/Box.test.js +2 -7
  32. package/box/types.d.ts +3 -14
  33. package/bulleted-list/BulletedList.d.ts +7 -0
  34. package/bulleted-list/BulletedList.js +89 -0
  35. package/bulleted-list/BulletedList.stories.tsx +115 -0
  36. package/bulleted-list/types.d.ts +38 -0
  37. package/button/Button.d.ts +1 -1
  38. package/button/Button.js +63 -115
  39. package/button/Button.stories.tsx +160 -90
  40. package/button/Button.test.js +18 -17
  41. package/button/types.d.ts +12 -8
  42. package/card/Card.d.ts +1 -1
  43. package/card/Card.js +64 -107
  44. package/card/Card.stories.tsx +12 -42
  45. package/card/Card.test.js +11 -22
  46. package/card/types.d.ts +6 -11
  47. package/checkbox/Checkbox.d.ts +2 -2
  48. package/checkbox/Checkbox.js +142 -181
  49. package/checkbox/Checkbox.stories.tsx +128 -94
  50. package/checkbox/Checkbox.test.js +160 -39
  51. package/checkbox/types.d.ts +11 -3
  52. package/chip/Chip.js +39 -79
  53. package/chip/Chip.stories.tsx +121 -26
  54. package/chip/Chip.test.js +16 -31
  55. package/chip/types.d.ts +4 -4
  56. package/common/OpenSans.css +68 -80
  57. package/common/coreTokens.d.ts +237 -0
  58. package/common/coreTokens.js +184 -0
  59. package/common/utils.d.ts +1 -0
  60. package/common/utils.js +6 -12
  61. package/common/variables.d.ts +1381 -0
  62. package/common/variables.js +998 -1117
  63. package/container/Container.d.ts +4 -0
  64. package/container/Container.js +194 -0
  65. package/container/Container.stories.tsx +214 -0
  66. package/container/types.d.ts +74 -0
  67. package/date-input/Calendar.d.ts +4 -0
  68. package/date-input/Calendar.js +214 -0
  69. package/date-input/DateInput.js +153 -299
  70. package/date-input/DateInput.stories.tsx +203 -56
  71. package/date-input/DateInput.test.js +700 -371
  72. package/date-input/DatePicker.d.ts +4 -0
  73. package/date-input/DatePicker.js +115 -0
  74. package/date-input/Icons.d.ts +6 -0
  75. package/date-input/Icons.js +58 -0
  76. package/date-input/YearPicker.d.ts +4 -0
  77. package/date-input/YearPicker.js +100 -0
  78. package/date-input/types.d.ts +72 -15
  79. package/dialog/Dialog.d.ts +1 -1
  80. package/dialog/Dialog.js +73 -107
  81. package/dialog/Dialog.stories.tsx +320 -167
  82. package/dialog/Dialog.test.js +287 -20
  83. package/dialog/types.d.ts +18 -25
  84. package/dropdown/Dropdown.d.ts +1 -1
  85. package/dropdown/Dropdown.js +243 -300
  86. package/dropdown/Dropdown.stories.tsx +245 -56
  87. package/dropdown/Dropdown.test.js +575 -165
  88. package/dropdown/DropdownMenu.d.ts +4 -0
  89. package/dropdown/DropdownMenu.js +63 -0
  90. package/dropdown/DropdownMenuItem.d.ts +4 -0
  91. package/dropdown/DropdownMenuItem.js +67 -0
  92. package/dropdown/types.d.ts +32 -14
  93. package/file-input/FileInput.d.ts +2 -2
  94. package/file-input/FileInput.js +246 -357
  95. package/file-input/FileInput.stories.tsx +123 -12
  96. package/file-input/FileInput.test.js +369 -367
  97. package/file-input/FileItem.d.ts +4 -14
  98. package/file-input/FileItem.js +50 -99
  99. package/file-input/types.d.ts +25 -8
  100. package/flex/Flex.d.ts +4 -0
  101. package/flex/Flex.js +57 -0
  102. package/flex/Flex.stories.tsx +112 -0
  103. package/flex/types.d.ts +97 -0
  104. package/footer/Footer.d.ts +1 -1
  105. package/footer/Footer.js +57 -115
  106. package/footer/Footer.stories.tsx +41 -19
  107. package/footer/Footer.test.js +33 -57
  108. package/footer/Icons.d.ts +2 -2
  109. package/footer/Icons.js +3 -8
  110. package/footer/types.d.ts +21 -28
  111. package/grid/Grid.d.ts +7 -0
  112. package/grid/Grid.js +76 -0
  113. package/grid/Grid.stories.tsx +219 -0
  114. package/grid/types.d.ts +115 -0
  115. package/header/Header.d.ts +4 -3
  116. package/header/Header.js +90 -170
  117. package/header/Header.stories.tsx +118 -39
  118. package/header/Header.test.js +13 -26
  119. package/header/Icons.d.ts +2 -2
  120. package/header/Icons.js +4 -9
  121. package/header/types.d.ts +5 -19
  122. package/heading/Heading.js +10 -32
  123. package/heading/Heading.test.js +71 -88
  124. package/heading/types.d.ts +7 -7
  125. package/image/Image.d.ts +4 -0
  126. package/image/Image.js +70 -0
  127. package/image/Image.stories.tsx +127 -0
  128. package/image/types.d.ts +72 -0
  129. package/inset/Inset.js +14 -55
  130. package/inset/Inset.stories.tsx +37 -36
  131. package/inset/types.d.ts +2 -2
  132. package/layout/ApplicationLayout.d.ts +16 -6
  133. package/layout/ApplicationLayout.js +82 -166
  134. package/layout/ApplicationLayout.stories.tsx +85 -94
  135. package/layout/Icons.d.ts +8 -0
  136. package/layout/Icons.js +51 -48
  137. package/layout/SidenavContext.d.ts +5 -0
  138. package/layout/SidenavContext.js +13 -0
  139. package/layout/types.d.ts +19 -35
  140. package/link/Link.d.ts +3 -2
  141. package/link/Link.js +61 -95
  142. package/link/Link.stories.tsx +155 -53
  143. package/link/Link.test.js +25 -53
  144. package/link/types.d.ts +15 -31
  145. package/main.d.ts +11 -12
  146. package/main.js +58 -109
  147. package/nav-tabs/NavTabs.d.ts +8 -0
  148. package/nav-tabs/NavTabs.js +90 -0
  149. package/nav-tabs/NavTabs.stories.tsx +274 -0
  150. package/nav-tabs/NavTabs.test.js +75 -0
  151. package/nav-tabs/Tab.d.ts +4 -0
  152. package/nav-tabs/Tab.js +117 -0
  153. package/nav-tabs/types.d.ts +52 -0
  154. package/number-input/NumberInput.d.ts +7 -0
  155. package/number-input/NumberInput.js +26 -35
  156. package/number-input/NumberInput.stories.tsx +42 -26
  157. package/number-input/NumberInput.test.js +701 -377
  158. package/number-input/types.d.ts +12 -6
  159. package/package.json +44 -46
  160. package/paginator/Icons.d.ts +5 -0
  161. package/paginator/Icons.js +21 -47
  162. package/paginator/Paginator.js +34 -91
  163. package/paginator/Paginator.stories.tsx +24 -0
  164. package/paginator/Paginator.test.js +280 -211
  165. package/paginator/types.d.ts +3 -3
  166. package/paragraph/Paragraph.d.ts +5 -0
  167. package/paragraph/Paragraph.js +22 -0
  168. package/paragraph/Paragraph.stories.tsx +27 -0
  169. package/password-input/Icons.d.ts +6 -0
  170. package/password-input/Icons.js +35 -0
  171. package/password-input/PasswordInput.js +57 -123
  172. package/password-input/PasswordInput.stories.tsx +1 -33
  173. package/password-input/PasswordInput.test.js +160 -143
  174. package/password-input/types.d.ts +9 -8
  175. package/progress-bar/ProgressBar.js +65 -91
  176. package/progress-bar/ProgressBar.stories.tsx +93 -0
  177. package/progress-bar/ProgressBar.test.js +72 -44
  178. package/progress-bar/types.d.ts +3 -3
  179. package/quick-nav/QuickNav.js +71 -41
  180. package/quick-nav/QuickNav.stories.tsx +146 -27
  181. package/quick-nav/types.d.ts +10 -10
  182. package/radio-group/Radio.d.ts +1 -1
  183. package/radio-group/Radio.js +59 -76
  184. package/radio-group/RadioGroup.js +71 -116
  185. package/radio-group/RadioGroup.stories.tsx +132 -18
  186. package/radio-group/RadioGroup.test.js +518 -457
  187. package/radio-group/types.d.ts +10 -10
  188. package/resultset-table/Icons.d.ts +7 -0
  189. package/resultset-table/Icons.js +47 -0
  190. package/resultset-table/ResultsetTable.js +159 -0
  191. package/{resultsetTable → resultset-table}/ResultsetTable.stories.tsx +50 -25
  192. package/{resultsetTable → resultset-table}/ResultsetTable.test.js +117 -118
  193. package/{resultsetTable → resultset-table}/types.d.ts +7 -7
  194. package/resultset-table/types.js +5 -0
  195. package/select/Icons.d.ts +7 -7
  196. package/select/Icons.js +1 -5
  197. package/select/Listbox.d.ts +1 -1
  198. package/select/Listbox.js +46 -51
  199. package/select/Option.js +20 -50
  200. package/select/Select.js +155 -228
  201. package/select/Select.stories.tsx +525 -136
  202. package/select/Select.test.js +1973 -1696
  203. package/select/types.d.ts +16 -20
  204. package/sidenav/Icons.d.ts +7 -0
  205. package/sidenav/Icons.js +47 -0
  206. package/sidenav/Sidenav.d.ts +6 -5
  207. package/sidenav/Sidenav.js +131 -71
  208. package/sidenav/Sidenav.stories.tsx +251 -151
  209. package/sidenav/Sidenav.test.js +26 -45
  210. package/sidenav/types.d.ts +52 -26
  211. package/slider/Slider.d.ts +2 -2
  212. package/slider/Slider.js +149 -181
  213. package/slider/Slider.test.js +185 -81
  214. package/slider/types.d.ts +7 -3
  215. package/spinner/Spinner.js +31 -75
  216. package/spinner/{Spinner.stories.jsx → Spinner.stories.tsx} +53 -27
  217. package/spinner/Spinner.test.js +26 -35
  218. package/spinner/types.d.ts +3 -3
  219. package/switch/Switch.d.ts +2 -2
  220. package/switch/Switch.js +147 -125
  221. package/switch/Switch.stories.tsx +37 -60
  222. package/switch/Switch.test.js +138 -56
  223. package/switch/types.d.ts +7 -3
  224. package/table/Table.js +8 -30
  225. package/table/{Table.stories.jsx → Table.stories.tsx} +80 -1
  226. package/table/Table.test.js +3 -8
  227. package/table/types.d.ts +8 -8
  228. package/tabs/Tab.d.ts +4 -0
  229. package/tabs/Tab.js +113 -0
  230. package/tabs/Tabs.js +315 -141
  231. package/tabs/Tabs.stories.tsx +119 -11
  232. package/tabs/Tabs.test.js +223 -69
  233. package/tabs/types.d.ts +28 -18
  234. package/tag/Tag.js +29 -61
  235. package/tag/Tag.stories.tsx +14 -1
  236. package/tag/Tag.test.js +20 -31
  237. package/tag/types.d.ts +7 -7
  238. package/text-input/Icons.d.ts +8 -0
  239. package/text-input/Icons.js +56 -0
  240. package/text-input/Suggestion.d.ts +4 -0
  241. package/text-input/Suggestion.js +67 -0
  242. package/text-input/Suggestions.d.ts +4 -0
  243. package/text-input/Suggestions.js +84 -0
  244. package/text-input/TextInput.js +309 -527
  245. package/text-input/TextInput.stories.tsx +266 -275
  246. package/text-input/TextInput.test.js +1403 -1376
  247. package/text-input/types.d.ts +53 -14
  248. package/textarea/Textarea.js +79 -131
  249. package/textarea/Textarea.stories.tsx +174 -0
  250. package/textarea/Textarea.test.js +152 -183
  251. package/textarea/types.d.ts +10 -6
  252. package/toggle-group/ToggleGroup.d.ts +2 -2
  253. package/toggle-group/ToggleGroup.js +92 -106
  254. package/toggle-group/ToggleGroup.stories.tsx +49 -4
  255. package/toggle-group/ToggleGroup.test.js +69 -88
  256. package/toggle-group/types.d.ts +26 -17
  257. package/typography/Typography.d.ts +4 -0
  258. package/typography/Typography.js +23 -0
  259. package/typography/Typography.stories.tsx +198 -0
  260. package/typography/types.d.ts +18 -0
  261. package/typography/types.js +5 -0
  262. package/useTheme.d.ts +1133 -1
  263. package/useTheme.js +4 -11
  264. package/useTranslatedLabels.d.ts +85 -0
  265. package/useTranslatedLabels.js +14 -0
  266. package/utils/BaseTypography.d.ts +21 -0
  267. package/utils/BaseTypography.js +94 -0
  268. package/utils/FocusLock.d.ts +13 -0
  269. package/utils/FocusLock.js +121 -0
  270. package/wizard/Wizard.js +51 -91
  271. package/wizard/Wizard.stories.tsx +40 -1
  272. package/wizard/Wizard.test.js +54 -81
  273. package/wizard/types.d.ts +7 -7
  274. package/ThemeContext.d.ts +0 -10
  275. package/ThemeContext.js +0 -243
  276. package/card/ice-cream.jpg +0 -0
  277. package/common/RequiredComponent.js +0 -32
  278. package/list/List.d.ts +0 -4
  279. package/list/List.js +0 -47
  280. package/list/List.stories.tsx +0 -95
  281. package/list/types.d.ts +0 -7
  282. package/number-input/NumberInputContext.d.ts +0 -4
  283. package/number-input/NumberInputContext.js +0 -19
  284. package/number-input/numberInputContextTypes.d.ts +0 -19
  285. package/progress-bar/ProgressBar.stories.jsx +0 -58
  286. package/radio/Radio.d.ts +0 -4
  287. package/radio/Radio.js +0 -173
  288. package/radio/Radio.stories.tsx +0 -192
  289. package/radio/Radio.test.js +0 -71
  290. package/radio/types.d.ts +0 -54
  291. package/resultsetTable/ResultsetTable.js +0 -254
  292. package/row/Row.d.ts +0 -3
  293. package/row/Row.js +0 -127
  294. package/row/Row.stories.tsx +0 -237
  295. package/row/types.d.ts +0 -28
  296. package/slider/Slider.stories.tsx +0 -177
  297. package/stack/Stack.d.ts +0 -3
  298. package/stack/Stack.js +0 -97
  299. package/stack/Stack.stories.tsx +0 -164
  300. package/stack/types.d.ts +0 -24
  301. package/text/Text.d.ts +0 -7
  302. package/text/Text.js +0 -30
  303. package/text/Text.stories.tsx +0 -19
  304. package/textarea/Textarea.stories.jsx +0 -157
  305. /package/{list → bulleted-list}/types.js +0 -0
  306. /package/{radio → container}/types.js +0 -0
  307. /package/{resultsetTable → flex}/types.js +0 -0
  308. /package/{row → grid}/types.js +0 -0
  309. /package/{stack → image}/types.js +0 -0
  310. /package/{number-input/numberInputContextTypes.js → nav-tabs/types.js} +0 -0
  311. /package/{resultsetTable → resultset-table}/ResultsetTable.d.ts +0 -0
package/select/Select.js CHANGED
@@ -1,62 +1,42 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  var _typeof3 = require("@babel/runtime/helpers/typeof");
6
-
7
5
  Object.defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
10
8
  exports["default"] = void 0;
11
-
12
9
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
13
-
14
10
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
15
-
16
11
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
17
-
18
12
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
19
-
20
13
  var _react = _interopRequireWildcard(require("react"));
21
-
22
14
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
23
-
24
15
  var _useTheme = _interopRequireDefault(require("../useTheme"));
25
-
26
- var _variables = require("../common/variables.js");
27
-
16
+ var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
17
+ var _variables = require("../common/variables");
28
18
  var _uuid = require("uuid");
29
-
30
- var _utils = require("../common/utils.js");
31
-
19
+ var _utils = require("../common/utils");
32
20
  var _Icons = _interopRequireDefault(require("./Icons"));
33
-
34
21
  var _Listbox = _interopRequireDefault(require("./Listbox"));
35
-
36
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17;
37
-
38
- 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); }
39
-
40
- 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; }
41
-
42
- var getNotOptionalErrorMessage = function getNotOptionalErrorMessage() {
43
- return "This field is required. Please, enter a value.";
44
- };
45
-
22
+ var Popover = _interopRequireWildcard(require("@radix-ui/react-popover"));
23
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17; // @ts-nocheck
24
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
25
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof3(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
46
26
  var groupsHaveOptions = function groupsHaveOptions(innerOptions) {
47
27
  return innerOptions[0].hasOwnProperty("options") ? innerOptions[0].options ? innerOptions.some(function (groupOption) {
48
28
  return groupOption.options.length > 0;
49
29
  }) : false : true;
50
30
  };
51
-
52
31
  var filteredGroupsHaveOptions = function filteredGroupsHaveOptions(filteredOptions) {
53
32
  return filteredOptions !== null && filteredOptions !== void 0 && filteredOptions[0].options ? filteredOptions.some(function (groupOption) {
54
33
  var _groupOption$options;
55
-
56
34
  return ((_groupOption$options = groupOption.options) === null || _groupOption$options === void 0 ? void 0 : _groupOption$options.length) > 0;
57
35
  }) : true;
58
36
  };
59
-
37
+ var canOpenOptions = function canOpenOptions(options, disabled) {
38
+ return !disabled && (options === null || options === void 0 ? void 0 : options.length) > 0 && groupsHaveOptions(options);
39
+ };
60
40
  var filterOptionsBySearchValue = function filterOptionsBySearchValue(options, searchValue) {
61
41
  if ((options === null || options === void 0 ? void 0 : options.length) > 0) {
62
42
  if (options[0].options) return options.map(function (optionGroup) {
@@ -72,32 +52,26 @@ var filterOptionsBySearchValue = function filterOptionsBySearchValue(options, se
72
52
  });
73
53
  }
74
54
  };
75
-
76
55
  var getLastOptionIndex = function getLastOptionIndex(options, filteredOptions, searchable, optional, multiple) {
77
56
  var last = 0;
78
-
79
57
  var reducer = function reducer(acc, current) {
80
58
  var _current$options;
81
-
82
59
  return acc + ((_current$options = current.options) === null || _current$options === void 0 ? void 0 : _current$options.length);
83
60
  };
84
-
85
61
  if (searchable && filteredOptions.length > 0) filteredOptions[0].options ? last = filteredOptions.reduce(reducer, 0) - 1 : last = filteredOptions.length - 1;else if ((options === null || options === void 0 ? void 0 : options.length) > 0) options[0].options ? last = options.reduce(reducer, 0) - 1 : last = options.length - 1;
86
62
  return optional && !multiple ? last + 1 : last;
87
63
  };
88
-
89
64
  var getSelectedOption = function getSelectedOption(value, options, multiple, optional, optionalItem) {
90
65
  var selectedOption = multiple ? [] : {};
91
66
  var singleSelectionIndex;
92
-
93
67
  if (multiple) {
94
68
  if ((options === null || options === void 0 ? void 0 : options.length) > 0) {
95
69
  options.forEach(function (option) {
96
70
  if (option.options) {
97
71
  option.options.forEach(function (singleOption) {
98
- if (value.includes(singleOption.value)) selectedOption.push(singleOption);
72
+ if (value.includes(singleOption.value) && Array.isArray(selectedOption)) selectedOption.push(singleOption);
99
73
  });
100
- } else if (value.includes(option.value)) selectedOption.push(option);
74
+ } else if (value.includes(option.value) && Array.isArray(selectedOption)) selectedOption.push(option);
101
75
  });
102
76
  }
103
77
  } else {
@@ -114,7 +88,6 @@ var getSelectedOption = function getSelectedOption(value, options, multiple, opt
114
88
  singleSelectionIndex = optional ? group_index + 1 : group_index;
115
89
  return true;
116
90
  }
117
-
118
91
  group_index++;
119
92
  });
120
93
  } else if (option.value === value) {
@@ -125,74 +98,88 @@ var getSelectedOption = function getSelectedOption(value, options, multiple, opt
125
98
  });
126
99
  }
127
100
  }
128
-
129
101
  return {
130
102
  selectedOption: selectedOption,
131
103
  singleSelectionIndex: singleSelectionIndex
132
104
  };
133
105
  };
134
-
106
+ var notOptionalCheck = function notOptionalCheck(value, multiple, optional) {
107
+ return !optional && (multiple ? value.length === 0 : value === "");
108
+ };
109
+ var useWidth = function useWidth(target) {
110
+ var _useState = (0, _react.useState)(0),
111
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
112
+ width = _useState2[0],
113
+ setWidth = _useState2[1];
114
+ (0, _react.useEffect)(function () {
115
+ if (target != null) {
116
+ setWidth(target.getBoundingClientRect().width);
117
+ var triggerObserver = new ResizeObserver(function (entries) {
118
+ var rect = entries[0].target.getBoundingClientRect();
119
+ setWidth(rect === null || rect === void 0 ? void 0 : rect.width);
120
+ });
121
+ triggerObserver.observe(target);
122
+ return function () {
123
+ triggerObserver.unobserve(target);
124
+ };
125
+ }
126
+ }, [target]);
127
+ return width;
128
+ };
135
129
  var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
136
- var _selectedOption$label;
137
-
130
+ var _ref4, _selectedOption$label;
138
131
  var label = _ref.label,
139
- _ref$name = _ref.name,
140
- name = _ref$name === void 0 ? "" : _ref$name,
141
- defaultValue = _ref.defaultValue,
142
- value = _ref.value,
143
- options = _ref.options,
144
- helperText = _ref.helperText,
145
- _ref$placeholder = _ref.placeholder,
146
- placeholder = _ref$placeholder === void 0 ? "" : _ref$placeholder,
147
- _ref$disabled = _ref.disabled,
148
- disabled = _ref$disabled === void 0 ? false : _ref$disabled,
149
- _ref$optional = _ref.optional,
150
- optional = _ref$optional === void 0 ? false : _ref$optional,
151
- _ref$searchable = _ref.searchable,
152
- searchable = _ref$searchable === void 0 ? false : _ref$searchable,
153
- _ref$multiple = _ref.multiple,
154
- multiple = _ref$multiple === void 0 ? false : _ref$multiple,
155
- onChange = _ref.onChange,
156
- onBlur = _ref.onBlur,
157
- error = _ref.error,
158
- margin = _ref.margin,
159
- _ref$size = _ref.size,
160
- size = _ref$size === void 0 ? "medium" : _ref$size,
161
- _ref$tabIndex = _ref.tabIndex,
162
- tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
163
-
164
- var _useState = (0, _react.useState)("select-".concat((0, _uuid.v4)())),
165
- _useState2 = (0, _slicedToArray2["default"])(_useState, 1),
166
- selectId = _useState2[0];
167
-
132
+ _ref$name = _ref.name,
133
+ name = _ref$name === void 0 ? "" : _ref$name,
134
+ defaultValue = _ref.defaultValue,
135
+ value = _ref.value,
136
+ options = _ref.options,
137
+ helperText = _ref.helperText,
138
+ _ref$placeholder = _ref.placeholder,
139
+ placeholder = _ref$placeholder === void 0 ? "" : _ref$placeholder,
140
+ _ref$disabled = _ref.disabled,
141
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
142
+ _ref$optional = _ref.optional,
143
+ optional = _ref$optional === void 0 ? false : _ref$optional,
144
+ _ref$searchable = _ref.searchable,
145
+ searchable = _ref$searchable === void 0 ? false : _ref$searchable,
146
+ _ref$multiple = _ref.multiple,
147
+ multiple = _ref$multiple === void 0 ? false : _ref$multiple,
148
+ onChange = _ref.onChange,
149
+ onBlur = _ref.onBlur,
150
+ error = _ref.error,
151
+ margin = _ref.margin,
152
+ _ref$size = _ref.size,
153
+ size = _ref$size === void 0 ? "medium" : _ref$size,
154
+ _ref$tabIndex = _ref.tabIndex,
155
+ tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
156
+ var _useState3 = (0, _react.useState)("select-".concat((0, _uuid.v4)())),
157
+ _useState4 = (0, _slicedToArray2["default"])(_useState3, 1),
158
+ selectId = _useState4[0];
168
159
  var selectLabelId = "label-".concat(selectId);
169
160
  var errorId = "error-".concat(selectId);
170
161
  var optionsListId = "".concat(selectId, "-listbox");
171
-
172
- var _useState3 = (0, _react.useState)(defaultValue !== null && defaultValue !== void 0 ? defaultValue : multiple ? [] : ""),
173
- _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
174
- innerValue = _useState4[0],
175
- setInnerValue = _useState4[1];
176
-
177
- var _useState5 = (0, _react.useState)(""),
178
- _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
179
- searchValue = _useState6[0],
180
- setSearchValue = _useState6[1];
181
-
182
- var _useState7 = (0, _react.useState)(-1),
183
- _useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
184
- visualFocusIndex = _useState8[0],
185
- changeVisualFocusIndex = _useState8[1];
186
-
187
- var _useState9 = (0, _react.useState)(false),
188
- _useState10 = (0, _slicedToArray2["default"])(_useState9, 2),
189
- isOpen = _useState10[0],
190
- changeIsOpen = _useState10[1];
191
-
192
- var selectContainerRef = (0, _react.useRef)(null);
162
+ var _useState5 = (0, _react.useState)(defaultValue !== null && defaultValue !== void 0 ? defaultValue : multiple ? [] : ""),
163
+ _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
164
+ innerValue = _useState6[0],
165
+ setInnerValue = _useState6[1];
166
+ var _useState7 = (0, _react.useState)(""),
167
+ _useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
168
+ searchValue = _useState8[0],
169
+ setSearchValue = _useState8[1];
170
+ var _useState9 = (0, _react.useState)(-1),
171
+ _useState10 = (0, _slicedToArray2["default"])(_useState9, 2),
172
+ visualFocusIndex = _useState10[0],
173
+ changeVisualFocusIndex = _useState10[1];
174
+ var _useState11 = (0, _react.useState)(false),
175
+ _useState12 = (0, _slicedToArray2["default"])(_useState11, 2),
176
+ isOpen = _useState12[0],
177
+ changeIsOpen = _useState12[1];
178
+ var selectRef = (0, _react.useRef)(null);
193
179
  var selectSearchInputRef = (0, _react.useRef)(null);
194
- var selectOptionsListRef = (0, _react.useRef)(null);
180
+ var width = useWidth(selectRef.current);
195
181
  var colorsTheme = (0, _useTheme["default"])();
182
+ var translatedLabels = (0, _useTranslatedLabels["default"])();
196
183
  var optionalItem = {
197
184
  label: placeholder,
198
185
  value: ""
@@ -203,119 +190,87 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
203
190
  var lastOptionIndex = (0, _react.useMemo)(function () {
204
191
  return getLastOptionIndex(options, filteredOptions, searchable, optional, multiple);
205
192
  }, [options, filteredOptions, searchable, optional, multiple]);
206
-
207
193
  var _useMemo = (0, _react.useMemo)(function () {
208
- return getSelectedOption(value !== null && value !== void 0 ? value : innerValue, options, multiple, optional, optionalItem);
209
- }, [value, innerValue, options, multiple, optional, optionalItem]),
210
- selectedOption = _useMemo.selectedOption,
211
- singleSelectionIndex = _useMemo.singleSelectionIndex;
212
-
213
- var notOptionalCheck = function notOptionalCheck(value) {
214
- return !optional && value === "";
215
- };
216
-
217
- var notOptionalMultipleCheck = function notOptionalMultipleCheck(value) {
218
- return !optional && value.length === 0;
219
- };
220
-
221
- var canBeOpenOptions = function canBeOpenOptions() {
222
- return !disabled && (options === null || options === void 0 ? void 0 : options.length) > 0 && groupsHaveOptions(options);
223
- };
224
-
194
+ return getSelectedOption(value !== null && value !== void 0 ? value : innerValue, options, multiple, optional, optionalItem);
195
+ }, [value, innerValue, options, multiple, optional, optionalItem]),
196
+ selectedOption = _useMemo.selectedOption,
197
+ singleSelectionIndex = _useMemo.singleSelectionIndex;
225
198
  var openOptions = function openOptions() {
226
- if (!isOpen && canBeOpenOptions()) changeIsOpen(true);
199
+ if (!isOpen && canOpenOptions(options, disabled)) changeIsOpen(true);
227
200
  };
228
-
229
201
  var closeOptions = function closeOptions() {
230
202
  if (isOpen) {
231
203
  changeIsOpen(false);
232
204
  changeVisualFocusIndex(-1);
233
205
  }
234
206
  };
235
-
236
207
  var handleSelectChangeValue = function handleSelectChangeValue(newOption) {
208
+ var newValue;
237
209
  if (multiple) {
238
- var res = [];
239
- if ((value !== null && value !== void 0 ? value : innerValue).includes(newOption.value)) res = (value !== null && value !== void 0 ? value : innerValue).filter(function (optionVal) {
210
+ var _ref2, _ref3;
211
+ if ((value !== null && value !== void 0 ? value : innerValue).includes(newOption.value)) newValue = ((_ref2 = value && Array.isArray(value) && value) !== null && _ref2 !== void 0 ? _ref2 : innerValue && Array.isArray(innerValue) && innerValue).filter(function (optionVal) {
240
212
  return optionVal !== newOption.value;
241
- });else res = [].concat((0, _toConsumableArray2["default"])(value !== null && value !== void 0 ? value : innerValue), [newOption.value]);
242
- value !== null && value !== void 0 ? value : setInnerValue(res);
243
- if (notOptionalMultipleCheck(res)) onChange === null || onChange === void 0 ? void 0 : onChange({
244
- value: res,
245
- error: getNotOptionalErrorMessage()
246
- });else onChange === null || onChange === void 0 ? void 0 : onChange({
247
- value: res
248
- });
249
- } else {
250
- value !== null && value !== void 0 ? value : setInnerValue(newOption.value);
251
- if (notOptionalCheck(newOption.value)) onChange === null || onChange === void 0 ? void 0 : onChange({
252
- value: newOption.value,
253
- error: getNotOptionalErrorMessage()
254
- });else onChange === null || onChange === void 0 ? void 0 : onChange({
255
- value: newOption.value
256
- });
257
- }
213
+ });else newValue = [].concat((0, _toConsumableArray2["default"])((_ref3 = value && Array.isArray(value) && value) !== null && _ref3 !== void 0 ? _ref3 : innerValue && Array.isArray(innerValue) && innerValue), [newOption.value]);
214
+ } else newValue = newOption.value;
215
+ value !== null && value !== void 0 ? value : setInnerValue(newValue);
216
+ notOptionalCheck(newValue, multiple, optional) ? onChange === null || onChange === void 0 ? void 0 : onChange({
217
+ value: newValue,
218
+ error: translatedLabels.formFields.requiredValueErrorMessage
219
+ }) : onChange === null || onChange === void 0 ? void 0 : onChange({
220
+ value: newValue
221
+ });
258
222
  };
259
-
260
223
  var handleSelectOnClick = function handleSelectOnClick() {
261
224
  searchable && selectSearchInputRef.current.focus();
262
-
263
225
  if (isOpen) {
264
226
  closeOptions();
265
227
  setSearchValue("");
266
228
  } else openOptions();
267
229
  };
268
-
269
230
  var handleSelectOnFocus = function handleSelectOnFocus(event) {
270
231
  if (!event.currentTarget.contains(event.relatedTarget)) searchable && selectSearchInputRef.current.focus();
271
232
  };
272
-
273
233
  var handleSelectOnBlur = function handleSelectOnBlur(event) {
274
234
  // focus leaves container (outside, not to childs)
275
235
  if (!event.currentTarget.contains(event.relatedTarget)) {
276
236
  closeOptions();
277
237
  setSearchValue("");
278
- if (notOptionalCheck(value !== null && value !== void 0 ? value : innerValue)) onBlur === null || onBlur === void 0 ? void 0 : onBlur({
279
- value: value !== null && value !== void 0 ? value : innerValue,
280
- error: getNotOptionalErrorMessage()
281
- });else onBlur === null || onBlur === void 0 ? void 0 : onBlur({
282
- value: value !== null && value !== void 0 ? value : innerValue
238
+ var currentValue = value !== null && value !== void 0 ? value : innerValue;
239
+ notOptionalCheck(currentValue, multiple, optional) ? onBlur === null || onBlur === void 0 ? void 0 : onBlur({
240
+ value: currentValue,
241
+ error: translatedLabels.formFields.requiredValueErrorMessage
242
+ }) : onBlur === null || onBlur === void 0 ? void 0 : onBlur({
243
+ value: currentValue
283
244
  });
284
245
  }
285
246
  };
286
-
287
247
  var handleSelectOnKeyDown = function handleSelectOnKeyDown(event) {
288
- switch (event.keyCode) {
289
- case 40:
290
- // Arrow Down
248
+ switch (event.key) {
249
+ case "Down":
250
+ case "ArrowDown":
291
251
  event.preventDefault();
292
252
  singleSelectionIndex !== undefined && (!isOpen || visualFocusIndex === -1 && singleSelectionIndex > -1 && singleSelectionIndex <= lastOptionIndex) ? changeVisualFocusIndex(singleSelectionIndex) : changeVisualFocusIndex(function (visualFocusIndex) {
293
253
  if (visualFocusIndex < lastOptionIndex) return visualFocusIndex + 1;else if (visualFocusIndex === lastOptionIndex) return 0;
294
254
  });
295
255
  openOptions();
296
256
  break;
297
-
298
- case 38:
299
- // Arrow Up
257
+ case "Up":
258
+ case "ArrowUp":
300
259
  event.preventDefault();
301
260
  singleSelectionIndex !== undefined && (!isOpen || visualFocusIndex === -1 && singleSelectionIndex > -1 && singleSelectionIndex <= lastOptionIndex) ? changeVisualFocusIndex(singleSelectionIndex) : changeVisualFocusIndex(function (visualFocusIndex) {
302
261
  return visualFocusIndex === 0 || visualFocusIndex === -1 ? lastOptionIndex : visualFocusIndex - 1;
303
262
  });
304
263
  openOptions();
305
264
  break;
306
-
307
- case 27:
308
- // Esc
265
+ case "Esc":
266
+ case "Escape":
309
267
  event.preventDefault();
310
268
  closeOptions();
311
269
  setSearchValue("");
312
270
  break;
313
-
314
- case 13:
315
- // Enter
271
+ case "Enter":
316
272
  if (isOpen && visualFocusIndex >= 0) {
317
273
  var accLength = optional && !multiple ? 1 : 0;
318
-
319
274
  if (searchable) {
320
275
  if (filteredOptions.length > 0) {
321
276
  if (optional && !multiple && visualFocusIndex === 0 && filteredGroupsHaveOptions(filteredOptions)) handleSelectChangeValue(optionalItem);else filteredOptions[0].options ? filteredGroupsHaveOptions(filteredOptions) && filteredOptions.some(function (groupOption) {
@@ -333,62 +288,36 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
333
288
  return groupLength > visualFocusIndex;
334
289
  }) : handleSelectChangeValue(options[visualFocusIndex - accLength]);
335
290
  }
336
-
337
291
  !multiple && closeOptions();
338
292
  setSearchValue("");
339
293
  }
340
-
341
294
  break;
342
295
  }
343
296
  };
344
-
345
297
  var handleSearchIOnChange = function handleSearchIOnChange(event) {
346
298
  setSearchValue(event.target.value);
347
299
  changeVisualFocusIndex(-1);
348
300
  openOptions();
349
301
  };
350
-
351
302
  var handleClearOptionsActionOnClick = function handleClearOptionsActionOnClick(event) {
352
303
  event.stopPropagation();
353
304
  value !== null && value !== void 0 ? value : setInnerValue([]);
354
305
  !optional ? onChange === null || onChange === void 0 ? void 0 : onChange({
355
306
  value: [],
356
- error: getNotOptionalErrorMessage()
307
+ error: translatedLabels.formFields.requiredValueErrorMessage
357
308
  }) : onChange === null || onChange === void 0 ? void 0 : onChange({
358
309
  value: []
359
310
  });
360
311
  };
361
-
362
312
  var handleClearSearchActionOnClick = function handleClearSearchActionOnClick(event) {
363
313
  event.stopPropagation();
364
314
  setSearchValue("");
365
315
  };
366
-
367
316
  var handleOptionOnClick = (0, _react.useCallback)(function (option) {
368
317
  handleSelectChangeValue(option);
369
318
  !multiple && closeOptions();
370
319
  setSearchValue("");
371
320
  }, [handleSelectChangeValue, closeOptions, multiple]);
372
- (0, _react.useLayoutEffect)(function () {
373
- if (isOpen && singleSelectionIndex) {
374
- var _listEl$scrollTo;
375
-
376
- var listEl = selectOptionsListRef === null || selectOptionsListRef === void 0 ? void 0 : selectOptionsListRef.current;
377
- var selectedListOptionEl = listEl === null || listEl === void 0 ? void 0 : listEl.querySelector("[aria-selected='true']");
378
- listEl === null || listEl === void 0 ? void 0 : (_listEl$scrollTo = listEl.scrollTo) === null || _listEl$scrollTo === void 0 ? void 0 : _listEl$scrollTo.call(listEl, {
379
- top: (selectedListOptionEl === null || selectedListOptionEl === void 0 ? void 0 : selectedListOptionEl.offsetTop) - (listEl === null || listEl === void 0 ? void 0 : listEl.clientHeight) / 2
380
- });
381
- }
382
- }, [isOpen]);
383
- (0, _react.useLayoutEffect)(function () {
384
- var _selectOptionsListRef, _visualFocusedOptionE;
385
-
386
- var visualFocusedOptionEl = selectOptionsListRef === null || selectOptionsListRef === void 0 ? void 0 : (_selectOptionsListRef = selectOptionsListRef.current) === null || _selectOptionsListRef === void 0 ? void 0 : _selectOptionsListRef.querySelectorAll("[role='option']")[visualFocusIndex];
387
- visualFocusedOptionEl === null || visualFocusedOptionEl === void 0 ? void 0 : (_visualFocusedOptionE = visualFocusedOptionEl.scrollIntoView) === null || _visualFocusedOptionE === void 0 ? void 0 : _visualFocusedOptionE.call(visualFocusedOptionEl, {
388
- block: "nearest",
389
- inline: "start"
390
- });
391
- }, [visualFocusIndex]);
392
321
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
393
322
  theme: colorsTheme.select
394
323
  }, /*#__PURE__*/_react["default"].createElement(SelectContainer, {
@@ -399,12 +328,17 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
399
328
  id: selectLabelId,
400
329
  disabled: disabled,
401
330
  onClick: function onClick() {
402
- selectContainerRef.current.focus();
331
+ selectRef.current.focus();
403
332
  },
404
333
  helperText: helperText
405
- }, label, " ", optional && /*#__PURE__*/_react["default"].createElement(OptionalLabel, null, "(Optional)")), helperText && /*#__PURE__*/_react["default"].createElement(HelperText, {
334
+ }, label, " ", optional && /*#__PURE__*/_react["default"].createElement(OptionalLabel, null, translatedLabels.formFields.optionalLabel)), helperText && /*#__PURE__*/_react["default"].createElement(HelperText, {
406
335
  disabled: disabled
407
- }, helperText), /*#__PURE__*/_react["default"].createElement(Select, {
336
+ }, helperText), /*#__PURE__*/_react["default"].createElement(Popover.Root, {
337
+ open: isOpen
338
+ }, /*#__PURE__*/_react["default"].createElement(Popover.Trigger, {
339
+ asChild: true,
340
+ type: undefined
341
+ }, /*#__PURE__*/_react["default"].createElement(Select, {
408
342
  id: selectId,
409
343
  disabled: disabled,
410
344
  error: error,
@@ -412,19 +346,19 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
412
346
  onClick: handleSelectOnClick,
413
347
  onFocus: handleSelectOnFocus,
414
348
  onKeyDown: handleSelectOnKeyDown,
415
- ref: selectContainerRef,
416
- tabIndex: tabIndex,
349
+ ref: selectRef,
350
+ tabIndex: disabled ? -1 : tabIndex,
417
351
  role: "combobox",
418
352
  "aria-controls": optionsListId,
419
353
  "aria-disabled": disabled,
420
354
  "aria-expanded": isOpen,
421
355
  "aria-haspopup": "listbox",
422
- "aria-labelledby": selectLabelId,
356
+ "aria-labelledby": label ? selectLabelId : undefined,
423
357
  "aria-activedescendant": visualFocusIndex >= 0 ? "option-".concat(visualFocusIndex) : undefined,
424
- "aria-invalid": error ? "true" : "false",
358
+ "aria-invalid": error ? true : false,
425
359
  "aria-errormessage": error ? errorId : undefined,
426
360
  "aria-required": !disabled && !optional
427
- }, multiple && selectedOption.length > 0 && /*#__PURE__*/_react["default"].createElement(SelectionIndicator, null, /*#__PURE__*/_react["default"].createElement(SelectionNumber, {
361
+ }, multiple && Array.isArray(selectedOption) && selectedOption.length > 0 && /*#__PURE__*/_react["default"].createElement(SelectionIndicator, null, /*#__PURE__*/_react["default"].createElement(SelectionNumber, {
428
362
  disabled: disabled
429
363
  }, selectedOption.length), /*#__PURE__*/_react["default"].createElement(ClearOptionsAction, {
430
364
  disabled: disabled,
@@ -434,11 +368,12 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
434
368
  },
435
369
  onClick: handleClearOptionsActionOnClick,
436
370
  tabIndex: -1,
437
- title: "Clear selection",
438
- "aria-label": "Clear selection"
371
+ title: translatedLabels.select.actionClearSelectionTitle,
372
+ "aria-label": translatedLabels.select.actionClearSelectionTitle
439
373
  }, _Icons["default"].clear)), /*#__PURE__*/_react["default"].createElement(SearchableValueContainer, null, /*#__PURE__*/_react["default"].createElement(ValueInput, {
440
374
  name: name,
441
- value: multiple ? (value !== null && value !== void 0 ? value : innerValue).join(",") : value !== null && value !== void 0 ? value : innerValue,
375
+ disabled: disabled,
376
+ value: multiple ? ((_ref4 = value && Array.isArray(value) && value) !== null && _ref4 !== void 0 ? _ref4 : innerValue && Array.isArray(innerValue) && innerValue).join(",") : value !== null && value !== void 0 ? value : innerValue,
442
377
  readOnly: true,
443
378
  "aria-hidden": "true"
444
379
  }), searchable && /*#__PURE__*/_react["default"].createElement(SearchInput, {
@@ -452,9 +387,9 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
452
387
  }), (!searchable || searchValue === "") && (multiple ? /*#__PURE__*/_react["default"].createElement(SelectedOption, {
453
388
  disabled: disabled,
454
389
  atBackground: (value !== null && value !== void 0 ? value : innerValue).length === 0 || searchable && isOpen
455
- }, /*#__PURE__*/_react["default"].createElement(SelectedOptionLabel, null, selectedOption.map(function (option) {
390
+ }, /*#__PURE__*/_react["default"].createElement(SelectedOptionLabel, null, Array.isArray(selectedOption) && selectedOption.map(function (option) {
456
391
  return option.label;
457
- }).join(", ")), selectedOption.length === 0 && placeholder) : /*#__PURE__*/_react["default"].createElement(SelectedOption, {
392
+ }).join(", ")), Array.isArray(selectedOption) && selectedOption.length === 0 && placeholder) : /*#__PURE__*/_react["default"].createElement(SelectedOption, {
458
393
  disabled: disabled,
459
394
  atBackground: !(value !== null && value !== void 0 ? value : innerValue) || searchable && isOpen
460
395
  }, /*#__PURE__*/_react["default"].createElement(SelectedOptionLabel, null, (_selectedOption$label = selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.label) !== null && _selectedOption$label !== void 0 ? _selectedOption$label : placeholder)))), !disabled && error && /*#__PURE__*/_react["default"].createElement(ErrorIcon, null, _Icons["default"].error), searchable && searchValue.length > 0 && /*#__PURE__*/_react["default"].createElement(ClearSearchAction, {
@@ -464,11 +399,24 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
464
399
  },
465
400
  onClick: handleClearSearchActionOnClick,
466
401
  tabIndex: -1,
467
- title: "Clear search",
468
- "aria-label": "Clear search"
402
+ title: translatedLabels.select.actionClearSearchTitle,
403
+ "aria-label": translatedLabels.select.actionClearSearchTitle
469
404
  }, _Icons["default"].clear), /*#__PURE__*/_react["default"].createElement(CollapseIndicator, {
470
405
  disabled: disabled
471
- }, isOpen ? _Icons["default"].arrowUp : _Icons["default"].arrowDown), isOpen && /*#__PURE__*/_react["default"].createElement(_Listbox["default"], {
406
+ }, isOpen ? _Icons["default"].arrowUp : _Icons["default"].arrowDown))), /*#__PURE__*/_react["default"].createElement(Popover.Portal, null, /*#__PURE__*/_react["default"].createElement(Popover.Content, {
407
+ sideOffset: 4,
408
+ style: {
409
+ zIndex: "2147483647"
410
+ },
411
+ onOpenAutoFocus: function onOpenAutoFocus(event) {
412
+ // Avoid select to lose focus when the list is opened
413
+ event.preventDefault();
414
+ },
415
+ onCloseAutoFocus: function onCloseAutoFocus(event) {
416
+ // Avoid select to lose focus when the list is closed
417
+ event.preventDefault();
418
+ }
419
+ }, /*#__PURE__*/_react["default"].createElement(_Listbox["default"], {
472
420
  id: optionsListId,
473
421
  currentValue: value !== null && value !== void 0 ? value : innerValue,
474
422
  options: searchable ? filteredOptions : options,
@@ -479,24 +427,23 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
479
427
  optionalItem: optionalItem,
480
428
  searchable: searchable,
481
429
  handleOptionOnClick: handleOptionOnClick,
482
- ref: selectOptionsListRef
483
- })), !disabled && typeof error === "string" && /*#__PURE__*/_react["default"].createElement(Error, {
430
+ styles: {
431
+ width: width
432
+ }
433
+ })))), !disabled && typeof error === "string" && /*#__PURE__*/_react["default"].createElement(Error, {
484
434
  id: errorId,
485
435
  "aria-live": error ? "assertive" : "off"
486
436
  }, error)));
487
437
  });
488
-
489
438
  var sizes = {
490
439
  small: "240px",
491
440
  medium: "360px",
492
441
  large: "480px",
493
442
  fillParent: "100%"
494
443
  };
495
-
496
444
  var calculateWidth = function calculateWidth(margin, size) {
497
445
  return size === "fillParent" ? "calc(".concat(sizes[size], " - ").concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")") : sizes[size];
498
446
  };
499
-
500
447
  var SelectContainer = _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) {
501
448
  return calculateWidth(props.margin, props.size);
502
449
  }, function (props) {
@@ -510,7 +457,6 @@ var SelectContainer = _styledComponents["default"].div(_templateObject || (_temp
510
457
  }, function (props) {
511
458
  return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
512
459
  });
513
-
514
460
  var Label = _styledComponents["default"].span(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n line-height: ", ";\n cursor: default;\n ", "\n"])), function (props) {
515
461
  return props.disabled ? props.theme.disabledColor : props.theme.labelFontColor;
516
462
  }, function (props) {
@@ -526,11 +472,9 @@ var Label = _styledComponents["default"].span(_templateObject2 || (_templateObje
526
472
  }, function (props) {
527
473
  return !props.helperText && "margin-bottom: 0.25rem";
528
474
  });
529
-
530
475
  var OptionalLabel = _styledComponents["default"].span(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n font-weight: ", ";\n"])), function (props) {
531
476
  return props.theme.optionalLabelFontWeight;
532
477
  });
533
-
534
478
  var HelperText = _styledComponents["default"].span(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n line-height: ", ";\n margin-bottom: 0.25rem;\n"])), function (props) {
535
479
  return props.disabled ? props.theme.disabledColor : props.theme.helperTextFontColor;
536
480
  }, function (props) {
@@ -544,7 +488,6 @@ var HelperText = _styledComponents["default"].span(_templateObject4 || (_templat
544
488
  }, function (props) {
545
489
  return props.theme.helperTextLineHeight;
546
490
  });
547
-
548
491
  var Select = _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 outline: none;\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) {
549
492
  return props.disabled && "background-color: ".concat(props.theme.disabledInputBackgroundColor);
550
493
  }, function (props) {
@@ -556,11 +499,9 @@ var Select = _styledComponents["default"].div(_templateObject5 || (_templateObje
556
499
  }, function (props) {
557
500
  return !props.disabled && "\n &:hover {\n border-color: ".concat(props.error ? "transparent" : props.theme.hoverInputBorderColor, ";\n ").concat(props.error && "box-shadow: 0 0 0 2px ".concat(props.theme.hoverInputErrorBorderColor, ";"), "\n }\n &:focus-within {\n border-color: transparent;\n box-shadow: 0 0 0 2px ").concat(props.theme.focusInputBorderColor, ";\n }\n ");
558
501
  });
559
-
560
502
  var SelectionIndicator = _styledComponents["default"].span(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n border: 1px solid ", ";\n border-radius: 2px;\n max-height: 22px;\n width: 46px;\n"])), function (props) {
561
503
  return props.theme.selectionIndicatorBorderColor;
562
504
  });
563
-
564
505
  var SelectionNumber = _styledComponents["default"].span(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n justify-content: center;\n width: 22px;\n height: 22px;\n user-select: none;\n ", ";\n border-right: 1px solid ", ";\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n ", "\n"])), function (props) {
565
506
  return !props.disabled && "background-color: ".concat(props.theme.selectionIndicatorBackgroundColor);
566
507
  }, function (props) {
@@ -578,10 +519,7 @@ var SelectionNumber = _styledComponents["default"].span(_templateObject7 || (_te
578
519
  }, function (props) {
579
520
  return props.disabled ? "cursor: not-allowed;" : "cursor: default;";
580
521
  });
581
-
582
- var ClearOptionsAction = _styledComponents["default"].button(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-wrap: wrap;\n align-content: center;\n width: 23px;\n height: 22px;\n font-size: 1rem;\n font-family: ", ";\n border: none;\n padding: 0.25rem;\n ", "\n background-color: ", ";\n color: ", ";\n\n :focus-visible {\n outline: none;\n }\n ", "\n\n svg {\n line-height: 18px;\n }\n"])), function (props) {
583
- return props.theme.fontFamily;
584
- }, function (props) {
522
+ var ClearOptionsAction = _styledComponents["default"].button(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-wrap: wrap;\n align-content: center;\n width: 23px;\n height: 22px;\n border: none;\n padding: 0.25rem;\n ", "\n background-color: ", ";\n color: ", ";\n\n :focus-visible {\n outline: none;\n }\n ", "\n\n svg {\n line-height: 18px;\n }\n"])), function (props) {
585
523
  return props.disabled ? "cursor: not-allowed;" : "cursor: pointer;";
586
524
  }, function (props) {
587
525
  return props.disabled ? "transparent" : props.theme.enabledSelectionIndicatorActionBackgroundColor;
@@ -590,9 +528,7 @@ var ClearOptionsAction = _styledComponents["default"].button(_templateObject8 ||
590
528
  }, function (props) {
591
529
  return !props.disabled && "\n &:hover {\n background-color: ".concat(props.theme.hoverSelectionIndicatorActionBackgroundColor, ";\n color: ").concat(props.theme.hoverSelectionIndicatorActionIconColor, ";\n }\n &:active {\n background-color: ").concat(props.theme.activeSelectionIndicatorActionBackgroundColor, ";\n color: ").concat(props.theme.activeSelectionIndicatorActionIconColor, ";\n }\n ");
592
530
  });
593
-
594
531
  var SearchableValueContainer = _styledComponents["default"].div(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])(["\n display: grid;\n width: 100%;\n"])));
595
-
596
532
  var SelectedOption = _styledComponents["default"].span(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2["default"])(["\n grid-area: 1 / 1 / 1 / 1;\n display: inline-flex;\n align-items: center;\n height: calc(2.5rem - 2px);\n padding: 0 0.5rem;\n user-select: none;\n overflow: hidden;\n\n color: ", ";\n\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n"])), function (props) {
597
533
  if (props.disabled) return props.theme.disabledColor;else if (props.atBackground) return props.theme.placeholderFontColor;else return props.theme.valueFontColor;
598
534
  }, function (props) {
@@ -604,11 +540,8 @@ var SelectedOption = _styledComponents["default"].span(_templateObject10 || (_te
604
540
  }, function (props) {
605
541
  return props.theme.valueFontWeight;
606
542
  });
607
-
608
543
  var SelectedOptionLabel = _styledComponents["default"].span(_templateObject11 || (_templateObject11 = (0, _taggedTemplateLiteral2["default"])(["\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n"])));
609
-
610
544
  var ValueInput = _styledComponents["default"].input(_templateObject12 || (_templateObject12 = (0, _taggedTemplateLiteral2["default"])(["\n display: none;\n"])));
611
-
612
545
  var SearchInput = _styledComponents["default"].input(_templateObject13 || (_templateObject13 = (0, _taggedTemplateLiteral2["default"])(["\n grid-area: 1 / 1 / 1 / 1;\n height: calc(2.5rem - 2px);\n background: none;\n border: none;\n outline: none;\n padding: 0 0.5rem;\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n line-height: 1.5em;\n"])), function (props) {
613
546
  return props.disabled ? props.theme.disabledColor : props.theme.valueFontColor;
614
547
  }, function (props) {
@@ -620,21 +553,17 @@ var SearchInput = _styledComponents["default"].input(_templateObject13 || (_temp
620
553
  }, function (props) {
621
554
  return props.theme.valueFontWeight;
622
555
  });
623
-
624
556
  var ErrorIcon = _styledComponents["default"].span(_templateObject14 || (_templateObject14 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-wrap: wrap;\n align-content: center;\n padding: 3px;\n height: 18px;\n width: 18px;\n margin-left: 0.25rem;\n pointer-events: none;\n color: ", ";\n\n svg {\n line-height: 18px;\n font-size: 1.25rem;\n }\n"])), function (props) {
625
557
  return props.theme.errorIconColor;
626
558
  });
627
-
628
559
  var Error = _styledComponents["default"].span(_templateObject15 || (_templateObject15 = (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) {
629
560
  return props.theme.errorMessageColor;
630
561
  }, function (props) {
631
562
  return props.theme.fontFamily;
632
563
  });
633
-
634
564
  var CollapseIndicator = _styledComponents["default"].span(_templateObject16 || (_templateObject16 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-wrap: wrap;\n align-content: center;\n height: 16px;\n width: 16px;\n padding: 4px;\n margin-left: 0.25rem;\n color: ", ";\n"])), function (props) {
635
565
  return props.disabled ? props.theme.disabledColor : props.theme.collapseIndicatorColor;
636
566
  });
637
-
638
567
  var ClearSearchAction = _styledComponents["default"].button(_templateObject17 || (_templateObject17 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-wrap: wrap;\n align-content: center;\n height: 24px;\n width: 24px;\n font-size: 1rem;\n font-family: ", ";\n border: 1px solid transparent;\n border-radius: 2px;\n padding: 3px;\n margin-left: 0.25rem;\n background-color: ", ";\n color: ", ";\n\n cursor: pointer;\n &:hover {\n background-color: ", ";\n color: ", ";\n }\n &:active {\n background-color: ", ";\n color: ", ";\n }\n svg {\n line-height: 18px;\n }\n"])), function (props) {
639
568
  return props.theme.fontFamily;
640
569
  }, function (props) {
@@ -650,6 +579,4 @@ var ClearSearchAction = _styledComponents["default"].button(_templateObject17 ||
650
579
  }, function (props) {
651
580
  return props.theme.activeActionIconColor;
652
581
  });
653
-
654
- var _default = DxcSelect;
655
- exports["default"] = _default;
582
+ var _default = exports["default"] = DxcSelect;