@dxc-technology/halstack-react 0.0.0-f53e801 → 0.0.0-f6290b3

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 (313) 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 +125 -110
  5. package/README.md +47 -0
  6. package/accordion/Accordion.d.ts +1 -1
  7. package/accordion/Accordion.js +116 -160
  8. package/accordion/Accordion.stories.tsx +101 -125
  9. package/accordion/Accordion.test.js +25 -41
  10. package/accordion/types.d.ts +5 -16
  11. package/accordion-group/AccordionGroup.d.ts +4 -3
  12. package/accordion-group/AccordionGroup.js +30 -98
  13. package/accordion-group/AccordionGroup.stories.tsx +94 -67
  14. package/accordion-group/AccordionGroup.test.js +52 -105
  15. package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
  16. package/accordion-group/AccordionGroupAccordion.js +31 -0
  17. package/accordion-group/types.d.ts +11 -16
  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 +20 -59
  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 +141 -43
  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 +19 -60
  37. package/box/Box.stories.tsx +38 -51
  38. package/box/Box.test.js +2 -7
  39. package/box/types.d.ts +3 -14
  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 -11
  53. package/checkbox/Checkbox.d.ts +2 -2
  54. package/checkbox/Checkbox.js +140 -182
  55. package/checkbox/Checkbox.stories.tsx +128 -94
  56. package/checkbox/Checkbox.test.js +160 -39
  57. package/checkbox/types.d.ts +11 -3
  58. package/chip/Chip.js +39 -79
  59. package/chip/Chip.stories.tsx +121 -26
  60. package/chip/Chip.test.js +16 -31
  61. package/chip/types.d.ts +4 -4
  62. package/common/OpenSans.css +68 -80
  63. package/common/coreTokens.d.ts +237 -0
  64. package/common/coreTokens.js +184 -0
  65. package/common/utils.d.ts +1 -0
  66. package/common/utils.js +6 -12
  67. package/common/variables.d.ts +1395 -0
  68. package/common/variables.js +927 -1164
  69. package/container/Container.d.ts +4 -0
  70. package/container/Container.js +194 -0
  71. package/container/Container.stories.tsx +214 -0
  72. package/container/types.d.ts +74 -0
  73. package/contextual-menu/ContextualMenu.d.ts +7 -0
  74. package/contextual-menu/ContextualMenu.js +71 -0
  75. package/contextual-menu/ContextualMenu.stories.tsx +182 -0
  76. package/contextual-menu/ContextualMenu.test.js +71 -0
  77. package/contextual-menu/MenuItemAction.d.ts +4 -0
  78. package/contextual-menu/MenuItemAction.js +46 -0
  79. package/contextual-menu/types.d.ts +22 -0
  80. package/date-input/Calendar.d.ts +4 -0
  81. package/date-input/Calendar.js +214 -0
  82. package/date-input/DateInput.js +150 -299
  83. package/date-input/DateInput.stories.tsx +203 -56
  84. package/date-input/DateInput.test.js +700 -371
  85. package/date-input/DatePicker.d.ts +4 -0
  86. package/date-input/DatePicker.js +115 -0
  87. package/date-input/Icons.d.ts +6 -0
  88. package/date-input/Icons.js +58 -0
  89. package/date-input/YearPicker.d.ts +4 -0
  90. package/date-input/YearPicker.js +100 -0
  91. package/date-input/types.d.ts +72 -15
  92. package/dialog/Dialog.d.ts +1 -1
  93. package/dialog/Dialog.js +60 -118
  94. package/dialog/Dialog.stories.tsx +320 -166
  95. package/dialog/Dialog.test.js +269 -32
  96. package/dialog/types.d.ts +18 -25
  97. package/divider/Divider.d.ts +4 -0
  98. package/divider/Divider.js +36 -0
  99. package/divider/Divider.stories.tsx +223 -0
  100. package/divider/Divider.test.js +38 -0
  101. package/divider/types.d.ts +19 -0
  102. package/divider/types.js +5 -0
  103. package/dropdown/Dropdown.js +81 -132
  104. package/dropdown/Dropdown.stories.tsx +210 -84
  105. package/dropdown/Dropdown.test.js +410 -402
  106. package/dropdown/DropdownMenu.js +20 -37
  107. package/dropdown/DropdownMenuItem.js +10 -35
  108. package/dropdown/types.d.ts +18 -20
  109. package/file-input/FileInput.d.ts +2 -2
  110. package/file-input/FileInput.js +241 -355
  111. package/file-input/FileInput.stories.tsx +123 -12
  112. package/file-input/FileInput.test.js +369 -367
  113. package/file-input/FileItem.d.ts +4 -14
  114. package/file-input/FileItem.js +45 -96
  115. package/file-input/types.d.ts +25 -8
  116. package/flex/Flex.d.ts +1 -1
  117. package/flex/Flex.js +40 -40
  118. package/flex/Flex.stories.tsx +35 -26
  119. package/flex/types.d.ts +84 -8
  120. package/footer/Footer.d.ts +1 -1
  121. package/footer/Footer.js +70 -117
  122. package/footer/Footer.stories.tsx +60 -19
  123. package/footer/Footer.test.js +33 -57
  124. package/footer/Icons.d.ts +3 -2
  125. package/footer/Icons.js +66 -7
  126. package/footer/types.d.ts +25 -26
  127. package/grid/Grid.d.ts +7 -0
  128. package/grid/Grid.js +76 -0
  129. package/grid/Grid.stories.tsx +219 -0
  130. package/grid/types.d.ts +115 -0
  131. package/grid/types.js +5 -0
  132. package/header/Header.d.ts +4 -3
  133. package/header/Header.js +48 -133
  134. package/header/Header.stories.tsx +118 -39
  135. package/header/Header.test.js +13 -26
  136. package/header/Icons.d.ts +2 -2
  137. package/header/Icons.js +2 -7
  138. package/header/types.d.ts +7 -21
  139. package/heading/Heading.js +10 -32
  140. package/heading/Heading.test.js +71 -88
  141. package/heading/types.d.ts +7 -7
  142. package/image/Image.d.ts +4 -0
  143. package/image/Image.js +70 -0
  144. package/image/Image.stories.tsx +129 -0
  145. package/image/types.d.ts +72 -0
  146. package/image/types.js +5 -0
  147. package/inset/Inset.js +13 -21
  148. package/inset/Inset.stories.tsx +2 -1
  149. package/inset/types.d.ts +2 -2
  150. package/layout/ApplicationLayout.d.ts +5 -5
  151. package/layout/ApplicationLayout.js +29 -66
  152. package/layout/ApplicationLayout.stories.tsx +2 -1
  153. package/layout/Icons.d.ts +8 -5
  154. package/layout/Icons.js +51 -59
  155. package/layout/SidenavContext.d.ts +1 -1
  156. package/layout/SidenavContext.js +3 -9
  157. package/layout/types.d.ts +5 -6
  158. package/link/Link.js +25 -46
  159. package/link/Link.stories.tsx +60 -0
  160. package/link/Link.test.js +24 -44
  161. package/link/types.d.ts +14 -14
  162. package/main.d.ts +9 -5
  163. package/main.js +40 -59
  164. package/{tabs-nav → nav-tabs}/NavTabs.d.ts +2 -2
  165. package/{tabs-nav → nav-tabs}/NavTabs.js +23 -55
  166. package/{tabs-nav → nav-tabs}/NavTabs.stories.tsx +115 -9
  167. package/{tabs-nav → nav-tabs}/NavTabs.test.js +39 -45
  168. package/nav-tabs/Tab.js +118 -0
  169. package/{tabs-nav → nav-tabs}/types.d.ts +14 -15
  170. package/nav-tabs/types.js +5 -0
  171. package/number-input/NumberInput.d.ts +7 -0
  172. package/number-input/NumberInput.js +47 -37
  173. package/number-input/NumberInput.stories.tsx +42 -26
  174. package/number-input/NumberInput.test.js +860 -377
  175. package/number-input/types.d.ts +11 -5
  176. package/package.json +39 -42
  177. package/paginator/Icons.d.ts +5 -0
  178. package/paginator/Icons.js +21 -47
  179. package/paginator/Paginator.js +23 -59
  180. package/paginator/Paginator.stories.tsx +24 -0
  181. package/paginator/Paginator.test.js +253 -226
  182. package/paginator/types.d.ts +3 -3
  183. package/paragraph/Paragraph.d.ts +3 -4
  184. package/paragraph/Paragraph.js +6 -22
  185. package/paragraph/Paragraph.stories.tsx +0 -17
  186. package/password-input/Icons.d.ts +6 -0
  187. package/password-input/Icons.js +35 -0
  188. package/password-input/PasswordInput.js +57 -126
  189. package/password-input/PasswordInput.stories.tsx +1 -33
  190. package/password-input/PasswordInput.test.js +160 -142
  191. package/password-input/types.d.ts +8 -7
  192. package/progress-bar/ProgressBar.d.ts +2 -2
  193. package/progress-bar/ProgressBar.js +23 -55
  194. package/progress-bar/{ProgressBar.stories.jsx → ProgressBar.stories.tsx} +36 -3
  195. package/progress-bar/ProgressBar.test.js +36 -53
  196. package/progress-bar/types.d.ts +4 -3
  197. package/quick-nav/QuickNav.js +15 -39
  198. package/quick-nav/QuickNav.stories.tsx +112 -20
  199. package/quick-nav/types.d.ts +10 -10
  200. package/radio-group/Radio.d.ts +1 -1
  201. package/radio-group/Radio.js +59 -76
  202. package/radio-group/RadioGroup.js +59 -105
  203. package/radio-group/RadioGroup.stories.tsx +132 -18
  204. package/radio-group/RadioGroup.test.js +518 -457
  205. package/radio-group/types.d.ts +10 -10
  206. package/resultset-table/Icons.d.ts +7 -0
  207. package/resultset-table/Icons.js +47 -0
  208. package/resultset-table/ResultsetTable.d.ts +7 -0
  209. package/resultset-table/ResultsetTable.js +166 -0
  210. package/{resultsetTable → resultset-table}/ResultsetTable.stories.tsx +152 -30
  211. package/{resultsetTable → resultset-table}/ResultsetTable.test.js +167 -144
  212. package/{resultsetTable → resultset-table}/types.d.ts +13 -7
  213. package/resultset-table/types.js +5 -0
  214. package/select/Icons.d.ts +7 -7
  215. package/select/Icons.js +1 -5
  216. package/select/Listbox.d.ts +1 -1
  217. package/select/Listbox.js +17 -73
  218. package/select/Option.js +27 -50
  219. package/select/Select.js +123 -176
  220. package/select/Select.stories.tsx +497 -153
  221. package/select/Select.test.js +1970 -1775
  222. package/select/types.d.ts +16 -17
  223. package/sidenav/Icons.d.ts +7 -0
  224. package/sidenav/Icons.js +47 -0
  225. package/sidenav/Sidenav.d.ts +2 -2
  226. package/sidenav/Sidenav.js +82 -153
  227. package/sidenav/Sidenav.stories.tsx +165 -63
  228. package/sidenav/Sidenav.test.js +3 -10
  229. package/sidenav/types.d.ts +31 -28
  230. package/slider/Slider.d.ts +2 -2
  231. package/slider/Slider.js +146 -179
  232. package/slider/Slider.test.js +164 -97
  233. package/slider/types.d.ts +7 -3
  234. package/spinner/Spinner.js +31 -75
  235. package/spinner/{Spinner.stories.jsx → Spinner.stories.tsx} +53 -27
  236. package/spinner/Spinner.test.js +26 -35
  237. package/spinner/types.d.ts +3 -3
  238. package/status-light/StatusLight.d.ts +4 -0
  239. package/status-light/StatusLight.js +51 -0
  240. package/status-light/StatusLight.stories.tsx +74 -0
  241. package/status-light/StatusLight.test.js +25 -0
  242. package/status-light/types.d.ts +17 -0
  243. package/status-light/types.js +5 -0
  244. package/switch/Switch.d.ts +3 -3
  245. package/switch/Switch.js +113 -150
  246. package/switch/Switch.stories.tsx +33 -34
  247. package/switch/Switch.test.js +70 -102
  248. package/switch/types.d.ts +8 -3
  249. package/table/DropdownTheme.js +62 -0
  250. package/table/Table.d.ts +6 -2
  251. package/table/Table.js +87 -35
  252. package/table/Table.stories.tsx +658 -0
  253. package/table/Table.test.js +95 -8
  254. package/table/types.d.ts +48 -6
  255. package/tabs/Tab.d.ts +4 -0
  256. package/tabs/Tab.js +116 -0
  257. package/tabs/Tabs.js +314 -141
  258. package/tabs/Tabs.stories.tsx +120 -6
  259. package/tabs/Tabs.test.js +223 -69
  260. package/tabs/types.d.ts +28 -18
  261. package/tag/Tag.js +29 -61
  262. package/tag/Tag.stories.tsx +14 -1
  263. package/tag/Tag.test.js +20 -31
  264. package/tag/types.d.ts +7 -7
  265. package/text-input/Icons.d.ts +8 -0
  266. package/text-input/Icons.js +56 -0
  267. package/text-input/Suggestion.js +40 -28
  268. package/text-input/Suggestions.d.ts +4 -0
  269. package/text-input/Suggestions.js +84 -0
  270. package/text-input/TextInput.js +301 -497
  271. package/text-input/TextInput.stories.tsx +266 -274
  272. package/text-input/TextInput.test.js +1419 -1375
  273. package/text-input/types.d.ts +43 -16
  274. package/textarea/Textarea.js +70 -113
  275. package/textarea/Textarea.stories.tsx +174 -0
  276. package/textarea/Textarea.test.js +152 -183
  277. package/textarea/types.d.ts +9 -5
  278. package/toggle-group/ToggleGroup.d.ts +2 -2
  279. package/toggle-group/ToggleGroup.js +92 -106
  280. package/toggle-group/ToggleGroup.stories.tsx +49 -4
  281. package/toggle-group/ToggleGroup.test.js +69 -88
  282. package/toggle-group/types.d.ts +26 -17
  283. package/typography/Typography.d.ts +2 -2
  284. package/typography/Typography.js +15 -123
  285. package/typography/Typography.stories.tsx +1 -1
  286. package/typography/types.d.ts +1 -1
  287. package/useTheme.d.ts +1147 -1
  288. package/useTheme.js +2 -9
  289. package/useTranslatedLabels.d.ts +84 -1
  290. package/useTranslatedLabels.js +1 -7
  291. package/utils/BaseTypography.d.ts +21 -0
  292. package/utils/BaseTypography.js +94 -0
  293. package/utils/FocusLock.d.ts +13 -0
  294. package/utils/FocusLock.js +124 -0
  295. package/wizard/Wizard.js +16 -51
  296. package/wizard/Wizard.stories.tsx +20 -0
  297. package/wizard/Wizard.test.js +54 -81
  298. package/wizard/types.d.ts +9 -10
  299. package/card/ice-cream.jpg +0 -0
  300. package/common/RequiredComponent.js +0 -32
  301. package/number-input/NumberInputContext.d.ts +0 -4
  302. package/number-input/NumberInputContext.js +0 -19
  303. package/number-input/numberInputContextTypes.d.ts +0 -19
  304. package/resultsetTable/ResultsetTable.d.ts +0 -4
  305. package/resultsetTable/ResultsetTable.js +0 -254
  306. package/slider/Slider.stories.tsx +0 -177
  307. package/table/Table.stories.jsx +0 -277
  308. package/tabs-nav/Tab.js +0 -130
  309. package/textarea/Textarea.stories.jsx +0 -157
  310. /package/{resultsetTable → action-icon}/types.js +0 -0
  311. /package/{tabs-nav → container}/types.js +0 -0
  312. /package/{number-input/numberInputContextTypes.js → contextual-menu/types.js} +0 -0
  313. /package/{tabs-nav → nav-tabs}/Tab.d.ts +0 -0
@@ -1,13 +1,15 @@
1
1
  import React from "react";
2
- import { userEvent, within, fireEvent } from "@storybook/testing-library";
3
- import { BackgroundColorProvider } from "../BackgroundColorContext";
2
+ import { userEvent, within } from "@storybook/testing-library";
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";
6
+ import Suggestions from "./Suggestions";
7
+ import { ThemeProvider } from "styled-components";
8
+ import useTheme from "../useTheme";
9
+ import { HalstackProvider } from "../HalstackContext";
8
10
 
9
11
  export default {
10
- title: "Text input",
12
+ title: "Text Input",
11
13
  component: DxcTextInput,
12
14
  };
13
15
 
@@ -21,7 +23,7 @@ const action = {
21
23
  ),
22
24
  };
23
25
 
24
- const actionLargeIcon = {
26
+ const actionLargeIconSVG = {
25
27
  onClick: () => {},
26
28
  icon: (
27
29
  <svg xmlns="http://www.w3.org/2000/svg" height="48px" viewBox="0 0 24 24" width="48px" fill="currentColor">
@@ -31,14 +33,19 @@ const actionLargeIcon = {
31
33
  ),
32
34
  };
33
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
+
34
41
  const country = ["Afghanistan"];
35
42
  const countries = [
36
43
  "Afghanistan",
37
44
  "Albania",
38
45
  "Algeria",
39
- "Andorra Andorra Andorra Andorra Andorra Andorra Andorra Andorra",
46
+ "Andorra",
40
47
  "Angola",
41
- "Antigua and Barbuda Antigua and Barbuda Antigua and Barbuda",
48
+ "Antigua and Barbuda",
42
49
  "Bahamas",
43
50
  "Bahrain",
44
51
  "Bangladesh",
@@ -57,6 +64,13 @@ const countries = [
57
64
  "Djibouti",
58
65
  ];
59
66
 
67
+ const opinionatedTheme = {
68
+ textInput: {
69
+ fontColor: "#000000",
70
+ hoverBorderColor: "#a46ede",
71
+ },
72
+ };
73
+
60
74
  export const Chromatic = () => (
61
75
  <>
62
76
  <ExampleContainer pseudoState="pseudo-hover">
@@ -71,6 +85,14 @@ export const Chromatic = () => (
71
85
  <Title title="Hovered action" theme="light" level={4} />
72
86
  <DxcTextInput label="Text input" defaultValue="Text" clearable />
73
87
  </ExampleContainer>
88
+ <ExampleContainer pseudoState="pseudo-active">
89
+ <Title title="Actived action" theme="light" level={4} />
90
+ <DxcTextInput label="Text input" action={action} clearable />
91
+ </ExampleContainer>
92
+ <ExampleContainer pseudoState="pseudo-focus">
93
+ <Title title="Focused action" theme="light" level={4} />
94
+ <DxcTextInput label="Text input" action={action} clearable />
95
+ </ExampleContainer>
74
96
  <ExampleContainer>
75
97
  <Title title="Without label" theme="light" level={4} />
76
98
  <DxcTextInput />
@@ -84,12 +106,21 @@ export const Chromatic = () => (
84
106
  <DxcTextInput label="Text input" clearable defaultValue="Text" helperText="Help message" optional />
85
107
  </ExampleContainer>
86
108
  <ExampleContainer>
87
- <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} />
88
119
  <DxcTextInput
89
120
  label="Text input"
90
121
  defaultValue="Text text text text text text text text text text"
91
122
  clearable
92
- action={actionLargeIcon}
123
+ action={actionLargeIconURL}
93
124
  />
94
125
  </ExampleContainer>
95
126
  <ExampleContainer>
@@ -149,86 +180,45 @@ export const Chromatic = () => (
149
180
  action={action}
150
181
  />
151
182
  </ExampleContainer>
152
- <BackgroundColorProvider color="#333333">
153
- <DarkContainer>
154
- <Title title="Dark" theme="dark" level={2} />
155
- <ExampleContainer pseudoState="pseudo-hover">
156
- <Title title="Hovered" theme="dark" level={4} />
157
- <DxcTextInput label="Text input" />
158
- </ExampleContainer>
159
- <ExampleContainer pseudoState="pseudo-focus-within">
160
- <Title title="Focused" theme="dark" level={4} />
161
- <DxcTextInput label="Text input" />
162
- </ExampleContainer>
163
- <ExampleContainer pseudoState="pseudo-hover">
164
- <Title title="Hovered action" theme="dark" level={4} />
165
- <DxcTextInput label="Text input" defaultValue="Text" clearable />
166
- </ExampleContainer>
167
- <ExampleContainer>
168
- <Title title="Helper text, placeholder, optional and action" theme="dark" level={4} />
169
- <DxcTextInput
170
- label="Text input"
171
- helperText="Help message"
172
- placeholder="Placeholder"
173
- clearable
174
- optional
175
- action={action}
176
- />
177
- </ExampleContainer>
178
- <ExampleContainer>
179
- <Title title="Invalid" theme="dark" level={4} />
180
- <DxcTextInput
181
- label="Error text input"
182
- helperText="Help message"
183
- error="Error message."
184
- defaultValue="Text"
185
- clearable
186
- action={action}
187
- />
188
- </ExampleContainer>
189
- <ExampleContainer pseudoState="pseudo-hover">
190
- <Title title="Invalid and hovered" theme="dark" level={4} />
191
- <DxcTextInput
192
- label="Error text input"
193
- helperText="Help message"
194
- placeholder="Placeholder"
195
- error="Error message."
196
- />
197
- </ExampleContainer>
198
- <ExampleContainer>
199
- <Title title="Prefix and suffix" theme="dark" level={4} />
200
- <DxcTextInput label="With prefix and suffix" prefix="+34" suffix="USD" />
201
- </ExampleContainer>
202
- <ExampleContainer>
203
- <Title title="Disabled and placeholder" theme="dark" level={4} />
204
- <DxcTextInput label="Disabled text input" disabled placeholder="Placeholder" />
205
- </ExampleContainer>
206
- <ExampleContainer>
207
- <Title title="Disabled, helper text, optional, value and action" theme="dark" level={4} />
208
- <DxcTextInput
209
- label="Disabled text input"
210
- helperText="Help message"
211
- disabled
212
- optional
213
- defaultValue="Text"
214
- action={action}
215
- />
216
- </ExampleContainer>
217
- <ExampleContainer>
218
- <Title title="Disabled with prefix and suffix" theme="dark" level={4} />
219
- <DxcTextInput
220
- label="Disabled text input"
221
- helperText="Help message"
222
- disabled
223
- optional
224
- prefix="+34"
225
- suffix="USD"
226
- defaultValue="Text"
227
- action={action}
228
- />
229
- </ExampleContainer>
230
- </DarkContainer>
231
- </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>
232
222
  <Title title="Margins" theme="light" level={2} />
233
223
  <ExampleContainer>
234
224
  <Title title="Xxsmall margin" theme="light" level={4} />
@@ -275,199 +265,201 @@ export const Chromatic = () => (
275
265
  <Title title="FillParent size" theme="light" level={4} />
276
266
  <DxcTextInput label="FillParent" size="fillParent" />
277
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>
278
328
  </>
279
329
  );
280
330
 
281
- const FocusedActionTextInput = () => (
282
- <ExampleContainer expanded>
283
- <Title title="Focused action" theme="light" level={4} />
284
- <DxcTextInput label="Text input" action={action} clearable />
285
- </ExampleContainer>
286
- );
287
-
288
- const ActivedActionTextInput = () => (
289
- <ExampleContainer pseudoState="pseudo-active" expanded>
290
- <Title title="Actived action" theme="light" level={4} />
291
- <DxcTextInput label="Text input" action={action} clearable />
292
- </ExampleContainer>
293
- );
294
-
295
- const ShowOptionsAutosuggest = () => (
296
- <ExampleContainer expanded>
297
- <Title title="Show options" theme="light" level={4} />
298
- <DxcTextInput label="Text input" suggestions={countries} clearable />
299
- </ExampleContainer>
300
- );
301
-
302
- const HoveredOptionAutosuggest = () => (
303
- <ExampleContainer expanded pseudoState="pseudo-hover">
304
- <Title title="Hovered option" theme="light" level={4} />
305
- <DxcTextInput label="Text input" suggestions={country} clearable />
306
- </ExampleContainer>
307
- );
308
-
309
- const FocusedOptionAutosuggest = () => (
310
- <ExampleContainer expanded>
311
- <Title title="Focused option" theme="light" level={4} />
312
- <DxcTextInput label="Text input" suggestions={country} clearable />
313
- </ExampleContainer>
314
- );
315
-
316
- const ActivedOptionAutosuggest = () => (
317
- <ExampleContainer expanded pseudoState="pseudo-active">
318
- <Title title="Actived option" theme="light" level={4} />
319
- <DxcTextInput label="Text input" suggestions={country} clearable />
320
- </ExampleContainer>
321
- );
322
-
323
- const FocusedActionTextInputOnDark = () => (
324
- <BackgroundColorProvider color="#333333">
325
- <DarkContainer>
326
- <ExampleContainer expanded>
327
- <Title title="Focused action" theme="dark" level={4} />
328
- <DxcTextInput label="Text input" action={action} clearable />
329
- </ExampleContainer>
330
- </DarkContainer>
331
- </BackgroundColorProvider>
332
- );
333
-
334
- const ActivedActionTextInputOnDark = () => (
335
- <BackgroundColorProvider color="#333333">
336
- <DarkContainer>
337
- <ExampleContainer pseudoState="pseudo-active" expanded>
338
- <Title title="Actived action" theme="dark" level={4} />
339
- <DxcTextInput label="Text input" action={action} clearable />
340
- </ExampleContainer>
341
- </DarkContainer>
342
- </BackgroundColorProvider>
343
- );
344
-
345
- const ShowOptionsAutosuggestOnDark = () => (
346
- <BackgroundColorProvider color="#333333">
347
- <DarkContainer>
348
- <ExampleContainer expanded>
349
- <Title title="Show options" theme="dark" level={4} />
350
- <DxcTextInput label="Text input" suggestions={countries} clearable />
351
- </ExampleContainer>
352
- </DarkContainer>
353
- </BackgroundColorProvider>
354
- );
331
+ const AutosuggestListbox = () => {
332
+ const colorsTheme: any = useTheme();
355
333
 
356
- const HoveredActionAutosuggestOnDark = () => (
357
- <BackgroundColorProvider color="#333333">
358
- <DarkContainer>
359
- <ExampleContainer expanded pseudoState="pseudo-hover">
360
- <Title title="Hovered option" theme="dark" level={4} />
361
- <DxcTextInput label="Text input" suggestions={country} clearable />
334
+ return (
335
+ <ThemeProvider theme={colorsTheme.textInput}>
336
+ <ExampleContainer>
337
+ <Title title="Autosuggest listbox" theme="light" level={2} />
338
+ <ExampleContainer>
339
+ <Title
340
+ title="List dialog uses a Radix Popover to appear over elements with a certain z-index"
341
+ theme="light"
342
+ level={3}
343
+ />
344
+ <div
345
+ style={{
346
+ display: "flex",
347
+ flexDirection: "column",
348
+ gap: "20px",
349
+ height: "150px",
350
+ width: "500px",
351
+ marginBottom: "250px",
352
+ padding: "20px",
353
+ border: "1px solid black",
354
+ borderRadius: "4px",
355
+ overflow: "auto",
356
+ zIndex: "1300",
357
+ position: "relative",
358
+ }}
359
+ >
360
+ <DxcTextInput
361
+ label="Label"
362
+ suggestions={countries}
363
+ optional
364
+ placeholder="Choose an option"
365
+ size="fillParent"
366
+ />
367
+ <button style={{ zIndex: "1", width: "100px" }}>Submit</button>
368
+ </div>
369
+ </ExampleContainer>
370
+ <Title title="Listbox suggestion states" theme="light" level={3} />
371
+ <ExampleContainer pseudoState="pseudo-hover">
372
+ <Title title="Hovered suggestion" theme="light" level={4} />
373
+ <Suggestions
374
+ id="x"
375
+ value=""
376
+ suggestions={country}
377
+ visualFocusIndex={-1}
378
+ highlightedSuggestions={false}
379
+ searchHasErrors={false}
380
+ isSearching={false}
381
+ suggestionOnClick={() => {}}
382
+ styles={{ width: 350 }}
383
+ />
384
+ </ExampleContainer>
385
+ <ExampleContainer pseudoState="pseudo-active">
386
+ <Title title="Active suggestion" theme="light" level={4} />
387
+ <Suggestions
388
+ id="x"
389
+ value=""
390
+ suggestions={country}
391
+ visualFocusIndex={-1}
392
+ highlightedSuggestions={false}
393
+ searchHasErrors={false}
394
+ isSearching={false}
395
+ suggestionOnClick={(suggestion) => {}}
396
+ styles={{ width: 350 }}
397
+ />
398
+ </ExampleContainer>
399
+ <ExampleContainer>
400
+ <Title title="Focused suggestion" theme="light" level={4} />
401
+ <Suggestions
402
+ id="x"
403
+ value=""
404
+ suggestions={country}
405
+ visualFocusIndex={0}
406
+ highlightedSuggestions={false}
407
+ searchHasErrors={false}
408
+ isSearching={false}
409
+ suggestionOnClick={(suggestion) => {}}
410
+ styles={{ width: 350 }}
411
+ />
412
+ </ExampleContainer>
413
+ <ExampleContainer>
414
+ <Title title="Highlighted suggestion" theme="light" level={4} />
415
+ <Suggestions
416
+ id="x"
417
+ value="Afgh"
418
+ suggestions={country}
419
+ visualFocusIndex={-1}
420
+ highlightedSuggestions={true}
421
+ searchHasErrors={false}
422
+ isSearching={false}
423
+ suggestionOnClick={(suggestion) => {}}
424
+ styles={{ width: 350 }}
425
+ />
426
+ </ExampleContainer>
362
427
  </ExampleContainer>
363
- </DarkContainer>
364
- </BackgroundColorProvider>
365
- );
366
-
367
- const FocusedOptionAutosuggestOnDark = () => (
368
- <BackgroundColorProvider color="#333333">
369
- <DarkContainer>
370
- <ExampleContainer expanded>
371
- <Title title="Focused option" theme="dark" level={4} />
372
- <DxcTextInput label="Text input" suggestions={country} clearable />
428
+ <ExampleContainer>
429
+ <Title title="Autosuggest Error" theme="light" level={3} />
430
+ <Suggestions
431
+ id="x"
432
+ value=""
433
+ suggestions={country}
434
+ visualFocusIndex={-1}
435
+ highlightedSuggestions={false}
436
+ searchHasErrors={true}
437
+ isSearching={false}
438
+ suggestionOnClick={(suggestion) => {}}
439
+ styles={{ width: 350 }}
440
+ />
373
441
  </ExampleContainer>
374
- </DarkContainer>
375
- </BackgroundColorProvider>
376
- );
377
-
378
- const ActivedOptionAutosuggestOnDark = () => (
379
- <BackgroundColorProvider color="#333333">
380
- <DarkContainer>
381
- <ExampleContainer expanded pseudoState="pseudo-active">
382
- <Title title="Actived option" theme="dark" level={4} />
383
- <DxcTextInput label="Text input" suggestions={country} clearable />
442
+ <ExampleContainer>
443
+ <Title title="Autosuggest Searching message" theme="light" level={3} />
444
+ <Suggestions
445
+ id="x"
446
+ value=""
447
+ suggestions={country}
448
+ visualFocusIndex={-1}
449
+ highlightedSuggestions={false}
450
+ searchHasErrors={false}
451
+ isSearching={true}
452
+ suggestionOnClick={(suggestion) => {}}
453
+ styles={{ width: 350 }}
454
+ />
384
455
  </ExampleContainer>
385
- </DarkContainer>
386
- </BackgroundColorProvider>
387
- );
388
-
389
- export const FocusedAction = FocusedActionTextInput.bind({});
390
- FocusedAction.play = async ({ canvasElement }) => {
391
- const canvas = within(canvasElement);
392
- const action = canvas.getByRole("button");
393
- await action.focus();
394
- };
395
-
396
- export const ActivedAction = ActivedActionTextInput.bind({});
397
- ActivedAction.play = async ({ canvasElement }) => {
398
- const canvas = within(canvasElement);
399
- const action = canvas.getByRole("button");
400
- await userEvent.click(action);
401
- };
402
-
403
- export const ShowOptions = ShowOptionsAutosuggest.bind({});
404
- ShowOptions.play = async ({ canvasElement }) => {
405
- const canvas = within(canvasElement);
406
- const autosuggest = canvas.getByRole("combobox");
407
- await userEvent.click(autosuggest);
408
- };
409
-
410
- export const HoveredOption = HoveredOptionAutosuggest.bind({});
411
- HoveredOption.play = async ({ canvasElement }) => {
412
- const canvas = within(canvasElement);
413
- const autosuggest = canvas.getByRole("combobox");
414
- await userEvent.click(autosuggest);
415
- };
416
-
417
- export const FocusedOption = FocusedOptionAutosuggest.bind({});
418
- FocusedOption.play = async ({ canvasElement }) => {
419
- const canvas = within(canvasElement);
420
- const autosuggest = canvas.getByRole("combobox");
421
- await userEvent.click(autosuggest);
422
- fireEvent.keyDown(autosuggest, { key: "ArrowDown", code: "ArrowDown", keyCode: 40, charCode: 40 });
423
- };
424
-
425
- export const ActivedOption = ActivedOptionAutosuggest.bind({});
426
- ActivedOption.play = async ({ canvasElement }) => {
427
- const canvas = within(canvasElement);
428
- const autosuggest = canvas.getByRole("combobox");
429
- await userEvent.click(autosuggest);
430
- };
431
-
432
- export const FocusedActionOnDark = FocusedActionTextInputOnDark.bind({});
433
- FocusedActionOnDark.play = async ({ canvasElement }) => {
434
- const canvas = within(canvasElement);
435
- const action = canvas.getByRole("button");
436
- await action.focus();
437
- };
438
-
439
- export const ActivedActionOnDark = ActivedActionTextInputOnDark.bind({});
440
- ActivedActionOnDark.play = async ({ canvasElement }) => {
441
- const canvas = within(canvasElement);
442
- const action = canvas.getByRole("button");
443
- await userEvent.click(action);
444
- };
445
-
446
- export const ShowOptionsOnDark = ShowOptionsAutosuggestOnDark.bind({});
447
- ShowOptionsOnDark.play = async ({ canvasElement }) => {
448
- const canvas = within(canvasElement);
449
- const autosuggest = canvas.getByRole("combobox");
450
- await userEvent.click(autosuggest);
451
- };
452
-
453
- export const HoveredActionOnDark = HoveredActionAutosuggestOnDark.bind({});
454
- HoveredActionOnDark.play = async ({ canvasElement }) => {
455
- const canvas = within(canvasElement);
456
- const autosuggest = canvas.getByRole("combobox");
457
- await userEvent.click(autosuggest);
458
- };
459
-
460
- export const FocusedOptionOnDark = FocusedOptionAutosuggestOnDark.bind({});
461
- FocusedOptionOnDark.play = async ({ canvasElement }) => {
462
- const canvas = within(canvasElement);
463
- const autosuggest = canvas.getByRole("combobox");
464
- await userEvent.click(autosuggest);
465
- fireEvent.keyDown(autosuggest, { key: "ArrowDown", code: "ArrowDown", keyCode: 40, charCode: 40 });
456
+ </ThemeProvider>
457
+ );
466
458
  };
467
459
 
468
- export const ActivedOptionOnDark = ActivedOptionAutosuggestOnDark.bind({});
469
- ActivedOptionOnDark.play = async ({ canvasElement }) => {
460
+ export const AutosuggestListboxStates = AutosuggestListbox.bind({});
461
+ AutosuggestListboxStates.play = async ({ canvasElement }) => {
470
462
  const canvas = within(canvasElement);
471
- const autosuggest = canvas.getByRole("combobox");
472
- await userEvent.click(autosuggest);
463
+ const select = canvas.getByRole("combobox");
464
+ await userEvent.click(select);
473
465
  };