@dxc-technology/halstack-react 0.0.0-8c5a0f7 → 0.0.0-8d625da

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