ece-docs-components 1.0.20 → 1.0.22

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.
@@ -3,6 +3,7 @@
3
3
  var jsxRuntime = require('react/jsx-runtime');
4
4
  var styles = require('@mui/material/styles');
5
5
  var material = require('@mui/material');
6
+ var reactToastify = require('react-toastify');
6
7
 
7
8
  const theme = styles.createTheme({
8
9
  palette: {
@@ -225,7 +226,7 @@ const theme = styles.createTheme({
225
226
  appName: 'ECE Docs',
226
227
  });
227
228
  const ThemeProvider = ({ children }) => {
228
- return (jsxRuntime.jsxs(styles.ThemeProvider, { theme: theme, children: [jsxRuntime.jsx(material.CssBaseline, {}), children] }));
229
+ return (jsxRuntime.jsxs(styles.ThemeProvider, { theme: theme, children: [jsxRuntime.jsx(material.CssBaseline, {}), children, jsxRuntime.jsx(reactToastify.ToastContainer, {})] }));
229
230
  };
230
231
  const useTheme = () => {
231
232
  return theme;
@@ -1 +1 @@
1
- {"version":3,"file":"ThemeProvider.js","sources":["../../../src/ThemeProvider.tsx"],"sourcesContent":["import { createTheme, ThemeProvider as MuiThemeProvider } from '@mui/material/styles';\r\nimport { CssBaseline } from '@mui/material';\r\nimport * as React from 'react';\r\nimport './theme-types';\r\n\r\n\r\nconst theme = createTheme({\r\n palette: {\r\n mode: 'light',\r\n primary: {\r\n main: '#AD46FF',\r\n light: '#AD46FF',\r\n dark: '#AD46FF',\r\n contrastText: '#FFFFFF',\r\n },\r\n secondary: {\r\n main: '#D79AFC',\r\n light: '#D79AFC',\r\n dark: '#D79AFC',\r\n contrastText: '#FFFFFF',\r\n },\r\n error: {\r\n main: '#F56B6B',\r\n light: '#F56B6B',\r\n dark: '#F56B6B',\r\n contrastText: '#FFFFFF',\r\n },\r\n warning: {\r\n main: '#F5D76E',\r\n light: '#F5D76E',\r\n dark: '#F5D76E',\r\n contrastText: '#FFFBFF',\r\n },\r\n info: {\r\n main: '#F5A623',\r\n light: '#F5A623',\r\n dark: '#F5A623',\r\n contrastText: '#FFFFFF',\r\n },\r\n success: {\r\n main: '#A3D977',\r\n light: '#A3D977',\r\n dark: '#A3D977',\r\n contrastText: '#FFFFFF',\r\n },\r\n background: {\r\n default: '#FDFCEE',\r\n paper: '#FEFDF7',\r\n },\r\n text: {\r\n primary: '#4D3019',\r\n secondary: '#826E5C',\r\n disabled: '#93908F',\r\n },\r\n divider: '#C6C7C0',\r\n accent: {\r\n main: '#FFEDD1',\r\n },\r\n dark: {\r\n main: '#4D3019',\r\n },\r\n light: {\r\n main: '#FEFDF7',\r\n },\r\n markedRead: {\r\n main: '#A3D977',\r\n },\r\n custom: {\r\n iconColor: '#ebc7ff',\r\n primaryButtonTextColor: '#FFFFFF',\r\n readByBackgroundColor: '#ebc7ff',\r\n stepIndicatorTextColor: '#FFFFFF',\r\n markAsReadBackgroundColor: '#ebc7ff',\r\n tabBackgroundColor: '#F8F0FC',\r\n },\r\n },\r\n typography: {\r\n fontFamily: ['Inter', '-apple-system', 'BlinkMacSystemFont', 'Segoe UI', 'Roboto', 'sans-serif'].join(','),\r\n h1: {\r\n color: '#4D3019',\r\n fontWeight: 700,\r\n fontSize: '2.5rem',\r\n lineHeight: 1.2,\r\n },\r\n h2: {\r\n color: '#4D3019',\r\n fontWeight: 700,\r\n fontSize: '2rem',\r\n lineHeight: 1.3,\r\n },\r\n h3: {\r\n color: '#4D3019',\r\n fontWeight: 600,\r\n fontSize: '1.75rem',\r\n lineHeight: 1.3,\r\n },\r\n h4: {\r\n color: '#4D3019',\r\n fontWeight: 600,\r\n fontSize: '1.5rem',\r\n lineHeight: 1.4,\r\n },\r\n h5: {\r\n color: '#4D3019',\r\n fontWeight: 600,\r\n fontSize: '1.25rem',\r\n lineHeight: 1.4,\r\n },\r\n h6: {\r\n color: '#4D3019',\r\n fontWeight: 600,\r\n fontSize: '1rem',\r\n lineHeight: 1.4,\r\n },\r\n body1: {\r\n color: '#4D3019',\r\n fontWeight: 400,\r\n fontSize: '1rem',\r\n lineHeight: 1.5,\r\n },\r\n body2: {\r\n color: '#826E5C',\r\n fontWeight: 400,\r\n fontSize: '0.875rem',\r\n lineHeight: 1.5,\r\n },\r\n subtitle1: {\r\n color: '#4D3019',\r\n fontWeight: 500,\r\n fontSize: '1rem',\r\n lineHeight: 1.5,\r\n },\r\n subtitle2: {\r\n color: '#826E5C',\r\n fontWeight: 500,\r\n fontSize: '0.875rem',\r\n lineHeight: 1.5,\r\n },\r\n button: {\r\n color: '#4D3019',\r\n fontWeight: 500,\r\n fontSize: '0.875rem',\r\n lineHeight: 1.75,\r\n textTransform: 'none',\r\n },\r\n caption: {\r\n color: '#826E5C',\r\n fontWeight: 400,\r\n fontSize: '0.75rem',\r\n lineHeight: 1.66,\r\n },\r\n overline: {\r\n color: '#826E5C',\r\n fontWeight: 500,\r\n fontSize: '0.75rem',\r\n lineHeight: 2.66,\r\n textTransform: 'uppercase',\r\n letterSpacing: '0.08em',\r\n },\r\n },\r\n shape: {\r\n borderRadius: 4,\r\n },\r\n breakpoints: {\r\n values: {\r\n xs: 320,\r\n sm: 640,\r\n md: 768,\r\n lg: 1024,\r\n xl: 1280,\r\n },\r\n },\r\n components: {\r\n MuiTypography: {\r\n defaultProps: {\r\n variantMapping: {\r\n h1: 'h1',\r\n h2: 'h2',\r\n h3: 'h3',\r\n h4: 'h4',\r\n h5: 'h5',\r\n h6: 'h6',\r\n subtitle1: 'p',\r\n subtitle2: 'p',\r\n body1: 'p',\r\n body2: 'p',\r\n },\r\n },\r\n },\r\n MuiCssBaseline: {\r\n styleOverrides: {\r\n body: {\r\n WebkitFontSmoothing: 'antialiased',\r\n MozOsxFontSmoothing: 'grayscale',\r\n backgroundColor: '#FDFCEE',\r\n color: '#4D3019',\r\n },\r\n 'input[type=\"checkbox\"], input[type=\"radio\"]': {\r\n accentColor: '#D79AFC',\r\n },\r\n 'h1, h2, h3, h4, h5, h6': {\r\n fontWeight: 'inherit !important',\r\n },\r\n '.MuiTypography-h1': {\r\n fontWeight: '700 !important',\r\n },\r\n '.MuiTypography-h2': {\r\n fontWeight: '700 !important',\r\n },\r\n '.MuiTypography-h3': {\r\n fontWeight: '600 !important',\r\n },\r\n '.MuiTypography-h4': {\r\n fontWeight: '600 !important',\r\n },\r\n '.MuiTypography-h5': {\r\n fontWeight: '600 !important',\r\n },\r\n '.MuiTypography-h6': {\r\n fontWeight: '600 !important',\r\n },\r\n },\r\n },\r\n },\r\n appName: 'ECE Docs',\r\n});\r\n\r\n\r\nexport const ThemeProvider: React.FC<{ children: React.ReactNode }> = ({ children }) => {\r\n return (\r\n <MuiThemeProvider theme={theme}>\r\n <CssBaseline />\r\n {children}\r\n </MuiThemeProvider>\r\n );\r\n};\r\n\r\n\r\nexport const useTheme = () => {\r\n return theme;\r\n};\r\n"],"names":["createTheme","_jsxs","MuiThemeProvider","_jsx","CssBaseline"],"mappings":"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"}
1
+ {"version":3,"file":"ThemeProvider.js","sources":["../../../src/ThemeProvider.tsx"],"sourcesContent":["import { createTheme, ThemeProvider as MuiThemeProvider } from '@mui/material/styles';\r\nimport { CssBaseline } from '@mui/material';\r\nimport * as React from 'react';\r\nimport './theme-types';\r\nimport { ToastContainer } from 'react-toastify';\r\n\r\nconst theme = createTheme({\r\n palette: {\r\n mode: 'light',\r\n primary: {\r\n main: '#AD46FF',\r\n light: '#AD46FF',\r\n dark: '#AD46FF',\r\n contrastText: '#FFFFFF',\r\n },\r\n secondary: {\r\n main: '#D79AFC',\r\n light: '#D79AFC',\r\n dark: '#D79AFC',\r\n contrastText: '#FFFFFF',\r\n },\r\n error: {\r\n main: '#F56B6B',\r\n light: '#F56B6B',\r\n dark: '#F56B6B',\r\n contrastText: '#FFFFFF',\r\n },\r\n warning: {\r\n main: '#F5D76E',\r\n light: '#F5D76E',\r\n dark: '#F5D76E',\r\n contrastText: '#FFFBFF',\r\n },\r\n info: {\r\n main: '#F5A623',\r\n light: '#F5A623',\r\n dark: '#F5A623',\r\n contrastText: '#FFFFFF',\r\n },\r\n success: {\r\n main: '#A3D977',\r\n light: '#A3D977',\r\n dark: '#A3D977',\r\n contrastText: '#FFFFFF',\r\n },\r\n background: {\r\n default: '#FDFCEE',\r\n paper: '#FEFDF7',\r\n },\r\n text: {\r\n primary: '#4D3019',\r\n secondary: '#826E5C',\r\n disabled: '#93908F',\r\n },\r\n divider: '#C6C7C0',\r\n accent: {\r\n main: '#FFEDD1',\r\n },\r\n dark: {\r\n main: '#4D3019',\r\n },\r\n light: {\r\n main: '#FEFDF7',\r\n },\r\n markedRead: {\r\n main: '#A3D977',\r\n },\r\n custom: {\r\n iconColor: '#ebc7ff',\r\n primaryButtonTextColor: '#FFFFFF',\r\n readByBackgroundColor: '#ebc7ff',\r\n stepIndicatorTextColor: '#FFFFFF',\r\n markAsReadBackgroundColor: '#ebc7ff',\r\n tabBackgroundColor: '#F8F0FC',\r\n },\r\n },\r\n typography: {\r\n fontFamily: ['Inter', '-apple-system', 'BlinkMacSystemFont', 'Segoe UI', 'Roboto', 'sans-serif'].join(','),\r\n h1: {\r\n color: '#4D3019',\r\n fontWeight: 700,\r\n fontSize: '2.5rem',\r\n lineHeight: 1.2,\r\n },\r\n h2: {\r\n color: '#4D3019',\r\n fontWeight: 700,\r\n fontSize: '2rem',\r\n lineHeight: 1.3,\r\n },\r\n h3: {\r\n color: '#4D3019',\r\n fontWeight: 600,\r\n fontSize: '1.75rem',\r\n lineHeight: 1.3,\r\n },\r\n h4: {\r\n color: '#4D3019',\r\n fontWeight: 600,\r\n fontSize: '1.5rem',\r\n lineHeight: 1.4,\r\n },\r\n h5: {\r\n color: '#4D3019',\r\n fontWeight: 600,\r\n fontSize: '1.25rem',\r\n lineHeight: 1.4,\r\n },\r\n h6: {\r\n color: '#4D3019',\r\n fontWeight: 600,\r\n fontSize: '1rem',\r\n lineHeight: 1.4,\r\n },\r\n body1: {\r\n color: '#4D3019',\r\n fontWeight: 400,\r\n fontSize: '1rem',\r\n lineHeight: 1.5,\r\n },\r\n body2: {\r\n color: '#826E5C',\r\n fontWeight: 400,\r\n fontSize: '0.875rem',\r\n lineHeight: 1.5,\r\n },\r\n subtitle1: {\r\n color: '#4D3019',\r\n fontWeight: 500,\r\n fontSize: '1rem',\r\n lineHeight: 1.5,\r\n },\r\n subtitle2: {\r\n color: '#826E5C',\r\n fontWeight: 500,\r\n fontSize: '0.875rem',\r\n lineHeight: 1.5,\r\n },\r\n button: {\r\n color: '#4D3019',\r\n fontWeight: 500,\r\n fontSize: '0.875rem',\r\n lineHeight: 1.75,\r\n textTransform: 'none',\r\n },\r\n caption: {\r\n color: '#826E5C',\r\n fontWeight: 400,\r\n fontSize: '0.75rem',\r\n lineHeight: 1.66,\r\n },\r\n overline: {\r\n color: '#826E5C',\r\n fontWeight: 500,\r\n fontSize: '0.75rem',\r\n lineHeight: 2.66,\r\n textTransform: 'uppercase',\r\n letterSpacing: '0.08em',\r\n },\r\n },\r\n shape: {\r\n borderRadius: 4,\r\n },\r\n breakpoints: {\r\n values: {\r\n xs: 320,\r\n sm: 640,\r\n md: 768,\r\n lg: 1024,\r\n xl: 1280,\r\n },\r\n },\r\n components: {\r\n MuiTypography: {\r\n defaultProps: {\r\n variantMapping: {\r\n h1: 'h1',\r\n h2: 'h2',\r\n h3: 'h3',\r\n h4: 'h4',\r\n h5: 'h5',\r\n h6: 'h6',\r\n subtitle1: 'p',\r\n subtitle2: 'p',\r\n body1: 'p',\r\n body2: 'p',\r\n },\r\n },\r\n },\r\n MuiCssBaseline: {\r\n styleOverrides: {\r\n body: {\r\n WebkitFontSmoothing: 'antialiased',\r\n MozOsxFontSmoothing: 'grayscale',\r\n backgroundColor: '#FDFCEE',\r\n color: '#4D3019',\r\n },\r\n 'input[type=\"checkbox\"], input[type=\"radio\"]': {\r\n accentColor: '#D79AFC',\r\n },\r\n 'h1, h2, h3, h4, h5, h6': {\r\n fontWeight: 'inherit !important',\r\n },\r\n '.MuiTypography-h1': {\r\n fontWeight: '700 !important',\r\n },\r\n '.MuiTypography-h2': {\r\n fontWeight: '700 !important',\r\n },\r\n '.MuiTypography-h3': {\r\n fontWeight: '600 !important',\r\n },\r\n '.MuiTypography-h4': {\r\n fontWeight: '600 !important',\r\n },\r\n '.MuiTypography-h5': {\r\n fontWeight: '600 !important',\r\n },\r\n '.MuiTypography-h6': {\r\n fontWeight: '600 !important',\r\n },\r\n },\r\n },\r\n },\r\n appName: 'ECE Docs',\r\n});\r\n\r\n\r\nexport const ThemeProvider: React.FC<{ children: React.ReactNode }> = ({ children }) => {\r\n return (\r\n <MuiThemeProvider theme={theme}>\r\n <CssBaseline />\r\n {children}\r\n <ToastContainer />\r\n </MuiThemeProvider>\r\n );\r\n};\r\n\r\n\r\nexport const useTheme = () => {\r\n return theme;\r\n};\r\n"],"names":["createTheme","_jsxs","MuiThemeProvider","_jsx","CssBaseline","ToastContainer"],"mappings":"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"}
@@ -6,12 +6,13 @@ var material = require('@mui/material');
6
6
  var ThemeProvider = require('../ThemeProvider.js');
7
7
  var iconsMaterial = require('@mui/icons-material');
8
8
 
9
- const StyledWrapper = material.styled(material.Box)(({ theme }) => ({
10
- // No specific wrapper styles needed, just a container
9
+ const StyledWrapper = material.styled(material.Box)(({ theme, open }) => ({
10
+ display: 'inline-block',
11
+ position: 'relative',
12
+ verticalAlign: 'top', // Prevents shifting
11
13
  }));
12
14
  const StyledParagraph = material.styled('span')(({ theme }) => ({
13
- fontSize: '14px', // text-[14px]
14
- color: theme.palette.dark.main, // text-[#4D3019]
15
+ color: theme.palette.dark.main,
15
16
  display: 'inline-flex',
16
17
  alignItems: 'center',
17
18
  }));
@@ -20,21 +21,21 @@ const StyledTermWrapper = material.styled(material.Box)(({ theme, open }) => ({
20
21
  display: 'inline-flex',
21
22
  alignItems: 'center',
22
23
  cursor: 'pointer',
23
- marginLeft: theme.spacing(0.5), // ml-1
24
- paddingBottom: '1px', // style={{ paddingBottom: '1px' }}
25
- borderBottom: `2px solid ${theme.palette.dark.main}`, // border-b-2
24
+ marginLeft: theme.spacing(0.5),
25
+ paddingBottom: '1px',
26
+ borderBottom: `2px solid ${theme.palette.dark.main}`,
26
27
  backgroundColor: theme.palette.background.default,
27
28
  }));
28
29
  const StyledIconWrapper = material.styled(material.Box)(({ theme }) => ({
29
30
  display: 'inline-flex',
30
31
  alignItems: 'center',
31
32
  justifyContent: 'center',
32
- marginLeft: theme.spacing(0.5), // ml-1
33
- transition: 'color 0.2s', // transition-colors
33
+ marginLeft: theme.spacing(0.5),
34
+ transition: 'color 0.2s',
34
35
  }));
35
36
  const StyledExpandingBox = material.styled(material.Box)(({ theme }) => ({
36
- marginTop: theme.spacing(2), // mt-4
37
- padding: theme.spacing(2), // p-4
37
+ marginTop: theme.spacing(2),
38
+ padding: theme.spacing(2),
38
39
  borderRadius: (typeof theme.shape.borderRadius === 'string'
39
40
  ? parseInt(theme.shape.borderRadius, 10)
40
41
  : theme.shape.borderRadius || 4) * 2,
@@ -44,17 +45,16 @@ const StyledExpandingBox = material.styled(material.Box)(({ theme }) => ({
44
45
  function ExpandingBox({ term, content }) {
45
46
  const theme = ThemeProvider.useTheme();
46
47
  const [open, setOpen] = React.useState(false);
47
- return (jsxRuntime.jsxs(StyledWrapper, { children: [jsxRuntime.jsx(StyledParagraph, { children: jsxRuntime.jsxs(StyledTermWrapper, { onClick: () => setOpen(!open), open: open, children: [term, jsxRuntime.jsx(StyledIconWrapper, { children: open ? (jsxRuntime.jsx(iconsMaterial.IndeterminateCheckBoxRounded, { sx: {
48
- fontSize: 16,
49
- color: theme.palette.text.primary
50
- } })) : (jsxRuntime.jsx(iconsMaterial.AddBoxRounded, { sx: {
51
- fontSize: 16,
52
- color: theme.palette.text.primary,
53
- } })) })] }) }), open && (jsxRuntime.jsx(StyledExpandingBox, { children: jsxRuntime.jsx(material.Box, { sx: {
48
+ return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(StyledWrapper, { open: open, children: jsxRuntime.jsx(StyledParagraph, { children: jsxRuntime.jsxs(StyledTermWrapper, { onClick: () => setOpen(!open), open: open, children: [term, jsxRuntime.jsx(StyledIconWrapper, { children: open ? (jsxRuntime.jsx(iconsMaterial.IndeterminateCheckBoxRounded, { sx: {
49
+ fontSize: 16,
50
+ color: theme.palette.text.primary
51
+ } })) : (jsxRuntime.jsx(iconsMaterial.AddBoxRounded, { sx: {
52
+ fontSize: 16,
53
+ color: theme.palette.text.primary,
54
+ } })) })] }) }) }), open && (jsxRuntime.jsx(StyledExpandingBox, { children: jsxRuntime.jsx(material.Box, { sx: {
54
55
  fontSize: '14px',
55
56
  color: theme.palette.dark.main,
56
57
  lineHeight: 1.5,
57
- display: 'inline-block'
58
58
  }, dangerouslySetInnerHTML: { __html: content } }) }))] }));
59
59
  }
60
60
 
@@ -1 +1 @@
1
- {"version":3,"file":"ExpandingBox.js","sources":["../../../../src/components/ExpandingBox.tsx"],"sourcesContent":["\r\n\r\nimport { useState } from 'react';\r\nimport { Box, styled, Typography } from '@mui/material';\r\nimport { useTheme } from '../ThemeProvider';\r\nimport { AddBoxRounded, IndeterminateCheckBoxRounded } from '@mui/icons-material';\r\n\r\ninterface ExpandingBoxProps {\r\n term: string;\r\n content: string;\r\n}\r\n\r\nconst StyledWrapper = styled(Box)(({ theme }) => ({\r\n // No specific wrapper styles needed, just a container\r\n}));\r\n\r\nconst StyledParagraph = styled('span')(({ theme }) => ({\r\n fontSize: '14px', // text-[14px]\r\n color: theme.palette.dark.main, // text-[#4D3019]\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n}));\r\n\r\nconst StyledTermWrapper = styled(Box)<{ open: boolean }>(({ theme, open }) => ({\r\n position: 'relative',\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n cursor: 'pointer',\r\n marginLeft: theme.spacing(0.5), // ml-1\r\n paddingBottom: '1px', // style={{ paddingBottom: '1px' }}\r\n borderBottom: `2px solid ${theme.palette.dark.main}`, // border-b-2\r\n backgroundColor: theme.palette.background.default,\r\n}));\r\n\r\nconst StyledIconWrapper = styled(Box)(({ theme }) => ({\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n marginLeft: theme.spacing(0.5), // ml-1\r\n transition: 'color 0.2s', // transition-colors\r\n}));\r\n\r\nconst StyledExpandingBox = styled(Box)(({ theme }) => ({\r\n marginTop: theme.spacing(2), // mt-4\r\n padding: theme.spacing(2), // p-4\r\n borderRadius: (typeof theme.shape.borderRadius === 'string'\r\n ? parseInt(theme.shape.borderRadius, 10)\r\n : theme.shape.borderRadius || 4) * 2,\r\n border: `1px solid ${theme.palette.dark.main}`,\r\n backgroundColor: theme.palette.background.default,\r\n}));\r\n\r\nexport function ExpandingBox({ term, content }: ExpandingBoxProps) {\r\n const theme = useTheme();\r\n const [open, setOpen] = useState(false);\r\n\r\n return (\r\n <StyledWrapper>\r\n <StyledParagraph >\r\n <StyledTermWrapper onClick={() => setOpen(!open)} open={open}>\r\n {term}\r\n <StyledIconWrapper>\r\n {open ? (\r\n <IndeterminateCheckBoxRounded\r\n sx={{\r\n fontSize: 16,\r\n color: theme.palette.text.primary\r\n }}\r\n />\r\n ) : (\r\n <AddBoxRounded\r\n sx={{\r\n fontSize: 16,\r\n color: theme.palette.text.primary,\r\n }}\r\n />\r\n )}\r\n </StyledIconWrapper>\r\n </StyledTermWrapper>\r\n </StyledParagraph>\r\n {open && (\r\n <StyledExpandingBox>\r\n <Box\r\n sx={{\r\n fontSize: '14px',\r\n color: theme.palette.dark.main,\r\n lineHeight: 1.5,\r\n display: 'inline-block'\r\n }}\r\n dangerouslySetInnerHTML={{ __html: content }}\r\n />\r\n </StyledExpandingBox>\r\n )}\r\n </StyledWrapper>\r\n );\r\n}"],"names":["styled","Box","useTheme","useState","_jsxs","_jsx","IndeterminateCheckBoxRounded","AddBoxRounded"],"mappings":"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"}
1
+ {"version":3,"file":"ExpandingBox.js","sources":["../../../../src/components/ExpandingBox.tsx"],"sourcesContent":["import { useState } from 'react';\r\nimport { Box, styled, Typography } from '@mui/material';\r\nimport { useTheme } from '../ThemeProvider';\r\nimport { AddBoxRounded, IndeterminateCheckBoxRounded } from '@mui/icons-material';\r\n\r\ninterface ExpandingBoxProps {\r\n term: string;\r\n content: string;\r\n}\r\n\r\nconst StyledWrapper = styled(Box)<{ open: boolean }>(({ theme, open }) => ({\r\n display: 'inline-block',\r\n position: 'relative',\r\n verticalAlign: 'top', // Prevents shifting\r\n}));\r\n\r\nconst StyledParagraph = styled('span')(({ theme }) => ({\r\n color: theme.palette.dark.main,\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n}));\r\n\r\nconst StyledTermWrapper = styled(Box)<{ open: boolean }>(({ theme, open }) => ({\r\n position: 'relative',\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n cursor: 'pointer',\r\n marginLeft: theme.spacing(0.5),\r\n paddingBottom: '1px',\r\n borderBottom: `2px solid ${theme.palette.dark.main}`,\r\n backgroundColor: theme.palette.background.default,\r\n}));\r\n\r\nconst StyledIconWrapper = styled(Box)(({ theme }) => ({\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n marginLeft: theme.spacing(0.5),\r\n transition: 'color 0.2s',\r\n}));\r\n\r\nconst StyledExpandingBox = styled(Box)(({ theme }) => ({\r\n marginTop: theme.spacing(2),\r\n padding: theme.spacing(2),\r\n borderRadius: (typeof theme.shape.borderRadius === 'string'\r\n ? parseInt(theme.shape.borderRadius, 10)\r\n : theme.shape.borderRadius || 4) * 2,\r\n border: `1px solid ${theme.palette.dark.main}`,\r\n backgroundColor: theme.palette.background.default,\r\n}));\r\n\r\nexport function ExpandingBox({ term, content }: ExpandingBoxProps) {\r\n const theme = useTheme();\r\n const [open, setOpen] = useState(false);\r\n\r\n return (\r\n <>\r\n <StyledWrapper open={open}>\r\n <StyledParagraph>\r\n <StyledTermWrapper onClick={() => setOpen(!open)} open={open}>\r\n {term}\r\n <StyledIconWrapper>\r\n {open ? (\r\n <IndeterminateCheckBoxRounded\r\n sx={{\r\n fontSize: 16,\r\n color: theme.palette.text.primary\r\n }}\r\n />\r\n ) : (\r\n <AddBoxRounded\r\n sx={{\r\n fontSize: 16,\r\n color: theme.palette.text.primary,\r\n }}\r\n />\r\n )}\r\n </StyledIconWrapper>\r\n </StyledTermWrapper>\r\n </StyledParagraph>\r\n </StyledWrapper>\r\n {open && (\r\n <StyledExpandingBox>\r\n <Box\r\n sx={{\r\n fontSize: '14px',\r\n color: theme.palette.dark.main,\r\n lineHeight: 1.5,\r\n }}\r\n dangerouslySetInnerHTML={{ __html: content }}\r\n />\r\n </StyledExpandingBox>\r\n )}\r\n </>\r\n );\r\n}\r\n"],"names":["styled","Box","useTheme","useState","_jsxs","_jsx","IndeterminateCheckBoxRounded","AddBoxRounded"],"mappings":"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"}
@@ -6,6 +6,7 @@ var material = require('@mui/material');
6
6
  var Button = require('./Button.js');
7
7
  var iconsMaterial = require('@mui/icons-material');
8
8
  var Alert = require('./Alert.js');
9
+ var reactToastify = require('react-toastify');
9
10
 
10
11
  var VariableState;
11
12
  (function (VariableState) {
@@ -15,6 +16,11 @@ var VariableState;
15
16
  VariableState["NotAccepted"] = "Not Accepted";
16
17
  VariableState["Draft"] = "Draft";
17
18
  })(VariableState || (VariableState = {}));
19
+ var RequirementType;
20
+ (function (RequirementType) {
21
+ RequirementType["Default"] = "Default";
22
+ RequirementType["Optional"] = "Optional";
23
+ })(RequirementType || (RequirementType = {}));
18
24
  const StyledDialog = material.styled(material.Dialog)(({ theme }) => ({
19
25
  '& .MuiDialog-paper': {
20
26
  color: theme.palette.background.default,
@@ -55,9 +61,50 @@ function mapStatusToVariableState(status) {
55
61
  return undefined;
56
62
  }
57
63
  }
58
- const Modal = ({ isOpen, onClose, status, description, defaultText, note, onSave, onSubmit, onDeclineWording, onPrevious, onNext, currentPage = 1, totalPages = 1, isLoading }) => {
64
+ function mapRequirementTypeToState(reqType) {
65
+ switch (reqType) {
66
+ case "Default":
67
+ return RequirementType.Default;
68
+ case "Optional":
69
+ return RequirementType.Optional;
70
+ default:
71
+ return undefined;
72
+ }
73
+ }
74
+ const Modal = ({ isOpen, onClose, status, requirementType, description, defaultText, note, onSave, onSubmit, successMessage, errorMessage, onDeclineWording, onPrevious, onNext, currentPage = 1, totalPages = 1, isLoading }) => {
75
+ const variableState = mapStatusToVariableState(status);
76
+ const variableReqType = mapRequirementTypeToState(requirementType);
59
77
  const [textValue, setTextValue] = React.useState(defaultText);
60
78
  const [useDefaultValue, setUseDefaultValue] = React.useState(true);
79
+ const [isSaving, setIsSaving] = React.useState(false);
80
+ const [isSubmitting, setIsSubmitting] = React.useState(false);
81
+ React.useEffect(() => {
82
+ if (variableState === (VariableState.Pending || VariableState.Draft)) {
83
+ setUseDefaultValue(false);
84
+ }
85
+ }, [status]);
86
+ React.useEffect(() => {
87
+ if (!isOpen) {
88
+ setIsSaving(false);
89
+ setIsSubmitting(false);
90
+ }
91
+ }, [isOpen]);
92
+ React.useEffect(() => {
93
+ if (successMessage && successMessage !== '') {
94
+ reactToastify.toast.success(successMessage);
95
+ }
96
+ }, [successMessage]);
97
+ React.useEffect(() => {
98
+ if (errorMessage && errorMessage !== '') {
99
+ reactToastify.toast.error(errorMessage);
100
+ }
101
+ }, [errorMessage]);
102
+ React.useEffect(() => {
103
+ if (!isLoading) {
104
+ setIsSaving(false);
105
+ setIsSubmitting(false);
106
+ }
107
+ }, [isLoading]);
61
108
  React.useEffect(() => {
62
109
  if (useDefaultValue) {
63
110
  setTextValue(defaultText);
@@ -66,7 +113,7 @@ const Modal = ({ isOpen, onClose, status, description, defaultText, note, onSave
66
113
  const handleUseDefaultValueChange = (event) => {
67
114
  setUseDefaultValue(event.target.checked);
68
115
  };
69
- const variableState = mapStatusToVariableState(status);
116
+ const canSubmitSave = isLoading || variableState === VariableState.Pending;
70
117
  const statusConfig = {
71
118
  [VariableState.Pending]: { color: '#F5A623', label: 'Pending' },
72
119
  [VariableState.Draft]: { color: '#F5D76E', label: 'Draft' },
@@ -74,11 +121,18 @@ const Modal = ({ isOpen, onClose, status, description, defaultText, note, onSave
74
121
  [VariableState.Rejected]: { color: '#F56B6B', label: 'Rejected' },
75
122
  [VariableState.Accepted]: { color: '#A3D977', label: 'Accepted' },
76
123
  };
124
+ const reqTypeConfig = {
125
+ [RequirementType.Default]: { color: '#F5A623', label: 'Mandatory' },
126
+ [RequirementType.Optional]: { color: '#F5D76E', label: 'Optional' },
127
+ };
77
128
  const statusStyle = variableState ? statusConfig[variableState] : { color: '#ccc', label: 'Unknown' };
129
+ const requirementTypeStyle = variableReqType ? reqTypeConfig[variableReqType] : { color: '#ccc', label: 'Unknown' };
78
130
  const handleSave = () => {
131
+ setIsSaving(true);
79
132
  onSave?.(textValue, useDefaultValue);
80
133
  };
81
134
  const handleSubmit = () => {
135
+ setIsSubmitting(true);
82
136
  onSubmit?.(textValue, useDefaultValue);
83
137
  };
84
138
  return (jsxRuntime.jsxs(StyledDialog, { open: isOpen, onClose: onClose, maxWidth: "md", fullWidth: true, children: [jsxRuntime.jsx(material.IconButton, { onClick: onClose, disabled: isLoading, sx: {
@@ -86,26 +140,37 @@ const Modal = ({ isOpen, onClose, status, description, defaultText, note, onSave
86
140
  top: 16,
87
141
  right: 16,
88
142
  zIndex: 1,
89
- }, children: jsxRuntime.jsx(iconsMaterial.CloseRounded, { sx: { fontSize: 24 } }) }), jsxRuntime.jsxs(material.DialogContent, { sx: { p: { xs: 3, sm: 4, md: 6 } }, children: [jsxRuntime.jsx(material.Box, { sx: { mb: 3 }, children: jsxRuntime.jsx(material.Chip, { label: statusStyle.label.toUpperCase(), sx: {
90
- backgroundColor: statusStyle.color,
91
- color: status === 'Not Accepted' || status === 'Pending' ? '#4D3019' : '#fff',
92
- fontWeight: 600,
93
- fontSize: '0.875rem',
94
- height: 'auto',
95
- py: 1,
96
- borderRadius: 0,
97
- px: 2,
98
- } }) }), jsxRuntime.jsx(material.Typography, { sx: { mb: 3, lineHeight: 1.6, whiteSpace: 'pre-line' }, children: description }), status === 'Rejected' && note && (jsxRuntime.jsx(Alert.Alert, { variant: "error", sx: {
143
+ }, children: jsxRuntime.jsx(iconsMaterial.CloseRounded, { sx: { fontSize: 24 } }) }), jsxRuntime.jsxs(material.DialogContent, { sx: { p: { xs: 3, sm: 4, md: 6 } }, children: [jsxRuntime.jsxs(material.Box, { sx: { mb: 3 }, children: [jsxRuntime.jsx(material.Chip, { label: requirementTypeStyle.label.toUpperCase(), sx: {
144
+ mr: 3,
145
+ backgroundColor: requirementTypeStyle.color,
146
+ color: variableReqType === (RequirementType.Default || RequirementType.Optional) ? '#4D3019' : '#fff',
147
+ fontWeight: 600,
148
+ fontSize: '0.875rem',
149
+ height: 'auto',
150
+ py: 1,
151
+ borderRadius: 0,
152
+ px: 2,
153
+ } }), jsxRuntime.jsx(material.Chip, { label: statusStyle.label.toUpperCase(), sx: {
154
+ mr: 3,
155
+ backgroundColor: statusStyle.color,
156
+ color: variableState === (VariableState.NotAccepted || VariableState.Pending) ? '#4D3019' : '#fff',
157
+ fontWeight: 600,
158
+ fontSize: '0.875rem',
159
+ height: 'auto',
160
+ py: 1,
161
+ borderRadius: 0,
162
+ px: 2,
163
+ } })] }), jsxRuntime.jsx(material.Typography, { sx: { mb: 3, lineHeight: 1.6, whiteSpace: 'pre-line' }, children: description }), variableState === VariableState.Rejected && note && (jsxRuntime.jsx(Alert.Alert, { variant: "error", sx: {
99
164
  mb: 2
100
- }, children: note })), status === 'Pending' && note && (jsxRuntime.jsx(Alert.Alert, { variant: "info", sx: {
165
+ }, children: note })), variableState !== VariableState.Rejected && note && (jsxRuntime.jsx(Alert.Alert, { variant: "info", sx: {
101
166
  mb: 2
102
- }, children: note })), jsxRuntime.jsx(material.TextField, { multiline: true, rows: 6, fullWidth: true, value: textValue, onChange: (e) => setTextValue(e.target.value), disabled: useDefaultValue || isLoading, sx: {
167
+ }, children: note })), jsxRuntime.jsx(material.TextField, { multiline: true, rows: 6, fullWidth: true, value: textValue, onChange: (e) => setTextValue(e.target.value), disabled: useDefaultValue || canSubmitSave, sx: {
103
168
  mb: 2,
104
169
  '& .MuiOutlinedInput-root': {
105
- backgroundColor: useDefaultValue ? 'rgba(0, 0, 0, 0.05)' : '#fff',
170
+ backgroundColor: useDefaultValue || canSubmitSave ? 'rgba(0, 0, 0, 0.05)' : '#fff',
106
171
  borderRadius: 2,
107
172
  },
108
- } }), jsxRuntime.jsx(material.FormControlLabel, { control: jsxRuntime.jsx(material.Checkbox, { checked: useDefaultValue, onChange: handleUseDefaultValueChange, sx: {
173
+ } }), jsxRuntime.jsx(material.FormControlLabel, { control: jsxRuntime.jsx(material.Checkbox, { checked: useDefaultValue, disabled: canSubmitSave, onChange: handleUseDefaultValueChange, sx: {
109
174
  color: '#AC46FF',
110
175
  '&.Mui-checked': {
111
176
  color: '#AC46FF',
@@ -119,17 +184,19 @@ const Modal = ({ isOpen, onClose, status, description, defaultText, note, onSave
119
184
  pt: 3,
120
185
  borderTop: '1px solid',
121
186
  borderColor: 'divider',
122
- }, children: [jsxRuntime.jsxs(material.Box, { sx: { display: 'flex', gap: 1.5, flexWrap: 'wrap' }, children: [jsxRuntime.jsx(Button.Button, { onClick: handleSave, variant: "outline", size: "md", disabled: isLoading, children: isLoading ? jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(material.CircularProgress, { size: 20 }), jsxRuntime.jsx(material.Typography, { sx: { paddingLeft: 2 }, children: "Saving..." })] }) : "Save" }), jsxRuntime.jsx(Button.Button, { onClick: handleSubmit, variant: "outline", size: "md", disabled: isLoading, sx: {
187
+ }, children: [jsxRuntime.jsxs(material.Box, { sx: { display: 'flex', gap: 1.5, flexWrap: 'wrap' }, children: [jsxRuntime.jsx(Button.Button, { onClick: handleSave, variant: "outline", size: "md", disabled: canSubmitSave, children: isSaving ? jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(material.CircularProgress, { size: 20 }), jsxRuntime.jsx(material.Typography, { sx: { paddingLeft: 2 }, children: "Saving..." })] }) : "Save" }), jsxRuntime.jsx(Button.Button, { onClick: handleSubmit, variant: "outline", size: "md", disabled: canSubmitSave, sx: {
123
188
  backgroundColor: '#ac46ff52',
124
189
  '&:hover': {
125
190
  backgroundColor: '#ac46ff80',
126
191
  },
127
- }, children: isLoading ? jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(material.CircularProgress, { size: 20 }), jsxRuntime.jsx(material.Typography, { sx: { paddingLeft: 2 }, children: "Submitting..." })] }) : "Submit for review" }), jsxRuntime.jsx(Button.Button, { onClick: onDeclineWording, variant: "outline", size: "md", sx: {
128
- backgroundColor: '#ff464652',
129
- '&:hover': {
130
- backgroundColor: '#ff464680', // Darker purple on hover
131
- }
132
- }, disabled: isLoading, children: "Decline wording" })] }), jsxRuntime.jsxs(material.Box, { sx: {
192
+ }, children: isSubmitting ? jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(material.CircularProgress, { size: 20 }), jsxRuntime.jsx(material.Typography, { sx: { paddingLeft: 2 }, children: "Submitting..." })] }) : "Submit for review" }), variableReqType === RequirementType.Optional ?
193
+ (jsxRuntime.jsx(Button.Button, { onClick: onDeclineWording, variant: "outline", size: "md", sx: {
194
+ backgroundColor: '#ff464652',
195
+ '&:hover': {
196
+ backgroundColor: '#ff464680', // Darker purple on hover
197
+ }
198
+ }, disabled: canSubmitSave, children: "Decline wording" })) :
199
+ (jsxRuntime.jsx(jsxRuntime.Fragment, {}))] }), jsxRuntime.jsxs(material.Box, { sx: {
133
200
  display: 'flex',
134
201
  alignItems: 'center',
135
202
  gap: 1.5,
@@ -1 +1 @@
1
- {"version":3,"file":"Modal.js","sources":["../../../../src/components/Modal.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\r\nimport {\r\n Dialog,\r\n DialogContent,\r\n IconButton,\r\n Box,\r\n Typography,\r\n TextField,\r\n Checkbox,\r\n FormControlLabel,\r\n Alert as MuiAlert,\r\n Chip,\r\n styled,\r\n CircularProgress,\r\n} from '@mui/material';\r\nimport { Button } from './Button';\r\nimport { CloseRounded, ErrorOutlineRounded, StickyNote2Rounded } from '@mui/icons-material';\r\nimport { Alert } from './Alert';\r\n\r\nenum VariableState {\r\n Accepted = \"Accepted\",\r\n Pending = \"Pending\",\r\n Rejected = \"Rejected\",\r\n NotAccepted = \"Not Accepted\",\r\n Draft = \"Draft\"\r\n}\r\n\r\ninterface ModalProps {\r\n isOpen: boolean;\r\n onClose: () => void;\r\n status: string;\r\n description: string;\r\n defaultText: string;\r\n note?: string;\r\n onSave?: (fieldValue: string, defaultChecked: boolean) => void;\r\n onSubmit?: (fieldValue: string, defaultChecked: boolean) => void;\r\n onDeclineWording?: () => void;\r\n onPrevious?: () => void;\r\n onNext?: () => void;\r\n currentPage?: number;\r\n totalPages?: number;\r\n isLoading: boolean;\r\n}\r\n\r\n\r\nconst StyledDialog = styled(Dialog)(({ theme }) => ({\r\n '& .MuiDialog-paper': {\r\n color: theme.palette.background.default,\r\n borderRadius: theme.shape.borderRadius,\r\n maxWidth: '896px',\r\n width: '100%',\r\n maxHeight: '90vh',\r\n },\r\n}));\r\n\r\n\r\nconst NavButton = styled(IconButton)(({ theme }) => ({\r\n width: 'auto',\r\n height: '40px',\r\n borderRadius: (typeof theme.shape.borderRadius === 'string'\r\n ? parseInt(theme.shape.borderRadius, 10)\r\n : theme.shape.borderRadius || 4) * 2,\r\n border: `2px solid ${theme.palette.dark.main}`,\r\n backgroundColor: theme.palette.light.main,\r\n padding: theme.spacing(1, 2),\r\n '&:hover': {\r\n backgroundColor: theme.palette.grey[100], // Changed from dark.main to grey[100]\r\n color: theme.palette.dark.main, // Keep text dark instead of light\r\n borderColor: theme.palette.dark.main, // Keep border dark\r\n },\r\n}));\r\n\r\nfunction mapStatusToVariableState(status: string): VariableState | undefined {\r\n switch (status) {\r\n case \"Accepted\":\r\n return VariableState.Accepted;\r\n case \"Pending\":\r\n return VariableState.Pending;\r\n case \"Rejected\":\r\n return VariableState.Rejected;\r\n case \"Not Accepted\":\r\n return VariableState.NotAccepted;\r\n case \"Draft\":\r\n return VariableState.Draft;\r\n default:\r\n return undefined;\r\n }\r\n}\r\n\r\n\r\n\r\nexport const Modal: React.FC<ModalProps> = ({\r\n isOpen,\r\n onClose,\r\n status,\r\n description,\r\n defaultText,\r\n note,\r\n onSave,\r\n onSubmit,\r\n onDeclineWording,\r\n onPrevious,\r\n onNext,\r\n currentPage = 1,\r\n totalPages = 1,\r\n isLoading\r\n}) => {\r\n const [textValue, setTextValue] = useState(defaultText);\r\n const [useDefaultValue, setUseDefaultValue] = useState(true);\r\n \r\n useEffect(() => {\r\n if (useDefaultValue) {\r\n setTextValue(defaultText);\r\n }\r\n }, [defaultText, useDefaultValue]);\r\n\r\n\r\n const handleUseDefaultValueChange = (event: React.ChangeEvent<HTMLInputElement>) => {\r\n setUseDefaultValue(event.target.checked);\r\n };\r\n\r\n\r\n const variableState = mapStatusToVariableState(status);\r\n\r\n const statusConfig = {\r\n [VariableState.Pending]: { color: '#F5A623', label: 'Pending' },\r\n [VariableState.Draft]: { color: '#F5D76E', label: 'Draft' },\r\n [VariableState.NotAccepted]: { color: '#A3D977', label: 'Not Accepted' },\r\n [VariableState.Rejected]: { color: '#F56B6B', label: 'Rejected' },\r\n [VariableState.Accepted]: { color: '#A3D977', label: 'Accepted' },\r\n };\r\n\r\n const statusStyle = variableState ? statusConfig[variableState] : { color: '#ccc', label: 'Unknown' };;\r\n\r\n\r\n const handleSave = () => {\r\n onSave?.(textValue, useDefaultValue);\r\n };\r\n\r\n const handleSubmit = () => {\r\n onSubmit?.(textValue, useDefaultValue);\r\n };\r\n\r\n\r\n\r\n return (\r\n <StyledDialog open={isOpen} onClose={onClose} maxWidth=\"md\" fullWidth>\r\n <IconButton\r\n onClick={onClose}\r\n disabled={isLoading}\r\n sx={{\r\n position: 'absolute',\r\n top: 16,\r\n right: 16,\r\n zIndex: 1,\r\n }}\r\n >\r\n <CloseRounded sx={{ fontSize: 24 }} />\r\n </IconButton>\r\n\r\n\r\n <DialogContent sx={{ p: { xs: 3, sm: 4, md: 6 } }}>\r\n {/* Status Chip */}\r\n <Box sx={{ mb: 3 }}>\r\n <Chip\r\n label={statusStyle.label.toUpperCase()}\r\n sx={{\r\n backgroundColor: statusStyle.color,\r\n color: status === 'Not Accepted' || status === 'Pending' ? '#4D3019' : '#fff',\r\n fontWeight: 600,\r\n fontSize: '0.875rem',\r\n height: 'auto',\r\n py: 1,\r\n borderRadius: 0,\r\n px: 2,\r\n }}\r\n />\r\n </Box>\r\n\r\n\r\n {/* Description */}\r\n <Typography sx={{ mb: 3, lineHeight: 1.6, whiteSpace: 'pre-line' }}>\r\n {description}\r\n </Typography>\r\n\r\n\r\n {/* Alerts */}\r\n {status === 'Rejected' && note && (\r\n <Alert\r\n variant=\"error\"\r\n sx={{\r\n mb: 2\r\n }}\r\n >\r\n {note}\r\n </Alert>\r\n )}\r\n\r\n\r\n {status === 'Pending' && note && (\r\n <Alert\r\n variant=\"info\"\r\n sx={{\r\n mb: 2\r\n }}\r\n >\r\n {note}\r\n </Alert>\r\n )}\r\n\r\n\r\n {/* Text Field */}\r\n <TextField\r\n multiline\r\n rows={6}\r\n fullWidth\r\n value={textValue}\r\n onChange={(e) => setTextValue(e.target.value)}\r\n disabled={useDefaultValue || isLoading}\r\n sx={{\r\n mb: 2,\r\n '& .MuiOutlinedInput-root': {\r\n backgroundColor: useDefaultValue ? 'rgba(0, 0, 0, 0.05)' : '#fff',\r\n borderRadius: 2,\r\n },\r\n }}\r\n />\r\n\r\n\r\n {/* Checkbox */}\r\n <FormControlLabel\r\n control={\r\n <Checkbox\r\n checked={useDefaultValue}\r\n onChange={handleUseDefaultValueChange}\r\n sx={{\r\n color: '#AC46FF',\r\n '&.Mui-checked': {\r\n color: '#AC46FF',\r\n },\r\n }}\r\n />\r\n }\r\n label=\"Use Default Value\"\r\n sx={{ mb: 3 }}\r\n />\r\n\r\n\r\n {/* Footer with Buttons and Navigation */}\r\n <Box\r\n sx={{\r\n display: 'flex',\r\n flexDirection: { xs: 'column', sm: 'row' },\r\n alignItems: { xs: 'stretch', sm: 'center' },\r\n justifyContent: 'space-between',\r\n gap: 2,\r\n pt: 3,\r\n borderTop: '1px solid',\r\n borderColor: 'divider',\r\n }}\r\n >\r\n {/* Action Buttons */}\r\n <Box sx={{ display: 'flex', gap: 1.5, flexWrap: 'wrap' }}>\r\n <Button\r\n onClick={handleSave}\r\n variant=\"outline\"\r\n size=\"md\"\r\n disabled={isLoading}\r\n >\r\n {isLoading ? <><CircularProgress size={20} /><Typography sx={{paddingLeft: 2}}>Saving...</Typography></> : \"Save\"}\r\n </Button>\r\n <Button\r\n onClick={handleSubmit}\r\n variant=\"outline\"\r\n size=\"md\"\r\n disabled={isLoading}\r\n sx={{\r\n backgroundColor: '#ac46ff52',\r\n '&:hover': {\r\n backgroundColor: '#ac46ff80',\r\n },\r\n }}\r\n >\r\n {isLoading ? <><CircularProgress size={20} /><Typography sx={{paddingLeft: 2}}>Submitting...</Typography></> : \"Submit for review\"}\r\n </Button>\r\n <Button onClick={onDeclineWording} variant=\"outline\" size=\"md\" sx={{\r\n backgroundColor: '#ff464652',\r\n '&:hover': {\r\n backgroundColor: '#ff464680', // Darker purple on hover\r\n }\r\n }}\r\n disabled={isLoading}\r\n >\r\n Decline wording\r\n </Button>\r\n </Box>\r\n\r\n\r\n {/* Navigation */}\r\n <Box\r\n sx={{\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: 1.5,\r\n justifyContent: { xs: 'space-between', sm: 'flex-end' },\r\n }}\r\n >\r\n <Typography fontWeight={500} fontSize=\"1.125rem\">\r\n {currentPage}/{totalPages}\r\n </Typography>\r\n <NavButton onClick={onPrevious} aria-label=\"Previous\" disabled={isLoading}>\r\n <Typography sx={{ fontSize: 16, fontWeight: 500 }}>Previous</Typography>\r\n </NavButton>\r\n <NavButton onClick={onNext} aria-label=\"Next\" disabled={isLoading}>\r\n <Typography sx={{ fontSize: 16, fontWeight: 500 }}>Next</Typography>\r\n </NavButton>\r\n </Box>\r\n </Box>\r\n </DialogContent>\r\n </StyledDialog>\r\n );\r\n};\r\n"],"names":["styled","Dialog","IconButton","useState","useEffect","_jsxs","_jsx","CloseRounded","DialogContent","Box","Chip","Typography","Alert","TextField","FormControlLabel","Checkbox","Button","_Fragment","CircularProgress"],"mappings":"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"}
1
+ {"version":3,"file":"Modal.js","sources":["../../../../src/components/Modal.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\r\nimport {\r\n Dialog,\r\n DialogContent,\r\n IconButton,\r\n Box,\r\n Typography,\r\n TextField,\r\n Checkbox,\r\n FormControlLabel,\r\n Alert as MuiAlert,\r\n Chip,\r\n styled,\r\n CircularProgress,\r\n} from '@mui/material';\r\nimport { Button } from './Button';\r\nimport { CloseRounded, ErrorOutlineRounded, StickyNote2Rounded } from '@mui/icons-material';\r\nimport { Alert } from './Alert';\r\nimport { toast } from 'react-toastify';\r\n\r\nenum VariableState {\r\n Accepted = \"Accepted\",\r\n Pending = \"Pending\",\r\n Rejected = \"Rejected\",\r\n NotAccepted = \"Not Accepted\",\r\n Draft = \"Draft\"\r\n}\r\n\r\nenum RequirementType {\r\n Default = \"Default\",\r\n Optional = \"Optional\"\r\n}\r\n\r\n\r\ninterface ModalProps {\r\n isOpen: boolean;\r\n onClose: () => void;\r\n status: string;\r\n requirementType: string,\r\n description: string;\r\n defaultText: string;\r\n note?: string;\r\n onSave?: (fieldValue: string, defaultChecked: boolean) => void;\r\n onSubmit?: (fieldValue: string, defaultChecked: boolean) => void;\r\n successMessage?: string;\r\n errorMessage?: string;\r\n onDeclineWording?: () => void;\r\n onPrevious?: () => void;\r\n onNext?: () => void;\r\n currentPage?: number;\r\n totalPages?: number;\r\n isLoading: boolean;\r\n}\r\n\r\n\r\nconst StyledDialog = styled(Dialog)(({ theme }) => ({\r\n '& .MuiDialog-paper': {\r\n color: theme.palette.background.default,\r\n borderRadius: theme.shape.borderRadius,\r\n maxWidth: '896px',\r\n width: '100%',\r\n maxHeight: '90vh',\r\n },\r\n}));\r\n\r\n\r\nconst NavButton = styled(IconButton)(({ theme }) => ({\r\n width: 'auto',\r\n height: '40px',\r\n borderRadius: (typeof theme.shape.borderRadius === 'string'\r\n ? parseInt(theme.shape.borderRadius, 10)\r\n : theme.shape.borderRadius || 4) * 2,\r\n border: `2px solid ${theme.palette.dark.main}`,\r\n backgroundColor: theme.palette.light.main,\r\n padding: theme.spacing(1, 2),\r\n '&:hover': {\r\n backgroundColor: theme.palette.grey[100], // Changed from dark.main to grey[100]\r\n color: theme.palette.dark.main, // Keep text dark instead of light\r\n borderColor: theme.palette.dark.main, // Keep border dark\r\n },\r\n}));\r\n\r\nfunction mapStatusToVariableState(status: string): VariableState | undefined {\r\n switch (status) {\r\n case \"Accepted\":\r\n return VariableState.Accepted;\r\n case \"Pending\":\r\n return VariableState.Pending;\r\n case \"Rejected\":\r\n return VariableState.Rejected;\r\n case \"Not Accepted\":\r\n return VariableState.NotAccepted;\r\n case \"Draft\":\r\n return VariableState.Draft;\r\n default:\r\n return undefined;\r\n }\r\n}\r\n\r\n\r\nfunction mapRequirementTypeToState(reqType: string): RequirementType | undefined {\r\n switch (reqType) {\r\n case \"Default\":\r\n return RequirementType.Default;\r\n case \"Optional\":\r\n return RequirementType.Optional;\r\n default:\r\n return undefined;\r\n }\r\n}\r\n\r\n\r\n\r\n\r\nexport const Modal: React.FC<ModalProps> = ({\r\n isOpen,\r\n onClose,\r\n status,\r\n requirementType,\r\n description,\r\n defaultText,\r\n note,\r\n onSave,\r\n onSubmit,\r\n successMessage,\r\n errorMessage,\r\n onDeclineWording,\r\n onPrevious,\r\n onNext,\r\n currentPage = 1,\r\n totalPages = 1,\r\n isLoading\r\n}) => {\r\n const variableState = mapStatusToVariableState(status);\r\n const variableReqType = mapRequirementTypeToState(requirementType)\r\n\r\n const [textValue, setTextValue] = useState(defaultText);\r\n const [useDefaultValue, setUseDefaultValue] = useState(true);\r\n const [isSaving, setIsSaving] = useState(false);\r\n const [isSubmitting, setIsSubmitting] = useState(false);\r\n\r\n useEffect(() => {\r\n if (variableState === (VariableState.Pending || VariableState.Draft)) {\r\n setUseDefaultValue(false);\r\n }\r\n }, [status]);\r\n\r\n useEffect(() => {\r\n if (!isOpen) {\r\n setIsSaving(false);\r\n setIsSubmitting(false);\r\n }\r\n }, [isOpen]);\r\n\r\n useEffect(() => {\r\n if (successMessage && successMessage !== '') {\r\n toast.success(successMessage);\r\n }\r\n }, [successMessage]);\r\n \r\n useEffect(() => {\r\n if (errorMessage && errorMessage !== '') {\r\n toast.error(errorMessage);\r\n }\r\n }, [errorMessage]);\r\n \r\n useEffect(() => {\r\n if (!isLoading) {\r\n setIsSaving(false);\r\n setIsSubmitting(false);\r\n }\r\n }, [isLoading]);\r\n\r\n useEffect(() => {\r\n if (useDefaultValue) {\r\n setTextValue(defaultText);\r\n }\r\n }, [defaultText, useDefaultValue]);\r\n\r\n\r\n const handleUseDefaultValueChange = (event: React.ChangeEvent<HTMLInputElement>) => {\r\n setUseDefaultValue(event.target.checked);\r\n };\r\n\r\n\r\n const canSubmitSave = isLoading || variableState === VariableState.Pending\r\n\r\n const statusConfig = {\r\n [VariableState.Pending]: { color: '#F5A623', label: 'Pending' },\r\n [VariableState.Draft]: { color: '#F5D76E', label: 'Draft' },\r\n [VariableState.NotAccepted]: { color: '#A3D977', label: 'Not Accepted' },\r\n [VariableState.Rejected]: { color: '#F56B6B', label: 'Rejected' },\r\n [VariableState.Accepted]: { color: '#A3D977', label: 'Accepted' },\r\n };\r\n\r\n const reqTypeConfig = {\r\n [RequirementType.Default]: { color: '#F5A623', label: 'Mandatory' },\r\n [RequirementType.Optional]: { color: '#F5D76E', label: 'Optional' },\r\n };\r\n\r\n const statusStyle = variableState ? statusConfig[variableState] : { color: '#ccc', label: 'Unknown' };;\r\n const requirementTypeStyle = variableReqType ? reqTypeConfig[variableReqType] : { color: '#ccc', label: 'Unknown' };;\r\n\r\n\r\n const handleSave = () => {\r\n setIsSaving(true);\r\n onSave?.(textValue, useDefaultValue);\r\n };\r\n\r\n\r\n const handleSubmit = () => {\r\n setIsSubmitting(true);\r\n onSubmit?.(textValue, useDefaultValue);\r\n };\r\n\r\n\r\n return (\r\n <StyledDialog open={isOpen} onClose={onClose} maxWidth=\"md\" fullWidth>\r\n <IconButton\r\n onClick={onClose}\r\n disabled={isLoading}\r\n sx={{\r\n position: 'absolute',\r\n top: 16,\r\n right: 16,\r\n zIndex: 1,\r\n }}\r\n >\r\n <CloseRounded sx={{ fontSize: 24 }} />\r\n </IconButton>\r\n\r\n\r\n <DialogContent sx={{ p: { xs: 3, sm: 4, md: 6 } }}>\r\n {/* Status Chip */}\r\n <Box sx={{ mb: 3}}>\r\n <Chip\r\n label={requirementTypeStyle.label.toUpperCase()}\r\n sx={{\r\n mr: 3,\r\n backgroundColor: requirementTypeStyle.color,\r\n color: variableReqType === (RequirementType.Default || RequirementType.Optional) ? '#4D3019' : '#fff',\r\n fontWeight: 600,\r\n fontSize: '0.875rem',\r\n height: 'auto',\r\n py: 1,\r\n borderRadius: 0,\r\n px: 2,\r\n }}\r\n />\r\n <Chip\r\n label={statusStyle.label.toUpperCase()}\r\n sx={{\r\n mr: 3,\r\n backgroundColor: statusStyle.color,\r\n color: variableState === (VariableState.NotAccepted || VariableState.Pending) ? '#4D3019' : '#fff',\r\n fontWeight: 600,\r\n fontSize: '0.875rem',\r\n height: 'auto',\r\n py: 1,\r\n borderRadius: 0,\r\n px: 2,\r\n }}\r\n />\r\n </Box>\r\n\r\n\r\n {/* Description */}\r\n <Typography sx={{ mb: 3, lineHeight: 1.6, whiteSpace: 'pre-line' }}>\r\n {description}\r\n </Typography>\r\n\r\n\r\n {/* Alerts */}\r\n {variableState === VariableState.Rejected && note && (\r\n <Alert\r\n variant=\"error\"\r\n sx={{\r\n mb: 2\r\n }}\r\n >\r\n {note}\r\n </Alert>\r\n )}\r\n\r\n\r\n {variableState !== VariableState.Rejected && note && (\r\n <Alert\r\n variant=\"info\"\r\n sx={{\r\n mb: 2\r\n }}\r\n >\r\n {note}\r\n </Alert>\r\n )}\r\n\r\n\r\n {/* Text Field */}\r\n <TextField\r\n multiline\r\n rows={6}\r\n fullWidth\r\n value={textValue}\r\n onChange={(e) => setTextValue(e.target.value)}\r\n disabled={useDefaultValue || canSubmitSave}\r\n sx={{\r\n mb: 2,\r\n '& .MuiOutlinedInput-root': {\r\n backgroundColor: useDefaultValue || canSubmitSave ? 'rgba(0, 0, 0, 0.05)' : '#fff',\r\n borderRadius: 2,\r\n },\r\n }}\r\n />\r\n\r\n\r\n {/* Checkbox */}\r\n <FormControlLabel\r\n control={\r\n <Checkbox\r\n checked={useDefaultValue}\r\n disabled={canSubmitSave}\r\n onChange={handleUseDefaultValueChange}\r\n sx={{\r\n color: '#AC46FF',\r\n '&.Mui-checked': {\r\n color: '#AC46FF',\r\n },\r\n }}\r\n />\r\n }\r\n label=\"Use Default Value\"\r\n sx={{ mb: 3 }}\r\n />\r\n\r\n\r\n {/* Footer with Buttons and Navigation */}\r\n <Box\r\n sx={{\r\n display: 'flex',\r\n flexDirection: { xs: 'column', sm: 'row' },\r\n alignItems: { xs: 'stretch', sm: 'center' },\r\n justifyContent: 'space-between',\r\n gap: 2,\r\n pt: 3,\r\n borderTop: '1px solid',\r\n borderColor: 'divider',\r\n }}\r\n >\r\n {/* Action Buttons */}\r\n <Box sx={{ display: 'flex', gap: 1.5, flexWrap: 'wrap' }}>\r\n <Button\r\n onClick={handleSave}\r\n variant=\"outline\"\r\n size=\"md\"\r\n disabled={canSubmitSave}\r\n >\r\n {isSaving ? <><CircularProgress size={20} /><Typography sx={{paddingLeft: 2}}>Saving...</Typography></> : \"Save\"}\r\n </Button>\r\n <Button\r\n onClick={handleSubmit}\r\n variant=\"outline\"\r\n size=\"md\"\r\n disabled={canSubmitSave}\r\n sx={{\r\n backgroundColor: '#ac46ff52',\r\n '&:hover': {\r\n backgroundColor: '#ac46ff80',\r\n },\r\n }}\r\n >\r\n {isSubmitting ? <><CircularProgress size={20} /><Typography sx={{paddingLeft: 2}}>Submitting...</Typography></> : \"Submit for review\"}\r\n </Button>\r\n {variableReqType === RequirementType.Optional? \r\n (\r\n <Button onClick={onDeclineWording} variant=\"outline\" size=\"md\" sx={{\r\n backgroundColor: '#ff464652',\r\n '&:hover': {\r\n backgroundColor: '#ff464680', // Darker purple on hover\r\n }\r\n }}\r\n disabled={canSubmitSave}\r\n >\r\n Decline wording\r\n </Button>\r\n ) : \r\n (\r\n <>\r\n </>\r\n )\r\n }\r\n </Box>\r\n\r\n\r\n {/* Navigation */}\r\n <Box\r\n sx={{\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: 1.5,\r\n justifyContent: { xs: 'space-between', sm: 'flex-end' },\r\n }}\r\n >\r\n <Typography fontWeight={500} fontSize=\"1.125rem\">\r\n {currentPage}/{totalPages}\r\n </Typography>\r\n <NavButton onClick={onPrevious} aria-label=\"Previous\" disabled={isLoading}>\r\n <Typography sx={{ fontSize: 16, fontWeight: 500 }}>Previous</Typography>\r\n </NavButton>\r\n <NavButton onClick={onNext} aria-label=\"Next\" disabled={isLoading}>\r\n <Typography sx={{ fontSize: 16, fontWeight: 500 }}>Next</Typography>\r\n </NavButton>\r\n </Box>\r\n </Box>\r\n </DialogContent>\r\n </StyledDialog>\r\n );\r\n};\r\n"],"names":["styled","Dialog","IconButton","useState","useEffect","toast","_jsxs","_jsx","CloseRounded","DialogContent","Box","Chip","Typography","Alert","TextField","FormControlLabel","Checkbox","Button","_Fragment","CircularProgress"],"mappings":"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"}
@@ -93,8 +93,8 @@ const Sidebar = ({ isOpen, onToggle, centreName = "Centre name goes here \n acro
93
93
  ];
94
94
  const renderPolicyItems = (items, depth = 0) => {
95
95
  return items.map((item) => {
96
- const hasChildren = item.items && item.items.length > 0;
97
- const isExpanded = expandedPolicies.includes(item.id);
96
+ const hasChildren = item.children && item.children.length > 0;
97
+ const isExpanded = expandedPolicies.includes(item.o);
98
98
  const paddingLeft = 8 + (depth * 2);
99
99
  return (jsxRuntime.jsxs(material.Box, { children: [jsxRuntime.jsx(material.Box, { sx: { display: 'flex', alignItems: 'stretch' }, children: jsxRuntime.jsxs(material.ListItemButton, { disableRipple: true, sx: {
100
100
  flex: 1,
@@ -111,15 +111,15 @@ const Sidebar = ({ isOpen, onToggle, centreName = "Centre name goes here \n acro
111
111
  }, children: [jsxRuntime.jsx(material.Box, { sx: {
112
112
  cursor: 'pointer',
113
113
  flex: 1
114
- }, onClick: () => window.location.href = item.url, children: jsxRuntime.jsx(material.ListItemText, { primary: item.title, primaryTypographyProps: { fontSize: '0.875rem' } }) }), hasChildren && (jsxRuntime.jsx(material.IconButton, { onClick: (e) => {
114
+ }, onClick: () => window.location.href = item.url, children: jsxRuntime.jsx(material.ListItemText, { primary: item.text, primaryTypographyProps: { fontSize: '0.875rem' } }) }), hasChildren && (jsxRuntime.jsx(material.IconButton, { onClick: (e) => {
115
115
  e.stopPropagation();
116
- togglePolicyItem(item.id);
116
+ togglePolicyItem(item.o);
117
117
  }, disableRipple: true, children: jsxRuntime.jsx(iconsMaterial.ChevronRightRounded, { sx: {
118
118
  fontSize: 16,
119
119
  color: '#4D3019',
120
120
  transition: 'transform 0.2s',
121
121
  transform: isExpanded ? 'rotate(90deg)' : 'rotate(0deg)',
122
- } }) }))] }) }), 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));
122
+ } }) }))] }) }), hasChildren && isExpanded && (jsxRuntime.jsx(material.Collapse, { in: true, timeout: "auto", children: jsxRuntime.jsx(material.List, { sx: { p: 0, mt: 0.5 }, children: renderPolicyItems(item.children, depth + 1) }) }))] }, item.id));
123
123
  });
124
124
  };
125
125
  const toggleItem = (itemId) => {