ece-docs-components 1.0.23 → 1.0.25
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/ThemeProvider.js +1 -1
- package/dist/cjs/ThemeProvider.js.map +1 -1
- package/dist/cjs/components/Alert.js +8 -1
- package/dist/cjs/components/Alert.js.map +1 -1
- package/dist/cjs/components/Button.js +19 -2
- package/dist/cjs/components/Button.js.map +1 -1
- package/dist/cjs/components/Modal.js +21 -13
- package/dist/cjs/components/Modal.js.map +1 -1
- package/dist/cjs/components/ReadBy.js +35 -6
- package/dist/cjs/components/ReadBy.js.map +1 -1
- package/dist/cjs/components/Sidebar.js.map +1 -1
- package/dist/esm/ThemeProvider.js +1 -1
- package/dist/esm/ThemeProvider.js.map +1 -1
- package/dist/esm/components/Alert.d.ts +1 -1
- package/dist/esm/components/Alert.js +8 -1
- package/dist/esm/components/Alert.js.map +1 -1
- package/dist/esm/components/Button.js +19 -2
- package/dist/esm/components/Button.js.map +1 -1
- package/dist/esm/components/Modal.d.ts +1 -0
- package/dist/esm/components/Modal.js +22 -14
- package/dist/esm/components/Modal.js.map +1 -1
- package/dist/esm/components/ReadBy.js +36 -7
- package/dist/esm/components/ReadBy.js.map +1 -1
- package/dist/esm/components/Sidebar.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
-
import { useState } from 'react';
|
|
2
|
+
import { useState, useRef, useLayoutEffect } from 'react';
|
|
3
3
|
import { styled, Box, IconButton, Typography } from '@mui/material';
|
|
4
4
|
import { useTheme } from '../ThemeProvider.js';
|
|
5
5
|
import { ExpandLessRounded, ExpandMoreRounded } from '@mui/icons-material';
|
|
@@ -14,7 +14,6 @@ const ReadByContainer = styled(Box)(({ theme }) => ({
|
|
|
14
14
|
borderRadius: '0 8px 8px 0',
|
|
15
15
|
backgroundColor: theme.palette.custom?.readByBackgroundColor || theme.palette.accent.main,
|
|
16
16
|
[theme.breakpoints.down('sm')]: {
|
|
17
|
-
flexDirection: 'column',
|
|
18
17
|
padding: theme.spacing(1.5),
|
|
19
18
|
},
|
|
20
19
|
}));
|
|
@@ -29,18 +28,41 @@ const ExpandButton = styled(IconButton)(({ theme }) => ({
|
|
|
29
28
|
opacity: 0.8,
|
|
30
29
|
},
|
|
31
30
|
[theme.breakpoints.down('sm')]: {
|
|
32
|
-
alignSelf: 'flex-
|
|
31
|
+
alignSelf: 'flex-start',
|
|
33
32
|
},
|
|
34
33
|
}));
|
|
35
34
|
const ReadBy = ({ names }) => {
|
|
36
35
|
const theme = useTheme();
|
|
37
36
|
const [isExpanded, setIsExpanded] = useState(false);
|
|
37
|
+
const [visibleCount, setVisibleCount] = useState(names.length);
|
|
38
|
+
const containerRef = useRef(null);
|
|
39
|
+
const measureRef = useRef(null);
|
|
40
|
+
useLayoutEffect(() => {
|
|
41
|
+
if (isExpanded || names.length <= 1) {
|
|
42
|
+
setVisibleCount(names.length);
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
if (containerRef.current && measureRef.current) {
|
|
46
|
+
const containerWidth = containerRef.current.offsetWidth;
|
|
47
|
+
let currentCount = names.length;
|
|
48
|
+
// Try reducing count until the measured text fits
|
|
49
|
+
for (let i = names.length; i > 0; i--) {
|
|
50
|
+
measureRef.current.textContent = names.slice(0, i).join(', ');
|
|
51
|
+
const textWidth = measureRef.current.offsetWidth;
|
|
52
|
+
if (textWidth <= containerWidth - 100) { // Leave space for button and errors
|
|
53
|
+
currentCount = i;
|
|
54
|
+
break;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
setVisibleCount(currentCount - 1);
|
|
58
|
+
}
|
|
59
|
+
}, [names, isExpanded, containerRef.current, measureRef.current]);
|
|
38
60
|
const displayText = isExpanded
|
|
39
61
|
? names.join(', ')
|
|
40
|
-
: names.length
|
|
41
|
-
? `${names.slice(0,
|
|
62
|
+
: visibleCount < names.length
|
|
63
|
+
? `${names.slice(0, visibleCount).join(', ')}...`
|
|
42
64
|
: names.join(', ');
|
|
43
|
-
return (jsxs(ReadByContainer, { children: [jsxs(Box, { sx: { flex: 1, minWidth: 0, wordBreak: 'break-word' }, children: [jsx(Typography, { component: "span", sx: {
|
|
65
|
+
return (jsxs(ReadByContainer, { ref: containerRef, children: [jsxs(Box, { sx: { flex: 1, minWidth: 0, wordBreak: 'break-word' }, children: [jsx(Typography, { component: "span", sx: {
|
|
44
66
|
fontSize: { xs: '13px', sm: '14px' },
|
|
45
67
|
fontWeight: 700,
|
|
46
68
|
color: theme.palette.dark.main,
|
|
@@ -48,7 +70,14 @@ const ReadBy = ({ names }) => {
|
|
|
48
70
|
fontSize: { xs: '13px', sm: '14px' },
|
|
49
71
|
color: theme.palette.dark.main,
|
|
50
72
|
ml: 1,
|
|
51
|
-
}, children: displayText })
|
|
73
|
+
}, children: displayText }), jsx("span", { ref: measureRef, style: {
|
|
74
|
+
position: 'absolute',
|
|
75
|
+
visibility: 'hidden',
|
|
76
|
+
height: 0,
|
|
77
|
+
whiteSpace: 'nowrap',
|
|
78
|
+
fontSize: '14px',
|
|
79
|
+
fontWeight: 400
|
|
80
|
+
} })] }), names.length > 1 && (jsx(ExpandButton, { onClick: () => setIsExpanded(!isExpanded), "aria-label": isExpanded ? 'Collapse' : 'Expand', size: "small", children: isExpanded ? (jsx(ExpandLessRounded, { sx: { fontSize: 16 } })) : (jsx(ExpandMoreRounded, { sx: { fontSize: 16 } })) }))] }));
|
|
52
81
|
};
|
|
53
82
|
|
|
54
83
|
export { ReadBy };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReadBy.js","sources":["../../../../src/components/ReadBy.tsx"],"sourcesContent":["\r\n\r\nimport React, { useState } from 'react';\r\nimport { Box, IconButton, Typography, styled } from '@mui/material';\r\nimport { useTheme } from '../ThemeProvider';\r\nimport { ExpandLessRounded, ExpandMoreRounded } from '@mui/icons-material';\r\n\r\ninterface ReadByProps {\r\n names: string[];\r\n}\r\n\r\nconst ReadByContainer = styled(Box)(({ theme }) => ({\r\n display: 'flex',\r\n flexDirection: 'row',\r\n alignItems: 'flex-start',\r\n gap: theme.spacing(2),\r\n padding: theme.spacing(2),\r\n borderLeft: `4px solid ${theme.palette.primary.main}`,\r\n borderRadius: '0 8px 8px 0',\r\n backgroundColor: theme.palette.custom?.readByBackgroundColor || theme.palette.accent.main,\r\n [theme.breakpoints.down('sm')]: {\r\n
|
|
1
|
+
{"version":3,"file":"ReadBy.js","sources":["../../../../src/components/ReadBy.tsx"],"sourcesContent":["\r\n\r\nimport React, { useLayoutEffect, useRef, useState } from 'react';\r\nimport { Box, IconButton, Typography, styled } from '@mui/material';\r\nimport { useTheme } from '../ThemeProvider';\r\nimport { ExpandLessRounded, ExpandMoreRounded } from '@mui/icons-material';\r\n\r\ninterface ReadByProps {\r\n names: string[];\r\n}\r\n\r\nconst ReadByContainer = styled(Box)(({ theme }) => ({\r\n display: 'flex',\r\n flexDirection: 'row',\r\n alignItems: 'flex-start',\r\n gap: theme.spacing(2),\r\n padding: theme.spacing(2),\r\n borderLeft: `4px solid ${theme.palette.primary.main}`,\r\n borderRadius: '0 8px 8px 0',\r\n backgroundColor: theme.palette.custom?.readByBackgroundColor || theme.palette.accent.main,\r\n [theme.breakpoints.down('sm')]: {\r\n padding: theme.spacing(1.5),\r\n },\r\n}));\r\n\r\nconst ExpandButton = styled(IconButton)(({ theme }) => ({\r\n width: 32,\r\n height: 32,\r\n backgroundColor: '#4d3019',\r\n color: '#fff',\r\n flexShrink: 0,\r\n '&:hover': {\r\n backgroundColor: '#4d3019',\r\n opacity: 0.8,\r\n },\r\n [theme.breakpoints.down('sm')]: {\r\n alignSelf: 'flex-start',\r\n },\r\n}));\r\n\r\nexport const ReadBy: React.FC<ReadByProps> = ({ names }) => {\r\n const theme = useTheme();\r\n const [isExpanded, setIsExpanded] = useState(false);\r\n const [visibleCount, setVisibleCount] = useState(names.length);\r\n const containerRef = useRef<HTMLDivElement>(null);\r\n const measureRef = useRef<HTMLSpanElement>(null);\r\n\r\n useLayoutEffect(() => {\r\n if (isExpanded || names.length <= 1) {\r\n setVisibleCount(names.length);\r\n return;\r\n }\r\n\r\n if (containerRef.current && measureRef.current) {\r\n const containerWidth = containerRef.current.offsetWidth;\r\n let currentCount = names.length;\r\n \r\n // Try reducing count until the measured text fits\r\n for (let i = names.length; i > 0; i--) {\r\n measureRef.current.textContent = names.slice(0, i).join(', ');\r\n const textWidth = measureRef.current.offsetWidth;\r\n if (textWidth <= containerWidth - 100) { // Leave space for button and errors\r\n currentCount = i;\r\n break;\r\n }\r\n }\r\n setVisibleCount(currentCount - 1);\r\n }\r\n }, [names, isExpanded, containerRef.current, measureRef.current]);\r\n\r\n const displayText = isExpanded\r\n ? names.join(', ')\r\n : visibleCount < names.length\r\n ? `${names.slice(0, visibleCount).join(', ')}...`\r\n : names.join(', ');\r\n\r\n return (\r\n <ReadByContainer ref={containerRef}>\r\n <Box sx={{ flex: 1, minWidth: 0, wordBreak: 'break-word' }}>\r\n <Typography\r\n component=\"span\"\r\n sx={{\r\n fontSize: { xs: '13px', sm: '14px' },\r\n fontWeight: 700,\r\n color: theme.palette.dark.main,\r\n }}\r\n >\r\n Read by:\r\n </Typography>\r\n <Typography\r\n component=\"span\"\r\n sx={{\r\n fontSize: { xs: '13px', sm: '14px' },\r\n color: theme.palette.dark.main,\r\n ml: 1,\r\n }}\r\n >\r\n {displayText}\r\n </Typography>\r\n {/* Hidden span for measurement */}\r\n <span ref={measureRef} style={{\r\n position: 'absolute',\r\n visibility: 'hidden',\r\n height: 0,\r\n whiteSpace: 'nowrap',\r\n fontSize: '14px',\r\n fontWeight: 400\r\n }} />\r\n </Box>\r\n {names.length > 1 && (\r\n <ExpandButton\r\n onClick={() => setIsExpanded(!isExpanded)}\r\n aria-label={isExpanded ? 'Collapse' : 'Expand'}\r\n size=\"small\"\r\n >\r\n {isExpanded ? (\r\n <ExpandLessRounded sx={{fontSize: 16}} />\r\n ) : (\r\n <ExpandMoreRounded sx={{fontSize: 16}} />\r\n )}\r\n </ExpandButton>\r\n )}\r\n </ReadByContainer>\r\n );\r\n};"],"names":["_jsxs","_jsx"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Sidebar.js","sources":["../../../../src/components/Sidebar.tsx"],"sourcesContent":["import React, { useState } from 'react';\r\nimport { Box, IconButton, Typography, List, ListItemButton, ListItemText, Collapse, styled } from '@mui/material';\r\nimport { useTheme } from '../ThemeProvider';\r\nimport { ArticleRounded, ChevronLeftRounded, ChevronRightRounded, ExpandLessRounded, ExpandMoreRounded, HelpCenterRounded, HomeRounded, KeyboardDoubleArrowLeftRounded, KeyboardDoubleArrowRightRounded, SupportAgentRounded, TextSnippetRounded } from '@mui/icons-material';\r\n\r\n// PolicyItem and SidebarProps interfaces as before\r\ninterface PolicyItem {\r\n id: number;\r\n o: number;\r\n text: string;\r\n url: string;\r\n node: string;\r\n leaf?: boolean;\r\n children?: PolicyItem[];\r\n}\r\n\r\ninterface SidebarProps {\r\n isOpen: boolean;\r\n onToggle: () => void;\r\n centreName?: string;\r\n policies?: PolicyItem[];\r\n}\r\n\r\ninterface MenuItem {\r\n id: string;\r\n label: string;\r\n icon: React.ReactNode;\r\n}\r\n\r\nconst SidebarContainer = styled(Box, {\r\n shouldForwardProp: (prop) => prop !== 'isOpen',\r\n})<{ isOpen: boolean }>(({ theme, isOpen }) => ({\r\n height: '100vh',\r\n position: 'sticky',\r\n top: 0,\r\n paddingLeft: 0,\r\n overflow: 'hidden',\r\n backgroundColor: '#fff',\r\n borderRight: `1px solid ${theme.palette.dark.main}1A`,\r\n flexShrink: 0,\r\n transition: 'all 0.3s ease-in-out',\r\n width: isOpen ? '288px' : '64px',\r\n zIndex: 50,\r\n [theme.breakpoints.down('md')]: {\r\n position: 'fixed',\r\n left: isOpen ? 0 : '-288px',\r\n width: '288px',\r\n },\r\n [theme.breakpoints.up('sm')]: {\r\n width: isOpen ? '288px' : '80px',\r\n },\r\n}));\r\n\r\nconst ToggleButton = styled(IconButton)(({ theme }) => ({\r\n width: 40,\r\n height: 40,\r\n borderRadius: theme.shape.borderRadius,\r\n backgroundColor: '#4D3019',\r\n color: '#fff',\r\n '&:hover': {\r\n backgroundColor: '#3d2614',\r\n },\r\n}));\r\n\r\nconst MenuItemButton = styled(ListItemButton, {\r\n shouldForwardProp: (prop) => prop !== 'isOpen' && prop !== 'isActive'\r\n})<{ isActive?: boolean; isOpen: boolean }>(({ theme, isActive, isOpen }) => ({\r\n borderRadius: isOpen \r\n ? `0 ${theme.shape.borderRadius}px ${theme.shape.borderRadius}px 0`\r\n : theme.shape.borderRadius,\r\n paddingLeft: 0,\r\n paddingRight: isOpen ? theme.spacing(2) : 0,\r\n marginRight: isOpen ? 8 : 0,\r\n minHeight: 64,\r\n justifyContent: isOpen ? 'flex-start' : 'center',\r\n backgroundClip: 'padding-box',\r\n backgroundOrigin: 'border-box',\r\n '&:hover': {\r\n backgroundColor: `${theme.palette.primary.main}0D`,\r\n },\r\n ...(isActive && {\r\n backgroundColor: `${theme.palette.primary.main}1A`,\r\n '&:hover': {\r\n backgroundColor: `${theme.palette.primary.main}1A`,\r\n }\r\n }),\r\n}));\r\n\r\nconst IconWrapper = styled(Box, {\r\n shouldForwardProp: (prop) => prop !== 'isOpen'\r\n})<{ isOpen: boolean }>(({ theme, isOpen }) => ({\r\n width: isOpen ? 32 : 40,\r\n height: isOpen ? 32 : 40,\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n backgroundColor: 'transparent'\r\n}));\r\n\r\nexport const Sidebar: React.FC<SidebarProps> = ({\r\n isOpen,\r\n onToggle,\r\n centreName = \"Centre name goes here \\n across two lines\",\r\n policies = []\r\n}) => {\r\n const theme = useTheme();\r\n const [expandedItems, setExpandedItems] = useState<string[]>([]);\r\n const [expandedPolicies, setExpandedPolicies] = useState<number[]>([]);\r\n\r\n const togglePolicyItem = (itemId: number) => {\r\n setExpandedPolicies((prev) =>\r\n prev.includes(itemId) ? prev.filter((id) => id !== itemId) : [...prev, itemId]\r\n );\r\n };\r\n\r\n const menuItems: MenuItem[] = [\r\n {\r\n id: '/dashboard',\r\n label: 'Dashboard',\r\n icon: <HomeRounded sx={{ fontSize: 28, color: \"#4D3019\" }} />,\r\n },\r\n {\r\n id: '/support',\r\n label: 'Support',\r\n icon: <HelpCenterRounded sx={{ fontSize: 28, color: \"#4D3019\" }} />,\r\n },\r\n ];\r\n\r\n const renderPolicyItems = (items: PolicyItem[], depth: number = 0): React.ReactNode => {\r\n return items.map((item) => {\r\n const hasChildren = item.children && item.children.length > 0;\r\n const isExpanded = expandedPolicies.includes(item.o);\r\n const paddingLeft = 8 + (depth * 2);\r\n\r\n return (\r\n <Box key={item.id}>\r\n <Box sx={{ display: 'flex', alignItems: 'stretch' }}>\r\n <ListItemButton\r\n disableRipple\r\n sx={{\r\n flex: 1,\r\n width: '100%',\r\n pl: paddingLeft,\r\n marginRight:'8px',\r\n py: 1.25,\r\n borderRadius: `0 ${theme.shape.borderRadius}px ${theme.shape.borderRadius}px 0`,\r\n // Highlight if expanded\r\n '&:hover': {\r\n backgroundColor: isExpanded ? `${theme.palette.primary.main}1F` : `${theme.palette.primary.main}0D`,\r\n },\r\n backgroundColor: isExpanded ? `${theme.palette.primary.main}1A` : 'transparent',\r\n }}\r\n >\r\n {/* Make the text a button/anchor */}\r\n <Box\r\n sx={{\r\n cursor: 'pointer',\r\n flex: 1\r\n }}\r\n onClick={() => window.location.href = item.url}\r\n >\r\n <ListItemText\r\n primary={item.text}\r\n primaryTypographyProps={{ fontSize: '0.875rem' }}\r\n />\r\n </Box>\r\n {/* The chevron expands/collapses the section */}\r\n {hasChildren && (\r\n <IconButton\r\n onClick={(e) => {\r\n e.stopPropagation();\r\n togglePolicyItem(item.o);\r\n }}\r\n disableRipple\r\n >\r\n <ChevronRightRounded\r\n sx={{\r\n fontSize: 16,\r\n color: '#4D3019',\r\n transition: 'transform 0.2s',\r\n transform: isExpanded ? 'rotate(90deg)' : 'rotate(0deg)',\r\n }}\r\n />\r\n </IconButton>\r\n )}\r\n </ListItemButton>\r\n </Box>\r\n {hasChildren && isExpanded && (\r\n <Collapse in={true} timeout=\"auto\">\r\n <List sx={{ p: 0, mt: 0.5 }}>\r\n {renderPolicyItems(item.children!, depth + 1)}\r\n </List>\r\n </Collapse>\r\n )}\r\n </Box>\r\n );\r\n });\r\n };\r\n\r\n const toggleItem = (itemId: string) => {\r\n if (!isOpen) {\r\n onToggle();\r\n setExpandedItems([itemId]);\r\n } else {\r\n setExpandedItems((prev) =>\r\n prev.includes(itemId) ? prev.filter((id) => id !== itemId) : [...prev, itemId]\r\n );\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n {isOpen && (\r\n <Box\r\n sx={{\r\n position: 'fixed',\r\n inset: 0,\r\n bgcolor: 'rgba(0, 0, 0, 0.5)',\r\n zIndex: 40,\r\n display: { xs: 'block', md: 'none' },\r\n }}\r\n onClick={onToggle}\r\n />\r\n )}\r\n <SidebarContainer isOpen={isOpen}>\r\n <Box sx={{ display: 'flex', flexDirection: 'column', height: '100%' }}>\r\n {isOpen && (\r\n <Box\r\n sx={{\r\n px: 2,\r\n py: 3,\r\n borderBottom: `1px solid ${theme.palette.dark.main}1A`,\r\n flexShrink: 0,\r\n position: 'relative',\r\n display: 'flex',\r\n flexDirection: 'row', \r\n alignItems: 'center', \r\n }}\r\n >\r\n <Typography\r\n variant=\"h6\"\r\n sx={{\r\n fontSize: '18px',\r\n fontWeight: 700,\r\n color: '#4D3019',\r\n lineHeight: 1.3,\r\n whiteSpace: 'pre-line',\r\n flex: 1,\r\n pr: 2,\r\n }}\r\n >\r\n {centreName}\r\n </Typography>\r\n\r\n <ToggleButton\r\n onClick={onToggle}\r\n sx={{ ml: 'auto' }}\r\n aria-label=\"Collapse sidebar\"\r\n >\r\n <KeyboardDoubleArrowLeftRounded sx={{ fontSize: 20 }} />\r\n </ToggleButton>\r\n </Box>\r\n )}\r\n\r\n {!isOpen && (\r\n <Box\r\n sx={{\r\n px: 1,\r\n py: 3,\r\n borderBottom: `1px solid ${theme.palette.dark.main}1A`,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n }}\r\n >\r\n <ToggleButton onClick={onToggle} aria-label=\"Expand sidebar\">\r\n <KeyboardDoubleArrowRightRounded sx={{ fontSize: 20 }} />\r\n </ToggleButton>\r\n </Box>\r\n )}\r\n\r\n <Box\r\n sx={{\r\n flex: 1,\r\n overflowY: 'auto',\r\n px: isOpen ? 0 : 1,\r\n py: 3,\r\n }}\r\n >\r\n <List sx={{ p: 0 }}>\r\n {/* Dashboard menu item */}\r\n <Box key={menuItems[0].id} sx={{ mb: 1 }}>\r\n <MenuItemButton\r\n disableRipple\r\n isOpen={isOpen}\r\n onClick={() => {\r\n if (!isOpen) onToggle();\r\n toggleItem(menuItems[0].id);\r\n window.location.href = menuItems[0].id;\r\n }}\r\n isActive={window.location.href.includes(menuItems[0].id)}\r\n title={!isOpen ? menuItems[0].label : undefined}\r\n >\r\n <IconWrapper isOpen={isOpen} sx={{ ml: isOpen ? 2 : 0 }}>\r\n {menuItems[0].icon}\r\n </IconWrapper>\r\n {isOpen && (\r\n <ListItemText\r\n primary={menuItems[0].label}\r\n primaryTypographyProps={{ fontSize: '1rem', fontWeight: 700 }}\r\n sx={{ flex: 1, ml: 1 }}\r\n />\r\n )}\r\n </MenuItemButton>\r\n </Box>\r\n\r\n {policies.length > 0 && (\r\n <Box sx={{ mb: 1 }}>\r\n <MenuItemButton\r\n disableRipple\r\n isOpen={isOpen}\r\n onClick={() => {\r\n toggleItem('policies');\r\n }}\r\n isActive={expandedItems.includes('policies')}\r\n title={!isOpen ? 'Policies' : undefined}\r\n >\r\n <IconWrapper isOpen={isOpen} sx={{ ml: isOpen ? 2 : 0 }}>\r\n <ArticleRounded sx={{ fontSize: 28, color: \"#4D3019\" }} />\r\n </IconWrapper>\r\n {isOpen && (\r\n <>\r\n <ListItemText\r\n primary=\"Policies\"\r\n primaryTypographyProps={{\r\n fontSize: '1rem', fontWeight: 700\r\n }}\r\n sx={{ flex: 1, ml: 1 }}\r\n />\r\n <Box sx={{ display: 'flex', alignItems: 'center', height: '100%' }}>\r\n {expandedItems.includes('policies') ? (\r\n <ExpandLessRounded sx={{ fontSize: 20, color: \"#4D3019\" }} />\r\n ) : (\r\n <ExpandMoreRounded sx={{ fontSize: 20, color: \"#4D3019\" }} />\r\n )}\r\n </Box>\r\n </>\r\n )}\r\n </MenuItemButton>\r\n {expandedItems.includes('policies') && isOpen && (\r\n <Collapse in={true} timeout=\"auto\">\r\n <List sx={{ p: 0, mt: 0.5 }}>\r\n {renderPolicyItems(policies)}\r\n </List>\r\n </Collapse>\r\n )}\r\n </Box>\r\n )}\r\n\r\n {/* Support menu item */}\r\n <Box key={menuItems[1].id} sx={{ mb: 1 }}>\r\n <MenuItemButton\r\n disableRipple\r\n isOpen={isOpen}\r\n onClick={() => {\r\n if (!isOpen) onToggle();\r\n toggleItem(menuItems[1].id);\r\n window.location.href = menuItems[1].id;\r\n }}\r\n isActive={window.location.href.includes(menuItems[1].id)}\r\n title={!isOpen ? menuItems[1].label : undefined}\r\n >\r\n <IconWrapper isOpen={isOpen} sx={{ ml: isOpen ? 2 : 0 }}>\r\n {menuItems[1].icon}\r\n </IconWrapper>\r\n {isOpen && (\r\n <ListItemText\r\n primary={menuItems[1].label}\r\n primaryTypographyProps={{ fontSize: '1rem', fontWeight: 700 }}\r\n sx={{ flex: 1, ml: 1 }}\r\n />\r\n )}\r\n </MenuItemButton>\r\n </Box>\r\n </List>\r\n </Box>\r\n </Box>\r\n </SidebarContainer>\r\n </>\r\n );\r\n};"],"names":["_jsx","_jsxs","_Fragment"],"mappings":";;;;;;AA6BA,MAAM,gBAAgB,GAAG,MAAM,CAAC,GAAG,EAAE;IACnC,iBAAiB,EAAE,CAAC,IAAI,KAAK,IAAI,KAAK,QAAQ;CAC/C,CAAC,CAAsB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM;AAC9C,IAAA,MAAM,EAAE,OAAO;AACf,IAAA,QAAQ,EAAE,QAAQ;AAClB,IAAA,GAAG,EAAE,CAAC;AACN,IAAA,WAAW,EAAE,CAAC;AACd,IAAA,QAAQ,EAAE,QAAQ;AAClB,IAAA,eAAe,EAAE,MAAM;IACvB,WAAW,EAAE,aAAa,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAA,EAAA,CAAI;AACrD,IAAA,UAAU,EAAE,CAAC;AACb,IAAA,UAAU,EAAE,sBAAsB;IAClC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM;AAChC,IAAA,MAAM,EAAE,EAAE;IACV,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;AAC9B,QAAA,QAAQ,EAAE,OAAO;QACjB,IAAI,EAAE,MAAM,GAAG,CAAC,GAAG,QAAQ;AAC3B,QAAA,KAAK,EAAE,OAAO;AACf,KAAA;IACD,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;QAC5B,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM;AACjC,KAAA;AACF,CAAA,CAAC,CAAC;AAEH,MAAM,YAAY,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM;AACtD,IAAA,KAAK,EAAE,EAAE;AACT,IAAA,MAAM,EAAE,EAAE;AACV,IAAA,YAAY,EAAE,KAAK,CAAC,KAAK,CAAC,YAAY;AACtC,IAAA,eAAe,EAAE,SAAS;AAC1B,IAAA,KAAK,EAAE,MAAM;AACb,IAAA,SAAS,EAAE;AACT,QAAA,eAAe,EAAE,SAAS;AAC3B,KAAA;AACF,CAAA,CAAC,CAAC;AAEH,MAAM,cAAc,GAAG,MAAM,CAAC,cAAc,EAAE;AAC5C,IAAA,iBAAiB,EAAE,CAAC,IAAI,KAAK,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK;AAC5D,CAAA,CAAC,CAA0C,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM;AAC5E,IAAA,YAAY,EAAE;AACZ,UAAE,CAAA,EAAA,EAAK,KAAK,CAAC,KAAK,CAAC,YAAY,CAAA,GAAA,EAAM,KAAK,CAAC,KAAK,CAAC,YAAY,CAAA,IAAA;AAC7D,UAAE,KAAK,CAAC,KAAK,CAAC,YAAY;AAC5B,IAAA,WAAW,EAAE,CAAC;AACd,IAAA,YAAY,EAAE,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IAC3C,WAAW,EAAE,MAAM,GAAG,CAAC,GAAG,CAAC;AAC3B,IAAA,SAAS,EAAE,EAAE;IACb,cAAc,EAAE,MAAM,GAAG,YAAY,GAAG,QAAQ;AAChD,IAAA,cAAc,EAAE,aAAa;AAC7B,IAAA,gBAAgB,EAAE,YAAY;AAC9B,IAAA,SAAS,EAAE;QACT,eAAe,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAA,EAAA,CAAI;AACnD,KAAA;IACD,IAAI,QAAQ,IAAI;QACd,eAAe,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAA,EAAA,CAAI;AAClD,QAAA,SAAS,EAAE;YACT,eAAe,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAA,EAAA,CAAI;AACnD;KACF,CAAC;AACH,CAAA,CAAC,CAAC;AAEH,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,EAAE;IAC9B,iBAAiB,EAAE,CAAC,IAAI,KAAK,IAAI,KAAK;CACvC,CAAC,CAAsB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM;IAC9C,KAAK,EAAE,MAAM,GAAG,EAAE,GAAG,EAAE;IACvB,MAAM,EAAE,MAAM,GAAG,EAAE,GAAG,EAAE;AACxB,IAAA,OAAO,EAAE,MAAM;AACf,IAAA,UAAU,EAAE,QAAQ;AACpB,IAAA,cAAc,EAAE,QAAQ;AACxB,IAAA,eAAe,EAAE;AAClB,CAAA,CAAC,CAAC;AAEI,MAAM,OAAO,GAA2B,CAAC,EAC9C,MAAM,EACN,QAAQ,EACR,UAAU,GAAG,2CAA2C,EACxD,QAAQ,GAAG,EAAE,EACd,KAAI;AACH,IAAA,MAAM,KAAK,GAAG,QAAQ,EAAE;IACxB,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAW,EAAE,CAAC;IAChE,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CAAW,EAAE,CAAC;AAEtE,IAAA,MAAM,gBAAgB,GAAG,CAAC,MAAc,KAAI;AAC1C,QAAA,mBAAmB,CAAC,CAAC,IAAI,KACvB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,CAC/E;AACH,IAAA,CAAC;AAED,IAAA,MAAM,SAAS,GAAe;AAC5B,QAAA;AACE,YAAA,EAAE,EAAE,YAAY;AAChB,YAAA,KAAK,EAAE,WAAW;AAClB,YAAA,IAAI,EAAEA,GAAA,CAAC,WAAW,EAAA,EAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,EAAA,CAAI;AAC9D,SAAA;AACD,QAAA;AACE,YAAA,EAAE,EAAE,UAAU;AACd,YAAA,KAAK,EAAE,SAAS;AAChB,YAAA,IAAI,EAAEA,GAAA,CAAC,iBAAiB,EAAA,EAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,EAAA,CAAI;AACpE,SAAA;KACF;IAED,MAAM,iBAAiB,GAAG,CAAC,KAAmB,EAAE,KAAA,GAAgB,CAAC,KAAqB;AACpF,QAAA,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAI;AACxB,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;YAC7D,MAAM,UAAU,GAAG,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;YACpD,MAAM,WAAW,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC;YAEnC,QACEC,IAAA,CAAC,GAAG,EAAA,EAAA,QAAA,EAAA,CACFD,GAAA,CAAC,GAAG,EAAA,EAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,EAAA,QAAA,EACjDC,IAAA,CAAC,cAAc,EAAA,EACb,aAAa,EAAA,IAAA,EACb,EAAE,EAAE;AACF,gCAAA,IAAI,EAAE,CAAC;AACP,gCAAA,KAAK,EAAE,MAAM;AACb,gCAAA,EAAE,EAAE,WAAW;AACf,gCAAA,WAAW,EAAC,KAAK;AACjB,gCAAA,EAAE,EAAE,IAAI;AACR,gCAAA,YAAY,EAAE,CAAA,EAAA,EAAK,KAAK,CAAC,KAAK,CAAC,YAAY,CAAA,GAAA,EAAM,KAAK,CAAC,KAAK,CAAC,YAAY,CAAA,IAAA,CAAM;;AAE/E,gCAAA,SAAS,EAAE;oCACT,eAAe,EAAE,UAAU,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAA,EAAA,CAAI,GAAG,CAAA,EAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAA,EAAA,CAAI;AACpG,iCAAA;AACD,gCAAA,eAAe,EAAE,UAAU,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,GAAG,aAAa;AAChF,6BAAA,EAAA,QAAA,EAAA,CAGDD,GAAA,CAAC,GAAG,EAAA,EACF,EAAE,EAAE;AACF,wCAAA,MAAM,EAAE,SAAS;AACjB,wCAAA,IAAI,EAAE;qCACP,EACD,OAAO,EAAE,MAAM,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,EAAA,QAAA,EAE9CA,GAAA,CAAC,YAAY,EAAA,EACX,OAAO,EAAE,IAAI,CAAC,IAAI,EAClB,sBAAsB,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,GAChD,EAAA,CACE,EAEL,WAAW,KACVA,IAAC,UAAU,EAAA,EACT,OAAO,EAAE,CAAC,CAAC,KAAI;wCACb,CAAC,CAAC,eAAe,EAAE;AACnB,wCAAA,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1B,oCAAA,CAAC,EACD,aAAa,EAAA,IAAA,EAAA,QAAA,EAEbA,IAAC,mBAAmB,EAAA,EAClB,EAAE,EAAE;AACF,4CAAA,QAAQ,EAAE,EAAE;AACZ,4CAAA,KAAK,EAAE,SAAS;AAChB,4CAAA,UAAU,EAAE,gBAAgB;4CAC5B,SAAS,EAAE,UAAU,GAAG,eAAe,GAAG,cAAc;yCACzD,EAAA,CACD,EAAA,CACS,CACd,CAAA,EAAA,CACc,EAAA,CACb,EACL,WAAW,IAAI,UAAU,KACxBA,GAAA,CAAC,QAAQ,IAAC,EAAE,EAAE,IAAI,EAAE,OAAO,EAAC,MAAM,EAAA,QAAA,EAChCA,GAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,EAAA,QAAA,EACxB,iBAAiB,CAAC,IAAI,CAAC,QAAS,EAAE,KAAK,GAAG,CAAC,CAAC,EAAA,CACxC,EAAA,CACE,CACZ,CAAA,EAAA,EA1DO,IAAI,CAAC,EAAE,CA2DX;AAEV,QAAA,CAAC,CAAC;AACJ,IAAA,CAAC;AAED,IAAA,MAAM,UAAU,GAAG,CAAC,MAAc,KAAI;QACpC,IAAI,CAAC,MAAM,EAAE;AACX,YAAA,QAAQ,EAAE;AACV,YAAA,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;QAC5B;aAAO;AACL,YAAA,gBAAgB,CAAC,CAAC,IAAI,KACpB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,CAC/E;QACH;AACF,IAAA,CAAC;IAED,QACEC,4BACG,MAAM,KACLD,GAAA,CAAC,GAAG,EAAA,EACF,EAAE,EAAE;AACF,oBAAA,QAAQ,EAAE,OAAO;AACjB,oBAAA,KAAK,EAAE,CAAC;AACR,oBAAA,OAAO,EAAE,oBAAoB;AAC7B,oBAAA,MAAM,EAAE,EAAE;oBACV,OAAO,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE;AACrC,iBAAA,EACD,OAAO,EAAE,QAAQ,EAAA,CACjB,CACH,EACDA,GAAA,CAAC,gBAAgB,EAAA,EAAC,MAAM,EAAE,MAAM,EAAA,QAAA,EAC9BC,KAAC,GAAG,EAAA,EAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,EAAA,QAAA,EAAA,CAClE,MAAM,KACLA,KAAC,GAAG,EAAA,EACF,EAAE,EAAE;AACF,gCAAA,EAAE,EAAE,CAAC;AACL,gCAAA,EAAE,EAAE,CAAC;gCACL,YAAY,EAAE,aAAa,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAA,EAAA,CAAI;AACtD,gCAAA,UAAU,EAAE,CAAC;AACb,gCAAA,QAAQ,EAAE,UAAU;AACpB,gCAAA,OAAO,EAAE,MAAM;AACf,gCAAA,aAAa,EAAE,KAAK;AACpB,gCAAA,UAAU,EAAE,QAAQ;6BACrB,EAAA,QAAA,EAAA,CAEDD,GAAA,CAAC,UAAU,EAAA,EACT,OAAO,EAAC,IAAI,EACZ,EAAE,EAAE;AACF,wCAAA,QAAQ,EAAE,MAAM;AAChB,wCAAA,UAAU,EAAE,GAAG;AACf,wCAAA,KAAK,EAAE,SAAS;AAChB,wCAAA,UAAU,EAAE,GAAG;AACf,wCAAA,UAAU,EAAE,UAAU;AACtB,wCAAA,IAAI,EAAE,CAAC;AACP,wCAAA,EAAE,EAAE,CAAC;AACN,qCAAA,EAAA,QAAA,EAEA,UAAU,EAAA,CACA,EAEbA,IAAC,YAAY,EAAA,EACX,OAAO,EAAE,QAAQ,EACjB,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAA,YAAA,EACP,kBAAkB,EAAA,QAAA,EAE7BA,GAAA,CAAC,8BAA8B,EAAA,EAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAI,EAAA,CAC3C,CAAA,EAAA,CACX,CACP,EAEA,CAAC,MAAM,KACNA,IAAC,GAAG,EAAA,EACF,EAAE,EAAE;AACF,gCAAA,EAAE,EAAE,CAAC;AACL,gCAAA,EAAE,EAAE,CAAC;gCACL,YAAY,EAAE,aAAa,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAA,EAAA,CAAI;AACtD,gCAAA,OAAO,EAAE,MAAM;AACf,gCAAA,cAAc,EAAE,QAAQ;AACzB,6BAAA,EAAA,QAAA,EAEDA,GAAA,CAAC,YAAY,EAAA,EAAC,OAAO,EAAE,QAAQ,EAAA,YAAA,EAAa,gBAAgB,EAAA,QAAA,EAC1DA,GAAA,CAAC,+BAA+B,EAAA,EAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAA,CAAI,EAAA,CAC5C,EAAA,CACX,CACP,EAEDA,GAAA,CAAC,GAAG,EAAA,EACF,EAAE,EAAE;AACF,gCAAA,IAAI,EAAE,CAAC;AACP,gCAAA,SAAS,EAAE,MAAM;gCACjB,EAAE,EAAE,MAAM,GAAG,CAAC,GAAG,CAAC;AAClB,gCAAA,EAAE,EAAE,CAAC;AACN,6BAAA,EAAA,QAAA,EAEHC,IAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAA,QAAA,EAAA,CAEhBD,GAAA,CAAC,GAAG,EAAA,EAAuB,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAA,QAAA,EACtCC,IAAA,CAAC,cAAc,EAAA,EACb,aAAa,EAAA,IAAA,EACb,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAK;AACZ,gDAAA,IAAI,CAAC,MAAM;AAAE,oDAAA,QAAQ,EAAE;gDACvB,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gDAC3B,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE;AACxC,4CAAA,CAAC,EACD,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EACxD,KAAK,EAAE,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,SAAS,EAAA,QAAA,EAAA,CAE/CD,GAAA,CAAC,WAAW,EAAA,EAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,GAAG,CAAC,GAAG,CAAC,EAAE,EAAA,QAAA,EACpD,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,GACN,EACb,MAAM,KACLA,IAAC,YAAY,EAAA,EACX,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,EAC3B,sBAAsB,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,EAC7D,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAA,CACtB,CACH,CAAA,EAAA,CACc,IAtBT,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAuBnB,EAEL,QAAQ,CAAC,MAAM,GAAG,CAAC,KAClBC,IAAA,CAAC,GAAG,EAAA,EAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAA,QAAA,EAAA,CAChBA,IAAA,CAAC,cAAc,EAAA,EACb,aAAa,EAAA,IAAA,EACb,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAK;oDACZ,UAAU,CAAC,UAAU,CAAC;AACxB,gDAAA,CAAC,EACD,QAAQ,EAAE,aAAa,CAAC,QAAQ,CAAC,UAAU,CAAC,EAC5C,KAAK,EAAE,CAAC,MAAM,GAAG,UAAU,GAAG,SAAS,EAAA,QAAA,EAAA,CAEvCD,GAAA,CAAC,WAAW,EAAA,EAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,GAAG,CAAC,GAAG,CAAC,EAAE,EAAA,QAAA,EACrDA,GAAA,CAAC,cAAc,EAAA,EAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,EAAA,CAAI,EAAA,CAC9C,EACb,MAAM,KACLC,IAAA,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAA,CACEF,GAAA,CAAC,YAAY,IACX,OAAO,EAAC,UAAU,EAClB,sBAAsB,EAAE;AACtB,oEAAA,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE;AAC/B,iEAAA,EACD,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAA,CACtB,EACFA,GAAA,CAAC,GAAG,EAAA,EAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,EAAA,QAAA,EAC/D,aAAa,CAAC,QAAQ,CAAC,UAAU,CAAC,IACjCA,GAAA,CAAC,iBAAiB,EAAA,EAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,EAAA,CAAI,KAE7DA,GAAA,CAAC,iBAAiB,EAAA,EAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,EAAA,CAAI,CAC9D,EAAA,CACG,CAAA,EAAA,CACL,CACJ,CAAA,EAAA,CACc,EAChB,aAAa,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,MAAM,KAC3CA,GAAA,CAAC,QAAQ,EAAA,EAAC,EAAE,EAAE,IAAI,EAAE,OAAO,EAAC,MAAM,EAAA,QAAA,EAChCA,GAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,EAAA,QAAA,EACxB,iBAAiB,CAAC,QAAQ,CAAC,EAAA,CACvB,EAAA,CACE,CACZ,IACG,CACP,EAGDA,GAAA,CAAC,GAAG,IAAuB,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAA,QAAA,EACtCC,IAAA,CAAC,cAAc,EAAA,EACb,aAAa,EAAA,IAAA,EACb,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAK;AACZ,gDAAA,IAAI,CAAC,MAAM;AAAE,oDAAA,QAAQ,EAAE;gDACvB,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gDAC3B,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE;4CACxC,CAAC,EACD,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EACxD,KAAK,EAAE,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,SAAS,EAAA,QAAA,EAAA,CAE/CD,GAAA,CAAC,WAAW,EAAA,EAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,GAAG,CAAC,GAAG,CAAC,EAAE,EAAA,QAAA,EACpD,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAA,CACN,EACb,MAAM,KACLA,GAAA,CAAC,YAAY,EAAA,EACX,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,EAC3B,sBAAsB,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,EAC7D,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAA,CACtB,CACH,CAAA,EAAA,CACc,EAAA,EAtBT,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAuBnB,CAAA,EAAA,CACD,EAAA,CACD,CAAA,EAAA,CACF,EAAA,CACW,CAAA,EAAA,CAClB;AAEP;;;;"}
|
|
1
|
+
{"version":3,"file":"Sidebar.js","sources":["../../../../src/components/Sidebar.tsx"],"sourcesContent":["import React, { useState } from 'react';\r\nimport { Box, IconButton, Typography, List, ListItemButton, ListItemText, Collapse, styled } from '@mui/material';\r\nimport { useTheme } from '../ThemeProvider';\r\nimport { ArticleRounded, ChevronRightRounded, ExpandLessRounded, ExpandMoreRounded, HelpCenterRounded, HomeRounded, KeyboardDoubleArrowLeftRounded, KeyboardDoubleArrowRightRounded, SupportAgentRounded, TextSnippetRounded } from '@mui/icons-material';\r\n\r\n// PolicyItem and SidebarProps interfaces as before\r\ninterface PolicyItem {\r\n id: number;\r\n o: number;\r\n text: string;\r\n url: string;\r\n node: string;\r\n leaf?: boolean;\r\n children?: PolicyItem[];\r\n}\r\n\r\ninterface SidebarProps {\r\n isOpen: boolean;\r\n onToggle: () => void;\r\n centreName?: string;\r\n policies?: PolicyItem[];\r\n}\r\n\r\ninterface MenuItem {\r\n id: string;\r\n label: string;\r\n icon: React.ReactNode;\r\n}\r\n\r\nconst SidebarContainer = styled(Box, {\r\n shouldForwardProp: (prop) => prop !== 'isOpen',\r\n})<{ isOpen: boolean }>(({ theme, isOpen }) => ({\r\n height: '100vh',\r\n position: 'sticky',\r\n top: 0,\r\n paddingLeft: 0,\r\n overflow: 'hidden',\r\n backgroundColor: '#fff',\r\n borderRight: `1px solid ${theme.palette.dark.main}1A`,\r\n flexShrink: 0,\r\n transition: 'all 0.3s ease-in-out',\r\n width: isOpen ? '288px' : '64px',\r\n zIndex: 50,\r\n [theme.breakpoints.down('md')]: {\r\n position: 'fixed',\r\n left: isOpen ? 0 : '-288px',\r\n width: '288px',\r\n },\r\n [theme.breakpoints.up('sm')]: {\r\n width: isOpen ? '288px' : '80px',\r\n },\r\n}));\r\n\r\nconst ToggleButton = styled(IconButton)(({ theme }) => ({\r\n width: 40,\r\n height: 40,\r\n borderRadius: theme.shape.borderRadius,\r\n backgroundColor: '#4D3019',\r\n color: '#fff',\r\n '&:hover': {\r\n backgroundColor: '#3d2614',\r\n },\r\n}));\r\n\r\nconst MenuItemButton = styled(ListItemButton, {\r\n shouldForwardProp: (prop) => prop !== 'isOpen' && prop !== 'isActive'\r\n})<{ isActive?: boolean; isOpen: boolean }>(({ theme, isActive, isOpen }) => ({\r\n borderRadius: isOpen \r\n ? `0 ${theme.shape.borderRadius}px ${theme.shape.borderRadius}px 0`\r\n : theme.shape.borderRadius,\r\n paddingLeft: 0,\r\n paddingRight: isOpen ? theme.spacing(2) : 0,\r\n marginRight: isOpen ? 8 : 0,\r\n minHeight: 64,\r\n justifyContent: isOpen ? 'flex-start' : 'center',\r\n backgroundClip: 'padding-box',\r\n backgroundOrigin: 'border-box',\r\n '&:hover': {\r\n backgroundColor: `${theme.palette.primary.main}0D`,\r\n },\r\n ...(isActive && {\r\n backgroundColor: `${theme.palette.primary.main}1A`,\r\n '&:hover': {\r\n backgroundColor: `${theme.palette.primary.main}1A`,\r\n }\r\n }),\r\n}));\r\n\r\nconst IconWrapper = styled(Box, {\r\n shouldForwardProp: (prop) => prop !== 'isOpen'\r\n})<{ isOpen: boolean }>(({ theme, isOpen }) => ({\r\n width: isOpen ? 32 : 40,\r\n height: isOpen ? 32 : 40,\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n backgroundColor: 'transparent'\r\n}));\r\n\r\nexport const Sidebar: React.FC<SidebarProps> = ({\r\n isOpen,\r\n onToggle,\r\n centreName = \"Centre name goes here \\n across two lines\",\r\n policies = []\r\n}) => {\r\n const theme = useTheme();\r\n const [expandedItems, setExpandedItems] = useState<string[]>([]);\r\n const [expandedPolicies, setExpandedPolicies] = useState<number[]>([]);\r\n\r\n const togglePolicyItem = (itemId: number) => {\r\n setExpandedPolicies((prev) =>\r\n prev.includes(itemId) ? prev.filter((id) => id !== itemId) : [...prev, itemId]\r\n );\r\n };\r\n\r\n const menuItems: MenuItem[] = [\r\n {\r\n id: '/dashboard',\r\n label: 'Dashboard',\r\n icon: <HomeRounded sx={{ fontSize: 28, color: \"#4D3019\" }} />,\r\n },\r\n {\r\n id: '/support',\r\n label: 'Support',\r\n icon: <HelpCenterRounded sx={{ fontSize: 28, color: \"#4D3019\" }} />,\r\n },\r\n ];\r\n\r\n const renderPolicyItems = (items: PolicyItem[], depth: number = 0): React.ReactNode => {\r\n return items.map((item) => {\r\n const hasChildren = item.children && item.children.length > 0;\r\n const isExpanded = expandedPolicies.includes(item.o);\r\n const paddingLeft = 8 + (depth * 2);\r\n\r\n return (\r\n <Box key={item.id}>\r\n <Box sx={{ display: 'flex', alignItems: 'stretch' }}>\r\n <ListItemButton\r\n disableRipple\r\n sx={{\r\n flex: 1,\r\n width: '100%',\r\n pl: paddingLeft,\r\n marginRight:'8px',\r\n py: 1.25,\r\n borderRadius: `0 ${theme.shape.borderRadius}px ${theme.shape.borderRadius}px 0`,\r\n // Highlight if expanded\r\n '&:hover': {\r\n backgroundColor: isExpanded ? `${theme.palette.primary.main}1F` : `${theme.palette.primary.main}0D`,\r\n },\r\n backgroundColor: isExpanded ? `${theme.palette.primary.main}1A` : 'transparent',\r\n }}\r\n >\r\n {/* Make the text a button/anchor */}\r\n <Box\r\n sx={{\r\n cursor: 'pointer',\r\n flex: 1\r\n }}\r\n onClick={() => window.location.href = item.url}\r\n >\r\n <ListItemText\r\n primary={item.text}\r\n primaryTypographyProps={{ fontSize: '0.875rem' }}\r\n />\r\n </Box>\r\n {/* The chevron expands/collapses the section */}\r\n {hasChildren && (\r\n <IconButton\r\n onClick={(e) => {\r\n e.stopPropagation();\r\n togglePolicyItem(item.o);\r\n }}\r\n disableRipple\r\n >\r\n <ChevronRightRounded\r\n sx={{\r\n fontSize: 16,\r\n color: '#4D3019',\r\n transition: 'transform 0.2s',\r\n transform: isExpanded ? 'rotate(90deg)' : 'rotate(0deg)',\r\n }}\r\n />\r\n </IconButton>\r\n )}\r\n </ListItemButton>\r\n </Box>\r\n {hasChildren && isExpanded && (\r\n <Collapse in={true} timeout=\"auto\">\r\n <List sx={{ p: 0, mt: 0.5 }}>\r\n {renderPolicyItems(item.children!, depth + 1)}\r\n </List>\r\n </Collapse>\r\n )}\r\n </Box>\r\n );\r\n });\r\n };\r\n\r\n const toggleItem = (itemId: string) => {\r\n if (!isOpen) {\r\n onToggle();\r\n setExpandedItems([itemId]);\r\n } else {\r\n setExpandedItems((prev) =>\r\n prev.includes(itemId) ? prev.filter((id) => id !== itemId) : [...prev, itemId]\r\n );\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n {isOpen && (\r\n <Box\r\n sx={{\r\n position: 'fixed',\r\n inset: 0,\r\n bgcolor: 'rgba(0, 0, 0, 0.5)',\r\n zIndex: 40,\r\n display: { xs: 'block', md: 'none' },\r\n }}\r\n onClick={onToggle}\r\n />\r\n )}\r\n <SidebarContainer isOpen={isOpen}>\r\n <Box sx={{ display: 'flex', flexDirection: 'column', height: '100%' }}>\r\n {isOpen && (\r\n <Box\r\n sx={{\r\n px: 2,\r\n py: 3,\r\n borderBottom: `1px solid ${theme.palette.dark.main}1A`,\r\n flexShrink: 0,\r\n position: 'relative',\r\n display: 'flex',\r\n flexDirection: 'row', \r\n alignItems: 'center', \r\n }}\r\n >\r\n <Typography\r\n variant=\"h6\"\r\n sx={{\r\n fontSize: '18px',\r\n fontWeight: 700,\r\n color: '#4D3019',\r\n lineHeight: 1.3,\r\n whiteSpace: 'pre-line',\r\n flex: 1,\r\n pr: 2,\r\n }}\r\n >\r\n {centreName}\r\n </Typography>\r\n\r\n <ToggleButton\r\n onClick={onToggle}\r\n sx={{ ml: 'auto' }}\r\n aria-label=\"Collapse sidebar\"\r\n >\r\n <KeyboardDoubleArrowLeftRounded sx={{ fontSize: 20 }} />\r\n </ToggleButton>\r\n </Box>\r\n )}\r\n\r\n {!isOpen && (\r\n <Box\r\n sx={{\r\n px: 1,\r\n py: 3,\r\n borderBottom: `1px solid ${theme.palette.dark.main}1A`,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n }}\r\n >\r\n <ToggleButton onClick={onToggle} aria-label=\"Expand sidebar\">\r\n <KeyboardDoubleArrowRightRounded sx={{ fontSize: 20 }} />\r\n </ToggleButton>\r\n </Box>\r\n )}\r\n\r\n <Box\r\n sx={{\r\n flex: 1,\r\n overflowY: 'auto',\r\n px: isOpen ? 0 : 1,\r\n py: 3,\r\n }}\r\n >\r\n <List sx={{ p: 0 }}>\r\n {/* Dashboard menu item */}\r\n <Box key={menuItems[0].id} sx={{ mb: 1 }}>\r\n <MenuItemButton\r\n disableRipple\r\n isOpen={isOpen}\r\n onClick={() => {\r\n if (!isOpen) onToggle();\r\n toggleItem(menuItems[0].id);\r\n window.location.href = menuItems[0].id;\r\n }}\r\n isActive={window.location.href.includes(menuItems[0].id)}\r\n title={!isOpen ? menuItems[0].label : undefined}\r\n >\r\n <IconWrapper isOpen={isOpen} sx={{ ml: isOpen ? 2 : 0 }}>\r\n {menuItems[0].icon}\r\n </IconWrapper>\r\n {isOpen && (\r\n <ListItemText\r\n primary={menuItems[0].label}\r\n primaryTypographyProps={{ fontSize: '1rem', fontWeight: 700 }}\r\n sx={{ flex: 1, ml: 1 }}\r\n />\r\n )}\r\n </MenuItemButton>\r\n </Box>\r\n\r\n {policies.length > 0 && (\r\n <Box sx={{ mb: 1 }}>\r\n <MenuItemButton\r\n disableRipple\r\n isOpen={isOpen}\r\n onClick={() => {\r\n toggleItem('policies');\r\n }}\r\n isActive={expandedItems.includes('policies')}\r\n title={!isOpen ? 'Policies' : undefined}\r\n >\r\n <IconWrapper isOpen={isOpen} sx={{ ml: isOpen ? 2 : 0 }}>\r\n <ArticleRounded sx={{ fontSize: 28, color: \"#4D3019\" }} />\r\n </IconWrapper>\r\n {isOpen && (\r\n <>\r\n <ListItemText\r\n primary=\"Policies\"\r\n primaryTypographyProps={{\r\n fontSize: '1rem', fontWeight: 700\r\n }}\r\n sx={{ flex: 1, ml: 1 }}\r\n />\r\n <Box sx={{ display: 'flex', alignItems: 'center', height: '100%' }}>\r\n {expandedItems.includes('policies') ? (\r\n <ExpandLessRounded sx={{ fontSize: 20, color: \"#4D3019\" }} />\r\n ) : (\r\n <ExpandMoreRounded sx={{ fontSize: 20, color: \"#4D3019\" }} />\r\n )}\r\n </Box>\r\n </>\r\n )}\r\n </MenuItemButton>\r\n {expandedItems.includes('policies') && isOpen && (\r\n <Collapse in={true} timeout=\"auto\">\r\n <List sx={{ p: 0, mt: 0.5 }}>\r\n {renderPolicyItems(policies)}\r\n </List>\r\n </Collapse>\r\n )}\r\n </Box>\r\n )}\r\n\r\n {/* Support menu item */}\r\n <Box key={menuItems[1].id} sx={{ mb: 1 }}>\r\n <MenuItemButton\r\n disableRipple\r\n isOpen={isOpen}\r\n onClick={() => {\r\n if (!isOpen) onToggle();\r\n toggleItem(menuItems[1].id);\r\n window.location.href = menuItems[1].id;\r\n }}\r\n isActive={window.location.href.includes(menuItems[1].id)}\r\n title={!isOpen ? menuItems[1].label : undefined}\r\n >\r\n <IconWrapper isOpen={isOpen} sx={{ ml: isOpen ? 2 : 0 }}>\r\n {menuItems[1].icon}\r\n </IconWrapper>\r\n {isOpen && (\r\n <ListItemText\r\n primary={menuItems[1].label}\r\n primaryTypographyProps={{ fontSize: '1rem', fontWeight: 700 }}\r\n sx={{ flex: 1, ml: 1 }}\r\n />\r\n )}\r\n </MenuItemButton>\r\n </Box>\r\n </List>\r\n </Box>\r\n </Box>\r\n </SidebarContainer>\r\n </>\r\n );\r\n};"],"names":["_jsx","_jsxs","_Fragment"],"mappings":"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"}
|