@dxc-technology/halstack-react 0.0.0-e33af28 → 0.0.0-e360842

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 (504) hide show
  1. package/BackgroundColorContext.d.ts +1 -10
  2. package/BackgroundColorContext.js +5 -22
  3. package/HalstackContext.d.ts +1243 -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 +101 -159
  10. package/accordion/Accordion.stories.tsx +83 -149
  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/bleed/Bleed.js +14 -55
  50. package/bleed/Bleed.stories.tsx +95 -95
  51. package/bleed/types.d.ts +2 -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 +137 -172
  98. package/checkbox/Checkbox.stories.tsx +166 -136
  99. package/checkbox/Checkbox.test.d.ts +1 -0
  100. package/checkbox/Checkbox.test.js +159 -38
  101. package/checkbox/types.d.ts +14 -6
  102. package/chip/Chip.accessibility.test.d.ts +1 -0
  103. package/chip/Chip.accessibility.test.js +69 -0
  104. package/chip/Chip.js +43 -89
  105. package/chip/Chip.stories.tsx +140 -28
  106. package/chip/Chip.test.d.ts +1 -0
  107. package/chip/Chip.test.js +17 -32
  108. package/chip/types.d.ts +38 -15
  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 +1389 -0
  114. package/common/variables.js +1073 -1184
  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 +152 -299
  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 +700 -370
  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 +72 -15
  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 +61 -106
  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 +75 -118
  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 +95 -185
  210. package/header/Header.stories.tsx +133 -38
  211. package/header/Header.test.d.ts +1 -0
  212. package/header/Header.test.js +12 -25
  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 +2 -2
  239. package/layout/ApplicationLayout.d.ts +16 -6
  240. package/layout/ApplicationLayout.js +86 -167
  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 +16 -13
  254. package/main.js +83 -106
  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 +46 -36
  271. package/number-input/NumberInput.stories.tsx +42 -26
  272. package/number-input/NumberInput.test.d.ts +1 -0
  273. package/number-input/NumberInput.test.js +859 -376
  274. package/number-input/NumberInputContext.d.ts +3 -4
  275. package/number-input/NumberInputContext.js +3 -14
  276. package/number-input/types.d.ts +18 -6
  277. package/package.json +52 -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 +159 -142
  296. package/password-input/types.d.ts +9 -8
  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.js +71 -43
  307. package/quick-nav/QuickNav.stories.tsx +146 -27
  308. package/quick-nav/types.d.ts +10 -10
  309. package/radio-group/Radio.d.ts +1 -1
  310. package/radio-group/Radio.js +59 -79
  311. package/radio-group/RadioGroup.accessibility.test.d.ts +1 -0
  312. package/radio-group/RadioGroup.accessibility.test.js +97 -0
  313. package/radio-group/RadioGroup.js +74 -121
  314. package/radio-group/RadioGroup.stories.tsx +132 -18
  315. package/radio-group/RadioGroup.test.d.ts +1 -0
  316. package/radio-group/RadioGroup.test.js +518 -459
  317. package/radio-group/types.d.ts +10 -10
  318. package/resultset-table/Icons.d.ts +7 -0
  319. package/resultset-table/Icons.js +47 -0
  320. package/resultset-table/ResultsetTable.accessibility.test.d.ts +1 -0
  321. package/resultset-table/ResultsetTable.accessibility.test.js +285 -0
  322. package/resultset-table/ResultsetTable.d.ts +7 -0
  323. package/resultset-table/ResultsetTable.js +171 -0
  324. package/{resultsetTable → resultset-table}/ResultsetTable.stories.tsx +168 -30
  325. package/resultset-table/ResultsetTable.test.d.ts +1 -0
  326. package/resultset-table/ResultsetTable.test.js +380 -0
  327. package/{resultsetTable → resultset-table}/types.d.ts +44 -11
  328. package/resultset-table/types.js +5 -0
  329. package/select/Listbox.d.ts +4 -0
  330. package/select/Listbox.js +151 -0
  331. package/select/Option.js +35 -56
  332. package/select/Select.accessibility.test.d.ts +1 -0
  333. package/select/Select.accessibility.test.js +228 -0
  334. package/select/Select.js +210 -342
  335. package/select/Select.stories.tsx +524 -187
  336. package/select/Select.test.d.ts +1 -0
  337. package/select/Select.test.js +1955 -1744
  338. package/select/types.d.ts +33 -18
  339. package/sidenav/Sidenav.accessibility.test.d.ts +1 -0
  340. package/sidenav/Sidenav.accessibility.test.js +59 -0
  341. package/sidenav/Sidenav.d.ts +6 -5
  342. package/sidenav/Sidenav.js +136 -71
  343. package/sidenav/Sidenav.stories.tsx +246 -151
  344. package/sidenav/Sidenav.test.d.ts +1 -0
  345. package/sidenav/Sidenav.test.js +25 -44
  346. package/sidenav/SidenavContext.d.ts +5 -0
  347. package/sidenav/SidenavContext.js +13 -0
  348. package/sidenav/types.d.ts +52 -26
  349. package/slider/Slider.accessibility.test.d.ts +1 -0
  350. package/slider/Slider.accessibility.test.js +104 -0
  351. package/slider/Slider.d.ts +2 -2
  352. package/slider/Slider.js +146 -181
  353. package/slider/Slider.stories.tsx +64 -61
  354. package/slider/Slider.test.d.ts +1 -0
  355. package/slider/Slider.test.js +195 -88
  356. package/slider/types.d.ts +7 -3
  357. package/spinner/Spinner.accessibility.test.d.ts +1 -0
  358. package/spinner/Spinner.accessibility.test.js +96 -0
  359. package/spinner/Spinner.js +34 -74
  360. package/spinner/{Spinner.stories.jsx → Spinner.stories.tsx} +53 -27
  361. package/spinner/Spinner.test.d.ts +1 -0
  362. package/spinner/Spinner.test.js +25 -34
  363. package/spinner/types.d.ts +3 -3
  364. package/status-light/StatusLight.accessibility.test.d.ts +1 -0
  365. package/status-light/StatusLight.accessibility.test.js +157 -0
  366. package/status-light/StatusLight.d.ts +4 -0
  367. package/status-light/StatusLight.js +51 -0
  368. package/status-light/StatusLight.stories.tsx +74 -0
  369. package/status-light/StatusLight.test.d.ts +1 -0
  370. package/status-light/StatusLight.test.js +25 -0
  371. package/status-light/types.d.ts +17 -0
  372. package/status-light/types.js +5 -0
  373. package/switch/Switch.accessibility.test.d.ts +1 -0
  374. package/switch/Switch.accessibility.test.js +98 -0
  375. package/switch/Switch.d.ts +2 -2
  376. package/switch/Switch.js +143 -124
  377. package/switch/Switch.stories.tsx +53 -64
  378. package/switch/Switch.test.d.ts +1 -0
  379. package/switch/Switch.test.js +137 -55
  380. package/switch/types.d.ts +9 -5
  381. package/table/DropdownTheme.js +62 -0
  382. package/table/Table.accessibility.test.d.ts +1 -0
  383. package/table/Table.accessibility.test.js +93 -0
  384. package/table/Table.d.ts +6 -2
  385. package/table/Table.js +78 -35
  386. package/table/Table.stories.tsx +663 -0
  387. package/table/Table.test.d.ts +1 -0
  388. package/table/Table.test.js +93 -7
  389. package/table/types.d.ts +34 -6
  390. package/tabs/Tab.d.ts +4 -0
  391. package/tabs/Tab.js +117 -0
  392. package/tabs/Tabs.accessibility.test.d.ts +1 -0
  393. package/tabs/Tabs.accessibility.test.js +56 -0
  394. package/tabs/Tabs.js +303 -141
  395. package/tabs/Tabs.stories.tsx +124 -12
  396. package/tabs/Tabs.test.d.ts +1 -0
  397. package/tabs/Tabs.test.js +212 -76
  398. package/tabs/types.d.ts +30 -20
  399. package/tag/Tag.accessibility.test.d.ts +1 -0
  400. package/tag/Tag.accessibility.test.js +69 -0
  401. package/tag/Tag.js +38 -73
  402. package/tag/Tag.stories.tsx +18 -8
  403. package/tag/Tag.test.d.ts +1 -0
  404. package/tag/Tag.test.js +17 -36
  405. package/tag/types.d.ts +9 -9
  406. package/text-input/Suggestion.d.ts +4 -0
  407. package/text-input/Suggestion.js +67 -0
  408. package/text-input/Suggestions.d.ts +4 -0
  409. package/text-input/Suggestions.js +94 -0
  410. package/text-input/TextInput.accessibility.test.d.ts +1 -0
  411. package/text-input/TextInput.accessibility.test.js +321 -0
  412. package/text-input/TextInput.js +326 -553
  413. package/text-input/TextInput.stories.tsx +276 -276
  414. package/text-input/TextInput.test.d.ts +1 -0
  415. package/text-input/TextInput.test.js +1419 -1375
  416. package/text-input/types.d.ts +53 -14
  417. package/textarea/Textarea.accessibility.test.d.ts +1 -0
  418. package/textarea/Textarea.accessibility.test.js +155 -0
  419. package/textarea/Textarea.js +79 -133
  420. package/textarea/Textarea.stories.tsx +174 -0
  421. package/textarea/Textarea.test.d.ts +1 -0
  422. package/textarea/Textarea.test.js +151 -182
  423. package/textarea/types.d.ts +10 -6
  424. package/toggle-group/ToggleGroup.accessibility.test.d.ts +1 -0
  425. package/toggle-group/ToggleGroup.accessibility.test.js +107 -0
  426. package/toggle-group/ToggleGroup.d.ts +2 -2
  427. package/toggle-group/ToggleGroup.js +92 -108
  428. package/toggle-group/ToggleGroup.stories.tsx +52 -7
  429. package/toggle-group/ToggleGroup.test.d.ts +1 -0
  430. package/toggle-group/ToggleGroup.test.js +68 -87
  431. package/toggle-group/types.d.ts +28 -19
  432. package/typography/Typography.accessibility.test.d.ts +1 -0
  433. package/typography/Typography.accessibility.test.js +339 -0
  434. package/typography/Typography.d.ts +4 -0
  435. package/typography/Typography.js +23 -0
  436. package/typography/Typography.stories.tsx +198 -0
  437. package/typography/types.d.ts +18 -0
  438. package/typography/types.js +5 -0
  439. package/useTheme.d.ts +1141 -1
  440. package/useTheme.js +4 -11
  441. package/useTranslatedLabels.d.ts +85 -0
  442. package/useTranslatedLabels.js +14 -0
  443. package/utils/BaseTypography.d.ts +21 -0
  444. package/utils/BaseTypography.js +94 -0
  445. package/utils/FocusLock.d.ts +13 -0
  446. package/utils/FocusLock.js +124 -0
  447. package/wizard/Wizard.accessibility.test.d.ts +1 -0
  448. package/wizard/Wizard.accessibility.test.js +55 -0
  449. package/wizard/Wizard.js +66 -113
  450. package/wizard/Wizard.stories.tsx +59 -1
  451. package/wizard/Wizard.test.d.ts +1 -0
  452. package/wizard/Wizard.test.js +53 -80
  453. package/wizard/types.d.ts +9 -9
  454. package/ThemeContext.d.ts +0 -10
  455. package/ThemeContext.js +0 -243
  456. package/card/ice-cream.jpg +0 -0
  457. package/common/OpenSans.css +0 -81
  458. package/common/RequiredComponent.js +0 -32
  459. package/common/fonts/OpenSans-Bold.ttf +0 -0
  460. package/common/fonts/OpenSans-BoldItalic.ttf +0 -0
  461. package/common/fonts/OpenSans-ExtraBold.ttf +0 -0
  462. package/common/fonts/OpenSans-ExtraBoldItalic.ttf +0 -0
  463. package/common/fonts/OpenSans-Italic.ttf +0 -0
  464. package/common/fonts/OpenSans-Light.ttf +0 -0
  465. package/common/fonts/OpenSans-LightItalic.ttf +0 -0
  466. package/common/fonts/OpenSans-Regular.ttf +0 -0
  467. package/common/fonts/OpenSans-SemiBold.ttf +0 -0
  468. package/common/fonts/OpenSans-SemiBoldItalic.ttf +0 -0
  469. package/list/List.d.ts +0 -4
  470. package/list/List.js +0 -47
  471. package/list/List.stories.tsx +0 -95
  472. package/list/types.d.ts +0 -7
  473. package/number-input/numberInputContextTypes.d.ts +0 -19
  474. package/paginator/Icons.js +0 -66
  475. package/progress-bar/ProgressBar.stories.jsx +0 -58
  476. package/radio/Radio.d.ts +0 -4
  477. package/radio/Radio.js +0 -174
  478. package/radio/Radio.stories.tsx +0 -192
  479. package/radio/Radio.test.js +0 -71
  480. package/radio/types.d.ts +0 -54
  481. package/resultsetTable/ResultsetTable.d.ts +0 -4
  482. package/resultsetTable/ResultsetTable.js +0 -254
  483. package/resultsetTable/ResultsetTable.test.js +0 -306
  484. package/row/Row.d.ts +0 -3
  485. package/row/Row.js +0 -127
  486. package/row/Row.stories.tsx +0 -237
  487. package/row/types.d.ts +0 -28
  488. package/select/Icons.d.ts +0 -10
  489. package/select/Icons.js +0 -93
  490. package/stack/Stack.d.ts +0 -3
  491. package/stack/Stack.js +0 -97
  492. package/stack/Stack.stories.tsx +0 -164
  493. package/stack/types.d.ts +0 -24
  494. package/table/Table.stories.jsx +0 -277
  495. package/text/Text.d.ts +0 -7
  496. package/text/Text.js +0 -30
  497. package/text/Text.stories.tsx +0 -19
  498. package/textarea/Textarea.stories.jsx +0 -157
  499. /package/{list → action-icon}/types.js +0 -0
  500. /package/{radio → breadcrumbs}/types.js +0 -0
  501. /package/{resultsetTable → bulleted-list}/types.js +0 -0
  502. /package/{row → container}/types.js +0 -0
  503. /package/{stack → contextual-menu}/types.js +0 -0
  504. /package/{number-input/numberInputContextTypes.js → divider/types.js} +0 -0
@@ -1,25 +1,39 @@
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/testing-library";
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";
10
12
 
11
13
  export default {
12
14
  title: "Select",
13
15
  component: DxcSelect,
16
+ parameters: {
17
+ a11y: {
18
+ config: {
19
+ rules: [
20
+ ...disabledRules.map((ruleId) => ({ id: ruleId, reviewOnFail: true })),
21
+ ...preview?.parameters?.a11y?.config?.rules,
22
+ ],
23
+ },
24
+ },
25
+ },
14
26
  };
15
27
 
16
28
  const one_option = [{ label: "Option 01", value: "1" }];
29
+
17
30
  const single_options = [
18
31
  { label: "Option 01", value: "1" },
19
32
  { label: "Option 02", value: "2" },
20
33
  { label: "Option 03", value: "3" },
21
34
  { label: "Option 04", value: "4" },
22
35
  ];
36
+
23
37
  const group_options = [
24
38
  {
25
39
  label: "Group 001",
@@ -62,25 +76,15 @@ const group_options = [
62
76
  ],
63
77
  },
64
78
  ];
65
- const icon_options_grouped = [
79
+
80
+ const icon_options_grouped_material = [
66
81
  {
67
82
  label: "Group 001",
68
83
  options: [
69
84
  {
70
85
  label: "3G Mobile",
71
86
  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
- ),
87
+ icon: "3g_mobiledata",
84
88
  },
85
89
  ],
86
90
  },
@@ -90,12 +94,7 @@ const icon_options_grouped = [
90
94
  {
91
95
  label: "Ethernet",
92
96
  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
- ),
97
+ icon: "settings_ethernet",
99
98
  },
100
99
  ],
101
100
  },
@@ -105,26 +104,17 @@ const icon_options_grouped = [
105
104
  {
106
105
  label: "Wi-fi",
107
106
  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
- ),
107
+ icon: "wifi",
114
108
  },
115
109
  {
116
110
  label: "Settings backup restore (just for previous configuration)",
117
111
  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
- ),
112
+ icon: "settings_backup_restore",
124
113
  },
125
114
  ],
126
115
  },
127
116
  ];
117
+
128
118
  const icon_options = [
129
119
  {
130
120
  label: "3G Mobile",
@@ -173,60 +163,70 @@ const icon_options = [
173
163
  ),
174
164
  },
175
165
  ];
176
- const url_options = [
166
+
167
+ const options_material = [
177
168
  {
178
- label: "Social Media",
169
+ label: "Transport",
179
170
  options: [
180
171
  {
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",
172
+ label: "Electric Car",
173
+ value: "car",
174
+ icon: "electric_car",
184
175
  },
185
176
  {
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",
177
+ label: "Motorcycle",
178
+ value: "motorcycle",
179
+ icon: "Motorcycle",
189
180
  },
190
181
  {
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",
182
+ label: "Train",
183
+ value: "train",
184
+ icon: "train",
194
185
  },
195
186
  {
196
- label: "Pinterest",
197
- value: "pinterest",
198
- icon: "https://cdn-icons-png.flaticon.com/512/145/145808.png",
187
+ label: "Bike",
188
+ value: "bike",
189
+ icon: "pedal_bike",
199
190
  },
200
191
  ],
201
192
  },
202
193
  {
203
- label: "Design",
194
+ label: "Entertainment",
204
195
  options: [
205
196
  {
206
- label: "Figma",
207
- value: "figma",
208
- icon: "https://logowik.com/content/uploads/images/figma.jpg",
197
+ label: "Movie",
198
+ value: "movie",
199
+ icon: "movie",
209
200
  },
210
201
  {
211
- label: "Adobe XD",
212
- value: "adobexd",
213
- icon: "https://cdn.worldvectorlogo.com/logos/adobe-xd-2.svg",
202
+ label: "Music",
203
+ value: "music",
204
+ icon: "music_note",
214
205
  },
215
206
  {
216
- label: "Sketch",
217
- value: "sketch",
218
- icon: "https://cdn.worldvectorlogo.com/logos/sketch-2.svg",
207
+ label: "Games",
208
+ value: "games",
209
+ icon: "joystick",
219
210
  },
220
211
  ],
221
212
  },
222
213
  ];
214
+
223
215
  const optionsWithEllipsisMedium = [
224
216
  { label: "Optiond1234567890123456789012345678901234", value: "1" },
225
217
  { label: "Optiond12345678901234567890123456789012345", value: "2" },
226
218
  { label: "Option 031111111111111111111111111111222", value: "3" },
227
- { label: "Option 03111111111111111111111111111222", value: "4" },
228
219
  ];
229
220
 
221
+ const opinionatedTheme = {
222
+ select: {
223
+ selectedOptionBackgroundColor: "#e6f4ff",
224
+ fontColor: "#000000",
225
+ optionFontColor: "#000000",
226
+ hoverBorderColor: "#a46ede",
227
+ },
228
+ };
229
+
230
230
  const Select = () => (
231
231
  <>
232
232
  <Title title="States" theme="light" level={2} />
@@ -339,39 +339,389 @@ const Select = () => (
339
339
  <Title title="Multiple selection with ellipsis" theme="light" level={4} />
340
340
  <DxcSelect label="Label" options={single_options} multiple defaultValue={["1", "2", "3", "4"]} />
341
341
  <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} />
342
+ <DxcSelect label="Label" options={optionsWithEllipsisMedium} defaultValue="1" />
343
+ <Title title="Options with ellipsis" theme="light" level={4} />
344
344
  <DxcSelect
345
345
  label="Label"
346
346
  placeholder="Choose an option"
347
347
  defaultValue="1"
348
348
  options={optionsWithEllipsisMedium}
349
- size="medium"
349
+ margin={{ top: "xxlarge" }}
350
350
  />
351
351
  </ExampleContainer>
352
+ <Title title="Opinionated theme" theme="light" level={2} />
353
+ <ExampleContainer pseudoState="pseudo-hover">
354
+ <Title title="Hovered" theme="light" level={4} />
355
+ <HalstackProvider theme={opinionatedTheme}>
356
+ <DxcSelect label="Hovered" options={single_options} />
357
+ </HalstackProvider>
358
+ </ExampleContainer>
359
+ <ExampleContainer pseudoState="pseudo-focus-within">
360
+ <Title title="Focused" theme="light" level={4} />
361
+ <HalstackProvider theme={opinionatedTheme}>
362
+ <DxcSelect label="Focused" options={single_options} />
363
+ </HalstackProvider>
364
+ </ExampleContainer>
365
+ <ExampleContainer>
366
+ <Title title="Disabled" theme="light" level={4} />
367
+ <HalstackProvider theme={opinionatedTheme}>
368
+ <DxcSelect label="Disabled" placeholder="Placeholder" disabled options={single_options} />
369
+ </HalstackProvider>
370
+ </ExampleContainer>
371
+ <ExampleContainer>
372
+ <Title title="Disabled with value" theme="light" level={4} />
373
+ <HalstackProvider theme={opinionatedTheme}>
374
+ <DxcSelect label="Disabled with value" disabled options={single_options} defaultValue="1" />
375
+ </HalstackProvider>
376
+ </ExampleContainer>
377
+ <ExampleContainer>
378
+ <Title title="Error" theme="light" level={4} />
379
+ <HalstackProvider theme={opinionatedTheme}>
380
+ <DxcSelect
381
+ label="Label"
382
+ options={single_options}
383
+ error="Error message."
384
+ helperText="Helper text"
385
+ placeholder="Placeholder"
386
+ />
387
+ <ExampleContainer>
388
+ <Title title="Multiple selection" theme="light" level={4} />
389
+ <DxcSelect label="Multiple select" searchable options={single_options} multiple defaultValue={["1", "2"]} />
390
+ </ExampleContainer>
391
+ <ExampleContainer pseudoState="pseudo-hover">
392
+ <Title title="Multiple clear hovered" theme="light" level={4} />
393
+ <DxcSelect label="Multiple select" options={single_options} multiple defaultValue={["1", "2"]} />
394
+ </ExampleContainer>
395
+ <ExampleContainer pseudoState="pseudo-active">
396
+ <Title title="Multiple clear actived" theme="light" level={4} />
397
+ <DxcSelect label="Multiple select" options={single_options} multiple defaultValue={["1", "2"]} />
398
+ </ExampleContainer>
399
+ </HalstackProvider>
400
+ </ExampleContainer>
352
401
  </>
353
402
  );
354
- export const Chromatic = Select.bind({});
355
- Chromatic.play = async ({ canvasElement }) => {
356
- const canvas = within(canvasElement);
357
- await userEvent.click(canvas.getAllByRole("combobox")[24]);
403
+
404
+ const SelectListbox = () => {
405
+ const colorsTheme: any = useTheme();
406
+
407
+ return (
408
+ <>
409
+ <ThemeProvider theme={colorsTheme.select}>
410
+ <Title title="Listbox" theme="light" level={2} />
411
+ <ExampleContainer>
412
+ <Title
413
+ title="List dialog uses a Radix Popover to appear over elements with a certain z-index"
414
+ theme="light"
415
+ level={3}
416
+ />
417
+ <div
418
+ style={{
419
+ position: "relative",
420
+ display: "flex",
421
+ flexDirection: "column",
422
+ gap: "20px",
423
+ height: "150px",
424
+ width: "min-content",
425
+ marginBottom: "100px",
426
+ padding: "20px",
427
+ border: "1px solid black",
428
+ borderRadius: "4px",
429
+ overflow: "auto",
430
+ zIndex: "1300",
431
+ }}
432
+ >
433
+ <DxcSelect label="Label" options={single_options} optional placeholder="Choose an option" />
434
+ <button style={{ zIndex: "1", width: "100px" }}>Submit</button>
435
+ </div>
436
+ </ExampleContainer>
437
+ <Title title="Listbox option states" theme="light" level={3} />
438
+ <ExampleContainer pseudoState="pseudo-hover">
439
+ <Title title="Hovered option" theme="light" level={4} />
440
+ <Listbox
441
+ id="x8"
442
+ currentValue=""
443
+ options={one_option}
444
+ visualFocusIndex={-1}
445
+ lastOptionIndex={0}
446
+ multiple={false}
447
+ optional={false}
448
+ optionalItem={{ label: "Empty", value: "" }}
449
+ searchable={false}
450
+ handleOptionOnClick={() => {}}
451
+ styles={{ width: 360 }}
452
+ />
453
+ </ExampleContainer>
454
+ <ExampleContainer pseudoState="pseudo-active">
455
+ <Title title="Active option" theme="light" level={4} />
456
+ <Listbox
457
+ id="x9"
458
+ currentValue=""
459
+ options={one_option}
460
+ visualFocusIndex={-1}
461
+ lastOptionIndex={0}
462
+ multiple={false}
463
+ optional={false}
464
+ optionalItem={{ label: "Empty", value: "" }}
465
+ searchable={false}
466
+ handleOptionOnClick={() => {}}
467
+ styles={{ width: 360 }}
468
+ />
469
+ </ExampleContainer>
470
+ <ExampleContainer>
471
+ <Title title="Focused option" theme="light" level={4} />
472
+ <Listbox
473
+ id="x10"
474
+ currentValue=""
475
+ options={one_option}
476
+ visualFocusIndex={0}
477
+ lastOptionIndex={0}
478
+ multiple={false}
479
+ optional={false}
480
+ optionalItem={{ label: "Empty", value: "" }}
481
+ searchable={false}
482
+ handleOptionOnClick={() => {}}
483
+ styles={{ width: 360 }}
484
+ />
485
+ </ExampleContainer>
486
+ <ExampleContainer pseudoState="pseudo-hover">
487
+ <Title title="Hovered selected option" theme="light" level={4} />
488
+ <Listbox
489
+ id="x11"
490
+ currentValue="1"
491
+ options={single_options}
492
+ visualFocusIndex={-1}
493
+ lastOptionIndex={3}
494
+ multiple={false}
495
+ optional={false}
496
+ optionalItem={{ label: "Empty", value: "" }}
497
+ searchable={false}
498
+ handleOptionOnClick={() => {}}
499
+ styles={{ width: 360 }}
500
+ />
501
+ </ExampleContainer>
502
+ <ExampleContainer pseudoState="pseudo-active">
503
+ <Title title="Active selected option" theme="light" level={4} />
504
+ <Listbox
505
+ id="x12"
506
+ currentValue="2"
507
+ options={single_options}
508
+ visualFocusIndex={0}
509
+ lastOptionIndex={3}
510
+ multiple={false}
511
+ optional={false}
512
+ optionalItem={{ label: "Empty", value: "" }}
513
+ searchable={false}
514
+ handleOptionOnClick={() => {}}
515
+ styles={{ width: 360 }}
516
+ />
517
+ </ExampleContainer>
518
+ <Title title="Listbox with icons" theme="light" level={3} />
519
+ <ExampleContainer>
520
+ <Title title="Icons (SVGs)" theme="light" level={4} />
521
+ <Listbox
522
+ id="x13"
523
+ currentValue="3"
524
+ options={icon_options}
525
+ visualFocusIndex={-1}
526
+ lastOptionIndex={3}
527
+ multiple={false}
528
+ optional={false}
529
+ optionalItem={{ label: "Empty", value: "" }}
530
+ searchable={false}
531
+ handleOptionOnClick={() => {}}
532
+ styles={{ width: 360 }}
533
+ />
534
+ </ExampleContainer>
535
+ <ExampleContainer>
536
+ <Title title="Grouped icons (Material Symbols)" theme="light" level={4} />
537
+ <Listbox
538
+ id="x14"
539
+ currentValue={["0", "3"]}
540
+ options={icon_options_grouped_material}
541
+ visualFocusIndex={-1}
542
+ lastOptionIndex={3}
543
+ multiple={false}
544
+ optional={false}
545
+ optionalItem={{ label: "Empty", value: "" }}
546
+ searchable={false}
547
+ handleOptionOnClick={() => {}}
548
+ styles={{ width: 360 }}
549
+ />
550
+ </ExampleContainer>
551
+ <ExampleContainer>
552
+ <Title title="Grouped icons (Material)" theme="light" level={4} />
553
+ <Listbox
554
+ id="x15"
555
+ currentValue={["facebook", "figma"]}
556
+ options={options_material}
557
+ visualFocusIndex={-1}
558
+ lastOptionIndex={6}
559
+ multiple={true}
560
+ optional={false}
561
+ optionalItem={{ label: "Empty", value: "" }}
562
+ searchable={false}
563
+ handleOptionOnClick={() => {}}
564
+ styles={{ width: 360 }}
565
+ />
566
+ </ExampleContainer>
567
+ </ThemeProvider>
568
+ <ThemeProvider theme={colorsTheme.select}>
569
+ <Title title="Opinionated theme" theme="light" level={2} />
570
+ <ExampleContainer pseudoState="pseudo-hover">
571
+ <Title title="Hovered option" theme="light" level={4} />
572
+ <HalstackProvider theme={opinionatedTheme}>
573
+ <Listbox
574
+ id="x16"
575
+ currentValue=""
576
+ options={one_option}
577
+ visualFocusIndex={-1}
578
+ lastOptionIndex={0}
579
+ multiple={false}
580
+ optional={false}
581
+ optionalItem={{ label: "Empty", value: "" }}
582
+ searchable={false}
583
+ handleOptionOnClick={() => {}}
584
+ styles={{ width: 360 }}
585
+ />
586
+ </HalstackProvider>
587
+ </ExampleContainer>
588
+ <ExampleContainer pseudoState="pseudo-active">
589
+ <Title title="Active option" theme="light" level={4} />{" "}
590
+ <HalstackProvider theme={opinionatedTheme}>
591
+ <Listbox
592
+ id="x17"
593
+ currentValue=""
594
+ options={one_option}
595
+ visualFocusIndex={-1}
596
+ lastOptionIndex={0}
597
+ multiple={false}
598
+ optional={false}
599
+ optionalItem={{ label: "Empty", value: "" }}
600
+ searchable={false}
601
+ handleOptionOnClick={() => {}}
602
+ styles={{ width: 360 }}
603
+ />
604
+ </HalstackProvider>
605
+ </ExampleContainer>
606
+ <ExampleContainer>
607
+ <Title title="Focused option" theme="light" level={4} />{" "}
608
+ <HalstackProvider theme={opinionatedTheme}>
609
+ <Listbox
610
+ id="x18"
611
+ currentValue=""
612
+ options={one_option}
613
+ visualFocusIndex={0}
614
+ lastOptionIndex={0}
615
+ multiple={false}
616
+ optional={false}
617
+ optionalItem={{ label: "Empty", value: "" }}
618
+ searchable={false}
619
+ handleOptionOnClick={() => {}}
620
+ styles={{ width: 360 }}
621
+ />
622
+ </HalstackProvider>
623
+ </ExampleContainer>
624
+ <ExampleContainer pseudoState="pseudo-hover">
625
+ <Title title="Hovered selected option" theme="light" level={4} />{" "}
626
+ <HalstackProvider theme={opinionatedTheme}>
627
+ <Listbox
628
+ id="x19"
629
+ currentValue="1"
630
+ options={single_options}
631
+ visualFocusIndex={-1}
632
+ lastOptionIndex={3}
633
+ multiple={false}
634
+ optional={false}
635
+ optionalItem={{ label: "Empty", value: "" }}
636
+ searchable={false}
637
+ handleOptionOnClick={() => {}}
638
+ styles={{ width: 360 }}
639
+ />
640
+ </HalstackProvider>
641
+ </ExampleContainer>
642
+ <ExampleContainer pseudoState="pseudo-active">
643
+ <Title title="Active selected option" theme="light" level={4} />{" "}
644
+ <HalstackProvider theme={opinionatedTheme}>
645
+ <Listbox
646
+ id="x20"
647
+ currentValue="2"
648
+ options={single_options}
649
+ visualFocusIndex={0}
650
+ lastOptionIndex={3}
651
+ multiple={false}
652
+ optional={false}
653
+ optionalItem={{ label: "Empty", value: "" }}
654
+ searchable={false}
655
+ handleOptionOnClick={() => {}}
656
+ styles={{ width: 360 }}
657
+ />
658
+ </HalstackProvider>
659
+ </ExampleContainer>
660
+ <Title title="Listbox with icons" theme="light" level={3} />
661
+ <ExampleContainer>
662
+ <Title title="Icons (SVGs)" theme="light" level={4} />{" "}
663
+ <HalstackProvider theme={opinionatedTheme}>
664
+ <Listbox
665
+ id="x21"
666
+ currentValue="3"
667
+ options={icon_options}
668
+ visualFocusIndex={-1}
669
+ lastOptionIndex={3}
670
+ multiple={false}
671
+ optional={false}
672
+ optionalItem={{ label: "Empty", value: "" }}
673
+ searchable={false}
674
+ handleOptionOnClick={() => {}}
675
+ styles={{ width: 360 }}
676
+ />
677
+ </HalstackProvider>
678
+ </ExampleContainer>
679
+ </ThemeProvider>
680
+ </>
681
+ );
358
682
  };
359
- const DefaultSelect = () => (
683
+
684
+ const SearchableSelect = () => (
360
685
  <ExampleContainer expanded>
361
- <Title title="Default select" theme="light" level={4} />
362
- <DxcSelect label="Select label" options={single_options} optional placeholder="Choose an option" />
686
+ <Title title="Searchable select" theme="light" level={4} />
687
+ <DxcSelect label="Select Label" searchable options={single_options} placeholder="Choose an option" />
363
688
  </ExampleContainer>
364
689
  );
365
- const SearchableSelect = () => (
690
+
691
+ const SearchableSelectOpinionated = () => (
366
692
  <ExampleContainer expanded>
367
693
  <Title title="Searchable select" theme="light" level={4} />
368
- <DxcSelect label="Select Label" searchable options={single_options} placeholder="Choose an option" />
694
+ <HalstackProvider theme={opinionatedTheme}>
695
+ <DxcSelect label="Select Label" searchable options={single_options} placeholder="Choose an option" />
696
+ </HalstackProvider>
697
+ </ExampleContainer>
698
+ );
699
+
700
+ const SearchValue = () => (
701
+ <ExampleContainer expanded>
702
+ <Title title="Searchable select with value" theme="light" level={4} />
703
+ <DxcSelect
704
+ label="Select Label"
705
+ searchable
706
+ defaultValue="1"
707
+ options={single_options}
708
+ placeholder="Choose an option"
709
+ />
369
710
  </ExampleContainer>
370
711
  );
371
- const SearchableWithValue = () => (
712
+
713
+ const SearchValueOpinionated = () => (
372
714
  <ExampleContainer expanded>
373
715
  <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" />
716
+ <HalstackProvider theme={opinionatedTheme}>
717
+ <DxcSelect
718
+ label="Select Label"
719
+ searchable
720
+ defaultValue="1"
721
+ options={single_options}
722
+ placeholder="Choose an option"
723
+ />
724
+ </HalstackProvider>
375
725
  </ExampleContainer>
376
726
  );
377
727
 
@@ -389,78 +739,66 @@ const MultipleSelect = () => (
389
739
  </ExampleContainer>
390
740
  </>
391
741
  );
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 = () => (
742
+
743
+ const MultipleSelectOpinioated = () => (
405
744
  <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" />
745
+ <Title title="Multiple select" theme="light" level={4} />
746
+ <HalstackProvider theme={opinionatedTheme}>
747
+ <DxcSelect
748
+ label="Select label"
749
+ options={single_options}
750
+ defaultValue={["1", "4"]}
751
+ multiple
752
+ placeholder="Choose an option"
753
+ />
754
+ </HalstackProvider>
408
755
  </ExampleContainer>
409
756
  );
410
- const SelectWithIcons = () => (
757
+
758
+ const DefaultGroupedOptionsSelect = () => (
411
759
  <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" />
760
+ <Title title="Grouped options simple select" theme="light" level={4} />
761
+ <DxcSelect label="Label" options={group_options} defaultValue="9" placeholder="Choose an option" />
414
762
  </ExampleContainer>
415
763
  );
416
- const SelectMultipleWithIcons = () => (
764
+
765
+ const DefaultGroupedOptionsSelectOpinionated = () => (
417
766
  <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" />
767
+ <Title title="Grouped options simple select" theme="light" level={4} />
768
+ <HalstackProvider theme={opinionatedTheme}>
769
+ <DxcSelect label="Label" options={group_options} defaultValue="9" placeholder="Choose an option" />
770
+ </HalstackProvider>
420
771
  </ExampleContainer>
421
772
  );
422
- const MultipleGroupedOptionsSelectWithIcons = () => (
773
+
774
+ const MultipleGroupedOptionsSelect = () => (
423
775
  <ExampleContainer expanded>
424
- <Title title="Multiple grouped options with icons" theme="light" level={4} />
776
+ <Title title="Grouped options multiple select" theme="light" level={4} />
425
777
  <DxcSelect
426
778
  label="Label"
427
- options={icon_options_grouped}
779
+ options={group_options}
780
+ defaultValue={["0", "2"]}
428
781
  multiple
429
- defaultValue={["3", "2"]}
430
782
  placeholder="Choose an option"
431
783
  />
432
784
  </ExampleContainer>
433
785
  );
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" />
786
+
787
+ const MultipleGroupedOptionsSelectOpinionated = () => (
788
+ <ExampleContainer expanded>
789
+ <Title title="Grouped options multiple select" theme="light" level={4} />
790
+ <HalstackProvider theme={opinionatedTheme}>
791
+ <DxcSelect
792
+ label="Label"
793
+ options={group_options}
794
+ defaultValue={["0", "2"]}
795
+ multiple
796
+ placeholder="Choose an option"
797
+ />
798
+ </HalstackProvider>
462
799
  </ExampleContainer>
463
800
  );
801
+
464
802
  const MultipleSearchable = () => (
465
803
  <ExampleContainer expanded>
466
804
  <Title title="Searchable multiple select with value" theme="light" level={4} />
@@ -474,108 +812,107 @@ const MultipleSearchable = () => (
474
812
  />
475
813
  </ExampleContainer>
476
814
  );
477
- export const OptionsDisplayed = DefaultSelect.bind({});
478
- OptionsDisplayed.play = async ({ canvasElement }) => {
815
+
816
+ const MultipleSearchableOpinionated = () => (
817
+ <ExampleContainer expanded>
818
+ <Title title="Searchable multiple select with value" theme="light" level={4} />
819
+ <HalstackProvider theme={opinionatedTheme}>
820
+ <DxcSelect
821
+ label="Select Label"
822
+ searchable
823
+ multiple
824
+ defaultValue={["1", "4"]}
825
+ options={single_options}
826
+ placeholder="Choose an option"
827
+ />
828
+ </HalstackProvider>
829
+ </ExampleContainer>
830
+ );
831
+
832
+ export const Chromatic = Select.bind({});
833
+ Chromatic.play = async ({ canvasElement }) => {
834
+ const canvas = within(canvasElement);
835
+ await userEvent.click(canvas.getAllByRole("combobox")[24]);
836
+ };
837
+
838
+ export const ListboxStates = SelectListbox.bind({});
839
+ ListboxStates.play = async ({ canvasElement }) => {
479
840
  const canvas = within(canvasElement);
480
841
  const select = canvas.getByRole("combobox");
481
842
  await userEvent.click(select);
482
843
  };
844
+
483
845
  export const Searchable = SearchableSelect.bind({});
484
846
  Searchable.play = async ({ canvasElement }) => {
485
847
  const canvas = within(canvasElement);
486
- await userEvent.click(canvas.getByRole("combobox"));
487
- await waitFor(async () => {
488
- userEvent.type(canvas.getByRole("combobox"), "r");
489
- });
848
+ await userEvent.type(canvas.getByRole("combobox"), "r");
490
849
  };
491
- export const SelectSearchableWithValue = SearchableWithValue.bind({});
492
- SelectSearchableWithValue.play = async ({ canvasElement }) => {
850
+
851
+ export const SearchableOpinionated = SearchableSelectOpinionated.bind({});
852
+ SearchableOpinionated.play = async ({ canvasElement }) => {
493
853
  const canvas = within(canvasElement);
494
- await userEvent.click(canvas.getByRole("combobox"));
854
+ await userEvent.type(canvas.getByRole("combobox"), "r");
495
855
  };
496
856
 
497
- export const SelectMultipleSearchableWithValue = MultipleSearchable.bind({});
498
- SelectMultipleSearchableWithValue.play = async ({ canvasElement }) => {
857
+ export const SearchableWithValue = SearchValue.bind({});
858
+ SearchableWithValue.play = async ({ canvasElement }) => {
499
859
  const canvas = within(canvasElement);
500
- await userEvent.click(canvas.getAllByRole("combobox")[0]);
860
+ await userEvent.click(canvas.getByRole("combobox"));
501
861
  };
502
862
 
503
- export const GroupOptionsDisplayed = DefaultGroupedOptionsSelect.bind({});
504
- GroupOptionsDisplayed.play = async ({ canvasElement }) => {
863
+ export const SearchableWithValueOpinionated = SearchValueOpinionated.bind({});
864
+ SearchableWithValueOpinionated.play = async ({ canvasElement }) => {
505
865
  const canvas = within(canvasElement);
506
- const select = canvas.getByRole("combobox");
507
- await userEvent.click(select);
866
+ await userEvent.click(canvas.getByRole("combobox"));
508
867
  };
509
868
 
510
- export const SelectMultipleOptionsDisplayed = MultipleSelect.bind({});
511
- SelectMultipleOptionsDisplayed.play = async ({ canvasElement }) => {
869
+ export const MultipleSearchableWithValue = MultipleSearchable.bind({});
870
+ MultipleSearchableWithValue.play = async ({ canvasElement }) => {
512
871
  const canvas = within(canvasElement);
513
872
  await userEvent.click(canvas.getAllByRole("combobox")[0]);
514
873
  };
515
874
 
516
- export const SelectMultipleGroupedOptionsDisplayed = MultipleGroupedOptionsSelect.bind({});
517
- SelectMultipleGroupedOptionsDisplayed.play = async ({ canvasElement }) => {
518
- 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 }) => {
875
+ export const MultipleSearchableWithValueOpinionated = MultipleSearchableOpinionated.bind({});
876
+ MultipleSearchableWithValueOpinionated.play = async ({ canvasElement }) => {
524
877
  const canvas = within(canvasElement);
525
- const select = canvas.getByRole("combobox");
526
- await userEvent.click(select);
878
+ await userEvent.click(canvas.getAllByRole("combobox")[0]);
527
879
  };
528
880
 
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 }) => {
881
+ export const GroupOptionsDisplayed = DefaultGroupedOptionsSelect.bind({});
882
+ GroupOptionsDisplayed.play = async ({ canvasElement }) => {
537
883
  const canvas = within(canvasElement);
538
884
  const select = canvas.getByRole("combobox");
539
885
  await userEvent.click(select);
540
886
  };
541
887
 
542
- export const SelectMultipleGroupedWithIconsDisplayed = MultipleGroupedOptionsSelectWithIcons.bind({});
543
- SelectMultipleGroupedWithIconsDisplayed.play = async ({ canvasElement }) => {
888
+ export const GroupOptionsDisplayedOpinionated = DefaultGroupedOptionsSelectOpinionated.bind({});
889
+ GroupOptionsDisplayedOpinionated.play = async ({ canvasElement }) => {
544
890
  const canvas = within(canvasElement);
545
891
  const select = canvas.getByRole("combobox");
546
892
  await userEvent.click(select);
547
893
  };
548
894
 
549
- export const OptionHovered = OnlyOneOptionHovered.bind({});
550
- OptionHovered.play = async ({ canvasElement }) => {
895
+ export const MultipleOptionsDisplayed = MultipleSelect.bind({});
896
+ MultipleOptionsDisplayed.play = async ({ canvasElement }) => {
551
897
  const canvas = within(canvasElement);
552
- const select = canvas.getByRole("combobox");
553
- await userEvent.click(select);
898
+ await userEvent.click(canvas.getAllByRole("combobox")[0]);
554
899
  };
555
900
 
556
- export const OptionFocused = OnlyOneOptionFocused.bind({});
557
- OptionFocused.play = async ({ canvasElement }) => {
901
+ export const MultipleOptionsDisplayedOpinionated = MultipleSelectOpinioated.bind({});
902
+ MultipleOptionsDisplayedOpinionated.play = async ({ canvasElement }) => {
558
903
  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 }) => {
567
- const canvas = within(canvasElement);
568
- const select = canvas.getByRole("combobox");
569
- await userEvent.click(select);
904
+ await userEvent.click(canvas.getAllByRole("combobox")[0]);
570
905
  };
571
- export const OptionSelectedHovered = SelectedOptionHovered.bind({});
572
- OptionSelectedHovered.play = async ({ canvasElement }) => {
906
+
907
+ export const MultipleGroupedOptionsDisplayed = MultipleGroupedOptionsSelect.bind({});
908
+ MultipleGroupedOptionsDisplayed.play = async ({ canvasElement }) => {
573
909
  const canvas = within(canvasElement);
574
910
  const select = canvas.getByRole("combobox");
575
911
  await userEvent.click(select);
576
912
  };
577
- export const OptionSelectedActived = SelectedOptionActived.bind({});
578
- OptionSelectedActived.play = async ({ canvasElement }) => {
913
+
914
+ export const MultipleGroupedOptionsDisplayedOpinionated = MultipleGroupedOptionsSelectOpinionated.bind({});
915
+ MultipleGroupedOptionsDisplayedOpinionated.play = async ({ canvasElement }) => {
579
916
  const canvas = within(canvasElement);
580
917
  const select = canvas.getByRole("combobox");
581
918
  await userEvent.click(select);