@dxc-technology/halstack-react 0.0.0-49c38a4 → 0.0.0-4a67e25

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 (225) hide show
  1. package/HalstackContext.d.ts +12 -0
  2. package/HalstackContext.js +294 -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 +25 -11
  7. package/accordion/types.d.ts +9 -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 +30 -37
  12. package/accordion-group/types.d.ts +14 -3
  13. package/alert/Alert.js +5 -2
  14. package/badge/Badge.d.ts +1 -1
  15. package/badge/Badge.js +5 -3
  16. package/badge/types.d.ts +1 -0
  17. package/bleed/Bleed.js +1 -34
  18. package/bleed/Bleed.stories.tsx +94 -95
  19. package/bleed/types.d.ts +25 -1
  20. package/box/Box.js +23 -33
  21. package/box/types.d.ts +1 -0
  22. package/bulleted-list/BulletedList.d.ts +7 -0
  23. package/bulleted-list/BulletedList.js +123 -0
  24. package/bulleted-list/BulletedList.stories.tsx +200 -0
  25. package/bulleted-list/types.d.ts +11 -0
  26. package/{list → bulleted-list}/types.js +0 -0
  27. package/button/Button.js +53 -68
  28. package/button/Button.stories.tsx +9 -0
  29. package/button/types.d.ts +7 -7
  30. package/card/Card.js +24 -27
  31. package/card/types.d.ts +1 -0
  32. package/checkbox/Checkbox.d.ts +2 -2
  33. package/checkbox/Checkbox.js +106 -109
  34. package/checkbox/Checkbox.stories.tsx +146 -130
  35. package/checkbox/Checkbox.test.js +100 -10
  36. package/checkbox/types.d.ts +13 -5
  37. package/chip/types.d.ts +1 -1
  38. package/common/variables.js +236 -106
  39. package/date-input/DateInput.js +56 -42
  40. package/date-input/DateInput.stories.tsx +19 -8
  41. package/date-input/DateInput.test.js +161 -87
  42. package/date-input/types.d.ts +16 -9
  43. package/dialog/Dialog.js +46 -50
  44. package/dialog/Dialog.stories.tsx +57 -2
  45. package/dialog/Dialog.test.js +34 -4
  46. package/dialog/types.d.ts +3 -2
  47. package/dropdown/Dropdown.d.ts +1 -1
  48. package/dropdown/Dropdown.js +247 -251
  49. package/dropdown/Dropdown.stories.tsx +126 -63
  50. package/dropdown/Dropdown.test.js +504 -108
  51. package/dropdown/DropdownMenu.d.ts +4 -0
  52. package/dropdown/DropdownMenu.js +80 -0
  53. package/dropdown/DropdownMenuItem.d.ts +4 -0
  54. package/dropdown/DropdownMenuItem.js +92 -0
  55. package/dropdown/types.d.ts +25 -5
  56. package/file-input/FileInput.d.ts +2 -2
  57. package/file-input/FileInput.js +183 -222
  58. package/file-input/FileInput.stories.tsx +38 -10
  59. package/file-input/FileInput.test.js +53 -12
  60. package/file-input/FileItem.d.ts +4 -14
  61. package/file-input/FileItem.js +43 -66
  62. package/file-input/types.d.ts +17 -0
  63. package/flex/Flex.d.ts +4 -0
  64. package/flex/Flex.js +69 -0
  65. package/flex/Flex.stories.tsx +103 -0
  66. package/flex/types.d.ts +32 -0
  67. package/{radio → flex}/types.js +0 -0
  68. package/footer/Footer.js +15 -88
  69. package/footer/Footer.stories.tsx +8 -1
  70. package/footer/Icons.js +1 -1
  71. package/footer/types.d.ts +2 -1
  72. package/header/Header.js +95 -114
  73. package/header/Header.stories.tsx +46 -36
  74. package/header/Header.test.js +18 -2
  75. package/header/Icons.js +2 -2
  76. package/header/types.d.ts +3 -2
  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 +58 -75
  90. package/link/Link.stories.tsx +95 -53
  91. package/link/Link.test.js +7 -15
  92. package/link/types.d.ts +7 -23
  93. package/main.d.ts +8 -10
  94. package/main.js +46 -56
  95. package/number-input/NumberInput.js +11 -18
  96. package/number-input/NumberInput.stories.tsx +5 -5
  97. package/number-input/NumberInput.test.js +45 -11
  98. package/number-input/types.d.ts +17 -10
  99. package/package.json +20 -16
  100. package/paginator/Paginator.js +17 -38
  101. package/paginator/Paginator.test.js +43 -1
  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 +16 -18
  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 +67 -22
  112. package/progress-bar/types.d.ts +3 -4
  113. package/quick-nav/QuickNav.d.ts +4 -0
  114. package/quick-nav/QuickNav.js +117 -0
  115. package/quick-nav/QuickNav.stories.tsx +342 -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 +43 -28
  120. package/radio-group/RadioGroup.js +32 -28
  121. package/radio-group/RadioGroup.stories.tsx +5 -0
  122. package/radio-group/RadioGroup.test.js +144 -116
  123. package/radio-group/types.d.ts +79 -2
  124. package/resultsetTable/ResultsetTable.js +1 -3
  125. package/resultsetTable/ResultsetTable.test.js +42 -0
  126. package/select/Icons.d.ts +10 -0
  127. package/select/Icons.js +93 -0
  128. package/select/Listbox.d.ts +4 -0
  129. package/select/Listbox.js +198 -0
  130. package/select/Option.d.ts +4 -0
  131. package/select/Option.js +110 -0
  132. package/select/Select.js +141 -365
  133. package/select/Select.stories.tsx +160 -115
  134. package/select/Select.test.js +609 -276
  135. package/select/types.d.ts +52 -12
  136. package/sidenav/Sidenav.d.ts +6 -5
  137. package/sidenav/Sidenav.js +184 -52
  138. package/sidenav/Sidenav.stories.tsx +154 -156
  139. package/sidenav/Sidenav.test.js +25 -37
  140. package/sidenav/types.d.ts +50 -27
  141. package/slider/Slider.d.ts +2 -2
  142. package/slider/Slider.js +122 -96
  143. package/slider/Slider.stories.tsx +15 -9
  144. package/slider/Slider.test.js +142 -21
  145. package/slider/types.d.ts +10 -2
  146. package/spinner/Spinner.js +1 -1
  147. package/switch/Switch.d.ts +2 -2
  148. package/switch/Switch.js +150 -67
  149. package/switch/Switch.stories.tsx +20 -42
  150. package/switch/Switch.test.js +155 -3
  151. package/switch/types.d.ts +12 -4
  152. package/table/Table.js +1 -1
  153. package/table/Table.test.js +1 -1
  154. package/tabs/Tab.d.ts +4 -0
  155. package/tabs/Tab.js +135 -0
  156. package/tabs/Tabs.d.ts +1 -1
  157. package/tabs/Tabs.js +362 -108
  158. package/tabs/Tabs.stories.tsx +74 -8
  159. package/tabs/Tabs.test.js +241 -13
  160. package/tabs/types.d.ts +19 -5
  161. package/tabs-nav/NavTabs.d.ts +8 -0
  162. package/tabs-nav/NavTabs.js +125 -0
  163. package/tabs-nav/NavTabs.stories.tsx +170 -0
  164. package/tabs-nav/NavTabs.test.js +82 -0
  165. package/tabs-nav/Tab.d.ts +4 -0
  166. package/tabs-nav/Tab.js +130 -0
  167. package/tabs-nav/types.d.ts +53 -0
  168. package/{stack → tabs-nav}/types.js +0 -0
  169. package/tag/Tag.js +15 -20
  170. package/tag/Tag.stories.tsx +12 -8
  171. package/tag/types.d.ts +1 -1
  172. package/text-input/Icons.d.ts +8 -0
  173. package/text-input/Icons.js +60 -0
  174. package/text-input/Suggestion.d.ts +4 -0
  175. package/text-input/Suggestion.js +57 -0
  176. package/text-input/Suggestions.d.ts +4 -0
  177. package/text-input/Suggestions.js +134 -0
  178. package/text-input/TextInput.js +214 -333
  179. package/text-input/TextInput.stories.tsx +199 -192
  180. package/text-input/TextInput.test.js +686 -753
  181. package/text-input/types.d.ts +50 -12
  182. package/textarea/Textarea.js +15 -24
  183. package/textarea/Textarea.stories.jsx +5 -5
  184. package/textarea/Textarea.test.js +37 -36
  185. package/textarea/types.d.ts +18 -11
  186. package/toggle-group/ToggleGroup.d.ts +1 -1
  187. package/toggle-group/ToggleGroup.js +5 -4
  188. package/toggle-group/ToggleGroup.stories.tsx +4 -4
  189. package/toggle-group/ToggleGroup.test.js +35 -4
  190. package/toggle-group/types.d.ts +9 -1
  191. package/typography/Typography.d.ts +4 -0
  192. package/typography/Typography.js +131 -0
  193. package/typography/Typography.stories.tsx +198 -0
  194. package/typography/types.d.ts +18 -0
  195. package/typography/types.js +5 -0
  196. package/useTheme.js +2 -2
  197. package/useTranslatedLabels.d.ts +2 -0
  198. package/useTranslatedLabels.js +20 -0
  199. package/wizard/Wizard.d.ts +1 -1
  200. package/wizard/Wizard.js +58 -54
  201. package/wizard/Wizard.stories.tsx +33 -24
  202. package/wizard/Wizard.test.js +36 -23
  203. package/wizard/types.d.ts +10 -5
  204. package/ThemeContext.d.ts +0 -15
  205. package/ThemeContext.js +0 -235
  206. package/list/List.d.ts +0 -4
  207. package/list/List.js +0 -47
  208. package/list/List.stories.tsx +0 -95
  209. package/list/types.d.ts +0 -7
  210. package/radio/Radio.d.ts +0 -4
  211. package/radio/Radio.js +0 -174
  212. package/radio/Radio.stories.tsx +0 -192
  213. package/radio/Radio.test.js +0 -71
  214. package/radio/types.d.ts +0 -54
  215. package/row/Row.d.ts +0 -3
  216. package/row/Row.js +0 -127
  217. package/row/Row.stories.tsx +0 -237
  218. package/row/types.d.ts +0 -10
  219. package/stack/Stack.d.ts +0 -3
  220. package/stack/Stack.js +0 -97
  221. package/stack/Stack.stories.tsx +0 -164
  222. package/stack/types.d.ts +0 -9
  223. package/text/Text.d.ts +0 -7
  224. package/text/Text.js +0 -30
  225. package/text/Text.stories.tsx +0 -19
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,17 @@ 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
+ type: undefined
388
+ }, /*#__PURE__*/_react["default"].createElement(Select, {
560
389
  id: selectId,
561
390
  disabled: disabled,
562
391
  error: error,
@@ -564,18 +393,18 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
564
393
  onClick: handleSelectOnClick,
565
394
  onFocus: handleSelectOnFocus,
566
395
  onKeyDown: handleSelectOnKeyDown,
567
- ref: selectContainerRef,
568
- tabIndex: tabIndex,
396
+ ref: selectRef,
397
+ tabIndex: disabled ? -1 : tabIndex,
569
398
  role: "combobox",
570
399
  "aria-controls": optionsListId,
571
400
  "aria-disabled": disabled,
572
401
  "aria-expanded": isOpen,
573
402
  "aria-haspopup": "listbox",
574
- "aria-labelledby": selectLabelId,
403
+ "aria-labelledby": label ? selectLabelId : undefined,
575
404
  "aria-activedescendant": visualFocusIndex >= 0 ? "option-".concat(visualFocusIndex) : undefined,
576
- "aria-invalid": error ? "true" : "false",
405
+ "aria-invalid": error ? true : false,
577
406
  "aria-errormessage": error ? errorId : undefined,
578
- "aria-required": !optional
407
+ "aria-required": !disabled && !optional
579
408
  }, multiple && selectedOption.length > 0 && /*#__PURE__*/_react["default"].createElement(SelectionIndicator, null, /*#__PURE__*/_react["default"].createElement(SelectionNumber, {
580
409
  disabled: disabled
581
410
  }, selectedOption.length), /*#__PURE__*/_react["default"].createElement(ClearOptionsAction, {
@@ -586,11 +415,12 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
586
415
  },
587
416
  onClick: handleClearOptionsActionOnClick,
588
417
  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, {
418
+ title: translatedLabels.select.actionClearSelectionTitle,
419
+ "aria-label": translatedLabels.select.actionClearSelectionTitle
420
+ }, _Icons["default"].clear)), /*#__PURE__*/_react["default"].createElement(SearchableValueContainer, null, /*#__PURE__*/_react["default"].createElement(ValueInput, {
592
421
  name: name,
593
- value: multiple ? (value !== null && value !== void 0 ? value : innerValue).join(", ") : value !== null && value !== void 0 ? value : innerValue,
422
+ disabled: disabled,
423
+ value: multiple ? (value !== null && value !== void 0 ? value : innerValue).join(",") : value !== null && value !== void 0 ? value : innerValue,
594
424
  readOnly: true,
595
425
  "aria-hidden": "true"
596
426
  }), searchable && /*#__PURE__*/_react["default"].createElement(SearchInput, {
@@ -598,43 +428,51 @@ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
598
428
  disabled: disabled,
599
429
  onChange: handleSearchIOnChange,
600
430
  ref: selectSearchInputRef,
601
- autoComplete: "off",
602
- autoCorrect: "off",
603
- size: "1"
431
+ autoComplete: "nope",
432
+ autoCorrect: "nope",
433
+ size: 1
604
434
  }), (!searchable || searchValue === "") && (multiple ? /*#__PURE__*/_react["default"].createElement(SelectedOption, {
605
435
  disabled: disabled,
606
436
  atBackground: (value !== null && value !== void 0 ? value : innerValue).length === 0 || searchable && isOpen
607
- }, /*#__PURE__*/_react["default"].createElement(OptionLabel, null, selectedOption.map(function (option) {
437
+ }, /*#__PURE__*/_react["default"].createElement(SelectedOptionLabel, null, selectedOption.map(function (option) {
608
438
  return option.label;
609
439
  }).join(", ")), selectedOption.length === 0 && placeholder) : /*#__PURE__*/_react["default"].createElement(SelectedOption, {
610
440
  disabled: disabled,
611
441
  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, {
442
+ }, /*#__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
443
  onMouseDown: function onMouseDown(event) {
614
444
  // Avoid input to lose focus
615
445
  event.preventDefault();
616
446
  },
617
447
  onClick: handleClearSearchActionOnClick,
618
448
  tabIndex: -1,
619
- title: "Clear search",
620
- "aria-label": "Clear search"
621
- }, selectIcons.clear), /*#__PURE__*/_react["default"].createElement(CollapseIndicator, {
449
+ title: translatedLabels.select.actionClearSearchTitle,
450
+ "aria-label": translatedLabels.select.actionClearSearchTitle
451
+ }, _Icons["default"].clear), /*#__PURE__*/_react["default"].createElement(CollapseIndicator, {
622
452
  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) {
453
+ }, isOpen ? _Icons["default"].arrowUp : _Icons["default"].arrowDown))), /*#__PURE__*/_react["default"].createElement(Popover.Content, {
454
+ sideOffset: 4,
455
+ onOpenAutoFocus: function onOpenAutoFocus(event) {
456
+ // Avoid select to lose focus when the list is opened
629
457
  event.preventDefault();
630
458
  },
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, {
459
+ onCloseAutoFocus: function onCloseAutoFocus(event) {
460
+ // Avoid select to lose focus when the list is closed
461
+ event.preventDefault();
462
+ }
463
+ }, /*#__PURE__*/_react["default"].createElement(_Listbox["default"], {
464
+ id: optionsListId,
465
+ currentValue: value !== null && value !== void 0 ? value : innerValue,
466
+ options: searchable ? filteredOptions : options,
467
+ visualFocusIndex: visualFocusIndex,
468
+ lastOptionIndex: lastOptionIndex,
469
+ multiple: multiple,
470
+ optional: optional,
471
+ optionalItem: optionalItem,
472
+ searchable: searchable,
473
+ handleOptionOnClick: handleOptionOnClick,
474
+ getSelectWidth: getSelectWidth
475
+ }))), !disabled && typeof error === "string" && /*#__PURE__*/_react["default"].createElement(Error, {
638
476
  id: errorId,
639
477
  "aria-live": error ? "assertive" : "off"
640
478
  }, error)));
@@ -733,9 +571,7 @@ var SelectionNumber = _styledComponents["default"].span(_templateObject7 || (_te
733
571
  return props.disabled ? "cursor: not-allowed;" : "cursor: default;";
734
572
  });
735
573
 
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) {
574
+ 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
575
  return props.disabled ? "cursor: not-allowed;" : "cursor: pointer;";
740
576
  }, function (props) {
741
577
  return props.disabled ? "transparent" : props.theme.enabledSelectionIndicatorActionBackgroundColor;
@@ -759,9 +595,11 @@ var SelectedOption = _styledComponents["default"].span(_templateObject10 || (_te
759
595
  return props.theme.valueFontWeight;
760
596
  });
761
597
 
762
- var ValueInput = _styledComponents["default"].input(_templateObject11 || (_templateObject11 = (0, _taggedTemplateLiteral2["default"])(["\n display: none;\n"])));
598
+ var SelectedOptionLabel = _styledComponents["default"].span(_templateObject11 || (_templateObject11 = (0, _taggedTemplateLiteral2["default"])(["\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n"])));
599
+
600
+ var ValueInput = _styledComponents["default"].input(_templateObject12 || (_templateObject12 = (0, _taggedTemplateLiteral2["default"])(["\n display: none;\n"])));
763
601
 
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) {
602
+ 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
603
  return props.disabled ? props.theme.disabledColor : props.theme.valueFontColor;
766
604
  }, function (props) {
767
605
  return props.theme.fontFamily;
@@ -773,21 +611,21 @@ var SearchInput = _styledComponents["default"].input(_templateObject12 || (_temp
773
611
  return props.theme.valueFontWeight;
774
612
  });
775
613
 
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) {
614
+ 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
615
  return props.theme.errorIconColor;
778
616
  });
779
617
 
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) {
618
+ 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
619
  return props.theme.errorMessageColor;
782
620
  }, function (props) {
783
621
  return props.theme.fontFamily;
784
622
  });
785
623
 
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) {
624
+ 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
625
  return props.disabled ? props.theme.disabledColor : props.theme.collapseIndicatorColor;
788
626
  });
789
627
 
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) {
628
+ 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
629
  return props.theme.fontFamily;
792
630
  }, function (props) {
793
631
  return props.theme.actionBackgroundColor;
@@ -803,67 +641,5 @@ var ClearSearchAction = _styledComponents["default"].button(_templateObject16 ||
803
641
  return props.theme.activeActionIconColor;
804
642
  });
805
643
 
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
644
  var _default = DxcSelect;
869
645
  exports["default"] = _default;