@dxc-technology/halstack-react 0.0.0-b0ab1e3 → 0.0.0-b0ec7b9

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 (527) hide show
  1. package/BackgroundColorContext.d.ts +1 -10
  2. package/BackgroundColorContext.js +5 -22
  3. package/HalstackContext.d.ts +1276 -6
  4. package/HalstackContext.js +191 -114
  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 +101 -159
  10. package/accordion/Accordion.stories.tsx +82 -148
  11. package/accordion/Accordion.test.d.ts +1 -0
  12. package/accordion/Accordion.test.js +24 -40
  13. package/accordion/types.d.ts +6 -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 +2 -2
  17. package/accordion-group/AccordionGroup.js +31 -98
  18. package/accordion-group/AccordionGroup.stories.tsx +94 -67
  19. package/accordion-group/AccordionGroup.test.d.ts +1 -0
  20. package/accordion-group/AccordionGroup.test.js +49 -106
  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 +12 -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/bar-chart/BarChart.d.ts +4 -0
  50. package/bar-chart/BarChart.js +152 -0
  51. package/bar-chart/BarChart.stories.tsx +281 -0
  52. package/bar-chart/BarChart.test.d.ts +1 -0
  53. package/bar-chart/BarChart.test.js +194 -0
  54. package/bar-chart/theme.d.ts +3 -0
  55. package/bar-chart/theme.js +31 -0
  56. package/bar-chart/types.d.ts +118 -0
  57. package/bleed/Bleed.js +14 -55
  58. package/bleed/Bleed.stories.tsx +95 -96
  59. package/bleed/types.d.ts +2 -2
  60. package/box/Box.accessibility.test.d.ts +1 -0
  61. package/box/Box.accessibility.test.js +33 -0
  62. package/box/Box.d.ts +1 -1
  63. package/box/Box.js +30 -81
  64. package/box/Box.stories.tsx +38 -51
  65. package/box/Box.test.d.ts +1 -0
  66. package/box/Box.test.js +1 -6
  67. package/box/types.d.ts +3 -14
  68. package/breadcrumbs/Breadcrumbs.accessibility.test.d.ts +1 -0
  69. package/breadcrumbs/Breadcrumbs.accessibility.test.js +96 -0
  70. package/breadcrumbs/Breadcrumbs.d.ts +4 -0
  71. package/breadcrumbs/Breadcrumbs.js +79 -0
  72. package/breadcrumbs/Breadcrumbs.stories.tsx +194 -0
  73. package/breadcrumbs/Breadcrumbs.test.d.ts +1 -0
  74. package/breadcrumbs/Breadcrumbs.test.js +168 -0
  75. package/breadcrumbs/Item.d.ts +4 -0
  76. package/breadcrumbs/Item.js +52 -0
  77. package/breadcrumbs/dropdownTheme.d.ts +53 -0
  78. package/breadcrumbs/dropdownTheme.js +62 -0
  79. package/breadcrumbs/types.d.ts +40 -0
  80. package/bulleted-list/BulletedList.accessibility.test.d.ts +1 -0
  81. package/bulleted-list/BulletedList.accessibility.test.js +119 -0
  82. package/bulleted-list/BulletedList.d.ts +7 -0
  83. package/bulleted-list/BulletedList.js +92 -0
  84. package/bulleted-list/BulletedList.stories.tsx +115 -0
  85. package/bulleted-list/types.d.ts +38 -0
  86. package/button/Button.accessibility.test.d.ts +1 -0
  87. package/button/Button.accessibility.test.js +127 -0
  88. package/button/Button.d.ts +1 -1
  89. package/button/Button.js +64 -115
  90. package/button/Button.stories.tsx +151 -100
  91. package/button/Button.test.d.ts +1 -0
  92. package/button/Button.test.js +19 -16
  93. package/button/types.d.ts +12 -8
  94. package/card/Card.accessibility.test.d.ts +1 -0
  95. package/card/Card.accessibility.test.js +36 -0
  96. package/card/Card.d.ts +1 -1
  97. package/card/Card.js +65 -107
  98. package/card/Card.stories.tsx +13 -43
  99. package/card/Card.test.d.ts +1 -0
  100. package/card/Card.test.js +10 -21
  101. package/card/types.d.ts +6 -11
  102. package/checkbox/Checkbox.accessibility.test.d.ts +1 -0
  103. package/checkbox/Checkbox.accessibility.test.js +87 -0
  104. package/checkbox/Checkbox.d.ts +2 -2
  105. package/checkbox/Checkbox.js +140 -182
  106. package/checkbox/Checkbox.stories.tsx +128 -94
  107. package/checkbox/Checkbox.test.d.ts +1 -0
  108. package/checkbox/Checkbox.test.js +159 -38
  109. package/checkbox/types.d.ts +11 -3
  110. package/chip/Chip.accessibility.test.d.ts +1 -0
  111. package/chip/Chip.accessibility.test.js +67 -0
  112. package/chip/Chip.js +45 -80
  113. package/chip/Chip.stories.tsx +103 -27
  114. package/chip/Chip.test.d.ts +1 -0
  115. package/chip/Chip.test.js +17 -32
  116. package/chip/types.d.ts +4 -4
  117. package/common/coreTokens.d.ts +236 -0
  118. package/common/coreTokens.js +183 -0
  119. package/common/utils.d.ts +1 -0
  120. package/common/utils.js +6 -12
  121. package/common/variables.d.ts +1432 -0
  122. package/common/variables.js +1110 -1184
  123. package/container/Container.d.ts +4 -0
  124. package/container/Container.js +194 -0
  125. package/container/Container.stories.tsx +214 -0
  126. package/container/types.d.ts +176 -0
  127. package/contextual-menu/ContextualMenu.accessibility.test.d.ts +1 -0
  128. package/contextual-menu/ContextualMenu.accessibility.test.js +98 -0
  129. package/contextual-menu/ContextualMenu.d.ts +5 -0
  130. package/contextual-menu/ContextualMenu.js +136 -0
  131. package/contextual-menu/ContextualMenu.stories.tsx +231 -0
  132. package/contextual-menu/ContextualMenu.test.d.ts +1 -0
  133. package/contextual-menu/ContextualMenu.test.js +247 -0
  134. package/contextual-menu/GroupItem.d.ts +4 -0
  135. package/contextual-menu/GroupItem.js +67 -0
  136. package/contextual-menu/ItemAction.d.ts +4 -0
  137. package/contextual-menu/ItemAction.js +88 -0
  138. package/contextual-menu/MenuItem.d.ts +4 -0
  139. package/contextual-menu/MenuItem.js +29 -0
  140. package/contextual-menu/SingleItem.d.ts +4 -0
  141. package/contextual-menu/SingleItem.js +38 -0
  142. package/contextual-menu/types.d.ts +65 -0
  143. package/date-input/Calendar.d.ts +4 -0
  144. package/date-input/Calendar.js +230 -0
  145. package/date-input/DateInput.accessibility.test.d.ts +1 -0
  146. package/date-input/DateInput.accessibility.test.js +229 -0
  147. package/date-input/DateInput.js +158 -299
  148. package/date-input/DateInput.stories.tsx +210 -57
  149. package/date-input/DateInput.test.d.ts +1 -0
  150. package/date-input/DateInput.test.js +699 -370
  151. package/date-input/DatePicker.d.ts +4 -0
  152. package/date-input/DatePicker.js +121 -0
  153. package/date-input/YearPicker.d.ts +4 -0
  154. package/date-input/YearPicker.js +105 -0
  155. package/date-input/types.d.ts +72 -15
  156. package/dialog/Dialog.accessibility.test.d.ts +1 -0
  157. package/dialog/Dialog.accessibility.test.js +69 -0
  158. package/dialog/Dialog.d.ts +1 -1
  159. package/dialog/Dialog.js +61 -106
  160. package/dialog/Dialog.stories.tsx +324 -167
  161. package/dialog/Dialog.test.d.ts +1 -0
  162. package/dialog/Dialog.test.js +349 -19
  163. package/dialog/types.d.ts +18 -25
  164. package/divider/Divider.accessibility.test.d.ts +1 -0
  165. package/divider/Divider.accessibility.test.js +33 -0
  166. package/divider/Divider.d.ts +4 -0
  167. package/divider/Divider.js +36 -0
  168. package/divider/Divider.stories.tsx +224 -0
  169. package/divider/Divider.test.d.ts +1 -0
  170. package/divider/Divider.test.js +38 -0
  171. package/divider/types.d.ts +21 -0
  172. package/divider/types.js +5 -0
  173. package/dropdown/Dropdown.accessibility.test.d.ts +1 -0
  174. package/dropdown/Dropdown.accessibility.test.js +183 -0
  175. package/dropdown/Dropdown.d.ts +1 -1
  176. package/dropdown/Dropdown.js +213 -303
  177. package/dropdown/Dropdown.stories.tsx +236 -58
  178. package/dropdown/Dropdown.test.d.ts +1 -0
  179. package/dropdown/Dropdown.test.js +603 -164
  180. package/dropdown/DropdownMenu.d.ts +4 -0
  181. package/dropdown/DropdownMenu.js +63 -0
  182. package/dropdown/DropdownMenuItem.d.ts +4 -0
  183. package/dropdown/DropdownMenuItem.js +71 -0
  184. package/dropdown/types.d.ts +35 -19
  185. package/file-input/FileInput.accessibility.test.d.ts +1 -0
  186. package/file-input/FileInput.accessibility.test.js +167 -0
  187. package/file-input/FileInput.d.ts +2 -2
  188. package/file-input/FileInput.js +243 -395
  189. package/file-input/FileInput.stories.tsx +123 -12
  190. package/file-input/FileInput.test.d.ts +1 -0
  191. package/file-input/FileInput.test.js +314 -367
  192. package/file-input/FileItem.d.ts +4 -14
  193. package/file-input/FileItem.js +61 -120
  194. package/file-input/types.d.ts +24 -11
  195. package/flex/Flex.d.ts +4 -0
  196. package/flex/Flex.js +57 -0
  197. package/flex/Flex.stories.tsx +112 -0
  198. package/flex/types.d.ts +97 -0
  199. package/flex/types.js +5 -0
  200. package/footer/Footer.accessibility.test.d.ts +1 -0
  201. package/footer/Footer.accessibility.test.js +125 -0
  202. package/footer/Footer.d.ts +1 -1
  203. package/footer/Footer.js +75 -118
  204. package/footer/Footer.stories.tsx +99 -21
  205. package/footer/Footer.test.d.ts +1 -0
  206. package/footer/Footer.test.js +32 -56
  207. package/footer/Icons.d.ts +3 -2
  208. package/footer/Icons.js +54 -23
  209. package/footer/types.d.ts +26 -27
  210. package/grid/Grid.d.ts +7 -0
  211. package/grid/Grid.js +76 -0
  212. package/grid/Grid.stories.tsx +221 -0
  213. package/grid/types.d.ts +115 -0
  214. package/grid/types.js +5 -0
  215. package/header/Header.accessibility.test.d.ts +1 -0
  216. package/header/Header.accessibility.test.js +94 -0
  217. package/header/Header.d.ts +4 -3
  218. package/header/Header.js +95 -185
  219. package/header/Header.stories.tsx +134 -39
  220. package/header/Header.test.d.ts +1 -0
  221. package/header/Header.test.js +12 -25
  222. package/header/Icons.d.ts +2 -2
  223. package/header/Icons.js +5 -15
  224. package/header/types.d.ts +7 -21
  225. package/heading/Heading.accessibility.test.d.ts +1 -0
  226. package/heading/Heading.accessibility.test.js +33 -0
  227. package/heading/Heading.js +10 -32
  228. package/heading/Heading.test.d.ts +1 -0
  229. package/heading/Heading.test.js +64 -94
  230. package/heading/types.d.ts +7 -7
  231. package/icon/Icon.accessibility.test.d.ts +1 -0
  232. package/icon/Icon.accessibility.test.js +30 -0
  233. package/icon/Icon.d.ts +4 -0
  234. package/icon/Icon.js +33 -0
  235. package/icon/Icon.stories.tsx +28 -0
  236. package/icon/types.d.ts +4 -0
  237. package/icon/types.js +5 -0
  238. package/image/Image.accessibility.test.d.ts +1 -0
  239. package/image/Image.accessibility.test.js +56 -0
  240. package/image/Image.d.ts +4 -0
  241. package/image/Image.js +70 -0
  242. package/image/Image.stories.tsx +129 -0
  243. package/image/types.d.ts +72 -0
  244. package/image/types.js +5 -0
  245. package/inset/Inset.js +14 -55
  246. package/inset/Inset.stories.tsx +37 -36
  247. package/inset/types.d.ts +2 -2
  248. package/layout/ApplicationLayout.d.ts +16 -6
  249. package/layout/ApplicationLayout.js +86 -167
  250. package/layout/ApplicationLayout.stories.tsx +85 -94
  251. package/layout/Icons.d.ts +7 -0
  252. package/layout/Icons.js +41 -48
  253. package/layout/types.d.ts +19 -35
  254. package/link/Link.accessibility.test.d.ts +1 -0
  255. package/link/Link.accessibility.test.js +108 -0
  256. package/link/Link.d.ts +3 -2
  257. package/link/Link.js +65 -97
  258. package/link/Link.stories.tsx +157 -55
  259. package/link/Link.test.d.ts +1 -0
  260. package/link/Link.test.js +24 -52
  261. package/link/types.d.ts +15 -31
  262. package/main.d.ts +17 -13
  263. package/main.js +85 -101
  264. package/nav-tabs/NavTabs.accessibility.test.d.ts +1 -0
  265. package/nav-tabs/NavTabs.accessibility.test.js +44 -0
  266. package/nav-tabs/NavTabs.d.ts +7 -0
  267. package/nav-tabs/NavTabs.js +108 -0
  268. package/nav-tabs/NavTabs.stories.tsx +294 -0
  269. package/nav-tabs/NavTabs.test.d.ts +1 -0
  270. package/nav-tabs/NavTabs.test.js +77 -0
  271. package/nav-tabs/NavTabsContext.d.ts +3 -0
  272. package/nav-tabs/NavTabsContext.js +8 -0
  273. package/nav-tabs/Tab.d.ts +4 -0
  274. package/nav-tabs/Tab.js +117 -0
  275. package/nav-tabs/types.d.ts +52 -0
  276. package/nav-tabs/types.js +5 -0
  277. package/number-input/NumberInput.accessibility.test.d.ts +1 -0
  278. package/number-input/NumberInput.accessibility.test.js +227 -0
  279. package/number-input/NumberInput.js +50 -37
  280. package/number-input/NumberInput.stories.tsx +37 -26
  281. package/number-input/NumberInput.test.d.ts +1 -0
  282. package/number-input/NumberInput.test.js +858 -376
  283. package/number-input/NumberInputContext.d.ts +3 -4
  284. package/number-input/NumberInputContext.js +3 -14
  285. package/number-input/types.d.ts +18 -6
  286. package/package.json +57 -52
  287. package/paginator/Paginator.accessibility.test.d.ts +1 -0
  288. package/paginator/Paginator.accessibility.test.js +78 -0
  289. package/paginator/Paginator.js +46 -100
  290. package/paginator/Paginator.stories.tsx +24 -0
  291. package/paginator/Paginator.test.d.ts +1 -0
  292. package/paginator/Paginator.test.js +278 -210
  293. package/paginator/types.d.ts +3 -3
  294. package/paragraph/Paragraph.accessibility.test.d.ts +1 -0
  295. package/paragraph/Paragraph.accessibility.test.js +28 -0
  296. package/paragraph/Paragraph.d.ts +5 -0
  297. package/paragraph/Paragraph.js +22 -0
  298. package/paragraph/Paragraph.stories.tsx +27 -0
  299. package/password-input/PasswordInput.accessibility.test.d.ts +1 -0
  300. package/password-input/PasswordInput.accessibility.test.js +152 -0
  301. package/password-input/PasswordInput.js +62 -125
  302. package/password-input/PasswordInput.stories.tsx +11 -34
  303. package/password-input/PasswordInput.test.d.ts +1 -0
  304. package/password-input/PasswordInput.test.js +158 -142
  305. package/password-input/types.d.ts +9 -8
  306. package/progress-bar/ProgressBar.accessibility.test.d.ts +1 -0
  307. package/progress-bar/ProgressBar.accessibility.test.js +35 -0
  308. package/progress-bar/ProgressBar.js +68 -92
  309. package/progress-bar/ProgressBar.stories.tsx +93 -0
  310. package/progress-bar/ProgressBar.test.d.ts +1 -0
  311. package/progress-bar/ProgressBar.test.js +71 -43
  312. package/progress-bar/types.d.ts +3 -3
  313. package/quick-nav/QuickNav.accessibility.test.d.ts +1 -0
  314. package/quick-nav/QuickNav.accessibility.test.js +57 -0
  315. package/quick-nav/QuickNav.js +71 -41
  316. package/quick-nav/QuickNav.stories.tsx +146 -27
  317. package/quick-nav/types.d.ts +10 -10
  318. package/radio-group/Radio.d.ts +1 -1
  319. package/radio-group/Radio.js +59 -79
  320. package/radio-group/RadioGroup.accessibility.test.d.ts +1 -0
  321. package/radio-group/RadioGroup.accessibility.test.js +97 -0
  322. package/radio-group/RadioGroup.js +74 -121
  323. package/radio-group/RadioGroup.stories.tsx +132 -18
  324. package/radio-group/RadioGroup.test.d.ts +1 -0
  325. package/radio-group/RadioGroup.test.js +518 -459
  326. package/radio-group/types.d.ts +10 -10
  327. package/resultset-table/Icons.d.ts +7 -0
  328. package/resultset-table/Icons.js +47 -0
  329. package/resultset-table/ResultsetTable.accessibility.test.d.ts +1 -0
  330. package/resultset-table/ResultsetTable.accessibility.test.js +284 -0
  331. package/resultset-table/ResultsetTable.d.ts +7 -0
  332. package/resultset-table/ResultsetTable.js +198 -0
  333. package/{resultsetTable → resultset-table}/ResultsetTable.stories.tsx +169 -31
  334. package/resultset-table/ResultsetTable.test.d.ts +1 -0
  335. package/resultset-table/ResultsetTable.test.js +450 -0
  336. package/{resultsetTable → resultset-table}/types.d.ts +47 -13
  337. package/resultset-table/types.js +5 -0
  338. package/select/Listbox.d.ts +3 -3
  339. package/select/Listbox.js +73 -74
  340. package/select/Option.d.ts +3 -3
  341. package/select/Option.js +42 -59
  342. package/select/Select.accessibility.test.d.ts +1 -0
  343. package/select/Select.accessibility.test.js +227 -0
  344. package/select/Select.js +188 -360
  345. package/select/Select.stories.tsx +533 -187
  346. package/select/Select.test.d.ts +1 -0
  347. package/select/Select.test.js +1929 -1818
  348. package/select/selectUtils.d.ts +41 -0
  349. package/select/selectUtils.js +129 -0
  350. package/select/types.d.ts +17 -21
  351. package/sidenav/Sidenav.accessibility.test.d.ts +1 -0
  352. package/sidenav/Sidenav.accessibility.test.js +59 -0
  353. package/sidenav/Sidenav.d.ts +6 -5
  354. package/sidenav/Sidenav.js +136 -71
  355. package/sidenav/Sidenav.stories.tsx +246 -151
  356. package/sidenav/Sidenav.test.d.ts +1 -0
  357. package/sidenav/Sidenav.test.js +25 -44
  358. package/sidenav/SidenavContext.d.ts +5 -0
  359. package/sidenav/SidenavContext.js +13 -0
  360. package/sidenav/types.d.ts +52 -26
  361. package/slider/Slider.accessibility.test.d.ts +1 -0
  362. package/slider/Slider.accessibility.test.js +103 -0
  363. package/slider/Slider.d.ts +2 -2
  364. package/slider/Slider.js +146 -181
  365. package/slider/Slider.stories.tsx +64 -61
  366. package/slider/Slider.test.d.ts +1 -0
  367. package/slider/Slider.test.js +194 -88
  368. package/slider/types.d.ts +7 -3
  369. package/spinner/Spinner.accessibility.test.d.ts +1 -0
  370. package/spinner/Spinner.accessibility.test.js +96 -0
  371. package/spinner/Spinner.d.ts +1 -1
  372. package/spinner/Spinner.js +50 -109
  373. package/spinner/{Spinner.stories.jsx → Spinner.stories.tsx} +53 -27
  374. package/spinner/Spinner.test.d.ts +1 -0
  375. package/spinner/Spinner.test.js +25 -34
  376. package/spinner/types.d.ts +3 -3
  377. package/status-light/StatusLight.accessibility.test.d.ts +1 -0
  378. package/status-light/StatusLight.accessibility.test.js +157 -0
  379. package/status-light/StatusLight.d.ts +4 -0
  380. package/status-light/StatusLight.js +51 -0
  381. package/status-light/StatusLight.stories.tsx +74 -0
  382. package/status-light/StatusLight.test.d.ts +1 -0
  383. package/status-light/StatusLight.test.js +25 -0
  384. package/status-light/types.d.ts +17 -0
  385. package/status-light/types.js +5 -0
  386. package/switch/Switch.accessibility.test.d.ts +1 -0
  387. package/switch/Switch.accessibility.test.js +98 -0
  388. package/switch/Switch.d.ts +2 -2
  389. package/switch/Switch.js +147 -128
  390. package/switch/Switch.stories.tsx +49 -60
  391. package/switch/Switch.test.d.ts +1 -0
  392. package/switch/Switch.test.js +137 -55
  393. package/switch/types.d.ts +7 -3
  394. package/table/DropdownTheme.js +62 -0
  395. package/table/Table.accessibility.test.d.ts +1 -0
  396. package/table/Table.accessibility.test.js +92 -0
  397. package/table/Table.d.ts +6 -2
  398. package/table/Table.js +78 -35
  399. package/table/Table.stories.tsx +663 -0
  400. package/table/Table.test.d.ts +1 -0
  401. package/table/Table.test.js +92 -7
  402. package/table/types.d.ts +34 -6
  403. package/tabs/Tab.d.ts +4 -0
  404. package/tabs/Tab.js +117 -0
  405. package/tabs/Tabs.accessibility.test.d.ts +1 -0
  406. package/tabs/Tabs.accessibility.test.js +56 -0
  407. package/tabs/Tabs.js +303 -141
  408. package/tabs/Tabs.stories.tsx +124 -12
  409. package/tabs/Tabs.test.d.ts +1 -0
  410. package/tabs/Tabs.test.js +212 -76
  411. package/tabs/types.d.ts +30 -20
  412. package/tag/Tag.accessibility.test.d.ts +1 -0
  413. package/tag/Tag.accessibility.test.js +69 -0
  414. package/tag/Tag.js +35 -67
  415. package/tag/Tag.stories.tsx +19 -9
  416. package/tag/Tag.test.d.ts +1 -0
  417. package/tag/Tag.test.js +17 -36
  418. package/tag/types.d.ts +9 -9
  419. package/text-input/Suggestion.d.ts +4 -0
  420. package/text-input/Suggestion.js +67 -0
  421. package/text-input/Suggestions.d.ts +4 -0
  422. package/text-input/Suggestions.js +94 -0
  423. package/text-input/TextInput.accessibility.test.d.ts +1 -0
  424. package/text-input/TextInput.accessibility.test.js +320 -0
  425. package/text-input/TextInput.js +313 -557
  426. package/text-input/TextInput.stories.tsx +278 -275
  427. package/text-input/TextInput.test.d.ts +1 -0
  428. package/text-input/TextInput.test.js +1418 -1375
  429. package/text-input/types.d.ts +53 -14
  430. package/textarea/Textarea.accessibility.test.d.ts +1 -0
  431. package/textarea/Textarea.accessibility.test.js +155 -0
  432. package/textarea/Textarea.js +76 -127
  433. package/textarea/Textarea.stories.tsx +174 -0
  434. package/textarea/Textarea.test.d.ts +1 -0
  435. package/textarea/Textarea.test.js +151 -182
  436. package/textarea/types.d.ts +10 -6
  437. package/toggle-group/ToggleGroup.accessibility.test.d.ts +1 -0
  438. package/toggle-group/ToggleGroup.accessibility.test.js +107 -0
  439. package/toggle-group/ToggleGroup.d.ts +2 -2
  440. package/toggle-group/ToggleGroup.js +92 -108
  441. package/toggle-group/ToggleGroup.stories.tsx +53 -8
  442. package/toggle-group/ToggleGroup.test.d.ts +1 -0
  443. package/toggle-group/ToggleGroup.test.js +68 -87
  444. package/toggle-group/types.d.ts +28 -19
  445. package/tooltip/Tooltip.accessibility.test.d.ts +1 -0
  446. package/tooltip/Tooltip.accessibility.test.js +144 -0
  447. package/tooltip/Tooltip.d.ts +4 -0
  448. package/tooltip/Tooltip.js +50 -0
  449. package/tooltip/Tooltip.stories.tsx +111 -0
  450. package/tooltip/Tooltip.test.d.ts +1 -0
  451. package/tooltip/Tooltip.test.js +112 -0
  452. package/tooltip/types.d.ts +16 -0
  453. package/tooltip/types.js +5 -0
  454. package/typography/Typography.accessibility.test.d.ts +1 -0
  455. package/typography/Typography.accessibility.test.js +339 -0
  456. package/typography/Typography.d.ts +4 -0
  457. package/typography/Typography.js +23 -0
  458. package/typography/Typography.stories.tsx +196 -0
  459. package/typography/Typography.test.js +23 -0
  460. package/typography/types.d.ts +18 -0
  461. package/typography/types.js +5 -0
  462. package/useTheme.d.ts +1167 -1
  463. package/useTheme.js +2 -9
  464. package/useTranslatedLabels.d.ts +96 -0
  465. package/useTranslatedLabels.js +14 -0
  466. package/utils/BaseTypography.d.ts +21 -0
  467. package/utils/BaseTypography.js +98 -0
  468. package/utils/FocusLock.d.ts +13 -0
  469. package/utils/FocusLock.js +125 -0
  470. package/utils/useWidth.d.ts +2 -0
  471. package/utils/useWidth.js +30 -0
  472. package/wizard/Wizard.accessibility.test.d.ts +1 -0
  473. package/wizard/Wizard.accessibility.test.js +55 -0
  474. package/wizard/Wizard.js +59 -110
  475. package/wizard/Wizard.stories.tsx +60 -2
  476. package/wizard/Wizard.test.d.ts +1 -0
  477. package/wizard/Wizard.test.js +53 -80
  478. package/wizard/types.d.ts +9 -9
  479. package/card/ice-cream.jpg +0 -0
  480. package/common/OpenSans.css +0 -81
  481. package/common/RequiredComponent.js +0 -32
  482. package/common/fonts/OpenSans-Bold.ttf +0 -0
  483. package/common/fonts/OpenSans-BoldItalic.ttf +0 -0
  484. package/common/fonts/OpenSans-ExtraBold.ttf +0 -0
  485. package/common/fonts/OpenSans-ExtraBoldItalic.ttf +0 -0
  486. package/common/fonts/OpenSans-Italic.ttf +0 -0
  487. package/common/fonts/OpenSans-Light.ttf +0 -0
  488. package/common/fonts/OpenSans-LightItalic.ttf +0 -0
  489. package/common/fonts/OpenSans-Regular.ttf +0 -0
  490. package/common/fonts/OpenSans-SemiBold.ttf +0 -0
  491. package/common/fonts/OpenSans-SemiBoldItalic.ttf +0 -0
  492. package/list/List.d.ts +0 -4
  493. package/list/List.js +0 -47
  494. package/list/List.stories.tsx +0 -95
  495. package/list/types.d.ts +0 -7
  496. package/number-input/numberInputContextTypes.d.ts +0 -19
  497. package/paginator/Icons.js +0 -66
  498. package/progress-bar/ProgressBar.stories.jsx +0 -58
  499. package/radio/Radio.d.ts +0 -4
  500. package/radio/Radio.js +0 -173
  501. package/radio/Radio.stories.tsx +0 -192
  502. package/radio/Radio.test.js +0 -71
  503. package/radio/types.d.ts +0 -54
  504. package/resultsetTable/ResultsetTable.d.ts +0 -4
  505. package/resultsetTable/ResultsetTable.js +0 -254
  506. package/resultsetTable/ResultsetTable.test.js +0 -306
  507. package/row/Row.d.ts +0 -3
  508. package/row/Row.js +0 -127
  509. package/row/Row.stories.tsx +0 -237
  510. package/row/types.d.ts +0 -28
  511. package/select/Icons.d.ts +0 -10
  512. package/select/Icons.js +0 -93
  513. package/stack/Stack.d.ts +0 -3
  514. package/stack/Stack.js +0 -97
  515. package/stack/Stack.stories.tsx +0 -164
  516. package/stack/types.d.ts +0 -24
  517. package/table/Table.stories.jsx +0 -277
  518. package/text/Text.d.ts +0 -7
  519. package/text/Text.js +0 -30
  520. package/text/Text.stories.tsx +0 -19
  521. package/textarea/Textarea.stories.jsx +0 -157
  522. /package/{list → action-icon}/types.js +0 -0
  523. /package/{radio → bar-chart}/types.js +0 -0
  524. /package/{resultsetTable → breadcrumbs}/types.js +0 -0
  525. /package/{row → bulleted-list}/types.js +0 -0
  526. /package/{stack → container}/types.js +0 -0
  527. /package/{number-input/numberInputContextTypes.js → contextual-menu/types.js} +0 -0
@@ -1,25 +1,40 @@
1
1
  import React from "react";
2
-
3
- import { userEvent, within, waitFor } from "@storybook/testing-library";
4
- import { fireEvent } from "@testing-library/react";
5
-
2
+ import { userEvent, within } from "@storybook/test";
6
3
  import Title from "../../.storybook/components/Title";
7
4
  import ExampleContainer from "../../.storybook/components/ExampleContainer";
8
-
9
5
  import DxcSelect from "./Select";
6
+ import Listbox from "./Listbox";
7
+ import { ThemeProvider } from "styled-components";
8
+ import useTheme from "../useTheme";
9
+ import { HalstackProvider } from "../HalstackContext";
10
+ import { disabledRules } from "../../test/accessibility/rules/specific/select/disabledRules";
11
+ import preview from "../../.storybook/preview";
12
+ import DxcFlex from "../flex/Flex";
10
13
 
11
14
  export default {
12
15
  title: "Select",
13
16
  component: DxcSelect,
17
+ parameters: {
18
+ a11y: {
19
+ config: {
20
+ rules: [
21
+ ...disabledRules.map((ruleId) => ({ id: ruleId, reviewOnFail: true })),
22
+ ...preview?.parameters?.a11y?.config?.rules,
23
+ ],
24
+ },
25
+ },
26
+ },
14
27
  };
15
28
 
16
29
  const one_option = [{ label: "Option 01", value: "1" }];
30
+
17
31
  const single_options = [
18
32
  { label: "Option 01", value: "1" },
19
33
  { label: "Option 02", value: "2" },
20
34
  { label: "Option 03", value: "3" },
21
35
  { label: "Option 04", value: "4" },
22
36
  ];
37
+
23
38
  const group_options = [
24
39
  {
25
40
  label: "Group 001",
@@ -62,25 +77,15 @@ const group_options = [
62
77
  ],
63
78
  },
64
79
  ];
65
- const icon_options_grouped = [
80
+
81
+ const icon_options_grouped_material = [
66
82
  {
67
83
  label: "Group 001",
68
84
  options: [
69
85
  {
70
86
  label: "3G Mobile",
71
87
  value: "1",
72
- icon: (
73
- <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor">
74
- <g>
75
- <path d="M0,0h24v24H0V0z" fill="none" />
76
- </g>
77
- <g>
78
- <g>
79
- <path d="M3,7v2h5v2H4v2h4v2H3v2h5c1.1,0,2-0.9,2-2v-1.5c0-0.83-0.67-1.5-1.5-1.5c0.83,0,1.5-0.67,1.5-1.5V9c0-1.1-0.9-2-2-2H3z M21,11v4c0,1.1-0.9,2-2,2h-5c-1.1,0-2-0.9-2-2V9c0-1.1,0.9-2,2-2h5c1.1,0,2,0.9,2,2h-7v6h5v-2h-2.5v-2H21z" />
80
- </g>
81
- </g>
82
- </svg>
83
- ),
88
+ icon: "3g_mobiledata",
84
89
  },
85
90
  ],
86
91
  },
@@ -90,12 +95,7 @@ const icon_options_grouped = [
90
95
  {
91
96
  label: "Ethernet",
92
97
  value: "2",
93
- icon: (
94
- <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor">
95
- <path d="M0 0h24v24H0V0z" fill="none" />
96
- <path d="M7.77 6.76L6.23 5.48.82 12l5.41 6.52 1.54-1.28L3.42 12l4.35-5.24zM7 13h2v-2H7v2zm10-2h-2v2h2v-2zm-6 2h2v-2h-2v2zm6.77-7.52l-1.54 1.28L20.58 12l-4.35 5.24 1.54 1.28L23.18 12l-5.41-6.52z" />
97
- </svg>
98
- ),
98
+ icon: "settings_ethernet",
99
99
  },
100
100
  ],
101
101
  },
@@ -105,26 +105,17 @@ const icon_options_grouped = [
105
105
  {
106
106
  label: "Wi-fi",
107
107
  value: "3",
108
- icon: (
109
- <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor">
110
- <path d="M0 0h24v24H0V0zm0 0h24v24H0V0z" fill="none" />
111
- <path d="M1 9l2 2c4.97-4.97 13.03-4.97 18 0l2-2C16.93 2.93 7.08 2.93 1 9zm8 8l3 3 3-3c-1.65-1.66-4.34-1.66-6 0zm-4-4l2 2c2.76-2.76 7.24-2.76 10 0l2-2C15.14 9.14 8.87 9.14 5 13z" />
112
- </svg>
113
- ),
108
+ icon: "wifi",
114
109
  },
115
110
  {
116
111
  label: "Settings backup restore (just for previous configuration)",
117
112
  value: "4",
118
- icon: (
119
- <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor">
120
- <path d="M0 0h24v24H0V0z" fill="none" />
121
- <path d="M14 12c0-1.1-.9-2-2-2s-2 .9-2 2 .9 2 2 2 2-.9 2-2zm-2-9c-4.97 0-9 4.03-9 9H0l4 4 4-4H5c0-3.87 3.13-7 7-7s7 3.13 7 7-3.13 7-7 7c-1.51 0-2.91-.49-4.06-1.3l-1.42 1.44C8.04 20.3 9.94 21 12 21c4.97 0 9-4.03 9-9s-4.03-9-9-9z" />
122
- </svg>
123
- ),
113
+ icon: "settings_backup_restore",
124
114
  },
125
115
  ],
126
116
  },
127
117
  ];
118
+
128
119
  const icon_options = [
129
120
  {
130
121
  label: "3G Mobile",
@@ -173,60 +164,70 @@ const icon_options = [
173
164
  ),
174
165
  },
175
166
  ];
176
- const url_options = [
167
+
168
+ const options_material = [
177
169
  {
178
- label: "Social Media",
170
+ label: "Transport",
179
171
  options: [
180
172
  {
181
- label: "Instagram",
182
- value: "instagram",
183
- icon: "https://upload.wikimedia.org/wikipedia/commons/thumb/e/e7/Instagram_logo_2016.svg/800px-Instagram_logo_2016.svg.png",
173
+ label: "Electric Car",
174
+ value: "car",
175
+ icon: "electric_car",
184
176
  },
185
177
  {
186
- label: "Twitter",
187
- value: "twitter",
188
- icon: "https://cdn.computerhoy.com/sites/navi.axelspringer.es/public/styles/480/public/media/image/2013/08/17981-logo-twitter.png?itok=dElA6iAV",
178
+ label: "Motorcycle",
179
+ value: "motorcycle",
180
+ icon: "Motorcycle",
189
181
  },
190
182
  {
191
- label: "Facebook",
192
- value: "facebook",
193
- icon: "https://upload.wikimedia.org/wikipedia/commons/thumb/b/b8/2021_Facebook_icon.svg/2048px-2021_Facebook_icon.svg.png",
183
+ label: "Train",
184
+ value: "train",
185
+ icon: "train",
194
186
  },
195
187
  {
196
- label: "Pinterest",
197
- value: "pinterest",
198
- icon: "https://cdn-icons-png.flaticon.com/512/145/145808.png",
188
+ label: "Bike",
189
+ value: "bike",
190
+ icon: "pedal_bike",
199
191
  },
200
192
  ],
201
193
  },
202
194
  {
203
- label: "Design",
195
+ label: "Entertainment",
204
196
  options: [
205
197
  {
206
- label: "Figma",
207
- value: "figma",
208
- icon: "https://logowik.com/content/uploads/images/figma.jpg",
198
+ label: "Movie",
199
+ value: "movie",
200
+ icon: "movie",
209
201
  },
210
202
  {
211
- label: "Adobe XD",
212
- value: "adobexd",
213
- icon: "https://cdn.worldvectorlogo.com/logos/adobe-xd-2.svg",
203
+ label: "Music",
204
+ value: "music",
205
+ icon: "music_note",
214
206
  },
215
207
  {
216
- label: "Sketch",
217
- value: "sketch",
218
- icon: "https://cdn.worldvectorlogo.com/logos/sketch-2.svg",
208
+ label: "Games",
209
+ value: "games",
210
+ icon: "joystick",
219
211
  },
220
212
  ],
221
213
  },
222
214
  ];
215
+
223
216
  const optionsWithEllipsisMedium = [
224
217
  { label: "Optiond1234567890123456789012345678901234", value: "1" },
225
218
  { label: "Optiond12345678901234567890123456789012345", value: "2" },
226
219
  { label: "Option 031111111111111111111111111111222", value: "3" },
227
- { label: "Option 03111111111111111111111111111222", value: "4" },
228
220
  ];
229
221
 
222
+ const opinionatedTheme = {
223
+ select: {
224
+ selectedOptionBackgroundColor: "#e6f4ff",
225
+ fontColor: "#000000",
226
+ optionFontColor: "#000000",
227
+ hoverBorderColor: "#a46ede",
228
+ },
229
+ };
230
+
230
231
  const Select = () => (
231
232
  <>
232
233
  <Title title="States" theme="light" level={2} />
@@ -305,6 +306,14 @@ const Select = () => (
305
306
  <Title title="Fillparent size" theme="light" level={4} />
306
307
  <DxcSelect label="Fillparent" options={single_options} size="fillParent" />
307
308
  </ExampleContainer>
309
+ <ExampleContainer>
310
+ <Title title="Different sizes inside a flex" theme="light" level={4} />
311
+ <DxcFlex justifyContent="space-between" gap="1rem">
312
+ <DxcSelect label="fillParent" size="fillParent" options={single_options} />
313
+ <DxcSelect label="medium" size="medium" options={single_options} />
314
+ <DxcSelect label="large" size="large" options={single_options} />
315
+ </DxcFlex>
316
+ </ExampleContainer>
308
317
  <Title title="Margins" theme="light" level={2} />
309
318
  <ExampleContainer>
310
319
  <Title title="xxsmall margin" theme="light" level={4} />
@@ -339,39 +348,389 @@ const Select = () => (
339
348
  <Title title="Multiple selection with ellipsis" theme="light" level={4} />
340
349
  <DxcSelect label="Label" options={single_options} multiple defaultValue={["1", "2", "3", "4"]} />
341
350
  <Title title="Value with ellipsis" theme="light" level={4} />
342
- <DxcSelect label="Label" options={optionsWithEllipsisMedium} defaultValue="1" size="medium" />
343
- <Title title="Option with ellipsis" theme="light" level={4} />
351
+ <DxcSelect label="Label" options={optionsWithEllipsisMedium} defaultValue="1" />
352
+ <Title title="Options with ellipsis" theme="light" level={4} />
344
353
  <DxcSelect
345
354
  label="Label"
346
355
  placeholder="Choose an option"
347
356
  defaultValue="1"
348
357
  options={optionsWithEllipsisMedium}
349
- size="medium"
358
+ margin={{ top: "xxlarge" }}
350
359
  />
351
360
  </ExampleContainer>
361
+ <Title title="Opinionated theme" theme="light" level={2} />
362
+ <ExampleContainer pseudoState="pseudo-hover">
363
+ <Title title="Hovered" theme="light" level={4} />
364
+ <HalstackProvider theme={opinionatedTheme}>
365
+ <DxcSelect label="Hovered" options={single_options} />
366
+ </HalstackProvider>
367
+ </ExampleContainer>
368
+ <ExampleContainer pseudoState="pseudo-focus-within">
369
+ <Title title="Focused" theme="light" level={4} />
370
+ <HalstackProvider theme={opinionatedTheme}>
371
+ <DxcSelect label="Focused" options={single_options} />
372
+ </HalstackProvider>
373
+ </ExampleContainer>
374
+ <ExampleContainer>
375
+ <Title title="Disabled" theme="light" level={4} />
376
+ <HalstackProvider theme={opinionatedTheme}>
377
+ <DxcSelect label="Disabled" placeholder="Placeholder" disabled options={single_options} />
378
+ </HalstackProvider>
379
+ </ExampleContainer>
380
+ <ExampleContainer>
381
+ <Title title="Disabled with value" theme="light" level={4} />
382
+ <HalstackProvider theme={opinionatedTheme}>
383
+ <DxcSelect label="Disabled with value" disabled options={single_options} defaultValue="1" />
384
+ </HalstackProvider>
385
+ </ExampleContainer>
386
+ <ExampleContainer>
387
+ <Title title="Error" theme="light" level={4} />
388
+ <HalstackProvider theme={opinionatedTheme}>
389
+ <DxcSelect
390
+ label="Label"
391
+ options={single_options}
392
+ error="Error message."
393
+ helperText="Helper text"
394
+ placeholder="Placeholder"
395
+ />
396
+ <ExampleContainer>
397
+ <Title title="Multiple selection" theme="light" level={4} />
398
+ <DxcSelect label="Multiple select" searchable options={single_options} multiple defaultValue={["1", "2"]} />
399
+ </ExampleContainer>
400
+ <ExampleContainer pseudoState="pseudo-hover">
401
+ <Title title="Multiple clear hovered" theme="light" level={4} />
402
+ <DxcSelect label="Multiple select" options={single_options} multiple defaultValue={["1", "2"]} />
403
+ </ExampleContainer>
404
+ <ExampleContainer pseudoState="pseudo-active">
405
+ <Title title="Multiple clear actived" theme="light" level={4} />
406
+ <DxcSelect label="Multiple select" options={single_options} multiple defaultValue={["1", "2"]} />
407
+ </ExampleContainer>
408
+ </HalstackProvider>
409
+ </ExampleContainer>
352
410
  </>
353
411
  );
354
- export const Chromatic = Select.bind({});
355
- Chromatic.play = async ({ canvasElement }) => {
356
- const canvas = within(canvasElement);
357
- await userEvent.click(canvas.getAllByRole("combobox")[24]);
412
+
413
+ const SelectListbox = () => {
414
+ const colorsTheme = useTheme();
415
+
416
+ return (
417
+ <>
418
+ <ThemeProvider theme={colorsTheme.select}>
419
+ <Title title="Listbox" theme="light" level={2} />
420
+ <ExampleContainer>
421
+ <Title
422
+ title="List dialog uses a Radix Popover to appear over elements with a certain z-index"
423
+ theme="light"
424
+ level={3}
425
+ />
426
+ <div
427
+ style={{
428
+ position: "relative",
429
+ display: "flex",
430
+ flexDirection: "column",
431
+ gap: "20px",
432
+ height: "150px",
433
+ width: "min-content",
434
+ marginBottom: "100px",
435
+ padding: "20px",
436
+ border: "1px solid black",
437
+ borderRadius: "4px",
438
+ overflow: "auto",
439
+ zIndex: "1300",
440
+ }}
441
+ >
442
+ <DxcSelect label="Label" options={single_options} optional placeholder="Choose an option" />
443
+ <button style={{ zIndex: "1", width: "100px" }}>Submit</button>
444
+ </div>
445
+ </ExampleContainer>
446
+ <Title title="Listbox option states" theme="light" level={3} />
447
+ <ExampleContainer pseudoState="pseudo-hover">
448
+ <Title title="Hovered option" theme="light" level={4} />
449
+ <Listbox
450
+ id="x8"
451
+ currentValue=""
452
+ options={one_option}
453
+ visualFocusIndex={-1}
454
+ lastOptionIndex={0}
455
+ multiple={false}
456
+ optional={false}
457
+ optionalItem={{ label: "Empty", value: "" }}
458
+ searchable={false}
459
+ handleOptionOnClick={() => {}}
460
+ styles={{ width: 360 }}
461
+ />
462
+ </ExampleContainer>
463
+ <ExampleContainer pseudoState="pseudo-active">
464
+ <Title title="Active option" theme="light" level={4} />
465
+ <Listbox
466
+ id="x9"
467
+ currentValue=""
468
+ options={one_option}
469
+ visualFocusIndex={-1}
470
+ lastOptionIndex={0}
471
+ multiple={false}
472
+ optional={false}
473
+ optionalItem={{ label: "Empty", value: "" }}
474
+ searchable={false}
475
+ handleOptionOnClick={() => {}}
476
+ styles={{ width: 360 }}
477
+ />
478
+ </ExampleContainer>
479
+ <ExampleContainer>
480
+ <Title title="Focused option" theme="light" level={4} />
481
+ <Listbox
482
+ id="x10"
483
+ currentValue=""
484
+ options={one_option}
485
+ visualFocusIndex={0}
486
+ lastOptionIndex={0}
487
+ multiple={false}
488
+ optional={false}
489
+ optionalItem={{ label: "Empty", value: "" }}
490
+ searchable={false}
491
+ handleOptionOnClick={() => {}}
492
+ styles={{ width: 360 }}
493
+ />
494
+ </ExampleContainer>
495
+ <ExampleContainer pseudoState="pseudo-hover">
496
+ <Title title="Hovered selected option" theme="light" level={4} />
497
+ <Listbox
498
+ id="x11"
499
+ currentValue="1"
500
+ options={single_options}
501
+ visualFocusIndex={-1}
502
+ lastOptionIndex={3}
503
+ multiple={false}
504
+ optional={false}
505
+ optionalItem={{ label: "Empty", value: "" }}
506
+ searchable={false}
507
+ handleOptionOnClick={() => {}}
508
+ styles={{ width: 360 }}
509
+ />
510
+ </ExampleContainer>
511
+ <ExampleContainer pseudoState="pseudo-active">
512
+ <Title title="Active selected option" theme="light" level={4} />
513
+ <Listbox
514
+ id="x12"
515
+ currentValue="2"
516
+ options={single_options}
517
+ visualFocusIndex={0}
518
+ lastOptionIndex={3}
519
+ multiple={false}
520
+ optional={false}
521
+ optionalItem={{ label: "Empty", value: "" }}
522
+ searchable={false}
523
+ handleOptionOnClick={() => {}}
524
+ styles={{ width: 360 }}
525
+ />
526
+ </ExampleContainer>
527
+ <Title title="Listbox with icons" theme="light" level={3} />
528
+ <ExampleContainer>
529
+ <Title title="Icons (SVGs)" theme="light" level={4} />
530
+ <Listbox
531
+ id="x13"
532
+ currentValue="3"
533
+ options={icon_options}
534
+ visualFocusIndex={-1}
535
+ lastOptionIndex={3}
536
+ multiple={false}
537
+ optional={false}
538
+ optionalItem={{ label: "Empty", value: "" }}
539
+ searchable={false}
540
+ handleOptionOnClick={() => {}}
541
+ styles={{ width: 360 }}
542
+ />
543
+ </ExampleContainer>
544
+ <ExampleContainer>
545
+ <Title title="Grouped icons (Material Symbols)" theme="light" level={4} />
546
+ <Listbox
547
+ id="x14"
548
+ currentValue={"4"}
549
+ options={icon_options_grouped_material}
550
+ visualFocusIndex={-1}
551
+ lastOptionIndex={3}
552
+ multiple={false}
553
+ optional={false}
554
+ optionalItem={{ label: "Empty", value: "" }}
555
+ searchable={false}
556
+ handleOptionOnClick={() => {}}
557
+ styles={{ width: 360 }}
558
+ />
559
+ </ExampleContainer>
560
+ <ExampleContainer>
561
+ <Title title="Grouped icons (Material)" theme="light" level={4} />
562
+ <Listbox
563
+ id="x15"
564
+ currentValue={["car", "motorcycle", "train"]}
565
+ options={options_material}
566
+ visualFocusIndex={-1}
567
+ lastOptionIndex={6}
568
+ multiple={true}
569
+ optional={false}
570
+ optionalItem={{ label: "Empty", value: "" }}
571
+ searchable={false}
572
+ handleOptionOnClick={() => {}}
573
+ styles={{ width: 360 }}
574
+ />
575
+ </ExampleContainer>
576
+ </ThemeProvider>
577
+ <ThemeProvider theme={colorsTheme.select}>
578
+ <Title title="Opinionated theme" theme="light" level={2} />
579
+ <ExampleContainer pseudoState="pseudo-hover">
580
+ <Title title="Hovered option" theme="light" level={4} />
581
+ <HalstackProvider theme={opinionatedTheme}>
582
+ <Listbox
583
+ id="x16"
584
+ currentValue=""
585
+ options={one_option}
586
+ visualFocusIndex={-1}
587
+ lastOptionIndex={0}
588
+ multiple={false}
589
+ optional={false}
590
+ optionalItem={{ label: "Empty", value: "" }}
591
+ searchable={false}
592
+ handleOptionOnClick={() => {}}
593
+ styles={{ width: 360 }}
594
+ />
595
+ </HalstackProvider>
596
+ </ExampleContainer>
597
+ <ExampleContainer pseudoState="pseudo-active">
598
+ <Title title="Active option" theme="light" level={4} />{" "}
599
+ <HalstackProvider theme={opinionatedTheme}>
600
+ <Listbox
601
+ id="x17"
602
+ currentValue=""
603
+ options={one_option}
604
+ visualFocusIndex={-1}
605
+ lastOptionIndex={0}
606
+ multiple={false}
607
+ optional={false}
608
+ optionalItem={{ label: "Empty", value: "" }}
609
+ searchable={false}
610
+ handleOptionOnClick={() => {}}
611
+ styles={{ width: 360 }}
612
+ />
613
+ </HalstackProvider>
614
+ </ExampleContainer>
615
+ <ExampleContainer>
616
+ <Title title="Focused option" theme="light" level={4} />{" "}
617
+ <HalstackProvider theme={opinionatedTheme}>
618
+ <Listbox
619
+ id="x18"
620
+ currentValue=""
621
+ options={one_option}
622
+ visualFocusIndex={0}
623
+ lastOptionIndex={0}
624
+ multiple={false}
625
+ optional={false}
626
+ optionalItem={{ label: "Empty", value: "" }}
627
+ searchable={false}
628
+ handleOptionOnClick={() => {}}
629
+ styles={{ width: 360 }}
630
+ />
631
+ </HalstackProvider>
632
+ </ExampleContainer>
633
+ <ExampleContainer pseudoState="pseudo-hover">
634
+ <Title title="Hovered selected option" theme="light" level={4} />{" "}
635
+ <HalstackProvider theme={opinionatedTheme}>
636
+ <Listbox
637
+ id="x19"
638
+ currentValue="1"
639
+ options={single_options}
640
+ visualFocusIndex={-1}
641
+ lastOptionIndex={3}
642
+ multiple={false}
643
+ optional={false}
644
+ optionalItem={{ label: "Empty", value: "" }}
645
+ searchable={false}
646
+ handleOptionOnClick={() => {}}
647
+ styles={{ width: 360 }}
648
+ />
649
+ </HalstackProvider>
650
+ </ExampleContainer>
651
+ <ExampleContainer pseudoState="pseudo-active">
652
+ <Title title="Active selected option" theme="light" level={4} />{" "}
653
+ <HalstackProvider theme={opinionatedTheme}>
654
+ <Listbox
655
+ id="x20"
656
+ currentValue="2"
657
+ options={single_options}
658
+ visualFocusIndex={0}
659
+ lastOptionIndex={3}
660
+ multiple={false}
661
+ optional={false}
662
+ optionalItem={{ label: "Empty", value: "" }}
663
+ searchable={false}
664
+ handleOptionOnClick={() => {}}
665
+ styles={{ width: 360 }}
666
+ />
667
+ </HalstackProvider>
668
+ </ExampleContainer>
669
+ <Title title="Listbox with icons" theme="light" level={3} />
670
+ <ExampleContainer>
671
+ <Title title="Icons (SVGs)" theme="light" level={4} />{" "}
672
+ <HalstackProvider theme={opinionatedTheme}>
673
+ <Listbox
674
+ id="x21"
675
+ currentValue="3"
676
+ options={icon_options}
677
+ visualFocusIndex={-1}
678
+ lastOptionIndex={3}
679
+ multiple={false}
680
+ optional={false}
681
+ optionalItem={{ label: "Empty", value: "" }}
682
+ searchable={false}
683
+ handleOptionOnClick={() => {}}
684
+ styles={{ width: 360 }}
685
+ />
686
+ </HalstackProvider>
687
+ </ExampleContainer>
688
+ </ThemeProvider>
689
+ </>
690
+ );
358
691
  };
359
- const DefaultSelect = () => (
692
+
693
+ const SearchableSelect = () => (
360
694
  <ExampleContainer expanded>
361
- <Title title="Default select" theme="light" level={4} />
362
- <DxcSelect label="Select label" options={single_options} optional placeholder="Choose an option" />
695
+ <Title title="Searchable select" theme="light" level={4} />
696
+ <DxcSelect label="Select Label" searchable options={single_options} placeholder="Choose an option" />
363
697
  </ExampleContainer>
364
698
  );
365
- const SearchableSelect = () => (
699
+
700
+ const SearchableSelectOpinionated = () => (
366
701
  <ExampleContainer expanded>
367
702
  <Title title="Searchable select" theme="light" level={4} />
368
- <DxcSelect label="Select Label" searchable options={single_options} placeholder="Choose an option" />
703
+ <HalstackProvider theme={opinionatedTheme}>
704
+ <DxcSelect label="Select Label" searchable options={single_options} placeholder="Choose an option" />
705
+ </HalstackProvider>
706
+ </ExampleContainer>
707
+ );
708
+
709
+ const SearchValue = () => (
710
+ <ExampleContainer expanded>
711
+ <Title title="Searchable select with value" theme="light" level={4} />
712
+ <DxcSelect
713
+ label="Select Label"
714
+ searchable
715
+ defaultValue="1"
716
+ options={single_options}
717
+ placeholder="Choose an option"
718
+ />
369
719
  </ExampleContainer>
370
720
  );
371
- const SearchableWithValue = () => (
721
+
722
+ const SearchValueOpinionated = () => (
372
723
  <ExampleContainer expanded>
373
724
  <Title title="Searchable select with value" theme="light" level={4} />
374
- <DxcSelect label="Select Label" searchable defaultValue="1" options={single_options} placeholder="Choose an option" />
725
+ <HalstackProvider theme={opinionatedTheme}>
726
+ <DxcSelect
727
+ label="Select Label"
728
+ searchable
729
+ defaultValue="1"
730
+ options={single_options}
731
+ placeholder="Choose an option"
732
+ />
733
+ </HalstackProvider>
375
734
  </ExampleContainer>
376
735
  );
377
736
 
@@ -389,78 +748,66 @@ const MultipleSelect = () => (
389
748
  </ExampleContainer>
390
749
  </>
391
750
  );
392
- const DefaultGroupedOptionsSelect = () => (
393
- <ExampleContainer expanded>
394
- <Title title="Grouped options simple select" theme="light" level={4} />
395
- <DxcSelect label="Label" options={group_options} defaultValue="9" placeholder="Choose an option" />
396
- </ExampleContainer>
397
- );
398
- const MultipleGroupedOptionsSelect = () => (
399
- <ExampleContainer expanded>
400
- <Title title="Grouped options multiple select" theme="light" level={4} />
401
- <DxcSelect label="Label" options={group_options} defaultValue={["0", "2"]} multiple placeholder="Choose an option" />
402
- </ExampleContainer>
403
- );
404
- const RescaledIcons = () => (
751
+
752
+ const MultipleSelectOpinionated = () => (
405
753
  <ExampleContainer expanded>
406
- <Title title="Rescaled icons displayed" theme="light" level={4} />
407
- <DxcSelect label="Label" options={url_options} defaultValue="facebook" placeholder="Choose an option" />
754
+ <Title title="Multiple select" theme="light" level={4} />
755
+ <HalstackProvider theme={opinionatedTheme}>
756
+ <DxcSelect
757
+ label="Select label"
758
+ options={single_options}
759
+ defaultValue={["1", "4"]}
760
+ multiple
761
+ placeholder="Choose an option"
762
+ />
763
+ </HalstackProvider>
408
764
  </ExampleContainer>
409
765
  );
410
- const SelectWithIcons = () => (
766
+
767
+ const DefaultGroupedOptionsSelect = () => (
411
768
  <ExampleContainer expanded>
412
- <Title title="Normal icons displayed" theme="light" level={4} />
413
- <DxcSelect label="Label" options={icon_options} defaultValue="3" placeholder="Choose an option" />
769
+ <Title title="Grouped options simple select" theme="light" level={4} />
770
+ <DxcSelect label="Label" options={group_options} defaultValue="9" placeholder="Choose an option" />
414
771
  </ExampleContainer>
415
772
  );
416
- const SelectMultipleWithIcons = () => (
773
+
774
+ const DefaultGroupedOptionsSelectOpinionated = () => (
417
775
  <ExampleContainer expanded>
418
- <Title title="Multiple select with icons" theme="light" level={4} />
419
- <DxcSelect label="Label" options={icon_options} multiple defaultValue={["1", "3"]} placeholder="Choose an option" />
776
+ <Title title="Grouped options simple select" theme="light" level={4} />
777
+ <HalstackProvider theme={opinionatedTheme}>
778
+ <DxcSelect label="Label" options={group_options} defaultValue="9" placeholder="Choose an option" />
779
+ </HalstackProvider>
420
780
  </ExampleContainer>
421
781
  );
422
- const MultipleGroupedOptionsSelectWithIcons = () => (
782
+
783
+ const MultipleGroupedOptionsSelect = () => (
423
784
  <ExampleContainer expanded>
424
- <Title title="Multiple grouped options with icons" theme="light" level={4} />
785
+ <Title title="Grouped options multiple select" theme="light" level={4} />
425
786
  <DxcSelect
426
787
  label="Label"
427
- options={icon_options_grouped}
788
+ options={group_options}
789
+ defaultValue={["0", "2"]}
428
790
  multiple
429
- defaultValue={["3", "2"]}
430
791
  placeholder="Choose an option"
431
792
  />
432
793
  </ExampleContainer>
433
794
  );
434
- const OnlyOneOptionHovered = () => (
435
- <ExampleContainer pseudoState="pseudo-hover" expanded>
436
- <Title title="Hovered Option" theme="light" level={4} />
437
- <DxcSelect label="Hovered" options={one_option} placeholder="Choose an option" />
438
- </ExampleContainer>
439
- );
440
- const OnlyOneOptionFocused = () => (
441
- <ExampleContainer pseudoState="pseudo-focus" expanded>
442
- <Title title="Focused Option" theme="light" level={4} />
443
- <DxcSelect label="Focused" options={one_option} placeholder="Choose an option" />
444
- </ExampleContainer>
445
- );
446
- const OnlyOneOptionActived = () => (
447
- <ExampleContainer pseudoState="pseudo-active" expanded>
448
- <Title title="Actived Option" theme="light" level={4} />
449
- <DxcSelect label="Actived" options={one_option} placeholder="Choose an option" />
450
- </ExampleContainer>
451
- );
452
- const SelectedOptionHovered = () => (
453
- <ExampleContainer pseudoState="pseudo-hover" expanded>
454
- <Title title="Hovered Selected Option" theme="light" level={4} />
455
- <DxcSelect label="Hovered" defaultValue="1" options={one_option} placeholder="Choose an option" />
456
- </ExampleContainer>
457
- );
458
- const SelectedOptionActived = () => (
459
- <ExampleContainer pseudoState="pseudo-active" expanded>
460
- <Title title="Actived Selected Option" theme="light" level={4} />
461
- <DxcSelect label="Actived" defaultValue="1" options={one_option} placeholder="Choose an option" />
795
+
796
+ const MultipleGroupedOptionsSelectOpinionated = () => (
797
+ <ExampleContainer expanded>
798
+ <Title title="Grouped options multiple select" theme="light" level={4} />
799
+ <HalstackProvider theme={opinionatedTheme}>
800
+ <DxcSelect
801
+ label="Label"
802
+ options={group_options}
803
+ defaultValue={["0", "2"]}
804
+ multiple
805
+ placeholder="Choose an option"
806
+ />
807
+ </HalstackProvider>
462
808
  </ExampleContainer>
463
809
  );
810
+
464
811
  const MultipleSearchable = () => (
465
812
  <ExampleContainer expanded>
466
813
  <Title title="Searchable multiple select with value" theme="light" level={4} />
@@ -474,108 +821,107 @@ const MultipleSearchable = () => (
474
821
  />
475
822
  </ExampleContainer>
476
823
  );
477
- export const OptionsDisplayed = DefaultSelect.bind({});
478
- OptionsDisplayed.play = async ({ canvasElement }) => {
824
+
825
+ const MultipleSearchableOpinionated = () => (
826
+ <ExampleContainer expanded>
827
+ <Title title="Searchable multiple select with value" theme="light" level={4} />
828
+ <HalstackProvider theme={opinionatedTheme}>
829
+ <DxcSelect
830
+ label="Select Label"
831
+ searchable
832
+ multiple
833
+ defaultValue={["1", "4"]}
834
+ options={single_options}
835
+ placeholder="Choose an option"
836
+ />
837
+ </HalstackProvider>
838
+ </ExampleContainer>
839
+ );
840
+
841
+ export const Chromatic = Select.bind({});
842
+ Chromatic.play = async ({ canvasElement }) => {
843
+ const canvas = within(canvasElement);
844
+ await userEvent.click(canvas.getAllByRole("combobox")[24]);
845
+ };
846
+
847
+ export const ListboxStates = SelectListbox.bind({});
848
+ ListboxStates.play = async ({ canvasElement }) => {
479
849
  const canvas = within(canvasElement);
480
850
  const select = canvas.getByRole("combobox");
481
851
  await userEvent.click(select);
482
852
  };
853
+
483
854
  export const Searchable = SearchableSelect.bind({});
484
855
  Searchable.play = async ({ canvasElement }) => {
485
856
  const canvas = within(canvasElement);
486
- await userEvent.click(canvas.getByRole("combobox"));
487
- await waitFor(async () => {
488
- userEvent.type(canvas.getByRole("combobox"), "r");
489
- });
857
+ await userEvent.type(canvas.getByRole("combobox"), "r");
490
858
  };
491
- export const SelectSearchableWithValue = SearchableWithValue.bind({});
492
- SelectSearchableWithValue.play = async ({ canvasElement }) => {
859
+
860
+ export const SearchableOpinionated = SearchableSelectOpinionated.bind({});
861
+ SearchableOpinionated.play = async ({ canvasElement }) => {
493
862
  const canvas = within(canvasElement);
494
- await userEvent.click(canvas.getByRole("combobox"));
863
+ await userEvent.type(canvas.getByRole("combobox"), "r");
495
864
  };
496
865
 
497
- export const SelectMultipleSearchableWithValue = MultipleSearchable.bind({});
498
- SelectMultipleSearchableWithValue.play = async ({ canvasElement }) => {
866
+ export const SearchableWithValue = SearchValue.bind({});
867
+ SearchableWithValue.play = async ({ canvasElement }) => {
499
868
  const canvas = within(canvasElement);
500
- await userEvent.click(canvas.getAllByRole("combobox")[0]);
869
+ await userEvent.click(canvas.getByRole("combobox"));
501
870
  };
502
871
 
503
- export const GroupOptionsDisplayed = DefaultGroupedOptionsSelect.bind({});
504
- GroupOptionsDisplayed.play = async ({ canvasElement }) => {
872
+ export const SearchableWithValueOpinionated = SearchValueOpinionated.bind({});
873
+ SearchableWithValueOpinionated.play = async ({ canvasElement }) => {
505
874
  const canvas = within(canvasElement);
506
- const select = canvas.getByRole("combobox");
507
- await userEvent.click(select);
875
+ await userEvent.click(canvas.getByRole("combobox"));
508
876
  };
509
877
 
510
- export const SelectMultipleOptionsDisplayed = MultipleSelect.bind({});
511
- SelectMultipleOptionsDisplayed.play = async ({ canvasElement }) => {
878
+ export const MultipleSearchableWithValue = MultipleSearchable.bind({});
879
+ MultipleSearchableWithValue.play = async ({ canvasElement }) => {
512
880
  const canvas = within(canvasElement);
513
881
  await userEvent.click(canvas.getAllByRole("combobox")[0]);
514
882
  };
515
883
 
516
- export const SelectMultipleGroupedOptionsDisplayed = MultipleGroupedOptionsSelect.bind({});
517
- SelectMultipleGroupedOptionsDisplayed.play = async ({ canvasElement }) => {
884
+ export const MultipleSearchableWithValueOpinionated = MultipleSearchableOpinionated.bind({});
885
+ MultipleSearchableWithValueOpinionated.play = async ({ canvasElement }) => {
518
886
  const canvas = within(canvasElement);
519
- const select = canvas.getByRole("combobox");
520
- await userEvent.click(select);
521
- };
522
- export const SelectWithIconsDisplayed = SelectWithIcons.bind({});
523
- SelectWithIconsDisplayed.play = async ({ canvasElement }) => {
524
- const canvas = within(canvasElement);
525
- const select = canvas.getByRole("combobox");
526
- await userEvent.click(select);
887
+ await userEvent.click(canvas.getAllByRole("combobox")[0]);
527
888
  };
528
889
 
529
- export const SelectWithRescaledIconsDisplayed = RescaledIcons.bind({});
530
- SelectWithRescaledIconsDisplayed.play = async ({ canvasElement }) => {
531
- const canvas = within(canvasElement);
532
- const select = canvas.getByRole("combobox");
533
- await userEvent.click(select);
534
- };
535
- export const SelectMultipleWithIconsDisplayed = SelectMultipleWithIcons.bind({});
536
- SelectMultipleWithIconsDisplayed.play = async ({ canvasElement }) => {
890
+ export const GroupOptionsDisplayed = DefaultGroupedOptionsSelect.bind({});
891
+ GroupOptionsDisplayed.play = async ({ canvasElement }) => {
537
892
  const canvas = within(canvasElement);
538
893
  const select = canvas.getByRole("combobox");
539
894
  await userEvent.click(select);
540
895
  };
541
896
 
542
- export const SelectMultipleGroupedWithIconsDisplayed = MultipleGroupedOptionsSelectWithIcons.bind({});
543
- SelectMultipleGroupedWithIconsDisplayed.play = async ({ canvasElement }) => {
897
+ export const GroupOptionsDisplayedOpinionated = DefaultGroupedOptionsSelectOpinionated.bind({});
898
+ GroupOptionsDisplayedOpinionated.play = async ({ canvasElement }) => {
544
899
  const canvas = within(canvasElement);
545
900
  const select = canvas.getByRole("combobox");
546
901
  await userEvent.click(select);
547
902
  };
548
903
 
549
- export const OptionHovered = OnlyOneOptionHovered.bind({});
550
- OptionHovered.play = async ({ canvasElement }) => {
904
+ export const MultipleOptionsDisplayed = MultipleSelect.bind({});
905
+ MultipleOptionsDisplayed.play = async ({ canvasElement }) => {
551
906
  const canvas = within(canvasElement);
552
- const select = canvas.getByRole("combobox");
553
- await userEvent.click(select);
907
+ await userEvent.click(canvas.getAllByRole("combobox")[0]);
554
908
  };
555
909
 
556
- export const OptionFocused = OnlyOneOptionFocused.bind({});
557
- OptionFocused.play = async ({ canvasElement }) => {
558
- const canvas = within(canvasElement);
559
- const select = canvas.getByRole("combobox");
560
- await userEvent.click(select);
561
- await waitFor(async () => {
562
- fireEvent.keyDown(select, { key: "ArrowDown", code: "ArrowDown", keyCode: 40, charCode: 40 });
563
- });
564
- };
565
- export const OptionActived = OnlyOneOptionActived.bind({});
566
- OptionActived.play = async ({ canvasElement }) => {
910
+ export const MultipleOptionsDisplayedOpinionated = MultipleSelectOpinionated.bind({});
911
+ MultipleOptionsDisplayedOpinionated.play = async ({ canvasElement }) => {
567
912
  const canvas = within(canvasElement);
568
- const select = canvas.getByRole("combobox");
569
- await userEvent.click(select);
913
+ await userEvent.click(canvas.getAllByRole("combobox")[0]);
570
914
  };
571
- export const OptionSelectedHovered = SelectedOptionHovered.bind({});
572
- OptionSelectedHovered.play = async ({ canvasElement }) => {
915
+
916
+ export const MultipleGroupedOptionsDisplayed = MultipleGroupedOptionsSelect.bind({});
917
+ MultipleGroupedOptionsDisplayed.play = async ({ canvasElement }) => {
573
918
  const canvas = within(canvasElement);
574
919
  const select = canvas.getByRole("combobox");
575
920
  await userEvent.click(select);
576
921
  };
577
- export const OptionSelectedActived = SelectedOptionActived.bind({});
578
- OptionSelectedActived.play = async ({ canvasElement }) => {
922
+
923
+ export const MultipleGroupedOptionsDisplayedOpinionated = MultipleGroupedOptionsSelectOpinionated.bind({});
924
+ MultipleGroupedOptionsDisplayedOpinionated.play = async ({ canvasElement }) => {
579
925
  const canvas = within(canvasElement);
580
926
  const select = canvas.getByRole("combobox");
581
927
  await userEvent.click(select);