@stack-spot/portal-layout 2.10.0 → 2.12.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 +14 -0
- package/dist/components/NotificationCenter/index.d.ts.map +1 -1
- package/dist/components/NotificationCenter/index.js +0 -2
- package/dist/components/NotificationCenter/index.js.map +1 -1
- package/dist/components/PortalSwitcher.d.ts +0 -6
- package/dist/components/PortalSwitcher.d.ts.map +1 -1
- package/dist/components/PortalSwitcher.js +2 -35
- package/dist/components/PortalSwitcher.js.map +1 -1
- 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/NotificationCenter/index.tsx +0 -2
- package/src/components/PortalSwitcher.tsx +1 -42
- 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/dist/components/NotificationCenter/tour.d.ts +0 -2
- package/dist/components/NotificationCenter/tour.d.ts.map +0 -1
- package/dist/components/NotificationCenter/tour.js +0 -15
- package/dist/components/NotificationCenter/tour.js.map +0 -1
- package/src/components/NotificationCenter/tour.tsx +0 -19
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [2.12.0](https://github.com/stack-spot/portal-commons/compare/portal-layout@v2.11.0...portal-layout@v2.12.0) (2024-10-11)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Features
|
|
7
|
+
|
|
8
|
+
* Remove tour from portal ([#408](https://github.com/stack-spot/portal-commons/issues/408)) ([13fe9a4](https://github.com/stack-spot/portal-commons/commit/13fe9a4be17a41b97fefcc80da9adc4567727306))
|
|
9
|
+
|
|
10
|
+
## [2.11.0](https://github.com/stack-spot/portal-commons/compare/portal-layout@v2.10.0...portal-layout@v2.11.0) (2024-10-11)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Features
|
|
14
|
+
|
|
15
|
+
* 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))
|
|
16
|
+
|
|
3
17
|
## [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
18
|
|
|
5
19
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/NotificationCenter/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/NotificationCenter/index.tsx"],"names":[],"mappings":"AAcA,eAAO,MAAM,kBAAkB,+CA2C9B,CAAA"}
|
|
@@ -9,7 +9,6 @@ import { useEffect, useState } from 'react';
|
|
|
9
9
|
import { useNotificationsDictionary } from './dictionary.js';
|
|
10
10
|
import { NotificationPanel } from './NotificationPanel.js';
|
|
11
11
|
import { NotificationBox } from './styled.js';
|
|
12
|
-
import { useNotificationsTourStep } from './tour.js';
|
|
13
12
|
import { getFiltersFromName, getNameFromFilters } from './utils.js';
|
|
14
13
|
const MAX_ITEMS = 10;
|
|
15
14
|
export const NotificationCenter = () => {
|
|
@@ -18,7 +17,6 @@ export const NotificationCenter = () => {
|
|
|
18
17
|
const { applyFilters, filters, items, status, error } = useNotificationList({ size: MAX_ITEMS });
|
|
19
18
|
const hasUnreadNotification = useUnreadNotifications();
|
|
20
19
|
const controller = useNotificationController();
|
|
21
|
-
useNotificationsTourStep();
|
|
22
20
|
useEffectOnce(() => {
|
|
23
21
|
controller.checkUnread();
|
|
24
22
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/NotificationCenter/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAA;AAC7D,OAAO,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,6CAA6C,CAAA;AACpI,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACtD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAC3C,OAAO,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAA;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAC1C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/NotificationCenter/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAA;AAC7D,OAAO,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,6CAA6C,CAAA;AACpI,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACtD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAC3C,OAAO,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAA;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAC1C,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAEhE,MAAM,SAAS,GAAG,EAAE,CAAA;AAEpB,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,EAAE;IACrC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IACvC,MAAM,CAAC,GAAG,0BAA0B,EAAE,CAAA;IACtC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,mBAAmB,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;IAChG,MAAM,qBAAqB,GAAG,sBAAsB,EAAE,CAAA;IACtD,MAAM,UAAU,GAAG,yBAAyB,EAAE,CAAA;IAE9C,aAAa,CAAC,GAAG,EAAE;QACjB,UAAU,CAAC,WAAW,EAAE,CAAA;IAC1B,CAAC,CAAC,CAAA;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,IAAI,IAAI,CAAC,qBAAqB,IAAI,kBAAkB,CAAC,OAAO,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC;YAC7E,YAAY,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAA;QACzC,CAAC;IACH,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;IAEV,OAAO,CACL,MAAC,eAAe,eACd,KAAC,UAAU,kBACG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,EAC/E,OAAO,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAC/D,SAAS,EAAE,WAAW,CAAC;oBACrB,qBAAqB;oBACrB,MAAM,KAAK,SAAS,IAAI,SAAS;oBACjC,MAAM,KAAK,SAAS,IAAI,qBAAqB,IAAI,QAAQ;iBAC1D,CAAC,YAEF,KAAC,OAAO,IAAC,IAAI,EAAC,IAAI,EAAC,SAAS,EAAC,mBAAmB,YAC9C,KAAC,IAAI,KAAG,GACA,GACC,EACb,KAAC,iBAAiB,IAChB,MAAM,EAAE,kBAAkB,CAAC,OAAO,CAAC,EACnC,OAAO,EAAE,MAAM,KAAK,SAAS,EAC7B,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,IAAI,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAC7B,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,EAAE,GAAG,kBAAkB,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,GACpF,IACc,CACnB,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -21,10 +21,4 @@ export interface PortalSwitcherProps {
|
|
|
21
21
|
* @param props the component Props {@link PortalSwitcherProps}.
|
|
22
22
|
*/
|
|
23
23
|
export declare const PortalSwitcher: ({ portals }: PortalSwitcherProps) => import("react/jsx-runtime").JSX.Element;
|
|
24
|
-
/**
|
|
25
|
-
* Tutorial: a React hook for retrieving the React Tour step that explains how the portal switcher works. The portal switcher is a component
|
|
26
|
-
* at the top left corner of the layout (header) that allows the user to switch between the different Stackspot portals.
|
|
27
|
-
* @returns the React Tour step for the PortalSwitcher.
|
|
28
|
-
*/
|
|
29
|
-
export declare const usePortalSwitcherTourStep: () => void;
|
|
30
24
|
//# sourceMappingURL=PortalSwitcher.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PortalSwitcher.d.ts","sourceRoot":"","sources":["../../src/components/PortalSwitcher.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PortalSwitcher.d.ts","sourceRoot":"","sources":["../../src/components/PortalSwitcher.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AASxC,MAAM,WAAW,MAAM;IACrB;;OAEG;IACH,OAAO,EAAE,aAAa,CAAC;IACvB;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AA0DD;;;;GAIG;AACH,eAAO,MAAM,cAAc,gBAAsB,mBAAmB,4CAwCnE,CAAA"}
|
|
@@ -1,13 +1,11 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs
|
|
2
|
-
import {
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Button, Flex, IconBox } from '@citric/core';
|
|
3
3
|
import { ArrowRight, CheckCircleFill, Select } from '@citric/icons';
|
|
4
4
|
import { SelectionList } from '@stack-spot/portal-components/SelectionList';
|
|
5
5
|
import { AI, CS, EDP, HUB, Logo } from '@stack-spot/portal-components/svg';
|
|
6
6
|
import { theme } from '@stack-spot/portal-theme';
|
|
7
|
-
import { useTranslate } from '@stack-spot/portal-translate';
|
|
8
7
|
import { useState } from 'react';
|
|
9
8
|
import styled from 'styled-components';
|
|
10
|
-
import { useTour } from './tour/index.js';
|
|
11
9
|
const Logos = {
|
|
12
10
|
'AI': _jsx(AI, {}),
|
|
13
11
|
'EDP': _jsx(EDP, {}),
|
|
@@ -77,7 +75,6 @@ const PORTAL_SWITCHER_ID = 'PortalSwitcher';
|
|
|
77
75
|
export const PortalSwitcher = ({ portals = [] }) => {
|
|
78
76
|
const [visible, setVisible] = useState(false);
|
|
79
77
|
const currentPortal = portals?.find(portal => location.href.startsWith(portal.url));
|
|
80
|
-
usePortalSwitcherTourStep();
|
|
81
78
|
return _jsxs(PortalSwitcherBox, { children: [currentPortal ?
|
|
82
79
|
_jsx(Button, { className: "current-portal", appearance: "text", colorScheme: "light", "aria-controls": PORTAL_SWITCHER_ID, "aria-expanded": visible, onClick: () => {
|
|
83
80
|
setVisible(!visible);
|
|
@@ -94,34 +91,4 @@ export const PortalSwitcher = ({ portals = [] }) => {
|
|
|
94
91
|
iconRight: portal.acronym !== currentPortal?.acronym ? _jsx(ArrowRight, {}) : undefined,
|
|
95
92
|
})), visible: visible, maxHeight: "21rem", onHide: () => setVisible(false) })] });
|
|
96
93
|
};
|
|
97
|
-
/**
|
|
98
|
-
* Tutorial: a React hook for retrieving the React Tour step that explains how the portal switcher works. The portal switcher is a component
|
|
99
|
-
* at the top left corner of the layout (header) that allows the user to switch between the different Stackspot portals.
|
|
100
|
-
* @returns the React Tour step for the PortalSwitcher.
|
|
101
|
-
*/
|
|
102
|
-
export const usePortalSwitcherTourStep = () => {
|
|
103
|
-
const t = useTranslate(tourTranslations);
|
|
104
|
-
const { addStep } = useTour();
|
|
105
|
-
addStep({
|
|
106
|
-
selector: '.portal-switcher',
|
|
107
|
-
title: t.title,
|
|
108
|
-
content: _jsxs(_Fragment, { children: [_jsx(Image, { src: "https://marketing.stackspot.com/switch-v2.gif", alt: t.imageAlt }), _jsx(Box, { px: 5, py: 3, children: _jsx(Text, { appearance: "microtext1", colorScheme: "inverse.contrastText", children: t.description }) })] }),
|
|
109
|
-
position: 'right',
|
|
110
|
-
style: {
|
|
111
|
-
width: '300px',
|
|
112
|
-
},
|
|
113
|
-
});
|
|
114
|
-
};
|
|
115
|
-
const tourTranslations = {
|
|
116
|
-
en: {
|
|
117
|
-
title: 'Expand Your Horizons with Stackspot',
|
|
118
|
-
description: 'Easily switch between EDP and AI to enhance your projects. Access a wide range of resources with just one click and take your projects to a new level of efficiency. Start your journey now!',
|
|
119
|
-
imageAlt: 'GIF describing how to use product switcher and navigate between AI and EDP portals',
|
|
120
|
-
},
|
|
121
|
-
pt: {
|
|
122
|
-
title: 'Expanda Seus Horizontes com Stackspot',
|
|
123
|
-
description: 'Troque facilmente entre EDP e AI para aprimorar seus projetos. Acesse uma ampla gama de recursos com apenas um clique e leve seus projetos para um novo nível de eficiência. Comece sua jornada agora!',
|
|
124
|
-
imageAlt: 'GIF mostrando como usar o alternador de produtos e navegar entre os portais AI e EDP',
|
|
125
|
-
},
|
|
126
|
-
};
|
|
127
94
|
//# sourceMappingURL=PortalSwitcher.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PortalSwitcher.js","sourceRoot":"","sources":["../../src/components/PortalSwitcher.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"PortalSwitcher.js","sourceRoot":"","sources":["../../src/components/PortalSwitcher.tsx"],"names":[],"mappings":"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"}
|
|
@@ -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":"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;IACjB;;OAEG;IACH,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;IACzB;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,UAAU,aAAa;IACrB;;OAEG;IACH,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;IACzB;;;OAGG;IACH,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B;;OAEG;IACH,QAAQ,CAAC,EAAE;QACT;;WAEG;QACH,IAAI,CAAC,EAAE,OAAO,CAAC;QACf;;WAEG;QACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;QACrB;;WAEG;QACH,IAAI,CAAC,EAAE,MAAM,CAAC;QACd;;WAEG;QACH,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB;;WAEG;QACH,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF;;OAEG;IACH,MAAM,CAAC,EAAE;QACP;;WAEG;QACH,IAAI,CAAC,EAAE,OAAO,CAAC;QACf;;WAEG;QACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;QACrB;;WAEG;QACH,IAAI,CAAC,EAAE,MAAM,CAAC;QACd;;WAEG;QACH,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB;;WAEG;QACH,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF;;OAEG;IACH,SAAS,CAAC,EAAE;QACV;;WAEG;QACH,IAAI,CAAC,EAAE,OAAO,CAAC;QACf;;WAEG;QACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;QACrB;;WAEG;QACH,IAAI,CAAC,EAAE,MAAM,CAAC;QACd;;WAEG;QACH,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB;;WAEG;QACH,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB;;WAEG;QACH,MAAM,CAAC,EAAE,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,CAAC;KAClE,CAAC;CACH;AAED,MAAM,WAAW,0BAA2B,SAAQ,aAAa;IAC/D;;OAEG;IACH,OAAO,CAAC,EAAE,kBAAkB,CAAC;CAC9B;AAED,MAAM,WAAW,2BAA4B,SAAQ,aAAa;IAChE;;;;;OAKG;IACH,OAAO,EAAE,kBAAkB,GAAG,CAAC,MAAM,kBAAkB,CAAC,CAAC;IACzD;;OAEG;IACH,UAAU,EAAE,KAAK,CAAC,GAAG,CAAC;CACvB;AAED,MAAM,MAAM,SAAS,GAAG,0BAA0B,GAAG,2BAA2B,CAAA"}
|
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.12.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",
|
|
@@ -8,7 +8,6 @@ import { useEffect, useState } from 'react'
|
|
|
8
8
|
import { useNotificationsDictionary } from './dictionary'
|
|
9
9
|
import { NotificationPanel } from './NotificationPanel'
|
|
10
10
|
import { NotificationBox } from './styled'
|
|
11
|
-
import { useNotificationsTourStep } from './tour'
|
|
12
11
|
import { getFiltersFromName, getNameFromFilters } from './utils'
|
|
13
12
|
|
|
14
13
|
const MAX_ITEMS = 10
|
|
@@ -19,7 +18,6 @@ export const NotificationCenter = () => {
|
|
|
19
18
|
const { applyFilters, filters, items, status, error } = useNotificationList({ size: MAX_ITEMS })
|
|
20
19
|
const hasUnreadNotification = useUnreadNotifications()
|
|
21
20
|
const controller = useNotificationController()
|
|
22
|
-
useNotificationsTourStep()
|
|
23
21
|
|
|
24
22
|
useEffectOnce(() => {
|
|
25
23
|
controller.checkUnread()
|
|
@@ -1,13 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Button, Flex, IconBox } from '@citric/core'
|
|
2
2
|
import { ArrowRight, CheckCircleFill, Select } from '@citric/icons'
|
|
3
3
|
import { SelectionList } from '@stack-spot/portal-components/SelectionList'
|
|
4
4
|
import { AI, CS, EDP, HUB, Logo } from '@stack-spot/portal-components/svg'
|
|
5
5
|
import { theme } from '@stack-spot/portal-theme'
|
|
6
|
-
import { useTranslate } from '@stack-spot/portal-translate'
|
|
7
6
|
import { ReactNode, useState } from 'react'
|
|
8
7
|
import styled from 'styled-components'
|
|
9
8
|
import { PortalAcronym } from '../types'
|
|
10
|
-
import { useTour } from './tour'
|
|
11
9
|
|
|
12
10
|
const Logos: Record<PortalAcronym, ReactNode> = {
|
|
13
11
|
'AI': <AI />,
|
|
@@ -98,7 +96,6 @@ const PORTAL_SWITCHER_ID = 'PortalSwitcher'
|
|
|
98
96
|
export const PortalSwitcher = ({ portals = [] }: PortalSwitcherProps) => {
|
|
99
97
|
const [visible, setVisible] = useState<boolean>(false)
|
|
100
98
|
const currentPortal = portals?.find(portal => location.href.startsWith(portal.url))
|
|
101
|
-
usePortalSwitcherTourStep()
|
|
102
99
|
|
|
103
100
|
return <PortalSwitcherBox>
|
|
104
101
|
{currentPortal ?
|
|
@@ -137,41 +134,3 @@ export const PortalSwitcher = ({ portals = [] }: PortalSwitcherProps) => {
|
|
|
137
134
|
onHide={() => setVisible(false)} />
|
|
138
135
|
</PortalSwitcherBox >
|
|
139
136
|
}
|
|
140
|
-
|
|
141
|
-
/**
|
|
142
|
-
* Tutorial: a React hook for retrieving the React Tour step that explains how the portal switcher works. The portal switcher is a component
|
|
143
|
-
* at the top left corner of the layout (header) that allows the user to switch between the different Stackspot portals.
|
|
144
|
-
* @returns the React Tour step for the PortalSwitcher.
|
|
145
|
-
*/
|
|
146
|
-
export const usePortalSwitcherTourStep = () => {
|
|
147
|
-
const t = useTranslate(tourTranslations)
|
|
148
|
-
const { addStep } = useTour()
|
|
149
|
-
|
|
150
|
-
addStep({
|
|
151
|
-
selector: '.portal-switcher',
|
|
152
|
-
title: t.title,
|
|
153
|
-
content: <>
|
|
154
|
-
<Image src="https://marketing.stackspot.com/switch-v2.gif" alt={t.imageAlt} />
|
|
155
|
-
<Box px={5} py={3}>
|
|
156
|
-
<Text appearance="microtext1" colorScheme="inverse.contrastText">{t.description}</Text>
|
|
157
|
-
</Box>
|
|
158
|
-
</>,
|
|
159
|
-
position: 'right',
|
|
160
|
-
style: {
|
|
161
|
-
width: '300px',
|
|
162
|
-
},
|
|
163
|
-
})
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
const tourTranslations = {
|
|
167
|
-
en: {
|
|
168
|
-
title: 'Expand Your Horizons with Stackspot',
|
|
169
|
-
description: 'Easily switch between EDP and AI to enhance your projects. Access a wide range of resources with just one click and take your projects to a new level of efficiency. Start your journey now!',
|
|
170
|
-
imageAlt: 'GIF describing how to use product switcher and navigate between AI and EDP portals',
|
|
171
|
-
},
|
|
172
|
-
pt: {
|
|
173
|
-
title: 'Expanda Seus Horizontes com Stackspot',
|
|
174
|
-
description: 'Troque facilmente entre EDP e AI para aprimorar seus projetos. Acesse uma ampla gama de recursos com apenas um clique e leve seus projetos para um novo nível de eficiência. Comece sua jornada agora!',
|
|
175
|
-
imageAlt: 'GIF mostrando como usar o alternador de produtos e navegar entre os portais AI e EDP',
|
|
176
|
-
},
|
|
177
|
-
}
|
|
@@ -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
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tour.d.ts","sourceRoot":"","sources":["../../../src/components/NotificationCenter/tour.tsx"],"names":[],"mappings":"AAIA,eAAO,MAAM,wBAAwB,YAcpC,CAAA"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { Box, Text } from '@citric/core';
|
|
3
|
-
import { useTour } from '../tour/index.js';
|
|
4
|
-
import { useNotificationsDictionary } from './dictionary.js';
|
|
5
|
-
export const useNotificationsTourStep = () => {
|
|
6
|
-
const t = useNotificationsDictionary();
|
|
7
|
-
const { addStep } = useTour();
|
|
8
|
-
addStep({
|
|
9
|
-
content: _jsx(Box, { px: 5, py: 3, children: _jsx(Text, { appearance: "microtext1", colorScheme: "inverse.contrastText", children: t.tour }) }),
|
|
10
|
-
selector: '.notificationsTour',
|
|
11
|
-
title: t.notifications,
|
|
12
|
-
position: 'bottom',
|
|
13
|
-
});
|
|
14
|
-
};
|
|
15
|
-
//# sourceMappingURL=tour.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tour.js","sourceRoot":"","sources":["../../../src/components/NotificationCenter/tour.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAA;AAEzD,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAG,EAAE;IAC3C,MAAM,CAAC,GAAG,0BAA0B,EAAE,CAAA;IACtC,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,CAAA;IAE7B,OAAO,CAAC;QACN,OAAO,EAAE,KAAC,GAAG,IAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,YACxB,KAAC,IAAI,IAAC,UAAU,EAAC,YAAY,EAAC,WAAW,EAAC,sBAAsB,YAC7D,CAAC,CAAC,IAAI,GACF,GACH;QACN,QAAQ,EAAE,oBAAoB;QAC9B,KAAK,EAAE,CAAC,CAAC,aAAa;QACtB,QAAQ,EAAE,QAAQ;KACZ,CAAC,CAAA;AACX,CAAC,CAAA"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { Box, Text } from '@citric/core'
|
|
2
|
-
import { useTour } from '../tour'
|
|
3
|
-
import { useNotificationsDictionary } from './dictionary'
|
|
4
|
-
|
|
5
|
-
export const useNotificationsTourStep = () => {
|
|
6
|
-
const t = useNotificationsDictionary()
|
|
7
|
-
const { addStep } = useTour()
|
|
8
|
-
|
|
9
|
-
addStep({
|
|
10
|
-
content: <Box px={5} py={3}>
|
|
11
|
-
<Text appearance="microtext1" colorScheme="inverse.contrastText">
|
|
12
|
-
{t.tour}
|
|
13
|
-
</Text>
|
|
14
|
-
</Box>,
|
|
15
|
-
selector: '.notificationsTour',
|
|
16
|
-
title: t.notifications,
|
|
17
|
-
position: 'bottom',
|
|
18
|
-
} as any)
|
|
19
|
-
}
|