ece-docs-components 1.0.36 → 1.0.37
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/Header.js +10 -14
- package/dist/cjs/components/Header.js.map +1 -1
- package/dist/cjs/components/Input.js +1 -0
- package/dist/cjs/components/Input.js.map +1 -1
- package/dist/cjs/components/Progress.js +5 -5
- package/dist/cjs/components/Progress.js.map +1 -1
- package/dist/cjs/components/Select.js +6 -0
- package/dist/cjs/components/Select.js.map +1 -1
- package/dist/esm/components/Header.js +11 -15
- package/dist/esm/components/Header.js.map +1 -1
- package/dist/esm/components/Input.js +1 -0
- package/dist/esm/components/Input.js.map +1 -1
- package/dist/esm/components/Progress.js +5 -5
- package/dist/esm/components/Progress.js.map +1 -1
- package/dist/esm/components/Select.js +6 -0
- package/dist/esm/components/Select.js.map +1 -1
- package/package.json +1 -1
|
@@ -53,13 +53,13 @@ const StyledLogoSvg = material.styled(PrimaryLogo_Variation_Cream.ReactComponent
|
|
|
53
53
|
height: 100%;
|
|
54
54
|
display: block;
|
|
55
55
|
`;
|
|
56
|
-
|
|
56
|
+
material.styled(material.Box)(({ theme }) => ({
|
|
57
57
|
flex: 1,
|
|
58
58
|
maxWidth: '32rem', // max-w-2xl
|
|
59
59
|
margin: theme.spacing(0, 2), // mx-8
|
|
60
60
|
position: 'relative',
|
|
61
61
|
}));
|
|
62
|
-
|
|
62
|
+
material.styled(material.TextField)(({ theme }) => ({
|
|
63
63
|
'& .MuiInputBase-root': {
|
|
64
64
|
backgroundColor: theme.palette.light.main, // bg-[#FDFCEE]
|
|
65
65
|
color: theme.palette.dark.main, // text-[#4D3019]
|
|
@@ -88,7 +88,7 @@ const StyledTextField = material.styled(material.TextField)(({ theme }) => ({
|
|
|
88
88
|
outlineOffset: 0,
|
|
89
89
|
},
|
|
90
90
|
}));
|
|
91
|
-
|
|
91
|
+
material.styled(material.IconButton)(({ theme }) => ({
|
|
92
92
|
display: 'flex',
|
|
93
93
|
alignItems: 'center',
|
|
94
94
|
justifyContent: 'center',
|
|
@@ -110,7 +110,7 @@ const StyledSearchButton = material.styled(material.IconButton)(({ theme }) => (
|
|
|
110
110
|
backgroundColor: theme.palette.primary.main,
|
|
111
111
|
},
|
|
112
112
|
}));
|
|
113
|
-
|
|
113
|
+
material.styled(material.Box)(({ theme }) => ({
|
|
114
114
|
display: 'flex',
|
|
115
115
|
alignItems: 'center',
|
|
116
116
|
justifyContent: 'center',
|
|
@@ -176,16 +176,12 @@ const Header = ({ userName = 'John Doe', userInitials = 'JD', toggleMenu, signOu
|
|
|
176
176
|
const handleClose = () => {
|
|
177
177
|
setAnchorEl(null);
|
|
178
178
|
};
|
|
179
|
-
return (jsxRuntime.jsxs(StyledHeader, { children: [signUpStatus
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
} }) }), jsxRuntime.
|
|
185
|
-
jsxRuntime.jsx(StyledSearchButton, { disableRipple: true, onClick: search, sx: {
|
|
186
|
-
display: { xs: 'flex', md: 'none' },
|
|
187
|
-
backgroundColor: '#ffffff83'
|
|
188
|
-
}, children: jsxRuntime.jsx(StyledSearchIcon, { children: jsxRuntime.jsx(iconsMaterial.SearchRounded, {}) }) }), jsxRuntime.jsxs(material.IconButton, { onClick: handleOpen, disableRipple: true, children: [jsxRuntime.jsx(StyledAvatar, { children: jsxRuntime.jsx(StyledAvatarText, { children: userInitials }) }), jsxRuntime.jsx(StyledUserName, { children: userName })] })] }), jsxRuntime.jsx(PopoverMenu.default, { anchorEl: anchorEl, onClose: handleClose, signOut: () => { signOut(); handleClose(); } })] }));
|
|
179
|
+
return (jsxRuntime.jsxs(StyledHeader, { children: [signUpStatus === 'Active' && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(material.IconButton, { disableRipple: true, onClick: toggleMenu, sx: { display: { xs: 'block', md: 'none' } }, size: "large" // optional: keeps touch target ~48px in MUI v5+
|
|
180
|
+
, children: jsxRuntime.jsx(iconsMaterial.MenuRounded, { sx: { fontSize: 32, color: 'white' } }) }), jsxRuntime.jsx(material.Divider, { orientation: "vertical", sx: {
|
|
181
|
+
color: '#FFFFFF',
|
|
182
|
+
borderRightWidth: 2,
|
|
183
|
+
display: { xs: 'block', md: 'none' },
|
|
184
|
+
} })] })), jsxRuntime.jsx(StyledLogoWrapper, { children: jsxRuntime.jsx(StyledLogoIcon, { children: jsxRuntime.jsx(StyledLogoSvg, {}) }) }), jsxRuntime.jsx(StyledUserContainer, { children: jsxRuntime.jsxs(material.IconButton, { onClick: handleOpen, disableRipple: true, children: [jsxRuntime.jsx(StyledAvatar, { children: jsxRuntime.jsx(StyledAvatarText, { children: userInitials }) }), jsxRuntime.jsx(StyledUserName, { children: userName })] }) }), jsxRuntime.jsx(PopoverMenu.default, { anchorEl: anchorEl, onClose: handleClose, signOut: () => { signOut(); handleClose(); } })] }));
|
|
189
185
|
};
|
|
190
186
|
|
|
191
187
|
exports.Header = Header;
|
|
@@ -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 <>\r\n <IconButton\r\n disableRipple\r\n onClick={toggleMenu}\r\n sx={{ display: { xs: 'block', md: 'none' } }} // show on mobile only\r\n size=\"large\" // optional: keeps touch target ~48px in MUI v5+\r\n >\r\n <MenuRounded sx={{ fontSize: 32, color: 'white' }} />\r\n </IconButton>\r\n\r\n <Divider\r\n orientation=\"vertical\"\r\n sx={{\r\n color: '#FFFFFF',\r\n borderRightWidth: 2,\r\n display: { xs: 'block', md: 'none' },\r\n }}\r\n />\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","PopoverMenu"],"mappings":"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"}
|
|
@@ -30,6 +30,7 @@ const StyledTextField = material.styled(material.TextField, {
|
|
|
30
30
|
fontSize: '1rem',
|
|
31
31
|
color: theme.palette.dark.main,
|
|
32
32
|
minWidth: 0,
|
|
33
|
+
height: 48,
|
|
33
34
|
padding: 0, // Remove padding from root
|
|
34
35
|
'& .MuiOutlinedInput-notchedOutline': {
|
|
35
36
|
borderColor: errorMessage ? theme.palette.accent.main : `${theme.palette.dark.main}33`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Input.js","sources":["../../../../src/components/Input.tsx"],"sourcesContent":["import React from 'react';\r\nimport { styled, TextField, TextFieldProps, InputLabel } from '@mui/material';\r\n\r\ninterface InputProps extends Omit<TextFieldProps, 'variant' | 'error'> {\r\n error?: string;\r\n}\r\n\r\nconst InputWrapper = styled('div')(({ theme }) => ({\r\n width: '100%',\r\n}));\r\n\r\nexport const StyledLabel = styled(InputLabel)(({ theme }) => ({\r\n fontSize: '0.875rem',\r\n fontWeight: 500,\r\n color: theme.palette.dark.main,\r\n marginBottom: theme.spacing(0.75),\r\n display: 'block',\r\n position: 'static',\r\n transform: 'none',\r\n '&.Mui-focused': {\r\n color: theme.palette.dark.main,\r\n },\r\n}));\r\n\r\nconst StyledTextField = styled(TextField, {\r\n shouldForwardProp: (prop) => !['errorMessage'].includes(prop as string),\r\n})<{ errorMessage?: string }>(({ theme, errorMessage }) => ({\r\n width: '100%',\r\n '& .MuiInputBase-root': {\r\n backgroundColor: theme.palette.light.main,\r\n borderRadius: (typeof theme.shape.borderRadius === 'string'\r\n ? parseInt(theme.shape.borderRadius, 10)\r\n : theme.shape.borderRadius || 4) * 2,\r\n fontSize: '1rem',\r\n color: theme.palette.dark.main,\r\n minWidth: 0,\r\n padding: 0, // Remove padding from root\r\n '& .MuiOutlinedInput-notchedOutline': {\r\n borderColor: errorMessage ? theme.palette.accent.main : `${theme.palette.dark.main}33`,\r\n borderWidth: 2,\r\n },\r\n '&:hover .MuiOutlinedInput-notchedOutline': {\r\n borderColor: errorMessage ? theme.palette.accent.main : theme.palette.primary.main,\r\n borderWidth: 2,\r\n },\r\n '&.Mui-focused .MuiOutlinedInput-notchedOutline': {\r\n borderWidth: 2,\r\n borderColor: errorMessage ? theme.palette.accent.main : theme.palette.primary.main,\r\n },\r\n '&.Mui-disabled': {\r\n backgroundColor: `${theme.palette.dark.main}0D`,\r\n '& .MuiInputBase-input': {\r\n color: `${theme.palette.dark.main}80`,\r\n cursor: 'not-allowed',\r\n },\r\n '& .MuiOutlinedInput-notchedOutline': {\r\n borderColor: `${theme.palette.dark.main}33`,\r\n },\r\n },\r\n },\r\n // Target the actual input element for padding\r\n '& .MuiInputBase-input': {\r\n padding: theme.spacing(1, 3),\r\n [theme.breakpoints.up('sm')]: {\r\n padding: theme.spacing(1.25, 4),\r\n },\r\n },\r\n '& .MuiFormHelperText-root': {\r\n marginTop: theme.spacing(0.75),\r\n fontSize: '0.875rem',\r\n color: errorMessage ? theme.palette.accent.main : `${theme.palette.dark.main}99`,\r\n },\r\n}));\r\n\r\nexport const Input: React.FC<InputProps> = ({\r\n error,\r\n fullWidth = false,\r\n id,\r\n label,\r\n ...props\r\n}) => {\r\n const inputId = id || `input-${Math.random().toString(36).substr(2, 9)}`;\r\n\r\n return (\r\n <InputWrapper sx={{ ...(!fullWidth && { width: 'auto' }) }}>\r\n {label && (\r\n <StyledLabel htmlFor={inputId}>\r\n {label}\r\n </StyledLabel>\r\n )}\r\n <StyledTextField\r\n id={inputId}\r\n error={!!error}\r\n helperText={error || props.helperText}\r\n errorMessage={error}\r\n fullWidth={fullWidth}\r\n variant=\"outlined\"\r\n {...props}\r\n />\r\n </InputWrapper>\r\n );\r\n};\r\n"],"names":["styled","InputLabel","TextField","_jsxs","_jsx"],"mappings":";;;;;AAOA,MAAM,YAAY,GAAGA,eAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM;AACjD,IAAA,KAAK,EAAE,MAAM;AACd,CAAA,CAAC,CAAC;AAEI,MAAM,WAAW,GAAGA,eAAM,CAACC,mBAAU,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM;AAC5D,IAAA,QAAQ,EAAE,UAAU;AACpB,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI;AAC9B,IAAA,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;AACjC,IAAA,OAAO,EAAE,OAAO;AAChB,IAAA,QAAQ,EAAE,QAAQ;AAClB,IAAA,SAAS,EAAE,MAAM;AACjB,IAAA,eAAe,EAAE;AACf,QAAA,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI;AAC/B,KAAA;AACF,CAAA,CAAC;AAEF,MAAM,eAAe,GAAGD,eAAM,CAACE,kBAAS,EAAE;AACxC,IAAA,iBAAiB,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,IAAc,CAAC;CACxE,CAAC,CAA4B,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM;AAC1D,IAAA,KAAK,EAAE,MAAM;AACb,IAAA,sBAAsB,EAAE;AACtB,QAAA,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI;QACzC,YAAY,EAAE,CAAC,OAAO,KAAK,CAAC,KAAK,CAAC,YAAY,KAAK;cACnD,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE;cACrC,KAAK,CAAC,KAAK,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC;AAClC,QAAA,QAAQ,EAAE,MAAM;AAChB,QAAA,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI;AAC9B,QAAA,QAAQ,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"Input.js","sources":["../../../../src/components/Input.tsx"],"sourcesContent":["import React from 'react';\r\nimport { styled, TextField, TextFieldProps, InputLabel } from '@mui/material';\r\n\r\ninterface InputProps extends Omit<TextFieldProps, 'variant' | 'error'> {\r\n error?: string;\r\n}\r\n\r\nconst InputWrapper = styled('div')(({ theme }) => ({\r\n width: '100%',\r\n}));\r\n\r\nexport const StyledLabel = styled(InputLabel)(({ theme }) => ({\r\n fontSize: '0.875rem',\r\n fontWeight: 500,\r\n color: theme.palette.dark.main,\r\n marginBottom: theme.spacing(0.75),\r\n display: 'block',\r\n position: 'static',\r\n transform: 'none',\r\n '&.Mui-focused': {\r\n color: theme.palette.dark.main,\r\n },\r\n}));\r\n\r\nconst StyledTextField = styled(TextField, {\r\n shouldForwardProp: (prop) => !['errorMessage'].includes(prop as string),\r\n})<{ errorMessage?: string }>(({ theme, errorMessage }) => ({\r\n width: '100%',\r\n '& .MuiInputBase-root': {\r\n backgroundColor: theme.palette.light.main,\r\n borderRadius: (typeof theme.shape.borderRadius === 'string'\r\n ? parseInt(theme.shape.borderRadius, 10)\r\n : theme.shape.borderRadius || 4) * 2,\r\n fontSize: '1rem',\r\n color: theme.palette.dark.main,\r\n minWidth: 0,\r\n height: 48,\r\n padding: 0, // Remove padding from root\r\n '& .MuiOutlinedInput-notchedOutline': {\r\n borderColor: errorMessage ? theme.palette.accent.main : `${theme.palette.dark.main}33`,\r\n borderWidth: 2,\r\n },\r\n '&:hover .MuiOutlinedInput-notchedOutline': {\r\n borderColor: errorMessage ? theme.palette.accent.main : theme.palette.primary.main,\r\n borderWidth: 2,\r\n },\r\n '&.Mui-focused .MuiOutlinedInput-notchedOutline': {\r\n borderWidth: 2,\r\n borderColor: errorMessage ? theme.palette.accent.main : theme.palette.primary.main,\r\n },\r\n '&.Mui-disabled': {\r\n backgroundColor: `${theme.palette.dark.main}0D`,\r\n '& .MuiInputBase-input': {\r\n color: `${theme.palette.dark.main}80`,\r\n cursor: 'not-allowed',\r\n },\r\n '& .MuiOutlinedInput-notchedOutline': {\r\n borderColor: `${theme.palette.dark.main}33`,\r\n },\r\n },\r\n },\r\n // Target the actual input element for padding\r\n '& .MuiInputBase-input': {\r\n padding: theme.spacing(1, 3),\r\n [theme.breakpoints.up('sm')]: {\r\n padding: theme.spacing(1.25, 4),\r\n },\r\n },\r\n '& .MuiFormHelperText-root': {\r\n marginTop: theme.spacing(0.75),\r\n fontSize: '0.875rem',\r\n color: errorMessage ? theme.palette.accent.main : `${theme.palette.dark.main}99`,\r\n },\r\n}));\r\n\r\nexport const Input: React.FC<InputProps> = ({\r\n error,\r\n fullWidth = false,\r\n id,\r\n label,\r\n ...props\r\n}) => {\r\n const inputId = id || `input-${Math.random().toString(36).substr(2, 9)}`;\r\n\r\n return (\r\n <InputWrapper sx={{ ...(!fullWidth && { width: 'auto' }) }}>\r\n {label && (\r\n <StyledLabel htmlFor={inputId}>\r\n {label}\r\n </StyledLabel>\r\n )}\r\n <StyledTextField\r\n id={inputId}\r\n error={!!error}\r\n helperText={error || props.helperText}\r\n errorMessage={error}\r\n fullWidth={fullWidth}\r\n variant=\"outlined\"\r\n {...props}\r\n />\r\n </InputWrapper>\r\n );\r\n};\r\n"],"names":["styled","InputLabel","TextField","_jsxs","_jsx"],"mappings":"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"}
|
|
@@ -32,12 +32,12 @@ const StepNumber = material.styled(material.Box, {
|
|
|
32
32
|
fontSize: '0.875rem',
|
|
33
33
|
transition: 'all 0.2s',
|
|
34
34
|
backgroundColor: isCompleted || isActive
|
|
35
|
-
? theme.palette.primary
|
|
35
|
+
? theme.palette.text.primary
|
|
36
36
|
: `${theme.palette.dark.main}1A`,
|
|
37
37
|
color: isCompleted || isActive
|
|
38
|
-
? (theme.palette.custom?.stepIndicatorTextColor || theme.palette.
|
|
38
|
+
? (theme.palette.custom?.stepIndicatorTextColor || theme.palette.text.primary)
|
|
39
39
|
: `${theme.palette.dark.main}99`,
|
|
40
|
-
boxShadow: isActive ? `0 0 0 4px ${theme.palette.primary
|
|
40
|
+
boxShadow: isActive ? `0 0 0 4px ${theme.palette.text.primary}33` : 'none',
|
|
41
41
|
[theme.breakpoints.down('sm')]: {
|
|
42
42
|
width: 32,
|
|
43
43
|
height: 32,
|
|
@@ -51,7 +51,7 @@ const StepLine = material.styled(material.Box, {
|
|
|
51
51
|
borderRadius: 2,
|
|
52
52
|
width: '100%',
|
|
53
53
|
transition: 'background-color 0.2s',
|
|
54
|
-
backgroundColor: isCompleted ? theme.palette.primary
|
|
54
|
+
backgroundColor: isCompleted ? theme.palette.text.primary : `${theme.palette.dark.main}1A`,
|
|
55
55
|
[theme.breakpoints.down('sm')]: {
|
|
56
56
|
height: 2,
|
|
57
57
|
},
|
|
@@ -97,7 +97,7 @@ const StepIndicator = ({ steps, currentStep, className = '' }) => {
|
|
|
97
97
|
// Constrain label width so wrap looks tidy; tweak as needed
|
|
98
98
|
maxWidth: { xs: 80, sm: 112, md: 140 },
|
|
99
99
|
justifySelf: 'center',
|
|
100
|
-
color: isActive ? theme.palette.primary
|
|
100
|
+
color: isActive ? theme.palette.text.primary : `${theme.palette.dark.main}99`,
|
|
101
101
|
}, children: step })] }, index));
|
|
102
102
|
}) }));
|
|
103
103
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Progress.js","sources":["../../../../src/components/Progress.tsx"],"sourcesContent":["\r\n\r\nimport React from 'react';\r\nimport { Box, Typography, LinearProgress, styled } from '@mui/material';\r\nimport { useTheme } from '../ThemeProvider';\r\n\r\ninterface ProgressProps {\r\n current: number;\r\n total: number;\r\n showLabel?: boolean;\r\n className?: string;\r\n}\r\n\r\nconst StyledLinearProgress = styled(LinearProgress)(({ theme }) => ({\r\n height: 10,\r\n borderRadius: 9999,\r\n backgroundColor: `${theme.palette.dark.main}1A`,\r\n '& .MuiLinearProgress-bar': {\r\n borderRadius: 9999,\r\n backgroundColor: theme.palette.primary.main,\r\n transition: 'transform 0.3s ease-out',\r\n },\r\n}));\r\n\r\nexport const Progress: React.FC<ProgressProps> = ({\r\n current,\r\n total,\r\n showLabel = true,\r\n className = ''\r\n}) => {\r\n const percentage = Math.min(Math.max((current / total) * 100, 0), 100);\r\n\r\n return (\r\n <Box className={className}>\r\n {showLabel && (\r\n <Box sx={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center', mb: 1 }}>\r\n <Typography variant=\"body2\" fontWeight={500}>\r\n Step {current} of {total}\r\n </Typography>\r\n <Typography variant=\"body2\" fontWeight={500}>\r\n {Math.round(percentage)}%\r\n </Typography>\r\n </Box>\r\n )}\r\n <StyledLinearProgress variant=\"determinate\" value={percentage} />\r\n </Box>\r\n );\r\n};\r\ninterface StepIndicatorProps {\r\n steps: string[];\r\n currentStep: number;\r\n className?: string;\r\n}\r\n\r\nconst StepNumber = styled(Box, {\r\n shouldForwardProp: (prop) => prop !== 'isActive' && prop !== 'isCompleted'\r\n})<{ isActive: boolean; isCompleted: boolean }>(\r\n ({ theme, isActive, isCompleted }) => ({\r\n width: 40,\r\n height: 40,\r\n borderRadius: '50%',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n fontWeight: 600,\r\n fontSize: '0.875rem',\r\n transition: 'all 0.2s',\r\n backgroundColor: isCompleted || isActive\r\n ? theme.palette.primary.main\r\n : `${theme.palette.dark.main}1A`,\r\n color: isCompleted || isActive\r\n ? (theme.palette.custom?.stepIndicatorTextColor || theme.palette.dark.main)\r\n : `${theme.palette.dark.main}99`,\r\n boxShadow: isActive ? `0 0 0 4px ${theme.palette.primary.main}33` : 'none',\r\n [theme.breakpoints.down('sm')]: {\r\n width: 32,\r\n height: 32,\r\n fontSize: '0.75rem',\r\n },\r\n })\r\n);\r\n\r\nconst StepLine = styled(Box, {\r\n shouldForwardProp: (prop) => prop !== 'isCompleted'\r\n})<{ isCompleted: boolean }>(({ theme, isCompleted }) => ({\r\n height: 4,\r\n borderRadius: 2,\r\n width: '100%',\r\n transition: 'background-color 0.2s',\r\n backgroundColor: isCompleted ? theme.palette.primary.main : `${theme.palette.dark.main}1A`,\r\n [theme.breakpoints.down('sm')]: {\r\n height: 2,\r\n },\r\n}));\r\n\r\nexport const StepIndicator: React.FC<StepIndicatorProps> = ({\r\n steps,\r\n currentStep,\r\n className = ''\r\n}) => {\r\n const theme = useTheme();\r\n const cols = steps.length * 2 - 1;\r\n\r\n return (\r\n <Box\r\n className={className}\r\n sx={{\r\n display: 'grid',\r\n gridTemplateColumns: `repeat(${cols}, minmax(0, 1fr))`,\r\n gridAutoRows: 'auto',\r\n alignItems: 'center',\r\n rowGap: { xs: 0.5, sm: 1 },\r\n // Keep if you want horizontal scrolling in very tight layouts:\r\n // overflowX: 'auto',\r\n pb: 1,\r\n }}\r\n >\r\n {steps.map((step, index) => {\r\n const stepNumber = index + 1;\r\n const isActive = stepNumber === currentStep;\r\n const isCompleted = stepNumber < currentStep;\r\n const circleCol = 2 * index + 1;\r\n const lineCol = 2 * index + 2;\r\n\r\n return (\r\n <React.Fragment key={index}>\r\n {/* Circle */}\r\n <Box\r\n sx={{\r\n gridColumn: `${circleCol} / span 1`,\r\n gridRow: 1,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n }}\r\n >\r\n <StepNumber isActive={isActive} isCompleted={isCompleted}>\r\n {stepNumber}\r\n </StepNumber>\r\n </Box>\r\n\r\n {/* Connector (not after last step) */}\r\n {index < steps.length - 1 && (\r\n <Box\r\n sx={{\r\n gridColumn: `${lineCol} / span 1`,\r\n gridRow: 1,\r\n display: 'flex',\r\n alignItems: 'center',\r\n }}\r\n >\r\n <StepLine isCompleted={isCompleted} />\r\n </Box>\r\n )}\r\n\r\n {/* Label row (wraps independently) */}\r\n <Typography\r\n sx={{\r\n gridColumn: `${circleCol} / span 1`,\r\n gridRow: 2,\r\n mt: { xs: 0.5, sm: 1 },\r\n fontSize: { xs: '10px', sm: '12px' },\r\n fontWeight: 500,\r\n textAlign: 'center',\r\n whiteSpace: 'normal',\r\n overflowWrap: 'anywhere',\r\n wordBreak: 'break-word',\r\n // Constrain label width so wrap looks tidy; tweak as needed\r\n maxWidth: { xs: 80, sm: 112, md: 140 },\r\n justifySelf: 'center',\r\n color: isActive ? theme.palette.primary.main : `${theme.palette.dark.main}99`,\r\n }}\r\n >\r\n {step}\r\n </Typography>\r\n </React.Fragment>\r\n );\r\n })}\r\n </Box>\r\n );\r\n};\r\n"],"names":["styled","LinearProgress","_jsxs","Box","Typography","_jsx","useTheme"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Progress.js","sources":["../../../../src/components/Progress.tsx"],"sourcesContent":["\r\n\r\nimport React from 'react';\r\nimport { Box, Typography, LinearProgress, styled } from '@mui/material';\r\nimport { useTheme } from '../ThemeProvider';\r\n\r\ninterface ProgressProps {\r\n current: number;\r\n total: number;\r\n showLabel?: boolean;\r\n className?: string;\r\n}\r\n\r\nconst StyledLinearProgress = styled(LinearProgress)(({ theme }) => ({\r\n height: 10,\r\n borderRadius: 9999,\r\n backgroundColor: `${theme.palette.dark.main}1A`,\r\n '& .MuiLinearProgress-bar': {\r\n borderRadius: 9999,\r\n backgroundColor: theme.palette.primary.main,\r\n transition: 'transform 0.3s ease-out',\r\n },\r\n}));\r\n\r\nexport const Progress: React.FC<ProgressProps> = ({\r\n current,\r\n total,\r\n showLabel = true,\r\n className = ''\r\n}) => {\r\n const percentage = Math.min(Math.max((current / total) * 100, 0), 100);\r\n\r\n return (\r\n <Box className={className}>\r\n {showLabel && (\r\n <Box sx={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center', mb: 1 }}>\r\n <Typography variant=\"body2\" fontWeight={500}>\r\n Step {current} of {total}\r\n </Typography>\r\n <Typography variant=\"body2\" fontWeight={500}>\r\n {Math.round(percentage)}%\r\n </Typography>\r\n </Box>\r\n )}\r\n <StyledLinearProgress variant=\"determinate\" value={percentage} />\r\n </Box>\r\n );\r\n};\r\ninterface StepIndicatorProps {\r\n steps: string[];\r\n currentStep: number;\r\n className?: string;\r\n}\r\n\r\nconst StepNumber = styled(Box, {\r\n shouldForwardProp: (prop) => prop !== 'isActive' && prop !== 'isCompleted'\r\n})<{ isActive: boolean; isCompleted: boolean }>(\r\n ({ theme, isActive, isCompleted }) => ({\r\n width: 40,\r\n height: 40,\r\n borderRadius: '50%',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n fontWeight: 600,\r\n fontSize: '0.875rem',\r\n transition: 'all 0.2s',\r\n backgroundColor: isCompleted || isActive\r\n ? theme.palette.text.primary\r\n : `${theme.palette.dark.main}1A`,\r\n color: isCompleted || isActive\r\n ? (theme.palette.custom?.stepIndicatorTextColor || theme.palette.text.primary)\r\n : `${theme.palette.dark.main}99`,\r\n boxShadow: isActive ? `0 0 0 4px ${theme.palette.text.primary}33` : 'none',\r\n [theme.breakpoints.down('sm')]: {\r\n width: 32,\r\n height: 32,\r\n fontSize: '0.75rem',\r\n },\r\n })\r\n);\r\n\r\nconst StepLine = styled(Box, {\r\n shouldForwardProp: (prop) => prop !== 'isCompleted'\r\n})<{ isCompleted: boolean }>(({ theme, isCompleted }) => ({\r\n height: 4,\r\n borderRadius: 2,\r\n width: '100%',\r\n transition: 'background-color 0.2s',\r\n backgroundColor: isCompleted ? theme.palette.text.primary : `${theme.palette.dark.main}1A`,\r\n [theme.breakpoints.down('sm')]: {\r\n height: 2,\r\n },\r\n}));\r\n\r\nexport const StepIndicator: React.FC<StepIndicatorProps> = ({\r\n steps,\r\n currentStep,\r\n className = ''\r\n}) => {\r\n const theme = useTheme();\r\n const cols = steps.length * 2 - 1;\r\n\r\n return (\r\n <Box\r\n className={className}\r\n sx={{\r\n display: 'grid',\r\n gridTemplateColumns: `repeat(${cols}, minmax(0, 1fr))`,\r\n gridAutoRows: 'auto',\r\n alignItems: 'center',\r\n rowGap: { xs: 0.5, sm: 1 },\r\n // Keep if you want horizontal scrolling in very tight layouts:\r\n // overflowX: 'auto',\r\n pb: 1,\r\n }}\r\n >\r\n {steps.map((step, index) => {\r\n const stepNumber = index + 1;\r\n const isActive = stepNumber === currentStep;\r\n const isCompleted = stepNumber < currentStep;\r\n const circleCol = 2 * index + 1;\r\n const lineCol = 2 * index + 2;\r\n\r\n return (\r\n <React.Fragment key={index}>\r\n {/* Circle */}\r\n <Box\r\n sx={{\r\n gridColumn: `${circleCol} / span 1`,\r\n gridRow: 1,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n }}\r\n >\r\n <StepNumber isActive={isActive} isCompleted={isCompleted}>\r\n {stepNumber}\r\n </StepNumber>\r\n </Box>\r\n\r\n {/* Connector (not after last step) */}\r\n {index < steps.length - 1 && (\r\n <Box\r\n sx={{\r\n gridColumn: `${lineCol} / span 1`,\r\n gridRow: 1,\r\n display: 'flex',\r\n alignItems: 'center',\r\n }}\r\n >\r\n <StepLine isCompleted={isCompleted} />\r\n </Box>\r\n )}\r\n\r\n {/* Label row (wraps independently) */}\r\n <Typography\r\n sx={{\r\n gridColumn: `${circleCol} / span 1`,\r\n gridRow: 2,\r\n mt: { xs: 0.5, sm: 1 },\r\n fontSize: { xs: '10px', sm: '12px' },\r\n fontWeight: 500,\r\n textAlign: 'center',\r\n whiteSpace: 'normal',\r\n overflowWrap: 'anywhere',\r\n wordBreak: 'break-word',\r\n // Constrain label width so wrap looks tidy; tweak as needed\r\n maxWidth: { xs: 80, sm: 112, md: 140 },\r\n justifySelf: 'center',\r\n color: isActive ? theme.palette.text.primary : `${theme.palette.dark.main}99`,\r\n }}\r\n >\r\n {step}\r\n </Typography>\r\n </React.Fragment>\r\n );\r\n })}\r\n </Box>\r\n );\r\n};\r\n"],"names":["styled","LinearProgress","_jsxs","Box","Typography","_jsx","useTheme"],"mappings":"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"}
|
|
@@ -13,11 +13,17 @@ const StyledSelect = material.styled(material.Select)(({ theme, error }) => ({
|
|
|
13
13
|
: theme.shape.borderRadius || 4) * 2,
|
|
14
14
|
fontSize: '1rem',
|
|
15
15
|
color: theme.palette.dark.main,
|
|
16
|
+
'& .MuiInputBase-root, &.MuiOutlinedInput-root': {
|
|
17
|
+
height: 48,
|
|
18
|
+
padding: 0,
|
|
19
|
+
},
|
|
16
20
|
'& .MuiOutlinedInput-notchedOutline': {
|
|
17
21
|
borderColor: error ? theme.palette.accent.main : `${theme.palette.dark.main}33`,
|
|
22
|
+
borderWidth: 2,
|
|
18
23
|
},
|
|
19
24
|
'&:hover .MuiOutlinedInput-notchedOutline': {
|
|
20
25
|
borderColor: error ? theme.palette.accent.main : theme.palette.primary.main,
|
|
26
|
+
borderWidth: 2,
|
|
21
27
|
},
|
|
22
28
|
'&.Mui-focused .MuiOutlinedInput-notchedOutline': {
|
|
23
29
|
borderWidth: 2,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Select.js","sources":["../../../../src/components/Select.tsx"],"sourcesContent":["\r\n\r\nimport React from 'react';\r\nimport { FormControl, InputLabel, Select as MuiSelect, MenuItem, FormHelperText, styled } from '@mui/material';\r\nimport { useTheme } from '../ThemeProvider';\r\nimport { ExpandMoreRounded } from '@mui/icons-material';\r\nimport { StyledLabel } from './Input';\r\n\r\ninterface SelectProps {\r\n label?: string;\r\n error?: string;\r\n helperText?: string;\r\n fullWidth?: boolean;\r\n options: { value: string; label: string }[];\r\n value?: string;\r\n onChange?: (event: React.ChangeEvent<HTMLSelectElement>) => void;\r\n disabled?: boolean;\r\n className?: string;\r\n id?: string;\r\n name?: string;\r\n}\r\n\r\nconst StyledSelect = styled(MuiSelect)(({ theme, error }) => ({\r\n backgroundColor: theme.palette.light.main,\r\n borderRadius: (typeof theme.shape.borderRadius === 'string'\r\n ? parseInt(theme.shape.borderRadius, 10)\r\n : theme.shape.borderRadius || 4) * 2,\r\n fontSize: '1rem',\r\n color: theme.palette.dark.main,\r\n '& .MuiOutlinedInput-notchedOutline': {\r\n borderColor: error ? theme.palette.accent.main : `${theme.palette.dark.main}33`,\r\n },\r\n '&:hover .MuiOutlinedInput-notchedOutline': {\r\n borderColor: error ? theme.palette.accent.main : theme.palette.primary.main,\r\n },\r\n '&.Mui-focused .MuiOutlinedInput-notchedOutline': {\r\n borderWidth: 2,\r\n borderColor: error ? theme.palette.accent.main : theme.palette.primary.main,\r\n },\r\n '&.Mui-disabled': {\r\n backgroundColor: `${theme.palette.dark.main}0D`,\r\n '& .MuiSelect-select': {\r\n color: `${theme.palette.dark.main}80`,\r\n cursor: 'not-allowed',\r\n },\r\n },\r\n '& .MuiSelect-icon': {\r\n color: `${theme.palette.dark.main}66`,\r\n },\r\n}));\r\n\r\nexport const Select: React.FC<SelectProps> = ({\r\n label,\r\n error,\r\n helperText,\r\n fullWidth = false,\r\n options,\r\n className = '',\r\n id,\r\n value,\r\n onChange,\r\n disabled,\r\n name,\r\n}) => {\r\n const theme = useTheme();\r\n const selectId = id || `select-${Math.random().toString(36).substr(2, 9)}`;\r\n\r\n const handleChange = (event: any) => {\r\n if (onChange) {\r\n // Create a synthetic event that matches React.ChangeEvent<HTMLSelectElement>\r\n const syntheticEvent = {\r\n target: {\r\n value: event.target.value,\r\n name: name || '',\r\n },\r\n currentTarget: event.currentTarget,\r\n } as React.ChangeEvent<HTMLSelectElement>;\r\n onChange(syntheticEvent);\r\n }\r\n };\r\n\r\n return (\r\n <FormControl \r\n fullWidth={fullWidth} \r\n error={!!error}\r\n className={className}\r\n >\r\n {label && (\r\n <StyledLabel htmlFor={selectId} shrink={false}>\r\n {label}\r\n </StyledLabel>\r\n )}\r\n <StyledSelect\r\n id={selectId}\r\n name={name}\r\n value={value || ''}\r\n onChange={handleChange}\r\n disabled={disabled}\r\n error={!!error}\r\n IconComponent={ExpandMoreRounded}\r\n MenuProps={{\r\n PaperProps: {\r\n sx: {\r\n mt: 1,\r\n borderRadius: 2,\r\n boxShadow: '0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)',\r\n },\r\n },\r\n }}\r\n >\r\n {options.map((option) => (\r\n <MenuItem \r\n key={option.value} \r\n value={option.value}\r\n sx={{\r\n fontSize: '1rem',\r\n color: theme.palette.dark.main,\r\n '&:hover': {\r\n backgroundColor: `${theme.palette.primary.main}1A`,\r\n },\r\n '&.Mui-selected': {\r\n backgroundColor: `${theme.palette.primary.main}26`,\r\n '&:hover': {\r\n backgroundColor: `${theme.palette.primary.main}33`,\r\n },\r\n },\r\n }}\r\n >\r\n {option.label}\r\n </MenuItem>\r\n ))}\r\n </StyledSelect>\r\n {error && (\r\n <FormHelperText\r\n sx={{\r\n mt: 0.75,\r\n fontSize: '0.875rem',\r\n color: theme.palette.accent.main,\r\n }}\r\n >\r\n {error}\r\n </FormHelperText>\r\n )}\r\n {helperText && !error && (\r\n <FormHelperText\r\n sx={{\r\n mt: 0.75,\r\n fontSize: '0.875rem',\r\n color: `${theme.palette.dark.main}99`,\r\n }}\r\n >\r\n {helperText}\r\n </FormHelperText>\r\n )}\r\n </FormControl>\r\n );\r\n};"],"names":["styled","MuiSelect","useTheme","_jsxs","FormControl","_jsx","StyledLabel","ExpandMoreRounded","MenuItem","FormHelperText"],"mappings":";;;;;;;;AAsBA,MAAM,YAAY,GAAGA,eAAM,CAACC,eAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM;AAC5D,IAAA,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI;IACzC,YAAY,EAAE,CAAC,OAAO,KAAK,CAAC,KAAK,CAAC,YAAY,KAAK;UAC/C,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE;UACrC,KAAK,CAAC,KAAK,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC;AACtC,IAAA,QAAQ,EAAE,MAAM;AAChB,IAAA,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI;AAC9B,IAAA,oCAAoC,EAAE;QACpC,WAAW,EAAE,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,GAAG,CAAA,EAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAA,EAAA,CAAI;
|
|
1
|
+
{"version":3,"file":"Select.js","sources":["../../../../src/components/Select.tsx"],"sourcesContent":["\r\n\r\nimport React from 'react';\r\nimport { FormControl, InputLabel, Select as MuiSelect, MenuItem, FormHelperText, styled } from '@mui/material';\r\nimport { useTheme } from '../ThemeProvider';\r\nimport { ExpandMoreRounded } from '@mui/icons-material';\r\nimport { StyledLabel } from './Input';\r\n\r\ninterface SelectProps {\r\n label?: string;\r\n error?: string;\r\n helperText?: string;\r\n fullWidth?: boolean;\r\n options: { value: string; label: string }[];\r\n value?: string;\r\n onChange?: (event: React.ChangeEvent<HTMLSelectElement>) => void;\r\n disabled?: boolean;\r\n className?: string;\r\n id?: string;\r\n name?: string;\r\n}\r\n\r\nconst StyledSelect = styled(MuiSelect)(({ theme, error }) => ({\r\n backgroundColor: theme.palette.light.main,\r\n borderRadius: (typeof theme.shape.borderRadius === 'string'\r\n ? parseInt(theme.shape.borderRadius, 10)\r\n : theme.shape.borderRadius || 4) * 2,\r\n fontSize: '1rem',\r\n color: theme.palette.dark.main,\r\n '& .MuiInputBase-root, &.MuiOutlinedInput-root': {\r\n height: 48,\r\n padding: 0,\r\n },\r\n '& .MuiOutlinedInput-notchedOutline': {\r\n borderColor: error ? theme.palette.accent.main : `${theme.palette.dark.main}33`,\r\n borderWidth: 2,\r\n },\r\n '&:hover .MuiOutlinedInput-notchedOutline': {\r\n borderColor: error ? theme.palette.accent.main : theme.palette.primary.main,\r\n borderWidth: 2,\r\n },\r\n '&.Mui-focused .MuiOutlinedInput-notchedOutline': {\r\n borderWidth: 2,\r\n borderColor: error ? theme.palette.accent.main : theme.palette.primary.main,\r\n },\r\n '&.Mui-disabled': {\r\n backgroundColor: `${theme.palette.dark.main}0D`,\r\n '& .MuiSelect-select': {\r\n color: `${theme.palette.dark.main}80`,\r\n cursor: 'not-allowed',\r\n },\r\n },\r\n '& .MuiSelect-icon': {\r\n color: `${theme.palette.dark.main}66`,\r\n },\r\n}));\r\n\r\nexport const Select: React.FC<SelectProps> = ({\r\n label,\r\n error,\r\n helperText,\r\n fullWidth = false,\r\n options,\r\n className = '',\r\n id,\r\n value,\r\n onChange,\r\n disabled,\r\n name,\r\n}) => {\r\n const theme = useTheme();\r\n const selectId = id || `select-${Math.random().toString(36).substr(2, 9)}`;\r\n\r\n const handleChange = (event: any) => {\r\n if (onChange) {\r\n // Create a synthetic event that matches React.ChangeEvent<HTMLSelectElement>\r\n const syntheticEvent = {\r\n target: {\r\n value: event.target.value,\r\n name: name || '',\r\n },\r\n currentTarget: event.currentTarget,\r\n } as React.ChangeEvent<HTMLSelectElement>;\r\n onChange(syntheticEvent);\r\n }\r\n };\r\n\r\n return (\r\n <FormControl \r\n fullWidth={fullWidth} \r\n error={!!error}\r\n className={className}\r\n >\r\n {label && (\r\n <StyledLabel htmlFor={selectId} shrink={false}>\r\n {label}\r\n </StyledLabel>\r\n )}\r\n <StyledSelect\r\n id={selectId}\r\n name={name}\r\n value={value || ''}\r\n onChange={handleChange}\r\n disabled={disabled}\r\n error={!!error}\r\n IconComponent={ExpandMoreRounded}\r\n MenuProps={{\r\n PaperProps: {\r\n sx: {\r\n mt: 1,\r\n borderRadius: 2,\r\n boxShadow: '0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)',\r\n },\r\n },\r\n }}\r\n >\r\n {options.map((option) => (\r\n <MenuItem \r\n key={option.value} \r\n value={option.value}\r\n sx={{\r\n fontSize: '1rem',\r\n color: theme.palette.dark.main,\r\n '&:hover': {\r\n backgroundColor: `${theme.palette.primary.main}1A`,\r\n },\r\n '&.Mui-selected': {\r\n backgroundColor: `${theme.palette.primary.main}26`,\r\n '&:hover': {\r\n backgroundColor: `${theme.palette.primary.main}33`,\r\n },\r\n },\r\n }}\r\n >\r\n {option.label}\r\n </MenuItem>\r\n ))}\r\n </StyledSelect>\r\n {error && (\r\n <FormHelperText\r\n sx={{\r\n mt: 0.75,\r\n fontSize: '0.875rem',\r\n color: theme.palette.accent.main,\r\n }}\r\n >\r\n {error}\r\n </FormHelperText>\r\n )}\r\n {helperText && !error && (\r\n <FormHelperText\r\n sx={{\r\n mt: 0.75,\r\n fontSize: '0.875rem',\r\n color: `${theme.palette.dark.main}99`,\r\n }}\r\n >\r\n {helperText}\r\n </FormHelperText>\r\n )}\r\n </FormControl>\r\n );\r\n};"],"names":["styled","MuiSelect","useTheme","_jsxs","FormControl","_jsx","StyledLabel","ExpandMoreRounded","MenuItem","FormHelperText"],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
|
2
2
|
import React__default from 'react';
|
|
3
3
|
import { styled, Box, Typography, TextField, IconButton, Divider } from '@mui/material';
|
|
4
4
|
import '../ThemeProvider.js';
|
|
5
|
-
import { MenuRounded
|
|
5
|
+
import { MenuRounded } from '@mui/icons-material';
|
|
6
6
|
import PopoverMenu from './PopoverMenu.js';
|
|
7
7
|
import { ReactComponent as SvgPrimaryLogoVariationCream } from '../images/PrimaryLogo_Variation_Cream.svg.js';
|
|
8
8
|
|
|
@@ -51,13 +51,13 @@ const StyledLogoSvg = styled(SvgPrimaryLogoVariationCream) `
|
|
|
51
51
|
height: 100%;
|
|
52
52
|
display: block;
|
|
53
53
|
`;
|
|
54
|
-
|
|
54
|
+
styled(Box)(({ theme }) => ({
|
|
55
55
|
flex: 1,
|
|
56
56
|
maxWidth: '32rem', // max-w-2xl
|
|
57
57
|
margin: theme.spacing(0, 2), // mx-8
|
|
58
58
|
position: 'relative',
|
|
59
59
|
}));
|
|
60
|
-
|
|
60
|
+
styled(TextField)(({ theme }) => ({
|
|
61
61
|
'& .MuiInputBase-root': {
|
|
62
62
|
backgroundColor: theme.palette.light.main, // bg-[#FDFCEE]
|
|
63
63
|
color: theme.palette.dark.main, // text-[#4D3019]
|
|
@@ -86,7 +86,7 @@ const StyledTextField = styled(TextField)(({ theme }) => ({
|
|
|
86
86
|
outlineOffset: 0,
|
|
87
87
|
},
|
|
88
88
|
}));
|
|
89
|
-
|
|
89
|
+
styled(IconButton)(({ theme }) => ({
|
|
90
90
|
display: 'flex',
|
|
91
91
|
alignItems: 'center',
|
|
92
92
|
justifyContent: 'center',
|
|
@@ -108,7 +108,7 @@ const StyledSearchButton = styled(IconButton)(({ theme }) => ({
|
|
|
108
108
|
backgroundColor: theme.palette.primary.main,
|
|
109
109
|
},
|
|
110
110
|
}));
|
|
111
|
-
|
|
111
|
+
styled(Box)(({ theme }) => ({
|
|
112
112
|
display: 'flex',
|
|
113
113
|
alignItems: 'center',
|
|
114
114
|
justifyContent: 'center',
|
|
@@ -174,16 +174,12 @@ const Header = ({ userName = 'John Doe', userInitials = 'JD', toggleMenu, signOu
|
|
|
174
174
|
const handleClose = () => {
|
|
175
175
|
setAnchorEl(null);
|
|
176
176
|
};
|
|
177
|
-
return (jsxs(StyledHeader, { children: [signUpStatus
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
} }) }),
|
|
183
|
-
jsx(StyledSearchButton, { disableRipple: true, onClick: search, sx: {
|
|
184
|
-
display: { xs: 'flex', md: 'none' },
|
|
185
|
-
backgroundColor: '#ffffff83'
|
|
186
|
-
}, children: jsx(StyledSearchIcon, { children: jsx(SearchRounded, {}) }) }), jsxs(IconButton, { onClick: handleOpen, disableRipple: true, children: [jsx(StyledAvatar, { children: jsx(StyledAvatarText, { children: userInitials }) }), jsx(StyledUserName, { children: userName })] })] }), jsx(PopoverMenu, { anchorEl: anchorEl, onClose: handleClose, signOut: () => { signOut(); handleClose(); } })] }));
|
|
177
|
+
return (jsxs(StyledHeader, { children: [signUpStatus === 'Active' && (jsxs(Fragment, { children: [jsx(IconButton, { disableRipple: true, onClick: toggleMenu, sx: { display: { xs: 'block', md: 'none' } }, size: "large" // optional: keeps touch target ~48px in MUI v5+
|
|
178
|
+
, children: jsx(MenuRounded, { sx: { fontSize: 32, color: 'white' } }) }), jsx(Divider, { orientation: "vertical", sx: {
|
|
179
|
+
color: '#FFFFFF',
|
|
180
|
+
borderRightWidth: 2,
|
|
181
|
+
display: { xs: 'block', md: 'none' },
|
|
182
|
+
} })] })), jsx(StyledLogoWrapper, { children: jsx(StyledLogoIcon, { children: jsx(StyledLogoSvg, {}) }) }), jsx(StyledUserContainer, { children: jsxs(IconButton, { onClick: handleOpen, disableRipple: true, children: [jsx(StyledAvatar, { children: jsx(StyledAvatarText, { children: userInitials }) }), jsx(StyledUserName, { children: userName })] }) }), jsx(PopoverMenu, { anchorEl: anchorEl, onClose: handleClose, signOut: () => { signOut(); handleClose(); } })] }));
|
|
187
183
|
};
|
|
188
184
|
|
|
189
185
|
export { Header };
|
|
@@ -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 <>\r\n <IconButton\r\n disableRipple\r\n onClick={toggleMenu}\r\n sx={{ display: { xs: 'block', md: 'none' } }} // show on mobile only\r\n size=\"large\" // optional: keeps touch target ~48px in MUI v5+\r\n >\r\n <MenuRounded sx={{ fontSize: 32, color: 'white' }} />\r\n </IconButton>\r\n\r\n <Divider\r\n orientation=\"vertical\"\r\n sx={{\r\n color: '#FFFFFF',\r\n borderRightWidth: 2,\r\n display: { xs: 'block', md: 'none' },\r\n }}\r\n />\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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"}
|
|
@@ -28,6 +28,7 @@ const StyledTextField = styled(TextField, {
|
|
|
28
28
|
fontSize: '1rem',
|
|
29
29
|
color: theme.palette.dark.main,
|
|
30
30
|
minWidth: 0,
|
|
31
|
+
height: 48,
|
|
31
32
|
padding: 0, // Remove padding from root
|
|
32
33
|
'& .MuiOutlinedInput-notchedOutline': {
|
|
33
34
|
borderColor: errorMessage ? theme.palette.accent.main : `${theme.palette.dark.main}33`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Input.js","sources":["../../../../src/components/Input.tsx"],"sourcesContent":["import React from 'react';\r\nimport { styled, TextField, TextFieldProps, InputLabel } from '@mui/material';\r\n\r\ninterface InputProps extends Omit<TextFieldProps, 'variant' | 'error'> {\r\n error?: string;\r\n}\r\n\r\nconst InputWrapper = styled('div')(({ theme }) => ({\r\n width: '100%',\r\n}));\r\n\r\nexport const StyledLabel = styled(InputLabel)(({ theme }) => ({\r\n fontSize: '0.875rem',\r\n fontWeight: 500,\r\n color: theme.palette.dark.main,\r\n marginBottom: theme.spacing(0.75),\r\n display: 'block',\r\n position: 'static',\r\n transform: 'none',\r\n '&.Mui-focused': {\r\n color: theme.palette.dark.main,\r\n },\r\n}));\r\n\r\nconst StyledTextField = styled(TextField, {\r\n shouldForwardProp: (prop) => !['errorMessage'].includes(prop as string),\r\n})<{ errorMessage?: string }>(({ theme, errorMessage }) => ({\r\n width: '100%',\r\n '& .MuiInputBase-root': {\r\n backgroundColor: theme.palette.light.main,\r\n borderRadius: (typeof theme.shape.borderRadius === 'string'\r\n ? parseInt(theme.shape.borderRadius, 10)\r\n : theme.shape.borderRadius || 4) * 2,\r\n fontSize: '1rem',\r\n color: theme.palette.dark.main,\r\n minWidth: 0,\r\n padding: 0, // Remove padding from root\r\n '& .MuiOutlinedInput-notchedOutline': {\r\n borderColor: errorMessage ? theme.palette.accent.main : `${theme.palette.dark.main}33`,\r\n borderWidth: 2,\r\n },\r\n '&:hover .MuiOutlinedInput-notchedOutline': {\r\n borderColor: errorMessage ? theme.palette.accent.main : theme.palette.primary.main,\r\n borderWidth: 2,\r\n },\r\n '&.Mui-focused .MuiOutlinedInput-notchedOutline': {\r\n borderWidth: 2,\r\n borderColor: errorMessage ? theme.palette.accent.main : theme.palette.primary.main,\r\n },\r\n '&.Mui-disabled': {\r\n backgroundColor: `${theme.palette.dark.main}0D`,\r\n '& .MuiInputBase-input': {\r\n color: `${theme.palette.dark.main}80`,\r\n cursor: 'not-allowed',\r\n },\r\n '& .MuiOutlinedInput-notchedOutline': {\r\n borderColor: `${theme.palette.dark.main}33`,\r\n },\r\n },\r\n },\r\n // Target the actual input element for padding\r\n '& .MuiInputBase-input': {\r\n padding: theme.spacing(1, 3),\r\n [theme.breakpoints.up('sm')]: {\r\n padding: theme.spacing(1.25, 4),\r\n },\r\n },\r\n '& .MuiFormHelperText-root': {\r\n marginTop: theme.spacing(0.75),\r\n fontSize: '0.875rem',\r\n color: errorMessage ? theme.palette.accent.main : `${theme.palette.dark.main}99`,\r\n },\r\n}));\r\n\r\nexport const Input: React.FC<InputProps> = ({\r\n error,\r\n fullWidth = false,\r\n id,\r\n label,\r\n ...props\r\n}) => {\r\n const inputId = id || `input-${Math.random().toString(36).substr(2, 9)}`;\r\n\r\n return (\r\n <InputWrapper sx={{ ...(!fullWidth && { width: 'auto' }) }}>\r\n {label && (\r\n <StyledLabel htmlFor={inputId}>\r\n {label}\r\n </StyledLabel>\r\n )}\r\n <StyledTextField\r\n id={inputId}\r\n error={!!error}\r\n helperText={error || props.helperText}\r\n errorMessage={error}\r\n fullWidth={fullWidth}\r\n variant=\"outlined\"\r\n {...props}\r\n />\r\n </InputWrapper>\r\n );\r\n};\r\n"],"names":["_jsxs","_jsx"],"mappings":";;;AAOA,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM;AACjD,IAAA,KAAK,EAAE,MAAM;AACd,CAAA,CAAC,CAAC;AAEI,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM;AAC5D,IAAA,QAAQ,EAAE,UAAU;AACpB,IAAA,UAAU,EAAE,GAAG;AACf,IAAA,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI;AAC9B,IAAA,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;AACjC,IAAA,OAAO,EAAE,OAAO;AAChB,IAAA,QAAQ,EAAE,QAAQ;AAClB,IAAA,SAAS,EAAE,MAAM;AACjB,IAAA,eAAe,EAAE;AACf,QAAA,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI;AAC/B,KAAA;AACF,CAAA,CAAC;AAEF,MAAM,eAAe,GAAG,MAAM,CAAC,SAAS,EAAE;AACxC,IAAA,iBAAiB,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,IAAc,CAAC;CACxE,CAAC,CAA4B,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM;AAC1D,IAAA,KAAK,EAAE,MAAM;AACb,IAAA,sBAAsB,EAAE;AACtB,QAAA,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI;QACzC,YAAY,EAAE,CAAC,OAAO,KAAK,CAAC,KAAK,CAAC,YAAY,KAAK;cACnD,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE;cACrC,KAAK,CAAC,KAAK,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC;AAClC,QAAA,QAAQ,EAAE,MAAM;AAChB,QAAA,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI;AAC9B,QAAA,QAAQ,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"Input.js","sources":["../../../../src/components/Input.tsx"],"sourcesContent":["import React from 'react';\r\nimport { styled, TextField, TextFieldProps, InputLabel } from '@mui/material';\r\n\r\ninterface InputProps extends Omit<TextFieldProps, 'variant' | 'error'> {\r\n error?: string;\r\n}\r\n\r\nconst InputWrapper = styled('div')(({ theme }) => ({\r\n width: '100%',\r\n}));\r\n\r\nexport const StyledLabel = styled(InputLabel)(({ theme }) => ({\r\n fontSize: '0.875rem',\r\n fontWeight: 500,\r\n color: theme.palette.dark.main,\r\n marginBottom: theme.spacing(0.75),\r\n display: 'block',\r\n position: 'static',\r\n transform: 'none',\r\n '&.Mui-focused': {\r\n color: theme.palette.dark.main,\r\n },\r\n}));\r\n\r\nconst StyledTextField = styled(TextField, {\r\n shouldForwardProp: (prop) => !['errorMessage'].includes(prop as string),\r\n})<{ errorMessage?: string }>(({ theme, errorMessage }) => ({\r\n width: '100%',\r\n '& .MuiInputBase-root': {\r\n backgroundColor: theme.palette.light.main,\r\n borderRadius: (typeof theme.shape.borderRadius === 'string'\r\n ? parseInt(theme.shape.borderRadius, 10)\r\n : theme.shape.borderRadius || 4) * 2,\r\n fontSize: '1rem',\r\n color: theme.palette.dark.main,\r\n minWidth: 0,\r\n height: 48,\r\n padding: 0, // Remove padding from root\r\n '& .MuiOutlinedInput-notchedOutline': {\r\n borderColor: errorMessage ? theme.palette.accent.main : `${theme.palette.dark.main}33`,\r\n borderWidth: 2,\r\n },\r\n '&:hover .MuiOutlinedInput-notchedOutline': {\r\n borderColor: errorMessage ? theme.palette.accent.main : theme.palette.primary.main,\r\n borderWidth: 2,\r\n },\r\n '&.Mui-focused .MuiOutlinedInput-notchedOutline': {\r\n borderWidth: 2,\r\n borderColor: errorMessage ? theme.palette.accent.main : theme.palette.primary.main,\r\n },\r\n '&.Mui-disabled': {\r\n backgroundColor: `${theme.palette.dark.main}0D`,\r\n '& .MuiInputBase-input': {\r\n color: `${theme.palette.dark.main}80`,\r\n cursor: 'not-allowed',\r\n },\r\n '& .MuiOutlinedInput-notchedOutline': {\r\n borderColor: `${theme.palette.dark.main}33`,\r\n },\r\n },\r\n },\r\n // Target the actual input element for padding\r\n '& .MuiInputBase-input': {\r\n padding: theme.spacing(1, 3),\r\n [theme.breakpoints.up('sm')]: {\r\n padding: theme.spacing(1.25, 4),\r\n },\r\n },\r\n '& .MuiFormHelperText-root': {\r\n marginTop: theme.spacing(0.75),\r\n fontSize: '0.875rem',\r\n color: errorMessage ? theme.palette.accent.main : `${theme.palette.dark.main}99`,\r\n },\r\n}));\r\n\r\nexport const Input: React.FC<InputProps> = ({\r\n error,\r\n fullWidth = false,\r\n id,\r\n label,\r\n ...props\r\n}) => {\r\n const inputId = id || `input-${Math.random().toString(36).substr(2, 9)}`;\r\n\r\n return (\r\n <InputWrapper sx={{ ...(!fullWidth && { width: 'auto' }) }}>\r\n {label && (\r\n <StyledLabel htmlFor={inputId}>\r\n {label}\r\n </StyledLabel>\r\n )}\r\n <StyledTextField\r\n id={inputId}\r\n error={!!error}\r\n helperText={error || props.helperText}\r\n errorMessage={error}\r\n fullWidth={fullWidth}\r\n variant=\"outlined\"\r\n {...props}\r\n />\r\n </InputWrapper>\r\n );\r\n};\r\n"],"names":["_jsxs","_jsx"],"mappings":"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"}
|
|
@@ -30,12 +30,12 @@ const StepNumber = styled(Box, {
|
|
|
30
30
|
fontSize: '0.875rem',
|
|
31
31
|
transition: 'all 0.2s',
|
|
32
32
|
backgroundColor: isCompleted || isActive
|
|
33
|
-
? theme.palette.primary
|
|
33
|
+
? theme.palette.text.primary
|
|
34
34
|
: `${theme.palette.dark.main}1A`,
|
|
35
35
|
color: isCompleted || isActive
|
|
36
|
-
? (theme.palette.custom?.stepIndicatorTextColor || theme.palette.
|
|
36
|
+
? (theme.palette.custom?.stepIndicatorTextColor || theme.palette.text.primary)
|
|
37
37
|
: `${theme.palette.dark.main}99`,
|
|
38
|
-
boxShadow: isActive ? `0 0 0 4px ${theme.palette.primary
|
|
38
|
+
boxShadow: isActive ? `0 0 0 4px ${theme.palette.text.primary}33` : 'none',
|
|
39
39
|
[theme.breakpoints.down('sm')]: {
|
|
40
40
|
width: 32,
|
|
41
41
|
height: 32,
|
|
@@ -49,7 +49,7 @@ const StepLine = styled(Box, {
|
|
|
49
49
|
borderRadius: 2,
|
|
50
50
|
width: '100%',
|
|
51
51
|
transition: 'background-color 0.2s',
|
|
52
|
-
backgroundColor: isCompleted ? theme.palette.primary
|
|
52
|
+
backgroundColor: isCompleted ? theme.palette.text.primary : `${theme.palette.dark.main}1A`,
|
|
53
53
|
[theme.breakpoints.down('sm')]: {
|
|
54
54
|
height: 2,
|
|
55
55
|
},
|
|
@@ -95,7 +95,7 @@ const StepIndicator = ({ steps, currentStep, className = '' }) => {
|
|
|
95
95
|
// Constrain label width so wrap looks tidy; tweak as needed
|
|
96
96
|
maxWidth: { xs: 80, sm: 112, md: 140 },
|
|
97
97
|
justifySelf: 'center',
|
|
98
|
-
color: isActive ? theme.palette.primary
|
|
98
|
+
color: isActive ? theme.palette.text.primary : `${theme.palette.dark.main}99`,
|
|
99
99
|
}, children: step })] }, index));
|
|
100
100
|
}) }));
|
|
101
101
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Progress.js","sources":["../../../../src/components/Progress.tsx"],"sourcesContent":["\r\n\r\nimport React from 'react';\r\nimport { Box, Typography, LinearProgress, styled } from '@mui/material';\r\nimport { useTheme } from '../ThemeProvider';\r\n\r\ninterface ProgressProps {\r\n current: number;\r\n total: number;\r\n showLabel?: boolean;\r\n className?: string;\r\n}\r\n\r\nconst StyledLinearProgress = styled(LinearProgress)(({ theme }) => ({\r\n height: 10,\r\n borderRadius: 9999,\r\n backgroundColor: `${theme.palette.dark.main}1A`,\r\n '& .MuiLinearProgress-bar': {\r\n borderRadius: 9999,\r\n backgroundColor: theme.palette.primary.main,\r\n transition: 'transform 0.3s ease-out',\r\n },\r\n}));\r\n\r\nexport const Progress: React.FC<ProgressProps> = ({\r\n current,\r\n total,\r\n showLabel = true,\r\n className = ''\r\n}) => {\r\n const percentage = Math.min(Math.max((current / total) * 100, 0), 100);\r\n\r\n return (\r\n <Box className={className}>\r\n {showLabel && (\r\n <Box sx={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center', mb: 1 }}>\r\n <Typography variant=\"body2\" fontWeight={500}>\r\n Step {current} of {total}\r\n </Typography>\r\n <Typography variant=\"body2\" fontWeight={500}>\r\n {Math.round(percentage)}%\r\n </Typography>\r\n </Box>\r\n )}\r\n <StyledLinearProgress variant=\"determinate\" value={percentage} />\r\n </Box>\r\n );\r\n};\r\ninterface StepIndicatorProps {\r\n steps: string[];\r\n currentStep: number;\r\n className?: string;\r\n}\r\n\r\nconst StepNumber = styled(Box, {\r\n shouldForwardProp: (prop) => prop !== 'isActive' && prop !== 'isCompleted'\r\n})<{ isActive: boolean; isCompleted: boolean }>(\r\n ({ theme, isActive, isCompleted }) => ({\r\n width: 40,\r\n height: 40,\r\n borderRadius: '50%',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n fontWeight: 600,\r\n fontSize: '0.875rem',\r\n transition: 'all 0.2s',\r\n backgroundColor: isCompleted || isActive\r\n ? theme.palette.primary.main\r\n : `${theme.palette.dark.main}1A`,\r\n color: isCompleted || isActive\r\n ? (theme.palette.custom?.stepIndicatorTextColor || theme.palette.dark.main)\r\n : `${theme.palette.dark.main}99`,\r\n boxShadow: isActive ? `0 0 0 4px ${theme.palette.primary.main}33` : 'none',\r\n [theme.breakpoints.down('sm')]: {\r\n width: 32,\r\n height: 32,\r\n fontSize: '0.75rem',\r\n },\r\n })\r\n);\r\n\r\nconst StepLine = styled(Box, {\r\n shouldForwardProp: (prop) => prop !== 'isCompleted'\r\n})<{ isCompleted: boolean }>(({ theme, isCompleted }) => ({\r\n height: 4,\r\n borderRadius: 2,\r\n width: '100%',\r\n transition: 'background-color 0.2s',\r\n backgroundColor: isCompleted ? theme.palette.primary.main : `${theme.palette.dark.main}1A`,\r\n [theme.breakpoints.down('sm')]: {\r\n height: 2,\r\n },\r\n}));\r\n\r\nexport const StepIndicator: React.FC<StepIndicatorProps> = ({\r\n steps,\r\n currentStep,\r\n className = ''\r\n}) => {\r\n const theme = useTheme();\r\n const cols = steps.length * 2 - 1;\r\n\r\n return (\r\n <Box\r\n className={className}\r\n sx={{\r\n display: 'grid',\r\n gridTemplateColumns: `repeat(${cols}, minmax(0, 1fr))`,\r\n gridAutoRows: 'auto',\r\n alignItems: 'center',\r\n rowGap: { xs: 0.5, sm: 1 },\r\n // Keep if you want horizontal scrolling in very tight layouts:\r\n // overflowX: 'auto',\r\n pb: 1,\r\n }}\r\n >\r\n {steps.map((step, index) => {\r\n const stepNumber = index + 1;\r\n const isActive = stepNumber === currentStep;\r\n const isCompleted = stepNumber < currentStep;\r\n const circleCol = 2 * index + 1;\r\n const lineCol = 2 * index + 2;\r\n\r\n return (\r\n <React.Fragment key={index}>\r\n {/* Circle */}\r\n <Box\r\n sx={{\r\n gridColumn: `${circleCol} / span 1`,\r\n gridRow: 1,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n }}\r\n >\r\n <StepNumber isActive={isActive} isCompleted={isCompleted}>\r\n {stepNumber}\r\n </StepNumber>\r\n </Box>\r\n\r\n {/* Connector (not after last step) */}\r\n {index < steps.length - 1 && (\r\n <Box\r\n sx={{\r\n gridColumn: `${lineCol} / span 1`,\r\n gridRow: 1,\r\n display: 'flex',\r\n alignItems: 'center',\r\n }}\r\n >\r\n <StepLine isCompleted={isCompleted} />\r\n </Box>\r\n )}\r\n\r\n {/* Label row (wraps independently) */}\r\n <Typography\r\n sx={{\r\n gridColumn: `${circleCol} / span 1`,\r\n gridRow: 2,\r\n mt: { xs: 0.5, sm: 1 },\r\n fontSize: { xs: '10px', sm: '12px' },\r\n fontWeight: 500,\r\n textAlign: 'center',\r\n whiteSpace: 'normal',\r\n overflowWrap: 'anywhere',\r\n wordBreak: 'break-word',\r\n // Constrain label width so wrap looks tidy; tweak as needed\r\n maxWidth: { xs: 80, sm: 112, md: 140 },\r\n justifySelf: 'center',\r\n color: isActive ? theme.palette.primary.main : `${theme.palette.dark.main}99`,\r\n }}\r\n >\r\n {step}\r\n </Typography>\r\n </React.Fragment>\r\n );\r\n })}\r\n </Box>\r\n );\r\n};\r\n"],"names":["_jsxs","_jsx","React"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Progress.js","sources":["../../../../src/components/Progress.tsx"],"sourcesContent":["\r\n\r\nimport React from 'react';\r\nimport { Box, Typography, LinearProgress, styled } from '@mui/material';\r\nimport { useTheme } from '../ThemeProvider';\r\n\r\ninterface ProgressProps {\r\n current: number;\r\n total: number;\r\n showLabel?: boolean;\r\n className?: string;\r\n}\r\n\r\nconst StyledLinearProgress = styled(LinearProgress)(({ theme }) => ({\r\n height: 10,\r\n borderRadius: 9999,\r\n backgroundColor: `${theme.palette.dark.main}1A`,\r\n '& .MuiLinearProgress-bar': {\r\n borderRadius: 9999,\r\n backgroundColor: theme.palette.primary.main,\r\n transition: 'transform 0.3s ease-out',\r\n },\r\n}));\r\n\r\nexport const Progress: React.FC<ProgressProps> = ({\r\n current,\r\n total,\r\n showLabel = true,\r\n className = ''\r\n}) => {\r\n const percentage = Math.min(Math.max((current / total) * 100, 0), 100);\r\n\r\n return (\r\n <Box className={className}>\r\n {showLabel && (\r\n <Box sx={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center', mb: 1 }}>\r\n <Typography variant=\"body2\" fontWeight={500}>\r\n Step {current} of {total}\r\n </Typography>\r\n <Typography variant=\"body2\" fontWeight={500}>\r\n {Math.round(percentage)}%\r\n </Typography>\r\n </Box>\r\n )}\r\n <StyledLinearProgress variant=\"determinate\" value={percentage} />\r\n </Box>\r\n );\r\n};\r\ninterface StepIndicatorProps {\r\n steps: string[];\r\n currentStep: number;\r\n className?: string;\r\n}\r\n\r\nconst StepNumber = styled(Box, {\r\n shouldForwardProp: (prop) => prop !== 'isActive' && prop !== 'isCompleted'\r\n})<{ isActive: boolean; isCompleted: boolean }>(\r\n ({ theme, isActive, isCompleted }) => ({\r\n width: 40,\r\n height: 40,\r\n borderRadius: '50%',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n fontWeight: 600,\r\n fontSize: '0.875rem',\r\n transition: 'all 0.2s',\r\n backgroundColor: isCompleted || isActive\r\n ? theme.palette.text.primary\r\n : `${theme.palette.dark.main}1A`,\r\n color: isCompleted || isActive\r\n ? (theme.palette.custom?.stepIndicatorTextColor || theme.palette.text.primary)\r\n : `${theme.palette.dark.main}99`,\r\n boxShadow: isActive ? `0 0 0 4px ${theme.palette.text.primary}33` : 'none',\r\n [theme.breakpoints.down('sm')]: {\r\n width: 32,\r\n height: 32,\r\n fontSize: '0.75rem',\r\n },\r\n })\r\n);\r\n\r\nconst StepLine = styled(Box, {\r\n shouldForwardProp: (prop) => prop !== 'isCompleted'\r\n})<{ isCompleted: boolean }>(({ theme, isCompleted }) => ({\r\n height: 4,\r\n borderRadius: 2,\r\n width: '100%',\r\n transition: 'background-color 0.2s',\r\n backgroundColor: isCompleted ? theme.palette.text.primary : `${theme.palette.dark.main}1A`,\r\n [theme.breakpoints.down('sm')]: {\r\n height: 2,\r\n },\r\n}));\r\n\r\nexport const StepIndicator: React.FC<StepIndicatorProps> = ({\r\n steps,\r\n currentStep,\r\n className = ''\r\n}) => {\r\n const theme = useTheme();\r\n const cols = steps.length * 2 - 1;\r\n\r\n return (\r\n <Box\r\n className={className}\r\n sx={{\r\n display: 'grid',\r\n gridTemplateColumns: `repeat(${cols}, minmax(0, 1fr))`,\r\n gridAutoRows: 'auto',\r\n alignItems: 'center',\r\n rowGap: { xs: 0.5, sm: 1 },\r\n // Keep if you want horizontal scrolling in very tight layouts:\r\n // overflowX: 'auto',\r\n pb: 1,\r\n }}\r\n >\r\n {steps.map((step, index) => {\r\n const stepNumber = index + 1;\r\n const isActive = stepNumber === currentStep;\r\n const isCompleted = stepNumber < currentStep;\r\n const circleCol = 2 * index + 1;\r\n const lineCol = 2 * index + 2;\r\n\r\n return (\r\n <React.Fragment key={index}>\r\n {/* Circle */}\r\n <Box\r\n sx={{\r\n gridColumn: `${circleCol} / span 1`,\r\n gridRow: 1,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n }}\r\n >\r\n <StepNumber isActive={isActive} isCompleted={isCompleted}>\r\n {stepNumber}\r\n </StepNumber>\r\n </Box>\r\n\r\n {/* Connector (not after last step) */}\r\n {index < steps.length - 1 && (\r\n <Box\r\n sx={{\r\n gridColumn: `${lineCol} / span 1`,\r\n gridRow: 1,\r\n display: 'flex',\r\n alignItems: 'center',\r\n }}\r\n >\r\n <StepLine isCompleted={isCompleted} />\r\n </Box>\r\n )}\r\n\r\n {/* Label row (wraps independently) */}\r\n <Typography\r\n sx={{\r\n gridColumn: `${circleCol} / span 1`,\r\n gridRow: 2,\r\n mt: { xs: 0.5, sm: 1 },\r\n fontSize: { xs: '10px', sm: '12px' },\r\n fontWeight: 500,\r\n textAlign: 'center',\r\n whiteSpace: 'normal',\r\n overflowWrap: 'anywhere',\r\n wordBreak: 'break-word',\r\n // Constrain label width so wrap looks tidy; tweak as needed\r\n maxWidth: { xs: 80, sm: 112, md: 140 },\r\n justifySelf: 'center',\r\n color: isActive ? theme.palette.text.primary : `${theme.palette.dark.main}99`,\r\n }}\r\n >\r\n {step}\r\n </Typography>\r\n </React.Fragment>\r\n );\r\n })}\r\n </Box>\r\n );\r\n};\r\n"],"names":["_jsxs","_jsx","React"],"mappings":"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"}
|
|
@@ -11,11 +11,17 @@ const StyledSelect = styled(Select$1)(({ theme, error }) => ({
|
|
|
11
11
|
: theme.shape.borderRadius || 4) * 2,
|
|
12
12
|
fontSize: '1rem',
|
|
13
13
|
color: theme.palette.dark.main,
|
|
14
|
+
'& .MuiInputBase-root, &.MuiOutlinedInput-root': {
|
|
15
|
+
height: 48,
|
|
16
|
+
padding: 0,
|
|
17
|
+
},
|
|
14
18
|
'& .MuiOutlinedInput-notchedOutline': {
|
|
15
19
|
borderColor: error ? theme.palette.accent.main : `${theme.palette.dark.main}33`,
|
|
20
|
+
borderWidth: 2,
|
|
16
21
|
},
|
|
17
22
|
'&:hover .MuiOutlinedInput-notchedOutline': {
|
|
18
23
|
borderColor: error ? theme.palette.accent.main : theme.palette.primary.main,
|
|
24
|
+
borderWidth: 2,
|
|
19
25
|
},
|
|
20
26
|
'&.Mui-focused .MuiOutlinedInput-notchedOutline': {
|
|
21
27
|
borderWidth: 2,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Select.js","sources":["../../../../src/components/Select.tsx"],"sourcesContent":["\r\n\r\nimport React from 'react';\r\nimport { FormControl, InputLabel, Select as MuiSelect, MenuItem, FormHelperText, styled } from '@mui/material';\r\nimport { useTheme } from '../ThemeProvider';\r\nimport { ExpandMoreRounded } from '@mui/icons-material';\r\nimport { StyledLabel } from './Input';\r\n\r\ninterface SelectProps {\r\n label?: string;\r\n error?: string;\r\n helperText?: string;\r\n fullWidth?: boolean;\r\n options: { value: string; label: string }[];\r\n value?: string;\r\n onChange?: (event: React.ChangeEvent<HTMLSelectElement>) => void;\r\n disabled?: boolean;\r\n className?: string;\r\n id?: string;\r\n name?: string;\r\n}\r\n\r\nconst StyledSelect = styled(MuiSelect)(({ theme, error }) => ({\r\n backgroundColor: theme.palette.light.main,\r\n borderRadius: (typeof theme.shape.borderRadius === 'string'\r\n ? parseInt(theme.shape.borderRadius, 10)\r\n : theme.shape.borderRadius || 4) * 2,\r\n fontSize: '1rem',\r\n color: theme.palette.dark.main,\r\n '& .MuiOutlinedInput-notchedOutline': {\r\n borderColor: error ? theme.palette.accent.main : `${theme.palette.dark.main}33`,\r\n },\r\n '&:hover .MuiOutlinedInput-notchedOutline': {\r\n borderColor: error ? theme.palette.accent.main : theme.palette.primary.main,\r\n },\r\n '&.Mui-focused .MuiOutlinedInput-notchedOutline': {\r\n borderWidth: 2,\r\n borderColor: error ? theme.palette.accent.main : theme.palette.primary.main,\r\n },\r\n '&.Mui-disabled': {\r\n backgroundColor: `${theme.palette.dark.main}0D`,\r\n '& .MuiSelect-select': {\r\n color: `${theme.palette.dark.main}80`,\r\n cursor: 'not-allowed',\r\n },\r\n },\r\n '& .MuiSelect-icon': {\r\n color: `${theme.palette.dark.main}66`,\r\n },\r\n}));\r\n\r\nexport const Select: React.FC<SelectProps> = ({\r\n label,\r\n error,\r\n helperText,\r\n fullWidth = false,\r\n options,\r\n className = '',\r\n id,\r\n value,\r\n onChange,\r\n disabled,\r\n name,\r\n}) => {\r\n const theme = useTheme();\r\n const selectId = id || `select-${Math.random().toString(36).substr(2, 9)}`;\r\n\r\n const handleChange = (event: any) => {\r\n if (onChange) {\r\n // Create a synthetic event that matches React.ChangeEvent<HTMLSelectElement>\r\n const syntheticEvent = {\r\n target: {\r\n value: event.target.value,\r\n name: name || '',\r\n },\r\n currentTarget: event.currentTarget,\r\n } as React.ChangeEvent<HTMLSelectElement>;\r\n onChange(syntheticEvent);\r\n }\r\n };\r\n\r\n return (\r\n <FormControl \r\n fullWidth={fullWidth} \r\n error={!!error}\r\n className={className}\r\n >\r\n {label && (\r\n <StyledLabel htmlFor={selectId} shrink={false}>\r\n {label}\r\n </StyledLabel>\r\n )}\r\n <StyledSelect\r\n id={selectId}\r\n name={name}\r\n value={value || ''}\r\n onChange={handleChange}\r\n disabled={disabled}\r\n error={!!error}\r\n IconComponent={ExpandMoreRounded}\r\n MenuProps={{\r\n PaperProps: {\r\n sx: {\r\n mt: 1,\r\n borderRadius: 2,\r\n boxShadow: '0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)',\r\n },\r\n },\r\n }}\r\n >\r\n {options.map((option) => (\r\n <MenuItem \r\n key={option.value} \r\n value={option.value}\r\n sx={{\r\n fontSize: '1rem',\r\n color: theme.palette.dark.main,\r\n '&:hover': {\r\n backgroundColor: `${theme.palette.primary.main}1A`,\r\n },\r\n '&.Mui-selected': {\r\n backgroundColor: `${theme.palette.primary.main}26`,\r\n '&:hover': {\r\n backgroundColor: `${theme.palette.primary.main}33`,\r\n },\r\n },\r\n }}\r\n >\r\n {option.label}\r\n </MenuItem>\r\n ))}\r\n </StyledSelect>\r\n {error && (\r\n <FormHelperText\r\n sx={{\r\n mt: 0.75,\r\n fontSize: '0.875rem',\r\n color: theme.palette.accent.main,\r\n }}\r\n >\r\n {error}\r\n </FormHelperText>\r\n )}\r\n {helperText && !error && (\r\n <FormHelperText\r\n sx={{\r\n mt: 0.75,\r\n fontSize: '0.875rem',\r\n color: `${theme.palette.dark.main}99`,\r\n }}\r\n >\r\n {helperText}\r\n </FormHelperText>\r\n )}\r\n </FormControl>\r\n );\r\n};"],"names":["MuiSelect","_jsxs","_jsx"],"mappings":";;;;;;AAsBA,MAAM,YAAY,GAAG,MAAM,CAACA,QAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM;AAC5D,IAAA,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI;IACzC,YAAY,EAAE,CAAC,OAAO,KAAK,CAAC,KAAK,CAAC,YAAY,KAAK;UAC/C,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE;UACrC,KAAK,CAAC,KAAK,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC;AACtC,IAAA,QAAQ,EAAE,MAAM;AAChB,IAAA,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI;AAC9B,IAAA,oCAAoC,EAAE;QACpC,WAAW,EAAE,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,GAAG,CAAA,EAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAA,EAAA,CAAI;
|
|
1
|
+
{"version":3,"file":"Select.js","sources":["../../../../src/components/Select.tsx"],"sourcesContent":["\r\n\r\nimport React from 'react';\r\nimport { FormControl, InputLabel, Select as MuiSelect, MenuItem, FormHelperText, styled } from '@mui/material';\r\nimport { useTheme } from '../ThemeProvider';\r\nimport { ExpandMoreRounded } from '@mui/icons-material';\r\nimport { StyledLabel } from './Input';\r\n\r\ninterface SelectProps {\r\n label?: string;\r\n error?: string;\r\n helperText?: string;\r\n fullWidth?: boolean;\r\n options: { value: string; label: string }[];\r\n value?: string;\r\n onChange?: (event: React.ChangeEvent<HTMLSelectElement>) => void;\r\n disabled?: boolean;\r\n className?: string;\r\n id?: string;\r\n name?: string;\r\n}\r\n\r\nconst StyledSelect = styled(MuiSelect)(({ theme, error }) => ({\r\n backgroundColor: theme.palette.light.main,\r\n borderRadius: (typeof theme.shape.borderRadius === 'string'\r\n ? parseInt(theme.shape.borderRadius, 10)\r\n : theme.shape.borderRadius || 4) * 2,\r\n fontSize: '1rem',\r\n color: theme.palette.dark.main,\r\n '& .MuiInputBase-root, &.MuiOutlinedInput-root': {\r\n height: 48,\r\n padding: 0,\r\n },\r\n '& .MuiOutlinedInput-notchedOutline': {\r\n borderColor: error ? theme.palette.accent.main : `${theme.palette.dark.main}33`,\r\n borderWidth: 2,\r\n },\r\n '&:hover .MuiOutlinedInput-notchedOutline': {\r\n borderColor: error ? theme.palette.accent.main : theme.palette.primary.main,\r\n borderWidth: 2,\r\n },\r\n '&.Mui-focused .MuiOutlinedInput-notchedOutline': {\r\n borderWidth: 2,\r\n borderColor: error ? theme.palette.accent.main : theme.palette.primary.main,\r\n },\r\n '&.Mui-disabled': {\r\n backgroundColor: `${theme.palette.dark.main}0D`,\r\n '& .MuiSelect-select': {\r\n color: `${theme.palette.dark.main}80`,\r\n cursor: 'not-allowed',\r\n },\r\n },\r\n '& .MuiSelect-icon': {\r\n color: `${theme.palette.dark.main}66`,\r\n },\r\n}));\r\n\r\nexport const Select: React.FC<SelectProps> = ({\r\n label,\r\n error,\r\n helperText,\r\n fullWidth = false,\r\n options,\r\n className = '',\r\n id,\r\n value,\r\n onChange,\r\n disabled,\r\n name,\r\n}) => {\r\n const theme = useTheme();\r\n const selectId = id || `select-${Math.random().toString(36).substr(2, 9)}`;\r\n\r\n const handleChange = (event: any) => {\r\n if (onChange) {\r\n // Create a synthetic event that matches React.ChangeEvent<HTMLSelectElement>\r\n const syntheticEvent = {\r\n target: {\r\n value: event.target.value,\r\n name: name || '',\r\n },\r\n currentTarget: event.currentTarget,\r\n } as React.ChangeEvent<HTMLSelectElement>;\r\n onChange(syntheticEvent);\r\n }\r\n };\r\n\r\n return (\r\n <FormControl \r\n fullWidth={fullWidth} \r\n error={!!error}\r\n className={className}\r\n >\r\n {label && (\r\n <StyledLabel htmlFor={selectId} shrink={false}>\r\n {label}\r\n </StyledLabel>\r\n )}\r\n <StyledSelect\r\n id={selectId}\r\n name={name}\r\n value={value || ''}\r\n onChange={handleChange}\r\n disabled={disabled}\r\n error={!!error}\r\n IconComponent={ExpandMoreRounded}\r\n MenuProps={{\r\n PaperProps: {\r\n sx: {\r\n mt: 1,\r\n borderRadius: 2,\r\n boxShadow: '0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)',\r\n },\r\n },\r\n }}\r\n >\r\n {options.map((option) => (\r\n <MenuItem \r\n key={option.value} \r\n value={option.value}\r\n sx={{\r\n fontSize: '1rem',\r\n color: theme.palette.dark.main,\r\n '&:hover': {\r\n backgroundColor: `${theme.palette.primary.main}1A`,\r\n },\r\n '&.Mui-selected': {\r\n backgroundColor: `${theme.palette.primary.main}26`,\r\n '&:hover': {\r\n backgroundColor: `${theme.palette.primary.main}33`,\r\n },\r\n },\r\n }}\r\n >\r\n {option.label}\r\n </MenuItem>\r\n ))}\r\n </StyledSelect>\r\n {error && (\r\n <FormHelperText\r\n sx={{\r\n mt: 0.75,\r\n fontSize: '0.875rem',\r\n color: theme.palette.accent.main,\r\n }}\r\n >\r\n {error}\r\n </FormHelperText>\r\n )}\r\n {helperText && !error && (\r\n <FormHelperText\r\n sx={{\r\n mt: 0.75,\r\n fontSize: '0.875rem',\r\n color: `${theme.palette.dark.main}99`,\r\n }}\r\n >\r\n {helperText}\r\n </FormHelperText>\r\n )}\r\n </FormControl>\r\n );\r\n};"],"names":["MuiSelect","_jsxs","_jsx"],"mappings":"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"}
|