@dxc-technology/halstack-react 0.0.0-9005464 → 0.0.0-9179a3a

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 (143) hide show
  1. package/BackgroundColorContext.d.ts +10 -0
  2. package/BackgroundColorContext.js +1 -3
  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.js +2 -2
  8. package/accordion/Accordion.stories.tsx +300 -0
  9. package/accordion/types.d.ts +1 -1
  10. package/accordion-group/AccordionGroup.js +2 -2
  11. package/accordion-group/AccordionGroup.stories.tsx +225 -0
  12. package/accordion-group/types.d.ts +1 -1
  13. package/alert/Alert.js +2 -2
  14. package/alert/types.d.ts +1 -1
  15. package/badge/Badge.js +1 -1
  16. package/box/Box.d.ts +1 -1
  17. package/box/Box.js +4 -7
  18. package/box/types.d.ts +0 -4
  19. package/button/Button.d.ts +1 -1
  20. package/button/Button.js +6 -4
  21. package/button/types.d.ts +2 -2
  22. package/card/Card.js +5 -6
  23. package/card/Card.stories.tsx +201 -0
  24. package/card/ice-cream.jpg +0 -0
  25. package/card/types.d.ts +4 -6
  26. package/checkbox/Checkbox.js +2 -2
  27. package/checkbox/types.d.ts +1 -1
  28. package/chip/Chip.d.ts +4 -0
  29. package/chip/Chip.js +5 -27
  30. package/chip/Chip.stories.tsx +121 -0
  31. package/chip/types.d.ts +53 -0
  32. package/chip/types.js +5 -0
  33. package/common/variables.js +19 -22
  34. package/date/Date.js +1 -1
  35. package/date-input/DateInput.js +4 -7
  36. package/dialog/Dialog.js +2 -2
  37. package/dialog/Dialog.stories.tsx +212 -0
  38. package/dropdown/Dropdown.js +1 -1
  39. package/dropdown/types.d.ts +1 -1
  40. package/file-input/FileInput.d.ts +4 -0
  41. package/file-input/FileInput.js +65 -76
  42. package/file-input/FileItem.d.ts +14 -0
  43. package/file-input/FileItem.js +12 -21
  44. package/file-input/types.d.ts +112 -0
  45. package/file-input/types.js +5 -0
  46. package/footer/Footer.d.ts +1 -1
  47. package/footer/Footer.js +12 -18
  48. package/footer/{Footer.stories.jsx → Footer.stories.tsx} +1 -22
  49. package/footer/Icons.d.ts +2 -0
  50. package/footer/Icons.js +3 -3
  51. package/footer/types.d.ts +22 -18
  52. package/header/Header.js +2 -2
  53. package/header/Header.stories.tsx +162 -0
  54. package/header/Icons.d.ts +2 -0
  55. package/header/types.d.ts +4 -2
  56. package/heading/Heading.d.ts +4 -0
  57. package/heading/Heading.js +7 -24
  58. package/heading/Heading.stories.tsx +53 -0
  59. package/heading/types.d.ts +33 -0
  60. package/heading/types.js +5 -0
  61. package/input-text/InputText.js +2 -2
  62. package/layout/ApplicationLayout.d.ts +10 -0
  63. package/layout/ApplicationLayout.js +8 -18
  64. package/layout/ApplicationLayout.stories.tsx +171 -0
  65. package/layout/types.d.ts +57 -0
  66. package/layout/types.js +5 -0
  67. package/link/Link.js +3 -3
  68. package/link/Link.stories.tsx +76 -0
  69. package/list/List.d.ts +7 -0
  70. package/list/List.js +37 -0
  71. package/list/List.stories.tsx +70 -0
  72. package/main.d.ts +7 -3
  73. package/main.js +34 -2
  74. package/number-input/NumberInput.js +3 -6
  75. package/number-input/NumberInputContext.d.ts +4 -0
  76. package/number-input/NumberInputContext.js +5 -2
  77. package/number-input/numberInputContextTypes.d.ts +19 -0
  78. package/number-input/numberInputContextTypes.js +5 -0
  79. package/package.json +1 -1
  80. package/paginator/Paginator.js +2 -8
  81. package/password-input/PasswordInput.js +19 -18
  82. package/password-input/types.d.ts +17 -10
  83. package/progress-bar/ProgressBar.js +2 -2
  84. package/radio/Radio.js +2 -2
  85. package/radio/types.d.ts +2 -2
  86. package/resultsetTable/ResultsetTable.d.ts +4 -0
  87. package/resultsetTable/ResultsetTable.js +4 -27
  88. package/resultsetTable/ResultsetTable.stories.tsx +276 -0
  89. package/resultsetTable/types.d.ts +67 -0
  90. package/resultsetTable/types.js +5 -0
  91. package/row/Row.d.ts +11 -0
  92. package/row/Row.js +124 -0
  93. package/row/Row.stories.tsx +223 -0
  94. package/select/Select.js +15 -17
  95. package/sidenav/Sidenav.js +2 -2
  96. package/sidenav/Sidenav.stories.tsx +165 -0
  97. package/slider/Slider.js +8 -8
  98. package/slider/Slider.stories.tsx +6 -1
  99. package/spinner/Spinner.js +2 -2
  100. package/stack/Stack.d.ts +10 -0
  101. package/stack/Stack.js +94 -0
  102. package/stack/Stack.stories.tsx +150 -0
  103. package/switch/Switch.js +2 -2
  104. package/table/Table.js +3 -3
  105. package/tabs/Tabs.js +4 -2
  106. package/tabs/Tabs.stories.tsx +121 -0
  107. package/tabs/types.d.ts +3 -4
  108. package/tag/Tag.js +1 -1
  109. package/text/Text.d.ts +7 -0
  110. package/text/Text.js +30 -0
  111. package/text/Text.stories.tsx +19 -0
  112. package/text-input/TextInput.d.ts +4 -0
  113. package/text-input/TextInput.js +42 -81
  114. package/text-input/TextInput.stories.tsx +456 -0
  115. package/text-input/types.d.ts +159 -0
  116. package/text-input/types.js +5 -0
  117. package/textarea/Textarea.d.ts +4 -0
  118. package/textarea/Textarea.js +27 -60
  119. package/textarea/types.d.ts +130 -0
  120. package/textarea/types.js +5 -0
  121. package/toggle/Toggle.js +1 -1
  122. package/toggle-group/ToggleGroup.d.ts +4 -0
  123. package/toggle-group/ToggleGroup.js +8 -34
  124. package/toggle-group/types.d.ts +84 -0
  125. package/toggle-group/types.js +5 -0
  126. package/upload/buttons-upload/ButtonsUpload.js +2 -2
  127. package/upload/dragAndDropArea/DragAndDropArea.js +2 -2
  128. package/upload/file-upload/FileToUpload.js +1 -1
  129. package/upload/files-upload/FilesToUpload.js +1 -1
  130. package/upload/transaction/Transaction.js +2 -2
  131. package/upload/transactions/Transactions.js +1 -1
  132. package/useTheme.d.ts +2 -0
  133. package/useTheme.js +1 -1
  134. package/wizard/Wizard.js +2 -2
  135. package/wizard/Wizard.stories.jsx +224 -0
  136. package/wizard/types.d.ts +1 -1
  137. package/chip/index.d.ts +0 -22
  138. package/file-input/index.d.ts +0 -81
  139. package/heading/index.d.ts +0 -17
  140. package/resultsetTable/index.d.ts +0 -19
  141. package/text-input/index.d.ts +0 -135
  142. package/textarea/index.d.ts +0 -117
  143. package/toggle-group/index.d.ts +0 -21
@@ -0,0 +1,212 @@
1
+ import React from "react";
2
+ import { userEvent, within } from "@storybook/testing-library";
3
+ import DxcDialog from "./Dialog";
4
+ import Title from "../../.storybook/components/Title";
5
+ import ExampleContainer from "../../.storybook/components/ExampleContainer";
6
+
7
+ export default {
8
+ title: "Dialog ",
9
+ component: DxcDialog,
10
+ };
11
+
12
+ export const DefaultDialog = () => (
13
+ <>
14
+ <ExampleContainer expanded={true}>
15
+ <Title title="Default dialog" theme="light" level={4} />
16
+ <DxcDialog>
17
+ {" "}
18
+ <p>
19
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi egestas luctus porttitor. Donec massa magna,
20
+ placerat sit amet felis eget, venenatis fringilla ipsum. Lorem ipsum dolor sit amet, consectetur adipiscing
21
+ elit. Donec congue laoreet orci, nec elementum dolor consequat quis. Curabitur rhoncus justo sed dapibus
22
+ tincidunt. Vestibulum cursus ut risus sit amet congue. Nunc luctus, urna ullamcorper facilisis Jia Le, risus
23
+ eros aliquam erat, ut efficitur ante neque id odio. Nam orci leo, dignissim sit amet dolor ut, congue gravida
24
+ enim. Donec rhoncus aliquam nisl, ac cursus enim bibendum vitae. Nunc sit amet elit ornare, malesuada urna eu,
25
+ fringilla mauris. Vivamus bibendum turpis est, id elementum purus euismod sit amet. Etiam sit amet maximus
26
+ augue. Vivamus erat sapien, ultricies fringilla tellus id, condimentum blandit justo. Praesent quis nunc
27
+ dignissim, pharetra neque molestie, molestie lectus.
28
+ </p>{" "}
29
+ </DxcDialog>
30
+ </ExampleContainer>
31
+ </>
32
+ );
33
+
34
+ export const DialogWithoutOverlay = () => (
35
+ <ExampleContainer expanded={true}>
36
+ <Title title="Dialog Without Overlay" theme="light" level={4} />
37
+ <DxcDialog overlay={false}>
38
+ {" "}
39
+ <p>
40
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi egestas luctus porttitor. Donec massa magna,
41
+ placerat sit amet felis eget, venenatis fringilla ipsum. Lorem ipsum dolor sit amet, consectetur adipiscing
42
+ elit. Donec congue laoreet orci, nec elementum dolor consequat quis. Curabitur rhoncus justo sed dapibus
43
+ tincidunt. Vestibulum cursus ut risus sit amet congue. Nunc luctus, urna ullamcorper facilisis Jia Le, risus
44
+ eros aliquam erat, ut efficitur ante neque id odio. Nam orci leo, dignissim sit amet dolor ut, congue gravida
45
+ enim. Donec rhoncus aliquam nisl, ac cursus enim bibendum vitae. Nunc sit amet elit ornare, malesuada urna eu,
46
+ fringilla mauris. Vivamus bibendum turpis est, id elementum purus euismod sit amet. Etiam sit amet maximus
47
+ augue. Vivamus erat sapien, ultricies fringilla tellus id, condimentum blandit justo. Praesent quis nunc
48
+ dignissim, pharetra neque molestie, molestie lectus.
49
+ </p>{" "}
50
+ </DxcDialog>
51
+ </ExampleContainer>
52
+ );
53
+
54
+ export const DialogCloseVisibleFalse = () => (
55
+ <ExampleContainer expanded={true}>
56
+ <Title title="Dialog Close Visible" theme="dark" level={4} />
57
+ <DxcDialog isCloseVisible={false}>
58
+ {" "}
59
+ <p>
60
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi egestas luctus porttitor. Donec massa magna,
61
+ placerat sit amet felis eget, venenatis fringilla ipsum. Lorem ipsum dolor sit amet, consectetur adipiscing
62
+ elit. Donec congue laoreet orci, nec elementum dolor consequat quis. Curabitur rhoncus justo sed dapibus
63
+ tincidunt. Vestibulum cursus ut risus sit amet congue. Nunc luctus, urna ullamcorper facilisis Jia Le, risus
64
+ eros aliquam erat, ut efficitur ante neque id odio. Nam orci leo, dignissim sit amet dolor ut, congue gravida
65
+ enim. Donec rhoncus aliquam nisl, ac cursus enim bibendum vitae. Nunc sit amet elit ornare, malesuada urna eu,
66
+ fringilla mauris. Vivamus bibendum turpis est, id elementum purus euismod sit amet. Etiam sit amet maximus
67
+ augue. Vivamus erat sapien, ultricies fringilla tellus id, condimentum blandit justo. Praesent quis nunc
68
+ dignissim, pharetra neque molestie, molestie lectus.
69
+ </p>{" "}
70
+ </DxcDialog>
71
+ </ExampleContainer>
72
+ );
73
+
74
+ export const DialogWithXxsmallPadding = () => (
75
+ <ExampleContainer expanded={true}>
76
+ <Title title="Dialog With Xxsmall Padding" theme="light" level={4} />
77
+ <DxcDialog padding={"xxsmall"}>
78
+ {" "}
79
+ <p>
80
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi egestas luctus porttitor. Donec massa magna,
81
+ placerat sit amet felis eget, venenatis fringilla ipsum. Lorem ipsum dolor sit amet, consectetur adipiscing
82
+ elit. Donec congue laoreet orci, nec elementum dolor consequat quis. Curabitur rhoncus justo sed dapibus
83
+ tincidunt. Vestibulum cursus ut risus sit amet congue. Nunc luctus, urna ullamcorper facilisis Jia Le, risus
84
+ eros aliquam erat, ut efficitur ante neque id odio. Nam orci leo, dignissim sit amet dolor ut, congue gravida
85
+ enim. Donec rhoncus aliquam nisl, ac cursus enim bibendum vitae. Nunc sit amet elit ornare, malesuada urna eu,
86
+ fringilla mauris. Vivamus bibendum turpis est, id elementum purus euismod sit amet. Etiam sit amet maximus
87
+ augue. Vivamus erat sapien, ultricies fringilla tellus id, condimentum blandit justo. Praesent quis nunc
88
+ dignissim, pharetra neque molestie, molestie lectus.
89
+ </p>{" "}
90
+ </DxcDialog>
91
+ </ExampleContainer>
92
+ );
93
+
94
+ export const DialogWithXsmallPadding = () => (
95
+ <ExampleContainer expanded={true}>
96
+ <Title title="Dialog With Xsmall Padding" theme="light" level={4} />
97
+ <DxcDialog padding={"xsmall"}>
98
+ {" "}
99
+ <p>
100
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi egestas luctus porttitor. Donec massa magna,
101
+ placerat sit amet felis eget, venenatis fringilla ipsum. Lorem ipsum dolor sit amet, consectetur adipiscing
102
+ elit. Donec congue laoreet orci, nec elementum dolor consequat quis. Curabitur rhoncus justo sed dapibus
103
+ tincidunt. Vestibulum cursus ut risus sit amet congue. Nunc luctus, urna ullamcorper facilisis Jia Le, risus
104
+ eros aliquam erat, ut efficitur ante neque id odio. Nam orci leo, dignissim sit amet dolor ut, congue gravida
105
+ enim. Donec rhoncus aliquam nisl, ac cursus enim bibendum vitae. Nunc sit amet elit ornare, malesuada urna eu,
106
+ fringilla mauris. Vivamus bibendum turpis est, id elementum purus euismod sit amet. Etiam sit amet maximus
107
+ augue. Vivamus erat sapien, ultricies fringilla tellus id, condimentum blandit justo. Praesent quis nunc
108
+ dignissim, pharetra neque molestie, molestie lectus.
109
+ </p>{" "}
110
+ </DxcDialog>
111
+ </ExampleContainer>
112
+ );
113
+
114
+ export const DialogWithSmallPadding = () => (
115
+ <ExampleContainer expanded={true}>
116
+ <Title title="Dialog With Small Padding" theme="light" level={4} />
117
+ <DxcDialog padding={"small"}>
118
+ {" "}
119
+ <p>
120
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi egestas luctus porttitor. Donec massa magna,
121
+ placerat sit amet felis eget, venenatis fringilla ipsum. Lorem ipsum dolor sit amet, consectetur adipiscing
122
+ elit. Donec congue laoreet orci, nec elementum dolor consequat quis. Curabitur rhoncus justo sed dapibus
123
+ tincidunt. Vestibulum cursus ut risus sit amet congue. Nunc luctus, urna ullamcorper facilisis Jia Le, risus
124
+ eros aliquam erat, ut efficitur ante neque id odio. Nam orci leo, dignissim sit amet dolor ut, congue gravida
125
+ enim. Donec rhoncus aliquam nisl, ac cursus enim bibendum vitae. Nunc sit amet elit ornare, malesuada urna eu,
126
+ fringilla mauris. Vivamus bibendum turpis est, id elementum purus euismod sit amet. Etiam sit amet maximus
127
+ augue. Vivamus erat sapien, ultricies fringilla tellus id, condimentum blandit justo. Praesent quis nunc
128
+ dignissim, pharetra neque molestie, molestie lectus.
129
+ </p>{" "}
130
+ </DxcDialog>
131
+ </ExampleContainer>
132
+ );
133
+
134
+ export const DialogWithMediumPadding = () => (
135
+ <ExampleContainer expanded={true}>
136
+ <Title title="Dialog With Medium Padding" theme="light" level={4} />
137
+ <DxcDialog padding={"medium"}>
138
+ {" "}
139
+ <p>
140
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi egestas luctus porttitor. Donec massa magna,
141
+ placerat sit amet felis eget, venenatis fringilla ipsum. Lorem ipsum dolor sit amet, consectetur adipiscing
142
+ elit. Donec congue laoreet orci, nec elementum dolor consequat quis. Curabitur rhoncus justo sed dapibus
143
+ tincidunt. Vestibulum cursus ut risus sit amet congue. Nunc luctus, urna ullamcorper facilisis Jia Le, risus
144
+ eros aliquam erat, ut efficitur ante neque id odio. Nam orci leo, dignissim sit amet dolor ut, congue gravida
145
+ enim. Donec rhoncus aliquam nisl, ac cursus enim bibendum vitae. Nunc sit amet elit ornare, malesuada urna eu,
146
+ fringilla mauris. Vivamus bibendum turpis est, id elementum purus euismod sit amet. Etiam sit amet maximus
147
+ augue. Vivamus erat sapien, ultricies fringilla tellus id, condimentum blandit justo. Praesent quis nunc
148
+ dignissim, pharetra neque molestie, molestie lectus.
149
+ </p>{" "}
150
+ </DxcDialog>
151
+ </ExampleContainer>
152
+ );
153
+
154
+ export const DialogWithLargePadding = () => (
155
+ <ExampleContainer expanded={true}>
156
+ <Title title="Dialog With Large Padding" theme="light" level={4} />
157
+ <DxcDialog padding={"large"}>
158
+ {" "}
159
+ <p>
160
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi egestas luctus porttitor. Donec massa magna,
161
+ placerat sit amet felis eget, venenatis fringilla ipsum. Lorem ipsum dolor sit amet, consectetur adipiscing
162
+ elit. Donec congue laoreet orci, nec elementum dolor consequat quis. Curabitur rhoncus justo sed dapibus
163
+ tincidunt. Vestibulum cursus ut risus sit amet congue. Nunc luctus, urna ullamcorper facilisis Jia Le, risus
164
+ eros aliquam erat, ut efficitur ante neque id odio. Nam orci leo, dignissim sit amet dolor ut, congue gravida
165
+ enim. Donec rhoncus aliquam nisl, ac cursus enim bibendum vitae. Nunc sit amet elit ornare, malesuada urna eu,
166
+ fringilla mauris. Vivamus bibendum turpis est, id elementum purus euismod sit amet. Etiam sit amet maximus
167
+ augue. Vivamus erat sapien, ultricies fringilla tellus id, condimentum blandit justo. Praesent quis nunc
168
+ dignissim, pharetra neque molestie, molestie lectus.
169
+ </p>{" "}
170
+ </DxcDialog>
171
+ </ExampleContainer>
172
+ );
173
+
174
+ export const DialogWithXlargePadding = () => (
175
+ <ExampleContainer expanded={true}>
176
+ <Title title="Dialog With Xlarge Padding" theme="light" level={4} />
177
+ <DxcDialog padding={"xlarge"}>
178
+ {" "}
179
+ <p>
180
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi egestas luctus porttitor. Donec massa magna,
181
+ placerat sit amet felis eget, venenatis fringilla ipsum. Lorem ipsum dolor sit amet, consectetur adipiscing
182
+ elit. Donec congue laoreet orci, nec elementum dolor consequat quis. Curabitur rhoncus justo sed dapibus
183
+ tincidunt. Vestibulum cursus ut risus sit amet congue. Nunc luctus, urna ullamcorper facilisis Jia Le, risus
184
+ eros aliquam erat, ut efficitur ante neque id odio. Nam orci leo, dignissim sit amet dolor ut, congue gravida
185
+ enim. Donec rhoncus aliquam nisl, ac cursus enim bibendum vitae. Nunc sit amet elit ornare, malesuada urna eu,
186
+ fringilla mauris. Vivamus bibendum turpis est, id elementum purus euismod sit amet. Etiam sit amet maximus
187
+ augue. Vivamus erat sapien, ultricies fringilla tellus id, condimentum blandit justo. Praesent quis nunc
188
+ dignissim, pharetra neque molestie, molestie lectus.
189
+ </p>{" "}
190
+ </DxcDialog>
191
+ </ExampleContainer>
192
+ );
193
+
194
+ export const DialogWithXxlargePadding = () => (
195
+ <ExampleContainer expanded={true}>
196
+ <Title title="Dialog With Xxlarge Padding" theme="light" level={4} />
197
+ <DxcDialog padding={"xxlarge"}>
198
+ {" "}
199
+ <p>
200
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi egestas luctus porttitor. Donec massa magna,
201
+ placerat sit amet felis eget, venenatis fringilla ipsum. Lorem ipsum dolor sit amet, consectetur adipiscing
202
+ elit. Donec congue laoreet orci, nec elementum dolor consequat quis. Curabitur rhoncus justo sed dapibus
203
+ tincidunt. Vestibulum cursus ut risus sit amet congue. Nunc luctus, urna ullamcorper facilisis Jia Le, risus
204
+ eros aliquam erat, ut efficitur ante neque id odio. Nam orci leo, dignissim sit amet dolor ut, congue gravida
205
+ enim. Donec rhoncus aliquam nisl, ac cursus enim bibendum vitae. Nunc sit amet elit ornare, malesuada urna eu,
206
+ fringilla mauris. Vivamus bibendum turpis est, id elementum purus euismod sit amet. Etiam sit amet maximus
207
+ augue. Vivamus erat sapien, ultricies fringilla tellus id, condimentum blandit justo. Praesent quis nunc
208
+ dignissim, pharetra neque molestie, molestie lectus.
209
+ </p>{" "}
210
+ </DxcDialog>
211
+ </ExampleContainer>
212
+ );
@@ -35,7 +35,7 @@ var _variables = require("../common/variables.js");
35
35
 
36
36
  var _utils = require("../common/utils.js");
37
37
 
38
- var _useTheme = _interopRequireDefault(require("../useTheme.js"));
38
+ var _useTheme = _interopRequireDefault(require("../useTheme"));
39
39
 
40
40
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10;
41
41
 
@@ -30,7 +30,7 @@ declare type Props = {
30
30
  /**
31
31
  * An array of objects representing the options.
32
32
  */
33
- options: [Option, ...Option[]];
33
+ options: Option[];
34
34
  /**
35
35
  * In case options include icons, whether the icon should appear
36
36
  * after or before the label.
@@ -0,0 +1,4 @@
1
+ /// <reference types="react" />
2
+ import FileInputPropsType from "./types";
3
+ declare const DxcFileInput: ({ name, mode, label, buttonLabel, dropAreaLabel, helperText, accept, minSize, maxSize, showPreview, multiple, disabled, callbackFile, value, margin, tabIndex, }: FileInputPropsType) => JSX.Element;
4
+ export default DxcFileInput;
@@ -23,21 +23,19 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/sli
23
23
 
24
24
  var _react = _interopRequireWildcard(require("react"));
25
25
 
26
- var _propTypes = _interopRequireDefault(require("prop-types"));
27
-
28
26
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
29
27
 
30
28
  var _uuid = require("uuid");
31
29
 
32
30
  var _variables = require("../common/variables.js");
33
31
 
34
- var _useTheme = _interopRequireDefault(require("../useTheme.js"));
32
+ var _useTheme = _interopRequireDefault(require("../useTheme"));
35
33
 
36
34
  var _Button = _interopRequireDefault(require("../button/Button"));
37
35
 
38
36
  var _FileItem = _interopRequireDefault(require("./FileItem"));
39
37
 
40
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11;
38
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12;
41
39
 
42
40
  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
41
 
@@ -89,6 +87,8 @@ var DxcFileInput = function DxcFileInput(_ref) {
89
87
  mode = _ref$mode === void 0 ? "file" : _ref$mode,
90
88
  _ref$label = _ref.label,
91
89
  label = _ref$label === void 0 ? "" : _ref$label,
90
+ buttonLabel = _ref.buttonLabel,
91
+ dropAreaLabel = _ref.dropAreaLabel,
92
92
  _ref$helperText = _ref.helperText,
93
93
  helperText = _ref$helperText === void 0 ? "" : _ref$helperText,
94
94
  accept = _ref.accept,
@@ -103,7 +103,8 @@ var DxcFileInput = function DxcFileInput(_ref) {
103
103
  callbackFile = _ref.callbackFile,
104
104
  value = _ref.value,
105
105
  margin = _ref.margin,
106
- tabIndex = _ref.tabIndex;
106
+ _ref$tabIndex = _ref.tabIndex,
107
+ tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
107
108
 
108
109
  var _useState = (0, _react.useState)(false),
109
110
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
@@ -297,18 +298,12 @@ var DxcFileInput = function DxcFileInput(_ref) {
297
298
  };
298
299
 
299
300
  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
- }
301
+ if (e.dataTransfer.items && e.dataTransfer.items.length > 0) setIsDragging(true);
306
302
  };
307
303
 
308
304
  var handleDragOut = function handleDragOut(e) {
309
- e.preventDefault();
310
- e.stopPropagation();
311
- setIsDragging(false);
305
+ // only if dragged items leave container (outside, not to childs)
306
+ if (!e.currentTarget.contains(e.relatedTarget)) setIsDragging(false);
312
307
  };
313
308
 
314
309
  var handleDrop = function handleDrop(e) {
@@ -329,8 +324,7 @@ var DxcFileInput = function DxcFileInput(_ref) {
329
324
  theme: colorsTheme.fileInput
330
325
  }, /*#__PURE__*/_react["default"].createElement(FileInputContainer, {
331
326
  margin: margin,
332
- name: name,
333
- tabIndex: tabIndex
327
+ name: name
334
328
  }, /*#__PURE__*/_react["default"].createElement(Label, {
335
329
  htmlFor: fileInputId,
336
330
  disabled: disabled
@@ -339,22 +333,20 @@ var DxcFileInput = function DxcFileInput(_ref) {
339
333
  }, helperText), mode === "file" ? /*#__PURE__*/_react["default"].createElement(FileContainer, {
340
334
  multiple: multiple,
341
335
  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", {
336
+ }, /*#__PURE__*/_react["default"].createElement(HiddenInputFile, {
350
337
  id: fileInputId,
351
338
  type: "file",
352
339
  accept: accept,
353
340
  multiple: multiple,
354
341
  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) {
342
+ }), /*#__PURE__*/_react["default"].createElement(_Button["default"], {
343
+ mode: "secondary",
344
+ label: buttonLabel !== null && buttonLabel !== void 0 ? buttonLabel : multiple ? "Select files" : "Select file",
345
+ onClick: handleClick,
346
+ disabled: disabled,
347
+ size: "medium",
348
+ tabIndex: tabIndex
349
+ }), files.map(function (file) {
358
350
  return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(FileItemContainer, {
359
351
  mode: mode,
360
352
  multiple: multiple,
@@ -368,9 +360,16 @@ var DxcFileInput = function DxcFileInput(_ref) {
368
360
  numFiles: files.length,
369
361
  preview: file.preview,
370
362
  type: file.file.type,
371
- onDelete: onDelete
363
+ onDelete: onDelete,
364
+ tabIndex: tabIndex
372
365
  })));
373
- })) : /*#__PURE__*/_react["default"].createElement(Container, null, /*#__PURE__*/_react["default"].createElement(DragDropArea, {
366
+ })) : /*#__PURE__*/_react["default"].createElement(Container, null, /*#__PURE__*/_react["default"].createElement(HiddenInputFile, {
367
+ id: fileInputId,
368
+ type: "file",
369
+ accept: accept,
370
+ multiple: multiple,
371
+ onChange: selectFiles
372
+ }), /*#__PURE__*/_react["default"].createElement(DragDropArea, {
374
373
  isDragging: isDragging,
375
374
  disabled: disabled,
376
375
  mode: mode,
@@ -382,19 +381,15 @@ var DxcFileInput = function DxcFileInput(_ref) {
382
381
  mode: mode
383
382
  }, /*#__PURE__*/_react["default"].createElement(_Button["default"], {
384
383
  mode: "secondary",
385
- label: "Select",
384
+ label: buttonLabel !== null && buttonLabel !== void 0 ? buttonLabel : "Select",
386
385
  onClick: handleClick,
387
386
  disabled: disabled,
388
387
  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, {
388
+ })), mode === "dropzone" ? /*#__PURE__*/_react["default"].createElement(DropzoneLabel, {
389
+ disabled: disabled
390
+ }, dropAreaLabel !== null && dropAreaLabel !== void 0 ? dropAreaLabel : multiple ? "or drop files" : "or drop a file") : /*#__PURE__*/_react["default"].createElement(FiledropLabel, {
396
391
  disabled: disabled
397
- }, "or drop files")), files.map(function (file) {
392
+ }, dropAreaLabel !== null && dropAreaLabel !== void 0 ? dropAreaLabel : multiple ? "or drop files" : "or drop a file")), files.map(function (file) {
398
393
  return /*#__PURE__*/_react["default"].createElement(FileItemContainer, {
399
394
  mode: mode,
400
395
  multiple: multiple,
@@ -408,9 +403,12 @@ var DxcFileInput = function DxcFileInput(_ref) {
408
403
  numFiles: files.length,
409
404
  preview: file.preview,
410
405
  type: file.file.type,
411
- onDelete: onDelete
406
+ onDelete: onDelete,
407
+ tabIndex: tabIndex
412
408
  }));
413
- }))));
409
+ })), files.length === 1 && files.map(function (file) {
410
+ return file.error && mode === "file" && !multiple && /*#__PURE__*/_react["default"].createElement(ErrorMessage, null, file.error);
411
+ })));
414
412
  };
415
413
 
416
414
  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 +447,37 @@ var HelperText = _styledComponents["default"].span(_templateObject3 || (_templat
449
447
  return props.theme.helperTextLineHeight;
450
448
  });
451
449
 
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) {
450
+ 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
451
  return props.mode === "filedrop" ? "row" : "column";
452
+ }, function (props) {
453
+ return props.mode === "dropzone" && "justify-content: center; padding: 1rem;";
454
+ }, function (props) {
455
+ return props.mode === "filedrop" ? "48px" : "160px";
456
456
  }, function (props) {
457
457
  return props.theme.dropBorderRadius;
458
458
  }, function (props) {
459
- return !props.isDragging ? props.theme.dropBorderThickness : "2px";
459
+ return props.theme.dropBorderThickness;
460
460
  }, function (props) {
461
- return !props.isDragging ? props.theme.dropBorderStyle : "solid";
461
+ return props.theme.dropBorderStyle;
462
462
  }, function (props) {
463
- return props.isDragging && props.theme.dragoverDropBackgroundColor;
463
+ return props.disabled ? props.theme.disabledDropBorderColor : props.theme.dropBorderColor;
464
464
  }, function (props) {
465
- return props.disabled ? props.theme.disabledDropBorderColor : props.isDragging ? props.theme.focusDropBorderColor : props.theme.dropBorderColor;
465
+ 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
466
  }, function (props) {
467
467
  return props.disabled && "not-allowed";
468
468
  });
469
469
 
470
- var FileContainer = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: ", ";\n"])), function (props) {
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
471
  return props.multiple || props.files.length > 1 ? "column" : "row";
472
472
  });
473
473
 
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"])));
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
475
 
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";
476
+ var ButtonContainer = _styledComponents["default"].div(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n ", ";\n"])), function (props) {
477
+ return props.mode === "filedrop" && "padding: 2px 12px 2px 3px";
478
478
  });
479
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) {
480
+ 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
481
  return props.disabled ? props.theme.disabledDropLabelFontColor : props.theme.dropLabelFontColor;
482
482
  }, function (props) {
483
483
  return props.theme.dropLabelFontFamily;
@@ -487,15 +487,25 @@ var DropLabel = _styledComponents["default"].span(_templateObject8 || (_template
487
487
  return props.theme.dropLabelFontWeight;
488
488
  });
489
489
 
490
- var Container = _styledComponents["default"].div(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n margin-top: 0.25rem;\n"])));
490
+ 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) {
491
+ return props.disabled ? props.theme.disabledDropLabelFontColor : props.theme.dropLabelFontColor;
492
+ }, function (props) {
493
+ return props.theme.dropLabelFontFamily;
494
+ }, function (props) {
495
+ return props.theme.dropLabelFontSize;
496
+ }, function (props) {
497
+ return props.theme.dropLabelFontWeight;
498
+ });
491
499
 
492
- var FileItemContainer = _styledComponents["default"].div(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2["default"])(["\n margin-top: ", ";\n margin-left: ", ";\n"])), function (props) {
500
+ var Container = _styledComponents["default"].div(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n margin-top: 0.25rem;\n"])));
501
+
502
+ var FileItemContainer = _styledComponents["default"].div(_templateObject11 || (_templateObject11 = (0, _taggedTemplateLiteral2["default"])(["\n margin-top: ", ";\n margin-left: ", ";\n"])), function (props) {
493
503
  return (props.multiple || props.files.length > 1 || props.mode !== "file") && "4px";
494
504
  }, function (props) {
495
505
  return props.mode === "file" && props.files.length === 1 && !props.multiple && "4px";
496
506
  });
497
507
 
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) {
508
+ 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
509
  return props.theme.errorMessageFontColor;
500
510
  }, function (props) {
501
511
  return props.theme.errorMessageFontFamily;
@@ -507,26 +517,5 @@ var ErrorMessage = _styledComponents["default"].div(_templateObject11 || (_templ
507
517
  return props.theme.errorMessageLineHeight;
508
518
  });
509
519
 
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
520
  var _default = DxcFileInput;
532
521
  exports["default"] = _default;
@@ -0,0 +1,14 @@
1
+ /// <reference types="react" />
2
+ declare const FileItem: ({ mode, multiple, name, error, showPreview, preview, type, numFiles, onDelete, tabIndex, }: {
3
+ mode: any;
4
+ multiple: any;
5
+ name?: string;
6
+ error?: string;
7
+ showPreview: any;
8
+ preview: any;
9
+ type: any;
10
+ numFiles: any;
11
+ onDelete: any;
12
+ tabIndex: any;
13
+ }) => JSX.Element;
14
+ export default FileItem;
@@ -13,11 +13,9 @@ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/hel
13
13
 
14
14
  var _react = _interopRequireDefault(require("react"));
15
15
 
16
- var _propTypes = _interopRequireDefault(require("prop-types"));
17
-
18
16
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
19
17
 
20
- var _useTheme = _interopRequireDefault(require("../useTheme.js"));
18
+ var _useTheme = _interopRequireDefault(require("../useTheme"));
21
19
 
22
20
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10;
23
21
 
@@ -59,7 +57,8 @@ var FileItem = function FileItem(_ref) {
59
57
  preview = _ref.preview,
60
58
  type = _ref.type,
61
59
  numFiles = _ref.numFiles,
62
- onDelete = _ref.onDelete;
60
+ onDelete = _ref.onDelete,
61
+ tabIndex = _ref.tabIndex;
63
62
  var colorsTheme = (0, _useTheme["default"])();
64
63
  var isImage = type.includes("image");
65
64
 
@@ -104,12 +103,13 @@ var FileItem = function FileItem(_ref) {
104
103
  onClick: function onClick() {
105
104
  return onDelete(name);
106
105
  },
107
- "aria-label": "Remove ".concat(name)
106
+ "aria-label": "Remove ".concat(name),
107
+ tabIndex: tabIndex
108
108
  }, deleteIcon)), error && (multiple || numFiles > 1) && /*#__PURE__*/_react["default"].createElement(ErrorMessage, null, error))));
109
109
  };
110
110
 
111
111
  var Container = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: row;\n padding: ", ";\n background-color: ", ";\n border-radius: ", ";\n width: ", ";\n min-height: ", ";\n border-color: ", ";\n border-width: ", ";\n border-style: ", ";\n display: flex;\n justify-content: center;\n"])), function (props) {
112
- return props.showPreview ? "8px" : "8px 8px 8px 16px";
112
+ return props.showPreview ? "calc(8px - ".concat(props.theme.fileItemBorderThickness, ") 8px") : "calc(8px - ".concat(props.theme.fileItemBorderThickness, ") 8px calc(8px - ").concat(props.theme.fileItemBorderThickness, ") 16px");
113
113
  }, function (props) {
114
114
  return props.error && props.theme.errorFileItemBackgroundColor;
115
115
  }, function (props) {
@@ -156,14 +156,16 @@ var FileName = _styledComponents["default"].span(_templateObject7 || (_templateO
156
156
 
157
157
  var ErrorIcon = _styledComponents["default"].span(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-wrap: wrap;\n align-content: center;\n padding: 3px;\n height: 18px;\n width: 18px;\n color: #d0011b;\n"])));
158
158
 
159
- var DeleteIcon = _styledComponents["default"].button(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-wrap: wrap;\n align-content: center;\n height: 24px;\n width: 24px;\n font-size: 1rem;\n font-family: ", ";\n border: 1px solid transparent;\n border-radius: 4px;\n margin-left: 4px;\n background-color: transparent;\n padding: 3px;\n cursor: pointer;\n svg {\n line-height: 18px;\n }\n &:hover {\n background-color: ", ";\n }\n &:focus {\n background-color: ", ";\n }\n &:active {\n background-color: ", ";\n }\n"])), function (props) {
159
+ var DeleteIcon = _styledComponents["default"].button(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-wrap: wrap;\n align-content: center;\n height: 24px;\n width: 24px;\n font-size: 1rem;\n font-family: ", ";\n border: 1px solid transparent;\n border-radius: 2px;\n margin-left: 4px;\n background-color: transparent;\n box-shadow: 0 0 0 2px transparent;\n padding: 3px;\n cursor: pointer;\n svg {\n line-height: 18px;\n }\n &:hover {\n background-color: ", ";\n }\n &:focus {\n outline: none;\n box-shadow: 0 0 0 2px ", ";\n }\n &:focus-visible {\n outline: none;\n box-shadow: 0 0 0 2px ", ";\n }\n &:active {\n background-color: ", ";\n }\n"])), function (props) {
160
160
  return props.theme.fontFamily;
161
161
  }, function (props) {
162
- return props.error ? props.theme.errorHoverDeleteFileItemBackgroundColor : props.theme.hoverDeleteFileItemBackgroundColor;
162
+ return props.theme.hoverDeleteFileItemBackgroundColor;
163
+ }, function (props) {
164
+ return props.theme.focusActionBorderColor;
163
165
  }, function (props) {
164
- return props.error ? props.theme.errorHoverDeleteFileItemBackgroundColor : props.theme.hoverDeleteFileItemBackgroundColor;
166
+ return props.theme.focusActionBorderColor;
165
167
  }, function (props) {
166
- return props.error ? props.theme.errorActiveDeleteFileItemBackgroundColor : props.theme.activeDeleteFileItemBackgroundColor;
168
+ return props.theme.activeDeleteFileItemBackgroundColor;
167
169
  });
168
170
 
169
171
  var ErrorMessage = _styledComponents["default"].span(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-weight: ", ";\n line-height: ", ";\n"])), function (props) {
@@ -178,16 +180,5 @@ var ErrorMessage = _styledComponents["default"].span(_templateObject10 || (_temp
178
180
  return props.theme.errorMessageLineHeight;
179
181
  });
180
182
 
181
- FileItem.propTypes = {
182
- mode: _propTypes["default"].string,
183
- multiple: _propTypes["default"].bool,
184
- name: _propTypes["default"].string,
185
- type: _propTypes["default"].string,
186
- showPreview: _propTypes["default"]["boolean"],
187
- numFiles: _propTypes["default"].number,
188
- preview: _propTypes["default"].string,
189
- error: _propTypes["default"].string,
190
- onDelete: _propTypes["default"].func
191
- };
192
183
  var _default = FileItem;
193
184
  exports["default"] = _default;