From c0d25b16aa796549f22d301676169a29c604c42b Mon Sep 17 00:00:00 2001 From: Jack Zheng Date: Sat, 28 Mar 2026 13:16:17 -0700 Subject: [PATCH 1/6] feat: add new Project Home Page --- .../_components/Projects/ProjectPage.tsx | 49 +- .../_components/Projects/UnscoredPage.tsx | 166 ++++-- public/judges/projects/venueMap2026.svg | 524 ++++++++++++++++++ public/judges/projects/x.svg | 3 + 4 files changed, 663 insertions(+), 79 deletions(-) create mode 100644 public/judges/projects/venueMap2026.svg create mode 100644 public/judges/projects/x.svg diff --git a/app/(pages)/judges/_components/Projects/ProjectPage.tsx b/app/(pages)/judges/_components/Projects/ProjectPage.tsx index ed08c8304..8f95ca686 100644 --- a/app/(pages)/judges/_components/Projects/ProjectPage.tsx +++ b/app/(pages)/judges/_components/Projects/ProjectPage.tsx @@ -11,24 +11,33 @@ import Loader from '@pages/_components/Loader/Loader'; interface ButtonProps { text: string; isSelected: boolean; - width: string; + badgeCount?: number; onClick: () => void; } const Button: React.FC = ({ text, isSelected, - width, + badgeCount, onClick, }) => ( - +
+ + {badgeCount !== undefined && ( + + {badgeCount} + + )} +
); const ProjectPage = () => { @@ -51,35 +60,37 @@ const ProjectPage = () => { } return ( -
+
- - + + Back to home -
- - Project + +
+ + Projects
-
+ +
+
{loading ? ( diff --git a/app/(pages)/judges/_components/Projects/UnscoredPage.tsx b/app/(pages)/judges/_components/Projects/UnscoredPage.tsx index 62acf7559..92a88bd46 100644 --- a/app/(pages)/judges/_components/Projects/UnscoredPage.tsx +++ b/app/(pages)/judges/_components/Projects/UnscoredPage.tsx @@ -4,18 +4,17 @@ import Image from 'next/image'; import { useSession } from 'next-auth/react'; import ProjectTab from './ProjectTab'; import Team from '@typeDefs/team'; - import { reportMissingProject } from '@actions/teams/reportMissingTeam'; -import styles from './UnscoredPage.module.scss'; import ReportModal from './ReportModal'; import EmptyState from './EmptyState'; +import { FaChevronRight } from 'react-icons/fa6'; -import firstFloorMap from '@public/judges/projects/lower-tabling.svg'; +import firstFloorMap from '@public/judges/projects/venueMap2026.svg'; import secondFloorMap from '@public/judges/projects/upper-tabling.svg'; interface UnscoredPageProps { teams: Team[]; - revalidateData: () => void; // Callback to refresh parent data + revalidateData: () => void; } export default function UnscoredPage({ @@ -26,6 +25,7 @@ export default function UnscoredPage({ const user = session?.user; const judgeId = user?.id ?? ''; const [expandReportButton, setExpandReportButton] = useState(false); + const [mapExpanded, setMapExpanded] = useState(false); const [modalStage, setModalStage] = useState< 'hidden' | 'loading' | 'success' | 'error' >('hidden'); @@ -58,94 +58,140 @@ export default function UnscoredPage({ }; return ( -
- - Current Project: - - -

- Projects must be judged in order one by one order. +

+ {/* Current Project header */} +
+

+ Current Project

-

- If the team you are judging is not present, tap the{' '} - red button below. +

+ Projects must be judged in order one by one order.

- +
+ + {/* CTA Button */} - - {currentTeam.tableNumber || currentTeam._id} - - - {currentTeam.name || `Team ${currentTeam._id}`} - - - - +
+ + {currentTeam.tableNumber || currentTeam._id} + + + {currentTeam.name || `Team ${currentTeam._id}`} + +
+ -
-
+ + {/* Map card */} +
+
first floor map
-
- second floor map -
+
-
+ {/* Flag section */} +
+

+ If the team you are judging is not present, tap the{' '} + red button{' '} + below. +

+ {expandReportButton ? ( - <> -
- Are you sure +
+
+ Are you sure?
-
handleTeamReport(currentTeam)} + className="flex-1 h-[56px] bg-[#F4847A] rounded-full text-white font-semibold text-[16px]" > Yes -
-
+
- + +
) : ( -
setExpandReportButton(true)} + className="w-full h-[56px] bg-[#F4847A] rounded-full text-white font-semibold text-[18px]" > Flag team as missing -
+ )}
+ {/* Next up */} {upcomingTeams.length > 0 && ( - <> - - Next up: +
+ + Next up -
+
{upcomingTeams.map((team) => ( ))}
- +
+ )} + + {/* Expanded Map Modal */} + {mapExpanded && ( +
e.stopPropagation()} + > +
e.stopPropagation()} + > +
+ +
+ +
+ first floor map +
+
+
)} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/judges/projects/x.svg b/public/judges/projects/x.svg new file mode 100644 index 000000000..c146df9e3 --- /dev/null +++ b/public/judges/projects/x.svg @@ -0,0 +1,3 @@ + + + From c991d4b97ad520884419af64bd2fc489495d0761 Mon Sep 17 00:00:00 2001 From: michelleyeoh Date: Sat, 28 Mar 2026 20:22:10 -0700 Subject: [PATCH 2/6] moved and deleted files --- .../_components/Projects/EmptyState.tsx | 0 .../_components/Projects/ProjectPage.tsx | 0 .../_components/Projects/ProjectTab.tsx | 0 .../Projects/ReportModal.module.scss | 0 .../_components/Projects/ReportModal.tsx | 0 .../_components/Projects/ScoredPage.tsx | 0 .../Projects/UnscoredPage.module.scss | 0 .../_components/Projects/UnscoredPage.tsx | 11 +- .../(app)/projects/_components/ProjectTab.tsx | 26 ---- .../(app)/projects/_components/ScoredPage.tsx | 19 --- .../projects/_components/UnjudgedPage.tsx | 117 ------------------ app/(pages)/judges/(app)/projects/page.tsx | 2 +- 12 files changed, 4 insertions(+), 171 deletions(-) rename app/(pages)/judges/{ => (app)}/_components/Projects/EmptyState.tsx (100%) rename app/(pages)/judges/{ => (app)}/_components/Projects/ProjectPage.tsx (100%) rename app/(pages)/judges/{ => (app)}/_components/Projects/ProjectTab.tsx (100%) rename app/(pages)/judges/{ => (app)}/_components/Projects/ReportModal.module.scss (100%) rename app/(pages)/judges/{ => (app)}/_components/Projects/ReportModal.tsx (100%) rename app/(pages)/judges/{ => (app)}/_components/Projects/ScoredPage.tsx (100%) rename app/(pages)/judges/{ => (app)}/_components/Projects/UnscoredPage.module.scss (100%) rename app/(pages)/judges/{ => (app)}/_components/Projects/UnscoredPage.tsx (95%) delete mode 100644 app/(pages)/judges/(app)/projects/_components/ProjectTab.tsx delete mode 100644 app/(pages)/judges/(app)/projects/_components/ScoredPage.tsx delete mode 100644 app/(pages)/judges/(app)/projects/_components/UnjudgedPage.tsx diff --git a/app/(pages)/judges/_components/Projects/EmptyState.tsx b/app/(pages)/judges/(app)/_components/Projects/EmptyState.tsx similarity index 100% rename from app/(pages)/judges/_components/Projects/EmptyState.tsx rename to app/(pages)/judges/(app)/_components/Projects/EmptyState.tsx diff --git a/app/(pages)/judges/_components/Projects/ProjectPage.tsx b/app/(pages)/judges/(app)/_components/Projects/ProjectPage.tsx similarity index 100% rename from app/(pages)/judges/_components/Projects/ProjectPage.tsx rename to app/(pages)/judges/(app)/_components/Projects/ProjectPage.tsx diff --git a/app/(pages)/judges/_components/Projects/ProjectTab.tsx b/app/(pages)/judges/(app)/_components/Projects/ProjectTab.tsx similarity index 100% rename from app/(pages)/judges/_components/Projects/ProjectTab.tsx rename to app/(pages)/judges/(app)/_components/Projects/ProjectTab.tsx diff --git a/app/(pages)/judges/_components/Projects/ReportModal.module.scss b/app/(pages)/judges/(app)/_components/Projects/ReportModal.module.scss similarity index 100% rename from app/(pages)/judges/_components/Projects/ReportModal.module.scss rename to app/(pages)/judges/(app)/_components/Projects/ReportModal.module.scss diff --git a/app/(pages)/judges/_components/Projects/ReportModal.tsx b/app/(pages)/judges/(app)/_components/Projects/ReportModal.tsx similarity index 100% rename from app/(pages)/judges/_components/Projects/ReportModal.tsx rename to app/(pages)/judges/(app)/_components/Projects/ReportModal.tsx diff --git a/app/(pages)/judges/_components/Projects/ScoredPage.tsx b/app/(pages)/judges/(app)/_components/Projects/ScoredPage.tsx similarity index 100% rename from app/(pages)/judges/_components/Projects/ScoredPage.tsx rename to app/(pages)/judges/(app)/_components/Projects/ScoredPage.tsx diff --git a/app/(pages)/judges/_components/Projects/UnscoredPage.module.scss b/app/(pages)/judges/(app)/_components/Projects/UnscoredPage.module.scss similarity index 100% rename from app/(pages)/judges/_components/Projects/UnscoredPage.module.scss rename to app/(pages)/judges/(app)/_components/Projects/UnscoredPage.module.scss diff --git a/app/(pages)/judges/_components/Projects/UnscoredPage.tsx b/app/(pages)/judges/(app)/_components/Projects/UnscoredPage.tsx similarity index 95% rename from app/(pages)/judges/_components/Projects/UnscoredPage.tsx rename to app/(pages)/judges/(app)/_components/Projects/UnscoredPage.tsx index 92a88bd46..a4505dc6b 100644 --- a/app/(pages)/judges/_components/Projects/UnscoredPage.tsx +++ b/app/(pages)/judges/(app)/_components/Projects/UnscoredPage.tsx @@ -9,8 +9,7 @@ import ReportModal from './ReportModal'; import EmptyState from './EmptyState'; import { FaChevronRight } from 'react-icons/fa6'; -import firstFloorMap from '@public/judges/projects/venueMap2026.svg'; -import secondFloorMap from '@public/judges/projects/upper-tabling.svg'; +import venueMap from '@public/judges/projects/venueMap2026.svg'; interface UnscoredPageProps { teams: Team[]; @@ -88,7 +87,7 @@ export default function UnscoredPage({ {/* Map card */}
- first floor map + first floor map
- first floor map + first floor map
diff --git a/app/(pages)/judges/(app)/projects/_components/ProjectTab.tsx b/app/(pages)/judges/(app)/projects/_components/ProjectTab.tsx deleted file mode 100644 index 4b7642656..000000000 --- a/app/(pages)/judges/(app)/projects/_components/ProjectTab.tsx +++ /dev/null @@ -1,26 +0,0 @@ -import Team from '@typeDefs/team'; -import Link from 'next/link'; -interface ProjectTabProps { - team: Team; - clickable?: boolean; -} - -const ProjectTab: React.FC = ({ team, clickable = true }) => { - return ( - - - {team.tableNumber} - - - {team.name} - - - ); -}; - -export default ProjectTab; diff --git a/app/(pages)/judges/(app)/projects/_components/ScoredPage.tsx b/app/(pages)/judges/(app)/projects/_components/ScoredPage.tsx deleted file mode 100644 index 4872a51c6..000000000 --- a/app/(pages)/judges/(app)/projects/_components/ScoredPage.tsx +++ /dev/null @@ -1,19 +0,0 @@ -'use client'; - -import Team from '@typeDefs/team'; -import ProjectTab from './ProjectTab'; -interface ScoredPageProps { - projects: Team[]; -} - -const ScoredPage = ({ projects }: ScoredPageProps) => { - return ( -
- {projects.map((project) => ( - - ))} -
- ); -}; - -export default ScoredPage; diff --git a/app/(pages)/judges/(app)/projects/_components/UnjudgedPage.tsx b/app/(pages)/judges/(app)/projects/_components/UnjudgedPage.tsx deleted file mode 100644 index 004979a98..000000000 --- a/app/(pages)/judges/(app)/projects/_components/UnjudgedPage.tsx +++ /dev/null @@ -1,117 +0,0 @@ -import { useState } from 'react'; -import ProjectTab from './ProjectTab'; -import Image from 'next/image'; -import projectCow from '/public/judges/projects/project-cow.svg'; -import Team from '@typeDefs/team'; -import Link from 'next/link'; - -interface UnjudgedPageProps { - projects: Team[]; -} - -const UnjudgedPage = ({ projects }: UnjudgedPageProps) => { - const [showConfirmation, setShowConfirmation] = useState(false); - - const handleReportTeam = () => { - setShowConfirmation(false); - // TODO: call report missing team server action here - }; - - if (projects.length === 0) { - return ( -
- - You're Done! - - - You've judged all your projects. - - - Thank you so much! - - Project Cow -
- ); - } - return ( -
-

- Current project: -

-

- Projects must be judged one by one in order.{'\n'} - - If the team is not at their table when you arrive, tab the{' '} - red button below. - -

- - - {projects[0].tableNumber} - - - {projects[0].name} - - - - - -
-
- - - -
- - Next up: - -
- {projects.map( - (project, idx) => - idx !== 0 && ( - - ) - )} -
-
- ); -}; - -export default UnjudgedPage; diff --git a/app/(pages)/judges/(app)/projects/page.tsx b/app/(pages)/judges/(app)/projects/page.tsx index 342b28683..a8d2559d1 100644 --- a/app/(pages)/judges/(app)/projects/page.tsx +++ b/app/(pages)/judges/(app)/projects/page.tsx @@ -1,7 +1,7 @@ 'use client'; // import SearchBar from './_components/SearchBar'; -import ProjectPage from '../../_components/Projects/ProjectPage'; +import ProjectPage from '../_components/Projects/ProjectPage'; export default function Judges() { return ( From d9de53c041143a456fbdadd84c4b101afc993129 Mon Sep 17 00:00:00 2001 From: michelleyeoh Date: Sat, 28 Mar 2026 21:18:01 -0700 Subject: [PATCH 3/6] clean up unscored page --- .../_components/Projects/ProjectPage.tsx | 27 +- .../(app)/_components/Projects/ProjectTab.tsx | 6 +- .../Projects/UnscoredPage.module.scss | 64 ----- .../_components/Projects/UnscoredPage.tsx | 246 +++++++++--------- app/(pages)/judges/(app)/projects/page.tsx | 2 +- 5 files changed, 144 insertions(+), 201 deletions(-) delete mode 100644 app/(pages)/judges/(app)/_components/Projects/UnscoredPage.module.scss diff --git a/app/(pages)/judges/(app)/_components/Projects/ProjectPage.tsx b/app/(pages)/judges/(app)/_components/Projects/ProjectPage.tsx index 8f95ca686..c0b762067 100644 --- a/app/(pages)/judges/(app)/_components/Projects/ProjectPage.tsx +++ b/app/(pages)/judges/(app)/_components/Projects/ProjectPage.tsx @@ -24,10 +24,10 @@ const Button: React.FC = ({
-
+
{loading ? ( ) : error ? ( diff --git a/app/(pages)/judges/(app)/_components/Projects/ProjectTab.tsx b/app/(pages)/judges/(app)/_components/Projects/ProjectTab.tsx index 6ed3734ac..4480fa335 100644 --- a/app/(pages)/judges/(app)/_components/Projects/ProjectTab.tsx +++ b/app/(pages)/judges/(app)/_components/Projects/ProjectTab.tsx @@ -9,15 +9,15 @@ const ProjectTab: React.FC = ({ team, disabled }) => { return ( - + {team.tableNumber} - + {team.name} diff --git a/app/(pages)/judges/(app)/_components/Projects/UnscoredPage.module.scss b/app/(pages)/judges/(app)/_components/Projects/UnscoredPage.module.scss deleted file mode 100644 index d8adfacef..000000000 --- a/app/(pages)/judges/(app)/_components/Projects/UnscoredPage.module.scss +++ /dev/null @@ -1,64 +0,0 @@ -.instructions { - display: flex; - flex-direction: column; - font-family: var(--font-jakarta); - font-size: 1.125rem; - margin-bottom: 24px; - .dark { - color: black; - } - - .grey { - color: #A1A1A3; - } - - .red { - color: #F95A5A; - font-weight: 700; - } -} - -.report_container { - display: flex; - flex-direction: row; - gap: 4px; - margin-bottom: 24px; - - .buttons { - padding: 15px 32px; - display: flex; - justify-content: center; - align-items: center; - border-radius: 8px; - font-size: 1.125rem; - cursor: pointer; - font-weight: 600; - } - - .flag_starter { - background-color: #F95A5A; - width: 100%; - color: white; - } - - .are_you_sure { - border: 1.5px solid #F95A5A; - background: #FFF; - color: #F95A5A; - flex-grow: 1; - cursor: default; - } - - .yes { - background: #005271; - color: white; - flex-grow: 0; - } - - .cancel { - border: 1.5px solid #005271; - background: #FFF; - color: #005271; - flex-grow: 0; - } -} \ No newline at end of file diff --git a/app/(pages)/judges/(app)/_components/Projects/UnscoredPage.tsx b/app/(pages)/judges/(app)/_components/Projects/UnscoredPage.tsx index a4505dc6b..9425d67a2 100644 --- a/app/(pages)/judges/(app)/_components/Projects/UnscoredPage.tsx +++ b/app/(pages)/judges/(app)/_components/Projects/UnscoredPage.tsx @@ -57,141 +57,153 @@ export default function UnscoredPage({ }; return ( -
- {/* Current Project header */} -
-

- Current Project -

-

- Projects must be judged in order one by one order. -

-
- - {/* CTA Button */} - -
- - {currentTeam.tableNumber || currentTeam._id} - - - {currentTeam.name || `Team ${currentTeam._id}`} - -
- - - - {/* Map card */} -
-
- first floor map -
- -
+ <> +
+
+ {/* Current Project header */} +
+

+ Current Project +

+

+ Projects must be judged in order one by one order. +

+
- {/* Flag section */} -
-

- If the team you are judging is not present, tap the{' '} - red button{' '} - below. -

+ {/* To-score Project Button */} + +
+ + {currentTeam.tableNumber || currentTeam._id} + + + {currentTeam.name || `Team ${currentTeam._id}`} + +
+ + - {expandReportButton ? ( -
-
- Are you sure? + {/* Map card */} +
+
+ first floor map
-
- ) : ( - - )} -
- {/* Next up */} - {upcomingTeams.length > 0 && ( -
- - Next up - -
- {upcomingTeams.map((team) => ( - - ))} + {/* Flag section */} +
+

+ If the team you are judging is not present, tap the{' '} + red button{' '} + below. +

+ + {/* TODO: TURN INTO POPUP */} + {expandReportButton ? ( + <> +
+ Are you sure? +
+
+ + +
+ + ) : ( + + )}
- )} - {/* Expanded Map Modal */} - {mapExpanded && ( -
e.stopPropagation()} - > + {/* Next up */} + {upcomingTeams.length > 0 && ( +
+ + Next up + +
+ {upcomingTeams.map((team) => ( + + ))} +
+
+ )} + + {/* TODO: FIX MAP POPUP */} + {/* Expanded Map Modal */} + {mapExpanded && (
e.stopPropagation()} > -
- +
+ +
Close - -
- -
- first floor map +
-
- )} + )} - -
+ +
+ ); } diff --git a/app/(pages)/judges/(app)/projects/page.tsx b/app/(pages)/judges/(app)/projects/page.tsx index a8d2559d1..b35d91681 100644 --- a/app/(pages)/judges/(app)/projects/page.tsx +++ b/app/(pages)/judges/(app)/projects/page.tsx @@ -5,7 +5,7 @@ import ProjectPage from '../_components/Projects/ProjectPage'; export default function Judges() { return ( -
+
); From 058265a3f5f7e3ac3b298f4cbc1395a15e99c81b Mon Sep 17 00:00:00 2001 From: michelleyeoh Date: Sat, 28 Mar 2026 21:31:21 -0700 Subject: [PATCH 4/6] empty state done --- .../(app)/_components/Projects/EmptyState.tsx | 6 +- .../(app)/_components/Projects/ScoredPage.tsx | 2 +- app/(pages)/judges/layout.tsx | 2 +- public/judges/projects/project-cow.svg | 117 +++++++++++++----- 4 files changed, 92 insertions(+), 35 deletions(-) diff --git a/app/(pages)/judges/(app)/_components/Projects/EmptyState.tsx b/app/(pages)/judges/(app)/_components/Projects/EmptyState.tsx index 9e9649db4..be0b21a68 100644 --- a/app/(pages)/judges/(app)/_components/Projects/EmptyState.tsx +++ b/app/(pages)/judges/(app)/_components/Projects/EmptyState.tsx @@ -9,13 +9,11 @@ export default function ProjectsEmptyState({ subtitle: string; }) { return ( -
+
{title} - - {subtitle} - + {subtitle} Project Cow
); diff --git a/app/(pages)/judges/(app)/_components/Projects/ScoredPage.tsx b/app/(pages)/judges/(app)/_components/Projects/ScoredPage.tsx index ad886789c..ea7a7f72e 100644 --- a/app/(pages)/judges/(app)/_components/Projects/ScoredPage.tsx +++ b/app/(pages)/judges/(app)/_components/Projects/ScoredPage.tsx @@ -7,7 +7,7 @@ interface ScoredPageProps { const ScoredPage = ({ teams }: ScoredPageProps) => { return ( -
+
{teams.length === 0 ? ( +
{children}
); diff --git a/public/judges/projects/project-cow.svg b/public/judges/projects/project-cow.svg index 3328476d6..f0ae65eb8 100644 --- a/public/judges/projects/project-cow.svg +++ b/public/judges/projects/project-cow.svg @@ -1,34 +1,93 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 66490d82c71f988a46b94df716563141d7a77353 Mon Sep 17 00:00:00 2001 From: michelleyeoh Date: Sat, 28 Mar 2026 22:14:47 -0700 Subject: [PATCH 5/6] missing team logic --- .../(app)/_components/Projects/EmptyState.tsx | 4 ++ .../_components/Projects/ProjectPage.tsx | 41 ++++++++++++++++--- public/judges/projects/two_stars.svg | 28 +++++++++++++ 3 files changed, 67 insertions(+), 6 deletions(-) create mode 100644 public/judges/projects/two_stars.svg diff --git a/app/(pages)/judges/(app)/_components/Projects/EmptyState.tsx b/app/(pages)/judges/(app)/_components/Projects/EmptyState.tsx index be0b21a68..75fe471ac 100644 --- a/app/(pages)/judges/(app)/_components/Projects/EmptyState.tsx +++ b/app/(pages)/judges/(app)/_components/Projects/EmptyState.tsx @@ -1,5 +1,6 @@ import Image from 'next/image'; import projectCow from '/public/judges/projects/project-cow.svg'; +import twoStars from '/public/judges/projects/two_stars.svg'; export default function ProjectsEmptyState({ title, @@ -10,6 +11,9 @@ export default function ProjectsEmptyState({ }) { return (
+
+ Two Stars +
{title} diff --git a/app/(pages)/judges/(app)/_components/Projects/ProjectPage.tsx b/app/(pages)/judges/(app)/_components/Projects/ProjectPage.tsx index c0b762067..e9f4290fe 100644 --- a/app/(pages)/judges/(app)/_components/Projects/ProjectPage.tsx +++ b/app/(pages)/judges/(app)/_components/Projects/ProjectPage.tsx @@ -1,5 +1,5 @@ 'use client'; -import { useState } from 'react'; +import { useEffect, useState } from 'react'; import { useSession } from 'next-auth/react'; import { FaChevronLeft } from 'react-icons/fa6'; import { useJudgeSubmissions } from '@pages/_hooks/useJudgeSubmissions'; @@ -7,6 +7,8 @@ import UnscoredPage from './UnscoredPage'; import ScoredPage from './ScoredPage'; import Link from 'next/link'; import Loader from '@pages/_components/Loader/Loader'; +import ProjectTab from './ProjectTab'; +import Team from '@typeDefs/team'; interface ButtonProps { text: string; @@ -41,9 +43,9 @@ const Button: React.FC = ({ ); const ProjectPage = () => { - const [selectedButton, setSelectedButton] = useState<'Unjudged' | 'Scored'>( - 'Unjudged' - ); + const [selectedButton, setSelectedButton] = useState< + 'Unjudged' | 'Scored' | 'Missing Team' + >('Unjudged'); const { data: session } = useSession(); const user = session?.user; const userId = user?.id; @@ -51,6 +53,20 @@ const ProjectPage = () => { const { scoredTeams, unscoredTeams, loading, error, fetchSubmissions } = useJudgeSubmissions(userId); + const allUnscoredTeams = (unscoredTeams ?? []) as Team[]; + const missingTeams = allUnscoredTeams.filter((team) => + (team.reports ?? []).some((report) => report.judge_id === userId) + ); + const visibleUnscoredTeams = allUnscoredTeams.filter( + (team) => !(team.reports ?? []).some((report) => report.judge_id === userId) + ); + + useEffect(() => { + if (selectedButton === 'Missing Team' && missingTeams.length === 0) { + setSelectedButton('Unjudged'); + } + }, [missingTeams.length, selectedButton]); + if (loading) { return ; } @@ -76,7 +92,7 @@ const ProjectPage = () => {
@@ -95,9 +118,15 @@ const ProjectPage = () => {
) : selectedButton === 'Unjudged' ? ( fetchSubmissions()} /> + ) : selectedButton === 'Missing Team' ? ( +
+ {missingTeams.map((team) => ( + + ))} +
) : ( )} diff --git a/public/judges/projects/two_stars.svg b/public/judges/projects/two_stars.svg new file mode 100644 index 000000000..5401fcb3e --- /dev/null +++ b/public/judges/projects/two_stars.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + From ba17a121f728e8ae1e64e4d7a65a365d2acaa262 Mon Sep 17 00:00:00 2001 From: michelleyeoh Date: Sat, 28 Mar 2026 23:02:43 -0700 Subject: [PATCH 6/6] map modal --- .../_components/Projects/ProjectPage.tsx | 36 ++-- .../_components/Projects/UnscoredPage.tsx | 56 +++--- package-lock.json | 189 +++++++++++++----- 3 files changed, 180 insertions(+), 101 deletions(-) diff --git a/app/(pages)/judges/(app)/_components/Projects/ProjectPage.tsx b/app/(pages)/judges/(app)/_components/Projects/ProjectPage.tsx index e9f4290fe..cb6d1b96f 100644 --- a/app/(pages)/judges/(app)/_components/Projects/ProjectPage.tsx +++ b/app/(pages)/judges/(app)/_components/Projects/ProjectPage.tsx @@ -88,25 +88,27 @@ const ProjectPage = () => { Projects
-
-
diff --git a/app/(pages)/judges/(app)/_components/Projects/UnscoredPage.tsx b/app/(pages)/judges/(app)/_components/Projects/UnscoredPage.tsx index 9425d67a2..5cc23d890 100644 --- a/app/(pages)/judges/(app)/_components/Projects/UnscoredPage.tsx +++ b/app/(pages)/judges/(app)/_components/Projects/UnscoredPage.tsx @@ -8,8 +8,10 @@ import { reportMissingProject } from '@actions/teams/reportMissingTeam'; import ReportModal from './ReportModal'; import EmptyState from './EmptyState'; import { FaChevronRight } from 'react-icons/fa6'; +import { IoExpandOutline } from 'react-icons/io5'; import venueMap from '@public/judges/projects/venueMap2026.svg'; +import closeIcon from '@public/judges/projects/x.svg'; interface UnscoredPageProps { teams: Team[]; @@ -92,18 +94,12 @@ export default function UnscoredPage({ first floor map
@@ -161,38 +157,32 @@ export default function UnscoredPage({
)} - {/* TODO: FIX MAP POPUP */} {/* Expanded Map Modal */} {mapExpanded && (
e.stopPropagation()} + className="fixed inset-0 z-50 flex items-center justify-center bg-black/60 px-[22px] py-[48px]" + onClick={() => setMapExpanded(false)} >
e.stopPropagation()} > -
- + +
+
Close - -
- -
- first floor map +
diff --git a/package-lock.json b/package-lock.json index 87239993e..8465c54c5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -146,7 +146,6 @@ "integrity": "sha512-vMqyb7XCDMPvJFFOaT9kxtiRh42GwlZEg1/uIgtZshS5a/8OaduUfCi7kynKgc3Tw/6Uo2D+db9qBttghhmxwQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.26.2", @@ -845,6 +844,7 @@ "integrity": "sha512-wgEmr06G6sIpqr8YDwA2dSRTE3bJ+V0IfpzfSY3Lfgd7YWOaAdlykvJi13ZKBt8cZHfgH1IXN+CL656W3uUa4w==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.28.6" }, @@ -971,6 +971,7 @@ "integrity": "sha512-+nDNmQye7nlnuuHDboPbGm00Vqg3oO8niRRL27/4LYHUsHYh0zJ1xWOz0uRwNFmM1Avzk8wZbc6rdiYhomzv/A==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.28.6" }, @@ -2020,7 +2021,8 @@ "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/@colors/colors": { "version": "1.5.0", @@ -2125,7 +2127,6 @@ "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.14.0.tgz", "integrity": "sha512-O000MLDBDdk/EohJPFUqvnp4qnHeYkVP5B0xEG0D/L7cOKP9kefu2DXn8dj74cQfsEzUqh+sr1RzFqiL1o+PpA==", "license": "MIT", - "peer": true, "dependencies": { "@babel/runtime": "^7.18.3", "@emotion/babel-plugin": "^11.13.5", @@ -2169,7 +2170,6 @@ "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.14.0.tgz", "integrity": "sha512-XxfOnXFffatap2IyCeJyNov3kiDQWoR08gPUQxvbL7fxKryGBKUZUkG6Hz48DZwVrJSVh9sJboyV1Ds4OW6SgA==", "license": "MIT", - "peer": true, "dependencies": { "@babel/runtime": "^7.18.3", "@emotion/babel-plugin": "^11.13.5", @@ -3102,6 +3102,7 @@ "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/types": "^29.6.3", "@types/node": "*", @@ -3120,6 +3121,7 @@ "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/console": "^29.7.0", "@jest/reporters": "^29.7.0", @@ -3168,6 +3170,7 @@ "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=10" }, @@ -3187,6 +3190,7 @@ } ], "license": "MIT", + "peer": true, "engines": { "node": ">=8" } @@ -3197,6 +3201,7 @@ "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", @@ -3211,7 +3216,8 @@ "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/@jest/environment": { "version": "29.7.0", @@ -3219,6 +3225,7 @@ "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/fake-timers": "^29.7.0", "@jest/types": "^29.6.3", @@ -3235,6 +3242,7 @@ "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "expect": "^29.7.0", "jest-snapshot": "^29.7.0" @@ -3262,6 +3270,7 @@ "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/types": "^29.6.3", "@sinonjs/fake-timers": "^10.0.2", @@ -3280,6 +3289,7 @@ "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/environment": "^29.7.0", "@jest/expect": "^29.7.0", @@ -3296,6 +3306,7 @@ "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@bcoe/v8-coverage": "^0.2.3", "@jest/console": "^29.7.0", @@ -3340,6 +3351,7 @@ "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -3352,6 +3364,7 @@ "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", "dev": true, "license": "ISC", + "peer": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -3373,6 +3386,7 @@ "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==", "dev": true, "license": "BSD-3-Clause", + "peer": true, "dependencies": { "@babel/core": "^7.23.9", "@babel/parser": "^7.23.9", @@ -3390,6 +3404,7 @@ "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", "dev": true, "license": "ISC", + "peer": true, "dependencies": { "brace-expansion": "^1.1.7" }, @@ -3416,6 +3431,7 @@ "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jridgewell/trace-mapping": "^0.3.18", "callsites": "^3.0.0", @@ -3431,6 +3447,7 @@ "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/console": "^29.7.0", "@jest/types": "^29.6.3", @@ -3447,6 +3464,7 @@ "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/test-result": "^29.7.0", "graceful-fs": "^4.2.9", @@ -3613,7 +3631,6 @@ "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.16.14.tgz", "integrity": "sha512-eSXQVCMKU2xc7EcTxe/X/rC9QsV2jUe8eLM3MUCPYbo6V52eCE436akRIvELq/AqZpxx2bwkq7HC0cRhLB+yaw==", "license": "MIT", - "peer": true, "dependencies": { "@babel/runtime": "^7.23.9", "@mui/core-downloads-tracker": "^5.16.14", @@ -4946,6 +4963,7 @@ "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", "dev": true, "license": "BSD-3-Clause", + "peer": true, "dependencies": { "type-detect": "4.0.8" } @@ -4956,6 +4974,7 @@ "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", "dev": true, "license": "BSD-3-Clause", + "peer": true, "dependencies": { "@sinonjs/commons": "^3.0.0" } @@ -5211,7 +5230,6 @@ "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.19.tgz", "integrity": "sha512-LEwC7o1ifqg/6r2gn9Dns0f1rhK+fPFDoMiceTJ6kWmVk6bgXBI/9IOWfVan4WiAavK9pIVWdX0/e3J+eEUh5A==", "license": "MIT", - "peer": true, "dependencies": { "undici-types": "~6.19.2" } @@ -5260,7 +5278,6 @@ "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.18.tgz", "integrity": "sha512-t4yC+vtgnkYjNSKlFx1jkAhH8LgTo2N/7Qvi83kdEaUtMDiwpbLAktKDaAMlRcJ5eSxZkH74eEGt1ky31d7kfQ==", "license": "MIT", - "peer": true, "dependencies": { "@types/prop-types": "*", "csstype": "^3.0.2" @@ -5272,7 +5289,6 @@ "integrity": "sha512-P4t6saawp+b/dFrUr2cvkVsfvPguwsxtH6dNIYRllMsefqFzkZk5UIjzyDOv5g1dXIPdG4Sp1yCR4Z6RCUsG/Q==", "devOptional": true, "license": "MIT", - "peer": true, "peerDependencies": { "@types/react": "^18.0.0" } @@ -5369,12 +5385,7 @@ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.56.1.tgz", "integrity": "sha512-klQbnPAAiGYFyI02+znpBRLyjL4/BrBd0nyWkdC0s/6xFLkXYQ8OoRrSkqacS1ddVxf/LDyODIKbQ5TgKAf/Fg==", "dev": true, -<<<<<<< Updated upstream "license": "MIT", -======= - "license": "BSD-2-Clause", - "peer": true, ->>>>>>> Stashed changes "dependencies": { "@typescript-eslint/scope-manager": "8.56.1", "@typescript-eslint/types": "8.56.1", @@ -5663,7 +5674,6 @@ "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", "devOptional": true, "license": "MIT", - "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -5736,6 +5746,7 @@ "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "type-fest": "^0.21.3" }, @@ -5752,6 +5763,7 @@ "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", "dev": true, "license": "(MIT OR CC0-1.0)", + "peer": true, "engines": { "node": ">=10" }, @@ -6359,7 +6371,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "caniuse-lite": "^1.0.30001688", "electron-to-chromium": "^1.5.73", @@ -6425,7 +6436,8 @@ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/builtin-modules": { "version": "3.3.0", @@ -6620,6 +6632,7 @@ "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=10" } @@ -6629,7 +6642,6 @@ "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-4.4.9.tgz", "integrity": "sha512-EyZ9wWKgpAU0fLJ43YAEIF8sr5F2W3LqbS40ZJyHIner2lY14ufqv2VMp69MAiZ2rpwxEUxEhIH/0U3xyRynxg==", "license": "MIT", - "peer": true, "dependencies": { "@kurkle/color": "^0.3.0" }, @@ -6737,7 +6749,8 @@ "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.3.tgz", "integrity": "sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/class-variance-authority": { "version": "0.7.1", @@ -6824,6 +6837,7 @@ "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, "license": "ISC", + "peer": true, "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.1", @@ -6838,7 +6852,8 @@ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/cliui/node_modules/string-width": { "version": "4.2.3", @@ -6846,6 +6861,7 @@ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -6861,6 +6877,7 @@ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -6910,6 +6927,7 @@ "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", "dev": true, "license": "MIT", + "peer": true, "engines": { "iojs": ">= 1.0.0", "node": ">= 0.12.0" @@ -6920,7 +6938,8 @@ "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.3.tgz", "integrity": "sha512-1L5aqIkwPfiodaMgQunkF1zRhNqifHBmtbbbxcr6yVxxBnliw4TDOW6NxpO8DJLgJ16OT+Y4ztZqP6p/FtXnAw==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/color": { "version": "4.2.3", @@ -7048,6 +7067,7 @@ "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/types": "^29.6.3", "chalk": "^4.0.0", @@ -7269,6 +7289,7 @@ "integrity": "sha512-WzMx3mW98SN+zn3hgemf4OzdmyNhhhKz5Ay0pUfQiMQ3e1g+xmTJWp/pKdwKVXhdSkAEGIIzqeuWrL3mV/AXbA==", "dev": true, "license": "MIT", + "peer": true, "peerDependencies": { "babel-plugin-macros": "^3.1.0" }, @@ -7291,6 +7312,7 @@ "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=0.10.0" } @@ -7356,6 +7378,7 @@ "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=8" } @@ -7577,8 +7600,7 @@ "version": "8.5.2", "resolved": "https://registry.npmjs.org/embla-carousel/-/embla-carousel-8.5.2.tgz", "integrity": "sha512-xQ9oVLrun/eCG/7ru3R+I5bJ7shsD8fFwLEY7yPe27/+fDHCNj0OT5EoG5ZbFyOxOcG6yTwW8oTz/dWyFnyGpg==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/embla-carousel-auto-height": { "version": "8.5.2", @@ -7632,6 +7654,7 @@ "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=12" }, @@ -7906,7 +7929,6 @@ "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", @@ -8166,7 +8188,6 @@ "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", "dev": true, "license": "MIT", - "peer": true, "bin": { "eslint-config-prettier": "bin/cli.js" }, @@ -8265,7 +8286,6 @@ "integrity": "sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@rtsao/scc": "^1.1.0", "array-includes": "^3.1.8", @@ -9118,6 +9138,7 @@ "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.0", @@ -9142,6 +9163,7 @@ "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=10" }, @@ -9154,13 +9176,15 @@ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "dev": true, - "license": "ISC" + "license": "ISC", + "peer": true }, "node_modules/exit": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", "dev": true, + "peer": true, "engines": { "node": ">= 0.8.0" } @@ -9587,6 +9611,7 @@ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true, "license": "ISC", + "peer": true, "engines": { "node": "6.* || 8.* || >= 10.*" } @@ -9933,7 +9958,8 @@ "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/htmlparser2": { "version": "8.0.2", @@ -9979,6 +10005,7 @@ "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", "dev": true, "license": "Apache-2.0", + "peer": true, "engines": { "node": ">=10.17.0" } @@ -10021,6 +10048,7 @@ "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "pkg-dir": "^4.2.0", "resolve-cwd": "^3.0.0" @@ -10334,6 +10362,7 @@ "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=6" } @@ -10472,6 +10501,7 @@ "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=8" }, @@ -10641,6 +10671,7 @@ "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", "dev": true, "license": "BSD-3-Clause", + "peer": true, "dependencies": { "istanbul-lib-coverage": "^3.0.0", "make-dir": "^4.0.0", @@ -10656,6 +10687,7 @@ "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "semver": "^7.5.3" }, @@ -10672,6 +10704,7 @@ "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", "dev": true, "license": "BSD-3-Clause", + "peer": true, "dependencies": { "debug": "^4.1.1", "istanbul-lib-coverage": "^3.0.0", @@ -10687,6 +10720,7 @@ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "license": "BSD-3-Clause", + "peer": true, "engines": { "node": ">=0.10.0" } @@ -10697,6 +10731,7 @@ "integrity": "sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==", "dev": true, "license": "BSD-3-Clause", + "peer": true, "dependencies": { "html-escaper": "^2.0.0", "istanbul-lib-report": "^3.0.0" @@ -10818,6 +10853,7 @@ "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "execa": "^5.0.0", "jest-util": "^29.7.0", @@ -10833,6 +10869,7 @@ "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/environment": "^29.7.0", "@jest/expect": "^29.7.0", @@ -10865,6 +10902,7 @@ "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=10" }, @@ -10878,6 +10916,7 @@ "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", @@ -10892,7 +10931,8 @@ "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/jest-cli": { "version": "29.7.0", @@ -10900,6 +10940,7 @@ "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/core": "^29.7.0", "@jest/test-result": "^29.7.0", @@ -10934,6 +10975,7 @@ "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/core": "^7.11.6", "@jest/test-sequencer": "^29.7.0", @@ -10980,6 +11022,7 @@ "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=10" }, @@ -10993,6 +11036,7 @@ "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -11010,6 +11054,7 @@ } ], "license": "MIT", + "peer": true, "engines": { "node": ">=8" } @@ -11021,6 +11066,7 @@ "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", "dev": true, "license": "ISC", + "peer": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -11042,6 +11088,7 @@ "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", "dev": true, "license": "ISC", + "peer": true, "dependencies": { "brace-expansion": "^1.1.7" }, @@ -11055,6 +11102,7 @@ "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", @@ -11069,7 +11117,8 @@ "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/jest-diff": { "version": "29.7.0", @@ -11128,6 +11177,7 @@ "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "detect-newline": "^3.0.0" }, @@ -11141,6 +11191,7 @@ "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/types": "^29.6.3", "chalk": "^4.0.0", @@ -11158,6 +11209,7 @@ "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=10" }, @@ -11171,6 +11223,7 @@ "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", @@ -11185,7 +11238,8 @@ "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/jest-environment-node": { "version": "29.7.0", @@ -11248,6 +11302,7 @@ "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "jest-get-type": "^29.6.3", "pretty-format": "^29.7.0" @@ -11262,6 +11317,7 @@ "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=10" }, @@ -11275,6 +11331,7 @@ "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", @@ -11289,7 +11346,8 @@ "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/jest-matcher-utils": { "version": "29.7.0", @@ -11404,6 +11462,7 @@ "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/types": "^29.6.3", "@types/node": "*", @@ -11419,6 +11478,7 @@ "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=6" }, @@ -11447,6 +11507,7 @@ "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "chalk": "^4.0.0", "graceful-fs": "^4.2.9", @@ -11468,6 +11529,7 @@ "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "jest-regex-util": "^29.6.3", "jest-snapshot": "^29.7.0" @@ -11482,6 +11544,7 @@ "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/console": "^29.7.0", "@jest/environment": "^29.7.0", @@ -11515,6 +11578,7 @@ "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/environment": "^29.7.0", "@jest/fake-timers": "^29.7.0", @@ -11549,6 +11613,7 @@ "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -11561,6 +11626,7 @@ "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", "dev": true, "license": "ISC", + "peer": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -11582,6 +11648,7 @@ "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", "dev": true, "license": "ISC", + "peer": true, "dependencies": { "brace-expansion": "^1.1.7" }, @@ -11595,6 +11662,7 @@ "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=8" } @@ -11605,6 +11673,7 @@ "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/core": "^7.11.6", "@babel/generator": "^7.7.2", @@ -11637,6 +11706,7 @@ "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=10" }, @@ -11650,6 +11720,7 @@ "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", @@ -11664,7 +11735,8 @@ "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/jest-util": { "version": "29.7.0", @@ -11706,6 +11778,7 @@ "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/types": "^29.6.3", "camelcase": "^6.2.0", @@ -11724,6 +11797,7 @@ "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=10" }, @@ -11737,6 +11811,7 @@ "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", @@ -11751,7 +11826,8 @@ "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/jest-watcher": { "version": "29.7.0", @@ -11759,6 +11835,7 @@ "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/test-result": "^29.7.0", "@jest/types": "^29.6.3", @@ -11997,6 +12074,7 @@ "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=6" } @@ -12027,6 +12105,7 @@ "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=6" } @@ -12322,6 +12401,7 @@ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=6" } @@ -12393,7 +12473,6 @@ "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-6.13.1.tgz", "integrity": "sha512-gdq40tX8StmhP6akMp1pPoEVv+9jTYFSrga/g23JxajPAQhH39ysZrHGzQCSd9PEOnuEQEdjIWqxO7ZSwC0w7Q==", "license": "Apache-2.0", - "peer": true, "dependencies": { "@mongodb-js/saslprep": "^1.1.9", "bson": "^6.10.3", @@ -12636,7 +12715,6 @@ "resolved": "https://registry.npmjs.org/next/-/next-15.5.12.tgz", "integrity": "sha512-Fi/wQ4Etlrn60rz78bebG1i1SR20QxvV8tVp6iJspjLUSHcZoeUXCt+vmWoEcza85ElZzExK/jJ/F6SvtGktjA==", "license": "MIT", - "peer": true, "dependencies": { "@next/env": "15.5.12", "@swc/helpers": "0.5.15", @@ -13210,7 +13288,6 @@ "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.10.1.tgz", "integrity": "sha512-Z+iLaBGVaSjbIzQ4pX6XV41HrooLsQ10ZWPUehGmuantvzWoDVBnmsdUcOIDM1t+yPor5pDhVlDESgOMEGxhHA==", "license": "MIT-0", - "peer": true, "engines": { "node": ">=6.0.0" } @@ -13272,6 +13349,7 @@ "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "path-key": "^3.0.0" }, @@ -13457,6 +13535,7 @@ "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "mimic-fn": "^2.1.0" }, @@ -13823,7 +13902,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "nanoid": "^3.3.8", "picocolors": "^1.1.1", @@ -13965,7 +14043,6 @@ "resolved": "https://registry.npmjs.org/preact/-/preact-10.11.3.tgz", "integrity": "sha512-eY93IVpod/zG3uMF22Unl8h9KkrcKIRs2EGar8hwLZZDU1lkjph303V9HZBwufh2s736U6VXuhD109LYqPoffg==", "license": "MIT", - "peer": true, "funding": { "type": "opencollective", "url": "https://opencollective.com/preact" @@ -14008,7 +14085,6 @@ "integrity": "sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==", "dev": true, "license": "MIT", - "peer": true, "bin": { "prettier": "bin/prettier.cjs" }, @@ -14054,6 +14130,7 @@ "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "kleur": "^3.0.3", "sisteransi": "^1.0.5" @@ -14113,7 +14190,8 @@ "url": "https://opencollective.com/fast-check" } ], - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/querystring": { "version": "0.2.0", @@ -14149,7 +14227,6 @@ "resolved": "https://registry.npmjs.org/react/-/react-19.1.1.tgz", "integrity": "sha512-w8nqGImo45dmMIfljjMwOGtbmC/mk4CMYhWIicdSflH91J9TyCyczcPFXJzrZ/ZXcgGRFeP6BU0BEJTw6tZdfQ==", "license": "MIT", - "peer": true, "engines": { "node": ">=0.10.0" } @@ -14169,7 +14246,6 @@ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.1.1.tgz", "integrity": "sha512-Dlq/5LAZgF0Gaz6yiqZCf6VCcZs1ghAJyrsu84Q/GT0gV+mCxbfmKNoGRKBYMJ8IEdGPqu49YWXD02GCknEDkw==", "license": "MIT", - "peer": true, "dependencies": { "scheduler": "^0.26.0" }, @@ -14522,6 +14598,7 @@ "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=0.10.0" } @@ -14572,6 +14649,7 @@ "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "resolve-from": "^5.0.0" }, @@ -14585,6 +14663,7 @@ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=8" } @@ -14614,6 +14693,7 @@ "integrity": "sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=10" } @@ -14814,7 +14894,6 @@ "resolved": "https://registry.npmjs.org/sass/-/sass-1.85.1.tgz", "integrity": "sha512-Uk8WpxM5v+0cMR0XjX9KfRIacmSG86RH4DCCZjLU2rFh5tyutt9siAXJ7G+YfxQ99Q6wrRMbMlVl6KqUms71ag==", "license": "MIT", - "peer": true, "dependencies": { "chokidar": "^4.0.0", "immutable": "^5.0.2", @@ -15074,7 +15153,8 @@ "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/slash": { "version": "3.0.0", @@ -15152,6 +15232,7 @@ "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -15163,6 +15244,7 @@ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "license": "BSD-3-Clause", + "peer": true, "engines": { "node": ">=0.10.0" } @@ -15267,6 +15349,7 @@ "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "char-regex": "^1.0.2", "strip-ansi": "^6.0.0" @@ -15494,6 +15577,7 @@ "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=6" } @@ -15704,7 +15788,6 @@ "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.17.tgz", "integrity": "sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==", "license": "MIT", - "peer": true, "dependencies": { "@alloc/quick-lru": "^5.2.0", "arg": "^5.0.2", @@ -15954,7 +16037,6 @@ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=12" }, @@ -16103,7 +16185,6 @@ "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", "devOptional": true, "license": "MIT", - "peer": true, "dependencies": { "@cspotcode/source-map-support": "^0.8.0", "@tsconfig/node10": "^1.0.7", @@ -16187,6 +16268,7 @@ "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=4" } @@ -16285,7 +16367,6 @@ "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", "devOptional": true, "license": "Apache-2.0", - "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -16468,6 +16549,7 @@ "integrity": "sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==", "dev": true, "license": "ISC", + "peer": true, "dependencies": { "@jridgewell/trace-mapping": "^0.3.12", "@types/istanbul-lib-coverage": "^2.0.1", @@ -16482,7 +16564,8 @@ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/validate-npm-package-license": { "version": "3.0.4", @@ -16776,6 +16859,7 @@ "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true, "license": "ISC", + "peer": true, "engines": { "node": ">=10" } @@ -16868,6 +16952,7 @@ "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", @@ -16896,7 +16981,8 @@ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/yargs/node_modules/string-width": { "version": "4.2.3", @@ -16904,6 +16990,7 @@ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0",