@dxc-technology/halstack-react 7.0.0 → 9.0.0
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/HalstackContext.js +98 -50
- package/accordion/Accordion.js +7 -13
- package/accordion/Accordion.stories.tsx +102 -13
- package/alert/Alert.stories.tsx +28 -0
- package/box/Box.js +1 -3
- package/box/Box.stories.tsx +15 -0
- package/button/Button.js +11 -13
- package/button/Button.stories.tsx +150 -8
- package/checkbox/Checkbox.d.ts +2 -2
- package/checkbox/Checkbox.js +16 -15
- package/checkbox/Checkbox.stories.tsx +131 -59
- package/checkbox/types.d.ts +4 -0
- package/chip/Chip.js +16 -22
- package/chip/Chip.stories.tsx +96 -9
- package/common/variables.js +286 -290
- package/date-input/Calendar.d.ts +4 -0
- package/date-input/Calendar.js +258 -0
- package/date-input/DateInput.js +134 -237
- package/date-input/DateInput.stories.tsx +199 -33
- package/date-input/DateInput.test.js +494 -138
- package/date-input/DatePicker.d.ts +4 -0
- package/date-input/DatePicker.js +146 -0
- package/date-input/Icons.d.ts +6 -0
- package/date-input/Icons.js +75 -0
- package/date-input/YearPicker.d.ts +4 -0
- package/date-input/YearPicker.js +126 -0
- package/date-input/types.d.ts +51 -0
- package/dialog/Dialog.js +60 -73
- package/dialog/Dialog.stories.tsx +211 -159
- package/dialog/Dialog.test.js +301 -2
- package/dropdown/Dropdown.js +35 -35
- package/dropdown/Dropdown.stories.tsx +210 -84
- package/dropdown/Dropdown.test.js +17 -22
- package/dropdown/DropdownMenu.js +8 -18
- package/dropdown/DropdownMenuItem.js +4 -15
- package/file-input/FileInput.d.ts +2 -2
- package/file-input/FileInput.js +169 -222
- package/file-input/FileInput.stories.tsx +122 -11
- package/file-input/FileInput.test.js +12 -53
- package/file-input/FileItem.d.ts +4 -14
- package/file-input/FileItem.js +39 -63
- package/file-input/types.d.ts +17 -0
- package/footer/Footer.stories.tsx +91 -0
- package/header/Header.js +18 -20
- package/header/Header.stories.tsx +149 -6
- package/link/Link.js +1 -1
- package/link/Link.stories.tsx +60 -0
- package/main.d.ts +1 -1
- package/main.js +1 -1
- package/{tabs-nav → nav-tabs}/NavTabs.js +1 -1
- package/{tabs-nav → nav-tabs}/NavTabs.stories.tsx +96 -6
- package/{tabs-nav → nav-tabs}/Tab.js +35 -15
- package/number-input/NumberInput.test.js +5 -6
- package/package.json +7 -12
- package/paginator/Icons.d.ts +5 -0
- package/paginator/Icons.js +16 -28
- package/paginator/Paginator.js +5 -11
- package/paginator/Paginator.stories.tsx +24 -0
- package/paginator/Paginator.test.js +17 -10
- package/progress-bar/ProgressBar.js +4 -4
- package/progress-bar/ProgressBar.stories.jsx +35 -2
- package/quick-nav/QuickNav.stories.tsx +14 -0
- package/radio-group/RadioGroup.stories.tsx +131 -18
- package/resultsetTable/Icons.d.ts +7 -0
- package/resultsetTable/Icons.js +51 -0
- package/resultsetTable/ResultsetTable.js +48 -105
- package/resultsetTable/ResultsetTable.stories.tsx +50 -25
- package/resultsetTable/ResultsetTable.test.js +40 -63
- package/resultsetTable/types.d.ts +2 -2
- package/select/Listbox.d.ts +1 -1
- package/select/Listbox.js +5 -34
- package/select/Option.js +11 -24
- package/select/Select.js +43 -24
- package/select/Select.stories.tsx +494 -150
- package/select/Select.test.js +17 -22
- package/select/types.d.ts +2 -2
- package/sidenav/Sidenav.js +8 -10
- package/sidenav/Sidenav.stories.tsx +148 -46
- package/slider/Slider.d.ts +2 -2
- package/slider/Slider.js +9 -8
- package/slider/Slider.stories.tsx +57 -0
- package/slider/types.d.ts +4 -0
- package/spinner/Spinner.js +2 -2
- package/spinner/Spinner.stories.jsx +27 -1
- package/switch/Switch.d.ts +3 -3
- package/switch/Switch.js +5 -4
- package/switch/Switch.stories.tsx +33 -0
- package/switch/types.d.ts +6 -1
- package/table/Table.stories.jsx +80 -1
- package/table/Table.test.js +1 -1
- package/tabs/Tab.js +3 -5
- package/tabs/Tabs.js +3 -3
- package/tabs/Tabs.stories.tsx +45 -5
- package/tag/Tag.stories.tsx +14 -1
- package/text-input/Suggestion.js +32 -5
- package/text-input/TextInput.js +7 -11
- package/text-input/TextInput.stories.tsx +92 -4
- package/text-input/TextInput.test.js +587 -634
- package/textarea/Textarea.stories.jsx +60 -1
- package/toggle-group/ToggleGroup.stories.tsx +42 -0
- package/utils/FocusLock.d.ts +13 -0
- package/utils/FocusLock.js +139 -0
- package/wizard/Wizard.stories.tsx +20 -0
- package/common/RequiredComponent.js +0 -32
- /package/{tabs-nav → nav-tabs}/NavTabs.d.ts +0 -0
- /package/{tabs-nav → nav-tabs}/NavTabs.test.js +0 -0
- /package/{tabs-nav → nav-tabs}/Tab.d.ts +0 -0
- /package/{tabs-nav → nav-tabs}/types.d.ts +0 -0
- /package/{tabs-nav → nav-tabs}/types.js +0 -0
|
@@ -1,17 +1,31 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { userEvent, within, fireEvent, screen } from "@storybook/testing-library";
|
|
3
3
|
import DxcDateInput from "./DateInput";
|
|
4
|
+
import DxcDatePicker from "./DatePicker";
|
|
5
|
+
import YearPicker from "./YearPicker";
|
|
6
|
+
import Calendar from "./Calendar";
|
|
4
7
|
import Title from "../../.storybook/components/Title";
|
|
5
8
|
import ExampleContainer from "../../.storybook/components/ExampleContainer";
|
|
6
9
|
import { BackgroundColorProvider } from "../BackgroundColorContext";
|
|
7
10
|
import DarkContainer from "../../.storybook/components/DarkSection";
|
|
11
|
+
import dayjs from "dayjs";
|
|
12
|
+
import useTheme from "../useTheme";
|
|
13
|
+
import { ThemeProvider } from "styled-components";
|
|
14
|
+
import { HalstackProvider } from "../HalstackContext";
|
|
8
15
|
|
|
9
16
|
export default {
|
|
10
17
|
title: "Date input",
|
|
11
18
|
component: DxcDateInput,
|
|
12
19
|
};
|
|
13
20
|
|
|
14
|
-
|
|
21
|
+
const opinionatedTheme = {
|
|
22
|
+
dateInput: {
|
|
23
|
+
baseColor: "#5f249f",
|
|
24
|
+
selectedFontColor: "#ffffff",
|
|
25
|
+
},
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
const DateInputChromatic = () => (
|
|
15
29
|
<>
|
|
16
30
|
<ExampleContainer>
|
|
17
31
|
<Title title="Complete date input" theme="light" level={4} />
|
|
@@ -19,7 +33,13 @@ export const Chromatic = () => (
|
|
|
19
33
|
</ExampleContainer>
|
|
20
34
|
<ExampleContainer>
|
|
21
35
|
<Title title="Disabled" theme="light" level={4} />
|
|
22
|
-
<DxcDateInput
|
|
36
|
+
<DxcDateInput
|
|
37
|
+
label="Disabled date input"
|
|
38
|
+
helperText="Help message"
|
|
39
|
+
defaultValue="06-04-2007"
|
|
40
|
+
clearable
|
|
41
|
+
disabled
|
|
42
|
+
/>
|
|
23
43
|
</ExampleContainer>
|
|
24
44
|
<ExampleContainer>
|
|
25
45
|
<Title title="Invalid" theme="light" level={4} />
|
|
@@ -27,7 +47,7 @@ export const Chromatic = () => (
|
|
|
27
47
|
</ExampleContainer>
|
|
28
48
|
<ExampleContainer>
|
|
29
49
|
<Title title="Relation between icons" theme="light" level={4} />
|
|
30
|
-
<DxcDateInput label="Error date input" error="Error message." defaultValue="06-04-
|
|
50
|
+
<DxcDateInput label="Error date input" error="Error message." defaultValue="06-04-2007" clearable />
|
|
31
51
|
</ExampleContainer>
|
|
32
52
|
<BackgroundColorProvider color="#333333">
|
|
33
53
|
<DarkContainer>
|
|
@@ -38,7 +58,13 @@ export const Chromatic = () => (
|
|
|
38
58
|
</ExampleContainer>
|
|
39
59
|
<ExampleContainer>
|
|
40
60
|
<Title title="Disabled" theme="dark" level={4} />
|
|
41
|
-
<DxcDateInput
|
|
61
|
+
<DxcDateInput
|
|
62
|
+
label="Disabled Date input"
|
|
63
|
+
helperText="Help message"
|
|
64
|
+
defaultValue="06-04-2027"
|
|
65
|
+
clearable
|
|
66
|
+
disabled
|
|
67
|
+
/>
|
|
42
68
|
</ExampleContainer>
|
|
43
69
|
<ExampleContainer>
|
|
44
70
|
<Title title="Invalid" theme="dark" level={4} />
|
|
@@ -46,7 +72,7 @@ export const Chromatic = () => (
|
|
|
46
72
|
</ExampleContainer>
|
|
47
73
|
<ExampleContainer>
|
|
48
74
|
<Title title="Relation between icons" theme="dark" level={4} />
|
|
49
|
-
<DxcDateInput label="Error date input" defaultValue="06-04-
|
|
75
|
+
<DxcDateInput label="Error date input" defaultValue="06-04-2007" error="Error message." clearable />
|
|
50
76
|
</ExampleContainer>
|
|
51
77
|
</DarkContainer>
|
|
52
78
|
</BackgroundColorProvider>
|
|
@@ -92,47 +118,187 @@ export const Chromatic = () => (
|
|
|
92
118
|
<Title title="FillParent size" theme="light" level={4} />
|
|
93
119
|
<DxcDateInput label="FillParent" size="fillParent" />
|
|
94
120
|
</ExampleContainer>
|
|
121
|
+
<ExampleContainer expanded>
|
|
122
|
+
<Title title="Year picker" theme="light" level={4} />
|
|
123
|
+
<DxcDateInput label="Date input" defaultValue="06-04-1905" />
|
|
124
|
+
</ExampleContainer>
|
|
95
125
|
</>
|
|
96
126
|
);
|
|
97
127
|
|
|
98
|
-
const
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
128
|
+
export const Chromatic = DateInputChromatic.bind({});
|
|
129
|
+
Chromatic.play = async ({ canvasElement }) => {
|
|
130
|
+
const canvas = within(canvasElement);
|
|
131
|
+
await userEvent.click(canvas.getAllByRole("combobox")[canvas.getAllByRole("combobox").length - 1]);
|
|
132
|
+
await fireEvent.click(screen.getByText("April 1905"));
|
|
133
|
+
};
|
|
134
|
+
|
|
135
|
+
const DateInputOpinionatedTheme = () => (
|
|
136
|
+
<>
|
|
137
|
+
<Title title="Opinionated theme" theme="light" level={2} />
|
|
138
|
+
<ExampleContainer>
|
|
139
|
+
<Title title="Enabled" theme="light" level={4} />
|
|
140
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
141
|
+
<DxcDateInput
|
|
142
|
+
label="Date input"
|
|
143
|
+
helperText="Help message"
|
|
144
|
+
format="dd/mm/yy"
|
|
145
|
+
placeholder
|
|
146
|
+
optional
|
|
147
|
+
defaultValue="10-10-2022"
|
|
148
|
+
/>
|
|
149
|
+
</HalstackProvider>
|
|
150
|
+
</ExampleContainer>
|
|
151
|
+
<ExampleContainer>
|
|
152
|
+
<Title title="Disabled" theme="light" level={4} />
|
|
153
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
154
|
+
<DxcDateInput label="Date input" helperText="Help message" format="dd/mm/yy" placeholder optional />
|
|
155
|
+
</HalstackProvider>
|
|
156
|
+
</ExampleContainer>
|
|
157
|
+
<ExampleContainer>
|
|
158
|
+
<Title title="Invalid" theme="light" level={4} />
|
|
159
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
160
|
+
<DxcDateInput label="Error date input" error="Error message." placeholder />
|
|
161
|
+
</HalstackProvider>
|
|
162
|
+
</ExampleContainer>
|
|
163
|
+
<ExampleContainer expanded>
|
|
164
|
+
<Title title="Date picker" theme="light" level={4} />
|
|
165
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
166
|
+
<DxcDateInput label="Date input" defaultValue="06-04-1905" />
|
|
167
|
+
</HalstackProvider>
|
|
168
|
+
</ExampleContainer>
|
|
169
|
+
</>
|
|
103
170
|
);
|
|
104
171
|
|
|
105
|
-
export const
|
|
106
|
-
|
|
172
|
+
export const DateInputOpinionated = DateInputOpinionatedTheme.bind({});
|
|
173
|
+
DateInputOpinionated.play = async ({ canvasElement }) => {
|
|
107
174
|
const canvas = within(canvasElement);
|
|
108
|
-
|
|
109
|
-
await userEvent.click(dateBtn);
|
|
110
|
-
await userEvent.tab();
|
|
175
|
+
await userEvent.click(canvas.getAllByRole("combobox")[canvas.getAllByRole("combobox").length - 1]);
|
|
111
176
|
};
|
|
112
177
|
|
|
113
|
-
const
|
|
178
|
+
const YearPickerOpinionatedTheme = () => (
|
|
114
179
|
<ExampleContainer expanded>
|
|
115
|
-
<Title title="
|
|
116
|
-
<
|
|
180
|
+
<Title title="Year picker" theme="light" level={4} />
|
|
181
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
182
|
+
<DxcDateInput label="Date input" defaultValue="06-04-1905" />
|
|
183
|
+
</HalstackProvider>
|
|
117
184
|
</ExampleContainer>
|
|
118
185
|
);
|
|
119
186
|
|
|
120
|
-
export const
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
await
|
|
187
|
+
export const YearPickerOpinionated = YearPickerOpinionatedTheme.bind({});
|
|
188
|
+
YearPickerOpinionated.play = async ({ canvasElement }) => {
|
|
189
|
+
const canvas = within(canvasElement);
|
|
190
|
+
await userEvent.click(canvas.getByRole("combobox"));
|
|
191
|
+
await fireEvent.click(screen.getByText("April 1905"));
|
|
124
192
|
};
|
|
125
193
|
|
|
126
|
-
const
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
194
|
+
const DatePickerButtonStates = () => {
|
|
195
|
+
const colorsTheme: any = useTheme();
|
|
196
|
+
return (
|
|
197
|
+
<>
|
|
198
|
+
<ExampleContainer>
|
|
199
|
+
<Title title="Show date picker over another element with z-index 0" theme="light" level={4} />
|
|
200
|
+
<div
|
|
201
|
+
style={{
|
|
202
|
+
display: "flex",
|
|
203
|
+
flexDirection: "column",
|
|
204
|
+
gap: "20px",
|
|
205
|
+
height: "200px",
|
|
206
|
+
width: "500px",
|
|
207
|
+
marginBottom: "250px",
|
|
208
|
+
padding: "20px",
|
|
209
|
+
border: "1px solid black",
|
|
210
|
+
borderRadius: "4px",
|
|
211
|
+
overflow: "auto",
|
|
212
|
+
zIndex: "1300",
|
|
213
|
+
position: "relative",
|
|
214
|
+
}}
|
|
215
|
+
>
|
|
216
|
+
<DxcDateInput label="From" defaultValue="01-12-1995" />
|
|
217
|
+
<DxcDateInput label="To" />
|
|
218
|
+
<button style={{ zIndex: "1", width: "100px" }}>Submit</button>
|
|
219
|
+
</div>
|
|
220
|
+
</ExampleContainer>
|
|
221
|
+
<ThemeProvider theme={colorsTheme}>
|
|
222
|
+
<ExampleContainer pseudoState="pseudo-focus">
|
|
223
|
+
<Title title="Isolated calendar focused" theme="light" level={4} />
|
|
224
|
+
<DxcDatePicker date={dayjs("06-04-1950", "DD-MM-YYYY")} onDateSelect={() => {}} id="test-calendar" />
|
|
225
|
+
</ExampleContainer>
|
|
226
|
+
<ExampleContainer pseudoState="pseudo-hover">
|
|
227
|
+
<Title title="Isolated calendar hovered" theme="light" level={4} />
|
|
228
|
+
<DxcDatePicker date={dayjs("06-04-1950", "DD-MM-YYYY")} onDateSelect={() => {}} id="test-calendar" />
|
|
229
|
+
</ExampleContainer>
|
|
230
|
+
<ExampleContainer pseudoState="pseudo-active">
|
|
231
|
+
<Title title="Isolated calendar actived" theme="light" level={4} />
|
|
232
|
+
<DxcDatePicker date={dayjs("06-04-1950", "DD-MM-YYYY")} onDateSelect={() => {}} id="test-calendar" />
|
|
233
|
+
</ExampleContainer>
|
|
234
|
+
</ThemeProvider>
|
|
235
|
+
</>
|
|
236
|
+
);
|
|
237
|
+
};
|
|
238
|
+
|
|
239
|
+
export const DatePickerStates = DatePickerButtonStates.bind({});
|
|
240
|
+
DatePickerStates.play = async ({ canvasElement }) => {
|
|
241
|
+
const canvas = within(canvasElement);
|
|
242
|
+
const dateBtn = canvas.getAllByTitle("Open calendar")[0];
|
|
243
|
+
await userEvent.click(dateBtn);
|
|
244
|
+
};
|
|
245
|
+
|
|
246
|
+
export const YearPickerStates = () => {
|
|
247
|
+
const colorsTheme: any = useTheme();
|
|
248
|
+
return (
|
|
249
|
+
<>
|
|
250
|
+
<ThemeProvider theme={colorsTheme}>
|
|
251
|
+
<ExampleContainer pseudoState="pseudo-focus">
|
|
252
|
+
<Title title="Isolated year picker focused" theme="light" level={4} />
|
|
253
|
+
<YearPicker
|
|
254
|
+
selectedDate={dayjs("06-04-1905", "DD-MM-YYYY")}
|
|
255
|
+
onYearSelect={() => {}}
|
|
256
|
+
today={dayjs("1904-04-03", "YYYY-MM-DD")}
|
|
257
|
+
/>
|
|
258
|
+
</ExampleContainer>
|
|
259
|
+
<ExampleContainer pseudoState="pseudo-hover">
|
|
260
|
+
<Title title="Isolated year picker hovered" theme="light" level={4} />
|
|
261
|
+
<YearPicker
|
|
262
|
+
selectedDate={dayjs("06-04-1905", "DD-MM-YYYY")}
|
|
263
|
+
onYearSelect={() => {}}
|
|
264
|
+
today={dayjs("1904-04-03", "YYYY-MM-DD")}
|
|
265
|
+
/>
|
|
266
|
+
</ExampleContainer>
|
|
267
|
+
<ExampleContainer pseudoState="pseudo-active">
|
|
268
|
+
<Title title="Isolated year picker actived" theme="light" level={4} />
|
|
269
|
+
<YearPicker
|
|
270
|
+
selectedDate={dayjs("06-04-1905", "DD-MM-YYYY")}
|
|
271
|
+
onYearSelect={() => {}}
|
|
272
|
+
today={dayjs("1904-04-03", "YYYY-MM-DD")}
|
|
273
|
+
/>
|
|
274
|
+
</ExampleContainer>
|
|
275
|
+
</ThemeProvider>
|
|
276
|
+
</>
|
|
277
|
+
);
|
|
278
|
+
};
|
|
132
279
|
|
|
133
|
-
export const
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
280
|
+
export const DatePickerWithToday = () => {
|
|
281
|
+
const colorsTheme: any = useTheme();
|
|
282
|
+
return (
|
|
283
|
+
<ThemeProvider theme={colorsTheme}>
|
|
284
|
+
<ExampleContainer>
|
|
285
|
+
<Title title="Isolated calendar with today" theme="light" level={4} />
|
|
286
|
+
<Calendar
|
|
287
|
+
selectedDate={dayjs("06-04-1904", "DD-MM-YYYY")}
|
|
288
|
+
today={dayjs("1904-04-03", "YYYY-MM-DD")}
|
|
289
|
+
onInnerDateChange={() => {}}
|
|
290
|
+
onDaySelect={() => {}}
|
|
291
|
+
innerDate={dayjs("06-04-1904", "DD-MM-YYYY")}
|
|
292
|
+
/>
|
|
293
|
+
</ExampleContainer>
|
|
294
|
+
<ExampleContainer>
|
|
295
|
+
<Title title="Isolated year picker with today" theme="light" level={4} />
|
|
296
|
+
<YearPicker
|
|
297
|
+
selectedDate={dayjs("06-04-1905", "DD-MM-YYYY")}
|
|
298
|
+
onYearSelect={() => {}}
|
|
299
|
+
today={dayjs("1904-04-03", "YYYY-MM-DD")}
|
|
300
|
+
/>
|
|
301
|
+
</ExampleContainer>
|
|
302
|
+
</ThemeProvider>
|
|
303
|
+
);
|
|
138
304
|
};
|