@stack-spot/portal-layout 2.10.0 → 2.11.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/CHANGELOG.md +7 -0
- package/dist/components/menu/MenuSectionGroup.d.ts +3 -0
- package/dist/components/menu/MenuSectionGroup.d.ts.map +1 -0
- package/dist/components/menu/MenuSectionGroup.js +121 -0
- package/dist/components/menu/MenuSectionGroup.js.map +1 -0
- package/dist/components/menu/MenuSections.d.ts.map +1 -1
- package/dist/components/menu/MenuSections.js +31 -10
- package/dist/components/menu/MenuSections.js.map +1 -1
- package/dist/components/menu/types.d.ts +8 -0
- package/dist/components/menu/types.d.ts.map +1 -1
- package/dist/layout.css +2 -5
- package/package.json +2 -2
- package/src/components/menu/MenuSectionGroup.tsx +121 -0
- package/src/components/menu/MenuSections.tsx +93 -17
- package/src/components/menu/types.ts +8 -0
- package/src/layout.css +2 -5
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [2.11.0](https://github.com/stack-spot/portal-commons/compare/portal-layout@v2.10.0...portal-layout@v2.11.0) (2024-10-11)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Features
|
|
7
|
+
|
|
8
|
+
* Feat 1943 accordion menu section ([#419](https://github.com/stack-spot/portal-commons/issues/419)) ([1a940af](https://github.com/stack-spot/portal-commons/commit/1a940af2e4c102f2c37434cbfc8bb89788b9a2f6))
|
|
9
|
+
|
|
3
10
|
## [2.10.0](https://github.com/stack-spot/portal-commons/compare/portal-layout@v2.9.2...portal-layout@v2.10.0) (2024-10-10)
|
|
4
11
|
|
|
5
12
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MenuSectionGroup.d.ts","sourceRoot":"","sources":["../../../src/components/menu/MenuSectionGroup.tsx"],"names":[],"mappings":";AAIA,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAoH7E,CAAA"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { theme } from '@stack-spot/portal-theme';
|
|
2
|
+
import styled from 'styled-components';
|
|
3
|
+
import { MENU_CONTENT_PADDING as PADDING } from './constants.js';
|
|
4
|
+
export const MenuSectionGroup = styled.ul `
|
|
5
|
+
padding: 0 0 0 16px;
|
|
6
|
+
display: flex;
|
|
7
|
+
flex-direction: column;
|
|
8
|
+
visibility: hidden;
|
|
9
|
+
transition: visibility 0s 0.3s;
|
|
10
|
+
|
|
11
|
+
&.no-indentation {
|
|
12
|
+
padding: 0;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
.item-row {
|
|
16
|
+
display: flex;
|
|
17
|
+
flex-direction: row;
|
|
18
|
+
gap: 8px;
|
|
19
|
+
align-items: center;
|
|
20
|
+
|
|
21
|
+
&.root {
|
|
22
|
+
padding: 0 16px;
|
|
23
|
+
margin-top: 16px;
|
|
24
|
+
border-radius: 0;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.label {
|
|
28
|
+
flex: 1;
|
|
29
|
+
&.hidden, &.ellipsis {
|
|
30
|
+
white-space: nowrap;
|
|
31
|
+
overflow: hidden;
|
|
32
|
+
}
|
|
33
|
+
&.ellipsis {
|
|
34
|
+
text-overflow: ellipsis;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
li a {
|
|
40
|
+
position: relative;
|
|
41
|
+
height: 0;
|
|
42
|
+
overflow: hidden;
|
|
43
|
+
transition: height 0.3s, background-color 0.2s;
|
|
44
|
+
|
|
45
|
+
&:hover {
|
|
46
|
+
background-color: ${theme.color.light['500']};
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
&.action {
|
|
50
|
+
&:before {
|
|
51
|
+
content: '';
|
|
52
|
+
position: absolute;
|
|
53
|
+
left: 2px;
|
|
54
|
+
width: 2px;
|
|
55
|
+
height: 0;
|
|
56
|
+
background: inherit;
|
|
57
|
+
transition: height 0.2s;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
&.active {
|
|
61
|
+
|
|
62
|
+
&:hover {
|
|
63
|
+
background-color: transparent;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
&:before {
|
|
67
|
+
background: ${theme.color.primary['500']};
|
|
68
|
+
height: 24px;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
&:not(.active):hover:before {
|
|
73
|
+
background: ${theme.color.light.contrastText};
|
|
74
|
+
height: 24px;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
.chevron {
|
|
79
|
+
transition: transform 0.5s;
|
|
80
|
+
&:not(.open) {
|
|
81
|
+
transform: rotate(180deg);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
.item-row-title {
|
|
86
|
+
opacity: 0.7;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
&.open {
|
|
91
|
+
visibility: visible;
|
|
92
|
+
transition: unset;
|
|
93
|
+
& > li > a {
|
|
94
|
+
height: 56px;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
&:not(.open) &.open > li > a {
|
|
99
|
+
height: 0;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
&.root {
|
|
103
|
+
/* margin-bottom: ${PADDING}px; */
|
|
104
|
+
|
|
105
|
+
& > li {
|
|
106
|
+
.group-title {
|
|
107
|
+
margin-left: ${PADDING}px;
|
|
108
|
+
margin-bottom: 5px;
|
|
109
|
+
margin-top: 40px;
|
|
110
|
+
display: block;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
&:first-child {
|
|
114
|
+
.group-title {
|
|
115
|
+
margin-top: 0;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
`;
|
|
121
|
+
//# sourceMappingURL=MenuSectionGroup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MenuSectionGroup.js","sourceRoot":"","sources":["../../../src/components/menu/MenuSectionGroup.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAA;AAChD,OAAO,MAAM,MAAM,mBAAmB,CAAA;AACtC,OAAO,EAAE,oBAAoB,IAAI,OAAO,EAAE,MAAM,aAAa,CAAA;AAE7D,MAAM,CAAC,MAAM,gBAAgB,GAAqD,MAAM,CAAC,EAAE,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BA0CjE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;;;;;;;;;;;;;;;;;;;;;wBAqB1B,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;;;;;;sBAM5B,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBA8B5B,OAAO;;;;uBAIR,OAAO;;;;;;;;;;;;;CAa7B,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MenuSections.d.ts","sourceRoot":"","sources":["../../../src/components/menu/MenuSections.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MenuSections.d.ts","sourceRoot":"","sources":["../../../src/components/menu/MenuSections.tsx"],"names":[],"mappings":"AAYA,OAAO,EAAE,SAAS,EAAe,MAAM,SAAS,CAAA;AAwChD;;GAEG;AACH,wBAAgB,sBAAsB,SAOrC;AA2ID;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,YAAY,2BAAiC,SAAS,4CAyHlE,CAAA"}
|
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
-
import { Flex, IconBox, Text } from '@citric/core';
|
|
3
|
-
import { ChevronRight, Cog, Collapse, Expand, MobileComments } from '@citric/icons';
|
|
2
|
+
import { Divider, Flex, IconBox, Text } from '@citric/core';
|
|
3
|
+
import { ChevronRight, Cog, Collapse, Expand, MobileComments, ChevronUpFill } from '@citric/icons';
|
|
4
4
|
import { useKeyboardControls } from '@stack-spot/portal-components';
|
|
5
5
|
import { useAnchorTag } from '@stack-spot/portal-components/anchor';
|
|
6
|
+
import { listToClass } from '@stack-spot/portal-theme';
|
|
6
7
|
import { interpolate, useTranslate } from '@stack-spot/portal-translate';
|
|
7
8
|
import { useCallback, useEffect, useMemo, useState } from 'react';
|
|
8
9
|
import { elementIds, getLayoutElements } from '../../elements.js';
|
|
9
10
|
import { StarFillWithGradient } from '../../svg/StarFillWithGradient.js';
|
|
10
11
|
import { isLessThan30Days } from '../Rate/hook.js';
|
|
11
12
|
import { MenuContent } from './MenuContent.js';
|
|
13
|
+
import { MenuSectionGroup } from './MenuSectionGroup.js';
|
|
12
14
|
/**
|
|
13
15
|
* Amount of time to wait before hiding the menu overlay once the mouse leaves its area.
|
|
14
16
|
*/
|
|
@@ -90,7 +92,7 @@ function isMenuContentVisible() {
|
|
|
90
92
|
* @param props React props for the component {@link MenuSection} & { id, setCurrentOverlay }. Id identifies the current section and
|
|
91
93
|
* setCurrentOverlay controls the overlay (preview) content.
|
|
92
94
|
*/
|
|
93
|
-
const Section = ({ icon, label, href, target, onClick, active, content, customContent, setCurrentOverlay,
|
|
95
|
+
const Section = ({ icon, label, href, target, onClick, active, content, customContent, setCurrentOverlay, hasContent, id, }) => {
|
|
94
96
|
const Link = useAnchorTag();
|
|
95
97
|
const contentToRender = typeof content === 'function' ? content() : content;
|
|
96
98
|
const t = useTranslate(dictionary);
|
|
@@ -119,12 +121,12 @@ const Section = ({ icon, label, href, target, onClick, active, content, customCo
|
|
|
119
121
|
hideOverlayImmediately();
|
|
120
122
|
}
|
|
121
123
|
const labelText = typeof label === 'string' ? label : label.id;
|
|
122
|
-
return (_jsxs(
|
|
124
|
+
return (_jsxs(_Fragment, { children: [_jsx(Link, { href: href, target: target, onClick: click, onMouseEnter: prepareShowOverlay, onMouseLeave: () => shouldShowOverlay() && hideOverlay(), title: labelText, "aria-label": labelText, onKeyDown: onClick ? e => e.key === 'Enter' && onClick() : undefined, ...(active ? { 'aria-current': 'page' } : undefined), ...(!href ? { 'tabIndex': 0 } : undefined), children: _jsxs(Flex, { alignItems: "center", justifyContent: "center", px: 5, children: [_jsx(IconBox, { children: icon }), typeof label === 'string' ? _jsx(Text, { appearance: "microtext1", className: "section-label", ml: 3, children: label }) : label.element] }) }), shouldShowOverlay() &&
|
|
123
125
|
_jsx(IconBox, { size: "sm", className: "section-submenu-icon", as: "button", "aria-label": interpolate(t.menuOptions, label), "aria-controls": MENU_OVERLAY_ID, "aria-expanded": false, onKeyDown: (event) => {
|
|
124
126
|
if (event.key === 'Enter') {
|
|
125
127
|
prepareShowOverlay(event);
|
|
126
128
|
}
|
|
127
|
-
}, children: _jsx(ChevronRight, {}) })] }
|
|
129
|
+
}, children: _jsx(ChevronRight, {}) })] }));
|
|
128
130
|
};
|
|
129
131
|
/**
|
|
130
132
|
* Renders the overlay content.
|
|
@@ -158,15 +160,18 @@ export const MenuSections = ({ sections = [], ...props }) => {
|
|
|
158
160
|
const t = useTranslate(dictionary);
|
|
159
161
|
// this is a mock state only used to force an update on the component.
|
|
160
162
|
const [_, setUpdate] = useState(0);
|
|
163
|
+
const [isMenuCollapsed, setIsMenuCollapsed] = useState(false);
|
|
161
164
|
const toggleMenu = useCallback((hasContent) => {
|
|
162
165
|
const layout = document.getElementById('layout');
|
|
163
166
|
if (!layout)
|
|
164
167
|
return;
|
|
165
168
|
if (layout.classList.contains('menu-compact')) {
|
|
166
169
|
layout.classList.remove('menu-compact');
|
|
170
|
+
setIsMenuCollapsed(false);
|
|
167
171
|
}
|
|
168
172
|
else {
|
|
169
173
|
layout.classList.add('menu-compact');
|
|
174
|
+
setIsMenuCollapsed(true);
|
|
170
175
|
}
|
|
171
176
|
if (hasContent) {
|
|
172
177
|
if (layout.classList.contains('menu-content-visible')) {
|
|
@@ -180,12 +185,16 @@ export const MenuSections = ({ sections = [], ...props }) => {
|
|
|
180
185
|
}, []);
|
|
181
186
|
// the current overlay showing, when the user hovers the section icon. This is the index of the item in the sections array.
|
|
182
187
|
const [currentOverlay, setCurrentOverlay] = useState();
|
|
188
|
+
const sectionItemsOverlay = useMemo(() => sections.flatMap((s) => 'children' in s ? s.children?.map((c) => c) : s), [sections]);
|
|
183
189
|
const sectionItems = useMemo(() => sections.reduce((result, s, i) => s.hidden
|
|
184
190
|
? result
|
|
185
191
|
: [
|
|
186
192
|
...result,
|
|
187
|
-
_jsx(
|
|
188
|
-
|
|
193
|
+
_jsx("li", { role: "menuitem", title: s.label, className: `section-submenu no-indentation ${s.className || ''} ${s.active ? 'active' : undefined}`, children: 'children' in s ?
|
|
194
|
+
_jsx(CollapsibleSection, { listItems: sectionItemsOverlay, isMenuCollapsed: isMenuCollapsed, ...s, setCurrentOverlay: setCurrentOverlay })
|
|
195
|
+
:
|
|
196
|
+
_jsx(Section, { id: sectionItemsOverlay.findIndex((sio) => sio?.label === s.label), ...s, setCurrentOverlay: setCurrentOverlay, hasContent: !!props.content || !!props.customContent }, i) }, s.label),
|
|
197
|
+
], []), [sections, isMenuCollapsed]);
|
|
189
198
|
function onPressEscape() {
|
|
190
199
|
getAccessibilityButtonOfSectionWithActiveOverlay()?.focus();
|
|
191
200
|
hideOverlayImmediately();
|
|
@@ -206,13 +215,13 @@ export const MenuSections = ({ sections = [], ...props }) => {
|
|
|
206
215
|
function renderMenuOverlay() {
|
|
207
216
|
if (currentOverlay === undefined)
|
|
208
217
|
return null;
|
|
209
|
-
const shouldRenderMenuContentInstead = !isMenuContentVisible() &&
|
|
218
|
+
const shouldRenderMenuContentInstead = !isMenuContentVisible() && sectionItemsOverlay[currentOverlay]?.active &&
|
|
210
219
|
(!!props.content || !!props.customContent);
|
|
211
220
|
return shouldRenderMenuContentInstead
|
|
212
221
|
? _jsx(OverlayRenderer, { content: props.content, customContent: props.customContent }, 'contentKey' in props ? props.contentKey : undefined)
|
|
213
|
-
: _jsx(OverlayRenderer, { content:
|
|
222
|
+
: _jsx(OverlayRenderer, { content: sectionItemsOverlay[currentOverlay]?.content, customContent: sectionItemsOverlay[currentOverlay]?.customContent }, currentOverlay);
|
|
214
223
|
}
|
|
215
|
-
return (_jsxs(_Fragment, { children: [_jsx(
|
|
224
|
+
return (_jsxs(_Fragment, { children: [_jsx(MenuSectionGroup, { className: "open root no-indentation", children: sectionItems }), _jsxs(Flex, { mb: 7, alignItems: "center", children: [_jsx(RateAndContactUsItem, { ...props }), _jsxs("button", { role: "menuitem", className: "toggle sections-footer", onClick: () => toggleMenu(!!props.content || !!props.customContent), title: t.toggle, children: [_jsxs(IconBox, { children: [_jsx(Expand, { className: "expand" }), _jsx(Collapse, { className: "collapse" })] }), _jsx(Text, { appearance: "microtext1", ml: 8, className: "collapse", colorScheme: "light.contrastText", children: t.hide })] }), (props.settings?.show) &&
|
|
216
225
|
_jsxs(Link, { href: props.settings?.href, onClick: props.settings?.onClick, className: "sections-footer toggle", ...(props.settings.active ? { 'aria-current': 'page' } : undefined), children: [_jsx(IconBox, { "aria-label": t.settingsIcon, children: _jsx(Cog, {}) }), _jsx(Text, { appearance: "microtext1", ml: 8, className: "collapse", children: t.settings })] })] }), _jsx("div", { id: MENU_OVERLAY_ID, onMouseEnter: showOverlay, onMouseLeave: hideOverlay, ref: overlayRef, children: renderMenuOverlay() })] }));
|
|
217
226
|
};
|
|
218
227
|
const RateAndContactUsItem = ({ ...props }) => {
|
|
@@ -232,6 +241,18 @@ const RateAndContactUsItem = ({ ...props }) => {
|
|
|
232
241
|
_jsxs("button", { role: "menuitem", className: "toggle sections-footer", onClick: props.rateUs?.onClick, ...(props.rateUs.active ? { 'aria-current': 'page' } : undefined), children: [_jsx(IconBox, { "aria-label": t.rateUsIcon, sx: { paddingTop: '2px' }, children: _jsx(StarFillWithGradient, { id: "svg-icon", className: "gradient-svg rotate-icon" }) }), _jsx(Text, { appearance: "microtext1", ml: 8, sx: { marginTop: '3px' }, className: "collapse gradient grow-shrink", colorScheme: "light.contrastText", children: t.rateUs })] }), (props.contactUs?.show) &&
|
|
233
242
|
_jsxs(Link, { href: props.contactUs?.href, className: "toggle sections-footer", onClick: props.contactUs?.onClick, ...(props.contactUs.active ? { 'aria-current': 'page' } : undefined), target: props.contactUs?.target, children: [_jsx(IconBox, { "aria-label": t.contactIcon, children: _jsx(MobileComments, {}) }), _jsx(Text, { appearance: "microtext1", ml: 8, sx: { marginTop: '3px' }, className: "collapse", colorScheme: "light.contrastText", children: t.contactUs })] })] });
|
|
234
243
|
};
|
|
244
|
+
/**
|
|
245
|
+
* A menu item that is actually a subgroup and can be collapsed/expanded.
|
|
246
|
+
* @param props the props for the component {@link MenuSectionGroup} & { root: boolean }.
|
|
247
|
+
|
|
248
|
+
*/
|
|
249
|
+
const CollapsibleSection = ({ label, open: initialValue, children, icon, setCurrentOverlay, listItems, isMenuCollapsed = true }) => {
|
|
250
|
+
const [open, setOpen] = useState(initialValue || false);
|
|
251
|
+
const menuGroupId = `menuGroup${label}`;
|
|
252
|
+
const items = useMemo(() => children?.filter(i => !i.hidden).map((c) => (_jsx("li", { role: "menuitem", title: c.label, className: `section-submenu ${c.className} ${c.active ? 'active' : ''}`, children: _jsx(Section, { id: listItems?.findIndex((item) => item?.label === c.label), ...c, hasContent: false, setCurrentOverlay: setCurrentOverlay }, c.label) }, c.label))), [children]);
|
|
253
|
+
return (_jsxs(_Fragment, { children: [isMenuCollapsed ? _jsx(Divider, {}) :
|
|
254
|
+
_jsx("a", { onClick: () => setOpen(!open), onKeyDown: e => e.key === 'Enter' && setOpen(!open), className: listToClass(['item-row']), tabIndex: 0, "aria-controls": menuGroupId, "aria-expanded": open, children: _jsxs(Flex, { alignItems: "center", justifyContent: "center", px: 6, children: [icon, _jsx(Text, { appearance: "microtext1", className: "section-label", ml: 3, colorScheme: "light.contrastText", children: label }), _jsx(IconBox, { sx: { ml: '14' }, children: _jsx(ChevronUpFill, { className: listToClass(['chevron', open ? 'open' : '']) }) })] }) }), _jsx(MenuSectionGroup, { id: menuGroupId, className: `${isMenuCollapsed || open ? 'open' : ''} root no-indentation`, "aria-hidden": !open, children: items })] }));
|
|
255
|
+
};
|
|
235
256
|
const dictionary = {
|
|
236
257
|
en: {
|
|
237
258
|
toggle: 'Show or hide the menu',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MenuSections.js","sourceRoot":"","sources":["../../../src/components/menu/MenuSections.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MenuSections.js","sourceRoot":"","sources":["../../../src/components/menu/MenuSections.tsx"],"names":[],"mappings":"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"}
|
|
@@ -134,6 +134,14 @@ export interface MenuSection extends Action {
|
|
|
134
134
|
*/
|
|
135
135
|
className?: string;
|
|
136
136
|
hidden?: boolean;
|
|
137
|
+
/**
|
|
138
|
+
* The items in this group. This property will create a accordion to include the items
|
|
139
|
+
*/
|
|
140
|
+
children?: MenuSection[];
|
|
141
|
+
/**
|
|
142
|
+
* initial value to accordion when using children prop
|
|
143
|
+
*/
|
|
144
|
+
open?: boolean;
|
|
137
145
|
}
|
|
138
146
|
interface BaseMenuProps {
|
|
139
147
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/menu/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,6CAA6C,CAAA;AACpE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAE/C,UAAU,YAAY;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,IAAI,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC;IAC1B;;OAEG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC;IAC3B;;;OAGG;IACH,QAAQ,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;CAC3C;AAED,MAAM,WAAW,SAAU,SAAQ,YAAY;IAC7C;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,QAAQ,EAAE,QAAQ,EAAE,CAAC;IACrB;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,UAAW,SAAQ,MAAM,EAAE,YAAY;IACtD;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,UAAU,CAAA;AAE7C,MAAM,WAAW,YAAa,SAAQ,MAAM;IAC1C;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IACZ;;OAEG;IACH,IAAI,CAAC,EAAE,YAAY,CAAC;CACrB;AAED,MAAM,WAAW,QAAQ;IACvB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B;;OAEG;IACH,YAAY,CAAC,EAAE,QAAQ,CAAC;IACxB;;OAEG;IACH,OAAO,CAAC,EAAE,QAAQ,EAAE,CAAC;IACrB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAY,SAAQ,MAAM;IACzC;;OAEG;IACH,IAAI,EAAE,YAAY,CAAC;IACnB;;;;OAIG;IACH,OAAO,CAAC,EAAE,kBAAkB,GAAG,CAAC,MAAM,kBAAkB,CAAC,CAAC;IAC1D;;;;;OAKG;IACH,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/menu/types.ts"],"names":[],"mappings":"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"}
|
package/dist/layout.css
CHANGED
|
@@ -180,13 +180,11 @@ body {
|
|
|
180
180
|
background: transparent;
|
|
181
181
|
border: none;
|
|
182
182
|
width: var(--menu-sections-width);
|
|
183
|
-
height: var(--menu-item-height);
|
|
184
183
|
display: flex;
|
|
185
184
|
flex-direction: column;
|
|
186
185
|
gap: 10px;
|
|
187
186
|
align-items: flex-start;
|
|
188
187
|
justify-content: center;
|
|
189
|
-
transition: background-color 0.2s;
|
|
190
188
|
cursor: pointer;
|
|
191
189
|
position: relative;
|
|
192
190
|
z-index: 2;
|
|
@@ -265,9 +263,8 @@ body {
|
|
|
265
263
|
}
|
|
266
264
|
|
|
267
265
|
#menuSections .toggle:hover,
|
|
268
|
-
#menuSections > ul li a:hover
|
|
269
|
-
|
|
270
|
-
#menuSections > ul li a:focus {
|
|
266
|
+
#menuSections > ul li a:hover
|
|
267
|
+
{
|
|
271
268
|
background: var(--light-500);
|
|
272
269
|
border-right: 1px solid var(--light-300);
|
|
273
270
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stack-spot/portal-layout",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.11.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
},
|
|
12
12
|
"peerDependencies": {
|
|
13
13
|
"@citric/core": "^6.0.0",
|
|
14
|
-
"@citric/icons": "^5.
|
|
14
|
+
"@citric/icons": "^5.9.0",
|
|
15
15
|
"@citric/ui": "^6.1.1",
|
|
16
16
|
"@stack-spot/portal-theme": "^1.0.0",
|
|
17
17
|
"@stack-spot/portal-translate": "^1.0.0",
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { theme } from '@stack-spot/portal-theme'
|
|
2
|
+
import styled from 'styled-components'
|
|
3
|
+
import { MENU_CONTENT_PADDING as PADDING } from './constants'
|
|
4
|
+
|
|
5
|
+
export const MenuSectionGroup: React.FC<React.HTMLAttributes<HTMLUListElement>> = styled.ul`
|
|
6
|
+
padding: 0 0 0 16px;
|
|
7
|
+
display: flex;
|
|
8
|
+
flex-direction: column;
|
|
9
|
+
visibility: hidden;
|
|
10
|
+
transition: visibility 0s 0.3s;
|
|
11
|
+
|
|
12
|
+
&.no-indentation {
|
|
13
|
+
padding: 0;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
.item-row {
|
|
17
|
+
display: flex;
|
|
18
|
+
flex-direction: row;
|
|
19
|
+
gap: 8px;
|
|
20
|
+
align-items: center;
|
|
21
|
+
|
|
22
|
+
&.root {
|
|
23
|
+
padding: 0 16px;
|
|
24
|
+
margin-top: 16px;
|
|
25
|
+
border-radius: 0;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.label {
|
|
29
|
+
flex: 1;
|
|
30
|
+
&.hidden, &.ellipsis {
|
|
31
|
+
white-space: nowrap;
|
|
32
|
+
overflow: hidden;
|
|
33
|
+
}
|
|
34
|
+
&.ellipsis {
|
|
35
|
+
text-overflow: ellipsis;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
li a {
|
|
41
|
+
position: relative;
|
|
42
|
+
height: 0;
|
|
43
|
+
overflow: hidden;
|
|
44
|
+
transition: height 0.3s, background-color 0.2s;
|
|
45
|
+
|
|
46
|
+
&:hover {
|
|
47
|
+
background-color: ${theme.color.light['500']};
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
&.action {
|
|
51
|
+
&:before {
|
|
52
|
+
content: '';
|
|
53
|
+
position: absolute;
|
|
54
|
+
left: 2px;
|
|
55
|
+
width: 2px;
|
|
56
|
+
height: 0;
|
|
57
|
+
background: inherit;
|
|
58
|
+
transition: height 0.2s;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
&.active {
|
|
62
|
+
|
|
63
|
+
&:hover {
|
|
64
|
+
background-color: transparent;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
&:before {
|
|
68
|
+
background: ${theme.color.primary['500']};
|
|
69
|
+
height: 24px;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
&:not(.active):hover:before {
|
|
74
|
+
background: ${theme.color.light.contrastText};
|
|
75
|
+
height: 24px;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
.chevron {
|
|
80
|
+
transition: transform 0.5s;
|
|
81
|
+
&:not(.open) {
|
|
82
|
+
transform: rotate(180deg);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
.item-row-title {
|
|
87
|
+
opacity: 0.7;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
&.open {
|
|
92
|
+
visibility: visible;
|
|
93
|
+
transition: unset;
|
|
94
|
+
& > li > a {
|
|
95
|
+
height: 56px;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
&:not(.open) &.open > li > a {
|
|
100
|
+
height: 0;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
&.root {
|
|
104
|
+
/* margin-bottom: ${PADDING}px; */
|
|
105
|
+
|
|
106
|
+
& > li {
|
|
107
|
+
.group-title {
|
|
108
|
+
margin-left: ${PADDING}px;
|
|
109
|
+
margin-bottom: 5px;
|
|
110
|
+
margin-top: 40px;
|
|
111
|
+
display: block;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
&:first-child {
|
|
115
|
+
.group-title {
|
|
116
|
+
margin-top: 0;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
`
|
|
@@ -1,13 +1,15 @@
|
|
|
1
|
-
import { Flex, IconBox, Text } from '@citric/core'
|
|
2
|
-
import { ChevronRight, Cog, Collapse, Expand, MobileComments } from '@citric/icons'
|
|
1
|
+
import { Divider, Flex, IconBox, Text } from '@citric/core'
|
|
2
|
+
import { ChevronRight, Cog, Collapse, Expand, MobileComments, ChevronUpFill } from '@citric/icons'
|
|
3
3
|
import { useKeyboardControls } from '@stack-spot/portal-components'
|
|
4
4
|
import { useAnchorTag } from '@stack-spot/portal-components/anchor'
|
|
5
|
+
import { listToClass } from '@stack-spot/portal-theme'
|
|
5
6
|
import { Dictionary, interpolate, useTranslate } from '@stack-spot/portal-translate'
|
|
6
7
|
import { useCallback, useEffect, useMemo, useState } from 'react'
|
|
7
8
|
import { elementIds, getLayoutElements } from '../../elements'
|
|
8
9
|
import { StarFillWithGradient } from '../../svg/StarFillWithGradient'
|
|
9
10
|
import { isLessThan30Days } from '../Rate/hook'
|
|
10
11
|
import { MenuContent } from './MenuContent'
|
|
12
|
+
import { MenuSectionGroup } from './MenuSectionGroup'
|
|
11
13
|
import { MenuProps, MenuSection } from './types'
|
|
12
14
|
|
|
13
15
|
/**
|
|
@@ -108,11 +110,12 @@ const Section = ({
|
|
|
108
110
|
content,
|
|
109
111
|
customContent,
|
|
110
112
|
setCurrentOverlay,
|
|
111
|
-
id,
|
|
112
113
|
hasContent,
|
|
113
|
-
|
|
114
|
+
id,
|
|
114
115
|
}: MenuSection & {
|
|
115
|
-
id: number,
|
|
116
|
+
id: number,
|
|
117
|
+
setCurrentOverlay: (id: number | undefined) => void,
|
|
118
|
+
hasContent: boolean,
|
|
116
119
|
}) => {
|
|
117
120
|
const Link = useAnchorTag()
|
|
118
121
|
const contentToRender = typeof content === 'function' ? content() : content
|
|
@@ -145,11 +148,7 @@ const Section = ({
|
|
|
145
148
|
const labelText = typeof label === 'string' ? label : label.id
|
|
146
149
|
|
|
147
150
|
return (
|
|
148
|
-
|
|
149
|
-
role="menuitem"
|
|
150
|
-
key={labelText}
|
|
151
|
-
title={labelText}
|
|
152
|
-
className={`section-submenu ${className || ''} ${active ? 'active' : ''}`}>
|
|
151
|
+
<>
|
|
153
152
|
<Link
|
|
154
153
|
href={href}
|
|
155
154
|
target={target}
|
|
@@ -181,7 +180,7 @@ const Section = ({
|
|
|
181
180
|
<ChevronRight />
|
|
182
181
|
</IconBox>
|
|
183
182
|
}
|
|
184
|
-
|
|
183
|
+
</>
|
|
185
184
|
)
|
|
186
185
|
}
|
|
187
186
|
|
|
@@ -219,14 +218,17 @@ export const MenuSections = ({ sections = [], ...props }: MenuProps) => {
|
|
|
219
218
|
const t = useTranslate(dictionary)
|
|
220
219
|
// this is a mock state only used to force an update on the component.
|
|
221
220
|
const [_, setUpdate] = useState(0)
|
|
221
|
+
const [isMenuCollapsed, setIsMenuCollapsed] = useState(false)
|
|
222
222
|
|
|
223
223
|
const toggleMenu = useCallback((hasContent: boolean) => {
|
|
224
224
|
const layout = document.getElementById('layout')
|
|
225
225
|
if (!layout) return
|
|
226
226
|
if (layout.classList.contains('menu-compact')) {
|
|
227
227
|
layout.classList.remove('menu-compact')
|
|
228
|
+
setIsMenuCollapsed(false)
|
|
228
229
|
} else {
|
|
229
230
|
layout.classList.add('menu-compact')
|
|
231
|
+
setIsMenuCollapsed(true)
|
|
230
232
|
}
|
|
231
233
|
|
|
232
234
|
if (hasContent) {
|
|
@@ -241,17 +243,33 @@ export const MenuSections = ({ sections = [], ...props }: MenuProps) => {
|
|
|
241
243
|
// the current overlay showing, when the user hovers the section icon. This is the index of the item in the sections array.
|
|
242
244
|
const [currentOverlay, setCurrentOverlay] = useState<number | undefined>()
|
|
243
245
|
|
|
246
|
+
const sectionItemsOverlay = useMemo(
|
|
247
|
+
() => sections.flatMap((s) => 'children' in s ? s.children?.map((c) => c) : s),
|
|
248
|
+
[sections],
|
|
249
|
+
)
|
|
250
|
+
|
|
244
251
|
const sectionItems = useMemo(
|
|
245
252
|
() => sections.reduce<JSX.Element[]>(
|
|
246
253
|
(result, s, i) => s.hidden
|
|
247
254
|
? result
|
|
248
255
|
: [
|
|
249
256
|
...result,
|
|
250
|
-
<
|
|
257
|
+
<li
|
|
258
|
+
role="menuitem"
|
|
259
|
+
key={s.label as string}
|
|
260
|
+
title={s.label as string}
|
|
261
|
+
className={`section-submenu no-indentation ${s.className || ''} ${s.active ? 'active' : undefined}`}>
|
|
262
|
+
{'children' in s ?
|
|
263
|
+
<CollapsibleSection listItems={sectionItemsOverlay} isMenuCollapsed={isMenuCollapsed}
|
|
264
|
+
{...s} setCurrentOverlay={setCurrentOverlay} />
|
|
265
|
+
:
|
|
266
|
+
<Section key={i} id={sectionItemsOverlay.findIndex((sio) => sio?.label === s.label)}
|
|
267
|
+
{...s} setCurrentOverlay={setCurrentOverlay} hasContent={!!props.content || !!props.customContent} />}
|
|
268
|
+
</li>,
|
|
251
269
|
],
|
|
252
270
|
[],
|
|
253
271
|
),
|
|
254
|
-
[sections],
|
|
272
|
+
[sections, isMenuCollapsed],
|
|
255
273
|
)
|
|
256
274
|
|
|
257
275
|
function onPressEscape() {
|
|
@@ -276,18 +294,18 @@ export const MenuSections = ({ sections = [], ...props }: MenuProps) => {
|
|
|
276
294
|
hook, this would cause some serious problems. */
|
|
277
295
|
function renderMenuOverlay() {
|
|
278
296
|
if (currentOverlay === undefined) return null
|
|
279
|
-
const shouldRenderMenuContentInstead = !isMenuContentVisible() &&
|
|
297
|
+
const shouldRenderMenuContentInstead = !isMenuContentVisible() && sectionItemsOverlay[currentOverlay]?.active &&
|
|
280
298
|
(!!props.content || !!props.customContent)
|
|
281
299
|
return shouldRenderMenuContentInstead
|
|
282
300
|
? <OverlayRenderer key={'contentKey' in props ? props.contentKey : undefined} content={props.content}
|
|
283
301
|
customContent={props.customContent} />
|
|
284
|
-
: <OverlayRenderer key={currentOverlay} content={
|
|
285
|
-
customContent={
|
|
302
|
+
: <OverlayRenderer key={currentOverlay} content={sectionItemsOverlay[currentOverlay]?.content}
|
|
303
|
+
customContent={sectionItemsOverlay[currentOverlay]?.customContent} />
|
|
286
304
|
}
|
|
287
305
|
|
|
288
306
|
return (
|
|
289
307
|
<>
|
|
290
|
-
<
|
|
308
|
+
<MenuSectionGroup className="open root no-indentation">{sectionItems}</MenuSectionGroup>
|
|
291
309
|
|
|
292
310
|
<Flex mb={7} alignItems="center">
|
|
293
311
|
<RateAndContactUsItem {...props} />
|
|
@@ -357,6 +375,64 @@ const RateAndContactUsItem = ({ ...props }: Omit<MenuProps, 'sections'>) => {
|
|
|
357
375
|
</>
|
|
358
376
|
}
|
|
359
377
|
|
|
378
|
+
/**
|
|
379
|
+
* A menu item that is actually a subgroup and can be collapsed/expanded.
|
|
380
|
+
* @param props the props for the component {@link MenuSectionGroup} & { root: boolean }.
|
|
381
|
+
|
|
382
|
+
*/
|
|
383
|
+
const CollapsibleSection = ({ label, open: initialValue, children, icon, setCurrentOverlay, listItems, isMenuCollapsed = true }
|
|
384
|
+
: MenuSection
|
|
385
|
+
& {setCurrentOverlay: (id: number | undefined) => void, listItems: (MenuSection | undefined)[], isMenuCollapsed?: boolean }) => {
|
|
386
|
+
|
|
387
|
+
const [open, setOpen] = useState(initialValue || false)
|
|
388
|
+
const menuGroupId = `menuGroup${label}`
|
|
389
|
+
const items = useMemo(() => children?.filter(i => !i.hidden).map(
|
|
390
|
+
(c) => (
|
|
391
|
+
<li
|
|
392
|
+
role="menuitem"
|
|
393
|
+
key={c.label as string}
|
|
394
|
+
title={c.label as string}
|
|
395
|
+
className={`section-submenu ${c.className} ${c.active ? 'active' : ''}`}>
|
|
396
|
+
<Section
|
|
397
|
+
id={listItems?.findIndex((item) => item?.label === c.label)} key={c.label as string}
|
|
398
|
+
{...c} hasContent={false} setCurrentOverlay={setCurrentOverlay} />
|
|
399
|
+
</li>
|
|
400
|
+
)),
|
|
401
|
+
[children])
|
|
402
|
+
|
|
403
|
+
return (
|
|
404
|
+
<>
|
|
405
|
+
{
|
|
406
|
+
isMenuCollapsed ? <Divider /> :
|
|
407
|
+
<a
|
|
408
|
+
onClick={() => setOpen(!open)}
|
|
409
|
+
onKeyDown={e => e.key === 'Enter' && setOpen(!open)}
|
|
410
|
+
className={listToClass(['item-row'])}
|
|
411
|
+
tabIndex={0}
|
|
412
|
+
aria-controls={menuGroupId}
|
|
413
|
+
aria-expanded={open}
|
|
414
|
+
>
|
|
415
|
+
<Flex alignItems="center" justifyContent="center" px={6}>
|
|
416
|
+
{icon}
|
|
417
|
+
<Text appearance="microtext1" className="section-label" ml={3} colorScheme="light.contrastText">
|
|
418
|
+
{label as string}
|
|
419
|
+
</Text>
|
|
420
|
+
<IconBox sx={{ ml: '14' }}>
|
|
421
|
+
<ChevronUpFill className={listToClass(['chevron', open ? 'open' : ''])} />
|
|
422
|
+
{/* <ChevronDown className={listToClass(['chevron', open ? 'open' : ''])} /> */}
|
|
423
|
+
</IconBox>
|
|
424
|
+
</Flex>
|
|
425
|
+
</a>
|
|
426
|
+
}
|
|
427
|
+
<MenuSectionGroup id={menuGroupId}
|
|
428
|
+
className={`${isMenuCollapsed || open ? 'open' : ''} root no-indentation`}
|
|
429
|
+
aria-hidden={!open}>
|
|
430
|
+
{items}
|
|
431
|
+
</MenuSectionGroup>
|
|
432
|
+
</>
|
|
433
|
+
)
|
|
434
|
+
}
|
|
435
|
+
|
|
360
436
|
const dictionary = {
|
|
361
437
|
en: {
|
|
362
438
|
toggle: 'Show or hide the menu',
|
|
@@ -142,6 +142,14 @@ export interface MenuSection extends Action {
|
|
|
142
142
|
*/
|
|
143
143
|
className?: string,
|
|
144
144
|
hidden?: boolean,
|
|
145
|
+
/**
|
|
146
|
+
* The items in this group. This property will create a accordion to include the items
|
|
147
|
+
*/
|
|
148
|
+
children?: MenuSection[],
|
|
149
|
+
/**
|
|
150
|
+
* initial value to accordion when using children prop
|
|
151
|
+
*/
|
|
152
|
+
open?: boolean,
|
|
145
153
|
}
|
|
146
154
|
|
|
147
155
|
interface BaseMenuProps {
|
package/src/layout.css
CHANGED
|
@@ -180,13 +180,11 @@ body {
|
|
|
180
180
|
background: transparent;
|
|
181
181
|
border: none;
|
|
182
182
|
width: var(--menu-sections-width);
|
|
183
|
-
height: var(--menu-item-height);
|
|
184
183
|
display: flex;
|
|
185
184
|
flex-direction: column;
|
|
186
185
|
gap: 10px;
|
|
187
186
|
align-items: flex-start;
|
|
188
187
|
justify-content: center;
|
|
189
|
-
transition: background-color 0.2s;
|
|
190
188
|
cursor: pointer;
|
|
191
189
|
position: relative;
|
|
192
190
|
z-index: 2;
|
|
@@ -265,9 +263,8 @@ body {
|
|
|
265
263
|
}
|
|
266
264
|
|
|
267
265
|
#menuSections .toggle:hover,
|
|
268
|
-
#menuSections > ul li a:hover
|
|
269
|
-
|
|
270
|
-
#menuSections > ul li a:focus {
|
|
266
|
+
#menuSections > ul li a:hover
|
|
267
|
+
{
|
|
271
268
|
background: var(--light-500);
|
|
272
269
|
border-right: 1px solid var(--light-300);
|
|
273
270
|
}
|