@dxc-technology/halstack-react 0.0.0-d3554d7 → 0.0.0-d3df47e

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 (331) hide show
  1. package/BackgroundColorContext.d.ts +1 -10
  2. package/BackgroundColorContext.js +5 -22
  3. package/HalstackContext.d.ts +1221 -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 +32 -33
  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 +55 -90
  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 +29 -46
  26. package/alert/types.d.ts +5 -5
  27. package/badge/Badge.d.ts +1 -1
  28. package/badge/Badge.js +142 -40
  29. package/badge/Badge.stories.tsx +210 -0
  30. package/badge/Badge.test.js +30 -0
  31. package/badge/types.d.ts +52 -2
  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 +2 -7
  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 +20 -17
  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 +11 -22
  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 +163 -29
  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 +16 -31
  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 +1367 -0
  69. package/common/variables.js +1002 -1136
  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 +708 -369
  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 +287 -20
  90. package/dialog/types.d.ts +18 -25
  91. package/dropdown/Dropdown.d.ts +1 -1
  92. package/dropdown/Dropdown.js +243 -304
  93. package/dropdown/Dropdown.stories.tsx +245 -56
  94. package/dropdown/Dropdown.test.js +575 -165
  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 +369 -367
  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 +33 -57
  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 +31 -28
  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 +71 -88
  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/inset/Inset.js +14 -55
  137. package/inset/Inset.stories.tsx +37 -36
  138. package/inset/types.d.ts +26 -2
  139. package/layout/ApplicationLayout.d.ts +16 -6
  140. package/layout/ApplicationLayout.js +84 -181
  141. package/layout/ApplicationLayout.stories.tsx +85 -94
  142. package/layout/Icons.d.ts +8 -0
  143. package/layout/Icons.js +51 -48
  144. package/layout/SidenavContext.d.ts +5 -0
  145. package/layout/SidenavContext.js +13 -0
  146. package/layout/types.d.ts +19 -35
  147. package/link/Link.d.ts +3 -2
  148. package/link/Link.js +61 -99
  149. package/link/Link.stories.tsx +155 -53
  150. package/link/Link.test.js +25 -53
  151. package/link/types.d.ts +15 -31
  152. package/main.d.ts +14 -13
  153. package/main.js +65 -101
  154. package/nav-tabs/NavTabs.d.ts +8 -0
  155. package/nav-tabs/NavTabs.js +93 -0
  156. package/nav-tabs/NavTabs.stories.tsx +276 -0
  157. package/nav-tabs/NavTabs.test.js +76 -0
  158. package/nav-tabs/Tab.d.ts +4 -0
  159. package/nav-tabs/Tab.js +118 -0
  160. package/nav-tabs/types.d.ts +52 -0
  161. package/nav-tabs/types.js +5 -0
  162. package/number-input/NumberInput.d.ts +7 -0
  163. package/number-input/NumberInput.js +27 -43
  164. package/number-input/NumberInput.stories.tsx +44 -28
  165. package/number-input/NumberInput.test.js +703 -381
  166. package/number-input/types.d.ts +28 -15
  167. package/package.json +46 -47
  168. package/paginator/Icons.d.ts +5 -0
  169. package/paginator/Icons.js +21 -47
  170. package/paginator/Paginator.js +34 -91
  171. package/paginator/Paginator.stories.tsx +24 -0
  172. package/paginator/Paginator.test.js +280 -211
  173. package/paginator/types.d.ts +3 -3
  174. package/paragraph/Paragraph.d.ts +5 -0
  175. package/paragraph/Paragraph.js +22 -0
  176. package/paragraph/Paragraph.stories.tsx +27 -0
  177. package/password-input/Icons.d.ts +6 -0
  178. package/password-input/Icons.js +35 -0
  179. package/password-input/PasswordInput.js +57 -123
  180. package/password-input/PasswordInput.stories.tsx +1 -33
  181. package/password-input/PasswordInput.test.js +162 -147
  182. package/password-input/types.d.ts +21 -17
  183. package/progress-bar/ProgressBar.js +65 -91
  184. package/progress-bar/ProgressBar.stories.tsx +93 -0
  185. package/progress-bar/ProgressBar.test.js +72 -44
  186. package/progress-bar/types.d.ts +3 -3
  187. package/quick-nav/QuickNav.d.ts +4 -0
  188. package/quick-nav/QuickNav.js +94 -0
  189. package/quick-nav/QuickNav.stories.tsx +356 -0
  190. package/quick-nav/types.d.ts +21 -0
  191. package/quick-nav/types.js +5 -0
  192. package/radio-group/Radio.d.ts +1 -1
  193. package/radio-group/Radio.js +59 -76
  194. package/radio-group/RadioGroup.js +72 -116
  195. package/radio-group/RadioGroup.stories.tsx +135 -17
  196. package/radio-group/RadioGroup.test.js +529 -467
  197. package/radio-group/types.d.ts +86 -9
  198. package/resultset-table/Icons.d.ts +7 -0
  199. package/resultset-table/Icons.js +47 -0
  200. package/{resultsetTable → resultset-table}/ResultsetTable.d.ts +1 -1
  201. package/resultset-table/ResultsetTable.js +165 -0
  202. package/{resultsetTable → resultset-table}/ResultsetTable.stories.tsx +69 -25
  203. package/{resultsetTable → resultset-table}/ResultsetTable.test.js +117 -118
  204. package/{resultsetTable → resultset-table}/types.d.ts +13 -7
  205. package/resultset-table/types.js +5 -0
  206. package/select/Icons.d.ts +10 -0
  207. package/select/Icons.js +89 -0
  208. package/select/Listbox.d.ts +4 -0
  209. package/select/Listbox.js +143 -0
  210. package/select/Option.d.ts +4 -0
  211. package/select/Option.js +87 -0
  212. package/select/Select.js +223 -502
  213. package/select/Select.stories.tsx +534 -145
  214. package/select/Select.test.js +2009 -1539
  215. package/select/types.d.ts +64 -25
  216. package/sidenav/Icons.d.ts +7 -0
  217. package/sidenav/Icons.js +47 -0
  218. package/sidenav/Sidenav.d.ts +6 -5
  219. package/sidenav/Sidenav.js +131 -71
  220. package/sidenav/Sidenav.stories.tsx +251 -151
  221. package/sidenav/Sidenav.test.js +26 -45
  222. package/sidenav/types.d.ts +52 -26
  223. package/slider/Slider.d.ts +2 -2
  224. package/slider/Slider.js +148 -180
  225. package/slider/Slider.test.js +198 -73
  226. package/slider/types.d.ts +11 -3
  227. package/spinner/Spinner.js +31 -75
  228. package/spinner/{Spinner.stories.jsx → Spinner.stories.tsx} +53 -27
  229. package/spinner/Spinner.test.js +26 -35
  230. package/spinner/types.d.ts +3 -3
  231. package/status-light/StatusLight.d.ts +4 -0
  232. package/status-light/StatusLight.js +51 -0
  233. package/status-light/StatusLight.stories.tsx +74 -0
  234. package/status-light/StatusLight.test.js +25 -0
  235. package/status-light/types.d.ts +17 -0
  236. package/status-light/types.js +5 -0
  237. package/switch/Switch.d.ts +2 -2
  238. package/switch/Switch.js +149 -114
  239. package/switch/Switch.stories.tsx +44 -67
  240. package/switch/Switch.test.js +146 -39
  241. package/switch/types.d.ts +13 -5
  242. package/table/Table.d.ts +1 -1
  243. package/table/Table.js +25 -32
  244. package/table/{Table.stories.jsx → Table.stories.tsx} +178 -1
  245. package/table/Table.test.js +3 -8
  246. package/table/types.d.ts +12 -6
  247. package/tabs/Tab.d.ts +4 -0
  248. package/tabs/Tab.js +116 -0
  249. package/tabs/Tabs.d.ts +1 -1
  250. package/tabs/Tabs.js +316 -145
  251. package/tabs/Tabs.stories.tsx +120 -14
  252. package/tabs/Tabs.test.js +238 -67
  253. package/tabs/types.d.ts +29 -15
  254. package/tag/Tag.js +41 -78
  255. package/tag/Tag.stories.tsx +25 -8
  256. package/tag/Tag.test.js +20 -31
  257. package/tag/types.d.ts +7 -7
  258. package/text-input/Icons.d.ts +8 -0
  259. package/text-input/Icons.js +56 -0
  260. package/text-input/Suggestion.d.ts +4 -0
  261. package/text-input/Suggestion.js +67 -0
  262. package/text-input/Suggestions.d.ts +4 -0
  263. package/text-input/Suggestions.js +84 -0
  264. package/text-input/TextInput.js +324 -548
  265. package/text-input/TextInput.stories.tsx +272 -281
  266. package/text-input/TextInput.test.js +1425 -1377
  267. package/text-input/types.d.ts +70 -24
  268. package/textarea/Textarea.js +82 -134
  269. package/textarea/Textarea.stories.tsx +174 -0
  270. package/textarea/Textarea.test.js +168 -198
  271. package/textarea/types.d.ts +27 -16
  272. package/toggle-group/ToggleGroup.d.ts +2 -2
  273. package/toggle-group/ToggleGroup.js +92 -105
  274. package/toggle-group/ToggleGroup.stories.tsx +53 -8
  275. package/toggle-group/ToggleGroup.test.js +78 -66
  276. package/toggle-group/types.d.ts +34 -17
  277. package/typography/Typography.d.ts +4 -0
  278. package/typography/Typography.js +23 -0
  279. package/typography/Typography.stories.tsx +198 -0
  280. package/typography/types.d.ts +18 -0
  281. package/typography/types.js +5 -0
  282. package/useTheme.d.ts +1119 -1
  283. package/useTheme.js +4 -11
  284. package/useTranslatedLabels.d.ts +85 -0
  285. package/useTranslatedLabels.js +14 -0
  286. package/utils/BaseTypography.d.ts +21 -0
  287. package/utils/BaseTypography.js +94 -0
  288. package/utils/FocusLock.d.ts +13 -0
  289. package/utils/FocusLock.js +124 -0
  290. package/wizard/Wizard.d.ts +1 -1
  291. package/wizard/Wizard.js +70 -101
  292. package/wizard/Wizard.stories.tsx +48 -19
  293. package/wizard/Wizard.test.js +73 -87
  294. package/wizard/types.d.ts +12 -8
  295. package/ThemeContext.d.ts +0 -10
  296. package/ThemeContext.js +0 -243
  297. package/card/ice-cream.jpg +0 -0
  298. package/common/RequiredComponent.js +0 -32
  299. package/list/List.d.ts +0 -4
  300. package/list/List.js +0 -47
  301. package/list/List.stories.tsx +0 -95
  302. package/list/types.d.ts +0 -7
  303. package/number-input/NumberInputContext.d.ts +0 -4
  304. package/number-input/NumberInputContext.js +0 -19
  305. package/number-input/numberInputContextTypes.d.ts +0 -19
  306. package/progress-bar/ProgressBar.stories.jsx +0 -58
  307. package/radio/Radio.d.ts +0 -4
  308. package/radio/Radio.js +0 -174
  309. package/radio/Radio.stories.tsx +0 -192
  310. package/radio/Radio.test.js +0 -71
  311. package/radio/types.d.ts +0 -54
  312. package/resultsetTable/ResultsetTable.js +0 -254
  313. package/row/Row.d.ts +0 -3
  314. package/row/Row.js +0 -127
  315. package/row/Row.stories.tsx +0 -237
  316. package/row/types.d.ts +0 -10
  317. package/slider/Slider.stories.tsx +0 -177
  318. package/stack/Stack.d.ts +0 -3
  319. package/stack/Stack.js +0 -97
  320. package/stack/Stack.stories.tsx +0 -164
  321. package/stack/types.d.ts +0 -9
  322. package/text/Text.d.ts +0 -7
  323. package/text/Text.js +0 -30
  324. package/text/Text.stories.tsx +0 -19
  325. package/textarea/Textarea.stories.jsx +0 -157
  326. /package/{list → action-icon}/types.js +0 -0
  327. /package/{radio → bulleted-list}/types.js +0 -0
  328. /package/{resultsetTable → container}/types.js +0 -0
  329. /package/{row → flex}/types.js +0 -0
  330. /package/{stack → grid}/types.js +0 -0
  331. /package/{number-input/numberInputContextTypes.js → image/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,7 +137,7 @@ 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}
@@ -133,7 +163,7 @@ export const Chromatic = () => (
133
163
  helperText="Help message"
134
164
  disabled
135
165
  optional
136
- value="Text"
166
+ defaultValue="Text"
137
167
  action={action}
138
168
  />
139
169
  </ExampleContainer>
@@ -146,90 +176,49 @@ export const Chromatic = () => (
146
176
  optional
147
177
  prefix="+34"
148
178
  suffix="USD"
149
- 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"
150
219
  action={action}
151
220
  />
152
221
  </ExampleContainer>
153
- <BackgroundColorProvider color="#333333">
154
- <DarkContainer>
155
- <Title title="Dark" theme="dark" level={2} />
156
- <ExampleContainer pseudoState="pseudo-hover">
157
- <Title title="Hovered" theme="dark" level={4} />
158
- <DxcTextInput label="Text input" />
159
- </ExampleContainer>
160
- <ExampleContainer pseudoState="pseudo-focus-within">
161
- <Title title="Focused" theme="dark" level={4} />
162
- <DxcTextInput label="Text input" />
163
- </ExampleContainer>
164
- <ExampleContainer pseudoState="pseudo-hover">
165
- <Title title="Hovered action" theme="dark" level={4} />
166
- <DxcTextInput label="Text input" value="Text" clearable />
167
- </ExampleContainer>
168
- <ExampleContainer>
169
- <Title title="Helper text, placeholder, optional and action" theme="dark" level={4} />
170
- <DxcTextInput
171
- label="Text input"
172
- helperText="Help message"
173
- placeholder="Placeholder"
174
- clearable
175
- optional
176
- action={action}
177
- />
178
- </ExampleContainer>
179
- <ExampleContainer>
180
- <Title title="Invalid" theme="dark" level={4} />
181
- <DxcTextInput
182
- label="Error text input"
183
- helperText="Help message"
184
- error="Error message."
185
- value="Text"
186
- clearable
187
- action={action}
188
- />
189
- </ExampleContainer>
190
- <ExampleContainer pseudoState="pseudo-hover">
191
- <Title title="Invalid and hovered" theme="dark" level={4} />
192
- <DxcTextInput
193
- label="Error text input"
194
- helperText="Help message"
195
- placeholder="Placeholder"
196
- error="Error message."
197
- />
198
- </ExampleContainer>
199
- <ExampleContainer>
200
- <Title title="Prefix and suffix" theme="dark" level={4} />
201
- <DxcTextInput label="With prefix and suffix" prefix="+34" suffix="USD" />
202
- </ExampleContainer>
203
- <ExampleContainer>
204
- <Title title="Disabled and placeholder" theme="dark" level={4} />
205
- <DxcTextInput label="Disabled text input" disabled placeholder="Placeholder" />
206
- </ExampleContainer>
207
- <ExampleContainer>
208
- <Title title="Disabled, helper text, optional, value and action" theme="dark" level={4} />
209
- <DxcTextInput
210
- label="Disabled text input"
211
- helperText="Help message"
212
- disabled
213
- optional
214
- value="Text"
215
- action={action}
216
- />
217
- </ExampleContainer>
218
- <ExampleContainer>
219
- <Title title="Disabled with prefix and suffix" theme="dark" level={4} />
220
- <DxcTextInput
221
- label="Disabled text input"
222
- helperText="Help message"
223
- disabled
224
- optional
225
- prefix="+34"
226
- suffix="USD"
227
- value="Text"
228
- action={action}
229
- />
230
- </ExampleContainer>
231
- </DarkContainer>
232
- </BackgroundColorProvider>
233
222
  <Title title="Margins" theme="light" level={2} />
234
223
  <ExampleContainer>
235
224
  <Title title="Xxsmall margin" theme="light" level={4} />
@@ -276,199 +265,201 @@ export const Chromatic = () => (
276
265
  <Title title="FillParent size" theme="light" level={4} />
277
266
  <DxcTextInput label="FillParent" size="fillParent" />
278
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>
279
328
  </>
280
329
  );
281
330
 
282
- const FocusedActionTextInput = () => (
283
- <ExampleContainer expanded>
284
- <Title title="Focused action" theme="light" level={4} />
285
- <DxcTextInput label="Text input" action={action} clearable />
286
- </ExampleContainer>
287
- );
288
-
289
- const ActivedActionTextInput = () => (
290
- <ExampleContainer pseudoState="pseudo-active" expanded>
291
- <Title title="Actived action" theme="light" level={4} />
292
- <DxcTextInput label="Text input" action={action} clearable />
293
- </ExampleContainer>
294
- );
295
-
296
- const ShowOptionsAutosuggest = () => (
297
- <ExampleContainer expanded>
298
- <Title title="Show options" theme="light" level={4} />
299
- <DxcTextInput label="Text input" suggestions={countries} clearable />
300
- </ExampleContainer>
301
- );
302
-
303
- const HoveredOptionAutosuggest = () => (
304
- <ExampleContainer expanded pseudoState="pseudo-hover">
305
- <Title title="Hovered option" theme="light" level={4} />
306
- <DxcTextInput label="Text input" suggestions={country} clearable />
307
- </ExampleContainer>
308
- );
309
-
310
- const FocusedOptionAutosuggest = () => (
311
- <ExampleContainer expanded>
312
- <Title title="Focused option" theme="light" level={4} />
313
- <DxcTextInput label="Text input" suggestions={country} clearable />
314
- </ExampleContainer>
315
- );
316
-
317
- const ActivedOptionAutosuggest = () => (
318
- <ExampleContainer expanded pseudoState="pseudo-active">
319
- <Title title="Actived option" theme="light" level={4} />
320
- <DxcTextInput label="Text input" suggestions={country} clearable />
321
- </ExampleContainer>
322
- );
323
-
324
- const FocusedActionTextInputOnDark = () => (
325
- <BackgroundColorProvider color="#333333">
326
- <DarkContainer>
327
- <ExampleContainer expanded>
328
- <Title title="Focused action" theme="dark" level={4} />
329
- <DxcTextInput label="Text input" action={action} clearable />
330
- </ExampleContainer>
331
- </DarkContainer>
332
- </BackgroundColorProvider>
333
- );
334
-
335
- const ActivedActionTextInputOnDark = () => (
336
- <BackgroundColorProvider color="#333333">
337
- <DarkContainer>
338
- <ExampleContainer pseudoState="pseudo-active" expanded>
339
- <Title title="Actived action" theme="dark" level={4} />
340
- <DxcTextInput label="Text input" action={action} clearable />
341
- </ExampleContainer>
342
- </DarkContainer>
343
- </BackgroundColorProvider>
344
- );
345
-
346
- const ShowOptionsAutosuggestOnDark = () => (
347
- <BackgroundColorProvider color="#333333">
348
- <DarkContainer>
349
- <ExampleContainer expanded>
350
- <Title title="Show options" theme="dark" level={4} />
351
- <DxcTextInput label="Text input" suggestions={countries} clearable />
352
- </ExampleContainer>
353
- </DarkContainer>
354
- </BackgroundColorProvider>
355
- );
331
+ const AutosuggestListbox = () => {
332
+ const colorsTheme: any = useTheme();
356
333
 
357
- const HoveredActionAutosuggestOnDark = () => (
358
- <BackgroundColorProvider color="#333333">
359
- <DarkContainer>
360
- <ExampleContainer expanded pseudoState="pseudo-hover">
361
- <Title title="Hovered option" theme="dark" level={4} />
362
- <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>
363
427
  </ExampleContainer>
364
- </DarkContainer>
365
- </BackgroundColorProvider>
366
- );
367
-
368
- const FocusedOptionAutosuggestOnDark = () => (
369
- <BackgroundColorProvider color="#333333">
370
- <DarkContainer>
371
- <ExampleContainer expanded>
372
- <Title title="Focused option" theme="dark" level={4} />
373
- <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
+ />
374
441
  </ExampleContainer>
375
- </DarkContainer>
376
- </BackgroundColorProvider>
377
- );
378
-
379
- const ActivedOptionAutosuggestOnDark = () => (
380
- <BackgroundColorProvider color="#333333">
381
- <DarkContainer>
382
- <ExampleContainer expanded pseudoState="pseudo-active">
383
- <Title title="Actived option" theme="dark" level={4} />
384
- <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
+ />
385
455
  </ExampleContainer>
386
- </DarkContainer>
387
- </BackgroundColorProvider>
388
- );
389
-
390
- export const FocusedAction = FocusedActionTextInput.bind({});
391
- FocusedAction.play = async ({ canvasElement }) => {
392
- const canvas = within(canvasElement);
393
- const action = canvas.getByRole("button");
394
- await action.focus();
395
- };
396
-
397
- export const ActivedAction = ActivedActionTextInput.bind({});
398
- ActivedAction.play = async ({ canvasElement }) => {
399
- const canvas = within(canvasElement);
400
- const action = canvas.getByRole("button");
401
- await userEvent.click(action);
402
- };
403
-
404
- export const ShowOptions = ShowOptionsAutosuggest.bind({});
405
- ShowOptions.play = async ({ canvasElement }) => {
406
- const canvas = within(canvasElement);
407
- const autosuggest = canvas.getByRole("combobox");
408
- await userEvent.click(autosuggest);
409
- };
410
-
411
- export const HoveredOption = HoveredOptionAutosuggest.bind({});
412
- HoveredOption.play = async ({ canvasElement }) => {
413
- const canvas = within(canvasElement);
414
- const autosuggest = canvas.getByRole("combobox");
415
- await userEvent.click(autosuggest);
416
- };
417
-
418
- export const FocusedOption = FocusedOptionAutosuggest.bind({});
419
- FocusedOption.play = async ({ canvasElement }) => {
420
- const canvas = within(canvasElement);
421
- const autosuggest = canvas.getByRole("combobox");
422
- await userEvent.click(autosuggest);
423
- fireEvent.keyDown(autosuggest, { key: "ArrowDown", code: "ArrowDown", keyCode: 40, charCode: 40 });
424
- };
425
-
426
- export const ActivedOption = ActivedOptionAutosuggest.bind({});
427
- ActivedOption.play = async ({ canvasElement }) => {
428
- const canvas = within(canvasElement);
429
- const autosuggest = canvas.getByRole("combobox");
430
- await userEvent.click(autosuggest);
431
- };
432
-
433
- export const FocusedActionOnDark = FocusedActionTextInputOnDark.bind({});
434
- FocusedActionOnDark.play = async ({ canvasElement }) => {
435
- const canvas = within(canvasElement);
436
- const action = canvas.getByRole("button");
437
- await action.focus();
438
- };
439
-
440
- export const ActivedActionOnDark = ActivedActionTextInputOnDark.bind({});
441
- ActivedActionOnDark.play = async ({ canvasElement }) => {
442
- const canvas = within(canvasElement);
443
- const action = canvas.getByRole("button");
444
- await userEvent.click(action);
445
- };
446
-
447
- export const ShowOptionsOnDark = ShowOptionsAutosuggestOnDark.bind({});
448
- ShowOptionsOnDark.play = async ({ canvasElement }) => {
449
- const canvas = within(canvasElement);
450
- const autosuggest = canvas.getByRole("combobox");
451
- await userEvent.click(autosuggest);
452
- };
453
-
454
- export const HoveredActionOnDark = HoveredActionAutosuggestOnDark.bind({});
455
- HoveredActionOnDark.play = async ({ canvasElement }) => {
456
- const canvas = within(canvasElement);
457
- const autosuggest = canvas.getByRole("combobox");
458
- await userEvent.click(autosuggest);
459
- };
460
-
461
- export const FocusedOptionOnDark = FocusedOptionAutosuggestOnDark.bind({});
462
- FocusedOptionOnDark.play = async ({ canvasElement }) => {
463
- const canvas = within(canvasElement);
464
- const autosuggest = canvas.getByRole("combobox");
465
- await userEvent.click(autosuggest);
466
- fireEvent.keyDown(autosuggest, { key: "ArrowDown", code: "ArrowDown", keyCode: 40, charCode: 40 });
456
+ </ThemeProvider>
457
+ );
467
458
  };
468
459
 
469
- export const ActivedOptionOnDark = ActivedOptionAutosuggestOnDark.bind({});
470
- ActivedOptionOnDark.play = async ({ canvasElement }) => {
460
+ export const AutosuggestListboxStates = AutosuggestListbox.bind({});
461
+ AutosuggestListboxStates.play = async ({ canvasElement }) => {
471
462
  const canvas = within(canvasElement);
472
- const autosuggest = canvas.getByRole("combobox");
473
- await userEvent.click(autosuggest);
463
+ const select = canvas.getByRole("combobox");
464
+ await userEvent.click(select);
474
465
  };