@dxc-technology/halstack-react 0.0.0-d238e47 → 0.0.0-d30020b

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 (161) hide show
  1. package/BackgroundColorContext.d.ts +10 -0
  2. package/BackgroundColorContext.js +1 -4
  3. package/ThemeContext.d.ts +15 -0
  4. package/ThemeContext.js +5 -8
  5. package/V3Select/V3Select.js +2 -2
  6. package/V3Textarea/V3Textarea.js +2 -2
  7. package/accordion/Accordion.d.ts +1 -1
  8. package/accordion/Accordion.js +11 -22
  9. package/accordion/Accordion.stories.tsx +307 -0
  10. package/accordion/types.d.ts +4 -8
  11. package/accordion-group/AccordionGroup.js +2 -2
  12. package/accordion-group/AccordionGroup.stories.tsx +225 -0
  13. package/accordion-group/types.d.ts +4 -8
  14. package/alert/Alert.js +2 -2
  15. package/badge/Badge.js +1 -1
  16. package/bleed/Bleed.d.ts +3 -0
  17. package/bleed/Bleed.js +84 -0
  18. package/bleed/Bleed.stories.tsx +342 -0
  19. package/bleed/types.d.ts +13 -0
  20. package/bleed/types.js +5 -0
  21. package/box/Box.js +2 -2
  22. package/button/Button.d.ts +1 -1
  23. package/button/Button.js +9 -17
  24. package/button/Button.stories.tsx +6 -8
  25. package/button/types.d.ts +3 -7
  26. package/card/Card.js +1 -1
  27. package/card/Card.stories.tsx +1 -1
  28. package/checkbox/Checkbox.js +2 -2
  29. package/checkbox/types.d.ts +1 -1
  30. package/chip/Chip.d.ts +4 -0
  31. package/chip/Chip.js +16 -76
  32. package/chip/Chip.stories.tsx +6 -8
  33. package/chip/types.d.ts +45 -0
  34. package/chip/types.js +5 -0
  35. package/common/variables.js +57 -23
  36. package/date/Date.js +1 -1
  37. package/date-input/DateInput.js +10 -13
  38. package/dialog/Dialog.js +4 -3
  39. package/dropdown/Dropdown.d.ts +1 -1
  40. package/dropdown/Dropdown.js +13 -35
  41. package/dropdown/Dropdown.stories.tsx +249 -0
  42. package/dropdown/types.d.ts +6 -15
  43. package/file-input/FileInput.d.ts +1 -1
  44. package/file-input/FileInput.js +160 -81
  45. package/file-input/FileInput.stories.tsx +507 -0
  46. package/file-input/FileItem.js +8 -6
  47. package/file-input/types.d.ts +32 -7
  48. package/footer/Footer.d.ts +1 -1
  49. package/footer/Footer.js +28 -36
  50. package/footer/{Footer.stories.jsx → Footer.stories.tsx} +1 -22
  51. package/footer/Icons.d.ts +2 -0
  52. package/footer/Icons.js +3 -3
  53. package/footer/types.d.ts +21 -17
  54. package/header/Header.js +2 -2
  55. package/header/Icons.d.ts +2 -0
  56. package/heading/Heading.js +1 -1
  57. package/heading/Heading.stories.tsx +3 -2
  58. package/input-text/InputText.js +2 -2
  59. package/inset/Inset.d.ts +3 -0
  60. package/inset/Inset.js +84 -0
  61. package/inset/Inset.stories.tsx +229 -0
  62. package/inset/types.d.ts +13 -0
  63. package/inset/types.js +5 -0
  64. package/layout/ApplicationLayout.d.ts +10 -0
  65. package/layout/ApplicationLayout.js +17 -21
  66. package/layout/ApplicationLayout.stories.tsx +171 -0
  67. package/layout/types.d.ts +57 -0
  68. package/layout/types.js +5 -0
  69. package/link/Link.js +8 -16
  70. package/link/Link.stories.tsx +6 -1
  71. package/link/types.d.ts +5 -9
  72. package/list/List.d.ts +4 -0
  73. package/list/List.js +47 -0
  74. package/list/List.stories.tsx +95 -0
  75. package/list/types.d.ts +7 -0
  76. package/list/types.js +5 -0
  77. package/main.d.ts +8 -3
  78. package/main.js +42 -2
  79. package/number-input/NumberInput.js +3 -6
  80. package/package.json +4 -2
  81. package/paginator/Paginator.js +2 -8
  82. package/password-input/PasswordInput.js +19 -18
  83. package/password-input/PasswordInput.stories.tsx +3 -3
  84. package/password-input/types.d.ts +13 -11
  85. package/progress-bar/ProgressBar.js +4 -4
  86. package/radio/Radio.js +2 -2
  87. package/radio-group/Radio.d.ts +4 -0
  88. package/radio-group/Radio.js +140 -0
  89. package/radio-group/RadioGroup.d.ts +4 -0
  90. package/radio-group/RadioGroup.js +273 -0
  91. package/radio-group/RadioGroup.stories.tsx +79 -0
  92. package/radio-group/RadioGroup.test.js +248 -0
  93. package/radio-group/types.d.ts +36 -0
  94. package/radio-group/types.js +5 -0
  95. package/resultsetTable/ResultsetTable.d.ts +1 -1
  96. package/resultsetTable/ResultsetTable.js +9 -4
  97. package/resultsetTable/ResultsetTable.stories.tsx +275 -0
  98. package/resultsetTable/types.d.ts +6 -2
  99. package/row/Row.d.ts +3 -0
  100. package/row/Row.js +127 -0
  101. package/row/Row.stories.tsx +237 -0
  102. package/row/types.d.ts +10 -0
  103. package/row/types.js +5 -0
  104. package/select/Select.d.ts +4 -0
  105. package/select/Select.js +20 -22
  106. package/select/types.d.ts +170 -0
  107. package/select/types.js +5 -0
  108. package/sidenav/Sidenav.js +2 -2
  109. package/sidenav/Sidenav.stories.tsx +18 -1
  110. package/slider/Slider.js +2 -2
  111. package/spinner/Spinner.js +2 -2
  112. package/spinner/Spinner.stories.jsx +1 -0
  113. package/stack/Stack.d.ts +3 -0
  114. package/stack/Stack.js +97 -0
  115. package/stack/Stack.stories.tsx +164 -0
  116. package/stack/types.d.ts +9 -0
  117. package/stack/types.js +5 -0
  118. package/switch/Switch.js +2 -2
  119. package/switch/Switch.stories.tsx +1 -1
  120. package/table/Table.js +2 -2
  121. package/table/Table.stories.jsx +2 -1
  122. package/tabs/Tabs.js +8 -8
  123. package/tabs/Tabs.stories.tsx +120 -0
  124. package/tabs/types.d.ts +23 -15
  125. package/tag/Tag.d.ts +1 -1
  126. package/tag/Tag.js +7 -12
  127. package/tag/Tag.stories.tsx +15 -22
  128. package/tag/types.d.ts +23 -14
  129. package/text/Text.d.ts +7 -0
  130. package/text/Text.js +30 -0
  131. package/text/Text.stories.tsx +19 -0
  132. package/text-input/TextInput.js +50 -41
  133. package/text-input/TextInput.stories.tsx +456 -0
  134. package/text-input/types.d.ts +14 -12
  135. package/textarea/Textarea.d.ts +4 -0
  136. package/textarea/Textarea.js +27 -60
  137. package/textarea/Textarea.stories.jsx +4 -3
  138. package/textarea/types.d.ts +130 -0
  139. package/textarea/types.js +5 -0
  140. package/toggle/Toggle.js +1 -1
  141. package/toggle-group/ToggleGroup.d.ts +4 -0
  142. package/toggle-group/ToggleGroup.js +16 -45
  143. package/toggle-group/ToggleGroup.stories.tsx +23 -28
  144. package/toggle-group/types.d.ts +97 -0
  145. package/toggle-group/types.js +5 -0
  146. package/upload/buttons-upload/ButtonsUpload.js +2 -2
  147. package/upload/dragAndDropArea/DragAndDropArea.js +2 -2
  148. package/upload/file-upload/FileToUpload.js +1 -1
  149. package/upload/files-upload/FilesToUpload.js +1 -1
  150. package/upload/transaction/Transaction.js +2 -2
  151. package/upload/transactions/Transactions.js +1 -1
  152. package/useTheme.d.ts +2 -0
  153. package/useTheme.js +1 -1
  154. package/wizard/Wizard.js +59 -9
  155. package/wizard/{Wizard.stories.jsx → Wizard.stories.tsx} +0 -0
  156. package/wizard/types.d.ts +3 -7
  157. package/chip/index.d.ts +0 -22
  158. package/select/index.d.ts +0 -131
  159. package/textarea/index.d.ts +0 -117
  160. package/toggle-group/index.d.ts +0 -21
  161. package/wizard/Icons.js +0 -65
@@ -17,6 +17,8 @@ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"))
17
17
 
18
18
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
19
19
 
20
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
21
+
20
22
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
21
23
 
22
24
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
@@ -29,18 +31,22 @@ var _uuid = require("uuid");
29
31
 
30
32
  var _variables = require("../common/variables.js");
31
33
 
32
- var _useTheme = _interopRequireDefault(require("../useTheme.js"));
34
+ var _useTheme = _interopRequireDefault(require("../useTheme"));
33
35
 
34
36
  var _Button = _interopRequireDefault(require("../button/Button"));
35
37
 
36
38
  var _FileItem = _interopRequireDefault(require("./FileItem"));
37
39
 
38
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11;
40
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12;
39
41
 
40
42
  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); }
41
43
 
42
44
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof3(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
43
45
 
46
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
47
+
48
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
49
+
44
50
  var audioIcon = /*#__PURE__*/_react["default"].createElement("svg", {
45
51
  xmlns: "http://www.w3.org/2000/svg",
46
52
  width: "24",
@@ -87,6 +93,8 @@ var DxcFileInput = function DxcFileInput(_ref) {
87
93
  mode = _ref$mode === void 0 ? "file" : _ref$mode,
88
94
  _ref$label = _ref.label,
89
95
  label = _ref$label === void 0 ? "" : _ref$label,
96
+ buttonLabel = _ref.buttonLabel,
97
+ dropAreaLabel = _ref.dropAreaLabel,
90
98
  _ref$helperText = _ref.helperText,
91
99
  helperText = _ref$helperText === void 0 ? "" : _ref$helperText,
92
100
  accept = _ref.accept,
@@ -120,11 +128,74 @@ var DxcFileInput = function DxcFileInput(_ref) {
120
128
 
121
129
  var colorsTheme = (0, _useTheme["default"])();
122
130
  (0, _react.useEffect)(function () {
123
- if (value) {
124
- setFiles(value);
125
- } else {
126
- setFiles([]);
127
- }
131
+ var getFiles = /*#__PURE__*/function () {
132
+ var _ref2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
133
+ var valueFiles;
134
+ return _regenerator["default"].wrap(function _callee2$(_context2) {
135
+ while (1) {
136
+ switch (_context2.prev = _context2.next) {
137
+ case 0:
138
+ if (!value) {
139
+ _context2.next = 5;
140
+ break;
141
+ }
142
+
143
+ _context2.next = 3;
144
+ return Promise.all(value.map( /*#__PURE__*/function () {
145
+ var _ref3 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(file) {
146
+ var preview;
147
+ return _regenerator["default"].wrap(function _callee$(_context) {
148
+ while (1) {
149
+ switch (_context.prev = _context.next) {
150
+ case 0:
151
+ if (!file.preview) {
152
+ _context.next = 4;
153
+ break;
154
+ }
155
+
156
+ return _context.abrupt("return", file);
157
+
158
+ case 4:
159
+ _context.next = 6;
160
+ return getFilePreview(file.file);
161
+
162
+ case 6:
163
+ preview = _context.sent;
164
+ return _context.abrupt("return", _objectSpread(_objectSpread({}, file), {}, {
165
+ preview: preview
166
+ }));
167
+
168
+ case 8:
169
+ case "end":
170
+ return _context.stop();
171
+ }
172
+ }
173
+ }, _callee);
174
+ }));
175
+
176
+ return function (_x) {
177
+ return _ref3.apply(this, arguments);
178
+ };
179
+ }()));
180
+
181
+ case 3:
182
+ valueFiles = _context2.sent;
183
+ setFiles(valueFiles);
184
+
185
+ case 5:
186
+ case "end":
187
+ return _context2.stop();
188
+ }
189
+ }
190
+ }, _callee2);
191
+ }));
192
+
193
+ return function getFiles() {
194
+ return _ref2.apply(this, arguments);
195
+ };
196
+ }();
197
+
198
+ getFiles();
128
199
  }, [value]);
129
200
 
130
201
  var handleClick = function handleClick() {
@@ -165,13 +236,13 @@ var DxcFileInput = function DxcFileInput(_ref) {
165
236
  };
166
237
 
167
238
  var getFilesToAdd = /*#__PURE__*/function () {
168
- var _ref2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(selectedFiles) {
239
+ var _ref4 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(selectedFiles) {
169
240
  var filesToAdd;
170
- return _regenerator["default"].wrap(function _callee$(_context) {
241
+ return _regenerator["default"].wrap(function _callee3$(_context3) {
171
242
  while (1) {
172
- switch (_context.prev = _context.next) {
243
+ switch (_context3.prev = _context3.next) {
173
244
  case 0:
174
- _context.next = 2;
245
+ _context3.next = 2;
175
246
  return Promise.all(selectedFiles.map(function (selectedFile) {
176
247
  return getFilePreview(selectedFile);
177
248
  })).then(function (previews) {
@@ -186,71 +257,71 @@ var DxcFileInput = function DxcFileInput(_ref) {
186
257
  });
187
258
 
188
259
  case 2:
189
- filesToAdd = _context.sent;
190
- return _context.abrupt("return", filesToAdd);
260
+ filesToAdd = _context3.sent;
261
+ return _context3.abrupt("return", filesToAdd);
191
262
 
192
263
  case 4:
193
264
  case "end":
194
- return _context.stop();
265
+ return _context3.stop();
195
266
  }
196
267
  }
197
- }, _callee);
268
+ }, _callee3);
198
269
  }));
199
270
 
200
- return function getFilesToAdd(_x) {
201
- return _ref2.apply(this, arguments);
271
+ return function getFilesToAdd(_x2) {
272
+ return _ref4.apply(this, arguments);
202
273
  };
203
274
  }();
204
275
 
205
276
  var addFile = /*#__PURE__*/function () {
206
- var _ref3 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(selectedFiles) {
277
+ var _ref5 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4(selectedFiles) {
207
278
  var filesToAdd, finalFiles, fileToAdd;
208
- return _regenerator["default"].wrap(function _callee2$(_context2) {
279
+ return _regenerator["default"].wrap(function _callee4$(_context4) {
209
280
  while (1) {
210
- switch (_context2.prev = _context2.next) {
281
+ switch (_context4.prev = _context4.next) {
211
282
  case 0:
212
283
  if (!multiple) {
213
- _context2.next = 8;
284
+ _context4.next = 8;
214
285
  break;
215
286
  }
216
287
 
217
- _context2.next = 3;
288
+ _context4.next = 3;
218
289
  return getFilesToAdd(selectedFiles);
219
290
 
220
291
  case 3:
221
- filesToAdd = _context2.sent;
292
+ filesToAdd = _context4.sent;
222
293
  finalFiles = [].concat((0, _toConsumableArray2["default"])(files), (0, _toConsumableArray2["default"])(filesToAdd));
223
294
 
224
295
  if (typeof callbackFile === "function") {
225
296
  callbackFile(finalFiles);
226
297
  }
227
298
 
228
- _context2.next = 19;
299
+ _context4.next = 19;
229
300
  break;
230
301
 
231
302
  case 8:
232
303
  if (!(selectedFiles.length === 1)) {
233
- _context2.next = 14;
304
+ _context4.next = 14;
234
305
  break;
235
306
  }
236
307
 
237
- _context2.next = 11;
308
+ _context4.next = 11;
238
309
  return getFilesToAdd(selectedFiles);
239
310
 
240
311
  case 11:
241
- _context2.t0 = _context2.sent;
242
- _context2.next = 17;
312
+ _context4.t0 = _context4.sent;
313
+ _context4.next = 17;
243
314
  break;
244
315
 
245
316
  case 14:
246
- _context2.next = 16;
317
+ _context4.next = 16;
247
318
  return getFilesToAdd([selectedFiles[0]]);
248
319
 
249
320
  case 16:
250
- _context2.t0 = _context2.sent;
321
+ _context4.t0 = _context4.sent;
251
322
 
252
323
  case 17:
253
- fileToAdd = _context2.t0;
324
+ fileToAdd = _context4.t0;
254
325
 
255
326
  if (typeof callbackFile === "function") {
256
327
  callbackFile(fileToAdd);
@@ -258,14 +329,14 @@ var DxcFileInput = function DxcFileInput(_ref) {
258
329
 
259
330
  case 19:
260
331
  case "end":
261
- return _context2.stop();
332
+ return _context4.stop();
262
333
  }
263
334
  }
264
- }, _callee2);
335
+ }, _callee4);
265
336
  }));
266
337
 
267
- return function addFile(_x2) {
268
- return _ref3.apply(this, arguments);
338
+ return function addFile(_x3) {
339
+ return _ref5.apply(this, arguments);
269
340
  };
270
341
  }();
271
342
 
@@ -296,18 +367,12 @@ var DxcFileInput = function DxcFileInput(_ref) {
296
367
  };
297
368
 
298
369
  var handleDragIn = function handleDragIn(e) {
299
- e.preventDefault();
300
- e.stopPropagation();
301
-
302
- if (e.dataTransfer.items && e.dataTransfer.items.length > 0) {
303
- setIsDragging(true);
304
- }
370
+ if (e.dataTransfer.items && e.dataTransfer.items.length > 0) setIsDragging(true);
305
371
  };
306
372
 
307
373
  var handleDragOut = function handleDragOut(e) {
308
- e.preventDefault();
309
- e.stopPropagation();
310
- setIsDragging(false);
374
+ // only if dragged items leave container (outside, not to childs)
375
+ if (!e.currentTarget.contains(e.relatedTarget)) setIsDragging(false);
311
376
  };
312
377
 
313
378
  var handleDrop = function handleDrop(e) {
@@ -337,22 +402,20 @@ var DxcFileInput = function DxcFileInput(_ref) {
337
402
  }, helperText), mode === "file" ? /*#__PURE__*/_react["default"].createElement(FileContainer, {
338
403
  multiple: multiple,
339
404
  files: files
340
- }, /*#__PURE__*/_react["default"].createElement(ButtonErrorContainer, null, /*#__PURE__*/_react["default"].createElement(_Button["default"], {
341
- mode: "secondary",
342
- label: "Select files",
343
- onClick: handleClick,
344
- disabled: disabled,
345
- size: "medium",
346
- tabIndex: tabIndex
347
- }), /*#__PURE__*/_react["default"].createElement("input", {
405
+ }, /*#__PURE__*/_react["default"].createElement(HiddenInputFile, {
348
406
  id: fileInputId,
349
407
  type: "file",
350
408
  accept: accept,
351
409
  multiple: multiple,
352
410
  onChange: selectFiles
353
- }), files.length === 1 && files.map(function (file) {
354
- return file.error && mode === "file" && !multiple && /*#__PURE__*/_react["default"].createElement(ErrorMessage, null, file.error);
355
- })), files.map(function (file) {
411
+ }), /*#__PURE__*/_react["default"].createElement(_Button["default"], {
412
+ mode: "secondary",
413
+ label: buttonLabel !== null && buttonLabel !== void 0 ? buttonLabel : multiple ? "Select files" : "Select file",
414
+ onClick: handleClick,
415
+ disabled: disabled,
416
+ size: "medium",
417
+ tabIndex: tabIndex
418
+ }), files.map(function (file) {
356
419
  return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(FileItemContainer, {
357
420
  mode: mode,
358
421
  multiple: multiple,
@@ -369,7 +432,13 @@ var DxcFileInput = function DxcFileInput(_ref) {
369
432
  onDelete: onDelete,
370
433
  tabIndex: tabIndex
371
434
  })));
372
- })) : /*#__PURE__*/_react["default"].createElement(Container, null, /*#__PURE__*/_react["default"].createElement(DragDropArea, {
435
+ })) : /*#__PURE__*/_react["default"].createElement(Container, null, /*#__PURE__*/_react["default"].createElement(HiddenInputFile, {
436
+ id: fileInputId,
437
+ type: "file",
438
+ accept: accept,
439
+ multiple: multiple,
440
+ onChange: selectFiles
441
+ }), /*#__PURE__*/_react["default"].createElement(DragDropArea, {
373
442
  isDragging: isDragging,
374
443
  disabled: disabled,
375
444
  mode: mode,
@@ -381,19 +450,15 @@ var DxcFileInput = function DxcFileInput(_ref) {
381
450
  mode: mode
382
451
  }, /*#__PURE__*/_react["default"].createElement(_Button["default"], {
383
452
  mode: "secondary",
384
- label: "Select",
453
+ label: buttonLabel !== null && buttonLabel !== void 0 ? buttonLabel : "Select",
385
454
  onClick: handleClick,
386
455
  disabled: disabled,
387
456
  size: "fitContent"
388
- }), /*#__PURE__*/_react["default"].createElement("input", {
389
- id: fileInputId,
390
- type: "file",
391
- accept: accept,
392
- multiple: multiple,
393
- onChange: selectFiles
394
- })), /*#__PURE__*/_react["default"].createElement(DropLabel, {
457
+ })), mode === "dropzone" ? /*#__PURE__*/_react["default"].createElement(DropzoneLabel, {
458
+ disabled: disabled
459
+ }, dropAreaLabel !== null && dropAreaLabel !== void 0 ? dropAreaLabel : multiple ? "or drop files" : "or drop a file") : /*#__PURE__*/_react["default"].createElement(FiledropLabel, {
395
460
  disabled: disabled
396
- }, "or drop files")), files.map(function (file) {
461
+ }, dropAreaLabel !== null && dropAreaLabel !== void 0 ? dropAreaLabel : multiple ? "or drop files" : "or drop a file")), files.map(function (file) {
397
462
  return /*#__PURE__*/_react["default"].createElement(FileItemContainer, {
398
463
  mode: mode,
399
464
  multiple: multiple,
@@ -410,7 +475,9 @@ var DxcFileInput = function DxcFileInput(_ref) {
410
475
  onDelete: onDelete,
411
476
  tabIndex: tabIndex
412
477
  }));
413
- }))));
478
+ })), files.length === 1 && files.map(function (file) {
479
+ return file.error && mode === "file" && !multiple && /*#__PURE__*/_react["default"].createElement(ErrorMessage, null, file.error);
480
+ })));
414
481
  };
415
482
 
416
483
  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) {
@@ -449,35 +516,47 @@ var HelperText = _styledComponents["default"].span(_templateObject3 || (_templat
449
516
  return props.theme.helperTextLineHeight;
450
517
  });
451
518
 
452
- var DragDropArea = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n height: ", ";\n width: calc(320px - 2px);\n display: flex;\n flex-direction: ", ";\n align-items: center;\n border-radius: ", ";\n border-width: ", ";\n border-style: ", ";\n background-color: ", ";\n border-color: ", ";\n cursor: ", ";\n"])), function (props) {
453
- return props.mode === "filedrop" ? "calc(48px - 2px)" : "calc(160px - 2px)";
454
- }, function (props) {
519
+ 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) {
455
520
  return props.mode === "filedrop" ? "row" : "column";
521
+ }, function (props) {
522
+ return props.mode === "dropzone" && "justify-content: center; padding: 1rem;";
523
+ }, function (props) {
524
+ return props.mode === "filedrop" ? "48px" : "160px";
456
525
  }, function (props) {
457
526
  return props.theme.dropBorderRadius;
458
527
  }, function (props) {
459
- return !props.isDragging ? props.theme.dropBorderThickness : "2px";
528
+ return props.theme.dropBorderThickness;
460
529
  }, function (props) {
461
- return !props.isDragging ? props.theme.dropBorderStyle : "solid";
530
+ return props.theme.dropBorderStyle;
462
531
  }, function (props) {
463
- return props.isDragging && props.theme.dragoverDropBackgroundColor;
532
+ return props.disabled ? props.theme.disabledDropBorderColor : props.theme.dropBorderColor;
464
533
  }, function (props) {
465
- return props.disabled ? props.theme.disabledDropBorderColor : props.isDragging ? props.theme.focusDropBorderColor : props.theme.dropBorderColor;
534
+ return props.isDragging && "\n background-color: ".concat(props.theme.dragoverDropBackgroundColor, ";\n border-color: transparent;\n box-shadow: 0 0 0 2px ").concat(props.theme.focusDropBorderColor, ";\n ");
466
535
  }, function (props) {
467
536
  return props.disabled && "not-allowed";
468
537
  });
469
538
 
470
- var FileContainer = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: ", ";\n"])), function (props) {
539
+ var FileContainer = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: ", ";\n margin-top: 0.25rem;\n"])), function (props) {
471
540
  return props.multiple || props.files.length > 1 ? "column" : "row";
472
541
  });
473
542
 
474
- var ButtonErrorContainer = _styledComponents["default"].div(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n margin-top: 0.25rem;\n\n input[type=\"file\"] {\n visibility: hidden;\n position: absolute;\n width: 0px;\n height: 0px;\n }\n"])));
543
+ var HiddenInputFile = _styledComponents["default"].input(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n visibility: hidden;\n position: absolute;\n width: 0px;\n height: 0px;\n"])));
475
544
 
476
- var ButtonContainer = _styledComponents["default"].div(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n padding: ", ";\n input[type=\"file\"] {\n visibility: hidden;\n position: absolute;\n width: 0px;\n height: 0px;\n }\n"])), function (props) {
477
- return props.mode === "filedrop" ? "2px 12px 2px 2px" : "47px 122px 8px 122px";
545
+ var ButtonContainer = _styledComponents["default"].div(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n ", ";\n"])), function (props) {
546
+ return props.mode === "filedrop" && "padding: 2px 12px 2px 3px";
547
+ });
548
+
549
+ 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) {
550
+ return props.disabled ? props.theme.disabledDropLabelFontColor : props.theme.dropLabelFontColor;
551
+ }, function (props) {
552
+ return props.theme.dropLabelFontFamily;
553
+ }, function (props) {
554
+ return props.theme.dropLabelFontSize;
555
+ }, function (props) {
556
+ return props.theme.dropLabelFontWeight;
478
557
  });
479
558
 
480
- var DropLabel = _styledComponents["default"].span(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-weight: ", ";\n"])), function (props) {
559
+ 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) {
481
560
  return props.disabled ? props.theme.disabledDropLabelFontColor : props.theme.dropLabelFontColor;
482
561
  }, function (props) {
483
562
  return props.theme.dropLabelFontFamily;
@@ -487,15 +566,15 @@ var DropLabel = _styledComponents["default"].span(_templateObject8 || (_template
487
566
  return props.theme.dropLabelFontWeight;
488
567
  });
489
568
 
490
- var Container = _styledComponents["default"].div(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n margin-top: 0.25rem;\n"])));
569
+ var Container = _styledComponents["default"].div(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n margin-top: 0.25rem;\n"])));
491
570
 
492
- var FileItemContainer = _styledComponents["default"].div(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2["default"])(["\n margin-top: ", ";\n margin-left: ", ";\n"])), function (props) {
571
+ var FileItemContainer = _styledComponents["default"].div(_templateObject11 || (_templateObject11 = (0, _taggedTemplateLiteral2["default"])(["\n margin-top: ", ";\n margin-left: ", ";\n"])), function (props) {
493
572
  return (props.multiple || props.files.length > 1 || props.mode !== "file") && "4px";
494
573
  }, function (props) {
495
574
  return props.mode === "file" && props.files.length === 1 && !props.multiple && "4px";
496
575
  });
497
576
 
498
- 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"])), function (props) {
577
+ 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) {
499
578
  return props.theme.errorMessageFontColor;
500
579
  }, function (props) {
501
580
  return props.theme.errorMessageFontFamily;