@dxc-technology/halstack-react 0.0.0-7ef55ea → 0.0.0-7f5e42c

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 (241) hide show
  1. package/HalstackContext.d.ts +12 -0
  2. package/HalstackContext.js +295 -0
  3. package/accordion/Accordion.d.ts +1 -1
  4. package/accordion/Accordion.js +121 -123
  5. package/accordion/Accordion.stories.tsx +13 -14
  6. package/accordion/Accordion.test.js +71 -0
  7. package/accordion/types.d.ts +8 -4
  8. package/accordion-group/AccordionGroup.d.ts +1 -1
  9. package/accordion-group/AccordionGroup.js +15 -36
  10. package/accordion-group/AccordionGroup.stories.tsx +28 -2
  11. package/accordion-group/AccordionGroup.test.js +126 -0
  12. package/accordion-group/types.d.ts +13 -3
  13. package/alert/Alert.js +4 -1
  14. package/alert/Alert.test.js +92 -0
  15. package/badge/Badge.d.ts +1 -1
  16. package/badge/Badge.js +5 -3
  17. package/badge/types.d.ts +1 -0
  18. package/bleed/Bleed.js +1 -34
  19. package/bleed/Bleed.stories.tsx +94 -95
  20. package/bleed/types.d.ts +25 -1
  21. package/box/Box.js +22 -32
  22. package/box/Box.test.js +18 -0
  23. package/bulleted-list/BulletedList.d.ts +7 -0
  24. package/bulleted-list/BulletedList.js +123 -0
  25. package/bulleted-list/BulletedList.stories.tsx +200 -0
  26. package/bulleted-list/types.d.ts +11 -0
  27. package/{list → bulleted-list}/types.js +0 -0
  28. package/button/Button.js +53 -68
  29. package/button/Button.stories.tsx +9 -0
  30. package/button/Button.test.js +35 -0
  31. package/button/types.d.ts +7 -7
  32. package/card/Card.js +24 -27
  33. package/card/Card.test.js +50 -0
  34. package/checkbox/Checkbox.d.ts +1 -1
  35. package/checkbox/Checkbox.js +43 -39
  36. package/checkbox/Checkbox.stories.tsx +124 -128
  37. package/checkbox/Checkbox.test.js +78 -0
  38. package/checkbox/types.d.ts +7 -3
  39. package/chip/Chip.test.js +56 -0
  40. package/chip/types.d.ts +1 -1
  41. package/common/variables.js +236 -339
  42. package/date-input/DateInput.js +56 -42
  43. package/date-input/DateInput.stories.tsx +7 -7
  44. package/date-input/DateInput.test.js +479 -0
  45. package/date-input/types.d.ts +16 -9
  46. package/dialog/Dialog.js +46 -50
  47. package/dialog/Dialog.stories.tsx +1 -2
  48. package/dialog/Dialog.test.js +70 -0
  49. package/dialog/types.d.ts +2 -2
  50. package/dropdown/Dropdown.d.ts +1 -1
  51. package/dropdown/Dropdown.js +242 -250
  52. package/dropdown/Dropdown.stories.tsx +126 -63
  53. package/dropdown/Dropdown.test.js +591 -0
  54. package/dropdown/DropdownMenu.d.ts +4 -0
  55. package/dropdown/DropdownMenu.js +80 -0
  56. package/dropdown/DropdownMenuItem.d.ts +4 -0
  57. package/dropdown/DropdownMenuItem.js +92 -0
  58. package/dropdown/types.d.ts +25 -5
  59. package/file-input/FileInput.js +9 -6
  60. package/file-input/FileInput.test.js +457 -0
  61. package/file-input/FileItem.js +7 -5
  62. package/flex/Flex.d.ts +4 -0
  63. package/flex/Flex.js +57 -0
  64. package/flex/Flex.stories.tsx +103 -0
  65. package/flex/types.d.ts +21 -0
  66. package/{radio → flex}/types.js +0 -0
  67. package/footer/Footer.js +15 -88
  68. package/footer/Footer.test.js +109 -0
  69. package/footer/Icons.js +1 -1
  70. package/footer/types.d.ts +1 -1
  71. package/header/Header.js +95 -114
  72. package/header/Header.stories.tsx +46 -36
  73. package/header/Header.test.js +79 -0
  74. package/header/Icons.js +2 -2
  75. package/header/types.d.ts +2 -2
  76. package/heading/Heading.test.js +186 -0
  77. package/inset/Inset.js +1 -34
  78. package/inset/Inset.stories.tsx +36 -36
  79. package/inset/types.d.ts +25 -1
  80. package/layout/ApplicationLayout.d.ts +16 -6
  81. package/layout/ApplicationLayout.js +71 -131
  82. package/layout/ApplicationLayout.stories.tsx +84 -93
  83. package/layout/Icons.d.ts +5 -0
  84. package/layout/Icons.js +13 -2
  85. package/layout/SidenavContext.d.ts +5 -0
  86. package/layout/SidenavContext.js +19 -0
  87. package/layout/types.d.ts +18 -33
  88. package/link/Link.d.ts +3 -2
  89. package/link/Link.js +57 -74
  90. package/link/Link.stories.tsx +95 -53
  91. package/link/Link.test.js +83 -0
  92. package/link/types.d.ts +7 -23
  93. package/main.d.ts +8 -15
  94. package/main.js +38 -88
  95. package/number-input/NumberInput.js +11 -18
  96. package/number-input/NumberInput.stories.tsx +5 -5
  97. package/number-input/NumberInput.test.js +506 -0
  98. package/number-input/types.d.ts +17 -10
  99. package/package.json +14 -12
  100. package/paginator/Paginator.js +17 -38
  101. package/paginator/Paginator.test.js +308 -0
  102. package/paragraph/Paragraph.d.ts +6 -0
  103. package/paragraph/Paragraph.js +38 -0
  104. package/paragraph/Paragraph.stories.tsx +44 -0
  105. package/password-input/PasswordInput.js +7 -4
  106. package/password-input/PasswordInput.test.js +180 -0
  107. package/password-input/types.d.ts +14 -11
  108. package/progress-bar/ProgressBar.d.ts +2 -2
  109. package/progress-bar/ProgressBar.js +57 -51
  110. package/progress-bar/ProgressBar.stories.jsx +13 -11
  111. package/progress-bar/ProgressBar.test.js +110 -0
  112. package/progress-bar/types.d.ts +3 -4
  113. package/quick-nav/QuickNav.d.ts +4 -0
  114. package/quick-nav/QuickNav.js +118 -0
  115. package/quick-nav/QuickNav.stories.tsx +264 -0
  116. package/quick-nav/types.d.ts +21 -0
  117. package/{row → quick-nav}/types.js +0 -0
  118. package/radio-group/Radio.d.ts +1 -1
  119. package/radio-group/Radio.js +25 -24
  120. package/radio-group/RadioGroup.js +58 -50
  121. package/radio-group/RadioGroup.stories.tsx +60 -39
  122. package/radio-group/RadioGroup.test.js +530 -83
  123. package/radio-group/types.d.ts +80 -2
  124. package/resultsetTable/ResultsetTable.test.js +348 -0
  125. package/select/Icons.d.ts +10 -0
  126. package/select/Icons.js +93 -0
  127. package/select/Listbox.d.ts +4 -0
  128. package/select/Listbox.js +199 -0
  129. package/select/Option.d.ts +4 -0
  130. package/select/Option.js +110 -0
  131. package/select/Select.js +139 -365
  132. package/select/Select.stories.tsx +231 -176
  133. package/select/Select.test.js +2175 -0
  134. package/select/types.d.ts +52 -12
  135. package/sidenav/Sidenav.d.ts +6 -5
  136. package/sidenav/Sidenav.js +184 -52
  137. package/sidenav/Sidenav.stories.tsx +154 -156
  138. package/sidenav/Sidenav.test.js +44 -0
  139. package/sidenav/types.d.ts +50 -27
  140. package/slider/Slider.d.ts +1 -1
  141. package/slider/Slider.js +114 -98
  142. package/slider/Slider.stories.tsx +15 -9
  143. package/slider/Slider.test.js +250 -0
  144. package/slider/types.d.ts +6 -2
  145. package/spinner/Spinner.js +1 -1
  146. package/spinner/Spinner.test.js +64 -0
  147. package/switch/Switch.d.ts +2 -2
  148. package/switch/Switch.js +127 -55
  149. package/switch/Switch.stories.tsx +20 -42
  150. package/switch/Switch.test.js +212 -0
  151. package/switch/types.d.ts +9 -6
  152. package/table/Table.test.js +26 -0
  153. package/tabs/Tab.d.ts +4 -0
  154. package/tabs/Tab.js +135 -0
  155. package/tabs/Tabs.d.ts +1 -1
  156. package/tabs/Tabs.js +362 -108
  157. package/tabs/Tabs.stories.tsx +74 -8
  158. package/tabs/Tabs.test.js +351 -0
  159. package/tabs/types.d.ts +19 -5
  160. package/tabs-nav/NavTabs.d.ts +8 -0
  161. package/tabs-nav/NavTabs.js +125 -0
  162. package/tabs-nav/NavTabs.stories.tsx +170 -0
  163. package/tabs-nav/NavTabs.test.js +82 -0
  164. package/tabs-nav/Tab.d.ts +4 -0
  165. package/tabs-nav/Tab.js +130 -0
  166. package/tabs-nav/types.d.ts +53 -0
  167. package/{stack → tabs-nav}/types.js +0 -0
  168. package/tag/Tag.js +14 -19
  169. package/tag/Tag.stories.tsx +12 -8
  170. package/tag/Tag.test.js +60 -0
  171. package/tag/types.d.ts +1 -1
  172. package/text-input/Suggestion.d.ts +4 -0
  173. package/text-input/Suggestion.js +55 -0
  174. package/text-input/TextInput.js +63 -98
  175. package/text-input/TextInput.stories.tsx +31 -14
  176. package/text-input/TextInput.test.js +1712 -0
  177. package/text-input/types.d.ts +31 -12
  178. package/textarea/Textarea.js +15 -24
  179. package/textarea/Textarea.stories.jsx +33 -12
  180. package/textarea/Textarea.test.js +437 -0
  181. package/textarea/types.d.ts +18 -11
  182. package/toggle-group/ToggleGroup.d.ts +1 -1
  183. package/toggle-group/ToggleGroup.js +5 -4
  184. package/toggle-group/ToggleGroup.stories.tsx +4 -4
  185. package/toggle-group/ToggleGroup.test.js +156 -0
  186. package/toggle-group/types.d.ts +9 -1
  187. package/typography/Typography.d.ts +4 -0
  188. package/typography/Typography.js +131 -0
  189. package/typography/Typography.stories.tsx +198 -0
  190. package/typography/types.d.ts +18 -0
  191. package/typography/types.js +5 -0
  192. package/useTheme.js +2 -2
  193. package/useTranslatedLabels.d.ts +2 -0
  194. package/useTranslatedLabels.js +20 -0
  195. package/wizard/Wizard.d.ts +1 -1
  196. package/wizard/Wizard.js +58 -54
  197. package/wizard/Wizard.stories.tsx +33 -24
  198. package/wizard/Wizard.test.js +141 -0
  199. package/wizard/types.d.ts +10 -5
  200. package/ThemeContext.d.ts +0 -15
  201. package/ThemeContext.js +0 -243
  202. package/V3Select/V3Select.js +0 -455
  203. package/V3Select/index.d.ts +0 -27
  204. package/V3Textarea/V3Textarea.js +0 -260
  205. package/V3Textarea/index.d.ts +0 -27
  206. package/date/Date.js +0 -373
  207. package/date/index.d.ts +0 -27
  208. package/input-text/Icons.js +0 -22
  209. package/input-text/InputText.js +0 -611
  210. package/input-text/index.d.ts +0 -36
  211. package/list/List.d.ts +0 -4
  212. package/list/List.js +0 -47
  213. package/list/List.stories.tsx +0 -95
  214. package/list/types.d.ts +0 -7
  215. package/radio/Radio.d.ts +0 -4
  216. package/radio/Radio.js +0 -174
  217. package/radio/Radio.stories.tsx +0 -192
  218. package/radio/types.d.ts +0 -54
  219. package/row/Row.d.ts +0 -3
  220. package/row/Row.js +0 -127
  221. package/row/Row.stories.tsx +0 -237
  222. package/row/types.d.ts +0 -10
  223. package/stack/Stack.d.ts +0 -3
  224. package/stack/Stack.js +0 -97
  225. package/stack/Stack.stories.tsx +0 -164
  226. package/stack/types.d.ts +0 -9
  227. package/text/Text.d.ts +0 -7
  228. package/text/Text.js +0 -30
  229. package/text/Text.stories.tsx +0 -19
  230. package/upload/Upload.js +0 -201
  231. package/upload/buttons-upload/ButtonsUpload.js +0 -111
  232. package/upload/buttons-upload/Icons.js +0 -40
  233. package/upload/dragAndDropArea/DragAndDropArea.js +0 -225
  234. package/upload/dragAndDropArea/Icons.js +0 -39
  235. package/upload/file-upload/FileToUpload.js +0 -115
  236. package/upload/file-upload/Icons.js +0 -66
  237. package/upload/files-upload/FilesToUpload.js +0 -109
  238. package/upload/index.d.ts +0 -15
  239. package/upload/transaction/Icons.js +0 -160
  240. package/upload/transaction/Transaction.js +0 -104
  241. package/upload/transactions/Transactions.js +0 -94
package/select/Select.js CHANGED
@@ -23,103 +23,42 @@ var _styledComponents = _interopRequireWildcard(require("styled-components"));
23
23
 
24
24
  var _useTheme = _interopRequireDefault(require("../useTheme"));
25
25
 
26
+ var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
27
+
26
28
  var _variables = require("../common/variables.js");
27
29
 
28
30
  var _uuid = require("uuid");
29
31
 
30
32
  var _utils = require("../common/utils.js");
31
33
 
32
- var _Checkbox = _interopRequireDefault(require("../checkbox/Checkbox"));
34
+ var _Icons = _interopRequireDefault(require("./Icons"));
35
+
36
+ var _Listbox = _interopRequireDefault(require("./Listbox"));
37
+
38
+ var Popover = _interopRequireWildcard(require("@radix-ui/react-popover"));
33
39
 
34
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17, _templateObject18, _templateObject19, _templateObject20, _templateObject21, _templateObject22, _templateObject23, _templateObject24, _templateObject25, _templateObject26, _templateObject27, _templateObject28;
40
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17;
35
41
 
36
42
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
37
43
 
38
44
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof3(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
39
45
 
40
- var selectIcons = {
41
- error: /*#__PURE__*/_react["default"].createElement("svg", {
42
- role: "img",
43
- xmlns: "http://www.w3.org/2000/svg",
44
- height: "24px",
45
- viewBox: "0 0 24 24",
46
- width: "24px",
47
- fill: "currentColor"
48
- }, /*#__PURE__*/_react["default"].createElement("path", {
49
- 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"
50
- })),
51
- arrowUp: /*#__PURE__*/_react["default"].createElement("svg", {
52
- role: "img",
53
- xmlns: "http://www.w3.org/2000/svg",
54
- height: "24px",
55
- viewBox: "0 0 24 24",
56
- width: "24px",
57
- fill: "currentColor"
58
- }, /*#__PURE__*/_react["default"].createElement("path", {
59
- d: "M0 0h24v24H0V0z",
60
- fill: "none"
61
- }), /*#__PURE__*/_react["default"].createElement("path", {
62
- d: "M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6 1.41 1.41z"
63
- })),
64
- arrowDown: /*#__PURE__*/_react["default"].createElement("svg", {
65
- role: "img",
66
- xmlns: "http://www.w3.org/2000/svg",
67
- height: "24px",
68
- viewBox: "0 0 24 24",
69
- width: "24px",
70
- fill: "currentColor"
71
- }, /*#__PURE__*/_react["default"].createElement("path", {
72
- d: "M0 0h24v24H0V0z",
73
- fill: "none"
74
- }), /*#__PURE__*/_react["default"].createElement("path", {
75
- d: "M7.41 8.59L12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z"
76
- })),
77
- clear: /*#__PURE__*/_react["default"].createElement("svg", {
78
- role: "img",
79
- xmlns: "http://www.w3.org/2000/svg",
80
- width: "24",
81
- height: "24",
82
- viewBox: "0 0 24 24",
83
- fill: "currentColor"
84
- }, /*#__PURE__*/_react["default"].createElement("path", {
85
- d: "M0 0h24v24H0V0z",
86
- fill: "none"
87
- }), /*#__PURE__*/_react["default"].createElement("path", {
88
- 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"
89
- })),
90
- selected: /*#__PURE__*/_react["default"].createElement("svg", {
91
- role: "img",
92
- xmlns: "http://www.w3.org/2000/svg",
93
- height: "24px",
94
- viewBox: "0 0 24 24",
95
- width: "24px",
96
- fill: "currentColor"
97
- }, /*#__PURE__*/_react["default"].createElement("path", {
98
- d: "M0 0h24v24H0z",
99
- fill: "none"
100
- }), /*#__PURE__*/_react["default"].createElement("path", {
101
- d: "M9 16.2L4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4L9 16.2z"
102
- })),
103
- searchOff: /*#__PURE__*/_react["default"].createElement("svg", {
104
- role: "img",
105
- xmlns: "http://www.w3.org/2000/svg",
106
- height: "24px",
107
- viewBox: "0 0 24 24",
108
- width: "24px",
109
- fill: "currentColor"
110
- }, /*#__PURE__*/_react["default"].createElement("g", null, /*#__PURE__*/_react["default"].createElement("rect", {
111
- fill: "none",
112
- height: "24",
113
- width: "24"
114
- })), /*#__PURE__*/_react["default"].createElement("g", null, /*#__PURE__*/_react["default"].createElement("g", null, /*#__PURE__*/_react["default"].createElement("path", {
115
- d: "M15.5,14h-0.79l-0.28-0.27C15.41,12.59,16,11.11,16,9.5C16,5.91,13.09,3,9.5,3C6.08,3,3.28,5.64,3.03,9h2.02 C5.3,6.75,7.18,5,9.5,5C11.99,5,14,7.01,14,9.5S11.99,14,9.5,14c-0.17,0-0.33-0.03-0.5-0.05v2.02C9.17,15.99,9.33,16,9.5,16 c1.61,0,3.09-0.59,4.23-1.57L14,14.71v0.79l5,4.99L20.49,19L15.5,14z"
116
- }), /*#__PURE__*/_react["default"].createElement("polygon", {
117
- points: "6.47,10.82 4,13.29 1.53,10.82 0.82,11.53 3.29,14 0.82,16.47 1.53,17.18 4,14.71 6.47,17.18 7.18,16.47 4.71,14 7.18,11.53"
118
- }))))
46
+ var groupsHaveOptions = function groupsHaveOptions(innerOptions) {
47
+ return innerOptions[0].hasOwnProperty("options") ? innerOptions[0].options ? innerOptions.some(function (groupOption) {
48
+ return groupOption.options.length > 0;
49
+ }) : false : true;
50
+ };
51
+
52
+ var filteredGroupsHaveOptions = function filteredGroupsHaveOptions(filteredOptions) {
53
+ return filteredOptions !== null && filteredOptions !== void 0 && filteredOptions[0].options ? filteredOptions.some(function (groupOption) {
54
+ var _groupOption$options;
55
+
56
+ return ((_groupOption$options = groupOption.options) === null || _groupOption$options === void 0 ? void 0 : _groupOption$options.length) > 0;
57
+ }) : true;
119
58
  };
120
59
 
121
- var getNotOptionalErrorMessage = function getNotOptionalErrorMessage() {
122
- return "This field is required. Please, enter a value.";
60
+ var canOpenOptions = function canOpenOptions(options, disabled) {
61
+ return !disabled && (options === null || options === void 0 ? void 0 : options.length) > 0 && groupsHaveOptions(options);
123
62
  };
124
63
 
125
64
  var filterOptionsBySearchValue = function filterOptionsBySearchValue(options, searchValue) {
@@ -151,8 +90,7 @@ var getLastOptionIndex = function getLastOptionIndex(options, filteredOptions, s
151
90
  return optional && !multiple ? last + 1 : last;
152
91
  };
153
92
 
154
- var getSelectedOption = function getSelectedOption(options, multiple, optional, optionalEmptyOption, value, innerValue) {
155
- var val = value !== null && value !== void 0 ? value : innerValue;
93
+ var getSelectedOption = function getSelectedOption(value, options, multiple, optional, optionalItem) {
156
94
  var selectedOption = multiple ? [] : {};
157
95
  var singleSelectionIndex;
158
96
 
@@ -161,21 +99,21 @@ var getSelectedOption = function getSelectedOption(options, multiple, optional,
161
99
  options.forEach(function (option) {
162
100
  if (option.options) {
163
101
  option.options.forEach(function (singleOption) {
164
- if (val.includes(singleOption.value)) selectedOption.push(singleOption);
102
+ if (value.includes(singleOption.value)) selectedOption.push(singleOption);
165
103
  });
166
- } else if (val.includes(option.value)) selectedOption.push(option);
104
+ } else if (value.includes(option.value)) selectedOption.push(option);
167
105
  });
168
106
  }
169
107
  } else {
170
- if (optional && val === "") {
171
- selectedOption = optionalEmptyOption;
108
+ if (optional && value === "") {
109
+ selectedOption = optionalItem;
172
110
  singleSelectionIndex = 0;
173
111
  } else if ((options === null || options === void 0 ? void 0 : options.length) > 0) {
174
112
  var group_index = 0;
175
113
  options.some(function (option, index) {
176
114
  if (option.options) {
177
115
  option.options.some(function (singleOption) {
178
- if (singleOption.value === val) {
116
+ if (singleOption.value === value) {
179
117
  selectedOption = singleOption;
180
118
  singleSelectionIndex = optional ? group_index + 1 : group_index;
181
119
  return true;
@@ -183,7 +121,7 @@ var getSelectedOption = function getSelectedOption(options, multiple, optional,
183
121
 
184
122
  group_index++;
185
123
  });
186
- } else if (option.value === val) {
124
+ } else if (option.value === value) {
187
125
  selectedOption = option;
188
126
  singleSelectionIndex = optional ? index + 1 : index;
189
127
  return true;
@@ -198,12 +136,17 @@ var getSelectedOption = function getSelectedOption(options, multiple, optional,
198
136
  };
199
137
  };
200
138
 
139
+ var notOptionalCheck = function notOptionalCheck(value, multiple, optional) {
140
+ return !optional && (multiple ? value.length === 0 : value === "");
141
+ };
142
+
201
143
  var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
202
144
  var _selectedOption$label;
203
145
 
204
146
  var label = _ref.label,
205
147
  _ref$name = _ref.name,
206
148
  name = _ref$name === void 0 ? "" : _ref$name,
149
+ defaultValue = _ref.defaultValue,
207
150
  value = _ref.value,
208
151
  options = _ref.options,
209
152
  helperText = _ref.helperText,
@@ -234,7 +177,7 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
234
177
  var errorId = "error-".concat(selectId);
235
178
  var optionsListId = "".concat(selectId, "-listbox");
236
179
 
237
- var _useState3 = (0, _react.useState)(multiple ? [] : ""),
180
+ var _useState3 = (0, _react.useState)(defaultValue !== null && defaultValue !== void 0 ? defaultValue : multiple ? [] : ""),
238
181
  _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
239
182
  innerValue = _useState4[0],
240
183
  setInnerValue = _useState4[1];
@@ -254,11 +197,11 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
254
197
  isOpen = _useState10[0],
255
198
  changeIsOpen = _useState10[1];
256
199
 
257
- var selectContainerRef = (0, _react.useRef)(null);
200
+ var selectRef = (0, _react.useRef)(null);
258
201
  var selectSearchInputRef = (0, _react.useRef)(null);
259
- var selectOptionsListRef = (0, _react.useRef)(null);
260
202
  var colorsTheme = (0, _useTheme["default"])();
261
- var optionalEmptyOption = {
203
+ var translatedLabels = (0, _useTranslatedLabels["default"])();
204
+ var optionalItem = {
262
205
  label: placeholder,
263
206
  value: ""
264
207
  };
@@ -267,42 +210,16 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
267
210
  }, [options, searchValue]);
268
211
  var lastOptionIndex = (0, _react.useMemo)(function () {
269
212
  return getLastOptionIndex(options, filteredOptions, searchable, optional, multiple);
270
- }, [searchable, optional, multiple, filteredOptions, options]);
213
+ }, [options, filteredOptions, searchable, optional, multiple]);
271
214
 
272
215
  var _useMemo = (0, _react.useMemo)(function () {
273
- return getSelectedOption(options, multiple, optional, optionalEmptyOption, value, innerValue);
274
- }, [options, multiple, optional, value, innerValue]),
216
+ return getSelectedOption(value !== null && value !== void 0 ? value : innerValue, options, multiple, optional, optionalItem);
217
+ }, [value, innerValue, options, multiple, optional, optionalItem]),
275
218
  selectedOption = _useMemo.selectedOption,
276
219
  singleSelectionIndex = _useMemo.singleSelectionIndex;
277
220
 
278
- var notOptionalCheck = function notOptionalCheck(value) {
279
- return value === "" && !optional;
280
- };
281
-
282
- var notOptionalMultipleCheck = function notOptionalMultipleCheck() {
283
- return (value !== null && value !== void 0 ? value : innerValue).length === 0 && !optional;
284
- };
285
-
286
- var canBeOpenOptions = function canBeOpenOptions() {
287
- return !disabled && (options === null || options === void 0 ? void 0 : options.length) > 0 && groupsHaveOptions();
288
- };
289
-
290
- var groupsHaveOptions = function groupsHaveOptions() {
291
- return options[0].hasOwnProperty("options") ? options[0].options ? options.some(function (groupOption) {
292
- return groupOption.options.length > 0;
293
- }) : false : true;
294
- };
295
-
296
- var filteredGroupsHaveOptions = function filteredGroupsHaveOptions() {
297
- return filteredOptions !== null && filteredOptions !== void 0 && filteredOptions[0].options ? filteredOptions.some(function (groupOption) {
298
- var _groupOption$options;
299
-
300
- return ((_groupOption$options = groupOption.options) === null || _groupOption$options === void 0 ? void 0 : _groupOption$options.length) > 0;
301
- }) : true;
302
- };
303
-
304
221
  var openOptions = function openOptions() {
305
- if (!isOpen && canBeOpenOptions()) changeIsOpen(true);
222
+ if (!isOpen && canOpenOptions(options, disabled)) changeIsOpen(true);
306
223
  };
307
224
 
308
225
  var closeOptions = function closeOptions() {
@@ -313,36 +230,21 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
313
230
  };
314
231
 
315
232
  var handleSelectChangeValue = function handleSelectChangeValue(newOption) {
316
- if (multiple) {
317
- var _res, _res2;
233
+ var newValue;
318
234
 
319
- var res;
320
- if ((value !== null && value !== void 0 ? value : innerValue).includes(newOption.value)) value ? res = value.filter(function (optionVal) {
235
+ if (multiple) {
236
+ if ((value !== null && value !== void 0 ? value : innerValue).includes(newOption.value)) newValue = (value !== null && value !== void 0 ? value : innerValue).filter(function (optionVal) {
321
237
  return optionVal !== newOption.value;
322
- }) : setInnerValue(function (previous) {
323
- return previous.filter(function (optionVal) {
324
- return optionVal !== newOption.value;
325
- });
326
- });else value ? res = [].concat((0, _toConsumableArray2["default"])(value), [newOption.value]) : setInnerValue(function (previous) {
327
- return [].concat((0, _toConsumableArray2["default"])(previous), [newOption.value]);
328
- });
329
- if (notOptionalMultipleCheck(newOption.value)) onChange === null || onChange === void 0 ? void 0 : onChange({
330
- value: (_res = res) !== null && _res !== void 0 ? _res : innerValue,
331
- error: getNotOptionalErrorMessage()
332
- });else onChange === null || onChange === void 0 ? void 0 : onChange({
333
- value: (_res2 = res) !== null && _res2 !== void 0 ? _res2 : innerValue,
334
- error: null
335
- });
336
- } else {
337
- value !== null && value !== void 0 ? value : setInnerValue(newOption.value);
338
- if (notOptionalCheck(newOption.value)) onChange === null || onChange === void 0 ? void 0 : onChange({
339
- value: newOption.value,
340
- error: getNotOptionalErrorMessage()
341
- });else onChange === null || onChange === void 0 ? void 0 : onChange({
342
- value: newOption.value,
343
- error: null
344
- });
345
- }
238
+ });else newValue = [].concat((0, _toConsumableArray2["default"])(value !== null && value !== void 0 ? value : innerValue), [newOption.value]);
239
+ } else newValue = newOption.value;
240
+
241
+ value !== null && value !== void 0 ? value : setInnerValue(newValue);
242
+ notOptionalCheck(newValue, multiple, optional) ? onChange === null || onChange === void 0 ? void 0 : onChange({
243
+ value: newValue,
244
+ error: translatedLabels.formFields.requiredValueErrorMessage
245
+ }) : onChange === null || onChange === void 0 ? void 0 : onChange({
246
+ value: newValue
247
+ });
346
248
  };
347
249
 
348
250
  var handleSelectOnClick = function handleSelectOnClick() {
@@ -363,20 +265,20 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
363
265
  if (!event.currentTarget.contains(event.relatedTarget)) {
364
266
  closeOptions();
365
267
  setSearchValue("");
366
- if (notOptionalCheck(value !== null && value !== void 0 ? value : innerValue)) onBlur === null || onBlur === void 0 ? void 0 : onBlur({
367
- value: value !== null && value !== void 0 ? value : innerValue,
368
- error: getNotOptionalErrorMessage()
369
- });else onBlur === null || onBlur === void 0 ? void 0 : onBlur({
370
- value: value !== null && value !== void 0 ? value : innerValue,
371
- error: null
268
+ var currentValue = value !== null && value !== void 0 ? value : innerValue;
269
+ notOptionalCheck(currentValue, multiple, optional) ? onBlur === null || onBlur === void 0 ? void 0 : onBlur({
270
+ value: currentValue,
271
+ error: translatedLabels.formFields.requiredValueErrorMessage
272
+ }) : onBlur === null || onBlur === void 0 ? void 0 : onBlur({
273
+ value: currentValue
372
274
  });
373
275
  }
374
276
  };
375
277
 
376
278
  var handleSelectOnKeyDown = function handleSelectOnKeyDown(event) {
377
- switch (event.keyCode) {
378
- case 40:
379
- // Arrow Down
279
+ switch (event.key) {
280
+ case "Down":
281
+ case "ArrowDown":
380
282
  event.preventDefault();
381
283
  singleSelectionIndex !== undefined && (!isOpen || visualFocusIndex === -1 && singleSelectionIndex > -1 && singleSelectionIndex <= lastOptionIndex) ? changeVisualFocusIndex(singleSelectionIndex) : changeVisualFocusIndex(function (visualFocusIndex) {
382
284
  if (visualFocusIndex < lastOptionIndex) return visualFocusIndex + 1;else if (visualFocusIndex === lastOptionIndex) return 0;
@@ -384,8 +286,8 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
384
286
  openOptions();
385
287
  break;
386
288
 
387
- case 38:
388
- // Arrow Up
289
+ case "Up":
290
+ case "ArrowUp":
389
291
  event.preventDefault();
390
292
  singleSelectionIndex !== undefined && (!isOpen || visualFocusIndex === -1 && singleSelectionIndex > -1 && singleSelectionIndex <= lastOptionIndex) ? changeVisualFocusIndex(singleSelectionIndex) : changeVisualFocusIndex(function (visualFocusIndex) {
391
293
  return visualFocusIndex === 0 || visualFocusIndex === -1 ? lastOptionIndex : visualFocusIndex - 1;
@@ -393,21 +295,20 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
393
295
  openOptions();
394
296
  break;
395
297
 
396
- case 27:
397
- // Esc
298
+ case "Esc":
299
+ case "Escape":
398
300
  event.preventDefault();
399
301
  closeOptions();
400
302
  setSearchValue("");
401
303
  break;
402
304
 
403
- case 13:
404
- // Enter
305
+ case "Enter":
405
306
  if (isOpen && visualFocusIndex >= 0) {
406
307
  var accLength = optional && !multiple ? 1 : 0;
407
308
 
408
309
  if (searchable) {
409
310
  if (filteredOptions.length > 0) {
410
- if (optional && !multiple && visualFocusIndex === 0 && filteredGroupsHaveOptions()) handleSelectChangeValue(optionalEmptyOption);else filteredOptions[0].options ? filteredGroupsHaveOptions() && filteredOptions.some(function (groupOption) {
311
+ if (optional && !multiple && visualFocusIndex === 0 && filteredGroupsHaveOptions(filteredOptions)) handleSelectChangeValue(optionalItem);else filteredOptions[0].options ? filteredGroupsHaveOptions(filteredOptions) && filteredOptions.some(function (groupOption) {
411
312
  var groupLength = accLength + groupOption.options.length;
412
313
  groupLength > visualFocusIndex && handleSelectChangeValue(groupOption.options[visualFocusIndex - accLength]);
413
314
  accLength = groupLength;
@@ -415,7 +316,7 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
415
316
  }) : handleSelectChangeValue(filteredOptions[visualFocusIndex - accLength]);
416
317
  }
417
318
  } else {
418
- if (optional && !multiple && visualFocusIndex === 0) handleSelectChangeValue(optionalEmptyOption);else options[0].options ? options.some(function (groupOption) {
319
+ if (optional && !multiple && visualFocusIndex === 0) handleSelectChangeValue(optionalItem);else options[0].options ? options.some(function (groupOption) {
419
320
  var groupLength = accLength + groupOption.options.length;
420
321
  groupLength > visualFocusIndex && handleSelectChangeValue(groupOption.options[visualFocusIndex - accLength]);
421
322
  accLength = groupLength;
@@ -440,9 +341,11 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
440
341
  var handleClearOptionsActionOnClick = function handleClearOptionsActionOnClick(event) {
441
342
  event.stopPropagation();
442
343
  value !== null && value !== void 0 ? value : setInnerValue([]);
443
- onChange === null || onChange === void 0 ? void 0 : onChange({
344
+ !optional ? onChange === null || onChange === void 0 ? void 0 : onChange({
444
345
  value: [],
445
- error: getNotOptionalErrorMessage()
346
+ error: translatedLabels.formFields.requiredValueErrorMessage
347
+ }) : onChange === null || onChange === void 0 ? void 0 : onChange({
348
+ value: []
446
349
  });
447
350
  };
448
351
 
@@ -451,96 +354,17 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
451
354
  setSearchValue("");
452
355
  };
453
356
 
454
- (0, _react.useLayoutEffect)(function () {
455
- if (isOpen && singleSelectionIndex) {
456
- var _listEl$scrollTo;
457
-
458
- var listEl = selectOptionsListRef === null || selectOptionsListRef === void 0 ? void 0 : selectOptionsListRef.current;
459
- var selectedListOptionEl = listEl === null || listEl === void 0 ? void 0 : listEl.querySelector("[aria-selected='true']");
460
- listEl === null || listEl === void 0 ? void 0 : (_listEl$scrollTo = listEl.scrollTo) === null || _listEl$scrollTo === void 0 ? void 0 : _listEl$scrollTo.call(listEl, {
461
- top: (selectedListOptionEl === null || selectedListOptionEl === void 0 ? void 0 : selectedListOptionEl.offsetTop) - (listEl === null || listEl === void 0 ? void 0 : listEl.clientHeight) / 2
462
- });
463
- }
464
- }, [isOpen]);
465
- (0, _react.useLayoutEffect)(function () {
466
- var _selectOptionsListRef, _visualFocusedOptionE;
467
-
468
- var visualFocusedOptionEl = selectOptionsListRef === null || selectOptionsListRef === void 0 ? void 0 : (_selectOptionsListRef = selectOptionsListRef.current) === null || _selectOptionsListRef === void 0 ? void 0 : _selectOptionsListRef.querySelectorAll("[role='option']")[visualFocusIndex];
469
- visualFocusedOptionEl === null || visualFocusedOptionEl === void 0 ? void 0 : (_visualFocusedOptionE = visualFocusedOptionEl.scrollIntoView) === null || _visualFocusedOptionE === void 0 ? void 0 : _visualFocusedOptionE.call(visualFocusedOptionEl, {
470
- block: "nearest",
471
- inline: "start"
472
- });
473
- }, [visualFocusIndex]);
474
-
475
- var Option = function Option(_ref2) {
476
- var option = _ref2.option,
477
- index = _ref2.index,
478
- _ref2$isGroupedOption = _ref2.isGroupedOption,
479
- isGroupedOption = _ref2$isGroupedOption === void 0 ? false : _ref2$isGroupedOption;
480
- var isSelected = multiple ? (value !== null && value !== void 0 ? value : innerValue).includes(option.value) : (value !== null && value !== void 0 ? value : innerValue) === option.value;
481
- var isLastOption = index === lastOptionIndex;
482
- return /*#__PURE__*/_react["default"].createElement(OptionItem, {
483
- id: "option-".concat(index),
484
- onClick: function onClick() {
485
- handleSelectChangeValue(option);
486
- !multiple && closeOptions();
487
- setSearchValue("");
488
- },
489
- visualFocused: visualFocusIndex === index,
490
- selected: isSelected,
491
- role: "option",
492
- "aria-selected": isSelected
493
- }, /*#__PURE__*/_react["default"].createElement(StyledOption, {
494
- visualFocused: visualFocusIndex === index,
495
- selected: isSelected,
496
- last: isLastOption,
497
- grouped: isGroupedOption,
498
- multiple: multiple
499
- }, multiple && /*#__PURE__*/_react["default"].createElement(_Checkbox["default"], {
500
- tabIndex: -1,
501
- checked: isSelected
502
- }), option.icon && /*#__PURE__*/_react["default"].createElement(OptionIcon, {
503
- grouped: isGroupedOption,
504
- multiple: multiple,
505
- role: !(typeof option.icon === "string") && "img"
506
- }, typeof option.icon === "string" ? /*#__PURE__*/_react["default"].createElement(OptionIconImg, {
507
- src: option.icon
508
- }) : option.icon), /*#__PURE__*/_react["default"].createElement(OptionContent, {
509
- grouped: isGroupedOption,
510
- hasIcon: option.icon,
511
- multiple: multiple
512
- }, /*#__PURE__*/_react["default"].createElement(OptionLabel, null, option.label), !multiple && isSelected && /*#__PURE__*/_react["default"].createElement(OptionSelectedIndicator, null, selectIcons.selected))));
513
- };
514
-
515
- var globalIndex = optional && !multiple ? 0 : -1; // index for options, starting from 0 to options.length -1
516
-
517
- var mapOptionFunc = function mapOptionFunc(option, mapIndex) {
518
- if (option.options) {
519
- var groupId = "group-".concat(mapIndex);
520
- return option.options.length > 0 && /*#__PURE__*/_react["default"].createElement("li", null, /*#__PURE__*/_react["default"].createElement(GroupList, {
521
- role: "group",
522
- "aria-labelledby": groupId
523
- }, /*#__PURE__*/_react["default"].createElement(GroupLabel, {
524
- role: "presentation",
525
- id: groupId
526
- }, option.label), option.options.map(function (singleOption) {
527
- globalIndex++;
528
- return /*#__PURE__*/_react["default"].createElement(Option, {
529
- option: singleOption,
530
- index: globalIndex,
531
- isGroupedOption: true
532
- });
533
- })));
534
- } else {
535
- globalIndex++;
536
- return /*#__PURE__*/_react["default"].createElement(Option, {
537
- key: "option-".concat(option.value),
538
- option: option,
539
- index: globalIndex
540
- });
541
- }
542
- };
357
+ var handleOptionOnClick = (0, _react.useCallback)(function (option) {
358
+ handleSelectChangeValue(option);
359
+ !multiple && closeOptions();
360
+ setSearchValue("");
361
+ }, [handleSelectChangeValue, closeOptions, multiple]);
362
+ var getSelectWidth = (0, _react.useCallback)(function () {
363
+ var _selectRef$current;
543
364
 
365
+ var rect = selectRef === null || selectRef === void 0 ? void 0 : (_selectRef$current = selectRef.current) === null || _selectRef$current === void 0 ? void 0 : _selectRef$current.getBoundingClientRect();
366
+ return rect === null || rect === void 0 ? void 0 : rect.width;
367
+ }, []);
544
368
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
545
369
  theme: colorsTheme.select
546
370
  }, /*#__PURE__*/_react["default"].createElement(SelectContainer, {
@@ -551,12 +375,16 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
551
375
  id: selectLabelId,
552
376
  disabled: disabled,
553
377
  onClick: function onClick() {
554
- selectContainerRef.current.focus();
378
+ selectRef.current.focus();
555
379
  },
556
380
  helperText: helperText
557
- }, label, " ", optional && /*#__PURE__*/_react["default"].createElement(OptionalLabel, null, "(Optional)")), helperText && /*#__PURE__*/_react["default"].createElement(HelperText, {
381
+ }, label, " ", optional && /*#__PURE__*/_react["default"].createElement(OptionalLabel, null, translatedLabels.formFields.optionalLabel)), helperText && /*#__PURE__*/_react["default"].createElement(HelperText, {
558
382
  disabled: disabled
559
- }, helperText), /*#__PURE__*/_react["default"].createElement(Select, {
383
+ }, helperText), /*#__PURE__*/_react["default"].createElement(Popover.Root, {
384
+ open: isOpen
385
+ }, /*#__PURE__*/_react["default"].createElement(Popover.Trigger, {
386
+ asChild: true
387
+ }, /*#__PURE__*/_react["default"].createElement(Select, {
560
388
  id: selectId,
561
389
  disabled: disabled,
562
390
  error: error,
@@ -564,18 +392,18 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
564
392
  onClick: handleSelectOnClick,
565
393
  onFocus: handleSelectOnFocus,
566
394
  onKeyDown: handleSelectOnKeyDown,
567
- ref: selectContainerRef,
568
- tabIndex: tabIndex,
395
+ ref: selectRef,
396
+ tabIndex: disabled ? -1 : tabIndex,
569
397
  role: "combobox",
570
398
  "aria-controls": optionsListId,
571
399
  "aria-disabled": disabled,
572
400
  "aria-expanded": isOpen,
573
401
  "aria-haspopup": "listbox",
574
- "aria-labelledby": selectLabelId,
402
+ "aria-labelledby": label ? selectLabelId : undefined,
575
403
  "aria-activedescendant": visualFocusIndex >= 0 ? "option-".concat(visualFocusIndex) : undefined,
576
- "aria-invalid": error ? "true" : "false",
404
+ "aria-invalid": error ? true : false,
577
405
  "aria-errormessage": error ? errorId : undefined,
578
- "aria-required": !optional
406
+ "aria-required": !disabled && !optional
579
407
  }, multiple && selectedOption.length > 0 && /*#__PURE__*/_react["default"].createElement(SelectionIndicator, null, /*#__PURE__*/_react["default"].createElement(SelectionNumber, {
580
408
  disabled: disabled
581
409
  }, selectedOption.length), /*#__PURE__*/_react["default"].createElement(ClearOptionsAction, {
@@ -586,11 +414,11 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
586
414
  },
587
415
  onClick: handleClearOptionsActionOnClick,
588
416
  tabIndex: -1,
589
- title: "Clear selection",
590
- "aria-label": "Clear selection"
591
- }, selectIcons.clear)), /*#__PURE__*/_react["default"].createElement(SearchableValueContainer, null, /*#__PURE__*/_react["default"].createElement(ValueInput, {
417
+ title: translatedLabels.select.actionClearSelectionTitle,
418
+ "aria-label": translatedLabels.select.actionClearSelectionTitle
419
+ }, _Icons["default"].clear)), /*#__PURE__*/_react["default"].createElement(SearchableValueContainer, null, /*#__PURE__*/_react["default"].createElement(ValueInput, {
592
420
  name: name,
593
- value: multiple ? (value !== null && value !== void 0 ? value : innerValue).join(", ") : value !== null && value !== void 0 ? value : innerValue,
421
+ value: multiple ? (value !== null && value !== void 0 ? value : innerValue).join(",") : value !== null && value !== void 0 ? value : innerValue,
594
422
  readOnly: true,
595
423
  "aria-hidden": "true"
596
424
  }), searchable && /*#__PURE__*/_react["default"].createElement(SearchInput, {
@@ -598,43 +426,51 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
598
426
  disabled: disabled,
599
427
  onChange: handleSearchIOnChange,
600
428
  ref: selectSearchInputRef,
601
- autoComplete: "off",
602
- autoCorrect: "off",
603
- size: "1"
429
+ autoComplete: "nope",
430
+ autoCorrect: "nope",
431
+ size: 1
604
432
  }), (!searchable || searchValue === "") && (multiple ? /*#__PURE__*/_react["default"].createElement(SelectedOption, {
605
433
  disabled: disabled,
606
434
  atBackground: (value !== null && value !== void 0 ? value : innerValue).length === 0 || searchable && isOpen
607
- }, /*#__PURE__*/_react["default"].createElement(OptionLabel, null, selectedOption.map(function (option) {
435
+ }, /*#__PURE__*/_react["default"].createElement(SelectedOptionLabel, null, selectedOption.map(function (option) {
608
436
  return option.label;
609
437
  }).join(", ")), selectedOption.length === 0 && placeholder) : /*#__PURE__*/_react["default"].createElement(SelectedOption, {
610
438
  disabled: disabled,
611
439
  atBackground: !(value !== null && value !== void 0 ? value : innerValue) || searchable && isOpen
612
- }, /*#__PURE__*/_react["default"].createElement(OptionLabel, 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, selectIcons.error), searchable && searchValue.length > 0 && /*#__PURE__*/_react["default"].createElement(ClearSearchAction, {
440
+ }, /*#__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, {
613
441
  onMouseDown: function onMouseDown(event) {
614
442
  // Avoid input to lose focus
615
443
  event.preventDefault();
616
444
  },
617
445
  onClick: handleClearSearchActionOnClick,
618
446
  tabIndex: -1,
619
- title: "Clear search",
620
- "aria-label": "Clear search"
621
- }, selectIcons.clear), /*#__PURE__*/_react["default"].createElement(CollapseIndicator, {
447
+ title: translatedLabels.select.actionClearSearchTitle,
448
+ "aria-label": translatedLabels.select.actionClearSearchTitle
449
+ }, _Icons["default"].clear), /*#__PURE__*/_react["default"].createElement(CollapseIndicator, {
622
450
  disabled: disabled
623
- }, isOpen ? selectIcons.arrowUp : selectIcons.arrowDown), isOpen && /*#__PURE__*/_react["default"].createElement(OptionsList, {
624
- id: optionsListId,
625
- onClick: function onClick(event) {
626
- event.stopPropagation();
627
- },
628
- onMouseDown: function onMouseDown(event) {
451
+ }, isOpen ? _Icons["default"].arrowUp : _Icons["default"].arrowDown))), /*#__PURE__*/_react["default"].createElement(Popover.Content, {
452
+ sideOffset: 4,
453
+ onOpenAutoFocus: function onOpenAutoFocus(event) {
454
+ // Avoid select to lose focus when the list is opened
629
455
  event.preventDefault();
630
456
  },
631
- ref: selectOptionsListRef,
632
- role: "listbox",
633
- "aria-multiselectable": multiple
634
- }, searchable && (filteredOptions.length === 0 || !filteredGroupsHaveOptions()) ? /*#__PURE__*/_react["default"].createElement(OptionsSystemMessage, null, /*#__PURE__*/_react["default"].createElement(NoMatchesFoundIcon, null, selectIcons.searchOff), "No matches found") : optional && !multiple && /*#__PURE__*/_react["default"].createElement(Option, {
635
- option: optionalEmptyOption,
636
- index: 0
637
- }), searchable ? filteredOptions.map(mapOptionFunc) : options.map(mapOptionFunc))), !disabled && typeof error === "string" && /*#__PURE__*/_react["default"].createElement(Error, {
457
+ onCloseAutoFocus: function onCloseAutoFocus(event) {
458
+ // Avoid select to lose focus when the list is closed
459
+ event.preventDefault();
460
+ }
461
+ }, /*#__PURE__*/_react["default"].createElement(_Listbox["default"], {
462
+ id: optionsListId,
463
+ currentValue: value !== null && value !== void 0 ? value : innerValue,
464
+ options: searchable ? filteredOptions : options,
465
+ visualFocusIndex: visualFocusIndex,
466
+ lastOptionIndex: lastOptionIndex,
467
+ multiple: multiple,
468
+ optional: optional,
469
+ optionalItem: optionalItem,
470
+ searchable: searchable,
471
+ handleOptionOnClick: handleOptionOnClick,
472
+ getSelectWidth: getSelectWidth
473
+ }))), !disabled && typeof error === "string" && /*#__PURE__*/_react["default"].createElement(Error, {
638
474
  id: errorId,
639
475
  "aria-live": error ? "assertive" : "off"
640
476
  }, error)));
@@ -733,9 +569,7 @@ var SelectionNumber = _styledComponents["default"].span(_templateObject7 || (_te
733
569
  return props.disabled ? "cursor: not-allowed;" : "cursor: default;";
734
570
  });
735
571
 
736
- 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) {
737
- return props.theme.fontFamily;
738
- }, function (props) {
572
+ 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) {
739
573
  return props.disabled ? "cursor: not-allowed;" : "cursor: pointer;";
740
574
  }, function (props) {
741
575
  return props.disabled ? "transparent" : props.theme.enabledSelectionIndicatorActionBackgroundColor;
@@ -759,9 +593,11 @@ var SelectedOption = _styledComponents["default"].span(_templateObject10 || (_te
759
593
  return props.theme.valueFontWeight;
760
594
  });
761
595
 
762
- var ValueInput = _styledComponents["default"].input(_templateObject11 || (_templateObject11 = (0, _taggedTemplateLiteral2["default"])(["\n display: none;\n"])));
596
+ var SelectedOptionLabel = _styledComponents["default"].span(_templateObject11 || (_templateObject11 = (0, _taggedTemplateLiteral2["default"])(["\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n"])));
597
+
598
+ var ValueInput = _styledComponents["default"].input(_templateObject12 || (_templateObject12 = (0, _taggedTemplateLiteral2["default"])(["\n display: none;\n"])));
763
599
 
764
- var SearchInput = _styledComponents["default"].input(_templateObject12 || (_templateObject12 = (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) {
600
+ 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) {
765
601
  return props.disabled ? props.theme.disabledColor : props.theme.valueFontColor;
766
602
  }, function (props) {
767
603
  return props.theme.fontFamily;
@@ -773,21 +609,21 @@ var SearchInput = _styledComponents["default"].input(_templateObject12 || (_temp
773
609
  return props.theme.valueFontWeight;
774
610
  });
775
611
 
776
- var ErrorIcon = _styledComponents["default"].span(_templateObject13 || (_templateObject13 = (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) {
612
+ 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) {
777
613
  return props.theme.errorIconColor;
778
614
  });
779
615
 
780
- var Error = _styledComponents["default"].span(_templateObject14 || (_templateObject14 = (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) {
616
+ 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) {
781
617
  return props.theme.errorMessageColor;
782
618
  }, function (props) {
783
619
  return props.theme.fontFamily;
784
620
  });
785
621
 
786
- var CollapseIndicator = _styledComponents["default"].span(_templateObject15 || (_templateObject15 = (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) {
622
+ 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) {
787
623
  return props.disabled ? props.theme.disabledColor : props.theme.collapseIndicatorColor;
788
624
  });
789
625
 
790
- var ClearSearchAction = _styledComponents["default"].button(_templateObject16 || (_templateObject16 = (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) {
626
+ 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) {
791
627
  return props.theme.fontFamily;
792
628
  }, function (props) {
793
629
  return props.theme.actionBackgroundColor;
@@ -803,67 +639,5 @@ var ClearSearchAction = _styledComponents["default"].button(_templateObject16 ||
803
639
  return props.theme.activeActionIconColor;
804
640
  });
805
641
 
806
- var OptionsList = _styledComponents["default"].ul(_templateObject17 || (_templateObject17 = (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 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) {
807
- return props.theme.listDialogBackgroundColor;
808
- }, function (props) {
809
- return props.theme.listDialogBorderColor;
810
- }, function (props) {
811
- return props.theme.listOptionFontColor;
812
- }, function (props) {
813
- return props.theme.fontFamily;
814
- }, function (props) {
815
- return props.theme.listOptionFontSize;
816
- }, function (props) {
817
- return props.theme.listOptionFontStyle;
818
- }, function (props) {
819
- return props.theme.listOptionFontWeight;
820
- });
821
-
822
- var OptionsSystemMessage = _styledComponents["default"].span(_templateObject18 || (_templateObject18 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n padding: 4px 16px;\n color: ", ";\n font-size: 0.875rem;\n line-height: 1.715em;\n"])), function (props) {
823
- return props.theme.systemMessageFontColor;
824
- });
825
-
826
- var NoMatchesFoundIcon = _styledComponents["default"].span(_templateObject19 || (_templateObject19 = (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-right: 0.25rem;\n"])));
827
-
828
- var GroupList = _styledComponents["default"].ul(_templateObject20 || (_templateObject20 = (0, _taggedTemplateLiteral2["default"])(["\n padding: 0;\n"])));
829
-
830
- var GroupLabel = _styledComponents["default"].li(_templateObject21 || (_templateObject21 = (0, _taggedTemplateLiteral2["default"])(["\n padding: 4px 16px;\n font-weight: ", ";\n line-height: 1.715em;\n"])), function (props) {
831
- return props.theme.listGroupLabelFontWeight;
832
- });
833
-
834
- var OptionItem = _styledComponents["default"].li(_templateObject22 || (_templateObject22 = (0, _taggedTemplateLiteral2["default"])(["\n padding: 0 0.5rem;\n box-shadow: inset 0 0 0 2px transparent;\n ", "\n ", ";\n line-height: 1.715em;\n cursor: pointer;\n\n &:hover {\n ", ";\n }\n &:active {\n ", ";\n }\n"])), function (props) {
835
- return props.visualFocused && "box-shadow: inset 0 0 0 2px ".concat(props.theme.focusListOptionBorderColor, ";");
836
- }, function (props) {
837
- return props.selected && "background-color: ".concat(props.theme.selectedListOptionBackgroundColor);
838
- }, function (props) {
839
- return props.selected ? "background-color: ".concat(props.theme.selectedHoverListOptionBackgroundColor, ";") : "background-color: ".concat(props.theme.unselectedHoverListOptionBackgroundColor, ";");
840
- }, function (props) {
841
- return props.selected ? "background-color: ".concat(props.theme.selectedActiveListOptionBackgroundColor, ";") : "background-color: ".concat(props.theme.unselectedActiveListOptionBackgroundColor, ";");
842
- });
843
-
844
- var StyledOption = _styledComponents["default"].span(_templateObject23 || (_templateObject23 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n padding: 0.25rem 0.5rem 0.188rem 0;\n min-height: 24px;\n ", "\n ", ";\n"])), function (props) {
845
- return props.grouped && props.multiple && "padding-left: 16px;";
846
- }, function (props) {
847
- return props.last || props.visualFocused || props.selected ? "border-bottom: 1px solid transparent" : "border-bottom: 1px solid ".concat(props.theme.listOptionDividerColor);
848
- });
849
-
850
- var OptionContent = _styledComponents["default"].span(_templateObject24 || (_templateObject24 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n justify-content: space-between;\n width: 100%;\n overflow: hidden;\n ", "\n"])), function (props) {
851
- return props.grouped && !props.multiple && !props.hasIcon ? "padding-left: 16px;" : "padding-left: 8px;";
852
- });
853
-
854
- var OptionIcon = _styledComponents["default"].span(_templateObject25 || (_templateObject25 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-wrap: wrap;\n align-content: center;\n height: 24px;\n width: 24px;\n ", "\n color: ", ";\n"])), function (props) {
855
- return props.grouped && !props.multiple ? "padding-left: 16px;" : "padding-left: 8px;";
856
- }, function (props) {
857
- return props.theme.listOptionIconColor;
858
- });
859
-
860
- var OptionIconImg = _styledComponents["default"].img(_templateObject26 || (_templateObject26 = (0, _taggedTemplateLiteral2["default"])(["\n width: 16px;\n height: 16px;\n"])));
861
-
862
- var OptionLabel = _styledComponents["default"].span(_templateObject27 || (_templateObject27 = (0, _taggedTemplateLiteral2["default"])(["\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n"])));
863
-
864
- var OptionSelectedIndicator = _styledComponents["default"].span(_templateObject28 || (_templateObject28 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n height: 16px;\n width: 16px;\n margin-left: 4px;\n color: ", ";\n"])), function (props) {
865
- return props.theme.selectedListOptionIconColor;
866
- });
867
-
868
642
  var _default = DxcSelect;
869
643
  exports["default"] = _default;