@xyo-network/react-appbar 2.25.39 → 2.25.42
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/dist/cjs/components/{Toolbar/System/SiteMenu.d.ts → SiteMenu/Menu.d.ts} +1 -8
- package/dist/cjs/components/SiteMenu/Menu.js +20 -0
- package/dist/cjs/components/SiteMenu/Menu.js.map +1 -0
- package/dist/cjs/components/SiteMenu/MenuItems.d.ts +11 -0
- package/dist/cjs/components/SiteMenu/MenuItems.js +13 -0
- package/dist/cjs/components/SiteMenu/MenuItems.js.map +1 -0
- package/dist/cjs/components/SiteMenu/index.d.ts +2 -0
- package/dist/cjs/components/SiteMenu/index.js +6 -0
- package/dist/cjs/components/SiteMenu/index.js.map +1 -0
- package/dist/cjs/components/Toolbar/System/SystemToolbar.d.ts +2 -3
- package/dist/cjs/components/Toolbar/System/SystemToolbar.js +3 -3
- package/dist/cjs/components/Toolbar/System/SystemToolbar.js.map +1 -1
- package/dist/cjs/components/Toolbar/System/index.d.ts +0 -1
- package/dist/cjs/components/Toolbar/System/index.js +0 -1
- package/dist/cjs/components/Toolbar/System/index.js.map +1 -1
- package/dist/cjs/components/index.d.ts +1 -0
- package/dist/cjs/components/index.js +1 -0
- package/dist/cjs/components/index.js.map +1 -1
- package/dist/docs.json +12132 -2252
- package/dist/esm/components/{Toolbar/System/SiteMenu.d.ts → SiteMenu/Menu.d.ts} +1 -8
- package/dist/esm/components/SiteMenu/Menu.js +14 -0
- package/dist/esm/components/SiteMenu/Menu.js.map +1 -0
- package/dist/esm/components/SiteMenu/MenuItems.d.ts +11 -0
- package/dist/esm/components/SiteMenu/MenuItems.js +7 -0
- package/dist/esm/components/SiteMenu/MenuItems.js.map +1 -0
- package/dist/esm/components/SiteMenu/index.d.ts +2 -0
- package/dist/esm/components/SiteMenu/index.js +3 -0
- package/dist/esm/components/SiteMenu/index.js.map +1 -0
- package/dist/esm/components/Toolbar/System/SystemToolbar.d.ts +2 -3
- package/dist/esm/components/Toolbar/System/SystemToolbar.js +3 -3
- package/dist/esm/components/Toolbar/System/SystemToolbar.js.map +1 -1
- package/dist/esm/components/Toolbar/System/index.d.ts +0 -1
- package/dist/esm/components/Toolbar/System/index.js +0 -1
- package/dist/esm/components/Toolbar/System/index.js.map +1 -1
- package/dist/esm/components/index.d.ts +1 -0
- package/dist/esm/components/index.js +1 -0
- package/dist/esm/components/index.js.map +1 -1
- package/package.json +14 -14
- package/src/components/SiteMenu/Menu.tsx +39 -0
- package/src/components/SiteMenu/MenuItems.tsx +22 -0
- package/src/components/SiteMenu/index.ts +2 -0
- package/src/components/Toolbar/System/SystemToolbar.tsx +5 -4
- package/src/components/Toolbar/System/index.ts +0 -1
- package/src/components/index.ts +1 -0
- package/dist/cjs/components/Toolbar/System/SiteMenu.js +0 -41
- package/dist/cjs/components/Toolbar/System/SiteMenu.js.map +0 -1
- package/dist/esm/components/Toolbar/System/SiteMenu.js +0 -35
- package/dist/esm/components/Toolbar/System/SiteMenu.js.map +0 -1
- package/src/components/Toolbar/System/SiteMenu.tsx +0 -77
|
@@ -1,14 +1,7 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { FlexBoxProps } from '@xylabs/sdk-react';
|
|
3
|
-
import { To } from 'react-router-dom';
|
|
4
|
-
export interface SiteMenuItem {
|
|
5
|
-
name: string;
|
|
6
|
-
to?: To;
|
|
7
|
-
href?: string;
|
|
8
|
-
onClick?: () => void;
|
|
9
|
-
}
|
|
10
3
|
export interface SiteMenuProps extends FlexBoxProps {
|
|
11
4
|
hideSettingsMenuItem?: boolean;
|
|
12
|
-
|
|
5
|
+
side?: 'left' | 'right' | 'top' | 'bottom';
|
|
13
6
|
}
|
|
14
7
|
export declare const SiteMenu: React.FC<SiteMenuProps>;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import MenuIcon from '@mui/icons-material/Menu';
|
|
3
|
+
import SettingsIcon from '@mui/icons-material/Settings';
|
|
4
|
+
import { Box, IconButton, List, SwipeableDrawer } from '@mui/material';
|
|
5
|
+
import { FlexRow } from '@xylabs/sdk-react';
|
|
6
|
+
import { useState } from 'react';
|
|
7
|
+
import { DrawerListItem } from './MenuItems';
|
|
8
|
+
export const SiteMenu = ({ side = 'right', children, ...props }) => {
|
|
9
|
+
const [open, setOpen] = useState(false);
|
|
10
|
+
return (_jsxs(FlexRow, { alignItems: "stretch", ...props, children: [_jsx(IconButton, { size: "small", color: "inherit", onClick: () => {
|
|
11
|
+
setOpen(!open);
|
|
12
|
+
}, children: _jsx(MenuIcon, { fontSize: "large" }) }), _jsx(SwipeableDrawer, { anchor: side, open: open, onClose: () => setOpen(false), onOpen: () => setOpen(true), children: _jsx(Box, { width: "auto", role: "presentation", onClick: () => setOpen(false), onKeyDown: () => setOpen(false), children: children ?? (_jsx(List, { children: _jsx(DrawerListItem, { primary: "Settings", icon: _jsx(SettingsIcon, {}), to: "/settings" }) })) }) })] }));
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=Menu.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Menu.js","sourceRoot":"","sources":["../../../../src/components/SiteMenu/Menu.tsx"],"names":[],"mappings":";AAAA,OAAO,QAAQ,MAAM,0BAA0B,CAAA;AAC/C,OAAO,YAAY,MAAM,8BAA8B,CAAA;AACvD,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AACtE,OAAO,EAAgB,OAAO,EAAE,MAAM,mBAAmB,CAAA;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEhC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAO5C,MAAM,CAAC,MAAM,QAAQ,GAA4B,CAAC,EAAE,IAAI,GAAG,OAAO,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE;IAC1F,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAEvC,OAAO,CACL,MAAC,OAAO,IAAC,UAAU,EAAC,SAAS,KAAK,KAAK,aACrC,KAAC,UAAU,IACT,IAAI,EAAC,OAAO,EACZ,KAAK,EAAC,SAAS,EACf,OAAO,EAAE,GAAG,EAAE;oBACZ,OAAO,CAAC,CAAC,IAAI,CAAC,CAAA;gBAChB,CAAC,YAED,KAAC,QAAQ,IAAC,QAAQ,EAAC,OAAO,GAAG,GAClB,EACb,KAAC,eAAe,IAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,YACnG,KAAC,GAAG,IAAC,KAAK,EAAC,MAAM,EAAC,IAAI,EAAC,cAAc,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,YACjG,QAAQ,IAAI,CACX,KAAC,IAAI,cACH,KAAC,cAAc,IAAC,OAAO,EAAC,UAAU,EAAC,IAAI,EAAE,KAAC,YAAY,KAAG,EAAE,EAAE,EAAC,WAAW,GAAG,GACvE,CACR,GACG,GACU,IACV,CACX,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ListItemProps, ListItemTextProps } from '@mui/material';
|
|
2
|
+
import { ListItemButtonExProps } from '@xyo-network/react-shared';
|
|
3
|
+
import { ReactNode } from 'react';
|
|
4
|
+
import { To } from 'react-router-dom';
|
|
5
|
+
export interface DrawerListItemProps extends ListItemProps {
|
|
6
|
+
primary: ListItemTextProps['primary'];
|
|
7
|
+
to?: To;
|
|
8
|
+
icon?: ReactNode;
|
|
9
|
+
onButtonClick?: ListItemButtonExProps['onClick'];
|
|
10
|
+
}
|
|
11
|
+
export declare const DrawerListItem: React.FC<DrawerListItemProps>;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { ListItem, ListItemIcon, ListItemText } from '@mui/material';
|
|
3
|
+
import { ListItemButtonEx } from '@xyo-network/react-shared';
|
|
4
|
+
export const DrawerListItem = ({ primary, to, icon, onButtonClick, ...props }) => {
|
|
5
|
+
return (_jsx(ListItem, { ...props, children: _jsxs(ListItemButtonEx, { to: to, onClick: onButtonClick, children: [_jsx(ListItemIcon, { children: icon }), _jsx(ListItemText, { primary: primary })] }) }));
|
|
6
|
+
};
|
|
7
|
+
//# sourceMappingURL=MenuItems.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MenuItems.js","sourceRoot":"","sources":["../../../../src/components/SiteMenu/MenuItems.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAiB,YAAY,EAAqB,MAAM,eAAe,CAAA;AACtG,OAAO,EAAE,gBAAgB,EAAyB,MAAM,2BAA2B,CAAA;AAWnF,MAAM,CAAC,MAAM,cAAc,GAAkC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE;IAC9G,OAAO,CACL,KAAC,QAAQ,OAAK,KAAK,YACjB,MAAC,gBAAgB,IAAC,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,aAAa,aAC9C,KAAC,YAAY,cAAE,IAAI,GAAgB,EACnC,KAAC,YAAY,IAAC,OAAO,EAAE,OAAO,GAAI,IACjB,GACV,CACZ,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/SiteMenu/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAA;AACtB,cAAc,aAAa,CAAA"}
|
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
1
|
import { ToolbarProps } from '@mui/material';
|
|
3
2
|
import { SelectExProps } from '@xylabs/sdk-react';
|
|
4
3
|
import { NetworkSelectExProps } from '@xyo-network/react-network';
|
|
5
|
-
import {
|
|
4
|
+
import { ReactNode } from 'react';
|
|
6
5
|
export interface SystemToolbarProps extends ToolbarProps {
|
|
7
6
|
networkSelectProps?: NetworkSelectExProps;
|
|
8
7
|
archiveSelectProps?: SelectExProps<string>;
|
|
9
8
|
hideNetworkSelect?: boolean;
|
|
10
9
|
hideArchiveSelect?: boolean;
|
|
11
|
-
|
|
10
|
+
menu?: ReactNode;
|
|
12
11
|
darkModeButton?: boolean;
|
|
13
12
|
authButton?: boolean;
|
|
14
13
|
noMenu?: boolean;
|
|
@@ -5,8 +5,8 @@ import { ArchiveSelectEx } from '@xyo-network/react-archive';
|
|
|
5
5
|
import { AuthStatusIconButton } from '@xyo-network/react-auth';
|
|
6
6
|
import { NetworkSelectEx } from '@xyo-network/react-network';
|
|
7
7
|
import { DarkModeIconButton } from '@xyo-network/react-shared';
|
|
8
|
-
import { SiteMenu } from '
|
|
9
|
-
export const SystemToolbar = ({ children, networkSelectProps, archiveSelectProps, hideNetworkSelect, hideArchiveSelect,
|
|
10
|
-
return (_jsxs(Toolbar, { ...props, children: [hideNetworkSelect ? null : (_jsx(FlexRow, { marginX: 0.5, maxWidth: 120, children: _jsx(Paper, { variant: "elevation", children: _jsx(NetworkSelectEx, { fullWidth: true, ...networkSelectProps }) }) })), hideArchiveSelect ? null : (_jsx(FlexRow, { marginX: 0.5, maxWidth: 120, children: _jsx(Paper, { variant: "elevation", children: _jsx(ArchiveSelectEx, { fullWidth: true, ...archiveSelectProps }) }) })), children, authButton ? _jsx(AuthStatusIconButton, { color: "inherit" }) : null, darkModeButton ? _jsx(DarkModeIconButton, { color: "inherit" }) : null, noMenu ? null : _jsx(SiteMenu, {
|
|
8
|
+
import { SiteMenu } from '../../SiteMenu';
|
|
9
|
+
export const SystemToolbar = ({ children, networkSelectProps, archiveSelectProps, hideNetworkSelect, hideArchiveSelect, menu, darkModeButton = false, authButton = false, noMenu = false, ...props }) => {
|
|
10
|
+
return (_jsxs(Toolbar, { ...props, children: [hideNetworkSelect ? null : (_jsx(FlexRow, { marginX: 0.5, maxWidth: 120, children: _jsx(Paper, { variant: "elevation", children: _jsx(NetworkSelectEx, { fullWidth: true, ...networkSelectProps }) }) })), hideArchiveSelect ? null : (_jsx(FlexRow, { marginX: 0.5, maxWidth: 120, children: _jsx(Paper, { variant: "elevation", children: _jsx(ArchiveSelectEx, { fullWidth: true, ...archiveSelectProps }) }) })), children, authButton ? _jsx(AuthStatusIconButton, { color: "inherit" }) : null, darkModeButton ? _jsx(DarkModeIconButton, { color: "inherit" }) : null, noMenu ? null : _jsx(SiteMenu, { children: menu })] }));
|
|
11
11
|
};
|
|
12
12
|
//# sourceMappingURL=SystemToolbar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SystemToolbar.js","sourceRoot":"","sources":["../../../../../src/components/Toolbar/System/SystemToolbar.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAgB,MAAM,eAAe,CAAA;AAC5D,OAAO,EAAE,OAAO,EAAiB,MAAM,mBAAmB,CAAA;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,EAAE,eAAe,EAAwB,MAAM,4BAA4B,CAAA;AAClF,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;
|
|
1
|
+
{"version":3,"file":"SystemToolbar.js","sourceRoot":"","sources":["../../../../../src/components/Toolbar/System/SystemToolbar.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAgB,MAAM,eAAe,CAAA;AAC5D,OAAO,EAAE,OAAO,EAAiB,MAAM,mBAAmB,CAAA;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,EAAE,eAAe,EAAwB,MAAM,4BAA4B,CAAA;AAClF,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAG9D,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAazC,MAAM,CAAC,MAAM,aAAa,GAAiC,CAAC,EAC1D,QAAQ,EACR,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,IAAI,EACJ,cAAc,GAAG,KAAK,EACtB,UAAU,GAAG,KAAK,EAClB,MAAM,GAAG,KAAK,EACd,GAAG,KAAK,EACT,EAAE,EAAE;IACH,OAAO,CACL,MAAC,OAAO,OAAK,KAAK,aACf,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAC1B,KAAC,OAAO,IAAC,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,YAClC,KAAC,KAAK,IAAC,OAAO,EAAC,WAAW,YACxB,KAAC,eAAe,IAAC,SAAS,WAAK,kBAAkB,GAAI,GAC/C,GACA,CACX,EACA,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAC1B,KAAC,OAAO,IAAC,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,YAClC,KAAC,KAAK,IAAC,OAAO,EAAC,WAAW,YACxB,KAAC,eAAe,IAAC,SAAS,WAAK,kBAAkB,GAAI,GAC/C,GACA,CACX,EACA,QAAQ,EACR,UAAU,CAAC,CAAC,CAAC,KAAC,oBAAoB,IAAC,KAAK,EAAC,SAAS,GAAG,CAAC,CAAC,CAAC,IAAI,EAC5D,cAAc,CAAC,CAAC,CAAC,KAAC,kBAAkB,IAAC,KAAK,EAAC,SAAS,GAAG,CAAC,CAAC,CAAC,IAAI,EAC9D,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAC,QAAQ,cAAE,IAAI,GAAY,IACpC,CACX,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/components/Toolbar/System/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/components/Toolbar/System/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,wBAAwB,CAAA;AACtC,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,wBAAwB,CAAA;AACtC,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA"}
|
package/package.json
CHANGED
|
@@ -15,13 +15,13 @@
|
|
|
15
15
|
"@mui/icons-material": "^5.8.3",
|
|
16
16
|
"@mui/material": "^5.8.3",
|
|
17
17
|
"@xylabs/sdk-react": "^2.13.7",
|
|
18
|
-
"@xyo-network/core": "^2.20.
|
|
19
|
-
"@xyo-network/react-archive": "^2.25.
|
|
20
|
-
"@xyo-network/react-archivist-api": "^2.25.
|
|
21
|
-
"@xyo-network/react-auth": "^2.25.
|
|
22
|
-
"@xyo-network/react-network": "^2.25.
|
|
23
|
-
"@xyo-network/react-shared": "^2.25.
|
|
24
|
-
"@xyo-network/react-theme": "^2.25.
|
|
18
|
+
"@xyo-network/core": "^2.20.44",
|
|
19
|
+
"@xyo-network/react-archive": "^2.25.42",
|
|
20
|
+
"@xyo-network/react-archivist-api": "^2.25.42",
|
|
21
|
+
"@xyo-network/react-auth": "^2.25.42",
|
|
22
|
+
"@xyo-network/react-network": "^2.25.42",
|
|
23
|
+
"@xyo-network/react-shared": "^2.25.42",
|
|
24
|
+
"@xyo-network/react-theme": "^2.25.42",
|
|
25
25
|
"lodash": "^4.17.21",
|
|
26
26
|
"react": "^18.1.0",
|
|
27
27
|
"react-dom": "^18.1.0",
|
|
@@ -33,12 +33,12 @@
|
|
|
33
33
|
"devDependencies": {
|
|
34
34
|
"@babel/core": "^7.18.2",
|
|
35
35
|
"@babel/preset-env": "^7.18.2",
|
|
36
|
-
"@storybook/addons": "^6.5.
|
|
37
|
-
"@storybook/api": "^6.5.
|
|
38
|
-
"@storybook/components": "^6.5.
|
|
39
|
-
"@storybook/core-events": "^6.5.
|
|
40
|
-
"@storybook/react": "^6.5.
|
|
41
|
-
"@storybook/theming": "^6.5.
|
|
36
|
+
"@storybook/addons": "^6.5.8",
|
|
37
|
+
"@storybook/api": "^6.5.8",
|
|
38
|
+
"@storybook/components": "^6.5.8",
|
|
39
|
+
"@storybook/core-events": "^6.5.8",
|
|
40
|
+
"@storybook/react": "^6.5.8",
|
|
41
|
+
"@storybook/theming": "^6.5.8",
|
|
42
42
|
"@types/lodash": "^4.14.182",
|
|
43
43
|
"@xylabs/sdk-react": "^2.13.7",
|
|
44
44
|
"@xylabs/ts-scripts": "^1.0.66",
|
|
@@ -105,6 +105,6 @@
|
|
|
105
105
|
},
|
|
106
106
|
"sideEffects": false,
|
|
107
107
|
"types": "dist/esm/index.d.ts",
|
|
108
|
-
"version": "2.25.
|
|
108
|
+
"version": "2.25.42",
|
|
109
109
|
"packageManager": "yarn@3.1.1"
|
|
110
110
|
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import MenuIcon from '@mui/icons-material/Menu'
|
|
2
|
+
import SettingsIcon from '@mui/icons-material/Settings'
|
|
3
|
+
import { Box, IconButton, List, SwipeableDrawer } from '@mui/material'
|
|
4
|
+
import { FlexBoxProps, FlexRow } from '@xylabs/sdk-react'
|
|
5
|
+
import { useState } from 'react'
|
|
6
|
+
|
|
7
|
+
import { DrawerListItem } from './MenuItems'
|
|
8
|
+
|
|
9
|
+
export interface SiteMenuProps extends FlexBoxProps {
|
|
10
|
+
hideSettingsMenuItem?: boolean
|
|
11
|
+
side?: 'left' | 'right' | 'top' | 'bottom'
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export const SiteMenu: React.FC<SiteMenuProps> = ({ side = 'right', children, ...props }) => {
|
|
15
|
+
const [open, setOpen] = useState(false)
|
|
16
|
+
|
|
17
|
+
return (
|
|
18
|
+
<FlexRow alignItems="stretch" {...props}>
|
|
19
|
+
<IconButton
|
|
20
|
+
size="small"
|
|
21
|
+
color="inherit"
|
|
22
|
+
onClick={() => {
|
|
23
|
+
setOpen(!open)
|
|
24
|
+
}}
|
|
25
|
+
>
|
|
26
|
+
<MenuIcon fontSize="large" />
|
|
27
|
+
</IconButton>
|
|
28
|
+
<SwipeableDrawer anchor={side} open={open} onClose={() => setOpen(false)} onOpen={() => setOpen(true)}>
|
|
29
|
+
<Box width="auto" role="presentation" onClick={() => setOpen(false)} onKeyDown={() => setOpen(false)}>
|
|
30
|
+
{children ?? (
|
|
31
|
+
<List>
|
|
32
|
+
<DrawerListItem primary="Settings" icon={<SettingsIcon />} to="/settings" />
|
|
33
|
+
</List>
|
|
34
|
+
)}
|
|
35
|
+
</Box>
|
|
36
|
+
</SwipeableDrawer>
|
|
37
|
+
</FlexRow>
|
|
38
|
+
)
|
|
39
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { ListItem, ListItemIcon, ListItemProps, ListItemText, ListItemTextProps } from '@mui/material'
|
|
2
|
+
import { ListItemButtonEx, ListItemButtonExProps } from '@xyo-network/react-shared'
|
|
3
|
+
import { ReactNode } from 'react'
|
|
4
|
+
import { To } from 'react-router-dom'
|
|
5
|
+
|
|
6
|
+
export interface DrawerListItemProps extends ListItemProps {
|
|
7
|
+
primary: ListItemTextProps['primary']
|
|
8
|
+
to?: To
|
|
9
|
+
icon?: ReactNode
|
|
10
|
+
onButtonClick?: ListItemButtonExProps['onClick']
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export const DrawerListItem: React.FC<DrawerListItemProps> = ({ primary, to, icon, onButtonClick, ...props }) => {
|
|
14
|
+
return (
|
|
15
|
+
<ListItem {...props}>
|
|
16
|
+
<ListItemButtonEx to={to} onClick={onButtonClick}>
|
|
17
|
+
<ListItemIcon>{icon}</ListItemIcon>
|
|
18
|
+
<ListItemText primary={primary} />
|
|
19
|
+
</ListItemButtonEx>
|
|
20
|
+
</ListItem>
|
|
21
|
+
)
|
|
22
|
+
}
|
|
@@ -4,15 +4,16 @@ import { ArchiveSelectEx } from '@xyo-network/react-archive'
|
|
|
4
4
|
import { AuthStatusIconButton } from '@xyo-network/react-auth'
|
|
5
5
|
import { NetworkSelectEx, NetworkSelectExProps } from '@xyo-network/react-network'
|
|
6
6
|
import { DarkModeIconButton } from '@xyo-network/react-shared'
|
|
7
|
+
import { ReactNode } from 'react'
|
|
7
8
|
|
|
8
|
-
import { SiteMenu
|
|
9
|
+
import { SiteMenu } from '../../SiteMenu'
|
|
9
10
|
|
|
10
11
|
export interface SystemToolbarProps extends ToolbarProps {
|
|
11
12
|
networkSelectProps?: NetworkSelectExProps
|
|
12
13
|
archiveSelectProps?: SelectExProps<string>
|
|
13
14
|
hideNetworkSelect?: boolean
|
|
14
15
|
hideArchiveSelect?: boolean
|
|
15
|
-
|
|
16
|
+
menu?: ReactNode
|
|
16
17
|
darkModeButton?: boolean
|
|
17
18
|
authButton?: boolean
|
|
18
19
|
noMenu?: boolean
|
|
@@ -24,7 +25,7 @@ export const SystemToolbar: React.FC<SystemToolbarProps> = ({
|
|
|
24
25
|
archiveSelectProps,
|
|
25
26
|
hideNetworkSelect,
|
|
26
27
|
hideArchiveSelect,
|
|
27
|
-
|
|
28
|
+
menu,
|
|
28
29
|
darkModeButton = false,
|
|
29
30
|
authButton = false,
|
|
30
31
|
noMenu = false,
|
|
@@ -49,7 +50,7 @@ export const SystemToolbar: React.FC<SystemToolbarProps> = ({
|
|
|
49
50
|
{children}
|
|
50
51
|
{authButton ? <AuthStatusIconButton color="inherit" /> : null}
|
|
51
52
|
{darkModeButton ? <DarkModeIconButton color="inherit" /> : null}
|
|
52
|
-
{noMenu ? null : <SiteMenu
|
|
53
|
+
{noMenu ? null : <SiteMenu>{menu}</SiteMenu>}
|
|
53
54
|
</Toolbar>
|
|
54
55
|
)
|
|
55
56
|
}
|
package/src/components/index.ts
CHANGED
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SiteMenu = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
6
|
-
const icons_material_1 = require("@mui/icons-material");
|
|
7
|
-
const material_1 = require("@mui/material");
|
|
8
|
-
const sdk_react_1 = require("@xylabs/sdk-react");
|
|
9
|
-
const react_1 = require("react");
|
|
10
|
-
const react_router_dom_1 = require("react-router-dom");
|
|
11
|
-
const SiteMenu = (_a) => {
|
|
12
|
-
var { hideSettingsMenuItem, menuItems } = _a, props = tslib_1.__rest(_a, ["hideSettingsMenuItem", "menuItems"]);
|
|
13
|
-
const [menuElement, setMenuElement] = (0, react_1.useState)(null);
|
|
14
|
-
const open = Boolean(menuElement);
|
|
15
|
-
const navigate = (0, react_router_dom_1.useNavigate)();
|
|
16
|
-
const handleMenuClose = () => {
|
|
17
|
-
setMenuElement(null);
|
|
18
|
-
};
|
|
19
|
-
const ref = (0, react_1.useRef)(null);
|
|
20
|
-
return ((0, jsx_runtime_1.jsxs)(sdk_react_1.FlexRow, Object.assign({ alignItems: "stretch" }, props, { children: [(0, jsx_runtime_1.jsx)(sdk_react_1.LinkEx, Object.assign({ color: "inherit", onClick: () => {
|
|
21
|
-
setMenuElement(ref.current);
|
|
22
|
-
} }, { children: (0, jsx_runtime_1.jsx)("div", Object.assign({ style: { alignItems: 'center', cursor: 'pointer', display: 'flex' }, ref: ref }, { children: (0, jsx_runtime_1.jsx)(icons_material_1.Menu, { fontSize: "large" }) })) })), (0, jsx_runtime_1.jsxs)(material_1.Menu, Object.assign({ anchorEl: menuElement, open: open, onClose: handleMenuClose }, { children: [menuItems === null || menuItems === void 0 ? void 0 : menuItems.map(({ name, to, href, onClick }) => {
|
|
23
|
-
return ((0, jsx_runtime_1.jsx)(material_1.MenuItem, Object.assign({ onClick: () => {
|
|
24
|
-
if (onClick) {
|
|
25
|
-
onClick();
|
|
26
|
-
}
|
|
27
|
-
else if (to) {
|
|
28
|
-
navigate(to);
|
|
29
|
-
}
|
|
30
|
-
else if (href) {
|
|
31
|
-
window.open(href);
|
|
32
|
-
}
|
|
33
|
-
handleMenuClose();
|
|
34
|
-
}, disableRipple: true }, { children: name }), name));
|
|
35
|
-
}), hideSettingsMenuItem ? null : ((0, jsx_runtime_1.jsx)(material_1.MenuItem, Object.assign({ onClick: () => {
|
|
36
|
-
navigate('/settings');
|
|
37
|
-
handleMenuClose();
|
|
38
|
-
}, disableRipple: true }, { children: "Settings" })))] }))] })));
|
|
39
|
-
};
|
|
40
|
-
exports.SiteMenu = SiteMenu;
|
|
41
|
-
//# sourceMappingURL=SiteMenu.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SiteMenu.js","sourceRoot":"","sources":["../../../../../src/components/Toolbar/System/SiteMenu.tsx"],"names":[],"mappings":";;;;;AAAA,wDAAsD;AACtD,4CAA8C;AAC9C,iDAAiE;AACjE,iCAAwC;AACxC,uDAAkD;AAc3C,MAAM,QAAQ,GAA4B,CAAC,EAA6C,EAAE,EAAE;QAAjD,EAAE,oBAAoB,EAAE,SAAS,OAAY,EAAP,KAAK,sBAA3C,qCAA6C,CAAF;IAC3F,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,IAAA,gBAAQ,EAA2B,IAAI,CAAC,CAAA;IAC9E,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;IACjC,MAAM,QAAQ,GAAG,IAAA,8BAAW,GAAE,CAAA;IAE9B,MAAM,eAAe,GAAG,GAAG,EAAE;QAC3B,cAAc,CAAC,IAAI,CAAC,CAAA;IACtB,CAAC,CAAA;IAED,MAAM,GAAG,GAAG,IAAA,cAAM,EAAC,IAAI,CAAC,CAAA;IAExB,OAAO,CACL,wBAAC,mBAAO,kBAAC,UAAU,EAAC,SAAS,IAAK,KAAK,eACrC,uBAAC,kBAAM,kBACL,KAAK,EAAC,SAAS,EACf,OAAO,EAAE,GAAG,EAAE;oBACZ,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;gBAC7B,CAAC,gBAED,8CAAK,KAAK,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG,gBAChF,uBAAC,qBAAQ,IAAC,QAAQ,EAAC,OAAO,GAAG,IACzB,IACC,EACT,wBAAC,eAAI,kBAAC,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,eAAe,iBAC9D,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE;wBAC9C,OAAO,CACL,uBAAC,mBAAQ,kBAEP,OAAO,EAAE,GAAG,EAAE;gCACZ,IAAI,OAAO,EAAE;oCACX,OAAO,EAAE,CAAA;iCACV;qCAAM,IAAI,EAAE,EAAE;oCACb,QAAQ,CAAC,EAAE,CAAC,CAAA;iCACb;qCAAM,IAAI,IAAI,EAAE;oCACf,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;iCAClB;gCACD,eAAe,EAAE,CAAA;4BACnB,CAAC,EACD,aAAa,sBAEZ,IAAI,KAbA,IAAI,CAcA,CACZ,CAAA;oBACH,CAAC,CAAC,EACD,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAC7B,uBAAC,mBAAQ,kBACP,OAAO,EAAE,GAAG,EAAE;4BACZ,QAAQ,CAAC,WAAW,CAAC,CAAA;4BACrB,eAAe,EAAE,CAAA;wBACnB,CAAC,EACD,aAAa,oCAGJ,CACZ,KACI,KACC,CACX,CAAA;AACH,CAAC,CAAA;AA1DY,QAAA,QAAQ,YA0DpB"}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { Menu as MenuIcon } from '@mui/icons-material';
|
|
3
|
-
import { Menu, MenuItem } from '@mui/material';
|
|
4
|
-
import { FlexRow, LinkEx } from '@xylabs/sdk-react';
|
|
5
|
-
import { useRef, useState } from 'react';
|
|
6
|
-
import { useNavigate } from 'react-router-dom';
|
|
7
|
-
export const SiteMenu = ({ hideSettingsMenuItem, menuItems, ...props }) => {
|
|
8
|
-
const [menuElement, setMenuElement] = useState(null);
|
|
9
|
-
const open = Boolean(menuElement);
|
|
10
|
-
const navigate = useNavigate();
|
|
11
|
-
const handleMenuClose = () => {
|
|
12
|
-
setMenuElement(null);
|
|
13
|
-
};
|
|
14
|
-
const ref = useRef(null);
|
|
15
|
-
return (_jsxs(FlexRow, { alignItems: "stretch", ...props, children: [_jsx(LinkEx, { color: "inherit", onClick: () => {
|
|
16
|
-
setMenuElement(ref.current);
|
|
17
|
-
}, children: _jsx("div", { style: { alignItems: 'center', cursor: 'pointer', display: 'flex' }, ref: ref, children: _jsx(MenuIcon, { fontSize: "large" }) }) }), _jsxs(Menu, { anchorEl: menuElement, open: open, onClose: handleMenuClose, children: [menuItems?.map(({ name, to, href, onClick }) => {
|
|
18
|
-
return (_jsx(MenuItem, { onClick: () => {
|
|
19
|
-
if (onClick) {
|
|
20
|
-
onClick();
|
|
21
|
-
}
|
|
22
|
-
else if (to) {
|
|
23
|
-
navigate(to);
|
|
24
|
-
}
|
|
25
|
-
else if (href) {
|
|
26
|
-
window.open(href);
|
|
27
|
-
}
|
|
28
|
-
handleMenuClose();
|
|
29
|
-
}, disableRipple: true, children: name }, name));
|
|
30
|
-
}), hideSettingsMenuItem ? null : (_jsx(MenuItem, { onClick: () => {
|
|
31
|
-
navigate('/settings');
|
|
32
|
-
handleMenuClose();
|
|
33
|
-
}, disableRipple: true, children: "Settings" }))] })] }));
|
|
34
|
-
};
|
|
35
|
-
//# sourceMappingURL=SiteMenu.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SiteMenu.js","sourceRoot":"","sources":["../../../../../src/components/Toolbar/System/SiteMenu.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,IAAI,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAgB,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AACjE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AACxC,OAAO,EAAM,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAclD,MAAM,CAAC,MAAM,QAAQ,GAA4B,CAAC,EAAE,oBAAoB,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE;IACjG,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAA2B,IAAI,CAAC,CAAA;IAC9E,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;IACjC,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAA;IAE9B,MAAM,eAAe,GAAG,GAAG,EAAE;QAC3B,cAAc,CAAC,IAAI,CAAC,CAAA;IACtB,CAAC,CAAA;IAED,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;IAExB,OAAO,CACL,MAAC,OAAO,IAAC,UAAU,EAAC,SAAS,KAAK,KAAK,aACrC,KAAC,MAAM,IACL,KAAK,EAAC,SAAS,EACf,OAAO,EAAE,GAAG,EAAE;oBACZ,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;gBAC7B,CAAC,YAED,cAAK,KAAK,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG,YAChF,KAAC,QAAQ,IAAC,QAAQ,EAAC,OAAO,GAAG,GACzB,GACC,EACT,MAAC,IAAI,IAAC,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,eAAe,aAC9D,SAAS,EAAE,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE;wBAC9C,OAAO,CACL,KAAC,QAAQ,IAEP,OAAO,EAAE,GAAG,EAAE;gCACZ,IAAI,OAAO,EAAE;oCACX,OAAO,EAAE,CAAA;iCACV;qCAAM,IAAI,EAAE,EAAE;oCACb,QAAQ,CAAC,EAAE,CAAC,CAAA;iCACb;qCAAM,IAAI,IAAI,EAAE;oCACf,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;iCAClB;gCACD,eAAe,EAAE,CAAA;4BACnB,CAAC,EACD,aAAa,kBAEZ,IAAI,IAbA,IAAI,CAcA,CACZ,CAAA;oBACH,CAAC,CAAC,EACD,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAC7B,KAAC,QAAQ,IACP,OAAO,EAAE,GAAG,EAAE;4BACZ,QAAQ,CAAC,WAAW,CAAC,CAAA;4BACrB,eAAe,EAAE,CAAA;wBACnB,CAAC,EACD,aAAa,+BAGJ,CACZ,IACI,IACC,CACX,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
import { Menu as MenuIcon } from '@mui/icons-material'
|
|
2
|
-
import { Menu, MenuItem } from '@mui/material'
|
|
3
|
-
import { FlexBoxProps, FlexRow, LinkEx } from '@xylabs/sdk-react'
|
|
4
|
-
import { useRef, useState } from 'react'
|
|
5
|
-
import { To, useNavigate } from 'react-router-dom'
|
|
6
|
-
|
|
7
|
-
export interface SiteMenuItem {
|
|
8
|
-
name: string
|
|
9
|
-
to?: To
|
|
10
|
-
href?: string
|
|
11
|
-
onClick?: () => void
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
export interface SiteMenuProps extends FlexBoxProps {
|
|
15
|
-
hideSettingsMenuItem?: boolean
|
|
16
|
-
menuItems?: SiteMenuItem[]
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
export const SiteMenu: React.FC<SiteMenuProps> = ({ hideSettingsMenuItem, menuItems, ...props }) => {
|
|
20
|
-
const [menuElement, setMenuElement] = useState<HTMLButtonElement | null>(null)
|
|
21
|
-
const open = Boolean(menuElement)
|
|
22
|
-
const navigate = useNavigate()
|
|
23
|
-
|
|
24
|
-
const handleMenuClose = () => {
|
|
25
|
-
setMenuElement(null)
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
const ref = useRef(null)
|
|
29
|
-
|
|
30
|
-
return (
|
|
31
|
-
<FlexRow alignItems="stretch" {...props}>
|
|
32
|
-
<LinkEx
|
|
33
|
-
color="inherit"
|
|
34
|
-
onClick={() => {
|
|
35
|
-
setMenuElement(ref.current)
|
|
36
|
-
}}
|
|
37
|
-
>
|
|
38
|
-
<div style={{ alignItems: 'center', cursor: 'pointer', display: 'flex' }} ref={ref}>
|
|
39
|
-
<MenuIcon fontSize="large" />
|
|
40
|
-
</div>
|
|
41
|
-
</LinkEx>
|
|
42
|
-
<Menu anchorEl={menuElement} open={open} onClose={handleMenuClose}>
|
|
43
|
-
{menuItems?.map(({ name, to, href, onClick }) => {
|
|
44
|
-
return (
|
|
45
|
-
<MenuItem
|
|
46
|
-
key={name}
|
|
47
|
-
onClick={() => {
|
|
48
|
-
if (onClick) {
|
|
49
|
-
onClick()
|
|
50
|
-
} else if (to) {
|
|
51
|
-
navigate(to)
|
|
52
|
-
} else if (href) {
|
|
53
|
-
window.open(href)
|
|
54
|
-
}
|
|
55
|
-
handleMenuClose()
|
|
56
|
-
}}
|
|
57
|
-
disableRipple
|
|
58
|
-
>
|
|
59
|
-
{name}
|
|
60
|
-
</MenuItem>
|
|
61
|
-
)
|
|
62
|
-
})}
|
|
63
|
-
{hideSettingsMenuItem ? null : (
|
|
64
|
-
<MenuItem
|
|
65
|
-
onClick={() => {
|
|
66
|
-
navigate('/settings')
|
|
67
|
-
handleMenuClose()
|
|
68
|
-
}}
|
|
69
|
-
disableRipple
|
|
70
|
-
>
|
|
71
|
-
Settings
|
|
72
|
-
</MenuItem>
|
|
73
|
-
)}
|
|
74
|
-
</Menu>
|
|
75
|
-
</FlexRow>
|
|
76
|
-
)
|
|
77
|
-
}
|