@dxc-technology/halstack-react 0.0.0-c593452 → 0.0.0-c680086
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.d.ts +1 -1
- package/accordion/Accordion.js +11 -22
- package/accordion/Accordion.stories.tsx +307 -0
- package/accordion/types.d.ts +4 -8
- package/accordion-group/AccordionGroup.js +2 -2
- package/accordion-group/AccordionGroup.stories.tsx +225 -0
- package/accordion-group/types.d.ts +4 -8
- 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 +4 -0
- package/box/Box.js +6 -32
- package/box/Box.stories.tsx +132 -0
- package/box/types.d.ts +43 -0
- package/box/types.js +5 -0
- package/button/Button.d.ts +1 -1
- package/button/Button.js +15 -26
- package/button/Button.stories.tsx +223 -242
- package/button/types.d.ts +9 -13
- 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/Checkbox.stories.tsx +192 -0
- package/checkbox/types.d.ts +2 -2
- package/chip/Chip.d.ts +4 -0
- package/chip/Chip.js +16 -76
- package/chip/Chip.stories.tsx +119 -0
- package/chip/types.d.ts +45 -0
- package/chip/types.js +5 -0
- package/common/variables.js +86 -44
- package/date/Date.js +1 -1
- package/date-input/DateInput.js +10 -13
- package/date-input/DateInput.stories.tsx +138 -0
- package/dialog/Dialog.d.ts +4 -0
- package/dialog/Dialog.js +8 -26
- package/dialog/Dialog.stories.tsx +212 -0
- package/dialog/types.d.ts +43 -0
- package/dialog/types.js +5 -0
- package/dropdown/Dropdown.d.ts +1 -1
- package/dropdown/Dropdown.js +13 -35
- package/dropdown/Dropdown.stories.tsx +249 -0
- package/dropdown/types.d.ts +6 -15
- 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 +4 -0
- package/footer/Footer.js +31 -70
- package/footer/Footer.stories.tsx +130 -0
- package/footer/Icons.d.ts +2 -0
- package/footer/Icons.js +3 -3
- package/footer/types.d.ts +65 -0
- package/footer/types.js +5 -0
- package/header/Header.d.ts +7 -0
- package/header/Header.js +28 -30
- package/header/Header.stories.tsx +162 -0
- package/header/Icons.d.ts +2 -0
- package/header/Icons.js +2 -27
- package/header/types.d.ts +47 -0
- package/header/types.js +5 -0
- 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.d.ts +3 -0
- package/link/Link.js +10 -40
- package/link/Link.stories.tsx +151 -0
- package/link/types.d.ts +70 -0
- package/link/types.js +5 -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 +8 -3
- package/main.js +42 -2
- package/number-input/NumberInput.d.ts +4 -0
- package/number-input/NumberInput.js +5 -50
- package/number-input/NumberInput.stories.tsx +115 -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/paginator/Paginator.stories.tsx +63 -0
- package/password-input/PasswordInput.d.ts +4 -0
- package/password-input/PasswordInput.js +19 -55
- package/password-input/{PasswordInput.stories.jsx → PasswordInput.stories.tsx} +4 -4
- package/password-input/types.d.ts +107 -0
- package/password-input/types.js +5 -0
- package/progress-bar/ProgressBar.js +5 -5
- package/progress-bar/ProgressBar.stories.jsx +58 -0
- package/radio/Radio.js +2 -2
- package/radio/Radio.stories.tsx +192 -0
- 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 +9 -29
- 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.d.ts +4 -0
- package/spinner/Spinner.js +8 -25
- package/spinner/Spinner.stories.jsx +103 -0
- package/spinner/types.d.ts +32 -0
- package/spinner/types.js +5 -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 +4 -4
- package/switch/Switch.stories.tsx +160 -0
- package/table/Table.d.ts +4 -0
- package/table/Table.js +3 -3
- package/table/Table.stories.jsx +277 -0
- package/table/types.d.ts +21 -0
- package/table/types.js +5 -0
- 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 +26 -46
- package/tag/Tag.stories.tsx +138 -0
- package/tag/types.d.ts +69 -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/box/index.d.ts +0 -25
- package/chip/index.d.ts +0 -22
- package/dialog/index.d.ts +0 -18
- package/file-input/index.d.ts +0 -81
- package/footer/index.d.ts +0 -25
- package/header/index.d.ts +0 -25
- package/heading/index.d.ts +0 -17
- package/link/index.d.ts +0 -23
- package/number-input/index.d.ts +0 -113
- package/password-input/index.d.ts +0 -94
- package/resultsetTable/index.d.ts +0 -19
- package/select/index.d.ts +0 -131
- package/sidenav/index.d.ts +0 -13
- package/spinner/index.d.ts +0 -17
- package/table/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,277 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import DxcTable from "./Table";
|
|
3
|
+
import Title from "../../.storybook/components/Title";
|
|
4
|
+
import ExampleContainer from "../../.storybook/components/ExampleContainer";
|
|
5
|
+
|
|
6
|
+
export default {
|
|
7
|
+
title: "Table",
|
|
8
|
+
component: DxcTable,
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
export const Chromatic = () => (
|
|
12
|
+
<>
|
|
13
|
+
<ExampleContainer>
|
|
14
|
+
<Title title="Default" theme="light" level={4} />
|
|
15
|
+
<DxcTable>
|
|
16
|
+
<tr>
|
|
17
|
+
<th>header 1</th>
|
|
18
|
+
<th>header 2</th>
|
|
19
|
+
<th>header 3</th>
|
|
20
|
+
</tr>
|
|
21
|
+
<tr>
|
|
22
|
+
<td>cell 1</td>
|
|
23
|
+
<td>cell 2</td>
|
|
24
|
+
<td>cell 3</td>
|
|
25
|
+
</tr>
|
|
26
|
+
<tr>
|
|
27
|
+
<td>cell 4</td>
|
|
28
|
+
<td>cell 5</td>
|
|
29
|
+
<td>cell 6</td>
|
|
30
|
+
</tr>
|
|
31
|
+
<tr>
|
|
32
|
+
<td>cell 7</td>
|
|
33
|
+
<td>cell 8</td>
|
|
34
|
+
<td>Cell 9</td>
|
|
35
|
+
</tr>
|
|
36
|
+
</DxcTable>
|
|
37
|
+
</ExampleContainer>
|
|
38
|
+
<ExampleContainer>
|
|
39
|
+
<Title title="With scrollbar" theme="light" level={4} />
|
|
40
|
+
<div
|
|
41
|
+
style={{ height: 200 + "px", display: "flex", flexDirection: "row", width: 100 + "%", marginBottom: 50 + "px" }}
|
|
42
|
+
>
|
|
43
|
+
<DxcTable>
|
|
44
|
+
<tr>
|
|
45
|
+
<th>
|
|
46
|
+
header<br></br>subheader
|
|
47
|
+
</th>
|
|
48
|
+
<th>
|
|
49
|
+
header<br></br>subheader
|
|
50
|
+
</th>
|
|
51
|
+
<th>
|
|
52
|
+
header<br></br>subheader
|
|
53
|
+
</th>
|
|
54
|
+
</tr>
|
|
55
|
+
<tr>
|
|
56
|
+
<td>
|
|
57
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et
|
|
58
|
+
dolore magna aliqua.
|
|
59
|
+
</td>
|
|
60
|
+
<td>
|
|
61
|
+
Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
|
|
62
|
+
consequat.
|
|
63
|
+
</td>
|
|
64
|
+
<td>
|
|
65
|
+
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
|
|
66
|
+
</td>
|
|
67
|
+
</tr>
|
|
68
|
+
<tr>
|
|
69
|
+
<td>cell data</td>
|
|
70
|
+
<td>cell data</td>
|
|
71
|
+
<td>cell data</td>
|
|
72
|
+
</tr>
|
|
73
|
+
<tr>
|
|
74
|
+
<td>cell data</td>
|
|
75
|
+
<td>cell data</td>
|
|
76
|
+
<td>cell data</td>
|
|
77
|
+
</tr>
|
|
78
|
+
<tr>
|
|
79
|
+
<td>cell data</td>
|
|
80
|
+
<td>cell data</td>
|
|
81
|
+
<td>cell data</td>
|
|
82
|
+
</tr>
|
|
83
|
+
<tr>
|
|
84
|
+
<td>cell data</td>
|
|
85
|
+
<td>cell data</td>
|
|
86
|
+
<td>cell data</td>
|
|
87
|
+
</tr>
|
|
88
|
+
<tr>
|
|
89
|
+
<td>cell data</td>
|
|
90
|
+
<td>cell data</td>
|
|
91
|
+
<td>cell data</td>
|
|
92
|
+
</tr>
|
|
93
|
+
<tr>
|
|
94
|
+
<td>cell data</td>
|
|
95
|
+
<td>cell data</td>
|
|
96
|
+
<td>cell data</td>
|
|
97
|
+
</tr>
|
|
98
|
+
<tr>
|
|
99
|
+
<td>cell data</td>
|
|
100
|
+
<td>cell data</td>
|
|
101
|
+
<td>cell data</td>
|
|
102
|
+
</tr>
|
|
103
|
+
<tr>
|
|
104
|
+
<td>cell data</td>
|
|
105
|
+
<td>cell data</td>
|
|
106
|
+
<td>cell data</td>
|
|
107
|
+
</tr>
|
|
108
|
+
</DxcTable>
|
|
109
|
+
</div>
|
|
110
|
+
</ExampleContainer>
|
|
111
|
+
<Title title="Margins" theme="light" level={2} />
|
|
112
|
+
<ExampleContainer>
|
|
113
|
+
<Title title="Xxsmall margin" theme="light" level={4} />
|
|
114
|
+
<DxcTable margin="xxsmall">
|
|
115
|
+
<tr>
|
|
116
|
+
<th>header 1</th>
|
|
117
|
+
<th>header 2</th>
|
|
118
|
+
<th>header 3</th>
|
|
119
|
+
</tr>
|
|
120
|
+
<tr>
|
|
121
|
+
<td>cell 1</td>
|
|
122
|
+
<td>cell 2</td>
|
|
123
|
+
<td>cell 3</td>
|
|
124
|
+
</tr>
|
|
125
|
+
<tr>
|
|
126
|
+
<td>cell 4</td>
|
|
127
|
+
<td>cell 5</td>
|
|
128
|
+
<td>cell 6</td>
|
|
129
|
+
</tr>
|
|
130
|
+
<tr>
|
|
131
|
+
<td>cell 7</td>
|
|
132
|
+
<td>cell 8</td>
|
|
133
|
+
<td>Cell 9</td>
|
|
134
|
+
</tr>
|
|
135
|
+
</DxcTable>
|
|
136
|
+
<Title title="Xsmall margin" theme="light" level={4} />
|
|
137
|
+
<DxcTable margin="xsmall">
|
|
138
|
+
<tr>
|
|
139
|
+
<th>header 1</th>
|
|
140
|
+
<th>header 2</th>
|
|
141
|
+
<th>header 3</th>
|
|
142
|
+
</tr>
|
|
143
|
+
<tr>
|
|
144
|
+
<td>cell 1</td>
|
|
145
|
+
<td>cell 2</td>
|
|
146
|
+
<td>cell 3</td>
|
|
147
|
+
</tr>
|
|
148
|
+
<tr>
|
|
149
|
+
<td>cell 4</td>
|
|
150
|
+
<td>cell 5</td>
|
|
151
|
+
<td>cell 6</td>
|
|
152
|
+
</tr>
|
|
153
|
+
<tr>
|
|
154
|
+
<td>cell 7</td>
|
|
155
|
+
<td>cell 8</td>
|
|
156
|
+
<td>Cell 9</td>
|
|
157
|
+
</tr>
|
|
158
|
+
</DxcTable>
|
|
159
|
+
<Title title="Small margin" theme="light" level={4} />
|
|
160
|
+
<DxcTable margin="small">
|
|
161
|
+
<tr>
|
|
162
|
+
<th>header 1</th>
|
|
163
|
+
<th>header 2</th>
|
|
164
|
+
<th>header 3</th>
|
|
165
|
+
</tr>
|
|
166
|
+
<tr>
|
|
167
|
+
<td>cell 1</td>
|
|
168
|
+
<td>cell 2</td>
|
|
169
|
+
<td>cell 3</td>
|
|
170
|
+
</tr>
|
|
171
|
+
<tr>
|
|
172
|
+
<td>cell 4</td>
|
|
173
|
+
<td>cell 5</td>
|
|
174
|
+
<td>cell 6</td>
|
|
175
|
+
</tr>
|
|
176
|
+
<tr>
|
|
177
|
+
<td>cell 7</td>
|
|
178
|
+
<td>cell 8</td>
|
|
179
|
+
<td>Cell 9</td>
|
|
180
|
+
</tr>
|
|
181
|
+
</DxcTable>
|
|
182
|
+
<Title title="Medium margin" theme="light" level={4} />
|
|
183
|
+
<DxcTable margin="medium">
|
|
184
|
+
<tr>
|
|
185
|
+
<th>header 1</th>
|
|
186
|
+
<th>header 2</th>
|
|
187
|
+
<th>header 3</th>
|
|
188
|
+
</tr>
|
|
189
|
+
<tr>
|
|
190
|
+
<td>cell 1</td>
|
|
191
|
+
<td>cell 2</td>
|
|
192
|
+
<td>cell 3</td>
|
|
193
|
+
</tr>
|
|
194
|
+
<tr>
|
|
195
|
+
<td>cell 4</td>
|
|
196
|
+
<td>cell 5</td>
|
|
197
|
+
<td>cell 6</td>
|
|
198
|
+
</tr>
|
|
199
|
+
<tr>
|
|
200
|
+
<td>cell 7</td>
|
|
201
|
+
<td>cell 8</td>
|
|
202
|
+
<td>Cell 9</td>
|
|
203
|
+
</tr>
|
|
204
|
+
</DxcTable>
|
|
205
|
+
<Title title="Large margin" theme="light" level={4} />
|
|
206
|
+
<DxcTable margin="large">
|
|
207
|
+
<tr>
|
|
208
|
+
<th>header 1</th>
|
|
209
|
+
<th>header 2</th>
|
|
210
|
+
<th>header 3</th>
|
|
211
|
+
</tr>
|
|
212
|
+
<tr>
|
|
213
|
+
<td>cell 1</td>
|
|
214
|
+
<td>cell 2</td>
|
|
215
|
+
<td>cell 3</td>
|
|
216
|
+
</tr>
|
|
217
|
+
<tr>
|
|
218
|
+
<td>cell 4</td>
|
|
219
|
+
<td>cell 5</td>
|
|
220
|
+
<td>cell 6</td>
|
|
221
|
+
</tr>
|
|
222
|
+
<tr>
|
|
223
|
+
<td>cell 7</td>
|
|
224
|
+
<td>cell 8</td>
|
|
225
|
+
<td>Cell 9</td>
|
|
226
|
+
</tr>
|
|
227
|
+
</DxcTable>
|
|
228
|
+
<Title title="Xlarge margin" theme="light" level={4} />
|
|
229
|
+
<DxcTable margin="xlarge">
|
|
230
|
+
<tr>
|
|
231
|
+
<th>header 1</th>
|
|
232
|
+
<th>header 2</th>
|
|
233
|
+
<th>header 3</th>
|
|
234
|
+
</tr>
|
|
235
|
+
<tr>
|
|
236
|
+
<td>cell 1</td>
|
|
237
|
+
<td>cell 2</td>
|
|
238
|
+
<td>cell 3</td>
|
|
239
|
+
</tr>
|
|
240
|
+
<tr>
|
|
241
|
+
<td>cell 4</td>
|
|
242
|
+
<td>cell 5</td>
|
|
243
|
+
<td>cell 6</td>
|
|
244
|
+
</tr>
|
|
245
|
+
<tr>
|
|
246
|
+
<td>cell 7</td>
|
|
247
|
+
<td>cell 8</td>
|
|
248
|
+
<td>Cell 9</td>
|
|
249
|
+
</tr>
|
|
250
|
+
</DxcTable>
|
|
251
|
+
<Title title="Xxlarge margin" theme="light" level={4} />
|
|
252
|
+
<DxcTable margin="xxlarge">
|
|
253
|
+
<tr>
|
|
254
|
+
<th>header 1</th>
|
|
255
|
+
<th>header 2</th>
|
|
256
|
+
<th>header 3</th>
|
|
257
|
+
</tr>
|
|
258
|
+
<tr>
|
|
259
|
+
<td>cell 1</td>
|
|
260
|
+
<td>cell 2</td>
|
|
261
|
+
<td>cell 3</td>
|
|
262
|
+
</tr>
|
|
263
|
+
<tr>
|
|
264
|
+
<td>cell 4</td>
|
|
265
|
+
<td>cell 5</td>
|
|
266
|
+
<td>cell 6</td>
|
|
267
|
+
</tr>
|
|
268
|
+
<tr>
|
|
269
|
+
<td>cell 7</td>
|
|
270
|
+
<td>cell 8</td>
|
|
271
|
+
<td>Cell 9</td>
|
|
272
|
+
</tr>
|
|
273
|
+
</DxcTable>
|
|
274
|
+
<hr />
|
|
275
|
+
</ExampleContainer>
|
|
276
|
+
</>
|
|
277
|
+
);
|
package/table/types.d.ts
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
|
|
3
|
+
declare type Margin = {
|
|
4
|
+
top?: Space;
|
|
5
|
+
bottom?: Space;
|
|
6
|
+
left?: Space;
|
|
7
|
+
right?: Space;
|
|
8
|
+
};
|
|
9
|
+
declare type Props = {
|
|
10
|
+
/**
|
|
11
|
+
* Size of the margin to be applied to the component ('xxsmall' | 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | 'xxlarge').
|
|
12
|
+
* You can pass an object with 'top', 'bottom', 'left' and 'right' properties in order to specify different margin sizes.
|
|
13
|
+
*/
|
|
14
|
+
margin?: Space | Margin;
|
|
15
|
+
/**
|
|
16
|
+
* The center section of the table. Can be used to render custom
|
|
17
|
+
* content in this area.
|
|
18
|
+
*/
|
|
19
|
+
children: React.ReactNode;
|
|
20
|
+
};
|
|
21
|
+
export default Props;
|
package/table/types.js
ADDED
package/tabs/Tabs.js
CHANGED
|
@@ -9,10 +9,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
9
9
|
});
|
|
10
10
|
exports["default"] = void 0;
|
|
11
11
|
|
|
12
|
-
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
13
|
-
|
|
14
12
|
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
15
13
|
|
|
14
|
+
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
15
|
+
|
|
16
16
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
17
17
|
|
|
18
18
|
var _react = _interopRequireDefault(require("react"));
|
|
@@ -27,7 +27,7 @@ var _variables = require("../common/variables.js");
|
|
|
27
27
|
|
|
28
28
|
var _Badge = _interopRequireDefault(require("../badge/Badge"));
|
|
29
29
|
|
|
30
|
-
var _useTheme = _interopRequireDefault(require("../useTheme
|
|
30
|
+
var _useTheme = _interopRequireDefault(require("../useTheme"));
|
|
31
31
|
|
|
32
32
|
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9;
|
|
33
33
|
|
|
@@ -70,12 +70,12 @@ var DxcTabs = function DxcTabs(_ref) {
|
|
|
70
70
|
}, /*#__PURE__*/_react["default"].createElement(TabLabelContainer, {
|
|
71
71
|
hasLabelAndIcon: hasLabelAndIcon,
|
|
72
72
|
iconPosition: iconPosition
|
|
73
|
-
}, tab.icon
|
|
73
|
+
}, tab.icon && /*#__PURE__*/_react["default"].createElement(TabIconContainer, {
|
|
74
74
|
hasLabelAndIcon: hasLabelAndIcon,
|
|
75
75
|
iconPosition: iconPosition
|
|
76
|
-
},
|
|
77
|
-
src: tab.
|
|
78
|
-
}), /*#__PURE__*/_react["default"].createElement(LabelTextContainer, null, tab.label))), tab.notificationNumber && tab.notificationNumber !== false && /*#__PURE__*/_react["default"].createElement(BadgeContainer, {
|
|
76
|
+
}, typeof tab.icon === "string" ? /*#__PURE__*/_react["default"].createElement(TabIcon, {
|
|
77
|
+
src: tab.icon
|
|
78
|
+
}) : tab.icon), /*#__PURE__*/_react["default"].createElement(LabelTextContainer, null, tab.label))), tab.notificationNumber && tab.notificationNumber !== false && /*#__PURE__*/_react["default"].createElement(BadgeContainer, {
|
|
79
79
|
hasLabelAndIcon: hasLabelAndIcon,
|
|
80
80
|
iconPosition: iconPosition
|
|
81
81
|
}, /*#__PURE__*/_react["default"].createElement(_Badge["default"], {
|
|
@@ -135,7 +135,7 @@ var Underline = _styledComponents["default"].div(_templateObject6 || (_templateO
|
|
|
135
135
|
return props.theme.dividerColor;
|
|
136
136
|
});
|
|
137
137
|
|
|
138
|
-
var DxCTabs = _styledComponents["default"].div(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n position: relative;\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n\n .MuiTabs-root {\n background: white;\n min-height: ", ";\n\n .MuiTabs-scroller {\n .MuiTabs-flexContainer + span {\n z-index: 4;\n }\n }\n .MuiTab-root {\n text-transform: ", " !important;\n }\n .MuiButtonBase-root {\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n\n padding: ", ";\n height: ", ";\n min-width: 90px;\n max-width: 360px;\n min-height: ", ";\n\n &:hover {\n background-color: ", ";\n }\n &:active {\n background-color: ", ";\n font-weight: ", ";\n }\n &:not(.Mui-selected) {\n background-color: ", ";\n color: ", ";\n svg {\n color: ", ";\n }\n }\n &.Mui-selected {\n background-color: ", ";\n color: ", ";\n svg {\n color: ", ";\n }\n }\n &.Mui-disabled {\n cursor: not-allowed !important;\n pointer-events: all;\n color: ", ";\n font-style: ", ";\n svg {\n color: ", ";\n }\n }\n &:focus {\n outline: ", " auto 1px;\n }\n }\n .MuiTabs-indicator {\n background-color: ", ";\n height: ", ";\n }\n .MuiTabs-scrollButtons {\n min-width: ", ";\n width: ", ";\n padding: 0;\n }\n @media (max-width: 599.95px) {\n .MuiTabs-scrollButtonsDesktop {\n display: flex;\n }\n }\n }\n"])), function (props) {
|
|
138
|
+
var DxCTabs = _styledComponents["default"].div(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n position: relative;\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n\n .MuiTabs-root {\n background: white;\n min-height: ", ";\n\n .MuiTabs-scroller {\n .MuiTabs-flexContainer + span {\n z-index: 4;\n }\n }\n .MuiTab-root {\n text-transform: ", " !important;\n }\n .MuiButtonBase-root {\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n\n padding: ", ";\n height: ", ";\n min-width: 90px;\n max-width: 360px;\n min-height: ", ";\n\n &:hover {\n background-color: ", ";\n }\n &:active {\n background-color: ", ";\n font-weight: ", ";\n }\n &:not(.Mui-selected) {\n background-color: ", ";\n color: ", ";\n svg {\n color: ", ";\n }\n }\n &.Mui-selected {\n background-color: ", ";\n color: ", ";\n svg {\n color: ", ";\n }\n }\n &.Mui-disabled {\n background-color: ", " !important;\n cursor: not-allowed !important;\n pointer-events: all;\n color: ", ";\n font-style: ", ";\n svg {\n color: ", ";\n }\n outline: none !important;\n }\n &:focus {\n outline: ", " auto 1px;\n }\n }\n .MuiTabs-indicator {\n background-color: ", ";\n height: ", ";\n }\n .MuiTabs-scrollButtons {\n min-width: ", ";\n width: ", ";\n padding: 0;\n }\n @media (max-width: 599.95px) {\n .MuiTabs-scrollButtonsDesktop {\n display: flex;\n }\n }\n }\n"])), function (props) {
|
|
139
139
|
return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
|
|
140
140
|
}, function (props) {
|
|
141
141
|
return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.top ? _variables.spaces[props.margin.top] : "";
|
|
@@ -181,6 +181,8 @@ var DxCTabs = _styledComponents["default"].div(_templateObject7 || (_templateObj
|
|
|
181
181
|
return props.theme.selectedFontColor;
|
|
182
182
|
}, function (props) {
|
|
183
183
|
return props.theme.selectedIconColor;
|
|
184
|
+
}, function (props) {
|
|
185
|
+
return props.theme.unselectedBackgroundColor;
|
|
184
186
|
}, function (props) {
|
|
185
187
|
return props.theme.disabledFontColor;
|
|
186
188
|
}, function (props) {
|
|
@@ -199,7 +201,7 @@ var DxCTabs = _styledComponents["default"].div(_templateObject7 || (_templateObj
|
|
|
199
201
|
return props.theme.scrollButtonsWidth;
|
|
200
202
|
});
|
|
201
203
|
|
|
202
|
-
var TabIcon = _styledComponents["default"].img(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["
|
|
204
|
+
var TabIcon = _styledComponents["default"].img(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])([""])));
|
|
203
205
|
|
|
204
206
|
var TabIconContainer = _styledComponents["default"].div(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])(["\n max-height: 22px;\n max-width: 22px;\n margin-bottom: ", ";\n margin-right: ", ";\n overflow: hidden;\n display: flex;\n align-items: center;\n img,\n svg {\n height: 100%;\n width: 100%;\n }\n"])), function (props) {
|
|
205
207
|
return props.hasLabelAndIcon && props.iconPosition === "top" && "8px" || "";
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { userEvent, within } from "@storybook/testing-library";
|
|
3
|
+
import DxcTabs from "./Tabs";
|
|
4
|
+
import Title from "../../.storybook/components/Title";
|
|
5
|
+
import ExampleContainer from "../../.storybook/components/ExampleContainer";
|
|
6
|
+
|
|
7
|
+
export default {
|
|
8
|
+
title: "Tabs",
|
|
9
|
+
component: DxcTabs,
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
const iconSVG = (
|
|
13
|
+
<svg viewBox="0 0 24 24" fill="currentColor">
|
|
14
|
+
<path d="M0 0h24v24H0z" fill="none" />
|
|
15
|
+
<path d="M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z" />
|
|
16
|
+
</svg>
|
|
17
|
+
);
|
|
18
|
+
|
|
19
|
+
const tabs: any = [
|
|
20
|
+
{
|
|
21
|
+
label: "Tab 1",
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
label: "Tab 2",
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
label: "Tab 3",
|
|
28
|
+
isDisabled: true,
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
label: "Tab 4",
|
|
32
|
+
},
|
|
33
|
+
];
|
|
34
|
+
|
|
35
|
+
const tabsNotification = tabs.map((tab, index) => ({
|
|
36
|
+
...tab,
|
|
37
|
+
notificationNumber: (index === 0 && true) || (index === 1 && 5) || (index === 2 && 200),
|
|
38
|
+
}));
|
|
39
|
+
|
|
40
|
+
const tabsIcon = tabs.map((tab) => ({ ...tab, icon: iconSVG }));
|
|
41
|
+
|
|
42
|
+
const tabsNotificationIcon = tabsNotification.map((tab) => ({ ...tab, icon: iconSVG }));
|
|
43
|
+
|
|
44
|
+
export const Chromatic = () => (
|
|
45
|
+
<>
|
|
46
|
+
<ExampleContainer>
|
|
47
|
+
<Title title="Only label" theme="light" level={4} />
|
|
48
|
+
<DxcTabs tabs={tabs} />
|
|
49
|
+
</ExampleContainer>
|
|
50
|
+
<ExampleContainer pseudoState="pseudo-hover">
|
|
51
|
+
<Title title="Hovered tabs" theme="light" level={4} />
|
|
52
|
+
<DxcTabs tabs={tabs} />
|
|
53
|
+
</ExampleContainer>
|
|
54
|
+
<ExampleContainer pseudoState="pseudo-focus">
|
|
55
|
+
<Title title="Focused tabs" theme="light" level={4} />
|
|
56
|
+
<DxcTabs tabs={tabs} />
|
|
57
|
+
</ExampleContainer>
|
|
58
|
+
<ExampleContainer pseudoState="pseudo-active">
|
|
59
|
+
<Title title="Actived tabs" theme="light" level={4} />
|
|
60
|
+
<DxcTabs tabs={tabs} />
|
|
61
|
+
</ExampleContainer>
|
|
62
|
+
<ExampleContainer>
|
|
63
|
+
<Title title="With notification number" theme="light" level={4} />
|
|
64
|
+
<DxcTabs tabs={tabsNotification} />
|
|
65
|
+
</ExampleContainer>
|
|
66
|
+
<ExampleContainer>
|
|
67
|
+
<Title title="With icon position top" theme="light" level={4} />
|
|
68
|
+
<DxcTabs tabs={tabsIcon} />
|
|
69
|
+
</ExampleContainer>
|
|
70
|
+
<ExampleContainer>
|
|
71
|
+
<Title title="With icon position left" theme="light" level={4} />
|
|
72
|
+
<DxcTabs tabs={tabsIcon} iconPosition="left" />
|
|
73
|
+
</ExampleContainer>
|
|
74
|
+
<ExampleContainer>
|
|
75
|
+
<Title title="With icon and notification number" theme="light" level={4} />
|
|
76
|
+
<DxcTabs tabs={tabsNotificationIcon} />
|
|
77
|
+
</ExampleContainer>
|
|
78
|
+
<ExampleContainer>
|
|
79
|
+
<Title title="With icon on the left and notification number" theme="light" level={4} />
|
|
80
|
+
<DxcTabs tabs={tabsNotificationIcon} iconPosition="left" />
|
|
81
|
+
</ExampleContainer>
|
|
82
|
+
<ExampleContainer>
|
|
83
|
+
<Title title="Scrollable" theme="light" level={4} />
|
|
84
|
+
<div style={{ width: "400px" }}>
|
|
85
|
+
<DxcTabs tabs={tabsNotificationIcon} iconPosition="left" activeTabIndex={1} />
|
|
86
|
+
</div>
|
|
87
|
+
</ExampleContainer>
|
|
88
|
+
|
|
89
|
+
<Title title="Margins" theme="light" level={2} />
|
|
90
|
+
<ExampleContainer>
|
|
91
|
+
<Title title="Xxsmall margin" theme="light" level={4} />
|
|
92
|
+
<DxcTabs tabs={tabs} margin="xxsmall" />
|
|
93
|
+
</ExampleContainer>
|
|
94
|
+
<ExampleContainer>
|
|
95
|
+
<Title title="Xsmall margin" theme="light" level={4} />
|
|
96
|
+
<DxcTabs tabs={tabs} margin="xsmall" />
|
|
97
|
+
</ExampleContainer>
|
|
98
|
+
<ExampleContainer>
|
|
99
|
+
<Title title="Small margin" theme="light" level={4} />
|
|
100
|
+
<DxcTabs tabs={tabs} margin="small" />
|
|
101
|
+
</ExampleContainer>
|
|
102
|
+
<ExampleContainer>
|
|
103
|
+
<Title title="Medium margin" theme="light" level={4} />
|
|
104
|
+
<DxcTabs tabs={tabs} margin="medium" />
|
|
105
|
+
</ExampleContainer>
|
|
106
|
+
<ExampleContainer>
|
|
107
|
+
<Title title="Large margin" theme="light" level={4} />
|
|
108
|
+
<DxcTabs tabs={tabs} margin="large" />
|
|
109
|
+
</ExampleContainer>
|
|
110
|
+
<ExampleContainer>
|
|
111
|
+
<Title title="Xlarge margin" theme="light" level={4} />
|
|
112
|
+
<DxcTabs tabs={tabs} margin="xlarge" />
|
|
113
|
+
</ExampleContainer>
|
|
114
|
+
<ExampleContainer>
|
|
115
|
+
<Title title="Xxlarge margin" theme="light" level={4} />
|
|
116
|
+
<DxcTabs tabs={tabs} margin="xxlarge" />
|
|
117
|
+
<hr />
|
|
118
|
+
</ExampleContainer>
|
|
119
|
+
</>
|
|
120
|
+
);
|
package/tabs/types.d.ts
CHANGED
|
@@ -6,20 +6,8 @@ declare type Margin = {
|
|
|
6
6
|
left?: Space;
|
|
7
7
|
right?: Space;
|
|
8
8
|
};
|
|
9
|
-
declare type SVG = React.SVGProps<SVGSVGElement
|
|
10
|
-
declare type
|
|
11
|
-
/**
|
|
12
|
-
* Tab label.
|
|
13
|
-
*/
|
|
14
|
-
label?: string;
|
|
15
|
-
/**
|
|
16
|
-
* Element used as the icon that will be displayed in the tab.
|
|
17
|
-
*/
|
|
18
|
-
icon?: SVG;
|
|
19
|
-
/**
|
|
20
|
-
* @deprecated URL of the icon to be displayed in the tab.
|
|
21
|
-
*/
|
|
22
|
-
iconSrc?: string;
|
|
9
|
+
declare type SVG = React.SVGProps<SVGSVGElement>;
|
|
10
|
+
declare type TabCommonProps = {
|
|
23
11
|
/**
|
|
24
12
|
* Whether the tab is disabled or not.
|
|
25
13
|
*/
|
|
@@ -33,11 +21,31 @@ declare type Tab = {
|
|
|
33
21
|
*/
|
|
34
22
|
notificationNumber?: boolean | number;
|
|
35
23
|
};
|
|
24
|
+
declare type TabLabelProps = TabCommonProps & {
|
|
25
|
+
/**
|
|
26
|
+
* Tab label.
|
|
27
|
+
*/
|
|
28
|
+
label: string;
|
|
29
|
+
/**
|
|
30
|
+
* Element or path used as the icon that will be displayed in the tab.
|
|
31
|
+
*/
|
|
32
|
+
icon?: string | SVG;
|
|
33
|
+
};
|
|
34
|
+
declare type TabIconProps = TabCommonProps & {
|
|
35
|
+
/**
|
|
36
|
+
* Tab label.
|
|
37
|
+
*/
|
|
38
|
+
label?: string;
|
|
39
|
+
/**
|
|
40
|
+
* Element or path used as the icon that will be displayed in the tab.
|
|
41
|
+
*/
|
|
42
|
+
icon: string | SVG;
|
|
43
|
+
};
|
|
36
44
|
declare type Props = {
|
|
37
45
|
/**
|
|
38
46
|
* An array of objects representing the tabs.
|
|
39
47
|
*/
|
|
40
|
-
tabs:
|
|
48
|
+
tabs: (TabLabelProps | TabIconProps)[];
|
|
41
49
|
/**
|
|
42
50
|
* Whether the icon should appear above or to the left of the label.
|
|
43
51
|
*/
|
|
@@ -58,9 +66,8 @@ declare type Props = {
|
|
|
58
66
|
*/
|
|
59
67
|
onTabHover?: (tabIndex: number) => void;
|
|
60
68
|
/**
|
|
61
|
-
* Size of the margin to be applied to the component
|
|
62
|
-
* with 'top', 'bottom', 'left' and 'right' properties in order to specify
|
|
63
|
-
* different margin sizes.
|
|
69
|
+
* Size of the margin to be applied to the component ('xxsmall' | 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | 'xxlarge').
|
|
70
|
+
* You can pass an object with 'top', 'bottom', 'left' and 'right' properties in order to specify different margin sizes.
|
|
64
71
|
*/
|
|
65
72
|
margin?: Space | Margin;
|
|
66
73
|
/**
|
package/tag/Tag.d.ts
ADDED