@dxc-technology/halstack-react 6.2.2 → 8.0.0

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 (66) hide show
  1. package/HalstackContext.js +7 -8
  2. package/accordion/types.d.ts +1 -0
  3. package/accordion-group/types.d.ts +1 -0
  4. package/box/types.d.ts +1 -0
  5. package/card/types.d.ts +1 -0
  6. package/checkbox/Checkbox.d.ts +2 -2
  7. package/checkbox/Checkbox.js +16 -15
  8. package/checkbox/Checkbox.stories.tsx +79 -59
  9. package/checkbox/types.d.ts +4 -0
  10. package/common/variables.js +19 -15
  11. package/date-input/Calendar.d.ts +4 -0
  12. package/date-input/Calendar.js +258 -0
  13. package/date-input/DateInput.js +77 -222
  14. package/date-input/DateInput.stories.tsx +30 -17
  15. package/date-input/DateInput.test.js +411 -138
  16. package/date-input/DatePicker.d.ts +4 -0
  17. package/date-input/DatePicker.js +160 -0
  18. package/date-input/YearPicker.d.ts +4 -0
  19. package/date-input/YearPicker.js +115 -0
  20. package/date-input/types.d.ts +53 -0
  21. package/dialog/types.d.ts +1 -0
  22. package/dropdown/Dropdown.js +35 -31
  23. package/dropdown/Dropdown.test.js +18 -24
  24. package/file-input/FileInput.d.ts +2 -2
  25. package/file-input/FileInput.js +177 -219
  26. package/file-input/FileInput.stories.tsx +38 -10
  27. package/file-input/FileInput.test.js +53 -12
  28. package/file-input/FileItem.d.ts +4 -14
  29. package/file-input/FileItem.js +38 -63
  30. package/file-input/types.d.ts +17 -0
  31. package/flex/Flex.d.ts +1 -1
  32. package/flex/Flex.js +31 -19
  33. package/flex/types.d.ts +14 -3
  34. package/footer/types.d.ts +1 -0
  35. package/header/types.d.ts +1 -0
  36. package/link/Link.js +1 -1
  37. package/number-input/NumberInput.test.js +43 -7
  38. package/package.json +7 -12
  39. package/paginator/Paginator.js +2 -2
  40. package/paginator/Paginator.test.js +1 -1
  41. package/password-input/PasswordInput.test.js +13 -12
  42. package/quick-nav/QuickNav.js +11 -12
  43. package/quick-nav/QuickNav.stories.tsx +97 -19
  44. package/radio-group/RadioGroup.js +9 -5
  45. package/radio-group/RadioGroup.test.js +116 -59
  46. package/resultsetTable/Icons.d.ts +7 -0
  47. package/resultsetTable/Icons.js +51 -0
  48. package/resultsetTable/ResultsetTable.js +48 -107
  49. package/resultsetTable/ResultsetTable.stories.tsx +50 -25
  50. package/resultsetTable/ResultsetTable.test.js +23 -41
  51. package/resultsetTable/types.d.ts +2 -2
  52. package/select/Select.js +3 -1
  53. package/select/Select.stories.tsx +2 -5
  54. package/select/Select.test.js +267 -209
  55. package/slider/Slider.d.ts +2 -2
  56. package/slider/Slider.js +5 -4
  57. package/slider/types.d.ts +4 -0
  58. package/switch/Switch.d.ts +3 -3
  59. package/switch/Switch.js +4 -3
  60. package/switch/types.d.ts +6 -1
  61. package/table/Table.js +1 -1
  62. package/table/Table.test.js +1 -1
  63. package/text-input/TextInput.js +165 -151
  64. package/text-input/TextInput.test.js +560 -649
  65. package/text-input/types.d.ts +5 -0
  66. package/common/RequiredComponent.js +0 -32
@@ -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"));
@@ -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
 
@@ -351,17 +252,18 @@ var DxcFileInput = function DxcFileInput(_ref) {
351
252
  addFile(filesArray);
352
253
  };
353
254
 
354
- var onDelete = function onDelete(fileName) {
255
+ var onDelete = (0, _react.useCallback)(function (fileName) {
355
256
  var filesCopy = (0, _toConsumableArray2["default"])(files);
356
257
  var fileToRemove = filesCopy.find(function (file) {
357
258
  return file.file.name === fileName;
358
259
  });
359
260
  var fileIndex = filesCopy.indexOf(fileToRemove);
360
261
  filesCopy.splice(fileIndex, 1);
262
+ callbackFile === null || callbackFile === void 0 ? void 0 : callbackFile(filesCopy);
263
+ }, [files, callbackFile]);
361
264
 
362
- if (typeof callbackFile === "function") {
363
- callbackFile(filesCopy);
364
- }
265
+ var handleClick = function handleClick() {
266
+ document.getElementById(fileInputId).click();
365
267
  };
366
268
 
367
269
  var handleDrag = function handleDrag(e) {
@@ -370,7 +272,9 @@ var DxcFileInput = function DxcFileInput(_ref) {
370
272
  };
371
273
 
372
274
  var handleDragIn = function handleDragIn(e) {
373
- if (e.dataTransfer.items && e.dataTransfer.items.length > 0) setIsDragging(true);
275
+ var _e$dataTransfer$items;
276
+
277
+ if (((_e$dataTransfer$items = e.dataTransfer.items) === null || _e$dataTransfer$items === void 0 ? void 0 : _e$dataTransfer$items.length) > 0) setIsDragging(true);
374
278
  };
375
279
 
376
280
  var handleDragOut = function handleDragOut(e) {
@@ -384,7 +288,7 @@ var DxcFileInput = function DxcFileInput(_ref) {
384
288
  setIsDragging(false);
385
289
  var filesObject = e.dataTransfer.files;
386
290
 
387
- if (filesObject && filesObject.length > 0) {
291
+ if ((filesObject === null || filesObject === void 0 ? void 0 : filesObject.length) > 0) {
388
292
  var filesArray = Object.keys(filesObject).map(function (key) {
389
293
  return filesObject[key];
390
294
  });
@@ -392,55 +296,128 @@ var DxcFileInput = function DxcFileInput(_ref) {
392
296
  }
393
297
  };
394
298
 
299
+ (0, _react.useEffect)(function () {
300
+ var getFiles = /*#__PURE__*/function () {
301
+ var _ref4 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4() {
302
+ var valueFiles;
303
+ return _regenerator["default"].wrap(function _callee4$(_context4) {
304
+ while (1) {
305
+ switch (_context4.prev = _context4.next) {
306
+ case 0:
307
+ if (!value) {
308
+ _context4.next = 5;
309
+ break;
310
+ }
311
+
312
+ _context4.next = 3;
313
+ return Promise.all(value.map( /*#__PURE__*/function () {
314
+ var _ref5 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(file) {
315
+ var preview;
316
+ return _regenerator["default"].wrap(function _callee3$(_context3) {
317
+ while (1) {
318
+ switch (_context3.prev = _context3.next) {
319
+ case 0:
320
+ if (!file.preview) {
321
+ _context3.next = 4;
322
+ break;
323
+ }
324
+
325
+ return _context3.abrupt("return", file);
326
+
327
+ case 4:
328
+ _context3.next = 6;
329
+ return getFilePreview(file.file);
330
+
331
+ case 6:
332
+ preview = _context3.sent;
333
+ return _context3.abrupt("return", _objectSpread(_objectSpread({}, file), {}, {
334
+ preview: preview
335
+ }));
336
+
337
+ case 8:
338
+ case "end":
339
+ return _context3.stop();
340
+ }
341
+ }
342
+ }, _callee3);
343
+ }));
344
+
345
+ return function (_x3) {
346
+ return _ref5.apply(this, arguments);
347
+ };
348
+ }()));
349
+
350
+ case 3:
351
+ valueFiles = _context4.sent;
352
+ setFiles(valueFiles);
353
+
354
+ case 5:
355
+ case "end":
356
+ return _context4.stop();
357
+ }
358
+ }
359
+ }, _callee4);
360
+ }));
361
+
362
+ return function getFiles() {
363
+ return _ref4.apply(this, arguments);
364
+ };
365
+ }();
366
+
367
+ getFiles();
368
+ }, [value]);
395
369
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
396
370
  theme: colorsTheme.fileInput
397
371
  }, /*#__PURE__*/_react["default"].createElement(FileInputContainer, {
398
372
  margin: margin,
399
- name: name
373
+ 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
+ name: name,
389
+ disabled: disabled,
390
+ readOnly: true,
391
+ "aria-hidden": "true"
414
392
  }), /*#__PURE__*/_react["default"].createElement(_Button["default"], {
415
393
  mode: "secondary",
416
394
  label: buttonLabel !== null && buttonLabel !== void 0 ? buttonLabel : multiple ? translatedLabels.fileInput.multipleButtonLabelDefault : translatedLabels.fileInput.singleButtonLabelDefault,
417
395
  onClick: handleClick,
418
396
  disabled: disabled,
419
- size: "medium",
397
+ size: "fitContent",
420
398
  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,
399
+ }), files.length > 0 && /*#__PURE__*/_react["default"].createElement(FileItemListContainer, null, files.map(function (file, index) {
400
+ return /*#__PURE__*/_react["default"].createElement(_FileItem["default"], {
401
+ fileName: file.file.name,
430
402
  error: file.error,
403
+ singleFileMode: !multiple && files.length === 1,
431
404
  showPreview: mode === "file" && !multiple ? false : showPreview,
432
- numFiles: files.length,
433
405
  preview: file.preview,
434
406
  type: file.file.type,
435
407
  onDelete: onDelete,
436
- tabIndex: tabIndex
437
- })));
438
- })) : /*#__PURE__*/_react["default"].createElement(Container, null, /*#__PURE__*/_react["default"].createElement(HiddenInputFile, {
408
+ tabIndex: tabIndex,
409
+ key: "file-".concat(index)
410
+ });
411
+ }))) : /*#__PURE__*/_react["default"].createElement(Container, null, /*#__PURE__*/_react["default"].createElement(ValueInput, {
439
412
  id: fileInputId,
440
413
  type: "file",
441
414
  accept: accept,
442
415
  multiple: multiple,
443
- onChange: selectFiles
416
+ onChange: selectFiles,
417
+ name: name,
418
+ disabled: disabled,
419
+ readOnly: true,
420
+ "aria-hidden": "true"
444
421
  }), /*#__PURE__*/_react["default"].createElement(DragDropArea, {
445
422
  isDragging: isDragging,
446
423
  disabled: disabled,
@@ -449,39 +426,30 @@ var DxcFileInput = function DxcFileInput(_ref) {
449
426
  onDragEnter: handleDragIn,
450
427
  onDragOver: handleDrag,
451
428
  onDragLeave: handleDragOut
452
- }, /*#__PURE__*/_react["default"].createElement(ButtonContainer, {
453
- mode: mode
454
429
  }, /*#__PURE__*/_react["default"].createElement(_Button["default"], {
455
430
  mode: "secondary",
456
431
  label: buttonLabel !== null && buttonLabel !== void 0 ? buttonLabel : translatedLabels.fileInput.dropAreaButtonLabelDefault,
457
432
  onClick: handleClick,
458
433
  disabled: disabled,
459
434
  size: "fitContent"
460
- })), mode === "dropzone" ? /*#__PURE__*/_react["default"].createElement(DropzoneLabel, {
435
+ }), mode === "dropzone" ? /*#__PURE__*/_react["default"].createElement(DropzoneLabel, {
461
436
  disabled: disabled
462
437
  }, dropAreaLabel !== null && dropAreaLabel !== void 0 ? dropAreaLabel : multiple ? translatedLabels.fileInput.multipleDropAreaLabelDefault : translatedLabels.fileInput.singleDropAreaLabelDefault) : /*#__PURE__*/_react["default"].createElement(FiledropLabel, {
463
438
  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,
439
+ }, 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) {
440
+ return /*#__PURE__*/_react["default"].createElement(_FileItem["default"], {
441
+ fileName: file.file.name,
473
442
  error: file.error,
443
+ singleFileMode: false,
474
444
  showPreview: showPreview,
475
- numFiles: files.length,
476
445
  preview: file.preview,
477
446
  type: file.file.type,
478
447
  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
- };
448
+ tabIndex: tabIndex,
449
+ key: "file-".concat(index)
450
+ });
451
+ }))), mode === "file" && !multiple && files.length === 1 && files[0].error && /*#__PURE__*/_react["default"].createElement(ErrorMessage, null, files[0].error)));
452
+ });
485
453
 
486
454
  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
455
  return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
@@ -519,12 +487,20 @@ var HelperText = _styledComponents["default"].span(_templateObject3 || (_templat
519
487
  return props.theme.helperTextLineHeight;
520
488
  });
521
489
 
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;";
490
+ var FileContainer = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n ", "\n margin-top: 0.25rem;\n"])), function (props) {
491
+ return props.singleFileMode ? "flex-direction: row; column-gap: 0.25rem;" : "flex-direction: column; row-gap: 0.25rem;";
492
+ });
493
+
494
+ var ValueInput = _styledComponents["default"].input(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n display: none;\n"])));
495
+
496
+ var FileItemListContainer = _styledComponents["default"].div(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n row-gap: 0.25rem;\n"])));
497
+
498
+ 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"])));
499
+
500
+ 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) {
501
+ 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
502
  }, function (props) {
527
- return props.mode === "filedrop" ? "48px" : "160px";
503
+ 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
504
  }, function (props) {
529
505
  return props.theme.dropBorderRadius;
530
506
  }, function (props) {
@@ -539,17 +515,7 @@ var DragDropArea = _styledComponents["default"].div(_templateObject4 || (_templa
539
515
  return props.disabled && "not-allowed";
540
516
  });
541
517
 
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) {
518
+ 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
519
  return props.disabled ? props.theme.disabledDropLabelFontColor : props.theme.dropLabelFontColor;
554
520
  }, function (props) {
555
521
  return props.theme.dropLabelFontFamily;
@@ -559,7 +525,7 @@ var DropzoneLabel = _styledComponents["default"].div(_templateObject8 || (_templ
559
525
  return props.theme.dropLabelFontWeight;
560
526
  });
561
527
 
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) {
528
+ 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
529
  return props.disabled ? props.theme.disabledDropLabelFontColor : props.theme.dropLabelFontColor;
564
530
  }, function (props) {
565
531
  return props.theme.dropLabelFontFamily;
@@ -569,15 +535,7 @@ var FiledropLabel = _styledComponents["default"].span(_templateObject9 || (_temp
569
535
  return props.theme.dropLabelFontWeight;
570
536
  });
571
537
 
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) {
538
+ 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
539
  return props.theme.errorMessageFontColor;
582
540
  }, function (props) {
583
541
  return props.theme.errorMessageFontFamily;