@redocly/theme 0.4.13 → 0.4.14
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.
|
@@ -78,5 +78,5 @@ function ColorModeSwitcher() {
|
|
|
78
78
|
react_1.default.createElement(ColorModeIcon_1.ColorModeIcon, { mode: activeColorMode })));
|
|
79
79
|
}
|
|
80
80
|
exports.ColorModeSwitcher = ColorModeSwitcher;
|
|
81
|
-
var Wrapper = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n margin-left: var(--navbar-item-padding-horizontal);\n display: flex;\n align-items: center;\n cursor: pointer;\n"], ["\n margin-left: var(--navbar-item-padding-horizontal);\n display: flex;\n align-items: center;\n cursor: pointer;\n"])));
|
|
81
|
+
var Wrapper = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n margin-left: var(--navbar-item-padding-horizontal);\n display: flex;\n align-items: center;\n cursor: pointer;\n user-select: none;\n"], ["\n margin-left: var(--navbar-item-padding-horizontal);\n display: flex;\n align-items: center;\n cursor: pointer;\n user-select: none;\n"])));
|
|
82
82
|
var templateObject_1;
|
package/Sidebar/MenuGroup.js
CHANGED
|
@@ -3,12 +3,51 @@ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cook
|
|
|
3
3
|
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
|
|
4
4
|
return cooked;
|
|
5
5
|
};
|
|
6
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
|
+
if (k2 === undefined) k2 = k;
|
|
8
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
9
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
10
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
11
|
+
}
|
|
12
|
+
Object.defineProperty(o, k2, desc);
|
|
13
|
+
}) : (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
o[k2] = m[k];
|
|
16
|
+
}));
|
|
17
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
18
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
19
|
+
}) : function(o, v) {
|
|
20
|
+
o["default"] = v;
|
|
21
|
+
});
|
|
22
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
23
|
+
if (mod && mod.__esModule) return mod;
|
|
24
|
+
var result = {};
|
|
25
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
26
|
+
__setModuleDefault(result, mod);
|
|
27
|
+
return result;
|
|
28
|
+
};
|
|
29
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
30
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
31
|
+
if (!m) return o;
|
|
32
|
+
var i = m.call(o), r, ar = [], e;
|
|
33
|
+
try {
|
|
34
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
35
|
+
}
|
|
36
|
+
catch (error) { e = { error: error }; }
|
|
37
|
+
finally {
|
|
38
|
+
try {
|
|
39
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
40
|
+
}
|
|
41
|
+
finally { if (e) throw e.error; }
|
|
42
|
+
}
|
|
43
|
+
return ar;
|
|
44
|
+
};
|
|
6
45
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
7
46
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
8
47
|
};
|
|
9
48
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
49
|
exports.MenuGroup = void 0;
|
|
11
|
-
var react_1 =
|
|
50
|
+
var react_1 = __importStar(require("react"));
|
|
12
51
|
var styled_components_1 = __importDefault(require("styled-components"));
|
|
13
52
|
var ArrowIcon_1 = require("../icons/ArrowIcon/ArrowIcon");
|
|
14
53
|
var MenuLinkItem_1 = require("../Sidebar/MenuLinkItem");
|
|
@@ -16,17 +55,37 @@ var MenuItemLabel_1 = require("../Sidebar/MenuItemLabel");
|
|
|
16
55
|
var SeparatorLine_1 = require("../Sidebar/SeparatorLine");
|
|
17
56
|
function MenuGroup(_a) {
|
|
18
57
|
var item = _a.item, isExpanded = _a.isExpanded, toggleExpanded = _a.toggleExpanded, children = _a.children;
|
|
58
|
+
var _b = __read((0, react_1.useState)(isExpanded), 2), showChildren = _b[0], setShowChildren = _b[1];
|
|
59
|
+
var timer = (0, react_1.useRef)(null);
|
|
60
|
+
(0, react_1.useEffect)(function () {
|
|
61
|
+
timer.current && clearTimeout(timer.current);
|
|
62
|
+
if (isExpanded) {
|
|
63
|
+
setShowChildren(true);
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
timer.current = setTimeout(function () {
|
|
67
|
+
setShowChildren(false);
|
|
68
|
+
}, 800);
|
|
69
|
+
}
|
|
70
|
+
return function () {
|
|
71
|
+
timer.current && clearTimeout(timer.current);
|
|
72
|
+
};
|
|
73
|
+
}, [isExpanded]);
|
|
19
74
|
return (react_1.default.createElement(Wrapper, { "data-component-name": "Sidebar/MenuGroup" },
|
|
20
75
|
react_1.default.createElement(MenuLinkItem_1.MenuLinkItem, { item: item },
|
|
21
76
|
react_1.default.createElement(MenuGroupLabel, { onClick: toggleExpanded, isAlwaysExpanded: item.expanded === 'always', active: item.active },
|
|
22
77
|
react_1.default.createElement(MenuGroupArrow, { direction: isExpanded ? 'down' : 'right' }),
|
|
23
78
|
item.label)),
|
|
24
|
-
react_1.default.createElement(MenuWrapper,
|
|
79
|
+
react_1.default.createElement(MenuWrapper, { isExpanded: isExpanded }, showChildren ? children : null),
|
|
25
80
|
item.separatorLine ? react_1.default.createElement(SeparatorLine_1.SeparatorLine, null) : null));
|
|
26
81
|
}
|
|
27
82
|
exports.MenuGroup = MenuGroup;
|
|
28
83
|
var Wrapper = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject([""], [""])));
|
|
29
|
-
var MenuWrapper = styled_components_1.default.div(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n padding-left: var(--sidebar-item-nested-offset);\n"], ["\n padding-left: var(--sidebar-item-nested-offset);\n"])))
|
|
84
|
+
var MenuWrapper = styled_components_1.default.div(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n padding-left: var(--sidebar-item-nested-offset);\n overflow: hidden;\n ", ";\n"], ["\n padding-left: var(--sidebar-item-nested-offset);\n overflow: hidden;\n ", ";\n"])), function (props) {
|
|
85
|
+
return props.isExpanded
|
|
86
|
+
? "max-height: 9999px;\n transition: max-height .8s cubic-bezier(0.5, 0, 1, 0) 0s;"
|
|
87
|
+
: "max-height: 0px;\n\t transition: max-height .8s cubic-bezier(0, 1, 0, 1) -.1s;";
|
|
88
|
+
});
|
|
30
89
|
var MenuGroupLabel = (0, styled_components_1.default)(MenuItemLabel_1.MenuItemLabel)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n padding-left: var(--sidebar-item-padding-horizontal);\n cursor: ", ";\n font-family: var(--sidebar-item-group-font-family);\n font-size: var(--sidebar-item-group-font-size);\n text-transform: var(--sidebar-text-group-transform);\n color: var(--sidebar-item-group-text-color);\n background: var(--sidebar-item-group-background-color);\n ", ";\n"], ["\n padding-left: var(--sidebar-item-padding-horizontal);\n cursor: ", ";\n font-family: var(--sidebar-item-group-font-family);\n font-size: var(--sidebar-item-group-font-size);\n text-transform: var(--sidebar-text-group-transform);\n color: var(--sidebar-item-group-text-color);\n background: var(--sidebar-item-group-background-color);\n ", ";\n"])), function (props) { return (props.isAlwaysExpanded ? 'default' : 'pointer'); }, function (props) {
|
|
31
90
|
return props.active
|
|
32
91
|
? "color: var(--sidebar-item-group-active-text-color);\n background-color: var(--sidebar-item-group-active-background-color);"
|
package/package.json
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React from 'react';
|
|
1
|
+
import React, { useEffect, useRef, useState } from 'react';
|
|
2
2
|
import styled from 'styled-components';
|
|
3
3
|
|
|
4
4
|
import type { ItemState } from '@theme/Sidebar/types/ItemState';
|
|
@@ -20,6 +20,22 @@ export function MenuGroup({
|
|
|
20
20
|
toggleExpanded,
|
|
21
21
|
children,
|
|
22
22
|
}: React.PropsWithChildren<MenuGroupProps>): JSX.Element {
|
|
23
|
+
const [showChildren, setShowChildren] = useState<boolean>(isExpanded);
|
|
24
|
+
const timer = useRef<ReturnType<typeof setTimeout> | null>(null);
|
|
25
|
+
useEffect(() => {
|
|
26
|
+
timer.current && clearTimeout(timer.current);
|
|
27
|
+
if (isExpanded) {
|
|
28
|
+
setShowChildren(true);
|
|
29
|
+
} else {
|
|
30
|
+
timer.current = setTimeout(() => {
|
|
31
|
+
setShowChildren(false);
|
|
32
|
+
}, 800);
|
|
33
|
+
}
|
|
34
|
+
return () => {
|
|
35
|
+
timer.current && clearTimeout(timer.current);
|
|
36
|
+
};
|
|
37
|
+
}, [isExpanded]);
|
|
38
|
+
|
|
23
39
|
return (
|
|
24
40
|
<Wrapper data-component-name="Sidebar/MenuGroup">
|
|
25
41
|
<MenuLinkItem item={item}>
|
|
@@ -33,7 +49,7 @@ export function MenuGroup({
|
|
|
33
49
|
</MenuGroupLabel>
|
|
34
50
|
</MenuLinkItem>
|
|
35
51
|
|
|
36
|
-
<MenuWrapper>{
|
|
52
|
+
<MenuWrapper isExpanded={isExpanded}>{showChildren ? children : null}</MenuWrapper>
|
|
37
53
|
|
|
38
54
|
{item.separatorLine ? <SeparatorLine /> : null}
|
|
39
55
|
</Wrapper>
|
|
@@ -42,8 +58,15 @@ export function MenuGroup({
|
|
|
42
58
|
|
|
43
59
|
const Wrapper = styled.div``;
|
|
44
60
|
|
|
45
|
-
const MenuWrapper = styled.div
|
|
61
|
+
const MenuWrapper = styled.div<{ isExpanded?: boolean }>`
|
|
46
62
|
padding-left: var(--sidebar-item-nested-offset);
|
|
63
|
+
overflow: hidden;
|
|
64
|
+
${(props) =>
|
|
65
|
+
props.isExpanded
|
|
66
|
+
? `max-height: 9999px;
|
|
67
|
+
transition: max-height .8s cubic-bezier(0.5, 0, 1, 0) 0s;`
|
|
68
|
+
: `max-height: 0px;
|
|
69
|
+
transition: max-height .8s cubic-bezier(0, 1, 0, 1) -.1s;`};
|
|
47
70
|
`;
|
|
48
71
|
|
|
49
72
|
const MenuGroupLabel = styled(MenuItemLabel)<{ isAlwaysExpanded?: boolean }>`
|