@dxc-technology/halstack-react 0.0.0-b92e300 → 0.0.0-b94d9fc

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 (393) hide show
  1. package/BackgroundColorContext.d.ts +1 -0
  2. package/BackgroundColorContext.js +6 -26
  3. package/HalstackContext.d.ts +1249 -0
  4. package/HalstackContext.js +310 -0
  5. package/README.md +47 -0
  6. package/accordion/Accordion.d.ts +1 -1
  7. package/accordion/Accordion.js +118 -194
  8. package/accordion/Accordion.stories.tsx +283 -0
  9. package/accordion/Accordion.test.js +56 -0
  10. package/accordion/types.d.ts +12 -23
  11. package/accordion-group/AccordionGroup.d.ts +5 -4
  12. package/accordion-group/AccordionGroup.js +39 -108
  13. package/accordion-group/AccordionGroup.stories.tsx +252 -0
  14. package/accordion-group/AccordionGroup.test.js +98 -0
  15. package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
  16. package/accordion-group/AccordionGroupAccordion.js +31 -0
  17. package/accordion-group/types.d.ts +18 -23
  18. package/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 +24 -60
  24. package/alert/Alert.stories.tsx +198 -0
  25. package/alert/Alert.test.js +75 -0
  26. package/alert/types.d.ts +6 -6
  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/badge/types.js +5 -0
  33. package/bleed/Bleed.d.ts +3 -0
  34. package/bleed/Bleed.js +43 -0
  35. package/bleed/Bleed.stories.tsx +342 -0
  36. package/bleed/types.d.ts +37 -0
  37. package/bleed/types.js +5 -0
  38. package/box/Box.d.ts +4 -0
  39. package/box/Box.js +32 -109
  40. package/box/Box.stories.tsx +119 -0
  41. package/box/Box.test.js +13 -0
  42. package/box/types.d.ts +32 -0
  43. package/box/types.js +5 -0
  44. package/bulleted-list/BulletedList.d.ts +7 -0
  45. package/bulleted-list/BulletedList.js +89 -0
  46. package/bulleted-list/BulletedList.stories.tsx +115 -0
  47. package/bulleted-list/types.d.ts +38 -0
  48. package/bulleted-list/types.js +5 -0
  49. package/button/Button.d.ts +1 -1
  50. package/button/Button.js +65 -127
  51. package/button/Button.stories.tsx +329 -278
  52. package/button/Button.test.js +38 -0
  53. package/button/types.d.ts +18 -18
  54. package/card/Card.d.ts +1 -1
  55. package/card/Card.js +59 -104
  56. package/card/Card.stories.tsx +171 -0
  57. package/card/Card.test.js +39 -0
  58. package/card/types.d.ts +8 -15
  59. package/checkbox/Checkbox.d.ts +2 -2
  60. package/checkbox/Checkbox.js +145 -183
  61. package/checkbox/Checkbox.stories.tsx +222 -0
  62. package/checkbox/Checkbox.test.js +199 -0
  63. package/checkbox/types.d.ts +20 -8
  64. package/chip/Chip.d.ts +4 -0
  65. package/chip/Chip.js +48 -148
  66. package/chip/Chip.stories.tsx +214 -0
  67. package/chip/Chip.test.js +41 -0
  68. package/chip/types.d.ts +45 -0
  69. package/chip/types.js +5 -0
  70. package/common/OpenSans.css +68 -80
  71. package/common/coreTokens.d.ts +237 -0
  72. package/common/coreTokens.js +184 -0
  73. package/common/utils.d.ts +1 -0
  74. package/common/utils.js +6 -12
  75. package/common/variables.d.ts +1395 -0
  76. package/common/variables.js +1033 -1335
  77. package/container/Container.d.ts +4 -0
  78. package/container/Container.js +194 -0
  79. package/container/Container.stories.tsx +214 -0
  80. package/container/types.d.ts +74 -0
  81. package/container/types.js +5 -0
  82. package/date-input/Calendar.d.ts +4 -0
  83. package/date-input/Calendar.js +214 -0
  84. package/date-input/DateInput.js +175 -313
  85. package/date-input/DateInput.stories.tsx +285 -0
  86. package/date-input/DateInput.test.js +808 -0
  87. package/date-input/DatePicker.d.ts +4 -0
  88. package/date-input/DatePicker.js +115 -0
  89. package/date-input/Icons.d.ts +6 -0
  90. package/date-input/Icons.js +58 -0
  91. package/date-input/YearPicker.d.ts +4 -0
  92. package/date-input/YearPicker.js +100 -0
  93. package/date-input/types.d.ts +86 -22
  94. package/dialog/Dialog.d.ts +4 -0
  95. package/dialog/Dialog.js +69 -149
  96. package/dialog/Dialog.stories.tsx +365 -0
  97. package/dialog/Dialog.test.js +307 -0
  98. package/dialog/types.d.ts +36 -0
  99. package/dialog/types.js +5 -0
  100. package/dropdown/Dropdown.d.ts +4 -0
  101. package/dropdown/Dropdown.js +251 -365
  102. package/dropdown/Dropdown.stories.tsx +438 -0
  103. package/dropdown/Dropdown.test.js +599 -0
  104. package/dropdown/DropdownMenu.d.ts +4 -0
  105. package/dropdown/DropdownMenu.js +63 -0
  106. package/dropdown/DropdownMenuItem.d.ts +4 -0
  107. package/dropdown/DropdownMenuItem.js +67 -0
  108. package/dropdown/types.d.ts +98 -0
  109. package/dropdown/types.js +5 -0
  110. package/file-input/FileInput.d.ts +4 -0
  111. package/file-input/FileInput.js +274 -327
  112. package/file-input/FileInput.stories.tsx +618 -0
  113. package/file-input/FileInput.test.js +459 -0
  114. package/file-input/FileItem.d.ts +4 -0
  115. package/file-input/FileItem.js +54 -112
  116. package/file-input/types.d.ts +129 -0
  117. package/file-input/types.js +5 -0
  118. package/flex/Flex.d.ts +4 -0
  119. package/flex/Flex.js +57 -0
  120. package/flex/Flex.stories.tsx +112 -0
  121. package/flex/types.d.ts +97 -0
  122. package/flex/types.js +5 -0
  123. package/footer/Footer.d.ts +4 -0
  124. package/footer/Footer.js +74 -233
  125. package/footer/Footer.stories.tsx +171 -0
  126. package/footer/Footer.test.js +85 -0
  127. package/footer/Icons.d.ts +3 -0
  128. package/footer/Icons.js +67 -8
  129. package/footer/types.d.ts +64 -0
  130. package/footer/types.js +5 -0
  131. package/grid/Grid.d.ts +7 -0
  132. package/grid/Grid.js +76 -0
  133. package/grid/Grid.stories.tsx +219 -0
  134. package/grid/types.d.ts +115 -0
  135. package/grid/types.js +5 -0
  136. package/header/Header.d.ts +8 -0
  137. package/header/Header.js +115 -221
  138. package/header/Header.stories.tsx +251 -0
  139. package/header/Header.test.js +66 -0
  140. package/header/Icons.d.ts +2 -0
  141. package/header/Icons.js +5 -35
  142. package/header/types.d.ts +33 -0
  143. package/header/types.js +5 -0
  144. package/heading/Heading.d.ts +4 -0
  145. package/heading/Heading.js +16 -55
  146. package/heading/Heading.stories.tsx +54 -0
  147. package/heading/Heading.test.js +169 -0
  148. package/heading/types.d.ts +33 -0
  149. package/heading/types.js +5 -0
  150. package/image/Image.d.ts +4 -0
  151. package/image/Image.js +70 -0
  152. package/image/Image.stories.tsx +129 -0
  153. package/image/types.d.ts +72 -0
  154. package/image/types.js +5 -0
  155. package/inset/Inset.d.ts +3 -0
  156. package/inset/Inset.js +43 -0
  157. package/inset/Inset.stories.tsx +230 -0
  158. package/inset/types.d.ts +37 -0
  159. package/inset/types.js +5 -0
  160. package/layout/ApplicationLayout.d.ts +20 -0
  161. package/layout/ApplicationLayout.js +83 -184
  162. package/layout/ApplicationLayout.stories.tsx +162 -0
  163. package/layout/Icons.d.ts +8 -0
  164. package/layout/Icons.js +51 -48
  165. package/layout/SidenavContext.d.ts +5 -0
  166. package/layout/SidenavContext.js +13 -0
  167. package/layout/types.d.ts +41 -0
  168. package/layout/types.js +5 -0
  169. package/link/Link.d.ts +4 -0
  170. package/link/Link.js +65 -133
  171. package/link/Link.stories.tsx +253 -0
  172. package/link/Link.test.js +63 -0
  173. package/link/types.d.ts +54 -0
  174. package/link/types.js +5 -0
  175. package/main.d.ts +17 -14
  176. package/main.js +78 -98
  177. package/nav-tabs/NavTabs.d.ts +8 -0
  178. package/nav-tabs/NavTabs.js +93 -0
  179. package/nav-tabs/NavTabs.stories.tsx +276 -0
  180. package/nav-tabs/NavTabs.test.js +76 -0
  181. package/nav-tabs/Tab.d.ts +4 -0
  182. package/nav-tabs/Tab.js +118 -0
  183. package/nav-tabs/types.d.ts +52 -0
  184. package/nav-tabs/types.js +5 -0
  185. package/number-input/NumberInput.d.ts +11 -0
  186. package/number-input/NumberInput.js +49 -91
  187. package/number-input/NumberInput.stories.tsx +131 -0
  188. package/number-input/NumberInput.test.js +989 -0
  189. package/number-input/types.d.ts +130 -0
  190. package/number-input/types.js +5 -0
  191. package/package.json +46 -45
  192. package/paginator/Icons.d.ts +5 -0
  193. package/paginator/Icons.js +21 -47
  194. package/paginator/Paginator.js +35 -98
  195. package/paginator/Paginator.stories.tsx +87 -0
  196. package/paginator/Paginator.test.js +335 -0
  197. package/paginator/types.d.ts +3 -3
  198. package/paragraph/Paragraph.d.ts +5 -0
  199. package/paragraph/Paragraph.js +22 -0
  200. package/paragraph/Paragraph.stories.tsx +27 -0
  201. package/password-input/Icons.d.ts +6 -0
  202. package/password-input/Icons.js +35 -0
  203. package/password-input/PasswordInput.d.ts +4 -0
  204. package/password-input/PasswordInput.js +60 -162
  205. package/password-input/{PasswordInput.stories.jsx → PasswordInput.stories.tsx} +3 -35
  206. package/password-input/PasswordInput.test.js +198 -0
  207. package/password-input/types.d.ts +111 -0
  208. package/password-input/types.js +5 -0
  209. package/progress-bar/ProgressBar.js +67 -93
  210. package/progress-bar/ProgressBar.stories.tsx +93 -0
  211. package/progress-bar/ProgressBar.test.js +93 -0
  212. package/progress-bar/types.d.ts +3 -3
  213. package/quick-nav/QuickNav.d.ts +4 -0
  214. package/quick-nav/QuickNav.js +94 -0
  215. package/quick-nav/QuickNav.stories.tsx +356 -0
  216. package/quick-nav/types.d.ts +21 -0
  217. package/quick-nav/types.js +5 -0
  218. package/radio-group/Radio.d.ts +4 -0
  219. package/radio-group/Radio.js +124 -0
  220. package/radio-group/RadioGroup.d.ts +4 -0
  221. package/radio-group/RadioGroup.js +235 -0
  222. package/radio-group/RadioGroup.stories.tsx +214 -0
  223. package/radio-group/RadioGroup.test.js +756 -0
  224. package/radio-group/types.d.ts +114 -0
  225. package/radio-group/types.js +5 -0
  226. package/resultset-table/Icons.d.ts +7 -0
  227. package/resultset-table/Icons.js +47 -0
  228. package/resultset-table/ResultsetTable.d.ts +7 -0
  229. package/resultset-table/ResultsetTable.js +166 -0
  230. package/resultset-table/ResultsetTable.stories.tsx +397 -0
  231. package/resultset-table/ResultsetTable.test.js +371 -0
  232. package/resultset-table/types.d.ts +73 -0
  233. package/resultset-table/types.js +5 -0
  234. package/select/Icons.d.ts +10 -0
  235. package/select/Icons.js +89 -0
  236. package/select/Listbox.d.ts +4 -0
  237. package/select/Listbox.js +143 -0
  238. package/select/Option.d.ts +4 -0
  239. package/select/Option.js +87 -0
  240. package/select/Select.d.ts +4 -0
  241. package/select/Select.js +240 -515
  242. package/select/Select.stories.tsx +971 -0
  243. package/select/Select.test.js +2370 -0
  244. package/select/types.d.ts +209 -0
  245. package/select/types.js +5 -0
  246. package/sidenav/Icons.d.ts +7 -0
  247. package/sidenav/Icons.js +47 -0
  248. package/sidenav/Sidenav.d.ts +10 -0
  249. package/sidenav/Sidenav.js +132 -81
  250. package/sidenav/Sidenav.stories.tsx +282 -0
  251. package/sidenav/Sidenav.test.js +37 -0
  252. package/sidenav/types.d.ts +76 -0
  253. package/sidenav/types.js +5 -0
  254. package/slider/Slider.d.ts +2 -2
  255. package/slider/Slider.js +162 -183
  256. package/slider/Slider.test.js +254 -0
  257. package/slider/types.d.ts +13 -10
  258. package/spinner/Spinner.d.ts +4 -0
  259. package/spinner/Spinner.js +38 -99
  260. package/spinner/Spinner.stories.tsx +129 -0
  261. package/spinner/Spinner.test.js +55 -0
  262. package/spinner/types.d.ts +32 -0
  263. package/spinner/types.js +5 -0
  264. package/status-light/StatusLight.d.ts +4 -0
  265. package/status-light/StatusLight.js +51 -0
  266. package/status-light/StatusLight.stories.tsx +74 -0
  267. package/status-light/StatusLight.test.js +25 -0
  268. package/status-light/types.d.ts +17 -0
  269. package/status-light/types.js +5 -0
  270. package/switch/Switch.d.ts +2 -2
  271. package/switch/Switch.js +150 -115
  272. package/switch/Switch.stories.tsx +137 -0
  273. package/switch/Switch.test.js +180 -0
  274. package/switch/types.d.ts +13 -5
  275. package/table/DropdownTheme.js +62 -0
  276. package/table/Table.d.ts +8 -0
  277. package/table/Table.js +89 -37
  278. package/table/Table.stories.tsx +658 -0
  279. package/table/Table.test.js +113 -0
  280. package/table/types.d.ts +63 -0
  281. package/table/types.js +5 -0
  282. package/tabs/Tab.d.ts +4 -0
  283. package/tabs/Tab.js +116 -0
  284. package/tabs/Tabs.d.ts +4 -0
  285. package/tabs/Tabs.js +319 -194
  286. package/tabs/Tabs.stories.tsx +226 -0
  287. package/tabs/Tabs.test.js +294 -0
  288. package/tabs/types.d.ts +92 -0
  289. package/tabs/types.js +5 -0
  290. package/tag/Tag.d.ts +4 -0
  291. package/tag/Tag.js +55 -112
  292. package/tag/Tag.stories.tsx +155 -0
  293. package/tag/Tag.test.js +49 -0
  294. package/tag/types.d.ts +69 -0
  295. package/tag/types.js +5 -0
  296. package/text-input/Icons.d.ts +8 -0
  297. package/text-input/Icons.js +56 -0
  298. package/text-input/Suggestion.d.ts +4 -0
  299. package/text-input/Suggestion.js +67 -0
  300. package/text-input/Suggestions.d.ts +4 -0
  301. package/text-input/Suggestions.js +84 -0
  302. package/text-input/TextInput.d.ts +4 -0
  303. package/text-input/TextInput.js +333 -593
  304. package/text-input/TextInput.stories.tsx +465 -0
  305. package/text-input/TextInput.test.js +1756 -0
  306. package/text-input/types.d.ts +205 -0
  307. package/text-input/types.js +5 -0
  308. package/textarea/Textarea.d.ts +4 -0
  309. package/textarea/Textarea.js +98 -181
  310. package/textarea/Textarea.stories.tsx +174 -0
  311. package/textarea/Textarea.test.js +406 -0
  312. package/textarea/types.d.ts +141 -0
  313. package/textarea/types.js +5 -0
  314. package/toggle-group/ToggleGroup.d.ts +4 -0
  315. package/toggle-group/ToggleGroup.js +100 -142
  316. package/toggle-group/ToggleGroup.stories.tsx +218 -0
  317. package/toggle-group/ToggleGroup.test.js +137 -0
  318. package/toggle-group/types.d.ts +114 -0
  319. package/toggle-group/types.js +5 -0
  320. package/typography/Typography.d.ts +4 -0
  321. package/typography/Typography.js +23 -0
  322. package/typography/Typography.stories.tsx +198 -0
  323. package/typography/types.d.ts +18 -0
  324. package/typography/types.js +5 -0
  325. package/useTheme.d.ts +1148 -0
  326. package/useTheme.js +4 -11
  327. package/useTranslatedLabels.d.ts +85 -0
  328. package/useTranslatedLabels.js +14 -0
  329. package/utils/BaseTypography.d.ts +21 -0
  330. package/utils/BaseTypography.js +94 -0
  331. package/utils/FocusLock.d.ts +13 -0
  332. package/utils/FocusLock.js +124 -0
  333. package/wizard/Wizard.d.ts +4 -0
  334. package/wizard/Wizard.js +130 -151
  335. package/wizard/Wizard.stories.tsx +253 -0
  336. package/wizard/Wizard.test.js +114 -0
  337. package/wizard/types.d.ts +64 -0
  338. package/wizard/types.js +5 -0
  339. package/ThemeContext.js +0 -246
  340. package/V3Select/V3Select.js +0 -455
  341. package/V3Select/index.d.ts +0 -27
  342. package/V3Textarea/V3Textarea.js +0 -260
  343. package/V3Textarea/index.d.ts +0 -27
  344. package/box/index.d.ts +0 -25
  345. package/chip/index.d.ts +0 -22
  346. package/common/RequiredComponent.js +0 -32
  347. package/date/Date.js +0 -373
  348. package/date/index.d.ts +0 -27
  349. package/dialog/index.d.ts +0 -18
  350. package/dropdown/index.d.ts +0 -26
  351. package/file-input/index.d.ts +0 -81
  352. package/footer/index.d.ts +0 -25
  353. package/header/index.d.ts +0 -25
  354. package/heading/index.d.ts +0 -17
  355. package/input-text/Icons.js +0 -22
  356. package/input-text/InputText.js +0 -611
  357. package/input-text/index.d.ts +0 -36
  358. package/link/index.d.ts +0 -23
  359. package/number-input/NumberInputContext.js +0 -16
  360. package/number-input/index.d.ts +0 -113
  361. package/password-input/index.d.ts +0 -94
  362. package/radio/Radio.d.ts +0 -4
  363. package/radio/Radio.js +0 -174
  364. package/radio/types.d.ts +0 -54
  365. package/resultsetTable/ResultsetTable.js +0 -274
  366. package/resultsetTable/index.d.ts +0 -19
  367. package/select/index.d.ts +0 -131
  368. package/sidenav/index.d.ts +0 -13
  369. package/spinner/index.d.ts +0 -17
  370. package/table/index.d.ts +0 -13
  371. package/tabs/index.d.ts +0 -19
  372. package/tag/index.d.ts +0 -24
  373. package/text-input/index.d.ts +0 -135
  374. package/textarea/Textarea.stories.jsx +0 -135
  375. package/textarea/index.d.ts +0 -117
  376. package/toggle/Toggle.js +0 -186
  377. package/toggle/index.d.ts +0 -21
  378. package/toggle-group/index.d.ts +0 -21
  379. package/upload/Upload.js +0 -201
  380. package/upload/buttons-upload/ButtonsUpload.js +0 -111
  381. package/upload/buttons-upload/Icons.js +0 -40
  382. package/upload/dragAndDropArea/DragAndDropArea.js +0 -225
  383. package/upload/dragAndDropArea/Icons.js +0 -39
  384. package/upload/file-upload/FileToUpload.js +0 -115
  385. package/upload/file-upload/Icons.js +0 -66
  386. package/upload/files-upload/FilesToUpload.js +0 -109
  387. package/upload/index.d.ts +0 -15
  388. package/upload/transaction/Icons.js +0 -160
  389. package/upload/transaction/Transaction.js +0 -104
  390. package/upload/transactions/Transactions.js +0 -94
  391. package/wizard/Icons.js +0 -65
  392. package/wizard/index.d.ts +0 -18
  393. /package/{radio → action-icon}/types.js +0 -0
@@ -0,0 +1,618 @@
1
+ import React from "react";
2
+ import DxcFileInput from "./FileInput";
3
+ import Title from "../../.storybook/components/Title";
4
+ import ExampleContainer from "../../.storybook/components/ExampleContainer";
5
+ import FileItem from "./FileItem";
6
+ import { HalstackProvider } from "../HalstackContext";
7
+
8
+ export default {
9
+ title: "File Input",
10
+ component: DxcFileInput,
11
+ };
12
+
13
+ const picPreview = "https://cdn.mos.cms.futurecdn.net/CAZ6JXi6huSuN4QGE627NR.jpg";
14
+
15
+ const file1 = new File(["file1"], "file.pdf", { type: "text/plain" });
16
+ const file2 = new File(["file2"], "file2.mp3", {
17
+ type: "audio",
18
+ });
19
+ const file3 = new File(["file3"], "file3.png", {
20
+ type: "image/png",
21
+ });
22
+ const file4 = new File(["file4"], "file4file4file4file4file4file4file4file4file4.mp4", {
23
+ type: "video",
24
+ });
25
+ const file5 = new File(["file5"], "file5file5file5file5file5file5file5file5file5.mp4", {
26
+ type: "video",
27
+ });
28
+
29
+ const fileExample = [
30
+ {
31
+ file: file1,
32
+ },
33
+ ];
34
+
35
+ const fileExampleError = [
36
+ {
37
+ error: "Error message",
38
+ file: file1,
39
+ },
40
+ ];
41
+
42
+ const filesExamples = [
43
+ {
44
+ file: file1,
45
+ },
46
+ {
47
+ file: file2,
48
+ },
49
+ {
50
+ file: file3,
51
+ preview: picPreview,
52
+ },
53
+ {
54
+ file: file4,
55
+ },
56
+ {
57
+ error: "This error message is a multiline paragraph for testing.",
58
+ file: file5,
59
+ },
60
+ {
61
+ error: "Error message",
62
+ file: file3,
63
+ preview: picPreview,
64
+ },
65
+ ];
66
+
67
+ const opinionatedTheme = {
68
+ fileInput: {
69
+ fontColor: "#000000",
70
+ },
71
+ };
72
+
73
+ export const Chromatic = () => (
74
+ <>
75
+ <Title title="File item states" theme="light" level={2} />
76
+ <ExampleContainer pseudoState="pseudo-hover">
77
+ <Title title="Hovered" theme="light" level={4} />
78
+ <FileItem
79
+ fileName="file"
80
+ error=""
81
+ singleFileMode={false}
82
+ showPreview={false}
83
+ preview={picPreview}
84
+ type="image/png"
85
+ onDelete={() => {}}
86
+ tabIndex={0}
87
+ />
88
+ </ExampleContainer>
89
+ <ExampleContainer pseudoState="pseudo-focus">
90
+ <Title title="Focused" theme="light" level={4} />
91
+ <FileItem
92
+ fileName="file"
93
+ error=""
94
+ singleFileMode={false}
95
+ showPreview={false}
96
+ preview={picPreview}
97
+ type="image/png"
98
+ onDelete={() => {}}
99
+ tabIndex={0}
100
+ />
101
+ </ExampleContainer>
102
+ <ExampleContainer pseudoState="pseudo-active">
103
+ <Title title="Actived" theme="light" level={4} />
104
+ <FileItem
105
+ fileName="file"
106
+ error=""
107
+ singleFileMode={false}
108
+ showPreview={false}
109
+ preview={picPreview}
110
+ type="image/png"
111
+ onDelete={() => {}}
112
+ tabIndex={0}
113
+ />
114
+ </ExampleContainer>
115
+ <Title title="File" theme="light" level={2} />
116
+ <ExampleContainer>
117
+ <Title title="Without label" theme="light" level={4} />
118
+ <DxcFileInput value={[]} callbackFile={() => {}} />
119
+ </ExampleContainer>
120
+ <ExampleContainer>
121
+ <Title title="With label" theme="light" level={4} />
122
+ <DxcFileInput label="File input" value={[]} callbackFile={() => {}} />
123
+ </ExampleContainer>
124
+ <ExampleContainer>
125
+ <Title title="With label and helper text" theme="light" level={4} />
126
+ <DxcFileInput label="File input" helperText="Please select files" value={[]} callbackFile={() => {}} />
127
+ </ExampleContainer>
128
+ <ExampleContainer>
129
+ <Title title="Single file" theme="light" level={4} />
130
+ <DxcFileInput
131
+ label="File input"
132
+ helperText="Please select files"
133
+ value={fileExample}
134
+ multiple={false}
135
+ callbackFile={() => {}}
136
+ />
137
+ </ExampleContainer>
138
+ <ExampleContainer>
139
+ <Title title="Invalid single file" theme="light" level={4} />
140
+ <DxcFileInput
141
+ label="File input"
142
+ helperText="Please select files"
143
+ value={fileExampleError}
144
+ multiple={false}
145
+ callbackFile={() => {}}
146
+ />
147
+ </ExampleContainer>
148
+ <ExampleContainer>
149
+ <Title title="Multiple files" theme="light" level={4} />
150
+ <DxcFileInput label="File input" helperText="Please select files" value={filesExamples} callbackFile={() => {}} />
151
+ </ExampleContainer>
152
+ <ExampleContainer>
153
+ <Title title="Show preview" theme="light" level={4} />
154
+ <DxcFileInput
155
+ label="File input"
156
+ helperText="Please select files"
157
+ value={filesExamples}
158
+ callbackFile={() => {}}
159
+ showPreview
160
+ />
161
+ </ExampleContainer>
162
+ <ExampleContainer>
163
+ <Title title="Disabled" theme="light" level={4} />
164
+ <DxcFileInput label="File input" helperText="Please select files" disabled value={[]} callbackFile={() => {}} />
165
+ </ExampleContainer>
166
+ <Title title="Margins" theme="light" level={3} />
167
+ <ExampleContainer>
168
+ <Title title="Xxsmall margin" theme="light" level={4} />
169
+ <DxcFileInput
170
+ label="File input"
171
+ helperText="Please select files"
172
+ value={fileExample}
173
+ callbackFile={() => {}}
174
+ margin="xxsmall"
175
+ />
176
+ </ExampleContainer>
177
+ <ExampleContainer>
178
+ <Title title="Xsmall margin" theme="light" level={4} />
179
+ <DxcFileInput
180
+ label="File input"
181
+ helperText="Please select files"
182
+ value={fileExample}
183
+ callbackFile={() => {}}
184
+ margin="xsmall"
185
+ />
186
+ </ExampleContainer>
187
+ <ExampleContainer>
188
+ <Title title="Small margin" theme="light" level={4} />
189
+ <DxcFileInput
190
+ label="File input"
191
+ helperText="Please select files"
192
+ value={fileExample}
193
+ callbackFile={() => {}}
194
+ margin="small"
195
+ />
196
+ </ExampleContainer>
197
+ <ExampleContainer>
198
+ <Title title="Medium margin" theme="light" level={4} />
199
+ <DxcFileInput
200
+ label="File input"
201
+ helperText="Please select files"
202
+ value={fileExample}
203
+ callbackFile={() => {}}
204
+ margin="medium"
205
+ />
206
+ </ExampleContainer>
207
+ <ExampleContainer>
208
+ <Title title="Large margin" theme="light" level={4} />
209
+ <DxcFileInput
210
+ label="File input"
211
+ helperText="Please select files"
212
+ value={fileExample}
213
+ callbackFile={() => {}}
214
+ margin="large"
215
+ />
216
+ </ExampleContainer>
217
+ <ExampleContainer>
218
+ <Title title="Xlarge margin" theme="light" level={4} />
219
+ <DxcFileInput
220
+ label="File input"
221
+ helperText="Please select files"
222
+ value={fileExample}
223
+ callbackFile={() => {}}
224
+ margin="xlarge"
225
+ />
226
+ </ExampleContainer>
227
+ <ExampleContainer>
228
+ <Title title="Xxlarge margin" theme="light" level={4} />
229
+ <DxcFileInput
230
+ label="File input"
231
+ helperText="Please select files"
232
+ value={fileExample}
233
+ callbackFile={() => {}}
234
+ margin="xxlarge"
235
+ />
236
+ </ExampleContainer>
237
+ <Title title="Filedrop" theme="light" level={2} />
238
+ <ExampleContainer>
239
+ <Title title="Without label" theme="light" level={4} />
240
+ <DxcFileInput mode="filedrop" value={[]} callbackFile={() => {}} />
241
+ </ExampleContainer>
242
+ <ExampleContainer>
243
+ <Title title="With label" theme="light" level={4} />
244
+ <DxcFileInput mode="filedrop" label="File input" value={[]} callbackFile={() => {}} />
245
+ </ExampleContainer>
246
+ <ExampleContainer>
247
+ <Title title="With label, helper text and ellipsis" theme="light" level={4} />
248
+ <DxcFileInput
249
+ mode="filedrop"
250
+ label="File input"
251
+ dropAreaLabel="or drop files or drop files or drop files or drop files or drop files"
252
+ helperText="Please select files"
253
+ value={[]}
254
+ callbackFile={() => {}}
255
+ />
256
+ </ExampleContainer>
257
+ <ExampleContainer>
258
+ <Title title="Single file" theme="light" level={4} />
259
+ <DxcFileInput
260
+ mode="filedrop"
261
+ label="File input"
262
+ helperText="Please select files"
263
+ value={fileExample}
264
+ multiple={false}
265
+ callbackFile={() => {}}
266
+ />
267
+ </ExampleContainer>
268
+ <ExampleContainer>
269
+ <Title title="Invalid single file" theme="light" level={4} />
270
+ <DxcFileInput
271
+ mode="filedrop"
272
+ label="File input"
273
+ helperText="Please select files"
274
+ value={fileExampleError}
275
+ multiple={false}
276
+ callbackFile={() => {}}
277
+ />
278
+ </ExampleContainer>
279
+ <ExampleContainer>
280
+ <Title title="Multiple files" theme="light" level={4} />
281
+ <DxcFileInput
282
+ mode="filedrop"
283
+ label="File input"
284
+ helperText="Please select files"
285
+ value={filesExamples}
286
+ callbackFile={() => {}}
287
+ />
288
+ </ExampleContainer>
289
+ <ExampleContainer>
290
+ <Title title="Show preview" theme="light" level={4} />
291
+ <DxcFileInput
292
+ mode="filedrop"
293
+ label="File input"
294
+ helperText="Please select files"
295
+ value={filesExamples}
296
+ callbackFile={() => {}}
297
+ showPreview
298
+ />
299
+ </ExampleContainer>
300
+ <ExampleContainer>
301
+ <Title title="Disabled" theme="light" level={4} />
302
+ <DxcFileInput
303
+ label="File input"
304
+ helperText="Please select files"
305
+ mode="filedrop"
306
+ disabled
307
+ value={[]}
308
+ callbackFile={() => {}}
309
+ />
310
+ </ExampleContainer>
311
+ <Title title="Margins" theme="light" level={3} />
312
+ <ExampleContainer>
313
+ <Title title="Xxsmall margin" theme="light" level={4} />
314
+ <DxcFileInput
315
+ label="File input"
316
+ helperText="Please select files"
317
+ value={fileExample}
318
+ callbackFile={() => {}}
319
+ mode="filedrop"
320
+ margin="xxsmall"
321
+ />
322
+ </ExampleContainer>
323
+ <ExampleContainer>
324
+ <Title title="Xsmall margin" theme="light" level={4} />
325
+ <DxcFileInput
326
+ label="File input"
327
+ helperText="Please select files"
328
+ value={fileExample}
329
+ callbackFile={() => {}}
330
+ mode="filedrop"
331
+ margin="xsmall"
332
+ />
333
+ </ExampleContainer>
334
+ <ExampleContainer>
335
+ <Title title="Small margin" theme="light" level={4} />
336
+ <DxcFileInput
337
+ label="File input"
338
+ helperText="Please select files"
339
+ value={fileExample}
340
+ callbackFile={() => {}}
341
+ mode="filedrop"
342
+ margin="small"
343
+ />
344
+ </ExampleContainer>
345
+ <ExampleContainer>
346
+ <Title title="Medium margin" theme="light" level={4} />
347
+ <DxcFileInput
348
+ label="File input"
349
+ helperText="Please select files"
350
+ value={fileExample}
351
+ callbackFile={() => {}}
352
+ mode="filedrop"
353
+ margin="medium"
354
+ />
355
+ </ExampleContainer>
356
+ <ExampleContainer>
357
+ <Title title="Large margin" theme="light" level={4} />
358
+ <DxcFileInput
359
+ label="File input"
360
+ helperText="Please select files"
361
+ value={fileExample}
362
+ callbackFile={() => {}}
363
+ mode="filedrop"
364
+ margin="large"
365
+ />
366
+ </ExampleContainer>
367
+ <ExampleContainer>
368
+ <Title title="Xlarge margin" theme="light" level={4} />
369
+ <DxcFileInput
370
+ label="File input"
371
+ helperText="Please select files"
372
+ value={fileExample}
373
+ callbackFile={() => {}}
374
+ margin="xlarge"
375
+ />
376
+ </ExampleContainer>
377
+ <ExampleContainer>
378
+ <Title title="Xxlarge margin" theme="light" level={4} />
379
+ <DxcFileInput
380
+ label="File input"
381
+ helperText="Please select files"
382
+ value={fileExample}
383
+ callbackFile={() => {}}
384
+ mode="filedrop"
385
+ margin="xxlarge"
386
+ />
387
+ </ExampleContainer>
388
+ <Title title="Dropzone" theme="light" level={2} />
389
+ <ExampleContainer>
390
+ <Title title="Without label" theme="light" level={4} />
391
+ <DxcFileInput mode="dropzone" value={[]} callbackFile={() => {}} />
392
+ </ExampleContainer>
393
+ <ExampleContainer>
394
+ <Title title="With label" theme="light" level={4} />
395
+ <DxcFileInput label="File input" mode="dropzone" value={[]} callbackFile={() => {}} />
396
+ </ExampleContainer>
397
+ <ExampleContainer>
398
+ <Title title="With label, helper text and ellipsis" theme="light" level={4} />
399
+ <DxcFileInput
400
+ label="File input"
401
+ helperText="Please select files"
402
+ mode="dropzone"
403
+ dropAreaLabel="or drop files or drop files or drop files or drop files or drop files or drop files or drop files or drop files or drop files or drop files or drop files or drop files or drop files or drop files"
404
+ value={[]}
405
+ callbackFile={() => {}}
406
+ />
407
+ </ExampleContainer>
408
+ <ExampleContainer>
409
+ <Title title="Single file" theme="light" level={4} />
410
+ <DxcFileInput
411
+ label="File input"
412
+ helperText="Please select files"
413
+ mode="dropzone"
414
+ value={fileExample}
415
+ callbackFile={() => {}}
416
+ multiple={false}
417
+ />
418
+ </ExampleContainer>
419
+ <ExampleContainer>
420
+ <Title title="Invalid single file" theme="light" level={4} />
421
+ <DxcFileInput
422
+ label="File input"
423
+ helperText="Please select files"
424
+ mode="dropzone"
425
+ value={fileExampleError}
426
+ callbackFile={() => {}}
427
+ multiple={false}
428
+ />
429
+ </ExampleContainer>
430
+ <ExampleContainer>
431
+ <Title title="Multiple files" theme="light" level={4} />
432
+ <DxcFileInput
433
+ mode="dropzone"
434
+ label="File input"
435
+ helperText="Please select files"
436
+ value={filesExamples}
437
+ callbackFile={() => {}}
438
+ />
439
+ </ExampleContainer>
440
+ <ExampleContainer>
441
+ <Title title="Show preview" theme="light" level={4} />
442
+ <DxcFileInput
443
+ mode="dropzone"
444
+ label="File input"
445
+ helperText="Please select files"
446
+ value={filesExamples}
447
+ callbackFile={() => {}}
448
+ showPreview
449
+ />
450
+ </ExampleContainer>
451
+ <ExampleContainer>
452
+ <Title title="Disabled" theme="light" level={4} />
453
+ <DxcFileInput
454
+ label="File input"
455
+ helperText="Please select files"
456
+ mode="dropzone"
457
+ disabled
458
+ value={[]}
459
+ callbackFile={() => {}}
460
+ />
461
+ </ExampleContainer>
462
+ <Title title="Margins" theme="light" level={3} />
463
+ <ExampleContainer>
464
+ <Title title="Xxsmall margin" theme="light" level={4} />
465
+ <DxcFileInput
466
+ label="File input"
467
+ helperText="Please select files"
468
+ value={fileExample}
469
+ callbackFile={() => {}}
470
+ mode="dropzone"
471
+ margin="xxsmall"
472
+ />
473
+ </ExampleContainer>
474
+ <ExampleContainer>
475
+ <Title title="Xsmall margin" theme="light" level={4} />
476
+ <DxcFileInput
477
+ label="File input"
478
+ helperText="Please select files"
479
+ value={fileExample}
480
+ callbackFile={() => {}}
481
+ mode="dropzone"
482
+ margin="xsmall"
483
+ />
484
+ </ExampleContainer>
485
+ <ExampleContainer>
486
+ <Title title="Small margin" theme="light" level={4} />
487
+ <DxcFileInput
488
+ label="File input"
489
+ helperText="Please select files"
490
+ value={fileExample}
491
+ callbackFile={() => {}}
492
+ mode="dropzone"
493
+ margin="small"
494
+ />
495
+ </ExampleContainer>
496
+ <ExampleContainer>
497
+ <Title title="Medium margin" theme="light" level={4} />
498
+ <DxcFileInput
499
+ label="File input"
500
+ helperText="Please select files"
501
+ value={fileExample}
502
+ callbackFile={() => {}}
503
+ mode="dropzone"
504
+ margin="medium"
505
+ />
506
+ </ExampleContainer>
507
+ <ExampleContainer>
508
+ <Title title="Large margin" theme="light" level={4} />
509
+ <DxcFileInput
510
+ label="File input"
511
+ helperText="Please select files"
512
+ value={fileExample}
513
+ callbackFile={() => {}}
514
+ mode="dropzone"
515
+ margin="large"
516
+ />
517
+ </ExampleContainer>
518
+ <ExampleContainer>
519
+ <Title title="Xlarge margin" theme="light" level={4} />
520
+ <DxcFileInput
521
+ label="File input"
522
+ helperText="Please select files"
523
+ value={fileExample}
524
+ callbackFile={() => {}}
525
+ mode="dropzone"
526
+ margin="xlarge"
527
+ />
528
+ </ExampleContainer>
529
+ <ExampleContainer>
530
+ <Title title="Xxlarge margin" theme="light" level={4} />
531
+ <DxcFileInput
532
+ label="File input"
533
+ helperText="Please select files"
534
+ value={fileExample}
535
+ callbackFile={() => {}}
536
+ mode="dropzone"
537
+ margin="xxlarge"
538
+ />
539
+ </ExampleContainer>
540
+ <Title title="Opinionated theme" theme="light" level={2} />
541
+ <ExampleContainer>
542
+ <HalstackProvider theme={opinionatedTheme}>
543
+ <Title title="Single file" theme="light" level={4} />
544
+ <DxcFileInput
545
+ label="File input"
546
+ helperText="Please select files"
547
+ value={fileExample}
548
+ multiple={false}
549
+ callbackFile={() => {}}
550
+ />
551
+ </HalstackProvider>
552
+ </ExampleContainer>
553
+ <ExampleContainer>
554
+ <HalstackProvider theme={opinionatedTheme}>
555
+ <Title title="Invalid single file" theme="light" level={4} />
556
+ <DxcFileInput
557
+ label="File input"
558
+ helperText="Please select files"
559
+ value={fileExampleError}
560
+ multiple={false}
561
+ callbackFile={() => {}}
562
+ />
563
+ </HalstackProvider>
564
+ </ExampleContainer>
565
+ <ExampleContainer>
566
+ <Title title="Single file" theme="light" level={4} />
567
+ <HalstackProvider theme={opinionatedTheme}>
568
+ <DxcFileInput
569
+ mode="filedrop"
570
+ label="File input"
571
+ helperText="Please select files"
572
+ value={fileExample}
573
+ multiple={false}
574
+ callbackFile={() => {}}
575
+ />
576
+ </HalstackProvider>
577
+ </ExampleContainer>
578
+ <ExampleContainer>
579
+ <Title title="Invalid single file" theme="light" level={4} />
580
+ <HalstackProvider theme={opinionatedTheme}>
581
+ <DxcFileInput
582
+ mode="filedrop"
583
+ label="File input"
584
+ helperText="Please select files"
585
+ value={fileExampleError}
586
+ multiple={false}
587
+ callbackFile={() => {}}
588
+ />
589
+ </HalstackProvider>
590
+ </ExampleContainer>
591
+ <ExampleContainer>
592
+ <Title title="Single file" theme="light" level={4} />
593
+ <HalstackProvider theme={opinionatedTheme}>
594
+ <DxcFileInput
595
+ label="File input"
596
+ helperText="Please select files"
597
+ mode="dropzone"
598
+ value={fileExample}
599
+ callbackFile={() => {}}
600
+ multiple={false}
601
+ />
602
+ </HalstackProvider>
603
+ </ExampleContainer>
604
+ <ExampleContainer>
605
+ <Title title="Invalid single file" theme="light" level={4} />{" "}
606
+ <HalstackProvider theme={opinionatedTheme}>
607
+ <DxcFileInput
608
+ label="File input"
609
+ helperText="Please select files"
610
+ mode="dropzone"
611
+ value={fileExampleError}
612
+ callbackFile={() => {}}
613
+ multiple={false}
614
+ />
615
+ </HalstackProvider>
616
+ </ExampleContainer>
617
+ </>
618
+ );