@dxc-technology/halstack-react 0.0.0-099fc65 → 0.0.0-0a9608a

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 (287) hide show
  1. package/BackgroundColorContext.d.ts +10 -0
  2. package/BackgroundColorContext.js +1 -4
  3. package/HalstackContext.d.ts +12 -0
  4. package/HalstackContext.js +294 -0
  5. package/accordion/Accordion.d.ts +1 -1
  6. package/accordion/Accordion.js +119 -138
  7. package/accordion/Accordion.stories.tsx +346 -0
  8. package/accordion/Accordion.test.js +71 -0
  9. package/accordion/types.d.ts +12 -11
  10. package/accordion-group/AccordionGroup.d.ts +1 -1
  11. package/accordion-group/AccordionGroup.js +16 -37
  12. package/accordion-group/AccordionGroup.stories.tsx +28 -2
  13. package/accordion-group/AccordionGroup.test.js +126 -0
  14. package/accordion-group/types.d.ts +17 -10
  15. package/alert/Alert.js +7 -4
  16. package/alert/Alert.test.js +92 -0
  17. package/badge/Badge.d.ts +4 -0
  18. package/badge/Badge.js +6 -4
  19. package/badge/types.d.ts +5 -0
  20. package/{radio → badge}/types.js +0 -0
  21. package/bleed/Bleed.d.ts +3 -0
  22. package/bleed/Bleed.js +51 -0
  23. package/bleed/Bleed.stories.tsx +341 -0
  24. package/bleed/types.d.ts +37 -0
  25. package/bleed/types.js +5 -0
  26. package/box/Box.js +25 -35
  27. package/box/Box.test.js +18 -0
  28. package/box/types.d.ts +1 -0
  29. package/bulleted-list/BulletedList.d.ts +7 -0
  30. package/bulleted-list/BulletedList.js +123 -0
  31. package/bulleted-list/BulletedList.stories.tsx +200 -0
  32. package/bulleted-list/types.d.ts +11 -0
  33. package/bulleted-list/types.js +5 -0
  34. package/button/Button.d.ts +1 -1
  35. package/button/Button.js +56 -81
  36. package/button/Button.stories.tsx +72 -8
  37. package/button/Button.test.js +35 -0
  38. package/button/types.d.ts +8 -12
  39. package/card/Card.js +25 -28
  40. package/card/Card.stories.tsx +1 -1
  41. package/card/Card.test.js +50 -0
  42. package/card/types.d.ts +1 -0
  43. package/checkbox/Checkbox.d.ts +2 -2
  44. package/checkbox/Checkbox.js +108 -111
  45. package/checkbox/Checkbox.stories.tsx +146 -130
  46. package/checkbox/Checkbox.test.js +155 -0
  47. package/checkbox/types.d.ts +14 -6
  48. package/chip/Chip.d.ts +1 -1
  49. package/chip/Chip.js +20 -70
  50. package/chip/Chip.stories.tsx +44 -14
  51. package/chip/Chip.test.js +56 -0
  52. package/chip/types.d.ts +7 -15
  53. package/common/variables.js +398 -464
  54. package/date-input/Calendar.d.ts +4 -0
  55. package/date-input/Calendar.js +246 -0
  56. package/date-input/DateInput.js +174 -266
  57. package/date-input/DateInput.stories.tsx +137 -38
  58. package/date-input/DateInput.test.js +835 -0
  59. package/date-input/DatePicker.d.ts +4 -0
  60. package/date-input/DatePicker.js +132 -0
  61. package/date-input/Icons.d.ts +6 -0
  62. package/date-input/Icons.js +75 -0
  63. package/date-input/YearPicker.d.ts +4 -0
  64. package/date-input/YearPicker.js +116 -0
  65. package/date-input/types.d.ts +67 -9
  66. package/dialog/Dialog.js +50 -53
  67. package/dialog/Dialog.stories.tsx +57 -2
  68. package/dialog/Dialog.test.js +70 -0
  69. package/dialog/types.d.ts +3 -2
  70. package/dropdown/Dropdown.d.ts +1 -1
  71. package/dropdown/Dropdown.js +248 -277
  72. package/dropdown/Dropdown.stories.tsx +393 -0
  73. package/dropdown/Dropdown.test.js +585 -0
  74. package/dropdown/DropdownMenu.d.ts +4 -0
  75. package/dropdown/DropdownMenu.js +70 -0
  76. package/dropdown/DropdownMenuItem.d.ts +4 -0
  77. package/dropdown/DropdownMenuItem.js +81 -0
  78. package/dropdown/types.d.ts +29 -18
  79. package/file-input/FileInput.d.ts +2 -2
  80. package/file-input/FileInput.js +177 -137
  81. package/file-input/FileInput.stories.tsx +535 -0
  82. package/file-input/FileInput.test.js +498 -0
  83. package/file-input/FileItem.d.ts +4 -14
  84. package/file-input/FileItem.js +45 -68
  85. package/file-input/types.d.ts +49 -7
  86. package/flex/Flex.d.ts +4 -0
  87. package/flex/Flex.js +69 -0
  88. package/flex/Flex.stories.tsx +103 -0
  89. package/flex/types.d.ts +32 -0
  90. package/flex/types.js +5 -0
  91. package/footer/Footer.d.ts +1 -1
  92. package/footer/Footer.js +32 -113
  93. package/footer/{Footer.stories.jsx → Footer.stories.tsx} +5 -19
  94. package/footer/Footer.test.js +109 -0
  95. package/footer/Icons.d.ts +2 -0
  96. package/footer/Icons.js +4 -4
  97. package/footer/types.d.ts +6 -9
  98. package/header/Header.js +109 -130
  99. package/header/Header.stories.tsx +78 -35
  100. package/header/Header.test.js +79 -0
  101. package/header/Icons.d.ts +2 -0
  102. package/header/Icons.js +2 -2
  103. package/header/types.d.ts +3 -2
  104. package/heading/Heading.js +1 -1
  105. package/heading/Heading.stories.tsx +3 -2
  106. package/heading/Heading.test.js +186 -0
  107. package/inset/Inset.d.ts +3 -0
  108. package/inset/Inset.js +51 -0
  109. package/inset/Inset.stories.tsx +229 -0
  110. package/inset/types.d.ts +37 -0
  111. package/inset/types.js +5 -0
  112. package/layout/ApplicationLayout.d.ts +20 -0
  113. package/layout/ApplicationLayout.js +71 -135
  114. package/layout/ApplicationLayout.stories.tsx +162 -0
  115. package/layout/Icons.d.ts +5 -0
  116. package/layout/Icons.js +13 -2
  117. package/layout/SidenavContext.d.ts +5 -0
  118. package/layout/SidenavContext.js +19 -0
  119. package/layout/types.d.ts +42 -0
  120. package/layout/types.js +5 -0
  121. package/link/Link.d.ts +3 -2
  122. package/link/Link.js +62 -87
  123. package/link/Link.stories.tsx +99 -52
  124. package/link/Link.test.js +83 -0
  125. package/link/types.d.ts +9 -29
  126. package/main.d.ts +12 -12
  127. package/main.js +64 -58
  128. package/number-input/NumberInput.js +14 -24
  129. package/number-input/NumberInput.stories.tsx +5 -5
  130. package/number-input/NumberInput.test.js +542 -0
  131. package/number-input/types.d.ts +17 -10
  132. package/package.json +21 -22
  133. package/paginator/Icons.d.ts +5 -0
  134. package/paginator/Icons.js +16 -28
  135. package/paginator/Paginator.js +21 -54
  136. package/paginator/Paginator.test.js +315 -0
  137. package/paragraph/Paragraph.d.ts +6 -0
  138. package/paragraph/Paragraph.js +38 -0
  139. package/paragraph/Paragraph.stories.tsx +44 -0
  140. package/password-input/PasswordInput.js +19 -17
  141. package/password-input/PasswordInput.stories.tsx +3 -3
  142. package/password-input/PasswordInput.test.js +181 -0
  143. package/password-input/types.d.ts +14 -11
  144. package/progress-bar/ProgressBar.d.ts +2 -2
  145. package/progress-bar/ProgressBar.js +59 -53
  146. package/progress-bar/ProgressBar.stories.jsx +13 -11
  147. package/progress-bar/ProgressBar.test.js +110 -0
  148. package/progress-bar/types.d.ts +3 -4
  149. package/quick-nav/QuickNav.d.ts +4 -0
  150. package/quick-nav/QuickNav.js +117 -0
  151. package/quick-nav/QuickNav.stories.tsx +342 -0
  152. package/quick-nav/types.d.ts +21 -0
  153. package/quick-nav/types.js +5 -0
  154. package/radio-group/Radio.d.ts +4 -0
  155. package/radio-group/Radio.js +156 -0
  156. package/radio-group/RadioGroup.d.ts +4 -0
  157. package/radio-group/RadioGroup.js +283 -0
  158. package/radio-group/RadioGroup.stories.tsx +101 -0
  159. package/radio-group/RadioGroup.test.js +722 -0
  160. package/radio-group/types.d.ts +114 -0
  161. package/radio-group/types.js +5 -0
  162. package/resultsetTable/Icons.d.ts +7 -0
  163. package/resultsetTable/Icons.js +51 -0
  164. package/resultsetTable/ResultsetTable.js +50 -106
  165. package/resultsetTable/ResultsetTable.stories.tsx +300 -0
  166. package/resultsetTable/ResultsetTable.test.js +325 -0
  167. package/resultsetTable/types.d.ts +3 -3
  168. package/select/Icons.d.ts +10 -0
  169. package/select/Icons.js +93 -0
  170. package/select/Listbox.d.ts +4 -0
  171. package/select/Listbox.js +169 -0
  172. package/select/Option.d.ts +4 -0
  173. package/select/Option.js +97 -0
  174. package/select/Select.d.ts +4 -0
  175. package/select/Select.js +196 -397
  176. package/select/Select.stories.tsx +317 -220
  177. package/select/Select.test.js +2228 -0
  178. package/select/types.d.ts +210 -0
  179. package/select/types.js +5 -0
  180. package/sidenav/Sidenav.d.ts +6 -5
  181. package/sidenav/Sidenav.js +184 -54
  182. package/sidenav/Sidenav.stories.tsx +163 -139
  183. package/sidenav/Sidenav.test.js +44 -0
  184. package/sidenav/types.d.ts +50 -27
  185. package/slider/Slider.d.ts +2 -2
  186. package/slider/Slider.js +124 -98
  187. package/slider/Slider.stories.tsx +15 -9
  188. package/slider/Slider.test.js +250 -0
  189. package/slider/types.d.ts +10 -2
  190. package/spinner/Spinner.js +5 -5
  191. package/spinner/Spinner.stories.jsx +1 -0
  192. package/spinner/Spinner.test.js +64 -0
  193. package/switch/Switch.d.ts +2 -2
  194. package/switch/Switch.js +152 -69
  195. package/switch/Switch.stories.tsx +21 -43
  196. package/switch/Switch.test.js +225 -0
  197. package/switch/types.d.ts +12 -4
  198. package/table/Table.js +3 -3
  199. package/table/Table.stories.jsx +2 -1
  200. package/table/Table.test.js +26 -0
  201. package/tabs/Tab.d.ts +4 -0
  202. package/tabs/Tab.js +133 -0
  203. package/tabs/Tabs.d.ts +1 -1
  204. package/tabs/Tabs.js +364 -110
  205. package/tabs/Tabs.stories.tsx +84 -17
  206. package/tabs/Tabs.test.js +351 -0
  207. package/tabs/types.d.ts +39 -17
  208. package/tabs-nav/NavTabs.d.ts +8 -0
  209. package/tabs-nav/NavTabs.js +125 -0
  210. package/tabs-nav/NavTabs.stories.tsx +172 -0
  211. package/tabs-nav/NavTabs.test.js +82 -0
  212. package/tabs-nav/Tab.d.ts +4 -0
  213. package/tabs-nav/Tab.js +128 -0
  214. package/tabs-nav/types.d.ts +53 -0
  215. package/tabs-nav/types.js +5 -0
  216. package/tag/Tag.d.ts +1 -1
  217. package/tag/Tag.js +19 -29
  218. package/tag/Tag.stories.tsx +26 -29
  219. package/tag/Tag.test.js +60 -0
  220. package/tag/types.d.ts +23 -14
  221. package/text-input/Icons.d.ts +8 -0
  222. package/text-input/Icons.js +60 -0
  223. package/text-input/Suggestion.d.ts +4 -0
  224. package/text-input/Suggestion.js +84 -0
  225. package/text-input/Suggestions.d.ts +4 -0
  226. package/text-input/Suggestions.js +134 -0
  227. package/text-input/TextInput.js +229 -342
  228. package/text-input/TextInput.stories.tsx +241 -196
  229. package/text-input/TextInput.test.js +1724 -0
  230. package/text-input/types.d.ts +51 -13
  231. package/textarea/Textarea.d.ts +4 -0
  232. package/textarea/Textarea.js +34 -73
  233. package/textarea/Textarea.stories.jsx +37 -15
  234. package/textarea/Textarea.test.js +437 -0
  235. package/textarea/types.d.ts +137 -0
  236. package/textarea/types.js +5 -0
  237. package/toggle-group/ToggleGroup.d.ts +1 -1
  238. package/toggle-group/ToggleGroup.js +15 -17
  239. package/toggle-group/ToggleGroup.stories.tsx +27 -32
  240. package/toggle-group/ToggleGroup.test.js +156 -0
  241. package/toggle-group/types.d.ts +46 -25
  242. package/typography/Typography.d.ts +4 -0
  243. package/typography/Typography.js +131 -0
  244. package/typography/Typography.stories.tsx +198 -0
  245. package/typography/types.d.ts +18 -0
  246. package/typography/types.js +5 -0
  247. package/useTheme.d.ts +2 -0
  248. package/useTheme.js +2 -2
  249. package/useTranslatedLabels.d.ts +2 -0
  250. package/useTranslatedLabels.js +20 -0
  251. package/wizard/Wizard.d.ts +1 -1
  252. package/wizard/Wizard.js +112 -58
  253. package/wizard/{Wizard.stories.jsx → Wizard.stories.tsx} +33 -24
  254. package/wizard/Wizard.test.js +141 -0
  255. package/wizard/types.d.ts +12 -11
  256. package/ThemeContext.js +0 -246
  257. package/V3Select/V3Select.js +0 -455
  258. package/V3Select/index.d.ts +0 -27
  259. package/V3Textarea/V3Textarea.js +0 -260
  260. package/V3Textarea/index.d.ts +0 -27
  261. package/common/RequiredComponent.js +0 -32
  262. package/date/Date.js +0 -373
  263. package/date/index.d.ts +0 -27
  264. package/input-text/Icons.js +0 -22
  265. package/input-text/InputText.js +0 -611
  266. package/input-text/index.d.ts +0 -36
  267. package/radio/Radio.d.ts +0 -4
  268. package/radio/Radio.js +0 -174
  269. package/radio/Radio.stories.tsx +0 -192
  270. package/radio/types.d.ts +0 -54
  271. package/select/index.d.ts +0 -131
  272. package/textarea/index.d.ts +0 -127
  273. package/toggle/Toggle.js +0 -186
  274. package/toggle/index.d.ts +0 -21
  275. package/upload/Upload.js +0 -201
  276. package/upload/buttons-upload/ButtonsUpload.js +0 -111
  277. package/upload/buttons-upload/Icons.js +0 -40
  278. package/upload/dragAndDropArea/DragAndDropArea.js +0 -225
  279. package/upload/dragAndDropArea/Icons.js +0 -39
  280. package/upload/file-upload/FileToUpload.js +0 -115
  281. package/upload/file-upload/Icons.js +0 -66
  282. package/upload/files-upload/FilesToUpload.js +0 -109
  283. package/upload/index.d.ts +0 -15
  284. package/upload/transaction/Icons.js +0 -160
  285. package/upload/transaction/Transaction.js +0 -104
  286. package/upload/transactions/Transactions.js +0 -94
  287. package/wizard/Icons.js +0 -65
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+
10
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
11
+
12
+ var _react = _interopRequireDefault(require("react"));
13
+
14
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
15
+
16
+ var _templateObject, _templateObject2, _templateObject3;
17
+
18
+ var DropdownMenuItem = function DropdownMenuItem(_ref) {
19
+ var id = _ref.id,
20
+ visuallyFocused = _ref.visuallyFocused,
21
+ iconPosition = _ref.iconPosition,
22
+ _onClick = _ref.onClick,
23
+ option = _ref.option;
24
+ return /*#__PURE__*/_react["default"].createElement(DropdownMenuItemContainer, {
25
+ visuallyFocused: visuallyFocused,
26
+ onClick: function onClick() {
27
+ _onClick(option.value);
28
+ },
29
+ id: id,
30
+ role: "menuitem",
31
+ tabIndex: -1
32
+ }, iconPosition === "after" && /*#__PURE__*/_react["default"].createElement(DropdownMenuItemLabel, null, option.label), option.icon && /*#__PURE__*/_react["default"].createElement(DropdownMenuItemIcon, {
33
+ iconPosition: iconPosition,
34
+ label: option.label,
35
+ role: typeof option.icon === "string" ? undefined : "img"
36
+ }, typeof option.icon === "string" ? /*#__PURE__*/_react["default"].createElement("img", {
37
+ src: option.icon
38
+ }) : option.icon), iconPosition === "before" && /*#__PURE__*/_react["default"].createElement(DropdownMenuItemLabel, null, option.label));
39
+ };
40
+
41
+ var DropdownMenuItemContainer = _styledComponents["default"].li(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n display: flex;\n align-items: center;\n gap: ", ";\n min-height: 36px;\n padding-top: ", ";\n padding-bottom: ", ";\n padding-left: ", ";\n padding-right: ", ";\n cursor: pointer;\n\n ", "\n &:hover {\n background-color: ", ";\n }\n &:active {\n background-color: ", ";\n }\n"])), function (props) {
42
+ return props.theme.optionIconSpacing;
43
+ }, function (props) {
44
+ return props.theme.optionPaddingTop;
45
+ }, function (props) {
46
+ return props.theme.optionPaddingBottom;
47
+ }, function (props) {
48
+ return props.theme.optionPaddingLeft;
49
+ }, function (props) {
50
+ return props.theme.optionPaddingRight;
51
+ }, function (props) {
52
+ return props.visuallyFocused && "outline: ".concat(props.theme.focusColor, " solid 2px; outline-offset: -2px;");
53
+ }, function (props) {
54
+ return props.theme.hoverOptionBackgroundColor;
55
+ }, function (props) {
56
+ return props.theme.activeOptionBackgroundColor;
57
+ });
58
+
59
+ var DropdownMenuItemLabel = _styledComponents["default"].span(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n line-height: 1.5rem;\n color: ", ";\n white-space: nowrap;\n"])), function (props) {
60
+ return props.theme.optionFontFamily;
61
+ }, function (props) {
62
+ return props.theme.optionFontSize;
63
+ }, function (props) {
64
+ return props.theme.optionFontStyle;
65
+ }, function (props) {
66
+ return props.theme.optionFontWeight;
67
+ }, function (props) {
68
+ return props.theme.optionFontColor;
69
+ });
70
+
71
+ var DropdownMenuItemIcon = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n color: ", ";\n\n img,\n svg {\n width: ", ";\n height: ", ";\n }\n"])), function (props) {
72
+ return props.theme.optionIconColor;
73
+ }, function (props) {
74
+ return props.theme.optionIconSize;
75
+ }, function (props) {
76
+ return props.theme.optionIconSize;
77
+ });
78
+
79
+ var _default = /*#__PURE__*/_react["default"].memo(DropdownMenuItem);
80
+
81
+ exports["default"] = _default;
@@ -1,26 +1,23 @@
1
1
  /// <reference types="react" />
2
- declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
3
- declare type Margin = {
2
+ export declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
3
+ export declare type Margin = {
4
4
  top?: Space;
5
5
  bottom?: Space;
6
6
  left?: Space;
7
7
  right?: Space;
8
8
  };
9
- declare type SVG = React.SVGProps<SVGSVGElement> | React.FunctionComponent<React.SVGProps<SVGSVGElement>>;
10
- declare type Option = {
9
+ export declare type Size = "small" | "medium" | "large" | "fillParent" | "fitContent";
10
+ declare type SVG = React.ReactNode & React.SVGProps<SVGSVGElement>;
11
+ export declare type Option = {
11
12
  /**
12
13
  * Option display value.
13
14
  */
14
15
  label?: string;
15
16
  /**
16
- * Element used as the icon that will be placed next to the
17
+ * Element or path used as the icon that will be placed next to the
17
18
  * option label.
18
19
  */
19
- icon?: SVG;
20
- /**
21
- * @deprecated URL of the icon that will be placed next to the option label.
22
- */
23
- iconSrc?: string;
20
+ icon?: string | SVG;
24
21
  /**
25
22
  * Option inner value.
26
23
  */
@@ -37,15 +34,10 @@ declare type Props = {
37
34
  */
38
35
  optionsIconPosition?: "before" | "after";
39
36
  /**
40
- * Element used as the icon that will be placed next to the
41
- * dropdown label.
42
- */
43
- icon?: SVG;
44
- /**
45
- * @deprecated URL of the icon that will be placed next to the
37
+ * Element or path used as the icon that will be placed next to the
46
38
  * dropdown label.
47
39
  */
48
- iconSrc?: string;
40
+ icon?: string | SVG;
49
41
  /**
50
42
  * Whether the icon should appear after or before the label.
51
43
  */
@@ -76,7 +68,7 @@ declare type Props = {
76
68
  /**
77
69
  * Size of the component.
78
70
  */
79
- size?: "small" | "medium" | "large" | "fillParent" | "fitContent";
71
+ size?: Size;
80
72
  /**
81
73
  * Value of the tabindex.
82
74
  */
@@ -86,4 +78,23 @@ declare type Props = {
86
78
  */
87
79
  disabled?: boolean;
88
80
  };
81
+ export declare type DropdownMenuProps = {
82
+ id: string;
83
+ dropdownTriggerId: string;
84
+ iconsPosition: "before" | "after";
85
+ visualFocusIndex: number;
86
+ menuItemOnClick: (value: string) => void;
87
+ onKeyDown: (event: React.KeyboardEvent<HTMLUListElement>) => void;
88
+ options: Option[];
89
+ styles: {
90
+ width: number;
91
+ };
92
+ };
93
+ export declare type DropdownMenuItemProps = {
94
+ id: string;
95
+ visuallyFocused: boolean;
96
+ iconPosition: "before" | "after";
97
+ onClick: (value: string) => void;
98
+ option: Option;
99
+ };
89
100
  export default Props;
@@ -1,4 +1,4 @@
1
- /// <reference types="react" />
1
+ import React from "react";
2
2
  import FileInputPropsType from "./types";
3
- declare const DxcFileInput: ({ name, mode, label, helperText, accept, minSize, maxSize, showPreview, multiple, disabled, callbackFile, value, margin, tabIndex, }: FileInputPropsType) => JSX.Element;
3
+ declare const DxcFileInput: React.ForwardRefExoticComponent<FileInputPropsType & React.RefAttributes<HTMLDivElement>>;
4
4
  export default DxcFileInput;
@@ -15,6 +15,8 @@ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/hel
15
15
 
16
16
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
17
17
 
18
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
19
+
18
20
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
19
21
 
20
22
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
@@ -29,7 +31,9 @@ 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"));
35
+
36
+ var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
33
37
 
34
38
  var _Button = _interopRequireDefault(require("../button/Button"));
35
39
 
@@ -41,6 +45,10 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
41
45
 
42
46
  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
47
 
48
+ 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; }
49
+
50
+ 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; }
51
+
44
52
  var audioIcon = /*#__PURE__*/_react["default"].createElement("svg", {
45
53
  xmlns: "http://www.w3.org/2000/svg",
46
54
  width: "24",
@@ -80,13 +88,26 @@ var fileIcon = /*#__PURE__*/_react["default"].createElement("svg", {
80
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"
81
89
  }));
82
90
 
83
- 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) {
84
103
  var _ref$name = _ref.name,
85
104
  name = _ref$name === void 0 ? "" : _ref$name,
86
105
  _ref$mode = _ref.mode,
87
106
  mode = _ref$mode === void 0 ? "file" : _ref$mode,
88
107
  _ref$label = _ref.label,
89
108
  label = _ref$label === void 0 ? "" : _ref$label,
109
+ buttonLabel = _ref.buttonLabel,
110
+ dropAreaLabel = _ref.dropAreaLabel,
90
111
  _ref$helperText = _ref.helperText,
91
112
  helperText = _ref$helperText === void 0 ? "" : _ref$helperText,
92
113
  accept = _ref.accept,
@@ -119,49 +140,10 @@ var DxcFileInput = function DxcFileInput(_ref) {
119
140
  fileInputId = _useState6[0];
120
141
 
121
142
  var colorsTheme = (0, _useTheme["default"])();
122
- (0, _react.useEffect)(function () {
123
- if (value) {
124
- setFiles(value);
125
- } else {
126
- setFiles([]);
127
- }
128
- }, [value]);
129
-
130
- var handleClick = function handleClick() {
131
- document.getElementById(fileInputId).click();
132
- };
143
+ var translatedLabels = (0, _useTranslatedLabels["default"])();
133
144
 
134
145
  var checkFileSize = function checkFileSize(file) {
135
- if (file.size < minSize) {
136
- return "File size must be greater than min size.";
137
- }
138
-
139
- if (file.size > maxSize) {
140
- return "File size must be less than max size.";
141
- }
142
- };
143
-
144
- var getFilePreview = function getFilePreview(file) {
145
- if (file.type.includes("video")) {
146
- return videoIcon;
147
- }
148
-
149
- if (file.type.includes("audio")) {
150
- return audioIcon;
151
- }
152
-
153
- if (file.type.includes("image")) {
154
- return new Promise(function (resolve) {
155
- var reader = new FileReader();
156
- reader.readAsDataURL(file);
157
-
158
- reader.onload = function (e) {
159
- resolve(e.target.result);
160
- };
161
- });
162
- }
163
-
164
- return fileIcon;
146
+ if (file.size < minSize) return translatedLabels.fileInput.fileSizeGreaterThanErrorMessage;else if (file.size > maxSize) return translatedLabels.fileInput.fileSizeLessThanErrorMessage;
165
147
  };
166
148
 
167
149
  var getFilesToAdd = /*#__PURE__*/function () {
@@ -175,10 +157,10 @@ var DxcFileInput = function DxcFileInput(_ref) {
175
157
  return Promise.all(selectedFiles.map(function (selectedFile) {
176
158
  return getFilePreview(selectedFile);
177
159
  })).then(function (previews) {
178
- return selectedFiles.map(function (selectedFile, index) {
160
+ return selectedFiles.map(function (file, index) {
179
161
  var fileInfo = {
180
- file: selectedFile,
181
- error: checkFileSize(selectedFile),
162
+ file: file,
163
+ error: checkFileSize(file),
182
164
  preview: previews[index]
183
165
  };
184
166
  return fileInfo;
@@ -220,11 +202,7 @@ var DxcFileInput = function DxcFileInput(_ref) {
220
202
  case 3:
221
203
  filesToAdd = _context2.sent;
222
204
  finalFiles = [].concat((0, _toConsumableArray2["default"])(files), (0, _toConsumableArray2["default"])(filesToAdd));
223
-
224
- if (typeof callbackFile === "function") {
225
- callbackFile(finalFiles);
226
- }
227
-
205
+ callbackFile === null || callbackFile === void 0 ? void 0 : callbackFile(finalFiles);
228
206
  _context2.next = 19;
229
207
  break;
230
208
 
@@ -251,10 +229,7 @@ var DxcFileInput = function DxcFileInput(_ref) {
251
229
 
252
230
  case 17:
253
231
  fileToAdd = _context2.t0;
254
-
255
- if (typeof callbackFile === "function") {
256
- callbackFile(fileToAdd);
257
- }
232
+ callbackFile === null || callbackFile === void 0 ? void 0 : callbackFile(fileToAdd);
258
233
 
259
234
  case 19:
260
235
  case "end":
@@ -277,17 +252,18 @@ var DxcFileInput = function DxcFileInput(_ref) {
277
252
  addFile(filesArray);
278
253
  };
279
254
 
280
- var onDelete = function onDelete(fileName) {
255
+ var onDelete = (0, _react.useCallback)(function (fileName) {
281
256
  var filesCopy = (0, _toConsumableArray2["default"])(files);
282
257
  var fileToRemove = filesCopy.find(function (file) {
283
258
  return file.file.name === fileName;
284
259
  });
285
260
  var fileIndex = filesCopy.indexOf(fileToRemove);
286
261
  filesCopy.splice(fileIndex, 1);
262
+ callbackFile === null || callbackFile === void 0 ? void 0 : callbackFile(filesCopy);
263
+ }, [files, callbackFile]);
287
264
 
288
- if (typeof callbackFile === "function") {
289
- callbackFile(filesCopy);
290
- }
265
+ var handleClick = function handleClick() {
266
+ document.getElementById(fileInputId).click();
291
267
  };
292
268
 
293
269
  var handleDrag = function handleDrag(e) {
@@ -296,18 +272,14 @@ var DxcFileInput = function DxcFileInput(_ref) {
296
272
  };
297
273
 
298
274
  var handleDragIn = function handleDragIn(e) {
299
- e.preventDefault();
300
- e.stopPropagation();
275
+ var _e$dataTransfer$items;
301
276
 
302
- if (e.dataTransfer.items && e.dataTransfer.items.length > 0) {
303
- setIsDragging(true);
304
- }
277
+ if (((_e$dataTransfer$items = e.dataTransfer.items) === null || _e$dataTransfer$items === void 0 ? void 0 : _e$dataTransfer$items.length) > 0) setIsDragging(true);
305
278
  };
306
279
 
307
280
  var handleDragOut = function handleDragOut(e) {
308
- e.preventDefault();
309
- e.stopPropagation();
310
- setIsDragging(false);
281
+ // only if dragged items leave container (outside, not to childs)
282
+ if (!e.currentTarget.contains(e.relatedTarget)) setIsDragging(false);
311
283
  };
312
284
 
313
285
  var handleDrop = function handleDrop(e) {
@@ -316,7 +288,7 @@ var DxcFileInput = function DxcFileInput(_ref) {
316
288
  setIsDragging(false);
317
289
  var filesObject = e.dataTransfer.files;
318
290
 
319
- if (filesObject && filesObject.length > 0) {
291
+ if ((filesObject === null || filesObject === void 0 ? void 0 : filesObject.length) > 0) {
320
292
  var filesArray = Object.keys(filesObject).map(function (key) {
321
293
  return filesObject[key];
322
294
  });
@@ -324,50 +296,129 @@ var DxcFileInput = function DxcFileInput(_ref) {
324
296
  }
325
297
  };
326
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]);
327
369
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
328
370
  theme: colorsTheme.fileInput
329
371
  }, /*#__PURE__*/_react["default"].createElement(FileInputContainer, {
330
372
  margin: margin,
331
- name: name
373
+ name: name,
374
+ ref: ref
332
375
  }, /*#__PURE__*/_react["default"].createElement(Label, {
333
376
  htmlFor: fileInputId,
334
377
  disabled: disabled
335
378
  }, label), /*#__PURE__*/_react["default"].createElement(HelperText, {
336
379
  disabled: disabled
337
380
  }, helperText), mode === "file" ? /*#__PURE__*/_react["default"].createElement(FileContainer, {
338
- multiple: multiple,
339
- files: files
340
- }, /*#__PURE__*/_react["default"].createElement(HiddenInputFile, {
381
+ singleFileMode: !multiple && files.length === 1
382
+ }, /*#__PURE__*/_react["default"].createElement(ValueInput, {
341
383
  id: fileInputId,
342
384
  type: "file",
343
385
  accept: accept,
344
386
  multiple: multiple,
345
- onChange: selectFiles
387
+ onChange: selectFiles,
388
+ name: name,
389
+ disabled: disabled,
390
+ readOnly: true,
391
+ "aria-hidden": "true"
346
392
  }), /*#__PURE__*/_react["default"].createElement(_Button["default"], {
347
393
  mode: "secondary",
348
- label: "Select files",
394
+ label: buttonLabel !== null && buttonLabel !== void 0 ? buttonLabel : multiple ? translatedLabels.fileInput.multipleButtonLabelDefault : translatedLabels.fileInput.singleButtonLabelDefault,
349
395
  onClick: handleClick,
350
396
  disabled: disabled,
351
- size: "medium",
397
+ size: "fitContent",
352
398
  tabIndex: tabIndex
353
- }), files.map(function (file) {
354
- return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(FileItemContainer, {
355
- mode: mode,
356
- multiple: multiple,
357
- files: files
358
- }, /*#__PURE__*/_react["default"].createElement(_FileItem["default"], {
359
- mode: mode,
360
- multiple: multiple,
361
- 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,
362
402
  error: file.error,
403
+ singleFileMode: !multiple && files.length === 1,
363
404
  showPreview: mode === "file" && !multiple ? false : showPreview,
364
- numFiles: files.length,
365
405
  preview: file.preview,
366
406
  type: file.file.type,
367
407
  onDelete: onDelete,
368
- tabIndex: tabIndex
369
- })));
370
- })) : /*#__PURE__*/_react["default"].createElement(Container, null, /*#__PURE__*/_react["default"].createElement(DragDropArea, {
408
+ tabIndex: tabIndex,
409
+ key: "file-".concat(index)
410
+ });
411
+ }))) : /*#__PURE__*/_react["default"].createElement(Container, null, /*#__PURE__*/_react["default"].createElement(ValueInput, {
412
+ id: fileInputId,
413
+ type: "file",
414
+ accept: accept,
415
+ multiple: multiple,
416
+ onChange: selectFiles,
417
+ name: name,
418
+ disabled: disabled,
419
+ readOnly: true,
420
+ "aria-hidden": "true"
421
+ }), /*#__PURE__*/_react["default"].createElement(DragDropArea, {
371
422
  isDragging: isDragging,
372
423
  disabled: disabled,
373
424
  mode: mode,
@@ -375,43 +426,30 @@ var DxcFileInput = function DxcFileInput(_ref) {
375
426
  onDragEnter: handleDragIn,
376
427
  onDragOver: handleDrag,
377
428
  onDragLeave: handleDragOut
378
- }, /*#__PURE__*/_react["default"].createElement(HiddenInputFile, {
379
- id: fileInputId,
380
- type: "file",
381
- accept: accept,
382
- multiple: multiple,
383
- onChange: selectFiles
384
- }), /*#__PURE__*/_react["default"].createElement(ButtonContainer, {
385
- mode: mode
386
429
  }, /*#__PURE__*/_react["default"].createElement(_Button["default"], {
387
430
  mode: "secondary",
388
- label: "Select",
431
+ label: buttonLabel !== null && buttonLabel !== void 0 ? buttonLabel : translatedLabels.fileInput.dropAreaButtonLabelDefault,
389
432
  onClick: handleClick,
390
433
  disabled: disabled,
391
434
  size: "fitContent"
392
- })), /*#__PURE__*/_react["default"].createElement(DropLabel, {
435
+ }), mode === "dropzone" ? /*#__PURE__*/_react["default"].createElement(DropzoneLabel, {
436
+ disabled: disabled
437
+ }, dropAreaLabel !== null && dropAreaLabel !== void 0 ? dropAreaLabel : multiple ? translatedLabels.fileInput.multipleDropAreaLabelDefault : translatedLabels.fileInput.singleDropAreaLabelDefault) : /*#__PURE__*/_react["default"].createElement(FiledropLabel, {
393
438
  disabled: disabled
394
- }, "or drop files")), files.map(function (file) {
395
- return /*#__PURE__*/_react["default"].createElement(FileItemContainer, {
396
- mode: mode,
397
- multiple: multiple,
398
- files: files
399
- }, /*#__PURE__*/_react["default"].createElement(_FileItem["default"], {
400
- mode: mode,
401
- multiple: multiple,
402
- 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,
403
442
  error: file.error,
443
+ singleFileMode: false,
404
444
  showPreview: showPreview,
405
- numFiles: files.length,
406
445
  preview: file.preview,
407
446
  type: file.file.type,
408
447
  onDelete: onDelete,
409
- tabIndex: tabIndex
410
- }));
411
- })), files.length === 1 && files.map(function (file) {
412
- return file.error && mode === "file" && !multiple && /*#__PURE__*/_react["default"].createElement(ErrorMessage, null, file.error);
413
- })));
414
- };
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
+ });
415
453
 
416
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) {
417
455
  return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
@@ -449,35 +487,35 @@ var HelperText = _styledComponents["default"].span(_templateObject3 || (_templat
449
487
  return props.theme.helperTextLineHeight;
450
488
  });
451
489
 
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)";
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;";
454
502
  }, function (props) {
455
- return props.mode === "filedrop" ? "row" : "column";
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";
456
504
  }, function (props) {
457
505
  return props.theme.dropBorderRadius;
458
506
  }, function (props) {
459
- return !props.isDragging ? props.theme.dropBorderThickness : "2px";
507
+ return props.theme.dropBorderThickness;
460
508
  }, function (props) {
461
- return !props.isDragging ? props.theme.dropBorderStyle : "solid";
509
+ return props.theme.dropBorderStyle;
462
510
  }, function (props) {
463
- return props.isDragging && props.theme.dragoverDropBackgroundColor;
511
+ return props.disabled ? props.theme.disabledDropBorderColor : props.theme.dropBorderColor;
464
512
  }, function (props) {
465
- return props.disabled ? props.theme.disabledDropBorderColor : props.isDragging ? props.theme.focusDropBorderColor : props.theme.dropBorderColor;
513
+ 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
514
  }, function (props) {
467
515
  return props.disabled && "not-allowed";
468
516
  });
469
517
 
470
- 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
- return props.multiple || props.files.length > 1 ? "column" : "row";
472
- });
473
-
474
- var HiddenInputFile = _styledComponents["default"].input(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n visibility: hidden;\n position: absolute;\n width: 0px;\n height: 0px;\n"])));
475
-
476
- var ButtonContainer = _styledComponents["default"].div(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n padding: ", ";\n"])), function (props) {
477
- return props.mode === "filedrop" ? "2px 12px 2px 2px" : "47px 122px 8px 122px";
478
- });
479
-
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) {
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) {
481
519
  return props.disabled ? props.theme.disabledDropLabelFontColor : props.theme.dropLabelFontColor;
482
520
  }, function (props) {
483
521
  return props.theme.dropLabelFontFamily;
@@ -487,12 +525,14 @@ var DropLabel = _styledComponents["default"].span(_templateObject8 || (_template
487
525
  return props.theme.dropLabelFontWeight;
488
526
  });
489
527
 
490
- var Container = _styledComponents["default"].div(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n margin-top: 0.25rem;\n"])));
491
-
492
- var FileItemContainer = _styledComponents["default"].div(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2["default"])(["\n margin-top: ", ";\n margin-left: ", ";\n"])), function (props) {
493
- return (props.multiple || props.files.length > 1 || props.mode !== "file") && "4px";
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) {
529
+ return props.disabled ? props.theme.disabledDropLabelFontColor : props.theme.dropLabelFontColor;
494
530
  }, function (props) {
495
- return props.mode === "file" && props.files.length === 1 && !props.multiple && "4px";
531
+ return props.theme.dropLabelFontFamily;
532
+ }, function (props) {
533
+ return props.theme.dropLabelFontSize;
534
+ }, function (props) {
535
+ return props.theme.dropLabelFontWeight;
496
536
  });
497
537
 
498
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) {