ece-docs-components 1.0.55 → 1.0.56

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.
@@ -191,8 +191,8 @@ const Header = ({ userName = 'John Doe', userInitials = 'JD', toggleMenu, signOu
191
191
  const desktopInputRef = React.useRef(null);
192
192
  const mobileInputRef = React.useRef(null);
193
193
  const desktopFieldRef = React.useRef(null);
194
+ const [isSearching, setIsSearching] = React.useState(false);
194
195
  const headerRef = React.useRef(null);
195
- const [headerHeight, setHeaderHeight] = React.useState(64);
196
196
  const isActive = signUpStatus === 'Active';
197
197
  const mobileResultsPaperRef = React.useRef(null);
198
198
  const [mobileResultLimit, setMobileResultLimit] = React.useState(5);
@@ -200,12 +200,6 @@ const Header = ({ userName = 'John Doe', userInitials = 'JD', toggleMenu, signOu
200
200
  const debounceRef = React.useRef(undefined);
201
201
  const maxVisibleResults = isMdUp ? 5 : 3;
202
202
  const approxItemHeight = 80;
203
- React.useLayoutEffect(() => {
204
- const update = () => setHeaderHeight(headerRef.current?.offsetHeight ?? 64);
205
- update();
206
- window.addEventListener('resize', update);
207
- return () => window.removeEventListener('resize', update);
208
- }, []);
209
203
  // Start at 5 each time results open/change on mobile
210
204
  React.useLayoutEffect(() => {
211
205
  if (isMdUp)
@@ -259,24 +253,27 @@ const Header = ({ userName = 'John Doe', userInitials = 'JD', toggleMenu, signOu
259
253
  setAnchorEl(null);
260
254
  };
261
255
  const runSearch = async (term) => {
262
- const seq = ++searchSeqRef.current;
263
- if (!search) {
256
+ if (!search || !term.trim()) {
257
+ searchSeqRef.current += 1;
258
+ setIsSearching(false);
264
259
  setResults([]);
265
260
  setOpenDropdown(false);
266
261
  return;
267
262
  }
268
- const trimmed = term.trim();
269
- if (!trimmed) {
270
- setResults([]);
271
- setOpenDropdown(false);
272
- return;
263
+ const seq = ++searchSeqRef.current;
264
+ setIsSearching(true);
265
+ try {
266
+ const res = await Promise.resolve(search(term.trim()));
267
+ if (seq !== searchSeqRef.current)
268
+ return; // Fixes debounce race condition causing old searches to appear after newer
269
+ const list = Array.isArray(res) ? res : [];
270
+ setResults(list);
271
+ setOpenDropdown(true); // display dropdown no matter what, if no results will display no results message
272
+ }
273
+ finally {
274
+ if (seq === searchSeqRef.current)
275
+ setIsSearching(false);
273
276
  }
274
- const res = await Promise.resolve(search(trimmed));
275
- if (seq !== searchSeqRef.current)
276
- return; // Fixes debounce race condition causing old searches to appear after newer
277
- const list = Array.isArray(res) ? res : [];
278
- setResults(list);
279
- setOpenDropdown(list.length > 0);
280
277
  };
281
278
  const handleKeyDown = (e) => {
282
279
  if (e.key === 'Enter') {
@@ -364,11 +361,19 @@ const Header = ({ userName = 'John Doe', userInitials = 'JD', toggleMenu, signOu
364
361
  borderRightWidth: 2,
365
362
  display: { xs: 'block', md: 'none' },
366
363
  } })] })), jsxRuntime.jsx(StyledLogoWrapper, { children: jsxRuntime.jsx(StyledLogoIcon, { children: jsxRuntime.jsx(StyledLogoSvg, {}) }) }), isActive && isMdUp && (jsxRuntime.jsxs(StyledSearchContainer, { children: [jsxRuntime.jsx(StyledTextField, { placeholder: "Search for a policy", variant: "outlined", fullWidth: true, value: searchQuery, inputRef: desktopInputRef, ref: desktopFieldRef, onChange: (e) => handleSearchChange(e.target.value), onKeyDown: handleKeyDown, InputProps: {
367
- endAdornment: (jsxRuntime.jsx(StyledSearchButton, { onClick: handleSearchClick, children: jsxRuntime.jsx(StyledSearchIcon, { children: jsxRuntime.jsx(iconsMaterial.SearchRounded, {}) }) })),
368
- } }), jsxRuntime.jsx(material.Popper, { open: openDropdown && results.length > 0 && !!desktopFieldRef.current, anchorEl: desktopFieldRef.current, placement: "bottom-start", style: { zIndex: 1300, width: desktopFieldRef.current?.offsetWidth }, children: jsxRuntime.jsx(ResultsList, { mode: "desktop", items: results, onPick: (item) => {
364
+ endAdornment: (jsxRuntime.jsxs(material.InputAdornment, { position: "end", children: [jsxRuntime.jsx(material.Box, { sx: { mr: 1 }, children: isSearching ? jsxRuntime.jsx(material.CircularProgress, { size: 24 }) : null }), jsxRuntime.jsx(StyledSearchButton, { onClick: handleSearchClick, children: jsxRuntime.jsx(StyledSearchIcon, { children: jsxRuntime.jsx(iconsMaterial.SearchRounded, {}) }) })] })),
365
+ } }), jsxRuntime.jsx(material.Popper, { open: openDropdown && !!desktopFieldRef.current, anchorEl: desktopFieldRef.current, placement: "bottom-start", style: { zIndex: 1300, width: desktopFieldRef.current?.offsetWidth }, children: !isSearching && results.length === 0 ? (jsxRuntime.jsx(material.Paper, { elevation: 0, sx: {
366
+ mt: 1,
367
+ border: '1px solid #4D3019',
368
+ boxShadow: 'none',
369
+ backgroundColor: '#FEFDF7',
370
+ borderRadius: '12px',
371
+ px: 2,
372
+ py: 1.5,
373
+ }, children: jsxRuntime.jsx(material.Typography, { sx: { fontSize: '14px', color: '#4D3019' }, children: "No results found" }) })) : (jsxRuntime.jsx(ResultsList, { mode: "desktop", items: results, onPick: (item) => {
369
374
  onResultClick?.(item);
370
375
  setOpenDropdown(false);
371
- } }) })] })), jsxRuntime.jsxs(StyledUserContainer, { children: [isActive && !isMdUp && (jsxRuntime.jsx(StyledSearchButton, { disableRipple: true, onClick: toggleMobileSearch, sx: {
376
+ } })) })] })), jsxRuntime.jsxs(StyledUserContainer, { children: [isActive && !isMdUp && (jsxRuntime.jsx(StyledSearchButton, { disableRipple: true, onClick: toggleMobileSearch, sx: {
372
377
  display: { xs: 'flex', md: 'none' },
373
378
  backgroundColor: '#ffffff83',
374
379
  }, 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: () => {
@@ -380,10 +385,19 @@ const Header = ({ userName = 'John Doe', userInitials = 'JD', toggleMenu, signOu
380
385
  px: 2,
381
386
  pt: 1.5,
382
387
  pb: 2,
383
- }, children: [jsxRuntime.jsxs(material.Box, { sx: { display: 'flex', gap: 1, alignItems: 'center' }, children: [jsxRuntime.jsx(StyledTextField, { placeholder: "Search for a policy", variant: "outlined", fullWidth: true, value: searchQuery, inputRef: mobileInputRef, onChange: (e) => handleSearchChange(e.target.value), onKeyDown: handleKeyDown }), jsxRuntime.jsx(material.IconButton, { onClick: closeMobileSearch, sx: { color: theme.palette.light.main }, children: jsxRuntime.jsx(iconsMaterial.CloseRounded, {}) })] }), openDropdown && mobileResultsToShow.length > 0 && (jsxRuntime.jsx(material.Box, { sx: { mx: -2 }, children: jsxRuntime.jsx(ResultsList, { mode: "mobile", items: mobileResultsToShow, paperRef: mobileResultsPaperRef, onPick: (item) => {
388
+ }, children: [jsxRuntime.jsxs(material.Box, { sx: { display: 'flex', gap: 1, alignItems: 'center' }, children: [jsxRuntime.jsx(StyledTextField, { placeholder: "Search for a policy", variant: "outlined", fullWidth: true, value: searchQuery, inputRef: mobileInputRef, onChange: (e) => handleSearchChange(e.target.value), onKeyDown: handleKeyDown, InputProps: {
389
+ endAdornment: (jsxRuntime.jsx(material.InputAdornment, { position: "end", children: isSearching ? jsxRuntime.jsx(material.CircularProgress, { size: 18 }) : null }))
390
+ } }), jsxRuntime.jsx(material.IconButton, { onClick: closeMobileSearch, sx: { color: theme.palette.light.main }, children: jsxRuntime.jsx(iconsMaterial.CloseRounded, {}) })] }), openDropdown && (jsxRuntime.jsx(material.Box, { sx: { mx: -2 }, children: !isSearching && results.length === 0 && searchQuery.trim() ? (jsxRuntime.jsx(material.Paper, { elevation: 0, sx: {
391
+ mt: 1,
392
+ border: '1px solid #4D3019',
393
+ boxShadow: 'none',
394
+ backgroundColor: '#FEFDF7',
395
+ px: 2,
396
+ py: 1.5,
397
+ }, children: jsxRuntime.jsx(material.Typography, { sx: { fontSize: '14px', color: '#4D3019' }, children: "No results found" }) })) : (mobileResultsToShow.length > 0 && (jsxRuntime.jsx(ResultsList, { mode: "mobile", items: mobileResultsToShow, paperRef: mobileResultsPaperRef, onPick: (item) => {
384
398
  onResultClick?.(item);
385
399
  setOpenDropdown(false);
386
- } }) }))] }) }))] }));
400
+ } }))) }))] }) }))] }));
387
401
  };
388
402
 
389
403
  exports.Header = Header;
@@ -1 +1 @@
1
- {"version":3,"file":"Header.js","sources":["../../../../src/components/Header.tsx"],"sourcesContent":["import React, { ChangeEvent } from 'react';\r\nimport {\r\n Box,\r\n styled,\r\n Typography,\r\n TextField,\r\n IconButton,\r\n Divider,\r\n Popper,\r\n Paper,\r\n List,\r\n ListItemText,\r\n ListItemButton,\r\n Collapse,\r\n useMediaQuery,\r\n} from '@mui/material';\r\nimport { useTheme } from '../ThemeProvider';\r\nimport { MenuRounded, SearchRounded, CloseRounded } 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?: (query: string) => Promise<HeaderSearchResult[]> | HeaderSearchResult[];\r\n onResultClick?: (result: HeaderSearchResult) => void;\r\n signUpStatus: SignUpStatus;\r\n resetKey?: string | number;\r\n}\r\n\r\nexport interface HeaderSearchResult {\r\n label: string;\r\n description?: string;\r\n value: string;\r\n}\r\n\r\nfunction renderDescription(desc: string): React.ReactNode {\r\n if (!desc) return null;\r\n\r\n const lines = desc.split(/\\r?\\n/).filter(line => line.trim().length > 0);\r\n\r\n const bulletLines = lines.filter(line => line.trim().startsWith(\"* \"));\r\n const nonBulletLines = lines.filter(line => !line.trim().startsWith(\"* \"));\r\n\r\n return (\r\n <div style={{ fontSize: 14, lineHeight: 1.5 }}>\r\n {nonBulletLines.length > 0 && (\r\n <div\r\n style={{\r\n whiteSpace: \"pre-line\",\r\n marginBottom: bulletLines.length > 0 ? 6 : 0, // spacing above bullets\r\n }}\r\n >\r\n {nonBulletLines.join(\"\\n\")}\r\n </div>\r\n )}\r\n\r\n {bulletLines.length > 0 && (\r\n <ul style={{ margin: 0, paddingLeft: 18 }}>\r\n {bulletLines.map((line, idx) => (\r\n <li key={idx}>\r\n {line.trim().replace(/^\\*\\s*/, \"\")}\r\n </li>\r\n ))}\r\n </ul>\r\n )}\r\n </div>\r\n );\r\n}\r\n\r\nconst StyledHeader = styled(Box)(({ theme }) => ({\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'flex-start',\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: '45rem',\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 marginLeft: 'auto',\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 onResultClick,\r\n signUpStatus,\r\n resetKey,\r\n}) => {\r\n const theme = useTheme();\r\n const [anchorEl, setAnchorEl] = React.useState<HTMLButtonElement | null>(null);\r\n const [searchQuery, setSearchQuery] = React.useState('');\r\n const [results, setResults] = React.useState<HeaderSearchResult[]>([]);\r\n const [openDropdown, setOpenDropdown] = React.useState(false);\r\n\r\n const isMdUp = useMediaQuery(theme.breakpoints.up('md'));\r\n const [mobileSearchOpen, setMobileSearchOpen] = React.useState(false);\r\n\r\n const desktopInputRef = React.useRef<HTMLInputElement | null>(null);\r\n const mobileInputRef = React.useRef<HTMLInputElement | null>(null);\r\n const desktopFieldRef = React.useRef<HTMLDivElement | null>(null);\r\n\r\n\r\n const headerRef = React.useRef<HTMLDivElement | null>(null);\r\n const [headerHeight, setHeaderHeight] = React.useState(64);\r\n const isActive = signUpStatus === 'Active';\r\n\r\n const mobileResultsPaperRef = React.useRef<HTMLDivElement | null>(null);\r\n const [mobileResultLimit, setMobileResultLimit] = React.useState(5);\r\n\r\n const searchSeqRef = React.useRef(0);\r\n const debounceRef = React.useRef<number | undefined>(undefined);\r\n const maxVisibleResults = isMdUp ? 5 : 3;\r\n const approxItemHeight = 80; \r\n\r\n React.useLayoutEffect(() => {\r\n const update = () => setHeaderHeight(headerRef.current?.offsetHeight ?? 64);\r\n update();\r\n window.addEventListener('resize', update);\r\n return () => window.removeEventListener('resize', update);\r\n }, []);\r\n\r\n // Start at 5 each time results open/change on mobile\r\n React.useLayoutEffect(() => {\r\n if (isMdUp) return;\r\n if (!mobileSearchOpen || !openDropdown) return;\r\n setMobileResultLimit(5);\r\n }, [isMdUp, mobileSearchOpen, openDropdown, results]);\r\n\r\n // If the dropdown would run off-screen, reduce how many results we render\r\n React.useLayoutEffect(() => {\r\n if (isMdUp) return;\r\n if (!mobileSearchOpen || !openDropdown) return;\r\n\r\n const raf = requestAnimationFrame(() => {\r\n const el = mobileResultsPaperRef.current;\r\n if (!el) return;\r\n\r\n const rect = el.getBoundingClientRect();\r\n const overflowPx = rect.bottom - window.innerHeight;\r\n\r\n if (overflowPx > 0) {\r\n setMobileResultLimit((n) => Math.max(1, n - 1));\r\n }\r\n });\r\n\r\n return () => cancelAnimationFrame(raf);\r\n}, [isMdUp, mobileSearchOpen, openDropdown, mobileResultLimit]);\r\n\r\n\r\n const closeMobileSearch = () => {\r\n setMobileSearchOpen(false);\r\n setSearchQuery('');\r\n setResults([]);\r\n setOpenDropdown(false);\r\n window.clearTimeout(debounceRef.current);\r\n };\r\n\r\n const toggleMobileSearch = () => {\r\n setMobileSearchOpen(prev => {\r\n const next = !prev;\r\n if (!next) {\r\n // cancelling\r\n closeMobileSearch();\r\n return false;\r\n }\r\n // opening\r\n setTimeout(() => mobileInputRef.current?.focus(), 0);\r\n return true;\r\n });\r\n };\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 const runSearch = async (term: string) => {\r\n const seq = ++searchSeqRef.current;\r\n\r\n if (!search) {\r\n setResults([]);\r\n setOpenDropdown(false);\r\n return;\r\n }\r\n\r\n const trimmed = term.trim();\r\n if (!trimmed) {\r\n setResults([]);\r\n setOpenDropdown(false);\r\n return;\r\n }\r\n\r\n const res = await Promise.resolve(search(trimmed));\r\n\r\n if (seq !== searchSeqRef.current) return; // Fixes debounce race condition causing old searches to appear after newer\r\n\r\n const list = Array.isArray(res) ? res : [];\r\n setResults(list);\r\n setOpenDropdown(list.length > 0);\r\n };\r\n\r\n const handleKeyDown = (e: React.KeyboardEvent) => {\r\n if (e.key === 'Enter') {\r\n e.preventDefault();\r\n runSearch(searchQuery);\r\n }\r\n };\r\n\r\n const handleSearchChange = (value: string) => {\r\n setSearchQuery(value);\r\n\r\n window.clearTimeout(debounceRef.current);\r\n\r\n if (!value.trim()) {\r\n runSearch(''); // Immediately run if no search to guarantee removal of listed results\r\n return;\r\n }\r\n\r\n debounceRef.current = window.setTimeout(() => runSearch(value), 150);\r\n };\r\n\r\n\r\n\r\n const handleSearchClick: React.MouseEventHandler<HTMLButtonElement> = (e) => {\r\n e.preventDefault();\r\n runSearch(searchQuery);\r\n };\r\n\r\n React.useEffect(() => {\r\n // When parent says the route changed (resetKey changes), reset search UI\r\n closeMobileSearch();\r\n }, [resetKey]);\r\n\r\n React.useEffect(() => {\r\n const handler = (e: MouseEvent) => {\r\n const t = e.target as Node;\r\n\r\n const inDesktop = desktopInputRef.current?.parentElement?.contains(t);\r\n const inMobile = mobileInputRef.current?.parentElement?.contains(t);\r\n\r\n if (!inDesktop && !inMobile) {\r\n setOpenDropdown(false);\r\n }\r\n };\r\n\r\n document.addEventListener('click', handler);\r\n return () => document.removeEventListener('click', handler);\r\n }, []);\r\n\r\n const mobileResultsToShow = results.slice(0, mobileResultLimit);\r\n\r\n type ResultsMode = 'desktop' | 'mobile';\r\n\r\n const ResultsList = ({\r\n items,\r\n mode,\r\n paperRef,\r\n onPick,\r\n }: {\r\n items: HeaderSearchResult[];\r\n mode: ResultsMode;\r\n paperRef?: React.Ref<HTMLDivElement>;\r\n onPick: (item: HeaderSearchResult) => void;\r\n }) => {\r\n const isDesktop = mode === 'desktop';\r\n return (\r\n <Paper\r\n ref={paperRef}\r\n elevation={0}\r\n \r\n sx={{\r\n mt: 1,\r\n border: '1px solid #4D3019',\r\n boxShadow: 'none',\r\n backgroundColor: '#FEFDF7',\r\n\r\n ...(isDesktop\r\n ? {\r\n maxHeight:\r\n items.length > maxVisibleResults\r\n ? maxVisibleResults * approxItemHeight\r\n : 'auto',\r\n borderRadius: '12px',\r\n overflowX: 'hidden',\r\n overflowY: items.length > maxVisibleResults ? 'auto' : 'hidden',\r\n pb: 1.5,\r\n }\r\n : {\r\n overflow: 'hidden', // no scroll, no scrollbar\r\n pb: 0,\r\n }),\r\n }}\r\n >\r\n <List dense disablePadding>\r\n {items.map((item, index) => (\r\n <ListItemButton\r\n key={index}\r\n alignItems=\"flex-start\"\r\n onClick={() => onPick(item)}\r\n sx={{\r\n py: 1.5,\r\n px: 2,\r\n backgroundColor: '#FEFDF7',\r\n\r\n // dividers only on mobile (your current mobile styling)\r\n ...(isDesktop\r\n ? {}\r\n : {\r\n borderBottom:\r\n index === items.length - 1\r\n ? 'none'\r\n : '1px solid rgba(77,48,25,0.18)',\r\n }),\r\n\r\n '&:hover': { backgroundColor: '#F9F0FC' },\r\n '&:hover .search-result-title': {\r\n textDecoration: 'underline',\r\n color: '#AD46FF',\r\n },\r\n }}\r\n >\r\n <ListItemText\r\n primary={item.label}\r\n secondary={renderDescription(item.description!)}\r\n primaryTypographyProps={{\r\n className: 'search-result-title',\r\n fontWeight: 700,\r\n fontSize: '16px',\r\n color: '#4D3019',\r\n }}\r\n secondaryTypographyProps={{ component: 'div', mt: 1 }}\r\n />\r\n </ListItemButton>\r\n ))}\r\n </List>\r\n </Paper>\r\n );\r\n };\r\n\r\n\r\n return (\r\n <Box>\r\n <StyledHeader ref={headerRef}>\r\n {isActive && (\r\n <>\r\n <IconButton\r\n disableRipple\r\n onClick={toggleMenu}\r\n sx={{ display: { xs: 'block', md: 'none' } }}\r\n size=\"large\"\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\r\n <StyledLogoWrapper>\r\n <StyledLogoIcon>\r\n <StyledLogoSvg />\r\n </StyledLogoIcon>\r\n </StyledLogoWrapper>\r\n\r\n {/* Desktop search only */}\r\n {isActive && isMdUp && (\r\n <StyledSearchContainer>\r\n <StyledTextField\r\n placeholder=\"Search for a policy\"\r\n variant=\"outlined\"\r\n fullWidth\r\n value={searchQuery}\r\n inputRef={desktopInputRef}\r\n ref={desktopFieldRef}\r\n onChange={(e) => handleSearchChange(e.target.value)}\r\n onKeyDown={handleKeyDown}\r\n InputProps={{\r\n endAdornment: (\r\n <StyledSearchButton onClick={handleSearchClick}>\r\n <StyledSearchIcon>\r\n <SearchRounded />\r\n </StyledSearchIcon>\r\n </StyledSearchButton>\r\n ),\r\n }}\r\n />\r\n\r\n <Popper\r\n open={openDropdown && results.length > 0 && !!desktopFieldRef.current}\r\n anchorEl={desktopFieldRef.current}\r\n placement=\"bottom-start\"\r\n style={{ zIndex: 1300, width: desktopFieldRef.current?.offsetWidth }}\r\n >\r\n <ResultsList\r\n mode=\"desktop\"\r\n items={results}\r\n onPick={(item) => {\r\n onResultClick?.(item);\r\n setOpenDropdown(false);\r\n }}\r\n />\r\n </Popper>\r\n </StyledSearchContainer>\r\n )}\r\n\r\n <StyledUserContainer>\r\n {/* Mobile search button only */}\r\n {isActive && !isMdUp && (\r\n <StyledSearchButton\r\n disableRipple\r\n onClick={toggleMobileSearch}\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\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={() => {\r\n signOut();\r\n handleClose();\r\n }}\r\n />\r\n </StyledHeader>\r\n\r\n {/* Mobile panel only */}\r\n {!isMdUp && (\r\n <Collapse in={isActive && mobileSearchOpen} unmountOnExit timeout={200}>\r\n <Box\r\n sx={{\r\n display: { xs: 'block', md: 'none' },\r\n backgroundColor: theme.palette.primary.main,\r\n px: 2,\r\n pt: 1.5,\r\n pb: 2,\r\n }}\r\n >\r\n <Box sx={{ display: 'flex', gap: 1, alignItems: 'center' }}>\r\n <StyledTextField\r\n placeholder=\"Search for a policy\"\r\n variant=\"outlined\"\r\n fullWidth\r\n value={searchQuery}\r\n inputRef={mobileInputRef}\r\n onChange={(e) => handleSearchChange(e.target.value)}\r\n onKeyDown={handleKeyDown}\r\n />\r\n\r\n <IconButton onClick={closeMobileSearch} sx={{ color: theme.palette.light.main }}>\r\n <CloseRounded />\r\n </IconButton>\r\n </Box>\r\n\r\n {openDropdown && mobileResultsToShow.length > 0 && (\r\n <Box sx={{ mx: -2 }}>\r\n <ResultsList\r\n mode=\"mobile\"\r\n items={mobileResultsToShow}\r\n paperRef={mobileResultsPaperRef}\r\n onPick={(item) => {\r\n onResultClick?.(item);\r\n setOpenDropdown(false);\r\n }}\r\n />\r\n </Box>\r\n )}\r\n </Box>\r\n </Collapse>\r\n )}\r\n </Box>\r\n );\r\n};"],"names":["_jsxs","_jsx","styled","Box","Typography","Logo","TextField","IconButton","useTheme","useMediaQuery","Paper","List","ListItemButton","ListItemText","_Fragment","MenuRounded","Divider","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';\r\nimport {\r\n Box,\r\n styled,\r\n Typography,\r\n TextField,\r\n IconButton,\r\n Divider,\r\n Popper,\r\n Paper,\r\n List,\r\n ListItemText,\r\n ListItemButton,\r\n Collapse,\r\n useMediaQuery,\r\n CircularProgress,\r\n InputAdornment,\r\n} from '@mui/material';\r\nimport { useTheme } from '../ThemeProvider';\r\nimport { MenuRounded, SearchRounded, CloseRounded } 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?: (query: string) => Promise<HeaderSearchResult[]> | HeaderSearchResult[];\r\n onResultClick?: (result: HeaderSearchResult) => void;\r\n signUpStatus: SignUpStatus;\r\n resetKey?: string | number;\r\n}\r\n\r\nexport interface HeaderSearchResult {\r\n label: string;\r\n description?: string;\r\n value: string;\r\n}\r\n\r\nfunction renderDescription(desc: string): React.ReactNode {\r\n if (!desc) return null;\r\n\r\n const lines = desc.split(/\\r?\\n/).filter(line => line.trim().length > 0);\r\n\r\n const bulletLines = lines.filter(line => line.trim().startsWith(\"* \"));\r\n const nonBulletLines = lines.filter(line => !line.trim().startsWith(\"* \"));\r\n\r\n return (\r\n <div style={{ fontSize: 14, lineHeight: 1.5 }}>\r\n {nonBulletLines.length > 0 && (\r\n <div\r\n style={{\r\n whiteSpace: \"pre-line\",\r\n marginBottom: bulletLines.length > 0 ? 6 : 0, // spacing above bullets\r\n }}\r\n >\r\n {nonBulletLines.join(\"\\n\")}\r\n </div>\r\n )}\r\n\r\n {bulletLines.length > 0 && (\r\n <ul style={{ margin: 0, paddingLeft: 18 }}>\r\n {bulletLines.map((line, idx) => (\r\n <li key={idx}>\r\n {line.trim().replace(/^\\*\\s*/, \"\")}\r\n </li>\r\n ))}\r\n </ul>\r\n )}\r\n </div>\r\n );\r\n}\r\n\r\nconst StyledHeader = styled(Box)(({ theme }) => ({\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'flex-start',\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: '45rem',\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 marginLeft: 'auto',\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 onResultClick,\r\n signUpStatus,\r\n resetKey,\r\n}) => {\r\n const theme = useTheme();\r\n const [anchorEl, setAnchorEl] = React.useState<HTMLButtonElement | null>(null);\r\n const [searchQuery, setSearchQuery] = React.useState('');\r\n const [results, setResults] = React.useState<HeaderSearchResult[]>([]);\r\n const [openDropdown, setOpenDropdown] = React.useState(false);\r\n\r\n const isMdUp = useMediaQuery(theme.breakpoints.up('md'));\r\n const [mobileSearchOpen, setMobileSearchOpen] = React.useState(false);\r\n\r\n const desktopInputRef = React.useRef<HTMLInputElement | null>(null);\r\n const mobileInputRef = React.useRef<HTMLInputElement | null>(null);\r\n const desktopFieldRef = React.useRef<HTMLDivElement | null>(null);\r\n\r\n\r\n const [isSearching, setIsSearching] = React.useState(false);\r\n const headerRef = React.useRef<HTMLDivElement | null>(null);\r\n const isActive = signUpStatus === 'Active';\r\n\r\n const mobileResultsPaperRef = React.useRef<HTMLDivElement | null>(null);\r\n const [mobileResultLimit, setMobileResultLimit] = React.useState(5);\r\n\r\n const searchSeqRef = React.useRef(0);\r\n const debounceRef = React.useRef<number | undefined>(undefined);\r\n const maxVisibleResults = isMdUp ? 5 : 3;\r\n const approxItemHeight = 80; \r\n\r\n // Start at 5 each time results open/change on mobile\r\n React.useLayoutEffect(() => {\r\n if (isMdUp) return;\r\n if (!mobileSearchOpen || !openDropdown) return;\r\n setMobileResultLimit(5);\r\n }, [isMdUp, mobileSearchOpen, openDropdown, results]);\r\n\r\n // If the dropdown would run off-screen, reduce how many results we render\r\n React.useLayoutEffect(() => {\r\n if (isMdUp) return;\r\n if (!mobileSearchOpen || !openDropdown) return;\r\n\r\n const raf = requestAnimationFrame(() => {\r\n const el = mobileResultsPaperRef.current;\r\n if (!el) return;\r\n\r\n const rect = el.getBoundingClientRect();\r\n const overflowPx = rect.bottom - window.innerHeight;\r\n\r\n if (overflowPx > 0) {\r\n setMobileResultLimit((n) => Math.max(1, n - 1));\r\n }\r\n });\r\n\r\n return () => cancelAnimationFrame(raf);\r\n}, [isMdUp, mobileSearchOpen, openDropdown, mobileResultLimit]);\r\n\r\n\r\n const closeMobileSearch = () => {\r\n setMobileSearchOpen(false);\r\n setSearchQuery('');\r\n setResults([]);\r\n setOpenDropdown(false);\r\n window.clearTimeout(debounceRef.current);\r\n };\r\n\r\n const toggleMobileSearch = () => {\r\n setMobileSearchOpen(prev => {\r\n const next = !prev;\r\n if (!next) {\r\n // cancelling\r\n closeMobileSearch();\r\n return false;\r\n }\r\n // opening\r\n setTimeout(() => mobileInputRef.current?.focus(), 0);\r\n return true;\r\n });\r\n };\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 const runSearch = async (term: string) => {\r\n if (!search || !term.trim()) {\r\n searchSeqRef.current += 1;\r\n setIsSearching(false);\r\n setResults([]);\r\n setOpenDropdown(false);\r\n return;\r\n }\r\n\r\n const seq = ++searchSeqRef.current;\r\n setIsSearching(true);\r\n try {\r\n const res = await Promise.resolve(search(term.trim()));\r\n\r\n if (seq !== searchSeqRef.current) return; // Fixes debounce race condition causing old searches to appear after newer\r\n\r\n const list = Array.isArray(res) ? res : [];\r\n setResults(list);\r\n setOpenDropdown(true); // display dropdown no matter what, if no results will display no results message\r\n } finally {\r\n if (seq === searchSeqRef.current) setIsSearching(false);\r\n }\r\n };\r\n\r\n const handleKeyDown = (e: React.KeyboardEvent) => {\r\n if (e.key === 'Enter') {\r\n e.preventDefault();\r\n runSearch(searchQuery);\r\n }\r\n };\r\n\r\n const handleSearchChange = (value: string) => {\r\n setSearchQuery(value);\r\n\r\n window.clearTimeout(debounceRef.current);\r\n\r\n if (!value.trim()) {\r\n runSearch(''); // Immediately run if no search to guarantee removal of listed results\r\n return;\r\n }\r\n\r\n debounceRef.current = window.setTimeout(() => runSearch(value), 150);\r\n };\r\n\r\n const handleSearchClick: React.MouseEventHandler<HTMLButtonElement> = (e) => {\r\n e.preventDefault();\r\n runSearch(searchQuery);\r\n };\r\n\r\n React.useEffect(() => {\r\n // When parent says the route changed (resetKey changes), reset search UI\r\n closeMobileSearch();\r\n }, [resetKey]);\r\n\r\n React.useEffect(() => {\r\n const handler = (e: MouseEvent) => {\r\n const t = e.target as Node;\r\n\r\n const inDesktop = desktopInputRef.current?.parentElement?.contains(t);\r\n const inMobile = mobileInputRef.current?.parentElement?.contains(t);\r\n\r\n if (!inDesktop && !inMobile) {\r\n setOpenDropdown(false);\r\n }\r\n };\r\n\r\n document.addEventListener('click', handler);\r\n return () => document.removeEventListener('click', handler);\r\n }, []);\r\n\r\n const mobileResultsToShow = results.slice(0, mobileResultLimit);\r\n\r\n type ResultsMode = 'desktop' | 'mobile';\r\n\r\n const ResultsList = ({\r\n items,\r\n mode,\r\n paperRef,\r\n onPick,\r\n }: {\r\n items: HeaderSearchResult[];\r\n mode: ResultsMode;\r\n paperRef?: React.Ref<HTMLDivElement>;\r\n onPick: (item: HeaderSearchResult) => void;\r\n }) => {\r\n const isDesktop = mode === 'desktop';\r\n return (\r\n <Paper\r\n ref={paperRef}\r\n elevation={0}\r\n \r\n sx={{\r\n mt: 1,\r\n border: '1px solid #4D3019',\r\n boxShadow: 'none',\r\n backgroundColor: '#FEFDF7',\r\n\r\n ...(isDesktop\r\n ? {\r\n maxHeight:\r\n items.length > maxVisibleResults\r\n ? maxVisibleResults * approxItemHeight\r\n : 'auto',\r\n borderRadius: '12px',\r\n overflowX: 'hidden',\r\n overflowY: items.length > maxVisibleResults ? 'auto' : 'hidden',\r\n pb: 1.5,\r\n }\r\n : {\r\n overflow: 'hidden', // no scroll, no scrollbar\r\n pb: 0,\r\n }),\r\n }}\r\n >\r\n <List dense disablePadding>\r\n {items.map((item, index) => (\r\n <ListItemButton\r\n key={index}\r\n alignItems=\"flex-start\"\r\n onClick={() => onPick(item)}\r\n sx={{\r\n py: 1.5,\r\n px: 2,\r\n backgroundColor: '#FEFDF7',\r\n\r\n // dividers only on mobile (your current mobile styling)\r\n ...(isDesktop\r\n ? {}\r\n : {\r\n borderBottom:\r\n index === items.length - 1\r\n ? 'none'\r\n : '1px solid rgba(77,48,25,0.18)',\r\n }),\r\n\r\n '&:hover': { backgroundColor: '#F9F0FC' },\r\n '&:hover .search-result-title': {\r\n textDecoration: 'underline',\r\n color: '#AD46FF',\r\n },\r\n }}\r\n >\r\n <ListItemText\r\n primary={item.label}\r\n secondary={renderDescription(item.description!)}\r\n primaryTypographyProps={{\r\n className: 'search-result-title',\r\n fontWeight: 700,\r\n fontSize: '16px',\r\n color: '#4D3019',\r\n }}\r\n secondaryTypographyProps={{ component: 'div', mt: 1 }}\r\n />\r\n </ListItemButton>\r\n ))}\r\n </List>\r\n </Paper>\r\n );\r\n };\r\n\r\n\r\n return (\r\n <Box>\r\n <StyledHeader ref={headerRef}>\r\n {isActive && (\r\n <>\r\n <IconButton\r\n disableRipple\r\n onClick={toggleMenu}\r\n sx={{ display: { xs: 'block', md: 'none' } }}\r\n size=\"large\"\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\r\n <StyledLogoWrapper>\r\n <StyledLogoIcon>\r\n <StyledLogoSvg />\r\n </StyledLogoIcon>\r\n </StyledLogoWrapper>\r\n\r\n {/* Desktop search only */}\r\n {isActive && isMdUp && (\r\n <StyledSearchContainer>\r\n <StyledTextField\r\n placeholder=\"Search for a policy\"\r\n variant=\"outlined\"\r\n fullWidth\r\n value={searchQuery}\r\n inputRef={desktopInputRef}\r\n ref={desktopFieldRef}\r\n onChange={(e) => handleSearchChange(e.target.value)}\r\n onKeyDown={handleKeyDown}\r\n InputProps={{\r\n endAdornment: (\r\n <InputAdornment position=\"end\">\r\n <Box sx = {{ mr: 1}}>\r\n {isSearching ? <CircularProgress size={24} /> : null} \r\n </Box>\r\n <StyledSearchButton onClick={handleSearchClick}>\r\n <StyledSearchIcon>\r\n <SearchRounded />\r\n </StyledSearchIcon>\r\n </StyledSearchButton>\r\n </InputAdornment>\r\n ),\r\n }}\r\n />\r\n\r\n <Popper\r\n open={openDropdown && !!desktopFieldRef.current}\r\n anchorEl={desktopFieldRef.current}\r\n placement=\"bottom-start\"\r\n style={{ zIndex: 1300, width: desktopFieldRef.current?.offsetWidth }}\r\n >\r\n {!isSearching && results.length === 0 ? (\r\n <Paper\r\n elevation={0}\r\n sx={{\r\n mt: 1,\r\n border: '1px solid #4D3019',\r\n boxShadow: 'none',\r\n backgroundColor: '#FEFDF7',\r\n borderRadius: '12px',\r\n px: 2,\r\n py: 1.5,\r\n }}\r\n >\r\n <Typography sx={{ fontSize: '14px', color: '#4D3019' }}>\r\n No results found\r\n </Typography>\r\n </Paper>\r\n ) : (\r\n <ResultsList\r\n mode=\"desktop\"\r\n items={results}\r\n onPick={(item) => {\r\n onResultClick?.(item);\r\n setOpenDropdown(false);\r\n }}\r\n />\r\n )}\r\n </Popper>\r\n </StyledSearchContainer>\r\n )}\r\n\r\n <StyledUserContainer>\r\n {/* Mobile search button only */}\r\n {isActive && !isMdUp && (\r\n <StyledSearchButton\r\n disableRipple\r\n onClick={toggleMobileSearch}\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\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={() => {\r\n signOut();\r\n handleClose();\r\n }}\r\n />\r\n </StyledHeader>\r\n\r\n {/* Mobile panel only */}\r\n {!isMdUp && (\r\n <Collapse in={isActive && mobileSearchOpen} unmountOnExit timeout={200}>\r\n <Box\r\n sx={{\r\n display: { xs: 'block', md: 'none' },\r\n backgroundColor: theme.palette.primary.main,\r\n px: 2,\r\n pt: 1.5,\r\n pb: 2,\r\n }}\r\n >\r\n <Box sx={{ display: 'flex', gap: 1, alignItems: 'center' }}>\r\n <StyledTextField\r\n placeholder=\"Search for a policy\"\r\n variant=\"outlined\"\r\n fullWidth\r\n value={searchQuery}\r\n inputRef={mobileInputRef}\r\n onChange={(e) => handleSearchChange(e.target.value)}\r\n onKeyDown={handleKeyDown}\r\n InputProps={{\r\n endAdornment: (\r\n <InputAdornment position=\"end\">\r\n {isSearching ? <CircularProgress size={18} /> : null}\r\n </InputAdornment>\r\n )\r\n }}\r\n />\r\n\r\n <IconButton onClick={closeMobileSearch} sx={{ color: theme.palette.light.main }}>\r\n <CloseRounded />\r\n </IconButton>\r\n </Box>\r\n {openDropdown && (\r\n <Box sx={{ mx: -2 }}>\r\n {!isSearching && results.length === 0 && searchQuery.trim() ? (\r\n <Paper\r\n elevation={0}\r\n sx={{\r\n mt: 1,\r\n border: '1px solid #4D3019',\r\n boxShadow: 'none',\r\n backgroundColor: '#FEFDF7',\r\n px: 2,\r\n py: 1.5,\r\n }}\r\n >\r\n <Typography sx={{ fontSize: '14px', color: '#4D3019' }}>\r\n No results found\r\n </Typography>\r\n </Paper>\r\n ) : (\r\n mobileResultsToShow.length > 0 && (\r\n <ResultsList\r\n mode=\"mobile\"\r\n items={mobileResultsToShow}\r\n paperRef={mobileResultsPaperRef}\r\n onPick={(item) => {\r\n onResultClick?.(item);\r\n setOpenDropdown(false);\r\n }}\r\n />\r\n )\r\n )}\r\n </Box>\r\n )}\r\n </Box>\r\n </Collapse>\r\n )}\r\n </Box>\r\n );\r\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,6 +1,6 @@
1
1
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
2
2
  import React__default from 'react';
3
- import { styled, Box, Typography, TextField, IconButton, useMediaQuery, Divider, Popper, Collapse, Paper, List, ListItemButton, ListItemText } from '@mui/material';
3
+ import { styled, Box, Typography, TextField, IconButton, useMediaQuery, Divider, InputAdornment, CircularProgress, Popper, Paper, Collapse, List, ListItemButton, ListItemText } from '@mui/material';
4
4
  import { useTheme } from '../ThemeProvider.js';
5
5
  import { MenuRounded, SearchRounded, CloseRounded } from '@mui/icons-material';
6
6
  import PopoverMenu from './PopoverMenu.js';
@@ -189,8 +189,8 @@ const Header = ({ userName = 'John Doe', userInitials = 'JD', toggleMenu, signOu
189
189
  const desktopInputRef = React__default.useRef(null);
190
190
  const mobileInputRef = React__default.useRef(null);
191
191
  const desktopFieldRef = React__default.useRef(null);
192
+ const [isSearching, setIsSearching] = React__default.useState(false);
192
193
  const headerRef = React__default.useRef(null);
193
- const [headerHeight, setHeaderHeight] = React__default.useState(64);
194
194
  const isActive = signUpStatus === 'Active';
195
195
  const mobileResultsPaperRef = React__default.useRef(null);
196
196
  const [mobileResultLimit, setMobileResultLimit] = React__default.useState(5);
@@ -198,12 +198,6 @@ const Header = ({ userName = 'John Doe', userInitials = 'JD', toggleMenu, signOu
198
198
  const debounceRef = React__default.useRef(undefined);
199
199
  const maxVisibleResults = isMdUp ? 5 : 3;
200
200
  const approxItemHeight = 80;
201
- React__default.useLayoutEffect(() => {
202
- const update = () => setHeaderHeight(headerRef.current?.offsetHeight ?? 64);
203
- update();
204
- window.addEventListener('resize', update);
205
- return () => window.removeEventListener('resize', update);
206
- }, []);
207
201
  // Start at 5 each time results open/change on mobile
208
202
  React__default.useLayoutEffect(() => {
209
203
  if (isMdUp)
@@ -257,24 +251,27 @@ const Header = ({ userName = 'John Doe', userInitials = 'JD', toggleMenu, signOu
257
251
  setAnchorEl(null);
258
252
  };
259
253
  const runSearch = async (term) => {
260
- const seq = ++searchSeqRef.current;
261
- if (!search) {
254
+ if (!search || !term.trim()) {
255
+ searchSeqRef.current += 1;
256
+ setIsSearching(false);
262
257
  setResults([]);
263
258
  setOpenDropdown(false);
264
259
  return;
265
260
  }
266
- const trimmed = term.trim();
267
- if (!trimmed) {
268
- setResults([]);
269
- setOpenDropdown(false);
270
- return;
261
+ const seq = ++searchSeqRef.current;
262
+ setIsSearching(true);
263
+ try {
264
+ const res = await Promise.resolve(search(term.trim()));
265
+ if (seq !== searchSeqRef.current)
266
+ return; // Fixes debounce race condition causing old searches to appear after newer
267
+ const list = Array.isArray(res) ? res : [];
268
+ setResults(list);
269
+ setOpenDropdown(true); // display dropdown no matter what, if no results will display no results message
270
+ }
271
+ finally {
272
+ if (seq === searchSeqRef.current)
273
+ setIsSearching(false);
271
274
  }
272
- const res = await Promise.resolve(search(trimmed));
273
- if (seq !== searchSeqRef.current)
274
- return; // Fixes debounce race condition causing old searches to appear after newer
275
- const list = Array.isArray(res) ? res : [];
276
- setResults(list);
277
- setOpenDropdown(list.length > 0);
278
275
  };
279
276
  const handleKeyDown = (e) => {
280
277
  if (e.key === 'Enter') {
@@ -362,11 +359,19 @@ const Header = ({ userName = 'John Doe', userInitials = 'JD', toggleMenu, signOu
362
359
  borderRightWidth: 2,
363
360
  display: { xs: 'block', md: 'none' },
364
361
  } })] })), jsx(StyledLogoWrapper, { children: jsx(StyledLogoIcon, { children: jsx(StyledLogoSvg, {}) }) }), isActive && isMdUp && (jsxs(StyledSearchContainer, { children: [jsx(StyledTextField, { placeholder: "Search for a policy", variant: "outlined", fullWidth: true, value: searchQuery, inputRef: desktopInputRef, ref: desktopFieldRef, onChange: (e) => handleSearchChange(e.target.value), onKeyDown: handleKeyDown, InputProps: {
365
- endAdornment: (jsx(StyledSearchButton, { onClick: handleSearchClick, children: jsx(StyledSearchIcon, { children: jsx(SearchRounded, {}) }) })),
366
- } }), jsx(Popper, { open: openDropdown && results.length > 0 && !!desktopFieldRef.current, anchorEl: desktopFieldRef.current, placement: "bottom-start", style: { zIndex: 1300, width: desktopFieldRef.current?.offsetWidth }, children: jsx(ResultsList, { mode: "desktop", items: results, onPick: (item) => {
362
+ endAdornment: (jsxs(InputAdornment, { position: "end", children: [jsx(Box, { sx: { mr: 1 }, children: isSearching ? jsx(CircularProgress, { size: 24 }) : null }), jsx(StyledSearchButton, { onClick: handleSearchClick, children: jsx(StyledSearchIcon, { children: jsx(SearchRounded, {}) }) })] })),
363
+ } }), jsx(Popper, { open: openDropdown && !!desktopFieldRef.current, anchorEl: desktopFieldRef.current, placement: "bottom-start", style: { zIndex: 1300, width: desktopFieldRef.current?.offsetWidth }, children: !isSearching && results.length === 0 ? (jsx(Paper, { elevation: 0, sx: {
364
+ mt: 1,
365
+ border: '1px solid #4D3019',
366
+ boxShadow: 'none',
367
+ backgroundColor: '#FEFDF7',
368
+ borderRadius: '12px',
369
+ px: 2,
370
+ py: 1.5,
371
+ }, children: jsx(Typography, { sx: { fontSize: '14px', color: '#4D3019' }, children: "No results found" }) })) : (jsx(ResultsList, { mode: "desktop", items: results, onPick: (item) => {
367
372
  onResultClick?.(item);
368
373
  setOpenDropdown(false);
369
- } }) })] })), jsxs(StyledUserContainer, { children: [isActive && !isMdUp && (jsx(StyledSearchButton, { disableRipple: true, onClick: toggleMobileSearch, sx: {
374
+ } })) })] })), jsxs(StyledUserContainer, { children: [isActive && !isMdUp && (jsx(StyledSearchButton, { disableRipple: true, onClick: toggleMobileSearch, sx: {
370
375
  display: { xs: 'flex', md: 'none' },
371
376
  backgroundColor: '#ffffff83',
372
377
  }, 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: () => {
@@ -378,10 +383,19 @@ const Header = ({ userName = 'John Doe', userInitials = 'JD', toggleMenu, signOu
378
383
  px: 2,
379
384
  pt: 1.5,
380
385
  pb: 2,
381
- }, children: [jsxs(Box, { sx: { display: 'flex', gap: 1, alignItems: 'center' }, children: [jsx(StyledTextField, { placeholder: "Search for a policy", variant: "outlined", fullWidth: true, value: searchQuery, inputRef: mobileInputRef, onChange: (e) => handleSearchChange(e.target.value), onKeyDown: handleKeyDown }), jsx(IconButton, { onClick: closeMobileSearch, sx: { color: theme.palette.light.main }, children: jsx(CloseRounded, {}) })] }), openDropdown && mobileResultsToShow.length > 0 && (jsx(Box, { sx: { mx: -2 }, children: jsx(ResultsList, { mode: "mobile", items: mobileResultsToShow, paperRef: mobileResultsPaperRef, onPick: (item) => {
386
+ }, children: [jsxs(Box, { sx: { display: 'flex', gap: 1, alignItems: 'center' }, children: [jsx(StyledTextField, { placeholder: "Search for a policy", variant: "outlined", fullWidth: true, value: searchQuery, inputRef: mobileInputRef, onChange: (e) => handleSearchChange(e.target.value), onKeyDown: handleKeyDown, InputProps: {
387
+ endAdornment: (jsx(InputAdornment, { position: "end", children: isSearching ? jsx(CircularProgress, { size: 18 }) : null }))
388
+ } }), jsx(IconButton, { onClick: closeMobileSearch, sx: { color: theme.palette.light.main }, children: jsx(CloseRounded, {}) })] }), openDropdown && (jsx(Box, { sx: { mx: -2 }, children: !isSearching && results.length === 0 && searchQuery.trim() ? (jsx(Paper, { elevation: 0, sx: {
389
+ mt: 1,
390
+ border: '1px solid #4D3019',
391
+ boxShadow: 'none',
392
+ backgroundColor: '#FEFDF7',
393
+ px: 2,
394
+ py: 1.5,
395
+ }, children: jsx(Typography, { sx: { fontSize: '14px', color: '#4D3019' }, children: "No results found" }) })) : (mobileResultsToShow.length > 0 && (jsx(ResultsList, { mode: "mobile", items: mobileResultsToShow, paperRef: mobileResultsPaperRef, onPick: (item) => {
382
396
  onResultClick?.(item);
383
397
  setOpenDropdown(false);
384
- } }) }))] }) }))] }));
398
+ } }))) }))] }) }))] }));
385
399
  };
386
400
 
387
401
  export { Header };
@@ -1 +1 @@
1
- {"version":3,"file":"Header.js","sources":["../../../../src/components/Header.tsx"],"sourcesContent":["import React, { ChangeEvent } from 'react';\r\nimport {\r\n Box,\r\n styled,\r\n Typography,\r\n TextField,\r\n IconButton,\r\n Divider,\r\n Popper,\r\n Paper,\r\n List,\r\n ListItemText,\r\n ListItemButton,\r\n Collapse,\r\n useMediaQuery,\r\n} from '@mui/material';\r\nimport { useTheme } from '../ThemeProvider';\r\nimport { MenuRounded, SearchRounded, CloseRounded } 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?: (query: string) => Promise<HeaderSearchResult[]> | HeaderSearchResult[];\r\n onResultClick?: (result: HeaderSearchResult) => void;\r\n signUpStatus: SignUpStatus;\r\n resetKey?: string | number;\r\n}\r\n\r\nexport interface HeaderSearchResult {\r\n label: string;\r\n description?: string;\r\n value: string;\r\n}\r\n\r\nfunction renderDescription(desc: string): React.ReactNode {\r\n if (!desc) return null;\r\n\r\n const lines = desc.split(/\\r?\\n/).filter(line => line.trim().length > 0);\r\n\r\n const bulletLines = lines.filter(line => line.trim().startsWith(\"* \"));\r\n const nonBulletLines = lines.filter(line => !line.trim().startsWith(\"* \"));\r\n\r\n return (\r\n <div style={{ fontSize: 14, lineHeight: 1.5 }}>\r\n {nonBulletLines.length > 0 && (\r\n <div\r\n style={{\r\n whiteSpace: \"pre-line\",\r\n marginBottom: bulletLines.length > 0 ? 6 : 0, // spacing above bullets\r\n }}\r\n >\r\n {nonBulletLines.join(\"\\n\")}\r\n </div>\r\n )}\r\n\r\n {bulletLines.length > 0 && (\r\n <ul style={{ margin: 0, paddingLeft: 18 }}>\r\n {bulletLines.map((line, idx) => (\r\n <li key={idx}>\r\n {line.trim().replace(/^\\*\\s*/, \"\")}\r\n </li>\r\n ))}\r\n </ul>\r\n )}\r\n </div>\r\n );\r\n}\r\n\r\nconst StyledHeader = styled(Box)(({ theme }) => ({\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'flex-start',\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: '45rem',\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 marginLeft: 'auto',\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 onResultClick,\r\n signUpStatus,\r\n resetKey,\r\n}) => {\r\n const theme = useTheme();\r\n const [anchorEl, setAnchorEl] = React.useState<HTMLButtonElement | null>(null);\r\n const [searchQuery, setSearchQuery] = React.useState('');\r\n const [results, setResults] = React.useState<HeaderSearchResult[]>([]);\r\n const [openDropdown, setOpenDropdown] = React.useState(false);\r\n\r\n const isMdUp = useMediaQuery(theme.breakpoints.up('md'));\r\n const [mobileSearchOpen, setMobileSearchOpen] = React.useState(false);\r\n\r\n const desktopInputRef = React.useRef<HTMLInputElement | null>(null);\r\n const mobileInputRef = React.useRef<HTMLInputElement | null>(null);\r\n const desktopFieldRef = React.useRef<HTMLDivElement | null>(null);\r\n\r\n\r\n const headerRef = React.useRef<HTMLDivElement | null>(null);\r\n const [headerHeight, setHeaderHeight] = React.useState(64);\r\n const isActive = signUpStatus === 'Active';\r\n\r\n const mobileResultsPaperRef = React.useRef<HTMLDivElement | null>(null);\r\n const [mobileResultLimit, setMobileResultLimit] = React.useState(5);\r\n\r\n const searchSeqRef = React.useRef(0);\r\n const debounceRef = React.useRef<number | undefined>(undefined);\r\n const maxVisibleResults = isMdUp ? 5 : 3;\r\n const approxItemHeight = 80; \r\n\r\n React.useLayoutEffect(() => {\r\n const update = () => setHeaderHeight(headerRef.current?.offsetHeight ?? 64);\r\n update();\r\n window.addEventListener('resize', update);\r\n return () => window.removeEventListener('resize', update);\r\n }, []);\r\n\r\n // Start at 5 each time results open/change on mobile\r\n React.useLayoutEffect(() => {\r\n if (isMdUp) return;\r\n if (!mobileSearchOpen || !openDropdown) return;\r\n setMobileResultLimit(5);\r\n }, [isMdUp, mobileSearchOpen, openDropdown, results]);\r\n\r\n // If the dropdown would run off-screen, reduce how many results we render\r\n React.useLayoutEffect(() => {\r\n if (isMdUp) return;\r\n if (!mobileSearchOpen || !openDropdown) return;\r\n\r\n const raf = requestAnimationFrame(() => {\r\n const el = mobileResultsPaperRef.current;\r\n if (!el) return;\r\n\r\n const rect = el.getBoundingClientRect();\r\n const overflowPx = rect.bottom - window.innerHeight;\r\n\r\n if (overflowPx > 0) {\r\n setMobileResultLimit((n) => Math.max(1, n - 1));\r\n }\r\n });\r\n\r\n return () => cancelAnimationFrame(raf);\r\n}, [isMdUp, mobileSearchOpen, openDropdown, mobileResultLimit]);\r\n\r\n\r\n const closeMobileSearch = () => {\r\n setMobileSearchOpen(false);\r\n setSearchQuery('');\r\n setResults([]);\r\n setOpenDropdown(false);\r\n window.clearTimeout(debounceRef.current);\r\n };\r\n\r\n const toggleMobileSearch = () => {\r\n setMobileSearchOpen(prev => {\r\n const next = !prev;\r\n if (!next) {\r\n // cancelling\r\n closeMobileSearch();\r\n return false;\r\n }\r\n // opening\r\n setTimeout(() => mobileInputRef.current?.focus(), 0);\r\n return true;\r\n });\r\n };\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 const runSearch = async (term: string) => {\r\n const seq = ++searchSeqRef.current;\r\n\r\n if (!search) {\r\n setResults([]);\r\n setOpenDropdown(false);\r\n return;\r\n }\r\n\r\n const trimmed = term.trim();\r\n if (!trimmed) {\r\n setResults([]);\r\n setOpenDropdown(false);\r\n return;\r\n }\r\n\r\n const res = await Promise.resolve(search(trimmed));\r\n\r\n if (seq !== searchSeqRef.current) return; // Fixes debounce race condition causing old searches to appear after newer\r\n\r\n const list = Array.isArray(res) ? res : [];\r\n setResults(list);\r\n setOpenDropdown(list.length > 0);\r\n };\r\n\r\n const handleKeyDown = (e: React.KeyboardEvent) => {\r\n if (e.key === 'Enter') {\r\n e.preventDefault();\r\n runSearch(searchQuery);\r\n }\r\n };\r\n\r\n const handleSearchChange = (value: string) => {\r\n setSearchQuery(value);\r\n\r\n window.clearTimeout(debounceRef.current);\r\n\r\n if (!value.trim()) {\r\n runSearch(''); // Immediately run if no search to guarantee removal of listed results\r\n return;\r\n }\r\n\r\n debounceRef.current = window.setTimeout(() => runSearch(value), 150);\r\n };\r\n\r\n\r\n\r\n const handleSearchClick: React.MouseEventHandler<HTMLButtonElement> = (e) => {\r\n e.preventDefault();\r\n runSearch(searchQuery);\r\n };\r\n\r\n React.useEffect(() => {\r\n // When parent says the route changed (resetKey changes), reset search UI\r\n closeMobileSearch();\r\n }, [resetKey]);\r\n\r\n React.useEffect(() => {\r\n const handler = (e: MouseEvent) => {\r\n const t = e.target as Node;\r\n\r\n const inDesktop = desktopInputRef.current?.parentElement?.contains(t);\r\n const inMobile = mobileInputRef.current?.parentElement?.contains(t);\r\n\r\n if (!inDesktop && !inMobile) {\r\n setOpenDropdown(false);\r\n }\r\n };\r\n\r\n document.addEventListener('click', handler);\r\n return () => document.removeEventListener('click', handler);\r\n }, []);\r\n\r\n const mobileResultsToShow = results.slice(0, mobileResultLimit);\r\n\r\n type ResultsMode = 'desktop' | 'mobile';\r\n\r\n const ResultsList = ({\r\n items,\r\n mode,\r\n paperRef,\r\n onPick,\r\n }: {\r\n items: HeaderSearchResult[];\r\n mode: ResultsMode;\r\n paperRef?: React.Ref<HTMLDivElement>;\r\n onPick: (item: HeaderSearchResult) => void;\r\n }) => {\r\n const isDesktop = mode === 'desktop';\r\n return (\r\n <Paper\r\n ref={paperRef}\r\n elevation={0}\r\n \r\n sx={{\r\n mt: 1,\r\n border: '1px solid #4D3019',\r\n boxShadow: 'none',\r\n backgroundColor: '#FEFDF7',\r\n\r\n ...(isDesktop\r\n ? {\r\n maxHeight:\r\n items.length > maxVisibleResults\r\n ? maxVisibleResults * approxItemHeight\r\n : 'auto',\r\n borderRadius: '12px',\r\n overflowX: 'hidden',\r\n overflowY: items.length > maxVisibleResults ? 'auto' : 'hidden',\r\n pb: 1.5,\r\n }\r\n : {\r\n overflow: 'hidden', // no scroll, no scrollbar\r\n pb: 0,\r\n }),\r\n }}\r\n >\r\n <List dense disablePadding>\r\n {items.map((item, index) => (\r\n <ListItemButton\r\n key={index}\r\n alignItems=\"flex-start\"\r\n onClick={() => onPick(item)}\r\n sx={{\r\n py: 1.5,\r\n px: 2,\r\n backgroundColor: '#FEFDF7',\r\n\r\n // dividers only on mobile (your current mobile styling)\r\n ...(isDesktop\r\n ? {}\r\n : {\r\n borderBottom:\r\n index === items.length - 1\r\n ? 'none'\r\n : '1px solid rgba(77,48,25,0.18)',\r\n }),\r\n\r\n '&:hover': { backgroundColor: '#F9F0FC' },\r\n '&:hover .search-result-title': {\r\n textDecoration: 'underline',\r\n color: '#AD46FF',\r\n },\r\n }}\r\n >\r\n <ListItemText\r\n primary={item.label}\r\n secondary={renderDescription(item.description!)}\r\n primaryTypographyProps={{\r\n className: 'search-result-title',\r\n fontWeight: 700,\r\n fontSize: '16px',\r\n color: '#4D3019',\r\n }}\r\n secondaryTypographyProps={{ component: 'div', mt: 1 }}\r\n />\r\n </ListItemButton>\r\n ))}\r\n </List>\r\n </Paper>\r\n );\r\n };\r\n\r\n\r\n return (\r\n <Box>\r\n <StyledHeader ref={headerRef}>\r\n {isActive && (\r\n <>\r\n <IconButton\r\n disableRipple\r\n onClick={toggleMenu}\r\n sx={{ display: { xs: 'block', md: 'none' } }}\r\n size=\"large\"\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\r\n <StyledLogoWrapper>\r\n <StyledLogoIcon>\r\n <StyledLogoSvg />\r\n </StyledLogoIcon>\r\n </StyledLogoWrapper>\r\n\r\n {/* Desktop search only */}\r\n {isActive && isMdUp && (\r\n <StyledSearchContainer>\r\n <StyledTextField\r\n placeholder=\"Search for a policy\"\r\n variant=\"outlined\"\r\n fullWidth\r\n value={searchQuery}\r\n inputRef={desktopInputRef}\r\n ref={desktopFieldRef}\r\n onChange={(e) => handleSearchChange(e.target.value)}\r\n onKeyDown={handleKeyDown}\r\n InputProps={{\r\n endAdornment: (\r\n <StyledSearchButton onClick={handleSearchClick}>\r\n <StyledSearchIcon>\r\n <SearchRounded />\r\n </StyledSearchIcon>\r\n </StyledSearchButton>\r\n ),\r\n }}\r\n />\r\n\r\n <Popper\r\n open={openDropdown && results.length > 0 && !!desktopFieldRef.current}\r\n anchorEl={desktopFieldRef.current}\r\n placement=\"bottom-start\"\r\n style={{ zIndex: 1300, width: desktopFieldRef.current?.offsetWidth }}\r\n >\r\n <ResultsList\r\n mode=\"desktop\"\r\n items={results}\r\n onPick={(item) => {\r\n onResultClick?.(item);\r\n setOpenDropdown(false);\r\n }}\r\n />\r\n </Popper>\r\n </StyledSearchContainer>\r\n )}\r\n\r\n <StyledUserContainer>\r\n {/* Mobile search button only */}\r\n {isActive && !isMdUp && (\r\n <StyledSearchButton\r\n disableRipple\r\n onClick={toggleMobileSearch}\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\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={() => {\r\n signOut();\r\n handleClose();\r\n }}\r\n />\r\n </StyledHeader>\r\n\r\n {/* Mobile panel only */}\r\n {!isMdUp && (\r\n <Collapse in={isActive && mobileSearchOpen} unmountOnExit timeout={200}>\r\n <Box\r\n sx={{\r\n display: { xs: 'block', md: 'none' },\r\n backgroundColor: theme.palette.primary.main,\r\n px: 2,\r\n pt: 1.5,\r\n pb: 2,\r\n }}\r\n >\r\n <Box sx={{ display: 'flex', gap: 1, alignItems: 'center' }}>\r\n <StyledTextField\r\n placeholder=\"Search for a policy\"\r\n variant=\"outlined\"\r\n fullWidth\r\n value={searchQuery}\r\n inputRef={mobileInputRef}\r\n onChange={(e) => handleSearchChange(e.target.value)}\r\n onKeyDown={handleKeyDown}\r\n />\r\n\r\n <IconButton onClick={closeMobileSearch} sx={{ color: theme.palette.light.main }}>\r\n <CloseRounded />\r\n </IconButton>\r\n </Box>\r\n\r\n {openDropdown && mobileResultsToShow.length > 0 && (\r\n <Box sx={{ mx: -2 }}>\r\n <ResultsList\r\n mode=\"mobile\"\r\n items={mobileResultsToShow}\r\n paperRef={mobileResultsPaperRef}\r\n onPick={(item) => {\r\n onResultClick?.(item);\r\n setOpenDropdown(false);\r\n }}\r\n />\r\n </Box>\r\n )}\r\n </Box>\r\n </Collapse>\r\n )}\r\n </Box>\r\n );\r\n};"],"names":["_jsxs","_jsx","Logo","React","_Fragment"],"mappings":";;;;;;;;AAuCA,SAAS,iBAAiB,CAAC,IAAY,EAAA;AACrC,IAAA,IAAI,CAAC,IAAI;AAAE,QAAA,OAAO,IAAI;IAEtB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;IAExE,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACtE,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAE1E,QACEA,cAAK,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,EAAA,QAAA,EAAA,CAC1C,cAAc,CAAC,MAAM,GAAG,CAAC,KACxBC,GAAA,CAAA,KAAA,EAAA,EACE,KAAK,EAAE;AACL,oBAAA,UAAU,EAAE,UAAU;AACtB,oBAAA,YAAY,EAAE,WAAW,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;AAC7C,iBAAA,EAAA,QAAA,EAEA,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAA,CACtB,CACP,EAEA,WAAW,CAAC,MAAM,GAAG,CAAC,KACrBA,GAAA,CAAA,IAAA,EAAA,EAAI,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,YACtC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,MACzBA,GAAA,CAAA,IAAA,EAAA,EAAA,QAAA,EACG,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAA,EAD3B,GAAG,CAEP,CACN,CAAC,EAAA,CACC,CACN,CAAA,EAAA,CACG;AAEV;AAEA,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM;AAC/C,IAAA,OAAO,EAAE,MAAM;AACf,IAAA,UAAU,EAAE,QAAQ;AACpB,IAAA,cAAc,EAAE,YAAY;IAC5B,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI;IAC3C,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;QAC5B,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QACrB,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC;AACjC,KAAA;IACD,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;QAC9B,OAAO,EAAE,CAAC;AACX,KAAA;AACF,CAAA,CAAC,CAAC;AAEH,MAAM,iBAAiB,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM;AACpD,IAAA,OAAO,EAAE,MAAM;AACf,IAAA,UAAU,EAAE,QAAQ;AACpB,IAAA,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;AAC3B,IAAA,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;AACrB,IAAA,MAAM,EAAE,MAAM;AACf,CAAA,CAAC,CAAC;AAGH,MAAM,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM;AACjD,IAAA,KAAK,EAAE,MAAM;AACb,IAAA,MAAM,EAAE,MAAM;AACd,IAAA,OAAO,EAAE,MAAM;AACf,IAAA,UAAU,EAAE,QAAQ;AACpB,IAAA,cAAc,EAAE,QAAQ;AACxB,IAAA,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI;AAChC,CAAA,CAAC,CAAC;AAGoB,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM;IACxD,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI;IAC/B,UAAU,EAAE,GAAG;IACf,aAAa,EAAE,QAAQ;IACvB,QAAQ,EAAE,QAAQ;IAClB,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;QAC9B,QAAQ,EAAE,SAAS;AACpB,KAAA;IACD,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;QAC9B,QAAQ,EAAE,UAAU;AACrB,KAAA;AACF,CAAA,CAAC;AAEF,MAAM,aAAa,GAAG,MAAM,CAACC,4BAAI,CAAC,CAAA,CAAA;;;;CAIjC;AAGD,MAAM,qBAAqB,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM;AACxD,IAAA,IAAI,EAAE,CAAC;AACP,IAAA,QAAQ,EAAE,OAAO;IACjB,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;AAC3B,IAAA,QAAQ,EAAE,UAAU;AACrB,CAAA,CAAC,CAAC;AAEH,MAAM,eAAe,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM;AACxD,IAAA,sBAAsB,EAAE;QACtB,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI;QACzC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI;QAC9B,YAAY,EAAE,QAAQ;QACtB,QAAQ,EAAE,MAAM;QAChB,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;YAC9B,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;YAC9B,QAAQ,EAAE,UAAU;AACrB,SAAA;AACF,KAAA;AACD,IAAA,uBAAuB,EAAE;QACvB,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAC9B,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;YAC5B,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;AAC/B,SAAA;QACD,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;YAC9B,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC;AACjC,SAAA;AACF,KAAA;AACD,IAAA,oCAAoC,EAAE;QACpC,KAAK,EAAE,CAAA,EAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAA,EAAA,CAAI;AACrC,QAAA,OAAO,EAAE,CAAC;AACX,KAAA;AACD,IAAA,mCAAmC,EAAE;QACnC,OAAO,EAAE,CAAA,UAAA,EAAa,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAA,CAAE;AAChD,QAAA,aAAa,EAAE,CAAC;AACjB,KAAA;AACF,CAAA,CAAC,CAAC;AAEH,MAAM,kBAAkB,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM;AAC5D,IAAA,OAAO,EAAE,MAAM;AACf,IAAA,UAAU,EAAE,QAAQ;AACpB,IAAA,cAAc,EAAE,QAAQ;AACxB,IAAA,QAAQ,EAAE,QAAQ;AAClB,IAAA,YAAY,EAAE,KAAK;AACnB,IAAA,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI;AAC3C,IAAA,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;AACvB,IAAA,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IACxB,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;AAC9B,QAAA,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;AACvB,QAAA,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;AACxB,QAAA,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;AAC9B,KAAA;IACD,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;AAC9B,QAAA,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;AAChC,KAAA;AACD,IAAA,SAAS,EAAE;AACT,QAAA,OAAO,EAAE,GAAG;AACZ,QAAA,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI;AAC5C,KAAA;AACF,CAAA,CAAC,CAAC;AAEH,MAAM,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM;AACnD,IAAA,OAAO,EAAE,MAAM;AACf,IAAA,UAAU,EAAE,QAAQ;AACpB,IAAA,cAAc,EAAE,QAAQ;AACxB,IAAA,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI;AAC/B,IAAA,KAAK,EAAE,MAAM;AACb,IAAA,MAAM,EAAE,MAAM;AACd,IAAA,OAAO,EAAE;AACP,QAAA,QAAQ,EAAE,QAAQ;QAClB,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;AAC9B,YAAA,QAAQ,EAAE,SAAS;AACpB,SAAA;AACF,KAAA;AACF,CAAA,CAAC,CAAC;AAEH,MAAM,mBAAmB,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM;AACtD,IAAA,UAAU,EAAE,MAAM;AAClB,IAAA,OAAO,EAAE,MAAM;AACf,IAAA,UAAU,EAAE,QAAQ;IACpB,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IACrB,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;AAC9B,QAAA,GAAG,EAAE,CAAC;AACP,KAAA;AACF,CAAA,CAAC,CAAC;AAEH,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM;IAC/C,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IACvB,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IACxB,YAAY,EAAE,KAAK;IACnB,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI;AACzC,IAAA,OAAO,EAAE,MAAM;AACf,IAAA,UAAU,EAAE,QAAQ;AACpB,IAAA,cAAc,EAAE,QAAQ;AACxB,IAAA,UAAU,EAAE,CAAC;IACb,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;QAC9B,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QACvB,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;AACzB;AACF,CAAA,CAAC,CAAC;AAEH,MAAM,gBAAgB,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM;IAC1D,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI;IAC9B,UAAU,EAAE,GAAG;IACf,QAAQ,EAAE,UAAU;IACpB,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;QAC9B,QAAQ,EAAE,UAAU;AACrB,KAAA;AACF,CAAA,CAAC,CAAC;AAEH,MAAM,cAAc,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM;IACxD,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI;IAC/B,UAAU,EAAE,GAAG;AACf,IAAA,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IAC5B,QAAQ,EAAE,UAAU;IACpB,OAAO,EAAE,MAAM;IACf,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;QAC5B,OAAO,EAAE,QAAQ;AAClB,KAAA;IACD,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;QAC9B,QAAQ,EAAE,UAAU;AACpB,QAAA,OAAO,EAAE;AACV,KAAA;AACF,CAAA,CAAC,CAAC;AAEI,MAAM,MAAM,GAA0B,CAAC,EAC5C,QAAQ,GAAG,UAAU,EACrB,YAAY,GAAG,IAAI,EACnB,UAAU,EACV,OAAO,EACP,MAAM,EACN,aAAa,EACb,YAAY,EACZ,QAAQ,GACT,KAAI;AACH,IAAA,MAAM,KAAK,GAAG,QAAQ,EAAE;AACxB,IAAA,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAGC,cAAK,CAAC,QAAQ,CAA2B,IAAI,CAAC;AAC9E,IAAA,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAGA,cAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;AACxD,IAAA,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAGA,cAAK,CAAC,QAAQ,CAAuB,EAAE,CAAC;AACtE,IAAA,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAGA,cAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;AAE7D,IAAA,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;AACxD,IAAA,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAGA,cAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;IAErE,MAAM,eAAe,GAAGA,cAAK,CAAC,MAAM,CAA0B,IAAI,CAAC;IACnE,MAAM,cAAc,GAAGA,cAAK,CAAC,MAAM,CAA0B,IAAI,CAAC;IAClE,MAAM,eAAe,GAAGA,cAAK,CAAC,MAAM,CAAwB,IAAI,CAAC;IAGjE,MAAM,SAAS,GAAGA,cAAK,CAAC,MAAM,CAAwB,IAAI,CAAC;AAC3D,IAAA,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAGA,cAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;AAC1D,IAAA,MAAM,QAAQ,GAAG,YAAY,KAAK,QAAQ;IAE1C,MAAM,qBAAqB,GAAGA,cAAK,CAAC,MAAM,CAAwB,IAAI,CAAC;AACvE,IAAA,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAGA,cAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEnE,MAAM,YAAY,GAAGA,cAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IACpC,MAAM,WAAW,GAAGA,cAAK,CAAC,MAAM,CAAqB,SAAS,CAAC;IAC/D,MAAM,iBAAiB,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC;IACxC,MAAM,gBAAgB,GAAG,EAAE;AAE3B,IAAAA,cAAK,CAAC,eAAe,CAAC,MAAK;AACzB,QAAA,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,SAAS,CAAC,OAAO,EAAE,YAAY,IAAI,EAAE,CAAC;AAC3E,QAAA,MAAM,EAAE;AACR,QAAA,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,CAAC;QACzC,OAAO,MAAM,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC3D,CAAC,EAAE,EAAE,CAAC;;AAGN,IAAAA,cAAK,CAAC,eAAe,CAAC,MAAK;AACzB,QAAA,IAAI,MAAM;YAAE;AACZ,QAAA,IAAI,CAAC,gBAAgB,IAAI,CAAC,YAAY;YAAE;QACxC,oBAAoB,CAAC,CAAC,CAAC;IACzB,CAAC,EAAE,CAAC,MAAM,EAAE,gBAAgB,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;;AAGrD,IAAAA,cAAK,CAAC,eAAe,CAAC,MAAK;AACzB,QAAA,IAAI,MAAM;YAAE;AACZ,QAAA,IAAI,CAAC,gBAAgB,IAAI,CAAC,YAAY;YAAE;AAExC,QAAA,MAAM,GAAG,GAAG,qBAAqB,CAAC,MAAK;AACrC,YAAA,MAAM,EAAE,GAAG,qBAAqB,CAAC,OAAO;AACxC,YAAA,IAAI,CAAC,EAAE;gBAAE;AAET,YAAA,MAAM,IAAI,GAAG,EAAE,CAAC,qBAAqB,EAAE;YACvC,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,WAAW;AAEnD,YAAA,IAAI,UAAU,GAAG,CAAC,EAAE;AAClB,gBAAA,oBAAoB,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YACjD;AACF,QAAA,CAAC,CAAC;AAEJ,QAAA,OAAO,MAAM,oBAAoB,CAAC,GAAG,CAAC;IACxC,CAAC,EAAE,CAAC,MAAM,EAAE,gBAAgB,EAAE,YAAY,EAAE,iBAAiB,CAAC,CAAC;IAG7D,MAAM,iBAAiB,GAAG,MAAK;QAC7B,mBAAmB,CAAC,KAAK,CAAC;QAC1B,cAAc,CAAC,EAAE,CAAC;QAClB,UAAU,CAAC,EAAE,CAAC;QACd,eAAe,CAAC,KAAK,CAAC;AACtB,QAAA,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,OAAO,CAAC;AAC1C,IAAA,CAAC;IAED,MAAM,kBAAkB,GAAG,MAAK;QAC9B,mBAAmB,CAAC,IAAI,IAAG;AACzB,YAAA,MAAM,IAAI,GAAG,CAAC,IAAI;YAClB,IAAI,CAAC,IAAI,EAAE;;AAET,gBAAA,iBAAiB,EAAE;AACnB,gBAAA,OAAO,KAAK;YACd;;AAEA,YAAA,UAAU,CAAC,MAAM,cAAc,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;AACpD,YAAA,OAAO,IAAI;AACb,QAAA,CAAC,CAAC;AACJ,IAAA,CAAC;AAED,IAAA,MAAM,UAAU,GAAG,CAAC,KAA0C,KAAI;AAChE,QAAA,WAAW,CAAC,KAAK,CAAC,aAAa,CAAC;AAClC,IAAA,CAAC;IAED,MAAM,WAAW,GAAG,MAAK;QACvB,WAAW,CAAC,IAAI,CAAC;AACnB,IAAA,CAAC;AAED,IAAA,MAAM,SAAS,GAAG,OAAO,IAAY,KAAI;AACvC,QAAA,MAAM,GAAG,GAAG,EAAE,YAAY,CAAC,OAAO;QAElC,IAAI,CAAC,MAAM,EAAE;YACX,UAAU,CAAC,EAAE,CAAC;YACd,eAAe,CAAC,KAAK,CAAC;YACtB;QACF;AAEA,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE;QAC3B,IAAI,CAAC,OAAO,EAAE;YACZ,UAAU,CAAC,EAAE,CAAC;YACd,eAAe,CAAC,KAAK,CAAC;YACtB;QACF;AAEA,QAAA,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAElD,QAAA,IAAI,GAAG,KAAK,YAAY,CAAC,OAAO;AAAE,YAAA,OAAO;AAEzC,QAAA,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE;QAC1C,UAAU,CAAC,IAAI,CAAC;AAChB,QAAA,eAAe,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AAClC,IAAA,CAAC;AAED,IAAA,MAAM,aAAa,GAAG,CAAC,CAAsB,KAAI;AAC/C,QAAA,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,EAAE;YACrB,CAAC,CAAC,cAAc,EAAE;YAClB,SAAS,CAAC,WAAW,CAAC;QACxB;AACF,IAAA,CAAC;AAED,IAAA,MAAM,kBAAkB,GAAG,CAAC,KAAa,KAAI;QAC3C,cAAc,CAAC,KAAK,CAAC;AAErB,QAAA,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,OAAO,CAAC;AAExC,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE;AACjB,YAAA,SAAS,CAAC,EAAE,CAAC,CAAC;YACd;QACF;AAEA,QAAA,WAAW,CAAC,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,SAAS,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC;AACtE,IAAA,CAAC;AAID,IAAA,MAAM,iBAAiB,GAA+C,CAAC,CAAC,KAAI;QAC1E,CAAC,CAAC,cAAc,EAAE;QAClB,SAAS,CAAC,WAAW,CAAC;AACxB,IAAA,CAAC;AAED,IAAAA,cAAK,CAAC,SAAS,CAAC,MAAK;;AAEnB,QAAA,iBAAiB,EAAE;AACrB,IAAA,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;AAEd,IAAAA,cAAK,CAAC,SAAS,CAAC,MAAK;AACnB,QAAA,MAAM,OAAO,GAAG,CAAC,CAAa,KAAI;AAChC,YAAA,MAAM,CAAC,GAAG,CAAC,CAAC,MAAc;AAE1B,YAAA,MAAM,SAAS,GAAG,eAAe,CAAC,OAAO,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC;AACrE,YAAA,MAAM,QAAQ,GAAG,cAAc,CAAC,OAAO,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC;AAEnE,YAAA,IAAI,CAAC,SAAS,IAAI,CAAC,QAAQ,EAAE;gBAC3B,eAAe,CAAC,KAAK,CAAC;YACxB;AACF,QAAA,CAAC;AAED,QAAA,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC;QAC3C,OAAO,MAAM,QAAQ,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC;IAC7D,CAAC,EAAE,EAAE,CAAC;IAEN,MAAM,mBAAmB,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,iBAAiB,CAAC;AAI/D,IAAA,MAAM,WAAW,GAAG,CAAC,EACnB,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,MAAM,GAMP,KAAI;AACH,QAAA,MAAM,SAAS,GAAG,IAAI,KAAK,SAAS;AACpC,QAAA,QACEF,GAAA,CAAC,KAAK,EAAA,EACJ,GAAG,EAAE,QAAQ,EACb,SAAS,EAAE,CAAC,EAEZ,EAAE,EAAE;AACF,gBAAA,EAAE,EAAE,CAAC;AACL,gBAAA,MAAM,EAAE,mBAAmB;AAC3B,gBAAA,SAAS,EAAE,MAAM;AACjB,gBAAA,eAAe,EAAE,SAAS;AAE1B,gBAAA,IAAI;AACF,sBAAE;AACE,wBAAA,SAAS,EACP,KAAK,CAAC,MAAM,GAAG;8BACX,iBAAiB,GAAG;AACtB,8BAAE,MAAM;AACZ,wBAAA,YAAY,EAAE,MAAM;AACpB,wBAAA,SAAS,EAAE,QAAQ;AACnB,wBAAA,SAAS,EAAE,KAAK,CAAC,MAAM,GAAG,iBAAiB,GAAG,MAAM,GAAG,QAAQ;AAC/D,wBAAA,EAAE,EAAE,GAAG;AACR;AACH,sBAAE;wBACE,QAAQ,EAAE,QAAQ;AAClB,wBAAA,EAAE,EAAE,CAAC;qBACN,CAAC;AACP,aAAA,EAAA,QAAA,EAEDA,IAAC,IAAI,EAAA,EAAC,KAAK,EAAA,IAAA,EAAC,cAAc,EAAA,IAAA,EAAA,QAAA,EACvB,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,MACrBA,GAAA,CAAC,cAAc,EAAA,EAEb,UAAU,EAAC,YAAY,EACvB,OAAO,EAAE,MAAM,MAAM,CAAC,IAAI,CAAC,EAC3B,EAAE,EAAE;AACF,wBAAA,EAAE,EAAE,GAAG;AACP,wBAAA,EAAE,EAAE,CAAC;AACL,wBAAA,eAAe,EAAE,SAAS;;AAG1B,wBAAA,IAAI;AACF,8BAAE;AACF,8BAAE;AACE,gCAAA,YAAY,EACV,KAAK,KAAK,KAAK,CAAC,MAAM,GAAG;AACvB,sCAAE;AACF,sCAAE,+BAA+B;6BACtC,CAAC;AAEN,wBAAA,SAAS,EAAE,EAAE,eAAe,EAAE,SAAS,EAAE;AACzC,wBAAA,8BAA8B,EAAE;AAC9B,4BAAA,cAAc,EAAE,WAAW;AAC3B,4BAAA,KAAK,EAAE,SAAS;AACjB,yBAAA;AACF,qBAAA,EAAA,QAAA,EAEDA,IAAC,YAAY,EAAA,EACX,OAAO,EAAE,IAAI,CAAC,KAAK,EACnB,SAAS,EAAE,iBAAiB,CAAC,IAAI,CAAC,WAAY,CAAC,EAC/C,sBAAsB,EAAE;AACtB,4BAAA,SAAS,EAAE,qBAAqB;AAChC,4BAAA,UAAU,EAAE,GAAG;AACf,4BAAA,QAAQ,EAAE,MAAM;AAChB,4BAAA,KAAK,EAAE,SAAS;yBACjB,EACD,wBAAwB,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,EAAE,EAAA,CACrD,EAAA,EAnCG,KAAK,CAoCK,CAClB,CAAC,EAAA,CACG,EAAA,CACD;AAEZ,IAAA,CAAC;AAGD,IAAA,QACED,IAAA,CAAC,GAAG,EAAA,EAAA,QAAA,EAAA,CACFA,KAAC,YAAY,EAAA,EAAC,GAAG,EAAE,SAAS,EAAA,QAAA,EAAA,CACzB,QAAQ,KACPA,IAAA,CAAAI,QAAA,EAAA,EAAA,QAAA,EAAA,CACEH,GAAA,CAAC,UAAU,EAAA,EACT,aAAa,EAAA,IAAA,EACb,OAAO,EAAE,UAAU,EACnB,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAC5C,IAAI,EAAC,OAAO,EAAA,QAAA,EAEZA,GAAA,CAAC,WAAW,EAAA,EAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,GAAI,EAAA,CAC1C,EAEbA,GAAA,CAAC,OAAO,IACN,WAAW,EAAC,UAAU,EACtB,EAAE,EAAE;AACF,oCAAA,KAAK,EAAE,SAAS;AAChB,oCAAA,gBAAgB,EAAE,CAAC;oCACnB,OAAO,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE;AACrC,iCAAA,EAAA,CACD,CAAA,EAAA,CACD,CACJ,EAEDA,GAAA,CAAC,iBAAiB,EAAA,EAAA,QAAA,EAChBA,GAAA,CAAC,cAAc,EAAA,EAAA,QAAA,EACbA,GAAA,CAAC,aAAa,EAAA,EAAA,CAAG,EAAA,CACF,GACC,EAGnB,QAAQ,IAAI,MAAM,KACjBD,IAAA,CAAC,qBAAqB,eACpBC,GAAA,CAAC,eAAe,EAAA,EACd,WAAW,EAAC,qBAAqB,EACjC,OAAO,EAAC,UAAU,EAClB,SAAS,EAAA,IAAA,EACT,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,eAAe,EACzB,GAAG,EAAE,eAAe,EACpB,QAAQ,EAAE,CAAC,CAAC,KAAK,kBAAkB,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACnD,SAAS,EAAE,aAAa,EACxB,UAAU,EAAE;AACV,oCAAA,YAAY,GACVA,GAAA,CAAC,kBAAkB,EAAA,EAAC,OAAO,EAAE,iBAAiB,EAAA,QAAA,EAC5CA,GAAA,CAAC,gBAAgB,EAAA,EAAA,QAAA,EACfA,GAAA,CAAC,aAAa,EAAA,EAAA,CAAG,EAAA,CACA,GACA,CACtB;AACF,iCAAA,EAAA,CACD,EAEFA,GAAA,CAAC,MAAM,EAAA,EACL,IAAI,EAAE,YAAY,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,OAAO,EACrE,QAAQ,EAAE,eAAe,CAAC,OAAO,EACjC,SAAS,EAAC,cAAc,EACxB,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,eAAe,CAAC,OAAO,EAAE,WAAW,EAAE,EAAA,QAAA,EAEpEA,GAAA,CAAC,WAAW,EAAA,EACV,IAAI,EAAC,SAAS,EACd,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,CAAC,IAAI,KAAI;AACf,wCAAA,aAAa,GAAG,IAAI,CAAC;wCACrB,eAAe,CAAC,KAAK,CAAC;oCACxB,CAAC,EAAA,CACD,EAAA,CACK,CAAA,EAAA,CACa,CACzB,EAEDD,KAAC,mBAAmB,EAAA,EAAA,QAAA,EAAA,CAEjB,QAAQ,IAAI,CAAC,MAAM,KAClBC,GAAA,CAAC,kBAAkB,EAAA,EACjB,aAAa,EAAA,IAAA,EACb,OAAO,EAAE,kBAAkB,EAC3B,EAAE,EAAE;oCACF,OAAO,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE;AACnC,oCAAA,eAAe,EAAE,WAAW;iCAC7B,EAAA,QAAA,EAEDA,GAAA,CAAC,gBAAgB,EAAA,EAAA,QAAA,EACfA,GAAA,CAAC,aAAa,EAAA,EAAA,CAAG,EAAA,CACA,EAAA,CACA,CACtB,EAEDD,IAAA,CAAC,UAAU,EAAA,EAAC,OAAO,EAAE,UAAU,EAAE,aAAa,mBAC5CC,GAAA,CAAC,YAAY,EAAA,EAAA,QAAA,EACXA,GAAA,CAAC,gBAAgB,EAAA,EAAA,QAAA,EAAE,YAAY,EAAA,CAAoB,EAAA,CACtC,EACfA,GAAA,CAAC,cAAc,EAAA,EAAA,QAAA,EAAE,QAAQ,EAAA,CAAkB,CAAA,EAAA,CAChC,CAAA,EAAA,CACO,EAEtBA,GAAA,CAAC,WAAW,IACV,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,MAAK;AACZ,4BAAA,OAAO,EAAE;AACT,4BAAA,WAAW,EAAE;wBACf,CAAC,EAAA,CACD,CAAA,EAAA,CACW,EAGd,CAAC,MAAM,KACNA,GAAA,CAAC,QAAQ,EAAA,EAAC,EAAE,EAAE,QAAQ,IAAI,gBAAgB,EAAE,aAAa,EAAA,IAAA,EAAC,OAAO,EAAE,GAAG,EAAA,QAAA,EACpED,IAAA,CAAC,GAAG,EAAA,EACF,EAAE,EAAE;wBACF,OAAO,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE;AACpC,wBAAA,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI;AAC3C,wBAAA,EAAE,EAAE,CAAC;AACL,wBAAA,EAAE,EAAE,GAAG;AACP,wBAAA,EAAE,EAAE,CAAC;AACN,qBAAA,EAAA,QAAA,EAAA,CAEDA,IAAA,CAAC,GAAG,EAAA,EAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAA,QAAA,EAAA,CACxDC,GAAA,CAAC,eAAe,EAAA,EACd,WAAW,EAAC,qBAAqB,EACjC,OAAO,EAAC,UAAU,EAClB,SAAS,EAAA,IAAA,EACT,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,cAAc,EACxB,QAAQ,EAAE,CAAC,CAAC,KAAK,kBAAkB,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACnD,SAAS,EAAE,aAAa,EAAA,CACxB,EAEFA,IAAC,UAAU,EAAA,EAAC,OAAO,EAAE,iBAAiB,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,EAAA,QAAA,EAC7EA,GAAA,CAAC,YAAY,EAAA,EAAA,CAAG,EAAA,CACL,CAAA,EAAA,CACT,EAEL,YAAY,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,KAC7CA,GAAA,CAAC,GAAG,EAAA,EAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAA,QAAA,EACjBA,GAAA,CAAC,WAAW,IACV,IAAI,EAAC,QAAQ,EACb,KAAK,EAAE,mBAAmB,EAC1B,QAAQ,EAAE,qBAAqB,EAC/B,MAAM,EAAE,CAAC,IAAI,KAAI;AACf,oCAAA,aAAa,GAAG,IAAI,CAAC;oCACrB,eAAe,CAAC,KAAK,CAAC;gCACxB,CAAC,EAAA,CACD,GACE,CACP,CAAA,EAAA,CACG,GACG,CACZ,CAAA,EAAA,CACG;AAEV;;;;"}
1
+ {"version":3,"file":"Header.js","sources":["../../../../src/components/Header.tsx"],"sourcesContent":["import React, { ChangeEvent } from 'react';\r\nimport {\r\n Box,\r\n styled,\r\n Typography,\r\n TextField,\r\n IconButton,\r\n Divider,\r\n Popper,\r\n Paper,\r\n List,\r\n ListItemText,\r\n ListItemButton,\r\n Collapse,\r\n useMediaQuery,\r\n CircularProgress,\r\n InputAdornment,\r\n} from '@mui/material';\r\nimport { useTheme } from '../ThemeProvider';\r\nimport { MenuRounded, SearchRounded, CloseRounded } 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?: (query: string) => Promise<HeaderSearchResult[]> | HeaderSearchResult[];\r\n onResultClick?: (result: HeaderSearchResult) => void;\r\n signUpStatus: SignUpStatus;\r\n resetKey?: string | number;\r\n}\r\n\r\nexport interface HeaderSearchResult {\r\n label: string;\r\n description?: string;\r\n value: string;\r\n}\r\n\r\nfunction renderDescription(desc: string): React.ReactNode {\r\n if (!desc) return null;\r\n\r\n const lines = desc.split(/\\r?\\n/).filter(line => line.trim().length > 0);\r\n\r\n const bulletLines = lines.filter(line => line.trim().startsWith(\"* \"));\r\n const nonBulletLines = lines.filter(line => !line.trim().startsWith(\"* \"));\r\n\r\n return (\r\n <div style={{ fontSize: 14, lineHeight: 1.5 }}>\r\n {nonBulletLines.length > 0 && (\r\n <div\r\n style={{\r\n whiteSpace: \"pre-line\",\r\n marginBottom: bulletLines.length > 0 ? 6 : 0, // spacing above bullets\r\n }}\r\n >\r\n {nonBulletLines.join(\"\\n\")}\r\n </div>\r\n )}\r\n\r\n {bulletLines.length > 0 && (\r\n <ul style={{ margin: 0, paddingLeft: 18 }}>\r\n {bulletLines.map((line, idx) => (\r\n <li key={idx}>\r\n {line.trim().replace(/^\\*\\s*/, \"\")}\r\n </li>\r\n ))}\r\n </ul>\r\n )}\r\n </div>\r\n );\r\n}\r\n\r\nconst StyledHeader = styled(Box)(({ theme }) => ({\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'flex-start',\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: '45rem',\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 marginLeft: 'auto',\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 onResultClick,\r\n signUpStatus,\r\n resetKey,\r\n}) => {\r\n const theme = useTheme();\r\n const [anchorEl, setAnchorEl] = React.useState<HTMLButtonElement | null>(null);\r\n const [searchQuery, setSearchQuery] = React.useState('');\r\n const [results, setResults] = React.useState<HeaderSearchResult[]>([]);\r\n const [openDropdown, setOpenDropdown] = React.useState(false);\r\n\r\n const isMdUp = useMediaQuery(theme.breakpoints.up('md'));\r\n const [mobileSearchOpen, setMobileSearchOpen] = React.useState(false);\r\n\r\n const desktopInputRef = React.useRef<HTMLInputElement | null>(null);\r\n const mobileInputRef = React.useRef<HTMLInputElement | null>(null);\r\n const desktopFieldRef = React.useRef<HTMLDivElement | null>(null);\r\n\r\n\r\n const [isSearching, setIsSearching] = React.useState(false);\r\n const headerRef = React.useRef<HTMLDivElement | null>(null);\r\n const isActive = signUpStatus === 'Active';\r\n\r\n const mobileResultsPaperRef = React.useRef<HTMLDivElement | null>(null);\r\n const [mobileResultLimit, setMobileResultLimit] = React.useState(5);\r\n\r\n const searchSeqRef = React.useRef(0);\r\n const debounceRef = React.useRef<number | undefined>(undefined);\r\n const maxVisibleResults = isMdUp ? 5 : 3;\r\n const approxItemHeight = 80; \r\n\r\n // Start at 5 each time results open/change on mobile\r\n React.useLayoutEffect(() => {\r\n if (isMdUp) return;\r\n if (!mobileSearchOpen || !openDropdown) return;\r\n setMobileResultLimit(5);\r\n }, [isMdUp, mobileSearchOpen, openDropdown, results]);\r\n\r\n // If the dropdown would run off-screen, reduce how many results we render\r\n React.useLayoutEffect(() => {\r\n if (isMdUp) return;\r\n if (!mobileSearchOpen || !openDropdown) return;\r\n\r\n const raf = requestAnimationFrame(() => {\r\n const el = mobileResultsPaperRef.current;\r\n if (!el) return;\r\n\r\n const rect = el.getBoundingClientRect();\r\n const overflowPx = rect.bottom - window.innerHeight;\r\n\r\n if (overflowPx > 0) {\r\n setMobileResultLimit((n) => Math.max(1, n - 1));\r\n }\r\n });\r\n\r\n return () => cancelAnimationFrame(raf);\r\n}, [isMdUp, mobileSearchOpen, openDropdown, mobileResultLimit]);\r\n\r\n\r\n const closeMobileSearch = () => {\r\n setMobileSearchOpen(false);\r\n setSearchQuery('');\r\n setResults([]);\r\n setOpenDropdown(false);\r\n window.clearTimeout(debounceRef.current);\r\n };\r\n\r\n const toggleMobileSearch = () => {\r\n setMobileSearchOpen(prev => {\r\n const next = !prev;\r\n if (!next) {\r\n // cancelling\r\n closeMobileSearch();\r\n return false;\r\n }\r\n // opening\r\n setTimeout(() => mobileInputRef.current?.focus(), 0);\r\n return true;\r\n });\r\n };\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 const runSearch = async (term: string) => {\r\n if (!search || !term.trim()) {\r\n searchSeqRef.current += 1;\r\n setIsSearching(false);\r\n setResults([]);\r\n setOpenDropdown(false);\r\n return;\r\n }\r\n\r\n const seq = ++searchSeqRef.current;\r\n setIsSearching(true);\r\n try {\r\n const res = await Promise.resolve(search(term.trim()));\r\n\r\n if (seq !== searchSeqRef.current) return; // Fixes debounce race condition causing old searches to appear after newer\r\n\r\n const list = Array.isArray(res) ? res : [];\r\n setResults(list);\r\n setOpenDropdown(true); // display dropdown no matter what, if no results will display no results message\r\n } finally {\r\n if (seq === searchSeqRef.current) setIsSearching(false);\r\n }\r\n };\r\n\r\n const handleKeyDown = (e: React.KeyboardEvent) => {\r\n if (e.key === 'Enter') {\r\n e.preventDefault();\r\n runSearch(searchQuery);\r\n }\r\n };\r\n\r\n const handleSearchChange = (value: string) => {\r\n setSearchQuery(value);\r\n\r\n window.clearTimeout(debounceRef.current);\r\n\r\n if (!value.trim()) {\r\n runSearch(''); // Immediately run if no search to guarantee removal of listed results\r\n return;\r\n }\r\n\r\n debounceRef.current = window.setTimeout(() => runSearch(value), 150);\r\n };\r\n\r\n const handleSearchClick: React.MouseEventHandler<HTMLButtonElement> = (e) => {\r\n e.preventDefault();\r\n runSearch(searchQuery);\r\n };\r\n\r\n React.useEffect(() => {\r\n // When parent says the route changed (resetKey changes), reset search UI\r\n closeMobileSearch();\r\n }, [resetKey]);\r\n\r\n React.useEffect(() => {\r\n const handler = (e: MouseEvent) => {\r\n const t = e.target as Node;\r\n\r\n const inDesktop = desktopInputRef.current?.parentElement?.contains(t);\r\n const inMobile = mobileInputRef.current?.parentElement?.contains(t);\r\n\r\n if (!inDesktop && !inMobile) {\r\n setOpenDropdown(false);\r\n }\r\n };\r\n\r\n document.addEventListener('click', handler);\r\n return () => document.removeEventListener('click', handler);\r\n }, []);\r\n\r\n const mobileResultsToShow = results.slice(0, mobileResultLimit);\r\n\r\n type ResultsMode = 'desktop' | 'mobile';\r\n\r\n const ResultsList = ({\r\n items,\r\n mode,\r\n paperRef,\r\n onPick,\r\n }: {\r\n items: HeaderSearchResult[];\r\n mode: ResultsMode;\r\n paperRef?: React.Ref<HTMLDivElement>;\r\n onPick: (item: HeaderSearchResult) => void;\r\n }) => {\r\n const isDesktop = mode === 'desktop';\r\n return (\r\n <Paper\r\n ref={paperRef}\r\n elevation={0}\r\n \r\n sx={{\r\n mt: 1,\r\n border: '1px solid #4D3019',\r\n boxShadow: 'none',\r\n backgroundColor: '#FEFDF7',\r\n\r\n ...(isDesktop\r\n ? {\r\n maxHeight:\r\n items.length > maxVisibleResults\r\n ? maxVisibleResults * approxItemHeight\r\n : 'auto',\r\n borderRadius: '12px',\r\n overflowX: 'hidden',\r\n overflowY: items.length > maxVisibleResults ? 'auto' : 'hidden',\r\n pb: 1.5,\r\n }\r\n : {\r\n overflow: 'hidden', // no scroll, no scrollbar\r\n pb: 0,\r\n }),\r\n }}\r\n >\r\n <List dense disablePadding>\r\n {items.map((item, index) => (\r\n <ListItemButton\r\n key={index}\r\n alignItems=\"flex-start\"\r\n onClick={() => onPick(item)}\r\n sx={{\r\n py: 1.5,\r\n px: 2,\r\n backgroundColor: '#FEFDF7',\r\n\r\n // dividers only on mobile (your current mobile styling)\r\n ...(isDesktop\r\n ? {}\r\n : {\r\n borderBottom:\r\n index === items.length - 1\r\n ? 'none'\r\n : '1px solid rgba(77,48,25,0.18)',\r\n }),\r\n\r\n '&:hover': { backgroundColor: '#F9F0FC' },\r\n '&:hover .search-result-title': {\r\n textDecoration: 'underline',\r\n color: '#AD46FF',\r\n },\r\n }}\r\n >\r\n <ListItemText\r\n primary={item.label}\r\n secondary={renderDescription(item.description!)}\r\n primaryTypographyProps={{\r\n className: 'search-result-title',\r\n fontWeight: 700,\r\n fontSize: '16px',\r\n color: '#4D3019',\r\n }}\r\n secondaryTypographyProps={{ component: 'div', mt: 1 }}\r\n />\r\n </ListItemButton>\r\n ))}\r\n </List>\r\n </Paper>\r\n );\r\n };\r\n\r\n\r\n return (\r\n <Box>\r\n <StyledHeader ref={headerRef}>\r\n {isActive && (\r\n <>\r\n <IconButton\r\n disableRipple\r\n onClick={toggleMenu}\r\n sx={{ display: { xs: 'block', md: 'none' } }}\r\n size=\"large\"\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\r\n <StyledLogoWrapper>\r\n <StyledLogoIcon>\r\n <StyledLogoSvg />\r\n </StyledLogoIcon>\r\n </StyledLogoWrapper>\r\n\r\n {/* Desktop search only */}\r\n {isActive && isMdUp && (\r\n <StyledSearchContainer>\r\n <StyledTextField\r\n placeholder=\"Search for a policy\"\r\n variant=\"outlined\"\r\n fullWidth\r\n value={searchQuery}\r\n inputRef={desktopInputRef}\r\n ref={desktopFieldRef}\r\n onChange={(e) => handleSearchChange(e.target.value)}\r\n onKeyDown={handleKeyDown}\r\n InputProps={{\r\n endAdornment: (\r\n <InputAdornment position=\"end\">\r\n <Box sx = {{ mr: 1}}>\r\n {isSearching ? <CircularProgress size={24} /> : null} \r\n </Box>\r\n <StyledSearchButton onClick={handleSearchClick}>\r\n <StyledSearchIcon>\r\n <SearchRounded />\r\n </StyledSearchIcon>\r\n </StyledSearchButton>\r\n </InputAdornment>\r\n ),\r\n }}\r\n />\r\n\r\n <Popper\r\n open={openDropdown && !!desktopFieldRef.current}\r\n anchorEl={desktopFieldRef.current}\r\n placement=\"bottom-start\"\r\n style={{ zIndex: 1300, width: desktopFieldRef.current?.offsetWidth }}\r\n >\r\n {!isSearching && results.length === 0 ? (\r\n <Paper\r\n elevation={0}\r\n sx={{\r\n mt: 1,\r\n border: '1px solid #4D3019',\r\n boxShadow: 'none',\r\n backgroundColor: '#FEFDF7',\r\n borderRadius: '12px',\r\n px: 2,\r\n py: 1.5,\r\n }}\r\n >\r\n <Typography sx={{ fontSize: '14px', color: '#4D3019' }}>\r\n No results found\r\n </Typography>\r\n </Paper>\r\n ) : (\r\n <ResultsList\r\n mode=\"desktop\"\r\n items={results}\r\n onPick={(item) => {\r\n onResultClick?.(item);\r\n setOpenDropdown(false);\r\n }}\r\n />\r\n )}\r\n </Popper>\r\n </StyledSearchContainer>\r\n )}\r\n\r\n <StyledUserContainer>\r\n {/* Mobile search button only */}\r\n {isActive && !isMdUp && (\r\n <StyledSearchButton\r\n disableRipple\r\n onClick={toggleMobileSearch}\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\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={() => {\r\n signOut();\r\n handleClose();\r\n }}\r\n />\r\n </StyledHeader>\r\n\r\n {/* Mobile panel only */}\r\n {!isMdUp && (\r\n <Collapse in={isActive && mobileSearchOpen} unmountOnExit timeout={200}>\r\n <Box\r\n sx={{\r\n display: { xs: 'block', md: 'none' },\r\n backgroundColor: theme.palette.primary.main,\r\n px: 2,\r\n pt: 1.5,\r\n pb: 2,\r\n }}\r\n >\r\n <Box sx={{ display: 'flex', gap: 1, alignItems: 'center' }}>\r\n <StyledTextField\r\n placeholder=\"Search for a policy\"\r\n variant=\"outlined\"\r\n fullWidth\r\n value={searchQuery}\r\n inputRef={mobileInputRef}\r\n onChange={(e) => handleSearchChange(e.target.value)}\r\n onKeyDown={handleKeyDown}\r\n InputProps={{\r\n endAdornment: (\r\n <InputAdornment position=\"end\">\r\n {isSearching ? <CircularProgress size={18} /> : null}\r\n </InputAdornment>\r\n )\r\n }}\r\n />\r\n\r\n <IconButton onClick={closeMobileSearch} sx={{ color: theme.palette.light.main }}>\r\n <CloseRounded />\r\n </IconButton>\r\n </Box>\r\n {openDropdown && (\r\n <Box sx={{ mx: -2 }}>\r\n {!isSearching && results.length === 0 && searchQuery.trim() ? (\r\n <Paper\r\n elevation={0}\r\n sx={{\r\n mt: 1,\r\n border: '1px solid #4D3019',\r\n boxShadow: 'none',\r\n backgroundColor: '#FEFDF7',\r\n px: 2,\r\n py: 1.5,\r\n }}\r\n >\r\n <Typography sx={{ fontSize: '14px', color: '#4D3019' }}>\r\n No results found\r\n </Typography>\r\n </Paper>\r\n ) : (\r\n mobileResultsToShow.length > 0 && (\r\n <ResultsList\r\n mode=\"mobile\"\r\n items={mobileResultsToShow}\r\n paperRef={mobileResultsPaperRef}\r\n onPick={(item) => {\r\n onResultClick?.(item);\r\n setOpenDropdown(false);\r\n }}\r\n />\r\n )\r\n )}\r\n </Box>\r\n )}\r\n </Box>\r\n </Collapse>\r\n )}\r\n </Box>\r\n );\r\n};"],"names":["_jsxs","_jsx","Logo","React","_Fragment"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { __exports as lib } from '../../../_virtual/index4.js';
1
+ import { __exports as lib } from '../../../_virtual/index3.js';
2
2
  import { __require as requireLib$1 } from '../../domelementtype/lib/index.js';
3
3
  import { __require as requireNode } from './node.js';
4
4
 
@@ -1,4 +1,4 @@
1
- import { __exports as lib } from '../../../_virtual/index3.js';
1
+ import { __exports as lib } from '../../../_virtual/index4.js';
2
2
  import { __require as requireHtmlToDom } from './server/html-to-dom.js';
3
3
  import { __require as requireTypes } from './types.js';
4
4
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ece-docs-components",
3
- "version": "1.0.55",
3
+ "version": "1.0.56",
4
4
  "type": "module",
5
5
  "main": "./dist/cjs/index.js",
6
6
  "module": "./dist/esm/index.js",