ece-docs-components 1.0.7 → 1.0.8

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.
Files changed (95) hide show
  1. package/dist/cjs/ThemeProvider.js +121 -113
  2. package/dist/cjs/ThemeProvider.js.map +1 -1
  3. package/dist/cjs/components/ActionButton.js +0 -1
  4. package/dist/cjs/components/ActionButton.js.map +1 -1
  5. package/dist/cjs/components/Alert.js +0 -1
  6. package/dist/cjs/components/Alert.js.map +1 -1
  7. package/dist/cjs/components/Breadcrumb.js +1 -2
  8. package/dist/cjs/components/Breadcrumb.js.map +1 -1
  9. package/dist/cjs/components/Card.js +0 -1
  10. package/dist/cjs/components/Card.js.map +1 -1
  11. package/dist/cjs/components/Checkbox.js +0 -1
  12. package/dist/cjs/components/Checkbox.js.map +1 -1
  13. package/dist/cjs/components/Concertina.js +0 -1
  14. package/dist/cjs/components/Concertina.js.map +1 -1
  15. package/dist/cjs/components/DefinitionBox.js +1 -2
  16. package/dist/cjs/components/DefinitionBox.js.map +1 -1
  17. package/dist/cjs/components/Header.js +1 -2
  18. package/dist/cjs/components/Header.js.map +1 -1
  19. package/dist/cjs/components/Input.js +0 -1
  20. package/dist/cjs/components/Input.js.map +1 -1
  21. package/dist/cjs/components/Modal.js +0 -1
  22. package/dist/cjs/components/Modal.js.map +1 -1
  23. package/dist/cjs/components/NoteBox.js +0 -1
  24. package/dist/cjs/components/NoteBox.js.map +1 -1
  25. package/dist/cjs/components/Progress.js +1 -2
  26. package/dist/cjs/components/Progress.js.map +1 -1
  27. package/dist/cjs/components/Radio.js +2 -3
  28. package/dist/cjs/components/Radio.js.map +1 -1
  29. package/dist/cjs/components/ReadBy.js +1 -2
  30. package/dist/cjs/components/ReadBy.js.map +1 -1
  31. package/dist/cjs/components/Select.js +1 -2
  32. package/dist/cjs/components/Select.js.map +1 -1
  33. package/dist/cjs/components/Sidebar.js +1 -2
  34. package/dist/cjs/components/Sidebar.js.map +1 -1
  35. package/dist/cjs/components/SimpleModal.js +1 -2
  36. package/dist/cjs/components/SimpleModal.js.map +1 -1
  37. package/dist/cjs/components/StatusBar.js +0 -1
  38. package/dist/cjs/components/StatusBar.js.map +1 -1
  39. package/dist/cjs/components/TableOfContents.js +0 -1
  40. package/dist/cjs/components/TableOfContents.js.map +1 -1
  41. package/dist/cjs/components/Tabs.js +0 -1
  42. package/dist/cjs/components/Tabs.js.map +1 -1
  43. package/dist/cjs/components/Toggle.js +0 -1
  44. package/dist/cjs/components/Toggle.js.map +1 -1
  45. package/dist/cjs/index.js +0 -1
  46. package/dist/cjs/index.js.map +1 -1
  47. package/dist/esm/ThemeProvider.d.ts +1 -112
  48. package/dist/esm/ThemeProvider.js +122 -95
  49. package/dist/esm/ThemeProvider.js.map +1 -1
  50. package/dist/esm/components/ActionButton.js +0 -1
  51. package/dist/esm/components/ActionButton.js.map +1 -1
  52. package/dist/esm/components/Alert.js +0 -1
  53. package/dist/esm/components/Alert.js.map +1 -1
  54. package/dist/esm/components/Breadcrumb.js +1 -2
  55. package/dist/esm/components/Breadcrumb.js.map +1 -1
  56. package/dist/esm/components/Card.js +0 -1
  57. package/dist/esm/components/Card.js.map +1 -1
  58. package/dist/esm/components/Checkbox.js +0 -1
  59. package/dist/esm/components/Checkbox.js.map +1 -1
  60. package/dist/esm/components/Concertina.js +0 -1
  61. package/dist/esm/components/Concertina.js.map +1 -1
  62. package/dist/esm/components/DefinitionBox.js +1 -2
  63. package/dist/esm/components/DefinitionBox.js.map +1 -1
  64. package/dist/esm/components/Header.js +1 -2
  65. package/dist/esm/components/Header.js.map +1 -1
  66. package/dist/esm/components/Input.js +0 -1
  67. package/dist/esm/components/Input.js.map +1 -1
  68. package/dist/esm/components/Modal.js +0 -1
  69. package/dist/esm/components/Modal.js.map +1 -1
  70. package/dist/esm/components/NoteBox.js +0 -1
  71. package/dist/esm/components/NoteBox.js.map +1 -1
  72. package/dist/esm/components/Progress.js +3 -4
  73. package/dist/esm/components/Progress.js.map +1 -1
  74. package/dist/esm/components/Radio.js +2 -3
  75. package/dist/esm/components/Radio.js.map +1 -1
  76. package/dist/esm/components/ReadBy.js +1 -2
  77. package/dist/esm/components/ReadBy.js.map +1 -1
  78. package/dist/esm/components/Select.js +1 -2
  79. package/dist/esm/components/Select.js.map +1 -1
  80. package/dist/esm/components/Sidebar.js +1 -2
  81. package/dist/esm/components/Sidebar.js.map +1 -1
  82. package/dist/esm/components/SimpleModal.js +1 -2
  83. package/dist/esm/components/SimpleModal.js.map +1 -1
  84. package/dist/esm/components/StatusBar.js +0 -1
  85. package/dist/esm/components/StatusBar.js.map +1 -1
  86. package/dist/esm/components/TableOfContents.js +0 -1
  87. package/dist/esm/components/TableOfContents.js.map +1 -1
  88. package/dist/esm/components/Tabs.js +0 -1
  89. package/dist/esm/components/Tabs.js.map +1 -1
  90. package/dist/esm/components/Toggle.js +2 -3
  91. package/dist/esm/components/Toggle.js.map +1 -1
  92. package/dist/esm/index.d.ts +0 -1
  93. package/dist/esm/index.js +0 -1
  94. package/dist/esm/index.js.map +1 -1
  95. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ReadBy.js","sources":["../../../../src/components/ReadBy.tsx"],"sourcesContent":["'use client';\n\nimport React, { useState } from 'react';\nimport { Box, IconButton, Typography, styled } from '@mui/material';\nimport { useTheme } from '../ThemeProvider';\nimport { ExpandLessRounded, ExpandMoreRounded } from '@mui/icons-material';\n\ninterface ReadByProps {\n names: string[];\n}\n\nconst ReadByContainer = styled(Box)(({ theme }) => ({\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'flex-start',\n gap: theme.spacing(2),\n padding: theme.spacing(2),\n borderLeft: `4px solid ${theme.palette.primary.main}`,\n borderRadius: '0 8px 8px 0',\n backgroundColor: theme.palette.custom?.readByBackgroundColor || theme.palette.accent.main,\n [theme.breakpoints.down('sm')]: {\n flexDirection: 'column',\n padding: theme.spacing(1.5),\n },\n}));\n\nconst ExpandButton = styled(IconButton)(({ theme }) => ({\n width: 32,\n height: 32,\n backgroundColor: '#4d3019',\n color: '#fff',\n flexShrink: 0,\n '&:hover': {\n backgroundColor: '#4d3019',\n opacity: 0.8,\n },\n [theme.breakpoints.down('sm')]: {\n alignSelf: 'flex-end',\n },\n}));\n\nexport const ReadBy: React.FC<ReadByProps> = ({ names }) => {\n const { theme } = useTheme();\n const [isExpanded, setIsExpanded] = useState(false);\n\n const displayText = isExpanded\n ? names.join(', ')\n : names.length > 5\n ? `${names.slice(0, 5).join(', ')}...`\n : names.join(', ');\n\n return (\n <ReadByContainer>\n <Box sx={{ flex: 1, minWidth: 0, wordBreak: 'break-word' }}>\n <Typography\n component=\"span\"\n sx={{\n fontSize: { xs: '13px', sm: '14px' },\n fontWeight: 700,\n color: theme.palette.dark.main,\n }}\n >\n Read by:\n </Typography>\n <Typography\n component=\"span\"\n sx={{\n fontSize: { xs: '13px', sm: '14px' },\n color: theme.palette.dark.main,\n ml: 1,\n }}\n >\n {displayText}\n </Typography>\n </Box>\n {names.length > 5 && (\n <ExpandButton\n onClick={() => setIsExpanded(!isExpanded)}\n aria-label={isExpanded ? 'Collapse' : 'Expand'}\n size=\"small\"\n >\n {isExpanded ? (\n <ExpandLessRounded sx={{fontSize: 16}} />\n ) : (\n <ExpandMoreRounded sx={{fontSize: 16}} />\n )}\n </ExpandButton>\n )}\n </ReadByContainer>\n );\n};"],"names":[],"mappings":";;;;;;;AAWA;AACE;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEE;AACA;AACD;AACF;AAED;AACE;AACA;AACA;AACA;AACA;AACA;AACE;AACA;AACD;;AAEC;AACD;AACF;;AAGC;;;AAIE;AACA;AACE;AACA;AAEJ;;AAOU;AACA;;;AASA;AACA;AACD;AAoBX;;"}
1
+ {"version":3,"file":"ReadBy.js","sources":["../../../../src/components/ReadBy.tsx"],"sourcesContent":["\n\nimport React, { useState } from 'react';\nimport { Box, IconButton, Typography, styled } from '@mui/material';\nimport { useTheme } from '../ThemeProvider';\nimport { ExpandLessRounded, ExpandMoreRounded } from '@mui/icons-material';\n\ninterface ReadByProps {\n names: string[];\n}\n\nconst ReadByContainer = styled(Box)(({ theme }) => ({\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'flex-start',\n gap: theme.spacing(2),\n padding: theme.spacing(2),\n borderLeft: `4px solid ${theme.palette.primary.main}`,\n borderRadius: '0 8px 8px 0',\n backgroundColor: theme.palette.custom?.readByBackgroundColor || theme.palette.accent.main,\n [theme.breakpoints.down('sm')]: {\n flexDirection: 'column',\n padding: theme.spacing(1.5),\n },\n}));\n\nconst ExpandButton = styled(IconButton)(({ theme }) => ({\n width: 32,\n height: 32,\n backgroundColor: '#4d3019',\n color: '#fff',\n flexShrink: 0,\n '&:hover': {\n backgroundColor: '#4d3019',\n opacity: 0.8,\n },\n [theme.breakpoints.down('sm')]: {\n alignSelf: 'flex-end',\n },\n}));\n\nexport const ReadBy: React.FC<ReadByProps> = ({ names }) => {\n const theme = useTheme();\n const [isExpanded, setIsExpanded] = useState(false);\n\n const displayText = isExpanded\n ? names.join(', ')\n : names.length > 5\n ? `${names.slice(0, 5).join(', ')}...`\n : names.join(', ');\n\n return (\n <ReadByContainer>\n <Box sx={{ flex: 1, minWidth: 0, wordBreak: 'break-word' }}>\n <Typography\n component=\"span\"\n sx={{\n fontSize: { xs: '13px', sm: '14px' },\n fontWeight: 700,\n color: theme.palette.dark.main,\n }}\n >\n Read by:\n </Typography>\n <Typography\n component=\"span\"\n sx={{\n fontSize: { xs: '13px', sm: '14px' },\n color: theme.palette.dark.main,\n ml: 1,\n }}\n >\n {displayText}\n </Typography>\n </Box>\n {names.length > 5 && (\n <ExpandButton\n onClick={() => setIsExpanded(!isExpanded)}\n aria-label={isExpanded ? 'Collapse' : 'Expand'}\n size=\"small\"\n >\n {isExpanded ? (\n <ExpandLessRounded sx={{fontSize: 16}} />\n ) : (\n <ExpandMoreRounded sx={{fontSize: 16}} />\n )}\n </ExpandButton>\n )}\n </ReadByContainer>\n );\n};"],"names":["_jsxs","_jsx"],"mappings":"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"}
@@ -1,4 +1,3 @@
1
- "use client";
2
1
  import { jsxs, jsx } from 'react/jsx-runtime';
3
2
  import { styled, Select as Select$1, InputLabel, FormControl, MenuItem, FormHelperText } from '@mui/material';
4
3
  import { useTheme } from '../ThemeProvider.js';
@@ -44,7 +43,7 @@ const StyledInputLabel = styled(InputLabel)(({ theme }) => ({
44
43
  },
45
44
  }));
46
45
  const Select = ({ label, error, helperText, fullWidth = false, options, className = '', id, value, onChange, disabled, name, }) => {
47
- const { theme } = useTheme();
46
+ const theme = useTheme();
48
47
  const selectId = id || `select-${Math.random().toString(36).substr(2, 9)}`;
49
48
  const handleChange = (event) => {
50
49
  if (onChange) {
@@ -1 +1 @@
1
- {"version":3,"file":"Select.js","sources":["../../../../src/components/Select.tsx"],"sourcesContent":["'use client';\n\nimport React from 'react';\nimport { FormControl, InputLabel, Select as MuiSelect, MenuItem, FormHelperText, styled } from '@mui/material';\nimport { useTheme } from '../ThemeProvider';\nimport { ExpandMoreRounded } from '@mui/icons-material';\n\ninterface SelectProps {\n label?: string;\n error?: string;\n helperText?: string;\n fullWidth?: boolean;\n options: { value: string; label: string }[];\n value?: string;\n onChange?: (event: React.ChangeEvent<HTMLSelectElement>) => void;\n disabled?: boolean;\n className?: string;\n id?: string;\n name?: string;\n}\n\nconst StyledSelect = styled(MuiSelect)(({ theme, error }) => ({\n backgroundColor: theme.palette.light.main,\n borderRadius: (typeof theme.shape.borderRadius === 'string'\n ? parseInt(theme.shape.borderRadius, 10)\n : theme.shape.borderRadius || 4) * 2,\n fontSize: '1rem',\n color: theme.palette.dark.main,\n '& .MuiOutlinedInput-notchedOutline': {\n borderColor: error ? theme.palette.accent.main : `${theme.palette.dark.main}33`,\n },\n '&:hover .MuiOutlinedInput-notchedOutline': {\n borderColor: error ? theme.palette.accent.main : theme.palette.primary.main,\n },\n '&.Mui-focused .MuiOutlinedInput-notchedOutline': {\n borderWidth: 2,\n borderColor: error ? theme.palette.accent.main : theme.palette.primary.main,\n },\n '&.Mui-disabled': {\n backgroundColor: `${theme.palette.dark.main}0D`,\n '& .MuiSelect-select': {\n color: `${theme.palette.dark.main}80`,\n cursor: 'not-allowed',\n },\n },\n '& .MuiSelect-icon': {\n color: `${theme.palette.dark.main}66`,\n },\n}));\n\nconst StyledInputLabel = styled(InputLabel)(({ theme }) => ({\n fontSize: '0.875rem',\n fontWeight: 500,\n color: theme.palette.dark.main,\n position: 'relative',\n transform: 'none',\n marginBottom: theme.spacing(0.75),\n '&.Mui-focused': {\n color: theme.palette.dark.main,\n },\n}));\n\nexport const Select: React.FC<SelectProps> = ({\n label,\n error,\n helperText,\n fullWidth = false,\n options,\n className = '',\n id,\n value,\n onChange,\n disabled,\n name,\n}) => {\n const { theme } = useTheme();\n const selectId = id || `select-${Math.random().toString(36).substr(2, 9)}`;\n\n const handleChange = (event: any) => {\n if (onChange) {\n // Create a synthetic event that matches React.ChangeEvent<HTMLSelectElement>\n const syntheticEvent = {\n target: {\n value: event.target.value,\n name: name || '',\n },\n currentTarget: event.currentTarget,\n } as React.ChangeEvent<HTMLSelectElement>;\n onChange(syntheticEvent);\n }\n };\n\n return (\n <FormControl \n fullWidth={fullWidth} \n error={!!error}\n className={className}\n >\n {label && (\n <StyledInputLabel htmlFor={selectId} shrink={false}>\n {label}\n </StyledInputLabel>\n )}\n <StyledSelect\n id={selectId}\n name={name}\n value={value || ''}\n onChange={handleChange}\n disabled={disabled}\n error={!!error}\n IconComponent={ExpandMoreRounded}\n MenuProps={{\n PaperProps: {\n sx: {\n mt: 1,\n borderRadius: 2,\n boxShadow: '0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)',\n },\n },\n }}\n >\n {options.map((option) => (\n <MenuItem \n key={option.value} \n value={option.value}\n sx={{\n fontSize: '1rem',\n color: theme.palette.dark.main,\n '&:hover': {\n backgroundColor: `${theme.palette.primary.main}1A`,\n },\n '&.Mui-selected': {\n backgroundColor: `${theme.palette.primary.main}26`,\n '&:hover': {\n backgroundColor: `${theme.palette.primary.main}33`,\n },\n },\n }}\n >\n {option.label}\n </MenuItem>\n ))}\n </StyledSelect>\n {error && (\n <FormHelperText\n sx={{\n mt: 0.75,\n fontSize: '0.875rem',\n color: theme.palette.accent.main,\n }}\n >\n {error}\n </FormHelperText>\n )}\n {helperText && !error && (\n <FormHelperText\n sx={{\n mt: 0.75,\n fontSize: '0.875rem',\n color: `${theme.palette.dark.main}99`,\n }}\n >\n {helperText}\n </FormHelperText>\n )}\n </FormControl>\n );\n};"],"names":[],"mappings":";;;;;;AAqBA;AACE;;;;AAIA;AACA;AACA;;AAEC;AACD;;AAEC;AACD;AACE;;AAED;AACD;;AAEE;;AAEE;AACD;AACF;AACD;;AAEC;AACF;AAED;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACE;AACD;AACF;AAEM;AAaL;;AAGA;;;AAGI;AACE;AACE;;AAED;;;;;AAKP;AAEA;AAoBQ;AACE;AACE;AACA;AACA;AACD;AACF;;AAQG;AACA;AACA;;AAEC;AACD;;AAEE;;AAEC;AACF;AACF;AASD;AACA;AACA;AACD;AAQC;AACA;;AAED;AAOX;;"}
1
+ {"version":3,"file":"Select.js","sources":["../../../../src/components/Select.tsx"],"sourcesContent":["\n\nimport React from 'react';\nimport { FormControl, InputLabel, Select as MuiSelect, MenuItem, FormHelperText, styled } from '@mui/material';\nimport { useTheme } from '../ThemeProvider';\nimport { ExpandMoreRounded } from '@mui/icons-material';\n\ninterface SelectProps {\n label?: string;\n error?: string;\n helperText?: string;\n fullWidth?: boolean;\n options: { value: string; label: string }[];\n value?: string;\n onChange?: (event: React.ChangeEvent<HTMLSelectElement>) => void;\n disabled?: boolean;\n className?: string;\n id?: string;\n name?: string;\n}\n\nconst StyledSelect = styled(MuiSelect)(({ theme, error }) => ({\n backgroundColor: theme.palette.light.main,\n borderRadius: (typeof theme.shape.borderRadius === 'string'\n ? parseInt(theme.shape.borderRadius, 10)\n : theme.shape.borderRadius || 4) * 2,\n fontSize: '1rem',\n color: theme.palette.dark.main,\n '& .MuiOutlinedInput-notchedOutline': {\n borderColor: error ? theme.palette.accent.main : `${theme.palette.dark.main}33`,\n },\n '&:hover .MuiOutlinedInput-notchedOutline': {\n borderColor: error ? theme.palette.accent.main : theme.palette.primary.main,\n },\n '&.Mui-focused .MuiOutlinedInput-notchedOutline': {\n borderWidth: 2,\n borderColor: error ? theme.palette.accent.main : theme.palette.primary.main,\n },\n '&.Mui-disabled': {\n backgroundColor: `${theme.palette.dark.main}0D`,\n '& .MuiSelect-select': {\n color: `${theme.palette.dark.main}80`,\n cursor: 'not-allowed',\n },\n },\n '& .MuiSelect-icon': {\n color: `${theme.palette.dark.main}66`,\n },\n}));\n\nconst StyledInputLabel = styled(InputLabel)(({ theme }) => ({\n fontSize: '0.875rem',\n fontWeight: 500,\n color: theme.palette.dark.main,\n position: 'relative',\n transform: 'none',\n marginBottom: theme.spacing(0.75),\n '&.Mui-focused': {\n color: theme.palette.dark.main,\n },\n}));\n\nexport const Select: React.FC<SelectProps> = ({\n label,\n error,\n helperText,\n fullWidth = false,\n options,\n className = '',\n id,\n value,\n onChange,\n disabled,\n name,\n}) => {\n const theme = useTheme();\n const selectId = id || `select-${Math.random().toString(36).substr(2, 9)}`;\n\n const handleChange = (event: any) => {\n if (onChange) {\n // Create a synthetic event that matches React.ChangeEvent<HTMLSelectElement>\n const syntheticEvent = {\n target: {\n value: event.target.value,\n name: name || '',\n },\n currentTarget: event.currentTarget,\n } as React.ChangeEvent<HTMLSelectElement>;\n onChange(syntheticEvent);\n }\n };\n\n return (\n <FormControl \n fullWidth={fullWidth} \n error={!!error}\n className={className}\n >\n {label && (\n <StyledInputLabel htmlFor={selectId} shrink={false}>\n {label}\n </StyledInputLabel>\n )}\n <StyledSelect\n id={selectId}\n name={name}\n value={value || ''}\n onChange={handleChange}\n disabled={disabled}\n error={!!error}\n IconComponent={ExpandMoreRounded}\n MenuProps={{\n PaperProps: {\n sx: {\n mt: 1,\n borderRadius: 2,\n boxShadow: '0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)',\n },\n },\n }}\n >\n {options.map((option) => (\n <MenuItem \n key={option.value} \n value={option.value}\n sx={{\n fontSize: '1rem',\n color: theme.palette.dark.main,\n '&:hover': {\n backgroundColor: `${theme.palette.primary.main}1A`,\n },\n '&.Mui-selected': {\n backgroundColor: `${theme.palette.primary.main}26`,\n '&:hover': {\n backgroundColor: `${theme.palette.primary.main}33`,\n },\n },\n }}\n >\n {option.label}\n </MenuItem>\n ))}\n </StyledSelect>\n {error && (\n <FormHelperText\n sx={{\n mt: 0.75,\n fontSize: '0.875rem',\n color: theme.palette.accent.main,\n }}\n >\n {error}\n </FormHelperText>\n )}\n {helperText && !error && (\n <FormHelperText\n sx={{\n mt: 0.75,\n fontSize: '0.875rem',\n color: `${theme.palette.dark.main}99`,\n }}\n >\n {helperText}\n </FormHelperText>\n )}\n </FormControl>\n );\n};"],"names":["MuiSelect","_jsxs","_jsx"],"mappings":"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"}
@@ -1,4 +1,3 @@
1
- "use client";
2
1
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
3
2
  import { useState } from 'react';
4
3
  import { styled, Box, IconButton, ListItemButton, Typography, List, ListItemText, Collapse } from '@mui/material';
@@ -57,7 +56,7 @@ const IconWrapper = styled(Box)(({ theme, isOpen }) => ({
57
56
  backgroundColor: theme.palette.custom?.iconColor || theme.palette.accent.main,
58
57
  }));
59
58
  const Sidebar = ({ isOpen, onToggle, centreName = "Centre name goes here \n across two lines", activePage = 'dashboard', onPageChange }) => {
60
- const { theme } = useTheme();
59
+ const theme = useTheme();
61
60
  const [expandedItems, setExpandedItems] = useState([]);
62
61
  const [expandedSubItems, setExpandedSubItems] = useState([]);
63
62
  const handlePageClick = (pageId) => {
@@ -1 +1 @@
1
- {"version":3,"file":"Sidebar.js","sources":["../../../../src/components/Sidebar.tsx"],"sourcesContent":["'use client';\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":[],"mappings":";;;;;;;AA8BA;AACE;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEE;;AAEA;AACD;;;AAGA;AACF;AAED;AACE;AACA;AACA;AACA;AACA;AACA;AACE;AACD;AACF;AAED;AACE;;;AAGA;AACA;;AAEC;;;;AAIF;AAED;;;AAGE;AACA;AACA;AACA;AACA;AACA;AACD;;AASC;;;AAIA;;;;AAIA;AAEA;AACE;AACE;AACA;AACA;AACD;AACD;AACE;AACA;AACA;AACA;AACA;AACE;AACA;AACA;AACE;AACA;AACA;AACA;;;;AAIC;AACF;AACD;AACE;AACA;AACA;AACA;AACD;AACF;AACF;AACD;AACE;AACA;AACA;AACD;;AAGH;;AAEI;AACA;;;AAEA;;AAIJ;AAEA;AACE;AAGF;;AAOU;AACA;AACA;AACA;;AAED;AASK;AACA;;AAEA;AACA;;AAME;AACA;AACA;AACA;AACA;AACA;;AAmBF;AACA;;AAEA;AACA;AACD;AAUD;AACA;;AAEA;;AAUQ;AACE;;;;AAGE;;AAEF;;AAEJ;AASQ;AACA;AACD;AAyBO;AACA;AACA;AACA;AACA;;AAEC;AACD;;;;AAQE;AACD;AAOC;AACA;AACA;;AAEC;AACF;AAIG;AACA;AACA;AACA;;;AAYF;AAKM;AACA;AACA;AACA;;AAEC;AACD;;;;AAQE;AACD;;AAqB3C;;"}
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,4 +1,3 @@
1
- "use client";
2
1
  import { jsxs, jsx } from 'react/jsx-runtime';
3
2
  import { styled, Dialog, DialogTitle, IconButton, DialogContent } from '@mui/material';
4
3
  import { useTheme } from '../ThemeProvider.js';
@@ -30,7 +29,7 @@ const CloseButton = styled(IconButton)(({ theme }) => ({
30
29
  },
31
30
  }));
32
31
  const SimpleModal = ({ isOpen, onClose, title, children, }) => {
33
- const { theme } = useTheme();
32
+ const theme = useTheme();
34
33
  return (jsxs(StyledDialog, { open: isOpen, onClose: onClose, maxWidth: "sm", fullWidth: true, children: [jsxs(StyledDialogTitle, { children: [title, jsx(CloseButton, { onClick: onClose, "aria-label": "Close", children: jsx(CloseRounded, { sx: { fontSize: 20, color: theme.palette.dark.main } }) })] }), jsx(DialogContent, { sx: { p: 3 }, children: children })] }));
35
34
  };
36
35
 
@@ -1 +1 @@
1
- {"version":3,"file":"SimpleModal.js","sources":["../../../../src/components/SimpleModal.tsx"],"sourcesContent":["'use client';\n\nimport React from 'react';\nimport { Dialog, DialogTitle, DialogContent, IconButton, styled } from '@mui/material';\nimport { useTheme } from '../ThemeProvider';\nimport { CloseRounded } from '@mui/icons-material';\n\ninterface SimpleModalProps {\n isOpen: boolean;\n onClose: () => void;\n title: string;\n children: React.ReactNode;\n}\n\nconst StyledDialog = styled(Dialog)(({ theme }) => ({\n '& .MuiDialog-paper': {\n borderRadius: (typeof theme.shape.borderRadius === 'string'\n ? parseInt(theme.shape.borderRadius, 10)\n : theme.shape.borderRadius || 4) * 2,\n maxWidth: '448px',\n width: '100%',\n },\n}));\n\nconst StyledDialogTitle = styled(DialogTitle)(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n padding: theme.spacing(3),\n borderBottom: `1px solid ${theme.palette.divider}`,\n fontSize: '1.125rem',\n fontWeight: 600,\n color: theme.palette.dark.main,\n}));\n\nconst CloseButton = styled(IconButton)(({ theme }) => ({\n padding: theme.spacing(0.5),\n '&:hover': {\n backgroundColor: `${theme.palette.dark.main}0D`,\n },\n}));\n\nexport const SimpleModal: React.FC<SimpleModalProps> = ({\n isOpen,\n onClose,\n title,\n children,\n}) => {\n const { theme } = useTheme();\n\n return (\n <StyledDialog \n open={isOpen} \n onClose={onClose}\n maxWidth=\"sm\"\n fullWidth\n >\n <StyledDialogTitle>\n {title}\n <CloseButton onClick={onClose} aria-label=\"Close\">\n <CloseRounded sx={{fontSize:20, color:theme.palette.dark.main}} />\n </CloseButton>\n </StyledDialogTitle>\n\n <DialogContent sx={{ p: 3 }}>\n {children}\n </DialogContent>\n </StyledDialog>\n );\n};"],"names":[],"mappings":";;;;;;AAcA;AACE;;;;AAIE;AACA;AACD;AACF;AAED;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACD;AAED;AACE;AACA;;AAEC;AACF;AAEM;AAML;AAEA;AAmBF;;"}
1
+ {"version":3,"file":"SimpleModal.js","sources":["../../../../src/components/SimpleModal.tsx"],"sourcesContent":["\n\nimport React from 'react';\nimport { Dialog, DialogTitle, DialogContent, IconButton, styled } from '@mui/material';\nimport { useTheme } from '../ThemeProvider';\nimport { CloseRounded } from '@mui/icons-material';\n\ninterface SimpleModalProps {\n isOpen: boolean;\n onClose: () => void;\n title: string;\n children: React.ReactNode;\n}\n\nconst StyledDialog = styled(Dialog)(({ theme }) => ({\n '& .MuiDialog-paper': {\n borderRadius: (typeof theme.shape.borderRadius === 'string'\n ? parseInt(theme.shape.borderRadius, 10)\n : theme.shape.borderRadius || 4) * 2,\n maxWidth: '448px',\n width: '100%',\n },\n}));\n\nconst StyledDialogTitle = styled(DialogTitle)(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n padding: theme.spacing(3),\n borderBottom: `1px solid ${theme.palette.divider}`,\n fontSize: '1.125rem',\n fontWeight: 600,\n color: theme.palette.dark.main,\n}));\n\nconst CloseButton = styled(IconButton)(({ theme }) => ({\n padding: theme.spacing(0.5),\n '&:hover': {\n backgroundColor: `${theme.palette.dark.main}0D`,\n },\n}));\n\nexport const SimpleModal: React.FC<SimpleModalProps> = ({\n isOpen,\n onClose,\n title,\n children,\n}) => {\n const theme = useTheme();\n\n return (\n <StyledDialog \n open={isOpen} \n onClose={onClose}\n maxWidth=\"sm\"\n fullWidth\n >\n <StyledDialogTitle>\n {title}\n <CloseButton onClick={onClose} aria-label=\"Close\">\n <CloseRounded sx={{fontSize:20, color:theme.palette.dark.main}} />\n </CloseButton>\n </StyledDialogTitle>\n\n <DialogContent sx={{ p: 3 }}>\n {children}\n </DialogContent>\n </StyledDialog>\n );\n};"],"names":["_jsxs","_jsx"],"mappings":";;;;;AAcA,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM;AAClD,IAAA,oBAAoB,EAAE;QACpB,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,OAAO;AACjB,QAAA,KAAK,EAAE,MAAM;AACd,KAAA;AACF,CAAA,CAAC,CAAC;AAEH,MAAM,iBAAiB,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM;AAC5D,IAAA,OAAO,EAAE,MAAM;AACf,IAAA,UAAU,EAAE,QAAQ;AACpB,IAAA,cAAc,EAAE,eAAe;AAC/B,IAAA,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;AACzB,IAAA,YAAY,EAAE,CAAA,UAAA,EAAa,KAAK,CAAC,OAAO,CAAC,OAAO,CAAA,CAAE;AAClD,IAAA,QAAQ,EAAE,UAAU;AACpB,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI;AAC/B,CAAA,CAAC,CAAC;AAEH,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM;AACrD,IAAA,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;AAC3B,IAAA,SAAS,EAAE;QACT,eAAe,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAA,EAAA,CAAI;AAChD,KAAA;AACF,CAAA,CAAC,CAAC;AAEI,MAAM,WAAW,GAA+B,CAAC,EACtD,MAAM,EACN,OAAO,EACP,KAAK,EACL,QAAQ,GACT,KAAI;AACH,IAAA,MAAM,KAAK,GAAG,QAAQ,EAAE;AAExB,IAAA,QACEA,IAAA,CAAC,YAAY,EAAA,EACX,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAC,IAAI,EACb,SAAS,EAAA,IAAA,EAAA,QAAA,EAAA,CAETA,IAAA,CAAC,iBAAiB,EAAA,EAAA,QAAA,EAAA,CACf,KAAK,EACNC,GAAA,CAAC,WAAW,EAAA,EAAC,OAAO,EAAE,OAAO,EAAA,YAAA,EAAa,OAAO,EAAA,QAAA,EAC/CA,IAAC,YAAY,EAAA,EAAC,EAAE,EAAE,EAAC,QAAQ,EAAC,EAAE,EAAE,KAAK,EAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAC,EAAA,CAAI,EAAA,CACtD,CAAA,EAAA,CACI,EAEpBA,GAAA,CAAC,aAAa,EAAA,EAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAA,QAAA,EACxB,QAAQ,EAAA,CACK,CAAA,EAAA,CACH;AAEnB;;;;"}
@@ -1,4 +1,3 @@
1
- "use client";
2
1
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
3
2
  import { styled, Box, IconButton, Typography } from '@mui/material';
4
3
  import { Button } from './Button.js';
@@ -1 +1 @@
1
- {"version":3,"file":"StatusBar.js","sources":["../../../../src/components/StatusBar.tsx"],"sourcesContent":["'use client';\n\nimport React from 'react';\nimport { Box, Typography, IconButton, styled } from '@mui/material';\nimport { Button } from './Button';\nimport { ChevronRightRounded, PieChartRounded } from '@mui/icons-material';\n\ninterface StatusBarProps {\n itemCount: number;\n variant: 'actionstarted' | 'noaction';\n onTailorClick?: () => void;\n onNextClick?: () => void;\n}\n\nconst StatusBarContainer = styled(Box)(({ theme }) => ({\n width: '100%',\n backgroundColor: '#F5C98E',\n padding: theme.spacing(1.5, 3),\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n gap: theme.spacing(3),\n flexDirection: 'row',\n [theme.breakpoints.down('sm')]: {\n flexDirection: 'column',\n padding: theme.spacing(1.25, 2),\n },\n}));\n\nconst ContentWrapper = styled(Box)(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n gap: theme.spacing(1.5),\n flex: 1,\n minWidth: 0,\n justifyContent: 'flex-start',\n [theme.breakpoints.down('sm')]: {\n justifyContent: 'center',\n gap: theme.spacing(1),\n },\n}));\n\nconst NextButton = styled(IconButton)(({ theme }) => ({\n width: 40,\n height: 40,\n border: `2px solid rgba(77, 48, 25, 0.25)`,\n backgroundColor: '#fff',\n '&:hover': {\n backgroundColor: '#4D3019',\n color: '#fff',\n },\n [theme.breakpoints.down('sm')]: {\n width: 36,\n height: 36,\n },\n}));\n\nexport const StatusBar: React.FC<StatusBarProps> = ({\n itemCount,\n variant = 'actionstarted',\n onTailorClick,\n onNextClick\n}) => {\n const message = `There are ${itemCount} items that need attention.`;\n\n return (\n <StatusBarContainer>\n <ContentWrapper>\n <PieChartRounded \n sx={{\n fontSize: 24,\n color:\"#4D3019\",\n flexShrink: 0 ,\n }}\n />\n <Typography\n sx={{\n fontSize: { xs: '14px', sm: '15px', md: '16px' },\n color: '#4D3019',\n wordBreak: 'break-word',\n textAlign: { xs: 'center', sm: 'left' },\n }}\n >\n {variant === 'actionstarted' ? (\n <>\n <Box component=\"span\" sx={{ fontWeight: 700 }}>Incomplete.</Box> {message}\n </>\n ) : (\n <>\n <Box component=\"span\" sx={{ fontWeight: 700 }}>Not started.</Box> {message}\n </>\n )}\n </Typography>\n </ContentWrapper>\n {variant === 'actionstarted' ? (\n <Box sx={{ display: 'flex', gap: 1.5, flexShrink: 0 }}>\n <NextButton\n onClick={onNextClick}\n aria-label=\"Next\"\n >\n <ChevronRightRounded sx={{fontSize:20}} />\n </NextButton>\n </Box>\n ) : (\n <Box sx={{ flexShrink: 0 }}>\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={onTailorClick}\n >\n Tailor policies\n </Button>\n </Box>\n )}\n </StatusBarContainer>\n );\n};"],"names":[],"mappings":";;;;;;AAcA;AACE;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEE;;AAED;AACF;AAED;AACE;AACA;AACA;AACA;AACA;AACA;;AAEE;AACA;AACD;AACF;AAED;AACE;AACA;AACA;AACA;AACA;AACE;AACA;AACD;;AAEC;AACA;AACD;AACF;AAEM;AAML;;AAOU;AACA;AACA;AACH;AAIG;AACA;AACA;;AAED;AAmCX;;"}
1
+ {"version":3,"file":"StatusBar.js","sources":["../../../../src/components/StatusBar.tsx"],"sourcesContent":["\n\nimport React from 'react';\nimport { Box, Typography, IconButton, styled } from '@mui/material';\nimport { Button } from './Button';\nimport { ChevronRightRounded, PieChartRounded } from '@mui/icons-material';\n\ninterface StatusBarProps {\n itemCount: number;\n variant: 'actionstarted' | 'noaction';\n onTailorClick?: () => void;\n onNextClick?: () => void;\n}\n\nconst StatusBarContainer = styled(Box)(({ theme }) => ({\n width: '100%',\n backgroundColor: '#F5C98E',\n padding: theme.spacing(1.5, 3),\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n gap: theme.spacing(3),\n flexDirection: 'row',\n [theme.breakpoints.down('sm')]: {\n flexDirection: 'column',\n padding: theme.spacing(1.25, 2),\n },\n}));\n\nconst ContentWrapper = styled(Box)(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n gap: theme.spacing(1.5),\n flex: 1,\n minWidth: 0,\n justifyContent: 'flex-start',\n [theme.breakpoints.down('sm')]: {\n justifyContent: 'center',\n gap: theme.spacing(1),\n },\n}));\n\nconst NextButton = styled(IconButton)(({ theme }) => ({\n width: 40,\n height: 40,\n border: `2px solid rgba(77, 48, 25, 0.25)`,\n backgroundColor: '#fff',\n '&:hover': {\n backgroundColor: '#4D3019',\n color: '#fff',\n },\n [theme.breakpoints.down('sm')]: {\n width: 36,\n height: 36,\n },\n}));\n\nexport const StatusBar: React.FC<StatusBarProps> = ({\n itemCount,\n variant = 'actionstarted',\n onTailorClick,\n onNextClick\n}) => {\n const message = `There are ${itemCount} items that need attention.`;\n\n return (\n <StatusBarContainer>\n <ContentWrapper>\n <PieChartRounded \n sx={{\n fontSize: 24,\n color:\"#4D3019\",\n flexShrink: 0 ,\n }}\n />\n <Typography\n sx={{\n fontSize: { xs: '14px', sm: '15px', md: '16px' },\n color: '#4D3019',\n wordBreak: 'break-word',\n textAlign: { xs: 'center', sm: 'left' },\n }}\n >\n {variant === 'actionstarted' ? (\n <>\n <Box component=\"span\" sx={{ fontWeight: 700 }}>Incomplete.</Box> {message}\n </>\n ) : (\n <>\n <Box component=\"span\" sx={{ fontWeight: 700 }}>Not started.</Box> {message}\n </>\n )}\n </Typography>\n </ContentWrapper>\n {variant === 'actionstarted' ? (\n <Box sx={{ display: 'flex', gap: 1.5, flexShrink: 0 }}>\n <NextButton\n onClick={onNextClick}\n aria-label=\"Next\"\n >\n <ChevronRightRounded sx={{fontSize:20}} />\n </NextButton>\n </Box>\n ) : (\n <Box sx={{ flexShrink: 0 }}>\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={onTailorClick}\n >\n Tailor policies\n </Button>\n </Box>\n )}\n </StatusBarContainer>\n );\n};"],"names":["_jsxs","_jsx","_Fragment"],"mappings":"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"}
@@ -1,4 +1,3 @@
1
- "use client";
2
1
  import { jsx, jsxs } from 'react/jsx-runtime';
3
2
  import { styled, Box, Link, Typography } from '@mui/material';
4
3
 
@@ -1 +1 @@
1
- {"version":3,"file":"TableOfContents.js","sources":["../../../../src/components/TableOfContents.tsx"],"sourcesContent":["'use client';\n\nimport React from 'react';\nimport { Box, Typography, Link, styled } from '@mui/material';\n\ninterface Section {\n id: string;\n title: string;\n}\n\ninterface TableOfContentsProps {\n sections: Section[];\n activeSection?: string;\n}\n\nconst Container = styled(Box)(({ theme }) => ({\n width: '100%',\n [theme.breakpoints.up('md')]: {\n position: 'sticky',\n right: 0,\n top: 0,\n width: '224px',\n float: 'right',\n marginLeft: theme.spacing(1.5),\n marginBottom: 0,\n },\n [theme.breakpoints.up('lg')]: {\n width: '256px',\n marginLeft: theme.spacing(2),\n },\n marginBottom: theme.spacing(2),\n}));\n\nconst ContentBox = styled(Box)(({ theme }) => ({\n backgroundColor: '#FEFDF7',\n borderRadius: (typeof theme.shape.borderRadius === 'string'\n ? parseInt(theme.shape.borderRadius, 10)\n : theme.shape.borderRadius || 4) * 2,\n padding: theme.spacing(2.5),\n boxShadow: '0 1px 3px 0 rgba(0, 0, 0, 0.1)',\n [theme.breakpoints.up('md')]: {\n padding: theme.spacing(3),\n },\n}));\n\nconst NavLink = styled(Link)<{ isActive: boolean }>(({ theme, isActive }) => ({\n display: 'block',\n padding: theme.spacing(1, 2),\n fontSize: '0.875rem',\n textDecoration: 'none',\n color: '#4D3019',\n transition: 'background-color 0.2s',\n borderLeft: isActive ? '4px solid #FFC365' : '4px solid transparent',\n backgroundColor: isActive ? '#FFEDD1' : 'transparent',\n fontWeight: isActive ? 700 : 400,\n '&:hover': {\n backgroundColor: '#FFEDD1',\n },\n}));\n\nexport const TableOfContents: React.FC<TableOfContentsProps> = ({\n sections,\n activeSection = 'current-section',\n}) => {\n return (\n <Container>\n <ContentBox>\n <Typography\n variant=\"h6\"\n sx={{\n color: '#4D3019',\n fontWeight: 600,\n fontSize: '16px',\n mb: 3,\n }}\n >\n In this policy\n </Typography>\n <Box component=\"nav\" sx={{ display: 'flex', flexDirection: 'column', gap: 0.25 }}>\n {sections.map((section) => {\n const isActive = section.id === activeSection;\n return (\n <NavLink\n key={section.id}\n href={`#${section.id}`}\n isActive={isActive}\n >\n {section.title}\n </NavLink>\n );\n })}\n </Box>\n </ContentBox>\n </Container>\n );\n};"],"names":[],"mappings":";;;;AAeA;AACE;;AAEE;AACA;AACA;AACA;AACA;AACA;AACA;AACD;;AAEC;AACA;AACD;AACD;AACD;AAED;AACE;;;;AAIA;AACA;;AAEE;AACD;AACF;AAED;AACE;;AAEA;AACA;AACA;AACA;;;;AAIA;AACE;AACD;AACF;AAEM;AAIL;AAMU;AACA;AACA;AACA;AACD;AAMC;;AAUF;AAKV;;"}
1
+ {"version":3,"file":"TableOfContents.js","sources":["../../../../src/components/TableOfContents.tsx"],"sourcesContent":["\n\nimport React from 'react';\nimport { Box, Typography, Link, styled } from '@mui/material';\n\ninterface Section {\n id: string;\n title: string;\n}\n\ninterface TableOfContentsProps {\n sections: Section[];\n activeSection?: string;\n}\n\nconst Container = styled(Box)(({ theme }) => ({\n width: '100%',\n [theme.breakpoints.up('md')]: {\n position: 'sticky',\n right: 0,\n top: 0,\n width: '224px',\n float: 'right',\n marginLeft: theme.spacing(1.5),\n marginBottom: 0,\n },\n [theme.breakpoints.up('lg')]: {\n width: '256px',\n marginLeft: theme.spacing(2),\n },\n marginBottom: theme.spacing(2),\n}));\n\nconst ContentBox = styled(Box)(({ theme }) => ({\n backgroundColor: '#FEFDF7',\n borderRadius: (typeof theme.shape.borderRadius === 'string'\n ? parseInt(theme.shape.borderRadius, 10)\n : theme.shape.borderRadius || 4) * 2,\n padding: theme.spacing(2.5),\n boxShadow: '0 1px 3px 0 rgba(0, 0, 0, 0.1)',\n [theme.breakpoints.up('md')]: {\n padding: theme.spacing(3),\n },\n}));\n\nconst NavLink = styled(Link)<{ isActive: boolean }>(({ theme, isActive }) => ({\n display: 'block',\n padding: theme.spacing(1, 2),\n fontSize: '0.875rem',\n textDecoration: 'none',\n color: '#4D3019',\n transition: 'background-color 0.2s',\n borderLeft: isActive ? '4px solid #FFC365' : '4px solid transparent',\n backgroundColor: isActive ? '#FFEDD1' : 'transparent',\n fontWeight: isActive ? 700 : 400,\n '&:hover': {\n backgroundColor: '#FFEDD1',\n },\n}));\n\nexport const TableOfContents: React.FC<TableOfContentsProps> = ({\n sections,\n activeSection = 'current-section',\n}) => {\n return (\n <Container>\n <ContentBox>\n <Typography\n variant=\"h6\"\n sx={{\n color: '#4D3019',\n fontWeight: 600,\n fontSize: '16px',\n mb: 3,\n }}\n >\n In this policy\n </Typography>\n <Box component=\"nav\" sx={{ display: 'flex', flexDirection: 'column', gap: 0.25 }}>\n {sections.map((section) => {\n const isActive = section.id === activeSection;\n return (\n <NavLink\n key={section.id}\n href={`#${section.id}`}\n isActive={isActive}\n >\n {section.title}\n </NavLink>\n );\n })}\n </Box>\n </ContentBox>\n </Container>\n );\n};"],"names":["_jsx","_jsxs"],"mappings":"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"}
@@ -1,4 +1,3 @@
1
- "use client";
2
1
  import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
3
2
  import { useState } from 'react';
4
3
  import { styled, Box, Button, Collapse } from '@mui/material';
@@ -1 +1 @@
1
- {"version":3,"file":"Tabs.js","sources":["../../../../src/components/Tabs.tsx"],"sourcesContent":["'use client';\n\nimport React, { useState } from 'react';\nimport { Box, Button, Collapse, styled } from '@mui/material';\nimport { ExpandMoreRounded } from '@mui/icons-material';\n\ninterface Tab {\n id: string;\n label: string;\n content: React.ReactNode;\n}\n\ninterface TabsProps {\n tabs: Tab[];\n defaultTab?: string;\n}\n\nconst TabsContainer = styled(Box)({\n display: 'none',\n '@media (min-width: 900px)': {\n display: 'block',\n },\n});\n\nconst TabButtonsWrapper = styled(Box)({\n display: 'flex',\n gap: '4px',\n backgroundColor: '#FDFCEE',\n});\n\nconst TabButton = styled(Button)<{ isActive: boolean }>(({ theme, isActive }) => ({\n padding: theme.spacing(2, 3),\n fontSize: '16px',\n fontWeight: 500,\n textTransform: 'none',\n color: isActive ? '#4D3019' : '#826E5C',\n backgroundColor: isActive ? theme.palette.custom?.tabBackgroundColor || theme.palette.accent.main : 'transparent',\n borderRadius: 0,\n position: 'relative',\n minWidth: 'auto',\n '&:hover': {\n backgroundColor: isActive ? theme.palette.custom?.tabBackgroundColor || theme.palette.accent.main : 'rgba(77, 48, 25, 0.05)',\n color: '#4D3019',\n },\n '&::after': isActive ? {\n content: '\"\"',\n position: 'absolute',\n bottom: 0,\n left: 0,\n right: 0,\n height: '4px',\n backgroundColor: theme.palette.primary.main,\n } : {},\n}));\n\nconst TabContent = styled(Box)(({ theme }) => ({\n padding: theme.spacing(3),\n color: '#4D3019',\n backgroundColor: theme.palette.custom?.tabBackgroundColor || theme.palette.accent.main,\n}));\n\nconst MobileContainer = styled(Box)({\n backgroundColor: '#FDFCEE',\n '@media (min-width: 900px)': {\n display: 'none',\n },\n});\n\nconst MobileTabButton = styled(Button)<{ isExpanded: boolean }>(({ theme, isExpanded }) => ({\n width: '100%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n padding: theme.spacing(2, 2),\n textAlign: 'left',\n textTransform: 'none',\n borderRadius: 0,\n backgroundColor: isExpanded ? theme.palette.custom?.tabBackgroundColor || theme.palette.accent.main : 'transparent',\n '&:hover': {\n backgroundColor: isExpanded ? theme.palette.custom?.tabBackgroundColor || theme.palette.accent.main : 'rgba(77, 48, 25, 0.05)',\n },\n}));\n\nconst MobileTabContent = styled(Box)(({ theme }) => ({\n padding: theme.spacing(2, 2, 3, 2),\n color: '#4D3019',\n backgroundColor: theme.palette.custom?.tabBackgroundColor || theme.palette.accent.main,\n}));\n\nexport const Tabs: React.FC<TabsProps> = ({ tabs, defaultTab }) => {\n const [activeTab, setActiveTab] = useState(defaultTab || tabs[0]?.id);\n const [mobileExpandedTab, setMobileExpandedTab] = useState<string | null>(null);\n\n const activeTabContent = tabs.find(tab => tab.id === activeTab)?.content;\n\n const handleMobileTabClick = (tabId: string) => {\n setActiveTab(tabId);\n setMobileExpandedTab(mobileExpandedTab === tabId ? null : tabId);\n };\n\n return (\n <>\n {/* Desktop View */}\n <TabsContainer>\n <TabButtonsWrapper>\n {tabs.map((tab) => (\n <TabButton\n key={tab.id}\n onClick={() => setActiveTab(tab.id)}\n isActive={activeTab === tab.id}\n >\n {tab.label}\n </TabButton>\n ))}\n </TabButtonsWrapper>\n <TabContent>\n {activeTabContent}\n </TabContent>\n </TabsContainer>\n\n {/* Mobile View - Accordion */}\n <MobileContainer>\n {tabs.map((tab, index) => (\n <Box\n key={tab.id}\n sx={{\n borderTop: index !== 0 ? '2px solid #e5e7eb' : 'none',\n }}\n >\n <MobileTabButton\n onClick={() => handleMobileTabClick(tab.id)}\n isExpanded={mobileExpandedTab === tab.id}\n >\n <Box\n component=\"span\"\n sx={{\n fontSize: '16px',\n fontWeight: 500,\n color: activeTab === tab.id ? '#4D3019' : '#826E5C',\n }}\n >\n {tab.label}\n </Box>\n <ExpandMoreRounded\n sx={{\n fontSize: 20,\n color: activeTab === tab.id ? '#4D3019' : '#826E5C',\n transform: mobileExpandedTab === tab.id ? 'rotate(180deg)' : 'rotate(0deg)',\n transition: 'transform 0.2s',\n }}\n />\n </MobileTabButton>\n <Collapse in={mobileExpandedTab === tab.id}>\n <MobileTabContent>\n {tab.content}\n </MobileTabContent>\n </Collapse>\n </Box>\n ))}\n </MobileContainer>\n </>\n );\n};"],"names":[],"mappings":";;;;;;AAiBA;AACE;AACA;AACE;AACD;AACF;AAED;AACE;AACA;AACA;AACD;AAED;;AAEE;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEE;AACD;AACD;AACE;AACA;AACA;AACA;AACA;AACA;AACA;;AAEH;AAED;AACE;AACA;AACA;AACD;AAED;AACE;AACA;AACE;AACD;AACF;AAED;AACE;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEC;AACF;AAED;AACE;AACA;AACA;AACD;AAEM;AACL;;AAGA;AAEA;;AAEE;AACF;AAEA;;AA2BW;AASK;AACA;AACA;;AAOA;AACA;AACA;AACA;AACD;AAajB;;"}
1
+ {"version":3,"file":"Tabs.js","sources":["../../../../src/components/Tabs.tsx"],"sourcesContent":["\n\nimport React, { useState } from 'react';\nimport { Box, Button, Collapse, styled } from '@mui/material';\nimport { ExpandMoreRounded } from '@mui/icons-material';\n\ninterface Tab {\n id: string;\n label: string;\n content: React.ReactNode;\n}\n\ninterface TabsProps {\n tabs: Tab[];\n defaultTab?: string;\n}\n\nconst TabsContainer = styled(Box)({\n display: 'none',\n '@media (min-width: 900px)': {\n display: 'block',\n },\n});\n\nconst TabButtonsWrapper = styled(Box)({\n display: 'flex',\n gap: '4px',\n backgroundColor: '#FDFCEE',\n});\n\nconst TabButton = styled(Button)<{ isActive: boolean }>(({ theme, isActive }) => ({\n padding: theme.spacing(2, 3),\n fontSize: '16px',\n fontWeight: 500,\n textTransform: 'none',\n color: isActive ? '#4D3019' : '#826E5C',\n backgroundColor: isActive ? theme.palette.custom?.tabBackgroundColor || theme.palette.accent.main : 'transparent',\n borderRadius: 0,\n position: 'relative',\n minWidth: 'auto',\n '&:hover': {\n backgroundColor: isActive ? theme.palette.custom?.tabBackgroundColor || theme.palette.accent.main : 'rgba(77, 48, 25, 0.05)',\n color: '#4D3019',\n },\n '&::after': isActive ? {\n content: '\"\"',\n position: 'absolute',\n bottom: 0,\n left: 0,\n right: 0,\n height: '4px',\n backgroundColor: theme.palette.primary.main,\n } : {},\n}));\n\nconst TabContent = styled(Box)(({ theme }) => ({\n padding: theme.spacing(3),\n color: '#4D3019',\n backgroundColor: theme.palette.custom?.tabBackgroundColor || theme.palette.accent.main,\n}));\n\nconst MobileContainer = styled(Box)({\n backgroundColor: '#FDFCEE',\n '@media (min-width: 900px)': {\n display: 'none',\n },\n});\n\nconst MobileTabButton = styled(Button)<{ isExpanded: boolean }>(({ theme, isExpanded }) => ({\n width: '100%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n padding: theme.spacing(2, 2),\n textAlign: 'left',\n textTransform: 'none',\n borderRadius: 0,\n backgroundColor: isExpanded ? theme.palette.custom?.tabBackgroundColor || theme.palette.accent.main : 'transparent',\n '&:hover': {\n backgroundColor: isExpanded ? theme.palette.custom?.tabBackgroundColor || theme.palette.accent.main : 'rgba(77, 48, 25, 0.05)',\n },\n}));\n\nconst MobileTabContent = styled(Box)(({ theme }) => ({\n padding: theme.spacing(2, 2, 3, 2),\n color: '#4D3019',\n backgroundColor: theme.palette.custom?.tabBackgroundColor || theme.palette.accent.main,\n}));\n\nexport const Tabs: React.FC<TabsProps> = ({ tabs, defaultTab }) => {\n const [activeTab, setActiveTab] = useState(defaultTab || tabs[0]?.id);\n const [mobileExpandedTab, setMobileExpandedTab] = useState<string | null>(null);\n\n const activeTabContent = tabs.find(tab => tab.id === activeTab)?.content;\n\n const handleMobileTabClick = (tabId: string) => {\n setActiveTab(tabId);\n setMobileExpandedTab(mobileExpandedTab === tabId ? null : tabId);\n };\n\n return (\n <>\n {/* Desktop View */}\n <TabsContainer>\n <TabButtonsWrapper>\n {tabs.map((tab) => (\n <TabButton\n key={tab.id}\n onClick={() => setActiveTab(tab.id)}\n isActive={activeTab === tab.id}\n >\n {tab.label}\n </TabButton>\n ))}\n </TabButtonsWrapper>\n <TabContent>\n {activeTabContent}\n </TabContent>\n </TabsContainer>\n\n {/* Mobile View - Accordion */}\n <MobileContainer>\n {tabs.map((tab, index) => (\n <Box\n key={tab.id}\n sx={{\n borderTop: index !== 0 ? '2px solid #e5e7eb' : 'none',\n }}\n >\n <MobileTabButton\n onClick={() => handleMobileTabClick(tab.id)}\n isExpanded={mobileExpandedTab === tab.id}\n >\n <Box\n component=\"span\"\n sx={{\n fontSize: '16px',\n fontWeight: 500,\n color: activeTab === tab.id ? '#4D3019' : '#826E5C',\n }}\n >\n {tab.label}\n </Box>\n <ExpandMoreRounded\n sx={{\n fontSize: 20,\n color: activeTab === tab.id ? '#4D3019' : '#826E5C',\n transform: mobileExpandedTab === tab.id ? 'rotate(180deg)' : 'rotate(0deg)',\n transition: 'transform 0.2s',\n }}\n />\n </MobileTabButton>\n <Collapse in={mobileExpandedTab === tab.id}>\n <MobileTabContent>\n {tab.content}\n </MobileTabContent>\n </Collapse>\n </Box>\n ))}\n </MobileContainer>\n </>\n );\n};"],"names":["_jsxs","_Fragment","_jsx"],"mappings":"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"}
@@ -1,6 +1,5 @@
1
- "use client";
2
1
  import { jsxs, jsx } from 'react/jsx-runtime';
3
- import React__default, { useState } from 'react';
2
+ import React, { useState } from 'react';
4
3
  import { styled, Box, Typography } from '@mui/material';
5
4
 
6
5
  const ToggleButton = styled(Box)(({ theme }) => ({
@@ -44,7 +43,7 @@ const Toggle = ({ label = 'Admin view', checked = false, onChange, }) => {
44
43
  setIsChecked(newValue);
45
44
  onChange?.(newValue);
46
45
  };
47
- React__default.useEffect(() => {
46
+ React.useEffect(() => {
48
47
  setIsChecked(checked);
49
48
  }, [checked]);
50
49
  return (jsxs(ToggleButton, { onClick: handleToggle, children: [jsx(ToggleTrack, { isChecked: isChecked, children: jsx(ToggleThumb, { isChecked: isChecked }) }), jsx(Typography, { sx: {
@@ -1 +1 @@
1
- {"version":3,"file":"Toggle.js","sources":["../../../../src/components/Toggle.tsx"],"sourcesContent":["'use client';\n\nimport React, { useState } from 'react';\nimport { Box, Typography, styled } from '@mui/material';\n\ninterface ToggleProps {\n label?: string;\n checked?: boolean;\n onChange?: (checked: boolean) => void;\n}\n\nconst ToggleButton = styled(Box)(({ theme }) => ({\n display: 'inline-flex',\n alignItems: 'center',\n gap: theme.spacing(1.5),\n padding: theme.spacing(0.75, 1.5),\n borderRadius: (typeof theme.shape.borderRadius === 'string'\n ? parseInt(theme.shape.borderRadius, 10)\n : theme.shape.borderRadius || 4) * 2,\n backgroundColor: '#fff',\n border: `1px solid ${theme.palette.dark.main}33`,\n cursor: 'pointer',\n transition: 'border-color 0.2s',\n '&:hover': {\n borderColor: `${theme.palette.dark.main}4D`,\n },\n}));\n\nconst ToggleTrack = styled(Box)<{ isChecked: boolean }>(({ theme, isChecked }) => ({\n position: 'relative',\n width: '56px',\n height: '32px',\n borderRadius: '9999px',\n backgroundColor: isChecked ? theme.palette.secondary.main : '#e5e7eb',\n transition: 'background-color 0.2s',\n}));\n\nconst ToggleThumb = styled(Box)<{ isChecked: boolean }>(({ isChecked }) => ({\n position: 'absolute',\n top: '4px',\n width: '24px',\n height: '24px',\n backgroundColor: '#fff',\n borderRadius: '9999px',\n transition: 'transform 0.2s',\n transform: isChecked ? 'translateX(28px)' : 'translateX(4px)',\n}));\n\nexport const Toggle: React.FC<ToggleProps> = ({\n label = 'Admin view',\n checked = false,\n onChange,\n}) => {\n const [isChecked, setIsChecked] = useState(checked);\n\n const handleToggle = () => {\n const newValue = !isChecked;\n setIsChecked(newValue);\n onChange?.(newValue);\n };\n\n React.useEffect(() => {\n setIsChecked(checked);\n }, [checked]);\n\n return (\n <ToggleButton onClick={handleToggle}>\n <ToggleTrack isChecked={isChecked}>\n <ToggleThumb isChecked={isChecked} />\n </ToggleTrack>\n <Typography\n sx={{\n color: '#4D3019',\n fontWeight: 500,\n fontSize: '0.875rem',\n }}\n >\n {label}\n </Typography>\n </ToggleButton>\n );\n};"],"names":[],"mappings":";;;;;AAWA;AACE;AACA;AACA;;;;;AAKA;;AAEA;AACA;AACA;;AAEC;AACF;AAED;AACE;AACA;AACA;AACA;AACA;AACA;AACD;AAED;AACE;AACA;AACA;AACA;AACA;AACA;AACA;;AAED;AAEM;;;AAQH;;AAEA;AACF;AAEA;;AAEA;AAEA;AAOQ;AACA;AACA;AACD;AAMT;;"}
1
+ {"version":3,"file":"Toggle.js","sources":["../../../../src/components/Toggle.tsx"],"sourcesContent":["\n\nimport React, { useState } from 'react';\nimport { Box, Typography, styled } from '@mui/material';\n\ninterface ToggleProps {\n label?: string;\n checked?: boolean;\n onChange?: (checked: boolean) => void;\n}\n\nconst ToggleButton = styled(Box)(({ theme }) => ({\n display: 'inline-flex',\n alignItems: 'center',\n gap: theme.spacing(1.5),\n padding: theme.spacing(0.75, 1.5),\n borderRadius: (typeof theme.shape.borderRadius === 'string'\n ? parseInt(theme.shape.borderRadius, 10)\n : theme.shape.borderRadius || 4) * 2,\n backgroundColor: '#fff',\n border: `1px solid ${theme.palette.dark.main}33`,\n cursor: 'pointer',\n transition: 'border-color 0.2s',\n '&:hover': {\n borderColor: `${theme.palette.dark.main}4D`,\n },\n}));\n\nconst ToggleTrack = styled(Box)<{ isChecked: boolean }>(({ theme, isChecked }) => ({\n position: 'relative',\n width: '56px',\n height: '32px',\n borderRadius: '9999px',\n backgroundColor: isChecked ? theme.palette.secondary.main : '#e5e7eb',\n transition: 'background-color 0.2s',\n}));\n\nconst ToggleThumb = styled(Box)<{ isChecked: boolean }>(({ isChecked }) => ({\n position: 'absolute',\n top: '4px',\n width: '24px',\n height: '24px',\n backgroundColor: '#fff',\n borderRadius: '9999px',\n transition: 'transform 0.2s',\n transform: isChecked ? 'translateX(28px)' : 'translateX(4px)',\n}));\n\nexport const Toggle: React.FC<ToggleProps> = ({\n label = 'Admin view',\n checked = false,\n onChange,\n}) => {\n const [isChecked, setIsChecked] = useState(checked);\n\n const handleToggle = () => {\n const newValue = !isChecked;\n setIsChecked(newValue);\n onChange?.(newValue);\n };\n\n React.useEffect(() => {\n setIsChecked(checked);\n }, [checked]);\n\n return (\n <ToggleButton onClick={handleToggle}>\n <ToggleTrack isChecked={isChecked}>\n <ToggleThumb isChecked={isChecked} />\n </ToggleTrack>\n <Typography\n sx={{\n color: '#4D3019',\n fontWeight: 500,\n fontSize: '0.875rem',\n }}\n >\n {label}\n </Typography>\n </ToggleButton>\n );\n};"],"names":["_jsxs","_jsx"],"mappings":"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"}
@@ -1,6 +1,5 @@
1
1
  import './theme-types';
2
2
  export { ThemeProvider, useTheme } from './ThemeProvider';
3
- export type { ThemeKey } from './ThemeProvider';
4
3
  export { Button } from './components/Button';
5
4
  export { Input } from './components/Input';
6
5
  export { Card } from './components/Card';
package/dist/esm/index.js CHANGED
@@ -1,4 +1,3 @@
1
- "use client";
2
1
  import '@mui/material/styles';
3
2
  export { ThemeProvider, useTheme } from './ThemeProvider.js';
4
3
  export { Button } from './components/Button.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ece-docs-components",
3
- "version": "1.0.7",
3
+ "version": "1.0.8",
4
4
  "type": "module",
5
5
  "main": "./dist/cjs/index.js",
6
6
  "module": "./dist/esm/index.js",