@dxc-technology/halstack-react 0.0.0-c908d78 → 0.0.0-c9c1158

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 (355) hide show
  1. package/BackgroundColorContext.d.ts +10 -0
  2. package/BackgroundColorContext.js +7 -22
  3. package/HalstackContext.d.ts +1353 -0
  4. package/HalstackContext.js +310 -0
  5. package/README.md +47 -0
  6. package/accordion/Accordion.d.ts +1 -1
  7. package/accordion/Accordion.js +119 -192
  8. package/accordion/Accordion.stories.tsx +283 -0
  9. package/accordion/Accordion.test.js +56 -0
  10. package/accordion/types.d.ts +12 -23
  11. package/accordion-group/AccordionGroup.d.ts +5 -4
  12. package/accordion-group/AccordionGroup.js +39 -108
  13. package/accordion-group/AccordionGroup.stories.tsx +252 -0
  14. package/accordion-group/AccordionGroup.test.js +98 -0
  15. package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
  16. package/accordion-group/AccordionGroupAccordion.js +31 -0
  17. package/accordion-group/types.d.ts +18 -23
  18. package/alert/Alert.js +24 -57
  19. package/alert/Alert.stories.tsx +198 -0
  20. package/alert/Alert.test.js +75 -0
  21. package/alert/types.d.ts +6 -6
  22. package/badge/Badge.d.ts +4 -0
  23. package/badge/Badge.js +9 -20
  24. package/badge/types.d.ts +5 -0
  25. package/bleed/Bleed.d.ts +3 -0
  26. package/bleed/Bleed.js +43 -0
  27. package/bleed/Bleed.stories.tsx +342 -0
  28. package/bleed/types.d.ts +37 -0
  29. package/bleed/types.js +5 -0
  30. package/box/Box.d.ts +1 -1
  31. package/box/Box.js +32 -83
  32. package/box/Box.stories.tsx +38 -51
  33. package/box/Box.test.js +13 -0
  34. package/box/types.d.ts +3 -18
  35. package/bulleted-list/BulletedList.d.ts +7 -0
  36. package/bulleted-list/BulletedList.js +99 -0
  37. package/bulleted-list/BulletedList.stories.tsx +116 -0
  38. package/bulleted-list/types.d.ts +38 -0
  39. package/bulleted-list/types.js +5 -0
  40. package/button/Button.d.ts +1 -1
  41. package/button/Button.js +64 -120
  42. package/button/Button.stories.tsx +328 -277
  43. package/button/Button.test.js +36 -0
  44. package/button/types.d.ts +14 -14
  45. package/card/Card.d.ts +1 -1
  46. package/card/Card.js +59 -104
  47. package/card/Card.stories.tsx +171 -0
  48. package/card/Card.test.js +39 -0
  49. package/card/types.d.ts +8 -15
  50. package/checkbox/Checkbox.d.ts +2 -2
  51. package/checkbox/Checkbox.js +147 -180
  52. package/checkbox/Checkbox.stories.tsx +166 -136
  53. package/checkbox/Checkbox.test.js +199 -0
  54. package/checkbox/types.d.ts +20 -8
  55. package/chip/Chip.d.ts +4 -0
  56. package/chip/Chip.js +48 -148
  57. package/chip/Chip.stories.tsx +214 -0
  58. package/chip/Chip.test.js +41 -0
  59. package/chip/types.d.ts +45 -0
  60. package/chip/types.js +5 -0
  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 +1499 -0
  67. package/common/variables.js +1119 -1317
  68. package/container/Container.d.ts +4 -0
  69. package/container/Container.js +198 -0
  70. package/container/Container.stories.tsx +229 -0
  71. package/container/types.d.ts +74 -0
  72. package/container/types.js +5 -0
  73. package/date-input/Calendar.d.ts +4 -0
  74. package/date-input/Calendar.js +214 -0
  75. package/date-input/DateInput.js +175 -313
  76. package/date-input/DateInput.stories.tsx +285 -0
  77. package/date-input/DateInput.test.js +808 -0
  78. package/date-input/DatePicker.d.ts +4 -0
  79. package/date-input/DatePicker.js +115 -0
  80. package/date-input/Icons.d.ts +6 -0
  81. package/date-input/Icons.js +58 -0
  82. package/date-input/YearPicker.d.ts +4 -0
  83. package/date-input/YearPicker.js +100 -0
  84. package/date-input/types.d.ts +86 -22
  85. package/dialog/Dialog.d.ts +1 -1
  86. package/dialog/Dialog.js +72 -130
  87. package/dialog/Dialog.stories.tsx +195 -0
  88. package/dialog/Dialog.test.js +307 -0
  89. package/dialog/types.d.ts +18 -25
  90. package/dropdown/Dropdown.d.ts +1 -1
  91. package/dropdown/Dropdown.js +245 -328
  92. package/dropdown/Dropdown.stories.tsx +438 -0
  93. package/dropdown/Dropdown.test.js +599 -0
  94. package/dropdown/DropdownMenu.d.ts +4 -0
  95. package/dropdown/DropdownMenu.js +63 -0
  96. package/dropdown/DropdownMenuItem.d.ts +4 -0
  97. package/dropdown/DropdownMenuItem.js +67 -0
  98. package/dropdown/types.d.ts +37 -28
  99. package/file-input/FileInput.d.ts +4 -0
  100. package/file-input/FileInput.js +274 -327
  101. package/file-input/FileInput.stories.tsx +618 -0
  102. package/file-input/FileInput.test.js +459 -0
  103. package/file-input/FileItem.d.ts +4 -0
  104. package/file-input/FileItem.js +54 -112
  105. package/file-input/types.d.ts +129 -0
  106. package/file-input/types.js +5 -0
  107. package/flex/Flex.d.ts +4 -0
  108. package/flex/Flex.js +57 -0
  109. package/flex/Flex.stories.tsx +112 -0
  110. package/flex/types.d.ts +97 -0
  111. package/flex/types.js +5 -0
  112. package/footer/Footer.d.ts +1 -1
  113. package/footer/Footer.js +61 -192
  114. package/footer/{Footer.stories.jsx → Footer.stories.tsx} +38 -37
  115. package/footer/Footer.test.js +85 -0
  116. package/footer/Icons.d.ts +2 -0
  117. package/footer/Icons.js +4 -9
  118. package/footer/types.d.ts +36 -33
  119. package/grid/Grid.d.ts +7 -0
  120. package/grid/Grid.js +76 -0
  121. package/grid/Grid.stories.tsx +219 -0
  122. package/grid/types.d.ts +115 -0
  123. package/grid/types.js +5 -0
  124. package/header/Header.d.ts +4 -3
  125. package/header/Header.js +106 -199
  126. package/header/Header.stories.tsx +251 -0
  127. package/header/Header.test.js +66 -0
  128. package/header/Icons.d.ts +2 -0
  129. package/header/Icons.js +4 -9
  130. package/header/types.d.ts +4 -17
  131. package/heading/Heading.d.ts +4 -0
  132. package/heading/Heading.js +16 -55
  133. package/heading/Heading.stories.tsx +54 -0
  134. package/heading/Heading.test.js +169 -0
  135. package/heading/types.d.ts +33 -0
  136. package/heading/types.js +5 -0
  137. package/image/Image.d.ts +4 -0
  138. package/image/Image.js +70 -0
  139. package/image/Image.stories.tsx +127 -0
  140. package/image/types.d.ts +72 -0
  141. package/image/types.js +5 -0
  142. package/inset/Inset.d.ts +3 -0
  143. package/inset/Inset.js +43 -0
  144. package/inset/Inset.stories.tsx +230 -0
  145. package/inset/types.d.ts +37 -0
  146. package/inset/types.js +5 -0
  147. package/layout/ApplicationLayout.d.ts +20 -0
  148. package/layout/ApplicationLayout.js +83 -184
  149. package/layout/ApplicationLayout.stories.tsx +162 -0
  150. package/layout/Icons.d.ts +8 -0
  151. package/layout/Icons.js +51 -48
  152. package/layout/SidenavContext.d.ts +5 -0
  153. package/layout/SidenavContext.js +13 -0
  154. package/layout/types.d.ts +41 -0
  155. package/layout/types.js +5 -0
  156. package/link/Link.d.ts +3 -2
  157. package/link/Link.js +65 -111
  158. package/link/Link.stories.tsx +253 -0
  159. package/link/Link.test.js +63 -0
  160. package/link/types.d.ts +15 -35
  161. package/main.d.ts +16 -13
  162. package/main.js +71 -91
  163. package/nav-tabs/NavTabs.d.ts +8 -0
  164. package/nav-tabs/NavTabs.js +90 -0
  165. package/nav-tabs/NavTabs.stories.tsx +274 -0
  166. package/nav-tabs/NavTabs.test.js +75 -0
  167. package/nav-tabs/Tab.d.ts +4 -0
  168. package/nav-tabs/Tab.js +117 -0
  169. package/nav-tabs/types.d.ts +52 -0
  170. package/nav-tabs/types.js +5 -0
  171. package/number-input/NumberInput.d.ts +11 -0
  172. package/number-input/NumberInput.js +28 -89
  173. package/number-input/{NumberInput.stories.jsx → NumberInput.stories.tsx} +44 -28
  174. package/number-input/NumberInput.test.js +830 -0
  175. package/number-input/types.d.ts +130 -0
  176. package/number-input/types.js +5 -0
  177. package/package.json +46 -45
  178. package/paginator/Icons.d.ts +5 -0
  179. package/paginator/Icons.js +21 -47
  180. package/paginator/Paginator.js +35 -95
  181. package/paginator/Paginator.stories.tsx +24 -0
  182. package/paginator/Paginator.test.js +335 -0
  183. package/paginator/types.d.ts +3 -3
  184. package/paragraph/Paragraph.d.ts +5 -0
  185. package/paragraph/Paragraph.js +27 -0
  186. package/paragraph/Paragraph.stories.tsx +27 -0
  187. package/password-input/Icons.d.ts +6 -0
  188. package/password-input/Icons.js +35 -0
  189. package/password-input/PasswordInput.js +60 -125
  190. package/password-input/PasswordInput.stories.tsx +3 -34
  191. package/password-input/PasswordInput.test.js +198 -0
  192. package/password-input/types.d.ts +35 -24
  193. package/progress-bar/ProgressBar.js +69 -89
  194. package/progress-bar/ProgressBar.stories.tsx +93 -0
  195. package/progress-bar/ProgressBar.test.js +93 -0
  196. package/progress-bar/types.d.ts +3 -3
  197. package/quick-nav/QuickNav.d.ts +4 -0
  198. package/quick-nav/QuickNav.js +94 -0
  199. package/quick-nav/QuickNav.stories.tsx +356 -0
  200. package/quick-nav/types.d.ts +21 -0
  201. package/quick-nav/types.js +5 -0
  202. package/radio-group/Radio.d.ts +4 -0
  203. package/radio-group/Radio.js +124 -0
  204. package/radio-group/RadioGroup.d.ts +4 -0
  205. package/radio-group/RadioGroup.js +235 -0
  206. package/radio-group/RadioGroup.stories.tsx +214 -0
  207. package/radio-group/RadioGroup.test.js +756 -0
  208. package/radio-group/types.d.ts +114 -0
  209. package/radio-group/types.js +5 -0
  210. package/resultset-table/Icons.d.ts +7 -0
  211. package/resultset-table/Icons.js +47 -0
  212. package/resultset-table/ResultsetTable.d.ts +4 -0
  213. package/resultset-table/ResultsetTable.js +159 -0
  214. package/resultset-table/ResultsetTable.stories.tsx +300 -0
  215. package/resultset-table/ResultsetTable.test.js +305 -0
  216. package/resultset-table/types.d.ts +67 -0
  217. package/resultset-table/types.js +5 -0
  218. package/select/Icons.d.ts +10 -0
  219. package/select/Icons.js +89 -0
  220. package/select/Listbox.d.ts +4 -0
  221. package/select/Listbox.js +143 -0
  222. package/select/Option.d.ts +4 -0
  223. package/select/Option.js +80 -0
  224. package/select/Select.d.ts +4 -0
  225. package/select/Select.js +221 -504
  226. package/select/Select.stories.tsx +971 -0
  227. package/select/Select.test.js +2334 -0
  228. package/select/types.d.ts +209 -0
  229. package/select/types.js +5 -0
  230. package/sidenav/Icons.d.ts +7 -0
  231. package/sidenav/Icons.js +47 -0
  232. package/sidenav/Sidenav.d.ts +10 -0
  233. package/sidenav/Sidenav.js +135 -81
  234. package/sidenav/Sidenav.stories.tsx +282 -0
  235. package/sidenav/Sidenav.test.js +37 -0
  236. package/sidenav/types.d.ts +76 -0
  237. package/sidenav/types.js +5 -0
  238. package/slider/Slider.d.ts +2 -2
  239. package/slider/Slider.js +168 -180
  240. package/slider/Slider.test.js +254 -0
  241. package/slider/types.d.ts +13 -10
  242. package/spinner/Spinner.js +30 -66
  243. package/spinner/{Spinner.stories.jsx → Spinner.stories.tsx} +53 -26
  244. package/spinner/Spinner.test.js +55 -0
  245. package/spinner/types.d.ts +3 -3
  246. package/switch/Switch.d.ts +2 -2
  247. package/switch/Switch.js +154 -114
  248. package/switch/Switch.stories.tsx +45 -68
  249. package/switch/Switch.test.js +180 -0
  250. package/switch/types.d.ts +13 -5
  251. package/table/Table.js +10 -29
  252. package/table/{Table.stories.jsx → Table.stories.tsx} +81 -1
  253. package/table/Table.test.js +21 -0
  254. package/table/types.d.ts +8 -8
  255. package/tabs/Tab.d.ts +4 -0
  256. package/tabs/Tab.js +113 -0
  257. package/tabs/Tabs.d.ts +1 -1
  258. package/tabs/Tabs.js +319 -145
  259. package/tabs/Tabs.stories.tsx +226 -0
  260. package/tabs/Tabs.test.js +294 -0
  261. package/tabs/types.d.ts +48 -27
  262. package/tag/Tag.d.ts +1 -1
  263. package/tag/Tag.js +44 -86
  264. package/tag/Tag.stories.tsx +38 -28
  265. package/tag/Tag.test.js +49 -0
  266. package/tag/types.d.ts +25 -16
  267. package/text-input/Icons.d.ts +8 -0
  268. package/text-input/Icons.js +56 -0
  269. package/text-input/Suggestion.d.ts +4 -0
  270. package/text-input/Suggestion.js +67 -0
  271. package/text-input/Suggestions.d.ts +4 -0
  272. package/text-input/Suggestions.js +89 -0
  273. package/text-input/TextInput.d.ts +4 -0
  274. package/text-input/TextInput.js +310 -543
  275. package/text-input/TextInput.stories.tsx +465 -0
  276. package/text-input/TextInput.test.js +1739 -0
  277. package/text-input/types.d.ts +205 -0
  278. package/text-input/types.js +5 -0
  279. package/textarea/Textarea.d.ts +4 -0
  280. package/textarea/Textarea.js +94 -171
  281. package/textarea/Textarea.stories.tsx +175 -0
  282. package/textarea/Textarea.test.js +406 -0
  283. package/textarea/types.d.ts +141 -0
  284. package/textarea/types.js +5 -0
  285. package/toggle-group/ToggleGroup.d.ts +4 -0
  286. package/toggle-group/ToggleGroup.js +103 -142
  287. package/toggle-group/ToggleGroup.stories.tsx +218 -0
  288. package/toggle-group/ToggleGroup.test.js +137 -0
  289. package/toggle-group/types.d.ts +114 -0
  290. package/toggle-group/types.js +5 -0
  291. package/typography/Typography.d.ts +4 -0
  292. package/typography/Typography.js +23 -0
  293. package/typography/Typography.stories.tsx +198 -0
  294. package/typography/types.d.ts +18 -0
  295. package/typography/types.js +5 -0
  296. package/useTheme.d.ts +1252 -0
  297. package/useTheme.js +4 -11
  298. package/useTranslatedLabels.d.ts +85 -0
  299. package/useTranslatedLabels.js +14 -0
  300. package/utils/BaseTypography.d.ts +21 -0
  301. package/utils/BaseTypography.js +94 -0
  302. package/utils/FocusLock.d.ts +13 -0
  303. package/utils/FocusLock.js +114 -0
  304. package/wizard/Wizard.d.ts +4 -0
  305. package/wizard/Wizard.js +130 -151
  306. package/wizard/Wizard.stories.tsx +253 -0
  307. package/wizard/Wizard.test.js +114 -0
  308. package/wizard/types.d.ts +64 -0
  309. package/wizard/types.js +5 -0
  310. package/ThemeContext.js +0 -246
  311. package/V3Select/V3Select.js +0 -455
  312. package/V3Select/index.d.ts +0 -27
  313. package/V3Textarea/V3Textarea.js +0 -260
  314. package/V3Textarea/index.d.ts +0 -27
  315. package/chip/index.d.ts +0 -22
  316. package/common/RequiredComponent.js +0 -32
  317. package/date/Date.js +0 -373
  318. package/date/index.d.ts +0 -27
  319. package/file-input/index.d.ts +0 -81
  320. package/heading/index.d.ts +0 -17
  321. package/input-text/Icons.js +0 -22
  322. package/input-text/InputText.js +0 -611
  323. package/input-text/index.d.ts +0 -36
  324. package/number-input/NumberInputContext.js +0 -16
  325. package/number-input/index.d.ts +0 -113
  326. package/progress-bar/ProgressBar.stories.jsx +0 -58
  327. package/radio/Radio.d.ts +0 -4
  328. package/radio/Radio.js +0 -174
  329. package/radio/Radio.stories.tsx +0 -192
  330. package/radio/types.d.ts +0 -54
  331. package/resultsetTable/ResultsetTable.js +0 -274
  332. package/resultsetTable/index.d.ts +0 -19
  333. package/select/index.d.ts +0 -131
  334. package/sidenav/index.d.ts +0 -13
  335. package/text-input/index.d.ts +0 -135
  336. package/textarea/Textarea.stories.jsx +0 -135
  337. package/textarea/index.d.ts +0 -117
  338. package/toggle/Toggle.js +0 -186
  339. package/toggle/index.d.ts +0 -21
  340. package/toggle-group/index.d.ts +0 -21
  341. package/upload/Upload.js +0 -201
  342. package/upload/buttons-upload/ButtonsUpload.js +0 -111
  343. package/upload/buttons-upload/Icons.js +0 -40
  344. package/upload/dragAndDropArea/DragAndDropArea.js +0 -225
  345. package/upload/dragAndDropArea/Icons.js +0 -39
  346. package/upload/file-upload/FileToUpload.js +0 -115
  347. package/upload/file-upload/Icons.js +0 -66
  348. package/upload/files-upload/FilesToUpload.js +0 -109
  349. package/upload/index.d.ts +0 -15
  350. package/upload/transaction/Icons.js +0 -160
  351. package/upload/transaction/Transaction.js +0 -104
  352. package/upload/transactions/Transactions.js +0 -94
  353. package/wizard/Icons.js +0 -65
  354. package/wizard/index.d.ts +0 -18
  355. /package/{radio → badge}/types.js +0 -0
@@ -0,0 +1,465 @@
1
+ import React from "react";
2
+ import { userEvent, within } from "@storybook/testing-library";
3
+ import Title from "../../.storybook/components/Title";
4
+ import ExampleContainer from "../../.storybook/components/ExampleContainer";
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";
10
+
11
+ export default {
12
+ title: "Text Input",
13
+ component: DxcTextInput,
14
+ };
15
+
16
+ const action = {
17
+ onClick: () => {},
18
+ icon: (
19
+ <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor">
20
+ <path d="M0 0h24v24H0V0z" fill="none" />
21
+ <path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z" />
22
+ </svg>
23
+ ),
24
+ };
25
+
26
+ const actionLargeIconSVG = {
27
+ onClick: () => {},
28
+ icon: (
29
+ <svg xmlns="http://www.w3.org/2000/svg" height="48px" viewBox="0 0 24 24" width="48px" fill="currentColor">
30
+ <path d="M0 0h24v24H0V0z" fill="none" />
31
+ <path d="M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm.5-13H11v6l5.25 3.15.75-1.23-4.5-2.67z" />
32
+ </svg>
33
+ ),
34
+ };
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
+
41
+ const country = ["Afghanistan"];
42
+ const countries = [
43
+ "Afghanistan",
44
+ "Albania",
45
+ "Algeria",
46
+ "Andorra",
47
+ "Angola",
48
+ "Antigua and Barbuda",
49
+ "Bahamas",
50
+ "Bahrain",
51
+ "Bangladesh",
52
+ "Barbados",
53
+ "Cabo Verde",
54
+ "Cambodia",
55
+ "Cameroon",
56
+ "Canada",
57
+ "Cayman Islands, The",
58
+ "Central African Republic",
59
+ "Chad",
60
+ "Democratic Republic of the Congo",
61
+ "Dominican Republic",
62
+ "Dominica",
63
+ "Denmark",
64
+ "Djibouti",
65
+ ];
66
+
67
+ const opinionatedTheme = {
68
+ textInput: {
69
+ fontColor: "#000000",
70
+ hoverBorderColor: "#a46ede",
71
+ },
72
+ };
73
+
74
+ export const Chromatic = () => (
75
+ <>
76
+ <ExampleContainer pseudoState="pseudo-hover">
77
+ <Title title="Hovered input" theme="light" level={4} />
78
+ <DxcTextInput label="Text input" />
79
+ </ExampleContainer>
80
+ <ExampleContainer pseudoState="pseudo-focus-within">
81
+ <Title title="Focused input" theme="light" level={4} />
82
+ <DxcTextInput label="Text input" />
83
+ </ExampleContainer>
84
+ <ExampleContainer pseudoState="pseudo-hover">
85
+ <Title title="Hovered action" theme="light" level={4} />
86
+ <DxcTextInput label="Text input" defaultValue="Text" clearable />
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>
96
+ <ExampleContainer>
97
+ <Title title="Without label" theme="light" level={4} />
98
+ <DxcTextInput />
99
+ </ExampleContainer>
100
+ <ExampleContainer>
101
+ <Title title="With label and placeholder" theme="light" level={4} />
102
+ <DxcTextInput label="Text input" placeholder="Placeholder" />
103
+ </ExampleContainer>
104
+ <ExampleContainer>
105
+ <Title title="Helper text, optional, and clearable" theme="light" level={4} />
106
+ <DxcTextInput label="Text input" clearable defaultValue="Text" helperText="Help message" optional />
107
+ </ExampleContainer>
108
+ <ExampleContainer>
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} />
119
+ <DxcTextInput
120
+ label="Text input"
121
+ defaultValue="Text text text text text text text text text text"
122
+ clearable
123
+ action={actionLargeIconURL}
124
+ />
125
+ </ExampleContainer>
126
+ <ExampleContainer>
127
+ <Title title="Prefix" theme="light" level={4} />
128
+ <DxcTextInput label="With prefix" prefix="+34" />
129
+ </ExampleContainer>
130
+ <ExampleContainer>
131
+ <Title title="Suffix and action" theme="light" level={4} />
132
+ <DxcTextInput label="With suffix" suffix="USD" action={action} />
133
+ </ExampleContainer>
134
+ <ExampleContainer>
135
+ <Title title="Invalid" theme="light" level={4} />
136
+ <DxcTextInput
137
+ label="Error text input"
138
+ helperText="Help message"
139
+ error="Error message."
140
+ defaultValue="Text"
141
+ clearable
142
+ optional
143
+ action={action}
144
+ />
145
+ </ExampleContainer>
146
+ <ExampleContainer pseudoState="pseudo-hover">
147
+ <Title title="Invalid and hovered" theme="light" level={4} />
148
+ <DxcTextInput
149
+ label="Error text input"
150
+ helperText="Help message"
151
+ placeholder="Placeholder"
152
+ error="Error message."
153
+ />
154
+ </ExampleContainer>
155
+ <ExampleContainer>
156
+ <Title title="Disabled and placeholder" theme="light" level={4} />
157
+ <DxcTextInput label="Disabled text input" disabled placeholder="Placeholder" />
158
+ </ExampleContainer>
159
+ <ExampleContainer>
160
+ <Title title="Disabled, helper text, optional, value and action" theme="light" level={4} />
161
+ <DxcTextInput
162
+ label="Disabled text input"
163
+ helperText="Help message"
164
+ disabled
165
+ optional
166
+ defaultValue="Text"
167
+ action={action}
168
+ />
169
+ </ExampleContainer>
170
+ <ExampleContainer>
171
+ <Title title="Disabled with prefix and suffix" theme="light" level={4} />
172
+ <DxcTextInput
173
+ label="Disabled text input"
174
+ helperText="Help message"
175
+ disabled
176
+ optional
177
+ prefix="+34"
178
+ suffix="USD"
179
+ defaultValue="Text"
180
+ action={action}
181
+ />
182
+ </ExampleContainer>
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>
222
+ <Title title="Margins" theme="light" level={2} />
223
+ <ExampleContainer>
224
+ <Title title="Xxsmall margin" theme="light" level={4} />
225
+ <DxcTextInput label="Xxsmall" margin="xxsmall" />
226
+ </ExampleContainer>
227
+ <ExampleContainer>
228
+ <Title title="Xsmall margin" theme="light" level={4} />
229
+ <DxcTextInput label="Xsmall" margin="xsmall" />
230
+ </ExampleContainer>
231
+ <ExampleContainer>
232
+ <Title title="Small margin" theme="light" level={4} />
233
+ <DxcTextInput label="Small" margin="small" />
234
+ </ExampleContainer>
235
+ <ExampleContainer>
236
+ <Title title="Medium margin" theme="light" level={4} />
237
+ <DxcTextInput label="Medium" margin="medium" />
238
+ </ExampleContainer>
239
+ <ExampleContainer>
240
+ <Title title="Large margin" theme="light" level={4} />
241
+ <DxcTextInput label="Large" margin="large" />
242
+ </ExampleContainer>
243
+ <ExampleContainer>
244
+ <Title title="Xlarge margin" theme="light" level={4} />
245
+ <DxcTextInput label="Xlarge" margin="xlarge" />
246
+ </ExampleContainer>
247
+ <ExampleContainer>
248
+ <Title title="Xxlarge margin" theme="light" level={4} />
249
+ <DxcTextInput label="Xxlarge" margin="xxlarge" />
250
+ </ExampleContainer>
251
+ <Title title="Sizes" theme="light" level={2} />
252
+ <ExampleContainer>
253
+ <Title title="Small size" theme="light" level={4} />
254
+ <DxcTextInput label="Small" size="small" />
255
+ </ExampleContainer>
256
+ <ExampleContainer>
257
+ <Title title="Medium size" theme="light" level={4} />
258
+ <DxcTextInput label="Medium" size="medium" />
259
+ </ExampleContainer>
260
+ <ExampleContainer>
261
+ <Title title="Large size" theme="light" level={4} />
262
+ <DxcTextInput label="Large" size="large" />
263
+ </ExampleContainer>
264
+ <ExampleContainer>
265
+ <Title title="FillParent size" theme="light" level={4} />
266
+ <DxcTextInput label="FillParent" size="fillParent" />
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>
328
+ </>
329
+ );
330
+
331
+ const AutosuggestListbox = () => {
332
+ const colorsTheme: any = useTheme();
333
+
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>
427
+ </ExampleContainer>
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
+ />
441
+ </ExampleContainer>
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
+ />
455
+ </ExampleContainer>
456
+ </ThemeProvider>
457
+ );
458
+ };
459
+
460
+ export const AutosuggestListboxStates = AutosuggestListbox.bind({});
461
+ AutosuggestListboxStates.play = async ({ canvasElement }) => {
462
+ const canvas = within(canvasElement);
463
+ const select = canvas.getByRole("combobox");
464
+ await userEvent.click(select);
465
+ };