@dxc-technology/halstack-react 0.0.0-0a9608a → 0.0.0-0ab346a

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 (365) 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 +122 -106
  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 +39 -109
  9. package/accordion/Accordion.stories.tsx +53 -148
  10. package/accordion/Accordion.test.js +19 -34
  11. package/accordion/types.d.ts +6 -18
  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 +29 -77
  15. package/accordion-group/AccordionGroup.stories.tsx +78 -77
  16. package/accordion-group/AccordionGroup.test.js +44 -72
  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 +7 -19
  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 +31 -124
  30. package/alert/Alert.stories.tsx +28 -0
  31. package/alert/Alert.test.js +29 -46
  32. package/alert/types.d.ts +5 -5
  33. package/badge/Badge.accessibility.test.js +129 -0
  34. package/badge/Badge.d.ts +1 -1
  35. package/badge/Badge.js +142 -42
  36. package/badge/Badge.stories.tsx +210 -0
  37. package/badge/Badge.test.js +30 -0
  38. package/badge/types.d.ts +52 -3
  39. package/bleed/Bleed.js +13 -21
  40. package/bleed/Bleed.stories.tsx +1 -0
  41. package/bleed/types.d.ts +2 -2
  42. package/box/Box.accessibility.test.js +33 -0
  43. package/box/Box.d.ts +1 -1
  44. package/box/Box.js +18 -59
  45. package/box/Box.stories.tsx +38 -51
  46. package/box/Box.test.js +2 -7
  47. package/box/types.d.ts +3 -15
  48. package/bulleted-list/BulletedList.accessibility.test.js +107 -0
  49. package/bulleted-list/BulletedList.js +22 -53
  50. package/bulleted-list/BulletedList.stories.tsx +8 -93
  51. package/bulleted-list/types.d.ts +32 -5
  52. package/button/Button.accessibility.test.js +127 -0
  53. package/button/Button.d.ts +1 -1
  54. package/button/Button.js +70 -103
  55. package/button/Button.stories.tsx +104 -119
  56. package/button/Button.test.js +20 -17
  57. package/button/types.d.ts +9 -5
  58. package/card/Card.accessibility.test.js +36 -0
  59. package/card/Card.d.ts +1 -1
  60. package/card/Card.js +48 -89
  61. package/card/Card.stories.tsx +12 -42
  62. package/card/Card.test.js +11 -22
  63. package/card/types.d.ts +6 -12
  64. package/checkbox/Checkbox.accessibility.test.js +87 -0
  65. package/checkbox/Checkbox.js +87 -122
  66. package/checkbox/Checkbox.stories.tsx +68 -54
  67. package/checkbox/Checkbox.test.js +108 -64
  68. package/checkbox/types.d.ts +8 -4
  69. package/chip/Chip.accessibility.test.js +67 -0
  70. package/chip/Chip.js +42 -67
  71. package/chip/Chip.stories.tsx +73 -29
  72. package/chip/Chip.test.js +18 -33
  73. package/chip/types.d.ts +4 -4
  74. package/common/coreTokens.d.ts +237 -0
  75. package/common/coreTokens.js +184 -0
  76. package/common/utils.d.ts +1 -0
  77. package/common/utils.js +6 -12
  78. package/common/variables.d.ts +1395 -0
  79. package/common/variables.js +898 -1143
  80. package/container/Container.d.ts +4 -0
  81. package/container/Container.js +194 -0
  82. package/container/Container.stories.tsx +214 -0
  83. package/container/types.d.ts +74 -0
  84. package/contextual-menu/ContextualMenu.accessibility.test.js +86 -0
  85. package/contextual-menu/ContextualMenu.d.ts +7 -0
  86. package/contextual-menu/ContextualMenu.js +71 -0
  87. package/contextual-menu/ContextualMenu.stories.tsx +182 -0
  88. package/contextual-menu/ContextualMenu.test.js +71 -0
  89. package/contextual-menu/MenuItemAction.d.ts +4 -0
  90. package/contextual-menu/MenuItemAction.js +46 -0
  91. package/contextual-menu/types.d.ts +22 -0
  92. package/date-input/Calendar.js +38 -70
  93. package/date-input/DateInput.accessibility.test.js +216 -0
  94. package/date-input/DateInput.js +50 -96
  95. package/date-input/DateInput.stories.tsx +78 -30
  96. package/date-input/DateInput.test.js +674 -701
  97. package/date-input/DatePicker.js +36 -53
  98. package/date-input/Icons.d.ts +6 -6
  99. package/date-input/Icons.js +6 -23
  100. package/date-input/YearPicker.js +28 -44
  101. package/date-input/types.d.ts +28 -22
  102. package/dialog/Dialog.accessibility.test.js +69 -0
  103. package/dialog/Dialog.d.ts +1 -1
  104. package/dialog/Dialog.js +61 -119
  105. package/dialog/Dialog.stories.tsx +310 -212
  106. package/dialog/Dialog.test.js +270 -33
  107. package/dialog/types.d.ts +18 -26
  108. package/divider/Divider.accessibility.test.js +33 -0
  109. package/divider/Divider.d.ts +4 -0
  110. package/divider/Divider.js +36 -0
  111. package/divider/Divider.stories.tsx +223 -0
  112. package/divider/Divider.test.js +38 -0
  113. package/divider/types.d.ts +21 -0
  114. package/divider/types.js +5 -0
  115. package/dropdown/Dropdown.accessibility.test.js +180 -0
  116. package/dropdown/Dropdown.js +61 -130
  117. package/dropdown/Dropdown.stories.tsx +51 -17
  118. package/dropdown/Dropdown.test.js +393 -379
  119. package/dropdown/DropdownMenu.js +13 -20
  120. package/dropdown/DropdownMenuItem.js +11 -22
  121. package/dropdown/types.d.ts +20 -24
  122. package/file-input/FileInput.accessibility.test.js +160 -0
  123. package/file-input/FileInput.js +184 -292
  124. package/file-input/FileInput.stories.tsx +86 -3
  125. package/file-input/FileInput.test.js +279 -395
  126. package/file-input/FileItem.js +27 -67
  127. package/file-input/types.d.ts +10 -10
  128. package/flex/Flex.js +27 -39
  129. package/flex/Flex.stories.tsx +35 -26
  130. package/flex/types.d.ts +74 -9
  131. package/footer/Footer.accessibility.test.js +117 -0
  132. package/footer/Footer.d.ts +1 -1
  133. package/footer/Footer.js +73 -118
  134. package/footer/Footer.stories.tsx +82 -23
  135. package/footer/Footer.test.js +33 -57
  136. package/footer/Icons.d.ts +3 -2
  137. package/footer/Icons.js +66 -7
  138. package/footer/types.d.ts +26 -28
  139. package/grid/Grid.d.ts +7 -0
  140. package/grid/Grid.js +76 -0
  141. package/grid/Grid.stories.tsx +219 -0
  142. package/grid/types.d.ts +115 -0
  143. package/grid/types.js +5 -0
  144. package/header/Header.accessibility.test.js +84 -0
  145. package/header/Header.d.ts +4 -3
  146. package/header/Header.js +42 -136
  147. package/header/Header.stories.tsx +81 -35
  148. package/header/Header.test.js +13 -26
  149. package/header/Icons.d.ts +2 -2
  150. package/header/Icons.js +2 -7
  151. package/header/types.d.ts +7 -22
  152. package/heading/Heading.accessibility.test.js +33 -0
  153. package/heading/Heading.js +10 -32
  154. package/heading/Heading.test.js +71 -88
  155. package/heading/types.d.ts +7 -7
  156. package/icon/Icon.accessibility.test.js +30 -0
  157. package/icon/Icon.d.ts +4 -0
  158. package/icon/Icon.js +33 -0
  159. package/icon/Icon.stories.tsx +28 -0
  160. package/icon/types.d.ts +4 -0
  161. package/icon/types.js +5 -0
  162. package/image/Image.accessibility.test.js +56 -0
  163. package/image/Image.d.ts +4 -0
  164. package/image/Image.js +70 -0
  165. package/image/Image.stories.tsx +129 -0
  166. package/image/types.d.ts +72 -0
  167. package/image/types.js +5 -0
  168. package/inset/Inset.js +13 -21
  169. package/inset/Inset.stories.tsx +2 -1
  170. package/inset/types.d.ts +2 -2
  171. package/layout/ApplicationLayout.d.ts +5 -5
  172. package/layout/ApplicationLayout.js +30 -67
  173. package/layout/ApplicationLayout.stories.tsx +1 -1
  174. package/layout/Icons.d.ts +8 -5
  175. package/layout/Icons.js +49 -59
  176. package/layout/types.d.ts +5 -6
  177. package/link/Link.accessibility.test.js +112 -0
  178. package/link/Link.js +31 -50
  179. package/link/Link.stories.tsx +62 -2
  180. package/link/Link.test.js +24 -44
  181. package/link/types.d.ts +14 -14
  182. package/main.d.ts +10 -5
  183. package/main.js +47 -59
  184. package/nav-tabs/NavTabs.accessibility.test.js +44 -0
  185. package/nav-tabs/NavTabs.d.ts +7 -0
  186. package/{tabs-nav → nav-tabs}/NavTabs.js +25 -57
  187. package/nav-tabs/NavTabs.stories.tsx +279 -0
  188. package/{tabs-nav → nav-tabs}/NavTabs.test.js +39 -46
  189. package/nav-tabs/NavTabsContext.d.ts +3 -0
  190. package/nav-tabs/NavTabsContext.js +8 -0
  191. package/nav-tabs/Tab.js +117 -0
  192. package/{tabs-nav → nav-tabs}/types.d.ts +15 -16
  193. package/nav-tabs/types.js +5 -0
  194. package/number-input/NumberInput.accessibility.test.js +228 -0
  195. package/number-input/NumberInput.js +46 -36
  196. package/number-input/NumberInput.stories.tsx +42 -26
  197. package/number-input/NumberInput.test.js +860 -413
  198. package/number-input/NumberInputContext.d.ts +3 -4
  199. package/number-input/NumberInputContext.js +3 -14
  200. package/number-input/types.d.ts +17 -5
  201. package/package.json +41 -39
  202. package/paginator/Icons.d.ts +5 -5
  203. package/paginator/Icons.js +5 -19
  204. package/paginator/Paginator.accessibility.test.js +79 -0
  205. package/paginator/Paginator.js +17 -47
  206. package/paginator/Paginator.stories.tsx +24 -0
  207. package/paginator/Paginator.test.js +235 -215
  208. package/paginator/types.d.ts +3 -3
  209. package/paragraph/Paragraph.accessibility.test.js +28 -0
  210. package/paragraph/Paragraph.d.ts +3 -4
  211. package/paragraph/Paragraph.js +6 -22
  212. package/paragraph/Paragraph.stories.tsx +0 -17
  213. package/password-input/Icons.d.ts +6 -0
  214. package/password-input/Icons.js +35 -0
  215. package/password-input/PasswordInput.accessibility.test.js +153 -0
  216. package/password-input/PasswordInput.js +57 -126
  217. package/password-input/PasswordInput.stories.tsx +1 -33
  218. package/password-input/PasswordInput.test.js +158 -141
  219. package/password-input/types.d.ts +8 -7
  220. package/progress-bar/ProgressBar.accessibility.test.js +35 -0
  221. package/progress-bar/ProgressBar.d.ts +2 -2
  222. package/progress-bar/ProgressBar.js +23 -55
  223. package/progress-bar/{ProgressBar.stories.jsx → ProgressBar.stories.tsx} +36 -3
  224. package/progress-bar/ProgressBar.test.js +36 -53
  225. package/progress-bar/types.d.ts +4 -3
  226. package/quick-nav/QuickNav.accessibility.test.js +57 -0
  227. package/quick-nav/QuickNav.js +4 -27
  228. package/quick-nav/QuickNav.stories.tsx +15 -1
  229. package/quick-nav/types.d.ts +10 -10
  230. package/radio-group/Radio.d.ts +1 -1
  231. package/radio-group/Radio.js +31 -63
  232. package/radio-group/RadioGroup.accessibility.test.js +97 -0
  233. package/radio-group/RadioGroup.js +45 -93
  234. package/radio-group/RadioGroup.stories.tsx +131 -18
  235. package/radio-group/RadioGroup.test.js +505 -471
  236. package/radio-group/types.d.ts +8 -8
  237. package/resultset-table/Icons.d.ts +7 -0
  238. package/{resultsetTable → resultset-table}/Icons.js +1 -5
  239. package/resultset-table/ResultsetTable.accessibility.test.js +274 -0
  240. package/resultset-table/ResultsetTable.d.ts +7 -0
  241. package/{resultsetTable → resultset-table}/ResultsetTable.js +46 -71
  242. package/{resultsetTable → resultset-table}/ResultsetTable.stories.tsx +106 -5
  243. package/{resultsetTable → resultset-table}/ResultsetTable.test.js +149 -93
  244. package/{resultsetTable → resultset-table}/types.d.ts +44 -11
  245. package/resultset-table/types.js +5 -0
  246. package/select/Icons.d.ts +7 -7
  247. package/select/Icons.js +1 -5
  248. package/select/Listbox.js +13 -39
  249. package/select/Option.js +17 -27
  250. package/select/Select.accessibility.test.js +217 -0
  251. package/select/Select.js +94 -168
  252. package/select/Select.stories.tsx +480 -179
  253. package/select/Select.test.js +1952 -1810
  254. package/select/types.d.ts +14 -15
  255. package/sidenav/Sidenav.accessibility.test.js +59 -0
  256. package/sidenav/Sidenav.d.ts +2 -2
  257. package/sidenav/Sidenav.js +90 -155
  258. package/sidenav/Sidenav.stories.tsx +113 -25
  259. package/sidenav/Sidenav.test.js +3 -10
  260. package/{layout → sidenav}/SidenavContext.d.ts +1 -1
  261. package/{layout → sidenav}/SidenavContext.js +3 -9
  262. package/sidenav/types.d.ts +33 -30
  263. package/slider/Slider.accessibility.test.js +104 -0
  264. package/slider/Slider.js +70 -128
  265. package/slider/Slider.test.js +108 -104
  266. package/slider/types.d.ts +4 -4
  267. package/spinner/Spinner.accessibility.test.js +96 -0
  268. package/spinner/Spinner.js +29 -73
  269. package/spinner/{Spinner.stories.jsx → Spinner.stories.tsx} +53 -27
  270. package/spinner/Spinner.test.js +26 -35
  271. package/spinner/types.d.ts +3 -3
  272. package/status-light/StatusLight.accessibility.test.js +157 -0
  273. package/status-light/StatusLight.d.ts +4 -0
  274. package/status-light/StatusLight.js +51 -0
  275. package/status-light/StatusLight.stories.tsx +74 -0
  276. package/status-light/StatusLight.test.js +25 -0
  277. package/status-light/types.d.ts +17 -0
  278. package/status-light/types.js +5 -0
  279. package/switch/Switch.accessibility.test.js +89 -0
  280. package/switch/Switch.js +51 -99
  281. package/switch/Switch.stories.tsx +33 -34
  282. package/switch/Switch.test.js +52 -97
  283. package/switch/types.d.ts +4 -4
  284. package/table/DropdownTheme.js +62 -0
  285. package/table/Table.accessibility.test.js +82 -0
  286. package/table/Table.d.ts +6 -2
  287. package/table/Table.js +78 -35
  288. package/table/Table.stories.tsx +651 -0
  289. package/table/Table.test.js +94 -7
  290. package/table/types.d.ts +34 -6
  291. package/tabs/Tab.js +23 -40
  292. package/tabs/Tabs.accessibility.test.js +56 -0
  293. package/tabs/Tabs.js +62 -145
  294. package/tabs/Tabs.stories.tsx +39 -1
  295. package/tabs/Tabs.test.js +66 -123
  296. package/tabs/types.d.ts +19 -19
  297. package/tag/Tag.accessibility.test.js +69 -0
  298. package/tag/Tag.js +34 -66
  299. package/tag/Tag.stories.tsx +18 -8
  300. package/tag/Tag.test.js +18 -37
  301. package/tag/types.d.ts +9 -9
  302. package/text-input/Suggestion.js +11 -28
  303. package/text-input/Suggestions.d.ts +1 -1
  304. package/text-input/Suggestions.js +19 -67
  305. package/text-input/TextInput.accessibility.test.js +321 -0
  306. package/text-input/TextInput.js +223 -329
  307. package/text-input/TextInput.stories.tsx +117 -153
  308. package/text-input/TextInput.test.js +1228 -1196
  309. package/text-input/types.d.ts +25 -17
  310. package/textarea/Textarea.accessibility.test.js +155 -0
  311. package/textarea/Textarea.js +70 -113
  312. package/textarea/Textarea.stories.tsx +174 -0
  313. package/textarea/Textarea.test.js +152 -183
  314. package/textarea/types.d.ts +9 -5
  315. package/toggle-group/ToggleGroup.accessibility.test.js +107 -0
  316. package/toggle-group/ToggleGroup.d.ts +2 -2
  317. package/toggle-group/ToggleGroup.js +94 -107
  318. package/toggle-group/ToggleGroup.stories.tsx +52 -7
  319. package/toggle-group/ToggleGroup.test.js +69 -88
  320. package/toggle-group/types.d.ts +28 -19
  321. package/typography/Typography.accessibility.test.js +339 -0
  322. package/typography/Typography.d.ts +2 -2
  323. package/typography/Typography.js +15 -123
  324. package/typography/Typography.stories.tsx +1 -1
  325. package/typography/types.d.ts +1 -1
  326. package/useTheme.d.ts +1147 -1
  327. package/useTheme.js +2 -9
  328. package/useTranslatedLabels.d.ts +84 -1
  329. package/useTranslatedLabels.js +1 -7
  330. package/utils/BaseTypography.d.ts +21 -0
  331. package/utils/BaseTypography.js +94 -0
  332. package/utils/FocusLock.d.ts +13 -0
  333. package/utils/FocusLock.js +124 -0
  334. package/wizard/Wizard.accessibility.test.js +55 -0
  335. package/wizard/Wizard.js +16 -51
  336. package/wizard/Wizard.stories.tsx +20 -0
  337. package/wizard/Wizard.test.js +54 -81
  338. package/wizard/types.d.ts +9 -10
  339. package/card/ice-cream.jpg +0 -0
  340. package/common/OpenSans.css +0 -81
  341. package/common/fonts/OpenSans-Bold.ttf +0 -0
  342. package/common/fonts/OpenSans-BoldItalic.ttf +0 -0
  343. package/common/fonts/OpenSans-ExtraBold.ttf +0 -0
  344. package/common/fonts/OpenSans-ExtraBoldItalic.ttf +0 -0
  345. package/common/fonts/OpenSans-Italic.ttf +0 -0
  346. package/common/fonts/OpenSans-Light.ttf +0 -0
  347. package/common/fonts/OpenSans-LightItalic.ttf +0 -0
  348. package/common/fonts/OpenSans-Regular.ttf +0 -0
  349. package/common/fonts/OpenSans-SemiBold.ttf +0 -0
  350. package/common/fonts/OpenSans-SemiBoldItalic.ttf +0 -0
  351. package/number-input/numberInputContextTypes.d.ts +0 -19
  352. package/resultsetTable/Icons.d.ts +0 -7
  353. package/resultsetTable/ResultsetTable.d.ts +0 -4
  354. package/slider/Slider.stories.tsx +0 -183
  355. package/table/Table.stories.jsx +0 -277
  356. package/tabs-nav/NavTabs.d.ts +0 -8
  357. package/tabs-nav/NavTabs.stories.tsx +0 -172
  358. package/tabs-nav/Tab.js +0 -128
  359. package/text-input/Icons.d.ts +0 -8
  360. package/text-input/Icons.js +0 -60
  361. package/textarea/Textarea.stories.jsx +0 -157
  362. /package/{resultsetTable → action-icon}/types.js +0 -0
  363. /package/{tabs-nav → container}/types.js +0 -0
  364. /package/{number-input/numberInputContextTypes.js → contextual-menu/types.js} +0 -0
  365. /package/{tabs-nav → nav-tabs}/Tab.d.ts +0 -0
@@ -6,6 +6,7 @@ import DxcSelect from "./Select";
6
6
  import Listbox from "./Listbox";
7
7
  import { ThemeProvider } from "styled-components";
8
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,9 +188,9 @@ 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",
@@ -192,7 +198,6 @@ const url_options = [
192
198
  icon: (
193
199
  <svg
194
200
  version="1.1"
195
- id="Capa_1"
196
201
  x="0px"
197
202
  y="0px"
198
203
  width="438.536px"
@@ -241,12 +246,22 @@ const url_options = [
241
246
  ],
242
247
  },
243
248
  ];
249
+
244
250
  const optionsWithEllipsisMedium = [
245
251
  { label: "Optiond1234567890123456789012345678901234", value: "1" },
246
252
  { label: "Optiond12345678901234567890123456789012345", value: "2" },
247
253
  { label: "Option 031111111111111111111111111111222", value: "3" },
248
254
  ];
249
255
 
256
+ const opinionatedTheme = {
257
+ select: {
258
+ selectedOptionBackgroundColor: "#e6f4ff",
259
+ fontColor: "#000000",
260
+ optionFontColor: "#000000",
261
+ hoverBorderColor: "#a46ede",
262
+ },
263
+ };
264
+
250
265
  const Select = () => (
251
266
  <>
252
267
  <Title title="States" theme="light" level={2} />
@@ -369,187 +384,351 @@ const Select = () => (
369
384
  margin={{ top: "xxlarge" }}
370
385
  />
371
386
  </ExampleContainer>
387
+ <Title title="Opinionated theme" theme="light" level={2} />
388
+ <ExampleContainer pseudoState="pseudo-hover">
389
+ <Title title="Hovered" theme="light" level={4} />
390
+ <HalstackProvider theme={opinionatedTheme}>
391
+ <DxcSelect label="Hovered" options={single_options} />
392
+ </HalstackProvider>
393
+ </ExampleContainer>
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>
399
+ </ExampleContainer>
400
+ <ExampleContainer>
401
+ <Title title="Disabled" theme="light" level={4} />
402
+ <HalstackProvider theme={opinionatedTheme}>
403
+ <DxcSelect label="Disabled" placeholder="Placeholder" disabled options={single_options} />
404
+ </HalstackProvider>
405
+ </ExampleContainer>
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>
411
+ </ExampleContainer>
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>
435
+ </ExampleContainer>
372
436
  </>
373
437
  );
438
+
374
439
  const SelectListbox = () => {
375
440
  const colorsTheme: any = useTheme();
376
441
 
377
442
  return (
378
- <ThemeProvider theme={colorsTheme.select}>
379
- <Title title="Listbox" theme="light" level={2} />
380
- <ExampleContainer>
381
- <Title
382
- title="List dialog uses a Radix Popover to appear over elements with a certain z-index"
383
- theme="light"
384
- level={3}
385
- />
386
- <div
387
- style={{
388
- position: "relative",
389
- display: "flex",
390
- flexDirection: "column",
391
- gap: "20px",
392
- height: "150px",
393
- width: "min-content",
394
- marginBottom: "100px",
395
- padding: "20px",
396
- border: "1px solid black",
397
- borderRadius: "4px",
398
- overflow: "auto",
399
- zIndex: "1300",
400
- }}
401
- >
402
- <DxcSelect label="Label" options={single_options} optional placeholder="Choose an option" />
403
- <button style={{ zIndex: "1", width: "100px" }}>Submit</button>
404
- </div>
405
- </ExampleContainer>
406
- <Title title="Listbox option states" theme="light" level={3} />
407
- <ExampleContainer pseudoState="pseudo-hover">
408
- <Title title="Hovered option" theme="light" level={4} />
409
- <Listbox
410
- id="x"
411
- currentValue=""
412
- options={one_option}
413
- visualFocusIndex={-1}
414
- lastOptionIndex={0}
415
- multiple={false}
416
- optional={false}
417
- optionalItem={{ label: "Empty", value: "" }}
418
- searchable={false}
419
- handleOptionOnClick={() => {}}
420
- styles={{ width: 360 }}
421
- />
422
- </ExampleContainer>
423
- <ExampleContainer pseudoState="pseudo-active">
424
- <Title title="Active option" theme="light" level={4} />
425
- <Listbox
426
- id="x"
427
- currentValue=""
428
- options={one_option}
429
- visualFocusIndex={-1}
430
- lastOptionIndex={0}
431
- multiple={false}
432
- optional={false}
433
- optionalItem={{ label: "Empty", value: "" }}
434
- searchable={false}
435
- handleOptionOnClick={() => {}}
436
- styles={{ width: 360 }}
437
- />
438
- </ExampleContainer>
439
- <ExampleContainer>
440
- <Title title="Focused option" theme="light" level={4} />
441
- <Listbox
442
- id="x"
443
- currentValue=""
444
- options={one_option}
445
- visualFocusIndex={0}
446
- lastOptionIndex={0}
447
- multiple={false}
448
- optional={false}
449
- optionalItem={{ label: "Empty", value: "" }}
450
- searchable={false}
451
- handleOptionOnClick={() => {}}
452
- styles={{ width: 360 }}
453
- />
454
- </ExampleContainer>
455
- <ExampleContainer pseudoState="pseudo-hover">
456
- <Title title="Hovered selected option" theme="light" level={4} />
457
- <Listbox
458
- id="x"
459
- currentValue="1"
460
- options={single_options}
461
- visualFocusIndex={-1}
462
- lastOptionIndex={3}
463
- multiple={false}
464
- optional={false}
465
- optionalItem={{ label: "Empty", value: "" }}
466
- searchable={false}
467
- handleOptionOnClick={() => {}}
468
- styles={{ width: 360 }}
469
- />
470
- </ExampleContainer>
471
- <ExampleContainer pseudoState="pseudo-active">
472
- <Title title="Active selected option" theme="light" level={4} />
473
- <Listbox
474
- id="x"
475
- currentValue="2"
476
- options={single_options}
477
- visualFocusIndex={0}
478
- lastOptionIndex={3}
479
- multiple={false}
480
- optional={false}
481
- optionalItem={{ label: "Empty", value: "" }}
482
- searchable={false}
483
- handleOptionOnClick={() => {}}
484
- styles={{ width: 360 }}
485
- />
486
- </ExampleContainer>
487
- <Title title="Listbox with icons" theme="light" level={3} />
488
- <ExampleContainer>
489
- <Title title="Icons (SVGs)" theme="light" level={4} />
490
- <Listbox
491
- id="x"
492
- currentValue="3"
493
- options={icon_options}
494
- visualFocusIndex={-1}
495
- lastOptionIndex={3}
496
- multiple={false}
497
- optional={false}
498
- optionalItem={{ label: "Empty", value: "" }}
499
- searchable={false}
500
- handleOptionOnClick={() => {}}
501
- styles={{ width: 360 }}
502
- />
503
- </ExampleContainer>
504
- <ExampleContainer>
505
- <Title title="Icons (Images)" theme="light" level={4} />
506
- <Listbox
507
- id="x"
508
- currentValue="facebook"
509
- options={url_options}
510
- visualFocusIndex={-1}
511
- lastOptionIndex={6}
512
- multiple={false}
513
- optional={false}
514
- optionalItem={{ label: "Empty", value: "" }}
515
- searchable={false}
516
- handleOptionOnClick={() => {}}
517
- styles={{ width: 360 }}
518
- />
519
- </ExampleContainer>
520
- <ExampleContainer>
521
- <Title title="Grouped icons (SVGs)" theme="light" level={4} />
522
- <Listbox
523
- id="x"
524
- currentValue={["0", "3"]}
525
- options={icon_options_grouped}
526
- visualFocusIndex={-1}
527
- lastOptionIndex={3}
528
- multiple={false}
529
- optional={false}
530
- optionalItem={{ label: "Empty", value: "" }}
531
- searchable={false}
532
- handleOptionOnClick={() => {}}
533
- styles={{ width: 360 }}
534
- />
535
- </ExampleContainer>
536
- <ExampleContainer>
537
- <Title title="Grouped icons (Images)" theme="light" level={4} />
538
- <Listbox
539
- id="x"
540
- currentValue={["facebook", "figma"]}
541
- options={url_options}
542
- visualFocusIndex={-1}
543
- lastOptionIndex={6}
544
- multiple={true}
545
- optional={false}
546
- optionalItem={{ label: "Empty", value: "" }}
547
- searchable={false}
548
- handleOptionOnClick={() => {}}
549
- styles={{ width: 360 }}
550
- />
551
- </ExampleContainer>
552
- </ThemeProvider>
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
+ </>
553
732
  );
554
733
  };
555
734
 
@@ -559,6 +738,16 @@ const SearchableSelect = () => (
559
738
  <DxcSelect label="Select Label" searchable options={single_options} placeholder="Choose an option" />
560
739
  </ExampleContainer>
561
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
+
562
751
  const SearchValue = () => (
563
752
  <ExampleContainer expanded>
564
753
  <Title title="Searchable select with value" theme="light" level={4} />
@@ -571,6 +760,22 @@ const SearchValue = () => (
571
760
  />
572
761
  </ExampleContainer>
573
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
+
574
779
  const MultipleSelect = () => (
575
780
  <>
576
781
  <ExampleContainer expanded>
@@ -585,12 +790,38 @@ const MultipleSelect = () => (
585
790
  </ExampleContainer>
586
791
  </>
587
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
+
588
809
  const DefaultGroupedOptionsSelect = () => (
589
810
  <ExampleContainer expanded>
590
811
  <Title title="Grouped options simple select" theme="light" level={4} />
591
812
  <DxcSelect label="Label" options={group_options} defaultValue="9" placeholder="Choose an option" />
592
813
  </ExampleContainer>
593
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
+
594
825
  const MultipleGroupedOptionsSelect = () => (
595
826
  <ExampleContainer expanded>
596
827
  <Title title="Grouped options multiple select" theme="light" level={4} />
@@ -603,6 +834,22 @@ const MultipleGroupedOptionsSelect = () => (
603
834
  />
604
835
  </ExampleContainer>
605
836
  );
837
+
838
+ const MultipleGroupedOptionsSelectOpinionated = () => (
839
+ <ExampleContainer expanded>
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>
850
+ </ExampleContainer>
851
+ );
852
+
606
853
  const MultipleSearchable = () => (
607
854
  <ExampleContainer expanded>
608
855
  <Title title="Searchable multiple select with value" theme="light" level={4} />
@@ -617,6 +864,22 @@ const MultipleSearchable = () => (
617
864
  </ExampleContainer>
618
865
  );
619
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
+
620
883
  export const Chromatic = Select.bind({});
621
884
  Chromatic.play = async ({ canvasElement }) => {
622
885
  const canvas = within(canvasElement);
@@ -636,18 +899,36 @@ Searchable.play = async ({ canvasElement }) => {
636
899
  await userEvent.type(canvas.getByRole("combobox"), "r");
637
900
  };
638
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");
906
+ };
907
+
639
908
  export const SearchableWithValue = SearchValue.bind({});
640
909
  SearchableWithValue.play = async ({ canvasElement }) => {
641
910
  const canvas = within(canvasElement);
642
911
  await userEvent.click(canvas.getByRole("combobox"));
643
912
  };
644
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
+
645
920
  export const MultipleSearchableWithValue = MultipleSearchable.bind({});
646
921
  MultipleSearchableWithValue.play = async ({ canvasElement }) => {
647
922
  const canvas = within(canvasElement);
648
923
  await userEvent.click(canvas.getAllByRole("combobox")[0]);
649
924
  };
650
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
+
651
932
  export const GroupOptionsDisplayed = DefaultGroupedOptionsSelect.bind({});
652
933
  GroupOptionsDisplayed.play = async ({ canvasElement }) => {
653
934
  const canvas = within(canvasElement);
@@ -655,15 +936,35 @@ GroupOptionsDisplayed.play = async ({ canvasElement }) => {
655
936
  await userEvent.click(select);
656
937
  };
657
938
 
939
+ export const GroupOptionsDisplayedOpinionated = DefaultGroupedOptionsSelectOpinionated.bind({});
940
+ GroupOptionsDisplayedOpinionated.play = async ({ canvasElement }) => {
941
+ const canvas = within(canvasElement);
942
+ const select = canvas.getByRole("combobox");
943
+ await userEvent.click(select);
944
+ };
945
+
658
946
  export const MultipleOptionsDisplayed = MultipleSelect.bind({});
659
947
  MultipleOptionsDisplayed.play = async ({ canvasElement }) => {
660
948
  const canvas = within(canvasElement);
661
949
  await userEvent.click(canvas.getAllByRole("combobox")[0]);
662
950
  };
663
951
 
952
+ export const MultipleOptionsDisplayedOpinionated = MultipleSelectOpinioated.bind({});
953
+ MultipleOptionsDisplayedOpinionated.play = async ({ canvasElement }) => {
954
+ const canvas = within(canvasElement);
955
+ await userEvent.click(canvas.getAllByRole("combobox")[0]);
956
+ };
957
+
664
958
  export const MultipleGroupedOptionsDisplayed = MultipleGroupedOptionsSelect.bind({});
665
959
  MultipleGroupedOptionsDisplayed.play = async ({ canvasElement }) => {
666
960
  const canvas = within(canvasElement);
667
961
  const select = canvas.getByRole("combobox");
668
962
  await userEvent.click(select);
669
963
  };
964
+
965
+ export const MultipleGroupedOptionsDisplayedOpinionated = MultipleGroupedOptionsSelectOpinionated.bind({});
966
+ MultipleGroupedOptionsDisplayedOpinionated.play = async ({ canvasElement }) => {
967
+ const canvas = within(canvasElement);
968
+ const select = canvas.getByRole("combobox");
969
+ await userEvent.click(select);
970
+ };