@dxc-technology/halstack-react 0.0.0-c291a0c → 0.0.0-c293b72

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