@dxc-technology/halstack-react 0.0.0-4448bdb → 0.0.0-453c87a

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 (278) hide show
  1. package/HalstackContext.d.ts +12 -0
  2. package/HalstackContext.js +294 -0
  3. package/accordion/Accordion.d.ts +1 -1
  4. package/accordion/Accordion.js +117 -136
  5. package/accordion/Accordion.stories.tsx +65 -26
  6. package/accordion/Accordion.test.js +71 -0
  7. package/accordion/types.d.ts +11 -10
  8. package/accordion-group/AccordionGroup.d.ts +1 -1
  9. package/accordion-group/AccordionGroup.js +15 -36
  10. package/accordion-group/AccordionGroup.stories.tsx +28 -2
  11. package/accordion-group/AccordionGroup.test.js +126 -0
  12. package/accordion-group/types.d.ts +16 -9
  13. package/alert/Alert.js +5 -2
  14. package/alert/Alert.test.js +92 -0
  15. package/badge/Badge.d.ts +4 -0
  16. package/badge/Badge.js +5 -3
  17. package/badge/types.d.ts +5 -0
  18. package/{radio → badge}/types.js +0 -0
  19. package/bleed/Bleed.d.ts +3 -0
  20. package/bleed/Bleed.js +51 -0
  21. package/bleed/Bleed.stories.tsx +341 -0
  22. package/bleed/types.d.ts +37 -0
  23. package/bleed/types.js +5 -0
  24. package/box/Box.js +23 -33
  25. package/box/Box.test.js +18 -0
  26. package/box/types.d.ts +1 -0
  27. package/bulleted-list/BulletedList.d.ts +7 -0
  28. package/bulleted-list/BulletedList.js +123 -0
  29. package/bulleted-list/BulletedList.stories.tsx +200 -0
  30. package/bulleted-list/types.d.ts +11 -0
  31. package/bulleted-list/types.js +5 -0
  32. package/button/Button.d.ts +1 -1
  33. package/button/Button.js +54 -79
  34. package/button/Button.stories.tsx +66 -8
  35. package/button/Button.test.js +35 -0
  36. package/button/types.d.ts +8 -12
  37. package/card/Card.js +24 -27
  38. package/card/Card.test.js +50 -0
  39. package/card/types.d.ts +1 -0
  40. package/checkbox/Checkbox.d.ts +2 -2
  41. package/checkbox/Checkbox.js +106 -109
  42. package/checkbox/Checkbox.stories.tsx +146 -130
  43. package/checkbox/Checkbox.test.js +155 -0
  44. package/checkbox/types.d.ts +13 -5
  45. package/chip/Chip.d.ts +1 -1
  46. package/chip/Chip.js +17 -67
  47. package/chip/Chip.stories.tsx +44 -14
  48. package/chip/Chip.test.js +56 -0
  49. package/chip/types.d.ts +5 -13
  50. package/common/variables.js +346 -446
  51. package/date-input/Calendar.d.ts +4 -0
  52. package/date-input/Calendar.js +246 -0
  53. package/date-input/DateInput.js +171 -260
  54. package/date-input/DateInput.stories.tsx +137 -38
  55. package/date-input/DateInput.test.js +835 -0
  56. package/date-input/DatePicker.d.ts +4 -0
  57. package/date-input/DatePicker.js +132 -0
  58. package/date-input/Icons.d.ts +6 -0
  59. package/date-input/Icons.js +75 -0
  60. package/date-input/YearPicker.d.ts +4 -0
  61. package/date-input/YearPicker.js +116 -0
  62. package/date-input/types.d.ts +67 -9
  63. package/dialog/Dialog.js +46 -50
  64. package/dialog/Dialog.stories.tsx +57 -2
  65. package/dialog/Dialog.test.js +70 -0
  66. package/dialog/types.d.ts +3 -2
  67. package/dropdown/Dropdown.d.ts +1 -1
  68. package/dropdown/Dropdown.js +249 -277
  69. package/dropdown/Dropdown.stories.tsx +153 -80
  70. package/dropdown/Dropdown.test.js +585 -0
  71. package/dropdown/DropdownMenu.d.ts +4 -0
  72. package/dropdown/DropdownMenu.js +80 -0
  73. package/dropdown/DropdownMenuItem.d.ts +4 -0
  74. package/dropdown/DropdownMenuItem.js +92 -0
  75. package/dropdown/types.d.ts +29 -18
  76. package/file-input/FileInput.d.ts +2 -2
  77. package/file-input/FileInput.js +183 -222
  78. package/file-input/FileInput.stories.tsx +38 -10
  79. package/file-input/FileInput.test.js +498 -0
  80. package/file-input/FileItem.d.ts +4 -14
  81. package/file-input/FileItem.js +43 -66
  82. package/file-input/types.d.ts +17 -0
  83. package/flex/Flex.d.ts +4 -0
  84. package/flex/Flex.js +69 -0
  85. package/flex/Flex.stories.tsx +103 -0
  86. package/flex/types.d.ts +32 -0
  87. package/flex/types.js +5 -0
  88. package/footer/Footer.js +24 -99
  89. package/footer/Footer.stories.tsx +8 -1
  90. package/footer/Footer.test.js +109 -0
  91. package/footer/Icons.js +1 -1
  92. package/footer/types.d.ts +2 -1
  93. package/header/Header.js +95 -114
  94. package/header/Header.stories.tsx +46 -36
  95. package/header/Header.test.js +79 -0
  96. package/header/Icons.js +2 -2
  97. package/header/types.d.ts +3 -2
  98. package/heading/Heading.test.js +186 -0
  99. package/inset/Inset.d.ts +3 -0
  100. package/inset/Inset.js +51 -0
  101. package/inset/Inset.stories.tsx +229 -0
  102. package/inset/types.d.ts +37 -0
  103. package/inset/types.js +5 -0
  104. package/layout/ApplicationLayout.d.ts +16 -6
  105. package/layout/ApplicationLayout.js +71 -125
  106. package/layout/ApplicationLayout.stories.tsx +84 -93
  107. package/layout/Icons.d.ts +5 -0
  108. package/layout/Icons.js +13 -2
  109. package/layout/SidenavContext.d.ts +5 -0
  110. package/layout/SidenavContext.js +19 -0
  111. package/layout/types.d.ts +18 -33
  112. package/link/Link.d.ts +3 -2
  113. package/link/Link.js +61 -86
  114. package/link/Link.stories.tsx +99 -52
  115. package/link/Link.test.js +83 -0
  116. package/link/types.d.ts +9 -29
  117. package/main.d.ts +11 -15
  118. package/main.js +53 -79
  119. package/number-input/NumberInput.js +11 -18
  120. package/number-input/NumberInput.stories.tsx +5 -5
  121. package/number-input/NumberInput.test.js +542 -0
  122. package/number-input/types.d.ts +17 -10
  123. package/package.json +19 -22
  124. package/paginator/Icons.d.ts +5 -0
  125. package/paginator/Icons.js +16 -28
  126. package/paginator/Paginator.js +19 -46
  127. package/paginator/Paginator.test.js +308 -0
  128. package/paragraph/Paragraph.d.ts +6 -0
  129. package/paragraph/Paragraph.js +38 -0
  130. package/paragraph/Paragraph.stories.tsx +44 -0
  131. package/password-input/PasswordInput.js +7 -4
  132. package/password-input/PasswordInput.test.js +181 -0
  133. package/password-input/types.d.ts +14 -11
  134. package/progress-bar/ProgressBar.d.ts +2 -2
  135. package/progress-bar/ProgressBar.js +57 -51
  136. package/progress-bar/ProgressBar.stories.jsx +13 -11
  137. package/progress-bar/ProgressBar.test.js +110 -0
  138. package/progress-bar/types.d.ts +3 -4
  139. package/quick-nav/QuickNav.d.ts +4 -0
  140. package/quick-nav/QuickNav.js +117 -0
  141. package/quick-nav/QuickNav.stories.tsx +342 -0
  142. package/quick-nav/types.d.ts +21 -0
  143. package/quick-nav/types.js +5 -0
  144. package/radio-group/Radio.d.ts +1 -1
  145. package/radio-group/Radio.js +57 -31
  146. package/radio-group/RadioGroup.js +75 -60
  147. package/radio-group/RadioGroup.stories.tsx +61 -39
  148. package/radio-group/RadioGroup.test.js +722 -0
  149. package/radio-group/types.d.ts +81 -3
  150. package/resultsetTable/Icons.d.ts +7 -0
  151. package/resultsetTable/Icons.js +51 -0
  152. package/resultsetTable/ResultsetTable.js +49 -105
  153. package/resultsetTable/ResultsetTable.stories.tsx +56 -33
  154. package/resultsetTable/ResultsetTable.test.js +330 -0
  155. package/resultsetTable/types.d.ts +2 -2
  156. package/select/Icons.d.ts +10 -0
  157. package/select/Icons.js +93 -0
  158. package/select/Listbox.d.ts +4 -0
  159. package/select/Listbox.js +198 -0
  160. package/select/Option.d.ts +4 -0
  161. package/select/Option.js +108 -0
  162. package/select/Select.js +147 -365
  163. package/select/Select.stories.tsx +324 -213
  164. package/select/Select.test.js +2233 -0
  165. package/select/types.d.ts +52 -12
  166. package/sidenav/Sidenav.d.ts +6 -5
  167. package/sidenav/Sidenav.js +182 -52
  168. package/sidenav/Sidenav.stories.tsx +163 -156
  169. package/sidenav/Sidenav.test.js +44 -0
  170. package/sidenav/types.d.ts +50 -27
  171. package/slider/Slider.d.ts +2 -2
  172. package/slider/Slider.js +122 -96
  173. package/slider/Slider.stories.tsx +15 -9
  174. package/slider/Slider.test.js +250 -0
  175. package/slider/types.d.ts +10 -2
  176. package/spinner/Spinner.js +3 -3
  177. package/spinner/Spinner.test.js +64 -0
  178. package/switch/Switch.d.ts +2 -2
  179. package/switch/Switch.js +150 -67
  180. package/switch/Switch.stories.tsx +20 -42
  181. package/switch/Switch.test.js +225 -0
  182. package/switch/types.d.ts +12 -4
  183. package/table/Table.js +1 -1
  184. package/table/Table.test.js +26 -0
  185. package/tabs/Tab.d.ts +4 -0
  186. package/tabs/Tab.js +133 -0
  187. package/tabs/Tabs.d.ts +1 -1
  188. package/tabs/Tabs.js +364 -110
  189. package/tabs/Tabs.stories.tsx +84 -18
  190. package/tabs/Tabs.test.js +351 -0
  191. package/tabs/types.d.ts +39 -17
  192. package/tabs-nav/NavTabs.d.ts +8 -0
  193. package/tabs-nav/NavTabs.js +125 -0
  194. package/tabs-nav/NavTabs.stories.tsx +172 -0
  195. package/tabs-nav/NavTabs.test.js +82 -0
  196. package/tabs-nav/Tab.d.ts +4 -0
  197. package/tabs-nav/Tab.js +128 -0
  198. package/tabs-nav/types.d.ts +53 -0
  199. package/tabs-nav/types.js +5 -0
  200. package/tag/Tag.d.ts +1 -1
  201. package/tag/Tag.js +18 -28
  202. package/tag/Tag.stories.tsx +25 -28
  203. package/tag/Tag.test.js +60 -0
  204. package/tag/types.d.ts +23 -14
  205. package/text-input/Icons.d.ts +8 -0
  206. package/text-input/Icons.js +60 -0
  207. package/text-input/Suggestion.d.ts +4 -0
  208. package/text-input/Suggestion.js +84 -0
  209. package/text-input/Suggestions.d.ts +4 -0
  210. package/text-input/Suggestions.js +134 -0
  211. package/text-input/TextInput.js +219 -332
  212. package/text-input/TextInput.stories.tsx +242 -197
  213. package/text-input/TextInput.test.js +1724 -0
  214. package/text-input/types.d.ts +51 -13
  215. package/textarea/Textarea.js +20 -27
  216. package/textarea/Textarea.stories.jsx +33 -12
  217. package/textarea/Textarea.test.js +437 -0
  218. package/textarea/types.d.ts +18 -11
  219. package/toggle-group/ToggleGroup.d.ts +1 -1
  220. package/toggle-group/ToggleGroup.js +5 -4
  221. package/toggle-group/ToggleGroup.stories.tsx +4 -4
  222. package/toggle-group/ToggleGroup.test.js +156 -0
  223. package/toggle-group/types.d.ts +9 -1
  224. package/typography/Typography.d.ts +4 -0
  225. package/typography/Typography.js +131 -0
  226. package/typography/Typography.stories.tsx +198 -0
  227. package/typography/types.d.ts +18 -0
  228. package/typography/types.js +5 -0
  229. package/useTheme.js +2 -2
  230. package/useTranslatedLabels.d.ts +2 -0
  231. package/useTranslatedLabels.js +20 -0
  232. package/wizard/Wizard.d.ts +1 -1
  233. package/wizard/Wizard.js +58 -54
  234. package/wizard/Wizard.stories.tsx +33 -24
  235. package/wizard/Wizard.test.js +141 -0
  236. package/wizard/types.d.ts +10 -5
  237. package/ThemeContext.d.ts +0 -15
  238. package/ThemeContext.js +0 -243
  239. package/V3Select/V3Select.js +0 -455
  240. package/V3Select/index.d.ts +0 -27
  241. package/V3Textarea/V3Textarea.js +0 -260
  242. package/V3Textarea/index.d.ts +0 -27
  243. package/common/RequiredComponent.js +0 -32
  244. package/date/Date.js +0 -373
  245. package/date/index.d.ts +0 -27
  246. package/input-text/Icons.js +0 -22
  247. package/input-text/InputText.js +0 -611
  248. package/input-text/index.d.ts +0 -36
  249. package/list/List.d.ts +0 -8
  250. package/list/List.js +0 -47
  251. package/list/List.stories.tsx +0 -95
  252. package/radio/Radio.d.ts +0 -4
  253. package/radio/Radio.js +0 -174
  254. package/radio/Radio.stories.tsx +0 -192
  255. package/radio/types.d.ts +0 -54
  256. package/row/Row.d.ts +0 -11
  257. package/row/Row.js +0 -127
  258. package/row/Row.stories.tsx +0 -239
  259. package/stack/Stack.d.ts +0 -10
  260. package/stack/Stack.js +0 -97
  261. package/stack/Stack.stories.tsx +0 -166
  262. package/text/Text.d.ts +0 -7
  263. package/text/Text.js +0 -30
  264. package/text/Text.stories.tsx +0 -19
  265. package/toggle/Toggle.js +0 -186
  266. package/toggle/index.d.ts +0 -21
  267. package/upload/Upload.js +0 -201
  268. package/upload/buttons-upload/ButtonsUpload.js +0 -111
  269. package/upload/buttons-upload/Icons.js +0 -40
  270. package/upload/dragAndDropArea/DragAndDropArea.js +0 -225
  271. package/upload/dragAndDropArea/Icons.js +0 -39
  272. package/upload/file-upload/FileToUpload.js +0 -115
  273. package/upload/file-upload/Icons.js +0 -66
  274. package/upload/files-upload/FilesToUpload.js +0 -109
  275. package/upload/index.d.ts +0 -15
  276. package/upload/transaction/Icons.js +0 -160
  277. package/upload/transaction/Transaction.js +0 -104
  278. package/upload/transactions/Transactions.js +0 -94
@@ -3,36 +3,64 @@ import { userEvent, within } from "@storybook/testing-library";
3
3
  import DxcDropdown from "./Dropdown";
4
4
  import Title from "../../.storybook/components/Title";
5
5
  import ExampleContainer from "../../.storybook/components/ExampleContainer";
6
+ import DropdownMenu from "./DropdownMenu";
7
+ import DxcCheckbox from "../checkbox/Checkbox";
8
+ import DxcTextInput from "../text-input/TextInput";
9
+ import { Option } from "./types";
6
10
 
7
11
  export default {
8
12
  title: "Dropdown",
9
13
  component: DxcDropdown,
10
14
  };
11
15
 
12
- const iconSVG = () => {
13
- return (
14
- <svg viewBox="0 0 24 24" fill="currentColor">
15
- <path d="M0 0h24v24H0z" fill="none" />
16
- <path d="M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z" />
17
- </svg>
18
- );
19
- };
20
-
21
- const iconSVGLarge = () => {
22
- return (
23
- <svg enable-background="new 0 0 24 24" height="48px" viewBox="0 0 24 24" width="48px" fill="currentColor">
24
- <g>
25
- <path d="M0,0h24v24H0V0z" fill="none" />
26
- <path d="M0,0h24v24H0V0z" fill="none" />
27
- </g>
28
- <g>
29
- <path d="M12,17.27L18.18,21l-1.64-7.03L22,9.24l-7.19-0.61L12,2L9.19,8.63L2,9.24l5.46,4.73L5.82,21L12,17.27z" />
30
- </g>
31
- </svg>
32
- );
33
- };
16
+ const hamburguerIcon = (
17
+ <svg xmlns="http://www.w3.org/2000/svg" height="20" width="20">
18
+ <path d="M3 14.5V13h14v1.5Zm0-3.75v-1.5h14v1.5ZM3 7V5.5h14V7Z" />
19
+ </svg>
20
+ );
21
+ const iconSVG = (
22
+ <svg viewBox="0 0 24 24" fill="currentColor">
23
+ <path d="M0 0h24v24H0z" fill="none" />
24
+ <path d="M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z" />
25
+ </svg>
26
+ );
27
+ const iconSVGLarge = (
28
+ <svg enableBackground="new 0 0 24 24" height="48" viewBox="0 0 24 24" width="48" fill="currentColor">
29
+ <g>
30
+ <path d="M0,0h24v24H0V0z" fill="none" />
31
+ <path d="M0,0h24v24H0V0z" fill="none" />
32
+ </g>
33
+ <g>
34
+ <path d="M12,17.27L18.18,21l-1.64-7.03L22,9.24l-7.19-0.61L12,2L9.19,8.63L2,9.24l5.46,4.73L5.82,21L12,17.27z" />
35
+ </g>
36
+ </svg>
37
+ );
38
+ const iconUrl = "https://iconape.com/wp-content/files/yd/367773/svg/logo-linkedin-logo-icon-png-svg.png";
39
+ const icons = [iconSVG, iconSVGLarge, iconUrl];
34
40
 
35
- const options: any = [
41
+ const defaultOptions: Option[] = [
42
+ {
43
+ value: "1",
44
+ label: "Amazon",
45
+ },
46
+ {
47
+ value: "2",
48
+ label: "Ebay",
49
+ },
50
+ {
51
+ value: "3",
52
+ label: "Apple",
53
+ },
54
+ {
55
+ value: "4",
56
+ label: "Wallapop",
57
+ },
58
+ {
59
+ value: "5",
60
+ label: "Aliexpress",
61
+ },
62
+ ];
63
+ const options: Option[] = [
36
64
  {
37
65
  value: "1",
38
66
  label: "Amazon with a very long text",
@@ -46,15 +74,15 @@ const options: any = [
46
74
  label: "Apple",
47
75
  },
48
76
  ];
49
-
50
- const option: any = [
77
+ const optionWithIcon: Option[] = [
51
78
  {
52
79
  value: "1",
53
80
  label: "Ebay",
81
+ icon: iconUrl,
54
82
  },
55
83
  ];
56
84
 
57
- const optionsIcon: any = options.map((op, i) => ({ ...op, icon: i === 1 ? iconSVGLarge : iconSVG }));
85
+ const optionsIcon: any = options.map((op, i) => ({ ...op, icon: icons[i] }));
58
86
 
59
87
  export const Chromatic = () => (
60
88
  <>
@@ -66,7 +94,7 @@ export const Chromatic = () => (
66
94
  <Title title="Hovered" theme="light" level={4} />
67
95
  <DxcDropdown label="Hovered" options={options} onSelectOption={(value) => {}} />
68
96
  </ExampleContainer>
69
- <ExampleContainer pseudoState="pseudo-focus-visible">
97
+ <ExampleContainer pseudoState="pseudo-focus">
70
98
  <Title title="Focused" theme="light" level={4} />
71
99
  <DxcDropdown label="Focused" options={options} onSelectOption={(value) => {}} />
72
100
  </ExampleContainer>
@@ -92,7 +120,7 @@ export const Chromatic = () => (
92
120
  label="Icon after"
93
121
  options={options}
94
122
  onSelectOption={(value) => {}}
95
- icon={iconSVG}
123
+ icon="https://iconape.com/wp-content/files/yd/367773/svg/logo-linkedin-logo-icon-png-svg.png"
96
124
  iconPosition="after"
97
125
  />
98
126
  </ExampleContainer>
@@ -101,9 +129,22 @@ export const Chromatic = () => (
101
129
  <DxcDropdown options={options} onSelectOption={(value) => {}} icon={iconSVG} />
102
130
  </ExampleContainer>
103
131
  <ExampleContainer>
104
- <Title title="Large icon" theme="light" level={4} />
132
+ <Title title="Only icon without caret" theme="light" level={4} />
133
+ <DxcDropdown options={options} onSelectOption={(value) => {}} icon={hamburguerIcon} caretHidden />
134
+ </ExampleContainer>
135
+ <ExampleContainer>
136
+ <Title title="Large icon (SVG)" theme="light" level={4} />
105
137
  <DxcDropdown label="Large icon" options={options} onSelectOption={(value) => {}} icon={iconSVGLarge} />
106
138
  </ExampleContainer>
139
+ <ExampleContainer>
140
+ <Title title="Large icon (image)" theme="light" level={4} />
141
+ <DxcDropdown
142
+ label="Large icon"
143
+ options={options}
144
+ onSelectOption={(value) => {}}
145
+ icon="https://upload.wikimedia.org/wikipedia/commons/thumb/b/b2/Hamburger_icon.svg/2048px-Hamburger_icon.svg.png"
146
+ />
147
+ </ExampleContainer>
107
148
  <ExampleContainer>
108
149
  <Title title="Disabled with icon" theme="light" level={4} />
109
150
  <DxcDropdown
@@ -189,59 +230,91 @@ export const Chromatic = () => (
189
230
  </>
190
231
  );
191
232
 
192
- const DropdownWithOptions = () => (
193
- <ExampleContainer expanded>
194
- <Title title="Options" theme="light" level={4} />
195
- <DxcDropdown label="Options with icon" options={optionsIcon} onSelectOption={(value) => {}} />
196
- </ExampleContainer>
197
- );
198
-
199
- const DropdownHoverOption = () => (
200
- <ExampleContainer pseudoState="pseudo-hover" expanded>
201
- <Title title="Hovered option" theme="light" level={4} />
202
- <DxcDropdown label="Hovered options" options={option} onSelectOption={(value) => {}} />
203
- </ExampleContainer>
204
- );
205
-
206
- const DropdownActiveOption = () => (
207
- <ExampleContainer pseudoState="pseudo-active" expanded>
208
- <Title title="Actived option" theme="light" level={4} />
209
- <DxcDropdown label="Actived options" options={option} onSelectOption={(value) => {}} />
210
- </ExampleContainer>
211
- );
212
-
213
- const DropdownWithOptionsIconAfter = () => (
214
- <ExampleContainer expanded>
215
- <Title title="Icon after options" theme="light" level={4} />
216
- <DxcDropdown
217
- label="Icon after options"
218
- options={optionsIcon}
219
- onSelectOption={(value) => {}}
220
- optionsIconPosition="after"
221
- />
222
- </ExampleContainer>
233
+ const DropdownListStates = () => (
234
+ <>
235
+ <Title title="Dropdown Menu" theme="light" level={2} />
236
+ <Title title="Default with opened menu" theme="light" level={3} />
237
+ <ExampleContainer>
238
+ <div style={{ display: "flex", gap: "30px", flexDirection: "column", marginBottom: "80px" }}>
239
+ <DxcDropdown label="Select a platform" options={defaultOptions} onSelectOption={(option) => {}} size="medium" />
240
+ <DxcTextInput label="Your name" onChange={() => {}} />
241
+ <DxcCheckbox
242
+ label="You understand the selection and give your consent"
243
+ onChange={() => {}}
244
+ labelPosition="after"
245
+ />
246
+ </div>
247
+ </ExampleContainer>
248
+ <Title title="Option states" theme="light" level={3} />
249
+ <ExampleContainer pseudoState="pseudo-hover">
250
+ <Title title="Hovered option" theme="light" level={4} />
251
+ <DropdownMenu
252
+ id="x"
253
+ dropdownTriggerId="dtx"
254
+ iconsPosition="before"
255
+ visualFocusIndex={-1}
256
+ menuItemOnClick={(value) => {}}
257
+ onKeyDown={(e) => {}}
258
+ options={optionWithIcon}
259
+ styles={{ width: 240 }}
260
+ />
261
+ </ExampleContainer>
262
+ <ExampleContainer pseudoState="pseudo-active">
263
+ <Title title="Active option" theme="light" level={4} />
264
+ <DropdownMenu
265
+ id="x"
266
+ dropdownTriggerId="dtx"
267
+ iconsPosition="before"
268
+ visualFocusIndex={-1}
269
+ menuItemOnClick={(value) => {}}
270
+ onKeyDown={(e) => {}}
271
+ options={optionWithIcon}
272
+ styles={{ width: 240 }}
273
+ />
274
+ </ExampleContainer>
275
+ <ExampleContainer>
276
+ <Title title="Focused option" theme="light" level={4} />
277
+ <DropdownMenu
278
+ id="x"
279
+ dropdownTriggerId="dtx"
280
+ iconsPosition="before"
281
+ visualFocusIndex={0}
282
+ menuItemOnClick={(value) => {}}
283
+ onKeyDown={(e) => {}}
284
+ options={options}
285
+ styles={{ width: 240 }}
286
+ />
287
+ </ExampleContainer>
288
+ <Title title="Icons" theme="light" level={3} />
289
+ <ExampleContainer>
290
+ <Title title="Before" theme="light" level={4} />
291
+ <DropdownMenu
292
+ id="x"
293
+ dropdownTriggerId="dtx"
294
+ iconsPosition="before"
295
+ visualFocusIndex={-1}
296
+ menuItemOnClick={(value) => {}}
297
+ onKeyDown={(e) => {}}
298
+ options={optionsIcon}
299
+ styles={{ width: 240 }}
300
+ />
301
+ <Title title="After" theme="light" level={4} />
302
+ <DropdownMenu
303
+ id="x"
304
+ dropdownTriggerId="dtx"
305
+ iconsPosition="after"
306
+ visualFocusIndex={-1}
307
+ menuItemOnClick={(value) => {}}
308
+ onKeyDown={(e) => {}}
309
+ options={optionsIcon}
310
+ styles={{ width: 240 }}
311
+ />
312
+ </ExampleContainer>
313
+ </>
223
314
  );
224
315
 
225
- export const DropdownOptions = DropdownWithOptions.bind({});
226
- DropdownOptions.play = async ({ canvasElement }) => {
227
- const canvas = within(canvasElement);
228
- await userEvent.click(canvas.getByRole("button"));
229
- };
230
-
231
- export const DropdownHoveredOption = DropdownHoverOption.bind({});
232
- DropdownHoveredOption.play = async ({ canvasElement }) => {
233
- const canvas = within(canvasElement);
234
- await userEvent.click(canvas.getByRole("button"));
235
- };
236
-
237
- export const DropdownActivedOption = DropdownActiveOption.bind({});
238
- DropdownActivedOption.play = async ({ canvasElement }) => {
239
- const canvas = within(canvasElement);
240
- await userEvent.click(canvas.getByRole("button"));
241
- };
242
-
243
- export const DropdownOptionsIconAfter = DropdownWithOptionsIconAfter.bind({});
244
- DropdownOptionsIconAfter.play = async ({ canvasElement }) => {
316
+ export const DropdownMenuStates = DropdownListStates.bind({});
317
+ DropdownMenuStates.play = async ({ canvasElement }) => {
245
318
  const canvas = within(canvasElement);
246
319
  await userEvent.click(canvas.getByRole("button"));
247
320
  };