ece-docs-components 1.0.32 → 1.0.34
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/components/FileUploadButton.js +29 -2
- package/dist/cjs/components/FileUploadButton.js.map +1 -1
- package/dist/cjs/components/Header.js +2 -2
- package/dist/cjs/components/Header.js.map +1 -1
- package/dist/esm/components/FileUploadButton.js +29 -2
- package/dist/esm/components/FileUploadButton.js.map +1 -1
- package/dist/esm/components/Header.js +2 -2
- package/dist/esm/components/Header.js.map +1 -1
- package/package.json +1 -1
|
@@ -5,6 +5,7 @@ var React = require('react');
|
|
|
5
5
|
var Button = require('./Button.js');
|
|
6
6
|
var styles = require('@mui/material/styles');
|
|
7
7
|
var iconsMaterial = require('@mui/icons-material');
|
|
8
|
+
var reactToastify = require('react-toastify');
|
|
8
9
|
|
|
9
10
|
const HiddenInput = styles.styled('input')({
|
|
10
11
|
display: 'none',
|
|
@@ -12,8 +13,34 @@ const HiddenInput = styles.styled('input')({
|
|
|
12
13
|
const FileUploadButton = ({ id, label = 'Upload File', accept, multiple = false, onFileSelect, variant = 'primary', size = 'md', }) => {
|
|
13
14
|
const handleFileChange = (event) => {
|
|
14
15
|
const files = event.target.files;
|
|
15
|
-
if (
|
|
16
|
-
onFileSelect(files);
|
|
16
|
+
if (!files || files.length === 0) {
|
|
17
|
+
onFileSelect?.(files);
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
// If multiple, filter; if single, validate the first
|
|
21
|
+
if (multiple) {
|
|
22
|
+
const valid = [];
|
|
23
|
+
for (const f of Array.from(files)) {
|
|
24
|
+
if (f.size > (25 * 1024 * 1024))
|
|
25
|
+
continue;
|
|
26
|
+
valid.push(f);
|
|
27
|
+
}
|
|
28
|
+
const dt = new DataTransfer();
|
|
29
|
+
valid.forEach((f) => dt.items.add(f));
|
|
30
|
+
onFileSelect?.(dt.files);
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
const f = files[0];
|
|
34
|
+
if (f.size > (25 * 1024 * 1024)) {
|
|
35
|
+
// Notify user and abort selection
|
|
36
|
+
// Example: toast.error('File exceeds 5MB');
|
|
37
|
+
reactToastify.toast.error('File exceeds 25MB');
|
|
38
|
+
onFileSelect?.(null);
|
|
39
|
+
// Clear the input so user can reselect
|
|
40
|
+
event.target.value = '';
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
onFileSelect?.(files);
|
|
17
44
|
}
|
|
18
45
|
};
|
|
19
46
|
const autoId = React.useId();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileUploadButton.js","sources":["../../../../src/components/FileUploadButton.tsx"],"sourcesContent":["import React, { useId } from 'react';\r\nimport { Button } from './Button'; // Import your existing styled button component\r\nimport { styled } from '@mui/material/styles';\r\nimport { FileUploadRounded } from '@mui/icons-material';\r\n\r\ninterface FileUploadButtonProps {\r\n id?: string;\r\n label?: string;\r\n accept?: string;\r\n multiple?: boolean;\r\n onFileSelect?: (files: FileList | null) => void;\r\n variant?: 'primary' | 'secondary' | 'outline' | 'marked-read' | 'mark-read' | 'danger';\r\n size?: 'sm' | 'md' | 'lg';\r\n}\r\n\r\nconst HiddenInput = styled('input')({\r\n display: 'none',\r\n});\r\n\r\nexport const FileUploadButton: React.FC<FileUploadButtonProps> = ({\r\n id,\r\n label = 'Upload File',\r\n accept,\r\n multiple = false,\r\n onFileSelect,\r\n variant = 'primary',\r\n size = 'md',\r\n}) => {\r\
|
|
1
|
+
{"version":3,"file":"FileUploadButton.js","sources":["../../../../src/components/FileUploadButton.tsx"],"sourcesContent":["import React, { useId } from 'react';\r\nimport { Button } from './Button'; // Import your existing styled button component\r\nimport { styled } from '@mui/material/styles';\r\nimport { FileUploadRounded } from '@mui/icons-material';\r\nimport { toast } from 'react-toastify';\r\n\r\ninterface FileUploadButtonProps {\r\n id?: string;\r\n label?: string;\r\n accept?: string;\r\n multiple?: boolean;\r\n onFileSelect?: (files: FileList | null) => void;\r\n variant?: 'primary' | 'secondary' | 'outline' | 'marked-read' | 'mark-read' | 'danger';\r\n size?: 'sm' | 'md' | 'lg';\r\n}\r\n\r\nconst HiddenInput = styled('input')({\r\n display: 'none',\r\n});\r\n\r\nexport const FileUploadButton: React.FC<FileUploadButtonProps> = ({\r\n id,\r\n label = 'Upload File',\r\n accept,\r\n multiple = false,\r\n onFileSelect,\r\n variant = 'primary',\r\n size = 'md',\r\n}) => {\r\nconst handleFileChange = (event: React.ChangeEvent<HTMLInputElement>) => {\r\n const files = event.target.files;\r\n\r\n if (!files || files.length === 0) {\r\n onFileSelect?.(files);\r\n return;\r\n }\r\n\r\n // If multiple, filter; if single, validate the first\r\n if (multiple) {\r\n const valid: File[] = [];\r\n for (const f of Array.from(files)) {\r\n if ((25 * 1024 * 1024) && f.size > (25 * 1024 * 1024)) continue;\r\n valid.push(f);\r\n }\r\n const dt = new DataTransfer();\r\n valid.forEach((f) => dt.items.add(f));\r\n onFileSelect?.(dt.files);\r\n } else {\r\n const f = files[0];\r\n if ((25 * 1024 * 1024) && f.size > (25 * 1024 * 1024)) {\r\n // Notify user and abort selection\r\n // Example: toast.error('File exceeds 5MB');\r\n toast.error('File exceeds 25MB')\r\n onFileSelect?.(null);\r\n // Clear the input so user can reselect\r\n event.target.value = '';\r\n return;\r\n }\r\n onFileSelect?.(files);\r\n }\r\n };\r\n const autoId = useId(); \r\n const inputId = id || `file-upload-${autoId}`;\r\n return (\r\n <label htmlFor={inputId}>\r\n <HiddenInput\r\n id={inputId}\r\n type=\"file\"\r\n accept={accept}\r\n multiple={multiple}\r\n onChange={handleFileChange}\r\n />\r\n <Button\r\n component=\"span\"\r\n variant={variant}\r\n size={size}\r\n >\r\n <FileUploadRounded/>{label}\r\n </Button>\r\n </label>\r\n );\r\n};\r\n"],"names":["styled","toast","useId","_jsxs","_jsx","Button","FileUploadRounded"],"mappings":";;;;;;;;;AAgBA,MAAM,WAAW,GAAGA,aAAM,CAAC,OAAO,CAAC,CAAC;AAClC,IAAA,OAAO,EAAE,MAAM;AAChB,CAAA,CAAC;AAEK,MAAM,gBAAgB,GAAoC,CAAC,EAChE,EAAE,EACF,KAAK,GAAG,aAAa,EACrB,MAAM,EACN,QAAQ,GAAG,KAAK,EAChB,YAAY,EACZ,OAAO,GAAG,SAAS,EACnB,IAAI,GAAG,IAAI,GACZ,KAAI;AACL,IAAA,MAAM,gBAAgB,GAAG,CAAC,KAA0C,KAAI;AACpE,QAAA,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK;QAEhC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AAChC,YAAA,YAAY,GAAG,KAAK,CAAC;YACrB;QACF;;QAGA,IAAI,QAAQ,EAAE;YACZ,MAAM,KAAK,GAAW,EAAE;YACxB,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AACjC,gBAAA,IAA0B,CAAC,CAAC,IAAI,IAAI,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;oBAAE;AACvD,gBAAA,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;YACf;AACA,YAAA,MAAM,EAAE,GAAG,IAAI,YAAY,EAAE;AAC7B,YAAA,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACrC,YAAA,YAAY,GAAG,EAAE,CAAC,KAAK,CAAC;QAC1B;aAAO;AACL,YAAA,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;YAClB,IAA0B,CAAC,CAAC,IAAI,IAAI,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,EAAE;;;AAGrD,gBAAAC,mBAAK,CAAC,KAAK,CAAC,mBAAmB,CAAC;AAChC,gBAAA,YAAY,GAAG,IAAI,CAAC;;AAEpB,gBAAA,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,EAAE;gBACvB;YACF;AACA,YAAA,YAAY,GAAG,KAAK,CAAC;QACvB;AACF,IAAA,CAAC;AACD,IAAA,MAAM,MAAM,GAAGC,WAAK,EAAE;AACtB,IAAA,MAAM,OAAO,GAAG,EAAE,IAAI,CAAA,YAAA,EAAe,MAAM,EAAE;IAC7C,QACEC,eAAA,CAAA,OAAA,EAAA,EAAO,OAAO,EAAE,OAAO,aACrBC,cAAA,CAAC,WAAW,EAAA,EACV,EAAE,EAAE,OAAO,EACX,IAAI,EAAC,MAAM,EACX,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,gBAAgB,EAAA,CAC1B,EACFD,eAAA,CAACE,aAAM,EAAA,EACL,SAAS,EAAC,MAAM,EAChB,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,IAAI,EAAA,QAAA,EAAA,CAEVD,cAAA,CAACE,+BAAiB,EAAA,EAAA,CAAE,EAAC,KAAK,CAAA,EAAA,CACnB,CAAA,EAAA,CACH;AAEZ;;;;"}
|
|
@@ -178,10 +178,10 @@ const Header = ({ userName = 'John Doe', userInitials = 'JD', toggleMenu, signOu
|
|
|
178
178
|
};
|
|
179
179
|
return (jsxRuntime.jsxs(StyledHeader, { children: [signUpStatus !== 'Active' && jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(material.IconButton, { disableRipple: true, onClick: toggleMenu, sx: {
|
|
180
180
|
display: { xs: 'block', md: 'none' }
|
|
181
|
-
}, children: jsxRuntime.jsx(iconsMaterial.MenuRounded, { sx: { fontSize: 32, color: 'white' } }) }), jsxRuntime.jsx(material.Divider, { orientation: 'vertical', sx: { color: '#FFFFFF', borderRightWidth: 2, display: { xs: 'block', md: 'none' } } })] }), jsxRuntime.jsx(StyledLogoWrapper, { children: jsxRuntime.jsx(StyledLogoIcon, { children: jsxRuntime.jsx(StyledLogoSvg, {}) }) }), signUpStatus
|
|
181
|
+
}, children: jsxRuntime.jsx(iconsMaterial.MenuRounded, { sx: { fontSize: 32, color: 'white' } }) }), jsxRuntime.jsx(material.Divider, { orientation: 'vertical', sx: { color: '#FFFFFF', borderRightWidth: 2, display: { xs: 'block', md: 'none' } } })] }), jsxRuntime.jsx(StyledLogoWrapper, { children: jsxRuntime.jsx(StyledLogoIcon, { children: jsxRuntime.jsx(StyledLogoSvg, {}) }) }), signUpStatus === 'Active' &&
|
|
182
182
|
jsxRuntime.jsx(StyledSearchContainer, { children: jsxRuntime.jsx(StyledTextField, { placeholder: "Search for a policy", variant: "outlined", fullWidth: true, sx: { display: { xs: 'none', sm: 'none', md: 'block' } }, InputProps: {
|
|
183
183
|
endAdornment: (jsxRuntime.jsx(StyledSearchButton, { children: jsxRuntime.jsx(StyledSearchIcon, { children: jsxRuntime.jsx(iconsMaterial.SearchRounded, {}) }) })),
|
|
184
|
-
} }) }), jsxRuntime.jsxs(StyledUserContainer, { children: [signUpStatus
|
|
184
|
+
} }) }), jsxRuntime.jsxs(StyledUserContainer, { children: [signUpStatus === 'Active' &&
|
|
185
185
|
jsxRuntime.jsx(StyledSearchButton, { disableRipple: true, onClick: search, sx: {
|
|
186
186
|
display: { xs: 'flex', md: 'none' },
|
|
187
187
|
backgroundColor: '#ffffff83'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Header.js","sources":["../../../../src/components/Header.tsx"],"sourcesContent":["\r\n\r\nimport React from 'react';\r\nimport { Box, styled, Typography, TextField, IconButton, Divider } from '@mui/material';\r\nimport { useTheme } from '../ThemeProvider';\r\nimport { MenuRounded, SchoolRounded, SearchRounded } from '@mui/icons-material';\r\nimport PopoverMenu from './PopoverMenu';\r\nimport { ReactComponent as Logo } from '../images/PrimaryLogo_Variation_Cream.svg';\r\n\r\ntype SignUpStatus = 'Withdrawn' | 'Onboarding' | 'Active' | 'In Review';\r\ninterface HeaderProps {\r\n userName?: string;\r\n userInitials?: string;\r\n toggleMenu: () => void;\r\n signOut: () => void;\r\n search?: () => void;\r\n signUpStatus: SignUpStatus;\r\n}\r\n\r\nconst StyledHeader = styled(Box)(({ theme }) => ({\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'space-between',\r\n backgroundColor: theme.palette.primary.main, // var(--color-primary)\r\n [theme.breakpoints.up('md')]: {\r\n gap: theme.spacing(4), // md:gap-4\r\n padding: theme.spacing(1.5, 1.5), // px-4 py-3\r\n },\r\n [theme.breakpoints.down('md')]: {\r\n padding: 0, // px-4 py-3\r\n },\r\n}));\r\n\r\nconst StyledLogoWrapper = styled(Box)(({ theme }) => ({\r\n display: 'flex',\r\n alignItems: 'center',\r\n padding: theme.spacing(1.5),\r\n gap: theme.spacing(2),\r\n height: '64px', \r\n}));\r\n\r\n\r\nconst StyledLogoIcon = styled(Box)(({ theme }) => ({\r\n width: '100%',\r\n height: '100%',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n color: theme.palette.light.main,\r\n}));\r\n\r\n\r\nconst StyledLogoText = styled(Typography)(({ theme }) => ({\r\n color: theme.palette.light.main, // text-[#FDFCEE]\r\n fontWeight: 700, // font-bold\r\n letterSpacing: '0.05em', // tracking-wide\r\n fontSize: '1.5rem', // text-2xl\r\n [theme.breakpoints.down('md')]: {\r\n fontSize: '1.25rem', // sm:text-xl\r\n },\r\n [theme.breakpoints.down('sm')]: {\r\n fontSize: '1.125rem', // text-lg\r\n },\r\n}));\r\n\r\nconst StyledLogoSvg = styled(Logo)`\r\n width: 100%;\r\n height: 100%;\r\n display: block;\r\n`;\r\n\r\n\r\nconst StyledSearchContainer = styled(Box)(({ theme }) => ({\r\n flex: 1,\r\n maxWidth: '32rem', // max-w-2xl\r\n margin: theme.spacing(0, 2), // mx-8\r\n position: 'relative',\r\n}));\r\n\r\nconst StyledTextField = styled(TextField)(({ theme }) => ({\r\n '& .MuiInputBase-root': {\r\n backgroundColor: theme.palette.light.main, // bg-[#FDFCEE]\r\n color: theme.palette.dark.main, // text-[#4D3019]\r\n borderRadius: '9999px', // rounded-full\r\n fontSize: '1rem', // text-base\r\n [theme.breakpoints.down('md')]: {\r\n paddingRight: theme.spacing(5), // sm:pr-10\r\n fontSize: '0.875rem', // text-sm\r\n },\r\n },\r\n '& .MuiInputBase-input': {\r\n padding: theme.spacing(1.5, 3), // px-4 py-2\r\n [theme.breakpoints.up('md')]: {\r\n padding: theme.spacing(1.5, 4), // md:px-6 md:py-3\r\n },\r\n [theme.breakpoints.down('sm')]: {\r\n padding: theme.spacing(1.5, 2.5), // sm:px-5\r\n },\r\n },\r\n '& .MuiInputBase-input::placeholder': {\r\n color: `${theme.palette.dark.main}99`, // placeholder-[#4D3019]/60\r\n opacity: 1,\r\n },\r\n '& .MuiInputBase-root:focus-within': {\r\n outline: `2px solid ${theme.palette.light.main}`, // focus:ring-2 focus:ring-[#FDFCEE]\r\n outlineOffset: 0,\r\n },\r\n}));\r\n\r\nconst StyledSearchButton = styled(IconButton)(({ theme }) => ({\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n position: 'static',\r\n borderRadius: '50%',\r\n backgroundColor: theme.palette.primary.main,\r\n width: theme.spacing(5),\r\n height: theme.spacing(5),\r\n [theme.breakpoints.down('md')]: {\r\n width: theme.spacing(5),\r\n height: theme.spacing(5),\r\n marginRight: theme.spacing(1),\r\n },\r\n [theme.breakpoints.down('sm')]: {\r\n marginRight: theme.spacing(0.5),\r\n },\r\n '&:hover': {\r\n opacity: 0.9,\r\n backgroundColor: theme.palette.primary.main,\r\n },\r\n}));\r\n\r\nconst StyledSearchIcon = styled(Box)(({ theme }) => ({\r\n display: 'flex', \r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n color: theme.palette.light.main,\r\n width: '100%',\r\n height: '100%',\r\n '& svg': {\r\n fontSize: '1.5rem',\r\n [theme.breakpoints.down('sm')]: {\r\n fontSize: '1.25rem',\r\n },\r\n },\r\n}));\r\n\r\nconst StyledUserContainer = styled(Box)(({ theme }) => ({\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: theme.spacing(3), // md:gap-3\r\n [theme.breakpoints.down('md')]: {\r\n gap: 0,\r\n },\r\n}));\r\n\r\nconst StyledAvatar = styled(Box)(({ theme }) => ({\r\n width: theme.spacing(6), // md:w-12\r\n height: theme.spacing(6), // md:h-12\r\n borderRadius: '50%', // rounded-full\r\n backgroundColor: theme.palette.light.main, // bg-[#FDFCEE]\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n flexShrink: 0,\r\n [theme.breakpoints.down('md')]: {\r\n width: theme.spacing(5), // sm:w-10\r\n height: theme.spacing(5), // sm:h-10\r\n }\r\n}));\r\n\r\nconst StyledAvatarText = styled(Typography)(({ theme }) => ({\r\n color: theme.palette.dark.main, // text-[#4D3019]\r\n fontWeight: 700, // font-bold\r\n fontSize: '1.125rem', // text-lg\r\n [theme.breakpoints.down('md')]: {\r\n fontSize: '0.875rem', // text-sm\r\n },\r\n}));\r\n\r\nconst StyledUserName = styled(Typography)(({ theme }) => ({\r\n color: theme.palette.light.main, // text-[#FDFCEE]\r\n fontWeight: 500, // font-medium\r\n marginLeft: theme.spacing(1),\r\n fontSize: '1.125rem', // text-lg\r\n display: 'none', // hidden\r\n [theme.breakpoints.up('sm')]: {\r\n display: 'inline', // sm:inline\r\n },\r\n [theme.breakpoints.down('md')]: {\r\n fontSize: '0.875rem', // text-sm\r\n display: 'none'\r\n },\r\n}));\r\n\r\nexport const Header: React.FC<HeaderProps> = ({\r\n userName = 'John Doe',\r\n userInitials = 'JD',\r\n toggleMenu,\r\n signOut,\r\n search,\r\n signUpStatus,\r\n}) => {\r\n const theme = useTheme();\r\n const [anchorEl, setAnchorEl] = React.useState<HTMLButtonElement | null>(null);\r\n\r\n const handleOpen = (event: React.MouseEvent<HTMLButtonElement>) => {\r\n setAnchorEl(event.currentTarget);\r\n };\r\n\r\n const handleClose = () => {\r\n setAnchorEl(null);\r\n };\r\n\r\n return (\r\n <StyledHeader>\r\n {signUpStatus !== 'Active' && <>\r\n <IconButton disableRipple onClick={toggleMenu} sx={{\r\n display: {xs: 'block', md: 'none'}\r\n }}>\r\n <MenuRounded sx={{fontSize: 32, color: 'white'}}/>\r\n </IconButton>\r\n <Divider orientation='vertical' sx={{color: '#FFFFFF',borderRightWidth: 2,display: {xs: 'block', md: 'none'}}}/>\r\n </>\r\n }\r\n <StyledLogoWrapper>\r\n <StyledLogoIcon>\r\n <StyledLogoSvg/>\r\n </StyledLogoIcon>\r\n </StyledLogoWrapper>\r\n\r\n {/* Search input for md+ screens */}\r\n {signUpStatus !== 'Active' &&\r\n <StyledSearchContainer >\r\n <StyledTextField\r\n placeholder=\"Search for a policy\"\r\n variant=\"outlined\"\r\n fullWidth\r\n sx={{ display: { xs: 'none', sm: 'none', md: 'block' } }}\r\n InputProps={{\r\n endAdornment: (\r\n <StyledSearchButton>\r\n <StyledSearchIcon>\r\n <SearchRounded />\r\n </StyledSearchIcon>\r\n </StyledSearchButton>\r\n ),\r\n }}\r\n />\r\n </StyledSearchContainer>\r\n }\r\n\r\n <StyledUserContainer>\r\n {/* Search button only visible on XS screens */}\r\n {signUpStatus !== 'Active' &&\r\n <StyledSearchButton\r\n disableRipple\r\n onClick={search}\r\n sx={{\r\n display: { xs: 'flex', md: 'none' },\r\n backgroundColor: '#ffffff83'\r\n }}\r\n >\r\n <StyledSearchIcon>\r\n <SearchRounded />\r\n </StyledSearchIcon>\r\n </StyledSearchButton>\r\n }\r\n <IconButton onClick={handleOpen} disableRipple>\r\n <StyledAvatar>\r\n <StyledAvatarText>{userInitials}</StyledAvatarText>\r\n </StyledAvatar>\r\n <StyledUserName>{userName}</StyledUserName>\r\n </IconButton>\r\n </StyledUserContainer>\r\n\r\n <PopoverMenu\r\n anchorEl={anchorEl}\r\n onClose={handleClose}\r\n signOut={()=>{signOut(); handleClose();}}\r\n />\r\n </StyledHeader>\r\n );\r\n};"],"names":["styled","Box","Typography","Logo","TextField","IconButton","_jsxs","_Fragment","_jsx","MenuRounded","Divider","SearchRounded","PopoverMenu"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Header.js","sources":["../../../../src/components/Header.tsx"],"sourcesContent":["\r\n\r\nimport React from 'react';\r\nimport { Box, styled, Typography, TextField, IconButton, Divider } from '@mui/material';\r\nimport { useTheme } from '../ThemeProvider';\r\nimport { MenuRounded, SchoolRounded, SearchRounded } from '@mui/icons-material';\r\nimport PopoverMenu from './PopoverMenu';\r\nimport { ReactComponent as Logo } from '../images/PrimaryLogo_Variation_Cream.svg';\r\n\r\ntype SignUpStatus = 'Withdrawn' | 'Onboarding' | 'Active' | 'In Review';\r\ninterface HeaderProps {\r\n userName?: string;\r\n userInitials?: string;\r\n toggleMenu: () => void;\r\n signOut: () => void;\r\n search?: () => void;\r\n signUpStatus: SignUpStatus;\r\n}\r\n\r\nconst StyledHeader = styled(Box)(({ theme }) => ({\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'space-between',\r\n backgroundColor: theme.palette.primary.main, // var(--color-primary)\r\n [theme.breakpoints.up('md')]: {\r\n gap: theme.spacing(4), // md:gap-4\r\n padding: theme.spacing(1.5, 1.5), // px-4 py-3\r\n },\r\n [theme.breakpoints.down('md')]: {\r\n padding: 0, // px-4 py-3\r\n },\r\n}));\r\n\r\nconst StyledLogoWrapper = styled(Box)(({ theme }) => ({\r\n display: 'flex',\r\n alignItems: 'center',\r\n padding: theme.spacing(1.5),\r\n gap: theme.spacing(2),\r\n height: '64px', \r\n}));\r\n\r\n\r\nconst StyledLogoIcon = styled(Box)(({ theme }) => ({\r\n width: '100%',\r\n height: '100%',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n color: theme.palette.light.main,\r\n}));\r\n\r\n\r\nconst StyledLogoText = styled(Typography)(({ theme }) => ({\r\n color: theme.palette.light.main, // text-[#FDFCEE]\r\n fontWeight: 700, // font-bold\r\n letterSpacing: '0.05em', // tracking-wide\r\n fontSize: '1.5rem', // text-2xl\r\n [theme.breakpoints.down('md')]: {\r\n fontSize: '1.25rem', // sm:text-xl\r\n },\r\n [theme.breakpoints.down('sm')]: {\r\n fontSize: '1.125rem', // text-lg\r\n },\r\n}));\r\n\r\nconst StyledLogoSvg = styled(Logo)`\r\n width: 100%;\r\n height: 100%;\r\n display: block;\r\n`;\r\n\r\n\r\nconst StyledSearchContainer = styled(Box)(({ theme }) => ({\r\n flex: 1,\r\n maxWidth: '32rem', // max-w-2xl\r\n margin: theme.spacing(0, 2), // mx-8\r\n position: 'relative',\r\n}));\r\n\r\nconst StyledTextField = styled(TextField)(({ theme }) => ({\r\n '& .MuiInputBase-root': {\r\n backgroundColor: theme.palette.light.main, // bg-[#FDFCEE]\r\n color: theme.palette.dark.main, // text-[#4D3019]\r\n borderRadius: '9999px', // rounded-full\r\n fontSize: '1rem', // text-base\r\n [theme.breakpoints.down('md')]: {\r\n paddingRight: theme.spacing(5), // sm:pr-10\r\n fontSize: '0.875rem', // text-sm\r\n },\r\n },\r\n '& .MuiInputBase-input': {\r\n padding: theme.spacing(1.5, 3), // px-4 py-2\r\n [theme.breakpoints.up('md')]: {\r\n padding: theme.spacing(1.5, 4), // md:px-6 md:py-3\r\n },\r\n [theme.breakpoints.down('sm')]: {\r\n padding: theme.spacing(1.5, 2.5), // sm:px-5\r\n },\r\n },\r\n '& .MuiInputBase-input::placeholder': {\r\n color: `${theme.palette.dark.main}99`, // placeholder-[#4D3019]/60\r\n opacity: 1,\r\n },\r\n '& .MuiInputBase-root:focus-within': {\r\n outline: `2px solid ${theme.palette.light.main}`, // focus:ring-2 focus:ring-[#FDFCEE]\r\n outlineOffset: 0,\r\n },\r\n}));\r\n\r\nconst StyledSearchButton = styled(IconButton)(({ theme }) => ({\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n position: 'static',\r\n borderRadius: '50%',\r\n backgroundColor: theme.palette.primary.main,\r\n width: theme.spacing(5),\r\n height: theme.spacing(5),\r\n [theme.breakpoints.down('md')]: {\r\n width: theme.spacing(5),\r\n height: theme.spacing(5),\r\n marginRight: theme.spacing(1),\r\n },\r\n [theme.breakpoints.down('sm')]: {\r\n marginRight: theme.spacing(0.5),\r\n },\r\n '&:hover': {\r\n opacity: 0.9,\r\n backgroundColor: theme.palette.primary.main,\r\n },\r\n}));\r\n\r\nconst StyledSearchIcon = styled(Box)(({ theme }) => ({\r\n display: 'flex', \r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n color: theme.palette.light.main,\r\n width: '100%',\r\n height: '100%',\r\n '& svg': {\r\n fontSize: '1.5rem',\r\n [theme.breakpoints.down('sm')]: {\r\n fontSize: '1.25rem',\r\n },\r\n },\r\n}));\r\n\r\nconst StyledUserContainer = styled(Box)(({ theme }) => ({\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: theme.spacing(3), // md:gap-3\r\n [theme.breakpoints.down('md')]: {\r\n gap: 0,\r\n },\r\n}));\r\n\r\nconst StyledAvatar = styled(Box)(({ theme }) => ({\r\n width: theme.spacing(6), // md:w-12\r\n height: theme.spacing(6), // md:h-12\r\n borderRadius: '50%', // rounded-full\r\n backgroundColor: theme.palette.light.main, // bg-[#FDFCEE]\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n flexShrink: 0,\r\n [theme.breakpoints.down('md')]: {\r\n width: theme.spacing(5), // sm:w-10\r\n height: theme.spacing(5), // sm:h-10\r\n }\r\n}));\r\n\r\nconst StyledAvatarText = styled(Typography)(({ theme }) => ({\r\n color: theme.palette.dark.main, // text-[#4D3019]\r\n fontWeight: 700, // font-bold\r\n fontSize: '1.125rem', // text-lg\r\n [theme.breakpoints.down('md')]: {\r\n fontSize: '0.875rem', // text-sm\r\n },\r\n}));\r\n\r\nconst StyledUserName = styled(Typography)(({ theme }) => ({\r\n color: theme.palette.light.main, // text-[#FDFCEE]\r\n fontWeight: 500, // font-medium\r\n marginLeft: theme.spacing(1),\r\n fontSize: '1.125rem', // text-lg\r\n display: 'none', // hidden\r\n [theme.breakpoints.up('sm')]: {\r\n display: 'inline', // sm:inline\r\n },\r\n [theme.breakpoints.down('md')]: {\r\n fontSize: '0.875rem', // text-sm\r\n display: 'none'\r\n },\r\n}));\r\n\r\nexport const Header: React.FC<HeaderProps> = ({\r\n userName = 'John Doe',\r\n userInitials = 'JD',\r\n toggleMenu,\r\n signOut,\r\n search,\r\n signUpStatus,\r\n}) => {\r\n const theme = useTheme();\r\n const [anchorEl, setAnchorEl] = React.useState<HTMLButtonElement | null>(null);\r\n\r\n const handleOpen = (event: React.MouseEvent<HTMLButtonElement>) => {\r\n setAnchorEl(event.currentTarget);\r\n };\r\n\r\n const handleClose = () => {\r\n setAnchorEl(null);\r\n };\r\n\r\n return (\r\n <StyledHeader>\r\n {signUpStatus !== 'Active' && <>\r\n <IconButton disableRipple onClick={toggleMenu} sx={{\r\n display: {xs: 'block', md: 'none'}\r\n }}>\r\n <MenuRounded sx={{fontSize: 32, color: 'white'}}/>\r\n </IconButton>\r\n <Divider orientation='vertical' sx={{color: '#FFFFFF',borderRightWidth: 2,display: {xs: 'block', md: 'none'}}}/>\r\n </>\r\n }\r\n <StyledLogoWrapper>\r\n <StyledLogoIcon>\r\n <StyledLogoSvg/>\r\n </StyledLogoIcon>\r\n </StyledLogoWrapper>\r\n\r\n {/* Search input for md+ screens */}\r\n {signUpStatus === 'Active' &&\r\n <StyledSearchContainer >\r\n <StyledTextField\r\n placeholder=\"Search for a policy\"\r\n variant=\"outlined\"\r\n fullWidth\r\n sx={{ display: { xs: 'none', sm: 'none', md: 'block' } }}\r\n InputProps={{\r\n endAdornment: (\r\n <StyledSearchButton>\r\n <StyledSearchIcon>\r\n <SearchRounded />\r\n </StyledSearchIcon>\r\n </StyledSearchButton>\r\n ),\r\n }}\r\n />\r\n </StyledSearchContainer>\r\n }\r\n\r\n <StyledUserContainer>\r\n {/* Search button only visible on XS screens */}\r\n {signUpStatus === 'Active' &&\r\n <StyledSearchButton\r\n disableRipple\r\n onClick={search}\r\n sx={{\r\n display: { xs: 'flex', md: 'none' },\r\n backgroundColor: '#ffffff83'\r\n }}\r\n >\r\n <StyledSearchIcon>\r\n <SearchRounded />\r\n </StyledSearchIcon>\r\n </StyledSearchButton>\r\n }\r\n <IconButton onClick={handleOpen} disableRipple>\r\n <StyledAvatar>\r\n <StyledAvatarText>{userInitials}</StyledAvatarText>\r\n </StyledAvatar>\r\n <StyledUserName>{userName}</StyledUserName>\r\n </IconButton>\r\n </StyledUserContainer>\r\n\r\n <PopoverMenu\r\n anchorEl={anchorEl}\r\n onClose={handleClose}\r\n signOut={()=>{signOut(); handleClose();}}\r\n />\r\n </StyledHeader>\r\n );\r\n};"],"names":["styled","Box","Typography","Logo","TextField","IconButton","_jsxs","_Fragment","_jsx","MenuRounded","Divider","SearchRounded","PopoverMenu"],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@ import { useId } from 'react';
|
|
|
3
3
|
import { Button } from './Button.js';
|
|
4
4
|
import { styled } from '@mui/material/styles';
|
|
5
5
|
import { FileUploadRounded } from '@mui/icons-material';
|
|
6
|
+
import { toast } from 'react-toastify';
|
|
6
7
|
|
|
7
8
|
const HiddenInput = styled('input')({
|
|
8
9
|
display: 'none',
|
|
@@ -10,8 +11,34 @@ const HiddenInput = styled('input')({
|
|
|
10
11
|
const FileUploadButton = ({ id, label = 'Upload File', accept, multiple = false, onFileSelect, variant = 'primary', size = 'md', }) => {
|
|
11
12
|
const handleFileChange = (event) => {
|
|
12
13
|
const files = event.target.files;
|
|
13
|
-
if (
|
|
14
|
-
onFileSelect(files);
|
|
14
|
+
if (!files || files.length === 0) {
|
|
15
|
+
onFileSelect?.(files);
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
// If multiple, filter; if single, validate the first
|
|
19
|
+
if (multiple) {
|
|
20
|
+
const valid = [];
|
|
21
|
+
for (const f of Array.from(files)) {
|
|
22
|
+
if (f.size > (25 * 1024 * 1024))
|
|
23
|
+
continue;
|
|
24
|
+
valid.push(f);
|
|
25
|
+
}
|
|
26
|
+
const dt = new DataTransfer();
|
|
27
|
+
valid.forEach((f) => dt.items.add(f));
|
|
28
|
+
onFileSelect?.(dt.files);
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
const f = files[0];
|
|
32
|
+
if (f.size > (25 * 1024 * 1024)) {
|
|
33
|
+
// Notify user and abort selection
|
|
34
|
+
// Example: toast.error('File exceeds 5MB');
|
|
35
|
+
toast.error('File exceeds 25MB');
|
|
36
|
+
onFileSelect?.(null);
|
|
37
|
+
// Clear the input so user can reselect
|
|
38
|
+
event.target.value = '';
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
onFileSelect?.(files);
|
|
15
42
|
}
|
|
16
43
|
};
|
|
17
44
|
const autoId = useId();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileUploadButton.js","sources":["../../../../src/components/FileUploadButton.tsx"],"sourcesContent":["import React, { useId } from 'react';\r\nimport { Button } from './Button'; // Import your existing styled button component\r\nimport { styled } from '@mui/material/styles';\r\nimport { FileUploadRounded } from '@mui/icons-material';\r\n\r\ninterface FileUploadButtonProps {\r\n id?: string;\r\n label?: string;\r\n accept?: string;\r\n multiple?: boolean;\r\n onFileSelect?: (files: FileList | null) => void;\r\n variant?: 'primary' | 'secondary' | 'outline' | 'marked-read' | 'mark-read' | 'danger';\r\n size?: 'sm' | 'md' | 'lg';\r\n}\r\n\r\nconst HiddenInput = styled('input')({\r\n display: 'none',\r\n});\r\n\r\nexport const FileUploadButton: React.FC<FileUploadButtonProps> = ({\r\n id,\r\n label = 'Upload File',\r\n accept,\r\n multiple = false,\r\n onFileSelect,\r\n variant = 'primary',\r\n size = 'md',\r\n}) => {\r\
|
|
1
|
+
{"version":3,"file":"FileUploadButton.js","sources":["../../../../src/components/FileUploadButton.tsx"],"sourcesContent":["import React, { useId } from 'react';\r\nimport { Button } from './Button'; // Import your existing styled button component\r\nimport { styled } from '@mui/material/styles';\r\nimport { FileUploadRounded } from '@mui/icons-material';\r\nimport { toast } from 'react-toastify';\r\n\r\ninterface FileUploadButtonProps {\r\n id?: string;\r\n label?: string;\r\n accept?: string;\r\n multiple?: boolean;\r\n onFileSelect?: (files: FileList | null) => void;\r\n variant?: 'primary' | 'secondary' | 'outline' | 'marked-read' | 'mark-read' | 'danger';\r\n size?: 'sm' | 'md' | 'lg';\r\n}\r\n\r\nconst HiddenInput = styled('input')({\r\n display: 'none',\r\n});\r\n\r\nexport const FileUploadButton: React.FC<FileUploadButtonProps> = ({\r\n id,\r\n label = 'Upload File',\r\n accept,\r\n multiple = false,\r\n onFileSelect,\r\n variant = 'primary',\r\n size = 'md',\r\n}) => {\r\nconst handleFileChange = (event: React.ChangeEvent<HTMLInputElement>) => {\r\n const files = event.target.files;\r\n\r\n if (!files || files.length === 0) {\r\n onFileSelect?.(files);\r\n return;\r\n }\r\n\r\n // If multiple, filter; if single, validate the first\r\n if (multiple) {\r\n const valid: File[] = [];\r\n for (const f of Array.from(files)) {\r\n if ((25 * 1024 * 1024) && f.size > (25 * 1024 * 1024)) continue;\r\n valid.push(f);\r\n }\r\n const dt = new DataTransfer();\r\n valid.forEach((f) => dt.items.add(f));\r\n onFileSelect?.(dt.files);\r\n } else {\r\n const f = files[0];\r\n if ((25 * 1024 * 1024) && f.size > (25 * 1024 * 1024)) {\r\n // Notify user and abort selection\r\n // Example: toast.error('File exceeds 5MB');\r\n toast.error('File exceeds 25MB')\r\n onFileSelect?.(null);\r\n // Clear the input so user can reselect\r\n event.target.value = '';\r\n return;\r\n }\r\n onFileSelect?.(files);\r\n }\r\n };\r\n const autoId = useId(); \r\n const inputId = id || `file-upload-${autoId}`;\r\n return (\r\n <label htmlFor={inputId}>\r\n <HiddenInput\r\n id={inputId}\r\n type=\"file\"\r\n accept={accept}\r\n multiple={multiple}\r\n onChange={handleFileChange}\r\n />\r\n <Button\r\n component=\"span\"\r\n variant={variant}\r\n size={size}\r\n >\r\n <FileUploadRounded/>{label}\r\n </Button>\r\n </label>\r\n );\r\n};\r\n"],"names":["_jsxs","_jsx"],"mappings":";;;;;;;AAgBA,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;AAClC,IAAA,OAAO,EAAE,MAAM;AAChB,CAAA,CAAC;AAEK,MAAM,gBAAgB,GAAoC,CAAC,EAChE,EAAE,EACF,KAAK,GAAG,aAAa,EACrB,MAAM,EACN,QAAQ,GAAG,KAAK,EAChB,YAAY,EACZ,OAAO,GAAG,SAAS,EACnB,IAAI,GAAG,IAAI,GACZ,KAAI;AACL,IAAA,MAAM,gBAAgB,GAAG,CAAC,KAA0C,KAAI;AACpE,QAAA,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK;QAEhC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AAChC,YAAA,YAAY,GAAG,KAAK,CAAC;YACrB;QACF;;QAGA,IAAI,QAAQ,EAAE;YACZ,MAAM,KAAK,GAAW,EAAE;YACxB,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AACjC,gBAAA,IAA0B,CAAC,CAAC,IAAI,IAAI,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;oBAAE;AACvD,gBAAA,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;YACf;AACA,YAAA,MAAM,EAAE,GAAG,IAAI,YAAY,EAAE;AAC7B,YAAA,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACrC,YAAA,YAAY,GAAG,EAAE,CAAC,KAAK,CAAC;QAC1B;aAAO;AACL,YAAA,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;YAClB,IAA0B,CAAC,CAAC,IAAI,IAAI,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,EAAE;;;AAGrD,gBAAA,KAAK,CAAC,KAAK,CAAC,mBAAmB,CAAC;AAChC,gBAAA,YAAY,GAAG,IAAI,CAAC;;AAEpB,gBAAA,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,EAAE;gBACvB;YACF;AACA,YAAA,YAAY,GAAG,KAAK,CAAC;QACvB;AACF,IAAA,CAAC;AACD,IAAA,MAAM,MAAM,GAAG,KAAK,EAAE;AACtB,IAAA,MAAM,OAAO,GAAG,EAAE,IAAI,CAAA,YAAA,EAAe,MAAM,EAAE;IAC7C,QACEA,IAAA,CAAA,OAAA,EAAA,EAAO,OAAO,EAAE,OAAO,aACrBC,GAAA,CAAC,WAAW,EAAA,EACV,EAAE,EAAE,OAAO,EACX,IAAI,EAAC,MAAM,EACX,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,gBAAgB,EAAA,CAC1B,EACFD,IAAA,CAAC,MAAM,EAAA,EACL,SAAS,EAAC,MAAM,EAChB,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,IAAI,EAAA,QAAA,EAAA,CAEVC,GAAA,CAAC,iBAAiB,EAAA,EAAA,CAAE,EAAC,KAAK,CAAA,EAAA,CACnB,CAAA,EAAA,CACH;AAEZ;;;;"}
|
|
@@ -176,10 +176,10 @@ const Header = ({ userName = 'John Doe', userInitials = 'JD', toggleMenu, signOu
|
|
|
176
176
|
};
|
|
177
177
|
return (jsxs(StyledHeader, { children: [signUpStatus !== 'Active' && jsxs(Fragment, { children: [jsx(IconButton, { disableRipple: true, onClick: toggleMenu, sx: {
|
|
178
178
|
display: { xs: 'block', md: 'none' }
|
|
179
|
-
}, children: jsx(MenuRounded, { sx: { fontSize: 32, color: 'white' } }) }), jsx(Divider, { orientation: 'vertical', sx: { color: '#FFFFFF', borderRightWidth: 2, display: { xs: 'block', md: 'none' } } })] }), jsx(StyledLogoWrapper, { children: jsx(StyledLogoIcon, { children: jsx(StyledLogoSvg, {}) }) }), signUpStatus
|
|
179
|
+
}, children: jsx(MenuRounded, { sx: { fontSize: 32, color: 'white' } }) }), jsx(Divider, { orientation: 'vertical', sx: { color: '#FFFFFF', borderRightWidth: 2, display: { xs: 'block', md: 'none' } } })] }), jsx(StyledLogoWrapper, { children: jsx(StyledLogoIcon, { children: jsx(StyledLogoSvg, {}) }) }), signUpStatus === 'Active' &&
|
|
180
180
|
jsx(StyledSearchContainer, { children: jsx(StyledTextField, { placeholder: "Search for a policy", variant: "outlined", fullWidth: true, sx: { display: { xs: 'none', sm: 'none', md: 'block' } }, InputProps: {
|
|
181
181
|
endAdornment: (jsx(StyledSearchButton, { children: jsx(StyledSearchIcon, { children: jsx(SearchRounded, {}) }) })),
|
|
182
|
-
} }) }), jsxs(StyledUserContainer, { children: [signUpStatus
|
|
182
|
+
} }) }), jsxs(StyledUserContainer, { children: [signUpStatus === 'Active' &&
|
|
183
183
|
jsx(StyledSearchButton, { disableRipple: true, onClick: search, sx: {
|
|
184
184
|
display: { xs: 'flex', md: 'none' },
|
|
185
185
|
backgroundColor: '#ffffff83'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Header.js","sources":["../../../../src/components/Header.tsx"],"sourcesContent":["\r\n\r\nimport React from 'react';\r\nimport { Box, styled, Typography, TextField, IconButton, Divider } from '@mui/material';\r\nimport { useTheme } from '../ThemeProvider';\r\nimport { MenuRounded, SchoolRounded, SearchRounded } from '@mui/icons-material';\r\nimport PopoverMenu from './PopoverMenu';\r\nimport { ReactComponent as Logo } from '../images/PrimaryLogo_Variation_Cream.svg';\r\n\r\ntype SignUpStatus = 'Withdrawn' | 'Onboarding' | 'Active' | 'In Review';\r\ninterface HeaderProps {\r\n userName?: string;\r\n userInitials?: string;\r\n toggleMenu: () => void;\r\n signOut: () => void;\r\n search?: () => void;\r\n signUpStatus: SignUpStatus;\r\n}\r\n\r\nconst StyledHeader = styled(Box)(({ theme }) => ({\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'space-between',\r\n backgroundColor: theme.palette.primary.main, // var(--color-primary)\r\n [theme.breakpoints.up('md')]: {\r\n gap: theme.spacing(4), // md:gap-4\r\n padding: theme.spacing(1.5, 1.5), // px-4 py-3\r\n },\r\n [theme.breakpoints.down('md')]: {\r\n padding: 0, // px-4 py-3\r\n },\r\n}));\r\n\r\nconst StyledLogoWrapper = styled(Box)(({ theme }) => ({\r\n display: 'flex',\r\n alignItems: 'center',\r\n padding: theme.spacing(1.5),\r\n gap: theme.spacing(2),\r\n height: '64px', \r\n}));\r\n\r\n\r\nconst StyledLogoIcon = styled(Box)(({ theme }) => ({\r\n width: '100%',\r\n height: '100%',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n color: theme.palette.light.main,\r\n}));\r\n\r\n\r\nconst StyledLogoText = styled(Typography)(({ theme }) => ({\r\n color: theme.palette.light.main, // text-[#FDFCEE]\r\n fontWeight: 700, // font-bold\r\n letterSpacing: '0.05em', // tracking-wide\r\n fontSize: '1.5rem', // text-2xl\r\n [theme.breakpoints.down('md')]: {\r\n fontSize: '1.25rem', // sm:text-xl\r\n },\r\n [theme.breakpoints.down('sm')]: {\r\n fontSize: '1.125rem', // text-lg\r\n },\r\n}));\r\n\r\nconst StyledLogoSvg = styled(Logo)`\r\n width: 100%;\r\n height: 100%;\r\n display: block;\r\n`;\r\n\r\n\r\nconst StyledSearchContainer = styled(Box)(({ theme }) => ({\r\n flex: 1,\r\n maxWidth: '32rem', // max-w-2xl\r\n margin: theme.spacing(0, 2), // mx-8\r\n position: 'relative',\r\n}));\r\n\r\nconst StyledTextField = styled(TextField)(({ theme }) => ({\r\n '& .MuiInputBase-root': {\r\n backgroundColor: theme.palette.light.main, // bg-[#FDFCEE]\r\n color: theme.palette.dark.main, // text-[#4D3019]\r\n borderRadius: '9999px', // rounded-full\r\n fontSize: '1rem', // text-base\r\n [theme.breakpoints.down('md')]: {\r\n paddingRight: theme.spacing(5), // sm:pr-10\r\n fontSize: '0.875rem', // text-sm\r\n },\r\n },\r\n '& .MuiInputBase-input': {\r\n padding: theme.spacing(1.5, 3), // px-4 py-2\r\n [theme.breakpoints.up('md')]: {\r\n padding: theme.spacing(1.5, 4), // md:px-6 md:py-3\r\n },\r\n [theme.breakpoints.down('sm')]: {\r\n padding: theme.spacing(1.5, 2.5), // sm:px-5\r\n },\r\n },\r\n '& .MuiInputBase-input::placeholder': {\r\n color: `${theme.palette.dark.main}99`, // placeholder-[#4D3019]/60\r\n opacity: 1,\r\n },\r\n '& .MuiInputBase-root:focus-within': {\r\n outline: `2px solid ${theme.palette.light.main}`, // focus:ring-2 focus:ring-[#FDFCEE]\r\n outlineOffset: 0,\r\n },\r\n}));\r\n\r\nconst StyledSearchButton = styled(IconButton)(({ theme }) => ({\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n position: 'static',\r\n borderRadius: '50%',\r\n backgroundColor: theme.palette.primary.main,\r\n width: theme.spacing(5),\r\n height: theme.spacing(5),\r\n [theme.breakpoints.down('md')]: {\r\n width: theme.spacing(5),\r\n height: theme.spacing(5),\r\n marginRight: theme.spacing(1),\r\n },\r\n [theme.breakpoints.down('sm')]: {\r\n marginRight: theme.spacing(0.5),\r\n },\r\n '&:hover': {\r\n opacity: 0.9,\r\n backgroundColor: theme.palette.primary.main,\r\n },\r\n}));\r\n\r\nconst StyledSearchIcon = styled(Box)(({ theme }) => ({\r\n display: 'flex', \r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n color: theme.palette.light.main,\r\n width: '100%',\r\n height: '100%',\r\n '& svg': {\r\n fontSize: '1.5rem',\r\n [theme.breakpoints.down('sm')]: {\r\n fontSize: '1.25rem',\r\n },\r\n },\r\n}));\r\n\r\nconst StyledUserContainer = styled(Box)(({ theme }) => ({\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: theme.spacing(3), // md:gap-3\r\n [theme.breakpoints.down('md')]: {\r\n gap: 0,\r\n },\r\n}));\r\n\r\nconst StyledAvatar = styled(Box)(({ theme }) => ({\r\n width: theme.spacing(6), // md:w-12\r\n height: theme.spacing(6), // md:h-12\r\n borderRadius: '50%', // rounded-full\r\n backgroundColor: theme.palette.light.main, // bg-[#FDFCEE]\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n flexShrink: 0,\r\n [theme.breakpoints.down('md')]: {\r\n width: theme.spacing(5), // sm:w-10\r\n height: theme.spacing(5), // sm:h-10\r\n }\r\n}));\r\n\r\nconst StyledAvatarText = styled(Typography)(({ theme }) => ({\r\n color: theme.palette.dark.main, // text-[#4D3019]\r\n fontWeight: 700, // font-bold\r\n fontSize: '1.125rem', // text-lg\r\n [theme.breakpoints.down('md')]: {\r\n fontSize: '0.875rem', // text-sm\r\n },\r\n}));\r\n\r\nconst StyledUserName = styled(Typography)(({ theme }) => ({\r\n color: theme.palette.light.main, // text-[#FDFCEE]\r\n fontWeight: 500, // font-medium\r\n marginLeft: theme.spacing(1),\r\n fontSize: '1.125rem', // text-lg\r\n display: 'none', // hidden\r\n [theme.breakpoints.up('sm')]: {\r\n display: 'inline', // sm:inline\r\n },\r\n [theme.breakpoints.down('md')]: {\r\n fontSize: '0.875rem', // text-sm\r\n display: 'none'\r\n },\r\n}));\r\n\r\nexport const Header: React.FC<HeaderProps> = ({\r\n userName = 'John Doe',\r\n userInitials = 'JD',\r\n toggleMenu,\r\n signOut,\r\n search,\r\n signUpStatus,\r\n}) => {\r\n const theme = useTheme();\r\n const [anchorEl, setAnchorEl] = React.useState<HTMLButtonElement | null>(null);\r\n\r\n const handleOpen = (event: React.MouseEvent<HTMLButtonElement>) => {\r\n setAnchorEl(event.currentTarget);\r\n };\r\n\r\n const handleClose = () => {\r\n setAnchorEl(null);\r\n };\r\n\r\n return (\r\n <StyledHeader>\r\n {signUpStatus !== 'Active' && <>\r\n <IconButton disableRipple onClick={toggleMenu} sx={{\r\n display: {xs: 'block', md: 'none'}\r\n }}>\r\n <MenuRounded sx={{fontSize: 32, color: 'white'}}/>\r\n </IconButton>\r\n <Divider orientation='vertical' sx={{color: '#FFFFFF',borderRightWidth: 2,display: {xs: 'block', md: 'none'}}}/>\r\n </>\r\n }\r\n <StyledLogoWrapper>\r\n <StyledLogoIcon>\r\n <StyledLogoSvg/>\r\n </StyledLogoIcon>\r\n </StyledLogoWrapper>\r\n\r\n {/* Search input for md+ screens */}\r\n {signUpStatus !== 'Active' &&\r\n <StyledSearchContainer >\r\n <StyledTextField\r\n placeholder=\"Search for a policy\"\r\n variant=\"outlined\"\r\n fullWidth\r\n sx={{ display: { xs: 'none', sm: 'none', md: 'block' } }}\r\n InputProps={{\r\n endAdornment: (\r\n <StyledSearchButton>\r\n <StyledSearchIcon>\r\n <SearchRounded />\r\n </StyledSearchIcon>\r\n </StyledSearchButton>\r\n ),\r\n }}\r\n />\r\n </StyledSearchContainer>\r\n }\r\n\r\n <StyledUserContainer>\r\n {/* Search button only visible on XS screens */}\r\n {signUpStatus !== 'Active' &&\r\n <StyledSearchButton\r\n disableRipple\r\n onClick={search}\r\n sx={{\r\n display: { xs: 'flex', md: 'none' },\r\n backgroundColor: '#ffffff83'\r\n }}\r\n >\r\n <StyledSearchIcon>\r\n <SearchRounded />\r\n </StyledSearchIcon>\r\n </StyledSearchButton>\r\n }\r\n <IconButton onClick={handleOpen} disableRipple>\r\n <StyledAvatar>\r\n <StyledAvatarText>{userInitials}</StyledAvatarText>\r\n </StyledAvatar>\r\n <StyledUserName>{userName}</StyledUserName>\r\n </IconButton>\r\n </StyledUserContainer>\r\n\r\n <PopoverMenu\r\n anchorEl={anchorEl}\r\n onClose={handleClose}\r\n signOut={()=>{signOut(); handleClose();}}\r\n />\r\n </StyledHeader>\r\n );\r\n};"],"names":["Logo","React","_jsxs","_Fragment","_jsx"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Header.js","sources":["../../../../src/components/Header.tsx"],"sourcesContent":["\r\n\r\nimport React from 'react';\r\nimport { Box, styled, Typography, TextField, IconButton, Divider } from '@mui/material';\r\nimport { useTheme } from '../ThemeProvider';\r\nimport { MenuRounded, SchoolRounded, SearchRounded } from '@mui/icons-material';\r\nimport PopoverMenu from './PopoverMenu';\r\nimport { ReactComponent as Logo } from '../images/PrimaryLogo_Variation_Cream.svg';\r\n\r\ntype SignUpStatus = 'Withdrawn' | 'Onboarding' | 'Active' | 'In Review';\r\ninterface HeaderProps {\r\n userName?: string;\r\n userInitials?: string;\r\n toggleMenu: () => void;\r\n signOut: () => void;\r\n search?: () => void;\r\n signUpStatus: SignUpStatus;\r\n}\r\n\r\nconst StyledHeader = styled(Box)(({ theme }) => ({\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'space-between',\r\n backgroundColor: theme.palette.primary.main, // var(--color-primary)\r\n [theme.breakpoints.up('md')]: {\r\n gap: theme.spacing(4), // md:gap-4\r\n padding: theme.spacing(1.5, 1.5), // px-4 py-3\r\n },\r\n [theme.breakpoints.down('md')]: {\r\n padding: 0, // px-4 py-3\r\n },\r\n}));\r\n\r\nconst StyledLogoWrapper = styled(Box)(({ theme }) => ({\r\n display: 'flex',\r\n alignItems: 'center',\r\n padding: theme.spacing(1.5),\r\n gap: theme.spacing(2),\r\n height: '64px', \r\n}));\r\n\r\n\r\nconst StyledLogoIcon = styled(Box)(({ theme }) => ({\r\n width: '100%',\r\n height: '100%',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n color: theme.palette.light.main,\r\n}));\r\n\r\n\r\nconst StyledLogoText = styled(Typography)(({ theme }) => ({\r\n color: theme.palette.light.main, // text-[#FDFCEE]\r\n fontWeight: 700, // font-bold\r\n letterSpacing: '0.05em', // tracking-wide\r\n fontSize: '1.5rem', // text-2xl\r\n [theme.breakpoints.down('md')]: {\r\n fontSize: '1.25rem', // sm:text-xl\r\n },\r\n [theme.breakpoints.down('sm')]: {\r\n fontSize: '1.125rem', // text-lg\r\n },\r\n}));\r\n\r\nconst StyledLogoSvg = styled(Logo)`\r\n width: 100%;\r\n height: 100%;\r\n display: block;\r\n`;\r\n\r\n\r\nconst StyledSearchContainer = styled(Box)(({ theme }) => ({\r\n flex: 1,\r\n maxWidth: '32rem', // max-w-2xl\r\n margin: theme.spacing(0, 2), // mx-8\r\n position: 'relative',\r\n}));\r\n\r\nconst StyledTextField = styled(TextField)(({ theme }) => ({\r\n '& .MuiInputBase-root': {\r\n backgroundColor: theme.palette.light.main, // bg-[#FDFCEE]\r\n color: theme.palette.dark.main, // text-[#4D3019]\r\n borderRadius: '9999px', // rounded-full\r\n fontSize: '1rem', // text-base\r\n [theme.breakpoints.down('md')]: {\r\n paddingRight: theme.spacing(5), // sm:pr-10\r\n fontSize: '0.875rem', // text-sm\r\n },\r\n },\r\n '& .MuiInputBase-input': {\r\n padding: theme.spacing(1.5, 3), // px-4 py-2\r\n [theme.breakpoints.up('md')]: {\r\n padding: theme.spacing(1.5, 4), // md:px-6 md:py-3\r\n },\r\n [theme.breakpoints.down('sm')]: {\r\n padding: theme.spacing(1.5, 2.5), // sm:px-5\r\n },\r\n },\r\n '& .MuiInputBase-input::placeholder': {\r\n color: `${theme.palette.dark.main}99`, // placeholder-[#4D3019]/60\r\n opacity: 1,\r\n },\r\n '& .MuiInputBase-root:focus-within': {\r\n outline: `2px solid ${theme.palette.light.main}`, // focus:ring-2 focus:ring-[#FDFCEE]\r\n outlineOffset: 0,\r\n },\r\n}));\r\n\r\nconst StyledSearchButton = styled(IconButton)(({ theme }) => ({\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n position: 'static',\r\n borderRadius: '50%',\r\n backgroundColor: theme.palette.primary.main,\r\n width: theme.spacing(5),\r\n height: theme.spacing(5),\r\n [theme.breakpoints.down('md')]: {\r\n width: theme.spacing(5),\r\n height: theme.spacing(5),\r\n marginRight: theme.spacing(1),\r\n },\r\n [theme.breakpoints.down('sm')]: {\r\n marginRight: theme.spacing(0.5),\r\n },\r\n '&:hover': {\r\n opacity: 0.9,\r\n backgroundColor: theme.palette.primary.main,\r\n },\r\n}));\r\n\r\nconst StyledSearchIcon = styled(Box)(({ theme }) => ({\r\n display: 'flex', \r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n color: theme.palette.light.main,\r\n width: '100%',\r\n height: '100%',\r\n '& svg': {\r\n fontSize: '1.5rem',\r\n [theme.breakpoints.down('sm')]: {\r\n fontSize: '1.25rem',\r\n },\r\n },\r\n}));\r\n\r\nconst StyledUserContainer = styled(Box)(({ theme }) => ({\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: theme.spacing(3), // md:gap-3\r\n [theme.breakpoints.down('md')]: {\r\n gap: 0,\r\n },\r\n}));\r\n\r\nconst StyledAvatar = styled(Box)(({ theme }) => ({\r\n width: theme.spacing(6), // md:w-12\r\n height: theme.spacing(6), // md:h-12\r\n borderRadius: '50%', // rounded-full\r\n backgroundColor: theme.palette.light.main, // bg-[#FDFCEE]\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n flexShrink: 0,\r\n [theme.breakpoints.down('md')]: {\r\n width: theme.spacing(5), // sm:w-10\r\n height: theme.spacing(5), // sm:h-10\r\n }\r\n}));\r\n\r\nconst StyledAvatarText = styled(Typography)(({ theme }) => ({\r\n color: theme.palette.dark.main, // text-[#4D3019]\r\n fontWeight: 700, // font-bold\r\n fontSize: '1.125rem', // text-lg\r\n [theme.breakpoints.down('md')]: {\r\n fontSize: '0.875rem', // text-sm\r\n },\r\n}));\r\n\r\nconst StyledUserName = styled(Typography)(({ theme }) => ({\r\n color: theme.palette.light.main, // text-[#FDFCEE]\r\n fontWeight: 500, // font-medium\r\n marginLeft: theme.spacing(1),\r\n fontSize: '1.125rem', // text-lg\r\n display: 'none', // hidden\r\n [theme.breakpoints.up('sm')]: {\r\n display: 'inline', // sm:inline\r\n },\r\n [theme.breakpoints.down('md')]: {\r\n fontSize: '0.875rem', // text-sm\r\n display: 'none'\r\n },\r\n}));\r\n\r\nexport const Header: React.FC<HeaderProps> = ({\r\n userName = 'John Doe',\r\n userInitials = 'JD',\r\n toggleMenu,\r\n signOut,\r\n search,\r\n signUpStatus,\r\n}) => {\r\n const theme = useTheme();\r\n const [anchorEl, setAnchorEl] = React.useState<HTMLButtonElement | null>(null);\r\n\r\n const handleOpen = (event: React.MouseEvent<HTMLButtonElement>) => {\r\n setAnchorEl(event.currentTarget);\r\n };\r\n\r\n const handleClose = () => {\r\n setAnchorEl(null);\r\n };\r\n\r\n return (\r\n <StyledHeader>\r\n {signUpStatus !== 'Active' && <>\r\n <IconButton disableRipple onClick={toggleMenu} sx={{\r\n display: {xs: 'block', md: 'none'}\r\n }}>\r\n <MenuRounded sx={{fontSize: 32, color: 'white'}}/>\r\n </IconButton>\r\n <Divider orientation='vertical' sx={{color: '#FFFFFF',borderRightWidth: 2,display: {xs: 'block', md: 'none'}}}/>\r\n </>\r\n }\r\n <StyledLogoWrapper>\r\n <StyledLogoIcon>\r\n <StyledLogoSvg/>\r\n </StyledLogoIcon>\r\n </StyledLogoWrapper>\r\n\r\n {/* Search input for md+ screens */}\r\n {signUpStatus === 'Active' &&\r\n <StyledSearchContainer >\r\n <StyledTextField\r\n placeholder=\"Search for a policy\"\r\n variant=\"outlined\"\r\n fullWidth\r\n sx={{ display: { xs: 'none', sm: 'none', md: 'block' } }}\r\n InputProps={{\r\n endAdornment: (\r\n <StyledSearchButton>\r\n <StyledSearchIcon>\r\n <SearchRounded />\r\n </StyledSearchIcon>\r\n </StyledSearchButton>\r\n ),\r\n }}\r\n />\r\n </StyledSearchContainer>\r\n }\r\n\r\n <StyledUserContainer>\r\n {/* Search button only visible on XS screens */}\r\n {signUpStatus === 'Active' &&\r\n <StyledSearchButton\r\n disableRipple\r\n onClick={search}\r\n sx={{\r\n display: { xs: 'flex', md: 'none' },\r\n backgroundColor: '#ffffff83'\r\n }}\r\n >\r\n <StyledSearchIcon>\r\n <SearchRounded />\r\n </StyledSearchIcon>\r\n </StyledSearchButton>\r\n }\r\n <IconButton onClick={handleOpen} disableRipple>\r\n <StyledAvatar>\r\n <StyledAvatarText>{userInitials}</StyledAvatarText>\r\n </StyledAvatar>\r\n <StyledUserName>{userName}</StyledUserName>\r\n </IconButton>\r\n </StyledUserContainer>\r\n\r\n <PopoverMenu\r\n anchorEl={anchorEl}\r\n onClose={handleClose}\r\n signOut={()=>{signOut(); handleClose();}}\r\n />\r\n </StyledHeader>\r\n );\r\n};"],"names":["Logo","React","_jsxs","_Fragment","_jsx"],"mappings":"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"}
|