@dxc-technology/halstack-react 0.0.0-73f82b7 → 0.0.0-74c93cf

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 (400) hide show
  1. package/BackgroundColorContext.d.ts +1 -0
  2. package/BackgroundColorContext.js +6 -26
  3. package/HalstackContext.d.ts +1249 -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 +105 -194
  8. package/accordion/Accordion.stories.tsx +252 -0
  9. package/accordion/Accordion.test.js +56 -0
  10. package/accordion/types.d.ts +12 -23
  11. package/accordion-group/AccordionGroup.d.ts +3 -3
  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/AccordionGroupContext.d.ts +3 -0
  18. package/accordion-group/AccordionGroupContext.js +8 -0
  19. package/accordion-group/types.d.ts +18 -23
  20. package/action-icon/ActionIcon.d.ts +4 -0
  21. package/action-icon/ActionIcon.js +48 -0
  22. package/action-icon/ActionIcon.stories.tsx +41 -0
  23. package/action-icon/ActionIcon.test.js +64 -0
  24. package/action-icon/types.d.ts +26 -0
  25. package/alert/Alert.js +24 -60
  26. package/alert/Alert.stories.tsx +28 -0
  27. package/alert/Alert.test.js +75 -0
  28. package/alert/types.d.ts +6 -6
  29. package/badge/Badge.d.ts +4 -0
  30. package/badge/Badge.js +141 -41
  31. package/badge/Badge.stories.tsx +210 -0
  32. package/badge/Badge.test.js +30 -0
  33. package/badge/types.d.ts +54 -0
  34. package/badge/types.js +5 -0
  35. package/bleed/Bleed.d.ts +3 -0
  36. package/bleed/Bleed.js +43 -0
  37. package/bleed/Bleed.stories.tsx +342 -0
  38. package/bleed/types.d.ts +37 -0
  39. package/bleed/types.js +5 -0
  40. package/box/Box.d.ts +1 -1
  41. package/box/Box.js +32 -86
  42. package/box/Box.stories.tsx +38 -51
  43. package/box/Box.test.js +13 -0
  44. package/box/types.d.ts +3 -18
  45. package/bulleted-list/BulletedList.d.ts +7 -0
  46. package/bulleted-list/BulletedList.js +89 -0
  47. package/bulleted-list/BulletedList.stories.tsx +115 -0
  48. package/bulleted-list/types.d.ts +38 -0
  49. package/bulleted-list/types.js +5 -0
  50. package/button/Button.d.ts +1 -1
  51. package/button/Button.js +65 -121
  52. package/button/Button.stories.tsx +156 -106
  53. package/button/Button.test.js +38 -0
  54. package/button/types.d.ts +14 -14
  55. package/card/Card.d.ts +1 -1
  56. package/card/Card.js +59 -104
  57. package/card/Card.stories.tsx +171 -0
  58. package/card/Card.test.js +39 -0
  59. package/card/types.d.ts +8 -15
  60. package/checkbox/Checkbox.d.ts +2 -2
  61. package/checkbox/Checkbox.js +145 -183
  62. package/checkbox/Checkbox.stories.tsx +166 -136
  63. package/checkbox/Checkbox.test.js +199 -0
  64. package/checkbox/types.d.ts +20 -8
  65. package/chip/Chip.d.ts +4 -0
  66. package/chip/Chip.js +48 -148
  67. package/chip/Chip.stories.tsx +214 -0
  68. package/chip/Chip.test.js +41 -0
  69. package/chip/types.d.ts +45 -0
  70. package/chip/types.js +5 -0
  71. package/common/coreTokens.d.ts +237 -0
  72. package/common/coreTokens.js +184 -0
  73. package/common/utils.d.ts +1 -0
  74. package/common/utils.js +6 -12
  75. package/common/variables.d.ts +1395 -0
  76. package/common/variables.js +1034 -1344
  77. package/container/Container.d.ts +4 -0
  78. package/container/Container.js +194 -0
  79. package/container/Container.stories.tsx +214 -0
  80. package/container/types.d.ts +74 -0
  81. package/container/types.js +5 -0
  82. package/contextual-menu/ContextualMenu.d.ts +7 -0
  83. package/contextual-menu/ContextualMenu.js +71 -0
  84. package/contextual-menu/ContextualMenu.stories.tsx +182 -0
  85. package/contextual-menu/ContextualMenu.test.js +71 -0
  86. package/contextual-menu/MenuItemAction.d.ts +4 -0
  87. package/contextual-menu/MenuItemAction.js +46 -0
  88. package/contextual-menu/types.d.ts +22 -0
  89. package/contextual-menu/types.js +5 -0
  90. package/date-input/Calendar.d.ts +4 -0
  91. package/date-input/Calendar.js +214 -0
  92. package/date-input/DateInput.js +175 -313
  93. package/date-input/DateInput.stories.tsx +203 -56
  94. package/date-input/DateInput.test.js +808 -0
  95. package/date-input/DatePicker.d.ts +4 -0
  96. package/date-input/DatePicker.js +115 -0
  97. package/date-input/Icons.d.ts +6 -0
  98. package/date-input/Icons.js +58 -0
  99. package/date-input/YearPicker.d.ts +4 -0
  100. package/date-input/YearPicker.js +100 -0
  101. package/date-input/types.d.ts +86 -22
  102. package/dialog/Dialog.d.ts +1 -1
  103. package/dialog/Dialog.js +69 -130
  104. package/dialog/Dialog.stories.tsx +365 -0
  105. package/dialog/Dialog.test.js +307 -0
  106. package/dialog/types.d.ts +18 -25
  107. package/divider/Divider.d.ts +4 -0
  108. package/divider/Divider.js +36 -0
  109. package/divider/Divider.stories.tsx +223 -0
  110. package/divider/Divider.test.js +38 -0
  111. package/divider/types.d.ts +21 -0
  112. package/divider/types.js +5 -0
  113. package/dropdown/Dropdown.d.ts +1 -1
  114. package/dropdown/Dropdown.js +232 -330
  115. package/dropdown/Dropdown.stories.tsx +427 -0
  116. package/dropdown/Dropdown.test.js +599 -0
  117. package/dropdown/DropdownMenu.d.ts +4 -0
  118. package/dropdown/DropdownMenu.js +63 -0
  119. package/dropdown/DropdownMenuItem.d.ts +4 -0
  120. package/dropdown/DropdownMenuItem.js +70 -0
  121. package/dropdown/types.d.ts +38 -31
  122. package/file-input/FileInput.d.ts +4 -0
  123. package/file-input/FileInput.js +274 -327
  124. package/file-input/FileInput.stories.tsx +618 -0
  125. package/file-input/FileInput.test.js +459 -0
  126. package/file-input/FileItem.d.ts +4 -0
  127. package/file-input/FileItem.js +54 -112
  128. package/file-input/types.d.ts +129 -0
  129. package/file-input/types.js +5 -0
  130. package/flex/Flex.d.ts +4 -0
  131. package/flex/Flex.js +57 -0
  132. package/flex/Flex.stories.tsx +112 -0
  133. package/flex/types.d.ts +97 -0
  134. package/flex/types.js +5 -0
  135. package/footer/Footer.d.ts +1 -1
  136. package/footer/Footer.js +73 -201
  137. package/footer/{Footer.stories.jsx → Footer.stories.tsx} +57 -37
  138. package/footer/Footer.test.js +85 -0
  139. package/footer/Icons.d.ts +3 -0
  140. package/footer/Icons.js +67 -8
  141. package/footer/types.d.ts +41 -38
  142. package/grid/Grid.d.ts +7 -0
  143. package/grid/Grid.js +76 -0
  144. package/grid/Grid.stories.tsx +219 -0
  145. package/grid/types.d.ts +115 -0
  146. package/grid/types.js +5 -0
  147. package/header/Header.d.ts +4 -3
  148. package/header/Header.js +100 -204
  149. package/header/Header.stories.tsx +251 -0
  150. package/header/Header.test.js +66 -0
  151. package/header/Icons.d.ts +2 -0
  152. package/header/Icons.js +4 -9
  153. package/header/types.d.ts +6 -18
  154. package/heading/Heading.d.ts +4 -0
  155. package/heading/Heading.js +16 -55
  156. package/heading/Heading.stories.tsx +54 -0
  157. package/heading/Heading.test.js +169 -0
  158. package/heading/types.d.ts +33 -0
  159. package/heading/types.js +5 -0
  160. package/icon/Icon.d.ts +4 -0
  161. package/icon/Icon.js +33 -0
  162. package/icon/Icon.stories.tsx +28 -0
  163. package/icon/types.d.ts +4 -0
  164. package/icon/types.js +5 -0
  165. package/image/Image.d.ts +4 -0
  166. package/image/Image.js +70 -0
  167. package/image/Image.stories.tsx +129 -0
  168. package/image/types.d.ts +72 -0
  169. package/image/types.js +5 -0
  170. package/inset/Inset.d.ts +3 -0
  171. package/inset/Inset.js +43 -0
  172. package/inset/Inset.stories.tsx +230 -0
  173. package/inset/types.d.ts +37 -0
  174. package/inset/types.js +5 -0
  175. package/layout/ApplicationLayout.d.ts +20 -0
  176. package/layout/ApplicationLayout.js +83 -184
  177. package/layout/ApplicationLayout.stories.tsx +162 -0
  178. package/layout/Icons.d.ts +8 -0
  179. package/layout/Icons.js +51 -48
  180. package/layout/types.d.ts +41 -0
  181. package/layout/types.js +5 -0
  182. package/link/Link.d.ts +3 -2
  183. package/link/Link.js +65 -111
  184. package/link/Link.stories.tsx +199 -16
  185. package/link/Link.test.js +63 -0
  186. package/link/types.d.ts +15 -35
  187. package/main.d.ts +19 -14
  188. package/main.js +92 -98
  189. package/nav-tabs/NavTabs.d.ts +7 -0
  190. package/nav-tabs/NavTabs.js +93 -0
  191. package/nav-tabs/NavTabs.stories.tsx +276 -0
  192. package/nav-tabs/NavTabs.test.js +76 -0
  193. package/nav-tabs/NavTabsContext.d.ts +3 -0
  194. package/nav-tabs/NavTabsContext.js +8 -0
  195. package/nav-tabs/Tab.d.ts +4 -0
  196. package/nav-tabs/Tab.js +118 -0
  197. package/nav-tabs/types.d.ts +52 -0
  198. package/nav-tabs/types.js +5 -0
  199. package/number-input/NumberInput.js +48 -48
  200. package/number-input/NumberInput.stories.tsx +44 -28
  201. package/number-input/NumberInput.test.js +989 -0
  202. package/number-input/NumberInputContext.d.ts +3 -0
  203. package/number-input/NumberInputContext.js +3 -11
  204. package/number-input/types.d.ts +34 -15
  205. package/package.json +46 -45
  206. package/paginator/Icons.d.ts +5 -0
  207. package/paginator/Icons.js +21 -47
  208. package/paginator/Paginator.js +35 -98
  209. package/paginator/Paginator.stories.tsx +24 -0
  210. package/paginator/Paginator.test.js +335 -0
  211. package/paginator/types.d.ts +3 -3
  212. package/paragraph/Paragraph.d.ts +5 -0
  213. package/paragraph/Paragraph.js +22 -0
  214. package/paragraph/Paragraph.stories.tsx +27 -0
  215. package/password-input/Icons.d.ts +6 -0
  216. package/password-input/Icons.js +35 -0
  217. package/password-input/PasswordInput.js +60 -125
  218. package/password-input/PasswordInput.stories.tsx +3 -35
  219. package/password-input/PasswordInput.test.js +198 -0
  220. package/password-input/types.d.ts +35 -24
  221. package/progress-bar/ProgressBar.js +66 -92
  222. package/progress-bar/ProgressBar.stories.tsx +93 -0
  223. package/progress-bar/ProgressBar.test.js +93 -0
  224. package/progress-bar/types.d.ts +3 -3
  225. package/quick-nav/QuickNav.d.ts +4 -0
  226. package/quick-nav/QuickNav.js +94 -0
  227. package/quick-nav/QuickNav.stories.tsx +356 -0
  228. package/quick-nav/types.d.ts +21 -0
  229. package/quick-nav/types.js +5 -0
  230. package/radio-group/Radio.d.ts +4 -0
  231. package/radio-group/Radio.js +124 -0
  232. package/radio-group/RadioGroup.d.ts +4 -0
  233. package/radio-group/RadioGroup.js +235 -0
  234. package/radio-group/RadioGroup.stories.tsx +214 -0
  235. package/radio-group/RadioGroup.test.js +756 -0
  236. package/radio-group/types.d.ts +114 -0
  237. package/radio-group/types.js +5 -0
  238. package/resultset-table/Icons.d.ts +7 -0
  239. package/resultset-table/Icons.js +47 -0
  240. package/resultset-table/ResultsetTable.d.ts +7 -0
  241. package/resultset-table/ResultsetTable.js +170 -0
  242. package/resultset-table/ResultsetTable.stories.tsx +401 -0
  243. package/resultset-table/ResultsetTable.test.js +381 -0
  244. package/resultset-table/types.d.ts +100 -0
  245. package/resultset-table/types.js +5 -0
  246. package/select/Icons.d.ts +10 -0
  247. package/select/Icons.js +89 -0
  248. package/select/Listbox.d.ts +4 -0
  249. package/select/Listbox.js +143 -0
  250. package/select/Option.d.ts +4 -0
  251. package/select/Option.js +87 -0
  252. package/select/Select.d.ts +4 -0
  253. package/select/Select.js +240 -515
  254. package/select/Select.stories.tsx +971 -0
  255. package/select/Select.test.js +2370 -0
  256. package/select/types.d.ts +209 -0
  257. package/select/types.js +5 -0
  258. package/sidenav/Icons.d.ts +7 -0
  259. package/sidenav/Icons.js +47 -0
  260. package/sidenav/Sidenav.d.ts +6 -5
  261. package/sidenav/Sidenav.js +133 -72
  262. package/sidenav/Sidenav.stories.tsx +282 -0
  263. package/sidenav/Sidenav.test.js +37 -0
  264. package/sidenav/SidenavContext.d.ts +5 -0
  265. package/sidenav/SidenavContext.js +13 -0
  266. package/sidenav/types.d.ts +52 -26
  267. package/slider/Slider.d.ts +2 -2
  268. package/slider/Slider.js +151 -183
  269. package/slider/Slider.test.js +254 -0
  270. package/slider/types.d.ts +11 -3
  271. package/spinner/Spinner.js +32 -76
  272. package/spinner/{Spinner.stories.jsx → Spinner.stories.tsx} +53 -26
  273. package/spinner/Spinner.test.js +55 -0
  274. package/spinner/types.d.ts +3 -3
  275. package/status-light/StatusLight.d.ts +4 -0
  276. package/status-light/StatusLight.js +51 -0
  277. package/status-light/StatusLight.stories.tsx +74 -0
  278. package/status-light/StatusLight.test.js +25 -0
  279. package/status-light/types.d.ts +17 -0
  280. package/status-light/types.js +5 -0
  281. package/switch/Switch.d.ts +2 -2
  282. package/switch/Switch.js +150 -115
  283. package/switch/Switch.stories.tsx +45 -68
  284. package/switch/Switch.test.js +180 -0
  285. package/switch/types.d.ts +13 -5
  286. package/table/DropdownTheme.js +62 -0
  287. package/table/Table.d.ts +6 -2
  288. package/table/Table.js +80 -37
  289. package/table/Table.stories.tsx +651 -0
  290. package/table/Table.test.js +113 -0
  291. package/table/types.d.ts +34 -6
  292. package/tabs/Tab.d.ts +4 -0
  293. package/tabs/Tab.js +116 -0
  294. package/tabs/Tabs.d.ts +1 -1
  295. package/tabs/Tabs.js +318 -145
  296. package/tabs/Tabs.stories.tsx +226 -0
  297. package/tabs/Tabs.test.js +294 -0
  298. package/tabs/types.d.ts +48 -27
  299. package/tag/Tag.d.ts +1 -1
  300. package/tag/Tag.js +44 -86
  301. package/tag/Tag.stories.tsx +38 -28
  302. package/tag/Tag.test.js +49 -0
  303. package/tag/types.d.ts +25 -16
  304. package/text-input/Icons.d.ts +8 -0
  305. package/text-input/Icons.js +56 -0
  306. package/text-input/Suggestion.d.ts +4 -0
  307. package/text-input/Suggestion.js +67 -0
  308. package/text-input/Suggestions.d.ts +4 -0
  309. package/text-input/Suggestions.js +84 -0
  310. package/text-input/TextInput.d.ts +4 -0
  311. package/text-input/TextInput.js +333 -593
  312. package/text-input/TextInput.stories.tsx +465 -0
  313. package/text-input/TextInput.test.js +1756 -0
  314. package/text-input/types.d.ts +205 -0
  315. package/text-input/types.js +5 -0
  316. package/textarea/Textarea.d.ts +4 -0
  317. package/textarea/Textarea.js +98 -181
  318. package/textarea/Textarea.stories.tsx +174 -0
  319. package/textarea/Textarea.test.js +406 -0
  320. package/textarea/types.d.ts +141 -0
  321. package/textarea/types.js +5 -0
  322. package/toggle-group/ToggleGroup.d.ts +4 -0
  323. package/toggle-group/ToggleGroup.js +100 -142
  324. package/toggle-group/ToggleGroup.stories.tsx +76 -36
  325. package/toggle-group/ToggleGroup.test.js +137 -0
  326. package/toggle-group/types.d.ts +114 -0
  327. package/toggle-group/types.js +5 -0
  328. package/typography/Typography.d.ts +4 -0
  329. package/typography/Typography.js +23 -0
  330. package/typography/Typography.stories.tsx +198 -0
  331. package/typography/types.d.ts +18 -0
  332. package/typography/types.js +5 -0
  333. package/useTheme.d.ts +1148 -0
  334. package/useTheme.js +4 -11
  335. package/useTranslatedLabels.d.ts +85 -0
  336. package/useTranslatedLabels.js +14 -0
  337. package/utils/BaseTypography.d.ts +21 -0
  338. package/utils/BaseTypography.js +94 -0
  339. package/utils/FocusLock.d.ts +13 -0
  340. package/utils/FocusLock.js +124 -0
  341. package/wizard/Wizard.d.ts +1 -1
  342. package/wizard/Wizard.js +123 -104
  343. package/wizard/Wizard.stories.tsx +253 -0
  344. package/wizard/Wizard.test.js +114 -0
  345. package/wizard/types.d.ts +15 -15
  346. package/ThemeContext.js +0 -246
  347. package/V3Select/V3Select.js +0 -455
  348. package/V3Select/index.d.ts +0 -27
  349. package/V3Textarea/V3Textarea.js +0 -260
  350. package/V3Textarea/index.d.ts +0 -27
  351. package/chip/index.d.ts +0 -22
  352. package/common/OpenSans.css +0 -81
  353. package/common/RequiredComponent.js +0 -32
  354. package/common/fonts/OpenSans-Bold.ttf +0 -0
  355. package/common/fonts/OpenSans-BoldItalic.ttf +0 -0
  356. package/common/fonts/OpenSans-ExtraBold.ttf +0 -0
  357. package/common/fonts/OpenSans-ExtraBoldItalic.ttf +0 -0
  358. package/common/fonts/OpenSans-Italic.ttf +0 -0
  359. package/common/fonts/OpenSans-Light.ttf +0 -0
  360. package/common/fonts/OpenSans-LightItalic.ttf +0 -0
  361. package/common/fonts/OpenSans-Regular.ttf +0 -0
  362. package/common/fonts/OpenSans-SemiBold.ttf +0 -0
  363. package/common/fonts/OpenSans-SemiBoldItalic.ttf +0 -0
  364. package/date/Date.js +0 -373
  365. package/date/index.d.ts +0 -27
  366. package/file-input/index.d.ts +0 -81
  367. package/heading/index.d.ts +0 -17
  368. package/input-text/Icons.js +0 -22
  369. package/input-text/InputText.js +0 -611
  370. package/input-text/index.d.ts +0 -36
  371. package/progress-bar/ProgressBar.stories.jsx +0 -58
  372. package/radio/Radio.d.ts +0 -4
  373. package/radio/Radio.js +0 -174
  374. package/radio/Radio.stories.tsx +0 -192
  375. package/radio/types.d.ts +0 -54
  376. package/resultsetTable/ResultsetTable.js +0 -274
  377. package/resultsetTable/index.d.ts +0 -19
  378. package/select/index.d.ts +0 -131
  379. package/slider/Slider.stories.tsx +0 -172
  380. package/table/Table.stories.jsx +0 -276
  381. package/text-input/index.d.ts +0 -135
  382. package/textarea/Textarea.stories.jsx +0 -135
  383. package/textarea/index.d.ts +0 -117
  384. package/toggle/Toggle.js +0 -186
  385. package/toggle/index.d.ts +0 -21
  386. package/toggle-group/index.d.ts +0 -21
  387. package/upload/Upload.js +0 -201
  388. package/upload/buttons-upload/ButtonsUpload.js +0 -111
  389. package/upload/buttons-upload/Icons.js +0 -40
  390. package/upload/dragAndDropArea/DragAndDropArea.js +0 -225
  391. package/upload/dragAndDropArea/Icons.js +0 -39
  392. package/upload/file-upload/FileToUpload.js +0 -115
  393. package/upload/file-upload/Icons.js +0 -66
  394. package/upload/files-upload/FilesToUpload.js +0 -109
  395. package/upload/index.d.ts +0 -15
  396. package/upload/transaction/Icons.js +0 -160
  397. package/upload/transaction/Transaction.js +0 -104
  398. package/upload/transactions/Transactions.js +0 -94
  399. package/wizard/Icons.js +0 -65
  400. /package/{radio → action-icon}/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: "search",
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
+ };