@dxc-technology/halstack-react 0.0.0-c9b5c13 → 0.0.0-c9efd3e

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