@dxc-technology/halstack-react 0.0.0-9253572 → 0.0.0-9282b45

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 (364) hide show
  1. package/BackgroundColorContext.d.ts +10 -0
  2. package/BackgroundColorContext.js +7 -6
  3. package/HalstackContext.d.ts +12 -0
  4. package/HalstackContext.js +295 -0
  5. package/accordion/Accordion.d.ts +4 -0
  6. package/accordion/Accordion.js +129 -237
  7. package/accordion/Accordion.stories.tsx +306 -0
  8. package/accordion/Accordion.test.js +71 -0
  9. package/accordion/types.d.ts +69 -0
  10. package/accordion/types.js +5 -0
  11. package/accordion-group/AccordionGroup.d.ts +7 -0
  12. package/accordion-group/AccordionGroup.js +68 -105
  13. package/accordion-group/AccordionGroup.stories.tsx +251 -0
  14. package/accordion-group/AccordionGroup.test.js +126 -0
  15. package/accordion-group/types.d.ts +79 -0
  16. package/accordion-group/types.js +5 -0
  17. package/alert/Alert.d.ts +4 -0
  18. package/alert/Alert.js +44 -154
  19. package/alert/Alert.stories.tsx +170 -0
  20. package/alert/Alert.test.js +92 -0
  21. package/alert/types.d.ts +49 -0
  22. package/alert/types.js +5 -0
  23. package/badge/Badge.d.ts +4 -0
  24. package/badge/Badge.js +15 -17
  25. package/badge/types.d.ts +5 -0
  26. package/badge/types.js +5 -0
  27. package/bleed/Bleed.d.ts +3 -0
  28. package/bleed/Bleed.js +51 -0
  29. package/bleed/Bleed.stories.tsx +341 -0
  30. package/bleed/types.d.ts +37 -0
  31. package/bleed/types.js +5 -0
  32. package/box/Box.d.ts +4 -0
  33. package/box/Box.js +37 -77
  34. package/box/Box.stories.tsx +132 -0
  35. package/box/Box.test.js +18 -0
  36. package/box/types.d.ts +44 -0
  37. package/box/types.js +5 -0
  38. package/bulleted-list/BulletedList.d.ts +7 -0
  39. package/bulleted-list/BulletedList.js +123 -0
  40. package/bulleted-list/BulletedList.stories.tsx +200 -0
  41. package/bulleted-list/types.d.ts +11 -0
  42. package/bulleted-list/types.js +5 -0
  43. package/button/Button.d.ts +4 -0
  44. package/button/Button.js +63 -145
  45. package/button/Button.stories.tsx +283 -0
  46. package/button/Button.test.js +35 -0
  47. package/button/types.d.ts +53 -0
  48. package/button/types.js +5 -0
  49. package/card/Card.d.ts +4 -0
  50. package/card/Card.js +44 -137
  51. package/card/Card.stories.tsx +201 -0
  52. package/card/Card.test.js +50 -0
  53. package/card/ice-cream.jpg +0 -0
  54. package/card/types.d.ts +68 -0
  55. package/card/types.js +5 -0
  56. package/checkbox/Checkbox.d.ts +4 -0
  57. package/checkbox/Checkbox.js +106 -156
  58. package/checkbox/Checkbox.stories.tsx +188 -0
  59. package/checkbox/Checkbox.test.js +155 -0
  60. package/checkbox/types.d.ts +64 -0
  61. package/checkbox/types.js +5 -0
  62. package/chip/Chip.d.ts +4 -0
  63. package/chip/Chip.js +26 -130
  64. package/chip/Chip.stories.tsx +119 -0
  65. package/chip/Chip.test.js +56 -0
  66. package/chip/types.d.ts +45 -0
  67. package/chip/types.js +5 -0
  68. package/common/RequiredComponent.js +3 -11
  69. package/common/variables.js +322 -381
  70. package/date-input/DateInput.d.ts +4 -0
  71. package/date-input/DateInput.js +83 -111
  72. package/date-input/DateInput.stories.tsx +138 -0
  73. package/date-input/DateInput.test.js +479 -0
  74. package/date-input/types.d.ts +107 -0
  75. package/date-input/types.js +5 -0
  76. package/dialog/Dialog.d.ts +4 -0
  77. package/dialog/Dialog.js +60 -116
  78. package/dialog/Dialog.stories.tsx +267 -0
  79. package/dialog/Dialog.test.js +70 -0
  80. package/dialog/types.d.ts +44 -0
  81. package/dialog/types.js +5 -0
  82. package/dropdown/Dropdown.d.ts +4 -0
  83. package/dropdown/Dropdown.js +243 -399
  84. package/dropdown/Dropdown.stories.tsx +312 -0
  85. package/dropdown/Dropdown.test.js +590 -0
  86. package/dropdown/DropdownMenu.d.ts +4 -0
  87. package/dropdown/DropdownMenu.js +80 -0
  88. package/dropdown/DropdownMenuItem.d.ts +4 -0
  89. package/dropdown/DropdownMenuItem.js +92 -0
  90. package/dropdown/types.d.ts +100 -0
  91. package/dropdown/types.js +5 -0
  92. package/file-input/FileInput.d.ts +4 -0
  93. package/file-input/FileInput.js +200 -251
  94. package/file-input/FileInput.stories.tsx +507 -0
  95. package/file-input/FileInput.test.js +457 -0
  96. package/file-input/FileItem.d.ts +14 -0
  97. package/file-input/FileItem.js +44 -145
  98. package/file-input/types.d.ts +112 -0
  99. package/file-input/types.js +5 -0
  100. package/flex/Flex.d.ts +4 -0
  101. package/flex/Flex.js +69 -0
  102. package/flex/Flex.stories.tsx +103 -0
  103. package/flex/types.d.ts +32 -0
  104. package/flex/types.js +5 -0
  105. package/footer/Footer.d.ts +4 -0
  106. package/footer/Footer.js +50 -286
  107. package/footer/Footer.stories.tsx +137 -0
  108. package/footer/Footer.test.js +109 -0
  109. package/footer/Icons.d.ts +2 -0
  110. package/footer/Icons.js +16 -16
  111. package/footer/types.d.ts +66 -0
  112. package/footer/types.js +5 -0
  113. package/header/Header.d.ts +7 -0
  114. package/header/Header.js +131 -296
  115. package/header/Header.stories.tsx +172 -0
  116. package/header/Header.test.js +79 -0
  117. package/header/Icons.d.ts +2 -0
  118. package/header/Icons.js +9 -34
  119. package/header/types.d.ts +48 -0
  120. package/header/types.js +5 -0
  121. package/heading/Heading.d.ts +4 -0
  122. package/heading/Heading.js +25 -96
  123. package/heading/Heading.stories.tsx +54 -0
  124. package/heading/Heading.test.js +186 -0
  125. package/heading/types.d.ts +33 -0
  126. package/heading/types.js +5 -0
  127. package/inset/Inset.d.ts +3 -0
  128. package/inset/Inset.js +51 -0
  129. package/inset/Inset.stories.tsx +229 -0
  130. package/inset/types.d.ts +37 -0
  131. package/inset/types.js +5 -0
  132. package/layout/ApplicationLayout.d.ts +20 -0
  133. package/layout/ApplicationLayout.js +76 -232
  134. package/layout/ApplicationLayout.stories.tsx +162 -0
  135. package/layout/Icons.d.ts +5 -0
  136. package/layout/Icons.js +19 -8
  137. package/layout/SidenavContext.d.ts +5 -0
  138. package/layout/SidenavContext.js +19 -0
  139. package/layout/types.d.ts +42 -0
  140. package/layout/types.js +5 -0
  141. package/link/Link.d.ts +4 -0
  142. package/link/Link.js +64 -165
  143. package/link/Link.stories.tsx +193 -0
  144. package/link/Link.test.js +83 -0
  145. package/link/types.d.ts +54 -0
  146. package/link/types.js +5 -0
  147. package/main.d.ts +44 -40
  148. package/main.js +114 -104
  149. package/number-input/NumberInput.d.ts +4 -0
  150. package/number-input/NumberInput.js +21 -81
  151. package/number-input/NumberInput.stories.tsx +115 -0
  152. package/number-input/NumberInput.test.js +506 -0
  153. package/number-input/NumberInputContext.d.ts +4 -0
  154. package/number-input/NumberInputContext.js +5 -2
  155. package/number-input/numberInputContextTypes.d.ts +19 -0
  156. package/number-input/numberInputContextTypes.js +5 -0
  157. package/number-input/types.d.ts +124 -0
  158. package/number-input/types.js +5 -0
  159. package/package.json +30 -23
  160. package/paginator/Icons.js +9 -9
  161. package/paginator/Paginator.d.ts +4 -0
  162. package/paginator/Paginator.js +32 -166
  163. package/paginator/Paginator.stories.tsx +63 -0
  164. package/paginator/Paginator.test.js +308 -0
  165. package/paginator/types.d.ts +38 -0
  166. package/paginator/types.js +5 -0
  167. package/paragraph/Paragraph.d.ts +6 -0
  168. package/paragraph/Paragraph.js +38 -0
  169. package/paragraph/Paragraph.stories.tsx +44 -0
  170. package/password-input/PasswordInput.d.ts +4 -0
  171. package/password-input/PasswordInput.js +44 -79
  172. package/password-input/PasswordInput.stories.tsx +131 -0
  173. package/password-input/PasswordInput.test.js +181 -0
  174. package/password-input/types.d.ts +110 -0
  175. package/password-input/types.js +5 -0
  176. package/progress-bar/ProgressBar.d.ts +4 -0
  177. package/progress-bar/ProgressBar.js +72 -138
  178. package/progress-bar/ProgressBar.stories.jsx +60 -0
  179. package/progress-bar/ProgressBar.test.js +110 -0
  180. package/progress-bar/types.d.ts +36 -0
  181. package/progress-bar/types.js +5 -0
  182. package/quick-nav/QuickNav.d.ts +4 -0
  183. package/quick-nav/QuickNav.js +117 -0
  184. package/quick-nav/QuickNav.stories.tsx +342 -0
  185. package/quick-nav/types.d.ts +21 -0
  186. package/quick-nav/types.js +5 -0
  187. package/radio-group/Radio.d.ts +4 -0
  188. package/radio-group/Radio.js +156 -0
  189. package/radio-group/RadioGroup.d.ts +4 -0
  190. package/radio-group/RadioGroup.js +283 -0
  191. package/radio-group/RadioGroup.stories.tsx +101 -0
  192. package/radio-group/RadioGroup.test.js +722 -0
  193. package/radio-group/types.d.ts +114 -0
  194. package/radio-group/types.js +5 -0
  195. package/resultsetTable/ResultsetTable.d.ts +4 -0
  196. package/resultsetTable/ResultsetTable.js +43 -147
  197. package/resultsetTable/ResultsetTable.stories.tsx +275 -0
  198. package/resultsetTable/ResultsetTable.test.js +348 -0
  199. package/resultsetTable/types.d.ts +67 -0
  200. package/resultsetTable/types.js +5 -0
  201. package/select/Icons.d.ts +10 -0
  202. package/select/Icons.js +93 -0
  203. package/select/Listbox.d.ts +4 -0
  204. package/select/Listbox.js +198 -0
  205. package/select/Option.d.ts +4 -0
  206. package/select/Option.js +110 -0
  207. package/select/Select.d.ts +4 -0
  208. package/select/Select.js +231 -724
  209. package/select/Select.stories.tsx +627 -0
  210. package/select/Select.test.js +2233 -0
  211. package/select/types.d.ts +210 -0
  212. package/select/types.js +5 -0
  213. package/sidenav/Sidenav.d.ts +10 -0
  214. package/sidenav/Sidenav.js +194 -105
  215. package/sidenav/Sidenav.stories.tsx +180 -0
  216. package/sidenav/Sidenav.test.js +44 -0
  217. package/sidenav/types.d.ts +73 -0
  218. package/sidenav/types.js +5 -0
  219. package/slider/Slider.d.ts +4 -0
  220. package/slider/Slider.js +162 -224
  221. package/slider/Slider.stories.tsx +183 -0
  222. package/slider/Slider.test.js +250 -0
  223. package/slider/types.d.ts +82 -0
  224. package/slider/types.js +5 -0
  225. package/spinner/Spinner.d.ts +4 -0
  226. package/spinner/Spinner.js +46 -177
  227. package/spinner/Spinner.stories.jsx +103 -0
  228. package/spinner/Spinner.test.js +64 -0
  229. package/spinner/types.d.ts +32 -0
  230. package/spinner/types.js +5 -0
  231. package/switch/Switch.d.ts +4 -0
  232. package/switch/Switch.js +158 -119
  233. package/switch/Switch.stories.tsx +138 -0
  234. package/switch/Switch.test.js +225 -0
  235. package/switch/types.d.ts +61 -0
  236. package/switch/types.js +5 -0
  237. package/table/Table.d.ts +4 -0
  238. package/table/Table.js +12 -26
  239. package/table/Table.stories.jsx +277 -0
  240. package/table/Table.test.js +26 -0
  241. package/table/types.d.ts +21 -0
  242. package/table/types.js +5 -0
  243. package/tabs/Tab.d.ts +4 -0
  244. package/tabs/Tab.js +135 -0
  245. package/tabs/Tabs.d.ts +4 -0
  246. package/tabs/Tabs.js +353 -229
  247. package/tabs/Tabs.stories.tsx +186 -0
  248. package/tabs/Tabs.test.js +351 -0
  249. package/tabs/types.d.ts +92 -0
  250. package/tabs/types.js +5 -0
  251. package/tabs-nav/NavTabs.d.ts +8 -0
  252. package/tabs-nav/NavTabs.js +125 -0
  253. package/tabs-nav/NavTabs.stories.tsx +170 -0
  254. package/tabs-nav/NavTabs.test.js +82 -0
  255. package/tabs-nav/Tab.d.ts +4 -0
  256. package/tabs-nav/Tab.js +130 -0
  257. package/tabs-nav/types.d.ts +53 -0
  258. package/tabs-nav/types.js +5 -0
  259. package/tag/Tag.d.ts +4 -0
  260. package/tag/Tag.js +45 -144
  261. package/tag/Tag.stories.tsx +142 -0
  262. package/tag/Tag.test.js +60 -0
  263. package/tag/types.d.ts +69 -0
  264. package/tag/types.js +5 -0
  265. package/text-input/Icons.d.ts +8 -0
  266. package/text-input/Icons.js +60 -0
  267. package/text-input/Suggestion.d.ts +4 -0
  268. package/text-input/Suggestion.js +57 -0
  269. package/text-input/Suggestions.d.ts +4 -0
  270. package/text-input/Suggestions.js +134 -0
  271. package/text-input/TextInput.d.ts +4 -0
  272. package/text-input/TextInput.js +256 -575
  273. package/text-input/TextInput.stories.tsx +481 -0
  274. package/text-input/TextInput.test.js +1714 -0
  275. package/text-input/types.d.ts +197 -0
  276. package/text-input/types.js +5 -0
  277. package/textarea/Textarea.d.ts +4 -0
  278. package/textarea/Textarea.js +50 -142
  279. package/textarea/Textarea.stories.jsx +157 -0
  280. package/textarea/Textarea.test.js +437 -0
  281. package/textarea/types.d.ts +137 -0
  282. package/textarea/types.js +5 -0
  283. package/toggle-group/ToggleGroup.d.ts +4 -0
  284. package/toggle-group/ToggleGroup.js +36 -148
  285. package/toggle-group/ToggleGroup.stories.tsx +173 -0
  286. package/toggle-group/ToggleGroup.test.js +156 -0
  287. package/toggle-group/types.d.ts +105 -0
  288. package/toggle-group/types.js +5 -0
  289. package/typography/Typography.d.ts +4 -0
  290. package/typography/Typography.js +131 -0
  291. package/typography/Typography.stories.tsx +198 -0
  292. package/typography/types.d.ts +18 -0
  293. package/typography/types.js +5 -0
  294. package/useTheme.d.ts +2 -0
  295. package/useTheme.js +2 -2
  296. package/useTranslatedLabels.d.ts +2 -0
  297. package/useTranslatedLabels.js +20 -0
  298. package/wizard/Wizard.d.ts +4 -0
  299. package/wizard/Wizard.js +132 -252
  300. package/wizard/Wizard.stories.tsx +233 -0
  301. package/wizard/Wizard.test.js +141 -0
  302. package/wizard/types.d.ts +65 -0
  303. package/wizard/types.js +5 -0
  304. package/ThemeContext.js +0 -250
  305. package/V3Select/V3Select.js +0 -549
  306. package/V3Select/index.d.ts +0 -27
  307. package/V3Textarea/V3Textarea.js +0 -264
  308. package/V3Textarea/index.d.ts +0 -27
  309. package/accordion/index.d.ts +0 -28
  310. package/accordion-group/index.d.ts +0 -16
  311. package/alert/index.d.ts +0 -51
  312. package/box/index.d.ts +0 -25
  313. package/button/Button.stories.js +0 -27
  314. package/button/index.d.ts +0 -24
  315. package/card/index.d.ts +0 -22
  316. package/checkbox/index.d.ts +0 -24
  317. package/chip/index.d.ts +0 -22
  318. package/date/Date.js +0 -379
  319. package/date/index.d.ts +0 -27
  320. package/date-input/index.d.ts +0 -95
  321. package/dialog/index.d.ts +0 -18
  322. package/dropdown/index.d.ts +0 -26
  323. package/file-input/index.d.ts +0 -81
  324. package/footer/index.d.ts +0 -25
  325. package/header/index.d.ts +0 -25
  326. package/heading/index.d.ts +0 -17
  327. package/input-text/Icons.js +0 -22
  328. package/input-text/InputText.js +0 -705
  329. package/input-text/index.d.ts +0 -36
  330. package/link/index.d.ts +0 -23
  331. package/number-input/index.d.ts +0 -113
  332. package/paginator/index.d.ts +0 -20
  333. package/password-input/index.d.ts +0 -94
  334. package/progress-bar/index.d.ts +0 -18
  335. package/radio/Radio.js +0 -209
  336. package/radio/index.d.ts +0 -23
  337. package/resultsetTable/index.d.ts +0 -19
  338. package/select/index.d.ts +0 -131
  339. package/sidenav/index.d.ts +0 -13
  340. package/slider/index.d.ts +0 -29
  341. package/spinner/index.d.ts +0 -17
  342. package/switch/index.d.ts +0 -24
  343. package/table/index.d.ts +0 -13
  344. package/tabs/index.d.ts +0 -19
  345. package/tag/index.d.ts +0 -24
  346. package/text-input/index.d.ts +0 -135
  347. package/textarea/index.d.ts +0 -117
  348. package/toggle/Toggle.js +0 -220
  349. package/toggle/index.d.ts +0 -21
  350. package/toggle-group/index.d.ts +0 -21
  351. package/upload/Upload.js +0 -205
  352. package/upload/buttons-upload/ButtonsUpload.js +0 -135
  353. package/upload/buttons-upload/Icons.js +0 -40
  354. package/upload/dragAndDropArea/DragAndDropArea.js +0 -329
  355. package/upload/dragAndDropArea/Icons.js +0 -39
  356. package/upload/file-upload/FileToUpload.js +0 -189
  357. package/upload/file-upload/Icons.js +0 -66
  358. package/upload/files-upload/FilesToUpload.js +0 -123
  359. package/upload/index.d.ts +0 -15
  360. package/upload/transaction/Icons.js +0 -160
  361. package/upload/transaction/Transaction.js +0 -148
  362. package/upload/transactions/Transactions.js +0 -138
  363. package/wizard/Icons.js +0 -65
  364. package/wizard/index.d.ts +0 -18
package/select/Select.js CHANGED
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
4
-
5
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
6
4
 
5
+ var _typeof3 = require("@babel/runtime/helpers/typeof");
6
+
7
7
  Object.defineProperty(exports, "__esModule", {
8
8
  value: true
9
9
  });
@@ -21,7 +21,9 @@ var _react = _interopRequireWildcard(require("react"));
21
21
 
22
22
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
23
23
 
24
- var _useTheme = _interopRequireDefault(require("../useTheme.js"));
24
+ var _useTheme = _interopRequireDefault(require("../useTheme"));
25
+
26
+ var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
25
27
 
26
28
  var _variables = require("../common/variables.js");
27
29
 
@@ -29,371 +31,34 @@ var _uuid = require("uuid");
29
31
 
30
32
  var _utils = require("../common/utils.js");
31
33
 
32
- var _Checkbox = _interopRequireDefault(require("../checkbox/Checkbox"));
33
-
34
- function _templateObject28() {
35
- var data = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n height: 16px;\n width: 16px;\n margin-left: 4px;\n color: ", ";\n"]);
36
-
37
- _templateObject28 = function _templateObject28() {
38
- return data;
39
- };
40
-
41
- return data;
42
- }
43
-
44
- function _templateObject27() {
45
- var data = (0, _taggedTemplateLiteral2["default"])(["\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n"]);
46
-
47
- _templateObject27 = function _templateObject27() {
48
- return data;
49
- };
50
-
51
- return data;
52
- }
53
-
54
- function _templateObject26() {
55
- var data = (0, _taggedTemplateLiteral2["default"])(["\n width: 16px;\n height: 16px;\n"]);
56
-
57
- _templateObject26 = function _templateObject26() {
58
- return data;
59
- };
60
-
61
- return data;
62
- }
63
-
64
- function _templateObject25() {
65
- var data = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-wrap: wrap;\n align-content: center;\n height: 24px;\n width: 24px;\n ", "\n color: ", ";\n"]);
66
-
67
- _templateObject25 = function _templateObject25() {
68
- return data;
69
- };
70
-
71
- return data;
72
- }
73
-
74
- function _templateObject24() {
75
- var data = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n justify-content: space-between;\n width: 100%;\n overflow: hidden;\n ", "\n"]);
76
-
77
- _templateObject24 = function _templateObject24() {
78
- return data;
79
- };
80
-
81
- return data;
82
- }
83
-
84
- function _templateObject23() {
85
- var data = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n padding: 0.25rem 0.5rem 0.188rem 0;\n min-height: 24px;\n ", "\n ", ";\n"]);
86
-
87
- _templateObject23 = function _templateObject23() {
88
- return data;
89
- };
90
-
91
- return data;
92
- }
93
-
94
- function _templateObject22() {
95
- var data = (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"]);
34
+ var _Icons = _interopRequireDefault(require("./Icons"));
96
35
 
97
- _templateObject22 = function _templateObject22() {
98
- return data;
99
- };
100
-
101
- return data;
102
- }
103
-
104
- function _templateObject21() {
105
- var data = (0, _taggedTemplateLiteral2["default"])(["\n padding: 4px 16px;\n font-weight: ", ";\n line-height: 1.715em;\n"]);
106
-
107
- _templateObject21 = function _templateObject21() {
108
- return data;
109
- };
110
-
111
- return data;
112
- }
113
-
114
- function _templateObject20() {
115
- var data = (0, _taggedTemplateLiteral2["default"])(["\n padding: 0;\n"]);
116
-
117
- _templateObject20 = function _templateObject20() {
118
- return data;
119
- };
120
-
121
- return data;
122
- }
123
-
124
- function _templateObject19() {
125
- var data = (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"]);
126
-
127
- _templateObject19 = function _templateObject19() {
128
- return data;
129
- };
130
-
131
- return data;
132
- }
36
+ var _Listbox = _interopRequireDefault(require("./Listbox"));
133
37
 
134
- function _templateObject18() {
135
- var data = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n padding: 4px 16px;\n color: ", ";\n font-size: 0.875rem;\n line-height: 1.715em;\n"]);
38
+ var Popover = _interopRequireWildcard(require("@radix-ui/react-popover"));
136
39
 
137
- _templateObject18 = function _templateObject18() {
138
- return data;
139
- };
140
-
141
- return data;
142
- }
143
-
144
- function _templateObject17() {
145
- var data = (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"]);
146
-
147
- _templateObject17 = function _templateObject17() {
148
- return data;
149
- };
150
-
151
- return data;
152
- }
153
-
154
- function _templateObject16() {
155
- var data = (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"]);
40
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17;
156
41
 
157
- _templateObject16 = function _templateObject16() {
158
- return data;
159
- };
160
-
161
- return data;
162
- }
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); }
163
43
 
164
- function _templateObject15() {
165
- var data = (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"]);
166
-
167
- _templateObject15 = function _templateObject15() {
168
- return data;
169
- };
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; }
170
45
 
171
- return data;
172
- }
173
-
174
- function _templateObject14() {
175
- var data = (0, _taggedTemplateLiteral2["default"])(["\n min-height: 1.5em;\n color: ", ";\n font-family: ", ";\n font-size: 0.75rem;\n font-weight: 400;\n"]);
176
-
177
- _templateObject14 = function _templateObject14() {
178
- return data;
179
- };
180
-
181
- return data;
182
- }
183
-
184
- function _templateObject13() {
185
- var data = (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"]);
186
-
187
- _templateObject13 = function _templateObject13() {
188
- return data;
189
- };
190
-
191
- return data;
192
- }
193
-
194
- function _templateObject12() {
195
- var data = (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"]);
196
-
197
- _templateObject12 = function _templateObject12() {
198
- return data;
199
- };
200
-
201
- return data;
202
- }
203
-
204
- function _templateObject11() {
205
- var data = (0, _taggedTemplateLiteral2["default"])(["\n display: none;\n"]);
206
-
207
- _templateObject11 = function _templateObject11() {
208
- return data;
209
- };
210
-
211
- return data;
212
- }
213
-
214
- function _templateObject10() {
215
- var data = (0, _taggedTemplateLiteral2["default"])(["\n grid-area: 1 / 1 / 1 / 1;\n display: inline-flex;\n align-items: center;\n height: calc(2.5rem - 2px);\n padding: 0 0.5rem;\n user-select: none;\n overflow: hidden;\n\n color: ", ";\n\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n"]);
216
-
217
- _templateObject10 = function _templateObject10() {
218
- return data;
219
- };
220
-
221
- return data;
222
- }
223
-
224
- function _templateObject9() {
225
- var data = (0, _taggedTemplateLiteral2["default"])(["\n display: grid;\n width: 100%;\n"]);
226
-
227
- _templateObject9 = function _templateObject9() {
228
- return data;
229
- };
230
-
231
- return data;
232
- }
233
-
234
- function _templateObject8() {
235
- var data = (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"]);
236
-
237
- _templateObject8 = function _templateObject8() {
238
- return data;
239
- };
240
-
241
- return data;
242
- }
243
-
244
- function _templateObject7() {
245
- var data = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n justify-content: center;\n width: 22px;\n height: 22px;\n user-select: none;\n background-color: ", ";\n border-right: 1px solid ", ";\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n ", "\n"]);
246
-
247
- _templateObject7 = function _templateObject7() {
248
- return data;
249
- };
250
-
251
- return data;
252
- }
253
-
254
- function _templateObject6() {
255
- var data = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n border: 1px solid ", ";\n border-radius: 2px;\n max-height: 22px;\n width: 46px;\n"]);
256
-
257
- _templateObject6 = function _templateObject6() {
258
- return data;
259
- };
260
-
261
- return data;
262
- }
263
-
264
- function _templateObject5() {
265
- var data = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n position: relative;\n align-items: center;\n height: calc(2.5rem - 2px);\n margin: ", ";\n padding: 0 0.5rem;\n outline: none;\n ", ";\n box-shadow: 0 0 0 2px transparent;\n border-radius: 4px;\n border: 1px solid\n ", ";\n ", "\n ", ";\n\n ", ";\n"]);
266
-
267
- _templateObject5 = function _templateObject5() {
268
- return data;
269
- };
270
-
271
- return data;
272
- }
273
-
274
- function _templateObject4() {
275
- var data = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n line-height: ", ";\n"]);
276
-
277
- _templateObject4 = function _templateObject4() {
278
- return data;
279
- };
280
-
281
- return data;
282
- }
283
-
284
- function _templateObject3() {
285
- var data = (0, _taggedTemplateLiteral2["default"])(["\n font-weight: ", ";\n"]);
286
-
287
- _templateObject3 = function _templateObject3() {
288
- return data;
289
- };
290
-
291
- return data;
292
- }
293
-
294
- function _templateObject2() {
295
- var data = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n line-height: ", ";\n cursor: default;\n"]);
296
-
297
- _templateObject2 = function _templateObject2() {
298
- return data;
299
- };
300
-
301
- return data;
302
- }
303
-
304
- function _templateObject() {
305
- var data = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n\n width: ", ";\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n"]);
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
+ };
306
51
 
307
- _templateObject = function _templateObject() {
308
- return data;
309
- };
52
+ var filteredGroupsHaveOptions = function filteredGroupsHaveOptions(filteredOptions) {
53
+ return filteredOptions !== null && filteredOptions !== void 0 && filteredOptions[0].options ? filteredOptions.some(function (groupOption) {
54
+ var _groupOption$options;
310
55
 
311
- return data;
312
- }
313
-
314
- var selectIcons = {
315
- error: _react["default"].createElement("svg", {
316
- role: "img",
317
- xmlns: "http://www.w3.org/2000/svg",
318
- height: "24px",
319
- viewBox: "0 0 24 24",
320
- width: "24px",
321
- fill: "currentColor"
322
- }, _react["default"].createElement("path", {
323
- 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"
324
- })),
325
- arrowUp: _react["default"].createElement("svg", {
326
- role: "img",
327
- xmlns: "http://www.w3.org/2000/svg",
328
- height: "24px",
329
- viewBox: "0 0 24 24",
330
- width: "24px",
331
- fill: "currentColor"
332
- }, _react["default"].createElement("path", {
333
- d: "M0 0h24v24H0V0z",
334
- fill: "none"
335
- }), _react["default"].createElement("path", {
336
- d: "M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6 1.41 1.41z"
337
- })),
338
- arrowDown: _react["default"].createElement("svg", {
339
- role: "img",
340
- xmlns: "http://www.w3.org/2000/svg",
341
- height: "24px",
342
- viewBox: "0 0 24 24",
343
- width: "24px",
344
- fill: "currentColor"
345
- }, _react["default"].createElement("path", {
346
- d: "M0 0h24v24H0V0z",
347
- fill: "none"
348
- }), _react["default"].createElement("path", {
349
- d: "M7.41 8.59L12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z"
350
- })),
351
- clear: _react["default"].createElement("svg", {
352
- role: "img",
353
- xmlns: "http://www.w3.org/2000/svg",
354
- width: "24",
355
- height: "24",
356
- viewBox: "0 0 24 24",
357
- fill: "currentColor"
358
- }, _react["default"].createElement("path", {
359
- d: "M0 0h24v24H0V0z",
360
- fill: "none"
361
- }), _react["default"].createElement("path", {
362
- 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"
363
- })),
364
- selected: _react["default"].createElement("svg", {
365
- role: "img",
366
- xmlns: "http://www.w3.org/2000/svg",
367
- height: "24px",
368
- viewBox: "0 0 24 24",
369
- width: "24px",
370
- fill: "currentColor"
371
- }, _react["default"].createElement("path", {
372
- d: "M0 0h24v24H0z",
373
- fill: "none"
374
- }), _react["default"].createElement("path", {
375
- d: "M9 16.2L4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4L9 16.2z"
376
- })),
377
- searchOff: _react["default"].createElement("svg", {
378
- role: "img",
379
- xmlns: "http://www.w3.org/2000/svg",
380
- height: "24px",
381
- viewBox: "0 0 24 24",
382
- width: "24px",
383
- fill: "currentColor"
384
- }, _react["default"].createElement("g", null, _react["default"].createElement("rect", {
385
- fill: "none",
386
- height: "24",
387
- width: "24"
388
- })), _react["default"].createElement("g", null, _react["default"].createElement("g", null, _react["default"].createElement("path", {
389
- 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"
390
- }), _react["default"].createElement("polygon", {
391
- 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"
392
- }))))
56
+ return ((_groupOption$options = groupOption.options) === null || _groupOption$options === void 0 ? void 0 : _groupOption$options.length) > 0;
57
+ }) : true;
393
58
  };
394
59
 
395
- var getNotOptionalErrorMessage = function getNotOptionalErrorMessage() {
396
- 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);
397
62
  };
398
63
 
399
64
  var filterOptionsBySearchValue = function filterOptionsBySearchValue(options, searchValue) {
@@ -412,17 +77,79 @@ var filterOptionsBySearchValue = function filterOptionsBySearchValue(options, se
412
77
  }
413
78
  };
414
79
 
415
- var DxcSelect = _react["default"].forwardRef(function (_ref, ref) {
416
- var _ref3;
80
+ var getLastOptionIndex = function getLastOptionIndex(options, filteredOptions, searchable, optional, multiple) {
81
+ var last = 0;
82
+
83
+ var reducer = function reducer(acc, current) {
84
+ var _current$options;
85
+
86
+ return acc + ((_current$options = current.options) === null || _current$options === void 0 ? void 0 : _current$options.length);
87
+ };
417
88
 
418
- var _ref$label = _ref.label,
419
- label = _ref$label === void 0 ? "" : _ref$label,
89
+ if (searchable && filteredOptions.length > 0) filteredOptions[0].options ? last = filteredOptions.reduce(reducer, 0) - 1 : last = filteredOptions.length - 1;else if ((options === null || options === void 0 ? void 0 : options.length) > 0) options[0].options ? last = options.reduce(reducer, 0) - 1 : last = options.length - 1;
90
+ return optional && !multiple ? last + 1 : last;
91
+ };
92
+
93
+ var getSelectedOption = function getSelectedOption(value, options, multiple, optional, optionalItem) {
94
+ var selectedOption = multiple ? [] : {};
95
+ var singleSelectionIndex;
96
+
97
+ if (multiple) {
98
+ if ((options === null || options === void 0 ? void 0 : options.length) > 0) {
99
+ options.forEach(function (option) {
100
+ if (option.options) {
101
+ option.options.forEach(function (singleOption) {
102
+ if (value.includes(singleOption.value)) selectedOption.push(singleOption);
103
+ });
104
+ } else if (value.includes(option.value)) selectedOption.push(option);
105
+ });
106
+ }
107
+ } else {
108
+ if (optional && value === "") {
109
+ selectedOption = optionalItem;
110
+ singleSelectionIndex = 0;
111
+ } else if ((options === null || options === void 0 ? void 0 : options.length) > 0) {
112
+ var group_index = 0;
113
+ options.some(function (option, index) {
114
+ if (option.options) {
115
+ option.options.some(function (singleOption) {
116
+ if (singleOption.value === value) {
117
+ selectedOption = singleOption;
118
+ singleSelectionIndex = optional ? group_index + 1 : group_index;
119
+ return true;
120
+ }
121
+
122
+ group_index++;
123
+ });
124
+ } else if (option.value === value) {
125
+ selectedOption = option;
126
+ singleSelectionIndex = optional ? index + 1 : index;
127
+ return true;
128
+ }
129
+ });
130
+ }
131
+ }
132
+
133
+ return {
134
+ selectedOption: selectedOption,
135
+ singleSelectionIndex: singleSelectionIndex
136
+ };
137
+ };
138
+
139
+ var notOptionalCheck = function notOptionalCheck(value, multiple, optional) {
140
+ return !optional && (multiple ? value.length === 0 : value === "");
141
+ };
142
+
143
+ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
144
+ var _selectedOption$label;
145
+
146
+ var label = _ref.label,
420
147
  _ref$name = _ref.name,
421
148
  name = _ref$name === void 0 ? "" : _ref$name,
149
+ defaultValue = _ref.defaultValue,
422
150
  value = _ref.value,
423
151
  options = _ref.options,
424
- _ref$helperText = _ref.helperText,
425
- helperText = _ref$helperText === void 0 ? "" : _ref$helperText,
152
+ helperText = _ref.helperText,
426
153
  _ref$placeholder = _ref.placeholder,
427
154
  placeholder = _ref$placeholder === void 0 ? "" : _ref$placeholder,
428
155
  _ref$disabled = _ref.disabled,
@@ -435,8 +162,7 @@ var DxcSelect = _react["default"].forwardRef(function (_ref, ref) {
435
162
  multiple = _ref$multiple === void 0 ? false : _ref$multiple,
436
163
  onChange = _ref.onChange,
437
164
  onBlur = _ref.onBlur,
438
- _ref$error = _ref.error,
439
- error = _ref$error === void 0 ? "" : _ref$error,
165
+ error = _ref.error,
440
166
  margin = _ref.margin,
441
167
  _ref$size = _ref.size,
442
168
  size = _ref$size === void 0 ? "medium" : _ref$size,
@@ -448,9 +174,10 @@ var DxcSelect = _react["default"].forwardRef(function (_ref, ref) {
448
174
  selectId = _useState2[0];
449
175
 
450
176
  var selectLabelId = "label-".concat(selectId);
177
+ var errorId = "error-".concat(selectId);
451
178
  var optionsListId = "".concat(selectId, "-listbox");
452
179
 
453
- var _useState3 = (0, _react.useState)(multiple ? [] : ""),
180
+ var _useState3 = (0, _react.useState)(defaultValue !== null && defaultValue !== void 0 ? defaultValue : multiple ? [] : ""),
454
181
  _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
455
182
  innerValue = _useState4[0],
456
183
  setInnerValue = _useState4[1];
@@ -470,116 +197,29 @@ var DxcSelect = _react["default"].forwardRef(function (_ref, ref) {
470
197
  isOpen = _useState10[0],
471
198
  changeIsOpen = _useState10[1];
472
199
 
473
- var selectContainerRef = (0, _react.useRef)(null);
200
+ var selectRef = (0, _react.useRef)(null);
474
201
  var selectSearchInputRef = (0, _react.useRef)(null);
475
- var selectOptionsListRef = (0, _react.useRef)(null);
476
202
  var colorsTheme = (0, _useTheme["default"])();
477
- var optionalEmptyOption = {
203
+ var translatedLabels = (0, _useTranslatedLabels["default"])();
204
+ var optionalItem = {
478
205
  label: placeholder,
479
206
  value: ""
480
207
  };
481
208
  var filteredOptions = (0, _react.useMemo)(function () {
482
209
  return filterOptionsBySearchValue(options, searchValue);
483
210
  }, [options, searchValue]);
484
-
485
- var getLastOptionIndex = function getLastOptionIndex() {
486
- var last = 0;
487
-
488
- var reducer = function reducer(acc, current) {
489
- var _current$options;
490
-
491
- return acc + ((_current$options = current.options) === null || _current$options === void 0 ? void 0 : _current$options.length);
492
- };
493
-
494
- if (searchable && filteredOptions.length > 0) filteredOptions[0].options ? last = filteredOptions.reduce(reducer, 0) - 1 : last = filteredOptions.length - 1;else if ((options === null || options === void 0 ? void 0 : options.length) > 0) options[0].options ? last = options.reduce(reducer, 0) - 1 : last = options.length - 1;
495
- return optional && !multiple ? last + 1 : last;
496
- };
497
-
498
211
  var lastOptionIndex = (0, _react.useMemo)(function () {
499
- return getLastOptionIndex();
500
- }, [searchable, optional, multiple, filteredOptions, options]);
501
-
502
- var getSelectedOption = function getSelectedOption() {
503
- var val = value !== null && value !== void 0 ? value : innerValue;
504
- var selectedOption = multiple ? [] : "";
505
- var singleSelectionIndex;
506
-
507
- if (multiple) {
508
- if ((options === null || options === void 0 ? void 0 : options.length) > 0) {
509
- options.forEach(function (option) {
510
- if (option.options) {
511
- option.options.forEach(function (singleOption) {
512
- if (val.includes(singleOption.value)) selectedOption.push(singleOption);
513
- });
514
- } else if (val.includes(option.value)) selectedOption.push(option);
515
- });
516
- }
517
- } else {
518
- if (optional && val === "") {
519
- selectedOption = optionalEmptyOption;
520
- singleSelectionIndex = 0;
521
- } else if ((options === null || options === void 0 ? void 0 : options.length) > 0) {
522
- var group_index = 0;
523
- options.some(function (option, index) {
524
- if (option.options) {
525
- option.options.some(function (singleOption) {
526
- if (singleOption.value === val) {
527
- selectedOption = singleOption;
528
- singleSelectionIndex = optional ? group_index + 1 : group_index;
529
- return true;
530
- }
531
-
532
- group_index++;
533
- });
534
- } else if (option.value === val) {
535
- selectedOption = option;
536
- singleSelectionIndex = optional ? index + 1 : index;
537
- return true;
538
- }
539
- });
540
- }
541
- }
542
-
543
- return {
544
- selectedOption: selectedOption,
545
- singleSelectionIndex: singleSelectionIndex
546
- };
547
- };
212
+ return getLastOptionIndex(options, filteredOptions, searchable, optional, multiple);
213
+ }, [options, filteredOptions, searchable, optional, multiple]);
548
214
 
549
215
  var _useMemo = (0, _react.useMemo)(function () {
550
- return getSelectedOption();
551
- }, [options, multiple, value, innerValue]),
216
+ return getSelectedOption(value !== null && value !== void 0 ? value : innerValue, options, multiple, optional, optionalItem);
217
+ }, [value, innerValue, options, multiple, optional, optionalItem]),
552
218
  selectedOption = _useMemo.selectedOption,
553
219
  singleSelectionIndex = _useMemo.singleSelectionIndex;
554
220
 
555
- var notOptionalCheck = function notOptionalCheck(value) {
556
- return value === "" && !optional;
557
- };
558
-
559
- var notOptionalMultipleCheck = function notOptionalMultipleCheck() {
560
- return (value !== null && value !== void 0 ? value : innerValue).length === 0 && !optional;
561
- };
562
-
563
- var canBeOpenOptions = function canBeOpenOptions() {
564
- return !disabled && (options === null || options === void 0 ? void 0 : options.length) > 0 && groupsHaveOptions();
565
- };
566
-
567
- var groupsHaveOptions = function groupsHaveOptions() {
568
- return options[0].hasOwnProperty("options") ? options[0].options ? options.some(function (groupOption) {
569
- return groupOption.options.length > 0;
570
- }) : false : true;
571
- };
572
-
573
- var filteredGroupsHaveOptions = function filteredGroupsHaveOptions() {
574
- return filteredOptions !== null && filteredOptions !== void 0 && filteredOptions[0].options ? filteredOptions.some(function (groupOption) {
575
- var _groupOption$options;
576
-
577
- return ((_groupOption$options = groupOption.options) === null || _groupOption$options === void 0 ? void 0 : _groupOption$options.length) > 0;
578
- }) : true;
579
- };
580
-
581
221
  var openOptions = function openOptions() {
582
- if (!isOpen && canBeOpenOptions()) changeIsOpen(true);
222
+ if (!isOpen && canOpenOptions(options, disabled)) changeIsOpen(true);
583
223
  };
584
224
 
585
225
  var closeOptions = function closeOptions() {
@@ -590,36 +230,21 @@ var DxcSelect = _react["default"].forwardRef(function (_ref, ref) {
590
230
  };
591
231
 
592
232
  var handleSelectChangeValue = function handleSelectChangeValue(newOption) {
593
- if (multiple) {
594
- var _res, _res2;
233
+ var newValue;
595
234
 
596
- var res;
597
- 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) {
598
237
  return optionVal !== newOption.value;
599
- }) : setInnerValue(function (previous) {
600
- return previous.filter(function (optionVal) {
601
- return optionVal !== newOption.value;
602
- });
603
- });else value ? res = [].concat((0, _toConsumableArray2["default"])(value), [newOption.value]) : setInnerValue(function (previous) {
604
- return [].concat((0, _toConsumableArray2["default"])(previous), [newOption.value]);
605
- });
606
- if (notOptionalMultipleCheck(newOption.value)) onChange === null || onChange === void 0 ? void 0 : onChange({
607
- value: (_res = res) !== null && _res !== void 0 ? _res : innerValue,
608
- error: getNotOptionalErrorMessage()
609
- });else onChange === null || onChange === void 0 ? void 0 : onChange({
610
- value: (_res2 = res) !== null && _res2 !== void 0 ? _res2 : innerValue,
611
- error: null
612
- });
613
- } else {
614
- value !== null && value !== void 0 ? value : setInnerValue(newOption.value);
615
- if (notOptionalCheck(newOption.value)) onChange === null || onChange === void 0 ? void 0 : onChange({
616
- value: newOption.value,
617
- error: getNotOptionalErrorMessage()
618
- });else onChange === null || onChange === void 0 ? void 0 : onChange({
619
- value: newOption.value,
620
- error: null
621
- });
622
- }
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
+ });
623
248
  };
624
249
 
625
250
  var handleSelectOnClick = function handleSelectOnClick() {
@@ -640,20 +265,20 @@ var DxcSelect = _react["default"].forwardRef(function (_ref, ref) {
640
265
  if (!event.currentTarget.contains(event.relatedTarget)) {
641
266
  closeOptions();
642
267
  setSearchValue("");
643
- if (notOptionalCheck(value !== null && value !== void 0 ? value : innerValue)) onBlur === null || onBlur === void 0 ? void 0 : onBlur({
644
- value: value !== null && value !== void 0 ? value : innerValue,
645
- error: getNotOptionalErrorMessage()
646
- });else onBlur === null || onBlur === void 0 ? void 0 : onBlur({
647
- value: value !== null && value !== void 0 ? value : innerValue,
648
- 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
649
274
  });
650
275
  }
651
276
  };
652
277
 
653
278
  var handleSelectOnKeyDown = function handleSelectOnKeyDown(event) {
654
- switch (event.keyCode) {
655
- case 40:
656
- // Arrow Down
279
+ switch (event.key) {
280
+ case "Down":
281
+ case "ArrowDown":
657
282
  event.preventDefault();
658
283
  singleSelectionIndex !== undefined && (!isOpen || visualFocusIndex === -1 && singleSelectionIndex > -1 && singleSelectionIndex <= lastOptionIndex) ? changeVisualFocusIndex(singleSelectionIndex) : changeVisualFocusIndex(function (visualFocusIndex) {
659
284
  if (visualFocusIndex < lastOptionIndex) return visualFocusIndex + 1;else if (visualFocusIndex === lastOptionIndex) return 0;
@@ -661,8 +286,8 @@ var DxcSelect = _react["default"].forwardRef(function (_ref, ref) {
661
286
  openOptions();
662
287
  break;
663
288
 
664
- case 38:
665
- // Arrow Up
289
+ case "Up":
290
+ case "ArrowUp":
666
291
  event.preventDefault();
667
292
  singleSelectionIndex !== undefined && (!isOpen || visualFocusIndex === -1 && singleSelectionIndex > -1 && singleSelectionIndex <= lastOptionIndex) ? changeVisualFocusIndex(singleSelectionIndex) : changeVisualFocusIndex(function (visualFocusIndex) {
668
293
  return visualFocusIndex === 0 || visualFocusIndex === -1 ? lastOptionIndex : visualFocusIndex - 1;
@@ -670,21 +295,20 @@ var DxcSelect = _react["default"].forwardRef(function (_ref, ref) {
670
295
  openOptions();
671
296
  break;
672
297
 
673
- case 27:
674
- // Esc
298
+ case "Esc":
299
+ case "Escape":
675
300
  event.preventDefault();
676
301
  closeOptions();
677
302
  setSearchValue("");
678
303
  break;
679
304
 
680
- case 13:
681
- // Enter
305
+ case "Enter":
682
306
  if (isOpen && visualFocusIndex >= 0) {
683
307
  var accLength = optional && !multiple ? 1 : 0;
684
308
 
685
309
  if (searchable) {
686
310
  if (filteredOptions.length > 0) {
687
- 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) {
688
312
  var groupLength = accLength + groupOption.options.length;
689
313
  groupLength > visualFocusIndex && handleSelectChangeValue(groupOption.options[visualFocusIndex - accLength]);
690
314
  accLength = groupLength;
@@ -692,7 +316,7 @@ var DxcSelect = _react["default"].forwardRef(function (_ref, ref) {
692
316
  }) : handleSelectChangeValue(filteredOptions[visualFocusIndex - accLength]);
693
317
  }
694
318
  } else {
695
- 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) {
696
320
  var groupLength = accLength + groupOption.options.length;
697
321
  groupLength > visualFocusIndex && handleSelectChangeValue(groupOption.options[visualFocusIndex - accLength]);
698
322
  accLength = groupLength;
@@ -717,9 +341,11 @@ var DxcSelect = _react["default"].forwardRef(function (_ref, ref) {
717
341
  var handleClearOptionsActionOnClick = function handleClearOptionsActionOnClick(event) {
718
342
  event.stopPropagation();
719
343
  value !== null && value !== void 0 ? value : setInnerValue([]);
720
- onChange === null || onChange === void 0 ? void 0 : onChange({
344
+ !optional ? onChange === null || onChange === void 0 ? void 0 : onChange({
721
345
  value: [],
722
- error: getNotOptionalErrorMessage()
346
+ error: translatedLabels.formFields.requiredValueErrorMessage
347
+ }) : onChange === null || onChange === void 0 ? void 0 : onChange({
348
+ value: []
723
349
  });
724
350
  };
725
351
 
@@ -728,108 +354,38 @@ var DxcSelect = _react["default"].forwardRef(function (_ref, ref) {
728
354
  setSearchValue("");
729
355
  };
730
356
 
731
- (0, _react.useLayoutEffect)(function () {
732
- if (isOpen && singleSelectionIndex) {
733
- var _listEl$scrollTo;
734
-
735
- var listEl = selectOptionsListRef === null || selectOptionsListRef === void 0 ? void 0 : selectOptionsListRef.current;
736
- var selectedListOptionEl = listEl === null || listEl === void 0 ? void 0 : listEl.querySelector("[aria-selected='true']");
737
- listEl === null || listEl === void 0 ? void 0 : (_listEl$scrollTo = listEl.scrollTo) === null || _listEl$scrollTo === void 0 ? void 0 : _listEl$scrollTo.call(listEl, {
738
- top: (selectedListOptionEl === null || selectedListOptionEl === void 0 ? void 0 : selectedListOptionEl.offsetTop) - (listEl === null || listEl === void 0 ? void 0 : listEl.clientHeight) / 2
739
- });
740
- }
741
- }, [isOpen]);
742
- (0, _react.useLayoutEffect)(function () {
743
- var _selectOptionsListRef, _visualFocusedOptionE;
744
-
745
- var visualFocusedOptionEl = selectOptionsListRef === null || selectOptionsListRef === void 0 ? void 0 : (_selectOptionsListRef = selectOptionsListRef.current) === null || _selectOptionsListRef === void 0 ? void 0 : _selectOptionsListRef.querySelectorAll("[role='option']")[visualFocusIndex];
746
- visualFocusedOptionEl === null || visualFocusedOptionEl === void 0 ? void 0 : (_visualFocusedOptionE = visualFocusedOptionEl.scrollIntoView) === null || _visualFocusedOptionE === void 0 ? void 0 : _visualFocusedOptionE.call(visualFocusedOptionEl, {
747
- block: "nearest",
748
- inline: "start"
749
- });
750
- }, [visualFocusIndex]);
751
-
752
- var Option = function Option(_ref2) {
753
- var option = _ref2.option,
754
- index = _ref2.index,
755
- _ref2$isGroupedOption = _ref2.isGroupedOption,
756
- isGroupedOption = _ref2$isGroupedOption === void 0 ? false : _ref2$isGroupedOption;
757
- var isSelected = multiple ? (value !== null && value !== void 0 ? value : innerValue).includes(option.value) : (value !== null && value !== void 0 ? value : innerValue) === option.value;
758
- var isLastOption = index === lastOptionIndex;
759
- return _react["default"].createElement(OptionItem, {
760
- id: "option-".concat(index),
761
- onClick: function onClick() {
762
- handleSelectChangeValue(option);
763
- !multiple && closeOptions();
764
- setSearchValue("");
765
- },
766
- visualFocused: visualFocusIndex === index,
767
- selected: isSelected,
768
- role: "option",
769
- "aria-selected": isSelected && "true"
770
- }, _react["default"].createElement(StyledOption, {
771
- visualFocused: visualFocusIndex === index,
772
- selected: isSelected,
773
- last: isLastOption,
774
- grouped: isGroupedOption,
775
- multiple: multiple
776
- }, multiple && _react["default"].createElement(_Checkbox["default"], {
777
- tabIndex: -1,
778
- checked: isSelected
779
- }), option.icon && _react["default"].createElement(OptionIcon, {
780
- grouped: isGroupedOption,
781
- multiple: multiple,
782
- role: !(typeof option.icon === "string") && "img"
783
- }, typeof option.icon === "string" ? _react["default"].createElement(OptionIconImg, {
784
- src: option.icon
785
- }) : option.icon), _react["default"].createElement(OptionContent, {
786
- grouped: isGroupedOption,
787
- hasIcon: option.icon,
788
- multiple: multiple
789
- }, _react["default"].createElement(OptionLabel, null, option.label), !multiple && isSelected && _react["default"].createElement(OptionSelectedIndicator, null, selectIcons.selected))));
790
- };
791
-
792
- var global_index = optional && !multiple ? 0 : -1; // index for options, starting from 0 to options.length -1
793
-
794
- var mapOptionFunc = function mapOptionFunc(option) {
795
- if (option.options) {
796
- return option.options.length > 0 && _react["default"].createElement("li", null, _react["default"].createElement(GroupList, {
797
- role: "group"
798
- }, _react["default"].createElement(GroupLabel, {
799
- role: "presentation"
800
- }, option.label), option.options.map(function (singleOption) {
801
- global_index++;
802
- return _react["default"].createElement(Option, {
803
- option: singleOption,
804
- index: global_index,
805
- isGroupedOption: true
806
- });
807
- })));
808
- } else {
809
- global_index++;
810
- return _react["default"].createElement(Option, {
811
- key: "option-".concat(option.value),
812
- option: option,
813
- index: global_index
814
- });
815
- }
816
- };
817
-
818
- return _react["default"].createElement(_styledComponents.ThemeProvider, {
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;
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
+ }, []);
368
+ return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
819
369
  theme: colorsTheme.select
820
- }, _react["default"].createElement(SelectContainer, {
370
+ }, /*#__PURE__*/_react["default"].createElement(SelectContainer, {
821
371
  margin: margin,
822
372
  size: size,
823
373
  ref: ref
824
- }, _react["default"].createElement(Label, {
374
+ }, label && /*#__PURE__*/_react["default"].createElement(Label, {
825
375
  id: selectLabelId,
826
376
  disabled: disabled,
827
377
  onClick: function onClick() {
828
- selectContainerRef.current.focus();
829
- }
830
- }, label, " ", optional && _react["default"].createElement(OptionalLabel, null, "(Optional)")), _react["default"].createElement(HelperText, {
378
+ selectRef.current.focus();
379
+ },
380
+ helperText: helperText
381
+ }, label, " ", optional && /*#__PURE__*/_react["default"].createElement(OptionalLabel, null, translatedLabels.formFields.optionalLabel)), helperText && /*#__PURE__*/_react["default"].createElement(HelperText, {
831
382
  disabled: disabled
832
- }, helperText), _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, {
833
389
  id: selectId,
834
390
  disabled: disabled,
835
391
  error: error,
@@ -837,19 +393,21 @@ var DxcSelect = _react["default"].forwardRef(function (_ref, ref) {
837
393
  onClick: handleSelectOnClick,
838
394
  onFocus: handleSelectOnFocus,
839
395
  onKeyDown: handleSelectOnKeyDown,
840
- ref: selectContainerRef,
841
- tabIndex: tabIndex,
396
+ ref: selectRef,
397
+ tabIndex: disabled ? -1 : tabIndex,
842
398
  role: "combobox",
843
399
  "aria-controls": optionsListId,
844
- "aria-expanded": isOpen ? "true" : "false",
400
+ "aria-disabled": disabled,
401
+ "aria-expanded": isOpen,
845
402
  "aria-haspopup": "listbox",
846
- "aria-labelledby": selectLabelId,
403
+ "aria-labelledby": label ? selectLabelId : undefined,
847
404
  "aria-activedescendant": visualFocusIndex >= 0 ? "option-".concat(visualFocusIndex) : undefined,
848
- "aria-invalid": error ? "true" : "false",
849
- "aria-required": optional ? "false" : "true"
850
- }, multiple && selectedOption.length > 0 && _react["default"].createElement(SelectionIndicator, null, _react["default"].createElement(SelectionNumber, {
405
+ "aria-invalid": error ? true : false,
406
+ "aria-errormessage": error ? errorId : undefined,
407
+ "aria-required": !disabled && !optional
408
+ }, multiple && selectedOption.length > 0 && /*#__PURE__*/_react["default"].createElement(SelectionIndicator, null, /*#__PURE__*/_react["default"].createElement(SelectionNumber, {
851
409
  disabled: disabled
852
- }, selectedOption.length), _react["default"].createElement(ClearOptionsAction, {
410
+ }, selectedOption.length), /*#__PURE__*/_react["default"].createElement(ClearOptionsAction, {
853
411
  disabled: disabled,
854
412
  onMouseDown: function onMouseDown(event) {
855
413
  // Avoid input to lose focus when pressed
@@ -857,56 +415,67 @@ var DxcSelect = _react["default"].forwardRef(function (_ref, ref) {
857
415
  },
858
416
  onClick: handleClearOptionsActionOnClick,
859
417
  tabIndex: -1,
860
- title: "Clear selected options",
861
- "aria-label": "Clear selected options"
862
- }, selectIcons.clear)), _react["default"].createElement(SearchableValueContainer, null, _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, {
863
421
  name: name,
864
- 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,
865
424
  readOnly: true,
866
425
  "aria-hidden": "true"
867
- }), searchable && _react["default"].createElement(SearchInput, {
426
+ }), searchable && /*#__PURE__*/_react["default"].createElement(SearchInput, {
868
427
  value: searchValue,
869
428
  disabled: disabled,
870
429
  onChange: handleSearchIOnChange,
871
430
  ref: selectSearchInputRef,
872
- autoComplete: "off",
873
- autoCorrect: "off",
874
- size: "1"
875
- }), (!searchable || searchValue === "") && (multiple ? _react["default"].createElement(SelectedOption, {
431
+ autoComplete: "nope",
432
+ autoCorrect: "nope",
433
+ size: 1
434
+ }), (!searchable || searchValue === "") && (multiple ? /*#__PURE__*/_react["default"].createElement(SelectedOption, {
876
435
  disabled: disabled,
877
436
  atBackground: (value !== null && value !== void 0 ? value : innerValue).length === 0 || searchable && isOpen
878
- }, _react["default"].createElement(OptionLabel, null, selectedOption.map(function (option) {
437
+ }, /*#__PURE__*/_react["default"].createElement(SelectedOptionLabel, null, selectedOption.map(function (option) {
879
438
  return option.label;
880
- }).join(", ")), selectedOption.length === 0 && placeholder) : _react["default"].createElement(SelectedOption, {
439
+ }).join(", ")), selectedOption.length === 0 && placeholder) : /*#__PURE__*/_react["default"].createElement(SelectedOption, {
881
440
  disabled: disabled,
882
441
  atBackground: !(value !== null && value !== void 0 ? value : innerValue) || searchable && isOpen
883
- }, _react["default"].createElement(OptionLabel, null, (_ref3 = selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.label) !== null && _ref3 !== void 0 ? _ref3 : placeholder)))), !disabled && error && _react["default"].createElement(ErrorIcon, null, selectIcons.error), searchable && searchValue.length > 0 && _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, {
884
443
  onMouseDown: function onMouseDown(event) {
885
444
  // Avoid input to lose focus
886
445
  event.preventDefault();
887
446
  },
888
447
  onClick: handleClearSearchActionOnClick,
889
448
  tabIndex: -1,
890
- title: "Clear search text",
891
- "aria-label": "Clear search text"
892
- }, selectIcons.clear), _react["default"].createElement(CollapseIndicator, {
449
+ title: translatedLabels.select.actionClearSearchTitle,
450
+ "aria-label": translatedLabels.select.actionClearSearchTitle
451
+ }, _Icons["default"].clear), /*#__PURE__*/_react["default"].createElement(CollapseIndicator, {
893
452
  disabled: disabled
894
- }, isOpen ? selectIcons.arrowUp : selectIcons.arrowDown), isOpen && _react["default"].createElement(OptionsList, {
895
- id: optionsListId,
896
- onClick: function onClick(event) {
897
- event.stopPropagation();
898
- },
899
- 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
900
457
  event.preventDefault();
901
458
  },
902
- ref: selectOptionsListRef,
903
- role: "listbox",
904
- "aria-labelledby": selectLabelId,
905
- "aria-multiselectable": multiple ? "true" : "false"
906
- }, searchable && (filteredOptions.length === 0 || !filteredGroupsHaveOptions()) ? _react["default"].createElement(OptionsSystemMessage, null, _react["default"].createElement(NoMatchesFoundIcon, null, selectIcons.searchOff), "No matches found") : optional && !multiple && _react["default"].createElement(Option, {
907
- option: optionalEmptyOption,
908
- index: 0
909
- }), searchable ? filteredOptions.map(mapOptionFunc) : options.map(mapOptionFunc))), !disabled && _react["default"].createElement(Error, null, 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, {
476
+ id: errorId,
477
+ "aria-live": error ? "assertive" : "off"
478
+ }, error)));
910
479
  });
911
480
 
912
481
  var sizes = {
@@ -920,7 +489,7 @@ var calculateWidth = function calculateWidth(margin, size) {
920
489
  return size === "fillParent" ? "calc(".concat(sizes[size], " - ").concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")") : sizes[size];
921
490
  };
922
491
 
923
- var SelectContainer = _styledComponents["default"].div(_templateObject(), function (props) {
492
+ var SelectContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n\n width: ", ";\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n"])), function (props) {
924
493
  return calculateWidth(props.margin, props.size);
925
494
  }, function (props) {
926
495
  return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
@@ -934,7 +503,7 @@ var SelectContainer = _styledComponents["default"].div(_templateObject(), functi
934
503
  return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
935
504
  });
936
505
 
937
- var Label = _styledComponents["default"].span(_templateObject2(), function (props) {
506
+ var Label = _styledComponents["default"].span(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n line-height: ", ";\n cursor: default;\n ", "\n"])), function (props) {
938
507
  return props.disabled ? props.theme.disabledColor : props.theme.labelFontColor;
939
508
  }, function (props) {
940
509
  return props.theme.fontFamily;
@@ -946,13 +515,15 @@ var Label = _styledComponents["default"].span(_templateObject2(), function (prop
946
515
  return props.theme.labelFontWeight;
947
516
  }, function (props) {
948
517
  return props.theme.labelLineHeight;
518
+ }, function (props) {
519
+ return !props.helperText && "margin-bottom: 0.25rem";
949
520
  });
950
521
 
951
- var OptionalLabel = _styledComponents["default"].span(_templateObject3(), function (props) {
522
+ var OptionalLabel = _styledComponents["default"].span(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n font-weight: ", ";\n"])), function (props) {
952
523
  return props.theme.optionalLabelFontWeight;
953
524
  });
954
525
 
955
- var HelperText = _styledComponents["default"].span(_templateObject4(), function (props) {
526
+ var HelperText = _styledComponents["default"].span(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n line-height: ", ";\n margin-bottom: 0.25rem;\n"])), function (props) {
956
527
  return props.disabled ? props.theme.disabledColor : props.theme.helperTextFontColor;
957
528
  }, function (props) {
958
529
  return props.theme.fontFamily;
@@ -966,9 +537,7 @@ var HelperText = _styledComponents["default"].span(_templateObject4(), function
966
537
  return props.theme.helperTextLineHeight;
967
538
  });
968
539
 
969
- var Select = _styledComponents["default"].div(_templateObject5(), function (props) {
970
- return "".concat(props.theme.inputMarginTop, " 0 ").concat(props.theme.inputMarginBottom, " 0");
971
- }, function (props) {
540
+ var Select = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n position: relative;\n align-items: center;\n height: calc(2.5rem - 2px);\n padding: 0 0.5rem;\n outline: none;\n ", ";\n box-shadow: 0 0 0 2px transparent;\n border-radius: 4px;\n border: 1px solid\n ", ";\n ", "\n ", ";\n\n ", ";\n"])), function (props) {
972
541
  return props.disabled && "background-color: ".concat(props.theme.disabledInputBackgroundColor);
973
542
  }, function (props) {
974
543
  return props.disabled ? props.theme.disabledInputBorderColor : props.theme.enabledInputBorderColor;
@@ -980,12 +549,12 @@ var Select = _styledComponents["default"].div(_templateObject5(), function (prop
980
549
  return !props.disabled && "\n &:hover {\n border-color: ".concat(props.error ? "transparent" : props.theme.hoverInputBorderColor, ";\n ").concat(props.error && "box-shadow: 0 0 0 2px ".concat(props.theme.hoverInputErrorBorderColor, ";"), "\n }\n &:focus-within {\n border-color: transparent;\n box-shadow: 0 0 0 2px ").concat(props.theme.focusInputBorderColor, ";\n }\n ");
981
550
  });
982
551
 
983
- var SelectionIndicator = _styledComponents["default"].span(_templateObject6(), function (props) {
552
+ var SelectionIndicator = _styledComponents["default"].span(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n border: 1px solid ", ";\n border-radius: 2px;\n max-height: 22px;\n width: 46px;\n"])), function (props) {
984
553
  return props.theme.selectionIndicatorBorderColor;
985
554
  });
986
555
 
987
- var SelectionNumber = _styledComponents["default"].span(_templateObject7(), function (props) {
988
- return props.theme.selectionIndicatorBackgroundColor;
556
+ var SelectionNumber = _styledComponents["default"].span(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n justify-content: center;\n width: 22px;\n height: 22px;\n user-select: none;\n ", ";\n border-right: 1px solid ", ";\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n ", "\n"])), function (props) {
557
+ return !props.disabled && "background-color: ".concat(props.theme.selectionIndicatorBackgroundColor);
989
558
  }, function (props) {
990
559
  return props.theme.selectionIndicatorBorderColor;
991
560
  }, function (props) {
@@ -1002,21 +571,19 @@ var SelectionNumber = _styledComponents["default"].span(_templateObject7(), func
1002
571
  return props.disabled ? "cursor: not-allowed;" : "cursor: default;";
1003
572
  });
1004
573
 
1005
- var ClearOptionsAction = _styledComponents["default"].button(_templateObject8(), function (props) {
1006
- return props.theme.fontFamily;
1007
- }, 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) {
1008
575
  return props.disabled ? "cursor: not-allowed;" : "cursor: pointer;";
1009
576
  }, function (props) {
1010
- return props.theme.enabledSelectionIndicatorActionBackgroundColor;
577
+ return props.disabled ? "transparent" : props.theme.enabledSelectionIndicatorActionBackgroundColor;
1011
578
  }, function (props) {
1012
579
  return props.disabled ? props.theme.disabledColor : props.theme.enabledSelectionIndicatorActionIconColor;
1013
580
  }, function (props) {
1014
581
  return !props.disabled && "\n &:hover {\n background-color: ".concat(props.theme.hoverSelectionIndicatorActionBackgroundColor, ";\n color: ").concat(props.theme.hoverSelectionIndicatorActionIconColor, ";\n }\n &:active {\n background-color: ").concat(props.theme.activeSelectionIndicatorActionBackgroundColor, ";\n color: ").concat(props.theme.activeSelectionIndicatorActionIconColor, ";\n }\n ");
1015
582
  });
1016
583
 
1017
- var SearchableValueContainer = _styledComponents["default"].div(_templateObject9());
584
+ var SearchableValueContainer = _styledComponents["default"].div(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])(["\n display: grid;\n width: 100%;\n"])));
1018
585
 
1019
- var SelectedOption = _styledComponents["default"].span(_templateObject10(), function (props) {
586
+ var SelectedOption = _styledComponents["default"].span(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2["default"])(["\n grid-area: 1 / 1 / 1 / 1;\n display: inline-flex;\n align-items: center;\n height: calc(2.5rem - 2px);\n padding: 0 0.5rem;\n user-select: none;\n overflow: hidden;\n\n color: ", ";\n\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n"])), function (props) {
1020
587
  if (props.disabled) return props.theme.disabledColor;else if (props.atBackground) return props.theme.placeholderFontColor;else return props.theme.valueFontColor;
1021
588
  }, function (props) {
1022
589
  return props.theme.fontFamily;
@@ -1028,9 +595,11 @@ var SelectedOption = _styledComponents["default"].span(_templateObject10(), func
1028
595
  return props.theme.valueFontWeight;
1029
596
  });
1030
597
 
1031
- var ValueInput = _styledComponents["default"].input(_templateObject11());
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"])));
1032
601
 
1033
- var SearchInput = _styledComponents["default"].input(_templateObject12(), 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) {
1034
603
  return props.disabled ? props.theme.disabledColor : props.theme.valueFontColor;
1035
604
  }, function (props) {
1036
605
  return props.theme.fontFamily;
@@ -1042,21 +611,21 @@ var SearchInput = _styledComponents["default"].input(_templateObject12(), functi
1042
611
  return props.theme.valueFontWeight;
1043
612
  });
1044
613
 
1045
- var ErrorIcon = _styledComponents["default"].span(_templateObject13(), 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) {
1046
615
  return props.theme.errorIconColor;
1047
616
  });
1048
617
 
1049
- var Error = _styledComponents["default"].span(_templateObject14(), 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) {
1050
619
  return props.theme.errorMessageColor;
1051
620
  }, function (props) {
1052
621
  return props.theme.fontFamily;
1053
622
  });
1054
623
 
1055
- var CollapseIndicator = _styledComponents["default"].span(_templateObject15(), 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) {
1056
625
  return props.disabled ? props.theme.disabledColor : props.theme.collapseIndicatorColor;
1057
626
  });
1058
627
 
1059
- var ClearSearchAction = _styledComponents["default"].button(_templateObject16(), 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) {
1060
629
  return props.theme.fontFamily;
1061
630
  }, function (props) {
1062
631
  return props.theme.actionBackgroundColor;
@@ -1072,67 +641,5 @@ var ClearSearchAction = _styledComponents["default"].button(_templateObject16(),
1072
641
  return props.theme.activeActionIconColor;
1073
642
  });
1074
643
 
1075
- var OptionsList = _styledComponents["default"].ul(_templateObject17(), function (props) {
1076
- return props.theme.listDialogBackgroundColor;
1077
- }, function (props) {
1078
- return props.theme.listDialogBorderColor;
1079
- }, function (props) {
1080
- return props.theme.listOptionFontColor;
1081
- }, function (props) {
1082
- return props.theme.fontFamily;
1083
- }, function (props) {
1084
- return props.theme.listOptionFontSize;
1085
- }, function (props) {
1086
- return props.theme.listOptionFontStyle;
1087
- }, function (props) {
1088
- return props.theme.listOptionFontWeight;
1089
- });
1090
-
1091
- var OptionsSystemMessage = _styledComponents["default"].span(_templateObject18(), function (props) {
1092
- return props.theme.systemMessageFontColor;
1093
- });
1094
-
1095
- var NoMatchesFoundIcon = _styledComponents["default"].span(_templateObject19());
1096
-
1097
- var GroupList = _styledComponents["default"].ul(_templateObject20());
1098
-
1099
- var GroupLabel = _styledComponents["default"].li(_templateObject21(), function (props) {
1100
- return props.theme.listGroupLabelFontWeight;
1101
- });
1102
-
1103
- var OptionItem = _styledComponents["default"].li(_templateObject22(), function (props) {
1104
- return props.visualFocused && "box-shadow: inset 0 0 0 2px ".concat(props.theme.focusListOptionBorderColor, ";");
1105
- }, function (props) {
1106
- return props.selected && "background-color: ".concat(props.theme.selectedListOptionBackgroundColor);
1107
- }, function (props) {
1108
- return props.selected ? "background-color: ".concat(props.theme.selectedHoverListOptionBackgroundColor, ";") : "background-color: ".concat(props.theme.unselectedHoverListOptionBackgroundColor, ";");
1109
- }, function (props) {
1110
- return props.selected ? "background-color: ".concat(props.theme.selectedActiveListOptionBackgroundColor, ";") : "background-color: ".concat(props.theme.unselectedActiveListOptionBackgroundColor, ";");
1111
- });
1112
-
1113
- var StyledOption = _styledComponents["default"].span(_templateObject23(), function (props) {
1114
- return props.grouped && props.multiple && "padding-left: 16px;";
1115
- }, function (props) {
1116
- return props.last || props.visualFocused || props.selected ? "border-bottom: 1px solid transparent" : "border-bottom: 1px solid ".concat(props.theme.listOptionDividerColor);
1117
- });
1118
-
1119
- var OptionContent = _styledComponents["default"].span(_templateObject24(), function (props) {
1120
- return props.grouped && !props.multiple && !props.hasIcon ? "padding-left: 16px;" : "padding-left: 8px;";
1121
- });
1122
-
1123
- var OptionIcon = _styledComponents["default"].span(_templateObject25(), function (props) {
1124
- return props.grouped && !props.multiple ? "padding-left: 16px;" : "padding-left: 8px;";
1125
- }, function (props) {
1126
- return props.theme.listOptionIconColor;
1127
- });
1128
-
1129
- var OptionIconImg = _styledComponents["default"].img(_templateObject26());
1130
-
1131
- var OptionLabel = _styledComponents["default"].span(_templateObject27());
1132
-
1133
- var OptionSelectedIndicator = _styledComponents["default"].span(_templateObject28(), function (props) {
1134
- return props.theme.selectedListOptionIconColor;
1135
- });
1136
-
1137
644
  var _default = DxcSelect;
1138
645
  exports["default"] = _default;