@dxc-technology/halstack-react 0.0.0-b2237e2 → 0.0.0-b230d97
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 +55 -50
- package/accordion/Accordion.js +117 -104
- package/accordion/Accordion.stories.tsx +103 -15
- package/accordion/Accordion.test.js +9 -10
- package/accordion/types.d.ts +5 -4
- package/accordion-group/AccordionGroup.js +1 -21
- package/accordion-group/AccordionGroup.stories.tsx +27 -1
- package/accordion-group/AccordionGroup.test.js +20 -45
- package/accordion-group/types.d.ts +10 -3
- package/alert/Alert.js +1 -1
- package/box/Box.js +1 -1
- package/box/types.d.ts +1 -0
- package/bulleted-list/types.d.ts +1 -1
- package/button/Button.js +50 -70
- package/button/Button.stories.tsx +159 -8
- package/button/types.d.ts +7 -7
- package/card/types.d.ts +1 -0
- package/checkbox/Checkbox.d.ts +2 -2
- package/checkbox/Checkbox.js +92 -99
- package/checkbox/Checkbox.stories.tsx +131 -59
- package/checkbox/Checkbox.test.js +93 -16
- package/checkbox/types.d.ts +6 -2
- package/chip/Chip.js +16 -22
- package/chip/Chip.stories.tsx +96 -9
- package/chip/types.d.ts +1 -1
- package/common/variables.js +281 -259
- 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 +137 -38
- 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 +52 -28
- package/dialog/Dialog.stories.tsx +57 -2
- package/dialog/Dialog.test.js +34 -4
- package/dialog/types.d.ts +3 -2
- package/dropdown/Dropdown.d.ts +1 -1
- package/dropdown/Dropdown.js +246 -249
- package/dropdown/Dropdown.stories.tsx +245 -56
- package/dropdown/Dropdown.test.js +504 -108
- package/dropdown/DropdownMenu.d.ts +4 -0
- package/dropdown/DropdownMenu.js +70 -0
- package/dropdown/DropdownMenuItem.d.ts +4 -0
- package/dropdown/DropdownMenuItem.js +81 -0
- package/dropdown/types.d.ts +25 -5
- package/file-input/FileInput.d.ts +2 -2
- package/file-input/FileInput.js +177 -219
- package/file-input/FileInput.stories.tsx +122 -11
- package/file-input/FileInput.test.js +53 -12
- package/file-input/FileItem.d.ts +4 -14
- package/file-input/FileItem.js +38 -63
- package/file-input/types.d.ts +17 -0
- package/flex/Flex.d.ts +1 -1
- package/flex/Flex.js +31 -19
- package/flex/types.d.ts +15 -4
- package/footer/Footer.stories.tsx +99 -1
- package/footer/types.d.ts +2 -1
- package/header/Header.js +87 -87
- package/header/Header.stories.tsx +127 -6
- package/header/Icons.js +2 -2
- package/header/types.d.ts +3 -2
- package/layout/ApplicationLayout.js +3 -3
- package/layout/ApplicationLayout.stories.tsx +1 -0
- package/link/Link.js +1 -1
- package/link/types.d.ts +1 -1
- package/number-input/NumberInput.test.js +43 -7
- package/package.json +16 -21
- package/paginator/Icons.d.ts +5 -0
- package/paginator/Icons.js +16 -28
- package/paginator/Paginator.js +6 -12
- package/paginator/Paginator.stories.tsx +24 -0
- package/paginator/Paginator.test.js +18 -11
- package/password-input/PasswordInput.test.js +13 -12
- package/progress-bar/ProgressBar.d.ts +2 -2
- package/progress-bar/ProgressBar.js +56 -50
- package/progress-bar/ProgressBar.stories.jsx +36 -3
- package/progress-bar/ProgressBar.test.js +67 -22
- package/progress-bar/types.d.ts +3 -4
- package/quick-nav/QuickNav.js +11 -12
- package/quick-nav/QuickNav.stories.tsx +111 -19
- package/radio-group/Radio.d.ts +1 -1
- package/radio-group/Radio.js +43 -28
- package/radio-group/RadioGroup.js +24 -24
- package/radio-group/RadioGroup.stories.tsx +132 -18
- package/radio-group/RadioGroup.test.js +123 -96
- package/radio-group/types.d.ts +2 -2
- package/resultsetTable/Icons.d.ts +7 -0
- package/resultsetTable/Icons.js +51 -0
- package/resultsetTable/ResultsetTable.js +48 -107
- package/resultsetTable/ResultsetTable.stories.tsx +50 -25
- package/resultsetTable/ResultsetTable.test.js +40 -63
- package/resultsetTable/types.d.ts +2 -2
- package/select/Listbox.js +4 -10
- package/select/Option.js +11 -24
- package/select/Select.js +54 -50
- package/select/Select.stories.tsx +494 -149
- package/select/Select.test.js +338 -272
- package/select/types.d.ts +3 -5
- package/sidenav/Sidenav.js +8 -10
- package/sidenav/Sidenav.stories.tsx +148 -46
- package/sidenav/types.d.ts +1 -1
- package/slider/Slider.d.ts +2 -2
- package/slider/Slider.js +120 -95
- package/slider/Slider.stories.tsx +64 -1
- package/slider/Slider.test.js +121 -21
- package/slider/types.d.ts +6 -2
- package/spinner/Spinner.js +2 -2
- package/spinner/Spinner.stories.jsx +27 -1
- package/switch/Switch.d.ts +2 -2
- package/switch/Switch.js +135 -68
- package/switch/Switch.stories.tsx +41 -30
- package/switch/Switch.test.js +144 -17
- package/switch/types.d.ts +6 -2
- package/table/Table.js +1 -1
- package/table/Table.stories.jsx +80 -1
- package/table/Table.test.js +1 -1
- package/tabs/Tab.d.ts +4 -0
- package/tabs/Tab.js +133 -0
- package/tabs/Tabs.js +360 -104
- package/tabs/Tabs.stories.tsx +119 -5
- package/tabs/Tabs.test.js +217 -6
- package/tabs/types.d.ts +15 -5
- package/tabs-nav/NavTabs.js +5 -5
- package/tabs-nav/NavTabs.stories.tsx +8 -6
- package/tabs-nav/Tab.js +8 -12
- package/tabs-nav/types.d.ts +1 -1
- package/tag/Tag.js +1 -1
- package/tag/types.d.ts +1 -1
- package/text-input/Icons.d.ts +8 -0
- package/text-input/Icons.js +60 -0
- package/text-input/Suggestion.js +38 -9
- package/text-input/Suggestions.d.ts +4 -0
- package/text-input/Suggestions.js +134 -0
- package/text-input/TextInput.js +195 -292
- package/text-input/TextInput.stories.tsx +280 -185
- package/text-input/TextInput.test.js +737 -725
- package/text-input/types.d.ts +22 -3
- package/toggle-group/ToggleGroup.stories.tsx +42 -0
- package/toggle-group/types.d.ts +1 -1
- package/wizard/Wizard.stories.tsx +20 -0
- package/wizard/types.d.ts +1 -1
- package/common/RequiredComponent.js +0 -32
package/select/types.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
import React from "react";
|
|
2
2
|
declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
|
|
3
3
|
declare type Margin = {
|
|
4
4
|
top?: Space;
|
|
@@ -6,7 +6,7 @@ declare type Margin = {
|
|
|
6
6
|
left?: Space;
|
|
7
7
|
right?: Space;
|
|
8
8
|
};
|
|
9
|
-
declare type SVG = React.SVGProps<SVGSVGElement>;
|
|
9
|
+
declare type SVG = React.ReactNode & React.SVGProps<SVGSVGElement>;
|
|
10
10
|
declare type OptionGroup = {
|
|
11
11
|
/**
|
|
12
12
|
* Label of the group to be shown in the select's listbox.
|
|
@@ -201,9 +201,7 @@ export declare type ListboxProps = {
|
|
|
201
201
|
optionalItem: Option;
|
|
202
202
|
searchable: boolean;
|
|
203
203
|
handleOptionOnClick: (option: Option) => void;
|
|
204
|
-
styles:
|
|
205
|
-
width: number;
|
|
206
|
-
};
|
|
204
|
+
styles: React.CSSProperties;
|
|
207
205
|
};
|
|
208
206
|
/**
|
|
209
207
|
* Reference to the select component.
|
package/sidenav/Sidenav.js
CHANGED
|
@@ -33,7 +33,7 @@ var _Flex = _interopRequireDefault(require("../flex/Flex"));
|
|
|
33
33
|
|
|
34
34
|
var _Bleed = _interopRequireDefault(require("../bleed/Bleed"));
|
|
35
35
|
|
|
36
|
-
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8
|
|
36
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8;
|
|
37
37
|
|
|
38
38
|
var _excluded = ["href", "children", "newWindow", "selected", "icon", "tabIndex", "onClick"];
|
|
39
39
|
|
|
@@ -138,9 +138,9 @@ var Group = function Group(_ref4) {
|
|
|
138
138
|
return setCollapsed(!collapsed);
|
|
139
139
|
},
|
|
140
140
|
selectedGroup: selectedGroup
|
|
141
|
-
}, /*#__PURE__*/_react["default"].createElement(SidenavContent, null, typeof icon === "string" ? /*#__PURE__*/_react["default"].createElement(
|
|
141
|
+
}, /*#__PURE__*/_react["default"].createElement(SidenavContent, null, typeof icon === "string" ? /*#__PURE__*/_react["default"].createElement("img", {
|
|
142
142
|
src: icon
|
|
143
|
-
}) : icon, title), collapsed ? collapsedIcon : collapsableIcon) : title && /*#__PURE__*/_react["default"].createElement(SidenavGroupTitle, null, typeof icon === "string" ? /*#__PURE__*/_react["default"].createElement(
|
|
143
|
+
}) : icon, title), collapsed ? collapsedIcon : collapsableIcon) : title && /*#__PURE__*/_react["default"].createElement(SidenavGroupTitle, null, typeof icon === "string" ? /*#__PURE__*/_react["default"].createElement("img", {
|
|
144
144
|
src: icon
|
|
145
145
|
}) : icon, title), !collapsed && children);
|
|
146
146
|
};
|
|
@@ -171,7 +171,7 @@ var Link = /*#__PURE__*/(0, _react.forwardRef)(function (_ref5, ref) {
|
|
|
171
171
|
ref: ref,
|
|
172
172
|
tabIndex: tabIndex,
|
|
173
173
|
onClick: handleClick
|
|
174
|
-
}, otherProps), /*#__PURE__*/_react["default"].createElement(SidenavContent, null, typeof icon === "string" ? /*#__PURE__*/_react["default"].createElement(
|
|
174
|
+
}, otherProps), /*#__PURE__*/_react["default"].createElement(SidenavContent, null, typeof icon === "string" ? /*#__PURE__*/_react["default"].createElement("img", {
|
|
175
175
|
src: icon
|
|
176
176
|
}) : icon, children), newWindow && externalLinkIcon);
|
|
177
177
|
});
|
|
@@ -204,7 +204,7 @@ var Divider = _styledComponents["default"].div(_templateObject3 || (_templateObj
|
|
|
204
204
|
|
|
205
205
|
var SidenavGroup = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n width: 100%;\n a {\n padding: 0.5rem 1.2rem 0.5rem 2.25rem;\n }\n"])));
|
|
206
206
|
|
|
207
|
-
var SidenavGroupTitle = _styledComponents["default"].span(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n
|
|
207
|
+
var SidenavGroupTitle = _styledComponents["default"].span(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n width: 100%;\n padding: 0.5rem 1.2rem;\n font-family: ", ";\n font-style: ", ";\n font-weight: ", ";\n font-size: ", ";\n line-height: 18px;\n\n img,\n svg {\n height: 16px;\n width: 16px;\n }\n"])), function (props) {
|
|
208
208
|
return props.theme.groupTitleFontFamily;
|
|
209
209
|
}, function (props) {
|
|
210
210
|
return props.theme.groupTitleFontStyle;
|
|
@@ -214,7 +214,7 @@ var SidenavGroupTitle = _styledComponents["default"].span(_templateObject5 || (_
|
|
|
214
214
|
return props.theme.groupTitleFontSize;
|
|
215
215
|
});
|
|
216
216
|
|
|
217
|
-
var SidenavGroupTitleButton = _styledComponents["default"].button(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n all: unset;\n
|
|
217
|
+
var SidenavGroupTitleButton = _styledComponents["default"].button(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n all: unset;\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n padding: 0.5rem 1.2rem;\n\n font-family: ", ";\n font-style: ", ";\n font-weight: ", ";\n font-size: ", ";\n line-height: 19px;\n\n cursor: pointer;\n\n &:focus-visible {\n outline: 2px solid ", ";\n outline-offset: -2px;\n }\n &:hover {\n ", "\n }\n &:active {\n background-color: ", ";\n color: ", ";\n }\n ", "\n\n svg {\n height: 16px;\n width: 16px;\n }\n"])), function (props) {
|
|
218
218
|
return props.theme.groupTitleFontFamily;
|
|
219
219
|
}, function (props) {
|
|
220
220
|
return props.theme.groupTitleFontStyle;
|
|
@@ -234,7 +234,7 @@ var SidenavGroupTitleButton = _styledComponents["default"].button(_templateObjec
|
|
|
234
234
|
return props.selectedGroup ? "color: ".concat(props.theme.groupTitleSelectedFontColor, "; background: ").concat(props.theme.groupTitleSelectedBackgroundColor, ";") : "color: ".concat(props.theme.groupTitleFontColor, "; background: transparent;");
|
|
235
235
|
});
|
|
236
236
|
|
|
237
|
-
var SidenavLink = _styledComponents["default"].a(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n letter-spacing: ", ";\n
|
|
237
|
+
var SidenavLink = _styledComponents["default"].a(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 0.5rem;\n padding: 0.5rem 1.2rem;\n box-shadow: 0 0 0 2px transparent;\n letter-spacing: ", ";\n text-transform: ", ";\n text-decoration: ", ";\n font-family: ", ";\n font-style: ", ";\n font-weight: ", ";\n font-size: ", ";\n line-height: 19px;\n\n ", "\n\n cursor: pointer;\n\n &:hover {\n ", "\n }\n &:focus {\n outline: 2px solid ", ";\n outline-offset: -2px;\n }\n &:active {\n color: #ffffff;\n background: #4d4d4d;\n outline: 2px solid #0095ff;\n outline-offset: -2px;\n }\n\n svg {\n height: 16px;\n width: 16px;\n }\n"])), function (props) {
|
|
238
238
|
return props.theme.linkFontLetterSpacing;
|
|
239
239
|
}, function (props) {
|
|
240
240
|
return props.theme.linkFontTextTransform;
|
|
@@ -256,9 +256,7 @@ var SidenavLink = _styledComponents["default"].a(_templateObject7 || (_templateO
|
|
|
256
256
|
return props.theme.linkFocusColor;
|
|
257
257
|
});
|
|
258
258
|
|
|
259
|
-
var SidenavContent = _styledComponents["default"].span(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n\n svg {\n
|
|
260
|
-
|
|
261
|
-
var SidenavIcon = _styledComponents["default"].img(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])(["\n width: 16px;\n margin-right: 0.5rem;\n"])));
|
|
259
|
+
var SidenavContent = _styledComponents["default"].span(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n gap: 0.5rem;\n\n img,\n svg {\n height: 16px;\n width: 16px;\n }\n"])));
|
|
262
260
|
|
|
263
261
|
DxcSidenav.Section = Section;
|
|
264
262
|
DxcSidenav.Group = Group;
|
|
@@ -3,6 +3,7 @@ import DxcSidenav from "./Sidenav";
|
|
|
3
3
|
import Title from "../../.storybook/components/Title";
|
|
4
4
|
import ExampleContainer from "../../.storybook/components/ExampleContainer";
|
|
5
5
|
import { userEvent, within } from "@storybook/testing-library";
|
|
6
|
+
import { HalstackProvider } from "../HalstackContext";
|
|
6
7
|
|
|
7
8
|
export default {
|
|
8
9
|
title: "Sidenav",
|
|
@@ -10,9 +11,26 @@ export default {
|
|
|
10
11
|
};
|
|
11
12
|
|
|
12
13
|
const iconSVG = (
|
|
13
|
-
<svg
|
|
14
|
-
|
|
15
|
-
|
|
14
|
+
<svg
|
|
15
|
+
version="1.1"
|
|
16
|
+
id="Capa_1"
|
|
17
|
+
x="0px"
|
|
18
|
+
y="0px"
|
|
19
|
+
width="438.536px"
|
|
20
|
+
height="438.536px"
|
|
21
|
+
viewBox="0 0 438.536 438.536"
|
|
22
|
+
fill="currentColor"
|
|
23
|
+
>
|
|
24
|
+
<g>
|
|
25
|
+
<path
|
|
26
|
+
d="M414.41,24.123C398.333,8.042,378.963,0,356.315,0H82.228C59.58,0,40.21,8.042,24.126,24.123
|
|
27
|
+
C8.045,40.207,0.003,59.576,0.003,82.225v274.084c0,22.647,8.042,42.018,24.123,58.102c16.084,16.084,35.454,24.126,58.102,24.126
|
|
28
|
+
h274.084c22.648,0,42.018-8.042,58.095-24.126c16.084-16.084,24.126-35.454,24.126-58.102V82.225
|
|
29
|
+
C438.532,59.576,430.49,40.204,414.41,24.123z M373.155,225.548h-49.963V406.84h-74.802V225.548H210.99V163.02h37.401v-37.402
|
|
30
|
+
c0-26.838,6.283-47.107,18.843-60.813c12.559-13.706,33.304-20.555,62.242-20.555h49.963v62.526h-31.401
|
|
31
|
+
c-10.663,0-17.467,1.853-20.417,5.568c-2.949,3.711-4.428,10.23-4.428,19.558v31.119h56.534L373.155,225.548z"
|
|
32
|
+
/>
|
|
33
|
+
</g>
|
|
16
34
|
</svg>
|
|
17
35
|
);
|
|
18
36
|
|
|
@@ -20,11 +38,17 @@ const TitleComponent = () => {
|
|
|
20
38
|
return <DxcSidenav.Title>Dxc technology</DxcSidenav.Title>;
|
|
21
39
|
};
|
|
22
40
|
|
|
41
|
+
const opinionatedTheme = {
|
|
42
|
+
sidenav: {
|
|
43
|
+
baseColor: "#f2f2f2",
|
|
44
|
+
},
|
|
45
|
+
};
|
|
46
|
+
|
|
23
47
|
export const Chromatic = () => (
|
|
24
48
|
<>
|
|
25
49
|
<ExampleContainer>
|
|
26
50
|
<Title title="Default sidenav" theme="light" level={4} />
|
|
27
|
-
<DxcSidenav title={<
|
|
51
|
+
<DxcSidenav title={<DxcSidenav.Title>Dxc technology</DxcSidenav.Title>}>
|
|
28
52
|
<DxcSidenav.Section>
|
|
29
53
|
<p>
|
|
30
54
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit. In ullamcorper consectetur mollis. Suspendisse
|
|
@@ -41,12 +65,18 @@ export const Chromatic = () => (
|
|
|
41
65
|
</DxcSidenav.Group>
|
|
42
66
|
</DxcSidenav.Section>
|
|
43
67
|
<DxcSidenav.Section>
|
|
44
|
-
<DxcSidenav.Group
|
|
68
|
+
<DxcSidenav.Group
|
|
69
|
+
collapsable={true}
|
|
70
|
+
title="Section Group"
|
|
71
|
+
icon="https://cdn-icons-png.flaticon.com/512/5039/5039041.png"
|
|
72
|
+
>
|
|
45
73
|
<DxcSidenav.Link selected>Group Link</DxcSidenav.Link>
|
|
46
74
|
<DxcSidenav.Link icon={iconSVG}>Group Link</DxcSidenav.Link>
|
|
47
75
|
</DxcSidenav.Group>
|
|
48
|
-
<DxcSidenav.Link icon=
|
|
49
|
-
|
|
76
|
+
<DxcSidenav.Link icon="https://upload.wikimedia.org/wikipedia/commons/7/73/Flat_tick_icon.svg" newWindow>
|
|
77
|
+
Single Link
|
|
78
|
+
</DxcSidenav.Link>
|
|
79
|
+
<DxcSidenav.Link newWindow>Single Link</DxcSidenav.Link>
|
|
50
80
|
<DxcSidenav.Group collapsable={false} title="Section Group">
|
|
51
81
|
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
52
82
|
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
@@ -55,51 +85,76 @@ export const Chromatic = () => (
|
|
|
55
85
|
</DxcSidenav.Section>
|
|
56
86
|
</DxcSidenav>
|
|
57
87
|
</ExampleContainer>
|
|
88
|
+
<ExampleContainer pseudoState="pseudo-focus">
|
|
89
|
+
<Title title="Focused options sidenav" theme="light" level={4} />
|
|
90
|
+
<DxcSidenav title={<DxcSidenav.Title>Dxc technology</DxcSidenav.Title>}>
|
|
91
|
+
<DxcSidenav.Section>
|
|
92
|
+
<p>
|
|
93
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. In ullamcorper consectetur mollis. Suspendisse
|
|
94
|
+
vitae lacinia libero.
|
|
95
|
+
</p>
|
|
96
|
+
</DxcSidenav.Section>
|
|
97
|
+
<DxcSidenav.Section>
|
|
98
|
+
<DxcSidenav.Link>Single Link</DxcSidenav.Link>
|
|
99
|
+
<DxcSidenav.Group collapsable={true} title="Collapsable Group">
|
|
100
|
+
<DxcSidenav.Link icon="https://cdn-icons-png.flaticon.com/512/5039/5039041.png">Group Link</DxcSidenav.Link>
|
|
101
|
+
</DxcSidenav.Group>
|
|
102
|
+
</DxcSidenav.Section>
|
|
103
|
+
<DxcSidenav.Section>
|
|
104
|
+
<DxcSidenav.Group collapsable={true} title="Collapsable Group">
|
|
105
|
+
<DxcSidenav.Link selected icon={iconSVG}>
|
|
106
|
+
Group Link
|
|
107
|
+
</DxcSidenav.Link>
|
|
108
|
+
</DxcSidenav.Group>
|
|
109
|
+
<DxcSidenav.Group collapsable={false} title="Section Group">
|
|
110
|
+
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
111
|
+
</DxcSidenav.Group>
|
|
112
|
+
</DxcSidenav.Section>
|
|
113
|
+
</DxcSidenav>
|
|
114
|
+
</ExampleContainer>
|
|
115
|
+
<Title title="Opinionated theme" theme="light" level={2} />
|
|
116
|
+
<ExampleContainer>
|
|
117
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
118
|
+
<DxcSidenav title={<TitleComponent />}>
|
|
119
|
+
<DxcSidenav.Section>
|
|
120
|
+
<p>
|
|
121
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. In ullamcorper consectetur mollis. Suspendisse
|
|
122
|
+
vitae lacinia libero.
|
|
123
|
+
</p>
|
|
124
|
+
</DxcSidenav.Section>
|
|
125
|
+
<DxcSidenav.Section>
|
|
126
|
+
<DxcSidenav.Link>Single Link</DxcSidenav.Link>
|
|
127
|
+
<DxcSidenav.Group collapsable={false} title="Single Group" icon={iconSVG}>
|
|
128
|
+
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
129
|
+
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
130
|
+
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
131
|
+
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
132
|
+
</DxcSidenav.Group>
|
|
133
|
+
</DxcSidenav.Section>
|
|
134
|
+
<DxcSidenav.Section>
|
|
135
|
+
<DxcSidenav.Group collapsable={true} title="Section Group" icon={iconSVG}>
|
|
136
|
+
<DxcSidenav.Link selected>Group Link</DxcSidenav.Link>
|
|
137
|
+
<DxcSidenav.Link icon={iconSVG}>Group Link</DxcSidenav.Link>
|
|
138
|
+
</DxcSidenav.Group>
|
|
139
|
+
<DxcSidenav.Link icon={iconSVG}>Single Link</DxcSidenav.Link>
|
|
140
|
+
<DxcSidenav.Link>Single Link</DxcSidenav.Link>
|
|
141
|
+
<DxcSidenav.Group collapsable={false} title="Section Group">
|
|
142
|
+
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
143
|
+
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
144
|
+
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
145
|
+
</DxcSidenav.Group>
|
|
146
|
+
</DxcSidenav.Section>
|
|
147
|
+
</DxcSidenav>
|
|
148
|
+
</HalstackProvider>
|
|
149
|
+
</ExampleContainer>
|
|
58
150
|
</>
|
|
59
151
|
);
|
|
60
152
|
|
|
61
|
-
export const FocusedSidenav = () => (
|
|
62
|
-
<ExampleContainer pseudoState="pseudo-focus">
|
|
63
|
-
<Title title="Default sidenav" theme="light" level={4} />
|
|
64
|
-
<DxcSidenav title={<TitleComponent />}>
|
|
65
|
-
<DxcSidenav.Section>
|
|
66
|
-
<p>
|
|
67
|
-
Lorem ipsum dolor sit amet, consectetur adipiscing elit. In ullamcorper consectetur mollis. Suspendisse vitae
|
|
68
|
-
lacinia libero.
|
|
69
|
-
</p>
|
|
70
|
-
</DxcSidenav.Section>
|
|
71
|
-
<DxcSidenav.Section>
|
|
72
|
-
<DxcSidenav.Link>Single Link</DxcSidenav.Link>
|
|
73
|
-
<DxcSidenav.Link>Single Link</DxcSidenav.Link>
|
|
74
|
-
<DxcSidenav.Group collapsable={true} title="Collapsable Group">
|
|
75
|
-
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
76
|
-
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
77
|
-
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
78
|
-
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
79
|
-
</DxcSidenav.Group>
|
|
80
|
-
</DxcSidenav.Section>
|
|
81
|
-
<DxcSidenav.Section>
|
|
82
|
-
<DxcSidenav.Group collapsable={true} title="Collapsable Group">
|
|
83
|
-
<DxcSidenav.Link selected>Group Link</DxcSidenav.Link>
|
|
84
|
-
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
85
|
-
</DxcSidenav.Group>
|
|
86
|
-
<DxcSidenav.Link>Single Link</DxcSidenav.Link>
|
|
87
|
-
<DxcSidenav.Link>Single Link</DxcSidenav.Link>
|
|
88
|
-
<DxcSidenav.Group collapsable={false} title="Section Group">
|
|
89
|
-
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
90
|
-
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
91
|
-
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
92
|
-
</DxcSidenav.Group>
|
|
93
|
-
</DxcSidenav.Section>
|
|
94
|
-
</DxcSidenav>
|
|
95
|
-
</ExampleContainer>
|
|
96
|
-
);
|
|
97
|
-
|
|
98
153
|
const CollapsedGroup = () => (
|
|
99
154
|
<>
|
|
100
155
|
<ExampleContainer>
|
|
101
156
|
<Title title="Default sidenav" theme="light" level={4} />
|
|
102
|
-
<DxcSidenav title={<
|
|
157
|
+
<DxcSidenav title={<DxcSidenav.Title>Dxc technology</DxcSidenav.Title>}>
|
|
103
158
|
<DxcSidenav.Section>
|
|
104
159
|
<DxcSidenav.Group collapsable={true} title="Collapsable Group" icon={iconSVG}>
|
|
105
160
|
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
@@ -127,7 +182,7 @@ const CollapsedGroup = () => (
|
|
|
127
182
|
const HoverSidenav = () => (
|
|
128
183
|
<ExampleContainer pseudoState="pseudo-hover">
|
|
129
184
|
<Title title="Default sidenav" theme="light" level={4} />
|
|
130
|
-
<DxcSidenav title={<
|
|
185
|
+
<DxcSidenav title={<DxcSidenav.Title>Dxc technology</DxcSidenav.Title>}>
|
|
131
186
|
<DxcSidenav.Section>
|
|
132
187
|
<DxcSidenav.Link>Single Link</DxcSidenav.Link>
|
|
133
188
|
<DxcSidenav.Link>Single Link</DxcSidenav.Link>
|
|
@@ -161,6 +216,44 @@ const HoverSidenav = () => (
|
|
|
161
216
|
</ExampleContainer>
|
|
162
217
|
);
|
|
163
218
|
|
|
219
|
+
const HoverSidenavOpinionated = () => (
|
|
220
|
+
<ExampleContainer pseudoState="pseudo-hover">
|
|
221
|
+
<Title title="Default sidenav" theme="light" level={4} />
|
|
222
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
223
|
+
<DxcSidenav title={<DxcSidenav.Title>Dxc technology</DxcSidenav.Title>}>
|
|
224
|
+
<DxcSidenav.Section>
|
|
225
|
+
<DxcSidenav.Link>Single Link</DxcSidenav.Link>
|
|
226
|
+
<DxcSidenav.Link>Single Link</DxcSidenav.Link>
|
|
227
|
+
<DxcSidenav.Group collapsable={true} title="Collapsable Group">
|
|
228
|
+
<DxcSidenav.Link selected>Group Link</DxcSidenav.Link>
|
|
229
|
+
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
230
|
+
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
231
|
+
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
232
|
+
</DxcSidenav.Group>
|
|
233
|
+
</DxcSidenav.Section>
|
|
234
|
+
<DxcSidenav.Section>
|
|
235
|
+
<DxcSidenav.Group collapsable={true} title="Not Collapsed Group">
|
|
236
|
+
<DxcSidenav.Link selected>Group Link</DxcSidenav.Link>
|
|
237
|
+
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
238
|
+
</DxcSidenav.Group>
|
|
239
|
+
<DxcSidenav.Link>Single Link</DxcSidenav.Link>
|
|
240
|
+
<DxcSidenav.Link>Single Link</DxcSidenav.Link>
|
|
241
|
+
<DxcSidenav.Group collapsable={true} title="Collapsable Group">
|
|
242
|
+
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
243
|
+
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
244
|
+
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
245
|
+
</DxcSidenav.Group>
|
|
246
|
+
<DxcSidenav.Group collapsable={true} title="Collapsable Group">
|
|
247
|
+
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
248
|
+
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
249
|
+
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
250
|
+
</DxcSidenav.Group>
|
|
251
|
+
</DxcSidenav.Section>
|
|
252
|
+
</DxcSidenav>
|
|
253
|
+
</HalstackProvider>
|
|
254
|
+
</ExampleContainer>
|
|
255
|
+
);
|
|
256
|
+
|
|
164
257
|
export const CollapseGroup = CollapsedGroup.bind({});
|
|
165
258
|
CollapseGroup.play = async ({ canvasElement }) => {
|
|
166
259
|
const canvas = within(canvasElement);
|
|
@@ -178,3 +271,12 @@ CollapseHoverGroup.play = async ({ canvasElement }) => {
|
|
|
178
271
|
userEvent.click(group);
|
|
179
272
|
});
|
|
180
273
|
};
|
|
274
|
+
|
|
275
|
+
export const CollapseHoverGroupOpinionated = HoverSidenavOpinionated.bind({});
|
|
276
|
+
CollapseHoverGroupOpinionated.play = async ({ canvasElement }) => {
|
|
277
|
+
const canvas = within(canvasElement);
|
|
278
|
+
const collapsableGroups = canvas.getAllByText("Collapsable Group");
|
|
279
|
+
collapsableGroups.forEach((group) => {
|
|
280
|
+
userEvent.click(group);
|
|
281
|
+
});
|
|
282
|
+
};
|
package/sidenav/types.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
declare type SVG = React.SVGProps<SVGSVGElement>;
|
|
2
|
+
declare type SVG = React.ReactNode & React.SVGProps<SVGSVGElement>;
|
|
3
3
|
declare type SidenavPropsType = {
|
|
4
4
|
/**
|
|
5
5
|
* The area inside the sidenav. This area can be used to render the content inside the sidenav.
|
package/slider/Slider.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
import React from "react";
|
|
2
2
|
import SliderPropsType from "./types";
|
|
3
|
-
declare const DxcSlider:
|
|
3
|
+
declare const DxcSlider: React.ForwardRefExoticComponent<SliderPropsType & React.RefAttributes<HTMLDivElement>>;
|
|
4
4
|
export default DxcSlider;
|