@dxc-technology/halstack-react 0.0.0-ecc45e2 → 0.0.0-ede733c

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 (216) hide show
  1. package/BackgroundColorContext.d.ts +2 -2
  2. package/BackgroundColorContext.js +1 -1
  3. package/HalstackContext.d.ts +1329 -5
  4. package/HalstackContext.js +117 -77
  5. package/accordion/Accordion.js +118 -110
  6. package/accordion/Accordion.stories.tsx +103 -15
  7. package/accordion/Accordion.test.js +10 -11
  8. package/accordion/types.d.ts +1 -0
  9. package/accordion-group/AccordionGroup.d.ts +4 -3
  10. package/accordion-group/AccordionGroup.js +24 -65
  11. package/accordion-group/AccordionGroup.stories.tsx +27 -1
  12. package/accordion-group/AccordionGroup.test.js +21 -46
  13. package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
  14. package/accordion-group/AccordionGroupAccordion.js +43 -0
  15. package/accordion-group/types.d.ts +7 -0
  16. package/alert/Alert.js +5 -9
  17. package/alert/Alert.stories.tsx +28 -0
  18. package/alert/Alert.test.js +1 -1
  19. package/bleed/Bleed.stories.tsx +1 -0
  20. package/box/Box.js +4 -6
  21. package/box/Box.stories.tsx +15 -0
  22. package/box/Box.test.js +1 -1
  23. package/box/types.d.ts +1 -0
  24. package/bulleted-list/BulletedList.js +4 -2
  25. package/bulleted-list/BulletedList.stories.tsx +7 -1
  26. package/bulleted-list/types.d.ts +31 -4
  27. package/button/Button.js +13 -16
  28. package/button/Button.stories.tsx +151 -9
  29. package/button/Button.test.js +1 -1
  30. package/button/types.d.ts +3 -3
  31. package/card/Card.js +12 -13
  32. package/card/Card.stories.tsx +12 -13
  33. package/card/Card.test.js +1 -1
  34. package/card/types.d.ts +1 -0
  35. package/checkbox/Checkbox.d.ts +2 -2
  36. package/checkbox/Checkbox.js +94 -101
  37. package/checkbox/Checkbox.stories.tsx +131 -59
  38. package/checkbox/Checkbox.test.js +94 -17
  39. package/checkbox/types.d.ts +4 -0
  40. package/chip/Chip.js +28 -49
  41. package/chip/Chip.stories.tsx +121 -26
  42. package/chip/Chip.test.js +3 -5
  43. package/common/OpenSans.css +68 -80
  44. package/common/coreTokens.d.ts +146 -0
  45. package/common/coreTokens.js +167 -0
  46. package/common/utils.d.ts +1 -0
  47. package/common/utils.js +4 -4
  48. package/common/variables.d.ts +1482 -0
  49. package/common/variables.js +994 -1137
  50. package/date-input/Calendar.d.ts +4 -0
  51. package/date-input/Calendar.js +258 -0
  52. package/date-input/DateInput.js +134 -237
  53. package/date-input/DateInput.stories.tsx +199 -33
  54. package/date-input/DateInput.test.js +494 -138
  55. package/date-input/DatePicker.d.ts +4 -0
  56. package/date-input/DatePicker.js +146 -0
  57. package/date-input/Icons.d.ts +6 -0
  58. package/date-input/Icons.js +75 -0
  59. package/date-input/YearPicker.d.ts +4 -0
  60. package/date-input/YearPicker.js +126 -0
  61. package/date-input/types.d.ts +51 -0
  62. package/dialog/Dialog.js +60 -73
  63. package/dialog/Dialog.stories.tsx +229 -121
  64. package/dialog/Dialog.test.js +302 -3
  65. package/dialog/types.d.ts +3 -2
  66. package/dropdown/Dropdown.js +43 -42
  67. package/dropdown/Dropdown.stories.tsx +210 -84
  68. package/dropdown/Dropdown.test.js +22 -27
  69. package/dropdown/DropdownMenu.js +12 -18
  70. package/dropdown/DropdownMenuItem.js +5 -18
  71. package/dropdown/types.d.ts +3 -3
  72. package/file-input/FileInput.d.ts +2 -2
  73. package/file-input/FileInput.js +174 -220
  74. package/file-input/FileInput.stories.tsx +122 -11
  75. package/file-input/FileInput.test.js +14 -14
  76. package/file-input/FileItem.d.ts +4 -14
  77. package/file-input/FileItem.js +39 -63
  78. package/file-input/types.d.ts +17 -0
  79. package/flex/Flex.d.ts +1 -1
  80. package/flex/Flex.js +33 -19
  81. package/flex/Flex.stories.tsx +35 -26
  82. package/flex/types.d.ts +83 -7
  83. package/footer/Footer.js +6 -8
  84. package/footer/Footer.stories.tsx +99 -1
  85. package/footer/Footer.test.js +14 -26
  86. package/footer/types.d.ts +1 -0
  87. package/grid/Grid.d.ts +7 -0
  88. package/grid/Grid.js +91 -0
  89. package/grid/Grid.stories.tsx +219 -0
  90. package/grid/types.d.ts +115 -0
  91. package/header/Header.d.ts +3 -2
  92. package/header/Header.js +21 -23
  93. package/header/Header.stories.tsx +152 -9
  94. package/header/Header.test.js +2 -2
  95. package/header/types.d.ts +3 -2
  96. package/heading/Heading.js +1 -1
  97. package/heading/Heading.test.js +1 -1
  98. package/inset/Inset.stories.tsx +2 -1
  99. package/layout/ApplicationLayout.d.ts +3 -3
  100. package/layout/ApplicationLayout.js +1 -1
  101. package/layout/ApplicationLayout.stories.tsx +1 -0
  102. package/layout/types.d.ts +2 -3
  103. package/link/Link.js +4 -4
  104. package/link/Link.stories.tsx +60 -0
  105. package/link/Link.test.js +2 -4
  106. package/link/types.d.ts +2 -2
  107. package/main.d.ts +3 -2
  108. package/main.js +9 -1
  109. package/{tabs-nav → nav-tabs}/NavTabs.js +1 -1
  110. package/{tabs-nav → nav-tabs}/NavTabs.stories.tsx +96 -6
  111. package/{tabs-nav → nav-tabs}/NavTabs.test.js +1 -1
  112. package/{tabs-nav → nav-tabs}/Tab.js +38 -18
  113. package/nav-tabs/types.js +5 -0
  114. package/number-input/NumberInput.test.js +44 -8
  115. package/package.json +15 -20
  116. package/paginator/Icons.d.ts +5 -0
  117. package/paginator/Icons.js +16 -28
  118. package/paginator/Paginator.js +7 -15
  119. package/paginator/Paginator.stories.tsx +24 -0
  120. package/paginator/Paginator.test.js +45 -48
  121. package/paragraph/Paragraph.d.ts +3 -4
  122. package/paragraph/Paragraph.js +5 -5
  123. package/password-input/PasswordInput.test.js +14 -13
  124. package/progress-bar/ProgressBar.d.ts +2 -2
  125. package/progress-bar/ProgressBar.js +5 -5
  126. package/progress-bar/ProgressBar.stories.jsx +35 -2
  127. package/progress-bar/ProgressBar.test.js +1 -1
  128. package/progress-bar/types.d.ts +4 -3
  129. package/quick-nav/QuickNav.js +11 -12
  130. package/quick-nav/QuickNav.stories.tsx +111 -19
  131. package/radio-group/Radio.d.ts +1 -1
  132. package/radio-group/Radio.js +43 -28
  133. package/radio-group/RadioGroup.js +15 -13
  134. package/radio-group/RadioGroup.stories.tsx +132 -18
  135. package/radio-group/RadioGroup.test.js +124 -97
  136. package/radio-group/types.d.ts +2 -2
  137. package/resultsetTable/Icons.d.ts +7 -0
  138. package/resultsetTable/Icons.js +51 -0
  139. package/resultsetTable/ResultsetTable.js +49 -108
  140. package/resultsetTable/ResultsetTable.stories.tsx +50 -25
  141. package/resultsetTable/ResultsetTable.test.js +41 -64
  142. package/resultsetTable/types.d.ts +1 -1
  143. package/select/Listbox.d.ts +1 -1
  144. package/select/Listbox.js +5 -35
  145. package/select/Option.js +11 -24
  146. package/select/Select.js +59 -36
  147. package/select/Select.stories.tsx +494 -150
  148. package/select/Select.test.js +341 -288
  149. package/select/types.d.ts +2 -2
  150. package/sidenav/Icons.d.ts +7 -0
  151. package/sidenav/Icons.js +51 -0
  152. package/sidenav/Sidenav.d.ts +2 -2
  153. package/sidenav/Sidenav.js +66 -96
  154. package/sidenav/Sidenav.stories.tsx +165 -63
  155. package/sidenav/types.d.ts +21 -18
  156. package/slider/Slider.d.ts +2 -2
  157. package/slider/Slider.js +119 -95
  158. package/slider/Slider.stories.tsx +64 -1
  159. package/slider/Slider.test.js +88 -25
  160. package/slider/types.d.ts +4 -0
  161. package/spinner/Spinner.js +17 -23
  162. package/spinner/Spinner.stories.jsx +53 -27
  163. package/spinner/Spinner.test.js +1 -1
  164. package/switch/Switch.d.ts +3 -3
  165. package/switch/Switch.js +96 -85
  166. package/switch/Switch.stories.tsx +33 -0
  167. package/switch/Switch.test.js +27 -14
  168. package/switch/types.d.ts +8 -3
  169. package/table/Table.js +3 -3
  170. package/table/Table.stories.jsx +80 -1
  171. package/table/Table.test.js +2 -2
  172. package/tabs/Tab.d.ts +4 -0
  173. package/tabs/Tab.js +132 -0
  174. package/tabs/Tabs.js +358 -108
  175. package/tabs/Tabs.stories.tsx +119 -5
  176. package/tabs/Tabs.test.js +220 -10
  177. package/tabs/types.d.ts +12 -2
  178. package/tag/Tag.js +8 -10
  179. package/tag/Tag.stories.tsx +14 -1
  180. package/tag/Tag.test.js +1 -1
  181. package/text-input/Icons.d.ts +8 -0
  182. package/text-input/Icons.js +60 -0
  183. package/text-input/Suggestion.js +40 -11
  184. package/text-input/Suggestions.d.ts +4 -0
  185. package/text-input/Suggestions.js +134 -0
  186. package/text-input/TextInput.js +189 -277
  187. package/text-input/TextInput.stories.tsx +280 -184
  188. package/text-input/TextInput.test.js +736 -725
  189. package/text-input/types.d.ts +21 -2
  190. package/textarea/Textarea.js +3 -4
  191. package/textarea/Textarea.stories.jsx +60 -1
  192. package/textarea/Textarea.test.js +2 -4
  193. package/toggle-group/ToggleGroup.d.ts +2 -2
  194. package/toggle-group/ToggleGroup.js +7 -4
  195. package/toggle-group/ToggleGroup.stories.tsx +42 -0
  196. package/toggle-group/ToggleGroup.test.js +1 -1
  197. package/toggle-group/types.d.ts +1 -1
  198. package/typography/Typography.d.ts +2 -2
  199. package/typography/Typography.js +14 -113
  200. package/typography/Typography.stories.tsx +1 -1
  201. package/useTheme.d.ts +1234 -1
  202. package/useTheme.js +1 -1
  203. package/useTranslatedLabels.d.ts +84 -1
  204. package/utils/BaseTypography.d.ts +21 -0
  205. package/utils/BaseTypography.js +108 -0
  206. package/utils/FocusLock.d.ts +13 -0
  207. package/utils/FocusLock.js +138 -0
  208. package/wizard/Wizard.js +2 -2
  209. package/wizard/Wizard.stories.tsx +20 -0
  210. package/wizard/Wizard.test.js +1 -1
  211. package/wizard/types.d.ts +5 -6
  212. package/common/RequiredComponent.js +0 -32
  213. /package/{tabs-nav → grid}/types.js +0 -0
  214. /package/{tabs-nav → nav-tabs}/NavTabs.d.ts +0 -0
  215. /package/{tabs-nav → nav-tabs}/Tab.d.ts +0 -0
  216. /package/{tabs-nav → nav-tabs}/types.d.ts +0 -0
@@ -15,10 +15,10 @@ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/hel
15
15
 
16
16
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
17
17
 
18
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
19
-
20
18
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
21
19
 
20
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
21
+
22
22
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
23
23
 
24
24
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
@@ -29,7 +29,7 @@ var _styledComponents = _interopRequireWildcard(require("styled-components"));
29
29
 
30
30
  var _uuid = require("uuid");
31
31
 
32
- var _variables = require("../common/variables.js");
32
+ var _variables = require("../common/variables");
33
33
 
34
34
  var _useTheme = _interopRequireDefault(require("../useTheme"));
35
35
 
@@ -39,7 +39,7 @@ var _Button = _interopRequireDefault(require("../button/Button"));
39
39
 
40
40
  var _FileItem = _interopRequireDefault(require("./FileItem"));
41
41
 
42
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12;
42
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11;
43
43
 
44
44
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
45
45
 
@@ -88,7 +88,18 @@ var fileIcon = /*#__PURE__*/_react["default"].createElement("svg", {
88
88
  d: "M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zM6 20V4h7v5h5v11H6z"
89
89
  }));
90
90
 
91
- var DxcFileInput = function DxcFileInput(_ref) {
91
+ var getFilePreview = function getFilePreview(file) {
92
+ if (file.type.includes("video")) return videoIcon;else if (file.type.includes("audio")) return audioIcon;else if (file.type.includes("image")) return new Promise(function (resolve) {
93
+ var reader = new FileReader();
94
+ reader.readAsDataURL(file);
95
+
96
+ reader.onload = function (e) {
97
+ resolve(e.target.result);
98
+ };
99
+ });else return fileIcon;
100
+ };
101
+
102
+ var DxcFileInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
92
103
  var _ref$name = _ref.name,
93
104
  name = _ref$name === void 0 ? "" : _ref$name,
94
105
  _ref$mode = _ref.mode,
@@ -130,129 +141,26 @@ var DxcFileInput = function DxcFileInput(_ref) {
130
141
 
131
142
  var colorsTheme = (0, _useTheme["default"])();
132
143
  var translatedLabels = (0, _useTranslatedLabels["default"])();
133
- (0, _react.useEffect)(function () {
134
- var getFiles = /*#__PURE__*/function () {
135
- var _ref2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
136
- var valueFiles;
137
- return _regenerator["default"].wrap(function _callee2$(_context2) {
138
- while (1) {
139
- switch (_context2.prev = _context2.next) {
140
- case 0:
141
- if (!value) {
142
- _context2.next = 5;
143
- break;
144
- }
145
-
146
- _context2.next = 3;
147
- return Promise.all(value.map( /*#__PURE__*/function () {
148
- var _ref3 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(file) {
149
- var preview;
150
- return _regenerator["default"].wrap(function _callee$(_context) {
151
- while (1) {
152
- switch (_context.prev = _context.next) {
153
- case 0:
154
- if (!file.preview) {
155
- _context.next = 4;
156
- break;
157
- }
158
-
159
- return _context.abrupt("return", file);
160
-
161
- case 4:
162
- _context.next = 6;
163
- return getFilePreview(file.file);
164
-
165
- case 6:
166
- preview = _context.sent;
167
- return _context.abrupt("return", _objectSpread(_objectSpread({}, file), {}, {
168
- preview: preview
169
- }));
170
-
171
- case 8:
172
- case "end":
173
- return _context.stop();
174
- }
175
- }
176
- }, _callee);
177
- }));
178
-
179
- return function (_x) {
180
- return _ref3.apply(this, arguments);
181
- };
182
- }()));
183
-
184
- case 3:
185
- valueFiles = _context2.sent;
186
- setFiles(valueFiles);
187
-
188
- case 5:
189
- case "end":
190
- return _context2.stop();
191
- }
192
- }
193
- }, _callee2);
194
- }));
195
-
196
- return function getFiles() {
197
- return _ref2.apply(this, arguments);
198
- };
199
- }();
200
-
201
- getFiles();
202
- }, [value]);
203
-
204
- var handleClick = function handleClick() {
205
- document.getElementById(fileInputId).click();
206
- };
207
144
 
208
145
  var checkFileSize = function checkFileSize(file) {
209
- if (file.size < minSize) {
210
- return translatedLabels.fileInput.fileSizeGreaterThanErrorMessage;
211
- }
212
-
213
- if (file.size > maxSize) {
214
- return translatedLabels.fileInput.fileSizeLessThanErrorMessage;
215
- }
216
- };
217
-
218
- var getFilePreview = function getFilePreview(file) {
219
- if (file.type.includes("video")) {
220
- return videoIcon;
221
- }
222
-
223
- if (file.type.includes("audio")) {
224
- return audioIcon;
225
- }
226
-
227
- if (file.type.includes("image")) {
228
- return new Promise(function (resolve) {
229
- var reader = new FileReader();
230
- reader.readAsDataURL(file);
231
-
232
- reader.onload = function (e) {
233
- resolve(e.target.result);
234
- };
235
- });
236
- }
237
-
238
- return fileIcon;
146
+ if (file.size < minSize) return translatedLabels.fileInput.fileSizeGreaterThanErrorMessage;else if (file.size > maxSize) return translatedLabels.fileInput.fileSizeLessThanErrorMessage;
239
147
  };
240
148
 
241
149
  var getFilesToAdd = /*#__PURE__*/function () {
242
- var _ref4 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(selectedFiles) {
150
+ var _ref2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(selectedFiles) {
243
151
  var filesToAdd;
244
- return _regenerator["default"].wrap(function _callee3$(_context3) {
152
+ return _regenerator["default"].wrap(function _callee$(_context) {
245
153
  while (1) {
246
- switch (_context3.prev = _context3.next) {
154
+ switch (_context.prev = _context.next) {
247
155
  case 0:
248
- _context3.next = 2;
156
+ _context.next = 2;
249
157
  return Promise.all(selectedFiles.map(function (selectedFile) {
250
158
  return getFilePreview(selectedFile);
251
159
  })).then(function (previews) {
252
- return selectedFiles.map(function (selectedFile, index) {
160
+ return selectedFiles.map(function (file, index) {
253
161
  var fileInfo = {
254
- file: selectedFile,
255
- error: checkFileSize(selectedFile),
162
+ file: file,
163
+ error: checkFileSize(file),
256
164
  preview: previews[index]
257
165
  };
258
166
  return fileInfo;
@@ -260,86 +168,79 @@ var DxcFileInput = function DxcFileInput(_ref) {
260
168
  });
261
169
 
262
170
  case 2:
263
- filesToAdd = _context3.sent;
264
- return _context3.abrupt("return", filesToAdd);
171
+ filesToAdd = _context.sent;
172
+ return _context.abrupt("return", filesToAdd);
265
173
 
266
174
  case 4:
267
175
  case "end":
268
- return _context3.stop();
176
+ return _context.stop();
269
177
  }
270
178
  }
271
- }, _callee3);
179
+ }, _callee);
272
180
  }));
273
181
 
274
- return function getFilesToAdd(_x2) {
275
- return _ref4.apply(this, arguments);
182
+ return function getFilesToAdd(_x) {
183
+ return _ref2.apply(this, arguments);
276
184
  };
277
185
  }();
278
186
 
279
187
  var addFile = /*#__PURE__*/function () {
280
- var _ref5 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4(selectedFiles) {
188
+ var _ref3 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(selectedFiles) {
281
189
  var filesToAdd, finalFiles, fileToAdd;
282
- return _regenerator["default"].wrap(function _callee4$(_context4) {
190
+ return _regenerator["default"].wrap(function _callee2$(_context2) {
283
191
  while (1) {
284
- switch (_context4.prev = _context4.next) {
192
+ switch (_context2.prev = _context2.next) {
285
193
  case 0:
286
194
  if (!multiple) {
287
- _context4.next = 8;
195
+ _context2.next = 8;
288
196
  break;
289
197
  }
290
198
 
291
- _context4.next = 3;
199
+ _context2.next = 3;
292
200
  return getFilesToAdd(selectedFiles);
293
201
 
294
202
  case 3:
295
- filesToAdd = _context4.sent;
203
+ filesToAdd = _context2.sent;
296
204
  finalFiles = [].concat((0, _toConsumableArray2["default"])(files), (0, _toConsumableArray2["default"])(filesToAdd));
297
-
298
- if (typeof callbackFile === "function") {
299
- callbackFile(finalFiles);
300
- }
301
-
302
- _context4.next = 19;
205
+ callbackFile === null || callbackFile === void 0 ? void 0 : callbackFile(finalFiles);
206
+ _context2.next = 19;
303
207
  break;
304
208
 
305
209
  case 8:
306
210
  if (!(selectedFiles.length === 1)) {
307
- _context4.next = 14;
211
+ _context2.next = 14;
308
212
  break;
309
213
  }
310
214
 
311
- _context4.next = 11;
215
+ _context2.next = 11;
312
216
  return getFilesToAdd(selectedFiles);
313
217
 
314
218
  case 11:
315
- _context4.t0 = _context4.sent;
316
- _context4.next = 17;
219
+ _context2.t0 = _context2.sent;
220
+ _context2.next = 17;
317
221
  break;
318
222
 
319
223
  case 14:
320
- _context4.next = 16;
224
+ _context2.next = 16;
321
225
  return getFilesToAdd([selectedFiles[0]]);
322
226
 
323
227
  case 16:
324
- _context4.t0 = _context4.sent;
228
+ _context2.t0 = _context2.sent;
325
229
 
326
230
  case 17:
327
- fileToAdd = _context4.t0;
328
-
329
- if (typeof callbackFile === "function") {
330
- callbackFile(fileToAdd);
331
- }
231
+ fileToAdd = _context2.t0;
232
+ callbackFile === null || callbackFile === void 0 ? void 0 : callbackFile(fileToAdd);
332
233
 
333
234
  case 19:
334
235
  case "end":
335
- return _context4.stop();
236
+ return _context2.stop();
336
237
  }
337
238
  }
338
- }, _callee4);
239
+ }, _callee2);
339
240
  }));
340
241
 
341
- return function addFile(_x3) {
342
- return _ref5.apply(this, arguments);
242
+ return function addFile(_x2) {
243
+ return _ref3.apply(this, arguments);
343
244
  };
344
245
  }();
345
246
 
@@ -349,19 +250,21 @@ var DxcFileInput = function DxcFileInput(_ref) {
349
250
  return selectedFiles[key];
350
251
  });
351
252
  addFile(filesArray);
253
+ e.target.value = null;
352
254
  };
353
255
 
354
- var onDelete = function onDelete(fileName) {
256
+ var onDelete = (0, _react.useCallback)(function (fileName) {
355
257
  var filesCopy = (0, _toConsumableArray2["default"])(files);
356
258
  var fileToRemove = filesCopy.find(function (file) {
357
259
  return file.file.name === fileName;
358
260
  });
359
261
  var fileIndex = filesCopy.indexOf(fileToRemove);
360
262
  filesCopy.splice(fileIndex, 1);
263
+ callbackFile === null || callbackFile === void 0 ? void 0 : callbackFile(filesCopy);
264
+ }, [files, callbackFile]);
361
265
 
362
- if (typeof callbackFile === "function") {
363
- callbackFile(filesCopy);
364
- }
266
+ var handleClick = function handleClick() {
267
+ document.getElementById(fileInputId).click();
365
268
  };
366
269
 
367
270
  var handleDrag = function handleDrag(e) {
@@ -370,7 +273,9 @@ var DxcFileInput = function DxcFileInput(_ref) {
370
273
  };
371
274
 
372
275
  var handleDragIn = function handleDragIn(e) {
373
- if (e.dataTransfer.items && e.dataTransfer.items.length > 0) setIsDragging(true);
276
+ var _e$dataTransfer$items;
277
+
278
+ if (((_e$dataTransfer$items = e.dataTransfer.items) === null || _e$dataTransfer$items === void 0 ? void 0 : _e$dataTransfer$items.length) > 0) setIsDragging(true);
374
279
  };
375
280
 
376
281
  var handleDragOut = function handleDragOut(e) {
@@ -384,7 +289,7 @@ var DxcFileInput = function DxcFileInput(_ref) {
384
289
  setIsDragging(false);
385
290
  var filesObject = e.dataTransfer.files;
386
291
 
387
- if (filesObject && filesObject.length > 0) {
292
+ if ((filesObject === null || filesObject === void 0 ? void 0 : filesObject.length) > 0) {
388
293
  var filesArray = Object.keys(filesObject).map(function (key) {
389
294
  return filesObject[key];
390
295
  });
@@ -392,55 +297,123 @@ var DxcFileInput = function DxcFileInput(_ref) {
392
297
  }
393
298
  };
394
299
 
300
+ (0, _react.useEffect)(function () {
301
+ var getFiles = /*#__PURE__*/function () {
302
+ var _ref4 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4() {
303
+ var valueFiles;
304
+ return _regenerator["default"].wrap(function _callee4$(_context4) {
305
+ while (1) {
306
+ switch (_context4.prev = _context4.next) {
307
+ case 0:
308
+ if (!value) {
309
+ _context4.next = 5;
310
+ break;
311
+ }
312
+
313
+ _context4.next = 3;
314
+ return Promise.all(value.map( /*#__PURE__*/function () {
315
+ var _ref5 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(file) {
316
+ var preview;
317
+ return _regenerator["default"].wrap(function _callee3$(_context3) {
318
+ while (1) {
319
+ switch (_context3.prev = _context3.next) {
320
+ case 0:
321
+ if (!file.preview) {
322
+ _context3.next = 4;
323
+ break;
324
+ }
325
+
326
+ return _context3.abrupt("return", file);
327
+
328
+ case 4:
329
+ _context3.next = 6;
330
+ return getFilePreview(file.file);
331
+
332
+ case 6:
333
+ preview = _context3.sent;
334
+ return _context3.abrupt("return", _objectSpread(_objectSpread({}, file), {}, {
335
+ preview: preview
336
+ }));
337
+
338
+ case 8:
339
+ case "end":
340
+ return _context3.stop();
341
+ }
342
+ }
343
+ }, _callee3);
344
+ }));
345
+
346
+ return function (_x3) {
347
+ return _ref5.apply(this, arguments);
348
+ };
349
+ }()));
350
+
351
+ case 3:
352
+ valueFiles = _context4.sent;
353
+ setFiles(valueFiles);
354
+
355
+ case 5:
356
+ case "end":
357
+ return _context4.stop();
358
+ }
359
+ }
360
+ }, _callee4);
361
+ }));
362
+
363
+ return function getFiles() {
364
+ return _ref4.apply(this, arguments);
365
+ };
366
+ }();
367
+
368
+ getFiles();
369
+ }, [value]);
395
370
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
396
371
  theme: colorsTheme.fileInput
397
372
  }, /*#__PURE__*/_react["default"].createElement(FileInputContainer, {
398
373
  margin: margin,
399
- name: name
374
+ ref: ref
400
375
  }, /*#__PURE__*/_react["default"].createElement(Label, {
401
376
  htmlFor: fileInputId,
402
377
  disabled: disabled
403
378
  }, label), /*#__PURE__*/_react["default"].createElement(HelperText, {
404
379
  disabled: disabled
405
380
  }, helperText), mode === "file" ? /*#__PURE__*/_react["default"].createElement(FileContainer, {
406
- multiple: multiple,
407
- files: files
408
- }, /*#__PURE__*/_react["default"].createElement(HiddenInputFile, {
381
+ singleFileMode: !multiple && files.length === 1
382
+ }, /*#__PURE__*/_react["default"].createElement(ValueInput, {
409
383
  id: fileInputId,
410
384
  type: "file",
411
385
  accept: accept,
412
386
  multiple: multiple,
413
- onChange: selectFiles
387
+ onChange: selectFiles,
388
+ disabled: disabled,
389
+ readOnly: true
414
390
  }), /*#__PURE__*/_react["default"].createElement(_Button["default"], {
415
391
  mode: "secondary",
416
392
  label: buttonLabel !== null && buttonLabel !== void 0 ? buttonLabel : multiple ? translatedLabels.fileInput.multipleButtonLabelDefault : translatedLabels.fileInput.singleButtonLabelDefault,
417
393
  onClick: handleClick,
418
394
  disabled: disabled,
419
- size: "medium",
395
+ size: "fitContent",
420
396
  tabIndex: tabIndex
421
- }), files.map(function (file) {
422
- return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(FileItemContainer, {
423
- mode: mode,
424
- multiple: multiple,
425
- files: files
426
- }, /*#__PURE__*/_react["default"].createElement(_FileItem["default"], {
427
- mode: mode,
428
- multiple: multiple,
429
- name: file.file.name,
397
+ }), files.length > 0 && /*#__PURE__*/_react["default"].createElement(FileItemListContainer, null, files.map(function (file, index) {
398
+ return /*#__PURE__*/_react["default"].createElement(_FileItem["default"], {
399
+ fileName: file.file.name,
430
400
  error: file.error,
401
+ singleFileMode: !multiple && files.length === 1,
431
402
  showPreview: mode === "file" && !multiple ? false : showPreview,
432
- numFiles: files.length,
433
403
  preview: file.preview,
434
404
  type: file.file.type,
435
405
  onDelete: onDelete,
436
- tabIndex: tabIndex
437
- })));
438
- })) : /*#__PURE__*/_react["default"].createElement(Container, null, /*#__PURE__*/_react["default"].createElement(HiddenInputFile, {
406
+ tabIndex: tabIndex,
407
+ key: "file-".concat(index)
408
+ });
409
+ }))) : /*#__PURE__*/_react["default"].createElement(Container, null, /*#__PURE__*/_react["default"].createElement(ValueInput, {
439
410
  id: fileInputId,
440
411
  type: "file",
441
412
  accept: accept,
442
413
  multiple: multiple,
443
- onChange: selectFiles
414
+ onChange: selectFiles,
415
+ disabled: disabled,
416
+ readOnly: true
444
417
  }), /*#__PURE__*/_react["default"].createElement(DragDropArea, {
445
418
  isDragging: isDragging,
446
419
  disabled: disabled,
@@ -449,39 +422,30 @@ var DxcFileInput = function DxcFileInput(_ref) {
449
422
  onDragEnter: handleDragIn,
450
423
  onDragOver: handleDrag,
451
424
  onDragLeave: handleDragOut
452
- }, /*#__PURE__*/_react["default"].createElement(ButtonContainer, {
453
- mode: mode
454
425
  }, /*#__PURE__*/_react["default"].createElement(_Button["default"], {
455
426
  mode: "secondary",
456
427
  label: buttonLabel !== null && buttonLabel !== void 0 ? buttonLabel : translatedLabels.fileInput.dropAreaButtonLabelDefault,
457
428
  onClick: handleClick,
458
429
  disabled: disabled,
459
430
  size: "fitContent"
460
- })), mode === "dropzone" ? /*#__PURE__*/_react["default"].createElement(DropzoneLabel, {
431
+ }), mode === "dropzone" ? /*#__PURE__*/_react["default"].createElement(DropzoneLabel, {
461
432
  disabled: disabled
462
433
  }, dropAreaLabel !== null && dropAreaLabel !== void 0 ? dropAreaLabel : multiple ? translatedLabels.fileInput.multipleDropAreaLabelDefault : translatedLabels.fileInput.singleDropAreaLabelDefault) : /*#__PURE__*/_react["default"].createElement(FiledropLabel, {
463
434
  disabled: disabled
464
- }, dropAreaLabel !== null && dropAreaLabel !== void 0 ? dropAreaLabel : multiple ? translatedLabels.fileInput.multipleDropAreaLabelDefault : translatedLabels.fileInput.singleDropAreaLabelDefault)), files.map(function (file) {
465
- return /*#__PURE__*/_react["default"].createElement(FileItemContainer, {
466
- mode: mode,
467
- multiple: multiple,
468
- files: files
469
- }, /*#__PURE__*/_react["default"].createElement(_FileItem["default"], {
470
- mode: mode,
471
- multiple: multiple,
472
- name: file.file.name,
435
+ }, dropAreaLabel !== null && dropAreaLabel !== void 0 ? dropAreaLabel : multiple ? translatedLabels.fileInput.multipleDropAreaLabelDefault : translatedLabels.fileInput.singleDropAreaLabelDefault)), files.length > 0 && /*#__PURE__*/_react["default"].createElement(FileItemListContainer, null, files.map(function (file, index) {
436
+ return /*#__PURE__*/_react["default"].createElement(_FileItem["default"], {
437
+ fileName: file.file.name,
473
438
  error: file.error,
439
+ singleFileMode: false,
474
440
  showPreview: showPreview,
475
- numFiles: files.length,
476
441
  preview: file.preview,
477
442
  type: file.file.type,
478
443
  onDelete: onDelete,
479
- tabIndex: tabIndex
480
- }));
481
- })), files.length === 1 && files.map(function (file) {
482
- return file.error && mode === "file" && !multiple && /*#__PURE__*/_react["default"].createElement(ErrorMessage, null, file.error);
483
- })));
484
- };
444
+ tabIndex: tabIndex,
445
+ key: "file-".concat(index)
446
+ });
447
+ }))), mode === "file" && !multiple && files.length === 1 && files[0].error && /*#__PURE__*/_react["default"].createElement(ErrorMessage, null, files[0].error)));
448
+ });
485
449
 
486
450
  var FileInputContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n width: fit-content;\n"])), function (props) {
487
451
  return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
@@ -519,12 +483,20 @@ var HelperText = _styledComponents["default"].span(_templateObject3 || (_templat
519
483
  return props.theme.helperTextLineHeight;
520
484
  });
521
485
 
522
- var DragDropArea = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n overflow: hidden;\n box-sizing: border-box;\n flex-direction: ", ";\n ", ";\n align-items: center;\n height: ", ";\n width: 320px;\n\n box-shadow: 0 0 0 2px transparent;\n border-radius: ", ";\n border-width: ", ";\n border-style: ", ";\n border-color: ", ";\n\n ", "\n\n cursor: ", ";\n"])), function (props) {
523
- return props.mode === "filedrop" ? "row" : "column";
524
- }, function (props) {
525
- return props.mode === "dropzone" && "justify-content: center; padding: 1rem;";
486
+ var FileContainer = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n ", "\n margin-top: 0.25rem;\n"])), function (props) {
487
+ return props.singleFileMode ? "flex-direction: row; column-gap: 0.25rem;" : "flex-direction: column; row-gap: 0.25rem;";
488
+ });
489
+
490
+ var ValueInput = _styledComponents["default"].input(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n display: none;\n"])));
491
+
492
+ var FileItemListContainer = _styledComponents["default"].div(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n row-gap: 0.25rem;\n"])));
493
+
494
+ var Container = _styledComponents["default"].div(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n row-gap: 0.25rem;\n margin-top: 0.25rem;\n"])));
495
+
496
+ var DragDropArea = _styledComponents["default"].div(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n display: flex;\n ", "\n align-items: center;\n width: 320px;\n padding: ", ";\n overflow: hidden;\n box-shadow: 0 0 0 2px transparent;\n border-radius: ", ";\n border-width: ", ";\n border-style: ", ";\n border-color: ", ";\n ", "\n cursor: ", ";\n"])), function (props) {
497
+ return props.mode === "filedrop" ? "flex-direction: row; column-gap: 0.75rem; height: 48px;" : "justify-content: center; flex-direction: column; row-gap: 0.5rem; height: 160px;";
526
498
  }, function (props) {
527
- return props.mode === "filedrop" ? "48px" : "160px";
499
+ return props.mode === "filedrop" ? "calc(4px - ".concat(props.theme.dropBorderThickness, ") 1rem calc(4px - ").concat(props.theme.dropBorderThickness, ") calc(4px - ").concat(props.theme.dropBorderThickness, ")") : "1rem";
528
500
  }, function (props) {
529
501
  return props.theme.dropBorderRadius;
530
502
  }, function (props) {
@@ -539,17 +511,7 @@ var DragDropArea = _styledComponents["default"].div(_templateObject4 || (_templa
539
511
  return props.disabled && "not-allowed";
540
512
  });
541
513
 
542
- var FileContainer = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: ", ";\n margin-top: 0.25rem;\n"])), function (props) {
543
- return props.multiple || props.files.length > 1 ? "column" : "row";
544
- });
545
-
546
- var HiddenInputFile = _styledComponents["default"].input(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n visibility: hidden;\n position: absolute;\n width: 0px;\n height: 0px;\n"])));
547
-
548
- var ButtonContainer = _styledComponents["default"].div(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n ", ";\n"])), function (props) {
549
- return props.mode === "filedrop" && "padding: 2px 12px 2px 3px";
550
- });
551
-
552
- var DropzoneLabel = _styledComponents["default"].div(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["\n display: -webkit-box;\n -webkit-box-orient: vertical;\n overflow: hidden;\n text-overflow: ellipsis;\n -webkit-line-clamp: 3;\n text-align: center;\n margin-top: 0.5rem;\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-weight: ", ";\n"])), function (props) {
514
+ var DropzoneLabel = _styledComponents["default"].div(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])(["\n display: -webkit-box;\n -webkit-box-orient: vertical;\n overflow: hidden;\n text-overflow: ellipsis;\n -webkit-line-clamp: 3;\n text-align: center;\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-weight: ", ";\n"])), function (props) {
553
515
  return props.disabled ? props.theme.disabledDropLabelFontColor : props.theme.dropLabelFontColor;
554
516
  }, function (props) {
555
517
  return props.theme.dropLabelFontFamily;
@@ -559,7 +521,7 @@ var DropzoneLabel = _styledComponents["default"].div(_templateObject8 || (_templ
559
521
  return props.theme.dropLabelFontWeight;
560
522
  });
561
523
 
562
- var FiledropLabel = _styledComponents["default"].span(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])(["\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-weight: ", ";\n margin-right: 1rem;\n"])), function (props) {
524
+ var FiledropLabel = _styledComponents["default"].span(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2["default"])(["\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-weight: ", ";\n"])), function (props) {
563
525
  return props.disabled ? props.theme.disabledDropLabelFontColor : props.theme.dropLabelFontColor;
564
526
  }, function (props) {
565
527
  return props.theme.dropLabelFontFamily;
@@ -569,15 +531,7 @@ var FiledropLabel = _styledComponents["default"].span(_templateObject9 || (_temp
569
531
  return props.theme.dropLabelFontWeight;
570
532
  });
571
533
 
572
- var Container = _styledComponents["default"].div(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n margin-top: 0.25rem;\n"])));
573
-
574
- var FileItemContainer = _styledComponents["default"].div(_templateObject11 || (_templateObject11 = (0, _taggedTemplateLiteral2["default"])(["\n margin-top: ", ";\n margin-left: ", ";\n"])), function (props) {
575
- return (props.multiple || props.files.length > 1 || props.mode !== "file") && "4px";
576
- }, function (props) {
577
- return props.mode === "file" && props.files.length === 1 && !props.multiple && "4px";
578
- });
579
-
580
- var ErrorMessage = _styledComponents["default"].div(_templateObject12 || (_templateObject12 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-weight: ", ";\n line-height: ", ";\n margin-top: 0.25rem;\n"])), function (props) {
534
+ var ErrorMessage = _styledComponents["default"].div(_templateObject11 || (_templateObject11 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-weight: ", ";\n line-height: ", ";\n margin-top: 0.25rem;\n"])), function (props) {
581
535
  return props.theme.errorMessageFontColor;
582
536
  }, function (props) {
583
537
  return props.theme.errorMessageFontFamily;