@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
@@ -1,11 +1,16 @@
1
1
  import React from "react";
2
- import { userEvent, within, waitFor } from "@storybook/testing-library";
3
- import { fireEvent } from "@testing-library/react";
2
+ import { userEvent, within } from "@storybook/testing-library";
4
3
  import { BackgroundColorProvider } from "../BackgroundColorContext";
5
4
  import Title from "../../.storybook/components/Title";
6
5
  import ExampleContainer from "../../.storybook/components/ExampleContainer";
7
6
  import DarkContainer from "../../.storybook/components/DarkSection";
8
7
  import DxcTextInput from "./TextInput";
8
+ import DxcButton from "../button/Button";
9
+ import DxcCheckbox from "../checkbox/Checkbox";
10
+ import DxcFlex from "../flex/Flex";
11
+ import Suggestions from "./Suggestions";
12
+ import { ThemeProvider } from "styled-components";
13
+ import useTheme from "../useTheme";
9
14
 
10
15
  export default {
11
16
  title: "Text input",
@@ -22,7 +27,7 @@ const action = {
22
27
  ),
23
28
  };
24
29
 
25
- const actionLargeIcon = {
30
+ const actionLargeIconSVG = {
26
31
  onClick: () => {},
27
32
  icon: (
28
33
  <svg xmlns="http://www.w3.org/2000/svg" height="48px" viewBox="0 0 24 24" width="48px" fill="currentColor">
@@ -32,6 +37,11 @@ const actionLargeIcon = {
32
37
  ),
33
38
  };
34
39
 
40
+ const actionLargeIconURL = {
41
+ onClick: () => {},
42
+ icon: "https://iconape.com/wp-content/files/yd/367773/svg/logo-linkedin-logo-icon-png-svg.png",
43
+ };
44
+
35
45
  const country = ["Afghanistan"];
36
46
  const countries = [
37
47
  "Afghanistan",
@@ -56,6 +66,7 @@ const countries = [
56
66
  "Dominica",
57
67
  "Denmark",
58
68
  "Djibouti",
69
+ "*",
59
70
  ];
60
71
 
61
72
  export const Chromatic = () => (
@@ -70,7 +81,15 @@ export const Chromatic = () => (
70
81
  </ExampleContainer>
71
82
  <ExampleContainer pseudoState="pseudo-hover">
72
83
  <Title title="Hovered action" theme="light" level={4} />
73
- <DxcTextInput label="Text input" value="Text" clearable />
84
+ <DxcTextInput label="Text input" defaultValue="Text" clearable />
85
+ </ExampleContainer>
86
+ <ExampleContainer pseudoState="pseudo-active">
87
+ <Title title="Actived action" theme="light" level={4} />
88
+ <DxcTextInput label="Text input" action={action} clearable />
89
+ </ExampleContainer>
90
+ <ExampleContainer pseudoState="pseudo-focus">
91
+ <Title title="Focused action" theme="light" level={4} />
92
+ <DxcTextInput label="Text input" action={action} clearable />
74
93
  </ExampleContainer>
75
94
  <ExampleContainer>
76
95
  <Title title="Without label" theme="light" level={4} />
@@ -82,15 +101,24 @@ export const Chromatic = () => (
82
101
  </ExampleContainer>
83
102
  <ExampleContainer>
84
103
  <Title title="Helper text, optional, and clearable" theme="light" level={4} />
85
- <DxcTextInput label="Text input" clearable value="Text" helperText="Help message" optional />
104
+ <DxcTextInput label="Text input" clearable defaultValue="Text" helperText="Help message" optional />
105
+ </ExampleContainer>
106
+ <ExampleContainer>
107
+ <Title title="Clearable and large icon action (SVG)" theme="light" level={4} />
108
+ <DxcTextInput
109
+ label="Text input"
110
+ defaultValue="Text text text text text text text text text text"
111
+ clearable
112
+ action={actionLargeIconSVG}
113
+ />
86
114
  </ExampleContainer>
87
115
  <ExampleContainer>
88
- <Title title="Clearable and large icon action" theme="light" level={4} />
116
+ <Title title="Clearable and large icon action (URL)" theme="light" level={4} />
89
117
  <DxcTextInput
90
118
  label="Text input"
91
- value="Text text text text text text text text text text"
119
+ defaultValue="Text text text text text text text text text text"
92
120
  clearable
93
- action={actionLargeIcon}
121
+ action={actionLargeIconURL}
94
122
  />
95
123
  </ExampleContainer>
96
124
  <ExampleContainer>
@@ -107,12 +135,21 @@ export const Chromatic = () => (
107
135
  label="Error text input"
108
136
  helperText="Help message"
109
137
  error="Error message."
110
- value="Text"
138
+ defaultValue="Text"
111
139
  clearable
112
140
  optional
113
141
  action={action}
114
142
  />
115
143
  </ExampleContainer>
144
+ <ExampleContainer pseudoState="pseudo-hover">
145
+ <Title title="Invalid and hovered" theme="light" level={4} />
146
+ <DxcTextInput
147
+ label="Error text input"
148
+ helperText="Help message"
149
+ placeholder="Placeholder"
150
+ error="Error message."
151
+ />
152
+ </ExampleContainer>
116
153
  <ExampleContainer>
117
154
  <Title title="Disabled and placeholder" theme="light" level={4} />
118
155
  <DxcTextInput label="Disabled text input" disabled placeholder="Placeholder" />
@@ -124,7 +161,7 @@ export const Chromatic = () => (
124
161
  helperText="Help message"
125
162
  disabled
126
163
  optional
127
- value="Text"
164
+ defaultValue="Text"
128
165
  action={action}
129
166
  />
130
167
  </ExampleContainer>
@@ -137,13 +174,13 @@ export const Chromatic = () => (
137
174
  optional
138
175
  prefix="+34"
139
176
  suffix="USD"
140
- value="Text"
177
+ defaultValue="Text"
141
178
  action={action}
142
179
  />
143
180
  </ExampleContainer>
144
181
  <BackgroundColorProvider color="#333333">
145
182
  <DarkContainer>
146
- <Title title="Dark" theme="dark" level={2} />
183
+ <Title title="Dark theme" theme="dark" level={2} />
147
184
  <ExampleContainer pseudoState="pseudo-hover">
148
185
  <Title title="Hovered" theme="dark" level={4} />
149
186
  <DxcTextInput label="Text input" />
@@ -154,7 +191,15 @@ export const Chromatic = () => (
154
191
  </ExampleContainer>
155
192
  <ExampleContainer pseudoState="pseudo-hover">
156
193
  <Title title="Hovered action" theme="dark" level={4} />
157
- <DxcTextInput label="Text input" value="Text" clearable />
194
+ <DxcTextInput label="Text input" defaultValue="Text" clearable />
195
+ </ExampleContainer>
196
+ <ExampleContainer pseudoState="pseudo-active">
197
+ <Title title="Actived action" theme="dark" level={4} />
198
+ <DxcTextInput label="Text input" action={action} clearable />
199
+ </ExampleContainer>
200
+ <ExampleContainer pseudoState="pseudo-focus">
201
+ <Title title="Focused action" theme="dark" level={4} />
202
+ <DxcTextInput label="Text input" action={action} clearable />
158
203
  </ExampleContainer>
159
204
  <ExampleContainer>
160
205
  <Title title="Helper text, placeholder, optional and action" theme="dark" level={4} />
@@ -168,16 +213,25 @@ export const Chromatic = () => (
168
213
  />
169
214
  </ExampleContainer>
170
215
  <ExampleContainer>
171
- <Title title="Helper text, clearable value, error and action" theme="dark" level={4} />
216
+ <Title title="Invalid" theme="dark" level={4} />
172
217
  <DxcTextInput
173
- label="Text input"
218
+ label="Error text input"
174
219
  helperText="Help message"
175
220
  error="Error message."
176
- value="Text"
221
+ defaultValue="Text"
177
222
  clearable
178
223
  action={action}
179
224
  />
180
225
  </ExampleContainer>
226
+ <ExampleContainer pseudoState="pseudo-hover">
227
+ <Title title="Invalid and hovered" theme="dark" level={4} />
228
+ <DxcTextInput
229
+ label="Error text input"
230
+ helperText="Help message"
231
+ placeholder="Placeholder"
232
+ error="Error message."
233
+ />
234
+ </ExampleContainer>
181
235
  <ExampleContainer>
182
236
  <Title title="Prefix and suffix" theme="dark" level={4} />
183
237
  <DxcTextInput label="With prefix and suffix" prefix="+34" suffix="USD" />
@@ -193,7 +247,7 @@ export const Chromatic = () => (
193
247
  helperText="Help message"
194
248
  disabled
195
249
  optional
196
- value="Text"
250
+ defaultValue="Text"
197
251
  action={action}
198
252
  />
199
253
  </ExampleContainer>
@@ -206,7 +260,7 @@ export const Chromatic = () => (
206
260
  optional
207
261
  prefix="+34"
208
262
  suffix="USD"
209
- value="Text"
263
+ defaultValue="Text"
210
264
  action={action}
211
265
  />
212
266
  </ExampleContainer>
@@ -261,196 +315,187 @@ export const Chromatic = () => (
261
315
  </>
262
316
  );
263
317
 
264
- const FocusedActionTextInput = () => (
265
- <ExampleContainer expanded>
266
- <Title title="Focused action" theme="light" level={4} />
267
- <DxcTextInput label="Text input" action={action} clearable />
268
- </ExampleContainer>
269
- );
270
-
271
- const ActivedActionTextInput = () => (
272
- <ExampleContainer pseudoState="pseudo-active" expanded>
273
- <Title title="Actived action" theme="light" level={4} />
274
- <DxcTextInput label="Text input" action={action} clearable />
275
- </ExampleContainer>
276
- );
277
-
278
- const ShowOptionsAutosuggest = () => (
279
- <ExampleContainer expanded>
280
- <Title title="Show options" theme="light" level={4} />
281
- <DxcTextInput label="Text input" suggestions={countries} clearable />
282
- </ExampleContainer>
283
- );
318
+ const AutosuggestListbox = () => {
319
+ const colorsTheme: any = useTheme();
284
320
 
285
- const HoveredOptionAutosuggest = () => (
286
- <ExampleContainer expanded pseudoState="pseudo-hover">
287
- <Title title="Hovered option" theme="light" level={4} />
288
- <DxcTextInput label="Text input" suggestions={country} clearable />
289
- </ExampleContainer>
290
- );
291
-
292
- const FocusedOptionAutosuggest = () => (
293
- <ExampleContainer expanded>
294
- <Title title="Focused option" theme="light" level={4} />
295
- <DxcTextInput label="Text input" suggestions={country} clearable />
296
- </ExampleContainer>
297
- );
298
-
299
- const ActivedOptionAutosuggest = () => (
300
- <ExampleContainer expanded pseudoState="pseudo-active">
301
- <Title title="Actived option" theme="light" level={4} />
302
- <DxcTextInput label="Text input" suggestions={country} clearable />
303
- </ExampleContainer>
304
- );
305
-
306
- const FocusedActionTextInputOnDark = () => (
307
- <BackgroundColorProvider color="#333333">
308
- <DarkContainer>
309
- <ExampleContainer expanded>
310
- <Title title="Focused action" theme="dark" level={4} />
311
- <DxcTextInput label="Text input" action={action} clearable />
312
- </ExampleContainer>
313
- </DarkContainer>
314
- </BackgroundColorProvider>
315
- );
316
-
317
- const ActivedActionTextInputOnDark = () => (
318
- <BackgroundColorProvider color="#333333">
319
- <DarkContainer>
320
- <ExampleContainer pseudoState="pseudo-active" expanded>
321
- <Title title="Actived action" theme="dark" level={4} />
322
- <DxcTextInput label="Text input" action={action} clearable />
323
- </ExampleContainer>
324
- </DarkContainer>
325
- </BackgroundColorProvider>
326
- );
327
-
328
- const ShowOptionsAutosuggestOnDark = () => (
329
- <BackgroundColorProvider color="#333333">
330
- <DarkContainer>
331
- <ExampleContainer expanded>
332
- <Title title="Show options" theme="dark" level={4} />
333
- <DxcTextInput label="Text input" suggestions={countries} clearable />
334
- </ExampleContainer>
335
- </DarkContainer>
336
- </BackgroundColorProvider>
337
- );
338
-
339
- const HoveredActionAutosuggestOnDark = () => (
340
- <BackgroundColorProvider color="#333333">
341
- <DarkContainer>
342
- <ExampleContainer expanded pseudoState="pseudo-hover">
343
- <Title title="Hovered option" theme="dark" level={4} />
344
- <DxcTextInput label="Text input" suggestions={country} clearable />
321
+ return (
322
+ <ThemeProvider theme={colorsTheme.textInput}>
323
+ <ExampleContainer>
324
+ <Title title="Autosuggest listbox" theme="light" level={2} />
325
+ <ExampleContainer>
326
+ <Title
327
+ title="List dialog uses a Radix Popover to appear over elements with a certain z-index"
328
+ theme="light"
329
+ level={3}
330
+ />
331
+ <div
332
+ style={{
333
+ display: "flex",
334
+ flexDirection: "column",
335
+ gap: "20px",
336
+ height: "150px",
337
+ width: "500px",
338
+ marginBottom: "250px",
339
+ padding: "20px",
340
+ border: "1px solid black",
341
+ borderRadius: "4px",
342
+ overflow: "auto",
343
+ zIndex: "1300",
344
+ position: "relative",
345
+ }}
346
+ >
347
+ <DxcTextInput
348
+ label="Label"
349
+ suggestions={countries}
350
+ optional
351
+ placeholder="Choose an option"
352
+ size="fillParent"
353
+ />
354
+ <button style={{ zIndex: "1", width: "100px" }}>Submit</button>
355
+ </div>
356
+ </ExampleContainer>
357
+ <Title title="Listbox suggestion states" theme="light" level={3} />
358
+ <ExampleContainer pseudoState="pseudo-hover">
359
+ <Title title="Hovered suggestion" theme="light" level={4} />
360
+ <Suggestions
361
+ id="x"
362
+ value=""
363
+ suggestions={country}
364
+ visualFocusIndex={-1}
365
+ highlightedSuggestions={false}
366
+ searchHasErrors={false}
367
+ isSearching={false}
368
+ suggestionOnClick={() => {}}
369
+ getTextInputWidth={() => 350}
370
+ />
371
+ </ExampleContainer>
372
+ <ExampleContainer pseudoState="pseudo-active">
373
+ <Title title="Active suggestion" theme="light" level={4} />
374
+ <Suggestions
375
+ id="x"
376
+ value=""
377
+ suggestions={country}
378
+ visualFocusIndex={-1}
379
+ highlightedSuggestions={false}
380
+ searchHasErrors={false}
381
+ isSearching={false}
382
+ suggestionOnClick={(suggestion) => {}}
383
+ getTextInputWidth={() => 350}
384
+ />
385
+ </ExampleContainer>
386
+ <ExampleContainer>
387
+ <Title title="Focused suggestion" theme="light" level={4} />
388
+ <Suggestions
389
+ id="x"
390
+ value=""
391
+ suggestions={country}
392
+ visualFocusIndex={0}
393
+ highlightedSuggestions={false}
394
+ searchHasErrors={false}
395
+ isSearching={false}
396
+ suggestionOnClick={(suggestion) => {}}
397
+ getTextInputWidth={() => 350}
398
+ />
399
+ </ExampleContainer>
400
+ <ExampleContainer>
401
+ <Title title="Highlighted suggestion" theme="light" level={4} />
402
+ <Suggestions
403
+ id="x"
404
+ value="Afgh"
405
+ suggestions={country}
406
+ visualFocusIndex={-1}
407
+ highlightedSuggestions={true}
408
+ searchHasErrors={false}
409
+ isSearching={false}
410
+ suggestionOnClick={(suggestion) => {}}
411
+ getTextInputWidth={() => 350}
412
+ />
413
+ </ExampleContainer>
345
414
  </ExampleContainer>
346
- </DarkContainer>
347
- </BackgroundColorProvider>
348
- );
349
-
350
- const FocusedOptionAutosuggestOnDark = () => (
351
- <BackgroundColorProvider color="#333333">
352
- <DarkContainer>
353
- <ExampleContainer expanded>
354
- <Title title="Focused option" theme="dark" level={4} />
355
- <DxcTextInput label="Text input" suggestions={country} clearable />
415
+ <ExampleContainer>
416
+ <Title title="Autosuggest Error" theme="light" level={3} />
417
+ <Suggestions
418
+ id="x"
419
+ value=""
420
+ suggestions={country}
421
+ visualFocusIndex={-1}
422
+ highlightedSuggestions={false}
423
+ searchHasErrors={true}
424
+ isSearching={false}
425
+ suggestionOnClick={(suggestion) => {}}
426
+ getTextInputWidth={() => 350}
427
+ />
356
428
  </ExampleContainer>
357
- </DarkContainer>
358
- </BackgroundColorProvider>
359
- );
360
-
361
- const ActivedOptionAutosuggestOnDark = () => (
362
- <BackgroundColorProvider color="#333333">
363
- <DarkContainer>
364
- <ExampleContainer expanded pseudoState="pseudo-active">
365
- <Title title="Actived option" theme="dark" level={4} />
366
- <DxcTextInput label="Text input" suggestions={country} clearable />
429
+ <ExampleContainer>
430
+ <Title title="Autosuggest Searching message" theme="light" level={3} />
431
+ <Suggestions
432
+ id="x"
433
+ value=""
434
+ suggestions={country}
435
+ visualFocusIndex={-1}
436
+ highlightedSuggestions={false}
437
+ searchHasErrors={false}
438
+ isSearching={true}
439
+ suggestionOnClick={(suggestion) => {}}
440
+ getTextInputWidth={() => 350}
441
+ />
367
442
  </ExampleContainer>
368
- </DarkContainer>
369
- </BackgroundColorProvider>
370
- );
371
-
372
- export const FocusedAction = FocusedActionTextInput.bind({});
373
- FocusedAction.play = async ({ canvasElement }) => {
374
- const canvas = within(canvasElement);
375
- const action = canvas.getByRole("button");
376
- await action.focus();
377
- };
378
-
379
- export const ActivedAction = ActivedActionTextInput.bind({});
380
- ActivedAction.play = async ({ canvasElement }) => {
381
- const canvas = within(canvasElement);
382
- const action = canvas.getByRole("button");
383
- await userEvent.click(action);
384
- };
385
-
386
- export const ShowOptions = ShowOptionsAutosuggest.bind({});
387
- ShowOptions.play = async ({ canvasElement }) => {
388
- const canvas = within(canvasElement);
389
- const autosuggest = canvas.getByRole("combobox");
390
- await userEvent.click(autosuggest);
391
- };
392
-
393
- export const HoveredOption = HoveredOptionAutosuggest.bind({});
394
- HoveredOption.play = async ({ canvasElement }) => {
395
- const canvas = within(canvasElement);
396
- const autosuggest = canvas.getByRole("combobox");
397
- await userEvent.click(autosuggest);
443
+ </ThemeProvider>
444
+ );
398
445
  };
399
446
 
400
- export const FocusedOption = FocusedOptionAutosuggest.bind({});
401
- FocusedOption.play = async ({ canvasElement }) => {
402
- const canvas = within(canvasElement);
403
- const autosuggest = canvas.getByRole("combobox");
404
- await userEvent.click(autosuggest);
405
- fireEvent.keyDown(autosuggest, { key: "ArrowDown", code: "ArrowDown", keyCode: 40, charCode: 40 });
406
- };
447
+ const DarkAutosuggestListbox = () => {
448
+ const colorsTheme: any = useTheme();
407
449
 
408
- export const ActivedOption = ActivedOptionAutosuggest.bind({});
409
- ActivedOption.play = async ({ canvasElement }) => {
410
- const canvas = within(canvasElement);
411
- const autosuggest = canvas.getByRole("combobox");
412
- await userEvent.click(autosuggest);
413
- };
414
-
415
- export const FocusedActionOnDark = FocusedActionTextInputOnDark.bind({});
416
- FocusedActionOnDark.play = async ({ canvasElement }) => {
417
- const canvas = within(canvasElement);
418
- const action = canvas.getByRole("button");
419
- await action.focus();
420
- };
421
-
422
- export const ActivedActionOnDark = ActivedActionTextInputOnDark.bind({});
423
- ActivedActionOnDark.play = async ({ canvasElement }) => {
424
- const canvas = within(canvasElement);
425
- const action = canvas.getByRole("button");
426
- await userEvent.click(action);
427
- };
428
-
429
- export const ShowOptionsOnDark = ShowOptionsAutosuggestOnDark.bind({});
430
- ShowOptionsOnDark.play = async ({ canvasElement }) => {
431
- const canvas = within(canvasElement);
432
- const autosuggest = canvas.getByRole("combobox");
433
- await userEvent.click(autosuggest);
434
- };
435
-
436
- export const HoveredActionOnDark = HoveredActionAutosuggestOnDark.bind({});
437
- HoveredActionOnDark.play = async ({ canvasElement }) => {
438
- const canvas = within(canvasElement);
439
- const autosuggest = canvas.getByRole("combobox");
440
- await userEvent.click(autosuggest);
450
+ return (
451
+ <ThemeProvider theme={colorsTheme.textInput}>
452
+ <BackgroundColorProvider color="#333333">
453
+ <DarkContainer>
454
+ <Title title="Dark theme" theme="dark" level={2} />
455
+ <ExampleContainer>
456
+ <Title title="Default with opened suggestions" theme="dark" level={3} />
457
+ <DxcFlex direction="column" gap="80px">
458
+ <DxcTextInput label="Label" suggestions={countries} optional placeholder="Choose an option" />
459
+ <DxcCheckbox
460
+ label="You understand the selection and give your consent"
461
+ onChange={() => {}}
462
+ labelPosition="after"
463
+ />
464
+ <DxcButton label="Submit" onClick={() => {}} size="medium" margin={{ bottom: "xxlarge" }} />
465
+ </DxcFlex>
466
+ </ExampleContainer>
467
+ <ExampleContainer>
468
+ <Title title="Autosuggest Error" theme="dark" level={3} />
469
+ <div style={{ height: "100px" }}>
470
+ <Suggestions
471
+ id="x"
472
+ value=""
473
+ suggestions={country}
474
+ visualFocusIndex={-1}
475
+ highlightedSuggestions={false}
476
+ searchHasErrors={true}
477
+ isSearching={false}
478
+ suggestionOnClick={(suggestion) => {}}
479
+ getTextInputWidth={() => 350}
480
+ />
481
+ </div>
482
+ </ExampleContainer>
483
+ </DarkContainer>
484
+ </BackgroundColorProvider>
485
+ </ThemeProvider>
486
+ );
441
487
  };
442
488
 
443
- export const FocusedOptionOnDark = FocusedOptionAutosuggestOnDark.bind({});
444
- FocusedOptionOnDark.play = async ({ canvasElement }) => {
489
+ export const AutosuggestListboxStates = AutosuggestListbox.bind({});
490
+ AutosuggestListboxStates.play = async ({ canvasElement }) => {
445
491
  const canvas = within(canvasElement);
446
- const autosuggest = canvas.getByRole("combobox");
447
- await userEvent.click(autosuggest);
448
- fireEvent.keyDown(autosuggest, { key: "ArrowDown", code: "ArrowDown", keyCode: 40, charCode: 40 });
492
+ const select = canvas.getByRole("combobox");
493
+ await userEvent.click(select);
449
494
  };
450
495
 
451
- export const ActivedOptionOnDark = ActivedOptionAutosuggestOnDark.bind({});
452
- ActivedOptionOnDark.play = async ({ canvasElement }) => {
496
+ export const AutosuggestListboxOnDark = DarkAutosuggestListbox.bind({});
497
+ AutosuggestListboxOnDark.play = async ({ canvasElement }) => {
453
498
  const canvas = within(canvasElement);
454
- const autosuggest = canvas.getByRole("combobox");
455
- await userEvent.click(autosuggest);
499
+ const select = canvas.getByRole("combobox");
500
+ await userEvent.click(select);
456
501
  };