@dxc-technology/halstack-react 0.0.0-1d5e7bf → 0.0.0-1d77077

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 (401) hide show
  1. package/BackgroundColorContext.d.ts +1 -10
  2. package/BackgroundColorContext.js +5 -22
  3. package/HalstackContext.d.ts +1243 -6
  4. package/HalstackContext.js +126 -111
  5. package/README.md +47 -0
  6. package/accordion/Accordion.accessibility.test.js +71 -0
  7. package/accordion/Accordion.d.ts +1 -1
  8. package/accordion/Accordion.js +104 -161
  9. package/accordion/Accordion.stories.tsx +84 -140
  10. package/accordion/Accordion.test.js +25 -41
  11. package/accordion/types.d.ts +6 -17
  12. package/accordion-group/AccordionGroup.accessibility.test.js +88 -0
  13. package/accordion-group/AccordionGroup.d.ts +2 -2
  14. package/accordion-group/AccordionGroup.js +30 -98
  15. package/accordion-group/AccordionGroup.stories.tsx +94 -67
  16. package/accordion-group/AccordionGroup.test.js +52 -105
  17. package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
  18. package/accordion-group/AccordionGroupAccordion.js +31 -0
  19. package/accordion-group/AccordionGroupContext.d.ts +3 -0
  20. package/accordion-group/AccordionGroupContext.js +8 -0
  21. package/accordion-group/types.d.ts +12 -17
  22. package/action-icon/ActionIcon.accessibility.test.js +63 -0
  23. package/action-icon/ActionIcon.d.ts +4 -0
  24. package/action-icon/ActionIcon.js +48 -0
  25. package/action-icon/ActionIcon.stories.tsx +41 -0
  26. package/action-icon/ActionIcon.test.js +64 -0
  27. package/action-icon/types.d.ts +26 -0
  28. package/alert/Alert.accessibility.test.js +95 -0
  29. package/alert/Alert.js +32 -125
  30. package/alert/Alert.stories.tsx +28 -0
  31. package/alert/Alert.test.js +29 -46
  32. package/alert/types.d.ts +5 -5
  33. package/badge/Badge.accessibility.test.js +129 -0
  34. package/badge/Badge.d.ts +1 -1
  35. package/badge/Badge.js +142 -42
  36. package/badge/Badge.stories.tsx +210 -0
  37. package/badge/Badge.test.js +30 -0
  38. package/badge/types.d.ts +52 -3
  39. package/bleed/Bleed.js +13 -21
  40. package/bleed/Bleed.stories.tsx +64 -63
  41. package/bleed/types.d.ts +2 -2
  42. package/box/Box.accessibility.test.js +33 -0
  43. package/box/Box.d.ts +1 -1
  44. package/box/Box.js +19 -60
  45. package/box/Box.stories.tsx +38 -51
  46. package/box/Box.test.js +2 -7
  47. package/box/types.d.ts +3 -14
  48. package/bulleted-list/BulletedList.accessibility.test.js +107 -0
  49. package/bulleted-list/BulletedList.d.ts +7 -0
  50. package/bulleted-list/BulletedList.js +92 -0
  51. package/bulleted-list/BulletedList.stories.tsx +115 -0
  52. package/bulleted-list/types.d.ts +38 -0
  53. package/button/Button.accessibility.test.js +127 -0
  54. package/button/Button.d.ts +1 -1
  55. package/button/Button.js +64 -117
  56. package/button/Button.stories.tsx +151 -100
  57. package/button/Button.test.js +20 -17
  58. package/button/types.d.ts +12 -8
  59. package/card/Card.accessibility.test.js +36 -0
  60. package/card/Card.d.ts +1 -1
  61. package/card/Card.js +48 -89
  62. package/card/Card.stories.tsx +12 -42
  63. package/card/Card.test.js +11 -22
  64. package/card/types.d.ts +6 -11
  65. package/checkbox/Checkbox.accessibility.test.js +87 -0
  66. package/checkbox/Checkbox.d.ts +2 -2
  67. package/checkbox/Checkbox.js +140 -182
  68. package/checkbox/Checkbox.stories.tsx +128 -94
  69. package/checkbox/Checkbox.test.js +160 -39
  70. package/checkbox/types.d.ts +11 -3
  71. package/chip/Chip.accessibility.test.js +67 -0
  72. package/chip/Chip.js +43 -80
  73. package/chip/Chip.stories.tsx +102 -26
  74. package/chip/Chip.test.js +18 -33
  75. package/chip/types.d.ts +4 -4
  76. package/common/coreTokens.d.ts +237 -0
  77. package/common/coreTokens.js +184 -0
  78. package/common/utils.d.ts +1 -0
  79. package/common/utils.js +6 -12
  80. package/common/variables.d.ts +1395 -0
  81. package/common/variables.js +942 -1145
  82. package/container/Container.d.ts +4 -0
  83. package/container/Container.js +194 -0
  84. package/container/Container.stories.tsx +214 -0
  85. package/container/types.d.ts +74 -0
  86. package/contextual-menu/ContextualMenu.accessibility.test.js +86 -0
  87. package/contextual-menu/ContextualMenu.d.ts +7 -0
  88. package/contextual-menu/ContextualMenu.js +71 -0
  89. package/contextual-menu/ContextualMenu.stories.tsx +182 -0
  90. package/contextual-menu/ContextualMenu.test.js +71 -0
  91. package/contextual-menu/MenuItemAction.d.ts +4 -0
  92. package/contextual-menu/MenuItemAction.js +46 -0
  93. package/contextual-menu/types.d.ts +22 -0
  94. package/date-input/Calendar.d.ts +4 -0
  95. package/date-input/Calendar.js +214 -0
  96. package/date-input/DateInput.accessibility.test.js +216 -0
  97. package/date-input/DateInput.js +150 -299
  98. package/date-input/DateInput.stories.tsx +203 -56
  99. package/date-input/DateInput.test.js +700 -371
  100. package/date-input/DatePicker.d.ts +4 -0
  101. package/date-input/DatePicker.js +115 -0
  102. package/date-input/Icons.d.ts +6 -0
  103. package/date-input/Icons.js +58 -0
  104. package/date-input/YearPicker.d.ts +4 -0
  105. package/date-input/YearPicker.js +100 -0
  106. package/date-input/types.d.ts +72 -15
  107. package/dialog/Dialog.accessibility.test.js +69 -0
  108. package/dialog/Dialog.d.ts +1 -1
  109. package/dialog/Dialog.js +73 -107
  110. package/dialog/Dialog.stories.tsx +320 -167
  111. package/dialog/Dialog.test.js +287 -20
  112. package/dialog/types.d.ts +18 -25
  113. package/divider/Divider.accessibility.test.js +33 -0
  114. package/divider/Divider.d.ts +4 -0
  115. package/divider/Divider.js +36 -0
  116. package/divider/Divider.stories.tsx +223 -0
  117. package/divider/Divider.test.js +38 -0
  118. package/divider/types.d.ts +21 -0
  119. package/dropdown/Dropdown.accessibility.test.js +180 -0
  120. package/dropdown/Dropdown.d.ts +1 -1
  121. package/dropdown/Dropdown.js +231 -303
  122. package/dropdown/Dropdown.stories.tsx +235 -57
  123. package/dropdown/Dropdown.test.js +575 -165
  124. package/dropdown/DropdownMenu.d.ts +4 -0
  125. package/dropdown/DropdownMenu.js +63 -0
  126. package/dropdown/DropdownMenuItem.d.ts +4 -0
  127. package/dropdown/DropdownMenuItem.js +70 -0
  128. package/dropdown/types.d.ts +35 -19
  129. package/file-input/FileInput.accessibility.test.js +160 -0
  130. package/file-input/FileInput.d.ts +2 -2
  131. package/file-input/FileInput.js +241 -391
  132. package/file-input/FileInput.stories.tsx +123 -12
  133. package/file-input/FileInput.test.js +292 -367
  134. package/file-input/FileItem.d.ts +4 -14
  135. package/file-input/FileItem.js +52 -117
  136. package/file-input/types.d.ts +25 -8
  137. package/flex/Flex.d.ts +4 -0
  138. package/flex/Flex.js +57 -0
  139. package/flex/Flex.stories.tsx +112 -0
  140. package/flex/types.d.ts +97 -0
  141. package/footer/Footer.accessibility.test.js +117 -0
  142. package/footer/Footer.d.ts +1 -1
  143. package/footer/Footer.js +73 -118
  144. package/footer/Footer.stories.tsx +87 -21
  145. package/footer/Footer.test.js +33 -57
  146. package/footer/Icons.d.ts +3 -2
  147. package/footer/Icons.js +66 -7
  148. package/footer/types.d.ts +26 -27
  149. package/grid/Grid.d.ts +7 -0
  150. package/grid/Grid.js +76 -0
  151. package/grid/Grid.stories.tsx +219 -0
  152. package/grid/types.d.ts +115 -0
  153. package/header/Header.accessibility.test.js +84 -0
  154. package/header/Header.d.ts +4 -3
  155. package/header/Header.js +85 -168
  156. package/header/Header.stories.tsx +118 -39
  157. package/header/Header.test.js +13 -26
  158. package/header/Icons.d.ts +2 -2
  159. package/header/Icons.js +4 -9
  160. package/header/types.d.ts +7 -21
  161. package/heading/Heading.accessibility.test.js +33 -0
  162. package/heading/Heading.js +10 -32
  163. package/heading/Heading.test.js +71 -88
  164. package/heading/types.d.ts +7 -7
  165. package/icon/Icon.accessibility.test.js +30 -0
  166. package/icon/Icon.d.ts +4 -0
  167. package/icon/Icon.js +33 -0
  168. package/icon/Icon.stories.tsx +28 -0
  169. package/icon/types.d.ts +4 -0
  170. package/icon/types.js +5 -0
  171. package/image/Image.accessibility.test.js +56 -0
  172. package/image/Image.d.ts +4 -0
  173. package/image/Image.js +70 -0
  174. package/image/Image.stories.tsx +129 -0
  175. package/image/types.d.ts +72 -0
  176. package/image/types.js +5 -0
  177. package/inset/Inset.js +13 -21
  178. package/inset/Inset.stories.tsx +5 -4
  179. package/inset/types.d.ts +2 -2
  180. package/layout/ApplicationLayout.d.ts +15 -6
  181. package/layout/ApplicationLayout.js +51 -116
  182. package/layout/ApplicationLayout.stories.tsx +81 -45
  183. package/layout/Icons.d.ts +8 -5
  184. package/layout/Icons.js +49 -59
  185. package/layout/types.d.ts +21 -32
  186. package/link/Link.accessibility.test.js +112 -0
  187. package/link/Link.js +32 -51
  188. package/link/Link.stories.tsx +73 -6
  189. package/link/Link.test.js +24 -44
  190. package/link/types.d.ts +14 -14
  191. package/main.d.ts +14 -13
  192. package/main.js +59 -103
  193. package/nav-tabs/NavTabs.accessibility.test.js +52 -0
  194. package/nav-tabs/NavTabs.d.ts +7 -0
  195. package/{tabs-nav → nav-tabs}/NavTabs.js +30 -62
  196. package/{tabs-nav → nav-tabs}/NavTabs.stories.tsx +115 -9
  197. package/{tabs-nav → nav-tabs}/NavTabs.test.js +39 -45
  198. package/nav-tabs/NavTabsContext.d.ts +3 -0
  199. package/nav-tabs/NavTabsContext.js +8 -0
  200. package/nav-tabs/Tab.js +118 -0
  201. package/{tabs-nav → nav-tabs}/types.d.ts +14 -15
  202. package/nav-tabs/types.js +5 -0
  203. package/number-input/NumberInput.accessibility.test.js +228 -0
  204. package/number-input/NumberInput.js +46 -36
  205. package/number-input/NumberInput.stories.tsx +42 -26
  206. package/number-input/NumberInput.test.js +860 -377
  207. package/number-input/NumberInputContext.d.ts +3 -4
  208. package/number-input/NumberInputContext.js +3 -14
  209. package/number-input/types.d.ts +17 -5
  210. package/package.json +49 -52
  211. package/paginator/Icons.d.ts +5 -0
  212. package/paginator/Icons.js +21 -47
  213. package/paginator/Paginator.accessibility.test.js +79 -0
  214. package/paginator/Paginator.js +23 -59
  215. package/paginator/Paginator.stories.tsx +24 -0
  216. package/paginator/Paginator.test.js +253 -226
  217. package/paginator/types.d.ts +3 -3
  218. package/paragraph/Paragraph.accessibility.test.js +28 -0
  219. package/paragraph/Paragraph.d.ts +5 -0
  220. package/paragraph/Paragraph.js +22 -0
  221. package/paragraph/Paragraph.stories.tsx +27 -0
  222. package/password-input/Icons.d.ts +6 -0
  223. package/password-input/Icons.js +35 -0
  224. package/password-input/PasswordInput.accessibility.test.js +153 -0
  225. package/password-input/PasswordInput.js +57 -126
  226. package/password-input/PasswordInput.stories.tsx +1 -33
  227. package/password-input/PasswordInput.test.js +160 -142
  228. package/password-input/types.d.ts +8 -7
  229. package/progress-bar/ProgressBar.accessibility.test.js +35 -0
  230. package/progress-bar/ProgressBar.js +65 -91
  231. package/progress-bar/{ProgressBar.stories.jsx → ProgressBar.stories.tsx} +39 -4
  232. package/progress-bar/ProgressBar.test.js +72 -44
  233. package/progress-bar/types.d.ts +3 -3
  234. package/quick-nav/QuickNav.accessibility.test.js +57 -0
  235. package/quick-nav/QuickNav.js +21 -43
  236. package/quick-nav/QuickNav.stories.tsx +125 -33
  237. package/quick-nav/types.d.ts +10 -10
  238. package/radio-group/Radio.d.ts +1 -1
  239. package/radio-group/Radio.js +59 -76
  240. package/radio-group/RadioGroup.accessibility.test.js +97 -0
  241. package/radio-group/RadioGroup.js +68 -116
  242. package/radio-group/RadioGroup.stories.tsx +132 -18
  243. package/radio-group/RadioGroup.test.js +518 -457
  244. package/radio-group/types.d.ts +10 -10
  245. package/resultset-table/Icons.d.ts +7 -0
  246. package/resultset-table/Icons.js +47 -0
  247. package/resultset-table/ResultsetTable.accessibility.test.js +274 -0
  248. package/resultset-table/ResultsetTable.d.ts +7 -0
  249. package/resultset-table/ResultsetTable.js +170 -0
  250. package/{resultsetTable → resultset-table}/ResultsetTable.stories.tsx +156 -30
  251. package/resultset-table/ResultsetTable.test.js +381 -0
  252. package/{resultsetTable → resultset-table}/types.d.ts +44 -11
  253. package/resultset-table/types.js +5 -0
  254. package/select/Icons.d.ts +7 -7
  255. package/select/Icons.js +1 -5
  256. package/select/Listbox.js +17 -49
  257. package/select/Option.js +27 -50
  258. package/select/Select.accessibility.test.js +217 -0
  259. package/select/Select.js +132 -202
  260. package/select/Select.stories.tsx +496 -152
  261. package/select/Select.test.js +1966 -1758
  262. package/select/types.d.ts +16 -19
  263. package/sidenav/Icons.d.ts +7 -0
  264. package/sidenav/Icons.js +47 -0
  265. package/sidenav/Sidenav.accessibility.test.js +59 -0
  266. package/sidenav/Sidenav.d.ts +6 -5
  267. package/sidenav/Sidenav.js +128 -78
  268. package/sidenav/Sidenav.stories.tsx +250 -151
  269. package/sidenav/Sidenav.test.js +26 -45
  270. package/{layout → sidenav}/SidenavContext.d.ts +1 -1
  271. package/{layout → sidenav}/SidenavContext.js +3 -9
  272. package/sidenav/types.d.ts +52 -26
  273. package/slider/Slider.accessibility.test.js +104 -0
  274. package/slider/Slider.d.ts +2 -2
  275. package/slider/Slider.js +148 -181
  276. package/slider/Slider.test.js +185 -81
  277. package/slider/types.d.ts +7 -3
  278. package/spinner/Spinner.accessibility.test.js +96 -0
  279. package/spinner/Spinner.js +31 -75
  280. package/spinner/{Spinner.stories.jsx → Spinner.stories.tsx} +53 -27
  281. package/spinner/Spinner.test.js +26 -35
  282. package/spinner/types.d.ts +3 -3
  283. package/status-light/StatusLight.accessibility.test.js +157 -0
  284. package/status-light/StatusLight.d.ts +4 -0
  285. package/status-light/StatusLight.js +51 -0
  286. package/status-light/StatusLight.stories.tsx +74 -0
  287. package/status-light/StatusLight.test.js +25 -0
  288. package/status-light/types.d.ts +17 -0
  289. package/status-light/types.js +5 -0
  290. package/switch/Switch.accessibility.test.js +89 -0
  291. package/switch/Switch.d.ts +2 -2
  292. package/switch/Switch.js +145 -126
  293. package/switch/Switch.stories.tsx +37 -60
  294. package/switch/Switch.test.js +138 -56
  295. package/switch/types.d.ts +7 -3
  296. package/table/DropdownTheme.js +62 -0
  297. package/table/Table.accessibility.test.js +82 -0
  298. package/table/Table.d.ts +6 -2
  299. package/table/Table.js +78 -35
  300. package/table/Table.stories.tsx +651 -0
  301. package/table/Table.test.js +95 -8
  302. package/table/types.d.ts +34 -6
  303. package/tabs/Tab.d.ts +4 -0
  304. package/tabs/Tab.js +116 -0
  305. package/tabs/Tabs.accessibility.test.js +56 -0
  306. package/tabs/Tabs.js +314 -141
  307. package/tabs/Tabs.stories.tsx +120 -6
  308. package/tabs/Tabs.test.js +223 -69
  309. package/tabs/types.d.ts +28 -18
  310. package/tag/Tag.accessibility.test.js +69 -0
  311. package/tag/Tag.js +29 -61
  312. package/tag/Tag.stories.tsx +14 -1
  313. package/tag/Tag.test.js +20 -31
  314. package/tag/types.d.ts +7 -7
  315. package/text-input/Suggestion.js +40 -28
  316. package/text-input/Suggestions.d.ts +4 -0
  317. package/text-input/Suggestions.js +86 -0
  318. package/text-input/TextInput.accessibility.test.js +321 -0
  319. package/text-input/TextInput.js +311 -514
  320. package/text-input/TextInput.stories.tsx +266 -275
  321. package/text-input/TextInput.test.js +1419 -1375
  322. package/text-input/types.d.ts +43 -16
  323. package/textarea/Textarea.accessibility.test.js +155 -0
  324. package/textarea/Textarea.js +70 -113
  325. package/textarea/Textarea.stories.tsx +174 -0
  326. package/textarea/Textarea.test.js +152 -183
  327. package/textarea/types.d.ts +9 -5
  328. package/toggle-group/ToggleGroup.accessibility.test.js +107 -0
  329. package/toggle-group/ToggleGroup.d.ts +2 -2
  330. package/toggle-group/ToggleGroup.js +92 -106
  331. package/toggle-group/ToggleGroup.stories.tsx +49 -4
  332. package/toggle-group/ToggleGroup.test.js +69 -88
  333. package/toggle-group/types.d.ts +26 -17
  334. package/typography/Typography.accessibility.test.js +339 -0
  335. package/typography/Typography.d.ts +4 -0
  336. package/typography/Typography.js +23 -0
  337. package/typography/Typography.stories.tsx +198 -0
  338. package/typography/types.d.ts +18 -0
  339. package/typography/types.js +5 -0
  340. package/useTheme.d.ts +1147 -1
  341. package/useTheme.js +2 -9
  342. package/useTranslatedLabels.d.ts +84 -1
  343. package/useTranslatedLabels.js +1 -7
  344. package/utils/BaseTypography.d.ts +21 -0
  345. package/utils/BaseTypography.js +94 -0
  346. package/utils/FocusLock.d.ts +13 -0
  347. package/utils/FocusLock.js +124 -0
  348. package/wizard/Wizard.accessibility.test.js +55 -0
  349. package/wizard/Wizard.js +24 -66
  350. package/wizard/Wizard.stories.tsx +40 -1
  351. package/wizard/Wizard.test.js +54 -81
  352. package/wizard/types.d.ts +8 -8
  353. package/card/ice-cream.jpg +0 -0
  354. package/common/OpenSans.css +0 -81
  355. package/common/RequiredComponent.js +0 -32
  356. package/common/fonts/OpenSans-Bold.ttf +0 -0
  357. package/common/fonts/OpenSans-BoldItalic.ttf +0 -0
  358. package/common/fonts/OpenSans-ExtraBold.ttf +0 -0
  359. package/common/fonts/OpenSans-ExtraBoldItalic.ttf +0 -0
  360. package/common/fonts/OpenSans-Italic.ttf +0 -0
  361. package/common/fonts/OpenSans-Light.ttf +0 -0
  362. package/common/fonts/OpenSans-LightItalic.ttf +0 -0
  363. package/common/fonts/OpenSans-Regular.ttf +0 -0
  364. package/common/fonts/OpenSans-SemiBold.ttf +0 -0
  365. package/common/fonts/OpenSans-SemiBoldItalic.ttf +0 -0
  366. package/inline/Inline.d.ts +0 -4
  367. package/inline/Inline.js +0 -60
  368. package/inline/Inline.stories.tsx +0 -319
  369. package/inline/types.d.ts +0 -36
  370. package/list/List.d.ts +0 -4
  371. package/list/List.js +0 -47
  372. package/list/List.stories.tsx +0 -89
  373. package/list/types.d.ts +0 -7
  374. package/number-input/numberInputContextTypes.d.ts +0 -19
  375. package/resultsetTable/ResultsetTable.d.ts +0 -4
  376. package/resultsetTable/ResultsetTable.js +0 -254
  377. package/resultsetTable/ResultsetTable.test.js +0 -348
  378. package/row/Row.d.ts +0 -3
  379. package/row/Row.js +0 -127
  380. package/row/Row.stories.tsx +0 -237
  381. package/row/types.d.ts +0 -28
  382. package/slider/Slider.stories.tsx +0 -177
  383. package/stack/Stack.d.ts +0 -4
  384. package/stack/Stack.js +0 -56
  385. package/stack/Stack.stories.tsx +0 -263
  386. package/stack/types.d.ts +0 -32
  387. package/table/Table.stories.jsx +0 -277
  388. package/tabs-nav/NavTabs.d.ts +0 -8
  389. package/tabs-nav/Tab.js +0 -132
  390. package/text/Text.d.ts +0 -7
  391. package/text/Text.js +0 -30
  392. package/text/Text.stories.tsx +0 -19
  393. package/textarea/Textarea.stories.jsx +0 -157
  394. /package/{inline → action-icon}/types.js +0 -0
  395. /package/{list → bulleted-list}/types.js +0 -0
  396. /package/{resultsetTable → container}/types.js +0 -0
  397. /package/{row → contextual-menu}/types.js +0 -0
  398. /package/{stack → divider}/types.js +0 -0
  399. /package/{tabs-nav → flex}/types.js +0 -0
  400. /package/{number-input/numberInputContextTypes.js → grid/types.js} +0 -0
  401. /package/{tabs-nav → nav-tabs}/Tab.d.ts +0 -0
@@ -1,11 +1,12 @@
1
1
  import React from "react";
2
- import { userEvent, within, waitFor } from "@storybook/testing-library";
2
+ import { userEvent, within } from "@storybook/testing-library";
3
3
  import Title from "../../.storybook/components/Title";
4
4
  import ExampleContainer from "../../.storybook/components/ExampleContainer";
5
5
  import DxcSelect from "./Select";
6
6
  import Listbox from "./Listbox";
7
- import DxcButton from "../button/Button";
8
- import DxcCheckbox from "../checkbox/Checkbox";
7
+ import { ThemeProvider } from "styled-components";
8
+ import useTheme from "../useTheme";
9
+ import { HalstackProvider } from "../HalstackContext";
9
10
 
10
11
  export default {
11
12
  title: "Select",
@@ -13,12 +14,14 @@ export default {
13
14
  };
14
15
 
15
16
  const one_option = [{ label: "Option 01", value: "1" }];
17
+
16
18
  const single_options = [
17
19
  { label: "Option 01", value: "1" },
18
20
  { label: "Option 02", value: "2" },
19
21
  { label: "Option 03", value: "3" },
20
22
  { label: "Option 04", value: "4" },
21
23
  ];
24
+
22
25
  const group_options = [
23
26
  {
24
27
  label: "Group 001",
@@ -61,6 +64,7 @@ const group_options = [
61
64
  ],
62
65
  },
63
66
  ];
67
+
64
68
  const icon_options_grouped = [
65
69
  {
66
70
  label: "Group 001",
@@ -124,6 +128,7 @@ const icon_options_grouped = [
124
128
  ],
125
129
  },
126
130
  ];
131
+
127
132
  const icon_options = [
128
133
  {
129
134
  label: "3G Mobile",
@@ -172,6 +177,7 @@ const icon_options = [
172
177
  ),
173
178
  },
174
179
  ];
180
+
175
181
  const url_options = [
176
182
  {
177
183
  label: "Social Media",
@@ -182,14 +188,35 @@ const url_options = [
182
188
  icon: "https://upload.wikimedia.org/wikipedia/commons/thumb/e/e7/Instagram_logo_2016.svg/800px-Instagram_logo_2016.svg.png",
183
189
  },
184
190
  {
185
- label: "Twitter",
186
- value: "twitter",
187
- icon: "https://cdn.computerhoy.com/sites/navi.axelspringer.es/public/styles/480/public/media/image/2013/08/17981-logo-twitter.png?itok=dElA6iAV",
191
+ label: "X",
192
+ value: "x",
193
+ icon: "https://static.dezeen.com/uploads/2023/07/x-logo-twitter-elon-musk_dezeen_2364_col_0.jpg",
188
194
  },
189
195
  {
190
196
  label: "Facebook",
191
197
  value: "facebook",
192
- icon: "https://upload.wikimedia.org/wikipedia/commons/thumb/b/b8/2021_Facebook_icon.svg/2048px-2021_Facebook_icon.svg.png",
198
+ icon: (
199
+ <svg
200
+ version="1.1"
201
+ x="0px"
202
+ y="0px"
203
+ width="438.536px"
204
+ height="438.536px"
205
+ viewBox="0 0 438.536 438.536"
206
+ fill="#4267B2"
207
+ >
208
+ <g>
209
+ <path
210
+ d="M414.41,24.123C398.333,8.042,378.963,0,356.315,0H82.228C59.58,0,40.21,8.042,24.126,24.123
211
+ C8.045,40.207,0.003,59.576,0.003,82.225v274.084c0,22.647,8.042,42.018,24.123,58.102c16.084,16.084,35.454,24.126,58.102,24.126
212
+ h274.084c22.648,0,42.018-8.042,58.095-24.126c16.084-16.084,24.126-35.454,24.126-58.102V82.225
213
+ C438.532,59.576,430.49,40.204,414.41,24.123z M373.155,225.548h-49.963V406.84h-74.802V225.548H210.99V163.02h37.401v-37.402
214
+ c0-26.838,6.283-47.107,18.843-60.813c12.559-13.706,33.304-20.555,62.242-20.555h49.963v62.526h-31.401
215
+ c-10.663,0-17.467,1.853-20.417,5.568c-2.949,3.711-4.428,10.23-4.428,19.558v31.119h56.534L373.155,225.548z"
216
+ />
217
+ </g>
218
+ </svg>
219
+ ),
193
220
  },
194
221
  {
195
222
  label: "Pinterest",
@@ -219,13 +246,22 @@ const url_options = [
219
246
  ],
220
247
  },
221
248
  ];
249
+
222
250
  const optionsWithEllipsisMedium = [
223
251
  { label: "Optiond1234567890123456789012345678901234", value: "1" },
224
252
  { label: "Optiond12345678901234567890123456789012345", value: "2" },
225
253
  { label: "Option 031111111111111111111111111111222", value: "3" },
226
- { label: "Option 03111111111111111111111111111222", value: "4" },
227
254
  ];
228
255
 
256
+ const opinionatedTheme = {
257
+ select: {
258
+ selectedOptionBackgroundColor: "#e6f4ff",
259
+ fontColor: "#000000",
260
+ optionFontColor: "#000000",
261
+ hoverBorderColor: "#a46ede",
262
+ },
263
+ };
264
+
229
265
  const Select = () => (
230
266
  <>
231
267
  <Title title="States" theme="light" level={2} />
@@ -338,122 +374,380 @@ const Select = () => (
338
374
  <Title title="Multiple selection with ellipsis" theme="light" level={4} />
339
375
  <DxcSelect label="Label" options={single_options} multiple defaultValue={["1", "2", "3", "4"]} />
340
376
  <Title title="Value with ellipsis" theme="light" level={4} />
341
- <DxcSelect label="Label" options={optionsWithEllipsisMedium} defaultValue="1" size="medium" />
377
+ <DxcSelect label="Label" options={optionsWithEllipsisMedium} defaultValue="1" />
342
378
  <Title title="Options with ellipsis" theme="light" level={4} />
343
379
  <DxcSelect
344
380
  label="Label"
345
381
  placeholder="Choose an option"
346
382
  defaultValue="1"
347
383
  options={optionsWithEllipsisMedium}
348
- size="medium"
384
+ margin={{ top: "xxlarge" }}
349
385
  />
350
386
  </ExampleContainer>
351
- </>
352
- );
353
- const SelectListbox = () => (
354
- <>
355
- <Title title="Listbox" theme="light" level={2} />
356
- <Title title="Default with opened listbox" theme="light" level={3} />
357
- <ExampleContainer>
358
- <div style={{ display: "flex", gap: "30px", flexDirection: "column", marginBottom: "80px" }}>
359
- <DxcSelect label="Label" options={single_options} optional placeholder="Choose an option" />
360
- <DxcCheckbox
361
- label="You understand the selection and give your consent"
362
- onChange={() => {}}
363
- labelPosition="after"
364
- />
365
- <DxcButton label="Submit" onClick={() => {}} size="medium" />
366
- </div>
367
- </ExampleContainer>
368
- <Title title="Listbox option states" theme="light" level={3} />
387
+ <Title title="Opinionated theme" theme="light" level={2} />
369
388
  <ExampleContainer pseudoState="pseudo-hover">
370
- <Title title="Hovered option" theme="light" level={4} />
371
- <Listbox
372
- id="x"
373
- currentValue=""
374
- options={one_option}
375
- visualFocusIndex={-1}
376
- lastOptionIndex={0}
377
- multiple={false}
378
- optional={false}
379
- optionalItem={{ label: "Empty", value: "" }}
380
- searchable={false}
381
- handleOptionOnClick={() => {}}
382
- styles={{ width: 360 }}
383
- />
389
+ <Title title="Hovered" theme="light" level={4} />
390
+ <HalstackProvider theme={opinionatedTheme}>
391
+ <DxcSelect label="Hovered" options={single_options} />
392
+ </HalstackProvider>
384
393
  </ExampleContainer>
385
- <ExampleContainer pseudoState="pseudo-active">
386
- <Title title="Active option" theme="light" level={4} />
387
- <Listbox
388
- id="x"
389
- currentValue=""
390
- options={one_option}
391
- visualFocusIndex={-1}
392
- lastOptionIndex={0}
393
- multiple={false}
394
- optional={false}
395
- optionalItem={{ label: "Empty", value: "" }}
396
- searchable={false}
397
- handleOptionOnClick={() => {}}
398
- styles={{ width: 360 }}
399
- />
394
+ <ExampleContainer pseudoState="pseudo-focus-within">
395
+ <Title title="Focused" theme="light" level={4} />
396
+ <HalstackProvider theme={opinionatedTheme}>
397
+ <DxcSelect label="Focused" options={single_options} />
398
+ </HalstackProvider>
400
399
  </ExampleContainer>
401
400
  <ExampleContainer>
402
- <Title title="Focused option" theme="light" level={4} />
403
- <Listbox
404
- id="x"
405
- currentValue=""
406
- options={one_option}
407
- visualFocusIndex={0}
408
- lastOptionIndex={0}
409
- multiple={false}
410
- optional={false}
411
- optionalItem={{ label: "Empty", value: "" }}
412
- searchable={false}
413
- handleOptionOnClick={() => {}}
414
- styles={{ width: 360 }}
415
- />
401
+ <Title title="Disabled" theme="light" level={4} />
402
+ <HalstackProvider theme={opinionatedTheme}>
403
+ <DxcSelect label="Disabled" placeholder="Placeholder" disabled options={single_options} />
404
+ </HalstackProvider>
416
405
  </ExampleContainer>
417
- <ExampleContainer pseudoState="pseudo-hover">
418
- <Title title="Hovered selected option" theme="light" level={4} />
419
- <Listbox
420
- id="x"
421
- currentValue="1"
422
- options={single_options}
423
- visualFocusIndex={-1}
424
- lastOptionIndex={3}
425
- multiple={false}
426
- optional={false}
427
- optionalItem={{ label: "Empty", value: "" }}
428
- searchable={false}
429
- handleOptionOnClick={() => {}}
430
- styles={{ width: 360 }}
431
- />
406
+ <ExampleContainer>
407
+ <Title title="Disabled with value" theme="light" level={4} />
408
+ <HalstackProvider theme={opinionatedTheme}>
409
+ <DxcSelect label="Disabled with value" disabled options={single_options} defaultValue="1" />
410
+ </HalstackProvider>
432
411
  </ExampleContainer>
433
- <ExampleContainer pseudoState="pseudo-active">
434
- <Title title="Active selected option" theme="light" level={4} />
435
- <Listbox
436
- id="x"
437
- currentValue="2"
438
- options={single_options}
439
- visualFocusIndex={0}
440
- lastOptionIndex={3}
441
- multiple={false}
442
- optional={false}
443
- optionalItem={{ label: "Empty", value: "" }}
444
- searchable={false}
445
- handleOptionOnClick={() => {}}
446
- styles={{ width: 360 }}
447
- />
412
+ <ExampleContainer>
413
+ <Title title="Error" theme="light" level={4} />
414
+ <HalstackProvider theme={opinionatedTheme}>
415
+ <DxcSelect
416
+ label="Label"
417
+ options={single_options}
418
+ error="Error message."
419
+ helperText="Helper text"
420
+ placeholder="Placeholder"
421
+ />
422
+ <ExampleContainer>
423
+ <Title title="Multiple selection" theme="light" level={4} />
424
+ <DxcSelect label="Multiple select" searchable options={single_options} multiple defaultValue={["1", "2"]} />
425
+ </ExampleContainer>
426
+ <ExampleContainer pseudoState="pseudo-hover">
427
+ <Title title="Multiple clear hovered" theme="light" level={4} />
428
+ <DxcSelect label="Multiple select" options={single_options} multiple defaultValue={["1", "2"]} />
429
+ </ExampleContainer>
430
+ <ExampleContainer pseudoState="pseudo-active">
431
+ <Title title="Multiple clear actived" theme="light" level={4} />
432
+ <DxcSelect label="Multiple select" options={single_options} multiple defaultValue={["1", "2"]} />
433
+ </ExampleContainer>
434
+ </HalstackProvider>
448
435
  </ExampleContainer>
449
436
  </>
450
437
  );
438
+
439
+ const SelectListbox = () => {
440
+ const colorsTheme: any = useTheme();
441
+
442
+ return (
443
+ <>
444
+ <ThemeProvider theme={colorsTheme.select}>
445
+ <Title title="Listbox" theme="light" level={2} />
446
+ <ExampleContainer>
447
+ <Title
448
+ title="List dialog uses a Radix Popover to appear over elements with a certain z-index"
449
+ theme="light"
450
+ level={3}
451
+ />
452
+ <div
453
+ style={{
454
+ position: "relative",
455
+ display: "flex",
456
+ flexDirection: "column",
457
+ gap: "20px",
458
+ height: "150px",
459
+ width: "min-content",
460
+ marginBottom: "100px",
461
+ padding: "20px",
462
+ border: "1px solid black",
463
+ borderRadius: "4px",
464
+ overflow: "auto",
465
+ zIndex: "1300",
466
+ }}
467
+ >
468
+ <DxcSelect label="Label" options={single_options} optional placeholder="Choose an option" />
469
+ <button style={{ zIndex: "1", width: "100px" }}>Submit</button>
470
+ </div>
471
+ </ExampleContainer>
472
+ <Title title="Listbox option states" theme="light" level={3} />
473
+ <ExampleContainer pseudoState="pseudo-hover">
474
+ <Title title="Hovered option" theme="light" level={4} />
475
+ <Listbox
476
+ id="x"
477
+ currentValue=""
478
+ options={one_option}
479
+ visualFocusIndex={-1}
480
+ lastOptionIndex={0}
481
+ multiple={false}
482
+ optional={false}
483
+ optionalItem={{ label: "Empty", value: "" }}
484
+ searchable={false}
485
+ handleOptionOnClick={() => {}}
486
+ styles={{ width: 360 }}
487
+ />
488
+ </ExampleContainer>
489
+ <ExampleContainer pseudoState="pseudo-active">
490
+ <Title title="Active option" theme="light" level={4} />
491
+ <Listbox
492
+ id="x"
493
+ currentValue=""
494
+ options={one_option}
495
+ visualFocusIndex={-1}
496
+ lastOptionIndex={0}
497
+ multiple={false}
498
+ optional={false}
499
+ optionalItem={{ label: "Empty", value: "" }}
500
+ searchable={false}
501
+ handleOptionOnClick={() => {}}
502
+ styles={{ width: 360 }}
503
+ />
504
+ </ExampleContainer>
505
+ <ExampleContainer>
506
+ <Title title="Focused option" theme="light" level={4} />
507
+ <Listbox
508
+ id="x"
509
+ currentValue=""
510
+ options={one_option}
511
+ visualFocusIndex={0}
512
+ lastOptionIndex={0}
513
+ multiple={false}
514
+ optional={false}
515
+ optionalItem={{ label: "Empty", value: "" }}
516
+ searchable={false}
517
+ handleOptionOnClick={() => {}}
518
+ styles={{ width: 360 }}
519
+ />
520
+ </ExampleContainer>
521
+ <ExampleContainer pseudoState="pseudo-hover">
522
+ <Title title="Hovered selected option" theme="light" level={4} />
523
+ <Listbox
524
+ id="x"
525
+ currentValue="1"
526
+ options={single_options}
527
+ visualFocusIndex={-1}
528
+ lastOptionIndex={3}
529
+ multiple={false}
530
+ optional={false}
531
+ optionalItem={{ label: "Empty", value: "" }}
532
+ searchable={false}
533
+ handleOptionOnClick={() => {}}
534
+ styles={{ width: 360 }}
535
+ />
536
+ </ExampleContainer>
537
+ <ExampleContainer pseudoState="pseudo-active">
538
+ <Title title="Active selected option" theme="light" level={4} />
539
+ <Listbox
540
+ id="x"
541
+ currentValue="2"
542
+ options={single_options}
543
+ visualFocusIndex={0}
544
+ lastOptionIndex={3}
545
+ multiple={false}
546
+ optional={false}
547
+ optionalItem={{ label: "Empty", value: "" }}
548
+ searchable={false}
549
+ handleOptionOnClick={() => {}}
550
+ styles={{ width: 360 }}
551
+ />
552
+ </ExampleContainer>
553
+ <Title title="Listbox with icons" theme="light" level={3} />
554
+ <ExampleContainer>
555
+ <Title title="Icons (SVGs)" theme="light" level={4} />
556
+ <Listbox
557
+ id="x"
558
+ currentValue="3"
559
+ options={icon_options}
560
+ visualFocusIndex={-1}
561
+ lastOptionIndex={3}
562
+ multiple={false}
563
+ optional={false}
564
+ optionalItem={{ label: "Empty", value: "" }}
565
+ searchable={false}
566
+ handleOptionOnClick={() => {}}
567
+ styles={{ width: 360 }}
568
+ />
569
+ </ExampleContainer>
570
+ <ExampleContainer>
571
+ <Title title="Icons (Images)" theme="light" level={4} />
572
+ <Listbox
573
+ id="x"
574
+ currentValue="facebook"
575
+ options={url_options}
576
+ visualFocusIndex={-1}
577
+ lastOptionIndex={6}
578
+ multiple={false}
579
+ optional={false}
580
+ optionalItem={{ label: "Empty", value: "" }}
581
+ searchable={false}
582
+ handleOptionOnClick={() => {}}
583
+ styles={{ width: 360 }}
584
+ />
585
+ </ExampleContainer>
586
+ <ExampleContainer>
587
+ <Title title="Grouped icons (SVGs)" theme="light" level={4} />
588
+ <Listbox
589
+ id="x"
590
+ currentValue={["0", "3"]}
591
+ options={icon_options_grouped}
592
+ visualFocusIndex={-1}
593
+ lastOptionIndex={3}
594
+ multiple={false}
595
+ optional={false}
596
+ optionalItem={{ label: "Empty", value: "" }}
597
+ searchable={false}
598
+ handleOptionOnClick={() => {}}
599
+ styles={{ width: 360 }}
600
+ />
601
+ </ExampleContainer>
602
+ <ExampleContainer>
603
+ <Title title="Grouped icons (Images)" theme="light" level={4} />
604
+ <Listbox
605
+ id="x"
606
+ currentValue={["facebook", "figma"]}
607
+ options={url_options}
608
+ visualFocusIndex={-1}
609
+ lastOptionIndex={6}
610
+ multiple={true}
611
+ optional={false}
612
+ optionalItem={{ label: "Empty", value: "" }}
613
+ searchable={false}
614
+ handleOptionOnClick={() => {}}
615
+ styles={{ width: 360 }}
616
+ />
617
+ </ExampleContainer>
618
+ </ThemeProvider>
619
+ <ThemeProvider theme={colorsTheme.select}>
620
+ <Title title="Opinionated theme" theme="light" level={2} />
621
+ <ExampleContainer pseudoState="pseudo-hover">
622
+ <Title title="Hovered option" theme="light" level={4} />
623
+ <HalstackProvider theme={opinionatedTheme}>
624
+ <Listbox
625
+ id="x"
626
+ currentValue=""
627
+ options={one_option}
628
+ visualFocusIndex={-1}
629
+ lastOptionIndex={0}
630
+ multiple={false}
631
+ optional={false}
632
+ optionalItem={{ label: "Empty", value: "" }}
633
+ searchable={false}
634
+ handleOptionOnClick={() => {}}
635
+ styles={{ width: 360 }}
636
+ />
637
+ </HalstackProvider>
638
+ </ExampleContainer>
639
+ <ExampleContainer pseudoState="pseudo-active">
640
+ <Title title="Active option" theme="light" level={4} />{" "}
641
+ <HalstackProvider theme={opinionatedTheme}>
642
+ <Listbox
643
+ id="x"
644
+ currentValue=""
645
+ options={one_option}
646
+ visualFocusIndex={-1}
647
+ lastOptionIndex={0}
648
+ multiple={false}
649
+ optional={false}
650
+ optionalItem={{ label: "Empty", value: "" }}
651
+ searchable={false}
652
+ handleOptionOnClick={() => {}}
653
+ styles={{ width: 360 }}
654
+ />
655
+ </HalstackProvider>
656
+ </ExampleContainer>
657
+ <ExampleContainer>
658
+ <Title title="Focused option" theme="light" level={4} />{" "}
659
+ <HalstackProvider theme={opinionatedTheme}>
660
+ <Listbox
661
+ id="x"
662
+ currentValue=""
663
+ options={one_option}
664
+ visualFocusIndex={0}
665
+ lastOptionIndex={0}
666
+ multiple={false}
667
+ optional={false}
668
+ optionalItem={{ label: "Empty", value: "" }}
669
+ searchable={false}
670
+ handleOptionOnClick={() => {}}
671
+ styles={{ width: 360 }}
672
+ />
673
+ </HalstackProvider>
674
+ </ExampleContainer>
675
+ <ExampleContainer pseudoState="pseudo-hover">
676
+ <Title title="Hovered selected option" theme="light" level={4} />{" "}
677
+ <HalstackProvider theme={opinionatedTheme}>
678
+ <Listbox
679
+ id="x"
680
+ currentValue="1"
681
+ options={single_options}
682
+ visualFocusIndex={-1}
683
+ lastOptionIndex={3}
684
+ multiple={false}
685
+ optional={false}
686
+ optionalItem={{ label: "Empty", value: "" }}
687
+ searchable={false}
688
+ handleOptionOnClick={() => {}}
689
+ styles={{ width: 360 }}
690
+ />
691
+ </HalstackProvider>
692
+ </ExampleContainer>
693
+ <ExampleContainer pseudoState="pseudo-active">
694
+ <Title title="Active selected option" theme="light" level={4} />{" "}
695
+ <HalstackProvider theme={opinionatedTheme}>
696
+ <Listbox
697
+ id="x"
698
+ currentValue="2"
699
+ options={single_options}
700
+ visualFocusIndex={0}
701
+ lastOptionIndex={3}
702
+ multiple={false}
703
+ optional={false}
704
+ optionalItem={{ label: "Empty", value: "" }}
705
+ searchable={false}
706
+ handleOptionOnClick={() => {}}
707
+ styles={{ width: 360 }}
708
+ />
709
+ </HalstackProvider>
710
+ </ExampleContainer>
711
+ <Title title="Listbox with icons" theme="light" level={3} />
712
+ <ExampleContainer>
713
+ <Title title="Icons (SVGs)" theme="light" level={4} />{" "}
714
+ <HalstackProvider theme={opinionatedTheme}>
715
+ <Listbox
716
+ id="x"
717
+ currentValue="3"
718
+ options={icon_options}
719
+ visualFocusIndex={-1}
720
+ lastOptionIndex={3}
721
+ multiple={false}
722
+ optional={false}
723
+ optionalItem={{ label: "Empty", value: "" }}
724
+ searchable={false}
725
+ handleOptionOnClick={() => {}}
726
+ styles={{ width: 360 }}
727
+ />
728
+ </HalstackProvider>
729
+ </ExampleContainer>
730
+ </ThemeProvider>
731
+ </>
732
+ );
733
+ };
734
+
451
735
  const SearchableSelect = () => (
452
736
  <ExampleContainer expanded>
453
737
  <Title title="Searchable select" theme="light" level={4} />
454
738
  <DxcSelect label="Select Label" searchable options={single_options} placeholder="Choose an option" />
455
739
  </ExampleContainer>
456
740
  );
741
+
742
+ const SearchableSelectOpinionated = () => (
743
+ <ExampleContainer expanded>
744
+ <Title title="Searchable select" theme="light" level={4} />
745
+ <HalstackProvider theme={opinionatedTheme}>
746
+ <DxcSelect label="Select Label" searchable options={single_options} placeholder="Choose an option" />
747
+ </HalstackProvider>
748
+ </ExampleContainer>
749
+ );
750
+
457
751
  const SearchValue = () => (
458
752
  <ExampleContainer expanded>
459
753
  <Title title="Searchable select with value" theme="light" level={4} />
@@ -466,6 +760,22 @@ const SearchValue = () => (
466
760
  />
467
761
  </ExampleContainer>
468
762
  );
763
+
764
+ const SearchValueOpinionated = () => (
765
+ <ExampleContainer expanded>
766
+ <Title title="Searchable select with value" theme="light" level={4} />
767
+ <HalstackProvider theme={opinionatedTheme}>
768
+ <DxcSelect
769
+ label="Select Label"
770
+ searchable
771
+ defaultValue="1"
772
+ options={single_options}
773
+ placeholder="Choose an option"
774
+ />
775
+ </HalstackProvider>
776
+ </ExampleContainer>
777
+ );
778
+
469
779
  const MultipleSelect = () => (
470
780
  <>
471
781
  <ExampleContainer expanded>
@@ -480,12 +790,38 @@ const MultipleSelect = () => (
480
790
  </ExampleContainer>
481
791
  </>
482
792
  );
793
+
794
+ const MultipleSelectOpinioated = () => (
795
+ <ExampleContainer expanded>
796
+ <Title title="Multiple select" theme="light" level={4} />
797
+ <HalstackProvider theme={opinionatedTheme}>
798
+ <DxcSelect
799
+ label="Select label"
800
+ options={single_options}
801
+ defaultValue={["1", "4"]}
802
+ multiple
803
+ placeholder="Choose an option"
804
+ />
805
+ </HalstackProvider>
806
+ </ExampleContainer>
807
+ );
808
+
483
809
  const DefaultGroupedOptionsSelect = () => (
484
810
  <ExampleContainer expanded>
485
811
  <Title title="Grouped options simple select" theme="light" level={4} />
486
812
  <DxcSelect label="Label" options={group_options} defaultValue="9" placeholder="Choose an option" />
487
813
  </ExampleContainer>
488
814
  );
815
+
816
+ const DefaultGroupedOptionsSelectOpinionated = () => (
817
+ <ExampleContainer expanded>
818
+ <Title title="Grouped options simple select" theme="light" level={4} />
819
+ <HalstackProvider theme={opinionatedTheme}>
820
+ <DxcSelect label="Label" options={group_options} defaultValue="9" placeholder="Choose an option" />
821
+ </HalstackProvider>
822
+ </ExampleContainer>
823
+ );
824
+
489
825
  const MultipleGroupedOptionsSelect = () => (
490
826
  <ExampleContainer expanded>
491
827
  <Title title="Grouped options multiple select" theme="light" level={4} />
@@ -498,34 +834,19 @@ const MultipleGroupedOptionsSelect = () => (
498
834
  />
499
835
  </ExampleContainer>
500
836
  );
501
- const RescaledIcons = () => (
502
- <ExampleContainer expanded>
503
- <Title title="Rescaled icons displayed" theme="light" level={4} />
504
- <DxcSelect label="Label" options={url_options} defaultValue="facebook" placeholder="Choose an option" />
505
- </ExampleContainer>
506
- );
507
- const SelectWithIcons = () => (
508
- <ExampleContainer expanded>
509
- <Title title="Normal icons displayed" theme="light" level={4} />
510
- <DxcSelect label="Label" options={icon_options} defaultValue="3" placeholder="Choose an option" />
511
- </ExampleContainer>
512
- );
513
- const SelectMultipleWithIcons = () => (
514
- <ExampleContainer expanded>
515
- <Title title="Multiple select with icons" theme="light" level={4} />
516
- <DxcSelect label="Label" options={icon_options} multiple defaultValue={["1", "3"]} placeholder="Choose an option" />
517
- </ExampleContainer>
518
- );
519
- const MultipleGroupedOptionsSelectWithIcons = () => (
837
+
838
+ const MultipleGroupedOptionsSelectOpinionated = () => (
520
839
  <ExampleContainer expanded>
521
- <Title title="Multiple grouped options with icons" theme="light" level={4} />
522
- <DxcSelect
523
- label="Label"
524
- options={icon_options_grouped}
525
- multiple
526
- defaultValue={["3", "2"]}
527
- placeholder="Choose an option"
528
- />
840
+ <Title title="Grouped options multiple select" theme="light" level={4} />
841
+ <HalstackProvider theme={opinionatedTheme}>
842
+ <DxcSelect
843
+ label="Label"
844
+ options={group_options}
845
+ defaultValue={["0", "2"]}
846
+ multiple
847
+ placeholder="Choose an option"
848
+ />
849
+ </HalstackProvider>
529
850
  </ExampleContainer>
530
851
  );
531
852
 
@@ -543,6 +864,22 @@ const MultipleSearchable = () => (
543
864
  </ExampleContainer>
544
865
  );
545
866
 
867
+ const MultipleSearchableOpinionated = () => (
868
+ <ExampleContainer expanded>
869
+ <Title title="Searchable multiple select with value" theme="light" level={4} />
870
+ <HalstackProvider theme={opinionatedTheme}>
871
+ <DxcSelect
872
+ label="Select Label"
873
+ searchable
874
+ multiple
875
+ defaultValue={["1", "4"]}
876
+ options={single_options}
877
+ placeholder="Choose an option"
878
+ />
879
+ </HalstackProvider>
880
+ </ExampleContainer>
881
+ );
882
+
546
883
  export const Chromatic = Select.bind({});
547
884
  Chromatic.play = async ({ canvasElement }) => {
548
885
  const canvas = within(canvasElement);
@@ -559,10 +896,13 @@ ListboxStates.play = async ({ canvasElement }) => {
559
896
  export const Searchable = SearchableSelect.bind({});
560
897
  Searchable.play = async ({ canvasElement }) => {
561
898
  const canvas = within(canvasElement);
562
- await userEvent.click(canvas.getByRole("combobox"));
563
- await waitFor(async () => {
564
- userEvent.type(canvas.getByRole("combobox"), "r");
565
- });
899
+ await userEvent.type(canvas.getByRole("combobox"), "r");
900
+ };
901
+
902
+ export const SearchableOpinionated = SearchableSelectOpinionated.bind({});
903
+ SearchableOpinionated.play = async ({ canvasElement }) => {
904
+ const canvas = within(canvasElement);
905
+ await userEvent.type(canvas.getByRole("combobox"), "r");
566
906
  };
567
907
 
568
908
  export const SearchableWithValue = SearchValue.bind({});
@@ -571,12 +911,24 @@ SearchableWithValue.play = async ({ canvasElement }) => {
571
911
  await userEvent.click(canvas.getByRole("combobox"));
572
912
  };
573
913
 
914
+ export const SearchableWithValueOpinionated = SearchValueOpinionated.bind({});
915
+ SearchableWithValueOpinionated.play = async ({ canvasElement }) => {
916
+ const canvas = within(canvasElement);
917
+ await userEvent.click(canvas.getByRole("combobox"));
918
+ };
919
+
574
920
  export const MultipleSearchableWithValue = MultipleSearchable.bind({});
575
921
  MultipleSearchableWithValue.play = async ({ canvasElement }) => {
576
922
  const canvas = within(canvasElement);
577
923
  await userEvent.click(canvas.getAllByRole("combobox")[0]);
578
924
  };
579
925
 
926
+ export const MultipleSearchableWithValueOpinionated = MultipleSearchableOpinionated.bind({});
927
+ MultipleSearchableWithValueOpinionated.play = async ({ canvasElement }) => {
928
+ const canvas = within(canvasElement);
929
+ await userEvent.click(canvas.getAllByRole("combobox")[0]);
930
+ };
931
+
580
932
  export const GroupOptionsDisplayed = DefaultGroupedOptionsSelect.bind({});
581
933
  GroupOptionsDisplayed.play = async ({ canvasElement }) => {
582
934
  const canvas = within(canvasElement);
@@ -584,42 +936,34 @@ GroupOptionsDisplayed.play = async ({ canvasElement }) => {
584
936
  await userEvent.click(select);
585
937
  };
586
938
 
587
- export const MultipleOptionsDisplayed = MultipleSelect.bind({});
588
- MultipleOptionsDisplayed.play = async ({ canvasElement }) => {
589
- const canvas = within(canvasElement);
590
- await userEvent.click(canvas.getAllByRole("combobox")[0]);
591
- };
592
-
593
- export const MultipleGroupedOptionsDisplayed = MultipleGroupedOptionsSelect.bind({});
594
- MultipleGroupedOptionsDisplayed.play = async ({ canvasElement }) => {
939
+ export const GroupOptionsDisplayedOpinionated = DefaultGroupedOptionsSelectOpinionated.bind({});
940
+ GroupOptionsDisplayedOpinionated.play = async ({ canvasElement }) => {
595
941
  const canvas = within(canvasElement);
596
942
  const select = canvas.getByRole("combobox");
597
943
  await userEvent.click(select);
598
944
  };
599
945
 
600
- export const WithIconsDisplayed = SelectWithIcons.bind({});
601
- WithIconsDisplayed.play = async ({ canvasElement }) => {
946
+ export const MultipleOptionsDisplayed = MultipleSelect.bind({});
947
+ MultipleOptionsDisplayed.play = async ({ canvasElement }) => {
602
948
  const canvas = within(canvasElement);
603
- const select = canvas.getByRole("combobox");
604
- await userEvent.click(select);
949
+ await userEvent.click(canvas.getAllByRole("combobox")[0]);
605
950
  };
606
951
 
607
- export const WithRescaledIconsDisplayed = RescaledIcons.bind({});
608
- WithRescaledIconsDisplayed.play = async ({ canvasElement }) => {
952
+ export const MultipleOptionsDisplayedOpinionated = MultipleSelectOpinioated.bind({});
953
+ MultipleOptionsDisplayedOpinionated.play = async ({ canvasElement }) => {
609
954
  const canvas = within(canvasElement);
610
- const select = canvas.getByRole("combobox");
611
- await userEvent.click(select);
955
+ await userEvent.click(canvas.getAllByRole("combobox")[0]);
612
956
  };
613
957
 
614
- export const MultipleWithIconsDisplayed = SelectMultipleWithIcons.bind({});
615
- MultipleWithIconsDisplayed.play = async ({ canvasElement }) => {
958
+ export const MultipleGroupedOptionsDisplayed = MultipleGroupedOptionsSelect.bind({});
959
+ MultipleGroupedOptionsDisplayed.play = async ({ canvasElement }) => {
616
960
  const canvas = within(canvasElement);
617
961
  const select = canvas.getByRole("combobox");
618
962
  await userEvent.click(select);
619
963
  };
620
964
 
621
- export const MultipleGroupedWithIconsDisplayed = MultipleGroupedOptionsSelectWithIcons.bind({});
622
- MultipleGroupedWithIconsDisplayed.play = async ({ canvasElement }) => {
965
+ export const MultipleGroupedOptionsDisplayedOpinionated = MultipleGroupedOptionsSelectOpinionated.bind({});
966
+ MultipleGroupedOptionsDisplayedOpinionated.play = async ({ canvasElement }) => {
623
967
  const canvas = within(canvasElement);
624
968
  const select = canvas.getByRole("combobox");
625
969
  await userEvent.click(select);