@dxc-technology/halstack-react 0.0.0-ee92231 → 0.0.0-f0d662d
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.
- package/BackgroundColorContext.d.ts +10 -0
- package/BackgroundColorContext.js +1 -4
- package/ThemeContext.d.ts +15 -0
- package/ThemeContext.js +5 -8
- package/V3Select/V3Select.js +2 -2
- package/V3Textarea/V3Textarea.js +2 -2
- package/accordion/Accordion.js +2 -2
- package/accordion/Accordion.stories.tsx +307 -0
- package/accordion/types.d.ts +1 -1
- package/accordion-group/AccordionGroup.js +2 -2
- package/accordion-group/AccordionGroup.stories.tsx +225 -0
- package/accordion-group/types.d.ts +1 -1
- package/alert/Alert.js +2 -2
- package/alert/Alert.stories.tsx +170 -0
- package/alert/types.d.ts +1 -1
- package/badge/Badge.js +1 -1
- package/bleed/Bleed.d.ts +3 -0
- package/bleed/Bleed.js +84 -0
- package/bleed/Bleed.stories.tsx +342 -0
- package/bleed/types.d.ts +13 -0
- package/bleed/types.js +5 -0
- package/box/Box.d.ts +1 -1
- package/box/Box.js +4 -7
- package/box/types.d.ts +0 -4
- package/button/Button.d.ts +1 -1
- package/button/Button.js +13 -19
- package/button/Button.stories.tsx +222 -241
- package/button/types.d.ts +5 -9
- package/card/Card.js +5 -6
- package/card/Card.stories.tsx +201 -0
- package/card/ice-cream.jpg +0 -0
- package/card/types.d.ts +4 -6
- package/checkbox/Checkbox.js +2 -2
- package/checkbox/types.d.ts +2 -2
- package/chip/Chip.d.ts +4 -0
- package/chip/Chip.js +5 -27
- package/chip/Chip.stories.tsx +121 -0
- package/chip/types.d.ts +53 -0
- package/chip/types.js +5 -0
- package/common/variables.js +70 -27
- package/date/Date.js +1 -1
- package/date-input/DateInput.js +10 -13
- package/date-input/DateInput.stories.tsx +138 -0
- package/dialog/Dialog.js +4 -3
- package/dialog/Dialog.stories.tsx +212 -0
- package/dropdown/Dropdown.js +1 -1
- package/dropdown/Dropdown.stories.tsx +247 -0
- package/dropdown/types.d.ts +1 -1
- package/file-input/FileInput.d.ts +4 -0
- package/file-input/FileInput.js +167 -109
- package/file-input/FileInput.stories.tsx +507 -0
- package/file-input/FileItem.d.ts +14 -0
- package/file-input/FileItem.js +12 -21
- package/file-input/types.d.ts +112 -0
- package/file-input/types.js +5 -0
- package/footer/Footer.d.ts +1 -1
- package/footer/Footer.js +28 -36
- package/footer/{Footer.stories.jsx → Footer.stories.tsx} +1 -22
- package/footer/Icons.d.ts +2 -0
- package/footer/Icons.js +3 -3
- package/footer/types.d.ts +22 -18
- package/header/Header.js +2 -2
- package/header/Header.stories.tsx +162 -0
- package/header/Icons.d.ts +2 -0
- package/header/types.d.ts +4 -2
- package/heading/Heading.d.ts +4 -0
- package/heading/Heading.js +7 -24
- package/heading/Heading.stories.tsx +54 -0
- package/heading/types.d.ts +33 -0
- package/heading/types.js +5 -0
- package/input-text/InputText.js +2 -2
- package/inset/Inset.d.ts +3 -0
- package/inset/Inset.js +84 -0
- package/inset/Inset.stories.tsx +229 -0
- package/inset/types.d.ts +13 -0
- package/inset/types.js +5 -0
- package/layout/ApplicationLayout.d.ts +10 -0
- package/layout/ApplicationLayout.js +9 -19
- package/layout/ApplicationLayout.stories.tsx +171 -0
- package/layout/types.d.ts +57 -0
- package/layout/types.js +5 -0
- package/link/Link.js +3 -3
- package/link/Link.stories.tsx +146 -0
- package/list/List.d.ts +4 -0
- package/list/List.js +47 -0
- package/list/List.stories.tsx +95 -0
- package/list/types.d.ts +7 -0
- package/list/types.js +5 -0
- package/main.d.ts +7 -3
- package/main.js +34 -2
- package/number-input/NumberInput.d.ts +4 -0
- package/number-input/NumberInput.js +5 -50
- package/number-input/{NumberInput.stories.jsx → NumberInput.stories.tsx} +0 -0
- package/number-input/NumberInputContext.d.ts +4 -0
- package/number-input/NumberInputContext.js +5 -2
- package/number-input/numberInputContextTypes.d.ts +19 -0
- package/number-input/numberInputContextTypes.js +5 -0
- package/number-input/types.d.ts +117 -0
- package/number-input/types.js +5 -0
- package/package.json +4 -2
- package/paginator/Paginator.js +2 -8
- package/password-input/PasswordInput.js +19 -18
- package/password-input/PasswordInput.stories.tsx +3 -3
- package/password-input/types.d.ts +17 -10
- package/progress-bar/ProgressBar.js +4 -4
- package/radio/Radio.js +2 -2
- package/radio/types.d.ts +2 -2
- package/radio-group/Radio.d.ts +4 -0
- package/radio-group/Radio.js +140 -0
- package/radio-group/RadioGroup.d.ts +4 -0
- package/radio-group/RadioGroup.js +273 -0
- package/radio-group/RadioGroup.stories.tsx +79 -0
- package/radio-group/RadioGroup.test.js +248 -0
- package/radio-group/types.d.ts +36 -0
- package/radio-group/types.js +5 -0
- package/resultsetTable/ResultsetTable.d.ts +4 -0
- package/resultsetTable/ResultsetTable.js +5 -28
- package/resultsetTable/ResultsetTable.stories.tsx +275 -0
- package/resultsetTable/types.d.ts +67 -0
- package/resultsetTable/types.js +5 -0
- package/row/Row.d.ts +3 -0
- package/row/Row.js +127 -0
- package/row/Row.stories.tsx +237 -0
- package/row/types.d.ts +10 -0
- package/row/types.js +5 -0
- package/select/Select.d.ts +4 -0
- package/select/Select.js +20 -22
- package/select/Select.stories.tsx +572 -0
- package/select/types.d.ts +170 -0
- package/select/types.js +5 -0
- package/sidenav/Sidenav.d.ts +9 -0
- package/sidenav/Sidenav.js +6 -15
- package/sidenav/Sidenav.stories.tsx +182 -0
- package/sidenav/types.d.ts +50 -0
- package/sidenav/types.js +5 -0
- package/slider/Slider.d.ts +1 -1
- package/slider/Slider.js +43 -32
- package/slider/Slider.stories.tsx +177 -0
- package/slider/types.d.ts +2 -7
- package/spinner/Spinner.js +2 -2
- package/spinner/Spinner.stories.jsx +1 -0
- package/stack/Stack.d.ts +3 -0
- package/stack/Stack.js +97 -0
- package/stack/Stack.stories.tsx +164 -0
- package/stack/types.d.ts +9 -0
- package/stack/types.js +5 -0
- package/switch/Switch.js +2 -2
- package/switch/Switch.stories.tsx +1 -1
- package/table/Table.js +3 -3
- package/table/Table.stories.jsx +2 -1
- package/tabs/Tabs.js +11 -9
- package/tabs/Tabs.stories.tsx +120 -0
- package/tabs/types.d.ts +25 -18
- package/tag/Tag.d.ts +4 -0
- package/tag/Tag.js +4 -25
- package/tag/{Tag.stories.jsx → Tag.stories.tsx} +1 -1
- package/tag/types.d.ts +60 -0
- package/tag/types.js +5 -0
- package/text/Text.d.ts +7 -0
- package/text/Text.js +30 -0
- package/text/Text.stories.tsx +19 -0
- package/text-input/TextInput.d.ts +4 -0
- package/text-input/TextInput.js +54 -85
- package/text-input/TextInput.stories.tsx +456 -0
- package/text-input/types.d.ts +159 -0
- package/text-input/types.js +5 -0
- package/textarea/Textarea.d.ts +4 -0
- package/textarea/Textarea.js +27 -60
- package/textarea/Textarea.stories.jsx +4 -3
- package/textarea/types.d.ts +130 -0
- package/textarea/types.js +5 -0
- package/toggle/Toggle.js +1 -1
- package/toggle-group/ToggleGroup.d.ts +4 -0
- package/toggle-group/ToggleGroup.js +16 -45
- package/toggle-group/ToggleGroup.stories.tsx +173 -0
- package/toggle-group/types.d.ts +97 -0
- package/toggle-group/types.js +5 -0
- package/upload/buttons-upload/ButtonsUpload.js +2 -2
- package/upload/dragAndDropArea/DragAndDropArea.js +2 -2
- package/upload/file-upload/FileToUpload.js +1 -1
- package/upload/files-upload/FilesToUpload.js +1 -1
- package/upload/transaction/Transaction.js +2 -2
- package/upload/transactions/Transactions.js +1 -1
- package/useTheme.d.ts +2 -0
- package/useTheme.js +1 -1
- package/wizard/Wizard.d.ts +4 -0
- package/wizard/Wizard.js +69 -59
- package/wizard/Wizard.stories.tsx +224 -0
- package/wizard/types.d.ts +60 -0
- package/wizard/types.js +5 -0
- package/chip/index.d.ts +0 -22
- package/file-input/index.d.ts +0 -81
- package/heading/index.d.ts +0 -17
- package/number-input/index.d.ts +0 -113
- package/resultsetTable/index.d.ts +0 -19
- package/select/index.d.ts +0 -131
- package/sidenav/index.d.ts +0 -13
- package/tag/index.d.ts +0 -24
- package/text-input/index.d.ts +0 -135
- package/textarea/index.d.ts +0 -117
- package/toggle-group/index.d.ts +0 -21
- package/wizard/Icons.js +0 -65
- package/wizard/index.d.ts +0 -18
|
@@ -0,0 +1,507 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import DxcFileInput from "./FileInput";
|
|
3
|
+
import Title from "../../.storybook/components/Title";
|
|
4
|
+
import ExampleContainer from "../../.storybook/components/ExampleContainer";
|
|
5
|
+
|
|
6
|
+
export default {
|
|
7
|
+
title: "File input",
|
|
8
|
+
component: DxcFileInput,
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
const picPreview =
|
|
12
|
+
"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAABmJLR0QA/wD/AP+gvaeTAAAEDklEQVRogdXaXaxcUxQH8J/etloajVT1I9qgCbdIUB8PXPeKBJHgsV5ExAuVivBUgtSDxgNBVMVHxEeRUhIhkpJ40BYhoTShaQglQtA2VR+ttjMe1j45c6cztzNnzszc+09Ocs/Za+39/++zzt5rr7l0D1diA35P14b0bMJgAE+g2uR6FpP7xq4NZCL2YjlOSNdt6VkVj/eNXYu4VhD9G+c3aL8gtVWS7bjEsfhRCFk2ht2yZPNT8hl3WCUIfoZJY9gdhY+T7QM94NUWFmEfDuHCFuyXJNv9OL2LvNrGO2KGn2rD55nks6ErjAog+8B3YXYbfrPwR/Lt+4d/NLYLMrcW8F+efL/DtBJ5tY17EpEvxEbYLgawJfVxXxObRZhbiF2LWCjfE4Y66OeS1Mc/OLnm+Uw8ggP4oYP+j4hHxUy+VEJfL6e+3hTL8/X4RZ7W/FvCGE1xOdZp7wNvhvny9CULtSo+1QMhZWImPpQL+A03YbouCpkqXn8ZqA+jg1iD41P7NF0QMiAy2N0ipDrFWUa/hU9wXp1N6UIuEktsNug3HfY3gD2pr4rYTxrlZ6UJmY3n0mBZ7JYhhDi3ZP1+i6sb2HQsZBJuEEfUqljjV+Ic5QkhzifZylTF+xisae9IyBIRr1nnb+PU1DaoXCHkk5blXfvxGGYoKGQWnhbpdZb/XFNn0w0hGebgBXm4fY/rtClkOn6Wz8j96Vk9uikkw5DRm2JLQrKV4hB2pr+niJznuPI5toRN4rx/u1jZiLfUMqZiBf4Ss7Bb7Bu1WW0v3kgt5mA17i7iPB8vymN1Cy5Obb0W0jFm4Fd5jFbEfjJsggl5UBDeiLvk4bZP/4RcJj76W1p1OE2sXAfFBkgcotYrL0UpghF5BfOkVhzeTQ5rGrRdIXbiVWWxaxNvCG6vHckwq4jsFPXa8YYF8gPYVc2MaisiN/eGVyGsEBy3C86H4d5k8LliFZFeYSq+FlwP218WiJWpIpbY8Y5heeXllNqGdcqriPQKrwrO67MHZwh1ezGvT6SKIKu8VLCYWGareKgPZEZECrS5oP/Dgvtq2Jpuzi6FWmuYh7XyfK5asJ9zk++X5EWARuePsjEZd9SM+afOhBwjz9TtSDeDY3mUgBH526/gFRHnnQhZLD9NejLdvG7sn8yKoj6MtuLSmvaiQibJ8781RNl+V3rwEZaKpGxKQeIZ6sNoD+5s0G87QqYkbksT1yydWpQZDMl/kS16bawb9AN5GK3VfGnvZMwd0qEv+w+ETTgTN4rEcRAninSgVdTP6oE2fFvFf6JIuA1v4XmRkXQVk+UFhGoacKXDJ6eTj72nmGt0DWCbONdkmDBCMgzjK6MrmAtNQCGUvyH2HfXhNmGFZBgRNYD3Ou3ofwlpcfptqgzTAAAAAElFTkSuQmCC";
|
|
13
|
+
|
|
14
|
+
const file1 = new File(["file1"], "file.pdf", { type: "text/plain" });
|
|
15
|
+
const file2 = new File(["file2"], "file2.mp3", {
|
|
16
|
+
type: "audio",
|
|
17
|
+
});
|
|
18
|
+
const file3 = new File(["file3"], "file3.png", {
|
|
19
|
+
type: "image/png",
|
|
20
|
+
});
|
|
21
|
+
const file4 = new File(["file4"], "file4file4file4file4file4file4file4file4file4.mp4", {
|
|
22
|
+
type: "video",
|
|
23
|
+
});
|
|
24
|
+
const file5 = new File(["file4"], "file5file5file5file5file5file5file5file5file5.mp4", {
|
|
25
|
+
type: "video",
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
const fileExample = [
|
|
29
|
+
{
|
|
30
|
+
file: file1,
|
|
31
|
+
},
|
|
32
|
+
];
|
|
33
|
+
|
|
34
|
+
const fileExampleError = [
|
|
35
|
+
{
|
|
36
|
+
error: "Error message",
|
|
37
|
+
file: file1,
|
|
38
|
+
},
|
|
39
|
+
];
|
|
40
|
+
|
|
41
|
+
const filesExamples = [
|
|
42
|
+
{
|
|
43
|
+
file: file1,
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
file: file2,
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
file: file3,
|
|
50
|
+
preview: picPreview,
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
file: file4,
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
error: "Error message error message error message error message",
|
|
57
|
+
file: file5,
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
error: "Error message",
|
|
61
|
+
file: file3,
|
|
62
|
+
preview: picPreview,
|
|
63
|
+
},
|
|
64
|
+
];
|
|
65
|
+
|
|
66
|
+
export const Chromatic = () => (
|
|
67
|
+
<>
|
|
68
|
+
<ExampleContainer pseudoState="pseudo-hover">
|
|
69
|
+
<Title title="File item hovered" theme="light" level={4} />
|
|
70
|
+
<DxcFileInput value={fileExample} callbackFile={() => {}} />
|
|
71
|
+
</ExampleContainer>
|
|
72
|
+
<ExampleContainer pseudoState="pseudo-focus">
|
|
73
|
+
<Title title="File item focused" theme="light" level={4} />
|
|
74
|
+
<DxcFileInput value={fileExample} callbackFile={() => {}} />
|
|
75
|
+
</ExampleContainer>
|
|
76
|
+
<ExampleContainer pseudoState="pseudo-active">
|
|
77
|
+
<Title title="File item actived" theme="light" level={4} />
|
|
78
|
+
<DxcFileInput value={fileExample} callbackFile={() => {}} />
|
|
79
|
+
</ExampleContainer>
|
|
80
|
+
<Title title="File" theme="light" level={2} />
|
|
81
|
+
<ExampleContainer>
|
|
82
|
+
<Title title="Without label" theme="light" level={4} />
|
|
83
|
+
<DxcFileInput value={[]} callbackFile={() => {}} />
|
|
84
|
+
</ExampleContainer>
|
|
85
|
+
<ExampleContainer>
|
|
86
|
+
<Title title="With label" theme="light" level={4} />
|
|
87
|
+
<DxcFileInput label="File input" value={[]} callbackFile={() => {}} />
|
|
88
|
+
</ExampleContainer>
|
|
89
|
+
<ExampleContainer>
|
|
90
|
+
<Title title="With label and helper text" theme="light" level={4} />
|
|
91
|
+
<DxcFileInput label="File input" helperText="Please select files" value={[]} callbackFile={() => {}} />
|
|
92
|
+
</ExampleContainer>
|
|
93
|
+
<ExampleContainer>
|
|
94
|
+
<Title title="Single file" theme="light" level={4} />
|
|
95
|
+
<DxcFileInput
|
|
96
|
+
label="File input"
|
|
97
|
+
helperText="Please select files"
|
|
98
|
+
value={fileExample}
|
|
99
|
+
multiple={false}
|
|
100
|
+
callbackFile={() => {}}
|
|
101
|
+
/>
|
|
102
|
+
</ExampleContainer>
|
|
103
|
+
<ExampleContainer>
|
|
104
|
+
<Title title="Invalid single file" theme="light" level={4} />
|
|
105
|
+
<DxcFileInput
|
|
106
|
+
label="File input"
|
|
107
|
+
helperText="Please select files"
|
|
108
|
+
value={fileExampleError}
|
|
109
|
+
multiple={false}
|
|
110
|
+
callbackFile={() => {}}
|
|
111
|
+
/>
|
|
112
|
+
</ExampleContainer>
|
|
113
|
+
<ExampleContainer>
|
|
114
|
+
<Title title="Multiple files" theme="light" level={4} />
|
|
115
|
+
<DxcFileInput label="File input" helperText="Please select files" value={filesExamples} callbackFile={() => {}} />
|
|
116
|
+
</ExampleContainer>
|
|
117
|
+
<ExampleContainer>
|
|
118
|
+
<Title title="Show preview" theme="light" level={4} />
|
|
119
|
+
<DxcFileInput
|
|
120
|
+
label="File input"
|
|
121
|
+
helperText="Please select files"
|
|
122
|
+
value={filesExamples}
|
|
123
|
+
callbackFile={() => {}}
|
|
124
|
+
showPreview
|
|
125
|
+
/>
|
|
126
|
+
</ExampleContainer>
|
|
127
|
+
<ExampleContainer>
|
|
128
|
+
<Title title="Disabled" theme="light" level={4} />
|
|
129
|
+
<DxcFileInput label="File input" helperText="Please select files" disabled value={[]} callbackFile={() => {}} />
|
|
130
|
+
</ExampleContainer>
|
|
131
|
+
<Title title="Margins" theme="light" level={3} />
|
|
132
|
+
<ExampleContainer>
|
|
133
|
+
<Title title="Xxsmall margin" theme="light" level={4} />
|
|
134
|
+
<DxcFileInput
|
|
135
|
+
label="File input"
|
|
136
|
+
helperText="Please select files"
|
|
137
|
+
value={fileExample}
|
|
138
|
+
callbackFile={() => {}}
|
|
139
|
+
margin="xxsmall"
|
|
140
|
+
/>
|
|
141
|
+
</ExampleContainer>
|
|
142
|
+
<ExampleContainer>
|
|
143
|
+
<Title title="Xsmall margin" theme="light" level={4} />
|
|
144
|
+
<DxcFileInput
|
|
145
|
+
label="File input"
|
|
146
|
+
helperText="Please select files"
|
|
147
|
+
value={fileExample}
|
|
148
|
+
callbackFile={() => {}}
|
|
149
|
+
margin="xsmall"
|
|
150
|
+
/>
|
|
151
|
+
</ExampleContainer>
|
|
152
|
+
<ExampleContainer>
|
|
153
|
+
<Title title="Small margin" theme="light" level={4} />
|
|
154
|
+
<DxcFileInput
|
|
155
|
+
label="File input"
|
|
156
|
+
helperText="Please select files"
|
|
157
|
+
value={fileExample}
|
|
158
|
+
callbackFile={() => {}}
|
|
159
|
+
margin="small"
|
|
160
|
+
/>
|
|
161
|
+
</ExampleContainer>
|
|
162
|
+
<ExampleContainer>
|
|
163
|
+
<Title title="Medium margin" theme="light" level={4} />
|
|
164
|
+
<DxcFileInput
|
|
165
|
+
label="File input"
|
|
166
|
+
helperText="Please select files"
|
|
167
|
+
value={fileExample}
|
|
168
|
+
callbackFile={() => {}}
|
|
169
|
+
margin="medium"
|
|
170
|
+
/>
|
|
171
|
+
</ExampleContainer>
|
|
172
|
+
<ExampleContainer>
|
|
173
|
+
<Title title="Large margin" theme="light" level={4} />
|
|
174
|
+
<DxcFileInput
|
|
175
|
+
label="File input"
|
|
176
|
+
helperText="Please select files"
|
|
177
|
+
value={fileExample}
|
|
178
|
+
callbackFile={() => {}}
|
|
179
|
+
margin="large"
|
|
180
|
+
/>
|
|
181
|
+
</ExampleContainer>
|
|
182
|
+
<ExampleContainer>
|
|
183
|
+
<Title title="Xlarge margin" theme="light" level={4} />
|
|
184
|
+
<DxcFileInput
|
|
185
|
+
label="File input"
|
|
186
|
+
helperText="Please select files"
|
|
187
|
+
value={fileExample}
|
|
188
|
+
callbackFile={() => {}}
|
|
189
|
+
margin="xlarge"
|
|
190
|
+
/>
|
|
191
|
+
</ExampleContainer>
|
|
192
|
+
<ExampleContainer>
|
|
193
|
+
<Title title="Xxlarge margin" theme="light" level={4} />
|
|
194
|
+
<DxcFileInput
|
|
195
|
+
label="File input"
|
|
196
|
+
helperText="Please select files"
|
|
197
|
+
value={fileExample}
|
|
198
|
+
callbackFile={() => {}}
|
|
199
|
+
margin="xxlarge"
|
|
200
|
+
/>
|
|
201
|
+
</ExampleContainer>
|
|
202
|
+
<Title title="Filedrop" theme="light" level={2} />
|
|
203
|
+
<ExampleContainer>
|
|
204
|
+
<Title title="Without label" theme="light" level={4} />
|
|
205
|
+
<DxcFileInput mode="filedrop" value={[]} callbackFile={() => {}} />
|
|
206
|
+
</ExampleContainer>
|
|
207
|
+
<ExampleContainer>
|
|
208
|
+
<Title title="With label" theme="light" level={4} />
|
|
209
|
+
<DxcFileInput mode="filedrop" label="File input" value={[]} callbackFile={() => {}} />
|
|
210
|
+
</ExampleContainer>
|
|
211
|
+
<ExampleContainer>
|
|
212
|
+
<Title title="With label, helper text and ellipsis" theme="light" level={4} />
|
|
213
|
+
<DxcFileInput
|
|
214
|
+
mode="filedrop"
|
|
215
|
+
label="File input"
|
|
216
|
+
dropAreaLabel="or drop files or drop files or drop files or drop files or drop files"
|
|
217
|
+
helperText="Please select files"
|
|
218
|
+
value={[]}
|
|
219
|
+
callbackFile={() => {}}
|
|
220
|
+
/>
|
|
221
|
+
</ExampleContainer>
|
|
222
|
+
<ExampleContainer>
|
|
223
|
+
<Title title="Single file" theme="light" level={4} />
|
|
224
|
+
<DxcFileInput
|
|
225
|
+
mode="filedrop"
|
|
226
|
+
label="File input"
|
|
227
|
+
helperText="Please select files"
|
|
228
|
+
value={fileExample}
|
|
229
|
+
multiple={false}
|
|
230
|
+
callbackFile={() => {}}
|
|
231
|
+
/>
|
|
232
|
+
</ExampleContainer>
|
|
233
|
+
<ExampleContainer>
|
|
234
|
+
<Title title="Invalid single file" theme="light" level={4} />
|
|
235
|
+
<DxcFileInput
|
|
236
|
+
mode="filedrop"
|
|
237
|
+
label="File input"
|
|
238
|
+
helperText="Please select files"
|
|
239
|
+
value={fileExampleError}
|
|
240
|
+
multiple={false}
|
|
241
|
+
callbackFile={() => {}}
|
|
242
|
+
/>
|
|
243
|
+
</ExampleContainer>
|
|
244
|
+
<ExampleContainer>
|
|
245
|
+
<Title title="Multiple files" theme="light" level={4} />
|
|
246
|
+
<DxcFileInput
|
|
247
|
+
mode="filedrop"
|
|
248
|
+
label="File input"
|
|
249
|
+
helperText="Please select files"
|
|
250
|
+
value={filesExamples}
|
|
251
|
+
callbackFile={() => {}}
|
|
252
|
+
/>
|
|
253
|
+
</ExampleContainer>
|
|
254
|
+
<ExampleContainer>
|
|
255
|
+
<Title title="Show preview" theme="light" level={4} />
|
|
256
|
+
<DxcFileInput
|
|
257
|
+
mode="filedrop"
|
|
258
|
+
label="File input"
|
|
259
|
+
helperText="Please select files"
|
|
260
|
+
value={filesExamples}
|
|
261
|
+
callbackFile={() => {}}
|
|
262
|
+
showPreview
|
|
263
|
+
/>
|
|
264
|
+
</ExampleContainer>
|
|
265
|
+
<ExampleContainer>
|
|
266
|
+
<Title title="Disabled" theme="light" level={4} />
|
|
267
|
+
<DxcFileInput
|
|
268
|
+
label="File input"
|
|
269
|
+
helperText="Please select files"
|
|
270
|
+
mode="filedrop"
|
|
271
|
+
disabled
|
|
272
|
+
value={[]}
|
|
273
|
+
callbackFile={() => {}}
|
|
274
|
+
/>
|
|
275
|
+
</ExampleContainer>
|
|
276
|
+
<Title title="Margins" theme="light" level={3} />
|
|
277
|
+
<ExampleContainer>
|
|
278
|
+
<Title title="Xxsmall margin" theme="light" level={4} />
|
|
279
|
+
<DxcFileInput
|
|
280
|
+
label="File input"
|
|
281
|
+
helperText="Please select files"
|
|
282
|
+
value={fileExample}
|
|
283
|
+
callbackFile={() => {}}
|
|
284
|
+
mode="filedrop"
|
|
285
|
+
margin="xxsmall"
|
|
286
|
+
/>
|
|
287
|
+
</ExampleContainer>
|
|
288
|
+
<ExampleContainer>
|
|
289
|
+
<Title title="Xsmall margin" theme="light" level={4} />
|
|
290
|
+
<DxcFileInput
|
|
291
|
+
label="File input"
|
|
292
|
+
helperText="Please select files"
|
|
293
|
+
value={fileExample}
|
|
294
|
+
callbackFile={() => {}}
|
|
295
|
+
mode="filedrop"
|
|
296
|
+
margin="xsmall"
|
|
297
|
+
/>
|
|
298
|
+
</ExampleContainer>
|
|
299
|
+
<ExampleContainer>
|
|
300
|
+
<Title title="Small margin" theme="light" level={4} />
|
|
301
|
+
<DxcFileInput
|
|
302
|
+
label="File input"
|
|
303
|
+
helperText="Please select files"
|
|
304
|
+
value={fileExample}
|
|
305
|
+
callbackFile={() => {}}
|
|
306
|
+
mode="filedrop"
|
|
307
|
+
margin="small"
|
|
308
|
+
/>
|
|
309
|
+
</ExampleContainer>
|
|
310
|
+
<ExampleContainer>
|
|
311
|
+
<Title title="Medium margin" theme="light" level={4} />
|
|
312
|
+
<DxcFileInput
|
|
313
|
+
label="File input"
|
|
314
|
+
helperText="Please select files"
|
|
315
|
+
value={fileExample}
|
|
316
|
+
callbackFile={() => {}}
|
|
317
|
+
mode="filedrop"
|
|
318
|
+
margin="medium"
|
|
319
|
+
/>
|
|
320
|
+
</ExampleContainer>
|
|
321
|
+
<ExampleContainer>
|
|
322
|
+
<Title title="Large margin" theme="light" level={4} />
|
|
323
|
+
<DxcFileInput
|
|
324
|
+
label="File input"
|
|
325
|
+
helperText="Please select files"
|
|
326
|
+
value={fileExample}
|
|
327
|
+
callbackFile={() => {}}
|
|
328
|
+
mode="filedrop"
|
|
329
|
+
margin="large"
|
|
330
|
+
/>
|
|
331
|
+
</ExampleContainer>
|
|
332
|
+
<ExampleContainer>
|
|
333
|
+
<Title title="Xlarge margin" theme="light" level={4} />
|
|
334
|
+
<DxcFileInput
|
|
335
|
+
label="File input"
|
|
336
|
+
helperText="Please select files"
|
|
337
|
+
value={fileExample}
|
|
338
|
+
callbackFile={() => {}}
|
|
339
|
+
margin="xlarge"
|
|
340
|
+
/>
|
|
341
|
+
</ExampleContainer>
|
|
342
|
+
<ExampleContainer>
|
|
343
|
+
<Title title="Xxlarge margin" theme="light" level={4} />
|
|
344
|
+
<DxcFileInput
|
|
345
|
+
label="File input"
|
|
346
|
+
helperText="Please select files"
|
|
347
|
+
value={fileExample}
|
|
348
|
+
callbackFile={() => {}}
|
|
349
|
+
mode="filedrop"
|
|
350
|
+
margin="xxlarge"
|
|
351
|
+
/>
|
|
352
|
+
</ExampleContainer>
|
|
353
|
+
<Title title="Dropzone" theme="light" level={2} />
|
|
354
|
+
<ExampleContainer>
|
|
355
|
+
<Title title="Without label" theme="light" level={4} />
|
|
356
|
+
<DxcFileInput mode="dropzone" value={[]} callbackFile={() => {}} />
|
|
357
|
+
</ExampleContainer>
|
|
358
|
+
<ExampleContainer>
|
|
359
|
+
<Title title="With label" theme="light" level={4} />
|
|
360
|
+
<DxcFileInput label="File input" mode="dropzone" value={[]} callbackFile={() => {}} />
|
|
361
|
+
</ExampleContainer>
|
|
362
|
+
<ExampleContainer>
|
|
363
|
+
<Title title="With label, helper text and ellipsis" theme="light" level={4} />
|
|
364
|
+
<DxcFileInput
|
|
365
|
+
label="File input"
|
|
366
|
+
helperText="Please select files"
|
|
367
|
+
mode="dropzone"
|
|
368
|
+
dropAreaLabel="or drop files or drop files or drop files or drop files or drop files or drop files or drop files or drop files or drop files or drop files or drop files or drop files or drop files or drop files"
|
|
369
|
+
value={[]}
|
|
370
|
+
callbackFile={() => {}}
|
|
371
|
+
/>
|
|
372
|
+
</ExampleContainer>
|
|
373
|
+
<ExampleContainer>
|
|
374
|
+
<Title title="Single file" theme="light" level={4} />
|
|
375
|
+
<DxcFileInput
|
|
376
|
+
label="File input"
|
|
377
|
+
helperText="Please select files"
|
|
378
|
+
mode="dropzone"
|
|
379
|
+
value={fileExample}
|
|
380
|
+
callbackFile={() => {}}
|
|
381
|
+
multiple={false}
|
|
382
|
+
/>
|
|
383
|
+
</ExampleContainer>
|
|
384
|
+
<ExampleContainer>
|
|
385
|
+
<Title title="Invalid single file" theme="light" level={4} />
|
|
386
|
+
<DxcFileInput
|
|
387
|
+
label="File input"
|
|
388
|
+
helperText="Please select files"
|
|
389
|
+
mode="dropzone"
|
|
390
|
+
value={fileExampleError}
|
|
391
|
+
callbackFile={() => {}}
|
|
392
|
+
multiple={false}
|
|
393
|
+
/>
|
|
394
|
+
</ExampleContainer>
|
|
395
|
+
<ExampleContainer>
|
|
396
|
+
<Title title="Multiple files" theme="light" level={4} />
|
|
397
|
+
<DxcFileInput
|
|
398
|
+
mode="dropzone"
|
|
399
|
+
label="File input"
|
|
400
|
+
helperText="Please select files"
|
|
401
|
+
value={filesExamples}
|
|
402
|
+
callbackFile={() => {}}
|
|
403
|
+
/>
|
|
404
|
+
</ExampleContainer>
|
|
405
|
+
<ExampleContainer>
|
|
406
|
+
<Title title="Show preview" theme="light" level={4} />
|
|
407
|
+
<DxcFileInput
|
|
408
|
+
mode="dropzone"
|
|
409
|
+
label="File input"
|
|
410
|
+
helperText="Please select files"
|
|
411
|
+
value={filesExamples}
|
|
412
|
+
callbackFile={() => {}}
|
|
413
|
+
showPreview
|
|
414
|
+
/>
|
|
415
|
+
</ExampleContainer>
|
|
416
|
+
<ExampleContainer>
|
|
417
|
+
<Title title="Disabled" theme="light" level={4} />
|
|
418
|
+
<DxcFileInput
|
|
419
|
+
label="File input"
|
|
420
|
+
helperText="Please select files"
|
|
421
|
+
mode="dropzone"
|
|
422
|
+
disabled
|
|
423
|
+
value={[]}
|
|
424
|
+
callbackFile={() => {}}
|
|
425
|
+
/>
|
|
426
|
+
</ExampleContainer>
|
|
427
|
+
<Title title="Margins" theme="light" level={3} />
|
|
428
|
+
<ExampleContainer>
|
|
429
|
+
<Title title="Xxsmall margin" theme="light" level={4} />
|
|
430
|
+
<DxcFileInput
|
|
431
|
+
label="File input"
|
|
432
|
+
helperText="Please select files"
|
|
433
|
+
value={fileExample}
|
|
434
|
+
callbackFile={() => {}}
|
|
435
|
+
mode="dropzone"
|
|
436
|
+
margin="xxsmall"
|
|
437
|
+
/>
|
|
438
|
+
</ExampleContainer>
|
|
439
|
+
<ExampleContainer>
|
|
440
|
+
<Title title="Xsmall margin" theme="light" level={4} />
|
|
441
|
+
<DxcFileInput
|
|
442
|
+
label="File input"
|
|
443
|
+
helperText="Please select files"
|
|
444
|
+
value={fileExample}
|
|
445
|
+
callbackFile={() => {}}
|
|
446
|
+
mode="dropzone"
|
|
447
|
+
margin="xsmall"
|
|
448
|
+
/>
|
|
449
|
+
</ExampleContainer>
|
|
450
|
+
<ExampleContainer>
|
|
451
|
+
<Title title="Small margin" theme="light" level={4} />
|
|
452
|
+
<DxcFileInput
|
|
453
|
+
label="File input"
|
|
454
|
+
helperText="Please select files"
|
|
455
|
+
value={fileExample}
|
|
456
|
+
callbackFile={() => {}}
|
|
457
|
+
mode="dropzone"
|
|
458
|
+
margin="small"
|
|
459
|
+
/>
|
|
460
|
+
</ExampleContainer>
|
|
461
|
+
<ExampleContainer>
|
|
462
|
+
<Title title="Medium margin" theme="light" level={4} />
|
|
463
|
+
<DxcFileInput
|
|
464
|
+
label="File input"
|
|
465
|
+
helperText="Please select files"
|
|
466
|
+
value={fileExample}
|
|
467
|
+
callbackFile={() => {}}
|
|
468
|
+
mode="dropzone"
|
|
469
|
+
margin="medium"
|
|
470
|
+
/>
|
|
471
|
+
</ExampleContainer>
|
|
472
|
+
<ExampleContainer>
|
|
473
|
+
<Title title="Large margin" theme="light" level={4} />
|
|
474
|
+
<DxcFileInput
|
|
475
|
+
label="File input"
|
|
476
|
+
helperText="Please select files"
|
|
477
|
+
value={fileExample}
|
|
478
|
+
callbackFile={() => {}}
|
|
479
|
+
mode="dropzone"
|
|
480
|
+
margin="large"
|
|
481
|
+
/>
|
|
482
|
+
</ExampleContainer>
|
|
483
|
+
<ExampleContainer>
|
|
484
|
+
<Title title="Xlarge margin" theme="light" level={4} />
|
|
485
|
+
<DxcFileInput
|
|
486
|
+
label="File input"
|
|
487
|
+
helperText="Please select files"
|
|
488
|
+
value={fileExample}
|
|
489
|
+
callbackFile={() => {}}
|
|
490
|
+
mode="dropzone"
|
|
491
|
+
margin="xlarge"
|
|
492
|
+
/>
|
|
493
|
+
</ExampleContainer>
|
|
494
|
+
<ExampleContainer>
|
|
495
|
+
<Title title="Xxlarge margin" theme="light" level={4} />
|
|
496
|
+
<DxcFileInput
|
|
497
|
+
label="File input"
|
|
498
|
+
helperText="Please select files"
|
|
499
|
+
value={fileExample}
|
|
500
|
+
callbackFile={() => {}}
|
|
501
|
+
mode="dropzone"
|
|
502
|
+
margin="xxlarge"
|
|
503
|
+
/>
|
|
504
|
+
<hr />
|
|
505
|
+
</ExampleContainer>
|
|
506
|
+
</>
|
|
507
|
+
);
|
|
@@ -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;
|
package/file-input/FileItem.js
CHANGED
|
@@ -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
|
|
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:
|
|
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.
|
|
162
|
+
return props.theme.hoverDeleteFileItemBackgroundColor;
|
|
163
|
+
}, function (props) {
|
|
164
|
+
return props.theme.focusActionBorderColor;
|
|
163
165
|
}, function (props) {
|
|
164
|
-
return props.
|
|
166
|
+
return props.theme.focusActionBorderColor;
|
|
165
167
|
}, function (props) {
|
|
166
|
-
return props.
|
|
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;
|