@dxc-technology/halstack-react 0.0.0-227874a → 0.0.0-22b474c

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 (389) hide show
  1. package/BackgroundColorContext.d.ts +10 -0
  2. package/BackgroundColorContext.js +8 -7
  3. package/HalstackContext.d.ts +1339 -0
  4. package/HalstackContext.js +335 -0
  5. package/accordion/Accordion.d.ts +4 -0
  6. package/accordion/Accordion.js +124 -243
  7. package/accordion/Accordion.stories.tsx +395 -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 +70 -107
  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 +45 -157
  19. package/alert/Alert.stories.tsx +198 -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 +342 -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 +39 -81
  34. package/box/Box.stories.tsx +147 -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 +60 -145
  45. package/button/Button.stories.tsx +425 -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 +53 -147
  51. package/card/Card.stories.tsx +200 -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 +112 -161
  58. package/checkbox/Checkbox.stories.tsx +260 -0
  59. package/checkbox/Checkbox.test.js +155 -0
  60. package/checkbox/types.d.ts +68 -0
  61. package/checkbox/types.js +5 -0
  62. package/chip/Chip.d.ts +4 -0
  63. package/chip/Chip.js +32 -144
  64. package/chip/Chip.stories.tsx +206 -0
  65. package/chip/Chip.test.js +54 -0
  66. package/chip/types.d.ts +45 -0
  67. package/chip/types.js +5 -0
  68. package/common/utils.d.ts +1 -0
  69. package/common/utils.js +4 -4
  70. package/common/variables.d.ts +1625 -0
  71. package/common/variables.js +582 -644
  72. package/date-input/Calendar.d.ts +4 -0
  73. package/date-input/Calendar.js +258 -0
  74. package/date-input/DateInput.d.ts +4 -0
  75. package/date-input/DateInput.js +179 -310
  76. package/date-input/DateInput.stories.tsx +304 -0
  77. package/date-input/DateInput.test.js +835 -0
  78. package/date-input/DatePicker.d.ts +4 -0
  79. package/date-input/DatePicker.js +146 -0
  80. package/date-input/Icons.d.ts +6 -0
  81. package/date-input/Icons.js +75 -0
  82. package/date-input/YearPicker.d.ts +4 -0
  83. package/date-input/YearPicker.js +126 -0
  84. package/date-input/types.d.ts +158 -0
  85. package/date-input/types.js +5 -0
  86. package/dialog/Dialog.d.ts +4 -0
  87. package/dialog/Dialog.js +81 -150
  88. package/dialog/Dialog.stories.tsx +319 -0
  89. package/dialog/Dialog.test.js +369 -0
  90. package/dialog/types.d.ts +44 -0
  91. package/dialog/types.js +5 -0
  92. package/dropdown/Dropdown.d.ts +4 -0
  93. package/dropdown/Dropdown.js +246 -402
  94. package/dropdown/Dropdown.stories.tsx +438 -0
  95. package/dropdown/Dropdown.test.js +586 -0
  96. package/dropdown/DropdownMenu.d.ts +4 -0
  97. package/dropdown/DropdownMenu.js +70 -0
  98. package/dropdown/DropdownMenuItem.d.ts +4 -0
  99. package/dropdown/DropdownMenuItem.js +79 -0
  100. package/dropdown/types.d.ts +100 -0
  101. package/dropdown/types.js +5 -0
  102. package/file-input/FileInput.d.ts +4 -0
  103. package/file-input/FileInput.js +210 -307
  104. package/file-input/FileInput.stories.tsx +618 -0
  105. package/file-input/FileInput.test.js +457 -0
  106. package/file-input/FileItem.d.ts +4 -0
  107. package/file-input/FileItem.js +58 -183
  108. package/file-input/types.d.ts +129 -0
  109. package/file-input/types.js +5 -0
  110. package/flex/Flex.d.ts +4 -0
  111. package/flex/Flex.js +69 -0
  112. package/flex/Flex.stories.tsx +98 -0
  113. package/flex/types.d.ts +32 -0
  114. package/flex/types.js +5 -0
  115. package/footer/Footer.d.ts +4 -0
  116. package/footer/Footer.js +51 -289
  117. package/footer/Footer.stories.tsx +228 -0
  118. package/footer/Footer.test.js +97 -0
  119. package/footer/Icons.d.ts +2 -0
  120. package/footer/Icons.js +16 -16
  121. package/footer/types.d.ts +66 -0
  122. package/footer/types.js +5 -0
  123. package/grid/Grid.d.ts +7 -0
  124. package/grid/Grid.js +91 -0
  125. package/grid/Grid.stories.tsx +219 -0
  126. package/grid/types.d.ts +115 -0
  127. package/grid/types.js +5 -0
  128. package/header/Header.d.ts +8 -0
  129. package/header/Header.js +136 -303
  130. package/header/Header.stories.tsx +315 -0
  131. package/header/Header.test.js +79 -0
  132. package/header/Icons.d.ts +2 -0
  133. package/header/Icons.js +9 -34
  134. package/header/types.d.ts +48 -0
  135. package/header/types.js +5 -0
  136. package/heading/Heading.d.ts +4 -0
  137. package/heading/Heading.js +26 -97
  138. package/heading/Heading.stories.tsx +54 -0
  139. package/heading/Heading.test.js +186 -0
  140. package/heading/types.d.ts +33 -0
  141. package/heading/types.js +5 -0
  142. package/inset/Inset.d.ts +3 -0
  143. package/inset/Inset.js +51 -0
  144. package/inset/Inset.stories.tsx +230 -0
  145. package/inset/types.d.ts +37 -0
  146. package/inset/types.js +5 -0
  147. package/layout/ApplicationLayout.d.ts +20 -0
  148. package/layout/ApplicationLayout.js +77 -233
  149. package/layout/ApplicationLayout.stories.tsx +162 -0
  150. package/layout/Icons.d.ts +5 -0
  151. package/layout/Icons.js +19 -8
  152. package/layout/SidenavContext.d.ts +5 -0
  153. package/layout/SidenavContext.js +19 -0
  154. package/layout/types.d.ts +41 -0
  155. package/layout/types.js +5 -0
  156. package/link/Link.d.ts +4 -0
  157. package/link/Link.js +66 -167
  158. package/link/Link.stories.tsx +253 -0
  159. package/link/Link.test.js +81 -0
  160. package/link/types.d.ts +54 -0
  161. package/link/types.js +5 -0
  162. package/main.d.ts +45 -40
  163. package/main.js +122 -104
  164. package/nav-tabs/NavTabs.d.ts +8 -0
  165. package/nav-tabs/NavTabs.js +125 -0
  166. package/nav-tabs/NavTabs.stories.tsx +260 -0
  167. package/nav-tabs/NavTabs.test.js +82 -0
  168. package/nav-tabs/Tab.d.ts +4 -0
  169. package/nav-tabs/Tab.js +150 -0
  170. package/nav-tabs/types.d.ts +53 -0
  171. package/nav-tabs/types.js +5 -0
  172. package/number-input/NumberInput.d.ts +4 -0
  173. package/number-input/NumberInput.js +21 -81
  174. package/number-input/NumberInput.stories.tsx +115 -0
  175. package/number-input/NumberInput.test.js +542 -0
  176. package/number-input/NumberInputContext.d.ts +4 -0
  177. package/number-input/NumberInputContext.js +5 -2
  178. package/number-input/numberInputContextTypes.d.ts +19 -0
  179. package/number-input/numberInputContextTypes.js +5 -0
  180. package/number-input/types.d.ts +124 -0
  181. package/number-input/types.js +5 -0
  182. package/package.json +35 -33
  183. package/paginator/Icons.d.ts +5 -0
  184. package/paginator/Icons.js +25 -37
  185. package/paginator/Paginator.d.ts +4 -0
  186. package/paginator/Paginator.js +30 -172
  187. package/paginator/Paginator.stories.tsx +87 -0
  188. package/paginator/Paginator.test.js +305 -0
  189. package/paginator/types.d.ts +38 -0
  190. package/paginator/types.js +5 -0
  191. package/paragraph/Paragraph.d.ts +5 -0
  192. package/paragraph/Paragraph.js +38 -0
  193. package/paragraph/Paragraph.stories.tsx +44 -0
  194. package/password-input/PasswordInput.d.ts +4 -0
  195. package/password-input/PasswordInput.js +40 -77
  196. package/password-input/PasswordInput.stories.tsx +131 -0
  197. package/password-input/PasswordInput.test.js +181 -0
  198. package/password-input/types.d.ts +110 -0
  199. package/password-input/types.js +5 -0
  200. package/progress-bar/ProgressBar.d.ts +4 -0
  201. package/progress-bar/ProgressBar.js +76 -142
  202. package/progress-bar/ProgressBar.stories.jsx +93 -0
  203. package/progress-bar/ProgressBar.test.js +110 -0
  204. package/progress-bar/types.d.ts +37 -0
  205. package/progress-bar/types.js +5 -0
  206. package/quick-nav/QuickNav.d.ts +4 -0
  207. package/quick-nav/QuickNav.js +117 -0
  208. package/quick-nav/QuickNav.stories.tsx +356 -0
  209. package/quick-nav/types.d.ts +21 -0
  210. package/quick-nav/types.js +5 -0
  211. package/radio-group/Radio.d.ts +4 -0
  212. package/radio-group/Radio.js +156 -0
  213. package/radio-group/RadioGroup.d.ts +4 -0
  214. package/radio-group/RadioGroup.js +283 -0
  215. package/radio-group/RadioGroup.stories.tsx +214 -0
  216. package/radio-group/RadioGroup.test.js +722 -0
  217. package/radio-group/types.d.ts +114 -0
  218. package/radio-group/types.js +5 -0
  219. package/resultsetTable/Icons.d.ts +7 -0
  220. package/resultsetTable/Icons.js +51 -0
  221. package/resultsetTable/ResultsetTable.d.ts +4 -0
  222. package/resultsetTable/ResultsetTable.js +61 -224
  223. package/resultsetTable/ResultsetTable.stories.tsx +300 -0
  224. package/resultsetTable/ResultsetTable.test.js +325 -0
  225. package/resultsetTable/types.d.ts +67 -0
  226. package/resultsetTable/types.js +5 -0
  227. package/select/Icons.d.ts +10 -0
  228. package/select/Icons.js +93 -0
  229. package/select/Listbox.d.ts +4 -0
  230. package/select/Listbox.js +169 -0
  231. package/select/Option.d.ts +4 -0
  232. package/select/Option.js +97 -0
  233. package/select/Select.d.ts +4 -0
  234. package/select/Select.js +281 -751
  235. package/select/Select.stories.tsx +971 -0
  236. package/select/Select.test.js +2228 -0
  237. package/select/types.d.ts +210 -0
  238. package/select/types.js +5 -0
  239. package/sidenav/Icons.d.ts +7 -0
  240. package/sidenav/Icons.js +51 -0
  241. package/sidenav/Sidenav.d.ts +10 -0
  242. package/sidenav/Sidenav.js +155 -94
  243. package/sidenav/Sidenav.stories.tsx +282 -0
  244. package/sidenav/Sidenav.test.js +44 -0
  245. package/sidenav/types.d.ts +76 -0
  246. package/sidenav/types.js +5 -0
  247. package/slider/Slider.d.ts +4 -0
  248. package/slider/Slider.js +167 -229
  249. package/slider/Slider.stories.tsx +240 -0
  250. package/slider/Slider.test.js +250 -0
  251. package/slider/types.d.ts +86 -0
  252. package/slider/types.js +5 -0
  253. package/spinner/Spinner.d.ts +4 -0
  254. package/spinner/Spinner.js +57 -194
  255. package/spinner/Spinner.stories.jsx +129 -0
  256. package/spinner/Spinner.test.js +64 -0
  257. package/spinner/types.d.ts +32 -0
  258. package/spinner/types.js +5 -0
  259. package/switch/Switch.d.ts +4 -0
  260. package/switch/Switch.js +163 -123
  261. package/switch/Switch.stories.tsx +171 -0
  262. package/switch/Switch.test.js +225 -0
  263. package/switch/types.d.ts +66 -0
  264. package/switch/types.js +5 -0
  265. package/table/Table.d.ts +4 -0
  266. package/table/Table.js +14 -28
  267. package/table/Table.stories.jsx +356 -0
  268. package/table/Table.test.js +26 -0
  269. package/table/types.d.ts +21 -0
  270. package/table/types.js +5 -0
  271. package/tabs/Tab.d.ts +4 -0
  272. package/tabs/Tab.js +132 -0
  273. package/tabs/Tabs.d.ts +4 -0
  274. package/tabs/Tabs.js +351 -233
  275. package/tabs/Tabs.stories.tsx +226 -0
  276. package/tabs/Tabs.test.js +350 -0
  277. package/tabs/types.d.ts +92 -0
  278. package/tabs/types.js +5 -0
  279. package/tag/Tag.d.ts +4 -0
  280. package/tag/Tag.js +47 -148
  281. package/tag/Tag.stories.tsx +155 -0
  282. package/tag/Tag.test.js +60 -0
  283. package/tag/types.d.ts +69 -0
  284. package/tag/types.js +5 -0
  285. package/text-input/Icons.d.ts +8 -0
  286. package/text-input/Icons.js +60 -0
  287. package/text-input/Suggestion.d.ts +4 -0
  288. package/text-input/Suggestion.js +84 -0
  289. package/text-input/Suggestions.d.ts +4 -0
  290. package/text-input/Suggestions.js +134 -0
  291. package/text-input/TextInput.d.ts +4 -0
  292. package/text-input/TextInput.js +262 -579
  293. package/text-input/TextInput.stories.tsx +569 -0
  294. package/text-input/TextInput.test.js +1723 -0
  295. package/text-input/types.d.ts +197 -0
  296. package/text-input/types.js +5 -0
  297. package/textarea/Textarea.d.ts +4 -0
  298. package/textarea/Textarea.js +51 -144
  299. package/textarea/Textarea.stories.jsx +216 -0
  300. package/textarea/Textarea.test.js +435 -0
  301. package/textarea/types.d.ts +137 -0
  302. package/textarea/types.js +5 -0
  303. package/toggle-group/ToggleGroup.d.ts +4 -0
  304. package/toggle-group/ToggleGroup.js +42 -151
  305. package/toggle-group/ToggleGroup.stories.tsx +215 -0
  306. package/toggle-group/ToggleGroup.test.js +156 -0
  307. package/toggle-group/types.d.ts +105 -0
  308. package/toggle-group/types.js +5 -0
  309. package/typography/Typography.d.ts +4 -0
  310. package/typography/Typography.js +32 -0
  311. package/typography/Typography.stories.tsx +198 -0
  312. package/typography/types.d.ts +18 -0
  313. package/typography/types.js +5 -0
  314. package/useTheme.d.ts +1235 -0
  315. package/useTheme.js +3 -3
  316. package/useTranslatedLabels.d.ts +85 -0
  317. package/useTranslatedLabels.js +20 -0
  318. package/utils/BaseTypography.d.ts +21 -0
  319. package/utils/BaseTypography.js +108 -0
  320. package/utils/FocusLock.d.ts +13 -0
  321. package/utils/FocusLock.js +139 -0
  322. package/wizard/Wizard.d.ts +4 -0
  323. package/wizard/Wizard.js +134 -254
  324. package/wizard/Wizard.stories.tsx +253 -0
  325. package/wizard/Wizard.test.js +141 -0
  326. package/wizard/types.d.ts +64 -0
  327. package/wizard/types.js +5 -0
  328. package/ThemeContext.js +0 -250
  329. package/V3Select/V3Select.js +0 -549
  330. package/V3Select/index.d.ts +0 -27
  331. package/V3Textarea/V3Textarea.js +0 -264
  332. package/V3Textarea/index.d.ts +0 -27
  333. package/accordion/index.d.ts +0 -28
  334. package/accordion-group/index.d.ts +0 -16
  335. package/alert/index.d.ts +0 -51
  336. package/box/index.d.ts +0 -25
  337. package/button/Button.stories.js +0 -27
  338. package/button/index.d.ts +0 -24
  339. package/card/index.d.ts +0 -22
  340. package/checkbox/index.d.ts +0 -24
  341. package/chip/index.d.ts +0 -22
  342. package/common/RequiredComponent.js +0 -40
  343. package/date/Date.js +0 -379
  344. package/date/index.d.ts +0 -27
  345. package/date-input/index.d.ts +0 -95
  346. package/dialog/index.d.ts +0 -18
  347. package/dropdown/index.d.ts +0 -26
  348. package/file-input/index.d.ts +0 -81
  349. package/footer/index.d.ts +0 -25
  350. package/header/index.d.ts +0 -25
  351. package/heading/index.d.ts +0 -17
  352. package/input-text/Icons.js +0 -22
  353. package/input-text/InputText.js +0 -705
  354. package/input-text/index.d.ts +0 -36
  355. package/link/index.d.ts +0 -23
  356. package/number-input/index.d.ts +0 -113
  357. package/paginator/index.d.ts +0 -20
  358. package/password-input/index.d.ts +0 -94
  359. package/progress-bar/index.d.ts +0 -18
  360. package/radio/Radio.js +0 -209
  361. package/radio/index.d.ts +0 -23
  362. package/resultsetTable/index.d.ts +0 -19
  363. package/select/index.d.ts +0 -131
  364. package/sidenav/index.d.ts +0 -13
  365. package/slider/index.d.ts +0 -29
  366. package/spinner/index.d.ts +0 -17
  367. package/switch/index.d.ts +0 -24
  368. package/table/index.d.ts +0 -13
  369. package/tabs/index.d.ts +0 -19
  370. package/tag/index.d.ts +0 -24
  371. package/text-input/index.d.ts +0 -135
  372. package/textarea/index.d.ts +0 -117
  373. package/toggle/Toggle.js +0 -220
  374. package/toggle/index.d.ts +0 -21
  375. package/toggle-group/index.d.ts +0 -21
  376. package/upload/Upload.js +0 -205
  377. package/upload/buttons-upload/ButtonsUpload.js +0 -135
  378. package/upload/buttons-upload/Icons.js +0 -40
  379. package/upload/dragAndDropArea/DragAndDropArea.js +0 -329
  380. package/upload/dragAndDropArea/Icons.js +0 -39
  381. package/upload/file-upload/FileToUpload.js +0 -189
  382. package/upload/file-upload/Icons.js +0 -66
  383. package/upload/files-upload/FilesToUpload.js +0 -123
  384. package/upload/index.d.ts +0 -15
  385. package/upload/transaction/Icons.js +0 -160
  386. package/upload/transaction/Transaction.js +0 -148
  387. package/upload/transactions/Transactions.js +0 -138
  388. package/wizard/Icons.js +0 -65
  389. 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,379 +21,44 @@ var _react = _interopRequireWildcard(require("react"));
21
21
 
22
22
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
23
23
 
24
- var _useTheme = _interopRequireDefault(require("../useTheme.js"));
25
-
26
- var _variables = require("../common/variables.js");
27
-
28
- var _uuid = require("uuid");
29
-
30
- var _utils = require("../common/utils.js");
31
-
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"]);
96
-
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: calc(1rem * 0.25);\n"]);
126
-
127
- _templateObject19 = function _templateObject19() {
128
- return data;
129
- };
130
-
131
- return data;
132
- }
133
-
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"]);
136
-
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: calc(1rem * 0.25);\n ", "\n background-color: ", ";\n color: ", ";\n\n ", "\n\n svg {\n line-height: 18px;\n }\n"]);
156
-
157
- _templateObject16 = function _templateObject16() {
158
- return data;
159
- };
160
-
161
- return data;
162
- }
163
-
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: calc(1rem * 0.25);\n color: ", ";\n"]);
166
-
167
- _templateObject15 = function _templateObject15() {
168
- return data;
169
- };
170
-
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: ", ";\n font-style: ", ";\n font-weight: ", ";\n line-height: ", ";\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: calc(1rem * 0.25);\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(calc(1rem * 2.5) - calc(1px * 2));\n background: none;\n border: none;\n outline: none;\n padding: 0 calc(1rem * 0.5);\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(calc(1rem * 2.5) - calc(1px * 2));\n padding: 0 calc(1rem * 0.5);\n user-select: none;\n overflow: hidden;\n\n color: ", ";\n\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n line-height: 1.5em;\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
- }
24
+ var _useTheme = _interopRequireDefault(require("../useTheme"));
233
25
 
234
- function _templateObject8() {
235
- 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 padding: 3px;\n ", "\n background-color: ", ";\n color: ", ";\n\n :focus-visible {\n outline: none;\n }\n ", "\n\n svg {\n line-height: 18px;\n }\n"]);
26
+ var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
236
27
 
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: 24px;\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 width: 48px;\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(calc(1rem * 2.5) - calc(1px * 2));\n margin: calc(1rem * 0.25) 0;\n padding: 0 calc(1rem * 0.5);\n outline: none;\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"]);
28
+ var _variables = require("../common/variables");
276
29
 
277
- _templateObject4 = function _templateObject4() {
278
- return data;
279
- };
30
+ var _uuid = require("uuid");
280
31
 
281
- return data;
282
- }
32
+ var _utils = require("../common/utils");
283
33
 
284
- function _templateObject3() {
285
- var data = (0, _taggedTemplateLiteral2["default"])(["\n font-weight: ", ";\n"]);
34
+ var _Icons = _interopRequireDefault(require("./Icons"));
286
35
 
287
- _templateObject3 = function _templateObject3() {
288
- return data;
289
- };
36
+ var _Listbox = _interopRequireDefault(require("./Listbox"));
290
37
 
291
- return data;
292
- }
38
+ var Popover = _interopRequireWildcard(require("@radix-ui/react-popover"));
293
39
 
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"]);
40
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17;
296
41
 
297
- _templateObject2 = function _templateObject2() {
298
- return data;
299
- };
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); }
300
43
 
301
- return data;
302
- }
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; }
303
45
 
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,101 @@ 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;
417
85
 
418
- var _ref$label = _ref.label,
419
- label = _ref$label === void 0 ? "" : _ref$label,
86
+ return acc + ((_current$options = current.options) === null || _current$options === void 0 ? void 0 : _current$options.length);
87
+ };
88
+
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) && Array.isArray(selectedOption)) selectedOption.push(singleOption);
103
+ });
104
+ } else if (value.includes(option.value) && Array.isArray(selectedOption)) 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 useWidth = function useWidth(target) {
144
+ var _useState = (0, _react.useState)(0),
145
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
146
+ width = _useState2[0],
147
+ setWidth = _useState2[1];
148
+
149
+ (0, _react.useEffect)(function () {
150
+ if (target != null) {
151
+ setWidth(target.getBoundingClientRect().width);
152
+ var triggerObserver = new ResizeObserver(function (entries) {
153
+ var rect = entries[0].target.getBoundingClientRect();
154
+ setWidth(rect === null || rect === void 0 ? void 0 : rect.width);
155
+ });
156
+ triggerObserver.observe(target);
157
+ return function () {
158
+ triggerObserver.unobserve(target);
159
+ };
160
+ }
161
+ }, [target]);
162
+ return width;
163
+ };
164
+
165
+ var DxcSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
166
+ var _ref4, _selectedOption$label;
167
+
168
+ var label = _ref.label,
420
169
  _ref$name = _ref.name,
421
170
  name = _ref$name === void 0 ? "" : _ref$name,
171
+ defaultValue = _ref.defaultValue,
422
172
  value = _ref.value,
423
173
  options = _ref.options,
424
- _ref$helperText = _ref.helperText,
425
- helperText = _ref$helperText === void 0 ? "" : _ref$helperText,
174
+ helperText = _ref.helperText,
426
175
  _ref$placeholder = _ref.placeholder,
427
176
  placeholder = _ref$placeholder === void 0 ? "" : _ref$placeholder,
428
177
  _ref$disabled = _ref.disabled,
@@ -435,151 +184,65 @@ var DxcSelect = _react["default"].forwardRef(function (_ref, ref) {
435
184
  multiple = _ref$multiple === void 0 ? false : _ref$multiple,
436
185
  onChange = _ref.onChange,
437
186
  onBlur = _ref.onBlur,
438
- _ref$error = _ref.error,
439
- error = _ref$error === void 0 ? "" : _ref$error,
187
+ error = _ref.error,
440
188
  margin = _ref.margin,
441
189
  _ref$size = _ref.size,
442
190
  size = _ref$size === void 0 ? "medium" : _ref$size,
443
191
  _ref$tabIndex = _ref.tabIndex,
444
192
  tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
445
193
 
446
- var _useState = (0, _react.useState)("select-".concat((0, _uuid.v4)())),
447
- _useState2 = (0, _slicedToArray2["default"])(_useState, 1),
448
- selectId = _useState2[0];
194
+ var _useState3 = (0, _react.useState)("select-".concat((0, _uuid.v4)())),
195
+ _useState4 = (0, _slicedToArray2["default"])(_useState3, 1),
196
+ selectId = _useState4[0];
449
197
 
450
198
  var selectLabelId = "label-".concat(selectId);
199
+ var errorId = "error-".concat(selectId);
451
200
  var optionsListId = "".concat(selectId, "-listbox");
452
201
 
453
- var _useState3 = (0, _react.useState)(multiple ? [] : ""),
454
- _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
455
- innerValue = _useState4[0],
456
- setInnerValue = _useState4[1];
457
-
458
- var _useState5 = (0, _react.useState)(""),
202
+ var _useState5 = (0, _react.useState)(defaultValue !== null && defaultValue !== void 0 ? defaultValue : multiple ? [] : ""),
459
203
  _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
460
- searchValue = _useState6[0],
461
- setSearchValue = _useState6[1];
204
+ innerValue = _useState6[0],
205
+ setInnerValue = _useState6[1];
462
206
 
463
- var _useState7 = (0, _react.useState)(-1),
207
+ var _useState7 = (0, _react.useState)(""),
464
208
  _useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
465
- visualFocusIndex = _useState8[0],
466
- changeVisualFocusIndex = _useState8[1];
209
+ searchValue = _useState8[0],
210
+ setSearchValue = _useState8[1];
467
211
 
468
- var _useState9 = (0, _react.useState)(false),
212
+ var _useState9 = (0, _react.useState)(-1),
469
213
  _useState10 = (0, _slicedToArray2["default"])(_useState9, 2),
470
- isOpen = _useState10[0],
471
- changeIsOpen = _useState10[1];
214
+ visualFocusIndex = _useState10[0],
215
+ changeVisualFocusIndex = _useState10[1];
216
+
217
+ var _useState11 = (0, _react.useState)(false),
218
+ _useState12 = (0, _slicedToArray2["default"])(_useState11, 2),
219
+ isOpen = _useState12[0],
220
+ changeIsOpen = _useState12[1];
472
221
 
473
- var selectContainerRef = (0, _react.useRef)(null);
222
+ var selectRef = (0, _react.useRef)(null);
474
223
  var selectSearchInputRef = (0, _react.useRef)(null);
475
- var selectOptionsListRef = (0, _react.useRef)(null);
224
+ var width = useWidth(selectRef.current);
476
225
  var colorsTheme = (0, _useTheme["default"])();
477
- var optionalEmptyOption = {
226
+ var translatedLabels = (0, _useTranslatedLabels["default"])();
227
+ var optionalItem = {
478
228
  label: placeholder,
479
229
  value: ""
480
230
  };
481
231
  var filteredOptions = (0, _react.useMemo)(function () {
482
232
  return filterOptionsBySearchValue(options, searchValue);
483
233
  }, [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
234
  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
- };
235
+ return getLastOptionIndex(options, filteredOptions, searchable, optional, multiple);
236
+ }, [options, filteredOptions, searchable, optional, multiple]);
548
237
 
549
238
  var _useMemo = (0, _react.useMemo)(function () {
550
- return getSelectedOption();
551
- }, [options, multiple, value, innerValue]),
239
+ return getSelectedOption(value !== null && value !== void 0 ? value : innerValue, options, multiple, optional, optionalItem);
240
+ }, [value, innerValue, options, multiple, optional, optionalItem]),
552
241
  selectedOption = _useMemo.selectedOption,
553
242
  singleSelectionIndex = _useMemo.singleSelectionIndex;
554
243
 
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
244
  var openOptions = function openOptions() {
582
- if (!isOpen && canBeOpenOptions()) changeIsOpen(true);
245
+ if (!isOpen && canOpenOptions(options, disabled)) changeIsOpen(true);
583
246
  };
584
247
 
585
248
  var closeOptions = function closeOptions() {
@@ -590,36 +253,23 @@ var DxcSelect = _react["default"].forwardRef(function (_ref, ref) {
590
253
  };
591
254
 
592
255
  var handleSelectChangeValue = function handleSelectChangeValue(newOption) {
256
+ var newValue;
257
+
593
258
  if (multiple) {
594
- var _res, _res2;
259
+ var _ref2, _ref3;
595
260
 
596
- var res;
597
- if ((value !== null && value !== void 0 ? value : innerValue).includes(newOption.value)) value ? res = value.filter(function (optionVal) {
261
+ if ((value !== null && value !== void 0 ? value : innerValue).includes(newOption.value)) newValue = ((_ref2 = value && Array.isArray(value) && value) !== null && _ref2 !== void 0 ? _ref2 : innerValue && Array.isArray(innerValue) && innerValue).filter(function (optionVal) {
598
262
  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
- }
263
+ });else newValue = [].concat((0, _toConsumableArray2["default"])((_ref3 = value && Array.isArray(value) && value) !== null && _ref3 !== void 0 ? _ref3 : innerValue && Array.isArray(innerValue) && innerValue), [newOption.value]);
264
+ } else newValue = newOption.value;
265
+
266
+ value !== null && value !== void 0 ? value : setInnerValue(newValue);
267
+ notOptionalCheck(newValue, multiple, optional) ? onChange === null || onChange === void 0 ? void 0 : onChange({
268
+ value: newValue,
269
+ error: translatedLabels.formFields.requiredValueErrorMessage
270
+ }) : onChange === null || onChange === void 0 ? void 0 : onChange({
271
+ value: newValue
272
+ });
623
273
  };
624
274
 
625
275
  var handleSelectOnClick = function handleSelectOnClick() {
@@ -640,20 +290,20 @@ var DxcSelect = _react["default"].forwardRef(function (_ref, ref) {
640
290
  if (!event.currentTarget.contains(event.relatedTarget)) {
641
291
  closeOptions();
642
292
  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
293
+ var currentValue = value !== null && value !== void 0 ? value : innerValue;
294
+ notOptionalCheck(currentValue, multiple, optional) ? onBlur === null || onBlur === void 0 ? void 0 : onBlur({
295
+ value: currentValue,
296
+ error: translatedLabels.formFields.requiredValueErrorMessage
297
+ }) : onBlur === null || onBlur === void 0 ? void 0 : onBlur({
298
+ value: currentValue
649
299
  });
650
300
  }
651
301
  };
652
302
 
653
303
  var handleSelectOnKeyDown = function handleSelectOnKeyDown(event) {
654
- switch (event.keyCode) {
655
- case 40:
656
- // Arrow Down
304
+ switch (event.key) {
305
+ case "Down":
306
+ case "ArrowDown":
657
307
  event.preventDefault();
658
308
  singleSelectionIndex !== undefined && (!isOpen || visualFocusIndex === -1 && singleSelectionIndex > -1 && singleSelectionIndex <= lastOptionIndex) ? changeVisualFocusIndex(singleSelectionIndex) : changeVisualFocusIndex(function (visualFocusIndex) {
659
309
  if (visualFocusIndex < lastOptionIndex) return visualFocusIndex + 1;else if (visualFocusIndex === lastOptionIndex) return 0;
@@ -661,8 +311,8 @@ var DxcSelect = _react["default"].forwardRef(function (_ref, ref) {
661
311
  openOptions();
662
312
  break;
663
313
 
664
- case 38:
665
- // Arrow Up
314
+ case "Up":
315
+ case "ArrowUp":
666
316
  event.preventDefault();
667
317
  singleSelectionIndex !== undefined && (!isOpen || visualFocusIndex === -1 && singleSelectionIndex > -1 && singleSelectionIndex <= lastOptionIndex) ? changeVisualFocusIndex(singleSelectionIndex) : changeVisualFocusIndex(function (visualFocusIndex) {
668
318
  return visualFocusIndex === 0 || visualFocusIndex === -1 ? lastOptionIndex : visualFocusIndex - 1;
@@ -670,21 +320,20 @@ var DxcSelect = _react["default"].forwardRef(function (_ref, ref) {
670
320
  openOptions();
671
321
  break;
672
322
 
673
- case 27:
674
- // Esc
323
+ case "Esc":
324
+ case "Escape":
675
325
  event.preventDefault();
676
326
  closeOptions();
677
327
  setSearchValue("");
678
328
  break;
679
329
 
680
- case 13:
681
- // Enter
330
+ case "Enter":
682
331
  if (isOpen && visualFocusIndex >= 0) {
683
332
  var accLength = optional && !multiple ? 1 : 0;
684
333
 
685
334
  if (searchable) {
686
335
  if (filteredOptions.length > 0) {
687
- if (optional && !multiple && visualFocusIndex === 0 && filteredGroupsHaveOptions()) handleSelectChangeValue(optionalEmptyOption);else filteredOptions[0].options ? filteredGroupsHaveOptions() && filteredOptions.some(function (groupOption) {
336
+ if (optional && !multiple && visualFocusIndex === 0 && filteredGroupsHaveOptions(filteredOptions)) handleSelectChangeValue(optionalItem);else filteredOptions[0].options ? filteredGroupsHaveOptions(filteredOptions) && filteredOptions.some(function (groupOption) {
688
337
  var groupLength = accLength + groupOption.options.length;
689
338
  groupLength > visualFocusIndex && handleSelectChangeValue(groupOption.options[visualFocusIndex - accLength]);
690
339
  accLength = groupLength;
@@ -692,7 +341,7 @@ var DxcSelect = _react["default"].forwardRef(function (_ref, ref) {
692
341
  }) : handleSelectChangeValue(filteredOptions[visualFocusIndex - accLength]);
693
342
  }
694
343
  } else {
695
- if (optional && !multiple && visualFocusIndex === 0) handleSelectChangeValue(optionalEmptyOption);else options[0].options ? options.some(function (groupOption) {
344
+ if (optional && !multiple && visualFocusIndex === 0) handleSelectChangeValue(optionalItem);else options[0].options ? options.some(function (groupOption) {
696
345
  var groupLength = accLength + groupOption.options.length;
697
346
  groupLength > visualFocusIndex && handleSelectChangeValue(groupOption.options[visualFocusIndex - accLength]);
698
347
  accLength = groupLength;
@@ -717,9 +366,11 @@ var DxcSelect = _react["default"].forwardRef(function (_ref, ref) {
717
366
  var handleClearOptionsActionOnClick = function handleClearOptionsActionOnClick(event) {
718
367
  event.stopPropagation();
719
368
  value !== null && value !== void 0 ? value : setInnerValue([]);
720
- onChange === null || onChange === void 0 ? void 0 : onChange({
369
+ !optional ? onChange === null || onChange === void 0 ? void 0 : onChange({
721
370
  value: [],
722
- error: getNotOptionalErrorMessage()
371
+ error: translatedLabels.formFields.requiredValueErrorMessage
372
+ }) : onChange === null || onChange === void 0 ? void 0 : onChange({
373
+ value: []
723
374
  });
724
375
  };
725
376
 
@@ -728,107 +379,32 @@ var DxcSelect = _react["default"].forwardRef(function (_ref, ref) {
728
379
  setSearchValue("");
729
380
  };
730
381
 
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
- option: option,
812
- index: global_index
813
- });
814
- }
815
- };
816
-
817
- return _react["default"].createElement(_styledComponents.ThemeProvider, {
382
+ var handleOptionOnClick = (0, _react.useCallback)(function (option) {
383
+ handleSelectChangeValue(option);
384
+ !multiple && closeOptions();
385
+ setSearchValue("");
386
+ }, [handleSelectChangeValue, closeOptions, multiple]);
387
+ return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
818
388
  theme: colorsTheme.select
819
- }, _react["default"].createElement(SelectContainer, {
389
+ }, /*#__PURE__*/_react["default"].createElement(SelectContainer, {
820
390
  margin: margin,
821
391
  size: size,
822
392
  ref: ref
823
- }, _react["default"].createElement(Label, {
393
+ }, label && /*#__PURE__*/_react["default"].createElement(Label, {
824
394
  id: selectLabelId,
825
395
  disabled: disabled,
826
396
  onClick: function onClick() {
827
- selectContainerRef.current.focus();
828
- }
829
- }, label, " ", optional && _react["default"].createElement(OptionalLabel, null, "(Optional)")), _react["default"].createElement(HelperText, {
397
+ selectRef.current.focus();
398
+ },
399
+ helperText: helperText
400
+ }, label, " ", optional && /*#__PURE__*/_react["default"].createElement(OptionalLabel, null, translatedLabels.formFields.optionalLabel)), helperText && /*#__PURE__*/_react["default"].createElement(HelperText, {
830
401
  disabled: disabled
831
- }, helperText), _react["default"].createElement(Select, {
402
+ }, helperText), /*#__PURE__*/_react["default"].createElement(Popover.Root, {
403
+ open: isOpen
404
+ }, /*#__PURE__*/_react["default"].createElement(Popover.Trigger, {
405
+ asChild: true,
406
+ type: undefined
407
+ }, /*#__PURE__*/_react["default"].createElement(Select, {
832
408
  id: selectId,
833
409
  disabled: disabled,
834
410
  error: error,
@@ -836,19 +412,21 @@ var DxcSelect = _react["default"].forwardRef(function (_ref, ref) {
836
412
  onClick: handleSelectOnClick,
837
413
  onFocus: handleSelectOnFocus,
838
414
  onKeyDown: handleSelectOnKeyDown,
839
- ref: selectContainerRef,
840
- tabIndex: tabIndex,
415
+ ref: selectRef,
416
+ tabIndex: disabled ? -1 : tabIndex,
841
417
  role: "combobox",
842
418
  "aria-controls": optionsListId,
843
- "aria-expanded": isOpen ? "true" : "false",
419
+ "aria-disabled": disabled,
420
+ "aria-expanded": isOpen,
844
421
  "aria-haspopup": "listbox",
845
- "aria-labelledby": selectLabelId,
422
+ "aria-labelledby": label ? selectLabelId : undefined,
846
423
  "aria-activedescendant": visualFocusIndex >= 0 ? "option-".concat(visualFocusIndex) : undefined,
847
- "aria-invalid": error ? "true" : "false",
848
- "aria-required": optional ? "false" : "true"
849
- }, multiple && selectedOption.length > 0 && _react["default"].createElement(SelectionIndicator, null, _react["default"].createElement(SelectionNumber, {
424
+ "aria-invalid": error ? true : false,
425
+ "aria-errormessage": error ? errorId : undefined,
426
+ "aria-required": !disabled && !optional
427
+ }, multiple && Array.isArray(selectedOption) && selectedOption.length > 0 && /*#__PURE__*/_react["default"].createElement(SelectionIndicator, null, /*#__PURE__*/_react["default"].createElement(SelectionNumber, {
850
428
  disabled: disabled
851
- }, selectedOption.length, " "), _react["default"].createElement(ClearOptionsAction, {
429
+ }, selectedOption.length), /*#__PURE__*/_react["default"].createElement(ClearOptionsAction, {
852
430
  disabled: disabled,
853
431
  onMouseDown: function onMouseDown(event) {
854
432
  // Avoid input to lose focus when pressed
@@ -856,55 +434,69 @@ var DxcSelect = _react["default"].forwardRef(function (_ref, ref) {
856
434
  },
857
435
  onClick: handleClearOptionsActionOnClick,
858
436
  tabIndex: -1,
859
- title: "Clear selected options",
860
- "aria-label": "Clear selected options"
861
- }, selectIcons.clear)), _react["default"].createElement(SearchableValueContainer, null, _react["default"].createElement(ValueInput, {
437
+ title: translatedLabels.select.actionClearSelectionTitle,
438
+ "aria-label": translatedLabels.select.actionClearSelectionTitle
439
+ }, _Icons["default"].clear)), /*#__PURE__*/_react["default"].createElement(SearchableValueContainer, null, /*#__PURE__*/_react["default"].createElement(ValueInput, {
862
440
  name: name,
863
- value: multiple ? (value !== null && value !== void 0 ? value : innerValue).join(", ") : value !== null && value !== void 0 ? value : innerValue,
441
+ disabled: disabled,
442
+ value: multiple ? ((_ref4 = value && Array.isArray(value) && value) !== null && _ref4 !== void 0 ? _ref4 : innerValue && Array.isArray(innerValue) && innerValue).join(",") : value !== null && value !== void 0 ? value : innerValue,
864
443
  readOnly: true,
865
444
  "aria-hidden": "true"
866
- }), searchable && _react["default"].createElement(SearchInput, {
445
+ }), searchable && /*#__PURE__*/_react["default"].createElement(SearchInput, {
867
446
  value: searchValue,
868
447
  disabled: disabled,
869
448
  onChange: handleSearchIOnChange,
870
449
  ref: selectSearchInputRef,
871
- autoComplete: "off",
872
- autoCorrect: "off"
873
- }), (!searchable || searchValue === "") && (multiple ? _react["default"].createElement(SelectedOption, {
450
+ autoComplete: "nope",
451
+ autoCorrect: "nope",
452
+ size: 1
453
+ }), (!searchable || searchValue === "") && (multiple ? /*#__PURE__*/_react["default"].createElement(SelectedOption, {
874
454
  disabled: disabled,
875
- atBackground: (value !== null && value !== void 0 ? value : innerValue).length === 0 || isOpen
876
- }, _react["default"].createElement(OptionLabel, null, selectedOption.map(function (option) {
455
+ atBackground: (value !== null && value !== void 0 ? value : innerValue).length === 0 || searchable && isOpen
456
+ }, /*#__PURE__*/_react["default"].createElement(SelectedOptionLabel, null, Array.isArray(selectedOption) && selectedOption.map(function (option) {
877
457
  return option.label;
878
- }).join(", ")), selectedOption.length === 0 && placeholder) : _react["default"].createElement(SelectedOption, {
458
+ }).join(", ")), Array.isArray(selectedOption) && selectedOption.length === 0 && placeholder) : /*#__PURE__*/_react["default"].createElement(SelectedOption, {
879
459
  disabled: disabled,
880
- atBackground: !(value !== null && value !== void 0 ? value : innerValue) || isOpen
881
- }, _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, {
460
+ atBackground: !(value !== null && value !== void 0 ? value : innerValue) || searchable && isOpen
461
+ }, /*#__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, {
882
462
  onMouseDown: function onMouseDown(event) {
883
463
  // Avoid input to lose focus
884
464
  event.preventDefault();
885
465
  },
886
466
  onClick: handleClearSearchActionOnClick,
887
467
  tabIndex: -1,
888
- title: "Clear search text",
889
- "aria-label": "Clear search text"
890
- }, selectIcons.clear), _react["default"].createElement(CollapseIndicator, {
468
+ title: translatedLabels.select.actionClearSearchTitle,
469
+ "aria-label": translatedLabels.select.actionClearSearchTitle
470
+ }, _Icons["default"].clear), /*#__PURE__*/_react["default"].createElement(CollapseIndicator, {
891
471
  disabled: disabled
892
- }, isOpen ? selectIcons.arrowUp : selectIcons.arrowDown), isOpen && _react["default"].createElement(OptionsList, {
893
- id: optionsListId,
894
- onClick: function onClick(event) {
895
- event.stopPropagation();
896
- },
897
- onMouseDown: function onMouseDown(event) {
472
+ }, isOpen ? _Icons["default"].arrowUp : _Icons["default"].arrowDown))), /*#__PURE__*/_react["default"].createElement(Popover.Content, {
473
+ sideOffset: 4,
474
+ onOpenAutoFocus: function onOpenAutoFocus(event) {
475
+ // Avoid select to lose focus when the list is opened
898
476
  event.preventDefault();
899
477
  },
900
- ref: selectOptionsListRef,
901
- role: "listbox",
902
- "aria-labelledby": selectLabelId,
903
- "aria-multiselectable": multiple ? "true" : "false"
904
- }, 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, {
905
- option: optionalEmptyOption,
906
- index: 0
907
- }), searchable ? filteredOptions.map(mapOptionFunc) : options.map(mapOptionFunc))), !disabled && _react["default"].createElement(Error, null, error)));
478
+ onCloseAutoFocus: function onCloseAutoFocus(event) {
479
+ // Avoid select to lose focus when the list is closed
480
+ event.preventDefault();
481
+ }
482
+ }, /*#__PURE__*/_react["default"].createElement(_Listbox["default"], {
483
+ id: optionsListId,
484
+ currentValue: value !== null && value !== void 0 ? value : innerValue,
485
+ options: searchable ? filteredOptions : options,
486
+ visualFocusIndex: visualFocusIndex,
487
+ lastOptionIndex: lastOptionIndex,
488
+ multiple: multiple,
489
+ optional: optional,
490
+ optionalItem: optionalItem,
491
+ searchable: searchable,
492
+ handleOptionOnClick: handleOptionOnClick,
493
+ styles: {
494
+ width: width
495
+ }
496
+ }))), !disabled && typeof error === "string" && /*#__PURE__*/_react["default"].createElement(Error, {
497
+ id: errorId,
498
+ "aria-live": error ? "assertive" : "off"
499
+ }, error)));
908
500
  });
909
501
 
910
502
  var sizes = {
@@ -918,7 +510,7 @@ var calculateWidth = function calculateWidth(margin, size) {
918
510
  return size === "fillParent" ? "calc(".concat(sizes[size], " - ").concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")") : sizes[size];
919
511
  };
920
512
 
921
- var SelectContainer = _styledComponents["default"].div(_templateObject(), function (props) {
513
+ 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) {
922
514
  return calculateWidth(props.margin, props.size);
923
515
  }, function (props) {
924
516
  return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
@@ -932,7 +524,7 @@ var SelectContainer = _styledComponents["default"].div(_templateObject(), functi
932
524
  return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
933
525
  });
934
526
 
935
- var Label = _styledComponents["default"].span(_templateObject2(), function (props) {
527
+ 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) {
936
528
  return props.disabled ? props.theme.disabledColor : props.theme.labelFontColor;
937
529
  }, function (props) {
938
530
  return props.theme.fontFamily;
@@ -944,13 +536,15 @@ var Label = _styledComponents["default"].span(_templateObject2(), function (prop
944
536
  return props.theme.labelFontWeight;
945
537
  }, function (props) {
946
538
  return props.theme.labelLineHeight;
539
+ }, function (props) {
540
+ return !props.helperText && "margin-bottom: 0.25rem";
947
541
  });
948
542
 
949
- var OptionalLabel = _styledComponents["default"].span(_templateObject3(), function (props) {
543
+ var OptionalLabel = _styledComponents["default"].span(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n font-weight: ", ";\n"])), function (props) {
950
544
  return props.theme.optionalLabelFontWeight;
951
545
  });
952
546
 
953
- var HelperText = _styledComponents["default"].span(_templateObject4(), function (props) {
547
+ 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) {
954
548
  return props.disabled ? props.theme.disabledColor : props.theme.helperTextFontColor;
955
549
  }, function (props) {
956
550
  return props.theme.fontFamily;
@@ -964,7 +558,9 @@ var HelperText = _styledComponents["default"].span(_templateObject4(), function
964
558
  return props.theme.helperTextLineHeight;
965
559
  });
966
560
 
967
- var Select = _styledComponents["default"].div(_templateObject5(), function (props) {
561
+ 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) {
562
+ return props.disabled && "background-color: ".concat(props.theme.disabledInputBackgroundColor);
563
+ }, function (props) {
968
564
  return props.disabled ? props.theme.disabledInputBorderColor : props.theme.enabledInputBorderColor;
969
565
  }, function (props) {
970
566
  return props.error && !props.disabled && "border-color: transparent;\n box-shadow: 0 0 0 2px ".concat(props.theme.errorInputBorderColor, ";\n ");
@@ -974,12 +570,12 @@ var Select = _styledComponents["default"].div(_templateObject5(), function (prop
974
570
  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 ");
975
571
  });
976
572
 
977
- var SelectionIndicator = _styledComponents["default"].span(_templateObject6(), function (props) {
573
+ 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) {
978
574
  return props.theme.selectionIndicatorBorderColor;
979
575
  });
980
576
 
981
- var SelectionNumber = _styledComponents["default"].span(_templateObject7(), function (props) {
982
- return props.theme.selectionIndicatorBackgroundColor;
577
+ 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) {
578
+ return !props.disabled && "background-color: ".concat(props.theme.selectionIndicatorBackgroundColor);
983
579
  }, function (props) {
984
580
  return props.theme.selectionIndicatorBorderColor;
985
581
  }, function (props) {
@@ -996,21 +592,19 @@ var SelectionNumber = _styledComponents["default"].span(_templateObject7(), func
996
592
  return props.disabled ? "cursor: not-allowed;" : "cursor: default;";
997
593
  });
998
594
 
999
- var ClearOptionsAction = _styledComponents["default"].button(_templateObject8(), function (props) {
1000
- return props.theme.fontFamily;
1001
- }, function (props) {
595
+ 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) {
1002
596
  return props.disabled ? "cursor: not-allowed;" : "cursor: pointer;";
1003
597
  }, function (props) {
1004
- return props.theme.enabledSelectionIndicatorActionBackgroundColor;
598
+ return props.disabled ? "transparent" : props.theme.enabledSelectionIndicatorActionBackgroundColor;
1005
599
  }, function (props) {
1006
600
  return props.disabled ? props.theme.disabledColor : props.theme.enabledSelectionIndicatorActionIconColor;
1007
601
  }, function (props) {
1008
602
  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 ");
1009
603
  });
1010
604
 
1011
- var SearchableValueContainer = _styledComponents["default"].div(_templateObject9());
605
+ var SearchableValueContainer = _styledComponents["default"].div(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])(["\n display: grid;\n width: 100%;\n"])));
1012
606
 
1013
- var SelectedOption = _styledComponents["default"].span(_templateObject10(), function (props) {
607
+ 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) {
1014
608
  if (props.disabled) return props.theme.disabledColor;else if (props.atBackground) return props.theme.placeholderFontColor;else return props.theme.valueFontColor;
1015
609
  }, function (props) {
1016
610
  return props.theme.fontFamily;
@@ -1022,9 +616,11 @@ var SelectedOption = _styledComponents["default"].span(_templateObject10(), func
1022
616
  return props.theme.valueFontWeight;
1023
617
  });
1024
618
 
1025
- var ValueInput = _styledComponents["default"].input(_templateObject11());
619
+ var SelectedOptionLabel = _styledComponents["default"].span(_templateObject11 || (_templateObject11 = (0, _taggedTemplateLiteral2["default"])(["\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n"])));
620
+
621
+ var ValueInput = _styledComponents["default"].input(_templateObject12 || (_templateObject12 = (0, _taggedTemplateLiteral2["default"])(["\n display: none;\n"])));
1026
622
 
1027
- var SearchInput = _styledComponents["default"].input(_templateObject12(), function (props) {
623
+ 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) {
1028
624
  return props.disabled ? props.theme.disabledColor : props.theme.valueFontColor;
1029
625
  }, function (props) {
1030
626
  return props.theme.fontFamily;
@@ -1036,100 +632,34 @@ var SearchInput = _styledComponents["default"].input(_templateObject12(), functi
1036
632
  return props.theme.valueFontWeight;
1037
633
  });
1038
634
 
1039
- var ErrorIcon = _styledComponents["default"].span(_templateObject13(), function (props) {
1040
- return props.theme.errorColor;
635
+ 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) {
636
+ return props.theme.errorIconColor;
1041
637
  });
1042
638
 
1043
- var Error = _styledComponents["default"].span(_templateObject14(), function (props) {
1044
- return props.theme.errorColor;
639
+ 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) {
640
+ return props.theme.errorMessageColor;
1045
641
  }, function (props) {
1046
642
  return props.theme.fontFamily;
1047
- }, function (props) {
1048
- return props.theme.errorMessageFontSize;
1049
- }, function (props) {
1050
- return props.theme.errorMessagetFontStyle;
1051
- }, function (props) {
1052
- return props.theme.errorMessageFontWeight;
1053
- }, function (props) {
1054
- return props.theme.errorMessagetLineHeight;
1055
643
  });
1056
644
 
1057
- var CollapseIndicator = _styledComponents["default"].span(_templateObject15(), function (props) {
645
+ 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) {
1058
646
  return props.disabled ? props.theme.disabledColor : props.theme.collapseIndicatorColor;
1059
647
  });
1060
648
 
1061
- var ClearSearchAction = _styledComponents["default"].button(_templateObject16(), function (props) {
649
+ 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) {
1062
650
  return props.theme.fontFamily;
1063
651
  }, function (props) {
1064
- return props.disabled ? "cursor: not-allowed;" : "cursor: pointer;";
652
+ return props.theme.actionBackgroundColor;
1065
653
  }, function (props) {
1066
- return props.disabled ? props.theme.disabledActionBackgroundColor : props.theme.actionBackgroundColor;
654
+ return props.theme.actionIconColor;
1067
655
  }, function (props) {
1068
- return props.disabled ? props.theme.disabledColor : props.theme.actionIconColor;
656
+ return props.theme.hoverActionBackgroundColor;
1069
657
  }, function (props) {
1070
- return !props.disabled && "\n &:hover {\n background-color: ".concat(props.theme.hoverActionBackgroundColor, ";\n color: ").concat(props.theme.hoverActionIconColor, ";\n }\n &:active {\n background-color: ").concat(props.theme.activeActionBackgroundColor, ";\n color: ").concat(props.theme.activeActionIconColor, ";\n }\n ");
1071
- });
1072
-
1073
- var OptionsList = _styledComponents["default"].ul(_templateObject17(), function (props) {
1074
- return props.theme.itemListBackgroundColor;
658
+ return props.theme.hoverActionIconColor;
1075
659
  }, function (props) {
1076
- return props.theme.itemListBorderColor;
660
+ return props.theme.activeActionBackgroundColor;
1077
661
  }, function (props) {
1078
- return props.theme.listItemFontColor;
1079
- }, function (props) {
1080
- return props.theme.fontFamily;
1081
- }, function (props) {
1082
- return props.theme.listItemFontSize;
1083
- }, function (props) {
1084
- return props.theme.listItemFontStyle;
1085
- }, function (props) {
1086
- return props.theme.listItemFontWeight;
1087
- });
1088
-
1089
- var OptionsSystemMessage = _styledComponents["default"].span(_templateObject18(), function (props) {
1090
- return props.theme.systemMessageFontColor;
1091
- });
1092
-
1093
- var NoMatchesFoundIcon = _styledComponents["default"].span(_templateObject19());
1094
-
1095
- var GroupList = _styledComponents["default"].ul(_templateObject20());
1096
-
1097
- var GroupLabel = _styledComponents["default"].li(_templateObject21(), function (props) {
1098
- return props.theme.listGroupItemFontWeight;
1099
- });
1100
-
1101
- var OptionItem = _styledComponents["default"].li(_templateObject22(), function (props) {
1102
- return props.visualFocused && "box-shadow: inset 0 0 0 2px ".concat(props.theme.focusListItemBorderColor, ";");
1103
- }, function (props) {
1104
- return props.selected && "background-color: ".concat(props.theme.selectedListItemBackgroundColor);
1105
- }, function (props) {
1106
- return props.selected ? "background-color: ".concat(props.theme.selectedHoverListItemBackgroundColor, ";") : "background-color: ".concat(props.theme.unselectedHoverListItemBackgroundColor, ";");
1107
- }, function (props) {
1108
- return props.selected ? "background-color: ".concat(props.theme.selectedActiveListItemBackgroundColor, ";") : "background-color: ".concat(props.theme.unselectedActiveListItemBackgroundColor, ";");
1109
- });
1110
-
1111
- var StyledOption = _styledComponents["default"].span(_templateObject23(), function (props) {
1112
- return props.grouped && props.multiple && "padding-left: 16px;";
1113
- }, function (props) {
1114
- return props.last || props.visualFocused || props.selected ? "border-bottom: 1px solid transparent" : "border-bottom: 1px solid ".concat(props.theme.listItemDividerColor);
1115
- });
1116
-
1117
- var OptionContent = _styledComponents["default"].span(_templateObject24(), function (props) {
1118
- return props.grouped && !props.multiple && !props.hasIcon ? "padding-left: 16px;" : "padding-left: 8px;";
1119
- });
1120
-
1121
- var OptionIcon = _styledComponents["default"].span(_templateObject25(), function (props) {
1122
- return props.grouped && !props.multiple ? "padding-left: 16px;" : "padding-left: 8px;";
1123
- }, function (props) {
1124
- return props.theme.listItemIconColor;
1125
- });
1126
-
1127
- var OptionIconImg = _styledComponents["default"].img(_templateObject26());
1128
-
1129
- var OptionLabel = _styledComponents["default"].span(_templateObject27());
1130
-
1131
- var OptionSelectedIndicator = _styledComponents["default"].span(_templateObject28(), function (props) {
1132
- return props.theme.selectedListItemIconColor;
662
+ return props.theme.activeActionIconColor;
1133
663
  });
1134
664
 
1135
665
  var _default = DxcSelect;