ece-docs-components 1.0.10 → 1.0.11

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.
@@ -57,14 +57,12 @@ const IconWrapper = material.styled(material.Box)(({ theme, isOpen }) => ({
57
57
  flexShrink: 0,
58
58
  backgroundColor: theme.palette.custom?.iconColor || theme.palette.accent.main,
59
59
  }));
60
- const Sidebar = ({ isOpen, onToggle, centreName = "Centre name goes here \n across two lines", activePage = 'dashboard', onPageChange }) => {
60
+ const Sidebar = ({ isOpen, onToggle, centreName = "Centre name goes here \n across two lines", activePage = 'dashboard', onNavigate, policies = [] }) => {
61
61
  const theme = ThemeProvider.useTheme();
62
62
  const [expandedItems, setExpandedItems] = React.useState([]);
63
- const [expandedSubItems, setExpandedSubItems] = React.useState([]);
64
- const handlePageClick = (pageId) => {
65
- if (onPageChange) {
66
- onPageChange(pageId);
67
- }
63
+ const [expandedPolicies, setExpandedPolicies] = React.useState([]);
64
+ const togglePolicyItem = (itemId) => {
65
+ setExpandedPolicies((prev) => prev.includes(itemId) ? prev.filter((id) => id !== itemId) : [...prev, itemId]);
68
66
  };
69
67
  const menuItems = [
70
68
  {
@@ -72,38 +70,51 @@ const Sidebar = ({ isOpen, onToggle, centreName = "Centre name goes here \n acro
72
70
  label: 'Dashboard',
73
71
  icon: jsxRuntime.jsx(iconsMaterial.HomeRounded, { sx: { fontSize: 20, color: "#4D3019" } }),
74
72
  },
75
- {
76
- id: 'policies',
77
- label: 'Policies',
78
- icon: jsxRuntime.jsx(iconsMaterial.TextSnippetRounded, { sx: { fontSize: 20, color: "#4D3019" } }),
79
- hasChildren: true,
80
- children: [
81
- { id: 'legislation', label: 'Legislation' },
82
- { id: 'service-assurances', label: 'Service Assurances / Compliance Checklist' },
83
- {
84
- id: 'governance',
85
- label: 'Governance, Management, and Administration',
86
- hasChildren: true,
87
- children: [
88
- 'Philosophy and Values',
89
- 'Te Tiriti o Waitangi – policy options',
90
- 'Self-Review and Internal Evaluation',
91
- ],
92
- },
93
- {
94
- id: 'curriculum',
95
- label: 'Curriculum and Learning V1',
96
- hasChildren: true,
97
- children: [],
98
- },
99
- ],
100
- },
101
73
  {
102
74
  id: 'support',
103
75
  label: 'Support',
104
76
  icon: jsxRuntime.jsx(iconsMaterial.HelpOutlineRounded, { sx: { fontSize: 20, color: "#4D3019" } }),
105
77
  },
106
78
  ];
79
+ const renderPolicyItems = (items, depth = 0) => {
80
+ return items.map((item) => {
81
+ const hasChildren = item.items && item.items.length > 0;
82
+ const isExpanded = expandedPolicies.includes(item.id);
83
+ const paddingLeft = 8 + (depth * 2);
84
+ return (jsxRuntime.jsxs(material.Box, { children: [jsxRuntime.jsxs(material.Box, { sx: { display: 'flex', alignItems: 'stretch' }, children: [jsxRuntime.jsx(material.ListItemButton, { onClick: () => {
85
+ if (!hasChildren && onNavigate) {
86
+ onNavigate(item.url);
87
+ }
88
+ }, sx: {
89
+ flex: hasChildren ? 1 : 'auto',
90
+ width: hasChildren ? 'auto' : '100%',
91
+ pl: paddingLeft,
92
+ py: 1.25,
93
+ borderRadius: hasChildren
94
+ ? `${theme.shape.borderRadius}px 0 0 ${theme.shape.borderRadius}px`
95
+ : theme.shape.borderRadius,
96
+ '&:hover': {
97
+ backgroundColor: `${theme.palette.dark.main}0D`,
98
+ },
99
+ ...(activePage === item.url && {
100
+ backgroundColor: `${theme.palette.dark.main}1A`,
101
+ }),
102
+ }, children: jsxRuntime.jsx(material.ListItemText, { primary: item.title, primaryTypographyProps: {
103
+ fontSize: '0.875rem',
104
+ } }) }), hasChildren && (jsxRuntime.jsx(material.IconButton, { onClick: () => togglePolicyItem(item.id), sx: {
105
+ px: 1,
106
+ borderRadius: `0 ${theme.shape.borderRadius}px ${theme.shape.borderRadius}px 0`,
107
+ '&:hover': {
108
+ backgroundColor: `${theme.palette.dark.main}0D`,
109
+ },
110
+ }, children: jsxRuntime.jsx(iconsMaterial.ChevronRightRounded, { sx: {
111
+ fontSize: 16,
112
+ color: '#4D3019',
113
+ transition: 'transform 0.2s',
114
+ transform: isExpanded ? 'rotate(90deg)' : 'rotate(0deg)',
115
+ } }) }))] }), hasChildren && isExpanded && (jsxRuntime.jsx(material.Collapse, { in: true, timeout: "auto", children: jsxRuntime.jsx(material.List, { sx: { p: 0, mt: 0.5 }, children: renderPolicyItems(item.items, depth + 1) }) }))] }, item.id));
116
+ });
117
+ };
107
118
  const toggleItem = (itemId) => {
108
119
  if (!isOpen) {
109
120
  onToggle();
@@ -113,9 +124,6 @@ const Sidebar = ({ isOpen, onToggle, centreName = "Centre name goes here \n acro
113
124
  setExpandedItems((prev) => prev.includes(itemId) ? prev.filter((id) => id !== itemId) : [...prev, itemId]);
114
125
  }
115
126
  };
116
- const toggleSubItem = (subItemId) => {
117
- setExpandedSubItems((prev) => prev.includes(subItemId) ? prev.filter((id) => id !== subItemId) : [...prev, subItemId]);
118
- };
119
127
  return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [isOpen && (jsxRuntime.jsx(material.Box, { sx: {
120
128
  position: 'fixed',
121
129
  inset: 0,
@@ -146,59 +154,22 @@ const Sidebar = ({ isOpen, onToggle, centreName = "Centre name goes here \n acro
146
154
  overflowY: 'auto',
147
155
  px: isOpen ? 1.5 : 1,
148
156
  py: 3,
149
- }, children: jsxRuntime.jsx(material.List, { sx: { p: 0 }, children: menuItems.map((item) => (jsxRuntime.jsxs(material.Box, { sx: { mb: 1 }, children: [jsxRuntime.jsxs(MenuItemButton, { isOpen: isOpen, isActive: activePage === item.id, onClick: () => {
150
- if (item.hasChildren) {
151
- toggleItem(item.id);
157
+ }, children: jsxRuntime.jsxs(material.List, { sx: { p: 0 }, children: [menuItems.map((item) => (jsxRuntime.jsx(material.Box, { sx: { mb: 1 }, children: jsxRuntime.jsxs(MenuItemButton, { isOpen: isOpen, isActive: activePage === item.id, onClick: () => {
158
+ if (!isOpen) {
159
+ onToggle();
152
160
  }
153
- else {
154
- if (!isOpen) {
155
- onToggle();
156
- }
157
- handlePageClick(item.id);
161
+ if (onNavigate) {
162
+ onNavigate(`/${item.id}`);
158
163
  }
159
- }, title: !isOpen ? item.label : undefined, children: [jsxRuntime.jsx(IconWrapper, { isOpen: isOpen, children: item.icon }), isOpen && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(material.ListItemText, { primary: item.label, primaryTypographyProps: {
160
- fontSize: '1rem',
161
- fontWeight: 600,
162
- }, sx: { flex: 1 } }), item.hasChildren && (jsxRuntime.jsx(material.Box, { children: expandedItems.includes(item.id) ? (jsxRuntime.jsx(iconsMaterial.ExpandLessRounded, { sx: { fontSize: 20, color: "#4D3019" } })) : (jsxRuntime.jsx(iconsMaterial.ExpandMoreRounded, { sx: { fontSize: 20, color: "#4D3019" } })) }))] }))] }), item.hasChildren && expandedItems.includes(item.id) && item.children && isOpen && (jsxRuntime.jsx(material.Collapse, { in: true, timeout: "auto", children: jsxRuntime.jsx(material.List, { sx: { p: 0, mt: 0.5 }, children: item.children.map((subItem) => (jsxRuntime.jsxs(material.Box, { children: [jsxRuntime.jsxs(material.Box, { sx: { display: 'flex', alignItems: 'stretch' }, children: [jsxRuntime.jsx(material.ListItemButton, { onClick: () => handlePageClick(subItem.id), sx: {
163
- flex: 1,
164
- pl: 8,
165
- py: 1.25,
166
- borderRadius: `${theme.shape.borderRadius}px 0 0 ${theme.shape.borderRadius}px`,
167
- '&:hover': {
168
- backgroundColor: `${theme.palette.dark.main}0D`,
169
- },
170
- ...(activePage === subItem.id && {
171
- backgroundColor: `${theme.palette.dark.main}1A`,
172
- }),
173
- }, children: jsxRuntime.jsx(material.ListItemText, { primary: subItem.label, primaryTypographyProps: {
174
- fontSize: '0.875rem',
175
- } }) }), subItem.hasChildren && subItem.children && subItem.children.length > 0 && (jsxRuntime.jsx(material.IconButton, { onClick: () => toggleSubItem(subItem.id), sx: {
176
- px: 1,
177
- borderRadius: `0 ${theme.shape.borderRadius}px ${theme.shape.borderRadius}px 0`,
178
- '&:hover': {
179
- backgroundColor: `${theme.palette.dark.main}0D`,
180
- },
181
- }, children: jsxRuntime.jsx(iconsMaterial.ChevronRightRounded, { sx: {
182
- fontSize: 16,
183
- color: '#4D3019',
184
- transition: 'transform 0.2s',
185
- transform: expandedSubItems.includes(subItem.id) ? 'rotate(90deg)' : 'rotate(0deg)',
186
- } }) }))] }), subItem.hasChildren && expandedSubItems.includes(subItem.id) && subItem.children && (jsxRuntime.jsx(material.Collapse, { in: true, timeout: "auto", children: jsxRuntime.jsx(material.List, { sx: { p: 0, mt: 0.5 }, children: subItem.children.map((nestedItem, index) => {
187
- const nestedPageId = `${subItem.id}-${index}`;
188
- return (jsxRuntime.jsx(material.ListItemButton, { onClick: () => handlePageClick(nestedPageId), sx: {
189
- pl: 10,
190
- py: 1,
191
- borderRadius: theme.shape.borderRadius,
192
- '&:hover': {
193
- backgroundColor: `${theme.palette.dark.main}0D`,
194
- },
195
- ...(activePage === nestedPageId && {
196
- backgroundColor: `${theme.palette.dark.main}1A`,
197
- }),
198
- }, children: jsxRuntime.jsx(material.ListItemText, { primary: nestedItem, primaryTypographyProps: {
199
- fontSize: '0.875rem',
200
- } }) }, index));
201
- }) }) }))] }, subItem.id))) }) }))] }, item.id))) }) })] }) })] }));
164
+ }, title: !isOpen ? item.label : undefined, children: [jsxRuntime.jsx(IconWrapper, { isOpen: isOpen, children: item.icon }), isOpen && (jsxRuntime.jsx(material.ListItemText, { primary: item.label, primaryTypographyProps: {
165
+ fontSize: '1rem',
166
+ fontWeight: 600,
167
+ }, sx: { flex: 1 } }))] }) }, item.id))), policies.length > 0 && (jsxRuntime.jsxs(material.Box, { sx: { mb: 1 }, children: [jsxRuntime.jsxs(MenuItemButton, { isOpen: isOpen, isActive: activePage === 'policies', onClick: () => {
168
+ toggleItem('policies');
169
+ }, title: !isOpen ? 'Policies' : undefined, children: [jsxRuntime.jsx(IconWrapper, { isOpen: isOpen, children: jsxRuntime.jsx(iconsMaterial.TextSnippetRounded, { sx: { fontSize: 20, color: "#4D3019" } }) }), isOpen && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(material.ListItemText, { primary: "Policies", primaryTypographyProps: {
170
+ fontSize: '1rem',
171
+ fontWeight: 600,
172
+ }, sx: { flex: 1 } }), jsxRuntime.jsx(material.Box, { children: expandedItems.includes('policies') ? (jsxRuntime.jsx(iconsMaterial.ExpandLessRounded, { sx: { fontSize: 20, color: "#4D3019" } })) : (jsxRuntime.jsx(iconsMaterial.ExpandMoreRounded, { sx: { fontSize: 20, color: "#4D3019" } })) })] }))] }), expandedItems.includes('policies') && isOpen && (jsxRuntime.jsx(material.Collapse, { in: true, timeout: "auto", children: jsxRuntime.jsx(material.List, { sx: { p: 0, mt: 0.5 }, children: renderPolicyItems(policies) }) }))] }))] }) })] }) })] }));
202
173
  };
203
174
 
204
175
  exports.Sidebar = Sidebar;
@@ -1 +1 @@
1
- {"version":3,"file":"Sidebar.js","sources":["../../../../src/components/Sidebar.tsx"],"sourcesContent":["\n\nimport React, { useState } from 'react';\nimport { Box, IconButton, Typography, List, ListItemButton, ListItemText, Collapse, styled } from '@mui/material';\nimport { useTheme } from '../ThemeProvider';\nimport { ChevronLeftRounded, ChevronRightRounded, ExpandLessRounded, ExpandMoreRounded, HelpOutlineRounded, HomeRounded, TextSnippetRounded } from '@mui/icons-material';\n\ninterface SidebarProps {\n isOpen: boolean;\n onToggle: () => void;\n centreName?: string;\n activePage?: string;\n onPageChange?: (pageId: string) => void;\n}\n\ninterface MenuItem {\n id: string;\n label: string;\n icon: React.ReactNode;\n hasChildren?: boolean;\n children?: SubMenuItem[];\n}\n\ninterface SubMenuItem {\n id: string;\n label: string;\n hasChildren?: boolean;\n children?: string[];\n}\n\nconst SidebarContainer = styled(Box)<{ isOpen: boolean }>(({ theme, isOpen }) => ({\n height: '100vh',\n position: 'sticky',\n top: 0,\n backgroundColor: '#fff',\n borderRight: `1px solid ${theme.palette.dark.main}1A`,\n flexShrink: 0,\n transition: 'all 0.3s ease-in-out',\n width: isOpen ? '288px' : '64px',\n zIndex: 50,\n [theme.breakpoints.down('md')]: {\n position: 'fixed',\n left: isOpen ? 0 : '-288px',\n width: '288px',\n },\n [theme.breakpoints.up('sm')]: {\n width: isOpen ? '288px' : '80px',\n },\n}));\n\nconst ToggleButton = styled(IconButton)(({ theme }) => ({\n width: 40,\n height: 40,\n borderRadius: theme.shape.borderRadius,\n backgroundColor: '#4D3019',\n color: '#fff',\n '&:hover': {\n backgroundColor: '#3d2614',\n },\n}));\n\nconst MenuItemButton = styled(ListItemButton)<{ isActive?: boolean; isOpen: boolean }>(({ theme, isActive, isOpen }) => ({\n borderRadius: theme.shape.borderRadius,\n padding: isOpen ? '10px 8px' : '12px 0',\n justifyContent: isOpen ? 'flex-start' : 'center',\n gap: isOpen ? theme.spacing(1) : 0,\n '&:hover': {\n backgroundColor: `${theme.palette.dark.main}0D`,\n },\n ...(isActive && {\n backgroundColor: `${theme.palette.dark.main}1A`,\n }),\n}));\n\nconst IconWrapper = styled(Box)<{ isOpen: boolean }>(({ theme, isOpen }) => ({\n width: isOpen ? 32 : 40,\n height: isOpen ? 32 : 40,\n borderRadius: theme.shape.borderRadius,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexShrink: 0,\n backgroundColor: theme.palette.custom?.iconColor || theme.palette.accent.main,\n}));\n\nexport const Sidebar: React.FC<SidebarProps> = ({\n isOpen,\n onToggle,\n centreName = \"Centre name goes here \\n across two lines\",\n activePage = 'dashboard',\n onPageChange\n}) => {\n const theme = useTheme();\n const [expandedItems, setExpandedItems] = useState<string[]>([]);\n const [expandedSubItems, setExpandedSubItems] = useState<string[]>([]);\n\n const handlePageClick = (pageId: string) => {\n if (onPageChange) {\n onPageChange(pageId);\n }\n };\n\n const menuItems: MenuItem[] = [\n {\n id: 'dashboard',\n label: 'Dashboard',\n icon: <HomeRounded sx={{fontSize: 20, color:\"#4D3019\"}} />,\n },\n {\n id: 'policies',\n label: 'Policies',\n icon: <TextSnippetRounded sx={{fontSize: 20, color:\"#4D3019\"}} />,\n hasChildren: true,\n children: [\n { id: 'legislation', label: 'Legislation' },\n { id: 'service-assurances', label: 'Service Assurances / Compliance Checklist' },\n {\n id: 'governance',\n label: 'Governance, Management, and Administration',\n hasChildren: true,\n children: [\n 'Philosophy and Values',\n 'Te Tiriti o Waitangi – policy options',\n 'Self-Review and Internal Evaluation',\n ],\n },\n {\n id: 'curriculum',\n label: 'Curriculum and Learning V1',\n hasChildren: true,\n children: [],\n },\n ],\n },\n {\n id: 'support',\n label: 'Support',\n icon: <HelpOutlineRounded sx={{fontSize: 20, color:\"#4D3019\"}} />,\n },\n ];\n\n const toggleItem = (itemId: string) => {\n if (!isOpen) {\n onToggle();\n setExpandedItems([itemId]);\n } else {\n setExpandedItems((prev) =>\n prev.includes(itemId) ? prev.filter((id) => id !== itemId) : [...prev, itemId]\n );\n }\n };\n\n const toggleSubItem = (subItemId: string) => {\n setExpandedSubItems((prev) =>\n prev.includes(subItemId) ? prev.filter((id) => id !== subItemId) : [...prev, subItemId]\n );\n };\n\n return (\n <>\n {isOpen && (\n <Box\n sx={{\n position: 'fixed',\n inset: 0,\n bgcolor: 'rgba(0, 0, 0, 0.5)',\n zIndex: 40,\n display: { xs: 'block', md: 'none' },\n }}\n onClick={onToggle}\n />\n )}\n <SidebarContainer isOpen={isOpen}>\n <Box sx={{ display: 'flex', flexDirection: 'column', height: '100%' }}>\n {isOpen && (\n <Box\n sx={{\n px: 2,\n py: 3,\n borderBottom: `1px solid ${theme.palette.dark.main}1A`,\n flexShrink: 0,\n position: 'relative',\n }}\n >\n <Typography\n variant=\"h6\"\n sx={{\n fontSize: '18px',\n fontWeight: 700,\n color: '#4D3019',\n lineHeight: 1.3,\n whiteSpace: 'pre-line',\n pr: 7,\n }}\n >\n {centreName}\n </Typography>\n\n <ToggleButton\n onClick={onToggle}\n sx={{ position: 'absolute', top: 24, right: 16 }}\n aria-label=\"Collapse sidebar\"\n >\n <ChevronLeftRounded sx={{fontSize: 20}} />\n </ToggleButton>\n </Box>\n )}\n\n {!isOpen && (\n <Box\n sx={{\n px: 1,\n py: 3,\n borderBottom: `1px solid ${theme.palette.dark.main}1A`,\n display: 'flex',\n justifyContent: 'center',\n }}\n >\n <ToggleButton onClick={onToggle} aria-label=\"Expand sidebar\">\n <ChevronRightRounded sx={{fontSize: 20}} />\n </ToggleButton>\n </Box>\n )}\n\n <Box\n sx={{\n flex: 1,\n overflowY: 'auto',\n px: isOpen ? 1.5 : 1,\n py: 3,\n }}\n >\n <List sx={{ p: 0 }}>\n {menuItems.map((item) => (\n <Box key={item.id} sx={{ mb: 1 }}>\n <MenuItemButton\n isOpen={isOpen}\n isActive={activePage === item.id}\n onClick={() => {\n if (item.hasChildren) {\n toggleItem(item.id);\n } else {\n if (!isOpen) {\n onToggle();\n }\n handlePageClick(item.id);\n }\n }}\n title={!isOpen ? item.label : undefined}\n >\n <IconWrapper isOpen={isOpen}>{item.icon}</IconWrapper>\n {isOpen && (\n <>\n <ListItemText\n primary={item.label}\n primaryTypographyProps={{\n fontSize: '1rem',\n fontWeight: 600,\n }}\n sx={{ flex: 1 }}\n />\n {item.hasChildren && (\n <Box>\n {expandedItems.includes(item.id) ? (\n <ExpandLessRounded sx={{fontSize: 20, color:\"#4D3019\"}} />\n ) : (\n <ExpandMoreRounded sx={{fontSize: 20, color:\"#4D3019\"}} />\n )}\n </Box>\n )}\n </>\n )}\n </MenuItemButton>\n\n {item.hasChildren && expandedItems.includes(item.id) && item.children && isOpen && (\n <Collapse in={true} timeout=\"auto\">\n <List sx={{ p: 0, mt: 0.5 }}>\n {item.children.map((subItem) => (\n <Box key={subItem.id}>\n <Box sx={{ display: 'flex', alignItems: 'stretch' }}>\n <ListItemButton\n onClick={() => handlePageClick(subItem.id)}\n sx={{\n flex: 1,\n pl: 8,\n py: 1.25,\n borderRadius: `${theme.shape.borderRadius}px 0 0 ${theme.shape.borderRadius}px`,\n '&:hover': {\n backgroundColor: `${theme.palette.dark.main}0D`,\n },\n ...(activePage === subItem.id && {\n backgroundColor: `${theme.palette.dark.main}1A`,\n }),\n }}\n >\n <ListItemText\n primary={subItem.label}\n primaryTypographyProps={{\n fontSize: '0.875rem',\n }}\n />\n </ListItemButton>\n {subItem.hasChildren && subItem.children && subItem.children.length > 0 && (\n <IconButton\n onClick={() => toggleSubItem(subItem.id)}\n sx={{\n px: 1,\n borderRadius: `0 ${theme.shape.borderRadius}px ${theme.shape.borderRadius}px 0`,\n '&:hover': {\n backgroundColor: `${theme.palette.dark.main}0D`,\n },\n }}\n >\n <ChevronRightRounded\n sx={{\n fontSize: 16,\n color: '#4D3019',\n transition: 'transform 0.2s',\n transform: expandedSubItems.includes(subItem.id) ? 'rotate(90deg)' : 'rotate(0deg)',\n }}\n />\n </IconButton>\n )}\n </Box>\n\n {subItem.hasChildren && expandedSubItems.includes(subItem.id) && subItem.children && (\n <Collapse in={true} timeout=\"auto\">\n <List sx={{ p: 0, mt: 0.5 }}>\n {subItem.children.map((nestedItem, index) => {\n const nestedPageId = `${subItem.id}-${index}`;\n return (\n <ListItemButton\n key={index}\n onClick={() => handlePageClick(nestedPageId)}\n sx={{\n pl: 10,\n py: 1,\n borderRadius: theme.shape.borderRadius,\n '&:hover': {\n backgroundColor: `${theme.palette.dark.main}0D`,\n },\n ...(activePage === nestedPageId && {\n backgroundColor: `${theme.palette.dark.main}1A`,\n }),\n }}\n >\n <ListItemText\n primary={nestedItem}\n primaryTypographyProps={{\n fontSize: '0.875rem',\n }}\n />\n </ListItemButton>\n );\n })}\n </List>\n </Collapse>\n )}\n </Box>\n ))}\n </List>\n </Collapse>\n )}\n </Box>\n ))}\n </List>\n </Box>\n </Box>\n </SidebarContainer>\n </>\n );\n};"],"names":["styled","Box","IconButton","ListItemButton","useTheme","useState","_jsx","HomeRounded","TextSnippetRounded","HelpOutlineRounded","_jsxs","Typography","ChevronLeftRounded","ChevronRightRounded","List","_Fragment","ListItemText","ExpandLessRounded","ExpandMoreRounded","Collapse"],"mappings":";;;;;;;;AA8BA,MAAM,gBAAgB,GAAGA,eAAM,CAACC,YAAG,CAAC,CAAsB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM;AAChF,IAAA,MAAM,EAAE,OAAO;AACf,IAAA,QAAQ,EAAE,QAAQ;AAClB,IAAA,GAAG,EAAE,CAAC;AACN,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,GAAGD,eAAM,CAACE,mBAAU,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,GAAGF,eAAM,CAACG,uBAAc,CAAC,CAA0C,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM;AACvH,IAAA,YAAY,EAAE,KAAK,CAAC,KAAK,CAAC,YAAY;IACtC,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,QAAQ;IACvC,cAAc,EAAE,MAAM,GAAG,YAAY,GAAG,QAAQ;AAChD,IAAA,GAAG,EAAE,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;AAClC,IAAA,SAAS,EAAE;QACT,eAAe,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAA,EAAA,CAAI;AAChD,KAAA;IACD,IAAI,QAAQ,IAAI;QACd,eAAe,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAA,EAAA,CAAI;KAChD,CAAC;AACH,CAAA,CAAC,CAAC;AAEH,MAAM,WAAW,GAAGH,eAAM,CAACC,YAAG,CAAC,CAAsB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM;IAC3E,KAAK,EAAE,MAAM,GAAG,EAAE,GAAG,EAAE;IACvB,MAAM,EAAE,MAAM,GAAG,EAAE,GAAG,EAAE;AACxB,IAAA,YAAY,EAAE,KAAK,CAAC,KAAK,CAAC,YAAY;AACtC,IAAA,OAAO,EAAE,MAAM;AACf,IAAA,UAAU,EAAE,QAAQ;AACpB,IAAA,cAAc,EAAE,QAAQ;AACxB,IAAA,UAAU,EAAE,CAAC;AACb,IAAA,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI;AAC9E,CAAA,CAAC,CAAC;MAEU,OAAO,GAA2B,CAAC,EAC9C,MAAM,EACN,QAAQ,EACR,UAAU,GAAG,2CAA2C,EACxD,UAAU,GAAG,WAAW,EACxB,YAAY,EACb,KAAI;AACH,IAAA,MAAM,KAAK,GAAGG,sBAAQ,EAAE;IACxB,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAGC,cAAQ,CAAW,EAAE,CAAC;IAChE,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAGA,cAAQ,CAAW,EAAE,CAAC;AAEtE,IAAA,MAAM,eAAe,GAAG,CAAC,MAAc,KAAI;QACzC,IAAI,YAAY,EAAE;YAChB,YAAY,CAAC,MAAM,CAAC;QACtB;AACF,IAAA,CAAC;AAED,IAAA,MAAM,SAAS,GAAe;AAC5B,QAAA;AACE,YAAA,EAAE,EAAE,WAAW;AACf,YAAA,KAAK,EAAE,WAAW;AAClB,YAAA,IAAI,EAAEC,cAAA,CAACC,yBAAW,EAAA,EAAC,EAAE,EAAE,EAAC,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAC,SAAS,EAAC,EAAA,CAAI;AAC3D,SAAA;AACD,QAAA;AACE,YAAA,EAAE,EAAE,UAAU;AACd,YAAA,KAAK,EAAE,UAAU;AACjB,YAAA,IAAI,EAAED,cAAA,CAACE,gCAAkB,EAAA,EAAC,EAAE,EAAE,EAAC,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAC,SAAS,EAAC,EAAA,CAAI;AACjE,YAAA,WAAW,EAAE,IAAI;AACjB,YAAA,QAAQ,EAAE;AACR,gBAAA,EAAE,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE;AAC3C,gBAAA,EAAE,EAAE,EAAE,oBAAoB,EAAE,KAAK,EAAE,2CAA2C,EAAE;AAChF,gBAAA;AACE,oBAAA,EAAE,EAAE,YAAY;AAChB,oBAAA,KAAK,EAAE,4CAA4C;AACnD,oBAAA,WAAW,EAAE,IAAI;AACjB,oBAAA,QAAQ,EAAE;wBACR,uBAAuB;wBACvB,uCAAuC;wBACvC,qCAAqC;AACtC,qBAAA;AACF,iBAAA;AACD,gBAAA;AACE,oBAAA,EAAE,EAAE,YAAY;AAChB,oBAAA,KAAK,EAAE,4BAA4B;AACnC,oBAAA,WAAW,EAAE,IAAI;AACjB,oBAAA,QAAQ,EAAE,EAAE;AACb,iBAAA;AACF,aAAA;AACF,SAAA;AACD,QAAA;AACE,YAAA,EAAE,EAAE,SAAS;AACb,YAAA,KAAK,EAAE,SAAS;AAChB,YAAA,IAAI,EAAEF,cAAA,CAACG,gCAAkB,EAAA,EAAC,EAAE,EAAE,EAAC,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAC,SAAS,EAAC,EAAA,CAAI;AAClE,SAAA;KACF;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;AAED,IAAA,MAAM,aAAa,GAAG,CAAC,SAAiB,KAAI;AAC1C,QAAA,mBAAmB,CAAC,CAAC,IAAI,KACvB,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,SAAS,CAAC,CACxF;AACH,IAAA,CAAC;IAED,QACEC,kDACG,MAAM,KACLJ,cAAA,CAACL,YAAG,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,EACDK,cAAA,CAAC,gBAAgB,EAAA,EAAC,MAAM,EAAE,MAAM,EAAA,QAAA,EAC9BI,gBAACT,YAAG,EAAA,EAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,EAAA,QAAA,EAAA,CAClE,MAAM,KACLS,gBAACT,YAAG,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;6BACrB,EAAA,QAAA,EAAA,CAEDK,cAAA,CAACK,mBAAU,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,EAAE,EAAE,CAAC;qCACN,EAAA,QAAA,EAEA,UAAU,GACA,EAEbL,cAAA,CAAC,YAAY,EAAA,EACX,OAAO,EAAE,QAAQ,EACjB,EAAE,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,gBACrC,kBAAkB,EAAA,QAAA,EAE7BA,cAAA,CAACM,gCAAkB,EAAA,EAAC,EAAE,EAAE,EAAC,QAAQ,EAAE,EAAE,EAAC,EAAA,CAAI,GAC7B,CAAA,EAAA,CACX,CACP,EAEA,CAAC,MAAM,KACNN,cAAA,CAACL,YAAG,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,EAEDK,cAAA,CAAC,YAAY,EAAA,EAAC,OAAO,EAAE,QAAQ,EAAA,YAAA,EAAa,gBAAgB,EAAA,QAAA,EAC1DA,cAAA,CAACO,iCAAmB,EAAA,EAAC,EAAE,EAAE,EAAC,QAAQ,EAAE,EAAE,EAAC,EAAA,CAAI,EAAA,CAC9B,EAAA,CACX,CACP,EAEDP,cAAA,CAACL,YAAG,EAAA,EACF,EAAE,EAAE;AACF,gCAAA,IAAI,EAAE,CAAC;AACP,gCAAA,SAAS,EAAE,MAAM;gCACjB,EAAE,EAAE,MAAM,GAAG,GAAG,GAAG,CAAC;AACpB,gCAAA,EAAE,EAAE,CAAC;6BACN,EAAA,QAAA,EAEDK,cAAA,CAACQ,aAAI,EAAA,EAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAA,QAAA,EACf,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,MAClBJ,eAAA,CAACT,YAAG,EAAA,EAAe,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,aAC9BS,eAAA,CAAC,cAAc,EAAA,EACb,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,UAAU,KAAK,IAAI,CAAC,EAAE,EAChC,OAAO,EAAE,MAAK;AACZ,gDAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AACpB,oDAAA,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gDACrB;qDAAO;oDACL,IAAI,CAAC,MAAM,EAAE;AACX,wDAAA,QAAQ,EAAE;oDACZ;AACA,oDAAA,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;gDAC1B;AACF,4CAAA,CAAC,EACD,KAAK,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,GAAG,SAAS,aAEvCJ,cAAA,CAAC,WAAW,IAAC,MAAM,EAAE,MAAM,EAAA,QAAA,EAAG,IAAI,CAAC,IAAI,GAAe,EACrD,MAAM,KACLI,eAAA,CAAAK,mBAAA,EAAA,EAAA,QAAA,EAAA,CACET,eAACU,qBAAY,EAAA,EACX,OAAO,EAAE,IAAI,CAAC,KAAK,EACnB,sBAAsB,EAAE;AACtB,gEAAA,QAAQ,EAAE,MAAM;AAChB,gEAAA,UAAU,EAAE,GAAG;AAChB,6DAAA,EACD,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,EAAA,CACf,EACD,IAAI,CAAC,WAAW,KACfV,cAAA,CAACL,YAAG,EAAA,EAAA,QAAA,EACD,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,IAC9BK,cAAA,CAACW,+BAAiB,EAAA,EAAC,EAAE,EAAE,EAAC,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAC,SAAS,EAAC,EAAA,CAAI,KAE1DX,cAAA,CAACY,+BAAiB,IAAC,EAAE,EAAE,EAAC,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAC,SAAS,EAAC,EAAA,CAAI,CAC3D,EAAA,CACG,CACP,IACA,CACJ,CAAA,EAAA,CACc,EAEhB,IAAI,CAAC,WAAW,IAAI,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,QAAQ,IAAI,MAAM,KAC7EZ,cAAA,CAACa,iBAAQ,IAAC,EAAE,EAAE,IAAI,EAAE,OAAO,EAAC,MAAM,EAAA,QAAA,EAChCb,cAAA,CAACQ,aAAI,IAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,EAAA,QAAA,EACxB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,MACzBJ,eAAA,CAACT,YAAG,EAAA,EAAA,QAAA,EAAA,CACFS,eAAA,CAACT,YAAG,EAAA,EAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,aACjDK,cAAA,CAACH,uBAAc,EAAA,EACb,OAAO,EAAE,MAAM,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC,EAC1C,EAAE,EAAE;AACF,wEAAA,IAAI,EAAE,CAAC;AACP,wEAAA,EAAE,EAAE,CAAC;AACL,wEAAA,EAAE,EAAE,IAAI;AACR,wEAAA,YAAY,EAAE,CAAA,EAAG,KAAK,CAAC,KAAK,CAAC,YAAY,CAAA,OAAA,EAAU,KAAK,CAAC,KAAK,CAAC,YAAY,CAAA,EAAA,CAAI;AAC/E,wEAAA,SAAS,EAAE;4EACT,eAAe,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAA,EAAA,CAAI;AAChD,yEAAA;AACD,wEAAA,IAAI,UAAU,KAAK,OAAO,CAAC,EAAE,IAAI;4EAC/B,eAAe,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAA,EAAA,CAAI;yEAChD,CAAC;qEACH,EAAA,QAAA,EAEDG,cAAA,CAACU,qBAAY,EAAA,EACX,OAAO,EAAE,OAAO,CAAC,KAAK,EACtB,sBAAsB,EAAE;AACtB,4EAAA,QAAQ,EAAE,UAAU;AACrB,yEAAA,EAAA,CACD,EAAA,CACa,EAChB,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,KACrEV,eAACJ,mBAAU,EAAA,EACT,OAAO,EAAE,MAAM,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,EACxC,EAAE,EAAE;AACF,wEAAA,EAAE,EAAE,CAAC;AACL,wEAAA,YAAY,EAAE,CAAA,EAAA,EAAK,KAAK,CAAC,KAAK,CAAC,YAAY,CAAA,GAAA,EAAM,KAAK,CAAC,KAAK,CAAC,YAAY,CAAA,IAAA,CAAM;AAC/E,wEAAA,SAAS,EAAE;4EACT,eAAe,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAA,EAAA,CAAI;AAChD,yEAAA;AACF,qEAAA,EAAA,QAAA,EAEDI,cAAA,CAACO,iCAAmB,EAAA,EAClB,EAAE,EAAE;AACF,4EAAA,QAAQ,EAAE,EAAE;AACZ,4EAAA,KAAK,EAAE,SAAS;AAChB,4EAAA,UAAU,EAAE,gBAAgB;AAC5B,4EAAA,SAAS,EAAE,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,eAAe,GAAG,cAAc;yEACpF,EAAA,CACD,EAAA,CACS,CACd,CAAA,EAAA,CACG,EAEL,OAAO,CAAC,WAAW,IAAI,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,QAAQ,KAC/EP,cAAA,CAACa,iBAAQ,EAAA,EAAC,EAAE,EAAE,IAAI,EAAE,OAAO,EAAC,MAAM,EAAA,QAAA,EAChCb,cAAA,CAACQ,aAAI,EAAA,EAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,EAAA,QAAA,EACxB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,KAAK,KAAI;oEAC1C,MAAM,YAAY,GAAG,CAAA,EAAG,OAAO,CAAC,EAAE,CAAA,CAAA,EAAI,KAAK,CAAA,CAAE;AAC7C,oEAAA,QACER,cAAA,CAACH,uBAAc,EAAA,EAEb,OAAO,EAAE,MAAM,eAAe,CAAC,YAAY,CAAC,EAC5C,EAAE,EAAE;AACF,4EAAA,EAAE,EAAE,EAAE;AACN,4EAAA,EAAE,EAAE,CAAC;AACL,4EAAA,YAAY,EAAE,KAAK,CAAC,KAAK,CAAC,YAAY;AACtC,4EAAA,SAAS,EAAE;gFACT,eAAe,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAA,EAAA,CAAI;AAChD,6EAAA;AACD,4EAAA,IAAI,UAAU,KAAK,YAAY,IAAI;gFACjC,eAAe,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAA,EAAA,CAAI;6EAChD,CAAC;yEACH,EAAA,QAAA,EAEDG,cAAA,CAACU,qBAAY,EAAA,EACX,OAAO,EAAE,UAAU,EACnB,sBAAsB,EAAE;AACtB,gFAAA,QAAQ,EAAE,UAAU;AACrB,6EAAA,EAAA,CACD,EAAA,EAnBG,KAAK,CAoBK;gEAErB,CAAC,CAAC,EAAA,CACG,EAAA,CACE,CACZ,CAAA,EAAA,EA/EO,OAAO,CAAC,EAAE,CAgFd,CACP,CAAC,EAAA,CACG,EAAA,CACE,CACZ,CAAA,EAAA,EAhIO,IAAI,CAAC,EAAE,CAiIX,CACP,CAAC,EAAA,CACG,EAAA,CACH,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';\nimport { Box, IconButton, Typography, List, ListItemButton, ListItemText, Collapse, styled } from '@mui/material';\nimport { useTheme } from '../ThemeProvider';\nimport { ChevronLeftRounded, ChevronRightRounded, ExpandLessRounded, ExpandMoreRounded, HelpOutlineRounded, HomeRounded, TextSnippetRounded } from '@mui/icons-material';\n\ninterface PolicyItem {\n title: string;\n id: number;\n newpage: boolean;\n url: string;\n items?: PolicyItem[];\n}\n\ninterface SidebarProps {\n isOpen: boolean;\n onToggle: () => void;\n centreName?: string;\n activePage?: string;\n onNavigate?: (url: string) => void;\n policies?: PolicyItem[];\n}\n\ninterface MenuItem {\n id: string;\n label: string;\n icon: React.ReactNode;\n}\n\nconst SidebarContainer = styled(Box)<{ isOpen: boolean }>(({ theme, isOpen }) => ({\n height: '100vh',\n position: 'sticky',\n top: 0,\n backgroundColor: '#fff',\n borderRight: `1px solid ${theme.palette.dark.main}1A`,\n flexShrink: 0,\n transition: 'all 0.3s ease-in-out',\n width: isOpen ? '288px' : '64px',\n zIndex: 50,\n [theme.breakpoints.down('md')]: {\n position: 'fixed',\n left: isOpen ? 0 : '-288px',\n width: '288px',\n },\n [theme.breakpoints.up('sm')]: {\n width: isOpen ? '288px' : '80px',\n },\n}));\n\nconst ToggleButton = styled(IconButton)(({ theme }) => ({\n width: 40,\n height: 40,\n borderRadius: theme.shape.borderRadius,\n backgroundColor: '#4D3019',\n color: '#fff',\n '&:hover': {\n backgroundColor: '#3d2614',\n },\n}));\n\nconst MenuItemButton = styled(ListItemButton)<{ isActive?: boolean; isOpen: boolean }>(({ theme, isActive, isOpen }) => ({\n borderRadius: theme.shape.borderRadius,\n padding: isOpen ? '10px 8px' : '12px 0',\n justifyContent: isOpen ? 'flex-start' : 'center',\n gap: isOpen ? theme.spacing(1) : 0,\n '&:hover': {\n backgroundColor: `${theme.palette.dark.main}0D`,\n },\n ...(isActive && {\n backgroundColor: `${theme.palette.dark.main}1A`,\n }),\n}));\n\nconst IconWrapper = styled(Box)<{ isOpen: boolean }>(({ theme, isOpen }) => ({\n width: isOpen ? 32 : 40,\n height: isOpen ? 32 : 40,\n borderRadius: theme.shape.borderRadius,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexShrink: 0,\n backgroundColor: theme.palette.custom?.iconColor || theme.palette.accent.main,\n}));\n\nexport const Sidebar: React.FC<SidebarProps> = ({\n isOpen,\n onToggle,\n centreName = \"Centre name goes here \\n across two lines\",\n activePage = 'dashboard',\n onNavigate,\n policies = []\n}) => {\n const theme = useTheme();\n const [expandedItems, setExpandedItems] = useState<string[]>([]);\n const [expandedPolicies, setExpandedPolicies] = useState<number[]>([]);\n\n const togglePolicyItem = (itemId: number) => {\n setExpandedPolicies((prev) =>\n prev.includes(itemId) ? prev.filter((id) => id !== itemId) : [...prev, itemId]\n );\n };\n\n const menuItems: MenuItem[] = [\n {\n id: 'dashboard',\n label: 'Dashboard',\n icon: <HomeRounded sx={{ fontSize: 20, color: \"#4D3019\" }} />,\n },\n {\n id: 'support',\n label: 'Support',\n icon: <HelpOutlineRounded sx={{ fontSize: 20, color: \"#4D3019\" }} />,\n },\n ];\n\n const renderPolicyItems = (items: PolicyItem[], depth: number = 0): React.ReactNode => {\n return items.map((item) => {\n const hasChildren = item.items && item.items.length > 0;\n const isExpanded = expandedPolicies.includes(item.id);\n const paddingLeft = 8 + (depth * 2);\n\n return (\n <Box key={item.id}>\n <Box sx={{ display: 'flex', alignItems: 'stretch' }}>\n <ListItemButton\n onClick={() => {\n if (!hasChildren && onNavigate) {\n onNavigate(item.url);\n }\n }}\n sx={{\n flex: hasChildren ? 1 : 'auto',\n width: hasChildren ? 'auto' : '100%',\n pl: paddingLeft,\n py: 1.25,\n borderRadius: hasChildren \n ? `${theme.shape.borderRadius}px 0 0 ${theme.shape.borderRadius}px`\n : theme.shape.borderRadius,\n '&:hover': {\n backgroundColor: `${theme.palette.dark.main}0D`,\n },\n ...(activePage === item.url && {\n backgroundColor: `${theme.palette.dark.main}1A`,\n }),\n }}\n >\n <ListItemText\n primary={item.title}\n primaryTypographyProps={{\n fontSize: '0.875rem',\n }}\n />\n </ListItemButton>\n {hasChildren && (\n <IconButton\n onClick={() => togglePolicyItem(item.id)}\n sx={{\n px: 1,\n borderRadius: `0 ${theme.shape.borderRadius}px ${theme.shape.borderRadius}px 0`,\n '&:hover': {\n backgroundColor: `${theme.palette.dark.main}0D`,\n },\n }}\n >\n <ChevronRightRounded\n sx={{\n fontSize: 16,\n color: '#4D3019',\n transition: 'transform 0.2s',\n transform: isExpanded ? 'rotate(90deg)' : 'rotate(0deg)',\n }}\n />\n </IconButton>\n )}\n </Box>\n\n {hasChildren && isExpanded && (\n <Collapse in={true} timeout=\"auto\">\n <List sx={{ p: 0, mt: 0.5 }}>\n {renderPolicyItems(item.items!, depth + 1)}\n </List>\n </Collapse>\n )}\n </Box>\n );\n });\n };\n\n const toggleItem = (itemId: string) => {\n if (!isOpen) {\n onToggle();\n setExpandedItems([itemId]);\n } else {\n setExpandedItems((prev) =>\n prev.includes(itemId) ? prev.filter((id) => id !== itemId) : [...prev, itemId]\n );\n }\n };\n\n return (\n <>\n {isOpen && (\n <Box\n sx={{\n position: 'fixed',\n inset: 0,\n bgcolor: 'rgba(0, 0, 0, 0.5)',\n zIndex: 40,\n display: { xs: 'block', md: 'none' },\n }}\n onClick={onToggle}\n />\n )}\n <SidebarContainer isOpen={isOpen}>\n <Box sx={{ display: 'flex', flexDirection: 'column', height: '100%' }}>\n {isOpen && (\n <Box\n sx={{\n px: 2,\n py: 3,\n borderBottom: `1px solid ${theme.palette.dark.main}1A`,\n flexShrink: 0,\n position: 'relative',\n }}\n >\n <Typography\n variant=\"h6\"\n sx={{\n fontSize: '18px',\n fontWeight: 700,\n color: '#4D3019',\n lineHeight: 1.3,\n whiteSpace: 'pre-line',\n pr: 7,\n }}\n >\n {centreName}\n </Typography>\n\n <ToggleButton\n onClick={onToggle}\n sx={{ position: 'absolute', top: 24, right: 16 }}\n aria-label=\"Collapse sidebar\"\n >\n <ChevronLeftRounded sx={{ fontSize: 20 }} />\n </ToggleButton>\n </Box>\n )}\n\n {!isOpen && (\n <Box\n sx={{\n px: 1,\n py: 3,\n borderBottom: `1px solid ${theme.palette.dark.main}1A`,\n display: 'flex',\n justifyContent: 'center',\n }}\n >\n <ToggleButton onClick={onToggle} aria-label=\"Expand sidebar\">\n <ChevronRightRounded sx={{ fontSize: 20 }} />\n </ToggleButton>\n </Box>\n )}\n\n <Box\n sx={{\n flex: 1,\n overflowY: 'auto',\n px: isOpen ? 1.5 : 1,\n py: 3,\n }}\n >\n <List sx={{ p: 0 }}>\n {menuItems.map((item) => (\n <Box key={item.id} sx={{ mb: 1 }}>\n <MenuItemButton\n isOpen={isOpen}\n isActive={activePage === item.id}\n onClick={() => {\n if (!isOpen) {\n onToggle();\n }\n if (onNavigate) {\n onNavigate(`/${item.id}`);\n }\n }}\n title={!isOpen ? item.label : undefined}\n >\n <IconWrapper isOpen={isOpen}>{item.icon}</IconWrapper>\n {isOpen && (\n <ListItemText\n primary={item.label}\n primaryTypographyProps={{\n fontSize: '1rem',\n fontWeight: 600,\n }}\n sx={{ flex: 1 }}\n />\n )}\n </MenuItemButton>\n </Box>\n ))}\n\n {/* Dynamic Policies Section */}\n {policies.length > 0 && (\n <Box sx={{ mb: 1 }}>\n <MenuItemButton\n isOpen={isOpen}\n isActive={activePage === 'policies'}\n onClick={() => {\n toggleItem('policies');\n }}\n title={!isOpen ? 'Policies' : undefined}\n >\n <IconWrapper isOpen={isOpen}>\n <TextSnippetRounded sx={{ fontSize: 20, color: \"#4D3019\" }} />\n </IconWrapper>\n {isOpen && (\n <>\n <ListItemText\n primary=\"Policies\"\n primaryTypographyProps={{\n fontSize: '1rem',\n fontWeight: 600,\n }}\n sx={{ flex: 1 }}\n />\n <Box>\n {expandedItems.includes('policies') ? (\n <ExpandLessRounded sx={{ fontSize: 20, color: \"#4D3019\" }} />\n ) : (\n <ExpandMoreRounded sx={{ fontSize: 20, color: \"#4D3019\" }} />\n )}\n </Box>\n </>\n )}\n </MenuItemButton>\n\n {expandedItems.includes('policies') && isOpen && (\n <Collapse in={true} timeout=\"auto\">\n <List sx={{ p: 0, mt: 0.5 }}>\n {renderPolicyItems(policies)}\n </List>\n </Collapse>\n )}\n </Box>\n )}\n </List>\n </Box>\n </Box>\n </SidebarContainer>\n </>\n );\n};\n"],"names":["styled","Box","IconButton","ListItemButton","useTheme","useState","_jsx","HomeRounded","HelpOutlineRounded","_jsxs","ListItemText","ChevronRightRounded","Collapse","List","Typography","ChevronLeftRounded","TextSnippetRounded","_Fragment","ExpandLessRounded","ExpandMoreRounded"],"mappings":"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"}
@@ -1,10 +1,18 @@
1
1
  import React from 'react';
2
+ interface PolicyItem {
3
+ title: string;
4
+ id: number;
5
+ newpage: boolean;
6
+ url: string;
7
+ items?: PolicyItem[];
8
+ }
2
9
  interface SidebarProps {
3
10
  isOpen: boolean;
4
11
  onToggle: () => void;
5
12
  centreName?: string;
6
13
  activePage?: string;
7
- onPageChange?: (pageId: string) => void;
14
+ onNavigate?: (url: string) => void;
15
+ policies?: PolicyItem[];
8
16
  }
9
17
  export declare const Sidebar: React.FC<SidebarProps>;
10
18
  export {};
@@ -2,7 +2,7 @@ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
2
  import { useState } from 'react';
3
3
  import { styled, Box, IconButton, ListItemButton, Typography, List, ListItemText, Collapse } from '@mui/material';
4
4
  import { useTheme } from '../ThemeProvider.js';
5
- import { HomeRounded, TextSnippetRounded, HelpOutlineRounded, ChevronLeftRounded, ChevronRightRounded, ExpandLessRounded, ExpandMoreRounded } from '@mui/icons-material';
5
+ import { HomeRounded, HelpOutlineRounded, ChevronLeftRounded, ChevronRightRounded, TextSnippetRounded, ExpandLessRounded, ExpandMoreRounded } from '@mui/icons-material';
6
6
 
7
7
  const SidebarContainer = styled(Box)(({ theme, isOpen }) => ({
8
8
  height: '100vh',
@@ -55,14 +55,12 @@ const IconWrapper = styled(Box)(({ theme, isOpen }) => ({
55
55
  flexShrink: 0,
56
56
  backgroundColor: theme.palette.custom?.iconColor || theme.palette.accent.main,
57
57
  }));
58
- const Sidebar = ({ isOpen, onToggle, centreName = "Centre name goes here \n across two lines", activePage = 'dashboard', onPageChange }) => {
58
+ const Sidebar = ({ isOpen, onToggle, centreName = "Centre name goes here \n across two lines", activePage = 'dashboard', onNavigate, policies = [] }) => {
59
59
  const theme = useTheme();
60
60
  const [expandedItems, setExpandedItems] = useState([]);
61
- const [expandedSubItems, setExpandedSubItems] = useState([]);
62
- const handlePageClick = (pageId) => {
63
- if (onPageChange) {
64
- onPageChange(pageId);
65
- }
61
+ const [expandedPolicies, setExpandedPolicies] = useState([]);
62
+ const togglePolicyItem = (itemId) => {
63
+ setExpandedPolicies((prev) => prev.includes(itemId) ? prev.filter((id) => id !== itemId) : [...prev, itemId]);
66
64
  };
67
65
  const menuItems = [
68
66
  {
@@ -70,38 +68,51 @@ const Sidebar = ({ isOpen, onToggle, centreName = "Centre name goes here \n acro
70
68
  label: 'Dashboard',
71
69
  icon: jsx(HomeRounded, { sx: { fontSize: 20, color: "#4D3019" } }),
72
70
  },
73
- {
74
- id: 'policies',
75
- label: 'Policies',
76
- icon: jsx(TextSnippetRounded, { sx: { fontSize: 20, color: "#4D3019" } }),
77
- hasChildren: true,
78
- children: [
79
- { id: 'legislation', label: 'Legislation' },
80
- { id: 'service-assurances', label: 'Service Assurances / Compliance Checklist' },
81
- {
82
- id: 'governance',
83
- label: 'Governance, Management, and Administration',
84
- hasChildren: true,
85
- children: [
86
- 'Philosophy and Values',
87
- 'Te Tiriti o Waitangi – policy options',
88
- 'Self-Review and Internal Evaluation',
89
- ],
90
- },
91
- {
92
- id: 'curriculum',
93
- label: 'Curriculum and Learning V1',
94
- hasChildren: true,
95
- children: [],
96
- },
97
- ],
98
- },
99
71
  {
100
72
  id: 'support',
101
73
  label: 'Support',
102
74
  icon: jsx(HelpOutlineRounded, { sx: { fontSize: 20, color: "#4D3019" } }),
103
75
  },
104
76
  ];
77
+ const renderPolicyItems = (items, depth = 0) => {
78
+ return items.map((item) => {
79
+ const hasChildren = item.items && item.items.length > 0;
80
+ const isExpanded = expandedPolicies.includes(item.id);
81
+ const paddingLeft = 8 + (depth * 2);
82
+ return (jsxs(Box, { children: [jsxs(Box, { sx: { display: 'flex', alignItems: 'stretch' }, children: [jsx(ListItemButton, { onClick: () => {
83
+ if (!hasChildren && onNavigate) {
84
+ onNavigate(item.url);
85
+ }
86
+ }, sx: {
87
+ flex: hasChildren ? 1 : 'auto',
88
+ width: hasChildren ? 'auto' : '100%',
89
+ pl: paddingLeft,
90
+ py: 1.25,
91
+ borderRadius: hasChildren
92
+ ? `${theme.shape.borderRadius}px 0 0 ${theme.shape.borderRadius}px`
93
+ : theme.shape.borderRadius,
94
+ '&:hover': {
95
+ backgroundColor: `${theme.palette.dark.main}0D`,
96
+ },
97
+ ...(activePage === item.url && {
98
+ backgroundColor: `${theme.palette.dark.main}1A`,
99
+ }),
100
+ }, children: jsx(ListItemText, { primary: item.title, primaryTypographyProps: {
101
+ fontSize: '0.875rem',
102
+ } }) }), hasChildren && (jsx(IconButton, { onClick: () => togglePolicyItem(item.id), sx: {
103
+ px: 1,
104
+ borderRadius: `0 ${theme.shape.borderRadius}px ${theme.shape.borderRadius}px 0`,
105
+ '&:hover': {
106
+ backgroundColor: `${theme.palette.dark.main}0D`,
107
+ },
108
+ }, children: jsx(ChevronRightRounded, { sx: {
109
+ fontSize: 16,
110
+ color: '#4D3019',
111
+ transition: 'transform 0.2s',
112
+ transform: isExpanded ? 'rotate(90deg)' : 'rotate(0deg)',
113
+ } }) }))] }), hasChildren && isExpanded && (jsx(Collapse, { in: true, timeout: "auto", children: jsx(List, { sx: { p: 0, mt: 0.5 }, children: renderPolicyItems(item.items, depth + 1) }) }))] }, item.id));
114
+ });
115
+ };
105
116
  const toggleItem = (itemId) => {
106
117
  if (!isOpen) {
107
118
  onToggle();
@@ -111,9 +122,6 @@ const Sidebar = ({ isOpen, onToggle, centreName = "Centre name goes here \n acro
111
122
  setExpandedItems((prev) => prev.includes(itemId) ? prev.filter((id) => id !== itemId) : [...prev, itemId]);
112
123
  }
113
124
  };
114
- const toggleSubItem = (subItemId) => {
115
- setExpandedSubItems((prev) => prev.includes(subItemId) ? prev.filter((id) => id !== subItemId) : [...prev, subItemId]);
116
- };
117
125
  return (jsxs(Fragment, { children: [isOpen && (jsx(Box, { sx: {
118
126
  position: 'fixed',
119
127
  inset: 0,
@@ -144,59 +152,22 @@ const Sidebar = ({ isOpen, onToggle, centreName = "Centre name goes here \n acro
144
152
  overflowY: 'auto',
145
153
  px: isOpen ? 1.5 : 1,
146
154
  py: 3,
147
- }, children: jsx(List, { sx: { p: 0 }, children: menuItems.map((item) => (jsxs(Box, { sx: { mb: 1 }, children: [jsxs(MenuItemButton, { isOpen: isOpen, isActive: activePage === item.id, onClick: () => {
148
- if (item.hasChildren) {
149
- toggleItem(item.id);
155
+ }, children: jsxs(List, { sx: { p: 0 }, children: [menuItems.map((item) => (jsx(Box, { sx: { mb: 1 }, children: jsxs(MenuItemButton, { isOpen: isOpen, isActive: activePage === item.id, onClick: () => {
156
+ if (!isOpen) {
157
+ onToggle();
150
158
  }
151
- else {
152
- if (!isOpen) {
153
- onToggle();
154
- }
155
- handlePageClick(item.id);
159
+ if (onNavigate) {
160
+ onNavigate(`/${item.id}`);
156
161
  }
157
- }, title: !isOpen ? item.label : undefined, children: [jsx(IconWrapper, { isOpen: isOpen, children: item.icon }), isOpen && (jsxs(Fragment, { children: [jsx(ListItemText, { primary: item.label, primaryTypographyProps: {
158
- fontSize: '1rem',
159
- fontWeight: 600,
160
- }, sx: { flex: 1 } }), item.hasChildren && (jsx(Box, { children: expandedItems.includes(item.id) ? (jsx(ExpandLessRounded, { sx: { fontSize: 20, color: "#4D3019" } })) : (jsx(ExpandMoreRounded, { sx: { fontSize: 20, color: "#4D3019" } })) }))] }))] }), item.hasChildren && expandedItems.includes(item.id) && item.children && isOpen && (jsx(Collapse, { in: true, timeout: "auto", children: jsx(List, { sx: { p: 0, mt: 0.5 }, children: item.children.map((subItem) => (jsxs(Box, { children: [jsxs(Box, { sx: { display: 'flex', alignItems: 'stretch' }, children: [jsx(ListItemButton, { onClick: () => handlePageClick(subItem.id), sx: {
161
- flex: 1,
162
- pl: 8,
163
- py: 1.25,
164
- borderRadius: `${theme.shape.borderRadius}px 0 0 ${theme.shape.borderRadius}px`,
165
- '&:hover': {
166
- backgroundColor: `${theme.palette.dark.main}0D`,
167
- },
168
- ...(activePage === subItem.id && {
169
- backgroundColor: `${theme.palette.dark.main}1A`,
170
- }),
171
- }, children: jsx(ListItemText, { primary: subItem.label, primaryTypographyProps: {
172
- fontSize: '0.875rem',
173
- } }) }), subItem.hasChildren && subItem.children && subItem.children.length > 0 && (jsx(IconButton, { onClick: () => toggleSubItem(subItem.id), sx: {
174
- px: 1,
175
- borderRadius: `0 ${theme.shape.borderRadius}px ${theme.shape.borderRadius}px 0`,
176
- '&:hover': {
177
- backgroundColor: `${theme.palette.dark.main}0D`,
178
- },
179
- }, children: jsx(ChevronRightRounded, { sx: {
180
- fontSize: 16,
181
- color: '#4D3019',
182
- transition: 'transform 0.2s',
183
- transform: expandedSubItems.includes(subItem.id) ? 'rotate(90deg)' : 'rotate(0deg)',
184
- } }) }))] }), subItem.hasChildren && expandedSubItems.includes(subItem.id) && subItem.children && (jsx(Collapse, { in: true, timeout: "auto", children: jsx(List, { sx: { p: 0, mt: 0.5 }, children: subItem.children.map((nestedItem, index) => {
185
- const nestedPageId = `${subItem.id}-${index}`;
186
- return (jsx(ListItemButton, { onClick: () => handlePageClick(nestedPageId), sx: {
187
- pl: 10,
188
- py: 1,
189
- borderRadius: theme.shape.borderRadius,
190
- '&:hover': {
191
- backgroundColor: `${theme.palette.dark.main}0D`,
192
- },
193
- ...(activePage === nestedPageId && {
194
- backgroundColor: `${theme.palette.dark.main}1A`,
195
- }),
196
- }, children: jsx(ListItemText, { primary: nestedItem, primaryTypographyProps: {
197
- fontSize: '0.875rem',
198
- } }) }, index));
199
- }) }) }))] }, subItem.id))) }) }))] }, item.id))) }) })] }) })] }));
162
+ }, title: !isOpen ? item.label : undefined, children: [jsx(IconWrapper, { isOpen: isOpen, children: item.icon }), isOpen && (jsx(ListItemText, { primary: item.label, primaryTypographyProps: {
163
+ fontSize: '1rem',
164
+ fontWeight: 600,
165
+ }, sx: { flex: 1 } }))] }) }, item.id))), policies.length > 0 && (jsxs(Box, { sx: { mb: 1 }, children: [jsxs(MenuItemButton, { isOpen: isOpen, isActive: activePage === 'policies', onClick: () => {
166
+ toggleItem('policies');
167
+ }, title: !isOpen ? 'Policies' : undefined, children: [jsx(IconWrapper, { isOpen: isOpen, children: jsx(TextSnippetRounded, { sx: { fontSize: 20, color: "#4D3019" } }) }), isOpen && (jsxs(Fragment, { children: [jsx(ListItemText, { primary: "Policies", primaryTypographyProps: {
168
+ fontSize: '1rem',
169
+ fontWeight: 600,
170
+ }, sx: { flex: 1 } }), jsx(Box, { children: expandedItems.includes('policies') ? (jsx(ExpandLessRounded, { sx: { fontSize: 20, color: "#4D3019" } })) : (jsx(ExpandMoreRounded, { sx: { fontSize: 20, color: "#4D3019" } })) })] }))] }), expandedItems.includes('policies') && isOpen && (jsx(Collapse, { in: true, timeout: "auto", children: jsx(List, { sx: { p: 0, mt: 0.5 }, children: renderPolicyItems(policies) }) }))] }))] }) })] }) })] }));
200
171
  };
201
172
 
202
173
  export { Sidebar };
@@ -1 +1 @@
1
- {"version":3,"file":"Sidebar.js","sources":["../../../../src/components/Sidebar.tsx"],"sourcesContent":["\n\nimport React, { useState } from 'react';\nimport { Box, IconButton, Typography, List, ListItemButton, ListItemText, Collapse, styled } from '@mui/material';\nimport { useTheme } from '../ThemeProvider';\nimport { ChevronLeftRounded, ChevronRightRounded, ExpandLessRounded, ExpandMoreRounded, HelpOutlineRounded, HomeRounded, TextSnippetRounded } from '@mui/icons-material';\n\ninterface SidebarProps {\n isOpen: boolean;\n onToggle: () => void;\n centreName?: string;\n activePage?: string;\n onPageChange?: (pageId: string) => void;\n}\n\ninterface MenuItem {\n id: string;\n label: string;\n icon: React.ReactNode;\n hasChildren?: boolean;\n children?: SubMenuItem[];\n}\n\ninterface SubMenuItem {\n id: string;\n label: string;\n hasChildren?: boolean;\n children?: string[];\n}\n\nconst SidebarContainer = styled(Box)<{ isOpen: boolean }>(({ theme, isOpen }) => ({\n height: '100vh',\n position: 'sticky',\n top: 0,\n backgroundColor: '#fff',\n borderRight: `1px solid ${theme.palette.dark.main}1A`,\n flexShrink: 0,\n transition: 'all 0.3s ease-in-out',\n width: isOpen ? '288px' : '64px',\n zIndex: 50,\n [theme.breakpoints.down('md')]: {\n position: 'fixed',\n left: isOpen ? 0 : '-288px',\n width: '288px',\n },\n [theme.breakpoints.up('sm')]: {\n width: isOpen ? '288px' : '80px',\n },\n}));\n\nconst ToggleButton = styled(IconButton)(({ theme }) => ({\n width: 40,\n height: 40,\n borderRadius: theme.shape.borderRadius,\n backgroundColor: '#4D3019',\n color: '#fff',\n '&:hover': {\n backgroundColor: '#3d2614',\n },\n}));\n\nconst MenuItemButton = styled(ListItemButton)<{ isActive?: boolean; isOpen: boolean }>(({ theme, isActive, isOpen }) => ({\n borderRadius: theme.shape.borderRadius,\n padding: isOpen ? '10px 8px' : '12px 0',\n justifyContent: isOpen ? 'flex-start' : 'center',\n gap: isOpen ? theme.spacing(1) : 0,\n '&:hover': {\n backgroundColor: `${theme.palette.dark.main}0D`,\n },\n ...(isActive && {\n backgroundColor: `${theme.palette.dark.main}1A`,\n }),\n}));\n\nconst IconWrapper = styled(Box)<{ isOpen: boolean }>(({ theme, isOpen }) => ({\n width: isOpen ? 32 : 40,\n height: isOpen ? 32 : 40,\n borderRadius: theme.shape.borderRadius,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexShrink: 0,\n backgroundColor: theme.palette.custom?.iconColor || theme.palette.accent.main,\n}));\n\nexport const Sidebar: React.FC<SidebarProps> = ({\n isOpen,\n onToggle,\n centreName = \"Centre name goes here \\n across two lines\",\n activePage = 'dashboard',\n onPageChange\n}) => {\n const theme = useTheme();\n const [expandedItems, setExpandedItems] = useState<string[]>([]);\n const [expandedSubItems, setExpandedSubItems] = useState<string[]>([]);\n\n const handlePageClick = (pageId: string) => {\n if (onPageChange) {\n onPageChange(pageId);\n }\n };\n\n const menuItems: MenuItem[] = [\n {\n id: 'dashboard',\n label: 'Dashboard',\n icon: <HomeRounded sx={{fontSize: 20, color:\"#4D3019\"}} />,\n },\n {\n id: 'policies',\n label: 'Policies',\n icon: <TextSnippetRounded sx={{fontSize: 20, color:\"#4D3019\"}} />,\n hasChildren: true,\n children: [\n { id: 'legislation', label: 'Legislation' },\n { id: 'service-assurances', label: 'Service Assurances / Compliance Checklist' },\n {\n id: 'governance',\n label: 'Governance, Management, and Administration',\n hasChildren: true,\n children: [\n 'Philosophy and Values',\n 'Te Tiriti o Waitangi – policy options',\n 'Self-Review and Internal Evaluation',\n ],\n },\n {\n id: 'curriculum',\n label: 'Curriculum and Learning V1',\n hasChildren: true,\n children: [],\n },\n ],\n },\n {\n id: 'support',\n label: 'Support',\n icon: <HelpOutlineRounded sx={{fontSize: 20, color:\"#4D3019\"}} />,\n },\n ];\n\n const toggleItem = (itemId: string) => {\n if (!isOpen) {\n onToggle();\n setExpandedItems([itemId]);\n } else {\n setExpandedItems((prev) =>\n prev.includes(itemId) ? prev.filter((id) => id !== itemId) : [...prev, itemId]\n );\n }\n };\n\n const toggleSubItem = (subItemId: string) => {\n setExpandedSubItems((prev) =>\n prev.includes(subItemId) ? prev.filter((id) => id !== subItemId) : [...prev, subItemId]\n );\n };\n\n return (\n <>\n {isOpen && (\n <Box\n sx={{\n position: 'fixed',\n inset: 0,\n bgcolor: 'rgba(0, 0, 0, 0.5)',\n zIndex: 40,\n display: { xs: 'block', md: 'none' },\n }}\n onClick={onToggle}\n />\n )}\n <SidebarContainer isOpen={isOpen}>\n <Box sx={{ display: 'flex', flexDirection: 'column', height: '100%' }}>\n {isOpen && (\n <Box\n sx={{\n px: 2,\n py: 3,\n borderBottom: `1px solid ${theme.palette.dark.main}1A`,\n flexShrink: 0,\n position: 'relative',\n }}\n >\n <Typography\n variant=\"h6\"\n sx={{\n fontSize: '18px',\n fontWeight: 700,\n color: '#4D3019',\n lineHeight: 1.3,\n whiteSpace: 'pre-line',\n pr: 7,\n }}\n >\n {centreName}\n </Typography>\n\n <ToggleButton\n onClick={onToggle}\n sx={{ position: 'absolute', top: 24, right: 16 }}\n aria-label=\"Collapse sidebar\"\n >\n <ChevronLeftRounded sx={{fontSize: 20}} />\n </ToggleButton>\n </Box>\n )}\n\n {!isOpen && (\n <Box\n sx={{\n px: 1,\n py: 3,\n borderBottom: `1px solid ${theme.palette.dark.main}1A`,\n display: 'flex',\n justifyContent: 'center',\n }}\n >\n <ToggleButton onClick={onToggle} aria-label=\"Expand sidebar\">\n <ChevronRightRounded sx={{fontSize: 20}} />\n </ToggleButton>\n </Box>\n )}\n\n <Box\n sx={{\n flex: 1,\n overflowY: 'auto',\n px: isOpen ? 1.5 : 1,\n py: 3,\n }}\n >\n <List sx={{ p: 0 }}>\n {menuItems.map((item) => (\n <Box key={item.id} sx={{ mb: 1 }}>\n <MenuItemButton\n isOpen={isOpen}\n isActive={activePage === item.id}\n onClick={() => {\n if (item.hasChildren) {\n toggleItem(item.id);\n } else {\n if (!isOpen) {\n onToggle();\n }\n handlePageClick(item.id);\n }\n }}\n title={!isOpen ? item.label : undefined}\n >\n <IconWrapper isOpen={isOpen}>{item.icon}</IconWrapper>\n {isOpen && (\n <>\n <ListItemText\n primary={item.label}\n primaryTypographyProps={{\n fontSize: '1rem',\n fontWeight: 600,\n }}\n sx={{ flex: 1 }}\n />\n {item.hasChildren && (\n <Box>\n {expandedItems.includes(item.id) ? (\n <ExpandLessRounded sx={{fontSize: 20, color:\"#4D3019\"}} />\n ) : (\n <ExpandMoreRounded sx={{fontSize: 20, color:\"#4D3019\"}} />\n )}\n </Box>\n )}\n </>\n )}\n </MenuItemButton>\n\n {item.hasChildren && expandedItems.includes(item.id) && item.children && isOpen && (\n <Collapse in={true} timeout=\"auto\">\n <List sx={{ p: 0, mt: 0.5 }}>\n {item.children.map((subItem) => (\n <Box key={subItem.id}>\n <Box sx={{ display: 'flex', alignItems: 'stretch' }}>\n <ListItemButton\n onClick={() => handlePageClick(subItem.id)}\n sx={{\n flex: 1,\n pl: 8,\n py: 1.25,\n borderRadius: `${theme.shape.borderRadius}px 0 0 ${theme.shape.borderRadius}px`,\n '&:hover': {\n backgroundColor: `${theme.palette.dark.main}0D`,\n },\n ...(activePage === subItem.id && {\n backgroundColor: `${theme.palette.dark.main}1A`,\n }),\n }}\n >\n <ListItemText\n primary={subItem.label}\n primaryTypographyProps={{\n fontSize: '0.875rem',\n }}\n />\n </ListItemButton>\n {subItem.hasChildren && subItem.children && subItem.children.length > 0 && (\n <IconButton\n onClick={() => toggleSubItem(subItem.id)}\n sx={{\n px: 1,\n borderRadius: `0 ${theme.shape.borderRadius}px ${theme.shape.borderRadius}px 0`,\n '&:hover': {\n backgroundColor: `${theme.palette.dark.main}0D`,\n },\n }}\n >\n <ChevronRightRounded\n sx={{\n fontSize: 16,\n color: '#4D3019',\n transition: 'transform 0.2s',\n transform: expandedSubItems.includes(subItem.id) ? 'rotate(90deg)' : 'rotate(0deg)',\n }}\n />\n </IconButton>\n )}\n </Box>\n\n {subItem.hasChildren && expandedSubItems.includes(subItem.id) && subItem.children && (\n <Collapse in={true} timeout=\"auto\">\n <List sx={{ p: 0, mt: 0.5 }}>\n {subItem.children.map((nestedItem, index) => {\n const nestedPageId = `${subItem.id}-${index}`;\n return (\n <ListItemButton\n key={index}\n onClick={() => handlePageClick(nestedPageId)}\n sx={{\n pl: 10,\n py: 1,\n borderRadius: theme.shape.borderRadius,\n '&:hover': {\n backgroundColor: `${theme.palette.dark.main}0D`,\n },\n ...(activePage === nestedPageId && {\n backgroundColor: `${theme.palette.dark.main}1A`,\n }),\n }}\n >\n <ListItemText\n primary={nestedItem}\n primaryTypographyProps={{\n fontSize: '0.875rem',\n }}\n />\n </ListItemButton>\n );\n })}\n </List>\n </Collapse>\n )}\n </Box>\n ))}\n </List>\n </Collapse>\n )}\n </Box>\n ))}\n </List>\n </Box>\n </Box>\n </SidebarContainer>\n </>\n );\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';\nimport { Box, IconButton, Typography, List, ListItemButton, ListItemText, Collapse, styled } from '@mui/material';\nimport { useTheme } from '../ThemeProvider';\nimport { ChevronLeftRounded, ChevronRightRounded, ExpandLessRounded, ExpandMoreRounded, HelpOutlineRounded, HomeRounded, TextSnippetRounded } from '@mui/icons-material';\n\ninterface PolicyItem {\n title: string;\n id: number;\n newpage: boolean;\n url: string;\n items?: PolicyItem[];\n}\n\ninterface SidebarProps {\n isOpen: boolean;\n onToggle: () => void;\n centreName?: string;\n activePage?: string;\n onNavigate?: (url: string) => void;\n policies?: PolicyItem[];\n}\n\ninterface MenuItem {\n id: string;\n label: string;\n icon: React.ReactNode;\n}\n\nconst SidebarContainer = styled(Box)<{ isOpen: boolean }>(({ theme, isOpen }) => ({\n height: '100vh',\n position: 'sticky',\n top: 0,\n backgroundColor: '#fff',\n borderRight: `1px solid ${theme.palette.dark.main}1A`,\n flexShrink: 0,\n transition: 'all 0.3s ease-in-out',\n width: isOpen ? '288px' : '64px',\n zIndex: 50,\n [theme.breakpoints.down('md')]: {\n position: 'fixed',\n left: isOpen ? 0 : '-288px',\n width: '288px',\n },\n [theme.breakpoints.up('sm')]: {\n width: isOpen ? '288px' : '80px',\n },\n}));\n\nconst ToggleButton = styled(IconButton)(({ theme }) => ({\n width: 40,\n height: 40,\n borderRadius: theme.shape.borderRadius,\n backgroundColor: '#4D3019',\n color: '#fff',\n '&:hover': {\n backgroundColor: '#3d2614',\n },\n}));\n\nconst MenuItemButton = styled(ListItemButton)<{ isActive?: boolean; isOpen: boolean }>(({ theme, isActive, isOpen }) => ({\n borderRadius: theme.shape.borderRadius,\n padding: isOpen ? '10px 8px' : '12px 0',\n justifyContent: isOpen ? 'flex-start' : 'center',\n gap: isOpen ? theme.spacing(1) : 0,\n '&:hover': {\n backgroundColor: `${theme.palette.dark.main}0D`,\n },\n ...(isActive && {\n backgroundColor: `${theme.palette.dark.main}1A`,\n }),\n}));\n\nconst IconWrapper = styled(Box)<{ isOpen: boolean }>(({ theme, isOpen }) => ({\n width: isOpen ? 32 : 40,\n height: isOpen ? 32 : 40,\n borderRadius: theme.shape.borderRadius,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexShrink: 0,\n backgroundColor: theme.palette.custom?.iconColor || theme.palette.accent.main,\n}));\n\nexport const Sidebar: React.FC<SidebarProps> = ({\n isOpen,\n onToggle,\n centreName = \"Centre name goes here \\n across two lines\",\n activePage = 'dashboard',\n onNavigate,\n policies = []\n}) => {\n const theme = useTheme();\n const [expandedItems, setExpandedItems] = useState<string[]>([]);\n const [expandedPolicies, setExpandedPolicies] = useState<number[]>([]);\n\n const togglePolicyItem = (itemId: number) => {\n setExpandedPolicies((prev) =>\n prev.includes(itemId) ? prev.filter((id) => id !== itemId) : [...prev, itemId]\n );\n };\n\n const menuItems: MenuItem[] = [\n {\n id: 'dashboard',\n label: 'Dashboard',\n icon: <HomeRounded sx={{ fontSize: 20, color: \"#4D3019\" }} />,\n },\n {\n id: 'support',\n label: 'Support',\n icon: <HelpOutlineRounded sx={{ fontSize: 20, color: \"#4D3019\" }} />,\n },\n ];\n\n const renderPolicyItems = (items: PolicyItem[], depth: number = 0): React.ReactNode => {\n return items.map((item) => {\n const hasChildren = item.items && item.items.length > 0;\n const isExpanded = expandedPolicies.includes(item.id);\n const paddingLeft = 8 + (depth * 2);\n\n return (\n <Box key={item.id}>\n <Box sx={{ display: 'flex', alignItems: 'stretch' }}>\n <ListItemButton\n onClick={() => {\n if (!hasChildren && onNavigate) {\n onNavigate(item.url);\n }\n }}\n sx={{\n flex: hasChildren ? 1 : 'auto',\n width: hasChildren ? 'auto' : '100%',\n pl: paddingLeft,\n py: 1.25,\n borderRadius: hasChildren \n ? `${theme.shape.borderRadius}px 0 0 ${theme.shape.borderRadius}px`\n : theme.shape.borderRadius,\n '&:hover': {\n backgroundColor: `${theme.palette.dark.main}0D`,\n },\n ...(activePage === item.url && {\n backgroundColor: `${theme.palette.dark.main}1A`,\n }),\n }}\n >\n <ListItemText\n primary={item.title}\n primaryTypographyProps={{\n fontSize: '0.875rem',\n }}\n />\n </ListItemButton>\n {hasChildren && (\n <IconButton\n onClick={() => togglePolicyItem(item.id)}\n sx={{\n px: 1,\n borderRadius: `0 ${theme.shape.borderRadius}px ${theme.shape.borderRadius}px 0`,\n '&:hover': {\n backgroundColor: `${theme.palette.dark.main}0D`,\n },\n }}\n >\n <ChevronRightRounded\n sx={{\n fontSize: 16,\n color: '#4D3019',\n transition: 'transform 0.2s',\n transform: isExpanded ? 'rotate(90deg)' : 'rotate(0deg)',\n }}\n />\n </IconButton>\n )}\n </Box>\n\n {hasChildren && isExpanded && (\n <Collapse in={true} timeout=\"auto\">\n <List sx={{ p: 0, mt: 0.5 }}>\n {renderPolicyItems(item.items!, depth + 1)}\n </List>\n </Collapse>\n )}\n </Box>\n );\n });\n };\n\n const toggleItem = (itemId: string) => {\n if (!isOpen) {\n onToggle();\n setExpandedItems([itemId]);\n } else {\n setExpandedItems((prev) =>\n prev.includes(itemId) ? prev.filter((id) => id !== itemId) : [...prev, itemId]\n );\n }\n };\n\n return (\n <>\n {isOpen && (\n <Box\n sx={{\n position: 'fixed',\n inset: 0,\n bgcolor: 'rgba(0, 0, 0, 0.5)',\n zIndex: 40,\n display: { xs: 'block', md: 'none' },\n }}\n onClick={onToggle}\n />\n )}\n <SidebarContainer isOpen={isOpen}>\n <Box sx={{ display: 'flex', flexDirection: 'column', height: '100%' }}>\n {isOpen && (\n <Box\n sx={{\n px: 2,\n py: 3,\n borderBottom: `1px solid ${theme.palette.dark.main}1A`,\n flexShrink: 0,\n position: 'relative',\n }}\n >\n <Typography\n variant=\"h6\"\n sx={{\n fontSize: '18px',\n fontWeight: 700,\n color: '#4D3019',\n lineHeight: 1.3,\n whiteSpace: 'pre-line',\n pr: 7,\n }}\n >\n {centreName}\n </Typography>\n\n <ToggleButton\n onClick={onToggle}\n sx={{ position: 'absolute', top: 24, right: 16 }}\n aria-label=\"Collapse sidebar\"\n >\n <ChevronLeftRounded sx={{ fontSize: 20 }} />\n </ToggleButton>\n </Box>\n )}\n\n {!isOpen && (\n <Box\n sx={{\n px: 1,\n py: 3,\n borderBottom: `1px solid ${theme.palette.dark.main}1A`,\n display: 'flex',\n justifyContent: 'center',\n }}\n >\n <ToggleButton onClick={onToggle} aria-label=\"Expand sidebar\">\n <ChevronRightRounded sx={{ fontSize: 20 }} />\n </ToggleButton>\n </Box>\n )}\n\n <Box\n sx={{\n flex: 1,\n overflowY: 'auto',\n px: isOpen ? 1.5 : 1,\n py: 3,\n }}\n >\n <List sx={{ p: 0 }}>\n {menuItems.map((item) => (\n <Box key={item.id} sx={{ mb: 1 }}>\n <MenuItemButton\n isOpen={isOpen}\n isActive={activePage === item.id}\n onClick={() => {\n if (!isOpen) {\n onToggle();\n }\n if (onNavigate) {\n onNavigate(`/${item.id}`);\n }\n }}\n title={!isOpen ? item.label : undefined}\n >\n <IconWrapper isOpen={isOpen}>{item.icon}</IconWrapper>\n {isOpen && (\n <ListItemText\n primary={item.label}\n primaryTypographyProps={{\n fontSize: '1rem',\n fontWeight: 600,\n }}\n sx={{ flex: 1 }}\n />\n )}\n </MenuItemButton>\n </Box>\n ))}\n\n {/* Dynamic Policies Section */}\n {policies.length > 0 && (\n <Box sx={{ mb: 1 }}>\n <MenuItemButton\n isOpen={isOpen}\n isActive={activePage === 'policies'}\n onClick={() => {\n toggleItem('policies');\n }}\n title={!isOpen ? 'Policies' : undefined}\n >\n <IconWrapper isOpen={isOpen}>\n <TextSnippetRounded sx={{ fontSize: 20, color: \"#4D3019\" }} />\n </IconWrapper>\n {isOpen && (\n <>\n <ListItemText\n primary=\"Policies\"\n primaryTypographyProps={{\n fontSize: '1rem',\n fontWeight: 600,\n }}\n sx={{ flex: 1 }}\n />\n <Box>\n {expandedItems.includes('policies') ? (\n <ExpandLessRounded sx={{ fontSize: 20, color: \"#4D3019\" }} />\n ) : (\n <ExpandMoreRounded sx={{ fontSize: 20, color: \"#4D3019\" }} />\n )}\n </Box>\n </>\n )}\n </MenuItemButton>\n\n {expandedItems.includes('policies') && isOpen && (\n <Collapse in={true} timeout=\"auto\">\n <List sx={{ p: 0, mt: 0.5 }}>\n {renderPolicyItems(policies)}\n </List>\n </Collapse>\n )}\n </Box>\n )}\n </List>\n </Box>\n </Box>\n </SidebarContainer>\n </>\n );\n};\n"],"names":["_jsx","_jsxs","_Fragment"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ece-docs-components",
3
- "version": "1.0.10",
3
+ "version": "1.0.11",
4
4
  "type": "module",
5
5
  "main": "./dist/cjs/index.js",
6
6
  "module": "./dist/esm/index.js",