@dxc-technology/halstack-react 0.0.0-7ffdc43 → 0.0.0-816f33d

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