@dxc-technology/halstack-react 0.0.0-e1386cf → 0.0.0-e19ca5f

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