@dxc-technology/halstack-react 0.0.0-c18d61a → 0.0.0-c1a6e05
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 +2 -2
- package/BackgroundColorContext.js +1 -1
- package/HalstackContext.d.ts +1329 -5
- package/HalstackContext.js +117 -77
- package/accordion/Accordion.js +13 -24
- package/accordion/Accordion.stories.tsx +102 -13
- package/accordion/Accordion.test.js +1 -1
- package/accordion/types.d.ts +3 -3
- package/accordion-group/AccordionGroup.d.ts +4 -3
- package/accordion-group/AccordionGroup.js +23 -44
- package/accordion-group/AccordionGroup.test.js +1 -1
- package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
- package/accordion-group/AccordionGroupAccordion.js +43 -0
- package/accordion-group/types.d.ts +2 -2
- package/alert/Alert.js +4 -8
- package/alert/Alert.stories.tsx +28 -0
- package/alert/Alert.test.js +1 -1
- package/bleed/Bleed.stories.tsx +1 -0
- package/box/Box.js +3 -5
- package/box/Box.stories.tsx +15 -0
- package/box/Box.test.js +1 -1
- package/bulleted-list/BulletedList.js +4 -2
- package/bulleted-list/BulletedList.stories.tsx +7 -1
- package/bulleted-list/types.d.ts +31 -4
- package/button/Button.js +13 -16
- package/button/Button.stories.tsx +151 -9
- package/button/Button.test.js +1 -1
- package/button/types.d.ts +3 -3
- package/card/Card.js +12 -13
- package/card/Card.stories.tsx +12 -13
- package/card/Card.test.js +1 -1
- package/checkbox/Checkbox.d.ts +2 -2
- package/checkbox/Checkbox.js +18 -17
- package/checkbox/Checkbox.stories.tsx +131 -59
- package/checkbox/Checkbox.test.js +1 -1
- package/checkbox/types.d.ts +6 -2
- package/chip/Chip.js +28 -49
- package/chip/Chip.stories.tsx +121 -26
- package/chip/Chip.test.js +3 -5
- package/common/OpenSans.css +68 -80
- package/common/coreTokens.d.ts +146 -0
- package/common/coreTokens.js +167 -0
- package/common/utils.d.ts +1 -0
- package/common/utils.js +4 -4
- package/common/variables.d.ts +1482 -0
- package/common/variables.js +981 -1129
- 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 +61 -74
- package/dialog/Dialog.stories.tsx +211 -159
- package/dialog/Dialog.test.js +302 -3
- package/dialog/types.d.ts +2 -2
- package/dropdown/Dropdown.js +37 -37
- package/dropdown/Dropdown.stories.tsx +210 -84
- package/dropdown/Dropdown.test.js +20 -24
- package/dropdown/DropdownMenu.js +12 -18
- package/dropdown/DropdownMenuItem.js +4 -17
- package/dropdown/types.d.ts +3 -3
- package/file-input/FileInput.d.ts +2 -2
- package/file-input/FileInput.js +28 -52
- package/file-input/FileInput.stories.tsx +96 -17
- package/file-input/FileInput.test.js +14 -55
- package/file-input/FileItem.d.ts +2 -12
- package/file-input/FileItem.js +29 -41
- package/file-input/types.d.ts +17 -0
- package/flex/Flex.js +4 -2
- package/flex/Flex.stories.tsx +35 -26
- package/flex/types.d.ts +70 -5
- package/footer/Footer.js +6 -8
- package/footer/Footer.stories.tsx +91 -0
- package/footer/Footer.test.js +14 -26
- package/grid/Grid.d.ts +7 -0
- package/grid/Grid.js +91 -0
- package/grid/Grid.stories.tsx +219 -0
- package/grid/types.d.ts +115 -0
- package/header/Header.d.ts +3 -2
- package/header/Header.js +21 -23
- package/header/Header.stories.tsx +149 -6
- package/header/Header.test.js +2 -2
- package/header/types.d.ts +2 -2
- package/heading/Heading.js +1 -1
- package/heading/Heading.test.js +1 -1
- package/inset/Inset.stories.tsx +2 -1
- package/layout/ApplicationLayout.d.ts +3 -3
- package/layout/ApplicationLayout.js +1 -1
- package/layout/types.d.ts +2 -3
- package/link/Link.js +4 -4
- package/link/Link.stories.tsx +60 -0
- package/link/Link.test.js +2 -4
- package/link/types.d.ts +2 -2
- package/main.d.ts +3 -2
- package/main.js +9 -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}/NavTabs.test.js +1 -1
- package/{tabs-nav → nav-tabs}/Tab.js +37 -17
- package/nav-tabs/types.js +5 -0
- package/number-input/NumberInput.test.js +6 -7
- package/package.json +8 -13
- package/paginator/Icons.d.ts +5 -0
- package/paginator/Icons.js +16 -28
- package/paginator/Paginator.js +6 -14
- package/paginator/Paginator.stories.tsx +24 -0
- package/paginator/Paginator.test.js +44 -47
- package/paragraph/Paragraph.d.ts +3 -4
- package/paragraph/Paragraph.js +5 -5
- package/password-input/PasswordInput.test.js +1 -1
- package/progress-bar/ProgressBar.d.ts +2 -2
- package/progress-bar/ProgressBar.js +5 -5
- package/progress-bar/ProgressBar.stories.jsx +35 -2
- package/progress-bar/ProgressBar.test.js +1 -1
- package/progress-bar/types.d.ts +4 -3
- package/quick-nav/QuickNav.stories.tsx +14 -0
- package/radio-group/Radio.js +10 -10
- package/radio-group/RadioGroup.js +8 -10
- package/radio-group/RadioGroup.stories.tsx +131 -18
- package/radio-group/RadioGroup.test.js +1 -1
- package/resultsetTable/Icons.d.ts +7 -0
- package/resultsetTable/Icons.js +51 -0
- package/resultsetTable/ResultsetTable.js +49 -106
- package/resultsetTable/ResultsetTable.stories.tsx +50 -25
- package/resultsetTable/ResultsetTable.test.js +41 -64
- package/resultsetTable/types.d.ts +1 -1
- package/select/Listbox.d.ts +1 -1
- package/select/Listbox.js +5 -34
- package/select/Option.js +11 -24
- package/select/Select.js +56 -35
- package/select/Select.stories.tsx +494 -150
- package/select/Select.test.js +76 -81
- package/select/types.d.ts +2 -2
- package/sidenav/Icons.d.ts +7 -0
- package/sidenav/Icons.js +51 -0
- package/sidenav/Sidenav.d.ts +2 -2
- package/sidenav/Sidenav.js +66 -96
- package/sidenav/Sidenav.stories.tsx +165 -63
- package/sidenav/types.d.ts +21 -18
- package/slider/Slider.d.ts +2 -2
- package/slider/Slider.js +11 -11
- package/slider/Slider.stories.tsx +57 -0
- package/slider/Slider.test.js +1 -1
- package/slider/types.d.ts +6 -2
- package/spinner/Spinner.js +17 -23
- package/spinner/Spinner.stories.jsx +53 -27
- package/spinner/Spinner.test.js +1 -1
- package/switch/Switch.d.ts +3 -3
- package/switch/Switch.js +7 -6
- package/switch/Switch.stories.tsx +33 -0
- package/switch/Switch.test.js +1 -1
- package/switch/types.d.ts +8 -3
- package/table/Table.js +2 -2
- package/table/Table.stories.jsx +80 -1
- package/table/Table.test.js +2 -2
- package/tabs/Tab.js +12 -15
- package/tabs/Tabs.js +11 -17
- package/tabs/Tabs.stories.tsx +45 -5
- package/tabs/Tabs.test.js +4 -5
- package/tabs/types.d.ts +2 -2
- package/tag/Tag.js +7 -9
- package/tag/Tag.stories.tsx +14 -1
- package/tag/Tag.test.js +1 -1
- package/text-input/Suggestion.js +34 -7
- package/text-input/TextInput.js +11 -15
- package/text-input/TextInput.stories.tsx +93 -5
- package/text-input/TextInput.test.js +587 -635
- package/textarea/Textarea.js +3 -4
- package/textarea/Textarea.stories.jsx +60 -1
- package/textarea/Textarea.test.js +2 -4
- package/toggle-group/ToggleGroup.d.ts +2 -2
- package/toggle-group/ToggleGroup.js +7 -4
- package/toggle-group/ToggleGroup.stories.tsx +42 -0
- package/toggle-group/ToggleGroup.test.js +1 -1
- package/toggle-group/types.d.ts +1 -1
- package/typography/Typography.d.ts +2 -2
- package/typography/Typography.js +14 -113
- package/typography/Typography.stories.tsx +1 -1
- package/useTheme.d.ts +1234 -1
- package/useTheme.js +1 -1
- package/useTranslatedLabels.d.ts +84 -1
- package/utils/BaseTypography.d.ts +21 -0
- package/utils/BaseTypography.js +108 -0
- package/utils/FocusLock.d.ts +13 -0
- package/utils/FocusLock.js +138 -0
- package/wizard/Wizard.js +2 -2
- package/wizard/Wizard.stories.tsx +20 -0
- package/wizard/Wizard.test.js +1 -1
- package/wizard/types.d.ts +5 -6
- package/common/RequiredComponent.js +0 -32
- /package/{tabs-nav → grid}/types.js +0 -0
- /package/{tabs-nav → nav-tabs}/NavTabs.d.ts +0 -0
- /package/{tabs-nav → nav-tabs}/Tab.d.ts +0 -0
- /package/{tabs-nav → nav-tabs}/types.d.ts +0 -0
package/sidenav/Sidenav.js
CHANGED
|
@@ -21,7 +21,7 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
21
21
|
|
|
22
22
|
var _styledComponents = _interopRequireWildcard(require("styled-components"));
|
|
23
23
|
|
|
24
|
-
var _variables = require("../common/variables
|
|
24
|
+
var _variables = require("../common/variables");
|
|
25
25
|
|
|
26
26
|
var _SidenavContext = require("../layout/SidenavContext");
|
|
27
27
|
|
|
@@ -33,56 +33,19 @@ var _Flex = _interopRequireDefault(require("../flex/Flex"));
|
|
|
33
33
|
|
|
34
34
|
var _Bleed = _interopRequireDefault(require("../bleed/Bleed"));
|
|
35
35
|
|
|
36
|
-
var
|
|
36
|
+
var _Icons = _interopRequireDefault(require("./Icons"));
|
|
37
37
|
|
|
38
|
-
var
|
|
38
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7;
|
|
39
|
+
|
|
40
|
+
var _excluded = ["href", "newWindow", "selected", "icon", "onClick", "tabIndex", "children"];
|
|
39
41
|
|
|
40
42
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
41
43
|
|
|
42
44
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
43
45
|
|
|
44
|
-
var collapsedIcon = /*#__PURE__*/_react["default"].createElement("svg", {
|
|
45
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
46
|
-
height: "24px",
|
|
47
|
-
viewBox: "0 0 24 24",
|
|
48
|
-
width: "24px",
|
|
49
|
-
fill: "currentColor"
|
|
50
|
-
}, /*#__PURE__*/_react["default"].createElement("path", {
|
|
51
|
-
d: "M0 0h24v24H0z",
|
|
52
|
-
fill: "none"
|
|
53
|
-
}), /*#__PURE__*/_react["default"].createElement("path", {
|
|
54
|
-
d: "M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6 6-6z"
|
|
55
|
-
}));
|
|
56
|
-
|
|
57
|
-
var collapsableIcon = /*#__PURE__*/_react["default"].createElement("svg", {
|
|
58
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
59
|
-
height: "24px",
|
|
60
|
-
viewBox: "0 0 24 24",
|
|
61
|
-
width: "24px",
|
|
62
|
-
fill: "currentColor"
|
|
63
|
-
}, /*#__PURE__*/_react["default"].createElement("path", {
|
|
64
|
-
d: "M0 0h24v24H0z",
|
|
65
|
-
fill: "none"
|
|
66
|
-
}), /*#__PURE__*/_react["default"].createElement("path", {
|
|
67
|
-
d: "M12 8l-6 6 1.41 1.41L12 10.83l4.59 4.58L18 14z"
|
|
68
|
-
}));
|
|
69
|
-
|
|
70
|
-
var externalLinkIcon = /*#__PURE__*/_react["default"].createElement("svg", {
|
|
71
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
72
|
-
height: "24",
|
|
73
|
-
viewBox: "0 0 24 24",
|
|
74
|
-
width: "24",
|
|
75
|
-
fill: "currentColor"
|
|
76
|
-
}, /*#__PURE__*/_react["default"].createElement("path", {
|
|
77
|
-
d: "M0 0h24v24H0z",
|
|
78
|
-
fill: "none"
|
|
79
|
-
}), /*#__PURE__*/_react["default"].createElement("path", {
|
|
80
|
-
d: "M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"
|
|
81
|
-
}));
|
|
82
|
-
|
|
83
46
|
var DxcSidenav = function DxcSidenav(_ref) {
|
|
84
|
-
var
|
|
85
|
-
|
|
47
|
+
var title = _ref.title,
|
|
48
|
+
children = _ref.children;
|
|
86
49
|
var colorsTheme = (0, _useTheme["default"])();
|
|
87
50
|
return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
|
|
88
51
|
theme: colorsTheme.sidenav
|
|
@@ -91,9 +54,7 @@ var DxcSidenav = function DxcSidenav(_ref) {
|
|
|
91
54
|
}, title, /*#__PURE__*/_react["default"].createElement(_Flex["default"], {
|
|
92
55
|
direction: "column",
|
|
93
56
|
gap: "1rem"
|
|
94
|
-
},
|
|
95
|
-
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, child, index !== _react["default"].Children.count(children) - 1 && /*#__PURE__*/_react["default"].createElement(Divider, null));
|
|
96
|
-
})))));
|
|
57
|
+
}, children))));
|
|
97
58
|
};
|
|
98
59
|
|
|
99
60
|
var Title = function Title(_ref2) {
|
|
@@ -105,58 +66,63 @@ var Title = function Title(_ref2) {
|
|
|
105
66
|
|
|
106
67
|
var Section = function Section(_ref3) {
|
|
107
68
|
var children = _ref3.children;
|
|
108
|
-
return /*#__PURE__*/_react["default"].createElement(_Bleed["default"], {
|
|
69
|
+
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_Bleed["default"], {
|
|
109
70
|
horizontal: "1rem"
|
|
110
71
|
}, /*#__PURE__*/_react["default"].createElement(_Flex["default"], {
|
|
111
72
|
direction: "column"
|
|
112
|
-
}, children));
|
|
73
|
+
}, children)), /*#__PURE__*/_react["default"].createElement(Divider, null));
|
|
113
74
|
};
|
|
114
75
|
|
|
76
|
+
var GroupContext = /*#__PURE__*/_react["default"].createContext(null);
|
|
77
|
+
|
|
115
78
|
var Group = function Group(_ref4) {
|
|
116
|
-
var
|
|
117
|
-
title = _ref4.title,
|
|
79
|
+
var title = _ref4.title,
|
|
118
80
|
_ref4$collapsable = _ref4.collapsable,
|
|
119
81
|
collapsable = _ref4$collapsable === void 0 ? false : _ref4$collapsable,
|
|
120
|
-
icon = _ref4.icon
|
|
82
|
+
icon = _ref4.icon,
|
|
83
|
+
children = _ref4.children;
|
|
121
84
|
|
|
122
85
|
var _useState = (0, _react.useState)(false),
|
|
123
86
|
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
124
87
|
collapsed = _useState2[0],
|
|
125
88
|
setCollapsed = _useState2[1];
|
|
126
89
|
|
|
127
|
-
var
|
|
128
|
-
|
|
129
|
-
|
|
90
|
+
var _useState3 = (0, _react.useState)(false),
|
|
91
|
+
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
92
|
+
isSelected = _useState4[0],
|
|
93
|
+
changeIsSelected = _useState4[1];
|
|
130
94
|
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
}, [
|
|
134
|
-
return /*#__PURE__*/_react["default"].createElement(SidenavGroup, null, collapsable && title ? /*#__PURE__*/_react["default"].createElement(SidenavGroupTitleButton, {
|
|
135
|
-
role: "button",
|
|
95
|
+
return /*#__PURE__*/_react["default"].createElement(GroupContext.Provider, {
|
|
96
|
+
value: changeIsSelected
|
|
97
|
+
}, /*#__PURE__*/_react["default"].createElement(SidenavGroup, null, collapsable && title ? /*#__PURE__*/_react["default"].createElement(SidenavGroupTitleButton, {
|
|
136
98
|
"aria-expanded": !collapsed,
|
|
137
99
|
onClick: function onClick() {
|
|
138
100
|
return setCollapsed(!collapsed);
|
|
139
101
|
},
|
|
140
|
-
selectedGroup:
|
|
141
|
-
}, /*#__PURE__*/_react["default"].createElement(
|
|
102
|
+
selectedGroup: collapsed && isSelected
|
|
103
|
+
}, /*#__PURE__*/_react["default"].createElement(_Flex["default"], {
|
|
104
|
+
alignItems: "center",
|
|
105
|
+
gap: "0.5rem"
|
|
106
|
+
}, typeof icon === "string" ? /*#__PURE__*/_react["default"].createElement("img", {
|
|
142
107
|
src: icon
|
|
143
|
-
}) : icon, title), collapsed ? collapsedIcon : collapsableIcon) : title && /*#__PURE__*/_react["default"].createElement(SidenavGroupTitle, null, typeof icon === "string" ? /*#__PURE__*/_react["default"].createElement(
|
|
108
|
+
}) : icon, title), collapsed ? _Icons["default"].collapsedIcon : _Icons["default"].collapsableIcon) : title && /*#__PURE__*/_react["default"].createElement(SidenavGroupTitle, null, typeof icon === "string" ? /*#__PURE__*/_react["default"].createElement("img", {
|
|
144
109
|
src: icon
|
|
145
|
-
}) : icon, title), !collapsed && children);
|
|
110
|
+
}) : icon, title), !collapsed && children));
|
|
146
111
|
};
|
|
147
112
|
|
|
148
113
|
var Link = /*#__PURE__*/(0, _react.forwardRef)(function (_ref5, ref) {
|
|
149
114
|
var href = _ref5.href,
|
|
150
|
-
children = _ref5.children,
|
|
151
115
|
_ref5$newWindow = _ref5.newWindow,
|
|
152
116
|
newWindow = _ref5$newWindow === void 0 ? false : _ref5$newWindow,
|
|
153
117
|
_ref5$selected = _ref5.selected,
|
|
154
118
|
selected = _ref5$selected === void 0 ? false : _ref5$selected,
|
|
155
119
|
icon = _ref5.icon,
|
|
120
|
+
onClick = _ref5.onClick,
|
|
156
121
|
_ref5$tabIndex = _ref5.tabIndex,
|
|
157
122
|
tabIndex = _ref5$tabIndex === void 0 ? 0 : _ref5$tabIndex,
|
|
158
|
-
|
|
123
|
+
children = _ref5.children,
|
|
159
124
|
otherProps = (0, _objectWithoutProperties2["default"])(_ref5, _excluded);
|
|
125
|
+
var changeIsGroupSelected = (0, _react.useContext)(GroupContext);
|
|
160
126
|
var setIsSidenavVisibleResponsive = (0, _SidenavContext.useResponsiveSidenavVisibility)();
|
|
161
127
|
|
|
162
128
|
var handleClick = function handleClick($event) {
|
|
@@ -164,6 +130,11 @@ var Link = /*#__PURE__*/(0, _react.forwardRef)(function (_ref5, ref) {
|
|
|
164
130
|
setIsSidenavVisibleResponsive === null || setIsSidenavVisibleResponsive === void 0 ? void 0 : setIsSidenavVisibleResponsive(false);
|
|
165
131
|
};
|
|
166
132
|
|
|
133
|
+
(0, _react.useEffect)(function () {
|
|
134
|
+
changeIsGroupSelected === null || changeIsGroupSelected === void 0 ? void 0 : changeIsGroupSelected(function (isGroupSelected) {
|
|
135
|
+
return !isGroupSelected ? selected : isGroupSelected;
|
|
136
|
+
});
|
|
137
|
+
}, [selected, changeIsGroupSelected]);
|
|
167
138
|
return /*#__PURE__*/_react["default"].createElement(SidenavLink, (0, _extends2["default"])({
|
|
168
139
|
selected: selected,
|
|
169
140
|
href: href ? href : undefined,
|
|
@@ -171,20 +142,23 @@ var Link = /*#__PURE__*/(0, _react.forwardRef)(function (_ref5, ref) {
|
|
|
171
142
|
ref: ref,
|
|
172
143
|
tabIndex: tabIndex,
|
|
173
144
|
onClick: handleClick
|
|
174
|
-
}, otherProps), /*#__PURE__*/_react["default"].createElement(
|
|
145
|
+
}, otherProps), /*#__PURE__*/_react["default"].createElement(_Flex["default"], {
|
|
146
|
+
alignItems: "center",
|
|
147
|
+
gap: "0.5rem"
|
|
148
|
+
}, typeof icon === "string" ? /*#__PURE__*/_react["default"].createElement("img", {
|
|
175
149
|
src: icon
|
|
176
|
-
}) : icon, children), newWindow && externalLinkIcon);
|
|
150
|
+
}) : icon, children), newWindow && _Icons["default"].externalLinkIcon);
|
|
177
151
|
});
|
|
178
152
|
|
|
179
|
-
var SidenavContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n
|
|
153
|
+
var SidenavContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n width: 280px;\n @media (max-width: ", "rem) {\n width: 100vw;\n }\n padding: 2rem 1rem;\n background-color: ", ";\n\n overflow-y: auto;\n overflow-x: hidden;\n ::-webkit-scrollbar {\n width: 2px;\n }\n ::-webkit-scrollbar-track {\n background-color: ", ";\n border-radius: 3px;\n }\n ::-webkit-scrollbar-thumb {\n background-color: ", ";\n border-radius: 3px;\n }\n"])), _variables.responsiveSizes.medium, function (props) {
|
|
180
154
|
return props.theme.backgroundColor;
|
|
181
|
-
},
|
|
155
|
+
}, function (props) {
|
|
182
156
|
return props.theme.scrollBarTrackColor;
|
|
183
157
|
}, function (props) {
|
|
184
158
|
return props.theme.scrollBarThumbColor;
|
|
185
159
|
});
|
|
186
160
|
|
|
187
|
-
var SidenavTitle = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n font-family: ", ";\n font-style: ", ";\n font-weight: ", ";\n font-size: ", ";\n
|
|
161
|
+
var SidenavTitle = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n padding: 0.5rem 1.2rem;\n font-family: ", ";\n font-style: ", ";\n font-weight: ", ";\n font-size: ", ";\n color: ", ";\n letter-spacing: ", ";\n text-transform: ", ";\n"])), function (props) {
|
|
188
162
|
return props.theme.titleFontFamily;
|
|
189
163
|
}, function (props) {
|
|
190
164
|
return props.theme.titleFontStyle;
|
|
@@ -194,17 +168,17 @@ var SidenavTitle = _styledComponents["default"].div(_templateObject2 || (_templa
|
|
|
194
168
|
return props.theme.titleFontSize;
|
|
195
169
|
}, function (props) {
|
|
196
170
|
return props.theme.titleFontColor;
|
|
197
|
-
}, function (props) {
|
|
198
|
-
return props.theme.titleFontTextTransform;
|
|
199
171
|
}, function (props) {
|
|
200
172
|
return props.theme.titleFontLetterSpacing;
|
|
173
|
+
}, function (props) {
|
|
174
|
+
return props.theme.titleFontTextTransform;
|
|
201
175
|
});
|
|
202
176
|
|
|
203
|
-
var Divider = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n width: 100%;\n height: 1px;\n background-color: #999999;\n"])));
|
|
177
|
+
var Divider = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n width: 100%;\n height: 1px;\n background-color: #999999;\n\n &:last-child {\n display: none;\n }\n"])));
|
|
204
178
|
|
|
205
|
-
var SidenavGroup = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n
|
|
179
|
+
var SidenavGroup = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n a {\n padding: 0.5rem 1.2rem 0.5rem 2.25rem;\n }\n"])));
|
|
206
180
|
|
|
207
|
-
var SidenavGroupTitle = _styledComponents["default"].span(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n
|
|
181
|
+
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 padding: 0.5rem 1.2rem;\n font-family: ", ";\n font-style: ", ";\n font-weight: ", ";\n font-size: ", ";\n\n img,\n svg {\n height: 16px;\n width: 16px;\n }\n"])), function (props) {
|
|
208
182
|
return props.theme.groupTitleFontFamily;
|
|
209
183
|
}, function (props) {
|
|
210
184
|
return props.theme.groupTitleFontStyle;
|
|
@@ -214,7 +188,7 @@ var SidenavGroupTitle = _styledComponents["default"].span(_templateObject5 || (_
|
|
|
214
188
|
return props.theme.groupTitleFontSize;
|
|
215
189
|
});
|
|
216
190
|
|
|
217
|
-
var SidenavGroupTitleButton = _styledComponents["default"].button(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n all: unset;\n
|
|
191
|
+
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 font-family: ", ";\n font-style: ", ";\n font-weight: ", ";\n font-size: ", ";\n cursor: pointer;\n\n ", "\n\n &:focus, &:focus-visible {\n outline: 2px solid ", ";\n outline-offset: -2px;\n }\n &:hover {\n ", "\n }\n &:active {\n color: #fff;\n background-color: ", ";\n }\n\n img,\n svg {\n height: 16px;\n width: 16px;\n }\n"])), function (props) {
|
|
218
192
|
return props.theme.groupTitleFontFamily;
|
|
219
193
|
}, function (props) {
|
|
220
194
|
return props.theme.groupTitleFontStyle;
|
|
@@ -223,24 +197,16 @@ var SidenavGroupTitleButton = _styledComponents["default"].button(_templateObjec
|
|
|
223
197
|
}, function (props) {
|
|
224
198
|
return props.theme.groupTitleFontSize;
|
|
225
199
|
}, function (props) {
|
|
226
|
-
return props.theme.
|
|
227
|
-
}, function (props) {
|
|
228
|
-
return props.selectedGroup ? "color: ".concat(props.theme.groupTitleSelectedHoverFontColor, "; background: ").concat(props.theme.groupTitleSelectedHoverBackgroundColor, ";") : "color: ".concat(props.theme.groupTitleFontColor, "; background: ").concat(props.theme.groupTitleHoverBackgroundColor, ";");
|
|
200
|
+
return props.selectedGroup ? "color: ".concat(props.theme.groupTitleSelectedFontColor, "; background-color: ").concat(props.theme.groupTitleSelectedBackgroundColor, ";") : "color: ".concat(props.theme.groupTitleFontColor, "; background-color: transparent;");
|
|
229
201
|
}, function (props) {
|
|
230
|
-
return props.theme.
|
|
202
|
+
return props.theme.linkFocusColor;
|
|
231
203
|
}, function (props) {
|
|
232
|
-
return props.theme.groupTitleFontColor;
|
|
204
|
+
return props.selectedGroup ? "color: ".concat(props.theme.groupTitleSelectedHoverFontColor, "; background-color: ").concat(props.theme.groupTitleSelectedHoverBackgroundColor, ";") : "color: ".concat(props.theme.groupTitleFontColor, "; background-color: ").concat(props.theme.groupTitleHoverBackgroundColor, ";");
|
|
233
205
|
}, function (props) {
|
|
234
|
-
return props.selectedGroup ? "
|
|
206
|
+
return props.selectedGroup ? "#333" : props.theme.groupTitleActiveBackgroundColor;
|
|
235
207
|
});
|
|
236
208
|
|
|
237
|
-
var SidenavLink = _styledComponents["default"].a(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n
|
|
238
|
-
return props.theme.linkFontLetterSpacing;
|
|
239
|
-
}, function (props) {
|
|
240
|
-
return props.theme.linkFontTextTransform;
|
|
241
|
-
}, function (props) {
|
|
242
|
-
return props.theme.linkTextDecoration;
|
|
243
|
-
}, function (props) {
|
|
209
|
+
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 font-family: ", ";\n font-style: ", ";\n font-weight: ", ";\n font-size: ", ";\n letter-spacing: ", ";\n text-transform: ", ";\n text-decoration: ", ";\n cursor: pointer;\n\n ", "\n\n &:focus, &:focus-visible {\n outline: 2px solid ", ";\n outline-offset: -2px;\n }\n &:hover {\n ", "\n }\n &:active {\n color: #fff;\n background-color: ", ";\n outline: 2px solid #0095ff;\n outline-offset: -2px;\n }\n\n img,\n svg {\n height: 16px;\n width: 16px;\n }\n"])), function (props) {
|
|
244
210
|
return props.theme.linkFontFamily;
|
|
245
211
|
}, function (props) {
|
|
246
212
|
return props.theme.linkFontStyle;
|
|
@@ -249,17 +215,21 @@ var SidenavLink = _styledComponents["default"].a(_templateObject7 || (_templateO
|
|
|
249
215
|
}, function (props) {
|
|
250
216
|
return props.theme.linkFontSize;
|
|
251
217
|
}, function (props) {
|
|
252
|
-
return props.
|
|
218
|
+
return props.theme.linkFontLetterSpacing;
|
|
219
|
+
}, function (props) {
|
|
220
|
+
return props.theme.linkFontTextTransform;
|
|
221
|
+
}, function (props) {
|
|
222
|
+
return props.theme.linkTextDecoration;
|
|
253
223
|
}, function (props) {
|
|
254
|
-
return props.selected ? "color: ".concat(props.theme.
|
|
224
|
+
return props.selected ? "color: ".concat(props.theme.linkSelectedFontColor, "; background-color: ").concat(props.theme.linkSelectedBackgroundColor, ";") : "color: ".concat(props.theme.linkFontColor, "; background-color: transparent;");
|
|
255
225
|
}, function (props) {
|
|
256
226
|
return props.theme.linkFocusColor;
|
|
227
|
+
}, function (props) {
|
|
228
|
+
return props.selected ? "color: ".concat(props.theme.linkSelectedHoverFontColor, "; background-color: ").concat(props.theme.linkSelectedHoverBackgroundColor, ";") : "color: ".concat(props.theme.linkFontColor, "; background-color: ").concat(props.theme.linkHoverBackgroundColor, ";");
|
|
229
|
+
}, function (props) {
|
|
230
|
+
return props.selected ? "#333" : "#4d4d4d";
|
|
257
231
|
});
|
|
258
232
|
|
|
259
|
-
var SidenavContent = _styledComponents["default"].span(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n\n svg {\n width: 16px;\n margin-right: 0.5rem;\n }\n"])));
|
|
260
|
-
|
|
261
|
-
var SidenavIcon = _styledComponents["default"].img(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])(["\n width: 16px;\n margin-right: 0.5rem;\n"])));
|
|
262
|
-
|
|
263
233
|
DxcSidenav.Section = Section;
|
|
264
234
|
DxcSidenav.Group = Group;
|
|
265
235
|
DxcSidenav.Link = Link;
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import DxcSidenav from "./Sidenav";
|
|
3
|
+
import DxcSelect from "../select/Select";
|
|
4
|
+
import DxcInset from "../inset/Inset";
|
|
3
5
|
import Title from "../../.storybook/components/Title";
|
|
4
6
|
import ExampleContainer from "../../.storybook/components/ExampleContainer";
|
|
5
7
|
import { userEvent, within } from "@storybook/testing-library";
|
|
8
|
+
import { HalstackProvider } from "../HalstackContext";
|
|
6
9
|
|
|
7
10
|
export default {
|
|
8
11
|
title: "Sidenav",
|
|
@@ -10,9 +13,26 @@ export default {
|
|
|
10
13
|
};
|
|
11
14
|
|
|
12
15
|
const iconSVG = (
|
|
13
|
-
<svg
|
|
14
|
-
|
|
15
|
-
|
|
16
|
+
<svg
|
|
17
|
+
version="1.1"
|
|
18
|
+
id="Capa_1"
|
|
19
|
+
x="0px"
|
|
20
|
+
y="0px"
|
|
21
|
+
width="438.536px"
|
|
22
|
+
height="438.536px"
|
|
23
|
+
viewBox="0 0 438.536 438.536"
|
|
24
|
+
fill="currentColor"
|
|
25
|
+
>
|
|
26
|
+
<g>
|
|
27
|
+
<path
|
|
28
|
+
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
|
|
29
|
+
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
|
|
30
|
+
h274.084c22.648,0,42.018-8.042,58.095-24.126c16.084-16.084,24.126-35.454,24.126-58.102V82.225
|
|
31
|
+
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
|
|
32
|
+
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
|
|
33
|
+
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"
|
|
34
|
+
/>
|
|
35
|
+
</g>
|
|
16
36
|
</svg>
|
|
17
37
|
);
|
|
18
38
|
|
|
@@ -20,11 +40,17 @@ const TitleComponent = () => {
|
|
|
20
40
|
return <DxcSidenav.Title>Dxc technology</DxcSidenav.Title>;
|
|
21
41
|
};
|
|
22
42
|
|
|
43
|
+
const opinionatedTheme = {
|
|
44
|
+
sidenav: {
|
|
45
|
+
baseColor: "#f2f2f2",
|
|
46
|
+
},
|
|
47
|
+
};
|
|
48
|
+
|
|
23
49
|
export const Chromatic = () => (
|
|
24
50
|
<>
|
|
25
51
|
<ExampleContainer>
|
|
26
52
|
<Title title="Default sidenav" theme="light" level={4} />
|
|
27
|
-
<DxcSidenav title={<
|
|
53
|
+
<DxcSidenav title={<DxcSidenav.Title>Dxc technology</DxcSidenav.Title>}>
|
|
28
54
|
<DxcSidenav.Section>
|
|
29
55
|
<p>
|
|
30
56
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit. In ullamcorper consectetur mollis. Suspendisse
|
|
@@ -41,12 +67,18 @@ export const Chromatic = () => (
|
|
|
41
67
|
</DxcSidenav.Group>
|
|
42
68
|
</DxcSidenav.Section>
|
|
43
69
|
<DxcSidenav.Section>
|
|
44
|
-
<DxcSidenav.Group
|
|
70
|
+
<DxcSidenav.Group
|
|
71
|
+
collapsable={true}
|
|
72
|
+
title="Section Group"
|
|
73
|
+
icon="https://cdn-icons-png.flaticon.com/512/5039/5039041.png"
|
|
74
|
+
>
|
|
45
75
|
<DxcSidenav.Link selected>Group Link</DxcSidenav.Link>
|
|
46
76
|
<DxcSidenav.Link icon={iconSVG}>Group Link</DxcSidenav.Link>
|
|
47
77
|
</DxcSidenav.Group>
|
|
48
|
-
<DxcSidenav.Link icon=
|
|
49
|
-
|
|
78
|
+
<DxcSidenav.Link icon="https://upload.wikimedia.org/wikipedia/commons/7/73/Flat_tick_icon.svg" newWindow>
|
|
79
|
+
Single Link
|
|
80
|
+
</DxcSidenav.Link>
|
|
81
|
+
<DxcSidenav.Link newWindow>Single Link</DxcSidenav.Link>
|
|
50
82
|
<DxcSidenav.Group collapsable={false} title="Section Group">
|
|
51
83
|
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
52
84
|
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
@@ -55,53 +87,78 @@ export const Chromatic = () => (
|
|
|
55
87
|
</DxcSidenav.Section>
|
|
56
88
|
</DxcSidenav>
|
|
57
89
|
</ExampleContainer>
|
|
90
|
+
<ExampleContainer pseudoState="pseudo-focus">
|
|
91
|
+
<Title title="Focused options sidenav" theme="light" level={4} />
|
|
92
|
+
<DxcSidenav title={<DxcSidenav.Title>Dxc technology</DxcSidenav.Title>}>
|
|
93
|
+
<DxcSidenav.Section>
|
|
94
|
+
<p>
|
|
95
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. In ullamcorper consectetur mollis. Suspendisse
|
|
96
|
+
vitae lacinia libero.
|
|
97
|
+
</p>
|
|
98
|
+
</DxcSidenav.Section>
|
|
99
|
+
<DxcSidenav.Section>
|
|
100
|
+
<DxcSidenav.Link>Single Link</DxcSidenav.Link>
|
|
101
|
+
<DxcSidenav.Group collapsable={true} title="Collapsable Group">
|
|
102
|
+
<DxcSidenav.Link icon="https://cdn-icons-png.flaticon.com/512/5039/5039041.png">Group Link</DxcSidenav.Link>
|
|
103
|
+
</DxcSidenav.Group>
|
|
104
|
+
</DxcSidenav.Section>
|
|
105
|
+
<DxcSidenav.Section>
|
|
106
|
+
<DxcSidenav.Group collapsable={true} title="Collapsable Group">
|
|
107
|
+
<DxcSidenav.Link selected icon={iconSVG}>
|
|
108
|
+
Group Link
|
|
109
|
+
</DxcSidenav.Link>
|
|
110
|
+
</DxcSidenav.Group>
|
|
111
|
+
<DxcSidenav.Group collapsable={false} title="Section Group">
|
|
112
|
+
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
113
|
+
</DxcSidenav.Group>
|
|
114
|
+
</DxcSidenav.Section>
|
|
115
|
+
</DxcSidenav>
|
|
116
|
+
</ExampleContainer>
|
|
117
|
+
<Title title="Opinionated theme" theme="light" level={2} />
|
|
118
|
+
<ExampleContainer>
|
|
119
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
120
|
+
<DxcSidenav title={<TitleComponent />}>
|
|
121
|
+
<DxcSidenav.Section>
|
|
122
|
+
<p>
|
|
123
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. In ullamcorper consectetur mollis. Suspendisse
|
|
124
|
+
vitae lacinia libero.
|
|
125
|
+
</p>
|
|
126
|
+
</DxcSidenav.Section>
|
|
127
|
+
<DxcSidenav.Section>
|
|
128
|
+
<DxcSidenav.Link>Single Link</DxcSidenav.Link>
|
|
129
|
+
<DxcSidenav.Group collapsable={false} title="Single Group" icon={iconSVG}>
|
|
130
|
+
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
131
|
+
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
132
|
+
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
133
|
+
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
134
|
+
</DxcSidenav.Group>
|
|
135
|
+
</DxcSidenav.Section>
|
|
136
|
+
<DxcSidenav.Section>
|
|
137
|
+
<DxcSidenav.Group collapsable={true} title="Section Group" icon={iconSVG}>
|
|
138
|
+
<DxcSidenav.Link selected>Group Link</DxcSidenav.Link>
|
|
139
|
+
<DxcSidenav.Link icon={iconSVG}>Group Link</DxcSidenav.Link>
|
|
140
|
+
</DxcSidenav.Group>
|
|
141
|
+
<DxcSidenav.Link icon={iconSVG}>Single Link</DxcSidenav.Link>
|
|
142
|
+
<DxcSidenav.Link>Single Link</DxcSidenav.Link>
|
|
143
|
+
<DxcSidenav.Group collapsable={false} title="Section Group">
|
|
144
|
+
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
145
|
+
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
146
|
+
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
147
|
+
</DxcSidenav.Group>
|
|
148
|
+
</DxcSidenav.Section>
|
|
149
|
+
</DxcSidenav>
|
|
150
|
+
</HalstackProvider>
|
|
151
|
+
</ExampleContainer>
|
|
58
152
|
</>
|
|
59
153
|
);
|
|
60
154
|
|
|
61
|
-
|
|
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
|
-
const CollapsedGroup = () => (
|
|
155
|
+
const CollapsedGroupSidenav = () => (
|
|
99
156
|
<>
|
|
100
157
|
<ExampleContainer>
|
|
101
|
-
<Title title="
|
|
102
|
-
<DxcSidenav title={<
|
|
158
|
+
<Title title="Collapsed group with a selected link" theme="light" level={4} />
|
|
159
|
+
<DxcSidenav title={<DxcSidenav.Title>Dxc technology</DxcSidenav.Title>}>
|
|
103
160
|
<DxcSidenav.Section>
|
|
104
|
-
<DxcSidenav.Group collapsable={true} title="
|
|
161
|
+
<DxcSidenav.Group collapsable={true} title="Collapsed Group" icon={iconSVG}>
|
|
105
162
|
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
106
163
|
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
107
164
|
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
@@ -109,11 +166,11 @@ const CollapsedGroup = () => (
|
|
|
109
166
|
</DxcSidenav.Group>
|
|
110
167
|
</DxcSidenav.Section>
|
|
111
168
|
<DxcSidenav.Section>
|
|
112
|
-
<DxcSidenav.Group collapsable={true} title="
|
|
113
|
-
<DxcSidenav.Link selected>Group Link</DxcSidenav.Link>
|
|
169
|
+
<DxcSidenav.Group collapsable={true} title="Collapsed Group">
|
|
114
170
|
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
171
|
+
<DxcSidenav.Link selected>Group Link</DxcSidenav.Link>
|
|
115
172
|
</DxcSidenav.Group>
|
|
116
|
-
<DxcSidenav.Group collapsable={
|
|
173
|
+
<DxcSidenav.Group collapsable={true} title="Section Group">
|
|
117
174
|
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
118
175
|
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
119
176
|
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
@@ -124,14 +181,14 @@ const CollapsedGroup = () => (
|
|
|
124
181
|
</>
|
|
125
182
|
);
|
|
126
183
|
|
|
127
|
-
const
|
|
184
|
+
const HoveredGroupSidenav = () => (
|
|
128
185
|
<ExampleContainer pseudoState="pseudo-hover">
|
|
129
|
-
<Title title="
|
|
130
|
-
<DxcSidenav title={<
|
|
186
|
+
<Title title="Hover state for groups (selected and not)" theme="light" level={4} />
|
|
187
|
+
<DxcSidenav title={<DxcSidenav.Title>Dxc technology</DxcSidenav.Title>}>
|
|
131
188
|
<DxcSidenav.Section>
|
|
132
189
|
<DxcSidenav.Link>Single Link</DxcSidenav.Link>
|
|
133
190
|
<DxcSidenav.Link>Single Link</DxcSidenav.Link>
|
|
134
|
-
<DxcSidenav.Group collapsable={true} title="
|
|
191
|
+
<DxcSidenav.Group collapsable={true} title="Collapsed Group">
|
|
135
192
|
<DxcSidenav.Link selected>Group Link</DxcSidenav.Link>
|
|
136
193
|
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
137
194
|
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
@@ -145,36 +202,81 @@ const HoverSidenav = () => (
|
|
|
145
202
|
</DxcSidenav.Group>
|
|
146
203
|
<DxcSidenav.Link>Single Link</DxcSidenav.Link>
|
|
147
204
|
<DxcSidenav.Link>Single Link</DxcSidenav.Link>
|
|
148
|
-
<DxcSidenav.Group collapsable={true} title="
|
|
205
|
+
<DxcSidenav.Group collapsable={true} title="Collapsed Group">
|
|
149
206
|
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
150
207
|
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
151
208
|
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
152
209
|
</DxcSidenav.Group>
|
|
210
|
+
<DxcSidenav.Group collapsable={true} title="Collapsed Group">
|
|
211
|
+
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
212
|
+
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
213
|
+
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
214
|
+
</DxcSidenav.Group>
|
|
215
|
+
</DxcSidenav.Section>
|
|
216
|
+
</DxcSidenav>
|
|
217
|
+
</ExampleContainer>
|
|
218
|
+
);
|
|
153
219
|
|
|
154
|
-
|
|
220
|
+
const ActiveGroupSidenav = () => (
|
|
221
|
+
<ExampleContainer pseudoState="pseudo-active">
|
|
222
|
+
<Title title="Active state for groups (selected and not)" theme="light" level={4} />
|
|
223
|
+
<DxcSidenav title={<DxcSidenav.Title>Dxc technology</DxcSidenav.Title>}>
|
|
224
|
+
<DxcSidenav.Section>
|
|
225
|
+
<DxcInset space="1rem">
|
|
226
|
+
<DxcSelect
|
|
227
|
+
defaultValue="1"
|
|
228
|
+
options={[
|
|
229
|
+
{ label: "v1.0.0", value: "1" },
|
|
230
|
+
{ label: "v2.0.0", value: "2" },
|
|
231
|
+
{ label: "v3.0.0", value: "3" },
|
|
232
|
+
{ label: "v4.0.0", value: "4" },
|
|
233
|
+
]}
|
|
234
|
+
size="fillParent"
|
|
235
|
+
/>
|
|
236
|
+
</DxcInset>
|
|
237
|
+
</DxcSidenav.Section>
|
|
238
|
+
<DxcSidenav.Section>
|
|
239
|
+
<DxcSidenav.Group collapsable={true} title="Collapsed Group">
|
|
240
|
+
<DxcSidenav.Link selected>Group Link</DxcSidenav.Link>
|
|
155
241
|
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
156
242
|
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
157
243
|
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
158
244
|
</DxcSidenav.Group>
|
|
159
245
|
</DxcSidenav.Section>
|
|
246
|
+
<DxcSidenav.Section>
|
|
247
|
+
<DxcSidenav.Group collapsable={true} title="Not Collapsed Group">
|
|
248
|
+
<DxcSidenav.Link selected>Group Link</DxcSidenav.Link>
|
|
249
|
+
<DxcSidenav.Link>Group Link</DxcSidenav.Link>
|
|
250
|
+
</DxcSidenav.Group>
|
|
251
|
+
<DxcSidenav.Link>Single Link</DxcSidenav.Link>
|
|
252
|
+
<DxcSidenav.Link>Single Link</DxcSidenav.Link>
|
|
253
|
+
</DxcSidenav.Section>
|
|
160
254
|
</DxcSidenav>
|
|
161
255
|
</ExampleContainer>
|
|
162
256
|
);
|
|
163
257
|
|
|
164
|
-
export const
|
|
165
|
-
|
|
258
|
+
export const CollapsableGroup = CollapsedGroupSidenav.bind({});
|
|
259
|
+
CollapsableGroup.play = async ({ canvasElement }) => {
|
|
166
260
|
const canvas = within(canvasElement);
|
|
167
|
-
const collapsableGroups = canvas.getAllByText("
|
|
261
|
+
const collapsableGroups = canvas.getAllByText("Collapsed Group");
|
|
168
262
|
collapsableGroups.forEach((group) => {
|
|
169
263
|
userEvent.click(group);
|
|
170
264
|
});
|
|
171
265
|
};
|
|
172
266
|
|
|
173
|
-
export const
|
|
174
|
-
|
|
267
|
+
export const CollapsedHoverGroup = HoveredGroupSidenav.bind({});
|
|
268
|
+
CollapsedHoverGroup.play = async ({ canvasElement }) => {
|
|
175
269
|
const canvas = within(canvasElement);
|
|
176
|
-
const collapsableGroups = canvas.getAllByText("
|
|
270
|
+
const collapsableGroups = canvas.getAllByText("Collapsed Group");
|
|
177
271
|
collapsableGroups.forEach((group) => {
|
|
178
272
|
userEvent.click(group);
|
|
179
273
|
});
|
|
274
|
+
await new Promise((resolve) => setTimeout(resolve, 1000));
|
|
180
275
|
};
|
|
276
|
+
|
|
277
|
+
export const CollapsedActiveGroup = ActiveGroupSidenav.bind({});
|
|
278
|
+
CollapsedActiveGroup.play = async ({ canvasElement }) => {
|
|
279
|
+
const canvas = within(canvasElement);
|
|
280
|
+
const collapsableGroups = canvas.getAllByText("Collapsed Group");
|
|
281
|
+
userEvent.click(collapsableGroups[0]);
|
|
282
|
+
};
|