diff --git a/apps/live/.env.example b/apps/live/.env.example index 6bedfd3f..be8ac3d1 100644 --- a/apps/live/.env.example +++ b/apps/live/.env.example @@ -1,5 +1,4 @@ AIRTABLE_TOKEN_ID= SCHEDULE_BASE_ID= MENTOR_BASE_ID= -CABIN_BASE_ID= BEEHIIV_API_KEY= \ No newline at end of file diff --git a/apps/live/public/footer-logos/insta-logo.svg b/apps/live/public/footer-logos/insta-logo.svg deleted file mode 100644 index 2124fe1d..00000000 --- a/apps/live/public/footer-logos/insta-logo.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/apps/live/public/footer-logos/linkedin-logo.svg b/apps/live/public/footer-logos/linkedin-logo.svg deleted file mode 100644 index ee13060c..00000000 --- a/apps/live/public/footer-logos/linkedin-logo.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/apps/live/public/footer-logos/tiktok-logo.svg b/apps/live/public/footer-logos/tiktok-logo.svg deleted file mode 100644 index bfe91ce0..00000000 --- a/apps/live/public/footer-logos/tiktok-logo.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - diff --git a/apps/live/src/app/(landing)/Keynote.tsx b/apps/live/src/app/(landing)/Keynote.tsx deleted file mode 100644 index e383945d..00000000 --- a/apps/live/src/app/(landing)/Keynote.tsx +++ /dev/null @@ -1,11 +0,0 @@ -"use client"; - -import React from "react"; - -export default function Keynote(): React.ReactNode { - - return ( -
-
- ); -} diff --git a/apps/live/src/app/(landing)/Mentors/MentorsTable.tsx b/apps/live/src/app/(landing)/Mentors/MentorsTable.tsx deleted file mode 100644 index 53ab811a..00000000 --- a/apps/live/src/app/(landing)/Mentors/MentorsTable.tsx +++ /dev/null @@ -1,213 +0,0 @@ -// "use client"; - -// // import isTimeRange from "@util/functions/isTimeRange"; -// import React, { useEffect, useState } from "react"; -// // import Checkmark from "../../lib/Assets/SVG/Checkmark"; -// // import clsx from "clsx"; -// import { AirtableData } from "."; -// // import Link from "next/link"; -// // import Image from "next/image"; - -// // const date = new Date(); - -// export type Filters = { -// skills: Set; -// avalibility: boolean; -// virtual: boolean; -// }; - -// // type MentorTableProps = { -// // data: AirtableData; -// // }; - -// // TODO: Add { data }: MentorTableProps back in -// const MentorsTable = () => { -// const [skillsFilter] = useState([]); -// const [availabilityFilter] = useState(false); -// const [virtualFilter] = useState(false); -// const [, setHasFilter] = useState(false); - -// // TODO: Add back in these original consts -// // const [skillsFilter, setSkillsFilter] = useState([]); -// // const [availabilityFilter, setAvailabilityFilter] = useState(false); -// // const [virtualFilter, setVirtualFilter] = useState(false); -// // const [hasFilter, setHasFilter] = useState(false); -// // const [dropdownOpen, setDropdownOpen] = useState(false); - -// // checking if current filter is default or not. if default it means dont have to do any filtering logic. -// useEffect(() => { -// setHasFilter( -// availabilityFilter || virtualFilter || skillsFilter.length !== 0, -// ); -// }, [virtualFilter, availabilityFilter, skillsFilter]); - -// // const { records } = data; - -// // const recordsExist = records != null && records != undefined; - -// // const uniqueSkills = new Set( -// // records -// // ?.map((record) => record.fields.Expertise) -// // .flat() -// // .map((skill) => skill.trim().toUpperCase()), -// // ); - -// // TODO in MentorsTable: Add this table back in once there is data in the airtable -// return ( -//
-// {/*
-//
-//
{ -// setDropdownOpen((prev) => !prev); -// }} -// > -// - -// -//
- -// {dropdownOpen && ( -//
-//
-// -// {[...uniqueSkills].map((skill) => ( -//
-// -//
-// ))} -//
-//
-// )} -//
-// - -// -//
- -//
-// {records -// .filter((filtered) => { -// if (!hasFilter) { -// return true; -// } - -// let virtual = !virtualFilter; -// let hasSkills = !skillsFilter.length; -// let isAvailable = !availabilityFilter; -// for (let i = 0; i < filtered.fields["Time Slots"].length; i++) { -// isAvailable = -// isTimeRange(filtered.fields["Time Slots"][i], date) || -// isAvailable; -// } - -// for (let i = 0; i < filtered.fields.Expertise.length; i++) { -// const cleanedSkill = filtered.fields.Expertise[i] -// .trim() -// .toUpperCase(); - -// hasSkills = skillsFilter.includes(cleanedSkill) || hasSkills; -// } - -// virtual = filtered.fields.IsVirtual === "True" || virtual; - -// return hasSkills && isAvailable && virtual; -// }) - -// .map((record, index) => ( -// -//
-// {record.id} -//
-// -// {record.fields.Name} -// -// -// ))} -//
*/} -//
-// ); -// }; - -// export default MentorsTable; diff --git a/apps/live/src/app/(landing)/page.tsx b/apps/live/src/app/(landing)/page.tsx deleted file mode 100644 index a839cb3a..00000000 --- a/apps/live/src/app/(landing)/page.tsx +++ /dev/null @@ -1,30 +0,0 @@ -import React from "react"; -import Landing from "./Landing"; -import EventSchedule from "./EventSchedule"; -import MentorSection from "./Mentors"; -import OurTeamBackground from "./OurTeamBackground"; -import HitTheRoad from "./HitTheRoad"; -import Resources from "./Resources"; -import NavBar from "../lib/Components/NavBar"; -import Footer from "@repo/ui/Footer"; -import ComingUp from "./ComingUp/ComingUp"; -import OurTeam from "./OurTeam"; -import Keynote from "./Keynote"; - -export default function Page(): JSX.Element { - return ( -
- - - - - - - - - - -
-
- ); -} diff --git a/apps/live/src/app/(landing)/ComingUp/ComingUp.tsx b/apps/live/src/app/Sections/ComingUp/ComingUp.tsx similarity index 100% rename from apps/live/src/app/(landing)/ComingUp/ComingUp.tsx rename to apps/live/src/app/Sections/ComingUp/ComingUp.tsx diff --git a/apps/live/src/app/(landing)/ComingUp/ComingUpEvent.tsx b/apps/live/src/app/Sections/ComingUp/ComingUpEvent.tsx similarity index 100% rename from apps/live/src/app/(landing)/ComingUp/ComingUpEvent.tsx rename to apps/live/src/app/Sections/ComingUp/ComingUpEvent.tsx diff --git a/apps/live/src/app/(landing)/EventSchedule/EventScheduleTabs.tsx b/apps/live/src/app/Sections/EventSchedule/EventScheduleTabs.tsx similarity index 100% rename from apps/live/src/app/(landing)/EventSchedule/EventScheduleTabs.tsx rename to apps/live/src/app/Sections/EventSchedule/EventScheduleTabs.tsx diff --git a/apps/live/src/app/(landing)/EventSchedule/index.tsx b/apps/live/src/app/Sections/EventSchedule/index.tsx similarity index 100% rename from apps/live/src/app/(landing)/EventSchedule/index.tsx rename to apps/live/src/app/Sections/EventSchedule/index.tsx diff --git a/apps/live/src/app/(landing)/HitTheRoad.tsx b/apps/live/src/app/Sections/HitTheRoad.tsx similarity index 100% rename from apps/live/src/app/(landing)/HitTheRoad.tsx rename to apps/live/src/app/Sections/HitTheRoad.tsx diff --git a/apps/live/src/app/Sections/Keynote.tsx b/apps/live/src/app/Sections/Keynote.tsx new file mode 100644 index 00000000..a35a2ed5 --- /dev/null +++ b/apps/live/src/app/Sections/Keynote.tsx @@ -0,0 +1,95 @@ +"use client"; + +import React from "react"; +import Section from "@repo/ui/Section"; +import StreetSign from "@repo/ui/StreetSign"; +import Typography from "@repo/ui/Typography"; +import Image from "next/image"; +import useIsMobile from "@repo/util/hooks/useIsMobile"; + +const background =
; + +function SpeakerPhoto(): JSX.Element { + return ( +
+ Aidan +
+ ); +} + +function SpeakerDetails(): JSX.Element { + return ( +
+

Aidan Ouckama

+

+ 3rd year Computer Science student, Stevens Institute of Technology | + Tech Content Creator +

+
+ ); +} + +function SpeakerAbout(): JSX.Element { + return ( + + Aidan Ouckama is a a + prominent tech content creator, known for engaging, informative, and + humorous content across multiple social media platforms. By sharing + instructional projects, vlogs, internship application tips, and even + brainrot computer science memes, Aidan has amassed a substantial following + of aspiring and early-career technologists. +
+
+ Aidan offers an authentic, behind-the-scenes look into the challenges and + triumphs of navigating the tech industry as a student, making topics like + leetcode, job interviews, and career growth more accessible and relatable. + His blend of humor, insight, and industry experience has positioned him as + one of the leading voices in a new wave of tech creators. +
+
+ Through his content, Aidan is redefining the way students and early + professionals approach tech, fostering a welcoming space where curiosity, + innovation, and creativity thrive. +
+ ); +} + +export default function Keynote(): React.ReactNode { + const isMobile = useIsMobile(); + + const content = ( +
+
+ {isMobile && } + + +
+ +
+ {!isMobile && } + +
+
+ ); + + return ( +
+ ); +} diff --git a/apps/live/src/app/(landing)/Landing.tsx b/apps/live/src/app/Sections/Landing.tsx similarity index 100% rename from apps/live/src/app/(landing)/Landing.tsx rename to apps/live/src/app/Sections/Landing.tsx diff --git a/apps/live/src/app/Sections/Mentors/MentorsTable.tsx b/apps/live/src/app/Sections/Mentors/MentorsTable.tsx new file mode 100644 index 00000000..a25ec119 --- /dev/null +++ b/apps/live/src/app/Sections/Mentors/MentorsTable.tsx @@ -0,0 +1,203 @@ +"use client"; + +import isTimeRange from "@util/functions/isTimeRange"; +import React, { useEffect, useState } from "react"; +import Checkmark from "../../lib/Assets/SVG/Checkmark"; +import clsx from "clsx"; +import { AirtableData } from "."; +import Link from "next/link"; +import Image from "next/image"; + +const date = new Date(); + +export type Filters = { + skills: Set; + avalibility: boolean; + virtual: boolean; +}; + +type MentorTableProps = { + data: AirtableData; +}; + +const MentorsTable = ({ data }: MentorTableProps) => { + const [skillsFilter, setSkillsFilter] = useState([]); + const [availabilityFilter, setAvailabilityFilter] = useState(false); + const [virtualFilter, setVirtualFilter] = useState(false); + const [hasFilter, setHasFilter] = useState(false); + const [dropdownOpen, setDropdownOpen] = useState(false); + + // checking if current filter is default or not. if default it means dont have to do any filtering logic. + useEffect(() => { + setHasFilter( + availabilityFilter || virtualFilter || skillsFilter.length !== 0, + ); + }, [virtualFilter, availabilityFilter, skillsFilter]); + + const { records } = data; + + const uniqueSkills = new Set( + records + .map((record) => record.fields.Expertise) + .flat() + .map((skill) => skill.trim().toUpperCase()), + ); + + return ( +
+
+
+
{ + setDropdownOpen((prev) => !prev); + }} + > + + + +
+ + {dropdownOpen && ( +
+
+ + {[...uniqueSkills].map((skill) => ( +
+ +
+ ))} +
+
+ )} +
+ + + +
+ +
+ {records + .filter((filtered) => { + if (!hasFilter) { + return true; + } + + let virtual = !virtualFilter; + let hasSkills = !skillsFilter.length; + let isAvailable = !availabilityFilter; + for (let i = 0; i < filtered.fields["Time Slots"].length; i++) { + isAvailable = + isTimeRange(filtered.fields["Time Slots"][i], date) || + isAvailable; + } + + for (let i = 0; i < filtered.fields.Expertise.length; i++) { + const cleanedSkill = filtered.fields.Expertise[i] + .trim() + .toUpperCase(); + + hasSkills = skillsFilter.includes(cleanedSkill) || hasSkills; + } + + virtual = filtered.fields.IsVirtual === "True" || virtual; + + return hasSkills && isAvailable && virtual; + }) + + .map((record, index) => ( + +
+ {record.id} +
+ + {record.fields.Name} + + + ))} +
+
+ ); +}; + +export default MentorsTable; diff --git a/apps/live/src/app/(landing)/Mentors/index.tsx b/apps/live/src/app/Sections/Mentors/index.tsx similarity index 94% rename from apps/live/src/app/(landing)/Mentors/index.tsx rename to apps/live/src/app/Sections/Mentors/index.tsx index 0b8d6efd..24ccfc05 100644 --- a/apps/live/src/app/(landing)/Mentors/index.tsx +++ b/apps/live/src/app/Sections/Mentors/index.tsx @@ -3,7 +3,7 @@ import React, { useEffect, useRef, useState } from "react"; import Image from "next/image"; import Section from "@repo/ui/Section"; -// import MentorsTable from "./MentorsTable"; +import MentorsTable from "./MentorsTable"; import useContentHeight from "@util/hooks/useContentHeight"; import useWindowSize from "@util/hooks/useWindowSize"; @@ -76,8 +76,7 @@ const MentorSection = () => { Connect on our hackathon platform and get insights to take your project to the next level!

- {/* TODO: Add MentorsTable back in when there is data */} - {/* */} +
); }); diff --git a/apps/live/src/app/(landing)/OurTeam/OurTeamGrid.tsx b/apps/live/src/app/Sections/OurTeam/OurTeamGrid.tsx similarity index 100% rename from apps/live/src/app/(landing)/OurTeam/OurTeamGrid.tsx rename to apps/live/src/app/Sections/OurTeam/OurTeamGrid.tsx diff --git a/apps/live/src/app/(landing)/OurTeam/index.tsx b/apps/live/src/app/Sections/OurTeam/index.tsx similarity index 100% rename from apps/live/src/app/(landing)/OurTeam/index.tsx rename to apps/live/src/app/Sections/OurTeam/index.tsx diff --git a/apps/live/src/app/(landing)/OurTeamBackground.tsx b/apps/live/src/app/Sections/OurTeamBackground.tsx similarity index 100% rename from apps/live/src/app/(landing)/OurTeamBackground.tsx rename to apps/live/src/app/Sections/OurTeamBackground.tsx diff --git a/apps/live/src/app/(landing)/Resources.tsx b/apps/live/src/app/Sections/Resources.tsx similarity index 100% rename from apps/live/src/app/(landing)/Resources.tsx rename to apps/live/src/app/Sections/Resources.tsx diff --git a/apps/live/src/app/api/cabinPoints/route.ts b/apps/live/src/app/api/cabinPoints/route.ts deleted file mode 100644 index 782da255..00000000 --- a/apps/live/src/app/api/cabinPoints/route.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { NextResponse, NextRequest } from "next/server"; - -const BASE_URL = "https://api.airtable.com/v0"; -const TABLE_NAME = "cabinPoints"; - -export async function GET(req: NextRequest) { - const { searchParams } = new URL(req.url); - const isDev = searchParams.get("isDev") === "true"; - const CABIN_BASE_ID = process.env.CABIN_BASE_ID; - const airtableUrl = `${BASE_URL}/${CABIN_BASE_ID}/${TABLE_NAME}${isDev ? "?isDev=true" : ""}`; - try { - const response = await fetch(`${airtableUrl}`, { - headers: { - Authorization: `Bearer ${process.env.AIRTABLE_TOKEN_ID}`, - "Content-Type": "application/json", - }, - }); - - if (!response.ok) { - throw new Error("API request failed"); - } - - const data = await response.json(); - return NextResponse.json(data); - } catch (err) { - return NextResponse.json( - { error: `Request to get airtable data failed ${err}` }, - { status: 500 } - ); - } -} diff --git a/apps/live/src/app/components/InfoCard/InfoCard.tsx b/apps/live/src/app/components/InfoCard/InfoCard.tsx deleted file mode 100644 index 4e09691b..00000000 --- a/apps/live/src/app/components/InfoCard/InfoCard.tsx +++ /dev/null @@ -1,60 +0,0 @@ -// packages/ui/src/InfoCard.tsx -import React from "react"; -import { ProjectStarIcon } from "main/src/app/lib/Assets/SVG"; -import { itemIconMap, ItemName } from "./icons.tsx"; - -type InfoCardProps = { - heading: string; - text: string; - icon: ItemName; - size?: string; -}; - -const InfoCard: React.FC = ({ - heading, - text, - icon, - size = "[40vw]", -}) => { - return ( -
-
- {/* Content */} -
- {/* Header */} -
- -
-

- {heading} -

-
-
- - {/* Text */} -
- {text.split("\n").map((line, i) => ( -
- {line} -
- ))} -
- - {/* Bottom-right icon */} -
- {itemIconMap[icon]} -
-
-
-
- ); -}; -export default InfoCard; diff --git a/apps/live/src/app/components/InfoCard/icons.tsx b/apps/live/src/app/components/InfoCard/icons.tsx deleted file mode 100644 index d55ae66e..00000000 --- a/apps/live/src/app/components/InfoCard/icons.tsx +++ /dev/null @@ -1,22 +0,0 @@ -// icons.tsx -import React from "react"; -import { - InfoCardCottonCandy, - InfoCardHotDogBag, - InfoCardIceCream, - InfoCardPopcorn, -} from "../../lib/Assets/SVG"; - -export enum ItemName { - CottonCandy = "cottoncandy", - IceCream = "icecream", - HotDog = "hotdog", - Popcorn = "popcorn", -} - -export const itemIconMap: Record = { - [ItemName.CottonCandy]: , - [ItemName.IceCream]: , - [ItemName.HotDog]: , - [ItemName.Popcorn]: , -}; diff --git a/apps/live/src/app/components/index.ts b/apps/live/src/app/components/index.ts deleted file mode 100644 index 0a290d4b..00000000 --- a/apps/live/src/app/components/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as InfoCard } from "./InfoCard/InfoCard.tsx"; diff --git a/apps/live/src/app/lib/Assets/SVG/InfoCard/InfoCardCottonCandy.tsx b/apps/live/src/app/lib/Assets/SVG/InfoCard/InfoCardCottonCandy.tsx deleted file mode 100644 index 22dd84fb..00000000 --- a/apps/live/src/app/lib/Assets/SVG/InfoCard/InfoCardCottonCandy.tsx +++ /dev/null @@ -1,98 +0,0 @@ -import * as React from "react"; -import { SVGProps } from "react"; -const InfoCardCottonCandy = (props: SVGProps) => ( - - - - - - - - - - - - - - - - - - - - - -); -export default InfoCardCottonCandy; diff --git a/apps/live/src/app/lib/Assets/SVG/InfoCard/InfoCardHotDogBag.tsx b/apps/live/src/app/lib/Assets/SVG/InfoCard/InfoCardHotDogBag.tsx deleted file mode 100644 index 3f32d472..00000000 --- a/apps/live/src/app/lib/Assets/SVG/InfoCard/InfoCardHotDogBag.tsx +++ /dev/null @@ -1,70 +0,0 @@ -import * as React from "react"; -import { SVGProps } from "react"; -const InfoCardHotDogBag = (props: SVGProps) => ( - - - - - - - - - - - - - - - - - - - -); -export default InfoCardHotDogBag; diff --git a/apps/live/src/app/lib/Assets/SVG/InfoCard/InfoCardIceCream.tsx b/apps/live/src/app/lib/Assets/SVG/InfoCard/InfoCardIceCream.tsx deleted file mode 100644 index 68d2d84c..00000000 --- a/apps/live/src/app/lib/Assets/SVG/InfoCard/InfoCardIceCream.tsx +++ /dev/null @@ -1,1012 +0,0 @@ -import * as React from "react"; -import { SVGProps } from "react"; -const InfoCardIceCream = (props: SVGProps) => ( - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -); -export default InfoCardIceCream; diff --git a/apps/live/src/app/lib/Assets/SVG/InfoCard/InfoCardPopcorn.tsx b/apps/live/src/app/lib/Assets/SVG/InfoCard/InfoCardPopcorn.tsx deleted file mode 100644 index 2f2953f8..00000000 --- a/apps/live/src/app/lib/Assets/SVG/InfoCard/InfoCardPopcorn.tsx +++ /dev/null @@ -1,258 +0,0 @@ -import * as React from "react"; -import { SVGProps } from "react"; -const InfoCardPopcorn = (props: SVGProps) => ( - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -); -export default InfoCardPopcorn; diff --git a/apps/live/src/app/lib/Assets/SVG/index.ts b/apps/live/src/app/lib/Assets/SVG/index.ts deleted file mode 100644 index e6266c2d..00000000 --- a/apps/live/src/app/lib/Assets/SVG/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -export { default as InfoCardCottonCandy } from "./InfoCard/InfoCardCottonCandy.tsx"; -export { default as InfoCardHotDogBag } from "./InfoCard/InfoCardHotDogBag.tsx"; -export { default as InfoCardPopcorn } from "./InfoCard/InfoCardPopcorn.tsx"; -export { default as InfoCardIceCream } from "./InfoCard/InfoCardIceCream.tsx"; diff --git a/apps/live/src/app/lib/Components/NavBar.tsx b/apps/live/src/app/lib/Components/NavBar.tsx index 5ef86876..0ccd5110 100644 --- a/apps/live/src/app/lib/Components/NavBar.tsx +++ b/apps/live/src/app/lib/Components/NavBar.tsx @@ -1,23 +1,106 @@ "use client"; -import React from "react"; -import NavBarBase from "@repo/ui/NavBarBase"; +// Imports +import React, { useState } from "react"; +import Link from "next/link"; + +// Icons +import HomeIcon from "@repo/ui/Icons/HomeIcon"; +import MenuIcon from "../Assets/SVG/MenuIcon"; +import CloseIcon from "../Assets/SVG/CloseIcon"; + +// Hooks +import useIsMobile from "@repo/util/hooks/useIsMobile"; const NavBar = () => { + const [isOpen, setIsOpen] = useState(false); + const isMobile = useIsMobile(); + return ( - + <> +
+
+ {/* TODO: Figure out scrolling to top smoothly*/} + + + + + {isMobile ? ( + + ) : ( +
+ + Schedule + + + Mentors + + + Resources + + + Team + +
+ )} +
+ + {isOpen && ( +
+ + setIsOpen(false)} + > + Schedule + + setIsOpen(false)} + > + Mentors + + setIsOpen(false)} + > + Resources + + setIsOpen(false)} + > + Team + +
+ )} +
+ ); }; diff --git a/apps/live/src/app/lib/Components/OldNavBar.tsx b/apps/live/src/app/lib/Components/OldNavBar.tsx deleted file mode 100644 index 0ccd5110..00000000 --- a/apps/live/src/app/lib/Components/OldNavBar.tsx +++ /dev/null @@ -1,107 +0,0 @@ -"use client"; - -// Imports -import React, { useState } from "react"; -import Link from "next/link"; - -// Icons -import HomeIcon from "@repo/ui/Icons/HomeIcon"; -import MenuIcon from "../Assets/SVG/MenuIcon"; -import CloseIcon from "../Assets/SVG/CloseIcon"; - -// Hooks -import useIsMobile from "@repo/util/hooks/useIsMobile"; - -const NavBar = () => { - const [isOpen, setIsOpen] = useState(false); - const isMobile = useIsMobile(); - - return ( - <> -
-
- {/* TODO: Figure out scrolling to top smoothly*/} - - - - - {isMobile ? ( - - ) : ( -
- - Schedule - - - Mentors - - - Resources - - - Team - -
- )} -
- - {isOpen && ( -
- - setIsOpen(false)} - > - Schedule - - setIsOpen(false)} - > - Mentors - - setIsOpen(false)} - > - Resources - - setIsOpen(false)} - > - Team - -
- )} -
- - ); -}; - -export default NavBar; diff --git a/apps/live/src/app/page.tsx b/apps/live/src/app/page.tsx new file mode 100644 index 00000000..2bdb025f --- /dev/null +++ b/apps/live/src/app/page.tsx @@ -0,0 +1,30 @@ +import React from "react"; +import Landing from "./Sections/Landing"; +import EventSchedule from "./Sections/EventSchedule"; +import MentorSection from "./Sections/Mentors"; +import OurTeamBackground from "./Sections/OurTeamBackground"; +import HitTheRoad from "./Sections/HitTheRoad"; +import Resources from "./Sections/Resources"; +import NavBar from "./lib/Components/NavBar"; +import Footer from "./lib/Components/Footer"; +import ComingUp from "./Sections/ComingUp/ComingUp"; +import OurTeam from "./Sections/OurTeam"; +import Keynote from "./Sections/Keynote"; + +export default function Page(): JSX.Element { + return ( +
+ + + + + + + + + + +
+
+ ); +} diff --git a/apps/main/public/guest-speaker/guest.png b/apps/main/public/guest-speaker/guest.png new file mode 100644 index 00000000..9c9b1948 Binary files /dev/null and b/apps/main/public/guest-speaker/guest.png differ diff --git a/apps/main/public/guest-speakers/Jessica.jpg b/apps/main/public/guest-speakers/Jessica.jpg deleted file mode 100644 index 7e33c88f..00000000 Binary files a/apps/main/public/guest-speakers/Jessica.jpg and /dev/null differ diff --git a/apps/main/public/guest-speakers/Sue.jpg b/apps/main/public/guest-speakers/Sue.jpg deleted file mode 100644 index 5779f8c0..00000000 Binary files a/apps/main/public/guest-speakers/Sue.jpg and /dev/null differ diff --git a/apps/main/public/sponsor-logos/MavenAGILogo.svg b/apps/main/public/sponsor-logos/MavenAGILogo.svg deleted file mode 100644 index ee336306..00000000 --- a/apps/main/public/sponsor-logos/MavenAGILogo.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/apps/main/public/sponsor-testimonials/cart.svg b/apps/main/public/sponsor-testimonials/cart.svg new file mode 100644 index 00000000..4d05a6b7 --- /dev/null +++ b/apps/main/public/sponsor-testimonials/cart.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/apps/main/public/sponsor-testimonials/ferriswheel.svg b/apps/main/public/sponsor-testimonials/ferriswheel.svg new file mode 100644 index 00000000..dcaa082a --- /dev/null +++ b/apps/main/public/sponsor-testimonials/ferriswheel.svg @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/main/src/app/(landing)/Sections/About.tsx b/apps/main/src/app/(landing)/Sections/About.tsx index b261b494..74edf4dc 100644 --- a/apps/main/src/app/(landing)/Sections/About.tsx +++ b/apps/main/src/app/(landing)/Sections/About.tsx @@ -3,34 +3,27 @@ import React from "react"; import TextBackground from "../../lib/Assets/AboutLandingAssets/text"; import TeamPicture from "../../lib/Assets/AboutLandingAssets/teamPicture"; -import PurpleBear from "../../lib/Assets/AboutLandingAssets/purpleBear"; -import YellowBear from "../../lib/Assets/AboutLandingAssets/yellowBear"; +// import PurpleBear from "../../lib/Assets/AboutLandingAssets/purpleBear"; +// import YellowBear from "../../lib/Assets/AboutLandingAssets/yellowBear"; import RibbonTitle from "@repo/ui/RibbonTitle"; -import Dart from "../../lib/Assets/AboutLandingAssets/dart"; +// import Dart from "../../lib/Assets/AboutLandingAssets/dart"; import useDevice from "@util/hooks/useDevice"; export default function About(): React.ReactNode { const { isMobile } = useDevice(); return ( -
+
- { -
- -
- } + {/*
+ +
*/}
-
-

+

+

We're a non-profit organization in the Boston area that organizes an annual undergraduate hackathon. Our goal is to expand and nurture the hacker culture that exists in Boston and the @@ -38,11 +31,7 @@ export default function About(): React.ReactNode { their colleagues so that they can meet new people, learn new things, and have a great time.

- +
@@ -50,18 +39,12 @@ export default function About(): React.ReactNode {
-
+ {/*
- -
+
-
+
*/}
); } diff --git a/apps/main/src/app/(landing)/Sections/Apply.tsx b/apps/main/src/app/(landing)/Sections/Apply.tsx index 1b66b328..b9c24473 100644 --- a/apps/main/src/app/(landing)/Sections/Apply.tsx +++ b/apps/main/src/app/(landing)/Sections/Apply.tsx @@ -1,26 +1,26 @@ "use client"; import React from "react"; -// import Button from "@repo/ui/Button"; +import Button from "@repo/ui/Button"; +// import clsx from "clsx"; +// import useDevice from "@repo/util/hooks/useDevice"; export default function Apply(): React.ReactNode { return (

- Applications are now closed. + Applications are now live!

-

- Unfortunately, HackBeanpot 2026 is no longer accepting hacker - applicants. Follow us at @HackBeanpot on Instagram for more updates. We - hope to see you next year! +

+ Apply by January 10th, 2026.

- {/*
); } diff --git a/apps/main/src/app/(landing)/Sections/FAQ.tsx b/apps/main/src/app/(landing)/Sections/FAQ.tsx index 60ca46fb..df50d108 100644 --- a/apps/main/src/app/(landing)/Sections/FAQ.tsx +++ b/apps/main/src/app/(landing)/Sections/FAQ.tsx @@ -29,20 +29,8 @@ const generalQuestions = [ const appQuestions = [ { question: "How can I be a mentor or judge?", - answer: ( - <> - For more information about being a mentor or judge, please check out the{" "} - - Mentor & Judge Application - - ! - - ), + answer: + "For more information about becoming a mentor or a judge, please refer to the information found here: … If you are interested, please fill out this form.", }, ]; diff --git a/apps/main/src/app/(landing)/Sections/Keynote.tsx b/apps/main/src/app/(landing)/Sections/Keynote.tsx index 71607589..88ce8ae7 100644 --- a/apps/main/src/app/(landing)/Sections/Keynote.tsx +++ b/apps/main/src/app/(landing)/Sections/Keynote.tsx @@ -1,8 +1,166 @@ "use client"; import React from "react"; -import KeynoteSpeakerSection from "@repo/ui/KeynoteSpeakerSection"; +// import Tent from "../../lib/Assets/SVG/tent.tsx"; +// import clsx from "clsx"; +import useDevice from "@repo/util/hooks/useDevice"; +import KeynoteSpeakerBackgroundWaves from "../../lib/Assets/SVG/KeynoteSpeakerAssets/KeynoteSpeakerBackgroundWaves.tsx"; +import KeynoteSpeakerForegroundWaves from "../../lib/Assets/SVG/KeynoteSpeakerAssets/KeynoteSpeakerForegroundWaves.tsx"; +import KeynoteSpeakerTent from "../../lib/Assets/SVG/KeynoteSpeakerAssets/KeynoteSpeakerTent.tsx"; +import RibbonTitle from "@repo/ui/RibbonTitle"; +import KeynoteSpeakerFrame from "../../lib/Assets/SVG/KeynoteSpeakerAssets/KeynoteSpeakerFrame.tsx"; +import KeynoteSpeakerBush from "../../lib/Assets/SVG/KeynoteSpeakerAssets/KeynoteSpeakerBush.tsx"; +import KeynoteSpeakerTentShadow from "../../lib/Assets/SVG/KeynoteSpeakerAssets/KeynoteSpeakerTentShadow.tsx"; export default function Keynote(): React.ReactNode { - return ; + const { isMobile, isTablet, isDesktop } = useDevice(); + + const speakerName = "Jamie Chen"; + + return ( +
+ + + {/* Tent Shadow */} + + + {/* Tent */} + + + {/* Bush */} + + + {/* Ribbon Title */} +
+ +
+ + {/* Speaker Headshot, TODO: actually add the headshot in when available */} + + + {/* Text cluster TODO: update title & content */} +
+

+ {speakerName} +

+

+ Jamie Chen is Director of Product Engineering at Luma Labs, where she + leads teams building ethical, user-focused AI tools. With a background + in computer science and over a decade in tech, she's known for + her leadership in inclusive innovation. Jamie also mentors emerging + engineers and speaks on ethical development and tech for social good. +

+
+ + +
+ + //
+ // + // + // + //
+ // {/**/} + // + //
+ // + //
+ // {speakerName} + //
+ //
+ // Jamie Chen is Director of Product Engineering at Luma Labs, where + // she leads teams building ethical, user-focused AI tools. With a + // background in computer science and over a decade in tech, she's + // known for her leadership in inclusive innovation. Jamie also mentors + // emerging engineers and speaks on ethical development and tech for + // social good. + //
+ //
+ //
+ //
+ ); } diff --git a/apps/main/src/app/(landing)/Sections/Landing.tsx b/apps/main/src/app/(landing)/Sections/Landing.tsx index 12df7930..22c3b270 100644 --- a/apps/main/src/app/(landing)/Sections/Landing.tsx +++ b/apps/main/src/app/(landing)/Sections/Landing.tsx @@ -55,55 +55,43 @@ export default function Landing(): React.ReactNode { style={{ fontSize: isMobile ? "4vw" : "2vw", top: isMobile ? "17%" : "5%", - color: "#091F36", }} > - Come one, come all! + COME ONE, COME ALL +

Brought to you by{" "}

Amazon Logo - MavenAGI Logo {/* TODO: elements to be animated */} -
-
- -
-
- -
- - - - -
- -
- - - - -
- - ); + return <>; } diff --git a/apps/main/src/app/(landing)/Sections/Volunteering.tsx b/apps/main/src/app/(landing)/Sections/Volunteering.tsx index 85635963..a32713fe 100644 --- a/apps/main/src/app/(landing)/Sections/Volunteering.tsx +++ b/apps/main/src/app/(landing)/Sections/Volunteering.tsx @@ -1,36 +1,36 @@ "use client"; import React from "react"; -// import RibbonTitle from "@repo/ui/RibbonTitle"; +import RibbonTitle from "@repo/ui/RibbonTitle"; import { VolunteeringBackground } from "../../lib/Assets/SVG"; -// import { VolunteeringInfoCard } from "../../lib/Components"; -// import useDevice from "@util/hooks/useDevice"; -// import clsx from "clsx"; +import { VolunteeringInfoCard } from "../../lib/Components"; +import useDevice from "@util/hooks/useDevice"; +import clsx from "clsx"; export default function Volunteering(): React.ReactNode { - // const { isMobile } = useDevice(); - // const cardStyles = clsx( - // "flex-row gap-x-8", - // isMobile && "flex-col items-center gap-y-8", - // ); + const { isMobile } = useDevice(); + const cardStyles = clsx( + "flex-row gap-x-8", + isMobile && "flex-col items-center gap-y-8", + ); - // const mentorInfo = { - // title: "Become a Mentor", - // content: - // "Want to be a HBP 2026 Mentor? Click to view more information about how to become a mentor!", - // url: "https://drive.google.com/file/d/1CqnEvZiVzT_v9z_DVYeTWzsmI0474LIg/view?usp=sharing", - // }; - // const judgeInfo = { - // title: "Become a Judge", - // content: - // "Want to be a HBP 2026 Judge? Click to view more information about how to become a judge!", - // url: "https://drive.google.com/file/d/1U671uCJpBVy6XClP8Vsku_m0IfU55GMW/view?usp=sharing", - // }; + const mentorInfo = { + title: "Become a Mentor", + content: + "Want to be a HBP 2026 Mentor? Click to view more information about how to become a mentor!", + url: "https://drive.google.com/file/d/1CqnEvZiVzT_v9z_DVYeTWzsmI0474LIg/view?usp=sharing", + }; + const judgeInfo = { + title: "Become a Judge", + content: + "Want to be a HBP 2026 Judge? Click to view more information about how to become a judge!", + url: "https://drive.google.com/file/d/1U671uCJpBVy6XClP8Vsku_m0IfU55GMW/view?usp=sharing", + }; return ( -
+
- {/*
+
@@ -45,7 +45,7 @@ export default function Volunteering(): React.ReactNode { content={judgeInfo.content} url={judgeInfo.url} /> -
*/} +
); } diff --git a/apps/main/src/app/(landing)/page.tsx b/apps/main/src/app/(landing)/page.tsx index 238c37f1..810e7c52 100644 --- a/apps/main/src/app/(landing)/page.tsx +++ b/apps/main/src/app/(landing)/page.tsx @@ -3,15 +3,14 @@ import { Values, FAQSection, Landing, - Keynote, + // Keynote, Calendar, Testimonials, Apply, About, Volunteering, } from "./Sections"; -import { Footer } from "../lib/Components"; -import { NavBar } from "../lib/Components"; +import { Footer, NavBar } from "../lib/Components"; import Head from "next/head"; import React from "react"; @@ -21,7 +20,6 @@ export default function Page(): JSX.Element { - @@ -29,7 +27,7 @@ export default function Page(): JSX.Element { - + {/* */} diff --git a/apps/main/src/app/lib/Assets/Icons/clock_icon.tsx b/apps/main/src/app/lib/Assets/Icons/clock_icon.tsx deleted file mode 100644 index 2071f375..00000000 --- a/apps/main/src/app/lib/Assets/Icons/clock_icon.tsx +++ /dev/null @@ -1,52 +0,0 @@ -import * as React from "react"; - -const SVGComponent = (props: React.SVGProps) => ( - - - - - - - - - - -); - -export default SVGComponent; diff --git a/apps/main/src/app/lib/Assets/Icons/expand.tsx b/apps/main/src/app/lib/Assets/Icons/expand.tsx deleted file mode 100644 index c82e74d0..00000000 --- a/apps/main/src/app/lib/Assets/Icons/expand.tsx +++ /dev/null @@ -1,26 +0,0 @@ -import * as React from "react"; - -const SVGComponent = (props: React.SVGProps) => ( - - - - - - - - - - -); - -export default SVGComponent; diff --git a/apps/main/src/app/lib/Assets/Icons/hamburger_icon.tsx b/apps/main/src/app/lib/Assets/Icons/hamburger_icon.tsx deleted file mode 100644 index 8759d2c9..00000000 --- a/apps/main/src/app/lib/Assets/Icons/hamburger_icon.tsx +++ /dev/null @@ -1,52 +0,0 @@ -import * as React from "react"; - -const SVGComponent = (props: React.SVGProps) => ( - - - - - - - - - - -); - -export default SVGComponent; diff --git a/apps/main/src/app/lib/Assets/Icons/new_icon.tsx b/apps/main/src/app/lib/Assets/Icons/new_icon.tsx deleted file mode 100644 index 5886bff2..00000000 --- a/apps/main/src/app/lib/Assets/Icons/new_icon.tsx +++ /dev/null @@ -1,52 +0,0 @@ -import * as React from "react"; - -const SVGComponent = (props: React.SVGProps) => ( - - - - - - - - - - -); - -export default SVGComponent; diff --git a/apps/main/src/app/lib/Assets/Icons/one_icon.tsx b/apps/main/src/app/lib/Assets/Icons/one_icon.tsx deleted file mode 100644 index 90c2f5db..00000000 --- a/apps/main/src/app/lib/Assets/Icons/one_icon.tsx +++ /dev/null @@ -1,52 +0,0 @@ -import * as React from "react"; - -const SVGComponent = (props: React.SVGProps) => ( - - - - - - - - - - -); - -export default SVGComponent; diff --git a/apps/main/src/app/lib/Assets/Icons/share.tsx b/apps/main/src/app/lib/Assets/Icons/share.tsx deleted file mode 100644 index aaf9f2b5..00000000 --- a/apps/main/src/app/lib/Assets/Icons/share.tsx +++ /dev/null @@ -1,52 +0,0 @@ -import * as React from "react"; - -const Share = (props: React.SVGProps) => ( - - - - - - - - - - -); - -export default Share; diff --git a/apps/main/src/app/lib/Assets/Icons/star.tsx b/apps/main/src/app/lib/Assets/Icons/star.tsx deleted file mode 100644 index cf29d170..00000000 --- a/apps/main/src/app/lib/Assets/Icons/star.tsx +++ /dev/null @@ -1,52 +0,0 @@ -import * as React from "react"; - -const SVGComponent = (props: React.SVGProps) => ( - - - - - - - - - - -); - -export default SVGComponent; diff --git a/apps/main/src/app/lib/Assets/SVG/KeynoteSpeakerAssets/KeynoteSpeakerBackgroundWaves.tsx b/apps/main/src/app/lib/Assets/SVG/KeynoteSpeakerAssets/KeynoteSpeakerBackgroundWaves.tsx new file mode 100644 index 00000000..d3de7f60 --- /dev/null +++ b/apps/main/src/app/lib/Assets/SVG/KeynoteSpeakerAssets/KeynoteSpeakerBackgroundWaves.tsx @@ -0,0 +1,23 @@ +import * as React from "react"; +import { SVGProps } from "react"; +const KeynoteSpeakerBackgroundWaves = (props: SVGProps) => ( + + + + + +); +export default KeynoteSpeakerBackgroundWaves; diff --git a/apps/main/src/app/lib/Assets/SVG/KeynoteSpeakerAssets/KeynoteSpeakerBush.tsx b/apps/main/src/app/lib/Assets/SVG/KeynoteSpeakerAssets/KeynoteSpeakerBush.tsx new file mode 100644 index 00000000..bab83ab4 --- /dev/null +++ b/apps/main/src/app/lib/Assets/SVG/KeynoteSpeakerAssets/KeynoteSpeakerBush.tsx @@ -0,0 +1,62 @@ +import * as React from "react"; +import { SVGProps } from "react"; +const KeynoteSpeakerBush = (props: SVGProps) => ( + + + + + + + + + + + + + + +); +export default KeynoteSpeakerBush; diff --git a/apps/main/src/app/lib/Assets/SVG/KeynoteSpeakerAssets/KeynoteSpeakerForegroundWaves.tsx b/apps/main/src/app/lib/Assets/SVG/KeynoteSpeakerAssets/KeynoteSpeakerForegroundWaves.tsx new file mode 100644 index 00000000..bd55e750 --- /dev/null +++ b/apps/main/src/app/lib/Assets/SVG/KeynoteSpeakerAssets/KeynoteSpeakerForegroundWaves.tsx @@ -0,0 +1,39 @@ +import * as React from "react"; +import { SVGProps } from "react"; +const KeynoteSpeakerForegroundWaves = (props: SVGProps) => ( + + + + + + + + + +); +export default KeynoteSpeakerForegroundWaves; diff --git a/apps/main/src/app/lib/Assets/SVG/KeynoteSpeakerAssets/KeynoteSpeakerFrame.tsx b/apps/main/src/app/lib/Assets/SVG/KeynoteSpeakerAssets/KeynoteSpeakerFrame.tsx new file mode 100644 index 00000000..07147e43 --- /dev/null +++ b/apps/main/src/app/lib/Assets/SVG/KeynoteSpeakerAssets/KeynoteSpeakerFrame.tsx @@ -0,0 +1,502 @@ +import * as React from "react"; +import { SVGProps } from "react"; +const KeynoteSpeakerFrame = (props: SVGProps) => ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +); +export default KeynoteSpeakerFrame; diff --git a/apps/main/src/app/lib/Assets/SVG/KeynoteSpeakerAssets/KeynoteSpeakerPopcornBucket.tsx b/apps/main/src/app/lib/Assets/SVG/KeynoteSpeakerAssets/KeynoteSpeakerPopcornBucket.tsx new file mode 100644 index 00000000..5fcc1418 --- /dev/null +++ b/apps/main/src/app/lib/Assets/SVG/KeynoteSpeakerAssets/KeynoteSpeakerPopcornBucket.tsx @@ -0,0 +1,258 @@ +import * as React from "react"; +import { SVGProps } from "react"; +const KeynoteSpeakerPopcornBucket = (props: SVGProps) => ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +); +export default KeynoteSpeakerPopcornBucket; diff --git a/apps/main/src/app/lib/Assets/SVG/KeynoteSpeakerAssets/KeynoteSpeakerPretzel.tsx b/apps/main/src/app/lib/Assets/SVG/KeynoteSpeakerAssets/KeynoteSpeakerPretzel.tsx new file mode 100644 index 00000000..a9441923 --- /dev/null +++ b/apps/main/src/app/lib/Assets/SVG/KeynoteSpeakerAssets/KeynoteSpeakerPretzel.tsx @@ -0,0 +1,190 @@ +import * as React from "react"; +import { SVGProps } from "react"; +const KeynoteSpeakerPretzel = (props: SVGProps) => ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +); +export default KeynoteSpeakerPretzel; diff --git a/apps/main/src/app/lib/Assets/SVG/KeynoteSpeakerAssets/KeynoteSpeakerTent.tsx b/apps/main/src/app/lib/Assets/SVG/KeynoteSpeakerAssets/KeynoteSpeakerTent.tsx new file mode 100644 index 00000000..d3294ad3 --- /dev/null +++ b/apps/main/src/app/lib/Assets/SVG/KeynoteSpeakerAssets/KeynoteSpeakerTent.tsx @@ -0,0 +1,347 @@ +import * as React from "react"; +import { SVGProps } from "react"; +const KeynoteSpeakerTent = (props: SVGProps) => ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +); +export default KeynoteSpeakerTent; diff --git a/apps/main/src/app/lib/Assets/SVG/KeynoteSpeakerAssets/KeynoteSpeakerTentShadow.tsx b/apps/main/src/app/lib/Assets/SVG/KeynoteSpeakerAssets/KeynoteSpeakerTentShadow.tsx new file mode 100644 index 00000000..dffda420 --- /dev/null +++ b/apps/main/src/app/lib/Assets/SVG/KeynoteSpeakerAssets/KeynoteSpeakerTentShadow.tsx @@ -0,0 +1,22 @@ +import * as React from "react"; +import { SVGProps } from "react"; +const KeynoteSpeakerTentShadow = (props: SVGProps) => ( + + + +); +export default KeynoteSpeakerTentShadow; diff --git a/packages/ui/src/SponsorAssets/SponsorTicket.tsx b/apps/main/src/app/lib/Assets/SVG/SponsorAssets/SponsorTicket.tsx similarity index 100% rename from packages/ui/src/SponsorAssets/SponsorTicket.tsx rename to apps/main/src/app/lib/Assets/SVG/SponsorAssets/SponsorTicket.tsx diff --git a/packages/ui/src/SponsorAssets/SponsorUsTicket.tsx b/apps/main/src/app/lib/Assets/SVG/SponsorAssets/SponsorUsTicket.tsx similarity index 100% rename from packages/ui/src/SponsorAssets/SponsorUsTicket.tsx rename to apps/main/src/app/lib/Assets/SVG/SponsorAssets/SponsorUsTicket.tsx diff --git a/apps/main/src/app/lib/Assets/SVG/SponsorUsAssets/BenefitsBackground.tsx b/apps/main/src/app/lib/Assets/SVG/SponsorUsAssets/BenefitsBackground.tsx deleted file mode 100644 index c13ed4a8..00000000 --- a/apps/main/src/app/lib/Assets/SVG/SponsorUsAssets/BenefitsBackground.tsx +++ /dev/null @@ -1,82 +0,0 @@ -import * as React from "react"; -import type { SVGProps } from "react"; - -const BenefitsBackground = (props: SVGProps) => ( - - - - - - - - - - - - - - - - - - -); -export default BenefitsBackground; diff --git a/apps/main/src/app/lib/Assets/SVG/SponsorUsAssets/Logos/cargurus.svg b/apps/main/src/app/lib/Assets/SVG/SponsorUsAssets/Logos/cargurus.svg deleted file mode 100644 index 85c2733d..00000000 --- a/apps/main/src/app/lib/Assets/SVG/SponsorUsAssets/Logos/cargurus.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/apps/main/src/app/lib/Assets/SVG/SponsorUsAssets/Logos/datadog.svg b/apps/main/src/app/lib/Assets/SVG/SponsorUsAssets/Logos/datadog.svg deleted file mode 100644 index fcc0a7a0..00000000 --- a/apps/main/src/app/lib/Assets/SVG/SponsorUsAssets/Logos/datadog.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/apps/main/src/app/lib/Assets/SVG/SponsorUsAssets/Logos/google.svg b/apps/main/src/app/lib/Assets/SVG/SponsorUsAssets/Logos/google.svg deleted file mode 100644 index 62c8465a..00000000 --- a/apps/main/src/app/lib/Assets/SVG/SponsorUsAssets/Logos/google.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/apps/main/src/app/lib/Assets/SVG/SponsorUsAssets/Logos/meta.svg b/apps/main/src/app/lib/Assets/SVG/SponsorUsAssets/Logos/meta.svg deleted file mode 100644 index 39af8f4d..00000000 --- a/apps/main/src/app/lib/Assets/SVG/SponsorUsAssets/Logos/meta.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/apps/main/src/app/lib/Assets/SVG/SponsorUsAssets/Logos/simplisafe.svg b/apps/main/src/app/lib/Assets/SVG/SponsorUsAssets/Logos/simplisafe.svg deleted file mode 100644 index 822e391a..00000000 --- a/apps/main/src/app/lib/Assets/SVG/SponsorUsAssets/Logos/simplisafe.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/apps/main/src/app/lib/Assets/SVG/SponsorUsAssets/Logos/toast.svg b/apps/main/src/app/lib/Assets/SVG/SponsorUsAssets/Logos/toast.svg deleted file mode 100644 index 0d7b9ddf..00000000 --- a/apps/main/src/app/lib/Assets/SVG/SponsorUsAssets/Logos/toast.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/apps/main/src/app/lib/Assets/SVG/SponsorUsAssets/Logos/vmware.svg b/apps/main/src/app/lib/Assets/SVG/SponsorUsAssets/Logos/vmware.svg deleted file mode 100644 index 08bae574..00000000 --- a/apps/main/src/app/lib/Assets/SVG/SponsorUsAssets/Logos/vmware.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/apps/main/src/app/lib/Assets/SVG/SponsorUsAssets/Logos/woodmak.svg b/apps/main/src/app/lib/Assets/SVG/SponsorUsAssets/Logos/woodmak.svg deleted file mode 100644 index 01b36159..00000000 --- a/apps/main/src/app/lib/Assets/SVG/SponsorUsAssets/Logos/woodmak.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/apps/main/src/app/lib/Assets/SVG/SponsorUsAssets/Logos/yelp.svg b/apps/main/src/app/lib/Assets/SVG/SponsorUsAssets/Logos/yelp.svg deleted file mode 100644 index 2760b913..00000000 --- a/apps/main/src/app/lib/Assets/SVG/SponsorUsAssets/Logos/yelp.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/apps/main/src/app/lib/Assets/SVG/SponsorUsAssets/NavyBackground.tsx b/apps/main/src/app/lib/Assets/SVG/SponsorUsAssets/NavyBackground.tsx deleted file mode 100644 index 3ef3e89a..00000000 --- a/apps/main/src/app/lib/Assets/SVG/SponsorUsAssets/NavyBackground.tsx +++ /dev/null @@ -1,217 +0,0 @@ -import * as React from "react"; -import type { SVGProps } from "react"; - -const NavyBackground = (props: SVGProps) => ( - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -); -export default NavyBackground; diff --git a/apps/main/src/app/lib/Assets/SVG/SponsorUsAssets/SponsorUsBenefitLegs.tsx b/apps/main/src/app/lib/Assets/SVG/SponsorUsAssets/SponsorUsBenefitLegs.tsx deleted file mode 100644 index d2167743..00000000 --- a/apps/main/src/app/lib/Assets/SVG/SponsorUsAssets/SponsorUsBenefitLegs.tsx +++ /dev/null @@ -1,78 +0,0 @@ -import * as React from "react"; -import type { SVGProps } from "react"; - -const SponsorUsBenefitLegs = (props: SVGProps) => ( - - - - - - - - - - - - - - -); -export default SponsorUsBenefitLegs; diff --git a/apps/main/src/app/lib/Assets/SVG/SponsorUsAssets/SponsorsUsBenefitCard.tsx b/apps/main/src/app/lib/Assets/SVG/SponsorUsAssets/SponsorsUsBenefitCard.tsx new file mode 100644 index 00000000..70d9f3da --- /dev/null +++ b/apps/main/src/app/lib/Assets/SVG/SponsorUsAssets/SponsorsUsBenefitCard.tsx @@ -0,0 +1,158 @@ +import * as React from "react"; +import type { SVGProps } from "react"; +const SponsorUsBenefitCard = (props: SVGProps) => ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +); +export default SponsorUsBenefitCard; diff --git a/apps/main/src/app/lib/Assets/SVG/SponsorUsPageAssets/SponsorUsTestimonialsBackground.tsx b/apps/main/src/app/lib/Assets/SVG/SponsorUsPageAssets/SponsorUsTestimonialsBackground.tsx new file mode 100644 index 00000000..bcb2c3b3 --- /dev/null +++ b/apps/main/src/app/lib/Assets/SVG/SponsorUsPageAssets/SponsorUsTestimonialsBackground.tsx @@ -0,0 +1,828 @@ +import * as React from "react"; +import { SVGProps } from "react"; +const SponsorUsTestimonialsBackground = (props: SVGProps) => ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +); +export default SponsorUsTestimonialsBackground; diff --git a/apps/main/src/app/lib/Assets/SVG/TestimonialAssets/TestimonialLeftBush.tsx b/apps/main/src/app/lib/Assets/SVG/TestimonialAssets/TestimonialLeftBush.tsx deleted file mode 100644 index fce91f39..00000000 --- a/apps/main/src/app/lib/Assets/SVG/TestimonialAssets/TestimonialLeftBush.tsx +++ /dev/null @@ -1,31 +0,0 @@ -import React from "react"; -import type { SVGProps } from "react"; - -const TestimonialLeftBush = (props: SVGProps) => ( - - - - - - -); -export default TestimonialLeftBush; diff --git a/apps/main/src/app/lib/Assets/SVG/TestimonialAssets/TestimonialRightBush.tsx b/apps/main/src/app/lib/Assets/SVG/TestimonialAssets/TestimonialRightBush.tsx deleted file mode 100644 index 4f33ffdc..00000000 --- a/apps/main/src/app/lib/Assets/SVG/TestimonialAssets/TestimonialRightBush.tsx +++ /dev/null @@ -1,51 +0,0 @@ -import React from "react"; -import type { SVGProps } from "react"; - -const TestimonialRightBush = (props: SVGProps) => ( - - - - - - - - - - - -); -export default TestimonialRightBush; diff --git a/apps/main/src/app/lib/Assets/SVG/TestimonialAssets/TestimonialsBottomSquiggle.tsx b/apps/main/src/app/lib/Assets/SVG/TestimonialAssets/TestimonialsBottomSquiggle.tsx deleted file mode 100644 index 8015c9e1..00000000 --- a/apps/main/src/app/lib/Assets/SVG/TestimonialAssets/TestimonialsBottomSquiggle.tsx +++ /dev/null @@ -1,18 +0,0 @@ -import * as React from "react"; -import { SVGProps } from "react"; -const TestimonialsBottomSquiggle = (props: SVGProps) => ( - - - -); -export default TestimonialsBottomSquiggle; diff --git a/apps/main/src/app/lib/Assets/SVG/index.ts b/apps/main/src/app/lib/Assets/SVG/index.ts index 17d6b802..378db2df 100644 --- a/apps/main/src/app/lib/Assets/SVG/index.ts +++ b/apps/main/src/app/lib/Assets/SVG/index.ts @@ -3,8 +3,4 @@ export { default as ProjectStarIcon } from "./StarIcon"; export { default as VolunteeringBackground } from "./VolunteeringAssets/VolunteeringBackground"; export { default as ImpactSign } from "./SponsorUsAssets/ImpactSign"; export { default as HeroBackground } from "./SponsorUsAssets/HeroBackground"; -// testimonial svgs -export { default as TestimonialLeftBush } from "./TestimonialAssets/TestimonialLeftBush.tsx"; -export { default as TestimonialRightBush } from "./TestimonialAssets/TestimonialRightBush.tsx"; -export { default as TestimonialBottomSquiggle } from "./TestimonialAssets/TestimonialsBottomSquiggle.tsx"; -export { default as TrainTracks } from "./TestimonialAssets/TrainTracks.tsx"; +export { default as SponsorUsTestimonialsBackground } from "./SponsorUsPageAssets/SponsorUsTestimonialsBackground";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; \ No newline at end of file diff --git a/apps/main/src/app/lib/Components/Accordian.tsx b/apps/main/src/app/lib/Components/Accordian.tsx index 3fadae41..99c7041d 100644 --- a/apps/main/src/app/lib/Components/Accordian.tsx +++ b/apps/main/src/app/lib/Components/Accordian.tsx @@ -5,7 +5,7 @@ import React, { useState } from "react"; type AccordionInfo = { question: string; - answer: React.ReactNode; + answer: string; }; interface AccordionProps { diff --git a/packages/ui/src/Footer.tsx b/apps/main/src/app/lib/Components/Footer.tsx similarity index 89% rename from packages/ui/src/Footer.tsx rename to apps/main/src/app/lib/Components/Footer.tsx index de26f282..5088d219 100644 --- a/packages/ui/src/Footer.tsx +++ b/apps/main/src/app/lib/Components/Footer.tsx @@ -2,11 +2,11 @@ import React, { ChangeEvent, useState } from "react"; import Button from "@repo/ui/Button"; -import isValidEmail from "@repo/util/functions/isValidEmail"; +import isValidEmail from "@util/functions/isValidEmail.ts"; import { FaArrowUp } from "react-icons/fa"; import clsx from "clsx"; -import useDevice from "@repo/util/hooks/useDevice"; -import SocialsButtonsRow from "@repo/ui/SocialsButtonsRow"; +import useDevice from "@util/hooks/useDevice.ts"; +import SocialsButtonsRow from "../../../../../../packages/ui/src/SocialsButtonsRow.tsx"; const InputField = ({ placeholder, @@ -121,12 +121,6 @@ const Footer = () => { />
- - MLH Code of Conduct -
); diff --git a/apps/main/src/app/lib/Components/NavBar.tsx b/apps/main/src/app/lib/Components/NavBar.tsx index 94fa6208..fe64e696 100644 --- a/apps/main/src/app/lib/Components/NavBar.tsx +++ b/apps/main/src/app/lib/Components/NavBar.tsx @@ -1,27 +1,103 @@ "use client"; -import React from "react"; -import NavBarBase from "@repo/ui/NavBarBase"; +import React, { useState } from "react"; +import Logo from "../../../../../../packages/ui/src/Logos/HackBeanpotLogo"; +import LocalLink from "./LocalLink"; +import Button from "@repo/ui/Button"; +import useDevice from "@util/hooks/useDevice"; +import { RxHamburgerMenu } from "react-icons/rx"; +import { FiX } from "react-icons/fi"; +import clsx from "clsx"; const NavBar = () => { + const [isOpen, setOpen] = useState(false); + const { isMobile, isTablet, isDesktop } = useDevice(); + + type LocalLinkInfo = { + pageName: string; + link: string; + }; + + const localLinkArr: LocalLinkInfo[] = [ + { pageName: "About", link: "/" }, + { pageName: "Projects", link: "/projects" }, + { pageName: "Team", link: "/team" }, + { pageName: "Sponsors", link: "/sponsors" }, + ]; + + const outerDivStyles = clsx( + "sticky top-0 z-[100] w-full h-fit bg-white flex flex-row", + isDesktop ? "flex-row p-2" : "flex-col", + isOpen && isMobile && "fixed", + ); + + const navBarStyles = clsx( + "flex flex-row items-center left-0 w-full", + isMobile && "p-2", + ); + + const iconStyles = clsx( + "flex flex-row w-full items-center justify-end pr-2", + isTablet && "pr-6", + ); + + const navBarItemsStyles = clsx( + "flex gap-10 w-full items-center z-10", + isDesktop + ? "flex-row justify-end self-center p-4" + : "flex-col gap-8 bg-starlightBlue text-white top-10 p-10", + isMobile ? "h-screen" : "h-fit", + ); + + const buttonsStyles = clsx( + "flex flex-row gap-2 items-center", + isDesktop && "justify-end pr-4", + ); + return ( - +
+
+ + + + + {!isDesktop && ( +
setOpen((prev) => !prev)}> + {isOpen ? ( + + ) : ( + + )} +
+ )} +
+ + {(isDesktop || isOpen) && ( +
+ {localLinkArr.map((item) => ( + + {item.pageName} + + ))} +
+ +
+
+ )} +
); }; diff --git a/apps/main/src/app/lib/Components/index.ts b/apps/main/src/app/lib/Components/index.ts index 1ead2024..b40f3f4b 100644 --- a/apps/main/src/app/lib/Components/index.ts +++ b/apps/main/src/app/lib/Components/index.ts @@ -1,7 +1,6 @@ -export { default as NavBar } from "./NavBar.tsx"; -export { default as Footer } from "@repo/ui/Footer"; +export { default as NavBar } from "./NavBar"; +export { default as Footer } from "./Footer.tsx"; export { default as LocalLink } from "./LocalLink"; export { default as ExternalLink } from "./ExternalLink"; export { default as VolunteeringInfoCard } from "./VolunteeringComponents/VolunteeringInfoCard.tsx"; -export { default as SponsorTicketComp } from "../../../../../../packages/ui/src/SponsorComponents/SponsorTicketComp.tsx"; -export { default as SponsorTicketBoothComp } from "./SponsorComponents/SponsorTicketBoothComp.tsx"; +export { default as SponsorTicketComp } from "../../sponsors/components/SponsorTicketComp.tsx"; diff --git a/apps/main/src/app/projects/page.tsx b/apps/main/src/app/projects/page.tsx index 9fc414cd..7aeaaeff 100644 --- a/apps/main/src/app/projects/page.tsx +++ b/apps/main/src/app/projects/page.tsx @@ -10,7 +10,6 @@ import OrangeFirework from "./components/orangeFirework"; import YellowFirework from "./components/yellowFirework"; import Button from "@repo/ui/Button"; import { Footer, NavBar } from "../lib/Components"; -import CarnivalTitle from "@repo/ui/CarnivalTitle"; const projectData = [ { @@ -81,10 +80,49 @@ export default function Page() { > -
- -
+
+ + + + + + + + + 2025 PROJECTS + + + + {projectData.map((project, index) => (
-
+
Interested in seeing more past hacker projects?
-
+
Check out the HackBeanpot Archive!
diff --git a/apps/main/src/app/sponsor-us/Sections/BenefitsSection.tsx b/apps/main/src/app/sponsor-us/Sections/BenefitsSection.tsx index f8c39073..d0727809 100644 --- a/apps/main/src/app/sponsor-us/Sections/BenefitsSection.tsx +++ b/apps/main/src/app/sponsor-us/Sections/BenefitsSection.tsx @@ -1,90 +1,87 @@ import React from "react"; import SponsorUsBenefitCardComp from "../components/SponsorUsBenefitCardComp"; -import BenefitsBackground from "../../lib/Assets/SVG/SponsorUsAssets/BenefitsBackground"; import RibbonTitle from "@repo/ui/RibbonTitle"; import useDevice from "@util/hooks/useDevice"; import clsx from "clsx"; const BenefitsSection = () => { - const { isMobile, isTablet, isDesktop } = useDevice(); + const { isMobile } = useDevice(); + const [isSmallScreen, setIsSmallScreen] = React.useState(true); - const firstCardClasses = clsx( - "w-full flex h-[50vh]", - isMobile && "justify-center", - isTablet && "justify-center pr-[55vw]", - isDesktop && "justify-start pl-[10vw]", - ); + React.useEffect(() => { + const checkScreenSize = () => { + const isSmall = window.innerWidth <= 1024; + setIsSmallScreen(isSmall); + }; - const secondCardClasses = clsx( - "w-full flex h-[50vh]", - isMobile && "justify-center", - isTablet && "justify-center pr-[55vw]", - isDesktop && "justify-center pl-[10vw] ", - ); + checkScreenSize(); + window.addEventListener("resize", checkScreenSize); + return () => window.removeEventListener("resize", checkScreenSize); + }, []); + const firstCardClasses = clsx("w-full flex", { + "justify-center px-4": isSmallScreen || isMobile, + "justify-end pr-96": !(isSmallScreen || isMobile), + }); - const cardWrapperClasses = clsx("max-w-xl", isMobile && "w-full ml-[7vw]"); + const secondCardClasses = clsx("w-full flex", { + "justify-center px-4": isSmallScreen || isMobile, + "justify-start pl-96": !(isSmallScreen || isMobile), + }); - const sectionStyles = clsx( - "relative", - isDesktop && "-mt-[18vh] pt-[18vh]", - isTablet && "-mt-[14vh] pt-[16vh]", - isMobile && "-mt-[14vh] pt-[14vh]", - ); + const cardWrapperClasses = clsx("max-w-xl", { + "w-full": isSmallScreen || isMobile, + }); return ( -
-
-
- -
-
- -
-
-
- -

- Scout the next generation of talent here. Receive perks - such as: -

-
    -
  • • Onsite interviews
  • -
  • • A spot in our career fair
  • -
  • • Hacker resumes
  • -
  • • Sponsoring a company specific prize
  • -
- - } - /> -
+ <> +
+ +
+
+
+ +

+ Scout the next generation of talent here. Receive perks + such as: +

+
    +
  • • Onsite interviews
  • +
  • • A spot in our career fair
  • +
  • • Hacker resumes
  • +
  • • Sponsoring a company specific prize
  • +
+ + } + />
-
-
- -
+
+
+
+
-
+ +

Additionally, we provide the flexibility to create your own perk or package.

-

+

Let us know your ideas and package choice at sponsorship@hackbeanpot.com. Our team will work with you to answer any questions and guide you through the next steps in becoming a HackBeanpot 2026 sponsor!

-
+ ); }; diff --git a/apps/main/src/app/sponsor-us/Sections/PastSponsors.tsx b/apps/main/src/app/sponsor-us/Sections/PastSponsors.tsx deleted file mode 100644 index a2665ab4..00000000 --- a/apps/main/src/app/sponsor-us/Sections/PastSponsors.tsx +++ /dev/null @@ -1,144 +0,0 @@ -"use client"; - -import React from "react"; -import useDevice from "@util/hooks/useDevice.ts"; - -import SponsorBackground from "../../lib/Assets/SVG/SponsorUsAssets/NavyBackground.tsx"; -import RibbonTitle from "@repo/ui/RibbonTitle"; -import SponsorTicketComp from "../../../../../../packages/ui/src/SponsorComponents/SponsorTicketComp.tsx"; -import clsx from "clsx"; -import GoogleLogo from "../../lib/Assets/SVG/SponsorUsAssets/Logos/google.svg"; -import CarGurusLogo from "../../lib/Assets/SVG/SponsorUsAssets/Logos/cargurus.svg"; -import MetaLogo from "../../lib/Assets/SVG/SponsorUsAssets/Logos/meta.svg"; -import DatadogLogo from "../../lib/Assets/SVG/SponsorUsAssets/Logos/datadog.svg"; -import SimplisafeLogo from "../../lib/Assets/SVG/SponsorUsAssets/Logos/simplisafe.svg"; -import WoodMacLogo from "../../lib/Assets/SVG/SponsorUsAssets/Logos/woodmak.svg"; -import YelpLogo from "../../lib/Assets/SVG/SponsorUsAssets/Logos/yelp.svg"; -import VMwareLogo from "../../lib/Assets/SVG/SponsorUsAssets/Logos/vmware.svg"; -import ToastLogo from "../../lib/Assets/SVG/SponsorUsAssets/Logos/toast.svg"; - -const desktopRows: string[][] = [ - [GoogleLogo, CarGurusLogo, MetaLogo, DatadogLogo], - [SimplisafeLogo, WoodMacLogo, YelpLogo], - [VMwareLogo, ToastLogo], -]; - -const tabletRows: string[][] = [ - [GoogleLogo, CarGurusLogo], - [MetaLogo, DatadogLogo], - [SimplisafeLogo, WoodMacLogo], - [YelpLogo, VMwareLogo], - [ToastLogo], -]; - -const mobileRows: string[][] = [ - [GoogleLogo], - [CarGurusLogo], - [MetaLogo], - [DatadogLogo], - [SimplisafeLogo], - [WoodMacLogo], - [YelpLogo], - [VMwareLogo], - [ToastLogo], -]; - -// generate single row of tickets -function makeSponsorRow( - ticketWidthVW: number, - logos: string[], - logoSizes: number[], -) { - return ( -
1 ? 2 : 5}vw` }} - > - {logos.map((logo, i) => ( - - ))} -
- ); -} - -export default function PastSponsors(): JSX.Element { - const { isMobile, isTablet, isDesktop } = useDevice(); - const bgScale = isMobile ? 1.75 : isTablet ? 1.25 : 1.25; - - const ribbonStyles = clsx( - `${isMobile ? "transform scale-[0.65]" : ""}`, - isMobile && "mt-48 mb-6", - isTablet && "mt-[32vh] mb-6", - isDesktop && "mt-[30vh] mb-12", - ); - - return ( -
- {/* Background burst */} -
- -
- - {/* Content overlay */} -
-
- -
- - {/* Ticket Rows */} -
-
- {/* Desktop: 4 / 3 / 2 */} - {isDesktop && ( - <> - {makeSponsorRow(20, desktopRows[0], [150, 150, 150, 100])} - {makeSponsorRow(20, desktopRows[1], [150, 150, 150])} - {makeSponsorRow(20, desktopRows[2], [150, 100])} - - )} - - {/* Tablet */} - {isTablet && ( - <> - {makeSponsorRow(28, tabletRows[0], [150, 150])} - {makeSponsorRow(28, tabletRows[1], [150, 100])} - {makeSponsorRow(28, tabletRows[2], [150, 150])} - {makeSponsorRow(28, tabletRows[3], [150, 150])} - {makeSponsorRow(28, tabletRows[4], [100])} - - )} - - {/* Mobile */} - {isMobile && ( - <> - {makeSponsorRow(75, mobileRows[0], [150])} - {makeSponsorRow(75, mobileRows[1], [150])} - {makeSponsorRow(75, mobileRows[2], [150])} - {makeSponsorRow(75, mobileRows[3], [100])} - {makeSponsorRow(75, mobileRows[4], [150])} - {makeSponsorRow(75, mobileRows[5], [150])} - {makeSponsorRow(75, mobileRows[6], [150])} - {makeSponsorRow(75, mobileRows[7], [150])} - {makeSponsorRow(75, mobileRows[8], [100])} - - )} -
-
-
-
- ); -} diff --git a/apps/main/src/app/sponsor-us/Sections/SponsorHero.tsx b/apps/main/src/app/sponsor-us/Sections/SponsorHero.tsx index f72cabf8..6d102490 100644 --- a/apps/main/src/app/sponsor-us/Sections/SponsorHero.tsx +++ b/apps/main/src/app/sponsor-us/Sections/SponsorHero.tsx @@ -2,17 +2,55 @@ import React from "react"; import Button from "@repo/ui/Button"; -import CarnivalTitle from "@repo/ui/CarnivalTitle"; import { HeroBackground } from "../../lib/Assets/SVG/index"; import LandingCard from "../components/LandingCard"; const SponsorUsHero = () => { return ( -
+
- + + + + + + + + + SPONSOR US + + +
diff --git a/apps/main/src/app/sponsor-us/components/LandingCard.tsx b/apps/main/src/app/sponsor-us/components/LandingCard.tsx index 43ada697..e8f89b8f 100644 --- a/apps/main/src/app/sponsor-us/components/LandingCard.tsx +++ b/apps/main/src/app/sponsor-us/components/LandingCard.tsx @@ -7,7 +7,7 @@ const LandingCard = () => { return (
-
+
diff --git a/apps/main/src/app/sponsor-us/components/SponsorUsBenefitCardComp.tsx b/apps/main/src/app/sponsor-us/components/SponsorUsBenefitCardComp.tsx index 6180f9be..d4bffbb9 100644 --- a/apps/main/src/app/sponsor-us/components/SponsorUsBenefitCardComp.tsx +++ b/apps/main/src/app/sponsor-us/components/SponsorUsBenefitCardComp.tsx @@ -1,9 +1,7 @@ "use client"; import React from "react"; -import SponsorUsBenefitLegs from "../../lib/Assets/SVG/SponsorUsAssets/SponsorUsBenefitLegs"; -import useDevice from "@util/hooks/useDevice"; -import clsx from "clsx"; +import SponsorUsBenefitCard from "../../lib/Assets/SVG/SponsorUsAssets/SponsorsUsBenefitCard"; export type SponsorUsBenefitCardProps = { title: string; @@ -14,53 +12,17 @@ export default function SponsorUsBenefitCardComp({ title, content, }: SponsorUsBenefitCardProps) { - const { isMobile, isTablet, isDesktop } = useDevice(); - - const cardStylesBG = clsx( - "absolute bg-starlightBlue rounded-xl shadow-[inset_-15px_15px_0_rgba(0,0,0,0.25)]", - isDesktop && "w-[35vw] h-[18vw]", - isTablet && "w-[50vw] h-[30vw]", - isMobile && "w-[85vw] h-[60vw]", - ); - const cardStylesBorder = clsx( - "absolute outline outline-[15px] outline-firecrackerRedLight outline-solid rounded-xl drop-shadow-[8px_8px_0_#CC322D]", - isDesktop && "w-[35vw] h-[18vw]", - isTablet && "w-[50vw] h-[30vw]", - isMobile && "w-[85vw] h-[60vw]", - ); - - const contentStyles = clsx( - "relative z-10 text-white", - isDesktop && "p-12", - isTablet && "p-8", - isMobile && "p-5", - ); - - const legStyles = clsx( - "absolute z-0", - isDesktop && "top-[18vw] -left-[9vw] desktop-xl:-left-[5vw]", - isTablet && "top-[30vw] -left-[6.5vw]", - isMobile && "top-[60vw] -left-[10vw]", - ); - return ( -
-
-
- -
- -
-
-
-

- {title} -

-
- {content} -
-
-
+
+ + +
+

+ {title} +

+

+ {content} +

); diff --git a/apps/main/src/app/sponsor-us/components/SponsorUsTestimonialCart.tsx b/apps/main/src/app/sponsor-us/components/SponsorUsTestimonialCart.tsx new file mode 100644 index 00000000..9d969d1b --- /dev/null +++ b/apps/main/src/app/sponsor-us/components/SponsorUsTestimonialCart.tsx @@ -0,0 +1,51 @@ +"use client"; + +import clsx from "clsx"; +import React from "react"; + +export type CarouselCardProps = { + testimonial: string; + sponsorRep: string; + sponsorRepPosition: string; + sponsor: string; +}; + +export default function SponsorUsTestimonialCart({ + testimonial, + sponsorRep, + sponsorRepPosition, + sponsor, +}: CarouselCardProps): React.ReactNode { + const outerDivStyles = clsx( + "relative flex justify-center items-center size-full text-carouselCreamLight font-DMSans-Regular mobile:text-[8px] mobile-xl:text-[10px] tablet:text-[14px] desktop:text-[18px] desktop-md:text-[20px] desktop-xl:text-[25px]", + ); + + const scaleFactor = clsx( + "mobile:scale-[60%] mobile-xl:scale-[60%] tablet:scale-[80%] desktop:scale-[110%] desktop-sm:scale-[115%] desktop-md:scale-[125%] desktop-xl:scale-[140%]", + ); + + const outerTextStyles = clsx( + "absolute z-20 flex flex-col text-left space-y-5 mobile:p-32 mobile-xl:p-36 mobile-xl:top-[6%] tablet:p-36 desktop:p-8 desktop:top-[6%] desktop-xl:p-0 desktop-xl:top-[6%]", + ); + + return ( +
+
+ Ferris Wheel Cart +
+
+

{testimonial}

+
+

{sponsorRep}

+

+ {sponsorRepPosition} at {sponsor} +

+
+
+
+ ); +} diff --git a/apps/main/src/app/sponsor-us/components/SponsorUsTestimonialWheel.tsx b/apps/main/src/app/sponsor-us/components/SponsorUsTestimonialWheel.tsx new file mode 100644 index 00000000..b00470c4 --- /dev/null +++ b/apps/main/src/app/sponsor-us/components/SponsorUsTestimonialWheel.tsx @@ -0,0 +1,26 @@ +"use client"; + +import React from "react"; + +export type FerrisWheelProps = { + classname: string; + transformStyle: string; +}; + +export default function SponsorUsTestimonialsWheel({ + classname, + transformStyle +}: FerrisWheelProps): React.ReactNode { + + return ( +
+
+ Ferris Wheel +
+
+ ); +} diff --git a/apps/main/src/app/sponsor-us/components/SponsorUsTestimonials.tsx b/apps/main/src/app/sponsor-us/components/SponsorUsTestimonials.tsx new file mode 100644 index 00000000..56cf8533 --- /dev/null +++ b/apps/main/src/app/sponsor-us/components/SponsorUsTestimonials.tsx @@ -0,0 +1,153 @@ +"use client"; + +import React, { useState } from "react"; +import RibbonTitle from "@repo/ui/RibbonTitle"; +import clsx from "clsx"; +import { SponsorUsTestimonialsBackground } from "../../lib/Assets/SVG"; +import Button from "@repo/ui/Button"; +import { IoIosArrowBack, IoIosArrowForward } from "react-icons/io"; +import SponsorUsTestimonialCart from "./SponsorUsTestimonialCart"; +import useDevice from "@util/hooks/useDevice"; +import SponsorUsTestimonialsWheel from "./SponsorUsTestimonialWheel"; + +const defaultOrder = [ + { + testimonial: + "If I could describe HBP in one word - invigorating. We had a lot of folks who weren’t sure what the experience would be like, and they left feeling united - really energized and really impressed with the amount of talent that was on display as well as the atmosphere.", + sponsorRep: "Rob Antczak", + sponsorRepPosition: "CTO", + sponsor: "Wood Mackenzie", + }, + { + testimonial: + "This hackathon is very good for recruitment. We recruited half of our Fall 2023 tech co-ops exclusively through this hackathon. I’ve talked to every single project group that participated in the hackathon, observing their capabilities to explain and communicate their project to an outsider – the very things we look for at WoodMac.", + sponsorRep: "William Guo", + sponsorRepPosition: "Senior Software Engineer and Co-op Experiential Lead", + sponsor: "Wood Mackenzie", + }, +]; + +export default function SponsorUsTestimonials() { + const [currentIdx, setCurrentIdx] = useState(0); + const [currentAnimation, setCurrentAnimation] = useState(""); + const [currWheelAngle, setCurrWheelAngle] = useState(0); + const [animationKey, setAnimationKey] = useState(0); + const { isTablet, isDesktop } = useDevice(); + + const currentItem = defaultOrder[currentIdx]; + const leftBound = currentIdx === 0; + const rightBound = currentIdx === defaultOrder.length - 1; + + const triggerAnimation = (direction: "left" | "right") => { + if ( + (leftBound && direction === "left") || + (rightBound && direction === "right") + ) { + return; + } + + setCurrentAnimation( + direction === "left" ? "animate-fade-left" : "animate-fade-right", + ); + + setCurrWheelAngle((prev) => (direction === "left" ? prev - 90 : prev + 90)); + + setAnimationKey((prev) => prev + 1); + }; + + function onClickLeftArrow() { + setCurrentIdx((prev) => Math.max(prev - 1, 0)); + triggerAnimation("left"); + } + + function onClickRightArrow() { + setCurrentIdx((prev) => Math.min(prev + 1, defaultOrder.length - 1)); + triggerAnimation("right"); + } + + const outerDivStyles = clsx( + "relative flex flex-col items-center justify-center overflow-hidden", + ); + + const outerRibbonStyles = clsx( + "absolute z-10 w-full desktop:top-[20%] desktop-md:top-[25%] desktop-xl:top-[25%] desktop-xl:scale-[150%] tablet:top-[20%] tablet:scale-[65%] mobile:top-[20%] mobile:scale-[60%] mobile-xl:top-[20%] mobile-xl:scale-[65%]", + ); + + const cartOuterStyles = clsx( + "absolute z-20 mobile:top-[15%] mobile-xl:top-[15%] tablet:top-[25%] desktop:top-[30%] desktop-md:top-[35%] desktop-xl:top-[40%]", + ); + + const buttonsOuterStyles = clsx( + "absolute w-full z-20 mobile:top-[60%] mobile-xl:top-[55%] tablet:top-[55%] desktop:top-[50%] desktop-md:top-[45%] desktop-xl:top-[45%]", + ); + + const buttonsInnerStyles = clsx( + "absolute flex flex-row items-center justify-center w-full h-auto mobile:gap-[50vw] tablet:gap-[77vw] desktop-xl:gap-[55vw]", + ); + + const buttonSizes = isDesktop ? 60 : isTablet ? 30 : 10; + + const ferrisWheelStyles = clsx( + "absolute size-full z-10 transform transition-transform duration-300 top-[70%]", + isDesktop && "top-[80%]", + ); + + const ferrisWheelScaling = clsx("scale(1.2)", isDesktop && "scale(1.5)"); + + const backgroundStyles = clsx("relative z-0 w-[165vw] h-full -ml-10"); + + return ( +
+ {/* Testimonials Ribbon */} +
+ +
+ {/* Testimonials Cart */} +
+
+ +
+
+ {/* Buttons */} +
+
+ {/* Left Button */} +
+
+ + {/* Ferris Wheel */} + + + {/* Testimonials Background */} + +
+ ); +} diff --git a/apps/main/src/app/sponsor-us/page.tsx b/apps/main/src/app/sponsor-us/page.tsx index 8a1e127a..10a2ff7f 100644 --- a/apps/main/src/app/sponsor-us/page.tsx +++ b/apps/main/src/app/sponsor-us/page.tsx @@ -5,7 +5,7 @@ import SponsorUsStatsComp from "./Sections/SponsorUsStatsComp"; import SponsorUsHero from "./Sections/SponsorHero"; import BenefitsSection from "./Sections/BenefitsSection"; import { Footer, NavBar } from "../lib/Components"; -import PastSponsors from "./Sections/PastSponsors.tsx"; +import SponsorUsTestimonials from "./components/SponsorUsTestimonials.tsx"; const SponsorUsPage = () => { return ( @@ -14,9 +14,8 @@ const SponsorUsPage = () => { - - {/* this div shouldn't be needed in 2027 lol */} -
+ {/* TODO: Past Sponsors Section */} +
); diff --git a/apps/main/src/app/lib/Components/SponsorComponents/SponsorTicketBoothComp.tsx b/apps/main/src/app/sponsors/components/SponsorTicketBoothComp.tsx similarity index 93% rename from apps/main/src/app/lib/Components/SponsorComponents/SponsorTicketBoothComp.tsx rename to apps/main/src/app/sponsors/components/SponsorTicketBoothComp.tsx index 6f85ad15..7f483ab6 100644 --- a/apps/main/src/app/lib/Components/SponsorComponents/SponsorTicketBoothComp.tsx +++ b/apps/main/src/app/sponsors/components/SponsorTicketBoothComp.tsx @@ -1,6 +1,6 @@ import useDevice from "@util/hooks/useDevice.ts"; -import Ticket from "../../Assets/SVG/SponsorUsAssets/Ticket.tsx"; -import TicketBooth from "../../Assets/SVG/SponsorUsAssets/TicketBooth.tsx"; +import Ticket from "../../lib/Assets/SVG/SponsorUsAssets/Ticket.tsx"; +import TicketBooth from "../../lib/Assets/SVG/SponsorUsAssets/TicketBooth.tsx"; import Button from "@repo/ui/Button"; import React from "react"; diff --git a/packages/ui/src/SponsorComponents/SponsorTicketComp.tsx b/apps/main/src/app/sponsors/components/SponsorTicketComp.tsx similarity index 84% rename from packages/ui/src/SponsorComponents/SponsorTicketComp.tsx rename to apps/main/src/app/sponsors/components/SponsorTicketComp.tsx index c00907bd..2d459443 100644 --- a/packages/ui/src/SponsorComponents/SponsorTicketComp.tsx +++ b/apps/main/src/app/sponsors/components/SponsorTicketComp.tsx @@ -1,15 +1,14 @@ "use client"; import React from "react"; -import SponsorTicket from "../SponsorAssets/SponsorTicket"; -import SponsorUsTicket from "../SponsorAssets/SponsorUsTicket"; +import SponsorTicket from "../../lib/Assets/SVG/SponsorAssets/SponsorTicket"; +import SponsorUsTicket from "../../lib/Assets/SVG/SponsorAssets/SponsorUsTicket"; import Image from "next/image"; export type SponsorTicketProps = { isSponsorUs?: boolean; logoPath?: string; ticketWidthVw?: number; - logoWidth?: number; }; /** @@ -22,7 +21,6 @@ export default function SponsorTicketComp({ isSponsorUs = false, logoPath, ticketWidthVW = 20, - logoWidth, }: SponsorTicketProps & { ticketWidthVW?: number }): JSX.Element { return (
{logoPath && ( image of ticket sponsor ))}
); } +{ + /* TODO: add sponsor logos when available by adding logoPath=String param to SponsorticketComp + * example is to feed row ['path1', 'path2', 'path3'] + * probs can change makeSponsorRow better but later + */ +} export default function Page(): JSX.Element { const { isMobile, isTablet, isDesktop } = useDevice(); - const bgScale = isMobile ? 2 : isTablet ? 1.1 : 1; - const boothPosition = isMobile ? "155%" : "135%"; + const bgScale = isMobile ? 3.1 : isTablet ? 1.2 : 1; + const boothPosition = isMobile ? "115%" : "165%"; const boothWidth = isMobile ? 90 : isTablet ? 80 : 70; - const logos = [ - [AWSLogo, MavenAGILogo], - [KlaviyoLogo], - [WhoopLogo, RGLogo], - [CodeCraftersLogo, FlagLogicLogo], - ]; - return (
-
+
{/* Background SVG */} {/* Sponsors text */} {/* Tickets here */} -
+
- {makeSponsorRow([30, 30], logos[0], [250, 250])} - {makeSponsorRow([25], logos[1], [175])} - {makeSponsorRow([21, 21], logos[2], [200, 100])} - {makeSponsorRow([17, 17], logos[3], [200, 200])} + {makeSponsorRow([27, 27, 27])} + {makeSponsorRow([21, 21, 21, 21])} + {makeSponsorRow([17, 17, 17, 17, 17])} )} {/* Tablet */} {isTablet && ( <> - {makeSponsorRow([30, 30], logos[0], [150, 150])} - {makeSponsorRow([25], logos[1], [125])} - {makeSponsorRow([21, 21], logos[2], [115, 115])} - {makeSponsorRow([17, 17], logos[3], [120, 120])} + {makeSponsorRow([27])} + {makeSponsorRow([21, 21])} + {makeSponsorRow([17, 17, 17])} + {makeSponsorRow([17, 17, 17, 17])} )} {/* Mobile */} {isMobile && ( <> - {makeSponsorRow([45, 45], logos[0], [85, 110])} - {makeSponsorRow([40], logos[1], [75])} - {makeSponsorRow([30, 30], logos[2], [115, 45])} - {makeSponsorRow([25, 25], logos[3], [85, 85])} + {makeSponsorRow([90])} + {makeSponsorRow([90])} + {makeSponsorRow([90])} + {makeSponsorRow([40, 40])} + {makeSponsorRow([40, 40])} + {makeSponsorRow([35, 35])} + {makeSponsorRow([35, 35])} + {makeSponsorRow([35])} )}
diff --git a/apps/main/src/app/team/Sections/Teams.tsx b/apps/main/src/app/team/Sections/Teams.tsx index 74817d08..ca978e74 100644 --- a/apps/main/src/app/team/Sections/Teams.tsx +++ b/apps/main/src/app/team/Sections/Teams.tsx @@ -1,7 +1,7 @@ "use client"; import React from "react"; -import Icon from "@repo/ui/Icons/MemberIcon"; +import Icon from "../components/Icon"; import RibbonTitle from "@repo/ui/RibbonTitle"; import useDevice from "@util/hooks/useDevice"; import clsx from "clsx"; @@ -223,7 +223,7 @@ const TeamSections = ({ team }: TeamSectionsProps) => {
{members.map((member) => ( - + ))}
diff --git a/apps/main/tsconfig.json b/apps/main/tsconfig.json index 9ae3237f..cc16dc2e 100644 --- a/apps/main/tsconfig.json +++ b/apps/main/tsconfig.json @@ -19,7 +19,7 @@ "**/*.tsx", ".next/types/**/*.ts", "../../packages/ui/src/Placeholder.tsx" -, "../../packages/ui/src/SponsorComponents/SponsorTicketComp.tsx" ], + ], "exclude": [ "node_modules" ] diff --git a/package-lock.json b/package-lock.json index 6e73fa7e..2087b919 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,11 +10,9 @@ "packages/*" ], "dependencies": { - "22": "^0.0.0", "clsx": "^2.1.1", "hamburger-react": "^2.5.2", - "react-icons": "^5.5.0", - "yarn": "^1.22.22" + "react-icons": "^5.5.0" }, "devDependencies": { "husky": "^9.1.6", @@ -132,15 +130,15 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", - "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.27.1", + "@babel/helper-validator-identifier": "^7.25.9", "js-tokens": "^4.0.0", - "picocolors": "^1.1.1" + "picocolors": "^1.0.0" }, "engines": { "node": ">=6.9.0" @@ -162,7 +160,6 @@ "integrity": "sha512-SRijHmF0PSPgLIBYlWnG0hyeJLwXE2CgpsXaMOrtt2yp9/86ALw6oUlj9KYuZ0JN07T4eBMVIW4li/9S1j2BGA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.26.2", @@ -324,9 +321,9 @@ } }, "node_modules/@babel/helper-string-parser": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", - "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", "dev": true, "license": "MIT", "engines": { @@ -334,9 +331,9 @@ } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", - "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", "dev": true, "license": "MIT", "engines": { @@ -354,27 +351,27 @@ } }, "node_modules/@babel/helpers": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.4.tgz", - "integrity": "sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==", + "version": "7.26.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.7.tgz", + "integrity": "sha512-8NHiL98vsi0mbPQmYAGWwfcFaOy4j2HY49fXJCfuDcdE7fMIsH9a7GdaeXpIBsbT7307WU8KCMp5pUVDNL4f9A==", "dev": true, "license": "MIT", "dependencies": { - "@babel/template": "^7.27.2", - "@babel/types": "^7.28.4" + "@babel/template": "^7.25.9", + "@babel/types": "^7.26.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.5.tgz", - "integrity": "sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==", + "version": "7.26.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.7.tgz", + "integrity": "sha512-kEvgGGgEjRUutvdVvZhbn/BxVt+5VSpwXz1j3WYXQbXDo8KzFOPNG2GQbdAiNq8g6wn1yKk7C/qrke03a84V+w==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.28.5" + "@babel/types": "^7.26.7" }, "bin": { "parser": "bin/babel-parser.js" @@ -384,15 +381,15 @@ } }, "node_modules/@babel/template": { - "version": "7.27.2", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", - "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz", + "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.27.1", - "@babel/parser": "^7.27.2", - "@babel/types": "^7.27.1" + "@babel/code-frame": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -428,23 +425,23 @@ } }, "node_modules/@babel/types": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.5.tgz", - "integrity": "sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==", + "version": "7.26.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.7.tgz", + "integrity": "sha512-t8kDRGrKXyp6+tjUh7hw2RLyclsW4TRoRvRHtSyAX9Bb5ldlFh+90YAYY6awRXrlB4G5G2izNeGySpATlFzmOg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.27.1", - "@babel/helper-validator-identifier": "^7.28.5" + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@eslint-community/eslint-utils": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.0.tgz", - "integrity": "sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz", + "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==", "dev": true, "license": "MIT", "dependencies": { @@ -489,13 +486,13 @@ } }, "node_modules/@eslint/config-array": { - "version": "0.21.1", - "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.1.tgz", - "integrity": "sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==", + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.2.tgz", + "integrity": "sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@eslint/object-schema": "^2.1.7", + "@eslint/object-schema": "^2.1.6", "debug": "^4.3.1", "minimatch": "^3.1.2" }, @@ -503,23 +500,10 @@ "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/@eslint/config-helpers": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.2.tgz", - "integrity": "sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@eslint/core": "^0.17.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, "node_modules/@eslint/core": { - "version": "0.17.0", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.17.0.tgz", - "integrity": "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==", + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.10.0.tgz", + "integrity": "sha512-gFHJ+xBOo4G3WRlR1e/3G8A6/KZAH6zcE/hkLRCZTi/B9avAG365QhFA8uOGzTMqgTghpn7/fSnscW++dpMSAw==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -530,9 +514,9 @@ } }, "node_modules/@eslint/eslintrc": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.3.tgz", - "integrity": "sha512-Kr+LPIUVKz2qkx1HAMH8q1q6azbqBAsXJUxBl/ODDuVPX45Z9DfwB8tPjTi6nNZ8BuM3nbJxC5zCAg5elnBUTQ==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.2.0.tgz", + "integrity": "sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==", "dev": true, "license": "MIT", "dependencies": { @@ -542,7 +526,7 @@ "globals": "^14.0.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", - "js-yaml": "^4.1.1", + "js-yaml": "^4.1.0", "minimatch": "^3.1.2", "strip-json-comments": "^3.1.1" }, @@ -567,22 +551,19 @@ } }, "node_modules/@eslint/js": { - "version": "9.39.2", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.2.tgz", - "integrity": "sha512-q1mjIoW1VX4IvSocvM/vbTiveKC4k9eLrajNEuSsmjymSDEbpGddtpfOoN7YGAqBK3NG+uqo8ia4PDTt8buCYA==", + "version": "9.19.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.19.0.tgz", + "integrity": "sha512-rbq9/g38qjfqFLOVPvwjIvFFdNziEC5S65jmjPw5r6A//QH+W91akh9irMwjDN8zKUTak6W9EsAv4m/7Wnw0UQ==", "dev": true, "license": "MIT", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://eslint.org/donate" } }, "node_modules/@eslint/object-schema": { - "version": "2.1.7", - "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.7.tgz", - "integrity": "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==", + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.6.tgz", + "integrity": "sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==", "dev": true, "license": "Apache-2.0", "engines": { @@ -590,13 +571,13 @@ } }, "node_modules/@eslint/plugin-kit": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz", - "integrity": "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==", + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.5.tgz", + "integrity": "sha512-lB05FkqEdUg2AA0xEbUz0SnkXT1LcCTa438W4IWTUh4hdOnVbQyOJ81OrDXsJk/LSiJHubgGEFoR5EHq1NsH1A==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@eslint/core": "^0.17.0", + "@eslint/core": "^0.10.0", "levn": "^0.4.1" }, "engines": { @@ -614,33 +595,31 @@ } }, "node_modules/@humanfs/node": { - "version": "0.16.7", - "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.7.tgz", - "integrity": "sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==", + "version": "0.16.6", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", + "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", "dev": true, "license": "Apache-2.0", "dependencies": { "@humanfs/core": "^0.19.1", - "@humanwhocodes/retry": "^0.4.0" + "@humanwhocodes/retry": "^0.3.0" }, "engines": { "node": ">=18.18.0" } }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", - "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", - "deprecated": "Use @eslint/config-array instead", + "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", + "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", "dev": true, "license": "Apache-2.0", - "dependencies": { - "@humanwhocodes/object-schema": "^2.0.3", - "debug": "^4.3.1", - "minimatch": "^3.0.5" - }, "engines": { - "node": ">=10.10.0" + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" } }, "node_modules/@humanwhocodes/module-importer": { @@ -657,18 +636,10 @@ "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", - "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", - "deprecated": "Use @eslint/object-schema instead", - "dev": true, - "license": "BSD-3-Clause" - }, "node_modules/@humanwhocodes/retry": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz", - "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.1.tgz", + "integrity": "sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==", "dev": true, "license": "Apache-2.0", "engines": { @@ -814,15 +785,15 @@ } }, "node_modules/@next/env": { - "version": "14.2.35", - "resolved": "https://registry.npmjs.org/@next/env/-/env-14.2.35.tgz", - "integrity": "sha512-DuhvCtj4t9Gwrx80dmz2F4t/zKQ4ktN8WrMwOuVzkJfBilwAwGr6v16M5eI8yCuZ63H9TTuEU09Iu2HqkzFPVQ==", + "version": "14.2.23", + "resolved": "https://registry.npmjs.org/@next/env/-/env-14.2.23.tgz", + "integrity": "sha512-CysUC9IO+2Bh0omJ3qrb47S8DtsTKbFidGm6ow4gXIG6reZybqxbkH2nhdEm1tC8SmgzDdpq3BIML0PWsmyUYA==", "license": "MIT" }, "node_modules/@next/eslint-plugin-next": { - "version": "14.2.35", - "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-14.2.35.tgz", - "integrity": "sha512-Jw9A3ICz2183qSsqwi7fgq4SBPiNfmOLmTPXKvlnzstUwyvBrtySiY+8RXJweNAs9KThb1+bYhZh9XWcNOr2zQ==", + "version": "14.2.23", + "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-14.2.23.tgz", + "integrity": "sha512-efRC7m39GoiU1fXZRgGySqYbQi6ZyLkuGlvGst7IwkTTczehQTJA/7PoMg4MMjUZvZEGpiSEu+oJBAjPawiC3Q==", "dev": true, "license": "MIT", "dependencies": { @@ -830,13 +801,12 @@ } }, "node_modules/@next/swc-darwin-arm64": { - "version": "14.2.33", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.33.tgz", - "integrity": "sha512-HqYnb6pxlsshoSTubdXKu15g3iivcbsMXg4bYpjL2iS/V6aQot+iyF4BUc2qA/J/n55YtvE4PHMKWBKGCF/+wA==", + "version": "14.2.23", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.23.tgz", + "integrity": "sha512-WhtEntt6NcbABA8ypEoFd3uzq5iAnrl9AnZt9dXdO+PZLACE32z3a3qA5OoV20JrbJfSJ6Sd6EqGZTrlRnGxQQ==", "cpu": [ "arm64" ], - "license": "MIT", "optional": true, "os": [ "darwin" @@ -846,9 +816,9 @@ } }, "node_modules/@next/swc-darwin-x64": { - "version": "14.2.33", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.33.tgz", - "integrity": "sha512-8HGBeAE5rX3jzKvF593XTTFg3gxeU4f+UWnswa6JPhzaR6+zblO5+fjltJWIZc4aUalqTclvN2QtTC37LxvZAA==", + "version": "14.2.23", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.23.tgz", + "integrity": "sha512-vwLw0HN2gVclT/ikO6EcE+LcIN+0mddJ53yG4eZd0rXkuEr/RnOaMH8wg/sYl5iz5AYYRo/l6XX7FIo6kwbw1Q==", "cpu": [ "x64" ], @@ -862,13 +832,12 @@ } }, "node_modules/@next/swc-linux-arm64-gnu": { - "version": "14.2.33", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.33.tgz", - "integrity": "sha512-JXMBka6lNNmqbkvcTtaX8Gu5by9547bukHQvPoLe9VRBx1gHwzf5tdt4AaezW85HAB3pikcvyqBToRTDA4DeLw==", + "version": "14.2.23", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.23.tgz", + "integrity": "sha512-uuAYwD3At2fu5CH1wD7FpP87mnjAv4+DNvLaR9kiIi8DLStWSW304kF09p1EQfhcbUI1Py2vZlBO2VaVqMRtpg==", "cpu": [ "arm64" ], - "license": "MIT", "optional": true, "os": [ "linux" @@ -878,13 +847,12 @@ } }, "node_modules/@next/swc-linux-arm64-musl": { - "version": "14.2.33", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.33.tgz", - "integrity": "sha512-Bm+QulsAItD/x6Ih8wGIMfRJy4G73tu1HJsrccPW6AfqdZd0Sfm5Imhgkgq2+kly065rYMnCOxTBvmvFY1BKfg==", + "version": "14.2.23", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.23.tgz", + "integrity": "sha512-Mm5KHd7nGgeJ4EETvVgFuqKOyDh+UMXHXxye6wRRFDr4FdVRI6YTxajoV2aHE8jqC14xeAMVZvLqYqS7isHL+g==", "cpu": [ "arm64" ], - "license": "MIT", "optional": true, "os": [ "linux" @@ -894,13 +862,12 @@ } }, "node_modules/@next/swc-linux-x64-gnu": { - "version": "14.2.33", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.33.tgz", - "integrity": "sha512-FnFn+ZBgsVMbGDsTqo8zsnRzydvsGV8vfiWwUo1LD8FTmPTdV+otGSWKc4LJec0oSexFnCYVO4hX8P8qQKaSlg==", + "version": "14.2.23", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.23.tgz", + "integrity": "sha512-Ybfqlyzm4sMSEQO6lDksggAIxnvWSG2cDWnG2jgd+MLbHYn2pvFA8DQ4pT2Vjk3Cwrv+HIg7vXJ8lCiLz79qoQ==", "cpu": [ "x64" ], - "license": "MIT", "optional": true, "os": [ "linux" @@ -910,13 +877,12 @@ } }, "node_modules/@next/swc-linux-x64-musl": { - "version": "14.2.33", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.33.tgz", - "integrity": "sha512-345tsIWMzoXaQndUTDv1qypDRiebFxGYx9pYkhwY4hBRaOLt8UGfiWKr9FSSHs25dFIf8ZqIFaPdy5MljdoawA==", + "version": "14.2.23", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.23.tgz", + "integrity": "sha512-OSQX94sxd1gOUz3jhhdocnKsy4/peG8zV1HVaW6DLEbEmRRtUCUQZcKxUD9atLYa3RZA+YJx+WZdOnTkDuNDNA==", "cpu": [ "x64" ], - "license": "MIT", "optional": true, "os": [ "linux" @@ -926,13 +892,12 @@ } }, "node_modules/@next/swc-win32-arm64-msvc": { - "version": "14.2.33", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.33.tgz", - "integrity": "sha512-nscpt0G6UCTkrT2ppnJnFsYbPDQwmum4GNXYTeoTIdsmMydSKFz9Iny2jpaRupTb+Wl298+Rh82WKzt9LCcqSQ==", + "version": "14.2.23", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.23.tgz", + "integrity": "sha512-ezmbgZy++XpIMTcTNd0L4k7+cNI4ET5vMv/oqNfTuSXkZtSA9BURElPFyarjjGtRgZ9/zuKDHoMdZwDZIY3ehQ==", "cpu": [ "arm64" ], - "license": "MIT", "optional": true, "os": [ "win32" @@ -942,13 +907,12 @@ } }, "node_modules/@next/swc-win32-ia32-msvc": { - "version": "14.2.33", - "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.33.tgz", - "integrity": "sha512-pc9LpGNKhJ0dXQhZ5QMmYxtARwwmWLpeocFmVG5Z0DzWq5Uf0izcI8tLc+qOpqxO1PWqZ5A7J1blrUIKrIFc7Q==", + "version": "14.2.23", + "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.23.tgz", + "integrity": "sha512-zfHZOGguFCqAJ7zldTKg4tJHPJyJCOFhpoJcVxKL9BSUHScVDnMdDuOU1zPPGdOzr/GWxbhYTjyiEgLEpAoFPA==", "cpu": [ "ia32" ], - "license": "MIT", "optional": true, "os": [ "win32" @@ -958,13 +922,12 @@ } }, "node_modules/@next/swc-win32-x64-msvc": { - "version": "14.2.33", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.33.tgz", - "integrity": "sha512-nOjfZMy8B94MdisuzZo9/57xuFVLHJaDj5e/xrduJp9CV2/HrfxTRH2fbyLe+K9QT41WBLUd4iXX3R7jBp0EUg==", + "version": "14.2.23", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.23.tgz", + "integrity": "sha512-xCtq5BD553SzOgSZ7UH5LH+OATQihydObTrCTvVzOro8QiWYKdBVwcB2Mn2MLMo6DGW9yH1LSPw7jS7HhgJgjw==", "cpu": [ "x64" ], - "license": "MIT", "optional": true, "os": [ "win32" @@ -1106,9 +1069,9 @@ } }, "node_modules/@types/estree": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", - "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", "dev": true, "license": "MIT" }, @@ -1156,7 +1119,6 @@ "integrity": "sha512-t4yC+vtgnkYjNSKlFx1jkAhH8LgTo2N/7Qvi83kdEaUtMDiwpbLAktKDaAMlRcJ5eSxZkH74eEGt1ky31d7kfQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@types/prop-types": "*", "csstype": "^3.0.2" @@ -1185,7 +1147,6 @@ "integrity": "sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@eslint-community/regexpp": "^4.10.0", "@typescript-eslint/scope-manager": "7.18.0", @@ -1248,7 +1209,6 @@ "integrity": "sha512-h2lUByouOXFAlMec2mILeELUbME5SZRN/7R9Cw2RD2lRQQY08MWMM+PmVVKKJNK1aIwqTo9t/0CvOxwPbRIE2Q==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@typescript-eslint/scope-manager": "8.23.0", "@typescript-eslint/types": "8.23.0", @@ -1346,9 +1306,9 @@ } }, "node_modules/@typescript-eslint/parser/node_modules/brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, "license": "MIT", "dependencies": { @@ -1487,9 +1447,9 @@ } }, "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, "license": "MIT", "dependencies": { @@ -1553,13 +1513,6 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@ungap/structured-clone": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", - "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", - "dev": true, - "license": "ISC" - }, "node_modules/@vercel/style-guide": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/@vercel/style-guide/-/style-guide-6.0.0.tgz", @@ -1641,19 +1594,12 @@ } } }, - "node_modules/22": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/22/-/22-0.0.0.tgz", - "integrity": "sha512-MdBPNDaCFY4fZVpp14n3Mt4isZ2yS1DrIiOig/iMLljr4zDa0g/583xf/lFXNPwhxCfGKYvyWJSrYyS8jNk2mQ==", - "license": "MIT" - }, "node_modules/acorn": { - "version": "8.15.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", - "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", "dev": true, "license": "MIT", - "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -2042,9 +1988,9 @@ } }, "node_modules/brace-expansion": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "license": "MIT", "dependencies": { @@ -2085,7 +2031,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "caniuse-lite": "^1.0.30001688", "electron-to-chromium": "^1.5.73", @@ -2839,61 +2784,63 @@ } }, "node_modules/eslint": { - "version": "8.57.1", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", - "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", - "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", + "version": "9.19.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.19.0.tgz", + "integrity": "sha512-ug92j0LepKlbbEv6hD911THhoRHmbdXt2gX+VDABAW/Ir7D3nqKdv5Pf5vtlyY6HQMTEP2skXY43ueqTCWssEA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.57.1", - "@humanwhocodes/config-array": "^0.13.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.19.0", + "@eslint/core": "^0.10.0", + "@eslint/eslintrc": "^3.2.0", + "@eslint/js": "9.19.0", + "@eslint/plugin-kit": "^0.2.5", + "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", + "@humanwhocodes/retry": "^0.4.1", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", "ajv": "^6.12.4", "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", + "cross-spawn": "^7.0.6", "debug": "^4.3.2", - "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", + "eslint-scope": "^8.2.0", + "eslint-visitor-keys": "^4.2.0", + "espree": "^10.3.0", + "esquery": "^1.5.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", + "file-entry-cache": "^8.0.0", "find-up": "^5.0.0", "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" + "optionator": "^0.9.3" }, "bin": { "eslint": "bin/eslint.js" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://opencollective.com/eslint" + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } } }, "node_modules/eslint-config-next": { @@ -3107,9 +3054,9 @@ } }, "node_modules/eslint-config-next/node_modules/brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, "license": "MIT", "dependencies": { @@ -3340,7 +3287,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", @@ -3941,53 +3887,6 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint/node_modules/@eslint/eslintrc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", - "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/@eslint/js": { - "version": "8.57.1", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", - "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/eslint/node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/eslint/node_modules/escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", @@ -4002,9 +3901,9 @@ } }, "node_modules/eslint/node_modules/eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.2.0.tgz", + "integrity": "sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -4012,25 +3911,20 @@ "estraverse": "^5.2.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint/node_modules/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "node_modules/eslint/node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" - }, + "license": "Apache-2.0", "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" @@ -4050,15 +3944,15 @@ } }, "node_modules/espree": { - "version": "10.4.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", - "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", + "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "acorn": "^8.15.0", + "acorn": "^8.14.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^4.2.1" + "eslint-visitor-keys": "^4.2.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -4068,9 +3962,9 @@ } }, "node_modules/espree/node_modules/eslint-visitor-keys": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", - "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", "dev": true, "license": "Apache-2.0", "engines": { @@ -4175,16 +4069,16 @@ } }, "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", "dev": true, "license": "MIT", "dependencies": { - "flat-cache": "^3.0.4" + "flat-cache": "^4.0.0" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=16.0.0" } }, "node_modules/fill-range": { @@ -4218,24 +4112,23 @@ } }, "node_modules/flat-cache": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", - "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", "dev": true, "license": "MIT", "dependencies": { "flatted": "^3.2.9", - "keyv": "^4.5.3", - "rimraf": "^3.0.2" + "keyv": "^4.5.4" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=16" } }, "node_modules/flatted": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", - "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.2.tgz", + "integrity": "sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==", "dev": true, "license": "ISC" }, @@ -4286,13 +4179,6 @@ "url": "https://github.com/sponsors/rawify" } }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true, - "license": "ISC" - }, "node_modules/fsevents": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", @@ -4488,9 +4374,9 @@ } }, "node_modules/glob/node_modules/brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, "license": "MIT", "dependencies": { @@ -4766,25 +4652,6 @@ "node": ">=8" } }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", - "dev": true, - "license": "ISC", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true, - "license": "ISC" - }, "node_modules/internal-slot": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", @@ -5089,16 +4956,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/is-plain-obj": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", @@ -5314,7 +5171,6 @@ "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", "dev": true, "license": "MIT", - "peer": true, "bin": { "jiti": "bin/jiti.js" } @@ -5333,9 +5189,9 @@ "license": "MIT" }, "node_modules/js-yaml": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", - "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, "license": "MIT", "dependencies": { @@ -5657,12 +5513,12 @@ "license": "MIT" }, "node_modules/next": { - "version": "14.2.35", - "resolved": "https://registry.npmjs.org/next/-/next-14.2.35.tgz", - "integrity": "sha512-KhYd2Hjt/O1/1aZVX3dCwGXM1QmOV4eNM2UTacK5gipDdPN/oHHK/4oVGy7X8GMfPMsUTUEmGlsy0EY1YGAkig==", + "version": "14.2.23", + "resolved": "https://registry.npmjs.org/next/-/next-14.2.23.tgz", + "integrity": "sha512-mjN3fE6u/tynneLiEg56XnthzuYw+kD7mCujgVqioxyPqbmiotUCGJpIZGS/VaPg3ZDT1tvWxiVyRzeqJFm/kw==", "license": "MIT", "dependencies": { - "@next/env": "14.2.35", + "@next/env": "14.2.23", "@swc/helpers": "0.5.5", "busboy": "1.6.0", "caniuse-lite": "^1.0.30001579", @@ -5677,15 +5533,15 @@ "node": ">=18.17.0" }, "optionalDependencies": { - "@next/swc-darwin-arm64": "14.2.33", - "@next/swc-darwin-x64": "14.2.33", - "@next/swc-linux-arm64-gnu": "14.2.33", - "@next/swc-linux-arm64-musl": "14.2.33", - "@next/swc-linux-x64-gnu": "14.2.33", - "@next/swc-linux-x64-musl": "14.2.33", - "@next/swc-win32-arm64-msvc": "14.2.33", - "@next/swc-win32-ia32-msvc": "14.2.33", - "@next/swc-win32-x64-msvc": "14.2.33" + "@next/swc-darwin-arm64": "14.2.23", + "@next/swc-darwin-x64": "14.2.23", + "@next/swc-linux-arm64-gnu": "14.2.23", + "@next/swc-linux-arm64-musl": "14.2.23", + "@next/swc-linux-x64-gnu": "14.2.23", + "@next/swc-linux-x64-musl": "14.2.23", + "@next/swc-win32-arm64-msvc": "14.2.23", + "@next/swc-win32-ia32-msvc": "14.2.23", + "@next/swc-win32-x64-msvc": "14.2.23" }, "peerDependencies": { "@opentelemetry/api": "^1.1.0", @@ -5916,16 +5772,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, "node_modules/optionator": { "version": "0.9.4", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", @@ -6053,16 +5899,6 @@ "node": ">=8" } }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", @@ -6186,7 +6022,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "nanoid": "^3.3.8", "picocolors": "^1.1.1", @@ -6333,7 +6168,6 @@ "integrity": "sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==", "dev": true, "license": "MIT", - "peer": true, "bin": { "prettier": "bin/prettier.cjs" }, @@ -6486,7 +6320,6 @@ "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", "license": "MIT", - "peer": true, "dependencies": { "loose-envify": "^1.1.0" }, @@ -6499,7 +6332,6 @@ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", "license": "MIT", - "peer": true, "dependencies": { "loose-envify": "^1.1.0", "scheduler": "^0.23.2" @@ -6785,45 +6617,6 @@ "node": ">=0.10.0" } }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "dev": true, - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rimraf/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "dev": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -7476,9 +7269,9 @@ } }, "node_modules/sucrase/node_modules/brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, "license": "MIT", "dependencies": { @@ -7587,7 +7380,6 @@ "integrity": "sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@alloc/quick-lru": "^5.2.0", "arg": "^5.0.2", @@ -7653,13 +7445,6 @@ "node": ">=6" } }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true, - "license": "MIT" - }, "node_modules/thenify": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", @@ -7718,7 +7503,6 @@ "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=12" }, @@ -7820,7 +7604,6 @@ "integrity": "sha512-ah/yQp2oMif1X0u7fBJ4MLMygnkbKnW5O8SG6pJvloPCpHfFoZctkSVQiJ3VnvNTq71V2JJIdwmOeu1i34OQyg==", "dev": true, "license": "MIT", - "peer": true, "bin": { "turbo": "bin/turbo" }, @@ -7847,80 +7630,10 @@ "darwin" ] }, - "node_modules/turbo-darwin-arm64": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/turbo-darwin-arm64/-/turbo-darwin-arm64-2.4.0.tgz", - "integrity": "sha512-8JObIpfun1guA7UlFR5jC/SOVm49lRscxMxfg5jZ5ABft79rhFC+ygN9AwAhGKv6W2DUhIh2xENkSgu4EDmUyg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/turbo-linux-64": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/turbo-linux-64/-/turbo-linux-64-2.4.0.tgz", - "integrity": "sha512-xWDGGcRlBuGV7HXWAVuTY6vsQi4aZxGMAnuiuNDg8Ij1aHGohOM0RUsWMXjxz4vuJmjk9+/D6NQqHH3AJEXezg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/turbo-linux-arm64": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/turbo-linux-arm64/-/turbo-linux-arm64-2.4.0.tgz", - "integrity": "sha512-c3En99xMguc/Pdtk/rZP53LnDdw0W6lgUc04he8r8F+UHYSNvgzHh0WGXXmCC6lGbBH72kPhhGx4bAwyvi7dug==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/turbo-windows-64": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/turbo-windows-64/-/turbo-windows-64-2.4.0.tgz", - "integrity": "sha512-/gOORuOlyA8JDPzyA16CD3wvyRcuBFePa1URAnFUof9hXQmKxK0VvSDO79cYZFsJSchCKNJpckUS0gYxGsWwoA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/turbo-windows-arm64": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/turbo-windows-arm64/-/turbo-windows-arm64-2.4.0.tgz", - "integrity": "sha512-/DJIdTFijEMM5LSiEpSfarDOMOlYqJV+EzmppqWtHqDsOLF4hbbIBH9sJR6OOp5dURAu5eURBYdmvBRz9Lo6TA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, "license": "MIT", "dependencies": { @@ -8027,7 +7740,6 @@ "integrity": "sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==", "dev": true, "license": "Apache-2.0", - "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -8215,9 +7927,9 @@ } }, "node_modules/typescript-eslint/node_modules/brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, "license": "MIT", "dependencies": { @@ -8574,13 +8286,6 @@ "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true, - "license": "ISC" - }, "node_modules/yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", @@ -8601,20 +8306,6 @@ "node": ">= 14" } }, - "node_modules/yarn": { - "version": "1.22.22", - "resolved": "https://registry.npmjs.org/yarn/-/yarn-1.22.22.tgz", - "integrity": "sha512-prL3kGtyG7o9Z9Sv8IPfBNrWTDmXB4Qbes8A9rEzt6wkJV8mUvoirjU0Mp3GGAU06Y0XQyA3/2/RQFVuK7MTfg==", - "hasInstallScript": true, - "license": "BSD-2-Clause", - "bin": { - "yarn": "bin/yarn.js", - "yarnpkg": "bin/yarn.js" - }, - "engines": { - "node": ">=4.0.0" - } - }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", @@ -8636,23 +8327,9 @@ "@eslint/js": "^9.14.0", "@vercel/style-guide": "^6.0.0", "eslint-config-turbo": "^2.0.0", - "eslint-plugin-react-hooks": "^5.1.0", "typescript-eslint": "^8.13.0" } }, - "packages/config-eslint/node_modules/eslint-plugin-react-hooks": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.2.0.tgz", - "integrity": "sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" - } - }, "packages/config-tailwind": { "name": "@repo/tailwind-config", "version": "0.0.0", @@ -8673,9 +8350,7 @@ "version": "0.0.0", "license": "MIT", "dependencies": { - "@repo/util": "*", - "clsx": "^2.0.0", - "react-icons": "^5.0.0" + "@repo/util": "*" }, "devDependencies": { "@eslint/js": "^9.14.0", @@ -8692,149 +8367,6 @@ "react": "^18.2.0" } }, - "packages/ui/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "packages/ui/node_modules/eslint": { - "version": "9.39.2", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.2.tgz", - "integrity": "sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.8.0", - "@eslint-community/regexpp": "^4.12.1", - "@eslint/config-array": "^0.21.1", - "@eslint/config-helpers": "^0.4.2", - "@eslint/core": "^0.17.0", - "@eslint/eslintrc": "^3.3.1", - "@eslint/js": "9.39.2", - "@eslint/plugin-kit": "^0.4.1", - "@humanfs/node": "^0.16.6", - "@humanwhocodes/module-importer": "^1.0.1", - "@humanwhocodes/retry": "^0.4.2", - "@types/estree": "^1.0.6", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.6", - "debug": "^4.3.2", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^8.4.0", - "eslint-visitor-keys": "^4.2.1", - "espree": "^10.4.0", - "esquery": "^1.5.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^8.0.0", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://eslint.org/donate" - }, - "peerDependencies": { - "jiti": "*" - }, - "peerDependenciesMeta": { - "jiti": { - "optional": true - } - } - }, - "packages/ui/node_modules/eslint-scope": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", - "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "packages/ui/node_modules/eslint-visitor-keys": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", - "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "packages/ui/node_modules/file-entry-cache": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", - "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "flat-cache": "^4.0.0" - }, - "engines": { - "node": ">=16.0.0" - } - }, - "packages/ui/node_modules/flat-cache": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", - "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", - "dev": true, - "license": "MIT", - "dependencies": { - "flatted": "^3.2.9", - "keyv": "^4.5.4" - }, - "engines": { - "node": ">=16" - } - }, - "packages/ui/node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, "packages/util": { "name": "@repo/util", "version": "0.0.0", @@ -8853,149 +8385,6 @@ "peerDependencies": { "react": "^18.2.0" } - }, - "packages/util/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "packages/util/node_modules/eslint": { - "version": "9.39.2", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.2.tgz", - "integrity": "sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.8.0", - "@eslint-community/regexpp": "^4.12.1", - "@eslint/config-array": "^0.21.1", - "@eslint/config-helpers": "^0.4.2", - "@eslint/core": "^0.17.0", - "@eslint/eslintrc": "^3.3.1", - "@eslint/js": "9.39.2", - "@eslint/plugin-kit": "^0.4.1", - "@humanfs/node": "^0.16.6", - "@humanwhocodes/module-importer": "^1.0.1", - "@humanwhocodes/retry": "^0.4.2", - "@types/estree": "^1.0.6", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.6", - "debug": "^4.3.2", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^8.4.0", - "eslint-visitor-keys": "^4.2.1", - "espree": "^10.4.0", - "esquery": "^1.5.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^8.0.0", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://eslint.org/donate" - }, - "peerDependencies": { - "jiti": "*" - }, - "peerDependenciesMeta": { - "jiti": { - "optional": true - } - } - }, - "packages/util/node_modules/eslint-scope": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", - "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "packages/util/node_modules/eslint-visitor-keys": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", - "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "packages/util/node_modules/file-entry-cache": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", - "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "flat-cache": "^4.0.0" - }, - "engines": { - "node": ">=16.0.0" - } - }, - "packages/util/node_modules/flat-cache": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", - "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", - "dev": true, - "license": "MIT", - "dependencies": { - "flatted": "^3.2.9", - "keyv": "^4.5.4" - }, - "engines": { - "node": ">=16" - } - }, - "packages/util/node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } } } } diff --git a/package.json b/package.json index 5bc7102e..9f840b05 100644 --- a/package.json +++ b/package.json @@ -27,10 +27,8 @@ "packages/*" ], "dependencies": { - "22": "^0.0.0", "clsx": "^2.1.1", "hamburger-react": "^2.5.2", - "react-icons": "^5.5.0", - "yarn": "^1.22.22" + "react-icons": "^5.5.0" } } diff --git a/packages/config-tailwind/theme-tokens/screens.ts b/packages/config-tailwind/theme-tokens/screens.ts index 37015174..d03b91dc 100644 --- a/packages/config-tailwind/theme-tokens/screens.ts +++ b/packages/config-tailwind/theme-tokens/screens.ts @@ -6,6 +6,8 @@ const screens = { "desktop-2xl": { max: "4080px" }, "desktop-xl": { max: "3060px" }, desktop: { max: "1920px" }, + "desktop-md": { min: "1600px", max: "1919px" }, + "desktop-sm": { min: "1280px", max: "1599px" }, tablet: { min: "640px", max: "1279px" }, "mobile-xl": { min: "482px", max: "639px" }, mobile: { max: "481px" }, diff --git a/packages/ui/package.json b/packages/ui/package.json index bbf82d8d..90d993f4 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -5,13 +5,12 @@ "**/*.css" ], "files": [ - "dist", "src/Logos" + "dist" ], "exports": { "./styles.css": "./dist/index.css", "./Box": "./src/Box.tsx", "./FAQDropdown": "./src/FAQDropdown.tsx", - "./KeynoteSpeakerSection": "./src/KeynoteSpeakerSection.tsx", "./StreetSign": "./src/StreetSign.tsx", "./LinkedInLogo": "./src/LinkedInLogo.tsx", "./ArrowButton": "./src/ArrowButton.tsx", @@ -20,19 +19,13 @@ "./PassportCard": "./src/PassportCard.tsx", "./Typography": "./src/Typography.tsx", "./Icons/*": "./src/Icons/*.tsx", - "./Logos/*.svg": "./src/Logos/*.svg", + "./Logos/*": "./src/Logos/*.tsx", "./PaginationDots": "./src/PaginationDots.tsx", "./Section": "./src/Section.tsx", "./Placeholder": "./src/Placeholder.tsx", "./Button": "./src/Button.tsx", "./RibbonTitle": "./src/RibbonTitle.tsx", - "./LinkedInfoCard": "./src/LinkedInfoCard.tsx", - "./Train": "./src/TestimonialTrain.tsx", - "./NavBarBase": "./src/NavBar/NavBarBase.tsx", - "./SocialsButtonsRow": "./src/SocialsButtonsRow.tsx", - "./Footer": "./src/Footer.tsx", - "./CarnivalTitle": "./src/CarnivalTitle.tsx", - "./SponsorComponents/*": "./src/SponsorComponents/*.tsx" + "./Train": "./src/TestimonialTrain.tsx" }, "license": "MIT", "scripts": { @@ -42,9 +35,7 @@ "type-check": "tsc --noEmit" }, "dependencies": { - "@repo/util": "*", - "react-icons": "^5.0.0", - "clsx": "^2.0.0" + "@repo/util": "*" }, "peerDependencies": { "react": "^18.2.0" diff --git a/packages/ui/src/ActiveIcon.tsx b/packages/ui/src/ActiveIcon.tsx deleted file mode 100644 index 2f99af91..00000000 --- a/packages/ui/src/ActiveIcon.tsx +++ /dev/null @@ -1,20 +0,0 @@ -import * as React from "react"; -const ActiveIcon = () => ( - - - -); -export default ActiveIcon; diff --git a/packages/ui/src/Button.tsx b/packages/ui/src/Button.tsx index 4057e612..6d4cb509 100644 --- a/packages/ui/src/Button.tsx +++ b/packages/ui/src/Button.tsx @@ -9,7 +9,6 @@ interface ButtonProps { textColor?: string; size?: string; removePadding?: boolean; - className?: string; } const bgColorMap: Record = { @@ -17,6 +16,7 @@ const bgColorMap: Record = { firecrackerRedLight: "bg-firecrackerRedLight hover:bg-firecrackerRed", marigoldYellow: "bg-marigoldYellow hover:bg-marigoldYellowDark", starlightBlue: "bg-starlightBlue hover:bg-starlightBlueDark", + starlightBlueLight: "bg-starlightBlueLight", cottonCandyCoral: "bg-cottonCandyCoral hover:bg-cottonCandyCoralDark", ribbonBlue: "bg-ribbonBlue", firecrackerRed: "bg-firecrackerRed hover:bg-firecrackerRedDark", @@ -31,8 +31,10 @@ const sizeMap: Record = { const textColorMap: Record = { charcoalFog: "text-[#353131]", white: "text-white", + carouselCreamLight: "text-[#FFF5E5]", starlightBlue: "text-starlightBlue", }; + const Button: React.FC = ({ text, textColor = "charcoalFog", @@ -41,13 +43,12 @@ const Button: React.FC = ({ icon, size = "small", removePadding, - className, }) => { const bgClass = bgColorMap[color] || bgColorMap["mossGreen"]; const textColorClass = textColorMap[textColor]; const sizeClass = sizeMap[size] || sizeMap["small"]; - const buttonClasses = `font-DMSans-Bold flex items-center justify-center gap-1 rounded-full w-auto h-auto ${text ? "px-4" : "px-2"} py-2 ${bgClass} shadow-[inset_2px_3px_0_rgba(0,0,0,0.10)] ${textColorClass} ${sizeClass} text-base whitespace-nowrap transition-transform duration-200 ease-in-out hover:scale-105 ${className ?? ""}`; + const buttonClasses = `font-DMSans-Bold flex items-center justify-center gap-1 rounded-full w-auto h-auto ${text ? "px-4" : "px-2"} py-2 ${bgClass} shadow-[inset_2px_3px_0_rgba(0,0,0,0.10)] ${textColorClass} ${sizeClass} text-base whitespace-nowrap transition-transform duration-200 ease-in-out hover:scale-105`; return (