@dxc-technology/halstack-react 0.0.0-1b8b460 → 0.0.0-1bfe223

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 (286) hide show
  1. package/BackgroundColorContext.d.ts +1 -10
  2. package/BackgroundColorContext.js +5 -22
  3. package/HalstackContext.d.ts +1215 -6
  4. package/HalstackContext.js +121 -105
  5. package/README.md +47 -0
  6. package/accordion/Accordion.d.ts +1 -1
  7. package/accordion/Accordion.js +36 -99
  8. package/accordion/Accordion.stories.tsx +101 -124
  9. package/accordion/Accordion.test.js +19 -34
  10. package/accordion/types.d.ts +5 -17
  11. package/accordion-group/AccordionGroup.d.ts +4 -3
  12. package/accordion-group/AccordionGroup.js +29 -77
  13. package/accordion-group/AccordionGroup.stories.tsx +78 -77
  14. package/accordion-group/AccordionGroup.test.js +44 -72
  15. package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
  16. package/accordion-group/AccordionGroupAccordion.js +31 -0
  17. package/accordion-group/types.d.ts +6 -18
  18. package/action-icon/ActionIcon.d.ts +4 -0
  19. package/action-icon/ActionIcon.js +47 -0
  20. package/action-icon/ActionIcon.stories.tsx +41 -0
  21. package/action-icon/ActionIcon.test.js +64 -0
  22. package/action-icon/types.d.ts +26 -0
  23. package/alert/Alert.js +19 -58
  24. package/alert/Alert.stories.tsx +28 -0
  25. package/alert/Alert.test.js +29 -46
  26. package/alert/types.d.ts +5 -5
  27. package/badge/Badge.d.ts +1 -1
  28. package/badge/Badge.js +142 -42
  29. package/badge/Badge.stories.tsx +210 -0
  30. package/badge/Badge.test.js +30 -0
  31. package/badge/types.d.ts +52 -3
  32. package/bleed/Bleed.js +13 -21
  33. package/bleed/Bleed.stories.tsx +1 -0
  34. package/bleed/types.d.ts +2 -2
  35. package/box/Box.d.ts +1 -1
  36. package/box/Box.js +18 -59
  37. package/box/Box.stories.tsx +38 -51
  38. package/box/Box.test.js +2 -7
  39. package/box/types.d.ts +3 -15
  40. package/bulleted-list/BulletedList.js +19 -53
  41. package/bulleted-list/BulletedList.stories.tsx +8 -93
  42. package/bulleted-list/types.d.ts +32 -5
  43. package/button/Button.d.ts +1 -1
  44. package/button/Button.js +69 -105
  45. package/button/Button.stories.tsx +152 -91
  46. package/button/Button.test.js +20 -17
  47. package/button/types.d.ts +8 -4
  48. package/card/Card.d.ts +1 -1
  49. package/card/Card.js +48 -89
  50. package/card/Card.stories.tsx +12 -42
  51. package/card/Card.test.js +11 -22
  52. package/card/types.d.ts +6 -12
  53. package/checkbox/Checkbox.js +87 -122
  54. package/checkbox/Checkbox.stories.tsx +68 -54
  55. package/checkbox/Checkbox.test.js +108 -64
  56. package/checkbox/types.d.ts +8 -4
  57. package/chip/Chip.js +39 -79
  58. package/chip/Chip.stories.tsx +121 -26
  59. package/chip/Chip.test.js +16 -31
  60. package/chip/types.d.ts +4 -4
  61. package/common/OpenSans.css +68 -80
  62. package/common/coreTokens.d.ts +237 -0
  63. package/common/coreTokens.js +184 -0
  64. package/common/utils.d.ts +1 -0
  65. package/common/utils.js +6 -12
  66. package/common/variables.d.ts +1367 -0
  67. package/common/variables.js +866 -1139
  68. package/container/Container.d.ts +4 -0
  69. package/container/Container.js +194 -0
  70. package/container/Container.stories.tsx +214 -0
  71. package/container/types.d.ts +74 -0
  72. package/date-input/Calendar.d.ts +1 -1
  73. package/date-input/Calendar.js +52 -96
  74. package/date-input/DateInput.js +103 -107
  75. package/date-input/DateInput.stories.tsx +194 -60
  76. package/date-input/DateInput.test.js +676 -620
  77. package/date-input/DatePicker.js +47 -92
  78. package/date-input/Icons.d.ts +6 -0
  79. package/date-input/Icons.js +58 -0
  80. package/date-input/YearPicker.d.ts +1 -1
  81. package/date-input/YearPicker.js +29 -44
  82. package/date-input/types.d.ts +31 -27
  83. package/dialog/Dialog.d.ts +1 -1
  84. package/dialog/Dialog.js +61 -119
  85. package/dialog/Dialog.stories.tsx +310 -212
  86. package/dialog/Dialog.test.js +269 -32
  87. package/dialog/types.d.ts +18 -26
  88. package/dropdown/Dropdown.js +44 -101
  89. package/dropdown/Dropdown.stories.tsx +210 -84
  90. package/dropdown/Dropdown.test.js +393 -379
  91. package/dropdown/DropdownMenu.js +20 -37
  92. package/dropdown/DropdownMenuItem.js +9 -34
  93. package/dropdown/types.d.ts +17 -19
  94. package/file-input/FileInput.js +184 -256
  95. package/file-input/FileInput.stories.tsx +86 -3
  96. package/file-input/FileInput.test.js +356 -395
  97. package/file-input/FileItem.js +15 -41
  98. package/file-input/types.d.ts +10 -10
  99. package/flex/Flex.js +27 -39
  100. package/flex/Flex.stories.tsx +35 -26
  101. package/flex/types.d.ts +74 -9
  102. package/footer/Footer.d.ts +1 -1
  103. package/footer/Footer.js +70 -117
  104. package/footer/Footer.stories.tsx +55 -21
  105. package/footer/Footer.test.js +33 -57
  106. package/footer/Icons.d.ts +3 -2
  107. package/footer/Icons.js +66 -7
  108. package/footer/types.d.ts +25 -27
  109. package/grid/Grid.d.ts +7 -0
  110. package/grid/Grid.js +76 -0
  111. package/grid/Grid.stories.tsx +219 -0
  112. package/grid/types.d.ts +115 -0
  113. package/header/Header.d.ts +4 -3
  114. package/header/Header.js +48 -133
  115. package/header/Header.stories.tsx +115 -36
  116. package/header/Header.test.js +13 -26
  117. package/header/Icons.d.ts +2 -2
  118. package/header/Icons.js +2 -7
  119. package/header/types.d.ts +5 -20
  120. package/heading/Heading.js +10 -32
  121. package/heading/Heading.test.js +71 -88
  122. package/heading/types.d.ts +7 -7
  123. package/image/Image.d.ts +4 -0
  124. package/image/Image.js +70 -0
  125. package/image/Image.stories.tsx +127 -0
  126. package/image/types.d.ts +72 -0
  127. package/image/types.js +5 -0
  128. package/inset/Inset.js +13 -21
  129. package/inset/Inset.stories.tsx +2 -1
  130. package/inset/types.d.ts +2 -2
  131. package/layout/ApplicationLayout.d.ts +5 -5
  132. package/layout/ApplicationLayout.js +29 -66
  133. package/layout/ApplicationLayout.stories.tsx +1 -1
  134. package/layout/Icons.d.ts +8 -5
  135. package/layout/Icons.js +51 -59
  136. package/layout/SidenavContext.d.ts +1 -1
  137. package/layout/SidenavContext.js +3 -9
  138. package/layout/types.d.ts +5 -6
  139. package/link/Link.js +24 -45
  140. package/link/Link.stories.tsx +60 -0
  141. package/link/Link.test.js +24 -44
  142. package/link/types.d.ts +14 -14
  143. package/main.d.ts +8 -5
  144. package/main.js +33 -59
  145. package/{tabs-nav → nav-tabs}/NavTabs.d.ts +2 -2
  146. package/{tabs-nav → nav-tabs}/NavTabs.js +23 -55
  147. package/{tabs-nav → nav-tabs}/NavTabs.stories.tsx +115 -9
  148. package/{tabs-nav → nav-tabs}/NavTabs.test.js +39 -45
  149. package/nav-tabs/Tab.js +118 -0
  150. package/{tabs-nav → nav-tabs}/types.d.ts +14 -15
  151. package/nav-tabs/types.js +5 -0
  152. package/number-input/NumberInput.d.ts +7 -0
  153. package/number-input/NumberInput.js +26 -35
  154. package/number-input/NumberInput.stories.tsx +42 -26
  155. package/number-input/NumberInput.test.js +701 -413
  156. package/number-input/types.d.ts +11 -5
  157. package/package.json +31 -29
  158. package/paginator/Icons.d.ts +5 -0
  159. package/paginator/Icons.js +21 -47
  160. package/paginator/Paginator.js +22 -58
  161. package/paginator/Paginator.stories.tsx +24 -0
  162. package/paginator/Paginator.test.js +252 -225
  163. package/paginator/types.d.ts +3 -3
  164. package/paragraph/Paragraph.d.ts +3 -4
  165. package/paragraph/Paragraph.js +6 -22
  166. package/paragraph/Paragraph.stories.tsx +0 -17
  167. package/password-input/Icons.d.ts +6 -0
  168. package/password-input/Icons.js +35 -0
  169. package/password-input/PasswordInput.js +57 -126
  170. package/password-input/PasswordInput.stories.tsx +1 -33
  171. package/password-input/PasswordInput.test.js +158 -141
  172. package/password-input/types.d.ts +8 -7
  173. package/progress-bar/ProgressBar.d.ts +2 -2
  174. package/progress-bar/ProgressBar.js +23 -55
  175. package/progress-bar/{ProgressBar.stories.jsx → ProgressBar.stories.tsx} +36 -3
  176. package/progress-bar/ProgressBar.test.js +36 -53
  177. package/progress-bar/types.d.ts +4 -3
  178. package/quick-nav/QuickNav.js +4 -27
  179. package/quick-nav/QuickNav.stories.tsx +15 -1
  180. package/quick-nav/types.d.ts +10 -10
  181. package/radio-group/Radio.d.ts +1 -1
  182. package/radio-group/Radio.js +31 -63
  183. package/radio-group/RadioGroup.js +45 -93
  184. package/radio-group/RadioGroup.stories.tsx +131 -18
  185. package/radio-group/RadioGroup.test.js +505 -471
  186. package/radio-group/types.d.ts +8 -8
  187. package/resultset-table/Icons.d.ts +7 -0
  188. package/{resultsetTable → resultset-table}/Icons.js +1 -5
  189. package/{resultsetTable → resultset-table}/ResultsetTable.js +25 -61
  190. package/{resultsetTable → resultset-table}/ResultsetTable.test.js +89 -114
  191. package/{resultsetTable → resultset-table}/types.d.ts +7 -7
  192. package/resultset-table/types.js +5 -0
  193. package/select/Icons.d.ts +7 -7
  194. package/select/Icons.js +1 -5
  195. package/select/Listbox.d.ts +1 -1
  196. package/select/Listbox.js +17 -72
  197. package/select/Option.js +27 -50
  198. package/select/Select.js +120 -175
  199. package/select/Select.stories.tsx +495 -148
  200. package/select/Select.test.js +1974 -1837
  201. package/select/types.d.ts +16 -17
  202. package/sidenav/Icons.d.ts +7 -0
  203. package/sidenav/Icons.js +47 -0
  204. package/sidenav/Sidenav.d.ts +2 -2
  205. package/sidenav/Sidenav.js +81 -153
  206. package/sidenav/Sidenav.stories.tsx +165 -63
  207. package/sidenav/Sidenav.test.js +3 -10
  208. package/sidenav/types.d.ts +31 -28
  209. package/slider/Slider.js +70 -128
  210. package/slider/Slider.test.js +108 -104
  211. package/slider/types.d.ts +4 -4
  212. package/spinner/Spinner.js +29 -73
  213. package/spinner/{Spinner.stories.jsx → Spinner.stories.tsx} +53 -27
  214. package/spinner/Spinner.test.js +26 -35
  215. package/spinner/types.d.ts +3 -3
  216. package/status-light/StatusLight.d.ts +4 -0
  217. package/status-light/StatusLight.js +51 -0
  218. package/status-light/StatusLight.stories.tsx +74 -0
  219. package/status-light/StatusLight.test.js +25 -0
  220. package/status-light/types.d.ts +17 -0
  221. package/status-light/types.js +5 -0
  222. package/switch/Switch.js +51 -99
  223. package/switch/Switch.stories.tsx +33 -34
  224. package/switch/Switch.test.js +52 -97
  225. package/switch/types.d.ts +4 -4
  226. package/table/Table.js +7 -29
  227. package/table/{Table.stories.jsx → Table.stories.tsx} +80 -1
  228. package/table/Table.test.js +2 -7
  229. package/table/types.d.ts +8 -8
  230. package/tabs/Tab.js +26 -45
  231. package/tabs/Tabs.js +62 -145
  232. package/tabs/Tabs.stories.tsx +46 -5
  233. package/tabs/Tabs.test.js +66 -123
  234. package/tabs/types.d.ts +19 -19
  235. package/tag/Tag.js +28 -60
  236. package/tag/Tag.stories.tsx +14 -1
  237. package/tag/Tag.test.js +20 -31
  238. package/tag/types.d.ts +7 -7
  239. package/text-input/Icons.d.ts +5 -5
  240. package/text-input/Icons.js +1 -5
  241. package/text-input/Suggestion.js +11 -28
  242. package/text-input/Suggestions.d.ts +1 -1
  243. package/text-input/Suggestions.js +15 -65
  244. package/text-input/TextInput.js +219 -324
  245. package/text-input/TextInput.stories.tsx +134 -155
  246. package/text-input/TextInput.test.js +1211 -1196
  247. package/text-input/types.d.ts +25 -17
  248. package/textarea/Textarea.js +70 -113
  249. package/textarea/Textarea.stories.tsx +174 -0
  250. package/textarea/Textarea.test.js +152 -183
  251. package/textarea/types.d.ts +9 -5
  252. package/toggle-group/ToggleGroup.d.ts +2 -2
  253. package/toggle-group/ToggleGroup.js +92 -106
  254. package/toggle-group/ToggleGroup.stories.tsx +49 -4
  255. package/toggle-group/ToggleGroup.test.js +69 -88
  256. package/toggle-group/types.d.ts +26 -17
  257. package/typography/Typography.d.ts +2 -2
  258. package/typography/Typography.js +15 -123
  259. package/typography/Typography.stories.tsx +1 -1
  260. package/typography/types.d.ts +1 -1
  261. package/useTheme.d.ts +1119 -1
  262. package/useTheme.js +2 -9
  263. package/useTranslatedLabels.d.ts +84 -1
  264. package/useTranslatedLabels.js +1 -7
  265. package/utils/BaseTypography.d.ts +21 -0
  266. package/utils/BaseTypography.js +94 -0
  267. package/utils/FocusLock.d.ts +13 -0
  268. package/utils/FocusLock.js +124 -0
  269. package/wizard/Wizard.js +16 -51
  270. package/wizard/Wizard.stories.tsx +20 -0
  271. package/wizard/Wizard.test.js +54 -81
  272. package/wizard/types.d.ts +8 -9
  273. package/card/ice-cream.jpg +0 -0
  274. package/number-input/NumberInputContext.d.ts +0 -4
  275. package/number-input/NumberInputContext.js +0 -19
  276. package/number-input/numberInputContextTypes.d.ts +0 -19
  277. package/resultsetTable/Icons.d.ts +0 -7
  278. package/slider/Slider.stories.tsx +0 -183
  279. package/tabs-nav/Tab.js +0 -130
  280. package/textarea/Textarea.stories.jsx +0 -157
  281. /package/{resultsetTable → action-icon}/types.js +0 -0
  282. /package/{tabs-nav → container}/types.js +0 -0
  283. /package/{number-input/numberInputContextTypes.js → grid/types.js} +0 -0
  284. /package/{tabs-nav → nav-tabs}/Tab.d.ts +0 -0
  285. /package/{resultsetTable → resultset-table}/ResultsetTable.d.ts +0 -0
  286. /package/{resultsetTable → resultset-table}/ResultsetTable.stories.tsx +0 -0
@@ -1,19 +1,15 @@
1
1
  import React from "react";
2
2
  import { userEvent, within } from "@storybook/testing-library";
3
- import { BackgroundColorProvider } from "../BackgroundColorContext";
4
3
  import Title from "../../.storybook/components/Title";
5
4
  import ExampleContainer from "../../.storybook/components/ExampleContainer";
6
- import DarkContainer from "../../.storybook/components/DarkSection";
7
5
  import DxcTextInput from "./TextInput";
8
- import DxcButton from "../button/Button";
9
- import DxcCheckbox from "../checkbox/Checkbox";
10
- import DxcFlex from "../flex/Flex";
11
6
  import Suggestions from "./Suggestions";
12
7
  import { ThemeProvider } from "styled-components";
13
8
  import useTheme from "../useTheme";
9
+ import { HalstackProvider } from "../HalstackContext";
14
10
 
15
11
  export default {
16
- title: "Text input",
12
+ title: "Text Input",
17
13
  component: DxcTextInput,
18
14
  };
19
15
 
@@ -27,7 +23,7 @@ const action = {
27
23
  ),
28
24
  };
29
25
 
30
- const actionLargeIcon = {
26
+ const actionLargeIconSVG = {
31
27
  onClick: () => {},
32
28
  icon: (
33
29
  <svg xmlns="http://www.w3.org/2000/svg" height="48px" viewBox="0 0 24 24" width="48px" fill="currentColor">
@@ -37,14 +33,19 @@ const actionLargeIcon = {
37
33
  ),
38
34
  };
39
35
 
36
+ const actionLargeIconURL = {
37
+ onClick: () => {},
38
+ icon: "https://iconape.com/wp-content/files/yd/367773/svg/logo-linkedin-logo-icon-png-svg.png",
39
+ };
40
+
40
41
  const country = ["Afghanistan"];
41
42
  const countries = [
42
43
  "Afghanistan",
43
44
  "Albania",
44
45
  "Algeria",
45
- "Andorra Andorra Andorra Andorra Andorra Andorra Andorra Andorra",
46
+ "Andorra",
46
47
  "Angola",
47
- "Antigua and Barbuda Antigua and Barbuda Antigua and Barbuda",
48
+ "Antigua and Barbuda",
48
49
  "Bahamas",
49
50
  "Bahrain",
50
51
  "Bangladesh",
@@ -61,9 +62,15 @@ const countries = [
61
62
  "Dominica",
62
63
  "Denmark",
63
64
  "Djibouti",
64
- "*",
65
65
  ];
66
66
 
67
+ const opinionatedTheme = {
68
+ textInput: {
69
+ fontColor: "#000000",
70
+ hoverBorderColor: "#a46ede",
71
+ },
72
+ };
73
+
67
74
  export const Chromatic = () => (
68
75
  <>
69
76
  <ExampleContainer pseudoState="pseudo-hover">
@@ -99,12 +106,21 @@ export const Chromatic = () => (
99
106
  <DxcTextInput label="Text input" clearable defaultValue="Text" helperText="Help message" optional />
100
107
  </ExampleContainer>
101
108
  <ExampleContainer>
102
- <Title title="Clearable and large icon action" theme="light" level={4} />
109
+ <Title title="Clearable and large icon action (SVG)" theme="light" level={4} />
110
+ <DxcTextInput
111
+ label="Text input"
112
+ defaultValue="Text text text text text text text text text text"
113
+ clearable
114
+ action={actionLargeIconSVG}
115
+ />
116
+ </ExampleContainer>
117
+ <ExampleContainer>
118
+ <Title title="Clearable and large icon action (URL)" theme="light" level={4} />
103
119
  <DxcTextInput
104
120
  label="Text input"
105
121
  defaultValue="Text text text text text text text text text text"
106
122
  clearable
107
- action={actionLargeIcon}
123
+ action={actionLargeIconURL}
108
124
  />
109
125
  </ExampleContainer>
110
126
  <ExampleContainer>
@@ -164,94 +180,45 @@ export const Chromatic = () => (
164
180
  action={action}
165
181
  />
166
182
  </ExampleContainer>
167
- <BackgroundColorProvider color="#333333">
168
- <DarkContainer>
169
- <Title title="Dark theme" theme="dark" level={2} />
170
- <ExampleContainer pseudoState="pseudo-hover">
171
- <Title title="Hovered" theme="dark" level={4} />
172
- <DxcTextInput label="Text input" />
173
- </ExampleContainer>
174
- <ExampleContainer pseudoState="pseudo-focus-within">
175
- <Title title="Focused" theme="dark" level={4} />
176
- <DxcTextInput label="Text input" />
177
- </ExampleContainer>
178
- <ExampleContainer pseudoState="pseudo-hover">
179
- <Title title="Hovered action" theme="dark" level={4} />
180
- <DxcTextInput label="Text input" defaultValue="Text" clearable />
181
- </ExampleContainer>
182
- <ExampleContainer pseudoState="pseudo-active">
183
- <Title title="Actived action" theme="dark" level={4} />
184
- <DxcTextInput label="Text input" action={action} clearable />
185
- </ExampleContainer>
186
- <ExampleContainer pseudoState="pseudo-focus">
187
- <Title title="Focused action" theme="dark" level={4} />
188
- <DxcTextInput label="Text input" action={action} clearable />
189
- </ExampleContainer>
190
- <ExampleContainer>
191
- <Title title="Helper text, placeholder, optional and action" theme="dark" level={4} />
192
- <DxcTextInput
193
- label="Text input"
194
- helperText="Help message"
195
- placeholder="Placeholder"
196
- clearable
197
- optional
198
- action={action}
199
- />
200
- </ExampleContainer>
201
- <ExampleContainer>
202
- <Title title="Invalid" theme="dark" level={4} />
203
- <DxcTextInput
204
- label="Error text input"
205
- helperText="Help message"
206
- error="Error message."
207
- defaultValue="Text"
208
- clearable
209
- action={action}
210
- />
211
- </ExampleContainer>
212
- <ExampleContainer pseudoState="pseudo-hover">
213
- <Title title="Invalid and hovered" theme="dark" level={4} />
214
- <DxcTextInput
215
- label="Error text input"
216
- helperText="Help message"
217
- placeholder="Placeholder"
218
- error="Error message."
219
- />
220
- </ExampleContainer>
221
- <ExampleContainer>
222
- <Title title="Prefix and suffix" theme="dark" level={4} />
223
- <DxcTextInput label="With prefix and suffix" prefix="+34" suffix="USD" />
224
- </ExampleContainer>
225
- <ExampleContainer>
226
- <Title title="Disabled and placeholder" theme="dark" level={4} />
227
- <DxcTextInput label="Disabled text input" disabled placeholder="Placeholder" />
228
- </ExampleContainer>
229
- <ExampleContainer>
230
- <Title title="Disabled, helper text, optional, value and action" theme="dark" level={4} />
231
- <DxcTextInput
232
- label="Disabled text input"
233
- helperText="Help message"
234
- disabled
235
- optional
236
- defaultValue="Text"
237
- action={action}
238
- />
239
- </ExampleContainer>
240
- <ExampleContainer>
241
- <Title title="Disabled with prefix and suffix" theme="dark" level={4} />
242
- <DxcTextInput
243
- label="Disabled text input"
244
- helperText="Help message"
245
- disabled
246
- optional
247
- prefix="+34"
248
- suffix="USD"
249
- defaultValue="Text"
250
- action={action}
251
- />
252
- </ExampleContainer>
253
- </DarkContainer>
254
- </BackgroundColorProvider>
183
+ <ExampleContainer>
184
+ <Title title="Read only" theme="light" level={4} />
185
+ <DxcTextInput
186
+ label="Example label"
187
+ helperText="Help message"
188
+ clearable
189
+ readOnly
190
+ optional
191
+ prefix="+34"
192
+ defaultValue="Text"
193
+ action={action}
194
+ />
195
+ </ExampleContainer>
196
+ <ExampleContainer pseudoState="pseudo-hover">
197
+ <Title title="Hovered read only" theme="light" level={4} />
198
+ <DxcTextInput
199
+ label="Example label"
200
+ helperText="Help message"
201
+ clearable
202
+ readOnly
203
+ optional
204
+ prefix="+34"
205
+ defaultValue="Text"
206
+ action={action}
207
+ />
208
+ </ExampleContainer>
209
+ <ExampleContainer pseudoState="pseudo-active">
210
+ <Title title="Active read only" theme="light" level={4} />
211
+ <DxcTextInput
212
+ label="Example label"
213
+ helperText="Help message"
214
+ clearable
215
+ readOnly
216
+ optional
217
+ prefix="+34"
218
+ defaultValue="Text"
219
+ action={action}
220
+ />
221
+ </ExampleContainer>
255
222
  <Title title="Margins" theme="light" level={2} />
256
223
  <ExampleContainer>
257
224
  <Title title="Xxsmall margin" theme="light" level={4} />
@@ -298,6 +265,66 @@ export const Chromatic = () => (
298
265
  <Title title="FillParent size" theme="light" level={4} />
299
266
  <DxcTextInput label="FillParent" size="fillParent" />
300
267
  </ExampleContainer>
268
+ <Title title="Opinionated theme" theme="light" level={2} />
269
+ <ExampleContainer>
270
+ <HalstackProvider theme={opinionatedTheme}>
271
+ <ExampleContainer pseudoState="pseudo-hover">
272
+ <Title title="Hovered input" theme="light" level={4} />
273
+ <DxcTextInput label="Text input" helperText="Help message" />
274
+ </ExampleContainer>
275
+ <ExampleContainer pseudoState="pseudo-focus-within">
276
+ <Title title="Focused input" theme="light" level={4} />
277
+ <DxcTextInput label="Text input" helperText="Help message" />
278
+ </ExampleContainer>
279
+ <ExampleContainer pseudoState="pseudo-hover">
280
+ <Title title="Hovered action" theme="light" level={4} />
281
+ <DxcTextInput label="Text input" helperText="Help message" defaultValue="Text" clearable />
282
+ </ExampleContainer>
283
+ <ExampleContainer pseudoState="pseudo-active">
284
+ <Title title="Actived action" theme="light" level={4} />
285
+ <DxcTextInput label="Text input" helperText="Help message" action={action} clearable />
286
+ </ExampleContainer>
287
+ <ExampleContainer pseudoState="pseudo-focus">
288
+ <Title title="Focused action" theme="light" level={4} />
289
+ <DxcTextInput label="Text input" helperText="Help message" action={action} clearable />
290
+ </ExampleContainer>
291
+ <ExampleContainer>
292
+ <Title title="Prefix" theme="light" level={4} />
293
+ <DxcTextInput label="With prefix" prefix="+34" helperText="Help message" />
294
+ </ExampleContainer>
295
+ <ExampleContainer>
296
+ <Title title="Suffix and action" theme="light" level={4} />
297
+ <DxcTextInput label="With suffix" helperText="Help message" suffix="USD" action={action} />
298
+ </ExampleContainer>
299
+ <ExampleContainer>
300
+ <Title title="Invalid" theme="light" level={4} />
301
+ <DxcTextInput
302
+ label="Error text input"
303
+ helperText="Help message"
304
+ error="Error message."
305
+ defaultValue="Text"
306
+ clearable
307
+ optional
308
+ action={action}
309
+ />
310
+ </ExampleContainer>
311
+ <ExampleContainer>
312
+ <Title title="Disabled and placeholder" theme="light" level={4} />
313
+ <DxcTextInput label="Disabled text input" disabled placeholder="Placeholder" prefix="+34" suffix="USD" />
314
+ </ExampleContainer>
315
+ <ExampleContainer>
316
+ <Title title="Disabled, helper text, optional, value and action" theme="light" level={4} />
317
+ <DxcTextInput
318
+ label="Disabled text input"
319
+ helperText="Help message"
320
+ disabled
321
+ optional
322
+ defaultValue="Text"
323
+ action={action}
324
+ />
325
+ </ExampleContainer>
326
+ </HalstackProvider>
327
+ </ExampleContainer>
301
328
  </>
302
329
  );
303
330
 
@@ -327,6 +354,7 @@ const AutosuggestListbox = () => {
327
354
  borderRadius: "4px",
328
355
  overflow: "auto",
329
356
  zIndex: "1300",
357
+ position: "relative",
330
358
  }}
331
359
  >
332
360
  <DxcTextInput
@@ -351,7 +379,7 @@ const AutosuggestListbox = () => {
351
379
  searchHasErrors={false}
352
380
  isSearching={false}
353
381
  suggestionOnClick={() => {}}
354
- getTextInputWidth={() => 350}
382
+ styles={{ width: 350 }}
355
383
  />
356
384
  </ExampleContainer>
357
385
  <ExampleContainer pseudoState="pseudo-active">
@@ -365,7 +393,7 @@ const AutosuggestListbox = () => {
365
393
  searchHasErrors={false}
366
394
  isSearching={false}
367
395
  suggestionOnClick={(suggestion) => {}}
368
- getTextInputWidth={() => 350}
396
+ styles={{ width: 350 }}
369
397
  />
370
398
  </ExampleContainer>
371
399
  <ExampleContainer>
@@ -379,7 +407,7 @@ const AutosuggestListbox = () => {
379
407
  searchHasErrors={false}
380
408
  isSearching={false}
381
409
  suggestionOnClick={(suggestion) => {}}
382
- getTextInputWidth={() => 350}
410
+ styles={{ width: 350 }}
383
411
  />
384
412
  </ExampleContainer>
385
413
  <ExampleContainer>
@@ -393,7 +421,7 @@ const AutosuggestListbox = () => {
393
421
  searchHasErrors={false}
394
422
  isSearching={false}
395
423
  suggestionOnClick={(suggestion) => {}}
396
- getTextInputWidth={() => 350}
424
+ styles={{ width: 350 }}
397
425
  />
398
426
  </ExampleContainer>
399
427
  </ExampleContainer>
@@ -408,7 +436,7 @@ const AutosuggestListbox = () => {
408
436
  searchHasErrors={true}
409
437
  isSearching={false}
410
438
  suggestionOnClick={(suggestion) => {}}
411
- getTextInputWidth={() => 350}
439
+ styles={{ width: 350 }}
412
440
  />
413
441
  </ExampleContainer>
414
442
  <ExampleContainer>
@@ -422,65 +450,16 @@ const AutosuggestListbox = () => {
422
450
  searchHasErrors={false}
423
451
  isSearching={true}
424
452
  suggestionOnClick={(suggestion) => {}}
425
- getTextInputWidth={() => 350}
453
+ styles={{ width: 350 }}
426
454
  />
427
455
  </ExampleContainer>
428
456
  </ThemeProvider>
429
457
  );
430
458
  };
431
459
 
432
- const DarkAutosuggestListbox = () => {
433
- const colorsTheme: any = useTheme();
434
-
435
- return (
436
- <ThemeProvider theme={colorsTheme.textInput}>
437
- <BackgroundColorProvider color="#333333">
438
- <DarkContainer>
439
- <Title title="Dark theme" theme="dark" level={2} />
440
- <ExampleContainer>
441
- <Title title="Default with opened suggestions" theme="dark" level={3} />
442
- <DxcFlex direction="column" gap="80px">
443
- <DxcTextInput label="Label" suggestions={countries} optional placeholder="Choose an option" />
444
- <DxcCheckbox
445
- label="You understand the selection and give your consent"
446
- onChange={() => {}}
447
- labelPosition="after"
448
- />
449
- <DxcButton label="Submit" onClick={() => {}} size="medium" margin={{ bottom: "xxlarge" }} />
450
- </DxcFlex>
451
- </ExampleContainer>
452
- <ExampleContainer>
453
- <Title title="Autosuggest Error" theme="dark" level={3} />
454
- <div style={{ height: "100px" }}>
455
- <Suggestions
456
- id="x"
457
- value=""
458
- suggestions={country}
459
- visualFocusIndex={-1}
460
- highlightedSuggestions={false}
461
- searchHasErrors={true}
462
- isSearching={false}
463
- suggestionOnClick={(suggestion) => {}}
464
- getTextInputWidth={() => 350}
465
- />
466
- </div>
467
- </ExampleContainer>
468
- </DarkContainer>
469
- </BackgroundColorProvider>
470
- </ThemeProvider>
471
- );
472
- };
473
-
474
460
  export const AutosuggestListboxStates = AutosuggestListbox.bind({});
475
461
  AutosuggestListboxStates.play = async ({ canvasElement }) => {
476
462
  const canvas = within(canvasElement);
477
463
  const select = canvas.getByRole("combobox");
478
464
  await userEvent.click(select);
479
465
  };
480
-
481
- export const AutosuggestListboxOnDark = DarkAutosuggestListbox.bind({});
482
- AutosuggestListboxOnDark.play = async ({ canvasElement }) => {
483
- const canvas = within(canvasElement);
484
- const select = canvas.getByRole("combobox");
485
- await userEvent.click(select);
486
- };