@dxc-technology/halstack-react 0.0.0-951bb80 → 0.0.0-95b953e

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