ece-docs-components 1.0.87 → 1.0.89

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.
Files changed (38) hide show
  1. package/dist/cjs/_virtual/index8.js +2 -2
  2. package/dist/cjs/_virtual/index9.js +2 -2
  3. package/dist/cjs/ae8c1be92c68965f.svg +16 -0
  4. package/dist/cjs/components/Alert.js +28 -39
  5. package/dist/cjs/components/Alert.js.map +1 -1
  6. package/dist/cjs/components/Button.js +4 -4
  7. package/dist/cjs/components/Button.js.map +1 -1
  8. package/dist/cjs/components/Header.js +3 -1
  9. package/dist/cjs/components/Header.js.map +1 -1
  10. package/dist/cjs/components/Modal.js +36 -22
  11. package/dist/cjs/components/Modal.js.map +1 -1
  12. package/dist/cjs/components/NoteBox.js +17 -42
  13. package/dist/cjs/components/NoteBox.js.map +1 -1
  14. package/dist/cjs/images/LIGHTN_PrimaryLogo_Cream.svg.js +39 -0
  15. package/dist/cjs/images/LIGHTN_PrimaryLogo_Cream.svg.js.map +1 -0
  16. package/dist/cjs/node_modules/domhandler/lib/index.js +1 -1
  17. package/dist/cjs/node_modules/domutils/lib/index.js +1 -1
  18. package/dist/cjs/node_modules/html-dom-parser/lib/index.js +1 -1
  19. package/dist/cjs/node_modules/style-to-object/cjs/index.js +1 -1
  20. package/dist/cjs/themes/ECETheme.js +179 -205
  21. package/dist/cjs/themes/ECETheme.js.map +1 -1
  22. package/dist/esm/ae8c1be92c68965f.svg +16 -0
  23. package/dist/esm/components/Alert.js +28 -39
  24. package/dist/esm/components/Alert.js.map +1 -1
  25. package/dist/esm/components/Button.js +4 -4
  26. package/dist/esm/components/Button.js.map +1 -1
  27. package/dist/esm/components/Header.js +3 -1
  28. package/dist/esm/components/Header.js.map +1 -1
  29. package/dist/esm/components/Modal.js +36 -22
  30. package/dist/esm/components/Modal.js.map +1 -1
  31. package/dist/esm/components/NoteBox.js +18 -43
  32. package/dist/esm/components/NoteBox.js.map +1 -1
  33. package/dist/esm/images/LIGHTN_PrimaryLogo_Cream.svg.js +18 -0
  34. package/dist/esm/images/LIGHTN_PrimaryLogo_Cream.svg.js.map +1 -0
  35. package/dist/esm/theme-types.d.ts +206 -0
  36. package/dist/esm/themes/ECETheme.js +179 -205
  37. package/dist/esm/themes/ECETheme.js.map +1 -1
  38. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var cjs = {};
3
+ var lib = {};
4
4
 
5
- exports.__exports = cjs;
5
+ exports.__exports = lib;
6
6
  //# sourceMappingURL=index8.js.map
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var lib = {};
3
+ var cjs = {};
4
4
 
5
- exports.__exports = lib;
5
+ exports.__exports = cjs;
6
6
  //# sourceMappingURL=index9.js.map
@@ -0,0 +1,16 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1061.34 240.99">
3
+ <defs>
4
+ <style>
5
+ .cls-1 {
6
+ fill: #fdfcf0;
7
+ }
8
+ </style>
9
+ </defs>
10
+ <path class="cls-1" d="M5.19,2.68c15.19,1.11,33.54-2.28,48.35-.25,9.81,1.34,6.18,13.56,6.65,22.17,1.38,25.54.76,53.03.09,78.85-.47,17.93-.73,36.97,1.03,54.91,1.49,15.17,8.41,12.19,17,11.98,16.53-.39,39.6-1.67,55.8.05,6.5.69,8.92,1.36,10.99,8.05,2.98,9.62,3.8,36.37,3.91,46.8.2,18.22-49.96,14.64-58.28,14.45-21.26-.48-43.15,1.09-64.09-1.86-15.98-2.25-22.04-20.17-23.19-36.49C.24,155.61-.59,106.19.39,60.45.72,44.71-.19,25.55,1.35,10.19c.32-3.14,1.2-6.1,3.84-7.51"/>
11
+ <path class="cls-1" d="M618.82,96.63c2.15-2.57,1.28-27.37,1.3-32.66,0-1.67-2.14-37.81-.58-52.87.52-5.05,3.4-8.24,7.44-8.82,9.33-1.34,28.51-1.67,40.21,0,6.93.99,6.97,6.88,7.42,13.77,2.48,37.81,1.39,76.91,1.82,114.88.31,27.41,1.33,54.45-.05,81.79-.46,9.02,2.23,25.12-8.64,27.13-7.77,1.44-18.81,1.28-26.61.73-4.18-.29-16.82-.73-19.2-4.55-.93-1.49-1.06-3.15-1.2-4.92-1.89-24.12,1.44-51.71.05-76.21-.26-3.53-3.07-4.29-5.66-4.57-16.24-1.8-32.31.14-49.13-.53-3.98-.16-16.07-2.07-17.2,4.46-.27,1.59-.54,5.21-.64,7-1.24,22.35,2.45,47.28-.03,69.06-1.06,9.27-8.74,7.95-13.61,8.12-5.39.19-11.73-.18-17.26.08-12.23.57-18.57,2.15-19.95-14.49-2.12-25.54-1.45-53.82-1.77-79.69-.52-42.71.29-85.47,0-128.32-.04-6.86-2.35-11.53,5.69-12.94,12.38-2.17,27.6-1.2,37.43-.07,5.24.6,7.38,7.02,7.74,11.64,1.64,21.55,1.4,45.53,2.41,67.65.34,7.4-2.36,15.37,6.21,16.62,5.67.82,40.94,1.36,52.11.72,2.83-.16,10.02-.96,11.73-3.01"/>
12
+ <path class="cls-1" d="M958.39,64.19c-19.53,18.63-14.25,78.54-14.36,104.88-.05,11.35-.87,22.93-.77,34.42.08,9.34,1.62,19.12.77,28.56-.3,3.35-.96,6.1-4.39,7.18-6.81,2.14-13.44.56-20.02.45-8.79-.15-31.08,3.55-32.15-8.37-2.72-30.17-.64-118.55-.62-120.11.39-34.62,1.13-69.33,2.92-103.88,1.02-3.63,16.62-5.33,19.93-5.63,19.44-1.8,41.79.04,61.57-.71,16.7-.64,32.24-3.6,48.2,5.29,28.63,15.96,35.93,43.75,37.36,75.58,1.62,36.15.31,73.28,2.06,109.18.56,11.45,3.44,30.06,2.11,41.46-1.25,10.77-20.51,7.33-23.96,7.63-8.68.74-17.19-.39-26.11-.6-12.33-.29-9.87-16.93-10.34-25.81-.79-14.91-1.35-30.43-.73-45.44.15-3.6-.79-27.11-1.38-34.4-1.26-15.57-1.93-56.98-13.5-67.32-6.23-5.57-20.07-8.59-26.59-2.36"/>
13
+ <path class="cls-1" d="M816.02,67.16c-.97.63,3.49,61.59,2.56,88.18-.71,20.33-.45,40.83-1.41,61.15-.38,8.01,2.05,22.43-8.4,23.47-12.4,1.23-28.75-.94-41.35-.1-6.76-1.02-5.42-16.57-5.8-21.89-2.86-40.84-1.7-84.48-2.08-126.03-.05-5.4.5-22.05-.88-26.38-.74-2.35-35.04,2.8-47.09,1.53-3.23-.34-8.67-1.42-8.92-5.49-.3-4.83-4.47-54.74,1.57-58.48,4.71-2.92,71.46-1.32,102.17-2.56,11.97-.48,35.92-1.5,46.69,1.69,7.51,2.23,9.81,7.76,10.45,15.53,1.22,15,1.16,28.83,1.36,44,.05,3.91-2.05,5.72-5.75,5.39h-43.11Z"/>
14
+ <path class="cls-1" d="M179.6,235.42c-7.05-6.96-4.84-31.79-5.18-41.72-.61-17.82-.86-34.31-.71-52.11.39-44.12.88-88.24.83-132.43,1.97-8.68,21.61-6.04,28.53-6.11,8.52-.09,14.07-1.3,22.99,1,8.39,2.16,10.79,12.88,11.32,20.44,2.05,29.28-2.61,60.75-.77,90.31.57,35.12,2.3,70.62.71,105.69-.2,4.49,1.85,17.63-3.88,18.7-3.91.73-11.16-.08-15.57-.01-4.52.07-8.15.07-12.68,0-7.09-.12-20.37,1.4-25.59-3.75"/>
15
+ <path class="cls-1" d="M346.4,169.68c12.88,11.7,38.24,13.17,53.44,1.39,10-7.75,13.85-31.79,5.01-31.77-15.48.04-21.23,1.41-36.24-.5-6.99-.89-7.48-5.75-8.03-12.55-.67-8.26-2.08-32.93,5.63-36.58,8.62-4.07,21.08-1.99,31.92-2.03,15.07-.06,49.63-1.73,56.39,6.49,8.63,10.49,9.53,63.67,3.93,83.02-18.53,63.98-85.34,76.18-136.57,48.14-82.79-45.31-78.54-193.36,34.51-217.11,23.91-5.02,70.39-6.71,94.39-2.64,5.3.9,7.73,5.74,8.18,11.18.84,10.15-.11,24.53-1.12,34.93-1.1,11.26-5.43,10.73-14.49,11.36-33.45,2.33-88.99-10.75-110.98,26.03-15.44,25.82-9.46,61.39,14.02,80.64"/>
16
+ </svg>
@@ -5,61 +5,50 @@ var material = require('@mui/material');
5
5
  var iconsMaterial = require('@mui/icons-material');
6
6
 
7
7
  const StyledAlert = material.styled(material.Alert)(({ theme, customvariant }) => {
8
+ const { alertColors, text } = theme.palette;
8
9
  const variants = {
9
- info: {
10
- backgroundColor: '#F8F0FC',
11
- borderColor: '#C269FA',
12
- color: '#4D3019',
13
- },
14
- success: {
15
- backgroundColor: '#f0fdf4',
16
- borderColor: '#bbf7d0',
17
- color: '#14532d',
18
- },
10
+ info: { backgroundColor: alertColors.info.background, borderColor: alertColors.info.border, color: alertColors.info.color },
11
+ success: { backgroundColor: alertColors.success.background, borderColor: alertColors.success.border, color: alertColors.success.color },
19
12
  warning: {
20
- backgroundColor: '#fefce8',
21
- borderColor: '#fef08a',
22
- color: '#713f12',
13
+ backgroundColor: alertColors.warning.background,
14
+ borderColor: alertColors.warning.border,
15
+ color: alertColors.warning.color,
23
16
  },
24
17
  error: {
25
- backgroundColor: '#fef2f2',
26
- borderColor: '#fecaca',
27
- color: '#7f1d1d',
28
- },
29
- 'note-internallink': {
30
- backgroundColor: '#FDFCEE',
31
- borderColor: '#ECE8DF',
32
- color: '#4D3019',
18
+ backgroundColor: alertColors.error.background,
19
+ borderColor: alertColors.error.border,
20
+ color: alertColors.error.color,
33
21
  },
22
+ 'note-internallink': { backgroundColor: alertColors.noteInternalLink.background, borderColor: alertColors.noteInternalLink.border, color: alertColors.noteInternalLink.color },
34
23
  'note-externallink': {
35
- backgroundColor: '#FDFCEE',
36
- borderColor: '#ECE8DF',
37
- color: '#4D3019',
24
+ backgroundColor: alertColors.noteExternalLink.background,
25
+ borderColor: alertColors.noteExternalLink.border,
26
+ color: alertColors.noteExternalLink.color,
38
27
  },
39
28
  'note': {
40
- backgroundColor: '#FDFCEE',
41
- borderColor: '#ECE8DF',
42
- color: '#4D3019',
29
+ backgroundColor: alertColors.note.background,
30
+ borderColor: alertColors.note.border,
31
+ color: alertColors.note.color,
43
32
  },
44
33
  'note-important': {
45
- backgroundColor: '#FDEDED',
46
- borderColor: '#EDA6A6',
47
- color: '#5F2120',
34
+ backgroundColor: alertColors.noteImportant.background,
35
+ borderColor: alertColors.noteImportant.border,
36
+ color: alertColors.noteImportant.color,
48
37
  },
49
38
  'note-task': {
50
- backgroundColor: '#FFF4E5',
51
- borderColor: '#F9C18F',
52
- color: '#4D3019',
39
+ backgroundColor: alertColors.noteTask.background,
40
+ borderColor: alertColors.noteTask.border,
41
+ color: alertColors.noteTask.color,
53
42
  },
54
43
  'note-assurance': {
55
- backgroundColor: '#FFF4E5',
56
- borderColor: '#F9C18F',
57
- color: '#4D3019',
44
+ backgroundColor: alertColors.noteAssurance.background,
45
+ borderColor: alertColors.noteAssurance.border,
46
+ color: alertColors.noteAssurance.color,
58
47
  },
59
48
  'note-share': {
60
- backgroundColor: '#F8F0FC',
61
- borderColor: '#C269FA',
62
- color: '#4D3019',
49
+ backgroundColor: alertColors.noteShare.background,
50
+ borderColor: alertColors.noteShare.border,
51
+ color: alertColors.noteShare.color,
63
52
  },
64
53
  custom: {
65
54
  backgroundColor: theme.palette.light.main,
@@ -1 +1 @@
1
- {"version":3,"file":"Alert.js","sources":["../../../../src/components/Alert.tsx"],"sourcesContent":["\r\n\r\nimport React from 'react';\r\nimport { Alert as MuiAlert, AlertProps as MuiAlertProps, styled, SxProps, Theme } from '@mui/material';\r\nimport { ErrorOutlineRounded, HighlightOffRounded, InfoOutlineRounded, LinkRounded, NoteOutlined, OpenInNewOutlined, TaskAltRounded } from '@mui/icons-material';\r\n\r\ninterface AlertProps {\r\n variant?: 'info' |\r\n 'success' |\r\n 'warning' |\r\n 'error' |\r\n 'note-internallink' |\r\n 'note-externallink' |\r\n 'note-important' |\r\n 'note' |\r\n 'note-assurance' |\r\n 'note-share' |\r\n 'note-task' |\r\n 'custom';\r\n children: React.ReactNode;\r\n className?: string;\r\n icon?: boolean | React.ReactNode; // Allow React node\r\n sx?: SxProps<Theme>; \r\n}\r\n\r\nconst StyledAlert = styled(MuiAlert)<{ customvariant?: string }>(({ theme, customvariant }) => {\r\n const variants = {\r\n info: {\r\n backgroundColor: '#F8F0FC',\r\n borderColor: '#C269FA',\r\n color: '#4D3019',\r\n },\r\n success: {\r\n backgroundColor: '#f0fdf4',\r\n borderColor: '#bbf7d0',\r\n color: '#14532d',\r\n },\r\n warning: {\r\n backgroundColor: '#fefce8',\r\n borderColor: '#fef08a',\r\n color: '#713f12',\r\n },\r\n error: {\r\n backgroundColor: '#fef2f2',\r\n borderColor: '#fecaca',\r\n color: '#7f1d1d',\r\n },\r\n 'note-internallink': {\r\n backgroundColor: '#FDFCEE',\r\n borderColor: '#ECE8DF',\r\n color: '#4D3019',\r\n },\r\n 'note-externallink': {\r\n backgroundColor: '#FDFCEE',\r\n borderColor: '#ECE8DF',\r\n color: '#4D3019',\r\n },\r\n 'note': {\r\n backgroundColor: '#FDFCEE',\r\n borderColor: '#ECE8DF',\r\n color: '#4D3019',\r\n },\r\n 'note-important': {\r\n backgroundColor: '#FDEDED',\r\n borderColor: '#EDA6A6',\r\n color: '#5F2120',\r\n },\r\n 'note-task': {\r\n backgroundColor: '#FFF4E5',\r\n borderColor: '#F9C18F',\r\n color: '#4D3019',\r\n },\r\n 'note-assurance': {\r\n backgroundColor: '#FFF4E5',\r\n borderColor: '#F9C18F',\r\n color: '#4D3019',\r\n },\r\n 'note-share': {\r\n backgroundColor: '#F8F0FC',\r\n borderColor: '#C269FA',\r\n color: '#4D3019',\r\n },\r\n custom: {\r\n backgroundColor: theme.palette.light.main,\r\n borderColor: `${theme.palette.dark.main}33`,\r\n color: theme.palette.dark.main,\r\n },\r\n };\r\n\r\n const variantKey = customvariant as keyof typeof variants || 'info';\r\n const style = variants[variantKey];\r\n\r\n return {\r\n display: 'flex',\r\n alignItems: 'flex-start',\r\n gap: theme.spacing(1.5),\r\n padding: theme.spacing(2),\r\n marginBottom: theme.spacing(1.5),\r\n overflow: 'visible',\r\n maxHeight: 'none',\r\n fontSize: '1rem',\r\n border: `1px solid ${style.borderColor}`,\r\n borderRadius: (typeof theme.shape.borderRadius === 'string'\r\n ? parseInt(theme.shape.borderRadius, 10)\r\n : theme.shape.borderRadius || 4) * 2,\r\n backgroundColor: style.backgroundColor,\r\n color: style.color,\r\n '& .MuiAlert-icon': {\r\n marginRight: 0,\r\n padding: 0,\r\n marginTop: '2px',\r\n },\r\n '& .MuiAlert-message': {\r\n padding: 0,\r\n flex: 1,\r\n overflow: 'visible',\r\n maxHeight: 'none',\r\n },\r\n };\r\n});\r\n\r\nexport const Alert: React.FC<AlertProps> = ({\r\n variant = 'info',\r\n children,\r\n className = '',\r\n icon = true,\r\n sx,\r\n}) => {\r\n const iconMap = {\r\n info: <InfoOutlineRounded sx={{fontSize: 20, color:'#C571FA'}} />,\r\n success: <TaskAltRounded sx={{fontSize: 20}} />,\r\n warning: <ErrorOutlineRounded sx={{fontSize: 20}} />,\r\n error: <HighlightOffRounded sx={{fontSize: 20}} />,\r\n 'note-internallink': <LinkRounded sx={{fontSize: 20, color:'#4D3019'}} />,\r\n 'note-externallink': <OpenInNewOutlined sx={{fontSize: 20, color:'#4D3019'}} />,\r\n 'note': <NoteOutlined sx={{fontSize: 20, color:'#4D3019'}} />,\r\n 'note-important': <InfoOutlineRounded sx={{fontSize: 20, color:'#D32F2F'}} />,\r\n 'note-assurance': <TaskAltRounded sx={{fontSize: 20, color:'#FF9800'}} />,\r\n 'note-task': <TaskAltRounded sx={{fontSize: 20, color:'#FF9800'}} />,\r\n 'note-share': <InfoOutlineRounded sx={{fontSize: 20, color:'#C571FA'}} />,\r\n custom: <InfoOutlineRounded sx={{fontSize: 20}} />,\r\n };\r\n\r\n const severityMap: Record<string, MuiAlertProps['severity'] | undefined> = {\r\n info: 'info',\r\n success: 'success',\r\n warning: 'warning',\r\n error: 'error',\r\n custom: 'info',\r\n 'note-internallink': undefined,\r\n 'note-externallink': undefined,\r\n 'note-important': undefined,\r\n 'note': undefined,\r\n 'note-task': undefined,\r\n 'note-assurance': undefined,\r\n 'note-share': undefined,\r\n };\r\n\r\n\r\n const getIcon = () => {\r\n if (icon === false) return false;\r\n if (icon === true) return iconMap[variant];\r\n return icon; // Custom icon passed\r\n };\r\n\r\n return (\r\n <StyledAlert\r\n customvariant={variant}\r\n severity={severityMap[variant]}\r\n icon={getIcon()}\r\n className={className}\r\n sx={sx}\r\n >\r\n {children}\r\n </StyledAlert>\r\n );\r\n};"],"names":["styled","MuiAlert","_jsx","InfoOutlineRounded","TaskAltRounded","ErrorOutlineRounded","HighlightOffRounded","LinkRounded","OpenInNewOutlined","NoteOutlined"],"mappings":"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"}
1
+ {"version":3,"file":"Alert.js","sources":["../../../../src/components/Alert.tsx"],"sourcesContent":["\r\n\r\nimport React from 'react';\r\nimport { Alert as MuiAlert, AlertProps as MuiAlertProps, styled, SxProps, Theme } from '@mui/material';\r\nimport { ErrorOutlineRounded, HighlightOffRounded, InfoOutlineRounded, LinkRounded, NoteOutlined, OpenInNewOutlined, TaskAltRounded } from '@mui/icons-material';\r\n\r\ninterface AlertProps {\r\n variant?: 'info' |\r\n 'success' |\r\n 'warning' |\r\n 'error' |\r\n 'note-internallink' |\r\n 'note-externallink' |\r\n 'note-important' |\r\n 'note' |\r\n 'note-assurance' |\r\n 'note-share' |\r\n 'note-task' |\r\n 'custom';\r\n children: React.ReactNode;\r\n className?: string;\r\n icon?: boolean | React.ReactNode; // Allow React node\r\n sx?: SxProps<Theme>; \r\n}\r\n\r\nconst StyledAlert = styled(MuiAlert)<{ customvariant?: string }>(({ theme, customvariant }) => {\r\n const { alertColors, text } = theme.palette;\r\n const variants = {\r\n info: { backgroundColor: alertColors.info.background, borderColor: alertColors.info.border, color: alertColors.info.color },\r\n success: { backgroundColor: alertColors.success.background, borderColor: alertColors.success.border, color: alertColors.success.color },\r\n warning: {\r\n backgroundColor: alertColors.warning.background,\r\n borderColor: alertColors.warning.border,\r\n color: alertColors.warning.color,\r\n },\r\n error: {\r\n backgroundColor: alertColors.error.background,\r\n borderColor: alertColors.error.border,\r\n color: alertColors.error.color,\r\n },\r\n 'note-internallink': { backgroundColor: alertColors.noteInternalLink.background, borderColor: alertColors.noteInternalLink.border, color: alertColors.noteInternalLink.color },\r\n 'note-externallink': {\r\n backgroundColor: alertColors.noteExternalLink.background,\r\n borderColor: alertColors.noteExternalLink.border,\r\n color: alertColors.noteExternalLink.color,\r\n },\r\n 'note': {\r\n backgroundColor: alertColors.note.background,\r\n borderColor: alertColors.note.border,\r\n color: alertColors.note.color,\r\n },\r\n 'note-important': {\r\n backgroundColor: alertColors.noteImportant.background,\r\n borderColor: alertColors.noteImportant.border,\r\n color: alertColors.noteImportant.color,\r\n },\r\n 'note-task': {\r\n backgroundColor: alertColors.noteTask.background,\r\n borderColor: alertColors.noteTask.border,\r\n color: alertColors.noteTask.color,\r\n },\r\n 'note-assurance': {\r\n backgroundColor: alertColors.noteAssurance.background,\r\n borderColor: alertColors.noteAssurance.border,\r\n color: alertColors.noteAssurance.color,\r\n },\r\n 'note-share': {\r\n backgroundColor: alertColors.noteShare.background,\r\n borderColor: alertColors.noteShare.border,\r\n color: alertColors.noteShare.color,\r\n },\r\n custom: {\r\n backgroundColor: theme.palette.light.main,\r\n borderColor: `${theme.palette.dark.main}33`,\r\n color: theme.palette.dark.main,\r\n },\r\n };\r\n\r\n const variantKey = customvariant as keyof typeof variants || 'info';\r\n const style = variants[variantKey];\r\n\r\n return {\r\n display: 'flex',\r\n alignItems: 'flex-start',\r\n gap: theme.spacing(1.5),\r\n padding: theme.spacing(2),\r\n marginBottom: theme.spacing(1.5),\r\n overflow: 'visible',\r\n maxHeight: 'none',\r\n fontSize: '1rem',\r\n border: `1px solid ${style.borderColor}`,\r\n borderRadius: (typeof theme.shape.borderRadius === 'string'\r\n ? parseInt(theme.shape.borderRadius, 10)\r\n : theme.shape.borderRadius || 4) * 2,\r\n backgroundColor: style.backgroundColor,\r\n color: style.color,\r\n '& .MuiAlert-icon': {\r\n marginRight: 0,\r\n padding: 0,\r\n marginTop: '2px',\r\n },\r\n '& .MuiAlert-message': {\r\n padding: 0,\r\n flex: 1,\r\n overflow: 'visible',\r\n maxHeight: 'none',\r\n },\r\n };\r\n});\r\n\r\nexport const Alert: React.FC<AlertProps> = ({\r\n variant = 'info',\r\n children,\r\n className = '',\r\n icon = true,\r\n sx,\r\n}) => {\r\n const iconMap = {\r\n info: <InfoOutlineRounded sx={{fontSize: 20, color:'#C571FA'}} />,\r\n success: <TaskAltRounded sx={{fontSize: 20}} />,\r\n warning: <ErrorOutlineRounded sx={{fontSize: 20}} />,\r\n error: <HighlightOffRounded sx={{fontSize: 20}} />,\r\n 'note-internallink': <LinkRounded sx={{fontSize: 20, color:'#4D3019'}} />,\r\n 'note-externallink': <OpenInNewOutlined sx={{fontSize: 20, color:'#4D3019'}} />,\r\n 'note': <NoteOutlined sx={{fontSize: 20, color:'#4D3019'}} />,\r\n 'note-important': <InfoOutlineRounded sx={{fontSize: 20, color:'#D32F2F'}} />,\r\n 'note-assurance': <TaskAltRounded sx={{fontSize: 20, color:'#FF9800'}} />,\r\n 'note-task': <TaskAltRounded sx={{fontSize: 20, color:'#FF9800'}} />,\r\n 'note-share': <InfoOutlineRounded sx={{fontSize: 20, color:'#C571FA'}} />,\r\n custom: <InfoOutlineRounded sx={{fontSize: 20}} />,\r\n };\r\n\r\n const severityMap: Record<string, MuiAlertProps['severity'] | undefined> = {\r\n info: 'info',\r\n success: 'success',\r\n warning: 'warning',\r\n error: 'error',\r\n custom: 'info',\r\n 'note-internallink': undefined,\r\n 'note-externallink': undefined,\r\n 'note-important': undefined,\r\n 'note': undefined,\r\n 'note-task': undefined,\r\n 'note-assurance': undefined,\r\n 'note-share': undefined,\r\n };\r\n\r\n\r\n const getIcon = () => {\r\n if (icon === false) return false;\r\n if (icon === true) return iconMap[variant];\r\n return icon; // Custom icon passed\r\n };\r\n\r\n return (\r\n <StyledAlert\r\n customvariant={variant}\r\n severity={severityMap[variant]}\r\n icon={getIcon()}\r\n className={className}\r\n sx={sx}\r\n >\r\n {children}\r\n </StyledAlert>\r\n );\r\n};"],"names":["styled","MuiAlert","_jsx","InfoOutlineRounded","TaskAltRounded","ErrorOutlineRounded","HighlightOffRounded","LinkRounded","OpenInNewOutlined","NoteOutlined"],"mappings":"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"}
@@ -91,19 +91,19 @@ const StyledButton = styles.styled(material.Button, {
91
91
  border: '1px solid',
92
92
  fontSize: '14px',
93
93
  padding: '2px 8px',
94
- borderColor: currentTheme.custom?.markAsReadBorderColor || currentTheme.secondary.main, // Visible border
94
+ borderColor: currentTheme.custom?.markAsReadBorderColor || currentTheme.secondary.main,
95
95
  color: currentTheme.dark.main,
96
96
  '&:hover': {
97
97
  opacity: 0.9,
98
98
  },
99
99
  },
100
100
  danger: {
101
- backgroundColor: '#D32F2F',
102
- color: '#FFFFFF',
101
+ backgroundColor: theme.palette.custom.dangerBackground,
102
+ color: theme.palette.primary.contrastText,
103
103
  borderColor: 'transparent', // Transparent border
104
104
  boxShadow: '0 1px 2px 0 rgba(0, 0, 0, 0.05)',
105
105
  '&:hover': {
106
- backgroundColor: '#B71C1C',
106
+ backgroundColor: theme.palette.custom.dangerBackgroundHover,
107
107
  opacity: 0.9,
108
108
  },
109
109
  },
@@ -1 +1 @@
1
- {"version":3,"file":"Button.js","sources":["../../../../src/components/Button.tsx"],"sourcesContent":["import React from 'react';\r\nimport { Button as MuiButton, ButtonProps as MuiButtonProps } from '@mui/material';\r\nimport { styled } from '@mui/material/styles';\r\nimport { ArticleRounded, FactCheckRounded } from '@mui/icons-material';\r\nimport { useTheme } from '../ThemeProvider';\r\n\r\ninterface CustomButtonProps extends Omit<MuiButtonProps, 'variant' | 'size'> {\r\n variant?: 'primary' | 'secondary' | 'outline' | 'marked-read' | 'mark-read' | 'danger';\r\n size?: 'sm' | 'md' | 'lg';\r\n}\r\n\r\nconst StyledButton = styled(MuiButton, {\r\n shouldForwardProp: (prop) => prop !== 'customVariant' && prop !== 'customSize',\r\n})<{ customVariant: string; customSize: string }>(({ theme, customVariant, customSize }) => {\r\n const currentTheme = theme.palette;\r\n\r\n // Size styles\r\n const sizeStyles = {\r\n sm: {\r\n padding: '6px 12px',\r\n fontSize: '0.875rem',\r\n },\r\n md: {\r\n padding: '10px 16px',\r\n fontSize: '1rem',\r\n },\r\n lg: {\r\n padding: '12px 24px',\r\n fontSize: '1.125rem',\r\n },\r\n };\r\n\r\n const baseStyles = {\r\n fontWeight: 500,\r\n borderRadius: (typeof theme.shape.borderRadius === 'string'\r\n ? parseInt(theme.shape.borderRadius, 10)\r\n : theme.shape.borderRadius || 4) * 2,\r\n textTransform: 'none' as const,\r\n transition: 'all 0.2s',\r\n boxShadow: 'none',\r\n border: '2px solid transparent',\r\n '&:hover': {\r\n boxShadow: 'none',\r\n },\r\n '&.Mui-disabled': {\r\n opacity: 0.5,\r\n cursor: 'not-allowed',\r\n },\r\n ...sizeStyles[customSize as keyof typeof sizeStyles],\r\n };\r\n\r\n // Variant styles\r\n const variantStyles = {\r\n primary: {\r\n backgroundColor: currentTheme.primary.main,\r\n color: currentTheme.custom?.primaryButtonTextColor || '#FFFFFF',\r\n borderColor: 'transparent', // Transparent border\r\n boxShadow: '0 1px 2px 0 rgba(0, 0, 0, 0.05)',\r\n '&:hover': {\r\n backgroundColor: currentTheme.primary.main,\r\n opacity: 0.9,\r\n },\r\n },\r\n secondary: {\r\n backgroundColor: currentTheme.secondary.main,\r\n color: currentTheme.dark.main,\r\n borderColor: 'transparent', // Transparent border\r\n boxShadow: '0 1px 2px 0 rgba(0, 0, 0, 0.05)',\r\n '&:hover': {\r\n backgroundColor: currentTheme.secondary.main,\r\n opacity: 0.9,\r\n },\r\n },\r\n outline: {\r\n backgroundColor: currentTheme.light.main,\r\n borderColor: 'rgba(77, 48, 25, 0.2)', // Visible border\r\n color: currentTheme.dark.main,\r\n '&:hover': {\r\n backgroundColor: 'rgba(77, 48, 25, 0.05)',\r\n borderColor: 'rgba(77, 48, 25, 0.3)',\r\n },\r\n },\r\n 'marked-read': {\r\n backgroundColor: 'rgba(163, 217, 119, 0.1)',\r\n fontSize: '14px',\r\n border: '1px solid',\r\n padding: '2px 8px',\r\n borderColor: currentTheme.markedRead.main, // Visible border\r\n color: currentTheme.dark.main,\r\n '&:hover': {\r\n backgroundColor: 'rgba(163, 217, 119, 0.2)',\r\n cursor: 'not-allowed',\r\n },\r\n },\r\n 'mark-read': {\r\n backgroundColor: currentTheme.custom?.markAsReadBackgroundColor || currentTheme.accent.main,\r\n border: '1px solid',\r\n fontSize: '14px',\r\n padding: '2px 8px',\r\n borderColor: currentTheme.custom?.markAsReadBorderColor || currentTheme.secondary.main, // Visible border\r\n color: currentTheme.dark.main,\r\n '&:hover': {\r\n opacity: 0.9,\r\n },\r\n },\r\n danger: {\r\n backgroundColor: '#D32F2F',\r\n color: '#FFFFFF',\r\n borderColor: 'transparent', // Transparent border\r\n boxShadow: '0 1px 2px 0 rgba(0, 0, 0, 0.05)',\r\n '&:hover': {\r\n backgroundColor: '#B71C1C',\r\n opacity: 0.9,\r\n },\r\n },\r\n };\r\n\r\n return {\r\n ...baseStyles,\r\n ...variantStyles[customVariant as keyof typeof variantStyles],\r\n };\r\n});\r\n\r\nexport const Button: React.FC<CustomButtonProps> = ({\r\n variant = 'primary',\r\n size = 'md',\r\n children,\r\n endIcon,\r\n fullWidth = false,\r\n ...props\r\n}) => {\r\n // Logic for special end icons per variant\r\n const getEndIcon = () => {\r\n const theme = useTheme();\r\n if (variant === 'mark-read') {\r\n return (\r\n <ArticleRounded sx={{ fontSize: 22, color: theme.palette.custom.iconColor }} />\r\n );\r\n }\r\n\r\n if (variant === 'marked-read') {\r\n return <FactCheckRounded sx={{ fontSize: 22, color: '#5a9c1a' }} />;\r\n }\r\n\r\n return endIcon || null;\r\n };\r\n\r\n return (\r\n <StyledButton\r\n customVariant={variant}\r\n customSize={size}\r\n fullWidth={fullWidth}\r\n disableRipple\r\n endIcon={getEndIcon()}\r\n {...props}\r\n >\r\n {children}\r\n </StyledButton>\r\n );\r\n};\r\n"],"names":["styled","MuiButton","useTheme","_jsx","ArticleRounded","FactCheckRounded"],"mappings":"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"}
1
+ {"version":3,"file":"Button.js","sources":["../../../../src/components/Button.tsx"],"sourcesContent":["import React from 'react';\r\nimport { Button as MuiButton, ButtonProps as MuiButtonProps } from '@mui/material';\r\nimport { styled } from '@mui/material/styles';\r\nimport { ArticleRounded, FactCheckRounded } from '@mui/icons-material';\r\nimport { useTheme } from '../ThemeProvider';\r\n\r\ninterface CustomButtonProps extends Omit<MuiButtonProps, 'variant' | 'size'> {\r\n variant?: 'primary' | 'secondary' | 'outline' | 'marked-read' | 'mark-read' | 'danger';\r\n size?: 'sm' | 'md' | 'lg';\r\n}\r\n\r\nconst StyledButton = styled(MuiButton, {\r\n shouldForwardProp: (prop) => prop !== 'customVariant' && prop !== 'customSize',\r\n})<{ customVariant: string; customSize: string }>(({ theme, customVariant, customSize }) => {\r\n const currentTheme = theme.palette;\r\n\r\n // Size styles\r\n const sizeStyles = {\r\n sm: {\r\n padding: '6px 12px',\r\n fontSize: '0.875rem',\r\n },\r\n md: {\r\n padding: '10px 16px',\r\n fontSize: '1rem',\r\n },\r\n lg: {\r\n padding: '12px 24px',\r\n fontSize: '1.125rem',\r\n },\r\n };\r\n\r\n const baseStyles = {\r\n fontWeight: 500,\r\n borderRadius: (typeof theme.shape.borderRadius === 'string'\r\n ? parseInt(theme.shape.borderRadius, 10)\r\n : theme.shape.borderRadius || 4) * 2,\r\n textTransform: 'none' as const,\r\n transition: 'all 0.2s',\r\n boxShadow: 'none',\r\n border: '2px solid transparent',\r\n '&:hover': {\r\n boxShadow: 'none',\r\n },\r\n '&.Mui-disabled': {\r\n opacity: 0.5,\r\n cursor: 'not-allowed',\r\n },\r\n ...sizeStyles[customSize as keyof typeof sizeStyles],\r\n };\r\n\r\n // Variant styles\r\n const variantStyles = {\r\n primary: {\r\n backgroundColor: currentTheme.primary.main,\r\n color: currentTheme.custom?.primaryButtonTextColor || '#FFFFFF',\r\n borderColor: 'transparent', // Transparent border\r\n boxShadow: '0 1px 2px 0 rgba(0, 0, 0, 0.05)',\r\n '&:hover': {\r\n backgroundColor: currentTheme.primary.main,\r\n opacity: 0.9,\r\n },\r\n },\r\n secondary: {\r\n backgroundColor: currentTheme.secondary.main,\r\n color: currentTheme.dark.main,\r\n borderColor: 'transparent', // Transparent border\r\n boxShadow: '0 1px 2px 0 rgba(0, 0, 0, 0.05)',\r\n '&:hover': {\r\n backgroundColor: currentTheme.secondary.main,\r\n opacity: 0.9,\r\n },\r\n },\r\n outline: {\r\n backgroundColor: currentTheme.light.main,\r\n borderColor: 'rgba(77, 48, 25, 0.2)', // Visible border\r\n color: currentTheme.dark.main,\r\n '&:hover': {\r\n backgroundColor: 'rgba(77, 48, 25, 0.05)',\r\n borderColor: 'rgba(77, 48, 25, 0.3)',\r\n },\r\n },\r\n 'marked-read': {\r\n backgroundColor: 'rgba(163, 217, 119, 0.1)',\r\n fontSize: '14px',\r\n border: '1px solid',\r\n padding: '2px 8px',\r\n borderColor: currentTheme.markedRead.main, // Visible border\r\n color: currentTheme.dark.main,\r\n '&:hover': {\r\n backgroundColor: 'rgba(163, 217, 119, 0.2)',\r\n cursor: 'not-allowed',\r\n },\r\n },\r\n 'mark-read': {\r\n backgroundColor: currentTheme.custom?.markAsReadBackgroundColor || currentTheme.accent.main,\r\n border: '1px solid',\r\n fontSize: '14px',\r\n padding: '2px 8px',\r\n borderColor: currentTheme.custom?.markAsReadBorderColor || currentTheme.secondary.main, \r\n color: currentTheme.dark.main,\r\n '&:hover': {\r\n opacity: 0.9,\r\n },\r\n },\r\n danger: {\r\n backgroundColor: theme.palette.custom.dangerBackground,\r\n color: theme.palette.primary.contrastText,\r\n borderColor: 'transparent', // Transparent border\r\n boxShadow: '0 1px 2px 0 rgba(0, 0, 0, 0.05)',\r\n '&:hover': {\r\n backgroundColor: theme.palette.custom.dangerBackgroundHover,\r\n opacity: 0.9,\r\n },\r\n },\r\n };\r\n\r\n return {\r\n ...baseStyles,\r\n ...variantStyles[customVariant as keyof typeof variantStyles],\r\n };\r\n});\r\n\r\nexport const Button: React.FC<CustomButtonProps> = ({\r\n variant = 'primary',\r\n size = 'md',\r\n children,\r\n endIcon,\r\n fullWidth = false,\r\n ...props\r\n}) => {\r\n // Logic for special end icons per variant\r\n const getEndIcon = () => {\r\n const theme = useTheme();\r\n if (variant === 'mark-read') {\r\n return (\r\n <ArticleRounded sx={{ fontSize: 22, color: theme.palette.custom.iconColor }} />\r\n );\r\n }\r\n\r\n if (variant === 'marked-read') {\r\n return <FactCheckRounded sx={{ fontSize: 22, color: '#5a9c1a' }} />;\r\n }\r\n\r\n return endIcon || null;\r\n };\r\n\r\n return (\r\n <StyledButton\r\n customVariant={variant}\r\n customSize={size}\r\n fullWidth={fullWidth}\r\n disableRipple\r\n endIcon={getEndIcon()}\r\n {...props}\r\n >\r\n {children}\r\n </StyledButton>\r\n );\r\n};\r\n"],"names":["styled","MuiButton","useTheme","_jsx","ArticleRounded","FactCheckRounded"],"mappings":"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"}
@@ -9,6 +9,7 @@ var PopoverMenu = require('./PopoverMenu.js');
9
9
  var PrimaryLogo_Variation_Cream_ECEDocs = require('../images/PrimaryLogo_Variation_Cream_ECEDocs.svg.js');
10
10
  var PrimaryLogo_Variation_Cream_GPDocs = require('../images/PrimaryLogo_Variation_Cream_GPDocs.svg.js');
11
11
  var PrimaryLogo_Variation_Cream_SchoolDocs = require('../images/PrimaryLogo_Variation_Cream_SchoolDocs.svg.js');
12
+ var LIGHTN_PrimaryLogo_Cream = require('../images/LIGHTN_PrimaryLogo_Cream.svg.js');
12
13
 
13
14
  const H_OPEN = "[[H]]";
14
15
  const H_CLOSE = "[[/H]]";
@@ -99,8 +100,9 @@ const LogoComponent = () => {
99
100
  case 'School':
100
101
  return jsxRuntime.jsx(PrimaryLogo_Variation_Cream_SchoolDocs.ReactComponent, { ...logoProps });
101
102
  case 'ECE':
102
- default:
103
103
  return jsxRuntime.jsx(PrimaryLogo_Variation_Cream_ECEDocs.ReactComponent, { ...logoProps });
104
+ default:
105
+ return jsxRuntime.jsx(LIGHTN_PrimaryLogo_Cream.ReactComponent, { ...logoProps });
104
106
  }
105
107
  };
106
108
  const StyledSearchContainer = material.styled(material.Box)(({ theme }) => ({
@@ -1 +1 @@
1
- {"version":3,"file":"Header.js","sources":["../../../../src/components/Header.tsx"],"sourcesContent":["import React 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 { ThemeContext, useTheme } from '../ThemeProvider';\r\nimport { MenuRounded, SearchRounded, CloseRounded } from '@mui/icons-material';\r\nimport PopoverMenu from './PopoverMenu';\r\nimport { ReactComponent as ECELogo } from '../images/PrimaryLogo_Variation_Cream_ECEDocs.svg';\r\nimport { ReactComponent as GPLogo } from '../images/PrimaryLogo_Variation_Cream_GPDocs.svg';\r\nimport { ReactComponent as SchoolLogo } from '../images/PrimaryLogo_Variation_Cream_SchoolDocs.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 onSearchSubmit?: (query: string) => void;\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\nconst H_OPEN = \"[[H]]\";\r\nconst H_CLOSE = \"[[/H]]\";\r\n\r\nconst escapeRegExp = (s: string) => s.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\r\n\r\nconst renderHighlightedText = (text: string): React.ReactNode => {\r\n if (!text) return null;\r\n\r\n const tokenRe = new RegExp(\r\n `(${escapeRegExp(H_OPEN)}|${escapeRegExp(H_CLOSE)})`,\r\n \"g\",\r\n );\r\n\r\n const parts = text.split(tokenRe);\r\n\r\n const [nodes] = parts.reduce<[React.ReactNode[], boolean, number]>(\r\n ([out, inHighlight, key], part) => {\r\n if (!part) return [out, inHighlight, key];\r\n\r\n if (part === H_OPEN) return [out, true, key];\r\n if (part === H_CLOSE) return [out, false, key];\r\n\r\n out.push(\r\n inHighlight ? (\r\n <mark\r\n key={key}\r\n style={{\r\n padding: \"0 2px\",\r\n borderRadius: 3,\r\n }}\r\n >\r\n {part}\r\n </mark>\r\n ) : (\r\n <React.Fragment key={key}>{part}</React.Fragment>\r\n ),\r\n );\r\n\r\n return [out, inHighlight, key + 1];\r\n },\r\n [[], false, 0],\r\n );\r\n\r\n return <>{nodes}</>;\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 style={{ marginBottom: bulletLines.length > 0 ? 6 : 0 }}>\r\n {nonBulletLines.map((line, idx) => (\r\n <React.Fragment key={idx}>\r\n {renderHighlightedText(line)}\r\n {idx < nonBulletLines.length - 1 ? <br /> : null}\r\n </React.Fragment>\r\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 const bulletText = line.trim().replace(/^\\*\\s*/, \"\");\r\n return <li key={idx}>{renderHighlightedText(bulletText)}</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 LogoComponent: React.FC = () => {\r\n const themeType = React.useContext(ThemeContext);\r\n \r\n const logoProps = {\r\n style: {\r\n width: '100%',\r\n height: '100%',\r\n display: 'block'\r\n }\r\n };\r\n switch (themeType) {\r\n case 'GP':\r\n return <GPLogo {...logoProps} />;\r\n case 'School':\r\n return <SchoolLogo {...logoProps} />;\r\n case 'ECE':\r\n default:\r\n return <ECELogo {...logoProps} />;\r\n }\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 onSearchSubmit,\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 \r\n\r\n // Desktop\r\n const desktopInputRef = React.useRef<HTMLInputElement | null>(null);\r\n const desktopFieldRef = React.useRef<HTMLDivElement | null>(null);\r\n\r\n // Mobile\r\n const [mobileSearchOpen, setMobileSearchOpen] = React.useState(false);\r\n const mobileInputRef = React.useRef<HTMLInputElement | null>(null);\r\n\r\n const [hasInvalidChars, setHasInvalidChars] = React.useState(false);\r\n const INVALID_CHARS = /[^\\p{L}\\p{M}\\p{N} (),\\/\\.\"'\\-:;\\$]/u;\r\n const INVALID_CHARS_GLOBAL = new RegExp(INVALID_CHARS.source, 'gu');\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' || signUpStatus === 'In Review';\r\n \r\n const clearQueryOnNextResetRef = React.useRef(true);\r\n const closeMobileOnNextResetRef = React.useRef(true);\r\n\r\n\r\n\r\n const searchSeqRef = React.useRef(0);\r\n const debounceRef = React.useRef<number | undefined>(undefined);\r\n\r\n const closeMobileSearch = () => {\r\n\r\n setMobileSearchOpen(false);\r\n if (clearQueryOnNextResetRef.current){\r\n setSearchQuery('');\r\n }\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 cancelPendingSearch = () => {\r\n window.clearTimeout(debounceRef.current);\r\n debounceRef.current = undefined;\r\n\r\n // Invalidate any in-flight runSearch so it won't set dropdown/results later\r\n searchSeqRef.current += 1;\r\n\r\n setIsSearching(false);\r\n };\r\n\r\n const runSearch = async (term: string) => {\r\n if (!search) {\r\n searchSeqRef.current += 1;\r\n setIsSearching(false);\r\n setResults([]);\r\n setHasInvalidChars(false);\r\n setOpenDropdown(false);\r\n return;\r\n }\r\n if (!term.trim()) {\r\n searchSeqRef.current += 1;\r\n setIsSearching(false);\r\n setHasInvalidChars(false);\r\n setOpenDropdown(false);\r\n setResults([]);\r\n return;\r\n }\r\n const sanitized = term.replace(INVALID_CHARS_GLOBAL, '').trim();\r\n\r\n if (!sanitized) {\r\n searchSeqRef.current += 1;\r\n setIsSearching(false);\r\n setResults([]);\r\n setHasInvalidChars(true);\r\n setOpenDropdown(true);\r\n return;\r\n }\r\n \r\n setHasInvalidChars(false);\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 handleSearchChange = (value: string) => {\r\n setSearchQuery(value);\r\n window.clearTimeout(debounceRef.current);\r\n\r\n debounceRef.current = window.setTimeout(() => runSearch(value), 150);\r\n };\r\n\r\n const handleKeyDown = (e: React.KeyboardEvent) => {\r\n if (e.key !== 'Enter') return;\r\n \r\n e.preventDefault();\r\n\r\n const term = searchQuery.trim();\r\n if (!term) return;\r\n\r\n if (INVALID_CHARS.test(term)) { \r\n console.log(term);\r\n runSearch(term);\r\n return;\r\n }\r\n\r\n cancelPendingSearch();\r\n \r\n setOpenDropdown(false);\r\n setResults([]);\r\n setHasInvalidChars(false);\r\n \r\n onSearchSubmit?.(term);\r\n };\r\n\r\n const handleSearchClick: React.MouseEventHandler<HTMLButtonElement> = (e) => {\r\n e.preventDefault();\r\n\r\n const term = searchQuery.trim();\r\n if (!term) {\r\n runSearch('');\r\n return;\r\n }\r\n\r\n if (INVALID_CHARS.test(term)) { \r\n runSearch(term);\r\n return;\r\n }\r\n\r\n cancelPendingSearch();\r\n\r\n setOpenDropdown(false);\r\n setResults([]);\r\n setHasInvalidChars(false);\r\n \r\n onSearchSubmit?.(term);\r\n }\r\n\r\n React.useEffect(() => {\r\n const clearQuery = clearQueryOnNextResetRef.current;\r\n const closeMobile = closeMobileOnNextResetRef.current;\r\n\r\n if (closeMobile) {\r\n // sidebar/normal navigation\r\n closeMobileSearch();\r\n } else {\r\n // navigation from clicking a search result: keep mobile panel open\r\n if (clearQuery) setSearchQuery('');\r\n setResults([]);\r\n setOpenDropdown(false);\r\n window.clearTimeout(debounceRef.current);\r\n }\r\n\r\n // reset defaults for next navigation\r\n clearQueryOnNextResetRef.current = true;\r\n closeMobileOnNextResetRef.current = true;\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 type ResultsMode = 'desktop' | 'mobile';\r\n\r\n const DropdownResults = ({\r\n mode,\r\n }: {\r\n mode: ResultsMode;\r\n }) => {\r\n const isDesktop = mode === 'desktop';\r\n return (\r\n <Box>\r\n {!isSearching && hasInvalidChars ? (\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: theme.palette.background.paper,\r\n borderRadius: isDesktop ? '12px' : 0,\r\n px: 2,\r\n py: 1.5,\r\n }}\r\n >\r\n <Typography sx={{ fontSize: '14px', color: theme.palette.text.primary }}>\r\n Oops — your search includes symbols we don’t support yet. Please remove special characters (like %, @, #, =) and try again.\r\n </Typography>\r\n </Paper>\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 ${theme.palette.text.primary}`,\r\n boxShadow: 'none',\r\n backgroundColor: theme.palette.background.paper,\r\n borderRadius: isDesktop ? '12px' : 0,\r\n px: 2,\r\n py: 1.5,\r\n }}\r\n >\r\n <Typography sx={{ fontSize: '14px', color: theme.palette.text.primary }}>\r\n No results found\r\n </Typography>\r\n </Paper>\r\n ) : (\r\n <ResultsList\r\n mode={mode}\r\n items={results}\r\n onPick={(item) => {\r\n clearQueryOnNextResetRef.current = false; // keep text\r\n closeMobileOnNextResetRef.current = false; // keep mobile panel open\r\n\r\n setOpenDropdown(false);\r\n setResults([]);\r\n\r\n onResultClick?.(item);\r\n }}\r\n />\r\n )}\r\n </Box>\r\n );\r\n};\r\n\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 const displayedResults = mode == 'desktop' ? items.slice(0, 5) : items.slice(0, 3);\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 ${theme.palette.text.primary}`,\r\n boxShadow: 'none',\r\n backgroundColor: theme.palette.background.paper,\r\n\r\n ...(isDesktop\r\n ? {\r\n maxHeight: 'auto',\r\n borderRadius: '12px',\r\n overflowX: 'hidden',\r\n overflowY: 'hidden',\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 {displayedResults.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: theme.palette.background.paper,\r\n borderBottom:\r\n index === displayedResults.length - 1\r\n ? 'none'\r\n : '1px solid rgba(77,48,25,0.18)',\r\n '&:hover': { backgroundColor: theme.palette.custom.readByBackgroundColor },\r\n '&:hover .search-result-title': {\r\n textDecoration: 'underline',\r\n color: theme.palette.primary.main,\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: theme.palette.text.primary,\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 <LogoComponent />\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 <DropdownResults mode=\"desktop\"/>\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 <DropdownResults mode=\"mobile\"/>\r\n </Box>\r\n )}\r\n </Box>\r\n </Collapse>\r\n )}\r\n </Box>\r\n );\r\n};"],"names":["_jsx","_Fragment","_jsxs","styled","Box","Typography","ThemeContext","GPLogo","SchoolLogo","ECELogo","TextField","IconButton","useTheme","useMediaQuery","Paper","List","ListItemButton","ListItemText","MenuRounded","Divider","InputAdornment","CircularProgress","SearchRounded","Popper","PopoverMenu","Collapse","CloseRounded"],"mappings":"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"}
1
+ {"version":3,"file":"Header.js","sources":["../../../../src/components/Header.tsx"],"sourcesContent":["import React 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 { ThemeContext, useTheme } from '../ThemeProvider';\r\nimport { MenuRounded, SearchRounded, CloseRounded } from '@mui/icons-material';\r\nimport PopoverMenu from './PopoverMenu';\r\nimport { ReactComponent as ECELogo } from '../images/PrimaryLogo_Variation_Cream_ECEDocs.svg';\r\nimport { ReactComponent as GPLogo } from '../images/PrimaryLogo_Variation_Cream_GPDocs.svg';\r\nimport { ReactComponent as SchoolLogo } from '../images/PrimaryLogo_Variation_Cream_SchoolDocs.svg';\r\nimport { ReactComponent as LightnLogo } from '../images/LIGHTN_PrimaryLogo_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 onSearchSubmit?: (query: string) => void;\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\nconst H_OPEN = \"[[H]]\";\r\nconst H_CLOSE = \"[[/H]]\";\r\n\r\nconst escapeRegExp = (s: string) => s.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\r\n\r\nconst renderHighlightedText = (text: string): React.ReactNode => {\r\n if (!text) return null;\r\n\r\n const tokenRe = new RegExp(\r\n `(${escapeRegExp(H_OPEN)}|${escapeRegExp(H_CLOSE)})`,\r\n \"g\",\r\n );\r\n\r\n const parts = text.split(tokenRe);\r\n\r\n const [nodes] = parts.reduce<[React.ReactNode[], boolean, number]>(\r\n ([out, inHighlight, key], part) => {\r\n if (!part) return [out, inHighlight, key];\r\n\r\n if (part === H_OPEN) return [out, true, key];\r\n if (part === H_CLOSE) return [out, false, key];\r\n\r\n out.push(\r\n inHighlight ? (\r\n <mark\r\n key={key}\r\n style={{\r\n padding: \"0 2px\",\r\n borderRadius: 3,\r\n }}\r\n >\r\n {part}\r\n </mark>\r\n ) : (\r\n <React.Fragment key={key}>{part}</React.Fragment>\r\n ),\r\n );\r\n\r\n return [out, inHighlight, key + 1];\r\n },\r\n [[], false, 0],\r\n );\r\n\r\n return <>{nodes}</>;\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 style={{ marginBottom: bulletLines.length > 0 ? 6 : 0 }}>\r\n {nonBulletLines.map((line, idx) => (\r\n <React.Fragment key={idx}>\r\n {renderHighlightedText(line)}\r\n {idx < nonBulletLines.length - 1 ? <br /> : null}\r\n </React.Fragment>\r\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 const bulletText = line.trim().replace(/^\\*\\s*/, \"\");\r\n return <li key={idx}>{renderHighlightedText(bulletText)}</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 LogoComponent: React.FC = () => {\r\n const themeType = React.useContext(ThemeContext);\r\n \r\n const logoProps = {\r\n style: {\r\n width: '100%',\r\n height: '100%',\r\n display: 'block'\r\n }\r\n };\r\n switch (themeType) {\r\n case 'GP':\r\n return <GPLogo {...logoProps} />;\r\n case 'School':\r\n return <SchoolLogo {...logoProps} />;\r\n case 'ECE':\r\n return <ECELogo {...logoProps} />;\r\n default:\r\n return <LightnLogo {...logoProps} />;\r\n }\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 onSearchSubmit,\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 \r\n\r\n // Desktop\r\n const desktopInputRef = React.useRef<HTMLInputElement | null>(null);\r\n const desktopFieldRef = React.useRef<HTMLDivElement | null>(null);\r\n\r\n // Mobile\r\n const [mobileSearchOpen, setMobileSearchOpen] = React.useState(false);\r\n const mobileInputRef = React.useRef<HTMLInputElement | null>(null);\r\n\r\n const [hasInvalidChars, setHasInvalidChars] = React.useState(false);\r\n const INVALID_CHARS = /[^\\p{L}\\p{M}\\p{N} (),\\/\\.\"'\\-:;\\$]/u;\r\n const INVALID_CHARS_GLOBAL = new RegExp(INVALID_CHARS.source, 'gu');\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' || signUpStatus === 'In Review';\r\n \r\n const clearQueryOnNextResetRef = React.useRef(true);\r\n const closeMobileOnNextResetRef = React.useRef(true);\r\n\r\n\r\n\r\n const searchSeqRef = React.useRef(0);\r\n const debounceRef = React.useRef<number | undefined>(undefined);\r\n\r\n const closeMobileSearch = () => {\r\n\r\n setMobileSearchOpen(false);\r\n if (clearQueryOnNextResetRef.current){\r\n setSearchQuery('');\r\n }\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 cancelPendingSearch = () => {\r\n window.clearTimeout(debounceRef.current);\r\n debounceRef.current = undefined;\r\n\r\n // Invalidate any in-flight runSearch so it won't set dropdown/results later\r\n searchSeqRef.current += 1;\r\n\r\n setIsSearching(false);\r\n };\r\n\r\n const runSearch = async (term: string) => {\r\n if (!search) {\r\n searchSeqRef.current += 1;\r\n setIsSearching(false);\r\n setResults([]);\r\n setHasInvalidChars(false);\r\n setOpenDropdown(false);\r\n return;\r\n }\r\n if (!term.trim()) {\r\n searchSeqRef.current += 1;\r\n setIsSearching(false);\r\n setHasInvalidChars(false);\r\n setOpenDropdown(false);\r\n setResults([]);\r\n return;\r\n }\r\n const sanitized = term.replace(INVALID_CHARS_GLOBAL, '').trim();\r\n\r\n if (!sanitized) {\r\n searchSeqRef.current += 1;\r\n setIsSearching(false);\r\n setResults([]);\r\n setHasInvalidChars(true);\r\n setOpenDropdown(true);\r\n return;\r\n }\r\n \r\n setHasInvalidChars(false);\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 handleSearchChange = (value: string) => {\r\n setSearchQuery(value);\r\n window.clearTimeout(debounceRef.current);\r\n\r\n debounceRef.current = window.setTimeout(() => runSearch(value), 150);\r\n };\r\n\r\n const handleKeyDown = (e: React.KeyboardEvent) => {\r\n if (e.key !== 'Enter') return;\r\n \r\n e.preventDefault();\r\n\r\n const term = searchQuery.trim();\r\n if (!term) return;\r\n\r\n if (INVALID_CHARS.test(term)) { \r\n console.log(term);\r\n runSearch(term);\r\n return;\r\n }\r\n\r\n cancelPendingSearch();\r\n \r\n setOpenDropdown(false);\r\n setResults([]);\r\n setHasInvalidChars(false);\r\n \r\n onSearchSubmit?.(term);\r\n };\r\n\r\n const handleSearchClick: React.MouseEventHandler<HTMLButtonElement> = (e) => {\r\n e.preventDefault();\r\n\r\n const term = searchQuery.trim();\r\n if (!term) {\r\n runSearch('');\r\n return;\r\n }\r\n\r\n if (INVALID_CHARS.test(term)) { \r\n runSearch(term);\r\n return;\r\n }\r\n\r\n cancelPendingSearch();\r\n\r\n setOpenDropdown(false);\r\n setResults([]);\r\n setHasInvalidChars(false);\r\n \r\n onSearchSubmit?.(term);\r\n }\r\n\r\n React.useEffect(() => {\r\n const clearQuery = clearQueryOnNextResetRef.current;\r\n const closeMobile = closeMobileOnNextResetRef.current;\r\n\r\n if (closeMobile) {\r\n // sidebar/normal navigation\r\n closeMobileSearch();\r\n } else {\r\n // navigation from clicking a search result: keep mobile panel open\r\n if (clearQuery) setSearchQuery('');\r\n setResults([]);\r\n setOpenDropdown(false);\r\n window.clearTimeout(debounceRef.current);\r\n }\r\n\r\n // reset defaults for next navigation\r\n clearQueryOnNextResetRef.current = true;\r\n closeMobileOnNextResetRef.current = true;\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 type ResultsMode = 'desktop' | 'mobile';\r\n\r\n const DropdownResults = ({\r\n mode,\r\n }: {\r\n mode: ResultsMode;\r\n }) => {\r\n const isDesktop = mode === 'desktop';\r\n return (\r\n <Box>\r\n {!isSearching && hasInvalidChars ? (\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: theme.palette.background.paper,\r\n borderRadius: isDesktop ? '12px' : 0,\r\n px: 2,\r\n py: 1.5,\r\n }}\r\n >\r\n <Typography sx={{ fontSize: '14px', color: theme.palette.text.primary }}>\r\n Oops — your search includes symbols we don’t support yet. Please remove special characters (like %, @, #, =) and try again.\r\n </Typography>\r\n </Paper>\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 ${theme.palette.text.primary}`,\r\n boxShadow: 'none',\r\n backgroundColor: theme.palette.background.paper,\r\n borderRadius: isDesktop ? '12px' : 0,\r\n px: 2,\r\n py: 1.5,\r\n }}\r\n >\r\n <Typography sx={{ fontSize: '14px', color: theme.palette.text.primary }}>\r\n No results found\r\n </Typography>\r\n </Paper>\r\n ) : (\r\n <ResultsList\r\n mode={mode}\r\n items={results}\r\n onPick={(item) => {\r\n clearQueryOnNextResetRef.current = false; // keep text\r\n closeMobileOnNextResetRef.current = false; // keep mobile panel open\r\n\r\n setOpenDropdown(false);\r\n setResults([]);\r\n\r\n onResultClick?.(item);\r\n }}\r\n />\r\n )}\r\n </Box>\r\n );\r\n};\r\n\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 const displayedResults = mode == 'desktop' ? items.slice(0, 5) : items.slice(0, 3);\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 ${theme.palette.text.primary}`,\r\n boxShadow: 'none',\r\n backgroundColor: theme.palette.background.paper,\r\n\r\n ...(isDesktop\r\n ? {\r\n maxHeight: 'auto',\r\n borderRadius: '12px',\r\n overflowX: 'hidden',\r\n overflowY: 'hidden',\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 {displayedResults.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: theme.palette.background.paper,\r\n borderBottom:\r\n index === displayedResults.length - 1\r\n ? 'none'\r\n : '1px solid rgba(77,48,25,0.18)',\r\n '&:hover': { backgroundColor: theme.palette.custom.readByBackgroundColor },\r\n '&:hover .search-result-title': {\r\n textDecoration: 'underline',\r\n color: theme.palette.primary.main,\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: theme.palette.text.primary,\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 <LogoComponent />\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 <DropdownResults mode=\"desktop\"/>\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 <DropdownResults mode=\"mobile\"/>\r\n </Box>\r\n )}\r\n </Box>\r\n </Collapse>\r\n )}\r\n </Box>\r\n );\r\n};"],"names":["_jsx","_Fragment","_jsxs","styled","Box","Typography","ThemeContext","GPLogo","SchoolLogo","ECELogo","LightnLogo","TextField","IconButton","useTheme","useMediaQuery","Paper","List","ListItemButton","ListItemText","MenuRounded","Divider","InputAdornment","CircularProgress","SearchRounded","Popper","PopoverMenu","Collapse","CloseRounded"],"mappings":";;;;;;;;;;;;;AA6CA,MAAM,MAAM,GAAG,OAAO;AACtB,MAAM,OAAO,GAAG,QAAQ;AAExB,MAAM,YAAY,GAAG,CAAC,CAAS,KAAK,CAAC,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC;AAE5E,MAAM,qBAAqB,GAAG,CAAC,IAAY,KAAqB;AAC9D,IAAA,IAAI,CAAC,IAAI;AAAE,QAAA,OAAO,IAAI;AAEtB,IAAA,MAAM,OAAO,GAAG,IAAI,MAAM,CACxB,CAAA,CAAA,EAAI,YAAY,CAAC,MAAM,CAAC,CAAA,CAAA,EAAI,YAAY,CAAC,OAAO,CAAC,GAAG,EACpD,GAAG,CACJ;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;AAEjC,IAAA,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,CAC1B,CAAC,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,CAAC,EAAE,IAAI,KAAI;AAChC,QAAA,IAAI,CAAC,IAAI;AAAE,YAAA,OAAO,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,CAAC;QAEzC,IAAI,IAAI,KAAK,MAAM;AAAE,YAAA,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC;QAC5C,IAAI,IAAI,KAAK,OAAO;AAAE,YAAA,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC;QAE9C,GAAG,CAAC,IAAI,CACN,WAAW,IACTA,cAAA,CAAA,MAAA,EAAA,EAEE,KAAK,EAAE;AACL,gBAAA,OAAO,EAAE,OAAO;AAChB,gBAAA,YAAY,EAAE,CAAC;aAChB,EAAA,QAAA,EAEA,IAAI,IANA,GAAG,CAOH,KAEPA,cAAA,CAAC,KAAK,CAAC,QAAQ,cAAY,IAAI,EAAA,EAAV,GAAG,CAAyB,CAClD,CACF;QAED,OAAO,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC,CAAC;IACpC,CAAC,EACD,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CACf;IAED,OAAOA,cAAA,CAAAC,mBAAA,EAAA,EAAA,QAAA,EAAG,KAAK,EAAA,CAAI;AACrB,CAAC;AAED,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,QACEC,eAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,aAC1C,cAAc,CAAC,MAAM,GAAG,CAAC,KACxBF,cAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAE,EAAE,YAAY,EAAE,WAAW,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAA,QAAA,EACzD,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,MAC5BE,eAAA,CAAC,KAAK,CAAC,QAAQ,eACZ,qBAAqB,CAAC,IAAI,CAAC,EAC3B,GAAG,GAAG,cAAc,CAAC,MAAM,GAAG,CAAC,GAAGF,cAAA,CAAA,IAAA,EAAA,EAAA,CAAM,GAAG,IAAI,CAAA,EAAA,EAF7B,GAAG,CAGP,CAClB,CAAC,EAAA,CACE,CACP,EAEA,WAAW,CAAC,MAAM,GAAG,CAAC,KACrBA,cAAA,CAAA,IAAA,EAAA,EAAI,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,EAAA,QAAA,EACtC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,KAAI;AAC7B,oBAAA,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;oBACpD,OAAOA,cAAA,CAAA,IAAA,EAAA,EAAA,QAAA,EAAe,qBAAqB,CAAC,UAAU,CAAC,EAAA,EAAvC,GAAG,CAA0C;AAC/D,gBAAA,CAAC,CAAC,EAAA,CACC,CACN,CAAA,EAAA,CACG;AAEV;AAEA,MAAM,YAAY,GAAGG,eAAM,CAACC,YAAG,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,GAAGD,eAAM,CAACC,YAAG,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,GAAGD,eAAM,CAACC,YAAG,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;AAGoBD,eAAM,CAACE,mBAAU,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,GAAa,MAAK;IACnC,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CAACC,0BAAY,CAAC;AAEhD,IAAA,MAAM,SAAS,GAAG;AAChB,QAAA,KAAK,EAAE;AACL,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,OAAO,EAAE;AACV;KACF;IACD,QAAQ,SAAS;AACf,QAAA,KAAK,IAAI;AACP,YAAA,OAAON,cAAA,CAACO,iDAAM,EAAA,EAAA,GAAK,SAAS,GAAI;AAClC,QAAA,KAAK,QAAQ;AACX,YAAA,OAAOP,cAAA,CAACQ,qDAAU,EAAA,EAAA,GAAK,SAAS,GAAI;AACtC,QAAA,KAAK,KAAK;AACR,YAAA,OAAOR,cAAA,CAACS,kDAAO,EAAA,EAAA,GAAK,SAAS,GAAI;AACnC,QAAA;AACE,YAAA,OAAOT,cAAA,CAACU,uCAAU,EAAA,EAAA,GAAK,SAAS,GAAI;;AAE1C,CAAC;AAGD,MAAM,qBAAqB,GAAGP,eAAM,CAACC,YAAG,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,GAAGD,eAAM,CAACQ,kBAAS,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,GAAGR,eAAM,CAACS,mBAAU,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,GAAGT,eAAM,CAACC,YAAG,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,GAAGD,eAAM,CAACC,YAAG,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,GAAGD,eAAM,CAACC,YAAG,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,GAAGD,eAAM,CAACE,mBAAU,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,GAAGF,eAAM,CAACE,mBAAU,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,EACR,cAAc,GACf,KAAI;AACH,IAAA,MAAM,KAAK,GAAGQ,sBAAQ,EAAE;AACxB,IAAA,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,KAAK,CAAC,QAAQ,CAA2B,IAAI,CAAC;AAC9E,IAAA,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;AACxD,IAAA,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAuB,EAAE,CAAC;AACtE,IAAA,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;AAE7D,IAAA,MAAM,MAAM,GAAGC,sBAAa,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;;IAIxD,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,CAA0B,IAAI,CAAC;IACnE,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,CAAwB,IAAI,CAAC;;AAGjE,IAAA,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;IACrE,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAA0B,IAAI,CAAC;AAElE,IAAA,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;IACnE,MAAM,aAAa,GAAG,qCAAqC;IAC3D,MAAM,oBAAoB,GAAG,IAAI,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC;AAEnE,IAAA,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;IAC3D,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAwB,IAAI,CAAC;IAC3D,MAAM,QAAQ,GAAG,YAAY,KAAK,QAAQ,IAAI,YAAY,KAAK,WAAW;IAE1E,MAAM,wBAAwB,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;IACnD,MAAM,yBAAyB,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;IAIpD,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IACpC,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAqB,SAAS,CAAC;IAE/D,MAAM,iBAAiB,GAAG,MAAK;QAE7B,mBAAmB,CAAC,KAAK,CAAC;AAC1B,QAAA,IAAI,wBAAwB,CAAC,OAAO,EAAC;YACnC,cAAc,CAAC,EAAE,CAAC;QACpB;QACA,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;IAED,MAAM,mBAAmB,GAAG,MAAK;AAC/B,QAAA,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,OAAO,CAAC;AACxC,QAAA,WAAW,CAAC,OAAO,GAAG,SAAS;;AAG/B,QAAA,YAAY,CAAC,OAAO,IAAI,CAAC;QAEzB,cAAc,CAAC,KAAK,CAAC;AACvB,IAAA,CAAC;AAED,IAAA,MAAM,SAAS,GAAG,OAAO,IAAY,KAAI;QACvC,IAAI,CAAC,MAAM,EAAE;AACX,YAAA,YAAY,CAAC,OAAO,IAAI,CAAC;YACzB,cAAc,CAAC,KAAK,CAAC;YACrB,UAAU,CAAC,EAAE,CAAC;YACd,kBAAkB,CAAC,KAAK,CAAC;YACzB,eAAe,CAAC,KAAK,CAAC;YACtB;QACF;AACA,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE;AAChB,YAAA,YAAY,CAAC,OAAO,IAAI,CAAC;YACzB,cAAc,CAAC,KAAK,CAAC;YACrB,kBAAkB,CAAC,KAAK,CAAC;YACzB,eAAe,CAAC,KAAK,CAAC;YACtB,UAAU,CAAC,EAAE,CAAC;YACd;QACF;AACA,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE;QAE/D,IAAI,CAAC,SAAS,EAAE;AACd,YAAA,YAAY,CAAC,OAAO,IAAI,CAAC;YACzB,cAAc,CAAC,KAAK,CAAC;YACrB,UAAU,CAAC,EAAE,CAAC;YACd,kBAAkB,CAAC,IAAI,CAAC;YACxB,eAAe,CAAC,IAAI,CAAC;YACrB;QACF;QAEA,kBAAkB,CAAC,KAAK,CAAC;AAEzB,QAAA,MAAM,GAAG,GAAG,EAAE,YAAY,CAAC,OAAO;QAClC,cAAc,CAAC,IAAI,CAAC;AACpB,QAAA,IAAI;AACF,YAAA,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;AAEtD,YAAA,IAAI,GAAG,KAAK,YAAY,CAAC,OAAO;AAAE,gBAAA,OAAO;AAEzC,YAAA,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE;YAC1C,UAAU,CAAC,IAAI,CAAC;AAChB,YAAA,eAAe,CAAC,IAAI,CAAC,CAAC;QACxB;gBAAU;AACR,YAAA,IAAI,GAAG,KAAK,YAAY,CAAC,OAAO;gBAAE,cAAc,CAAC,KAAK,CAAC;QACzD;AACF,IAAA,CAAC;AAED,IAAA,MAAM,kBAAkB,GAAG,CAAC,KAAa,KAAI;QAC3C,cAAc,CAAC,KAAK,CAAC;AACrB,QAAA,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,OAAO,CAAC;AAExC,QAAA,WAAW,CAAC,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,SAAS,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC;AACtE,IAAA,CAAC;AAED,IAAA,MAAM,aAAa,GAAG,CAAC,CAAsB,KAAI;AAC/C,QAAA,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO;YAAE;QAEvB,CAAC,CAAC,cAAc,EAAE;AAElB,QAAA,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE;AAC/B,QAAA,IAAI,CAAC,IAAI;YAAE;AAEX,QAAA,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AAC5B,YAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;YACjB,SAAS,CAAC,IAAI,CAAC;YACf;QACF;AAEA,QAAA,mBAAmB,EAAE;QAErB,eAAe,CAAC,KAAK,CAAC;QACtB,UAAU,CAAC,EAAE,CAAC;QACd,kBAAkB,CAAC,KAAK,CAAC;AAEzB,QAAA,cAAc,GAAG,IAAI,CAAC;AACxB,IAAA,CAAC;AAED,IAAA,MAAM,iBAAiB,GAA+C,CAAC,CAAC,KAAI;QAC1E,CAAC,CAAC,cAAc,EAAE;AAElB,QAAA,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE;QAC/B,IAAI,CAAC,IAAI,EAAE;YACT,SAAS,CAAC,EAAE,CAAC;YACb;QACF;AAEA,QAAA,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAC5B,SAAS,CAAC,IAAI,CAAC;YACf;QACF;AAEA,QAAA,mBAAmB,EAAE;QAErB,eAAe,CAAC,KAAK,CAAC;QACtB,UAAU,CAAC,EAAE,CAAC;QACd,kBAAkB,CAAC,KAAK,CAAC;AAEzB,QAAA,cAAc,GAAG,IAAI,CAAC;AACxB,IAAA,CAAC;AAED,IAAA,KAAK,CAAC,SAAS,CAAC,MAAK;AACnB,QAAA,MAAM,UAAU,GAAG,wBAAwB,CAAC,OAAO;AACnD,QAAA,MAAM,WAAW,GAAG,yBAAyB,CAAC,OAAO;QAErD,IAAI,WAAW,EAAE;;AAEf,YAAA,iBAAiB,EAAE;QACrB;aAAO;;AAEL,YAAA,IAAI,UAAU;gBAAE,cAAc,CAAC,EAAE,CAAC;YAClC,UAAU,CAAC,EAAE,CAAC;YACd,eAAe,CAAC,KAAK,CAAC;AACtB,YAAA,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,OAAO,CAAC;QAC1C;;AAGA,QAAA,wBAAwB,CAAC,OAAO,GAAG,IAAI;AACvC,QAAA,yBAAyB,CAAC,OAAO,GAAG,IAAI;AAC1C,IAAA,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;AAEd,IAAA,KAAK,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;AAIN,IAAA,MAAM,eAAe,GAAG,CAAC,EACvB,IAAI,GAGL,KAAI;AACH,QAAA,MAAM,SAAS,GAAG,IAAI,KAAK,SAAS;QACpC,QACEd,eAACI,YAAG,EAAA,EAAA,QAAA,EACH,CAAC,WAAW,IAAI,eAAe,IAC9BJ,cAAA,CAACe,cAAK,EAAA,EACJ,SAAS,EAAE,CAAC,EACZ,EAAE,EAAE;AACF,oBAAA,EAAE,EAAE,CAAC;AACL,oBAAA,MAAM,EAAE,mBAAmB;AAC3B,oBAAA,SAAS,EAAE,MAAM;AACjB,oBAAA,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK;oBAC/C,YAAY,EAAE,SAAS,GAAG,MAAM,GAAG,CAAC;AACpC,oBAAA,EAAE,EAAE,CAAC;AACL,oBAAA,EAAE,EAAE,GAAG;iBACR,EAAA,QAAA,EAEDf,cAAA,CAACK,mBAAU,EAAA,EAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,EAAA,QAAA,EAAA,uIAAA,EAAA,CAE1D,EAAA,CACP,IACN,CAAC,WAAW,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IACtCL,eAACe,cAAK,EAAA,EACJ,SAAS,EAAE,CAAC,EACZ,EAAE,EAAE;AACF,oBAAA,EAAE,EAAE,CAAC;oBACL,MAAM,EAAE,aAAa,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAA,CAAE;AACjD,oBAAA,SAAS,EAAE,MAAM;AACjB,oBAAA,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK;oBAC/C,YAAY,EAAE,SAAS,GAAG,MAAM,GAAG,CAAC;AACpC,oBAAA,EAAE,EAAE,CAAC;AACL,oBAAA,EAAE,EAAE,GAAG;AACR,iBAAA,EAAA,QAAA,EAEDf,eAACK,mBAAU,EAAA,EAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,EAAA,QAAA,EAAA,kBAAA,EAAA,CAE1D,GACP,KAERL,eAAC,WAAW,EAAA,EACV,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,CAAC,IAAI,KAAI;AACf,oBAAA,wBAAwB,CAAC,OAAO,GAAG,KAAK,CAAC;AACzC,oBAAA,yBAAyB,CAAC,OAAO,GAAG,KAAK,CAAC;oBAE1C,eAAe,CAAC,KAAK,CAAC;oBACtB,UAAU,CAAC,EAAE,CAAC;AAEd,oBAAA,aAAa,GAAG,IAAI,CAAC;AACvB,gBAAA,CAAC,EAAA,CACD,CACH,EAAA,CACK;AAEZ,IAAA,CAAC;AAGC,IAAA,MAAM,WAAW,GAAG,CAAC,EACnB,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,MAAM,GAMP,KAAI;AACH,QAAA,MAAM,SAAS,GAAG,IAAI,KAAK,SAAS;QACpC,MAAM,gBAAgB,GAAG,IAAI,IAAI,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;AAClF,QAAA,QACEA,cAAA,CAACe,cAAK,EAAA,EACJ,GAAG,EAAE,QAAQ,EACb,SAAS,EAAE,CAAC,EAEZ,EAAE,EAAE;AACF,gBAAA,EAAE,EAAE,CAAC;gBACL,MAAM,EAAE,aAAa,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAA,CAAE;AACjD,gBAAA,SAAS,EAAE,MAAM;AACjB,gBAAA,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK;AAE/C,gBAAA,IAAI;AACF,sBAAE;AACE,wBAAA,SAAS,EAAE,MAAM;AACjB,wBAAA,YAAY,EAAE,MAAM;AACpB,wBAAA,SAAS,EAAE,QAAQ;AACnB,wBAAA,SAAS,EAAE,QAAQ;AACpB;AACH,sBAAE;wBACE,QAAQ,EAAE,QAAQ;AAClB,wBAAA,EAAE,EAAE,CAAC;qBACN,CAAC;AACP,aAAA,EAAA,QAAA,EAEDf,eAACgB,aAAI,EAAA,EAAC,KAAK,EAAA,IAAA,EAAC,cAAc,EAAA,IAAA,EAAA,QAAA,EACvB,gBAAgB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,MAChChB,cAAA,CAACiB,uBAAc,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,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK;AAC/C,wBAAA,YAAY,EACZ,KAAK,KAAK,gBAAgB,CAAC,MAAM,GAAG;AAC1B,8BAAE;AACF,8BAAE,+BAA+B;wBAC3C,SAAS,EAAE,EAAE,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,qBAAqB,EAAE;AAC1E,wBAAA,8BAA8B,EAAE;AAC9B,4BAAA,cAAc,EAAE,WAAW;AAC3B,4BAAA,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI;AAClC,yBAAA;AACF,qBAAA,EAAA,QAAA,EAEDjB,eAACkB,qBAAY,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,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO;yBAClC,EACD,wBAAwB,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,EAAE,EAAA,CACrD,EAAA,EA5BG,KAAK,CA6BK,CAClB,CAAC,EAAA,CACG,EAAA,CACD;AAEZ,IAAA,CAAC;AAGD,IAAA,QACEhB,eAAA,CAACE,YAAG,EAAA,EAAA,QAAA,EAAA,CACFF,gBAAC,YAAY,EAAA,EAAC,GAAG,EAAE,SAAS,EAAA,QAAA,EAAA,CACzB,QAAQ,KACPA,eAAA,CAAAD,mBAAA,EAAA,EAAA,QAAA,EAAA,CACED,cAAA,CAACY,mBAAU,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,EAEZZ,cAAA,CAACmB,yBAAW,EAAA,EAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,GAAI,EAAA,CAC1C,EAEbnB,cAAA,CAACoB,gBAAO,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,EAEDpB,cAAA,CAAC,iBAAiB,EAAA,EAAA,QAAA,EAChBA,cAAA,CAAC,cAAc,EAAA,EAAA,QAAA,EACbA,cAAA,CAAC,aAAa,EAAA,EAAA,CAAG,EAAA,CACF,GACC,EAGnB,QAAQ,IAAI,MAAM,KACjBE,eAAA,CAAC,qBAAqB,eACpBF,cAAA,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;oCACV,YAAY,GACVE,eAAA,CAACmB,uBAAc,EAAA,EAAC,QAAQ,EAAC,KAAK,EAAA,QAAA,EAAA,CAC5BrB,cAAA,CAACI,YAAG,EAAA,EAAC,EAAE,EAAI,EAAE,EAAE,EAAE,CAAC,EAAC,YAChB,WAAW,GAAGJ,cAAA,CAACsB,yBAAgB,IAAC,IAAI,EAAE,EAAE,EAAA,CAAI,GAAG,IAAI,EAAA,CAChD,EACNtB,cAAA,CAAC,kBAAkB,EAAA,EAAC,OAAO,EAAE,iBAAiB,EAAA,QAAA,EAC5CA,cAAA,CAAC,gBAAgB,EAAA,EAAA,QAAA,EACfA,cAAA,CAACuB,2BAAa,EAAA,EAAA,CAAG,EAAA,CACA,EAAA,CACA,CAAA,EAAA,CACN,CAClB;AACF,iCAAA,EAAA,CACD,EAEFvB,cAAA,CAACwB,eAAM,EAAA,EACL,IAAI,EAAE,YAAY,IAAI,CAAC,CAAC,eAAe,CAAC,OAAO,EAC/C,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,EAEpExB,cAAA,CAAC,eAAe,EAAA,EAAC,IAAI,EAAC,SAAS,EAAA,CAAE,EAAA,CAC1B,CAAA,EAAA,CACa,CACzB,EAEDE,eAAA,CAAC,mBAAmB,EAAA,EAAA,QAAA,EAAA,CAEjB,QAAQ,IAAI,CAAC,MAAM,KAClBF,cAAA,CAAC,kBAAkB,EAAA,EACjB,aAAa,QACb,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,cAAA,CAAC,gBAAgB,EAAA,EAAA,QAAA,EACfA,cAAA,CAACuB,2BAAa,EAAA,EAAA,CAAG,EAAA,CACA,EAAA,CACA,CACtB,EAEDrB,eAAA,CAACU,mBAAU,EAAA,EAAC,OAAO,EAAE,UAAU,EAAE,aAAa,mBAC5CZ,cAAA,CAAC,YAAY,EAAA,EAAA,QAAA,EACXA,cAAA,CAAC,gBAAgB,EAAA,EAAA,QAAA,EAAE,YAAY,EAAA,CAAoB,EAAA,CACtC,EACfA,cAAA,CAAC,cAAc,EAAA,EAAA,QAAA,EAAE,QAAQ,EAAA,CAAkB,CAAA,EAAA,CAChC,CAAA,EAAA,CACO,EAEtBA,cAAA,CAACyB,mBAAW,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,KACNzB,cAAA,CAAC0B,iBAAQ,EAAA,EAAC,EAAE,EAAE,QAAQ,IAAI,gBAAgB,EAAE,aAAa,EAAA,IAAA,EAAC,OAAO,EAAE,GAAG,EAAA,QAAA,EACpExB,eAAA,CAACE,YAAG,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,CAEDF,eAAA,CAACE,YAAG,EAAA,EAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAA,QAAA,EAAA,CACxDJ,cAAA,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,EACxB,UAAU,EAAE;wCACV,YAAY,GACVA,cAAA,CAACqB,uBAAc,EAAA,EAAC,QAAQ,EAAC,KAAK,EAAA,QAAA,EAC3B,WAAW,GAAGrB,cAAA,CAACsB,yBAAgB,EAAA,EAAC,IAAI,EAAE,EAAE,EAAA,CAAI,GAAG,IAAI,EAAA,CACrC;qCAEpB,EAAA,CACD,EAEFtB,cAAA,CAACY,mBAAU,EAAA,EAAC,OAAO,EAAE,iBAAiB,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,EAAA,QAAA,EAC7EZ,cAAA,CAAC2B,0BAAY,EAAA,EAAA,CAAG,EAAA,CACL,CAAA,EAAA,CACT,EACL,YAAY,KACX3B,cAAA,CAACI,YAAG,EAAA,EAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAA,QAAA,EACjBJ,cAAA,CAAC,eAAe,EAAA,EAAC,IAAI,EAAC,QAAQ,EAAA,CAAE,EAAA,CAC5B,CACP,CAAA,EAAA,CACG,EAAA,CACG,CACZ,CAAA,EAAA,CACG;AAEV;;;;"}
@@ -87,24 +87,42 @@ const Modal = ({ isOpen, onClose, variableId, status, requirementType, descripti
87
87
  };
88
88
  const canSubmitSave = isLoading || variableState === variable.VariableState.Pending;
89
89
  const statusConfig = {
90
- [variable.VariableState.Pending]: { color: '#EBC7FF', label: 'Pending' },
91
- [variable.VariableState.Draft]: { color: '#4D3019', label: 'Draft' },
92
- [variable.VariableState.Declined]: { color: '#4D3019', label: 'Declined' },
93
- [variable.VariableState.ActionRequired]: { color: '#FFBCB3', label: 'Action Required' },
94
- [variable.VariableState.Accepted]: { color: '#DBF59A', label: 'Accepted' },
95
- [variable.VariableState.NotStarted]: { color: '#000000ff', label: 'Not Started' },
90
+ [variable.VariableState.Pending]: {
91
+ color: theme.palette.statusColors.pending.highlightSelected,
92
+ label: 'Pending',
93
+ },
94
+ [variable.VariableState.Draft]: {
95
+ color: theme.palette.dark.main,
96
+ label: 'Draft',
97
+ },
98
+ [variable.VariableState.Declined]: {
99
+ color: theme.palette.dark.main,
100
+ label: 'Declined',
101
+ },
102
+ [variable.VariableState.ActionRequired]: {
103
+ color: theme.palette.statusColors.actionRequired.highlightSelected,
104
+ label: 'Action Required',
105
+ },
106
+ [variable.VariableState.Accepted]: {
107
+ color: theme.palette.statusColors.accepted.highlightSelected,
108
+ label: 'Accepted',
109
+ },
110
+ [variable.VariableState.NotStarted]: {
111
+ color: theme.palette.statusColors.unknown.highlightSelected,
112
+ label: 'Not Started',
113
+ },
96
114
  };
97
115
  const reqTypeConfig = {
98
- "Default": {
99
- color: '#F5A623',
100
- highlight: '#f3bf6bff',
101
- highlightSelected: '#F5A623',
116
+ Default: {
117
+ color: theme.palette.statusColors.mandatory.color,
118
+ highlight: theme.palette.statusColors.mandatory.highlight,
119
+ highlightSelected: theme.palette.statusColors.mandatory.highlightSelected,
102
120
  label: 'Mandatory',
103
121
  },
104
- "Optional": {
105
- color: '#F5D76E',
106
- highlight: '#f3e2a5ff',
107
- highlightSelected: '#F5D76E',
122
+ Optional: {
123
+ color: theme.palette.statusColors.optional.color,
124
+ highlight: theme.palette.statusColors.optional.highlight,
125
+ highlightSelected: theme.palette.statusColors.optional.highlightSelected,
108
126
  label: 'Optional',
109
127
  },
110
128
  };
@@ -187,10 +205,8 @@ const Modal = ({ isOpen, onClose, variableId, status, requirementType, descripti
187
205
  },
188
206
  }, children: isSubmitting ? jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(material.CircularProgress, { size: 20 }), jsxRuntime.jsx(material.Typography, { sx: { paddingLeft: 2 }, children: "Submitting..." })] }) : useDefaultValue === false ? "Submit for review" : "Submit" }), variableReqType === variable.RequirementType.Optional &&
189
207
  (jsxRuntime.jsx(Button.Button, { onClick: onDeclineWording, variant: "outline", size: "md", sx: {
190
- backgroundColor: '#ff464652',
191
- '&:hover': {
192
- backgroundColor: '#ff464680', // Darker purple on hover
193
- }
208
+ backgroundColor: `${theme.palette.custom.dangerBackground}52`,
209
+ '&:hover': { backgroundColor: `${theme.palette.custom.dangerBackground}80` },
194
210
  }, disabled: canSubmitSave, children: "Decline wording" }))] })) : (jsxRuntime.jsx(material.Box, { sx: { display: 'flex', gap: 1.5, flexWrap: 'wrap' }, children: jsxRuntime.jsx(Button.Button, { onClick: () => {
195
211
  setIsSubmitting(true);
196
212
  // Pass the default value and true directly to onSubmit
@@ -200,10 +216,8 @@ const Modal = ({ isOpen, onClose, variableId, status, requirementType, descripti
200
216
  setUseDefaultValue(true);
201
217
  onSubmit?.(payloadValue, true);
202
218
  }, variant: "outline", size: "md", disabled: canSubmitSave, sx: {
203
- backgroundColor: '#ff464652',
204
- '&:hover': {
205
- backgroundColor: '#ff464680',
206
- }
219
+ backgroundColor: `${theme.palette.custom.dangerBackground}52`,
220
+ '&:hover': { backgroundColor: `${theme.palette.custom.dangerBackground}80` },
207
221
  }, children: isSubmitting ? (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(material.CircularProgress, { size: 20 }), jsxRuntime.jsx(material.Typography, { sx: { paddingLeft: 2 }, children: "Restoring..." })] })) : ("Restore wording") }) })), jsxRuntime.jsxs(material.Box, { sx: {
208
222
  display: 'flex',
209
223
  alignItems: 'center',