ece-docs-components 1.0.57 → 1.0.58
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/_virtual/index8.js +2 -2
- package/dist/cjs/_virtual/index9.js +2 -2
- package/dist/cjs/components/Header.js +28 -7
- package/dist/cjs/components/Header.js.map +1 -1
- package/dist/cjs/node_modules/domutils/lib/index.js +1 -1
- package/dist/cjs/node_modules/style-to-object/cjs/index.js +1 -1
- package/dist/esm/_virtual/index8.js +2 -2
- package/dist/esm/_virtual/index9.js +2 -2
- package/dist/esm/components/Header.js +28 -7
- package/dist/esm/components/Header.js.map +1 -1
- package/dist/esm/node_modules/domutils/lib/index.js +1 -1
- package/dist/esm/node_modules/style-to-object/cjs/index.js +1 -1
- package/package.json +1 -1
|
@@ -193,18 +193,20 @@ const Header = ({ userName = 'John Doe', userInitials = 'JD', toggleMenu, signOu
|
|
|
193
193
|
// Mobile
|
|
194
194
|
const [mobileSearchOpen, setMobileSearchOpen] = React.useState(false);
|
|
195
195
|
const mobileInputRef = React.useRef(null);
|
|
196
|
-
React.useRef(null);
|
|
197
|
-
//const [mobileResultLimit, setMobileResultLimit] = React.useState(5);
|
|
198
196
|
const [hasInvalidChars, setHasInvalidChars] = React.useState(false);
|
|
199
197
|
const INVALID_CHARS = /[^\p{L}\p{M}\p{N} (),\/\."'\-:;\$]/u;
|
|
200
198
|
const [isSearching, setIsSearching] = React.useState(false);
|
|
201
199
|
const headerRef = React.useRef(null);
|
|
202
200
|
const isActive = signUpStatus === 'Active';
|
|
201
|
+
const clearQueryOnNextResetRef = React.useRef(true);
|
|
202
|
+
const closeMobileOnNextResetRef = React.useRef(true);
|
|
203
203
|
const searchSeqRef = React.useRef(0);
|
|
204
204
|
const debounceRef = React.useRef(undefined);
|
|
205
205
|
const closeMobileSearch = () => {
|
|
206
206
|
setMobileSearchOpen(false);
|
|
207
|
-
|
|
207
|
+
if (clearQueryOnNextResetRef.current) {
|
|
208
|
+
setSearchQuery('');
|
|
209
|
+
}
|
|
208
210
|
setResults([]);
|
|
209
211
|
setOpenDropdown(false);
|
|
210
212
|
window.clearTimeout(debounceRef.current);
|
|
@@ -277,8 +279,23 @@ const Header = ({ userName = 'John Doe', userInitials = 'JD', toggleMenu, signOu
|
|
|
277
279
|
runSearch(searchQuery);
|
|
278
280
|
};
|
|
279
281
|
React.useEffect(() => {
|
|
280
|
-
|
|
281
|
-
|
|
282
|
+
const clearQuery = clearQueryOnNextResetRef.current;
|
|
283
|
+
const closeMobile = closeMobileOnNextResetRef.current;
|
|
284
|
+
if (closeMobile) {
|
|
285
|
+
// sidebar/normal navigation
|
|
286
|
+
closeMobileSearch();
|
|
287
|
+
}
|
|
288
|
+
else {
|
|
289
|
+
// navigation from clicking a search result: keep mobile panel open
|
|
290
|
+
if (clearQuery)
|
|
291
|
+
setSearchQuery('');
|
|
292
|
+
setResults([]);
|
|
293
|
+
setOpenDropdown(false);
|
|
294
|
+
window.clearTimeout(debounceRef.current);
|
|
295
|
+
}
|
|
296
|
+
// reset defaults for next navigation
|
|
297
|
+
clearQueryOnNextResetRef.current = true;
|
|
298
|
+
closeMobileOnNextResetRef.current = true;
|
|
282
299
|
}, [resetKey]);
|
|
283
300
|
React.useEffect(() => {
|
|
284
301
|
const handler = (e) => {
|
|
@@ -311,12 +328,16 @@ const Header = ({ userName = 'John Doe', userInitials = 'JD', toggleMenu, signOu
|
|
|
311
328
|
px: 2,
|
|
312
329
|
py: 1.5,
|
|
313
330
|
}, children: jsxRuntime.jsx(material.Typography, { sx: { fontSize: '14px', color: '#4D3019' }, children: "No results found" }) })) : (jsxRuntime.jsx(ResultsList, { mode: mode, items: results, onPick: (item) => {
|
|
314
|
-
|
|
331
|
+
clearQueryOnNextResetRef.current = false; // keep text
|
|
332
|
+
closeMobileOnNextResetRef.current = false; // keep mobile panel open
|
|
315
333
|
setOpenDropdown(false);
|
|
334
|
+
setResults([]);
|
|
335
|
+
onResultClick?.(item);
|
|
316
336
|
} })) }));
|
|
317
337
|
};
|
|
318
338
|
const ResultsList = ({ items, mode, paperRef, onPick, }) => {
|
|
319
339
|
const isDesktop = mode === 'desktop';
|
|
340
|
+
const displayedResults = mode == 'desktop' ? items : items.slice(0, 3);
|
|
320
341
|
return (jsxRuntime.jsx(material.Paper, { ref: paperRef, elevation: 0, sx: {
|
|
321
342
|
mt: 1,
|
|
322
343
|
border: '1px solid #4D3019',
|
|
@@ -334,7 +355,7 @@ const Header = ({ userName = 'John Doe', userInitials = 'JD', toggleMenu, signOu
|
|
|
334
355
|
overflow: 'hidden', // no scroll, no scrollbar
|
|
335
356
|
pb: 0,
|
|
336
357
|
}),
|
|
337
|
-
}, children: jsxRuntime.jsx(material.List, { dense: true, disablePadding: true, children:
|
|
358
|
+
}, children: jsxRuntime.jsx(material.List, { dense: true, disablePadding: true, children: displayedResults.map((item, index) => (jsxRuntime.jsx(material.ListItemButton, { alignItems: "flex-start", onClick: () => onPick(item), sx: {
|
|
338
359
|
py: 1.5,
|
|
339
360
|
px: 2,
|
|
340
361
|
backgroundColor: '#FEFDF7',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Header.js","sources":["../../../../src/components/Header.tsx"],"sourcesContent":["import React, { ChangeEvent } from 'react';\nimport {\n Box,\n styled,\n Typography,\n TextField,\n IconButton,\n Divider,\n Popper,\n Paper,\n List,\n ListItemText,\n ListItemButton,\n Collapse,\n useMediaQuery,\n CircularProgress,\n InputAdornment,\n} from '@mui/material';\nimport { useTheme } from '../ThemeProvider';\nimport { MenuRounded, SearchRounded, CloseRounded } from '@mui/icons-material';\nimport PopoverMenu from './PopoverMenu';\nimport { ReactComponent as Logo } from '../images/PrimaryLogo_Variation_Cream.svg';\n\ntype SignUpStatus = 'Withdrawn' | 'Onboarding' | 'Active' | 'In Review';\ninterface HeaderProps {\n userName?: string;\n userInitials?: string;\n toggleMenu: () => void;\n signOut: () => void;\n search?: (query: string) => Promise<HeaderSearchResult[]> | HeaderSearchResult[];\n onResultClick?: (result: HeaderSearchResult) => void;\n signUpStatus: SignUpStatus;\n resetKey?: string | number;\n}\n\nexport interface HeaderSearchResult {\n label: string;\n description?: string;\n value: string;\n}\n\nfunction renderDescription(desc: string): React.ReactNode {\n if (!desc) return null;\n\n const lines = desc.split(/\\r?\\n/).filter(line => line.trim().length > 0);\n\n const bulletLines = lines.filter(line => line.trim().startsWith(\"* \"));\n const nonBulletLines = lines.filter(line => !line.trim().startsWith(\"* \"));\n\n return (\n <div style={{ fontSize: 14, lineHeight: 1.5 }}>\n {nonBulletLines.length > 0 && (\n <div\n style={{\n whiteSpace: \"pre-line\",\n marginBottom: bulletLines.length > 0 ? 6 : 0, // spacing above bullets\n }}\n >\n {nonBulletLines.join(\"\\n\")}\n </div>\n )}\n\n {bulletLines.length > 0 && (\n <ul style={{ margin: 0, paddingLeft: 18 }}>\n {bulletLines.map((line, idx) => (\n <li key={idx}>\n {line.trim().replace(/^\\*\\s*/, \"\")}\n </li>\n ))}\n </ul>\n )}\n </div>\n );\n}\n\nconst StyledHeader = styled(Box)(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-start',\n backgroundColor: theme.palette.primary.main, // var(--color-primary)\n [theme.breakpoints.up('md')]: {\n gap: theme.spacing(4), // md:gap-4\n padding: theme.spacing(1.5, 1.5), // px-4 py-3\n },\n [theme.breakpoints.down('md')]: {\n padding: 0, // px-4 py-3\n },\n}));\n\nconst StyledLogoWrapper = styled(Box)(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n padding: theme.spacing(1.5),\n gap: theme.spacing(2),\n height: '64px', \n}));\n\n\nconst StyledLogoIcon = styled(Box)(({ theme }) => ({\n width: '100%',\n height: '100%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n color: theme.palette.light.main,\n}));\n\n\nconst StyledLogoText = styled(Typography)(({ theme }) => ({\n color: theme.palette.light.main, // text-[#FDFCEE]\n fontWeight: 700, // font-bold\n letterSpacing: '0.05em', // tracking-wide\n fontSize: '1.5rem', // text-2xl\n [theme.breakpoints.down('md')]: {\n fontSize: '1.25rem', // sm:text-xl\n },\n [theme.breakpoints.down('sm')]: {\n fontSize: '1.125rem', // text-lg\n },\n}));\n\nconst StyledLogoSvg = styled(Logo)`\n width: 100%;\n height: 100%;\n display: block;\n`;\n\n\nconst StyledSearchContainer = styled(Box)(({ theme }) => ({\n flex: 1,\n maxWidth: '45rem',\n margin: theme.spacing(0, 2), // mx-8\n position: 'relative',\n}));\n\nconst StyledTextField = styled(TextField)(({ theme }) => ({\n '& .MuiInputBase-root': {\n backgroundColor: theme.palette.light.main, // bg-[#FDFCEE]\n color: theme.palette.dark.main, // text-[#4D3019]\n borderRadius: '9999px', // rounded-full\n fontSize: '1rem', // text-base\n [theme.breakpoints.down('md')]: {\n paddingRight: theme.spacing(5), // sm:pr-10\n fontSize: '0.875rem', // text-sm\n },\n },\n '& .MuiInputBase-input': {\n padding: theme.spacing(1.5, 3), // px-4 py-2\n [theme.breakpoints.up('md')]: {\n padding: theme.spacing(1.5, 4), // md:px-6 md:py-3\n },\n [theme.breakpoints.down('sm')]: {\n padding: theme.spacing(1.5, 2.5), // sm:px-5\n },\n },\n '& .MuiInputBase-input::placeholder': {\n color: `${theme.palette.dark.main}99`, // placeholder-[#4D3019]/60\n opacity: 1,\n },\n '& .MuiInputBase-root:focus-within': {\n outline: `2px solid ${theme.palette.light.main}`, // focus:ring-2 focus:ring-[#FDFCEE]\n outlineOffset: 0,\n },\n}));\n\nconst StyledSearchButton = styled(IconButton)(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n position: 'static',\n borderRadius: '50%',\n backgroundColor: theme.palette.primary.main,\n width: theme.spacing(5),\n height: theme.spacing(5),\n [theme.breakpoints.down('md')]: {\n width: theme.spacing(5),\n height: theme.spacing(5),\n marginRight: theme.spacing(1),\n },\n [theme.breakpoints.down('sm')]: {\n marginRight: theme.spacing(0.5),\n },\n '&:hover': {\n opacity: 0.9,\n backgroundColor: theme.palette.primary.main,\n },\n}));\n\nconst StyledSearchIcon = styled(Box)(({ theme }) => ({\n display: 'flex', \n alignItems: 'center',\n justifyContent: 'center',\n color: theme.palette.light.main,\n width: '100%',\n height: '100%',\n '& svg': {\n fontSize: '1.5rem',\n [theme.breakpoints.down('sm')]: {\n fontSize: '1.25rem',\n },\n },\n}));\n\nconst StyledUserContainer = styled(Box)(({ theme }) => ({\n marginLeft: 'auto',\n display: 'flex',\n alignItems: 'center',\n gap: theme.spacing(3), // md:gap-3\n [theme.breakpoints.down('md')]: {\n gap: 0,\n },\n}));\n\nconst StyledAvatar = styled(Box)(({ theme }) => ({\n width: theme.spacing(6), // md:w-12\n height: theme.spacing(6), // md:h-12\n borderRadius: '50%', // rounded-full\n backgroundColor: theme.palette.light.main, // bg-[#FDFCEE]\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexShrink: 0,\n [theme.breakpoints.down('md')]: {\n width: theme.spacing(5), // sm:w-10\n height: theme.spacing(5), // sm:h-10\n }\n}));\n\nconst StyledAvatarText = styled(Typography)(({ theme }) => ({\n color: theme.palette.dark.main, // text-[#4D3019]\n fontWeight: 700, // font-bold\n fontSize: '1.125rem', // text-lg\n [theme.breakpoints.down('md')]: {\n fontSize: '0.875rem', // text-sm\n },\n}));\n\nconst StyledUserName = styled(Typography)(({ theme }) => ({\n color: theme.palette.light.main, // text-[#FDFCEE]\n fontWeight: 500, // font-medium\n marginLeft: theme.spacing(1),\n fontSize: '1.125rem', // text-lg\n display: 'none', // hidden\n [theme.breakpoints.up('sm')]: {\n display: 'inline', // sm:inline\n },\n [theme.breakpoints.down('md')]: {\n fontSize: '0.875rem', // text-sm\n display: 'none'\n },\n}));\n\nexport const Header: React.FC<HeaderProps> = ({\n userName = 'John Doe',\n userInitials = 'JD',\n toggleMenu,\n signOut,\n search,\n onResultClick,\n signUpStatus,\n resetKey,\n}) => {\n const theme = useTheme();\n const [anchorEl, setAnchorEl] = React.useState<HTMLButtonElement | null>(null);\n const [searchQuery, setSearchQuery] = React.useState('');\n const [results, setResults] = React.useState<HeaderSearchResult[]>([]);\n const [openDropdown, setOpenDropdown] = React.useState(false);\n\n const isMdUp = useMediaQuery(theme.breakpoints.up('md'));\n \n\n // Desktop\n const desktopInputRef = React.useRef<HTMLInputElement | null>(null);\n const desktopFieldRef = React.useRef<HTMLDivElement | null>(null);\n\n // Mobile\n const [mobileSearchOpen, setMobileSearchOpen] = React.useState(false);\n const mobileInputRef = React.useRef<HTMLInputElement | null>(null);\n const mobileResultsPaperRef = React.useRef<HTMLDivElement | null>(null);\n //const [mobileResultLimit, setMobileResultLimit] = React.useState(5);\n\n const [hasInvalidChars, setHasInvalidChars] = React.useState(false);\n const INVALID_CHARS = /[^\\p{L}\\p{M}\\p{N} (),\\/\\.\"'\\-:;\\$]/u;\n const sanitizeQuery = (s: string) => s.replace(INVALID_CHARS, '').trim();\n\n\n const [isSearching, setIsSearching] = React.useState(false);\n const headerRef = React.useRef<HTMLDivElement | null>(null);\n const isActive = signUpStatus === 'Active';\n\n\n\n const searchSeqRef = React.useRef(0);\n const debounceRef = React.useRef<number | undefined>(undefined);\n\n const closeMobileSearch = () => {\n setMobileSearchOpen(false);\n setSearchQuery('');\n setResults([]);\n setOpenDropdown(false);\n window.clearTimeout(debounceRef.current);\n };\n\n const toggleMobileSearch = () => {\n setMobileSearchOpen(prev => {\n const next = !prev;\n if (!next) {\n // cancelling\n closeMobileSearch();\n return false;\n }\n // opening\n setTimeout(() => mobileInputRef.current?.focus(), 0);\n return true;\n });\n };\n\n const handleOpen = (event: React.MouseEvent<HTMLButtonElement>) => {\n setAnchorEl(event.currentTarget);\n };\n\n const handleClose = () => {\n setAnchorEl(null);\n };\n\n const runSearch = async (term: string) => {\n\n if (!search || INVALID_CHARS.test(term)) { // Display invalid character message if illegal characters\n searchSeqRef.current += 1;\n setIsSearching(false);\n setResults([]);\n setHasInvalidChars(true);\n setOpenDropdown(true);\n return;\n }\n if (!term.trim()) { // Remove display message if no query is present\n searchSeqRef.current += 1;\n setIsSearching(false);\n setHasInvalidChars(false);\n setOpenDropdown(false);\n setResults([])\n return;\n }\n setHasInvalidChars(false);\n\n const seq = ++searchSeqRef.current;\n setIsSearching(true);\n try {\n const res = await Promise.resolve(search(term.trim()));\n\n if (seq !== searchSeqRef.current) return; // Fixes debounce race condition causing old searches to appear after newer\n\n const list = Array.isArray(res) ? res : [];\n setResults(list);\n setOpenDropdown(true); // display dropdown no matter what, if no results will display no results message\n } finally {\n if (seq === searchSeqRef.current) setIsSearching(false);\n }\n };\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (e.key === 'Enter') {\n e.preventDefault();\n runSearch(searchQuery);\n }\n };\n\n const handleSearchChange = (value: string) => {\n setSearchQuery(value);\n window.clearTimeout(debounceRef.current);\n\n debounceRef.current = window.setTimeout(() => runSearch(value), 150);\n };\n\n const handleSearchClick: React.MouseEventHandler<HTMLButtonElement> = (e) => {\n e.preventDefault();\n runSearch(searchQuery);\n };\n\n React.useEffect(() => {\n // When parent says the route changed (resetKey changes), reset search UI\n closeMobileSearch();\n }, [resetKey]);\n\n React.useEffect(() => {\n const handler = (e: MouseEvent) => {\n const t = e.target as Node;\n\n const inDesktop = desktopInputRef.current?.parentElement?.contains(t);\n const inMobile = mobileInputRef.current?.parentElement?.contains(t);\n\n if (!inDesktop && !inMobile) {\n setOpenDropdown(false);\n }\n };\n\n document.addEventListener('click', handler);\n return () => document.removeEventListener('click', handler);\n }, []);\n\n type ResultsMode = 'desktop' | 'mobile';\n\n const DropdownResults = ({\n mode,\n }: {\n mode: ResultsMode;\n }) => {\n const isDesktop = mode === 'desktop';\n return (\n <Box>\n {!isSearching && hasInvalidChars ? (\n <Paper\n elevation={0}\n sx={{\n mt: 1,\n border: '1px solid #4D3019',\n boxShadow: 'none',\n backgroundColor: '#FEFDF7',\n borderRadius: isDesktop ? '12px' : 0,\n px: 2,\n py: 1.5,\n }}\n >\n <Typography sx={{ fontSize: '14px', color: '#4D3019' }}>\n Oops — your search includes symbols we don’t support yet. Please remove special characters (like %, @, #, =) and try again.\n </Typography>\n </Paper>\n ) : !isSearching && results.length === 0 ? (\n <Paper\n elevation={0}\n sx={{\n mt: 1,\n border: '1px solid #4D3019',\n boxShadow: 'none',\n backgroundColor: '#FEFDF7',\n borderRadius: isDesktop ? '12px' : 0,\n px: 2,\n py: 1.5,\n }}\n >\n <Typography sx={{ fontSize: '14px', color: '#4D3019' }}>\n No results found\n </Typography>\n </Paper>\n ) : (\n <ResultsList\n mode={mode}\n items={results}\n onPick={(item) => {\n onResultClick?.(item);\n setOpenDropdown(false);\n }}\n />\n )}\n </Box>\n );\n};\n\n\n const ResultsList = ({\n items,\n mode,\n paperRef,\n onPick,\n }: {\n items: HeaderSearchResult[];\n mode: ResultsMode;\n paperRef?: React.Ref<HTMLDivElement>;\n onPick: (item: HeaderSearchResult) => void;\n }) => {\n const isDesktop = mode === 'desktop';\n return (\n <Paper\n ref={paperRef}\n elevation={0}\n \n sx={{\n mt: 1,\n border: '1px solid #4D3019',\n boxShadow: 'none',\n backgroundColor: '#FEFDF7',\n\n ...(isDesktop\n ? {\n maxHeight: 'auto',\n borderRadius: '12px',\n overflowX: 'hidden',\n overflowY: 'hidden',\n pb: 1.5,\n }\n : {\n overflow: 'hidden', // no scroll, no scrollbar\n pb: 0,\n }),\n }}\n >\n <List dense disablePadding>\n {items.map((item, index) => (\n <ListItemButton\n key={index}\n alignItems=\"flex-start\"\n onClick={() => onPick(item)}\n sx={{\n py: 1.5,\n px: 2,\n backgroundColor: '#FEFDF7',\n\n // dividers only on mobile (your current mobile styling)\n ...(isDesktop\n ? {}\n : {\n borderBottom:\n index === items.length - 1\n ? 'none'\n : '1px solid rgba(77,48,25,0.18)',\n }),\n\n '&:hover': { backgroundColor: '#F9F0FC' },\n '&:hover .search-result-title': {\n textDecoration: 'underline',\n color: '#AD46FF',\n },\n }}\n >\n <ListItemText\n primary={item.label}\n secondary={renderDescription(item.description!)}\n primaryTypographyProps={{\n className: 'search-result-title',\n fontWeight: 700,\n fontSize: '16px',\n color: '#4D3019',\n }}\n secondaryTypographyProps={{ component: 'div', mt: 1 }}\n />\n </ListItemButton>\n ))}\n </List>\n </Paper>\n );\n };\n\n\n return (\n <Box>\n <StyledHeader ref={headerRef}>\n {isActive && (\n <>\n <IconButton\n disableRipple\n onClick={toggleMenu}\n sx={{ display: { xs: 'block', md: 'none' } }}\n size=\"large\"\n >\n <MenuRounded sx={{ fontSize: 32, color: 'white' }} />\n </IconButton>\n\n <Divider\n orientation=\"vertical\"\n sx={{\n color: '#FFFFFF',\n borderRightWidth: 2,\n display: { xs: 'block', md: 'none' },\n }}\n />\n </>\n )}\n\n <StyledLogoWrapper>\n <StyledLogoIcon>\n <StyledLogoSvg />\n </StyledLogoIcon>\n </StyledLogoWrapper>\n\n {/* Desktop search only */}\n {isActive && isMdUp && (\n <StyledSearchContainer>\n <StyledTextField\n placeholder=\"Search for a policy\"\n variant=\"outlined\"\n fullWidth\n value={searchQuery}\n inputRef={desktopInputRef}\n ref={desktopFieldRef}\n onChange={(e) => handleSearchChange(e.target.value)}\n onKeyDown={handleKeyDown}\n InputProps={{\n endAdornment: (\n <InputAdornment position=\"end\">\n <Box sx = {{ mr: 1}}>\n {isSearching ? <CircularProgress size={24} /> : null} \n </Box>\n <StyledSearchButton onClick={handleSearchClick}>\n <StyledSearchIcon>\n <SearchRounded />\n </StyledSearchIcon>\n </StyledSearchButton>\n </InputAdornment>\n ),\n }}\n />\n\n <Popper\n open={openDropdown && !!desktopFieldRef.current}\n anchorEl={desktopFieldRef.current}\n placement=\"bottom-start\"\n style={{ zIndex: 1300, width: desktopFieldRef.current?.offsetWidth }}\n >\n <DropdownResults mode=\"desktop\"/>\n {/* {!isSearching && hasInvalidChars ? (\n <Paper\n elevation={0}\n sx={{\n mt: 1,\n border: '1px solid #4D3019',\n boxShadow: 'none',\n backgroundColor: '#FEFDF7',\n borderRadius: '12px',\n px: 2,\n py: 1.5,\n }}\n >\n <Typography sx={{ fontSize: '14px', color: '#4D3019' }}>\n Oops — your search includes symbols we don’t support yet. Please remove special characters (like %, @, #, =) and try again.\n </Typography>\n </Paper>\n ) : !isSearching && results.length === 0 ? (\n <Paper\n elevation={0}\n sx={{\n mt: 1,\n border: '1px solid #4D3019',\n boxShadow: 'none',\n backgroundColor: '#FEFDF7',\n borderRadius: '12px',\n px: 2,\n py: 1.5,\n }}\n >\n <Typography sx={{ fontSize: '14px', color: '#4D3019' }}>\n No results found\n </Typography>\n </Paper>\n ) : (\n <ResultsList\n mode=\"desktop\"\n items={results}\n onPick={(item) => {\n onResultClick?.(item);\n setOpenDropdown(false);\n }}\n />\n )} */}\n </Popper>\n </StyledSearchContainer>\n )}\n\n <StyledUserContainer>\n {/* Mobile search button only */}\n {isActive && !isMdUp && (\n <StyledSearchButton\n disableRipple\n onClick={toggleMobileSearch}\n sx={{\n display: { xs: 'flex', md: 'none' },\n backgroundColor: '#ffffff83',\n }}\n >\n <StyledSearchIcon>\n <SearchRounded />\n </StyledSearchIcon>\n </StyledSearchButton>\n )}\n\n <IconButton onClick={handleOpen} disableRipple>\n <StyledAvatar>\n <StyledAvatarText>{userInitials}</StyledAvatarText>\n </StyledAvatar>\n <StyledUserName>{userName}</StyledUserName>\n </IconButton>\n </StyledUserContainer>\n\n <PopoverMenu\n anchorEl={anchorEl}\n onClose={handleClose}\n signOut={() => {\n signOut();\n handleClose()\n }}\n />\n </StyledHeader>\n\n {/* Mobile panel only */}\n {!isMdUp && (\n <Collapse in={isActive && mobileSearchOpen} unmountOnExit timeout={200}>\n <Box\n sx={{\n display: { xs: 'block', md: 'none' },\n backgroundColor: theme.palette.primary.main,\n px: 2,\n pt: 1.5,\n pb: 2,\n }}\n >\n <Box sx={{ display: 'flex', gap: 1, alignItems: 'center' }}>\n <StyledTextField\n placeholder=\"Search for a policy\"\n variant=\"outlined\"\n fullWidth\n value={searchQuery}\n inputRef={mobileInputRef}\n onChange={(e) => handleSearchChange(e.target.value)}\n onKeyDown={handleKeyDown}\n InputProps={{\n endAdornment: (\n <InputAdornment position=\"end\">\n {isSearching ? <CircularProgress size={18} /> : null}\n </InputAdornment>\n )\n }}\n />\n\n <IconButton onClick={closeMobileSearch} sx={{ color: theme.palette.light.main }}>\n <CloseRounded />\n </IconButton>\n </Box>\n {openDropdown && (\n <Box sx={{ mx: -2 }}>\n <DropdownResults mode=\"mobile\"/>\n {/* {!isSearching && hasInvalidChars ? (\n <Paper\n elevation={0}\n sx={{\n mt: 1,\n border: '1px solid #4D3019',\n boxShadow: 'none',\n backgroundColor: '#FEFDF7',\n px: 2,\n py: 1.5,\n }}\n >\n <Typography sx={{ fontSize: '14px', color: '#4D3019' }}>\n Oops — your search includes symbols we don’t support yet. Please remove special characters (like %, @, #, =) and try again.\n </Typography>\n </Paper>\n ) : !isSearching && results.length === 0 ? (\n <Paper\n elevation={0}\n sx={{\n mt: 1,\n border: '1px solid #4D3019',\n boxShadow: 'none',\n backgroundColor: '#FEFDF7',\n px: 2,\n py: 1.5,\n }}\n >\n <Typography sx={{ fontSize: '14px', color: '#4D3019' }}>\n No results found\n </Typography>\n </Paper>\n ) : (\n <ResultsList\n mode=\"mobile\"\n items={results}\n paperRef={mobileResultsPaperRef}\n onPick={(item) => {\n onResultClick?.(item);\n setOpenDropdown(false);\n }}\n />\n )} */}\n </Box>\n )}\n </Box>\n </Collapse>\n )}\n </Box>\n );\n};"],"names":["_jsxs","_jsx","styled","Box","Typography","Logo","TextField","IconButton","useTheme","useMediaQuery","Paper","List","ListItemButton","ListItemText","_Fragment","MenuRounded","Divider","InputAdornment","CircularProgress","SearchRounded","Popper","PopoverMenu","Collapse","CloseRounded"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Header.js","sources":["../../../../src/components/Header.tsx"],"sourcesContent":["import React, { ChangeEvent } from 'react';\nimport {\n Box,\n styled,\n Typography,\n TextField,\n IconButton,\n Divider,\n Popper,\n Paper,\n List,\n ListItemText,\n ListItemButton,\n Collapse,\n useMediaQuery,\n CircularProgress,\n InputAdornment,\n} from '@mui/material';\nimport { useTheme } from '../ThemeProvider';\nimport { MenuRounded, SearchRounded, CloseRounded } from '@mui/icons-material';\nimport PopoverMenu from './PopoverMenu';\nimport { ReactComponent as Logo } from '../images/PrimaryLogo_Variation_Cream.svg';\n\ntype SignUpStatus = 'Withdrawn' | 'Onboarding' | 'Active' | 'In Review';\ninterface HeaderProps {\n userName?: string;\n userInitials?: string;\n toggleMenu: () => void;\n signOut: () => void;\n search?: (query: string) => Promise<HeaderSearchResult[]> | HeaderSearchResult[];\n onResultClick?: (result: HeaderSearchResult) => void;\n signUpStatus: SignUpStatus;\n resetKey?: string | number;\n}\n\nexport interface HeaderSearchResult {\n label: string;\n description?: string;\n value: string;\n}\n\nfunction renderDescription(desc: string): React.ReactNode {\n if (!desc) return null;\n\n const lines = desc.split(/\\r?\\n/).filter(line => line.trim().length > 0);\n\n const bulletLines = lines.filter(line => line.trim().startsWith(\"* \"));\n const nonBulletLines = lines.filter(line => !line.trim().startsWith(\"* \"));\n\n return (\n <div style={{ fontSize: 14, lineHeight: 1.5 }}>\n {nonBulletLines.length > 0 && (\n <div\n style={{\n whiteSpace: \"pre-line\",\n marginBottom: bulletLines.length > 0 ? 6 : 0, // spacing above bullets\n }}\n >\n {nonBulletLines.join(\"\\n\")}\n </div>\n )}\n\n {bulletLines.length > 0 && (\n <ul style={{ margin: 0, paddingLeft: 18 }}>\n {bulletLines.map((line, idx) => (\n <li key={idx}>\n {line.trim().replace(/^\\*\\s*/, \"\")}\n </li>\n ))}\n </ul>\n )}\n </div>\n );\n}\n\nconst StyledHeader = styled(Box)(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-start',\n backgroundColor: theme.palette.primary.main, // var(--color-primary)\n [theme.breakpoints.up('md')]: {\n gap: theme.spacing(4), // md:gap-4\n padding: theme.spacing(1.5, 1.5), // px-4 py-3\n },\n [theme.breakpoints.down('md')]: {\n padding: 0, // px-4 py-3\n },\n}));\n\nconst StyledLogoWrapper = styled(Box)(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n padding: theme.spacing(1.5),\n gap: theme.spacing(2),\n height: '64px', \n}));\n\n\nconst StyledLogoIcon = styled(Box)(({ theme }) => ({\n width: '100%',\n height: '100%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n color: theme.palette.light.main,\n}));\n\n\nconst StyledLogoText = styled(Typography)(({ theme }) => ({\n color: theme.palette.light.main, // text-[#FDFCEE]\n fontWeight: 700, // font-bold\n letterSpacing: '0.05em', // tracking-wide\n fontSize: '1.5rem', // text-2xl\n [theme.breakpoints.down('md')]: {\n fontSize: '1.25rem', // sm:text-xl\n },\n [theme.breakpoints.down('sm')]: {\n fontSize: '1.125rem', // text-lg\n },\n}));\n\nconst StyledLogoSvg = styled(Logo)`\n width: 100%;\n height: 100%;\n display: block;\n`;\n\n\nconst StyledSearchContainer = styled(Box)(({ theme }) => ({\n flex: 1,\n maxWidth: '45rem',\n margin: theme.spacing(0, 2), // mx-8\n position: 'relative',\n}));\n\nconst StyledTextField = styled(TextField)(({ theme }) => ({\n '& .MuiInputBase-root': {\n backgroundColor: theme.palette.light.main, // bg-[#FDFCEE]\n color: theme.palette.dark.main, // text-[#4D3019]\n borderRadius: '9999px', // rounded-full\n fontSize: '1rem', // text-base\n [theme.breakpoints.down('md')]: {\n paddingRight: theme.spacing(5), // sm:pr-10\n fontSize: '0.875rem', // text-sm\n },\n },\n '& .MuiInputBase-input': {\n padding: theme.spacing(1.5, 3), // px-4 py-2\n [theme.breakpoints.up('md')]: {\n padding: theme.spacing(1.5, 4), // md:px-6 md:py-3\n },\n [theme.breakpoints.down('sm')]: {\n padding: theme.spacing(1.5, 2.5), // sm:px-5\n },\n },\n '& .MuiInputBase-input::placeholder': {\n color: `${theme.palette.dark.main}99`, // placeholder-[#4D3019]/60\n opacity: 1,\n },\n '& .MuiInputBase-root:focus-within': {\n outline: `2px solid ${theme.palette.light.main}`, // focus:ring-2 focus:ring-[#FDFCEE]\n outlineOffset: 0,\n },\n}));\n\nconst StyledSearchButton = styled(IconButton)(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n position: 'static',\n borderRadius: '50%',\n backgroundColor: theme.palette.primary.main,\n width: theme.spacing(5),\n height: theme.spacing(5),\n [theme.breakpoints.down('md')]: {\n width: theme.spacing(5),\n height: theme.spacing(5),\n marginRight: theme.spacing(1),\n },\n [theme.breakpoints.down('sm')]: {\n marginRight: theme.spacing(0.5),\n },\n '&:hover': {\n opacity: 0.9,\n backgroundColor: theme.palette.primary.main,\n },\n}));\n\nconst StyledSearchIcon = styled(Box)(({ theme }) => ({\n display: 'flex', \n alignItems: 'center',\n justifyContent: 'center',\n color: theme.palette.light.main,\n width: '100%',\n height: '100%',\n '& svg': {\n fontSize: '1.5rem',\n [theme.breakpoints.down('sm')]: {\n fontSize: '1.25rem',\n },\n },\n}));\n\nconst StyledUserContainer = styled(Box)(({ theme }) => ({\n marginLeft: 'auto',\n display: 'flex',\n alignItems: 'center',\n gap: theme.spacing(3), // md:gap-3\n [theme.breakpoints.down('md')]: {\n gap: 0,\n },\n}));\n\nconst StyledAvatar = styled(Box)(({ theme }) => ({\n width: theme.spacing(6), // md:w-12\n height: theme.spacing(6), // md:h-12\n borderRadius: '50%', // rounded-full\n backgroundColor: theme.palette.light.main, // bg-[#FDFCEE]\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexShrink: 0,\n [theme.breakpoints.down('md')]: {\n width: theme.spacing(5), // sm:w-10\n height: theme.spacing(5), // sm:h-10\n }\n}));\n\nconst StyledAvatarText = styled(Typography)(({ theme }) => ({\n color: theme.palette.dark.main, // text-[#4D3019]\n fontWeight: 700, // font-bold\n fontSize: '1.125rem', // text-lg\n [theme.breakpoints.down('md')]: {\n fontSize: '0.875rem', // text-sm\n },\n}));\n\nconst StyledUserName = styled(Typography)(({ theme }) => ({\n color: theme.palette.light.main, // text-[#FDFCEE]\n fontWeight: 500, // font-medium\n marginLeft: theme.spacing(1),\n fontSize: '1.125rem', // text-lg\n display: 'none', // hidden\n [theme.breakpoints.up('sm')]: {\n display: 'inline', // sm:inline\n },\n [theme.breakpoints.down('md')]: {\n fontSize: '0.875rem', // text-sm\n display: 'none'\n },\n}));\n\nexport const Header: React.FC<HeaderProps> = ({\n userName = 'John Doe',\n userInitials = 'JD',\n toggleMenu,\n signOut,\n search,\n onResultClick,\n signUpStatus,\n resetKey,\n}) => {\n const theme = useTheme();\n const [anchorEl, setAnchorEl] = React.useState<HTMLButtonElement | null>(null);\n const [searchQuery, setSearchQuery] = React.useState('');\n const [results, setResults] = React.useState<HeaderSearchResult[]>([]);\n const [openDropdown, setOpenDropdown] = React.useState(false);\n\n const isMdUp = useMediaQuery(theme.breakpoints.up('md'));\n \n\n // Desktop\n const desktopInputRef = React.useRef<HTMLInputElement | null>(null);\n const desktopFieldRef = React.useRef<HTMLDivElement | null>(null);\n\n // Mobile\n const [mobileSearchOpen, setMobileSearchOpen] = React.useState(false);\n const mobileInputRef = React.useRef<HTMLInputElement | null>(null);\n\n const [hasInvalidChars, setHasInvalidChars] = React.useState(false);\n const INVALID_CHARS = /[^\\p{L}\\p{M}\\p{N} (),\\/\\.\"'\\-:;\\$]/u;\n\n\n const [isSearching, setIsSearching] = React.useState(false);\n const headerRef = React.useRef<HTMLDivElement | null>(null);\n const isActive = signUpStatus === 'Active';\n \n const clearQueryOnNextResetRef = React.useRef(true);\n const closeMobileOnNextResetRef = React.useRef(true);\n\n\n\n const searchSeqRef = React.useRef(0);\n const debounceRef = React.useRef<number | undefined>(undefined);\n\n const closeMobileSearch = () => {\n\n setMobileSearchOpen(false);\n if (clearQueryOnNextResetRef.current){\n setSearchQuery('');\n }\n setResults([]);\n setOpenDropdown(false);\n window.clearTimeout(debounceRef.current);\n };\n\n const toggleMobileSearch = () => {\n setMobileSearchOpen(prev => {\n const next = !prev;\n if (!next) {\n // cancelling\n closeMobileSearch();\n return false;\n }\n // opening\n setTimeout(() => mobileInputRef.current?.focus(), 0);\n return true;\n });\n };\n\n const handleOpen = (event: React.MouseEvent<HTMLButtonElement>) => {\n setAnchorEl(event.currentTarget);\n };\n\n const handleClose = () => {\n setAnchorEl(null);\n };\n\n const runSearch = async (term: string) => {\n\n if (!search || INVALID_CHARS.test(term)) { // Display invalid character message if illegal characters\n searchSeqRef.current += 1;\n setIsSearching(false);\n setResults([]);\n setHasInvalidChars(true);\n setOpenDropdown(true);\n return;\n }\n if (!term.trim()) { // Remove display message if no query is present\n searchSeqRef.current += 1;\n setIsSearching(false);\n setHasInvalidChars(false);\n setOpenDropdown(false);\n setResults([])\n return;\n }\n setHasInvalidChars(false);\n\n const seq = ++searchSeqRef.current;\n setIsSearching(true);\n try {\n const res = await Promise.resolve(search(term.trim()));\n\n if (seq !== searchSeqRef.current) return; // Fixes debounce race condition causing old searches to appear after newer\n\n const list = Array.isArray(res) ? res : [];\n setResults(list);\n setOpenDropdown(true); // display dropdown no matter what, if no results will display no results message\n } finally {\n if (seq === searchSeqRef.current) setIsSearching(false);\n }\n };\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (e.key === 'Enter') {\n e.preventDefault();\n runSearch(searchQuery);\n }\n };\n\n const handleSearchChange = (value: string) => {\n setSearchQuery(value);\n window.clearTimeout(debounceRef.current);\n\n debounceRef.current = window.setTimeout(() => runSearch(value), 150);\n };\n\n const handleSearchClick: React.MouseEventHandler<HTMLButtonElement> = (e) => {\n e.preventDefault();\n runSearch(searchQuery);\n };\n\n React.useEffect(() => {\n const clearQuery = clearQueryOnNextResetRef.current;\n const closeMobile = closeMobileOnNextResetRef.current;\n\n if (closeMobile) {\n // sidebar/normal navigation\n closeMobileSearch();\n } else {\n // navigation from clicking a search result: keep mobile panel open\n if (clearQuery) setSearchQuery('');\n setResults([]);\n setOpenDropdown(false);\n window.clearTimeout(debounceRef.current);\n }\n\n // reset defaults for next navigation\n clearQueryOnNextResetRef.current = true;\n closeMobileOnNextResetRef.current = true;\n }, [resetKey]);\n\n React.useEffect(() => {\n const handler = (e: MouseEvent) => {\n const t = e.target as Node;\n\n const inDesktop = desktopInputRef.current?.parentElement?.contains(t);\n const inMobile = mobileInputRef.current?.parentElement?.contains(t);\n\n if (!inDesktop && !inMobile) {\n setOpenDropdown(false);\n }\n };\n\n document.addEventListener('click', handler);\n return () => document.removeEventListener('click', handler);\n }, []);\n\n type ResultsMode = 'desktop' | 'mobile';\n\n const DropdownResults = ({\n mode,\n }: {\n mode: ResultsMode;\n }) => {\n const isDesktop = mode === 'desktop';\n return (\n <Box>\n {!isSearching && hasInvalidChars ? (\n <Paper\n elevation={0}\n sx={{\n mt: 1,\n border: '1px solid #4D3019',\n boxShadow: 'none',\n backgroundColor: '#FEFDF7',\n borderRadius: isDesktop ? '12px' : 0,\n px: 2,\n py: 1.5,\n }}\n >\n <Typography sx={{ fontSize: '14px', color: '#4D3019' }}>\n Oops — your search includes symbols we don’t support yet. Please remove special characters (like %, @, #, =) and try again.\n </Typography>\n </Paper>\n ) : !isSearching && results.length === 0 ? (\n <Paper\n elevation={0}\n sx={{\n mt: 1,\n border: '1px solid #4D3019',\n boxShadow: 'none',\n backgroundColor: '#FEFDF7',\n borderRadius: isDesktop ? '12px' : 0,\n px: 2,\n py: 1.5,\n }}\n >\n <Typography sx={{ fontSize: '14px', color: '#4D3019' }}>\n No results found\n </Typography>\n </Paper>\n ) : (\n <ResultsList\n mode={mode}\n items={results}\n onPick={(item) => {\n clearQueryOnNextResetRef.current = false; // keep text\n closeMobileOnNextResetRef.current = false; // keep mobile panel open\n\n setOpenDropdown(false);\n setResults([]);\n\n onResultClick?.(item);\n }}\n />\n )}\n </Box>\n );\n};\n\n\n const ResultsList = ({\n items,\n mode,\n paperRef,\n onPick,\n }: {\n items: HeaderSearchResult[];\n mode: ResultsMode;\n paperRef?: React.Ref<HTMLDivElement>;\n onPick: (item: HeaderSearchResult) => void;\n }) => {\n const isDesktop = mode === 'desktop';\n const displayedResults = mode == 'desktop' ? items : items.slice(0, 3);\n return (\n <Paper\n ref={paperRef}\n elevation={0}\n \n sx={{\n mt: 1,\n border: '1px solid #4D3019',\n boxShadow: 'none',\n backgroundColor: '#FEFDF7',\n\n ...(isDesktop\n ? {\n maxHeight: 'auto',\n borderRadius: '12px',\n overflowX: 'hidden',\n overflowY: 'hidden',\n pb: 1.5,\n }\n : {\n overflow: 'hidden', // no scroll, no scrollbar\n pb: 0,\n }),\n }}\n >\n <List dense disablePadding>\n {displayedResults.map((item, index) => (\n <ListItemButton\n key={index}\n alignItems=\"flex-start\"\n onClick={() => onPick(item)}\n sx={{\n py: 1.5,\n px: 2,\n backgroundColor: '#FEFDF7',\n\n // dividers only on mobile (your current mobile styling)\n ...(isDesktop\n ? {}\n : {\n borderBottom:\n index === items.length - 1\n ? 'none'\n : '1px solid rgba(77,48,25,0.18)',\n }),\n\n '&:hover': { backgroundColor: '#F9F0FC' },\n '&:hover .search-result-title': {\n textDecoration: 'underline',\n color: '#AD46FF',\n },\n }}\n >\n <ListItemText\n primary={item.label}\n secondary={renderDescription(item.description!)}\n primaryTypographyProps={{\n className: 'search-result-title',\n fontWeight: 700,\n fontSize: '16px',\n color: '#4D3019',\n }}\n secondaryTypographyProps={{ component: 'div', mt: 1 }}\n />\n </ListItemButton>\n ))}\n </List>\n </Paper>\n );\n };\n\n\n return (\n <Box>\n <StyledHeader ref={headerRef}>\n {isActive && (\n <>\n <IconButton\n disableRipple\n onClick={toggleMenu}\n sx={{ display: { xs: 'block', md: 'none' } }}\n size=\"large\"\n >\n <MenuRounded sx={{ fontSize: 32, color: 'white' }} />\n </IconButton>\n\n <Divider\n orientation=\"vertical\"\n sx={{\n color: '#FFFFFF',\n borderRightWidth: 2,\n display: { xs: 'block', md: 'none' },\n }}\n />\n </>\n )}\n\n <StyledLogoWrapper>\n <StyledLogoIcon>\n <StyledLogoSvg />\n </StyledLogoIcon>\n </StyledLogoWrapper>\n\n {/* Desktop search only */}\n {isActive && isMdUp && (\n <StyledSearchContainer>\n <StyledTextField\n placeholder=\"Search for a policy\"\n variant=\"outlined\"\n fullWidth\n value={searchQuery}\n inputRef={desktopInputRef}\n ref={desktopFieldRef}\n onChange={(e) => handleSearchChange(e.target.value)}\n onKeyDown={handleKeyDown}\n InputProps={{\n endAdornment: (\n <InputAdornment position=\"end\">\n <Box sx = {{ mr: 1}}>\n {isSearching ? <CircularProgress size={24} /> : null} \n </Box>\n <StyledSearchButton onClick={handleSearchClick}>\n <StyledSearchIcon>\n <SearchRounded />\n </StyledSearchIcon>\n </StyledSearchButton>\n </InputAdornment>\n ),\n }}\n />\n\n <Popper\n open={openDropdown && !!desktopFieldRef.current}\n anchorEl={desktopFieldRef.current}\n placement=\"bottom-start\"\n style={{ zIndex: 1300, width: desktopFieldRef.current?.offsetWidth }}\n >\n <DropdownResults mode=\"desktop\"/>\n </Popper>\n </StyledSearchContainer>\n )}\n\n <StyledUserContainer>\n {/* Mobile search button only */}\n {isActive && !isMdUp && (\n <StyledSearchButton\n disableRipple\n onClick={toggleMobileSearch}\n sx={{\n display: { xs: 'flex', md: 'none' },\n backgroundColor: '#ffffff83',\n }}\n >\n <StyledSearchIcon>\n <SearchRounded />\n </StyledSearchIcon>\n </StyledSearchButton>\n )}\n\n <IconButton onClick={handleOpen} disableRipple>\n <StyledAvatar>\n <StyledAvatarText>{userInitials}</StyledAvatarText>\n </StyledAvatar>\n <StyledUserName>{userName}</StyledUserName>\n </IconButton>\n </StyledUserContainer>\n\n <PopoverMenu\n anchorEl={anchorEl}\n onClose={handleClose}\n signOut={() => {\n signOut();\n handleClose()\n }}\n />\n </StyledHeader>\n\n {/* Mobile panel only */}\n {!isMdUp && (\n <Collapse in={isActive && mobileSearchOpen} unmountOnExit timeout={200}>\n <Box\n sx={{\n display: { xs: 'block', md: 'none' },\n backgroundColor: theme.palette.primary.main,\n px: 2,\n pt: 1.5,\n pb: 2,\n }}\n >\n <Box sx={{ display: 'flex', gap: 1, alignItems: 'center' }}>\n <StyledTextField\n placeholder=\"Search for a policy\"\n variant=\"outlined\"\n fullWidth\n value={searchQuery}\n inputRef={mobileInputRef}\n onChange={(e) => handleSearchChange(e.target.value)}\n onKeyDown={handleKeyDown}\n InputProps={{\n endAdornment: (\n <InputAdornment position=\"end\">\n {isSearching ? <CircularProgress size={18} /> : null}\n </InputAdornment>\n )\n }}\n />\n\n <IconButton onClick={closeMobileSearch} sx={{ color: theme.palette.light.main }}>\n <CloseRounded />\n </IconButton>\n </Box>\n {openDropdown && (\n <Box sx={{ mx: -2 }}>\n <DropdownResults mode=\"mobile\"/>\n </Box>\n )}\n </Box>\n </Collapse>\n )}\n </Box>\n );\n};"],"names":["_jsxs","_jsx","styled","Box","Typography","Logo","TextField","IconButton","useTheme","useMediaQuery","Paper","List","ListItemButton","ListItemText","_Fragment","MenuRounded","Divider","InputAdornment","CircularProgress","SearchRounded","Popper","PopoverMenu","Collapse","CloseRounded"],"mappings":"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"}
|
|
@@ -191,18 +191,20 @@ const Header = ({ userName = 'John Doe', userInitials = 'JD', toggleMenu, signOu
|
|
|
191
191
|
// Mobile
|
|
192
192
|
const [mobileSearchOpen, setMobileSearchOpen] = React__default.useState(false);
|
|
193
193
|
const mobileInputRef = React__default.useRef(null);
|
|
194
|
-
React__default.useRef(null);
|
|
195
|
-
//const [mobileResultLimit, setMobileResultLimit] = React.useState(5);
|
|
196
194
|
const [hasInvalidChars, setHasInvalidChars] = React__default.useState(false);
|
|
197
195
|
const INVALID_CHARS = /[^\p{L}\p{M}\p{N} (),\/\."'\-:;\$]/u;
|
|
198
196
|
const [isSearching, setIsSearching] = React__default.useState(false);
|
|
199
197
|
const headerRef = React__default.useRef(null);
|
|
200
198
|
const isActive = signUpStatus === 'Active';
|
|
199
|
+
const clearQueryOnNextResetRef = React__default.useRef(true);
|
|
200
|
+
const closeMobileOnNextResetRef = React__default.useRef(true);
|
|
201
201
|
const searchSeqRef = React__default.useRef(0);
|
|
202
202
|
const debounceRef = React__default.useRef(undefined);
|
|
203
203
|
const closeMobileSearch = () => {
|
|
204
204
|
setMobileSearchOpen(false);
|
|
205
|
-
|
|
205
|
+
if (clearQueryOnNextResetRef.current) {
|
|
206
|
+
setSearchQuery('');
|
|
207
|
+
}
|
|
206
208
|
setResults([]);
|
|
207
209
|
setOpenDropdown(false);
|
|
208
210
|
window.clearTimeout(debounceRef.current);
|
|
@@ -275,8 +277,23 @@ const Header = ({ userName = 'John Doe', userInitials = 'JD', toggleMenu, signOu
|
|
|
275
277
|
runSearch(searchQuery);
|
|
276
278
|
};
|
|
277
279
|
React__default.useEffect(() => {
|
|
278
|
-
|
|
279
|
-
|
|
280
|
+
const clearQuery = clearQueryOnNextResetRef.current;
|
|
281
|
+
const closeMobile = closeMobileOnNextResetRef.current;
|
|
282
|
+
if (closeMobile) {
|
|
283
|
+
// sidebar/normal navigation
|
|
284
|
+
closeMobileSearch();
|
|
285
|
+
}
|
|
286
|
+
else {
|
|
287
|
+
// navigation from clicking a search result: keep mobile panel open
|
|
288
|
+
if (clearQuery)
|
|
289
|
+
setSearchQuery('');
|
|
290
|
+
setResults([]);
|
|
291
|
+
setOpenDropdown(false);
|
|
292
|
+
window.clearTimeout(debounceRef.current);
|
|
293
|
+
}
|
|
294
|
+
// reset defaults for next navigation
|
|
295
|
+
clearQueryOnNextResetRef.current = true;
|
|
296
|
+
closeMobileOnNextResetRef.current = true;
|
|
280
297
|
}, [resetKey]);
|
|
281
298
|
React__default.useEffect(() => {
|
|
282
299
|
const handler = (e) => {
|
|
@@ -309,12 +326,16 @@ const Header = ({ userName = 'John Doe', userInitials = 'JD', toggleMenu, signOu
|
|
|
309
326
|
px: 2,
|
|
310
327
|
py: 1.5,
|
|
311
328
|
}, children: jsx(Typography, { sx: { fontSize: '14px', color: '#4D3019' }, children: "No results found" }) })) : (jsx(ResultsList, { mode: mode, items: results, onPick: (item) => {
|
|
312
|
-
|
|
329
|
+
clearQueryOnNextResetRef.current = false; // keep text
|
|
330
|
+
closeMobileOnNextResetRef.current = false; // keep mobile panel open
|
|
313
331
|
setOpenDropdown(false);
|
|
332
|
+
setResults([]);
|
|
333
|
+
onResultClick?.(item);
|
|
314
334
|
} })) }));
|
|
315
335
|
};
|
|
316
336
|
const ResultsList = ({ items, mode, paperRef, onPick, }) => {
|
|
317
337
|
const isDesktop = mode === 'desktop';
|
|
338
|
+
const displayedResults = mode == 'desktop' ? items : items.slice(0, 3);
|
|
318
339
|
return (jsx(Paper, { ref: paperRef, elevation: 0, sx: {
|
|
319
340
|
mt: 1,
|
|
320
341
|
border: '1px solid #4D3019',
|
|
@@ -332,7 +353,7 @@ const Header = ({ userName = 'John Doe', userInitials = 'JD', toggleMenu, signOu
|
|
|
332
353
|
overflow: 'hidden', // no scroll, no scrollbar
|
|
333
354
|
pb: 0,
|
|
334
355
|
}),
|
|
335
|
-
}, children: jsx(List, { dense: true, disablePadding: true, children:
|
|
356
|
+
}, children: jsx(List, { dense: true, disablePadding: true, children: displayedResults.map((item, index) => (jsx(ListItemButton, { alignItems: "flex-start", onClick: () => onPick(item), sx: {
|
|
336
357
|
py: 1.5,
|
|
337
358
|
px: 2,
|
|
338
359
|
backgroundColor: '#FEFDF7',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Header.js","sources":["../../../../src/components/Header.tsx"],"sourcesContent":["import React, { ChangeEvent } from 'react';\nimport {\n Box,\n styled,\n Typography,\n TextField,\n IconButton,\n Divider,\n Popper,\n Paper,\n List,\n ListItemText,\n ListItemButton,\n Collapse,\n useMediaQuery,\n CircularProgress,\n InputAdornment,\n} from '@mui/material';\nimport { useTheme } from '../ThemeProvider';\nimport { MenuRounded, SearchRounded, CloseRounded } from '@mui/icons-material';\nimport PopoverMenu from './PopoverMenu';\nimport { ReactComponent as Logo } from '../images/PrimaryLogo_Variation_Cream.svg';\n\ntype SignUpStatus = 'Withdrawn' | 'Onboarding' | 'Active' | 'In Review';\ninterface HeaderProps {\n userName?: string;\n userInitials?: string;\n toggleMenu: () => void;\n signOut: () => void;\n search?: (query: string) => Promise<HeaderSearchResult[]> | HeaderSearchResult[];\n onResultClick?: (result: HeaderSearchResult) => void;\n signUpStatus: SignUpStatus;\n resetKey?: string | number;\n}\n\nexport interface HeaderSearchResult {\n label: string;\n description?: string;\n value: string;\n}\n\nfunction renderDescription(desc: string): React.ReactNode {\n if (!desc) return null;\n\n const lines = desc.split(/\\r?\\n/).filter(line => line.trim().length > 0);\n\n const bulletLines = lines.filter(line => line.trim().startsWith(\"* \"));\n const nonBulletLines = lines.filter(line => !line.trim().startsWith(\"* \"));\n\n return (\n <div style={{ fontSize: 14, lineHeight: 1.5 }}>\n {nonBulletLines.length > 0 && (\n <div\n style={{\n whiteSpace: \"pre-line\",\n marginBottom: bulletLines.length > 0 ? 6 : 0, // spacing above bullets\n }}\n >\n {nonBulletLines.join(\"\\n\")}\n </div>\n )}\n\n {bulletLines.length > 0 && (\n <ul style={{ margin: 0, paddingLeft: 18 }}>\n {bulletLines.map((line, idx) => (\n <li key={idx}>\n {line.trim().replace(/^\\*\\s*/, \"\")}\n </li>\n ))}\n </ul>\n )}\n </div>\n );\n}\n\nconst StyledHeader = styled(Box)(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-start',\n backgroundColor: theme.palette.primary.main, // var(--color-primary)\n [theme.breakpoints.up('md')]: {\n gap: theme.spacing(4), // md:gap-4\n padding: theme.spacing(1.5, 1.5), // px-4 py-3\n },\n [theme.breakpoints.down('md')]: {\n padding: 0, // px-4 py-3\n },\n}));\n\nconst StyledLogoWrapper = styled(Box)(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n padding: theme.spacing(1.5),\n gap: theme.spacing(2),\n height: '64px', \n}));\n\n\nconst StyledLogoIcon = styled(Box)(({ theme }) => ({\n width: '100%',\n height: '100%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n color: theme.palette.light.main,\n}));\n\n\nconst StyledLogoText = styled(Typography)(({ theme }) => ({\n color: theme.palette.light.main, // text-[#FDFCEE]\n fontWeight: 700, // font-bold\n letterSpacing: '0.05em', // tracking-wide\n fontSize: '1.5rem', // text-2xl\n [theme.breakpoints.down('md')]: {\n fontSize: '1.25rem', // sm:text-xl\n },\n [theme.breakpoints.down('sm')]: {\n fontSize: '1.125rem', // text-lg\n },\n}));\n\nconst StyledLogoSvg = styled(Logo)`\n width: 100%;\n height: 100%;\n display: block;\n`;\n\n\nconst StyledSearchContainer = styled(Box)(({ theme }) => ({\n flex: 1,\n maxWidth: '45rem',\n margin: theme.spacing(0, 2), // mx-8\n position: 'relative',\n}));\n\nconst StyledTextField = styled(TextField)(({ theme }) => ({\n '& .MuiInputBase-root': {\n backgroundColor: theme.palette.light.main, // bg-[#FDFCEE]\n color: theme.palette.dark.main, // text-[#4D3019]\n borderRadius: '9999px', // rounded-full\n fontSize: '1rem', // text-base\n [theme.breakpoints.down('md')]: {\n paddingRight: theme.spacing(5), // sm:pr-10\n fontSize: '0.875rem', // text-sm\n },\n },\n '& .MuiInputBase-input': {\n padding: theme.spacing(1.5, 3), // px-4 py-2\n [theme.breakpoints.up('md')]: {\n padding: theme.spacing(1.5, 4), // md:px-6 md:py-3\n },\n [theme.breakpoints.down('sm')]: {\n padding: theme.spacing(1.5, 2.5), // sm:px-5\n },\n },\n '& .MuiInputBase-input::placeholder': {\n color: `${theme.palette.dark.main}99`, // placeholder-[#4D3019]/60\n opacity: 1,\n },\n '& .MuiInputBase-root:focus-within': {\n outline: `2px solid ${theme.palette.light.main}`, // focus:ring-2 focus:ring-[#FDFCEE]\n outlineOffset: 0,\n },\n}));\n\nconst StyledSearchButton = styled(IconButton)(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n position: 'static',\n borderRadius: '50%',\n backgroundColor: theme.palette.primary.main,\n width: theme.spacing(5),\n height: theme.spacing(5),\n [theme.breakpoints.down('md')]: {\n width: theme.spacing(5),\n height: theme.spacing(5),\n marginRight: theme.spacing(1),\n },\n [theme.breakpoints.down('sm')]: {\n marginRight: theme.spacing(0.5),\n },\n '&:hover': {\n opacity: 0.9,\n backgroundColor: theme.palette.primary.main,\n },\n}));\n\nconst StyledSearchIcon = styled(Box)(({ theme }) => ({\n display: 'flex', \n alignItems: 'center',\n justifyContent: 'center',\n color: theme.palette.light.main,\n width: '100%',\n height: '100%',\n '& svg': {\n fontSize: '1.5rem',\n [theme.breakpoints.down('sm')]: {\n fontSize: '1.25rem',\n },\n },\n}));\n\nconst StyledUserContainer = styled(Box)(({ theme }) => ({\n marginLeft: 'auto',\n display: 'flex',\n alignItems: 'center',\n gap: theme.spacing(3), // md:gap-3\n [theme.breakpoints.down('md')]: {\n gap: 0,\n },\n}));\n\nconst StyledAvatar = styled(Box)(({ theme }) => ({\n width: theme.spacing(6), // md:w-12\n height: theme.spacing(6), // md:h-12\n borderRadius: '50%', // rounded-full\n backgroundColor: theme.palette.light.main, // bg-[#FDFCEE]\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexShrink: 0,\n [theme.breakpoints.down('md')]: {\n width: theme.spacing(5), // sm:w-10\n height: theme.spacing(5), // sm:h-10\n }\n}));\n\nconst StyledAvatarText = styled(Typography)(({ theme }) => ({\n color: theme.palette.dark.main, // text-[#4D3019]\n fontWeight: 700, // font-bold\n fontSize: '1.125rem', // text-lg\n [theme.breakpoints.down('md')]: {\n fontSize: '0.875rem', // text-sm\n },\n}));\n\nconst StyledUserName = styled(Typography)(({ theme }) => ({\n color: theme.palette.light.main, // text-[#FDFCEE]\n fontWeight: 500, // font-medium\n marginLeft: theme.spacing(1),\n fontSize: '1.125rem', // text-lg\n display: 'none', // hidden\n [theme.breakpoints.up('sm')]: {\n display: 'inline', // sm:inline\n },\n [theme.breakpoints.down('md')]: {\n fontSize: '0.875rem', // text-sm\n display: 'none'\n },\n}));\n\nexport const Header: React.FC<HeaderProps> = ({\n userName = 'John Doe',\n userInitials = 'JD',\n toggleMenu,\n signOut,\n search,\n onResultClick,\n signUpStatus,\n resetKey,\n}) => {\n const theme = useTheme();\n const [anchorEl, setAnchorEl] = React.useState<HTMLButtonElement | null>(null);\n const [searchQuery, setSearchQuery] = React.useState('');\n const [results, setResults] = React.useState<HeaderSearchResult[]>([]);\n const [openDropdown, setOpenDropdown] = React.useState(false);\n\n const isMdUp = useMediaQuery(theme.breakpoints.up('md'));\n \n\n // Desktop\n const desktopInputRef = React.useRef<HTMLInputElement | null>(null);\n const desktopFieldRef = React.useRef<HTMLDivElement | null>(null);\n\n // Mobile\n const [mobileSearchOpen, setMobileSearchOpen] = React.useState(false);\n const mobileInputRef = React.useRef<HTMLInputElement | null>(null);\n const mobileResultsPaperRef = React.useRef<HTMLDivElement | null>(null);\n //const [mobileResultLimit, setMobileResultLimit] = React.useState(5);\n\n const [hasInvalidChars, setHasInvalidChars] = React.useState(false);\n const INVALID_CHARS = /[^\\p{L}\\p{M}\\p{N} (),\\/\\.\"'\\-:;\\$]/u;\n const sanitizeQuery = (s: string) => s.replace(INVALID_CHARS, '').trim();\n\n\n const [isSearching, setIsSearching] = React.useState(false);\n const headerRef = React.useRef<HTMLDivElement | null>(null);\n const isActive = signUpStatus === 'Active';\n\n\n\n const searchSeqRef = React.useRef(0);\n const debounceRef = React.useRef<number | undefined>(undefined);\n\n const closeMobileSearch = () => {\n setMobileSearchOpen(false);\n setSearchQuery('');\n setResults([]);\n setOpenDropdown(false);\n window.clearTimeout(debounceRef.current);\n };\n\n const toggleMobileSearch = () => {\n setMobileSearchOpen(prev => {\n const next = !prev;\n if (!next) {\n // cancelling\n closeMobileSearch();\n return false;\n }\n // opening\n setTimeout(() => mobileInputRef.current?.focus(), 0);\n return true;\n });\n };\n\n const handleOpen = (event: React.MouseEvent<HTMLButtonElement>) => {\n setAnchorEl(event.currentTarget);\n };\n\n const handleClose = () => {\n setAnchorEl(null);\n };\n\n const runSearch = async (term: string) => {\n\n if (!search || INVALID_CHARS.test(term)) { // Display invalid character message if illegal characters\n searchSeqRef.current += 1;\n setIsSearching(false);\n setResults([]);\n setHasInvalidChars(true);\n setOpenDropdown(true);\n return;\n }\n if (!term.trim()) { // Remove display message if no query is present\n searchSeqRef.current += 1;\n setIsSearching(false);\n setHasInvalidChars(false);\n setOpenDropdown(false);\n setResults([])\n return;\n }\n setHasInvalidChars(false);\n\n const seq = ++searchSeqRef.current;\n setIsSearching(true);\n try {\n const res = await Promise.resolve(search(term.trim()));\n\n if (seq !== searchSeqRef.current) return; // Fixes debounce race condition causing old searches to appear after newer\n\n const list = Array.isArray(res) ? res : [];\n setResults(list);\n setOpenDropdown(true); // display dropdown no matter what, if no results will display no results message\n } finally {\n if (seq === searchSeqRef.current) setIsSearching(false);\n }\n };\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (e.key === 'Enter') {\n e.preventDefault();\n runSearch(searchQuery);\n }\n };\n\n const handleSearchChange = (value: string) => {\n setSearchQuery(value);\n window.clearTimeout(debounceRef.current);\n\n debounceRef.current = window.setTimeout(() => runSearch(value), 150);\n };\n\n const handleSearchClick: React.MouseEventHandler<HTMLButtonElement> = (e) => {\n e.preventDefault();\n runSearch(searchQuery);\n };\n\n React.useEffect(() => {\n // When parent says the route changed (resetKey changes), reset search UI\n closeMobileSearch();\n }, [resetKey]);\n\n React.useEffect(() => {\n const handler = (e: MouseEvent) => {\n const t = e.target as Node;\n\n const inDesktop = desktopInputRef.current?.parentElement?.contains(t);\n const inMobile = mobileInputRef.current?.parentElement?.contains(t);\n\n if (!inDesktop && !inMobile) {\n setOpenDropdown(false);\n }\n };\n\n document.addEventListener('click', handler);\n return () => document.removeEventListener('click', handler);\n }, []);\n\n type ResultsMode = 'desktop' | 'mobile';\n\n const DropdownResults = ({\n mode,\n }: {\n mode: ResultsMode;\n }) => {\n const isDesktop = mode === 'desktop';\n return (\n <Box>\n {!isSearching && hasInvalidChars ? (\n <Paper\n elevation={0}\n sx={{\n mt: 1,\n border: '1px solid #4D3019',\n boxShadow: 'none',\n backgroundColor: '#FEFDF7',\n borderRadius: isDesktop ? '12px' : 0,\n px: 2,\n py: 1.5,\n }}\n >\n <Typography sx={{ fontSize: '14px', color: '#4D3019' }}>\n Oops — your search includes symbols we don’t support yet. Please remove special characters (like %, @, #, =) and try again.\n </Typography>\n </Paper>\n ) : !isSearching && results.length === 0 ? (\n <Paper\n elevation={0}\n sx={{\n mt: 1,\n border: '1px solid #4D3019',\n boxShadow: 'none',\n backgroundColor: '#FEFDF7',\n borderRadius: isDesktop ? '12px' : 0,\n px: 2,\n py: 1.5,\n }}\n >\n <Typography sx={{ fontSize: '14px', color: '#4D3019' }}>\n No results found\n </Typography>\n </Paper>\n ) : (\n <ResultsList\n mode={mode}\n items={results}\n onPick={(item) => {\n onResultClick?.(item);\n setOpenDropdown(false);\n }}\n />\n )}\n </Box>\n );\n};\n\n\n const ResultsList = ({\n items,\n mode,\n paperRef,\n onPick,\n }: {\n items: HeaderSearchResult[];\n mode: ResultsMode;\n paperRef?: React.Ref<HTMLDivElement>;\n onPick: (item: HeaderSearchResult) => void;\n }) => {\n const isDesktop = mode === 'desktop';\n return (\n <Paper\n ref={paperRef}\n elevation={0}\n \n sx={{\n mt: 1,\n border: '1px solid #4D3019',\n boxShadow: 'none',\n backgroundColor: '#FEFDF7',\n\n ...(isDesktop\n ? {\n maxHeight: 'auto',\n borderRadius: '12px',\n overflowX: 'hidden',\n overflowY: 'hidden',\n pb: 1.5,\n }\n : {\n overflow: 'hidden', // no scroll, no scrollbar\n pb: 0,\n }),\n }}\n >\n <List dense disablePadding>\n {items.map((item, index) => (\n <ListItemButton\n key={index}\n alignItems=\"flex-start\"\n onClick={() => onPick(item)}\n sx={{\n py: 1.5,\n px: 2,\n backgroundColor: '#FEFDF7',\n\n // dividers only on mobile (your current mobile styling)\n ...(isDesktop\n ? {}\n : {\n borderBottom:\n index === items.length - 1\n ? 'none'\n : '1px solid rgba(77,48,25,0.18)',\n }),\n\n '&:hover': { backgroundColor: '#F9F0FC' },\n '&:hover .search-result-title': {\n textDecoration: 'underline',\n color: '#AD46FF',\n },\n }}\n >\n <ListItemText\n primary={item.label}\n secondary={renderDescription(item.description!)}\n primaryTypographyProps={{\n className: 'search-result-title',\n fontWeight: 700,\n fontSize: '16px',\n color: '#4D3019',\n }}\n secondaryTypographyProps={{ component: 'div', mt: 1 }}\n />\n </ListItemButton>\n ))}\n </List>\n </Paper>\n );\n };\n\n\n return (\n <Box>\n <StyledHeader ref={headerRef}>\n {isActive && (\n <>\n <IconButton\n disableRipple\n onClick={toggleMenu}\n sx={{ display: { xs: 'block', md: 'none' } }}\n size=\"large\"\n >\n <MenuRounded sx={{ fontSize: 32, color: 'white' }} />\n </IconButton>\n\n <Divider\n orientation=\"vertical\"\n sx={{\n color: '#FFFFFF',\n borderRightWidth: 2,\n display: { xs: 'block', md: 'none' },\n }}\n />\n </>\n )}\n\n <StyledLogoWrapper>\n <StyledLogoIcon>\n <StyledLogoSvg />\n </StyledLogoIcon>\n </StyledLogoWrapper>\n\n {/* Desktop search only */}\n {isActive && isMdUp && (\n <StyledSearchContainer>\n <StyledTextField\n placeholder=\"Search for a policy\"\n variant=\"outlined\"\n fullWidth\n value={searchQuery}\n inputRef={desktopInputRef}\n ref={desktopFieldRef}\n onChange={(e) => handleSearchChange(e.target.value)}\n onKeyDown={handleKeyDown}\n InputProps={{\n endAdornment: (\n <InputAdornment position=\"end\">\n <Box sx = {{ mr: 1}}>\n {isSearching ? <CircularProgress size={24} /> : null} \n </Box>\n <StyledSearchButton onClick={handleSearchClick}>\n <StyledSearchIcon>\n <SearchRounded />\n </StyledSearchIcon>\n </StyledSearchButton>\n </InputAdornment>\n ),\n }}\n />\n\n <Popper\n open={openDropdown && !!desktopFieldRef.current}\n anchorEl={desktopFieldRef.current}\n placement=\"bottom-start\"\n style={{ zIndex: 1300, width: desktopFieldRef.current?.offsetWidth }}\n >\n <DropdownResults mode=\"desktop\"/>\n {/* {!isSearching && hasInvalidChars ? (\n <Paper\n elevation={0}\n sx={{\n mt: 1,\n border: '1px solid #4D3019',\n boxShadow: 'none',\n backgroundColor: '#FEFDF7',\n borderRadius: '12px',\n px: 2,\n py: 1.5,\n }}\n >\n <Typography sx={{ fontSize: '14px', color: '#4D3019' }}>\n Oops — your search includes symbols we don’t support yet. Please remove special characters (like %, @, #, =) and try again.\n </Typography>\n </Paper>\n ) : !isSearching && results.length === 0 ? (\n <Paper\n elevation={0}\n sx={{\n mt: 1,\n border: '1px solid #4D3019',\n boxShadow: 'none',\n backgroundColor: '#FEFDF7',\n borderRadius: '12px',\n px: 2,\n py: 1.5,\n }}\n >\n <Typography sx={{ fontSize: '14px', color: '#4D3019' }}>\n No results found\n </Typography>\n </Paper>\n ) : (\n <ResultsList\n mode=\"desktop\"\n items={results}\n onPick={(item) => {\n onResultClick?.(item);\n setOpenDropdown(false);\n }}\n />\n )} */}\n </Popper>\n </StyledSearchContainer>\n )}\n\n <StyledUserContainer>\n {/* Mobile search button only */}\n {isActive && !isMdUp && (\n <StyledSearchButton\n disableRipple\n onClick={toggleMobileSearch}\n sx={{\n display: { xs: 'flex', md: 'none' },\n backgroundColor: '#ffffff83',\n }}\n >\n <StyledSearchIcon>\n <SearchRounded />\n </StyledSearchIcon>\n </StyledSearchButton>\n )}\n\n <IconButton onClick={handleOpen} disableRipple>\n <StyledAvatar>\n <StyledAvatarText>{userInitials}</StyledAvatarText>\n </StyledAvatar>\n <StyledUserName>{userName}</StyledUserName>\n </IconButton>\n </StyledUserContainer>\n\n <PopoverMenu\n anchorEl={anchorEl}\n onClose={handleClose}\n signOut={() => {\n signOut();\n handleClose()\n }}\n />\n </StyledHeader>\n\n {/* Mobile panel only */}\n {!isMdUp && (\n <Collapse in={isActive && mobileSearchOpen} unmountOnExit timeout={200}>\n <Box\n sx={{\n display: { xs: 'block', md: 'none' },\n backgroundColor: theme.palette.primary.main,\n px: 2,\n pt: 1.5,\n pb: 2,\n }}\n >\n <Box sx={{ display: 'flex', gap: 1, alignItems: 'center' }}>\n <StyledTextField\n placeholder=\"Search for a policy\"\n variant=\"outlined\"\n fullWidth\n value={searchQuery}\n inputRef={mobileInputRef}\n onChange={(e) => handleSearchChange(e.target.value)}\n onKeyDown={handleKeyDown}\n InputProps={{\n endAdornment: (\n <InputAdornment position=\"end\">\n {isSearching ? <CircularProgress size={18} /> : null}\n </InputAdornment>\n )\n }}\n />\n\n <IconButton onClick={closeMobileSearch} sx={{ color: theme.palette.light.main }}>\n <CloseRounded />\n </IconButton>\n </Box>\n {openDropdown && (\n <Box sx={{ mx: -2 }}>\n <DropdownResults mode=\"mobile\"/>\n {/* {!isSearching && hasInvalidChars ? (\n <Paper\n elevation={0}\n sx={{\n mt: 1,\n border: '1px solid #4D3019',\n boxShadow: 'none',\n backgroundColor: '#FEFDF7',\n px: 2,\n py: 1.5,\n }}\n >\n <Typography sx={{ fontSize: '14px', color: '#4D3019' }}>\n Oops — your search includes symbols we don’t support yet. Please remove special characters (like %, @, #, =) and try again.\n </Typography>\n </Paper>\n ) : !isSearching && results.length === 0 ? (\n <Paper\n elevation={0}\n sx={{\n mt: 1,\n border: '1px solid #4D3019',\n boxShadow: 'none',\n backgroundColor: '#FEFDF7',\n px: 2,\n py: 1.5,\n }}\n >\n <Typography sx={{ fontSize: '14px', color: '#4D3019' }}>\n No results found\n </Typography>\n </Paper>\n ) : (\n <ResultsList\n mode=\"mobile\"\n items={results}\n paperRef={mobileResultsPaperRef}\n onPick={(item) => {\n onResultClick?.(item);\n setOpenDropdown(false);\n }}\n />\n )} */}\n </Box>\n )}\n </Box>\n </Collapse>\n )}\n </Box>\n );\n};"],"names":["_jsxs","_jsx","Logo","React","_Fragment"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Header.js","sources":["../../../../src/components/Header.tsx"],"sourcesContent":["import React, { ChangeEvent } from 'react';\nimport {\n Box,\n styled,\n Typography,\n TextField,\n IconButton,\n Divider,\n Popper,\n Paper,\n List,\n ListItemText,\n ListItemButton,\n Collapse,\n useMediaQuery,\n CircularProgress,\n InputAdornment,\n} from '@mui/material';\nimport { useTheme } from '../ThemeProvider';\nimport { MenuRounded, SearchRounded, CloseRounded } from '@mui/icons-material';\nimport PopoverMenu from './PopoverMenu';\nimport { ReactComponent as Logo } from '../images/PrimaryLogo_Variation_Cream.svg';\n\ntype SignUpStatus = 'Withdrawn' | 'Onboarding' | 'Active' | 'In Review';\ninterface HeaderProps {\n userName?: string;\n userInitials?: string;\n toggleMenu: () => void;\n signOut: () => void;\n search?: (query: string) => Promise<HeaderSearchResult[]> | HeaderSearchResult[];\n onResultClick?: (result: HeaderSearchResult) => void;\n signUpStatus: SignUpStatus;\n resetKey?: string | number;\n}\n\nexport interface HeaderSearchResult {\n label: string;\n description?: string;\n value: string;\n}\n\nfunction renderDescription(desc: string): React.ReactNode {\n if (!desc) return null;\n\n const lines = desc.split(/\\r?\\n/).filter(line => line.trim().length > 0);\n\n const bulletLines = lines.filter(line => line.trim().startsWith(\"* \"));\n const nonBulletLines = lines.filter(line => !line.trim().startsWith(\"* \"));\n\n return (\n <div style={{ fontSize: 14, lineHeight: 1.5 }}>\n {nonBulletLines.length > 0 && (\n <div\n style={{\n whiteSpace: \"pre-line\",\n marginBottom: bulletLines.length > 0 ? 6 : 0, // spacing above bullets\n }}\n >\n {nonBulletLines.join(\"\\n\")}\n </div>\n )}\n\n {bulletLines.length > 0 && (\n <ul style={{ margin: 0, paddingLeft: 18 }}>\n {bulletLines.map((line, idx) => (\n <li key={idx}>\n {line.trim().replace(/^\\*\\s*/, \"\")}\n </li>\n ))}\n </ul>\n )}\n </div>\n );\n}\n\nconst StyledHeader = styled(Box)(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-start',\n backgroundColor: theme.palette.primary.main, // var(--color-primary)\n [theme.breakpoints.up('md')]: {\n gap: theme.spacing(4), // md:gap-4\n padding: theme.spacing(1.5, 1.5), // px-4 py-3\n },\n [theme.breakpoints.down('md')]: {\n padding: 0, // px-4 py-3\n },\n}));\n\nconst StyledLogoWrapper = styled(Box)(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n padding: theme.spacing(1.5),\n gap: theme.spacing(2),\n height: '64px', \n}));\n\n\nconst StyledLogoIcon = styled(Box)(({ theme }) => ({\n width: '100%',\n height: '100%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n color: theme.palette.light.main,\n}));\n\n\nconst StyledLogoText = styled(Typography)(({ theme }) => ({\n color: theme.palette.light.main, // text-[#FDFCEE]\n fontWeight: 700, // font-bold\n letterSpacing: '0.05em', // tracking-wide\n fontSize: '1.5rem', // text-2xl\n [theme.breakpoints.down('md')]: {\n fontSize: '1.25rem', // sm:text-xl\n },\n [theme.breakpoints.down('sm')]: {\n fontSize: '1.125rem', // text-lg\n },\n}));\n\nconst StyledLogoSvg = styled(Logo)`\n width: 100%;\n height: 100%;\n display: block;\n`;\n\n\nconst StyledSearchContainer = styled(Box)(({ theme }) => ({\n flex: 1,\n maxWidth: '45rem',\n margin: theme.spacing(0, 2), // mx-8\n position: 'relative',\n}));\n\nconst StyledTextField = styled(TextField)(({ theme }) => ({\n '& .MuiInputBase-root': {\n backgroundColor: theme.palette.light.main, // bg-[#FDFCEE]\n color: theme.palette.dark.main, // text-[#4D3019]\n borderRadius: '9999px', // rounded-full\n fontSize: '1rem', // text-base\n [theme.breakpoints.down('md')]: {\n paddingRight: theme.spacing(5), // sm:pr-10\n fontSize: '0.875rem', // text-sm\n },\n },\n '& .MuiInputBase-input': {\n padding: theme.spacing(1.5, 3), // px-4 py-2\n [theme.breakpoints.up('md')]: {\n padding: theme.spacing(1.5, 4), // md:px-6 md:py-3\n },\n [theme.breakpoints.down('sm')]: {\n padding: theme.spacing(1.5, 2.5), // sm:px-5\n },\n },\n '& .MuiInputBase-input::placeholder': {\n color: `${theme.palette.dark.main}99`, // placeholder-[#4D3019]/60\n opacity: 1,\n },\n '& .MuiInputBase-root:focus-within': {\n outline: `2px solid ${theme.palette.light.main}`, // focus:ring-2 focus:ring-[#FDFCEE]\n outlineOffset: 0,\n },\n}));\n\nconst StyledSearchButton = styled(IconButton)(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n position: 'static',\n borderRadius: '50%',\n backgroundColor: theme.palette.primary.main,\n width: theme.spacing(5),\n height: theme.spacing(5),\n [theme.breakpoints.down('md')]: {\n width: theme.spacing(5),\n height: theme.spacing(5),\n marginRight: theme.spacing(1),\n },\n [theme.breakpoints.down('sm')]: {\n marginRight: theme.spacing(0.5),\n },\n '&:hover': {\n opacity: 0.9,\n backgroundColor: theme.palette.primary.main,\n },\n}));\n\nconst StyledSearchIcon = styled(Box)(({ theme }) => ({\n display: 'flex', \n alignItems: 'center',\n justifyContent: 'center',\n color: theme.palette.light.main,\n width: '100%',\n height: '100%',\n '& svg': {\n fontSize: '1.5rem',\n [theme.breakpoints.down('sm')]: {\n fontSize: '1.25rem',\n },\n },\n}));\n\nconst StyledUserContainer = styled(Box)(({ theme }) => ({\n marginLeft: 'auto',\n display: 'flex',\n alignItems: 'center',\n gap: theme.spacing(3), // md:gap-3\n [theme.breakpoints.down('md')]: {\n gap: 0,\n },\n}));\n\nconst StyledAvatar = styled(Box)(({ theme }) => ({\n width: theme.spacing(6), // md:w-12\n height: theme.spacing(6), // md:h-12\n borderRadius: '50%', // rounded-full\n backgroundColor: theme.palette.light.main, // bg-[#FDFCEE]\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexShrink: 0,\n [theme.breakpoints.down('md')]: {\n width: theme.spacing(5), // sm:w-10\n height: theme.spacing(5), // sm:h-10\n }\n}));\n\nconst StyledAvatarText = styled(Typography)(({ theme }) => ({\n color: theme.palette.dark.main, // text-[#4D3019]\n fontWeight: 700, // font-bold\n fontSize: '1.125rem', // text-lg\n [theme.breakpoints.down('md')]: {\n fontSize: '0.875rem', // text-sm\n },\n}));\n\nconst StyledUserName = styled(Typography)(({ theme }) => ({\n color: theme.palette.light.main, // text-[#FDFCEE]\n fontWeight: 500, // font-medium\n marginLeft: theme.spacing(1),\n fontSize: '1.125rem', // text-lg\n display: 'none', // hidden\n [theme.breakpoints.up('sm')]: {\n display: 'inline', // sm:inline\n },\n [theme.breakpoints.down('md')]: {\n fontSize: '0.875rem', // text-sm\n display: 'none'\n },\n}));\n\nexport const Header: React.FC<HeaderProps> = ({\n userName = 'John Doe',\n userInitials = 'JD',\n toggleMenu,\n signOut,\n search,\n onResultClick,\n signUpStatus,\n resetKey,\n}) => {\n const theme = useTheme();\n const [anchorEl, setAnchorEl] = React.useState<HTMLButtonElement | null>(null);\n const [searchQuery, setSearchQuery] = React.useState('');\n const [results, setResults] = React.useState<HeaderSearchResult[]>([]);\n const [openDropdown, setOpenDropdown] = React.useState(false);\n\n const isMdUp = useMediaQuery(theme.breakpoints.up('md'));\n \n\n // Desktop\n const desktopInputRef = React.useRef<HTMLInputElement | null>(null);\n const desktopFieldRef = React.useRef<HTMLDivElement | null>(null);\n\n // Mobile\n const [mobileSearchOpen, setMobileSearchOpen] = React.useState(false);\n const mobileInputRef = React.useRef<HTMLInputElement | null>(null);\n\n const [hasInvalidChars, setHasInvalidChars] = React.useState(false);\n const INVALID_CHARS = /[^\\p{L}\\p{M}\\p{N} (),\\/\\.\"'\\-:;\\$]/u;\n\n\n const [isSearching, setIsSearching] = React.useState(false);\n const headerRef = React.useRef<HTMLDivElement | null>(null);\n const isActive = signUpStatus === 'Active';\n \n const clearQueryOnNextResetRef = React.useRef(true);\n const closeMobileOnNextResetRef = React.useRef(true);\n\n\n\n const searchSeqRef = React.useRef(0);\n const debounceRef = React.useRef<number | undefined>(undefined);\n\n const closeMobileSearch = () => {\n\n setMobileSearchOpen(false);\n if (clearQueryOnNextResetRef.current){\n setSearchQuery('');\n }\n setResults([]);\n setOpenDropdown(false);\n window.clearTimeout(debounceRef.current);\n };\n\n const toggleMobileSearch = () => {\n setMobileSearchOpen(prev => {\n const next = !prev;\n if (!next) {\n // cancelling\n closeMobileSearch();\n return false;\n }\n // opening\n setTimeout(() => mobileInputRef.current?.focus(), 0);\n return true;\n });\n };\n\n const handleOpen = (event: React.MouseEvent<HTMLButtonElement>) => {\n setAnchorEl(event.currentTarget);\n };\n\n const handleClose = () => {\n setAnchorEl(null);\n };\n\n const runSearch = async (term: string) => {\n\n if (!search || INVALID_CHARS.test(term)) { // Display invalid character message if illegal characters\n searchSeqRef.current += 1;\n setIsSearching(false);\n setResults([]);\n setHasInvalidChars(true);\n setOpenDropdown(true);\n return;\n }\n if (!term.trim()) { // Remove display message if no query is present\n searchSeqRef.current += 1;\n setIsSearching(false);\n setHasInvalidChars(false);\n setOpenDropdown(false);\n setResults([])\n return;\n }\n setHasInvalidChars(false);\n\n const seq = ++searchSeqRef.current;\n setIsSearching(true);\n try {\n const res = await Promise.resolve(search(term.trim()));\n\n if (seq !== searchSeqRef.current) return; // Fixes debounce race condition causing old searches to appear after newer\n\n const list = Array.isArray(res) ? res : [];\n setResults(list);\n setOpenDropdown(true); // display dropdown no matter what, if no results will display no results message\n } finally {\n if (seq === searchSeqRef.current) setIsSearching(false);\n }\n };\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (e.key === 'Enter') {\n e.preventDefault();\n runSearch(searchQuery);\n }\n };\n\n const handleSearchChange = (value: string) => {\n setSearchQuery(value);\n window.clearTimeout(debounceRef.current);\n\n debounceRef.current = window.setTimeout(() => runSearch(value), 150);\n };\n\n const handleSearchClick: React.MouseEventHandler<HTMLButtonElement> = (e) => {\n e.preventDefault();\n runSearch(searchQuery);\n };\n\n React.useEffect(() => {\n const clearQuery = clearQueryOnNextResetRef.current;\n const closeMobile = closeMobileOnNextResetRef.current;\n\n if (closeMobile) {\n // sidebar/normal navigation\n closeMobileSearch();\n } else {\n // navigation from clicking a search result: keep mobile panel open\n if (clearQuery) setSearchQuery('');\n setResults([]);\n setOpenDropdown(false);\n window.clearTimeout(debounceRef.current);\n }\n\n // reset defaults for next navigation\n clearQueryOnNextResetRef.current = true;\n closeMobileOnNextResetRef.current = true;\n }, [resetKey]);\n\n React.useEffect(() => {\n const handler = (e: MouseEvent) => {\n const t = e.target as Node;\n\n const inDesktop = desktopInputRef.current?.parentElement?.contains(t);\n const inMobile = mobileInputRef.current?.parentElement?.contains(t);\n\n if (!inDesktop && !inMobile) {\n setOpenDropdown(false);\n }\n };\n\n document.addEventListener('click', handler);\n return () => document.removeEventListener('click', handler);\n }, []);\n\n type ResultsMode = 'desktop' | 'mobile';\n\n const DropdownResults = ({\n mode,\n }: {\n mode: ResultsMode;\n }) => {\n const isDesktop = mode === 'desktop';\n return (\n <Box>\n {!isSearching && hasInvalidChars ? (\n <Paper\n elevation={0}\n sx={{\n mt: 1,\n border: '1px solid #4D3019',\n boxShadow: 'none',\n backgroundColor: '#FEFDF7',\n borderRadius: isDesktop ? '12px' : 0,\n px: 2,\n py: 1.5,\n }}\n >\n <Typography sx={{ fontSize: '14px', color: '#4D3019' }}>\n Oops — your search includes symbols we don’t support yet. Please remove special characters (like %, @, #, =) and try again.\n </Typography>\n </Paper>\n ) : !isSearching && results.length === 0 ? (\n <Paper\n elevation={0}\n sx={{\n mt: 1,\n border: '1px solid #4D3019',\n boxShadow: 'none',\n backgroundColor: '#FEFDF7',\n borderRadius: isDesktop ? '12px' : 0,\n px: 2,\n py: 1.5,\n }}\n >\n <Typography sx={{ fontSize: '14px', color: '#4D3019' }}>\n No results found\n </Typography>\n </Paper>\n ) : (\n <ResultsList\n mode={mode}\n items={results}\n onPick={(item) => {\n clearQueryOnNextResetRef.current = false; // keep text\n closeMobileOnNextResetRef.current = false; // keep mobile panel open\n\n setOpenDropdown(false);\n setResults([]);\n\n onResultClick?.(item);\n }}\n />\n )}\n </Box>\n );\n};\n\n\n const ResultsList = ({\n items,\n mode,\n paperRef,\n onPick,\n }: {\n items: HeaderSearchResult[];\n mode: ResultsMode;\n paperRef?: React.Ref<HTMLDivElement>;\n onPick: (item: HeaderSearchResult) => void;\n }) => {\n const isDesktop = mode === 'desktop';\n const displayedResults = mode == 'desktop' ? items : items.slice(0, 3);\n return (\n <Paper\n ref={paperRef}\n elevation={0}\n \n sx={{\n mt: 1,\n border: '1px solid #4D3019',\n boxShadow: 'none',\n backgroundColor: '#FEFDF7',\n\n ...(isDesktop\n ? {\n maxHeight: 'auto',\n borderRadius: '12px',\n overflowX: 'hidden',\n overflowY: 'hidden',\n pb: 1.5,\n }\n : {\n overflow: 'hidden', // no scroll, no scrollbar\n pb: 0,\n }),\n }}\n >\n <List dense disablePadding>\n {displayedResults.map((item, index) => (\n <ListItemButton\n key={index}\n alignItems=\"flex-start\"\n onClick={() => onPick(item)}\n sx={{\n py: 1.5,\n px: 2,\n backgroundColor: '#FEFDF7',\n\n // dividers only on mobile (your current mobile styling)\n ...(isDesktop\n ? {}\n : {\n borderBottom:\n index === items.length - 1\n ? 'none'\n : '1px solid rgba(77,48,25,0.18)',\n }),\n\n '&:hover': { backgroundColor: '#F9F0FC' },\n '&:hover .search-result-title': {\n textDecoration: 'underline',\n color: '#AD46FF',\n },\n }}\n >\n <ListItemText\n primary={item.label}\n secondary={renderDescription(item.description!)}\n primaryTypographyProps={{\n className: 'search-result-title',\n fontWeight: 700,\n fontSize: '16px',\n color: '#4D3019',\n }}\n secondaryTypographyProps={{ component: 'div', mt: 1 }}\n />\n </ListItemButton>\n ))}\n </List>\n </Paper>\n );\n };\n\n\n return (\n <Box>\n <StyledHeader ref={headerRef}>\n {isActive && (\n <>\n <IconButton\n disableRipple\n onClick={toggleMenu}\n sx={{ display: { xs: 'block', md: 'none' } }}\n size=\"large\"\n >\n <MenuRounded sx={{ fontSize: 32, color: 'white' }} />\n </IconButton>\n\n <Divider\n orientation=\"vertical\"\n sx={{\n color: '#FFFFFF',\n borderRightWidth: 2,\n display: { xs: 'block', md: 'none' },\n }}\n />\n </>\n )}\n\n <StyledLogoWrapper>\n <StyledLogoIcon>\n <StyledLogoSvg />\n </StyledLogoIcon>\n </StyledLogoWrapper>\n\n {/* Desktop search only */}\n {isActive && isMdUp && (\n <StyledSearchContainer>\n <StyledTextField\n placeholder=\"Search for a policy\"\n variant=\"outlined\"\n fullWidth\n value={searchQuery}\n inputRef={desktopInputRef}\n ref={desktopFieldRef}\n onChange={(e) => handleSearchChange(e.target.value)}\n onKeyDown={handleKeyDown}\n InputProps={{\n endAdornment: (\n <InputAdornment position=\"end\">\n <Box sx = {{ mr: 1}}>\n {isSearching ? <CircularProgress size={24} /> : null} \n </Box>\n <StyledSearchButton onClick={handleSearchClick}>\n <StyledSearchIcon>\n <SearchRounded />\n </StyledSearchIcon>\n </StyledSearchButton>\n </InputAdornment>\n ),\n }}\n />\n\n <Popper\n open={openDropdown && !!desktopFieldRef.current}\n anchorEl={desktopFieldRef.current}\n placement=\"bottom-start\"\n style={{ zIndex: 1300, width: desktopFieldRef.current?.offsetWidth }}\n >\n <DropdownResults mode=\"desktop\"/>\n </Popper>\n </StyledSearchContainer>\n )}\n\n <StyledUserContainer>\n {/* Mobile search button only */}\n {isActive && !isMdUp && (\n <StyledSearchButton\n disableRipple\n onClick={toggleMobileSearch}\n sx={{\n display: { xs: 'flex', md: 'none' },\n backgroundColor: '#ffffff83',\n }}\n >\n <StyledSearchIcon>\n <SearchRounded />\n </StyledSearchIcon>\n </StyledSearchButton>\n )}\n\n <IconButton onClick={handleOpen} disableRipple>\n <StyledAvatar>\n <StyledAvatarText>{userInitials}</StyledAvatarText>\n </StyledAvatar>\n <StyledUserName>{userName}</StyledUserName>\n </IconButton>\n </StyledUserContainer>\n\n <PopoverMenu\n anchorEl={anchorEl}\n onClose={handleClose}\n signOut={() => {\n signOut();\n handleClose()\n }}\n />\n </StyledHeader>\n\n {/* Mobile panel only */}\n {!isMdUp && (\n <Collapse in={isActive && mobileSearchOpen} unmountOnExit timeout={200}>\n <Box\n sx={{\n display: { xs: 'block', md: 'none' },\n backgroundColor: theme.palette.primary.main,\n px: 2,\n pt: 1.5,\n pb: 2,\n }}\n >\n <Box sx={{ display: 'flex', gap: 1, alignItems: 'center' }}>\n <StyledTextField\n placeholder=\"Search for a policy\"\n variant=\"outlined\"\n fullWidth\n value={searchQuery}\n inputRef={mobileInputRef}\n onChange={(e) => handleSearchChange(e.target.value)}\n onKeyDown={handleKeyDown}\n InputProps={{\n endAdornment: (\n <InputAdornment position=\"end\">\n {isSearching ? <CircularProgress size={18} /> : null}\n </InputAdornment>\n )\n }}\n />\n\n <IconButton onClick={closeMobileSearch} sx={{ color: theme.palette.light.main }}>\n <CloseRounded />\n </IconButton>\n </Box>\n {openDropdown && (\n <Box sx={{ mx: -2 }}>\n <DropdownResults mode=\"mobile\"/>\n </Box>\n )}\n </Box>\n </Collapse>\n )}\n </Box>\n );\n};"],"names":["_jsxs","_jsx","Logo","React","_Fragment"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { __exports as lib } from '../../../_virtual/
|
|
1
|
+
import { __exports as lib } from '../../../_virtual/index9.js';
|
|
2
2
|
import { __require as requireStringify } from './stringify.js';
|
|
3
3
|
import { __require as requireTraversal } from './traversal.js';
|
|
4
4
|
import { __require as requireManipulation } from './manipulation.js';
|