ece-docs-components 1.0.45 → 1.0.46
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/_virtual/index8.js +2 -2
- package/dist/cjs/_virtual/index9.js +2 -2
- package/dist/cjs/components/Input.js +4 -4
- package/dist/cjs/components/Input.js.map +1 -1
- package/dist/cjs/components/Sidebar.js.map +1 -1
- package/dist/cjs/node_modules/domutils/lib/index.js +1 -1
- package/dist/cjs/node_modules/style-to-object/cjs/index.js +1 -1
- package/dist/esm/components/Input.js +4 -4
- package/dist/esm/components/Input.js.map +1 -1
- package/dist/esm/components/Sidebar.d.ts +1 -0
- package/dist/esm/components/Sidebar.js.map +1 -1
- package/package.json +1 -1
|
@@ -33,16 +33,16 @@ const StyledTextField = material.styled(material.TextField, {
|
|
|
33
33
|
height: 48,
|
|
34
34
|
padding: 0, // Remove padding from root
|
|
35
35
|
'& .MuiOutlinedInput-notchedOutline': {
|
|
36
|
-
borderColor: errorMessage ? theme.palette.
|
|
36
|
+
borderColor: errorMessage ? theme.palette.error.main : `${theme.palette.dark.main}33`,
|
|
37
37
|
borderWidth: 2,
|
|
38
38
|
},
|
|
39
39
|
'&:hover .MuiOutlinedInput-notchedOutline': {
|
|
40
|
-
borderColor: errorMessage ? theme.palette.
|
|
40
|
+
borderColor: errorMessage ? theme.palette.error.main : theme.palette.primary.main,
|
|
41
41
|
borderWidth: 2,
|
|
42
42
|
},
|
|
43
43
|
'&.Mui-focused .MuiOutlinedInput-notchedOutline': {
|
|
44
44
|
borderWidth: 2,
|
|
45
|
-
borderColor: errorMessage ? theme.palette.
|
|
45
|
+
borderColor: errorMessage ? theme.palette.error.main : theme.palette.primary.main,
|
|
46
46
|
},
|
|
47
47
|
'&.Mui-disabled': {
|
|
48
48
|
backgroundColor: `${theme.palette.dark.main}0D`,
|
|
@@ -65,7 +65,7 @@ const StyledTextField = material.styled(material.TextField, {
|
|
|
65
65
|
'& .MuiFormHelperText-root': {
|
|
66
66
|
marginTop: theme.spacing(0.75),
|
|
67
67
|
fontSize: '0.875rem',
|
|
68
|
-
color: errorMessage ? theme.palette.
|
|
68
|
+
color: errorMessage ? theme.palette.error.main : `${theme.palette.dark.main}99`,
|
|
69
69
|
},
|
|
70
70
|
}));
|
|
71
71
|
const Input = ({ error, fullWidth = false, id, label, ...props }) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Input.js","sources":["../../../../src/components/Input.tsx"],"sourcesContent":["import React from 'react';\r\nimport { styled, TextField, TextFieldProps, InputLabel } from '@mui/material';\r\n\r\ninterface InputProps extends Omit<TextFieldProps, 'variant' | 'error'> {\r\n error?: string;\r\n}\r\n\r\nconst InputWrapper = styled('div')(({ theme }) => ({\r\n width: '100%',\r\n}));\r\n\r\nexport const StyledLabel = styled(InputLabel)(({ theme }) => ({\r\n fontSize: '0.875rem',\r\n fontWeight: 500,\r\n color: theme.palette.dark.main,\r\n marginBottom: theme.spacing(0.75),\r\n display: 'block',\r\n position: 'static',\r\n transform: 'none',\r\n '&.Mui-focused': {\r\n color: theme.palette.dark.main,\r\n },\r\n}));\r\n\r\nconst StyledTextField = styled(TextField, {\r\n shouldForwardProp: (prop) => !['errorMessage'].includes(prop as string),\r\n})<{ errorMessage?: string }>(({ theme, errorMessage }) => ({\r\n width: '100%',\r\n '& .MuiInputBase-root': {\r\n backgroundColor: theme.palette.light.main,\r\n borderRadius: (typeof theme.shape.borderRadius === 'string'\r\n ? parseInt(theme.shape.borderRadius, 10)\r\n : theme.shape.borderRadius || 4) * 2,\r\n fontSize: '1rem',\r\n color: theme.palette.dark.main,\r\n minWidth: 0,\r\n height: 48,\r\n padding: 0, // Remove padding from root\r\n '& .MuiOutlinedInput-notchedOutline': {\r\n borderColor: errorMessage ? theme.palette.
|
|
1
|
+
{"version":3,"file":"Input.js","sources":["../../../../src/components/Input.tsx"],"sourcesContent":["import React from 'react';\r\nimport { styled, TextField, TextFieldProps, InputLabel } from '@mui/material';\r\n\r\ninterface InputProps extends Omit<TextFieldProps, 'variant' | 'error'> {\r\n error?: string;\r\n}\r\n\r\nconst InputWrapper = styled('div')(({ theme }) => ({\r\n width: '100%',\r\n}));\r\n\r\nexport const StyledLabel = styled(InputLabel)(({ theme }) => ({\r\n fontSize: '0.875rem',\r\n fontWeight: 500,\r\n color: theme.palette.dark.main,\r\n marginBottom: theme.spacing(0.75),\r\n display: 'block',\r\n position: 'static',\r\n transform: 'none',\r\n '&.Mui-focused': {\r\n color: theme.palette.dark.main,\r\n },\r\n}));\r\n\r\nconst StyledTextField = styled(TextField, {\r\n shouldForwardProp: (prop) => !['errorMessage'].includes(prop as string),\r\n})<{ errorMessage?: string }>(({ theme, errorMessage }) => ({\r\n width: '100%',\r\n '& .MuiInputBase-root': {\r\n backgroundColor: theme.palette.light.main,\r\n borderRadius: (typeof theme.shape.borderRadius === 'string'\r\n ? parseInt(theme.shape.borderRadius, 10)\r\n : theme.shape.borderRadius || 4) * 2,\r\n fontSize: '1rem',\r\n color: theme.palette.dark.main,\r\n minWidth: 0,\r\n height: 48,\r\n padding: 0, // Remove padding from root\r\n '& .MuiOutlinedInput-notchedOutline': {\r\n borderColor: errorMessage ? theme.palette.error.main : `${theme.palette.dark.main}33`,\r\n borderWidth: 2,\r\n },\r\n '&:hover .MuiOutlinedInput-notchedOutline': {\r\n borderColor: errorMessage ? theme.palette.error.main : theme.palette.primary.main,\r\n borderWidth: 2,\r\n },\r\n '&.Mui-focused .MuiOutlinedInput-notchedOutline': {\r\n borderWidth: 2,\r\n borderColor: errorMessage ? theme.palette.error.main : theme.palette.primary.main,\r\n },\r\n '&.Mui-disabled': {\r\n backgroundColor: `${theme.palette.dark.main}0D`,\r\n '& .MuiInputBase-input': {\r\n color: `${theme.palette.dark.main}80`,\r\n cursor: 'not-allowed',\r\n },\r\n '& .MuiOutlinedInput-notchedOutline': {\r\n borderColor: `${theme.palette.dark.main}33`,\r\n },\r\n },\r\n },\r\n // Target the actual input element for padding\r\n '& .MuiInputBase-input': {\r\n padding: theme.spacing(1, 3),\r\n [theme.breakpoints.up('sm')]: {\r\n padding: theme.spacing(1.25, 4),\r\n },\r\n },\r\n '& .MuiFormHelperText-root': {\r\n marginTop: theme.spacing(0.75),\r\n fontSize: '0.875rem',\r\n color: errorMessage ? theme.palette.error.main : `${theme.palette.dark.main}99`,\r\n },\r\n}));\r\n\r\nexport const Input: React.FC<InputProps> = ({\r\n error,\r\n fullWidth = false,\r\n id,\r\n label,\r\n ...props\r\n}) => {\r\n const inputId = id || `input-${Math.random().toString(36).substr(2, 9)}`;\r\n\r\n return (\r\n <InputWrapper sx={{ ...(!fullWidth && { width: 'auto' }) }}>\r\n {label && (\r\n <StyledLabel htmlFor={inputId}>\r\n {label}\r\n </StyledLabel>\r\n )}\r\n <StyledTextField\r\n id={inputId}\r\n error={!!error}\r\n helperText={error || props.helperText}\r\n errorMessage={error}\r\n fullWidth={fullWidth}\r\n variant=\"outlined\"\r\n {...props}\r\n />\r\n </InputWrapper>\r\n );\r\n};\r\n"],"names":["styled","InputLabel","TextField","_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, 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 title: string;\r\n newpage?: boolean;\r\n items?: 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 onNavigate?: (path: string) => void;\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 = true,\r\n onToggle,\r\n centreName = \"Centre name goes here \\n across two lines\",\r\n policies = [],\r\n onNavigate\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 handleNavigation = (path: string) => {\r\n if (onNavigate) {\r\n onNavigate(path);\r\n } else {\r\n window.location.href = path;\r\n }\r\n };\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\r\n const renderPolicyItems = (items: PolicyItem[], depth: number = 0): React.ReactNode => {\r\n return items.map((item) => {\r\n const hasChildren = item.items && item.items.length > 0;\r\n const isExpanded = expandedPolicies.includes(item.id);\r\n const paddingLeft = 3 + (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 pr: 1,\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={() => handleNavigation(item.id.toString())}\r\n >\r\n <ListItemText\r\n primary={item.title}\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.id);\r\n }}\r\n disableRipple\r\n sx={{\r\n ml: 0.5,\r\n borderRadius: 1,\r\n width: 32,\r\n height: 32,\r\n '&:hover': {\r\n backgroundColor: `${theme.palette.primary.main}1F`,\r\n },\r\n }}\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.items!, 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 handleNavigation(menuItems[0].id);\r\n }}\r\n isActive={window.location.pathname.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 </List>\r\n </Box>\r\n </Box>\r\n </SidebarContainer>\r\n </>\r\n );\r\n};"],"names":["styled","Box","IconButton","ListItemButton","useTheme","useState","_jsx","HomeRounded","_jsxs","ListItemText","ChevronRightRounded","Collapse","List","Typography","KeyboardDoubleArrowLeftRounded","KeyboardDoubleArrowRightRounded","ArticleRounded","_Fragment","ExpandLessRounded","ExpandMoreRounded"],"mappings":"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"}
|
|
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 title: string;\r\n url: string;\r\n newpage?: boolean;\r\n items?: 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 onNavigate?: (path: string) => void;\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 = true,\r\n onToggle,\r\n centreName = \"Centre name goes here \\n across two lines\",\r\n policies = [],\r\n onNavigate\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 handleNavigation = (path: string) => {\r\n if (onNavigate) {\r\n onNavigate(path);\r\n } else {\r\n window.location.href = path;\r\n }\r\n };\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\r\n const renderPolicyItems = (items: PolicyItem[], depth: number = 0): React.ReactNode => {\r\n return items.map((item) => {\r\n const hasChildren = item.items && item.items.length > 0;\r\n const isExpanded = expandedPolicies.includes(item.id);\r\n const paddingLeft = 3 + (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 pr: 1,\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={() => handleNavigation(item.id.toString())}\r\n >\r\n <ListItemText\r\n primary={item.title}\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.id);\r\n }}\r\n disableRipple\r\n sx={{\r\n ml: 0.5,\r\n borderRadius: 1,\r\n width: 32,\r\n height: 32,\r\n '&:hover': {\r\n backgroundColor: `${theme.palette.primary.main}1F`,\r\n },\r\n }}\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.items!, 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 handleNavigation(menuItems[0].id);\r\n }}\r\n isActive={window.location.pathname.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 </List>\r\n </Box>\r\n </Box>\r\n </SidebarContainer>\r\n </>\r\n );\r\n};"],"names":["styled","Box","IconButton","ListItemButton","useTheme","useState","_jsx","HomeRounded","_jsxs","ListItemText","ChevronRightRounded","Collapse","List","Typography","KeyboardDoubleArrowLeftRounded","KeyboardDoubleArrowRightRounded","ArticleRounded","_Fragment","ExpandLessRounded","ExpandMoreRounded"],"mappings":"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"}
|
|
@@ -31,16 +31,16 @@ const StyledTextField = styled(TextField, {
|
|
|
31
31
|
height: 48,
|
|
32
32
|
padding: 0, // Remove padding from root
|
|
33
33
|
'& .MuiOutlinedInput-notchedOutline': {
|
|
34
|
-
borderColor: errorMessage ? theme.palette.
|
|
34
|
+
borderColor: errorMessage ? theme.palette.error.main : `${theme.palette.dark.main}33`,
|
|
35
35
|
borderWidth: 2,
|
|
36
36
|
},
|
|
37
37
|
'&:hover .MuiOutlinedInput-notchedOutline': {
|
|
38
|
-
borderColor: errorMessage ? theme.palette.
|
|
38
|
+
borderColor: errorMessage ? theme.palette.error.main : theme.palette.primary.main,
|
|
39
39
|
borderWidth: 2,
|
|
40
40
|
},
|
|
41
41
|
'&.Mui-focused .MuiOutlinedInput-notchedOutline': {
|
|
42
42
|
borderWidth: 2,
|
|
43
|
-
borderColor: errorMessage ? theme.palette.
|
|
43
|
+
borderColor: errorMessage ? theme.palette.error.main : theme.palette.primary.main,
|
|
44
44
|
},
|
|
45
45
|
'&.Mui-disabled': {
|
|
46
46
|
backgroundColor: `${theme.palette.dark.main}0D`,
|
|
@@ -63,7 +63,7 @@ const StyledTextField = styled(TextField, {
|
|
|
63
63
|
'& .MuiFormHelperText-root': {
|
|
64
64
|
marginTop: theme.spacing(0.75),
|
|
65
65
|
fontSize: '0.875rem',
|
|
66
|
-
color: errorMessage ? theme.palette.
|
|
66
|
+
color: errorMessage ? theme.palette.error.main : `${theme.palette.dark.main}99`,
|
|
67
67
|
},
|
|
68
68
|
}));
|
|
69
69
|
const Input = ({ error, fullWidth = false, id, label, ...props }) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Input.js","sources":["../../../../src/components/Input.tsx"],"sourcesContent":["import React from 'react';\r\nimport { styled, TextField, TextFieldProps, InputLabel } from '@mui/material';\r\n\r\ninterface InputProps extends Omit<TextFieldProps, 'variant' | 'error'> {\r\n error?: string;\r\n}\r\n\r\nconst InputWrapper = styled('div')(({ theme }) => ({\r\n width: '100%',\r\n}));\r\n\r\nexport const StyledLabel = styled(InputLabel)(({ theme }) => ({\r\n fontSize: '0.875rem',\r\n fontWeight: 500,\r\n color: theme.palette.dark.main,\r\n marginBottom: theme.spacing(0.75),\r\n display: 'block',\r\n position: 'static',\r\n transform: 'none',\r\n '&.Mui-focused': {\r\n color: theme.palette.dark.main,\r\n },\r\n}));\r\n\r\nconst StyledTextField = styled(TextField, {\r\n shouldForwardProp: (prop) => !['errorMessage'].includes(prop as string),\r\n})<{ errorMessage?: string }>(({ theme, errorMessage }) => ({\r\n width: '100%',\r\n '& .MuiInputBase-root': {\r\n backgroundColor: theme.palette.light.main,\r\n borderRadius: (typeof theme.shape.borderRadius === 'string'\r\n ? parseInt(theme.shape.borderRadius, 10)\r\n : theme.shape.borderRadius || 4) * 2,\r\n fontSize: '1rem',\r\n color: theme.palette.dark.main,\r\n minWidth: 0,\r\n height: 48,\r\n padding: 0, // Remove padding from root\r\n '& .MuiOutlinedInput-notchedOutline': {\r\n borderColor: errorMessage ? theme.palette.
|
|
1
|
+
{"version":3,"file":"Input.js","sources":["../../../../src/components/Input.tsx"],"sourcesContent":["import React from 'react';\r\nimport { styled, TextField, TextFieldProps, InputLabel } from '@mui/material';\r\n\r\ninterface InputProps extends Omit<TextFieldProps, 'variant' | 'error'> {\r\n error?: string;\r\n}\r\n\r\nconst InputWrapper = styled('div')(({ theme }) => ({\r\n width: '100%',\r\n}));\r\n\r\nexport const StyledLabel = styled(InputLabel)(({ theme }) => ({\r\n fontSize: '0.875rem',\r\n fontWeight: 500,\r\n color: theme.palette.dark.main,\r\n marginBottom: theme.spacing(0.75),\r\n display: 'block',\r\n position: 'static',\r\n transform: 'none',\r\n '&.Mui-focused': {\r\n color: theme.palette.dark.main,\r\n },\r\n}));\r\n\r\nconst StyledTextField = styled(TextField, {\r\n shouldForwardProp: (prop) => !['errorMessage'].includes(prop as string),\r\n})<{ errorMessage?: string }>(({ theme, errorMessage }) => ({\r\n width: '100%',\r\n '& .MuiInputBase-root': {\r\n backgroundColor: theme.palette.light.main,\r\n borderRadius: (typeof theme.shape.borderRadius === 'string'\r\n ? parseInt(theme.shape.borderRadius, 10)\r\n : theme.shape.borderRadius || 4) * 2,\r\n fontSize: '1rem',\r\n color: theme.palette.dark.main,\r\n minWidth: 0,\r\n height: 48,\r\n padding: 0, // Remove padding from root\r\n '& .MuiOutlinedInput-notchedOutline': {\r\n borderColor: errorMessage ? theme.palette.error.main : `${theme.palette.dark.main}33`,\r\n borderWidth: 2,\r\n },\r\n '&:hover .MuiOutlinedInput-notchedOutline': {\r\n borderColor: errorMessage ? theme.palette.error.main : theme.palette.primary.main,\r\n borderWidth: 2,\r\n },\r\n '&.Mui-focused .MuiOutlinedInput-notchedOutline': {\r\n borderWidth: 2,\r\n borderColor: errorMessage ? theme.palette.error.main : theme.palette.primary.main,\r\n },\r\n '&.Mui-disabled': {\r\n backgroundColor: `${theme.palette.dark.main}0D`,\r\n '& .MuiInputBase-input': {\r\n color: `${theme.palette.dark.main}80`,\r\n cursor: 'not-allowed',\r\n },\r\n '& .MuiOutlinedInput-notchedOutline': {\r\n borderColor: `${theme.palette.dark.main}33`,\r\n },\r\n },\r\n },\r\n // Target the actual input element for padding\r\n '& .MuiInputBase-input': {\r\n padding: theme.spacing(1, 3),\r\n [theme.breakpoints.up('sm')]: {\r\n padding: theme.spacing(1.25, 4),\r\n },\r\n },\r\n '& .MuiFormHelperText-root': {\r\n marginTop: theme.spacing(0.75),\r\n fontSize: '0.875rem',\r\n color: errorMessage ? theme.palette.error.main : `${theme.palette.dark.main}99`,\r\n },\r\n}));\r\n\r\nexport const Input: React.FC<InputProps> = ({\r\n error,\r\n fullWidth = false,\r\n id,\r\n label,\r\n ...props\r\n}) => {\r\n const inputId = id || `input-${Math.random().toString(36).substr(2, 9)}`;\r\n\r\n return (\r\n <InputWrapper sx={{ ...(!fullWidth && { width: 'auto' }) }}>\r\n {label && (\r\n <StyledLabel htmlFor={inputId}>\r\n {label}\r\n </StyledLabel>\r\n )}\r\n <StyledTextField\r\n id={inputId}\r\n error={!!error}\r\n helperText={error || props.helperText}\r\n errorMessage={error}\r\n fullWidth={fullWidth}\r\n variant=\"outlined\"\r\n {...props}\r\n />\r\n </InputWrapper>\r\n );\r\n};\r\n"],"names":["_jsxs","_jsx"],"mappings":";;;AAOA,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM;AACjD,IAAA,KAAK,EAAE,MAAM;AACd,CAAA,CAAC,CAAC;AAEI,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM;AAC5D,IAAA,QAAQ,EAAE,UAAU;AACpB,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI;AAC9B,IAAA,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;AACjC,IAAA,OAAO,EAAE,OAAO;AAChB,IAAA,QAAQ,EAAE,QAAQ;AAClB,IAAA,SAAS,EAAE,MAAM;AACjB,IAAA,eAAe,EAAE;AACf,QAAA,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI;AAC/B,KAAA;AACF,CAAA,CAAC;AAEF,MAAM,eAAe,GAAG,MAAM,CAAC,SAAS,EAAE;AACxC,IAAA,iBAAiB,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,IAAc,CAAC;CACxE,CAAC,CAA4B,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM;AAC1D,IAAA,KAAK,EAAE,MAAM;AACb,IAAA,sBAAsB,EAAE;AACtB,QAAA,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI;QACzC,YAAY,EAAE,CAAC,OAAO,KAAK,CAAC,KAAK,CAAC,YAAY,KAAK;cACnD,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE;cACrC,KAAK,CAAC,KAAK,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC;AAClC,QAAA,QAAQ,EAAE,MAAM;AAChB,QAAA,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI;AAC9B,QAAA,QAAQ,EAAE,CAAC;AACX,QAAA,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,CAAC;AACV,QAAA,oCAAoC,EAAE;YACpC,WAAW,EAAE,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,CAAA,EAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAA,EAAA,CAAI;AACrF,YAAA,WAAW,EAAE,CAAC;AACf,SAAA;AACD,QAAA,0CAA0C,EAAE;YAC1C,WAAW,EAAE,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI;AACjF,YAAA,WAAW,EAAE,CAAC;AACf,SAAA;AACD,QAAA,gDAAgD,EAAE;AAChD,YAAA,WAAW,EAAE,CAAC;YACd,WAAW,EAAE,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI;AAClF,SAAA;AACD,QAAA,gBAAgB,EAAE;YAChB,eAAe,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAA,EAAA,CAAI;AAC/C,YAAA,uBAAuB,EAAE;gBACvB,KAAK,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAA,EAAA,CAAI;AACrC,gBAAA,MAAM,EAAE,aAAa;AACtB,aAAA;AACD,YAAA,oCAAoC,EAAE;gBACpC,WAAW,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAA,EAAA,CAAI;AAC5C,aAAA;AACF,SAAA;AACF,KAAA;;AAED,IAAA,uBAAuB,EAAE;QACvB,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;QAC5B,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;YAC5B,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;AAChC,SAAA;AACF,KAAA;AACD,IAAA,2BAA2B,EAAE;AAC3B,QAAA,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;AAC9B,QAAA,QAAQ,EAAE,UAAU;QACpB,KAAK,EAAE,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,CAAA,EAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAA,EAAA,CAAI;AAChF,KAAA;AACF,CAAA,CAAC,CAAC;MAEU,KAAK,GAAyB,CAAC,EAC1C,KAAK,EACL,SAAS,GAAG,KAAK,EACjB,EAAE,EACF,KAAK,EACL,GAAG,KAAK,EACT,KAAI;IACH,MAAM,OAAO,GAAG,EAAE,IAAI,SAAS,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA,CAAE;AAExE,IAAA,QACEA,IAAA,CAAC,YAAY,EAAA,EAAC,EAAE,EAAE,EAAE,IAAI,CAAC,SAAS,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,EAAA,QAAA,EAAA,CACvD,KAAK,KACJC,GAAA,CAAC,WAAW,EAAA,EAAC,OAAO,EAAE,OAAO,EAAA,QAAA,EAC1B,KAAK,EAAA,CACM,CACf,EACDA,GAAA,CAAC,eAAe,EAAA,EACd,EAAE,EAAE,OAAO,EACX,KAAK,EAAE,CAAC,CAAC,KAAK,EACd,UAAU,EAAE,KAAK,IAAI,KAAK,CAAC,UAAU,EACrC,YAAY,EAAE,KAAK,EACnB,SAAS,EAAE,SAAS,EACpB,OAAO,EAAC,UAAU,EAAA,GACd,KAAK,EAAA,CACT,CAAA,EAAA,CACW;AAEnB;;;;"}
|
|
@@ -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, 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 title: string;\r\n newpage?: boolean;\r\n items?: 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 onNavigate?: (path: string) => void;\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 = true,\r\n onToggle,\r\n centreName = \"Centre name goes here \\n across two lines\",\r\n policies = [],\r\n onNavigate\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 handleNavigation = (path: string) => {\r\n if (onNavigate) {\r\n onNavigate(path);\r\n } else {\r\n window.location.href = path;\r\n }\r\n };\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\r\n const renderPolicyItems = (items: PolicyItem[], depth: number = 0): React.ReactNode => {\r\n return items.map((item) => {\r\n const hasChildren = item.items && item.items.length > 0;\r\n const isExpanded = expandedPolicies.includes(item.id);\r\n const paddingLeft = 3 + (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 pr: 1,\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={() => handleNavigation(item.id.toString())}\r\n >\r\n <ListItemText\r\n primary={item.title}\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.id);\r\n }}\r\n disableRipple\r\n sx={{\r\n ml: 0.5,\r\n borderRadius: 1,\r\n width: 32,\r\n height: 32,\r\n '&:hover': {\r\n backgroundColor: `${theme.palette.primary.main}1F`,\r\n },\r\n }}\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.items!, 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 handleNavigation(menuItems[0].id);\r\n }}\r\n isActive={window.location.pathname.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 </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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"}
|
|
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 title: string;\r\n url: string;\r\n newpage?: boolean;\r\n items?: 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 onNavigate?: (path: string) => void;\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 = true,\r\n onToggle,\r\n centreName = \"Centre name goes here \\n across two lines\",\r\n policies = [],\r\n onNavigate\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 handleNavigation = (path: string) => {\r\n if (onNavigate) {\r\n onNavigate(path);\r\n } else {\r\n window.location.href = path;\r\n }\r\n };\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\r\n const renderPolicyItems = (items: PolicyItem[], depth: number = 0): React.ReactNode => {\r\n return items.map((item) => {\r\n const hasChildren = item.items && item.items.length > 0;\r\n const isExpanded = expandedPolicies.includes(item.id);\r\n const paddingLeft = 3 + (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 pr: 1,\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={() => handleNavigation(item.id.toString())}\r\n >\r\n <ListItemText\r\n primary={item.title}\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.id);\r\n }}\r\n disableRipple\r\n sx={{\r\n ml: 0.5,\r\n borderRadius: 1,\r\n width: 32,\r\n height: 32,\r\n '&:hover': {\r\n backgroundColor: `${theme.palette.primary.main}1F`,\r\n },\r\n }}\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.items!, 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 handleNavigation(menuItems[0].id);\r\n }}\r\n isActive={window.location.pathname.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 </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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"}
|