@dxc-technology/halstack-react 0.0.0-ee92231 → 0.0.0-eefd559

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 (205) 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/alert/Alert.stories.tsx +170 -0
  16. package/alert/types.d.ts +1 -1
  17. package/badge/Badge.js +1 -1
  18. package/bleed/Bleed.d.ts +3 -0
  19. package/bleed/Bleed.js +84 -0
  20. package/bleed/Bleed.stories.tsx +342 -0
  21. package/bleed/types.d.ts +13 -0
  22. package/bleed/types.js +5 -0
  23. package/box/Box.d.ts +1 -1
  24. package/box/Box.js +4 -7
  25. package/box/types.d.ts +0 -4
  26. package/button/Button.d.ts +1 -1
  27. package/button/Button.js +13 -19
  28. package/button/Button.stories.tsx +222 -241
  29. package/button/types.d.ts +5 -9
  30. package/card/Card.js +5 -6
  31. package/card/Card.stories.tsx +201 -0
  32. package/card/ice-cream.jpg +0 -0
  33. package/card/types.d.ts +4 -6
  34. package/checkbox/Checkbox.js +2 -2
  35. package/checkbox/types.d.ts +2 -2
  36. package/chip/Chip.d.ts +4 -0
  37. package/chip/Chip.js +16 -76
  38. package/chip/Chip.stories.tsx +119 -0
  39. package/chip/types.d.ts +45 -0
  40. package/chip/types.js +5 -0
  41. package/common/variables.js +70 -28
  42. package/date/Date.js +1 -1
  43. package/date-input/DateInput.js +10 -13
  44. package/date-input/DateInput.stories.tsx +138 -0
  45. package/dialog/Dialog.js +4 -3
  46. package/dialog/Dialog.stories.tsx +212 -0
  47. package/dropdown/Dropdown.d.ts +1 -1
  48. package/dropdown/Dropdown.js +13 -35
  49. package/dropdown/Dropdown.stories.tsx +249 -0
  50. package/dropdown/types.d.ts +6 -15
  51. package/file-input/FileInput.d.ts +4 -0
  52. package/file-input/FileInput.js +167 -109
  53. package/file-input/FileInput.stories.tsx +507 -0
  54. package/file-input/FileItem.d.ts +14 -0
  55. package/file-input/FileItem.js +12 -21
  56. package/file-input/types.d.ts +112 -0
  57. package/file-input/types.js +5 -0
  58. package/footer/Footer.d.ts +1 -1
  59. package/footer/Footer.js +28 -36
  60. package/footer/{Footer.stories.jsx → Footer.stories.tsx} +1 -22
  61. package/footer/Icons.d.ts +2 -0
  62. package/footer/Icons.js +3 -3
  63. package/footer/types.d.ts +22 -18
  64. package/header/Header.js +2 -2
  65. package/header/Header.stories.tsx +162 -0
  66. package/header/Icons.d.ts +2 -0
  67. package/header/types.d.ts +4 -2
  68. package/heading/Heading.d.ts +4 -0
  69. package/heading/Heading.js +7 -24
  70. package/heading/Heading.stories.tsx +54 -0
  71. package/heading/types.d.ts +33 -0
  72. package/heading/types.js +5 -0
  73. package/input-text/InputText.js +2 -2
  74. package/inset/Inset.d.ts +3 -0
  75. package/inset/Inset.js +84 -0
  76. package/inset/Inset.stories.tsx +229 -0
  77. package/inset/types.d.ts +13 -0
  78. package/inset/types.js +5 -0
  79. package/layout/ApplicationLayout.d.ts +10 -0
  80. package/layout/ApplicationLayout.js +9 -19
  81. package/layout/ApplicationLayout.stories.tsx +171 -0
  82. package/layout/types.d.ts +57 -0
  83. package/layout/types.js +5 -0
  84. package/link/Link.js +3 -3
  85. package/link/Link.stories.tsx +146 -0
  86. package/list/List.d.ts +4 -0
  87. package/list/List.js +47 -0
  88. package/list/List.stories.tsx +95 -0
  89. package/list/types.d.ts +7 -0
  90. package/list/types.js +5 -0
  91. package/main.d.ts +7 -3
  92. package/main.js +34 -2
  93. package/number-input/NumberInput.d.ts +4 -0
  94. package/number-input/NumberInput.js +5 -50
  95. package/number-input/{NumberInput.stories.jsx → NumberInput.stories.tsx} +0 -0
  96. package/number-input/NumberInputContext.d.ts +4 -0
  97. package/number-input/NumberInputContext.js +5 -2
  98. package/number-input/numberInputContextTypes.d.ts +19 -0
  99. package/number-input/numberInputContextTypes.js +5 -0
  100. package/number-input/types.d.ts +117 -0
  101. package/number-input/types.js +5 -0
  102. package/package.json +4 -2
  103. package/paginator/Paginator.js +2 -8
  104. package/password-input/PasswordInput.js +19 -18
  105. package/password-input/PasswordInput.stories.tsx +3 -3
  106. package/password-input/types.d.ts +17 -10
  107. package/progress-bar/ProgressBar.js +4 -4
  108. package/radio/Radio.js +2 -2
  109. package/radio/types.d.ts +2 -2
  110. package/radio-group/Radio.d.ts +4 -0
  111. package/radio-group/Radio.js +140 -0
  112. package/radio-group/RadioGroup.d.ts +4 -0
  113. package/radio-group/RadioGroup.js +273 -0
  114. package/radio-group/RadioGroup.stories.tsx +79 -0
  115. package/radio-group/RadioGroup.test.js +248 -0
  116. package/radio-group/types.d.ts +36 -0
  117. package/radio-group/types.js +5 -0
  118. package/resultsetTable/ResultsetTable.d.ts +4 -0
  119. package/resultsetTable/ResultsetTable.js +5 -28
  120. package/resultsetTable/ResultsetTable.stories.tsx +275 -0
  121. package/resultsetTable/types.d.ts +67 -0
  122. package/resultsetTable/types.js +5 -0
  123. package/row/Row.d.ts +3 -0
  124. package/row/Row.js +127 -0
  125. package/row/Row.stories.tsx +237 -0
  126. package/row/types.d.ts +10 -0
  127. package/row/types.js +5 -0
  128. package/select/Select.d.ts +4 -0
  129. package/select/Select.js +20 -22
  130. package/select/Select.stories.tsx +572 -0
  131. package/select/types.d.ts +170 -0
  132. package/select/types.js +5 -0
  133. package/sidenav/Sidenav.d.ts +9 -0
  134. package/sidenav/Sidenav.js +6 -15
  135. package/sidenav/Sidenav.stories.tsx +182 -0
  136. package/sidenav/types.d.ts +50 -0
  137. package/sidenav/types.js +5 -0
  138. package/slider/Slider.d.ts +1 -1
  139. package/slider/Slider.js +43 -32
  140. package/slider/Slider.stories.tsx +177 -0
  141. package/slider/types.d.ts +2 -7
  142. package/spinner/Spinner.js +2 -2
  143. package/spinner/Spinner.stories.jsx +1 -0
  144. package/stack/Stack.d.ts +3 -0
  145. package/stack/Stack.js +97 -0
  146. package/stack/Stack.stories.tsx +164 -0
  147. package/stack/types.d.ts +9 -0
  148. package/stack/types.js +5 -0
  149. package/switch/Switch.js +2 -2
  150. package/switch/Switch.stories.tsx +1 -1
  151. package/table/Table.js +3 -3
  152. package/table/Table.stories.jsx +2 -1
  153. package/tabs/Tabs.js +11 -9
  154. package/tabs/Tabs.stories.tsx +120 -0
  155. package/tabs/types.d.ts +25 -18
  156. package/tag/Tag.d.ts +4 -0
  157. package/tag/Tag.js +9 -35
  158. package/tag/{Tag.stories.jsx → Tag.stories.tsx} +15 -22
  159. package/tag/types.d.ts +69 -0
  160. package/tag/types.js +5 -0
  161. package/text/Text.d.ts +7 -0
  162. package/text/Text.js +30 -0
  163. package/text/Text.stories.tsx +19 -0
  164. package/text-input/TextInput.d.ts +4 -0
  165. package/text-input/TextInput.js +54 -85
  166. package/text-input/TextInput.stories.tsx +456 -0
  167. package/text-input/types.d.ts +159 -0
  168. package/text-input/types.js +5 -0
  169. package/textarea/Textarea.d.ts +4 -0
  170. package/textarea/Textarea.js +27 -60
  171. package/textarea/Textarea.stories.jsx +4 -3
  172. package/textarea/types.d.ts +130 -0
  173. package/textarea/types.js +5 -0
  174. package/toggle/Toggle.js +1 -1
  175. package/toggle-group/ToggleGroup.d.ts +4 -0
  176. package/toggle-group/ToggleGroup.js +16 -45
  177. package/toggle-group/ToggleGroup.stories.tsx +173 -0
  178. package/toggle-group/types.d.ts +97 -0
  179. package/toggle-group/types.js +5 -0
  180. package/upload/buttons-upload/ButtonsUpload.js +2 -2
  181. package/upload/dragAndDropArea/DragAndDropArea.js +2 -2
  182. package/upload/file-upload/FileToUpload.js +1 -1
  183. package/upload/files-upload/FilesToUpload.js +1 -1
  184. package/upload/transaction/Transaction.js +2 -2
  185. package/upload/transactions/Transactions.js +1 -1
  186. package/useTheme.d.ts +2 -0
  187. package/useTheme.js +1 -1
  188. package/wizard/Wizard.d.ts +4 -0
  189. package/wizard/Wizard.js +69 -59
  190. package/wizard/Wizard.stories.tsx +224 -0
  191. package/wizard/types.d.ts +60 -0
  192. package/wizard/types.js +5 -0
  193. package/chip/index.d.ts +0 -22
  194. package/file-input/index.d.ts +0 -81
  195. package/heading/index.d.ts +0 -17
  196. package/number-input/index.d.ts +0 -113
  197. package/resultsetTable/index.d.ts +0 -19
  198. package/select/index.d.ts +0 -131
  199. package/sidenav/index.d.ts +0 -13
  200. package/tag/index.d.ts +0 -24
  201. package/text-input/index.d.ts +0 -135
  202. package/textarea/index.d.ts +0 -117
  203. package/toggle-group/index.d.ts +0 -21
  204. package/wizard/Icons.js +0 -65
  205. package/wizard/index.d.ts +0 -18
@@ -17,32 +17,36 @@ 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"));
23
25
 
24
26
  var _react = _interopRequireWildcard(require("react"));
25
27
 
26
- var _propTypes = _interopRequireDefault(require("prop-types"));
27
-
28
28
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
29
29
 
30
30
  var _uuid = require("uuid");
31
31
 
32
32
  var _variables = require("../common/variables.js");
33
33
 
34
- var _useTheme = _interopRequireDefault(require("../useTheme.js"));
34
+ var _useTheme = _interopRequireDefault(require("../useTheme"));
35
35
 
36
36
  var _Button = _interopRequireDefault(require("../button/Button"));
37
37
 
38
38
  var _FileItem = _interopRequireDefault(require("./FileItem"));
39
39
 
40
- 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;
41
41
 
42
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); }
43
43
 
44
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; }
45
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
+
46
50
  var audioIcon = /*#__PURE__*/_react["default"].createElement("svg", {
47
51
  xmlns: "http://www.w3.org/2000/svg",
48
52
  width: "24",
@@ -89,6 +93,8 @@ var DxcFileInput = function DxcFileInput(_ref) {
89
93
  mode = _ref$mode === void 0 ? "file" : _ref$mode,
90
94
  _ref$label = _ref.label,
91
95
  label = _ref$label === void 0 ? "" : _ref$label,
96
+ buttonLabel = _ref.buttonLabel,
97
+ dropAreaLabel = _ref.dropAreaLabel,
92
98
  _ref$helperText = _ref.helperText,
93
99
  helperText = _ref$helperText === void 0 ? "" : _ref$helperText,
94
100
  accept = _ref.accept,
@@ -103,7 +109,8 @@ var DxcFileInput = function DxcFileInput(_ref) {
103
109
  callbackFile = _ref.callbackFile,
104
110
  value = _ref.value,
105
111
  margin = _ref.margin,
106
- tabIndex = _ref.tabIndex;
112
+ _ref$tabIndex = _ref.tabIndex,
113
+ tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
107
114
 
108
115
  var _useState = (0, _react.useState)(false),
109
116
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
@@ -121,11 +128,74 @@ var DxcFileInput = function DxcFileInput(_ref) {
121
128
 
122
129
  var colorsTheme = (0, _useTheme["default"])();
123
130
  (0, _react.useEffect)(function () {
124
- if (value) {
125
- setFiles(value);
126
- } else {
127
- setFiles([]);
128
- }
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();
129
199
  }, [value]);
130
200
 
131
201
  var handleClick = function handleClick() {
@@ -166,13 +236,13 @@ var DxcFileInput = function DxcFileInput(_ref) {
166
236
  };
167
237
 
168
238
  var getFilesToAdd = /*#__PURE__*/function () {
169
- 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) {
170
240
  var filesToAdd;
171
- return _regenerator["default"].wrap(function _callee$(_context) {
241
+ return _regenerator["default"].wrap(function _callee3$(_context3) {
172
242
  while (1) {
173
- switch (_context.prev = _context.next) {
243
+ switch (_context3.prev = _context3.next) {
174
244
  case 0:
175
- _context.next = 2;
245
+ _context3.next = 2;
176
246
  return Promise.all(selectedFiles.map(function (selectedFile) {
177
247
  return getFilePreview(selectedFile);
178
248
  })).then(function (previews) {
@@ -187,71 +257,71 @@ var DxcFileInput = function DxcFileInput(_ref) {
187
257
  });
188
258
 
189
259
  case 2:
190
- filesToAdd = _context.sent;
191
- return _context.abrupt("return", filesToAdd);
260
+ filesToAdd = _context3.sent;
261
+ return _context3.abrupt("return", filesToAdd);
192
262
 
193
263
  case 4:
194
264
  case "end":
195
- return _context.stop();
265
+ return _context3.stop();
196
266
  }
197
267
  }
198
- }, _callee);
268
+ }, _callee3);
199
269
  }));
200
270
 
201
- return function getFilesToAdd(_x) {
202
- return _ref2.apply(this, arguments);
271
+ return function getFilesToAdd(_x2) {
272
+ return _ref4.apply(this, arguments);
203
273
  };
204
274
  }();
205
275
 
206
276
  var addFile = /*#__PURE__*/function () {
207
- 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) {
208
278
  var filesToAdd, finalFiles, fileToAdd;
209
- return _regenerator["default"].wrap(function _callee2$(_context2) {
279
+ return _regenerator["default"].wrap(function _callee4$(_context4) {
210
280
  while (1) {
211
- switch (_context2.prev = _context2.next) {
281
+ switch (_context4.prev = _context4.next) {
212
282
  case 0:
213
283
  if (!multiple) {
214
- _context2.next = 8;
284
+ _context4.next = 8;
215
285
  break;
216
286
  }
217
287
 
218
- _context2.next = 3;
288
+ _context4.next = 3;
219
289
  return getFilesToAdd(selectedFiles);
220
290
 
221
291
  case 3:
222
- filesToAdd = _context2.sent;
292
+ filesToAdd = _context4.sent;
223
293
  finalFiles = [].concat((0, _toConsumableArray2["default"])(files), (0, _toConsumableArray2["default"])(filesToAdd));
224
294
 
225
295
  if (typeof callbackFile === "function") {
226
296
  callbackFile(finalFiles);
227
297
  }
228
298
 
229
- _context2.next = 19;
299
+ _context4.next = 19;
230
300
  break;
231
301
 
232
302
  case 8:
233
303
  if (!(selectedFiles.length === 1)) {
234
- _context2.next = 14;
304
+ _context4.next = 14;
235
305
  break;
236
306
  }
237
307
 
238
- _context2.next = 11;
308
+ _context4.next = 11;
239
309
  return getFilesToAdd(selectedFiles);
240
310
 
241
311
  case 11:
242
- _context2.t0 = _context2.sent;
243
- _context2.next = 17;
312
+ _context4.t0 = _context4.sent;
313
+ _context4.next = 17;
244
314
  break;
245
315
 
246
316
  case 14:
247
- _context2.next = 16;
317
+ _context4.next = 16;
248
318
  return getFilesToAdd([selectedFiles[0]]);
249
319
 
250
320
  case 16:
251
- _context2.t0 = _context2.sent;
321
+ _context4.t0 = _context4.sent;
252
322
 
253
323
  case 17:
254
- fileToAdd = _context2.t0;
324
+ fileToAdd = _context4.t0;
255
325
 
256
326
  if (typeof callbackFile === "function") {
257
327
  callbackFile(fileToAdd);
@@ -259,14 +329,14 @@ var DxcFileInput = function DxcFileInput(_ref) {
259
329
 
260
330
  case 19:
261
331
  case "end":
262
- return _context2.stop();
332
+ return _context4.stop();
263
333
  }
264
334
  }
265
- }, _callee2);
335
+ }, _callee4);
266
336
  }));
267
337
 
268
- return function addFile(_x2) {
269
- return _ref3.apply(this, arguments);
338
+ return function addFile(_x3) {
339
+ return _ref5.apply(this, arguments);
270
340
  };
271
341
  }();
272
342
 
@@ -297,18 +367,12 @@ var DxcFileInput = function DxcFileInput(_ref) {
297
367
  };
298
368
 
299
369
  var handleDragIn = function handleDragIn(e) {
300
- e.preventDefault();
301
- e.stopPropagation();
302
-
303
- if (e.dataTransfer.items && e.dataTransfer.items.length > 0) {
304
- setIsDragging(true);
305
- }
370
+ if (e.dataTransfer.items && e.dataTransfer.items.length > 0) setIsDragging(true);
306
371
  };
307
372
 
308
373
  var handleDragOut = function handleDragOut(e) {
309
- e.preventDefault();
310
- e.stopPropagation();
311
- setIsDragging(false);
374
+ // only if dragged items leave container (outside, not to childs)
375
+ if (!e.currentTarget.contains(e.relatedTarget)) setIsDragging(false);
312
376
  };
313
377
 
314
378
  var handleDrop = function handleDrop(e) {
@@ -329,8 +393,7 @@ var DxcFileInput = function DxcFileInput(_ref) {
329
393
  theme: colorsTheme.fileInput
330
394
  }, /*#__PURE__*/_react["default"].createElement(FileInputContainer, {
331
395
  margin: margin,
332
- name: name,
333
- tabIndex: tabIndex
396
+ name: name
334
397
  }, /*#__PURE__*/_react["default"].createElement(Label, {
335
398
  htmlFor: fileInputId,
336
399
  disabled: disabled
@@ -339,22 +402,20 @@ var DxcFileInput = function DxcFileInput(_ref) {
339
402
  }, helperText), mode === "file" ? /*#__PURE__*/_react["default"].createElement(FileContainer, {
340
403
  multiple: multiple,
341
404
  files: files
342
- }, /*#__PURE__*/_react["default"].createElement(ButtonErrorContainer, null, /*#__PURE__*/_react["default"].createElement(_Button["default"], {
343
- mode: "secondary",
344
- label: "Select files",
345
- onClick: handleClick,
346
- disabled: disabled,
347
- size: "medium",
348
- tabIndex: tabIndex
349
- }), /*#__PURE__*/_react["default"].createElement("input", {
405
+ }, /*#__PURE__*/_react["default"].createElement(HiddenInputFile, {
350
406
  id: fileInputId,
351
407
  type: "file",
352
408
  accept: accept,
353
409
  multiple: multiple,
354
410
  onChange: selectFiles
355
- }), files.length === 1 && files.map(function (file) {
356
- return file.error && mode === "file" && !multiple && /*#__PURE__*/_react["default"].createElement(ErrorMessage, null, file.error);
357
- })), 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) {
358
419
  return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(FileItemContainer, {
359
420
  mode: mode,
360
421
  multiple: multiple,
@@ -368,9 +429,16 @@ var DxcFileInput = function DxcFileInput(_ref) {
368
429
  numFiles: files.length,
369
430
  preview: file.preview,
370
431
  type: file.file.type,
371
- onDelete: onDelete
432
+ onDelete: onDelete,
433
+ tabIndex: tabIndex
372
434
  })));
373
- })) : /*#__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, {
374
442
  isDragging: isDragging,
375
443
  disabled: disabled,
376
444
  mode: mode,
@@ -382,19 +450,15 @@ var DxcFileInput = function DxcFileInput(_ref) {
382
450
  mode: mode
383
451
  }, /*#__PURE__*/_react["default"].createElement(_Button["default"], {
384
452
  mode: "secondary",
385
- label: "Select",
453
+ label: buttonLabel !== null && buttonLabel !== void 0 ? buttonLabel : "Select",
386
454
  onClick: handleClick,
387
455
  disabled: disabled,
388
456
  size: "fitContent"
389
- }), /*#__PURE__*/_react["default"].createElement("input", {
390
- id: fileInputId,
391
- type: "file",
392
- accept: accept,
393
- multiple: multiple,
394
- onChange: selectFiles
395
- })), /*#__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, {
396
460
  disabled: disabled
397
- }, "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) {
398
462
  return /*#__PURE__*/_react["default"].createElement(FileItemContainer, {
399
463
  mode: mode,
400
464
  multiple: multiple,
@@ -408,9 +472,12 @@ var DxcFileInput = function DxcFileInput(_ref) {
408
472
  numFiles: files.length,
409
473
  preview: file.preview,
410
474
  type: file.file.type,
411
- onDelete: onDelete
475
+ onDelete: onDelete,
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,37 @@ 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";
478
547
  });
479
548
 
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) {
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) {
481
550
  return props.disabled ? props.theme.disabledDropLabelFontColor : props.theme.dropLabelFontColor;
482
551
  }, function (props) {
483
552
  return props.theme.dropLabelFontFamily;
@@ -487,15 +556,25 @@ var DropLabel = _styledComponents["default"].span(_templateObject8 || (_template
487
556
  return props.theme.dropLabelFontWeight;
488
557
  });
489
558
 
490
- var Container = _styledComponents["default"].div(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n margin-top: 0.25rem;\n"])));
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) {
560
+ return props.disabled ? props.theme.disabledDropLabelFontColor : props.theme.dropLabelFontColor;
561
+ }, function (props) {
562
+ return props.theme.dropLabelFontFamily;
563
+ }, function (props) {
564
+ return props.theme.dropLabelFontSize;
565
+ }, function (props) {
566
+ return props.theme.dropLabelFontWeight;
567
+ });
568
+
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;
@@ -507,26 +586,5 @@ var ErrorMessage = _styledComponents["default"].div(_templateObject11 || (_templ
507
586
  return props.theme.errorMessageLineHeight;
508
587
  });
509
588
 
510
- DxcFileInput.propTypes = {
511
- name: _propTypes["default"].string,
512
- mode: _propTypes["default"].oneOf(["file", "filedrop", "dropzone"]),
513
- label: _propTypes["default"].string,
514
- helperText: _propTypes["default"].string,
515
- accept: _propTypes["default"].array,
516
- maxSize: _propTypes["default"].number,
517
- minSize: _propTypes["default"].number,
518
- multiple: _propTypes["default"].bool,
519
- showPreview: _propTypes["default"].bool,
520
- disabled: _propTypes["default"].bool,
521
- callbackFile: _propTypes["default"].func,
522
- value: _propTypes["default"].array,
523
- tabIndex: _propTypes["default"].number,
524
- margin: _propTypes["default"].oneOfType([_propTypes["default"].shape({
525
- top: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
526
- bottom: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
527
- left: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
528
- right: _propTypes["default"].oneOf(Object.keys(_variables.spaces))
529
- }), _propTypes["default"].oneOf((0, _toConsumableArray2["default"])(Object.keys(_variables.spaces)))])
530
- };
531
589
  var _default = DxcFileInput;
532
590
  exports["default"] = _default;