@dxc-technology/halstack-react 0.0.0-c908d78 → 0.0.0-ca55cbe

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