From 3afaf7a64003c187540203419b8f503948c4f1ab Mon Sep 17 00:00:00 2001 From: miguelaenlle Date: Thu, 29 May 2025 19:49:58 -0500 Subject: [PATCH 01/20] Transferred changes from calendar section PR; ran linter --- apps/site/index.html | 7 + .../src/components/Home/AudioVisualizer.tsx | 82 +++ apps/site/src/components/Home/EventModal.tsx | 164 ++++++ apps/site/src/components/Home/RaceTrack.tsx | 148 +++++ apps/site/src/components/Home/Schedule.tsx | 531 ++++++++++++++++++ apps/site/src/config.ts | 3 + apps/site/src/routes/Home.tsx | 3 + apps/site/src/util/api.ts | 6 + 8 files changed, 944 insertions(+) create mode 100644 apps/site/src/components/Home/AudioVisualizer.tsx create mode 100644 apps/site/src/components/Home/EventModal.tsx create mode 100644 apps/site/src/components/Home/RaceTrack.tsx create mode 100644 apps/site/src/components/Home/Schedule.tsx create mode 100644 apps/site/src/config.ts create mode 100644 apps/site/src/util/api.ts diff --git a/apps/site/index.html b/apps/site/index.html index 0227c313..8d180cd0 100644 --- a/apps/site/index.html +++ b/apps/site/index.html @@ -8,6 +8,13 @@ content="width=device-width, initial-scale=1.0,viewport-fit=cover" /> + + + + Reflections | Projections diff --git a/apps/site/src/components/Home/AudioVisualizer.tsx b/apps/site/src/components/Home/AudioVisualizer.tsx new file mode 100644 index 00000000..f9f6ff03 --- /dev/null +++ b/apps/site/src/components/Home/AudioVisualizer.tsx @@ -0,0 +1,82 @@ +import React, { useState, useEffect } from "react"; +import { Flex } from "@chakra-ui/react"; +import { motion } from "framer-motion"; + +interface AudioVisualizerProps { + barCount?: number; + maxHeight?: number; + updateInterval?: number; + variance?: number; + // Spring animation properties + stiffness?: number; + damping?: number; + mass?: number; +} + +export const AudioVisualizer: React.FC = ({ + barCount = 40, + maxHeight = 60, + updateInterval = 100, + // Default spring physics values + stiffness = 100, + damping = 10, + mass = 1 +}) => { + const [heights, setHeights] = useState( + Array.from({ length: barCount }, () => Math.random() * maxHeight) + ); + + useEffect(() => { + const timer = setInterval(() => { + setHeights((prev) => + prev.map((h) => { + // Create more dramatic changes by using a new random value + // combined with the previous height + const targetHeight = Math.random() * maxHeight; + // Mix previous height (30%) with new random height (70%) + // This creates more noticeable variations while maintaining some continuity + const newHeight = h * 0.3 + targetHeight * 0.7; + + // Add extra randomness for occasional peaks + const shouldSpike = Math.random() > 0.85; + const spikeMultiplier = shouldSpike ? Math.random() * 0.7 + 0.3 : 0; + + return Math.max( + 5, + Math.min(newHeight + maxHeight * spikeMultiplier, maxHeight) + ); + }) + ); + }, updateInterval); + return () => clearInterval(timer); + }, [maxHeight, updateInterval]); + + return ( + + {heights.map((h, idx) => ( + + ))} + + ); +}; diff --git a/apps/site/src/components/Home/EventModal.tsx b/apps/site/src/components/Home/EventModal.tsx new file mode 100644 index 00000000..1c372414 --- /dev/null +++ b/apps/site/src/components/Home/EventModal.tsx @@ -0,0 +1,164 @@ +import { + Box, + Flex, + Icon, + Modal, + ModalContent, + ModalHeader, + ModalOverlay, + Text +} from "@chakra-ui/react"; +import { Event } from "@rp/shared"; +import moment from "moment"; +import { FaAward, FaClock, FaMapPin, FaTag } from "react-icons/fa"; +import { AudioVisualizer } from "./AudioVisualizer"; + +export default function EventModal({ + event, + onClose +}: { + event: Event | null; + onClose: () => void; +}) { + return ( + + + {event && ( + + + {event.name.toUpperCase()} + + + + + + + +
+ + + + + {event.description} + +
+ + +
+ )} +
+ ); +} + +function EventCard({ event }: { event: Event }) { + return ( + + {/* Time & Location */} + + + + + {moment(event.startTime).format("h:mma")} –{" "} + {moment(event.endTime).format("h:mma")} + + + + + + {event.location} + + + + + {/* Type & Points */} + + + + + {event.eventType} + + + + + + {event.points} points + + + + + ); +} diff --git a/apps/site/src/components/Home/RaceTrack.tsx b/apps/site/src/components/Home/RaceTrack.tsx new file mode 100644 index 00000000..073432b3 --- /dev/null +++ b/apps/site/src/components/Home/RaceTrack.tsx @@ -0,0 +1,148 @@ +import { Box, Text, Tooltip } from "@chakra-ui/react"; +import { Event } from "@rp/shared"; +import { useMemo } from "react"; + +type Pos = { + x: number; + y: number; + order: number; +}; + +export function RaceTrack({ + dayEvents, + colors, + hoveredIndex, + onHover, + onClick, + deviceType +}: { + dayEvents: Event[]; + colors: string[]; + hoveredIndex: number | null; + onHover?: (index: number) => void; + onClick: (event: Event) => void; + deviceType: "mobile" | "desktop"; +}) { + const positions: Pos[] = [ + { x: 165, y: 0, order: 1 }, + { x: 945, y: 190, order: 5 }, + { x: 100, y: 510, order: 10 }, + { x: 550, y: 275, order: 8 }, + { x: 560, y: 15, order: 3 }, + + { x: 320, y: 450, order: 9 }, + { x: 50, y: 180, order: 12 }, + { x: 805, y: 425, order: 7 }, + { x: 15, y: 340, order: 11 }, + { x: 780, y: 45, order: 4 }, + + { x: 390, y: -10, order: 2 }, + { x: 940, y: 370, order: 6 } + ]; + + const selectedPositions = useMemo(() => { + return positions.slice(0, dayEvents.length).sort((a, b) => { + return a.order - b.order; + }); + }, [dayEvents.length]); + + return ( + + + + {selectedPositions.map((pos, index) => { + // We do not allow hovering on mobile devices. + const hovered = + (hoveredIndex ? hoveredIndex - 1 === index : false) && + deviceType === "desktop"; + + return ( + onClick(dayEvents[index])} + > + + onHover && onHover(index + 1)} + onMouseLeave={() => onHover && onHover(-1)} + > + + {index + 1} + + + + + ); + })} + + + ); +} diff --git a/apps/site/src/components/Home/Schedule.tsx b/apps/site/src/components/Home/Schedule.tsx new file mode 100644 index 00000000..5666d4fe --- /dev/null +++ b/apps/site/src/components/Home/Schedule.tsx @@ -0,0 +1,531 @@ +import api from "@/util/api"; + +import { + Box, + Flex, + Grid, + Icon, + Text, + Tooltip, + useToast +} from "@chakra-ui/react"; +import { Event, EventType, path } from "@rp/shared"; +import moment from "moment"; +import { useEffect, useState } from "react"; +import { IconType } from "react-icons"; + +import { + FaBriefcase, + FaCheck, + FaHandshake, + FaMicrophone, + FaStar, + FaUtensils +} from "react-icons/fa"; +import EventModal from "./EventModal"; +import { RaceTrack } from "./RaceTrack"; + +export const circleColors = [ + "green.400", + "purple.600", + "pink.500", + "red.500", + "orange.500", + "teal.400", + "cyan.400", + "blue.500", + "yellow.400", + "pink.600" +]; + +export default function Schedule() { + const toast = useToast(); + const [eventsByDay, setEventsByDay] = useState<{ [key: string]: Event[] }>( + {} + ); + const [selectedDay, setSelectedDay] = useState(null); + const selectedDayIndex = Math.max( + Object.keys(eventsByDay).indexOf(selectedDay || "") + 1, + 1 + ); + + const [selectedEvent, setSelectedEvent] = useState(null); + + const dayEvents = selectedDay ? eventsByDay[selectedDay] : []; + + const handleLoadEvents = () => { + api + .get(path("/events", {})) + .then((events) => { + const eventsByDay: { [key: string]: Event[] } = {}; + events.data.forEach((event) => { + const date = moment(event.startTime).format("ddd M/D"); + if (!eventsByDay[date]) { + eventsByDay[date] = []; + } + eventsByDay[date].push(event); + }); + setSelectedDay(Object.keys(eventsByDay)[0]); + setEventsByDay(eventsByDay); + }) + .catch((err) => { + console.log(err); + toast({ + title: "Error fetching events", + status: "error", + duration: 9000, + isClosable: true + }); + }); + }; + + useEffect(() => { + handleLoadEvents(); + }, []); + + const [hoveredEventIndex, setHoveredEventIndex] = useState( + null + ); + + const handleHover = (index: number) => { + setHoveredEventIndex(index); + }; + + const handleSelectDay = (date: string) => { + setHoveredEventIndex(null); + setSelectedDay(date); + }; + + const handleSelectEvent = (event: Event) => { + setSelectedEvent(event); + }; + + return ( + <> + + + {Object.keys(eventsByDay).map((date) => ( + + ))} + + + + + + + + + + + + + + + {/* + + + R|P RADIO + + + + */} + + + + setSelectedEvent(null)} + /> + + ); +} + +function ScheduleDayButton({ + date, + selected, + onSelect +}: { + date: string; + selected?: boolean; + onSelect: (date: string) => void; +}) { + return ( + onSelect(date)} + transition="all 0.2s" + boxShadow="md" + _hover={{ + cursor: "pointer", + transform: "scale(1.05)" + }} + _active={{ bgColor: selected ? "gray.400" : "gray.300" }} + _focus={{ boxShadow: "outline" }} + transform={selected ? "scale(1.05)" : "scale(1)"} + > + + + + + + + {date} + + + + + + + + + ); +} + +function DayEvents({ + hoveredIndex, + dayEvents, + onHover, + onClick +}: { + selectedDayIndex: number; + hoveredIndex: number | null; + dayEvents: Event[]; + onHover: (index: number) => void; + onClick: (event: Event) => void; +}) { + return ( + + + + Calendar + + + {dayEvents.map((event, index) => ( + + ))} + + + + ); +} + +export const EVENT_ICONS: Record = { + SPECIAL: FaStar, // star for special events + SPEAKER: FaMicrophone, // microphone for speaker sessions + CORPORATE: FaBriefcase, // briefcase for corporate events + PARTNERS: FaHandshake, // handshake for partners + MEALS: FaUtensils, // utensils for meal breaks + CHECKIN: FaCheck // checkmark for check-in +}; + +function DayEvent({ + number, + hoveredIndex, + event, + onHover, + onClick +}: { + number: number; + hoveredIndex: number | null; + event: Event; + onHover: (index: number) => void; + onClick: (event: Event) => void; +}) { + return ( + { + onHover(number); + }} + onMouseLeave={() => { + onHover(-1); + }} + onClick={() => { + onClick(event); + }} + > + + {number} + + + + + {number} + + + + + + {event.name} + + + + {moment(event.startTime).format("h:mma")} –{" "} + {moment(event.endTime).format("h:mma")} + + + + c.toUpperCase())} + placement="top" + hasArrow + > + + + + + + ); +} diff --git a/apps/site/src/config.ts b/apps/site/src/config.ts new file mode 100644 index 00000000..c4a692af --- /dev/null +++ b/apps/site/src/config.ts @@ -0,0 +1,3 @@ +export const Config = { + API_BASE_URL: "https://api.reflectionsprojections.org" +}; diff --git a/apps/site/src/routes/Home.tsx b/apps/site/src/routes/Home.tsx index 33e35e77..103144d3 100644 --- a/apps/site/src/routes/Home.tsx +++ b/apps/site/src/routes/Home.tsx @@ -1,7 +1,10 @@ +import Schedule from "@/components/Home/Schedule"; + export default function Home() { return ( <>

Reflections | Projections 2025

+ ); } diff --git a/apps/site/src/util/api.ts b/apps/site/src/util/api.ts new file mode 100644 index 00000000..4c0967d5 --- /dev/null +++ b/apps/site/src/util/api.ts @@ -0,0 +1,6 @@ +import { Config } from "@/config"; +import { createApi } from "@rp/shared"; + +const api = createApi(Config.API_BASE_URL); + +export default api; From b30d0de38b73f1d92da13cc8a8c381d83f896911 Mon Sep 17 00:00:00 2001 From: miguelaenlle Date: Thu, 29 May 2025 20:34:57 -0500 Subject: [PATCH 02/20] Patched small bugs on the schedule page --- apps/site/src/components/Home/RaceTrack.tsx | 148 ---------- .../Home/{ => Schedule}/AudioVisualizer.tsx | 0 .../Home/{ => Schedule}/EventModal.tsx | 107 ++++--- .../components/Home/Schedule/RaceTrack.tsx | 189 ++++++++++++ .../Home/{ => Schedule}/Schedule.tsx | 276 ++++-------------- .../Home/Schedule/ScheduleDaySelector.tsx | 148 ++++++++++ apps/site/src/constants/event-icons.ts | 20 ++ apps/site/src/routes/Home.tsx | 2 +- 8 files changed, 474 insertions(+), 416 deletions(-) delete mode 100644 apps/site/src/components/Home/RaceTrack.tsx rename apps/site/src/components/Home/{ => Schedule}/AudioVisualizer.tsx (100%) rename apps/site/src/components/Home/{ => Schedule}/EventModal.tsx (56%) create mode 100644 apps/site/src/components/Home/Schedule/RaceTrack.tsx rename apps/site/src/components/Home/{ => Schedule}/Schedule.tsx (55%) create mode 100644 apps/site/src/components/Home/Schedule/ScheduleDaySelector.tsx create mode 100644 apps/site/src/constants/event-icons.ts diff --git a/apps/site/src/components/Home/RaceTrack.tsx b/apps/site/src/components/Home/RaceTrack.tsx deleted file mode 100644 index 073432b3..00000000 --- a/apps/site/src/components/Home/RaceTrack.tsx +++ /dev/null @@ -1,148 +0,0 @@ -import { Box, Text, Tooltip } from "@chakra-ui/react"; -import { Event } from "@rp/shared"; -import { useMemo } from "react"; - -type Pos = { - x: number; - y: number; - order: number; -}; - -export function RaceTrack({ - dayEvents, - colors, - hoveredIndex, - onHover, - onClick, - deviceType -}: { - dayEvents: Event[]; - colors: string[]; - hoveredIndex: number | null; - onHover?: (index: number) => void; - onClick: (event: Event) => void; - deviceType: "mobile" | "desktop"; -}) { - const positions: Pos[] = [ - { x: 165, y: 0, order: 1 }, - { x: 945, y: 190, order: 5 }, - { x: 100, y: 510, order: 10 }, - { x: 550, y: 275, order: 8 }, - { x: 560, y: 15, order: 3 }, - - { x: 320, y: 450, order: 9 }, - { x: 50, y: 180, order: 12 }, - { x: 805, y: 425, order: 7 }, - { x: 15, y: 340, order: 11 }, - { x: 780, y: 45, order: 4 }, - - { x: 390, y: -10, order: 2 }, - { x: 940, y: 370, order: 6 } - ]; - - const selectedPositions = useMemo(() => { - return positions.slice(0, dayEvents.length).sort((a, b) => { - return a.order - b.order; - }); - }, [dayEvents.length]); - - return ( - - - - {selectedPositions.map((pos, index) => { - // We do not allow hovering on mobile devices. - const hovered = - (hoveredIndex ? hoveredIndex - 1 === index : false) && - deviceType === "desktop"; - - return ( - onClick(dayEvents[index])} - > - - onHover && onHover(index + 1)} - onMouseLeave={() => onHover && onHover(-1)} - > - - {index + 1} - - - - - ); - })} - - - ); -} diff --git a/apps/site/src/components/Home/AudioVisualizer.tsx b/apps/site/src/components/Home/Schedule/AudioVisualizer.tsx similarity index 100% rename from apps/site/src/components/Home/AudioVisualizer.tsx rename to apps/site/src/components/Home/Schedule/AudioVisualizer.tsx diff --git a/apps/site/src/components/Home/EventModal.tsx b/apps/site/src/components/Home/Schedule/EventModal.tsx similarity index 56% rename from apps/site/src/components/Home/EventModal.tsx rename to apps/site/src/components/Home/Schedule/EventModal.tsx index 1c372414..ef2a1f15 100644 --- a/apps/site/src/components/Home/EventModal.tsx +++ b/apps/site/src/components/Home/Schedule/EventModal.tsx @@ -12,6 +12,7 @@ import { Event } from "@rp/shared"; import moment from "moment"; import { FaAward, FaClock, FaMapPin, FaTag } from "react-icons/fa"; import { AudioVisualizer } from "./AudioVisualizer"; +import { EVENT_ICONS } from "@/constants/event-icons"; export default function EventModal({ event, @@ -33,11 +34,11 @@ export default function EventModal({
- +
)} @@ -111,7 +85,6 @@ function EventCard({ event }: { event: Event }) { boxShadow={"lg"} bgColor={"whiteAlpha.200"} > - {/* Time & Location */} - + - + {moment(event.startTime).format("h:mma")} –{" "} {moment(event.endTime).format("h:mma")} - + - + {event.location} - {/* Type & Points */} - - - + + + {event.eventType} - + - + {event.points} points @@ -162,3 +154,36 @@ function EventCard({ event }: { event: Event }) {
); } + +function CheckerBoardPattern() { + return ( + + ); +} diff --git a/apps/site/src/components/Home/Schedule/RaceTrack.tsx b/apps/site/src/components/Home/Schedule/RaceTrack.tsx new file mode 100644 index 00000000..2f43f31b --- /dev/null +++ b/apps/site/src/components/Home/Schedule/RaceTrack.tsx @@ -0,0 +1,189 @@ +import { Box, Text, Tooltip } from "@chakra-ui/react"; +import { Event } from "@rp/shared"; +import { useMemo } from "react"; + +type RaceTrackLocation = { + x: number; + y: number; + order: number; +}; + +const locations: RaceTrackLocation[] = [ + { x: 165, y: 0, order: 1 }, + { x: 945, y: 190, order: 5 }, + { x: 100, y: 510, order: 10 }, + { x: 550, y: 275, order: 8 }, + { x: 560, y: 15, order: 3 }, + + { x: 320, y: 450, order: 9 }, + { x: 50, y: 180, order: 12 }, + { x: 805, y: 425, order: 7 }, + { x: 15, y: 340, order: 11 }, + { x: 780, y: 45, order: 4 }, + + { x: 390, y: -10, order: 2 }, + { x: 940, y: 370, order: 6 } +]; + +export function RaceTrack({ + dayEvents, + colors, + hoveredIndex, + onHover, + onClick +}: { + dayEvents: Event[]; + colors: string[]; + hoveredIndex: number | null; + onHover?: (index: number) => void; + onClick: (event: Event) => void; +}) { + const selectedLocations = useMemo(() => { + return locations.slice(0, dayEvents.length).sort((a, b) => { + return a.order - b.order; + }); + }, [dayEvents.length]); + + return ( + + + + {selectedLocations.map((location, index) => { + const hovered = hoveredIndex ? hoveredIndex - 1 === index : false; + + return ( + + ); + })} + + + ); +} + +function RaceTrackLocation({ + index, + color, + location, + hovered, + dayEvent, + onClick, + onHover +}: { + index: number; + color: string; + location: RaceTrackLocation; + hovered: boolean; + dayEvent: Event; + onClick: (event: Event) => void; + onHover?: (index: number) => void; +}) { + return ( + onClick(dayEvent)} + > + + onHover && onHover(index + 1)} + onMouseLeave={() => onHover && onHover(-1)} + > + + {index + 1} + + + + + ); +} + +function RaceTrackPath() { + return ( + + ); +} diff --git a/apps/site/src/components/Home/Schedule.tsx b/apps/site/src/components/Home/Schedule/Schedule.tsx similarity index 55% rename from apps/site/src/components/Home/Schedule.tsx rename to apps/site/src/components/Home/Schedule/Schedule.tsx index 5666d4fe..7fac5fcc 100644 --- a/apps/site/src/components/Home/Schedule.tsx +++ b/apps/site/src/components/Home/Schedule/Schedule.tsx @@ -9,21 +9,14 @@ import { Tooltip, useToast } from "@chakra-ui/react"; -import { Event, EventType, path } from "@rp/shared"; +import { Event, path } from "@rp/shared"; import moment from "moment"; import { useEffect, useState } from "react"; -import { IconType } from "react-icons"; -import { - FaBriefcase, - FaCheck, - FaHandshake, - FaMicrophone, - FaStar, - FaUtensils -} from "react-icons/fa"; +import { EVENT_ICONS } from "@/constants/event-icons"; import EventModal from "./EventModal"; import { RaceTrack } from "./RaceTrack"; +import ScheduleDaySelector from "./ScheduleDaySelector"; export const circleColors = [ "green.400", @@ -44,13 +37,16 @@ export default function Schedule() { {} ); const [selectedDay, setSelectedDay] = useState(null); + const [selectedEvent, setSelectedEvent] = useState(null); + const [hoveredEventIndex, setHoveredEventIndex] = useState( + null + ); + const selectedDayIndex = Math.max( Object.keys(eventsByDay).indexOf(selectedDay || "") + 1, 1 ); - const [selectedEvent, setSelectedEvent] = useState(null); - const dayEvents = selectedDay ? eventsByDay[selectedDay] : []; const handleLoadEvents = () => { @@ -83,10 +79,6 @@ export default function Schedule() { handleLoadEvents(); }, []); - const [hoveredEventIndex, setHoveredEventIndex] = useState( - null - ); - const handleHover = (index: number) => { setHoveredEventIndex(index); }; @@ -103,59 +95,19 @@ export default function Schedule() { return ( <> - - {Object.keys(eventsByDay).map((date) => ( - - ))} - - - - - - + - - + + - {/* - - - R|P RADIO - - - - */} @@ -224,116 +178,6 @@ export default function Schedule() { ); } -function ScheduleDayButton({ - date, - selected, - onSelect -}: { - date: string; - selected?: boolean; - onSelect: (date: string) => void; -}) { - return ( - onSelect(date)} - transition="all 0.2s" - boxShadow="md" - _hover={{ - cursor: "pointer", - transform: "scale(1.05)" - }} - _active={{ bgColor: selected ? "gray.400" : "gray.300" }} - _focus={{ boxShadow: "outline" }} - transform={selected ? "scale(1.05)" : "scale(1)"} - > - - - - - - - {date} - - - - - - - - - ); -} - function DayEvents({ hoveredIndex, dayEvents, @@ -353,7 +197,7 @@ function DayEvents({ py={2} pb={5} borderRadius="xl" - borderLeftRadius={{ md: "40px" }} + borderLeftRadius={{ lg: "40px" }} overflowY={{ md: "auto" }} > = { - SPECIAL: FaStar, // star for special events - SPEAKER: FaMicrophone, // microphone for speaker sessions - CORPORATE: FaBriefcase, // briefcase for corporate events - PARTNERS: FaHandshake, // handshake for partners - MEALS: FaUtensils, // utensils for meal breaks - CHECKIN: FaCheck // checkmark for check-in -}; - function DayEvent({ number, hoveredIndex, @@ -416,20 +251,13 @@ function DayEvent({ py={3} m={{ base: 3, - md: 10 + md: 5 }} my={{ - base: 0, - md: 5 + base: 3, + md: 4 }} - mt={ - number === 1 - ? 0 - : { - base: 2, - md: 5 - } - } + mt={number === 1 ? 0 : undefined} borderRadius="xl" templateColumns={{ base: "30px 1fr 30px", @@ -492,16 +320,12 @@ function DayEvent({ - + {event.name} void; +}) { + return ( + + {Object.keys(eventsByDay).map((date) => ( + + ))} + + ); +} + +function ScheduleDayButton({ + date, + selected, + onSelectDay +}: { + date: string; + selected?: boolean; + onSelectDay: (date: string) => void; +}) { + return ( + onSelectDay(date)} + transition="all 0.2s" + boxShadow="md" + _hover={{ + cursor: "pointer", + transform: "scale(1.05)" + }} + _active={{ bgColor: selected ? "gray.400" : "gray.300" }} + _focus={{ boxShadow: "outline" }} + transform={selected ? "scale(1.05)" : "scale(1)"} + > + + + + + + + {date} + + + + + + + + + ); +} diff --git a/apps/site/src/constants/event-icons.ts b/apps/site/src/constants/event-icons.ts new file mode 100644 index 00000000..51a3c2dc --- /dev/null +++ b/apps/site/src/constants/event-icons.ts @@ -0,0 +1,20 @@ +import { EventType } from "@rp/shared"; +import { IconType } from "react-icons"; + +import { + FaBriefcase, + FaCheck, + FaHandshake, + FaMicrophone, + FaStar, + FaUtensils +} from "react-icons/fa"; + +export const EVENT_ICONS: Record = { + SPECIAL: FaStar, // star for special events + SPEAKER: FaMicrophone, // microphone for speaker sessions + CORPORATE: FaBriefcase, // briefcase for corporate events + PARTNERS: FaHandshake, // handshake for partners + MEALS: FaUtensils, // utensils for meal breaks + CHECKIN: FaCheck // checkmark for check-in +}; diff --git a/apps/site/src/routes/Home.tsx b/apps/site/src/routes/Home.tsx index 103144d3..606cdcbc 100644 --- a/apps/site/src/routes/Home.tsx +++ b/apps/site/src/routes/Home.tsx @@ -1,4 +1,4 @@ -import Schedule from "@/components/Home/Schedule"; +import Schedule from "@/components/Home/Schedule/Schedule"; export default function Home() { return ( From 30c68884b4f0637789de8bd68bbb1872f967861a Mon Sep 17 00:00:00 2001 From: miguelaenlle Date: Thu, 29 May 2025 20:51:58 -0500 Subject: [PATCH 03/20] Finalization of mobile support; ran linter --- .../components/Home/Schedule/EventModal.tsx | 23 ++-- .../components/Home/Schedule/RaceTrack.tsx | 1 + .../src/components/Home/Schedule/Schedule.tsx | 117 +++++++++++------- apps/site/src/routes/Home.tsx | 1 + 4 files changed, 85 insertions(+), 57 deletions(-) diff --git a/apps/site/src/components/Home/Schedule/EventModal.tsx b/apps/site/src/components/Home/Schedule/EventModal.tsx index ef2a1f15..04c3f39c 100644 --- a/apps/site/src/components/Home/Schedule/EventModal.tsx +++ b/apps/site/src/components/Home/Schedule/EventModal.tsx @@ -1,5 +1,6 @@ import { Box, + CloseButton, Flex, Icon, Modal, @@ -22,13 +23,7 @@ export default function EventModal({ onClose: () => void; }) { return ( - + {event && ( - - {event.name.toUpperCase()} + + + + {event.name.toUpperCase()} + + + diff --git a/apps/site/src/components/Home/Schedule/RaceTrack.tsx b/apps/site/src/components/Home/Schedule/RaceTrack.tsx index 2f43f31b..ca5f01e1 100644 --- a/apps/site/src/components/Home/Schedule/RaceTrack.tsx +++ b/apps/site/src/components/Home/Schedule/RaceTrack.tsx @@ -123,6 +123,7 @@ function RaceTrackLocation({ closeDelay={100} isOpen={hovered} fontFamily="Racing Sans One" + hideBelow={"md"} // Hide on mobile to prevent the tooltip from being visible in the modal > - - - - - - - - + + {dayEvents.length === 0 && ( + + No events scheduled yet. + + )} {dayEvents.map((event, index) => ( void; + handleSelectEvent: (event: Event) => void; +}) { + return ( + + + + + + + + ); +} + function DayEvent({ number, hoveredIndex, diff --git a/apps/site/src/routes/Home.tsx b/apps/site/src/routes/Home.tsx index 606cdcbc..51e37d5a 100644 --- a/apps/site/src/routes/Home.tsx +++ b/apps/site/src/routes/Home.tsx @@ -4,6 +4,7 @@ export default function Home() { return ( <>

Reflections | Projections 2025

+
); From 66f0a434c603a992af44335986e71b930fac76ff Mon Sep 17 00:00:00 2001 From: miguelaenlle Date: Sun, 1 Jun 2025 22:38:25 -0500 Subject: [PATCH 04/20] Added top and side margin --- apps/site/src/components/Home/Schedule/EventModal.tsx | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/apps/site/src/components/Home/Schedule/EventModal.tsx b/apps/site/src/components/Home/Schedule/EventModal.tsx index 04c3f39c..6c56ea70 100644 --- a/apps/site/src/components/Home/Schedule/EventModal.tsx +++ b/apps/site/src/components/Home/Schedule/EventModal.tsx @@ -27,6 +27,14 @@ export default function EventModal({ {event && ( Date: Sun, 1 Jun 2025 22:39:56 -0500 Subject: [PATCH 05/20] Increased top padding --- apps/site/src/components/Home/Schedule/EventModal.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/site/src/components/Home/Schedule/EventModal.tsx b/apps/site/src/components/Home/Schedule/EventModal.tsx index 6c56ea70..fe721490 100644 --- a/apps/site/src/components/Home/Schedule/EventModal.tsx +++ b/apps/site/src/components/Home/Schedule/EventModal.tsx @@ -28,7 +28,7 @@ export default function EventModal({ {event && ( Date: Thu, 5 Jun 2025 20:24:12 -0500 Subject: [PATCH 06/20] temp change --- apps/site/src/components/Home/Schedule/RaceTrack.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/site/src/components/Home/Schedule/RaceTrack.tsx b/apps/site/src/components/Home/Schedule/RaceTrack.tsx index ca5f01e1..31a2abd7 100644 --- a/apps/site/src/components/Home/Schedule/RaceTrack.tsx +++ b/apps/site/src/components/Home/Schedule/RaceTrack.tsx @@ -43,7 +43,7 @@ export function RaceTrack({ return a.order - b.order; }); }, [dayEvents.length]); - + // return ( Date: Thu, 5 Jun 2025 20:24:51 -0500 Subject: [PATCH 07/20] Ran linter --- apps/site/src/components/Home/Schedule/RaceTrack.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/apps/site/src/components/Home/Schedule/RaceTrack.tsx b/apps/site/src/components/Home/Schedule/RaceTrack.tsx index 31a2abd7..ed9c0358 100644 --- a/apps/site/src/components/Home/Schedule/RaceTrack.tsx +++ b/apps/site/src/components/Home/Schedule/RaceTrack.tsx @@ -43,7 +43,6 @@ export function RaceTrack({ return a.order - b.order; }); }, [dayEvents.length]); - // return ( Date: Mon, 9 Jun 2025 00:06:20 -0500 Subject: [PATCH 08/20] Implemented HIFI updates; still WIP --- apps/site/index.html | 4 + .../components/Home/Schedule/RaceTrack.tsx | 19 ++-- .../src/components/Home/Schedule/Schedule.tsx | 97 +++++++++++-------- 3 files changed, 71 insertions(+), 49 deletions(-) diff --git a/apps/site/index.html b/apps/site/index.html index 8d180cd0..df6f342a 100644 --- a/apps/site/index.html +++ b/apps/site/index.html @@ -14,6 +14,10 @@ href="https://fonts.googleapis.com/css2?family=Racing+Sans+One&display=swap" rel="stylesheet" /> + Reflections | Projections diff --git a/apps/site/src/components/Home/Schedule/RaceTrack.tsx b/apps/site/src/components/Home/Schedule/RaceTrack.tsx index ed9c0358..0f634772 100644 --- a/apps/site/src/components/Home/Schedule/RaceTrack.tsx +++ b/apps/site/src/components/Home/Schedule/RaceTrack.tsx @@ -121,7 +121,7 @@ function RaceTrackLocation({ openDelay={200} closeDelay={100} isOpen={hovered} - fontFamily="Racing Sans One" + fontFamily="Archivo Black" hideBelow={"md"} // Hide on mobile to prevent the tooltip from being visible in the modal > onHover && onHover(-1)} > {index + 1} @@ -179,11 +178,11 @@ function RaceTrackPath() { M227.678 599.617C254.092 614.377 470.198 282.657 585.678 298.617 M227.651 600.358C145.112 596.714 104.264 506.872 31.6509 409.358 `} - stroke="black" + stroke="white" strokeWidth="5" strokeLinecap="round" fill="none" - opacity={0.5} + opacity={0.6} /> ); } diff --git a/apps/site/src/components/Home/Schedule/Schedule.tsx b/apps/site/src/components/Home/Schedule/Schedule.tsx index bb368fb9..25b0a295 100644 --- a/apps/site/src/components/Home/Schedule/Schedule.tsx +++ b/apps/site/src/components/Home/Schedule/Schedule.tsx @@ -31,6 +31,19 @@ export const circleColors = [ "pink.600" ]; +export const circleColorsLighter = [ + "green.600", + "purple.800", + "pink.700", + "red.700", + "orange.700", + "teal.600", + "cyan.600", + "blue.700", + "yellow.600", + "pink.800" +]; + export default function Schedule() { const toast = useToast(); const [eventsByDay, setEventsByDay] = useState<{ [key: string]: Event[] }>( @@ -94,7 +107,7 @@ export default function Schedule() { return ( <> - + @@ -280,28 +292,24 @@ function DayEvent({ md: 5 }} py={3} - m={{ - base: 3, - md: 5 - }} - my={{ - base: 3, - md: 4 - }} - mt={number === 1 ? 0 : undefined} - borderRadius="xl" templateColumns={{ - base: "30px 1fr 30px", - md: "20px 30px 1fr 40px" + base: "40px 1fr 30px", + md: "40px 10px 1fr 40px" }} alignItems="center" - bgColor={hoveredIndex === number ? "gray.300" : "gray.400"} + bgColor={ + hoveredIndex === number + ? "gray.300" + : number % 2 === 0 + ? "#2E2E2E" + : "#242424" + } gap={{ base: 3, - md: 5 + md: 3 }} _hover={{ - bgColor: "gray.300", + bgColor: circleColorsLighter[(number - 1) % circleColorsLighter.length], cursor: "pointer" }} transition={"all 0.2s"} @@ -315,27 +323,38 @@ function DayEvent({ onClick(event); }} > - - {number} - + + {number} + + - - + + {event.name} @@ -376,7 +395,7 @@ function DayEvent({ From 004f784d815be7fb66df5f8b52d84672b405c493 Mon Sep 17 00:00:00 2001 From: miguelaenlle Date: Wed, 11 Jun 2025 23:04:03 -0500 Subject: [PATCH 09/20] Implemented changes --- .../src/components/Home/Schedule/Schedule.tsx | 64 ++++++++--- .../Home/Schedule/ScheduleDaySelector.tsx | 105 ++++-------------- apps/site/src/constants/day-colors.ts | 7 ++ 3 files changed, 75 insertions(+), 101 deletions(-) create mode 100644 apps/site/src/constants/day-colors.ts diff --git a/apps/site/src/components/Home/Schedule/Schedule.tsx b/apps/site/src/components/Home/Schedule/Schedule.tsx index 25b0a295..92c7b37a 100644 --- a/apps/site/src/components/Home/Schedule/Schedule.tsx +++ b/apps/site/src/components/Home/Schedule/Schedule.tsx @@ -5,6 +5,7 @@ import { Flex, Grid, Icon, + Spacer, Text, Tooltip, useToast @@ -134,6 +135,7 @@ export default function Schedule() { > void; @@ -176,6 +181,7 @@ function DayEventsSection({ borderRadius="xl" borderLeftRadius={{ lg: "30px" }} overflowY={{ md: "auto" }} + shadow={"md"} > - Calendar + Lap {selectedDayIndex}/{numDays} {dayEvents.length === 0 && ( @@ -236,11 +242,15 @@ function RaceTrackSection({ alignItems={"center"} > + + + + + R|P Radio + + + LOOKING FOR A JOB IN THE TECH INDUSTRY? + +
+
+
); @@ -293,7 +336,7 @@ function DayEvent({ }} py={3} templateColumns={{ - base: "40px 1fr 30px", + base: "40px 10px 1fr 40px", md: "40px 10px 1fr 40px" }} alignItems="center" @@ -339,7 +382,6 @@ function DayEvent({ textAlign="center" fontFamily="Archivo Black" mb={"2px"} - hideBelow={"md"} mt={"4px"} > {number} @@ -355,19 +397,7 @@ function DayEvent({ bg={circleColors[(number - 1) % circleColors.length]} boxShadow="md" borderRadius="sm" - > - - {number} - -
+ >
diff --git a/apps/site/src/components/Home/Schedule/ScheduleDaySelector.tsx b/apps/site/src/components/Home/Schedule/ScheduleDaySelector.tsx index 0b72032c..63cc0d79 100644 --- a/apps/site/src/components/Home/Schedule/ScheduleDaySelector.tsx +++ b/apps/site/src/components/Home/Schedule/ScheduleDaySelector.tsx @@ -1,3 +1,4 @@ +import { DAY_COLORS } from "@/constants/day-colors"; import { Box, Flex, Text } from "@chakra-ui/react"; import { Event } from "@rp/shared"; @@ -27,8 +28,9 @@ export default function ScheduleDaySelector({ }} justifyContent={"center"} > - {Object.keys(eventsByDay).map((date) => ( + {Object.keys(eventsByDay).map((date, index) => ( void; @@ -51,98 +55,31 @@ function ScheduleDayButton({ return ( onSelectDay(date)} transition="all 0.2s" - boxShadow="md" _hover={{ - cursor: "pointer", - transform: "scale(1.05)" + cursor: "pointer" }} - _active={{ bgColor: selected ? "gray.400" : "gray.300" }} - _focus={{ boxShadow: "outline" }} - transform={selected ? "scale(1.05)" : "scale(1)"} + boxShadow="md" > - - - - - - - {date} - - - - - - - + {date.toUpperCase()} +
); } diff --git a/apps/site/src/constants/day-colors.ts b/apps/site/src/constants/day-colors.ts new file mode 100644 index 00000000..ca44a81e --- /dev/null +++ b/apps/site/src/constants/day-colors.ts @@ -0,0 +1,7 @@ +export const DAY_COLORS = [ + "#56BF59", + "#E6930D", + "#FFFFFF", + "#FFD93F", + "#322BB7" +]; From 07926ac933c12ebbd311a1a44f11a04990020efa Mon Sep 17 00:00:00 2001 From: miguelaenlle Date: Mon, 14 Jul 2025 22:24:18 -0500 Subject: [PATCH 10/20] Updated site styling --- apps/site/public/magistral.ttf | Bin 0 -> 100928 bytes apps/site/public/pro-racing.regular.otf | Bin 0 -> 32248 bytes apps/site/public/pro-racing.slant.otf | Bin 0 -> 33724 bytes apps/site/public/schedule.svg | 113 +++++++++++++++ .../Home/Schedule/AudioVisualizer.tsx | 2 +- .../components/Home/Schedule/EventModal.tsx | 39 +++-- .../components/Home/Schedule/RaceTrack.tsx | 6 +- .../src/components/Home/Schedule/Schedule.tsx | 135 ++++++++++++------ .../Home/Schedule/ScheduleDaySelector.tsx | 6 +- apps/site/src/index.css | 24 ++++ 10 files changed, 264 insertions(+), 61 deletions(-) create mode 100644 apps/site/public/magistral.ttf create mode 100644 apps/site/public/pro-racing.regular.otf create mode 100644 apps/site/public/pro-racing.slant.otf create mode 100644 apps/site/public/schedule.svg diff --git a/apps/site/public/magistral.ttf b/apps/site/public/magistral.ttf new file mode 100644 index 0000000000000000000000000000000000000000..cb5951dd5ac134969640ec1fc44b780a8686a537 GIT binary patch literal 100928 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¬y9r-j2LW8$MrzVe~BDclt92I+6esg)q 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%0A3(c>Ufr<%rMj; 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%0ABC?O^>ZXG8L6W5#MQLGR) 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 literal 0 HcmV?d00001 diff --git a/apps/site/public/schedule.svg b/apps/site/public/schedule.svg new file mode 100644 index 00000000..4e72793e --- /dev/null +++ b/apps/site/public/schedule.svg @@ -0,0 +1,113 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/site/src/components/Home/Schedule/AudioVisualizer.tsx b/apps/site/src/components/Home/Schedule/AudioVisualizer.tsx index f9f6ff03..c3f1cd3c 100644 --- a/apps/site/src/components/Home/Schedule/AudioVisualizer.tsx +++ b/apps/site/src/components/Home/Schedule/AudioVisualizer.tsx @@ -64,7 +64,7 @@ export const AudioVisualizer: React.FC = ({ key={idx} style={{ flex: 1, - backgroundColor: "var(--chakra-colors-gray-400)", + backgroundColor: "var(--chakra-colors-orange-300)", borderRadius: "2px", height: `${h}px` }} diff --git a/apps/site/src/components/Home/Schedule/EventModal.tsx b/apps/site/src/components/Home/Schedule/EventModal.tsx index fe721490..2605af63 100644 --- a/apps/site/src/components/Home/Schedule/EventModal.tsx +++ b/apps/site/src/components/Home/Schedule/EventModal.tsx @@ -1,3 +1,4 @@ +import { EVENT_ICONS } from "@/constants/event-icons"; import { Box, CloseButton, @@ -13,7 +14,6 @@ import { Event } from "@rp/shared"; import moment from "moment"; import { FaAward, FaClock, FaMapPin, FaTag } from "react-icons/fa"; import { AudioVisualizer } from "./AudioVisualizer"; -import { EVENT_ICONS } from "@/constants/event-icons"; export default function EventModal({ event, @@ -37,7 +37,8 @@ export default function EventModal({ }} p={4} px={7} - bg="rgba(129, 26, 26, 0.9)" // Translucent content background + bg="rgba(66, 66, 66, 0.9)" // Translucent content background + boxShadow="xl" color="white" borderRadius="xl" pb={20} @@ -45,7 +46,13 @@ export default function EventModal({ > - + {event.name.toUpperCase()} @@ -62,10 +69,12 @@ export default function EventModal({ {event.description} @@ -102,10 +111,13 @@ function EventCard({ event }: { event: Event }) { {moment(event.startTime).format("h:mma")} –{" "} {moment(event.endTime).format("h:mma")} @@ -114,10 +126,13 @@ function EventCard({ event }: { event: Event }) { {event.location} @@ -134,10 +149,13 @@ function EventCard({ event }: { event: Event }) { {event.eventType} @@ -145,10 +163,13 @@ function EventCard({ event }: { event: Event }) { {event.points} points diff --git a/apps/site/src/components/Home/Schedule/RaceTrack.tsx b/apps/site/src/components/Home/Schedule/RaceTrack.tsx index 0f634772..29b116c7 100644 --- a/apps/site/src/components/Home/Schedule/RaceTrack.tsx +++ b/apps/site/src/components/Home/Schedule/RaceTrack.tsx @@ -121,7 +121,8 @@ function RaceTrackLocation({ openDelay={200} closeDelay={100} isOpen={hovered} - fontFamily="Archivo Black" + fontWeight={"bold"} + fontFamily="Magistral" hideBelow={"md"} // Hide on mobile to prevent the tooltip from being visible in the modal > {index + 1} diff --git a/apps/site/src/components/Home/Schedule/Schedule.tsx b/apps/site/src/components/Home/Schedule/Schedule.tsx index 92c7b37a..6017ea38 100644 --- a/apps/site/src/components/Home/Schedule/Schedule.tsx +++ b/apps/site/src/components/Home/Schedule/Schedule.tsx @@ -4,6 +4,7 @@ import { Box, Flex, Grid, + HStack, Icon, Spacer, Text, @@ -18,6 +19,7 @@ import { EVENT_ICONS } from "@/constants/event-icons"; import EventModal from "./EventModal"; import { RaceTrack } from "./RaceTrack"; import ScheduleDaySelector from "./ScheduleDaySelector"; +import { AudioVisualizer } from "./AudioVisualizer"; export const circleColors = [ "green.400", @@ -108,7 +110,15 @@ export default function Schedule() { return ( <> - + + + + Lap + + + + {selectedDayIndex} + + + /{numDays} + + + - - Lap {selectedDayIndex}/{numDays} - {dayEvents.length === 0 && ( - - R|P Radio - + + R|P Radio + + + LOOKING FOR A JOB IN THE TECH INDUSTRY? @@ -340,19 +374,13 @@ function DayEvent({ md: "40px 10px 1fr 40px" }} alignItems="center" - bgColor={ - hoveredIndex === number - ? "gray.300" - : number % 2 === 0 - ? "#2E2E2E" - : "#242424" - } + bgColor={hoveredIndex === number ? "#333131" : "#242424"} gap={{ base: 3, md: 3 }} _hover={{ - bgColor: circleColorsLighter[(number - 1) % circleColorsLighter.length], + bgColor: "#4D4C4C", cursor: "pointer" }} transition={"all 0.2s"} @@ -372,15 +400,14 @@ function DayEvent({ alignItems={"center"} w="40px" h="40px" - bgColor="gray.200" borderRadius="sm" > @@ -400,19 +427,33 @@ function DayEvent({ >
- + {event.name} - - {moment(event.startTime).format("h:mma")} –{" "} - {moment(event.endTime).format("h:mma")} - + + + {event.location} + + + + {moment(event.startTime).format("h:mma")} –{" "} + {moment(event.endTime).format("h:mma")} + + Date: Thu, 24 Jul 2025 13:22:56 -0500 Subject: [PATCH 11/20] WIP (font fixes) --- .../components/Home/Schedule/EventModal.tsx | 11 +++++---- .../src/components/Home/Schedule/Schedule.tsx | 24 +++++++++++++++---- .../Home/Schedule/ScheduleDaySelector.tsx | 7 +++--- apps/site/src/index.css | 4 ++++ 4 files changed, 33 insertions(+), 13 deletions(-) diff --git a/apps/site/src/components/Home/Schedule/EventModal.tsx b/apps/site/src/components/Home/Schedule/EventModal.tsx index 2605af63..fb986f7e 100644 --- a/apps/site/src/components/Home/Schedule/EventModal.tsx +++ b/apps/site/src/components/Home/Schedule/EventModal.tsx @@ -47,11 +47,12 @@ export default function EventModal({ {event.name.toUpperCase()} @@ -76,6 +77,8 @@ export default function EventModal({ fontFamily="Magistral" letterSpacing="0.5px" mt={4} + transform="scaleX(1.1)" + transformOrigin={"top left"} > {event.description} diff --git a/apps/site/src/components/Home/Schedule/Schedule.tsx b/apps/site/src/components/Home/Schedule/Schedule.tsx index 6017ea38..8c5f935b 100644 --- a/apps/site/src/components/Home/Schedule/Schedule.tsx +++ b/apps/site/src/components/Home/Schedule/Schedule.tsx @@ -185,6 +185,7 @@ function DayEventsSection({ return ( {number} @@ -427,7 +429,14 @@ function DayEvent({ > - + {event.name} @@ -438,6 +447,9 @@ function DayEvent({ fontWeight="bold" fontFamily="Magistral" letterSpacing="0.5px" + transform="scaleX(1.1)" + transformOrigin={"top left"} + mr={3} > {event.location} @@ -449,6 +461,8 @@ function DayEvent({ fontFamily="Magistral" letterSpacing="0.5px" whiteSpace={"nowrap"} + transform="scaleX(1.1)" + transformOrigin={"top left"} > {moment(event.startTime).format("h:mma")} –{" "} {moment(event.endTime).format("h:mma")} diff --git a/apps/site/src/components/Home/Schedule/ScheduleDaySelector.tsx b/apps/site/src/components/Home/Schedule/ScheduleDaySelector.tsx index e19bd72a..19d7fd17 100644 --- a/apps/site/src/components/Home/Schedule/ScheduleDaySelector.tsx +++ b/apps/site/src/components/Home/Schedule/ScheduleDaySelector.tsx @@ -62,8 +62,7 @@ function ScheduleDayButton({ borderLeftWidth={"8px"} borderLeftColor={color} px={3} - py={1.5} - pb={4} + py={3} pr={8} onClick={() => onSelectDay(date)} transition="all 0.2s" @@ -77,8 +76,8 @@ function ScheduleDayButton({ fontSize="lg" textColor={selected ? "black" : "white"} transition="all 0.2s, transform 0.2s" - noOfLines={1} - py={0.5} + transform="scaleX(0.7)" + transformOrigin="center left" > {date.toUpperCase()} diff --git a/apps/site/src/index.css b/apps/site/src/index.css index bd66487f..4aa1b843 100644 --- a/apps/site/src/index.css +++ b/apps/site/src/index.css @@ -26,3 +26,7 @@ font-style: normal; font-display: swap; } + +.condensed { + font-stretch: condensed; +} From 7448da7c8a597ea40dcca51db239a8edc9824422 Mon Sep 17 00:00:00 2001 From: miguelaenlle Date: Mon, 28 Jul 2025 07:50:37 -0500 Subject: [PATCH 12/20] Removed unneded files --- apps/site/public/magistral-wide.ttf | Bin 0 -> 71076 bytes apps/site/public/magistral.ttf | Bin 100928 -> 0 bytes apps/site/public/pro-racing-narrow.ttf | Bin 0 -> 26584 bytes apps/site/public/pro-racing-slant-narrow.ttf | Bin 0 -> 28156 bytes apps/site/public/pro-racing.regular.otf | Bin 32248 -> 0 bytes apps/site/public/pro-racing.slant.otf | Bin 33724 -> 0 bytes .../components/Home/Schedule/EventModal.tsx | 7 ++----- .../src/components/Home/Schedule/Schedule.tsx | 4 ---- .../Home/Schedule/ScheduleDaySelector.tsx | 1 - apps/site/src/index.css | 6 +++--- package.json | 5 ++++- yarn.lock | 17 +++++++++++++++++ 12 files changed, 26 insertions(+), 14 deletions(-) create mode 100644 apps/site/public/magistral-wide.ttf delete mode 100644 apps/site/public/magistral.ttf create mode 100644 apps/site/public/pro-racing-narrow.ttf create mode 100644 apps/site/public/pro-racing-slant-narrow.ttf delete mode 100644 apps/site/public/pro-racing.regular.otf delete mode 100644 apps/site/public/pro-racing.slant.otf diff --git a/apps/site/public/magistral-wide.ttf b/apps/site/public/magistral-wide.ttf new file mode 100644 index 0000000000000000000000000000000000000000..6a64aed838c7828bc3213a1954900539afac047b GIT binary patch literal 71076 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%0D~XNJM>3XkyKY{ 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 Qwc0E;S3r>;b7j?k0SYMyyZ`_I literal 0 HcmV?d00001 diff --git a/apps/site/public/magistral.ttf b/apps/site/public/magistral.ttf deleted file mode 100644 index cb5951dd5ac134969640ec1fc44b780a8686a537..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 100928 zcmdSC31C~*l{fzG(`rf9zFD?qEw&`Dk|kN*J2;86hioJv2_Z>CVjwUnq$#D8 ztrWsipg>b#fVL^66c{FjK!H-AZH7{&U&?eSgtgF8+A?WMX)J%gbDy3pTk=9@zW?|C z3@=a1)4k`Md+xbsyXOi_5CoHOiJ%aM`}>zK+*FIpD5&^;h9{{g(cX<*rk-gh=#`=-Eb3k1Q~yJ%T7zSHmiydbc>cz)yNbIu%I z{-4ctf}oEHg7VneXP!SiI*Oi{^;LYYJ$vV8x31rGDj^8=!-DYkmD|obb4$s+COf`6 zg)6lUAE--J6=*Ms_to3Z*|RtCrTO&!6+tLjwR898GedQMcux?_TD1SbIcM%27S{`( z!}qK3yl>Z;=bUxfy>mMR;cq?YZvXJ^^YzxxCY z|A2ZL|EFX}Sp#Sxh*ygQ?R@FZ)(df_(3(WOQZ0%~twMQ;AV$r2O#b=e*-K}mIp5#K zEDVQ*XMKWj3w=Pj(egXZQ6ym~dxLfg^ z6`!BN>vx5I;UWC42jAU^_m_>H6rFheGCuno-oK4Dw1S=e9kIhaD!mpS5z@k8 zLC5|b?Y)eP?p=aTu}w&epqAJv^ott&eg{53f$Ip~&%^u0=#$`U!!t(Q9~b%+4ft*g zt{d=uCGKCvJ&NxLc8oUtMg&p-?US3cov!_rDZU!aca28hwS`i2I#FO2lXMxv0$k?qxjx7Ct*Dc!dAJ z?_R{~YXQgQ=>I&t{}%dRf!6|Pbu;K8pzouCH%I%c@&0MS4m$L+3r9cT&w!TnocIy$ z7F<^Y#}vK??E!0q*+FM|jWJ;haF3yF!sSW4J|>Nia4+z?7yb6(dHQ`5t{u4c<#C{~$iI@p7XF^bBJZNH5aVd`XP^<$ zy~riLh0kd$Fb?^baI2t~uF>xccL++*fsYT3!^DetjE@hEMgB!&@h(2Yop7iAbNBx2 zd%_+4a~c%8gGWU-z6bss2BHtaI?0{*n0RT@JLtoHIr;-}4cdE&=Huu)!mXpn80MaU zc?4R|0p4+%1K`7-^LYSXq`3foG-dBq{7$&h=da>^7`*;RX^c3(Vywp9X}pMb6Yh#v zgt%fZKF6FQzRup0(j9PNo)NE4cBeT=^B{L8{4fT@2UFeUdCKPs=4<|4Bp$bo{vNb> z4z&3`(K|;^;#cCCEL?KG@_6vMOLO|4G0)D+UNnC$2W|J_eFf&?Gq_)dYb#!hnfFLm ziB`z3HRzY-)SIKHs6Fw^7^5HIUJlwB`Ph(ra?sc)R*arh+=B0hfjeZC=mC$-!ky+= zGw!(fZyy=`fZ9@YjGknFz&zZD@93i6q|gq@H<~jvE_4s$BH2i?joSPK@EphMHTc|s zv090?==WRj+4I@w%Y}#n^9+4P_#8V9es~PmMvQ|S{Sy6#alZlIzk<){x&haHXk$I@ zN3-&cWSuM<_W*aAH&=qzB-bEk&~`+87SGaif5va?aK9hd0m!b~aDQHK^SSXPo=4wo zAAU=6l4R-~f>wBR^hNPH(3xQSHJ%|DXpWM6{SDrKj5cNdgeHNu1+>@C*5Uh!^H=7B z>^$T=LwFMJ;7;`BID_VdH_@E%&fVpHKx2;Q#5-us@g*7)o+N+iIw4)+#~34A0@hJ} z(ONkVJVn>d7IS}X4aP8fHLxs7!L#`l0btwXeana4mUj6avn ze-h|Vk-a4SQ4o)kMvKoX1f}>O?%xtF5!6CN*w1V%%<5S)Yi0A;S?qkapIygpU@x)X zu-~!~v0SVbTgBDl5%GEPC*p4uOtD{alj7ToBZ{Y#2IV5y@u7f2;h9 z@^3ze&*Ss@0=|$h=IikF`R?~U;`_PZ=@0lr0WqKsm;%;-Bj5>m1NDJCXY_yX=(c79&|mp97??jDwUZjmjm;^~z1k^OOgaFDc(teyIG|XZE>$6+Rz_ zv^@*yqvIg80MfD?q+2+o!U^?>jVJb>_~MCYPrPvA=*hyT4CRV$fsL1+}3gs2b`nlbwlLQ-hKYSJpS3GG6M&n@EyTbQ`2ZRTO?+XtL{{luthja*bbS#SGY?U7Cs{?gbRfouu-lQZWBv|^F@nj70wp^ zNmPkiQNtEO6WA&2WAh;|9uvMGY!-Hj2G%5+M73~^@HzH|ut~U7_>yo7)3Orwzt}PM zpX^ok3i}V?2clhgnuXXqn4530x5fG50`|J_S@vtp);ERAglmK^3SSYf7OoQx2-geO z3SWh-AqY2NCH}f_yYL6r&H9CNSudLdo8clhz~(}}<^NeR7Au8A%*S>@4jg39vbWjC zq8hfPS8Nh@ikFH{DMUqDu~+es;+S%t@>1nZ%5NzjQ@*HtO=VSGt$IkURyU|OsV`UG zseVcQp8ABwph;;KXl~FvrxmqH?H=ue+7C;Fl1NE^$;~AXmAp`LN@vh{bPc*8-5T9C z-9g>Ux{vh@`mOp)^-t=5t^d$qHMAM}4a0_;4KJ6fOFK$emL4d5sPvbmCyjl^^~Upz z_ZiTR zo82eM+RFBoz3fSO_IYmh{I1+nK3INj`7`CORTwIkRvf5!vC><)ukuN+-Fu<;sVcFm zuj;m{<5eeoTFC5qzFU3o`Xl}w{-*-ffgOQM11|?o1w+A2!2`iV!DGP_)q(2u)wfn3 zukqGwtGT)6*^n~S7a9)T5qdRT5#Aa8R`}gWATkuWHgY)fac#Wz(%NV0+;yAk4%dBB zKd*j&{ZsWHH>4YOHQdwi(}oWlg+_a0ym5Ks*2X=J_cgxOWNb<|t!diTbWPKpO;0wx z-1K2oj8;cyMK6lp7kx8kjIE2^5qquK*SxFwNL(FX9KR=_OAIB36OSa0C7Y64l82HX zwDh&y){;rBPaSSGw)VFkXg$*UZkxR=-L|*wfwq(FZSBMDceWqzaCfwIoY!%G$Ge^0 z&YhiyJ5QwT>2!Ka`p)$4x_Y|yb-g>QVb-o$m(O}|)+gO-y7zWJ()~>L+db+YYfnQ@ zThIEQi+aA*^JLG_p5wDavoD?f!0cCh4ZZ2!HNBVhKGXYR@4LO3IlXf(nRDlym*<@7 z3-k^4UD@|)-$!$s<}RIk>)coR&Hd~8FYiCp|EB@%K;OWYftv@847@n-_Pp4<1@q3E zcg?&9=l%LL`)Na`U2@v}r~PTLX>iNneS;s&7w7lPzi9s9`F~mvSg>uuwF@3v@Zmz` z!k&d27v8k+v4uw$9v^BL>L1!UboJ1KL$59}FX~$~yy&(?uPyd0-njVM#rH2hw#2-o zdP#c8#w7=rytL%R(!kQerMs3MTKd|uj%7D3dv@80<@V*t<-^M#TmHd{rWKo3Ji8*Z za>2?gS3Y~X;q;}a-+lTAt5U1>u6lIUhpS_&cdmYD^~Y=MYns*!t=YNez?z5Fys}nY zJ8$jfYj0S4aP9qTA6xsv+GA_qUi;BHVV!eb!@8bzE7$E=chkBy=w?-g@8GhqfL)yY1{XXFquMOJ~1(_Ni^! zZQgAS+d8%_-*)M?d$v8a?Wt`?w|%rduzl9{UE6Ql{>l!|j?|95I}YtQ`I+=*_I&1{ z&z#uVv~zgp)jOZvdGef|b1pmQJS^f()+@U1Pgu9j?LT;C@`$cSFgc{Xn0qeENF{+MFKAvXaZQXL=B*lK@0|rqH3D&*;CQX zv8b~qTCUfZM{Bb8pwd+7c2}5GDpQ5qU1?IXbEkVkJTlTJKI5*R6$;I&cgy#0x*LN| zXRy(oz5ibRLcULYfb$P9W+yT3VQ3XXja^;O0wF@KwS|Ueme`500B#Q8N-q`hR2P#! zNU%HIq3c#GP&>kYZ^&6rT(|L9iX zg!mLjMrZ|0E(gH05WEhf!m(Ff*4!|Az^_vI2WB@km#KHe=eJa;n$%7GtKw{F^Xh)Q zR8_SsXy$!*(biF^EgP{}3)s(s0oJt4QncKrE{oU8ZPmxi)a*#}f^1`}n==o@S7jTU zPb7qPc8dKJ@B(_9Cfpisb%Cc_T^g4r>k5X8+cQo<`*Ov%>K6H+dzlI@Ch?A z?oa15d-YY;5a*u@!Y*ii_zkriPoI7|JwJMK^bB^b_%?m60fXz<)_CT&e^y*^>a)}y zo5}wuA zI4f+C@9dR1Yf>&(YR#NK_pM1eovAf_>bAiKtF>XU?cKJ)daJd55Dq5biN9+=Pte1b z4AnzI#GMXHaAk>U)_iX;C2nz9VwIthDg7DbDO=<+ORWoLZcB?EGE&GJ%ql&QLVBt;Jr$sD<1%dEZyS2^3+wDHD%Gr4wrnhXU4ITEl-GQZNf>_(H0`Se~_xuK^g zDT*p}<~@zpq-Oprm3oK8Txnw8wAiZ3G7YgS#V?9#U1o!>R8<0Q$>RM3;0?~m!y8?L z8&X8%fEt|Q>||M?SkK}g`a%x1${r5vbTw7GYOs=I-ZksX!+RP#tBr<0y7_~cr=inV z));h@xa<5ssH%-Q%y)YuuExH`hQSn8DB?+Uei;3h!9o%kc!IANkXa-IxUf=Jio9QW z0GNKmkR>uVS+{1fwWc-n(vMq`&9fWA(ee^~Wjt~-yL0RI#86B5nzPtos5e#~>+3w{ z4|95)b=`F}?I9aFf&WBcUq+wwW)^D!Dg7;ej+a`)f^4ovWl&`vWy?WQgGrTntxG(^ zXh!TRCYIQ(_E5>lVd7>5hy6I(3BzimH6`0bjxVz73PdkD!ECc-*FVT)Ndg!7gf%2* zR~u^L{)kg!s!lgv*qE+1X`B&%qS{d1(=y}_J2h%oW2h(8=mPO0)msB$hnghvnoy%# z1JNB2kGNv7bsxD+KhypeqcR;dc(KqA_*XT`7dhsK0*UJ$4Oz=#tLW;&;^G z>Sz6#$5{V+vDnU7jGi0UR%=UZxJA|f_rJ4&joFp}6ZHXpP(UN%x*O)sEU}yOSXOp% z{x(5$RkAs$l*Z^NZ3tj?)cUvW9vU*cy`?do37X!5GQY=dPDWZQs~Rhev4K^Ac*Ji> zmzKL$5`9K@DjLwwAS`}CmF2SB%p`RtY*ffv4Gk7%?wD$mH&hNqGWQMx*~0d0-#6P@ zHvg*KXRW%Rzd}_xt6k%(@oNm_f!eZIhhJ~0AMA)XMpPE~!D?(OM{50PyU#ec%Wm)7 zzT$em4 zI+{Xdf!Q0nR$jEQI<)G*jx(=2qcJKj4|tLb5_PAgsy1yTx^rKRn1(zwVC52Qvq%iO zY{9T!6KwS>nxMX@H81IdzN%{dOC57EPtNJMhE-pnD%I;tRpLdyx;o#;ZPi3H6yEB-Y5EUrg=b?y?HaPPcS-B_m8 zIzv_e>as9zdB|-r_*(1#E!NZ&`(bT+(5!XTRIGAYEP-ToMI!8qS%NJ!mCe<5iz{s@JYFk9s5@}t(e_-GXXSR#ixa}huk3F$`cRIau zDXpPI-=pXYI$gFWc>%#XBCXl?5N%j>=2Z}^7sANJBH@@=8jHj%u6JX9b(!UMXf4K| zB>=A62w4{W__ZQAxE5s7A^6Tk7x+OMSBk5hX|=S_&tn#NleZ%$c> zd_VjlkGaN*+w5J;c8!Pk(oI9OSEjks^*W{U;P7G_^L#rDPZve7HNzp zz(QKB3=F6$dVM~(zx1T2*QyLDi_4*^^l3j<=(RdUsy|ro@QRDndQIubRpRG7m8FVu z`^W=YXhq^@LGw8J*@%8@SmCp)`Fhe^azo>) z1q)U+8sxk9Z0+e+Y}jzc>9z7bbKCL@<_7}vFIb+v6IbxD=JLrx7~1mYX+3Oao7^cR zx7vYua9@0Gz0FoXH~wNO^w zQ5g#@{}RU*Se`%NORPAjJ%=Ti5uygX2OWPrh7Ma0oQ0JWvNlf;TY^CKu~>J=WDKUG z^+)GCp)PfwUR`TbY1~cW2VEAJ5V452b$(-XVQZBt^Bz-cEqa3s8mK?mQR}j}M(!X! zj^Lk{(J$$_{%i+PMz%4;AxvX6S;kdau^;p&m`(OWd_!_n{Qmc?jpUKIRd!Zn{t(M~ z9yVtE6R~)jyC62^Tolwd4Xze_!?T0w3LPV8dH;P;`@VQhEH;9$A3a0!jN}Vsehq;q z$pyZc(@U?&A{~9zx|FMBWlzt_7FSAF-3N-DI9);`;26E7awVXCS!iEyqn=vW^sW`Rc%cr!~u z#-huHHnMVu>lxYQS3&v)L_&fKfmXI&EHRf^t!3sCaj(*()ryz4T&WG&`3Dy{5gt5IZG&P?4Cy+N&o!$^!@jzpZ_^)%e=rgv(=fGSySelnXlt_ zqo3fPQ}`W4TN4WSrT{m4D*bNi-Sm$ky6fJ3mmSNTDUAo|bWh<~AFX9HGsqUr*$hzU zAmK;`LvAj0Rhm?$61G~UF)1?-unnFXvo>?DN@ZZ1^=7Na=q+U@HAWQ-3Ae{qsn3X- z5|u&LE#bR(2EGgMhKm+BTzd!i?HkC}Bq5*}VrWcL9N@@H_B$;85~TvS&v&0m!|jYg-uvEu6*TWP6H^Ysex ziwd<`@rB^!YQ0{4In-I|M;N`4of!QQG$;Y>FIr&QN53dc2 z%YxhRE0HW%whwx`gY*s?w;QrPDa<#RUNER_In#j_=8@j6%Gka|J+p_t>aY9$YImhY zrLt7IuQuvMYkzm<2f^UNWy=Ovd!y0JDYG}?cGp%}OeN1#U&ugV4**9S>EC>`Kt^I) z?&S;T={NQ4E_bBDl)Rv4ag)W;w7BO2UHRf zJA9o>nwuB3!IesMAe=S;C(KcaCnoA;pY$z@n$6K=eXCcubo=#se|O7S!8x0I(wpXn zqLr;nlWj{=o+#Rq=yS(7n7Q4HQ6#sFB9AmJmRz&DlH^=mBe&gOUh3=J+}E?IFL-F= zdP{{v&))K+mbRsrC0+J1c7@!}?a2M|kew|v?Q_naTkVJ~Y-_3w4s=vU8GJ69=I$DkwQ+ts z@eBTb1%DHGjx#0n1P38R{N35vxo}ZMxJ-Zc+3c<8#>Fv1WpgN+spPPZu4IQmU(c8a zh$uYH=xpU)q#Sv2q)DY`=|clu_uoIOQ!P3?3uPMZlPMHVWv)!ENc*D60e0B#lIcX_ zO8i4UbI3~g+n`2BS`4kaspM@d;BrXcmK2X1TD2x~C)=8yP0(ifPS}OtN%ksGC403k znS{b^9r;k)H8jMZ8+~PT0c_SIh#tekqk$yN%6B!%PO@_&DovoiOqc9mrq!t~YP*zK z0?j_rGV;#S)r={s2M2Tgv9F^YNf!)rU9g)aG+Y;~Vo*mdZ1r6RkK1&0@BJE`wdAqP z*OJefYVG!F`y;QE*mU{|{hL`m6gVTEORxiH!V?HWLB$`Z2Vw|T#1LqWPH-0qse5G0 z;!cYte&MZS*VnfCjY+kw+WTenV@a|nLru=wu5jjhw%c9jvt}yUTLw>NPL9S_vJGArG{DKtACpB*yEchOzd zyLDjT>|UR*_w0dzt-V#5kFcUTowU@hNIIR#6+{=v8Sv)=pbM8XE)axsrzB>^`3iy1 zj-=7$wXDd=nG0kov%+jXBn~^h7EN#t$(g=j)Yq}Nxp{GWRVj!g&x1SUe*9bq$aO_D z%lEplZ8=%C!d&GtCe7v*Eol;H>6QzEeVcoFHq8lYEMDix0dc#lw5pxD>hPf-KF-2h z=!f{8cOZobFt(;Zd#%Ugt#N3QY+YktlPhYiZmY>WNboVtPk~*A-$A0lXP6=f?WC#{ zwAJI$N_|ChC|T9)x15&#(T^GfC61c%wz_o4YVgKG$D_4Dd%4qPau_OV;(_kgs6XWP zdmMVF#pAE{S2b0c&?o)<2l$oSmROHzvBS(Eks=APAIDqEl-=FQty{H@>Pl^8H0@)Z z(L;x#nMbQ?-MVO&2X6)3u%zS&iKJUW#*ih(ZuQoEVOf8-~l01jLpYFaVGc4w|9 zUN(5x69fl%?^?70+18phe8?D+w4lSHR;AL4Uu-#0Qe`q#l^kf9T~bbXxL9Je|&1_Pe zOLZPA`+&nn|C|T>NVf`WNVjsel5Ul_=%Vhg9q2m${I2V6edir!X5z1YmC0oOgvUoe z8C}8W1?e!sR<4ab)YkJ<+dX%-edjx(HPgy|BH@jP=c8@Eyb^J%QBnr{kh;*RxLr#I z|NIh{&1loS1#hD7M})g??AMV6e!WU11#tx6qe5p|pN9$n@tB}h+8E9e^^ z-7CBay$HI#&8v`{U=Ap8FfKyjmRV$Ez*?jwi3dS6=Nio#QDO3WYGFnB>~^2l(_HKE zniQhOY-Dbg)m5gyI?x(+M18G;wbyyvVw33hTvt2T>WezUt%0lcWiBfmjZ)udAXk#d zVo0vW<5_KuzViaE7qf6RDF6k+EiF(}$ieP%kZ+LI{uV3`9KzP?jAkt>1{c!;F5jnu z%gfyC0pyTEcj1=0WW=_*h;;!540f-(v$nD}P-QK3Ic?gIEBnqY=@g`D^JLZ%lt}Gqan!V_*GhtlJ!8 zdox$k6~j2iN1x8}E@m>K`sCvx4vxqFkolz|nE54tW+{)8wIVkS77MqeLy-Q^=@Go; zI!RV5hDGg!K@C!Ysa?{&p4s>>qTo6Tg}63-O;uj$w3>eE@|4wg2Ig79GU7oQEUymI5_t5$?UE3VqS@yeCq z%YJqyF(g?lpZS0o3Un&!i0=&5h>2HM~bp!o*4u}|uC@Pr+HZdgRH zz93n!5F;TVXMDNHwHy7iE3~CKCMot-B({B z8Z{+L>egxu2F=7L3j>Bu>t`x4i=$$zv8 zd3-|@*Fm%fz7*C!iji6MT5~B=e|UJnPZDubM=o{gIQy=Xzp_QECFvrqAl1^eyLWWXpqJlIT9JP9Y)(( zNt9E=$2!nBWZ4s6Y4X_g6~X08%x<&BUb%5os@4|txk+K%1#X7rR2^(mo64PDUqdn# zY0xT_(TF=z33LgUe18Xo|Ch+$@i_N)kj^p0u7qv_HpRLR4w9|BV2c!!L;6TOX{>1Q zdK&%KWYSRS_nS>VZ@E4R4e4$d6ppfRvx}WM^5HyBm06`UmAgNpF@??X44=zbJ5^+T z!Tyq#Pa>KH{x>P6+{xIgWYW<*J8U+GXE*;gb%z6iVJ#xWA;%#_>#3ixqyDz}wYBrx z{LxcCQM8sfw0phnjpfpu5q7a9#80i@r+E4kN-SZ}byxBodEh2k#avILAIIXp3ci{#ne)zJ#Qz9L$ky+@R$Dvzhi zq?GUVAATr4W2tVht!=Ni$oE^kb!7%aS)Dg~|0TS}1+tDWWnf!!qk$$-rYZR3r&%et zm&?34St+-qL}L_}h^j{oZmXpXGVZ%ssprkfxILvtmBy*yK4B%seiZ)7CqMx=ylAi% zD0>Y75|ZOIjku?RFZq@vW;KPEX)196#b*~{L!YBuHMaOFOSw*UKxH$QTI=efB2$Q; z5!Hs>nI~m>!}uRCIdqniKWj_%=FHz3=CL_Sru>0QFDgV)9t>I&N8#Qem`oHC;`wyk znlN6j7 zZT~u#iZgEC25CB3`?HI+&s0(eGW-{F_-P%Gbo2>X0#MKS{223mPu5#p@`!Kq4r?7o zqeDCFEx_&H$wR(6xJjeeYc@gokzts}VL;5JI1FKmq;Q3pA}QSN;(9Xxn>35zmJ(;V z-){C8!g`mvtg5ue+*)g_)cf@nMvuR=0J3XM6)vb%m0Cl@>F~E`wPjj!7{(FG31r8) zD?84#N)@M6Rui6#J_Dp7PaN&b7U3_~$6?-wpQJ3_joD(7}*AcTxp08_8cD1bPz3V{H z^|V#de#Yk}BzufoVo6s+E(Yeci@dm#Wn(BXuZv`4T#qR?AuB_n$;NeN)-L9Ak#_GX z((dkY?OqIcd7OghsT7Qpw#G3;9_`v9g7EjtXXb)+q~5BSNZZM)F6JzaJh*vI=V8VuzQK ztYtPhu+djv9jmliJ9n*}x5-x0Z*kcvVA* z_^jL0;hEiV#YRfwD)Y3J&uWlTx-z#7?G9z^E+=Jk;U)Wkza;S}<@8{Vm62DVcvcUs z0!1==&c!^MG`mN9U0yRWj=E{ur+HhLIkbMN_7wx;+P@g^LsCrwe}QIQq_;%{6L3=8 z6po404&%*pqrk63M|eRdfkfufLTtByCnxPud`@1|r2HVzQwt4NkTZnJ8IdrXB~(rF zEte@IE+s;7T}u?O7MdmR4}2wZOxO|Rz)F$x{?yBD{o&HmaDUs&DW=8lu#yt&A468! z=gX2q$(Esn=irOBa91t)4>M1Lg`iuKlmDCWeUM#2Q7b7-mfLCoGoS3-Y?e7fv2gD} z)kFwa8<>+`wzxVKMy$hJcUoH{Qk$sM=_(Vo!LpV_G#zU6Xp`*ewheuuh09tN>Xk}g zytk%hQA>H$Q9G+P(AnUL4z#3OoU!@I40dZ^9I64!KIHpQP7ky+(&H`iPP3e2d3;t6 zX_%8|_OuZ>r^@bObESpiAL|CO18FE*<`d z%{e7a&dpAd60Nob2B<`v&x!YP_Z;etACkQiWazHbG(Avx3GY71;eiKh-{d5UbtnNT-7 z*Cz*cE-gb-0<8vFz}gJXvIzr)9wO0b}9goZc=E|^05|wh}?lj zRE|Idj0?50CxI1_oA>aq%Sm38HOw_}L@;W27$Y0)V81U9d5{gDu~fP)nl~_S zfb#FYpJ>xtySvw(DQAF$#IJ&8=~f-JV(TFnR2vtPnRwC9Hh*28FQ?W3z~ln z2FSSSVEFb-VEF1d7>;l{bdqH^13DDQy6GUgtw7>UOQY4}g&z1wk{!1rhAWL3{Npo% zHY+=(gYkQ0&QFu;$ojHEL?r!H_zKU3MeLk1KZrZx$>dtT%pe<(C&m_g4kL)?lJavr zpd_MRpdkDfIt91yd3yy^#;>9UgyflrpPxu9s%Rq!xAOKhJmx|WW+{Po;>nv3hLUm? zDflhrrydfYLlqlnAoAXTPEx3W7eHz8GOlz>JFQ{t%MLEeq+-gxl?j_Iv9fQA*?xv& zo;Flj+g8=*>M&Y#3QA#J+|pZPG}iRCq{mWNUCp*ws79%eie?LTewchU4dt0F#j;un zKGKU0V$E}*mJT!{s2?;_DLamIA)ZlaE407lH4e#(|-E6S zlcJsRe6xPcs#lDe@~SZdpNU)J-ax=*p;X_k@v1~QbFI!g1GUrxq{~%IUG=r3Y zoR~#=5hhJRCh2Ux+-Bw2G;PwbW@iKyycxPFK|tyBG=op}CvVq%|J;kD9JU zwY7`7YBCE1MHZIB92WS^bI@c_lOcK#D9I3IF_B}1k!&1pk_Z_QX|ib8hQAhszpmvQ z)g}FLAM%1ejeU-uCbwAL`Cw`rY8!Pd<0QpD16YlVMi#^5hfB34)a0R?47m<%li%N@ z?XZ6?J+Cmn`C8EB3hrpeQX=DekmCyP#EdMqdnGOp!Y*JX;dXw0haOj~Xv`ysnsZ_;i& zdQ=|uvr1K3MTFfaZ)+!A4fYi6wW>i?LBS>W&F}JFD_Df&tKrF31Vp~R*2VtH0a+q% zzWRP|S9v`Lz?*&*HU@WO#=qdQAc^BJL16QPzq?Ey$p5 zRuuZ#!!n_^Wl2|vjbh;@$?GPWqdB~un{vDg`Y(p1qM-XCSpW0*?jZ*ew-(zJ!@Rx& ze3RL@wPX!Z;8zgM*V<$%`V1L}cWHB4#m&V(-YAmfh6eR%kAR z(I@Q%u1C$`yk3iX_;Q_&b9u5h4#ECndxYH_hP<7^S#XLFB&#&Ml)r5_H_pQt=c#gl z3glN2Zf-0PTNAioq9BL3ka^;{PviS!1<*{#^~_fY+jMTm&yAO=G?vg)L?`lp{1h3K zY`n3o@SGmRE8Y}l22D`|=T|wkLDpI(sfxo+WzD~_JV??*5AiuwN431hWIb0tX(I)~ zmDuw)ZUbu}bh!m!(mmbh=75x!Y;4&mfR3mnle>c{<;6 zn1pPiMmA!=Z=7CqwnQE6GMgd2@~xQZN%fn2n5LuB?lF5t;;-4D5A2y~_zRME3bLF^ zPeKazZLY(~bRbz=N24)AI-u9-(Z44>9nL8N0{k$V&eo5b9$zRaQ{ejul$1#@&Rmz( zPh^~reM+2><}y9b_vL9xlg$U41PEVSkwbDZVgk_1^DA3n$5W8@6pZCekJY;Rx7_@b zg~V9(t1nCt3&_L$0ra7RigkjCvNtAHSSa-Rj@4X9+MaUl&6p#iGe6;#0kxj2Q4;l+znnTJw~*)KB>iEWqRFE;WqM?-tfHP@gS zMs2a%&=y*v`YKX8$nMCi4}s!@$;&UleC1FwnZ7(Ju8txmGjRIaadjeaHj*H`3cW0s z`$@V=f9jUM@|;Riv&7M3c;*?trz;yjqGu49SqB#k;xe?si@+hh0kv+ao|}-6^@3o4 zZwSG5%}4kee0mga1!YQFWh3N1zz;Z&uM`f8cT4pnCjQ!zAg|M%xdvj%mT@gu`%#8M z#MuOb@Oj1TiMX_fCrpcOJg zt|r=BIX;m2Ew4(NVxkQ_`t#8ROa+w9IE$gM-bMjmkE_1%&0JS9%T1`p(L9moC_gEU zQ$?h@9PkVmuhIsGL~F51ZO1WNC#%*Lqge{S>S#Jw_k-G(_f(Fn{K4BVsQ&SJv|g+N z2ydCjgYupqho6S;>EqU8wi+CHP~?hm&%$exs|q*fhoPL|>lJGyUf?lG{05aocr25W zn%9y?8hrqMsoorZk>3YN7rBpX0BNp|EO_{B6;39+9JJ+ghx#Bq(Z^yuPAn%qnZ-kV zp$Hy$UhZQ}ejnnavJ6Bl5w)nF8|#B2a_EE1P0rSj(35f>RCj6u9yC|wKE9jIVZjzj zYYVmiYCaAWb3yw%_@rU&d>N!#PZ*2Cc+SSDgpIl3R`|{#^Wiu|F8o1XL$7CD>Lt(b zP^C{-Uh~a(pr3ssbNM#{4?o7M^^ts_zrUdk#G?rd>Gzi4;;4Uda=HJ4Bx{WMma>JJ zH&^=qDRU1!P2)rP)Vp(QJ$Yy)wX9e^H96g<%A0-?%ra$i^uzgaii7au@jVKY#BhnD zCI)L?L=Qz{vQq4v&qt|FptP1xjSr=$O@+_DfeWU@XT;7KiQ)|iXhH5xfe+{2iTL~$ zJru(y$J=~-hA}>pu0J(C;R2InD(sdNSR+&7di{7yM2^Eh2b?J*uxK2<&_*g4QMRZ6 zjA8^43;kbGE^{Os@0>oyjF~rm7V~HRI+GOU{+xe=$6W9GR4_~%*^YlOlUQqm41+`m zDK{M%5z}RKXNz`9(U|E8avl9R4JU4@%db66ks0x-+Nj$5nN{m{byBkZx>cX?s-kt{ z{aB}tlr*ebOzHO}4XYPX=6zKtQX`j5t%-!Ha&9fQzDNyKva3E(_~GLsI8U1d((yTc z6X8_lCr644TYD|8wTrT~!}^BSxU38M^GoB6%%wVF%{{d3zNeYe48)7as^!HZ(WqQi ztf8T~kirst9V@)p)<6KN*nD}_;a`PITU(9)b=F-!`raUC#Q_Z1fY3~`}pHXSa1B^_N(2T0>z75uz zNyXhUzLo0KJuYSR&Y)5qfii8iy5|AL^cCx}5oMVk7lR(iE1wZP3hdJvQRnrX-I_Cz zXHcEEz;=c|ifa2E0nL#8I}@4}fIBS(pUHtLo7gj;=fp@gz{ELJD|t=l`7@zxJ@U<)1RhjR5$n|qC_W7u(~-Zt zI1aZ=KL(RvAoKX}%z3;}7|wwBnLn_z3gppDC|^t_X8HWN8S{A|$kP$}IGa}h?({@1 zl&P@kky}Ld!x29pUta+3On5W#??j$>G{>7tDm1PfH|DvjJW~Df{9%>&k?Q_Xt<7Tl zGYaZ%1_NYpj+~s~4}Uen|n{B}@w$fwwDsA|97)b{=^sz>xeX6RL~)p&Ara7!_a4`T?ZMomXtwgr{qNV((|j56hXLS;zq8?kv>qki7T5Y%lDh{Dk(*=4^IZp z1VVg&A}j^8I8_KjjwaIHWJF~qp$RyjwBjN(Se7*;Cr8~kWl+ z6L7pW+gAZ&=hwlF-7a{t6j(hNd6mK5h0OTc6fo=LGRuiS8D zIIq)<<0}tmdP9xbTuYMC$Uz1@Phn3q?Nv78b@n`ia!T(Bk_5=^Sgxa_{oIaa_6upV zvvg+FQ_$0Wluao`Tqi%_fMNktopL}s%%(W$K+?#iKIg-Z9M>n(W2K5+6Dj~xpOY2= z{v0}-q6~0eJ}1h}v8NEP8rSD!CpnN*o(j+3r>DSD%5)@uI`ugp>*u&WC&d$ePKxIb z(^Fw7=Rit04x>Lr-liQ(tk&Snyllv+Fpd{2rBhI#*!n8b;<@p#O-hRb*e0cnx&W}L zC^gY&grz- z+qbWX(KdR0MXV;$y`;%1uHLk1W6xQ0YhrThC|l?VxA+6epfxnO9p^ud{vLATH0f*v zjSa{1&O-fuILGK*UWMcQx!SqbZQHe>wn&-gI_-7m9}>UZe8#ev!P{KZJaPeeD_i$x z7!oyG_oq+?>Q5C>fG8X{A$b*YMBZmeu`jg8V|WE)fGG686jGa_(i6!F-lyEh+<6n@ zD>Y(|o>Zv7#?O?@mdO0LST0#Mi!74#8bo)I1hUMpC;G~ye3h{n3HAU^nh#Zg;S|{% z3kxuxB)3B}j1P@~qEdbj<&%Aie5k_loIc~jQ2^w0SucCW1FMi~rC~jwT4`9r;NhL7 zS{gY^rmL8CDa3T~s%hB*etZuv_Om~p-Os*&dj45)5}<)qq{?Gw?1DDAQWD#{kCkrfe1n*jUJq zkj}qCR2m_CZnIKH+*&I`W0HL)`&aRN_N)h9yN(PIs5Dq7DUC-u?SV1}CfH={#cZ-H z3}gAW$g`VZLrgxAy7op=7Y?}CG0YOt_{^ZhWDVx^NAhtiCt$s>BwweUPdXjf>yz%(sQbgL$?u;dGWj`EZnrg&E{ci=;JD z{ri}ZfeosM=Y#K_D`xv%JJGmQ7z>R_I@e;QK&d3)19|sZF1u_YH*@0omQB`ZBG`J_ zR_x)&xeZh7)%Q-hTe|o*e2yQRhjm5D8_F7%hvn$!O|sz#s9EMcF*dr3KP!;c@p$bS zwc_J7Td@p6m!Hvj!y@JGh!u#BQe~Fh4#@1`2htW0Ui6h`^1v9xzGW%HM)R~jSW!`> z|5vTSoiV>$)JrZ)i}20fJ&!U9#-hIIJHvT?+b-|BY$xP^%h$RVqpqw%)OYZ`HugtM`R z4I#l5CrxHPsz~(L)(#{pWA>VsK%k}C2L7h}zaK&GlXBW}+fN)8Qlk2?&%~Q~yVCe| zvbQ(1L=b%+xhorB<9x>J-eUfa?Q-I~Ff~X9@G5At>%fYgT`p($@S0n0=~>a@R6|$7vEd41>+pTc0k+ey_EgVt8meA^k7mtxMOUrp{TS< zes-zkTafKx;8IoQ%`R4}^ZPuZ-01(fF`hD3eotlrai2k@$5FZmoZjl{jLZf#(N9pt zcswsCc7yh1l*`2|`8{{xbU8W>#&5BW2jS$KGRHmM7|$HR$-{l<`QBX5M>0?I{`wP@ zHPOFi9)>UKY1W;&{*Nw~P3A&$#`zpa(D4idnaP2Dko$%#!8?h$f7Z7s6>WPu#ku(} zi~2r%yR9YjJ^HD%57G@jrnB)T&B5h{L6Osv{}b#zSq`ooPKK=vpPT4I-B}H{y;~U_ zJIZA5IQOcAUyNo((r^7No%!8zZEYx2tL@MabaxNv&lTs7{7uxr2%i^ly8}r6q@)Vq z-9LId`xtm*6=uAc9@t8D970Z$-;jMAi*875h{izJKUEsRYRTzgcls+(jpuBky-M!%ugzfV|>WBs3p zsGlwKptM&lb3;BO0vAcH{=aZmJC~oJ5tj?(L&8DI*m0YaoH?lp{`p|^v*HVUp7Wis zD31*GruyLUhheU}aEM8k<%2bHk$}0Ll9U=p5$j&WY2Kb{a857j2|-WC&kjb^h^;xX{nfB#%|1(#E_r6s@7FlklJaml7RPkc-`}ooD$}VQ;lOWy-rcNqhN|BEa9OX)7V@!;Dtk>weW)*4 z6|)4A)fI`bE7mvYj|VKVHLE?z#(-8S(G)qk9*kuWYadQzB(;Jc14ya_&!DG`ZZxb^ zm5RNs)N1sq|1t(D9d5lMrP6A&ia%TZRn9WKDE^bmWYv#6A1Jq$Rp`X?M{YFZC?v6^ z&gZPG)QsFn_+l*vItOG1J$lhK_N+-#Y0CaHPmGgP(}6QifN>d-+xsxd&WB>V z9ww8voVJ8;3bdsREna8I#m@%kG!Fh!W3t-y&Y6 z?hN}ey_44YVqV^HT4&#?q{H64qIXQ+tQ{I27#JR^#f~aT@0jLnc4^%QP8!f8yXudv z^SPCs=!e?Wpx+C4wh}&H_?nnwOpD?xyX4kES(dSCC1Or$S=gZT=G4Gg8{R6{v&6mL+*T5 zq%)2w>w?=!()J+8xUt3RpWW3?eah@&%_(!VCS~(ztiCdF$H>jdBe-T{Po#wwB+#04 z`{&S>i6j`5oGu&>K&2_r7&{;*Kg#VK;=ho$j;VvFUjfbN z{S*%DNX4SiDAteM?Q&7i_!qBRYN?&k¬y9r-j2LW8$MrzVe~BDclt92I+6esg)q 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 T*iYU6irgEkzW|#=bU@? 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 TN9aFU0T#-~|1ER+>)`(bAt@iy literal 0 HcmV?d00001 diff --git a/apps/site/public/pro-racing-slant-narrow.ttf b/apps/site/public/pro-racing-slant-narrow.ttf new file mode 100644 index 0000000000000000000000000000000000000000..9f099e16e9462005a9d37e8c5f35e20657522819 GIT binary patch literal 28156 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 literal 0 HcmV?d00001 diff --git a/apps/site/public/pro-racing.regular.otf b/apps/site/public/pro-racing.regular.otf deleted file mode 100644 index ab06dcb9d458466a3fd156b1ca2fab7de5952c62..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32248 zcmeIb33wF6)<0ZBX1W`JL4^rh17Y8HR8|pW-ys26BO!Z$BxFw@gk7ZB0wEzGkcB`1 zL6(G7!j8xef~bIqh>FU+uUxNm&vei9|5x3Um7rer5ufM#s?*ce-BqVfojT{#sZ*8e z5gr~R$cqL-jD)<|zrWjr&Kc7PVFL&mDfe|BG=LC-mlH4I$_?n-ufIz@m%F&Xf%~=t zMvibl+wRI`LM9=1ecJ%{F@2^dMyw=cHeM6A5$^3ezVYeucK{+3_deb;yh3}mYXX?Y zk%Uxu;_nqspT7urr*Y*1e7$_yhM2D*eP!Ig8h{7Y-78PQeP7%+4ww-U6R@pIOG3u^ z5aKdrhF44|`3#_l0r(Oo*lUJw$ID}T;2!u@hzkt~k5F5ZWYlLM-n&Hso@3(+p8-EN z+&7K_JUQPb4EKO<$fq@>=jO^|_Pt%T$1kKRhX;gwHUEAS=XHq6J8o8K$*jUXLn_dx z2*|^%a@;h;RS8gebx@U-8YKOl{);k!Cw_^E2{5c8CPdOqoshMYesxJBeidE@)&N@+ zT#90d3>@m_W;jmV8u}WqIzArv^2DJ#$O7KoU&+$u`_KC+^ytU=ohfB8d;)g^(5~+l_Q2?QwR};=Rdq95jC*at0u6 zxOV4@t1lo#;nxRmeepIDDZTKlyfV9yv0D0Yt(;)M=m7ZbaXjmJcQPCpQTQ{+R4p&X ztOIFX0>kd4KhgvPt2a@uFG`QVeV7KF!hc08qb>4vMt$1jc_+l%0A3(c>Ufr<%rMj; z08nP&^g-(JxDN+BT810xgItsvUP$ACGf<<2pA!Q&5{);MI^IRNP};a@Fm%eh{R+O6 z-V{SWt-KkC4MYi)=55GOl;Mv%Z=~@?d^6u@vx9i^f_jcY(xwnFlFAv{6akt=Zm`)R#QVad@ zI~eCs?WC$~EKX=7vVu?@vx=<7Z+T&1iH8Q%b}CwF2HI&Rsy_K+K(S3cQC_Je8%Nf0?i){s21 zo*X7=XqzLXfE*>q$q8^j^su3X!YYANsi>iXi_yfeT*VhERjy*L`r=D3SF3Jutx>a9 z?K*tjdiC8Jv}oC?b(^;B+IQ&Ksq-tZzSgB{x9&Z9zTWGN-hCQ2YTTr0vp3Q83>Y|Q z@Q|UyhL0FIYP7q@n6Yn-8$V&|YYO`CJJ|NcP@YUfNA~1ToA`ShXha!?PDI zest~zIh6Xb-&OQSgq*)b<}8kXXW_d`g(WLilI3fYlY(^sar(untJP+-zj-s5Pei^FSV0yt^!>w7{*Iw^8)O~_?NW_-i(*wi2{KC9~ zz57Lmh4_bgMfrM%%$Vxs9T}lTB7+0lcWU2Jzq}a{INhhj=47_hZ7v=(E#Dsp31!Go3S5}EsCRM=JRbeW;1jSJe zU6h5mk{YBYsYPm&I#4ZjNj*{@qThh@AU(0SQtQ}Ne2d&fT45j@ld5v@-T}e069ZL62(wFpu;v4{lI0ynd1Ohq?ox=zy@KI1; z?oh^KfbLsl92E8hsGCV-GVvsDLzzJo4euD17~X|&tR)-Jfu=zX`9bU!KrpvMDFs11 zvmlDeBnL`w5t#+Sdk+G*8zQ)iEQJ8>g8=411P?hy@Gu093f?h@9u?!$5WbV-6gfja zBxfOt7syBC9Jxf!lZz1W%j9Dy(5vJcxk;`=m_H$(lG`voJ|}m`Er@aw`HI|yg1txX zlds7a8_Ph;1y{3c zn(Koa)oM(wkzM1%nvH8ttNBZRal+TYtY>OShl~EgLLp@J+)(4c}|juaRG)xs6sf7MjE~$!qesX<*a;Yv$T4 zsM+J@^_tIaeyK&h7PDHmYMIcgQ>*!{4XuZ?UfcRnn{I7F+T^tPrfuD}XWGTJZ`b~( zj>e7!ojg1JyYq<7yI-mI%7RypykdQ|`>Q{_7WJCaWqH@Iu1dFWx^L;h_t?|3f6wn; zpZj{=>)-Zj(reNi)!*3NduZ?f_W8dzSN84DSME2u-?sjh`}_BQFu-?Um4U+tdJl{l zm^$$Aptgg04jMYhchDDuUl?3#aLd8d2QM1Daq!i__8~2Y3>q?SNaT>jA)ANf54k<` z#i8AX1}KWz{$I1BgY=85cuJWppJJuS(wi3RK4r3fA8S@_N^PvUmVMGFlhTUWr;IY$ zc-Q^KcV^LpXE;}}K#Udr448q}CSt_9L$q`xT_u+l0c z(o7R?GG?*6E!sNCB3Bj%h?Nxjc_YoEJFhWx2m1 z%3~x^UMhAHmx`6;rHnMhi0u7o*$d?UmhNKz+f0U#zA!C5b@u8wA)1@U3egMW;^Sw} zj$0UwveP8i(w&JG;#S9}%}!mIE@W`;u|nqR^t80p)b!OE0(YA+TWj-N$EB7$VQ1=A zgw&lv9w)}ILVo2`P(Gg>>#NE38jUO-V^kNli=_IB^`4E~G9>Nk~pej2C8cU05M*QT*J5 zgoOA-aRTS~NIL37BG-vTEGy*2?+igHrH}~LknrYYyf1@9r$QtWP)s2b=@f~SZ@g+!dNTH}dAYsGEDhn=F7i-|+)f;7`j)vUoXR+ycQ`Nm z1K~6$byq^=eXJ1iZsa>Li=*eviki#WJ6d;|Y>h>K-j>U}EdNes zPv^jdD@}4MX0YHMF$p2UT^Pj4t5{)Bw)^2phbNtixF~SeHH_F!9%_>BN%bwV4>LuW zwkmpURMMPvi`Fk%za(AQ$US0(oW!i;jmaBxQt}fyGcQL;t&0U=KLo+-7-{Vz*RhQF z!BaHO5H0wdE!Gyq`hr+DO{}v`tcAaWVx_acaA-ZbZqFue{be41fpQ~3Zi&C0a-*v< ze^svg*iEe4lQTQq#b5vw>wf;9Cs)O~S44iN*hmmt;xABaG(hD0i+tlJa^254`7P#b zgM)IVZE`LArOCV?*A?XYv*p?|WXp8f;wig~Yz=_pq#@R(7O|hm$hAd_7h%Hm>K7I(`T@@`p{ z7mKpIn>9O*O73X0M`$wW3{Ux#IG=3^dYbJXwvN(pi~Fa&oJ&8oaVq_saG8_lvBH(Ob3vzq zPI(^m*x|loSo%PLq=loi6khtcmuC(MdYh)xJxG(q6xu~2B=IjS&bX)4b?aHVXyKs?49SF+&b zO@|S(PYD+}aS1D2j5rPcJM5l47&usyWPjddVYUjJ5;7w)Bi7Cog1N4&5IiqD3L$)6 zFcR5*wEF^b8=g7f3UJv@aF;l-87rKQJ?g*TZ~x?6kCc<^4(0CNzia=70^tlN*8A0> zGD;Q|U09T3sO)bWO0k)j8I=*WHXPV=qu9)hj);l~PtdWE{eewSp7lgM#o>^&;nt%{ zsQsw@Lsq(KJ!(=mGs+eFQPWadw>P!a(|ATIgZn$Ia4F(cF)8Gk;&I*-57J4wc0b-! z9cbi~henu=#v={zY@V%92Jope6_>-rI*hP&?WWAkjLe+1TR~A%H56k_F4hjCg~6PC zacS*fJ0$vB>{FRwA#80l$T2TR*vg5ktryr*^pU}Z!SlkRK}4;&%;HTO<7(S(OEhV9 z0TGOL*0J4@2rW02Xa3LilGcWYC`*)RL;s>S+*PIxCu{67h;qV$(kRPlO@0zk} z%At^xb376zhxkwNpAtJx7|qFGj*`mGc9>Sj8`TL3};x-f25jMBr;EY>LLJ$r@63QIbwIy}QQw^Xor@fE7pE27+zTzNxtc41}b#|06 zK4WU$)V)z32q!sfKWO005AyT!_ZDQF0aW8v=8RAfo$r(HojFnP;N*?0Fn{TSrSrMv za!*DGTo67xepY<+g0LlFOG4ib6}ZJxD@HgPyFXx;|NB!mjEB)7%57{MvmSOyvThR0 z;-=VB+3~`Z*nj|k|JW(Qcuszi6~=FvvMbjAKA5!wVf|6z z3MXYjmCq`r$_LP@bDAoL4lk+7?dhdd`6*qM^Tr%$mqj_r%n=e+&tFGvNmx+H2&swd zVP$P+%=VA0F|_}M4Pm<=t`z<4&3RiR)-2E9O}$+0UpV_N>la$zxT1C#Gb$$n33fpOcMO&c!$2t z*=swZP2w&_3>F`lY_Ma4Pw_6%zH7}k!fM6VM(DYLRW+=3lTy&$6S^-MM29r+KN|gZA*6} z4N7ZCX_FDDc9l)lN9+2E`XjRx$8*)S?(`<>lxkh?NHEN{uFc7WPS-RSZ)!=kZChr0 zOjcA{L~3|a*ov7eW-bpC!Z>?IX$4}ozQD7QrK|sx7Lu+46sj1GDu$top?Vb;7FMy1 z^{A~)X>F+hCudKfYdi54&rYG(%T2@&d1D@p4HFOX#@iIvZ`dLl&Rh{vOhdC+V6E*c z1@Ok5G=sbNgEPZ}XJxQf;JHv&>kuA;A9w2_`H44uv$&ZyLDHEY!H}R~O z-Zr*G3@tp#6ko>r9tR=ID#tvs;aHrXqdUx4Um>&9AJIJ%j{B*xmp*30DR z#hRr_JiD8Mko_HrtYbM01AC|P{R6`nkW?6u#UFMe=Jgc-uSqTK`fW){0lY9(=8$Wz%!rAkrp{Z zj5LX{%J9`IfA|pn~k){RGK#Oc)7DkvJdTn+w8&sLOUHTEx3s8Z;{TJ9JZz|XUXH#K*)C0f@|$W3H_YZ9cxEIs78o|?SP zbTltgr@HNutr>Pjrns#+^u_+r+-WHR$^MA}LLg^<->K*iVSImynwx>VX@sj)>n7#* z8G9>7qP->LPswNSkop~XQxCr4cvnfKJ*k|@DAA5FN|en*$z3MalvCyZ+D9tUwlOAU z3xhPsA!Re-6RU^##O?th_24;gSNn0RyLFhf*`!z)WtLJ!86Z_L**h>+KfB4kRr%Q@ zSs3XibWfJ1csBFKo34@boe+zzg=EX@^mg1W+NUZMxp2u?Rvn&!s3%L*AK+*sDmXtkX@)6Mm~aJ<+T zCxw(oz%dohz7tfxl~m-R)IM0m+U#06(gy&hdDRLrR4`hhZnfD?x0+cT3~_fAJsh8~ zrI3=4u%vU%_6a)GP0{|cG}?DS?_HGznO}`QP$E(SHjC` zn>w8-MlcHFfrqjO!y7kB@lSDFxfDIfv-Jwu{Ov-Q@2_#0G}$`K+L#m$A?)s_CK~32Z&OQ!C%#YUA#mU7O-u78(g4hxYGgCWQ zx8W$C+oMag2r4YwQDL*#kZ0?-DhH+Y(mPUTll+iT!jvZPJz9r9OI+X||6a^wMMeG| zmrHo=%VjDLDvwP|>#L`@r|EC$m{jQz zxLho-O@(m&icX_UUQQhy^Ptc)HvT;dZ5_|pP?~KKD{NT~A%Ylfh8S(i&fHGLi1`gM z@`4#6#T#KdMrm^m@w$?BRys8;6-p=*E}Tw`S!Sdks0yeAX}3)(Yg211Itk4=fHyfx zw?px~iq^D_T7?8In%5|)?`+p8{53^*YnroBS*=y>>`9@Tcj%(w&NKI^(wxHTb(`(1 z+f3VbJl#$^lrjoi_NKZ@SzA<^){U9PEj(M%)jH`Z5<^odC+xGzc5&7Yil-e4wB)pq zS?tK0c7ZT-!s&oM;ba|yX|N8ZyC~Vt$YJR9=Vva+T9~yU>zzy?Q+Pi$H#dt@jxbUk zM|YSP#;ck@J`*A3ptCuhRR%&&6{Lg|HiJ$UElpXZ5An<~SLHism%Y#~ijk3jgtPvv zm|?QN#7G}1bCt`=2$Mt@=><%>J)}+q+L<@gw7iq`H7yVSPL7j3x1>@npS|Omw3}R( zb~dk)${y2Wj_)&R8oIC>!ZcPwlrDlC~=3Mb;@Ge%>2uf6R5n8}4}9aW2lYaNpsz<+c` zQPDs=iXtAZA&z$;^TMMM!smqu94urwrYc$6O06w7gmasZ9y@w;^Eu%L_aC`BD~yW_ zcsnX;e&pf^AykN59lI`eU0hn+hS_PeQsdHM(;`#C)`lfbTjeM85r)kiH;x8yt%8h*KJsrzJ6V1QpTFhm03dW((FYW=WLjhK5Kn!>g@IL>GA2aGZS*==gi-} zcn>Ae8fmAsaza=JYF>N%)Zjlb->S4z{yjDw8f-3HM=AsGq|#9UCc&jdW>h^)ciu9vLCG5yLJ2iZTr)Xf+cQS^Th%7eE4RC?6sL0 z=^5#p)@Yp3PpOH~+uL&kqXMw*WmdqffCc`7FDIV>Y6CDCHh~qU%?pW+h{iNWA-Tn) zJljVrRj;XvXs&bm)*f zaR3y`Q)NnC){U-WeTfkVD2zCUHy+3MNPYuzBbwL9I>^yX4gcHEQnVpfHqs<(!)L*Dif`t~28jB~v zls*_Cnw>61r;|aOnF@_6oSCvu!uTkUP8}CI$(^$+^A1M87xi99wtt#`s#ns)6%$vC zTjn9`Uj1J3*7U9Gvo@u_m%e??e&NK^eoot$%pgo4Po@*dbc)EKV1#*#kgJLllu%x7hlziHm26IKT$k;%UPJz&l;c&L7j^+G?R{sf5~xz zmpH}(>!#F73JFyxsb;BlL+zFdQlAoo2i-amyOlNi#aR0cnCvADyB(B@C#YrYq~b43 zsRCfrjNxrbuxUz+mKEeGJzACx%+lxuv*PE(&xuJ66$jgG1YR%_3$gE#Wt@?RRy?G@UB>7EL^f2Hto}JZ*WR_^`8u zgjMsB=dN9xBBXKRNmfW*m6Dvic5TY4G)!0cJVE~+B!nbHM1<1`+8|D;%3={j@TQ3D z@Z5wQNb;_H+9H~S|Kxsm>bsLSZk~L2^5K@B1w0Xrp^rTtdOYm?NxPG6Pd3Swjp(KZ zF|tW$9MaCCoqL}*JlcA+4aF)2lOP*&n;=o!8@(TTeCP2vL_}JtqBzJRpJRFmeKQ8{ z9lZCgV?LLBE=J!F?g+OsZtT6d_u{eR_}TmM##@-3KgZk>uE$*Tx#)9jED{ge*hlCl z^oZ%>GuUVFTW{gV=gsII=w4*Sx>agq`Bb>N@%-*{y9)|-5`Qv1gRV&w6E+Pu)gF$ssj1iGx^$Ua^!)JT8xskIQ3C(kbYXXTCMtw@B-) zo|bFE*_?u-1qC^0g=@m~u#YAj9bYgar!Ocwgy}1c2pd0s{J5|YLSLb8&hUcq1>??! zeT*8_7VBAFrCgU1ksXnpuvOS0>`2MYM#xP8$K7Lg2)PM(6OjUj6oL{$A`n6nf>2@Q zym-|5y+s_!3Y(L%Hg4RoAuDM!K<;NUg^df-=WwHC$%0ABC?O^>ZXG8L6W5#MQLGR) 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 diff --git a/apps/site/src/components/Home/Schedule/EventModal.tsx b/apps/site/src/components/Home/Schedule/EventModal.tsx index fb986f7e..53da9e91 100644 --- a/apps/site/src/components/Home/Schedule/EventModal.tsx +++ b/apps/site/src/components/Home/Schedule/EventModal.tsx @@ -47,14 +47,12 @@ export default function EventModal({ - {event.name.toUpperCase()} + {event.name} @@ -77,7 +75,6 @@ export default function EventModal({ fontFamily="Magistral" letterSpacing="0.5px" mt={4} - transform="scaleX(1.1)" transformOrigin={"top left"} > {event.description} diff --git a/apps/site/src/components/Home/Schedule/Schedule.tsx b/apps/site/src/components/Home/Schedule/Schedule.tsx index 8c5f935b..1d4058f7 100644 --- a/apps/site/src/components/Home/Schedule/Schedule.tsx +++ b/apps/site/src/components/Home/Schedule/Schedule.tsx @@ -411,7 +411,6 @@ function DayEvent({ fontFamily="ProRacingSlant" mb={"2px"} mt={"4px"} - transform="scaleX(0.6)" > {number} @@ -433,7 +432,6 @@ function DayEvent({ fontSize={"lg"} color="white" fontFamily={"ProRacing"} - transform="scaleX(0.6)" transformOrigin={"top left"} w="100%" > @@ -447,7 +445,6 @@ function DayEvent({ fontWeight="bold" fontFamily="Magistral" letterSpacing="0.5px" - transform="scaleX(1.1)" transformOrigin={"top left"} mr={3} > @@ -461,7 +458,6 @@ function DayEvent({ fontFamily="Magistral" letterSpacing="0.5px" whiteSpace={"nowrap"} - transform="scaleX(1.1)" transformOrigin={"top left"} > {moment(event.startTime).format("h:mma")} –{" "} diff --git a/apps/site/src/components/Home/Schedule/ScheduleDaySelector.tsx b/apps/site/src/components/Home/Schedule/ScheduleDaySelector.tsx index 19d7fd17..fa72caae 100644 --- a/apps/site/src/components/Home/Schedule/ScheduleDaySelector.tsx +++ b/apps/site/src/components/Home/Schedule/ScheduleDaySelector.tsx @@ -76,7 +76,6 @@ function ScheduleDayButton({ fontSize="lg" textColor={selected ? "black" : "white"} transition="all 0.2s, transform 0.2s" - transform="scaleX(0.7)" transformOrigin="center left" > {date.toUpperCase()} diff --git a/apps/site/src/index.css b/apps/site/src/index.css index 4aa1b843..93576687 100644 --- a/apps/site/src/index.css +++ b/apps/site/src/index.css @@ -5,7 +5,7 @@ @font-face { font-family: "Magistral"; - src: url("/magistral.ttf") format("truetype"); + src: url("/magistral-wide.ttf") format("truetype"); font-weight: 400; font-style: normal; font-display: swap; @@ -13,7 +13,7 @@ @font-face { font-family: "ProRacingSlant"; - src: url("/pro-racing.slant.otf") format("opentype"); + src: url("/pro-racing-slant-narrow.ttf") format("truetype"); font-weight: 400; font-style: normal; font-display: swap; @@ -21,7 +21,7 @@ @font-face { font-family: "ProRacing"; - src: url("/pro-racing.regular.otf") format("opentype"); + src: url("/pro-racing-narrow.ttf") format("truetype"); font-weight: 400; font-style: normal; font-display: swap; diff --git a/package.json b/package.json index 63c1691d..eb1aabee 100644 --- a/package.json +++ b/package.json @@ -44,5 +44,8 @@ "husky": "^9.1.7", "lint-staged": "^15.5.0" }, - "packageManager": "yarn@4.9.1" + "packageManager": "yarn@4.9.1", + "dependencies": { + "fonteditor-core": "^2.6.1" + } } diff --git a/yarn.lock b/yarn.lock index 465b13c2..1c63d8a3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1779,6 +1779,13 @@ __metadata: languageName: node linkType: hard +"@xmldom/xmldom@npm:^0.8.3": + version: 0.8.10 + resolution: "@xmldom/xmldom@npm:0.8.10" + checksum: 10c0/c7647c442502720182b0d65b17d45d2d95317c1c8c497626fe524bda79b4fb768a9aa4fae2da919f308e7abcff7d67c058b102a9d641097e9a57f0b80187851f + languageName: node + linkType: hard + "@yudiel/react-qr-scanner@npm:^2.2.1": version: 2.2.1 resolution: "@yudiel/react-qr-scanner@npm:2.2.1" @@ -2884,6 +2891,15 @@ __metadata: languageName: node linkType: hard +"fonteditor-core@npm:^2.6.1": + version: 2.6.1 + resolution: "fonteditor-core@npm:2.6.1" + dependencies: + "@xmldom/xmldom": "npm:^0.8.3" + checksum: 10c0/92147277bc124794aaa34fda9c70b82acf29b49bfbb82ad375189119415797cf63ae223144b430e6a230f1112f7f4e2768b9032066dcb40077354ef9b0080c17 + languageName: node + linkType: hard + "foreground-child@npm:^3.1.0": version: 3.3.1 resolution: "foreground-child@npm:3.3.1" @@ -4503,6 +4519,7 @@ __metadata: version: 0.0.0-use.local resolution: "rp-web@workspace:." dependencies: + fonteditor-core: "npm:^2.6.1" husky: "npm:^9.1.7" lint-staged: "npm:^15.5.0" languageName: unknown From 2beeabdf633d8c05983a8be2a47ee446b729a6f8 Mon Sep 17 00:00:00 2001 From: miguelaenlle Date: Mon, 28 Jul 2025 18:20:11 -0500 Subject: [PATCH 13/20] Updated tracks --- .../components/Home/Schedule/RaceTrack.tsx | 220 +++++++++--------- .../src/components/Home/Schedule/Schedule.tsx | 69 ++++-- .../Home/Schedule/ScheduleDaySelector.tsx | 2 +- apps/site/src/constants/track-paths.ts | 44 ++++ 4 files changed, 205 insertions(+), 130 deletions(-) create mode 100644 apps/site/src/constants/track-paths.ts diff --git a/apps/site/src/components/Home/Schedule/RaceTrack.tsx b/apps/site/src/components/Home/Schedule/RaceTrack.tsx index 29b116c7..c02501a0 100644 --- a/apps/site/src/components/Home/Schedule/RaceTrack.tsx +++ b/apps/site/src/components/Home/Schedule/RaceTrack.tsx @@ -1,48 +1,51 @@ +import { TRACK_PATHS, TrackLocation } from "@/constants/track-paths"; import { Box, Text, Tooltip } from "@chakra-ui/react"; import { Event } from "@rp/shared"; -import { useMemo } from "react"; - -type RaceTrackLocation = { - x: number; - y: number; - order: number; -}; - -const locations: RaceTrackLocation[] = [ - { x: 165, y: 0, order: 1 }, - { x: 945, y: 190, order: 5 }, - { x: 100, y: 510, order: 10 }, - { x: 550, y: 275, order: 8 }, - { x: 560, y: 15, order: 3 }, - - { x: 320, y: 450, order: 9 }, - { x: 50, y: 180, order: 12 }, - { x: 805, y: 425, order: 7 }, - { x: 15, y: 340, order: 11 }, - { x: 780, y: 45, order: 4 }, - - { x: 390, y: -10, order: 2 }, - { x: 940, y: 370, order: 6 } -]; +import { useEffect, useMemo, useRef, useState } from "react"; export function RaceTrack({ + selectedDayIndex, dayEvents, colors, hoveredIndex, onHover, onClick }: { + selectedDayIndex: number; dayEvents: Event[]; colors: string[]; hoveredIndex: number | null; onHover?: (index: number) => void; onClick: (event: Event) => void; }) { - const selectedLocations = useMemo(() => { - return locations.slice(0, dayEvents.length).sort((a, b) => { - return a.order - b.order; - }); - }, [dayEvents.length]); + const pathRef = useRef(null); + + const trackPath = useMemo(() => { + return TRACK_PATHS[(selectedDayIndex - 1) % TRACK_PATHS.length]; + }, [selectedDayIndex]); + + const [selectedLocations, setSelectedLocations] = useState( + [] + ); + + useEffect(() => { + if (!pathRef?.current) return; + + const pathEl = pathRef.current; + const totalLen = pathEl.getTotalLength(); + const numLocations = dayEvents.length; // Ensure at least one location + if (numLocations === 0) return; + + const locations: TrackLocation[] = []; + for (let i = 0; i < numLocations; i++) { + const t = i / numLocations; + const { x, y } = pathEl.getPointAtLength(t * totalLen); + locations.push({ x, y, order: i }); + } + + setSelectedLocations(locations); + }, [pathRef.current, trackPath.path, dayEvents.length]); + return ( - - {selectedLocations.map((location, index) => { - const hovered = hoveredIndex ? hoveredIndex - 1 === index : false; + + {selectedLocations && + selectedLocations.map((location, index) => { + const hovered = hoveredIndex ? hoveredIndex - 1 === index : false; - return ( - - ); - })} + return ( + + ); + })} ); @@ -99,7 +105,7 @@ function RaceTrackLocation({ }: { index: number; color: string; - location: RaceTrackLocation; + location: TrackLocation; hovered: boolean; dayEvent: Event; onClick: (event: Event) => void; @@ -108,83 +114,75 @@ function RaceTrackLocation({ return ( onClick(dayEvent)} > - - onHover && onHover(index + 1)} - onMouseLeave={() => onHover && onHover(-1)} + - onHover && onHover(index + 1)} + onMouseLeave={() => onHover && onHover(-1)} > - {index + 1} - - - + + {index + 1} + +
+ +
); } -function RaceTrackPath() { +function RaceTrackPath({ + path, + pathRef +}: { + path: string; + pathRef?: React.Ref; +}) { return ( ); } diff --git a/apps/site/src/components/Home/Schedule/Schedule.tsx b/apps/site/src/components/Home/Schedule/Schedule.tsx index 1d4058f7..53e0e95d 100644 --- a/apps/site/src/components/Home/Schedule/Schedule.tsx +++ b/apps/site/src/components/Home/Schedule/Schedule.tsx @@ -112,12 +112,22 @@ export default function Schedule() { <> @@ -221,7 +232,7 @@ function DayEventsSection({ shadow={"md"} boxShadow="md" > - + {dayEvents.length === 0 && ( void; @@ -261,18 +274,18 @@ function RaceTrackSection({ }) { return ( @@ -301,6 +314,7 @@ function RaceTrackSection({ hoveredIndex={hoveredEventIndex} onHover={handleHover} onClick={handleSelectEvent} + selectedDayIndex={selectedDayIndex} /> @@ -365,19 +379,20 @@ function DayEvent({ }) { return ( - + {event.location} @@ -457,13 +488,15 @@ function DayEvent({ fontWeight="bold" fontFamily="Magistral" letterSpacing="0.5px" - whiteSpace={"nowrap"} transformOrigin={"top left"} + whiteSpace={{ + md: "nowrap" + }} > {moment(event.startTime).format("h:mma")} –{" "} {moment(event.endTime).format("h:mma")} - + Date: Mon, 28 Jul 2025 18:47:02 -0500 Subject: [PATCH 14/20] Add assets --- apps/site/public/schedule-mobile.svg | 66 +++++++++++++++++++ .../src/components/Home/Schedule/Schedule.tsx | 6 +- apps/site/tsconfig.json | 2 +- 3 files changed, 70 insertions(+), 4 deletions(-) create mode 100644 apps/site/public/schedule-mobile.svg diff --git a/apps/site/public/schedule-mobile.svg b/apps/site/public/schedule-mobile.svg new file mode 100644 index 00000000..f8c53bf1 --- /dev/null +++ b/apps/site/public/schedule-mobile.svg @@ -0,0 +1,66 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/site/src/components/Home/Schedule/Schedule.tsx b/apps/site/src/components/Home/Schedule/Schedule.tsx index 53e0e95d..8259408a 100644 --- a/apps/site/src/components/Home/Schedule/Schedule.tsx +++ b/apps/site/src/components/Home/Schedule/Schedule.tsx @@ -113,7 +113,7 @@ export default function Schedule() { - + {dayEvents.length === 0 && ( Date: Mon, 28 Jul 2025 19:43:42 -0500 Subject: [PATCH 15/20] WIP --- apps/site/src/routes/Speakers/Speakers.tsx | 231 +++++++++++++++++++++ apps/site/src/util/api.ts | 3 +- 2 files changed, 232 insertions(+), 2 deletions(-) create mode 100644 apps/site/src/routes/Speakers/Speakers.tsx diff --git a/apps/site/src/routes/Speakers/Speakers.tsx b/apps/site/src/routes/Speakers/Speakers.tsx new file mode 100644 index 00000000..7efd6891 --- /dev/null +++ b/apps/site/src/routes/Speakers/Speakers.tsx @@ -0,0 +1,231 @@ +import { Box, HStack, Text, VStack } from "@chakra-ui/react"; + +type Speaker = { + name: string; + company: string; + description: string; +}; + +type SpeakerRow = { + speakers: Speaker[]; + color: string; +}; + +function SpeakerCard({ row }: { row: SpeakerRow }) { + return ( + + + {row.speakers.map((speaker) => ( + + {speaker.name} + + ))} + + + + + + + + {row.speakers.map((speaker) => ( + + {speaker.company} + + ))} + + + ); +} + +// Now we have six rows (as in your design), each with up to three speakers +// Colors go in the order: blue, red, orange, teal, pink, green +const SPEAKER_DATA: SpeakerRow[] = [ + { + speakers: [ + { + name: "Sundar Pichai", + company: "Google / Alphabet", + description: + "Sundar Pichai is the CEO of Google and Alphabet. He has steered Google’s shift to an AI‑first strategy and overseen the growth of Google Cloud." + }, + { + name: "Satya Nadella", + company: "Microsoft", + description: + "Satya Nadella is the CEO of Microsoft. Under his leadership, Azure has become a top‑three cloud provider and Microsoft acquired LinkedIn and GitHub." + }, + { + name: "Tim Cook", + company: "Apple", + description: + "Tim Cook is the CEO of Apple. He has expanded Apple’s Services business to surpass hardware revenue and championed the company’s environmental initiatives." + } + ], + color: "#007bff" // blue + }, + { + speakers: [ + { + name: "Andy Jassy", + company: "Amazon", + description: + "Andy Jassy is the CEO of Amazon (and former CEO of AWS). He built AWS into the leading cloud platform and now drives Amazon’s e‑commerce and logistics strategy." + }, + { + name: "Mark Zuckerberg", + company: "Meta", + description: + "Mark Zuckerberg is the CEO of Meta. He spearheaded acquisitions of Instagram and WhatsApp and is investing heavily in the metaverse and AR/VR." + }, + { + name: "Elon Musk", + company: "Tesla & SpaceX", + description: + "Elon Musk is the CEO of Tesla and SpaceX. He revolutionized electric vehicles and reusable rocketry, and also founded Neuralink and The Boring Company." + } + ], + color: "#e74c3c" // red + }, + { + speakers: [ + { + name: "Jensen Huang", + company: "NVIDIA", + description: + "Jensen Huang is the CEO of NVIDIA. He pioneered GPU architectures for gaming and AI, making NVIDIA the standard for deep learning." + }, + { + name: "Lisa Su", + company: "AMD", + description: + "Lisa Su is the CEO of AMD. She led AMD’s renaissance with high‑performance Ryzen and EPYC processors, challenging Intel’s dominance." + }, + { + name: "Arvind Krishna", + company: "IBM", + description: + "Arvind Krishna is the CEO of IBM. He spearheaded the acquisition of Red Hat to bolster IBM’s hybrid cloud and AI offerings." + } + ], + color: "#f39c12" // orange + }, + { + speakers: [ + { + name: "Werner Vogels", + company: "Amazon (CTO)", + description: + "Werner Vogels is the CTO of Amazon. He architected AWS into the leading cloud infrastructure platform and advocates best practices in scalable system design." + }, + { + name: "Parisa Tabriz", + company: "Google (CTO, Chrome Security)", + description: + "Parisa Tabriz is the CTO of Chrome Security at Google. Known as Google’s “Security Princess,” she has fortified browser security and privacy features." + }, + { + name: "Mike Schroepfer", + company: "Meta (former CTO)", + description: + "Mike Schroepfer was CTO of Meta from 2013 to 2022. He drove the development of React and advanced Meta’s AI and infrastructure strategy." + } + ], + color: "#1abc9c" // teal + }, + { + speakers: [ + { + name: "Susan Wojcicki", + company: "YouTube", + description: + "Susan Wojcicki is the former CEO of YouTube. She scaled YouTube into the world’s largest video platform and introduced monetization tools for creators." + }, + { + name: "Reed Hastings", + company: "Netflix", + description: + "Reed Hastings is the co‑CEO of Netflix. He transformed the company from DVD rentals to global streaming and pioneered binge‑watching with original content." + }, + { + name: "Evan Spiegel", + company: "Snap Inc.", + description: + "Evan Spiegel is the CEO of Snap Inc. He innovated ephemeral messaging and AR lenses, and took Snap public in 2017." + } + ], + color: "#e84393" // pink + }, + { + speakers: [ + { + name: "Safra Catz", + company: "Oracle", + description: + "Safra Catz is the CEO of Oracle. She managed Oracle’s shift to cloud computing and led major acquisitions like NetSuite." + }, + { + name: "Marc Benioff", + company: "Salesforce", + description: + "Marc Benioff is the CEO of Salesforce. He built it into the leading CRM platform and is a pioneer of corporate philanthropy." + }, + { + name: "Dara Khosrowshahi", + company: "Uber", + description: + "Dara Khosrowshahi is the CEO of Uber. He steered Uber through its IPO and expanded the business into food delivery and freight." + } + ], + color: "#2ecc71" // green + } +]; +export default function Speakers() { + return ( + + + Speakers + + + 2025 + +
+ {SPEAKER_DATA.map((row) => ( + + ))} +
+ ); +} diff --git a/apps/site/src/util/api.ts b/apps/site/src/util/api.ts index 4c0967d5..1379b530 100644 --- a/apps/site/src/util/api.ts +++ b/apps/site/src/util/api.ts @@ -1,5 +1,4 @@ -import { Config } from "@/config"; -import { createApi } from "@rp/shared"; +import { Config, createApi } from "@rp/shared"; const api = createApi(Config.API_BASE_URL); From 611b7efeabe87cec7bdf5d02a3e4551a9699caf8 Mon Sep 17 00:00:00 2001 From: miguelaenlle Date: Thu, 31 Jul 2025 22:10:37 -0500 Subject: [PATCH 16/20] Added finishline --- apps/site/public/finish-line.svg | 8 +++ .../components/Home/Schedule/RaceTrack.tsx | 63 +++++++++++++++++++ 2 files changed, 71 insertions(+) create mode 100644 apps/site/public/finish-line.svg diff --git a/apps/site/public/finish-line.svg b/apps/site/public/finish-line.svg new file mode 100644 index 00000000..d1afe428 --- /dev/null +++ b/apps/site/public/finish-line.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/apps/site/src/components/Home/Schedule/RaceTrack.tsx b/apps/site/src/components/Home/Schedule/RaceTrack.tsx index c02501a0..a0672f89 100644 --- a/apps/site/src/components/Home/Schedule/RaceTrack.tsx +++ b/apps/site/src/components/Home/Schedule/RaceTrack.tsx @@ -28,6 +28,10 @@ export function RaceTrack({ [] ); + const [finishLineLocation, setFinishLineLocation] = + useState(null); + const [finishLineAngle, setFinishLineAngle] = useState(null); + useEffect(() => { if (!pathRef?.current) return; @@ -40,6 +44,22 @@ export function RaceTrack({ for (let i = 0; i < numLocations; i++) { const t = i / numLocations; const { x, y } = pathEl.getPointAtLength(t * totalLen); + if (i === numLocations - 1) { + const t_final = (i + 0.5) / numLocations; + const { x: finalX, y: finalY } = pathEl.getPointAtLength( + t_final * totalLen + ); + + const epsilon = 0.5; // a small length offset + const finishPos = t_final * totalLen; + const p1 = pathEl.getPointAtLength(finishPos - epsilon); + const p2 = pathEl.getPointAtLength(finishPos + epsilon); + const dx = p2.x - p1.x; + const dy = p2.y - p1.y; + const angleDeg = (Math.atan2(dy, dx) * 180) / Math.PI; + setFinishLineLocation({ x: finalX, y: finalY, order: i }); + setFinishLineAngle(angleDeg); + } locations.push({ x, y, order: i }); } @@ -89,11 +109,54 @@ export function RaceTrack({ /> ); })} + {finishLineLocation && finishLineAngle && ( + + )}
); } +function FinishLocation({ + location, + angle +}: { + location: TrackLocation; + angle: number; +}) { + return ( + + + Finish Line + + + ); +} + function RaceTrackLocation({ index, color, From 060a0d5f78594440a95670db1348bdedfddac78a Mon Sep 17 00:00:00 2001 From: miguelaenlle Date: Thu, 7 Aug 2025 20:17:25 -0500 Subject: [PATCH 17/20] Day selector changes --- .../src/components/Home/Schedule/Schedule.tsx | 39 ++++++++-- .../Home/Schedule/ScheduleDaySelector.tsx | 77 ++++++++++++++++--- 2 files changed, 100 insertions(+), 16 deletions(-) diff --git a/apps/site/src/components/Home/Schedule/Schedule.tsx b/apps/site/src/components/Home/Schedule/Schedule.tsx index 8259408a..e6a668c0 100644 --- a/apps/site/src/components/Home/Schedule/Schedule.tsx +++ b/apps/site/src/components/Home/Schedule/Schedule.tsx @@ -143,7 +143,7 @@ export default function Schedule() { lg: "row" }} mt={{ - base: 20, + base: 5, md: 5 }} mx="auto" @@ -196,7 +196,10 @@ function DayEventsSection({ return ( - + Lap {selectedDayIndex} - + /{numDays} void; onClick: (event: Event) => void; @@ -391,6 +416,8 @@ function DayEvent({ }} alignItems="center" bgColor={hoveredIndex === number ? "#333131" : "#242424"} + borderTopRadius={number === 1 ? "xl" : undefined} + borderBottomRadius={number === lastIndex ? "xl" : undefined} gap={{ base: 2, md: 3 diff --git a/apps/site/src/components/Home/Schedule/ScheduleDaySelector.tsx b/apps/site/src/components/Home/Schedule/ScheduleDaySelector.tsx index fadd2a26..f88eaefc 100644 --- a/apps/site/src/components/Home/Schedule/ScheduleDaySelector.tsx +++ b/apps/site/src/components/Home/Schedule/ScheduleDaySelector.tsx @@ -1,6 +1,7 @@ import { DAY_COLORS } from "@/constants/day-colors"; -import { Box, Flex, Text } from "@chakra-ui/react"; +import { Box, Flex, Text, VStack } from "@chakra-ui/react"; import { Event } from "@rp/shared"; +import { useMemo } from "react"; export default function ScheduleDaySelector({ selectedDay, @@ -13,20 +14,25 @@ export default function ScheduleDaySelector({ }) { return ( {Object.keys(eventsByDay).map((date, index) => ( void; }) { + const { displayedDay, displayedDate } = useMemo(() => { + const splitDate = date.split(" "); + if (splitDate.length < 2) { + return { displayedDay: date, displayedDate: "" }; + } + return { + displayedDay: splitDate[0], + displayedDate: splitDate[1] + }; + }, [date]); return ( onSelectDay(date)} transition="all 0.2s" _hover={{ @@ -72,14 +92,51 @@ function ScheduleDayButton({ boxShadow="md" > - {date.toUpperCase()} + {`${displayedDay.toUpperCase()} ${displayedDate.toUpperCase()}`} + + + {displayedDay.toUpperCase()} + + + {displayedDate.toUpperCase()} + + ); } From dc3ca44d65e1e7dcf12b9149e61d6bd5ffee3e46 Mon Sep 17 00:00:00 2001 From: miguelaenlle Date: Thu, 7 Aug 2025 20:29:02 -0500 Subject: [PATCH 18/20] Modifications --- apps/site/src/components/Home/Schedule/Schedule.tsx | 6 ++---- apps/site/src/util/api.ts | 5 ----- 2 files changed, 2 insertions(+), 9 deletions(-) delete mode 100644 apps/site/src/util/api.ts diff --git a/apps/site/src/components/Home/Schedule/Schedule.tsx b/apps/site/src/components/Home/Schedule/Schedule.tsx index e6a668c0..28b735ff 100644 --- a/apps/site/src/components/Home/Schedule/Schedule.tsx +++ b/apps/site/src/components/Home/Schedule/Schedule.tsx @@ -1,5 +1,3 @@ -import api from "@/util/api"; - import { Box, Flex, @@ -11,15 +9,15 @@ import { Tooltip, useToast } from "@chakra-ui/react"; -import { Event, path } from "@rp/shared"; +import { Event, path, api } from "@rp/shared"; import moment from "moment"; import { useEffect, useState } from "react"; import { EVENT_ICONS } from "@/constants/event-icons"; +import { AudioVisualizer } from "./AudioVisualizer"; import EventModal from "./EventModal"; import { RaceTrack } from "./RaceTrack"; import ScheduleDaySelector from "./ScheduleDaySelector"; -import { AudioVisualizer } from "./AudioVisualizer"; export const circleColors = [ "green.400", diff --git a/apps/site/src/util/api.ts b/apps/site/src/util/api.ts deleted file mode 100644 index 1379b530..00000000 --- a/apps/site/src/util/api.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { Config, createApi } from "@rp/shared"; - -const api = createApi(Config.API_BASE_URL); - -export default api; From 66756e2e82407e0ab16c73687431c690826b4668 Mon Sep 17 00:00:00 2001 From: miguelaenlle Date: Thu, 7 Aug 2025 20:40:36 -0500 Subject: [PATCH 19/20] Update TTF files, general cleanup --- .../{magistral-wide.ttf => magistral.ttf} | Bin ...-slant-narrow.ttf => pro-racing-slant.ttf} | Bin .../{pro-racing-narrow.ttf => pro-racing.ttf} | Bin .../components/Home/Schedule/RaceTrack.tsx | 2 +- .../src/components/Home/Schedule/Schedule.tsx | 31 +-- .../Home/Schedule/ScheduleDaySelector.tsx | 2 +- apps/site/src/config.ts | 3 - apps/site/src/constants/colors.ts | 20 ++ apps/site/src/constants/day-colors.ts | 7 - apps/site/src/constants/track-paths.ts | 5 - apps/site/src/index.css | 10 +- apps/site/src/routes/Speakers/Speakers.tsx | 231 ------------------ 12 files changed, 30 insertions(+), 281 deletions(-) rename apps/site/public/{magistral-wide.ttf => magistral.ttf} (100%) rename apps/site/public/{pro-racing-slant-narrow.ttf => pro-racing-slant.ttf} (100%) rename apps/site/public/{pro-racing-narrow.ttf => pro-racing.ttf} (100%) delete mode 100644 apps/site/src/config.ts create mode 100644 apps/site/src/constants/colors.ts delete mode 100644 apps/site/src/constants/day-colors.ts delete mode 100644 apps/site/src/routes/Speakers/Speakers.tsx diff --git a/apps/site/public/magistral-wide.ttf b/apps/site/public/magistral.ttf similarity index 100% rename from apps/site/public/magistral-wide.ttf rename to apps/site/public/magistral.ttf diff --git a/apps/site/public/pro-racing-slant-narrow.ttf b/apps/site/public/pro-racing-slant.ttf similarity index 100% rename from apps/site/public/pro-racing-slant-narrow.ttf rename to apps/site/public/pro-racing-slant.ttf diff --git a/apps/site/public/pro-racing-narrow.ttf b/apps/site/public/pro-racing.ttf similarity index 100% rename from apps/site/public/pro-racing-narrow.ttf rename to apps/site/public/pro-racing.ttf diff --git a/apps/site/src/components/Home/Schedule/RaceTrack.tsx b/apps/site/src/components/Home/Schedule/RaceTrack.tsx index a0672f89..ad9586cb 100644 --- a/apps/site/src/components/Home/Schedule/RaceTrack.tsx +++ b/apps/site/src/components/Home/Schedule/RaceTrack.tsx @@ -64,7 +64,7 @@ export function RaceTrack({ } setSelectedLocations(locations); - }, [pathRef.current, trackPath.path, dayEvents.length]); + }, [trackPath.path, dayEvents.length]); return ( diff --git a/apps/site/src/components/Home/Schedule/ScheduleDaySelector.tsx b/apps/site/src/components/Home/Schedule/ScheduleDaySelector.tsx index f88eaefc..7b7eafe8 100644 --- a/apps/site/src/components/Home/Schedule/ScheduleDaySelector.tsx +++ b/apps/site/src/components/Home/Schedule/ScheduleDaySelector.tsx @@ -1,4 +1,4 @@ -import { DAY_COLORS } from "@/constants/day-colors"; +import { DAY_COLORS } from "@/constants/colors"; import { Box, Flex, Text, VStack } from "@chakra-ui/react"; import { Event } from "@rp/shared"; import { useMemo } from "react"; diff --git a/apps/site/src/config.ts b/apps/site/src/config.ts deleted file mode 100644 index c4a692af..00000000 --- a/apps/site/src/config.ts +++ /dev/null @@ -1,3 +0,0 @@ -export const Config = { - API_BASE_URL: "https://api.reflectionsprojections.org" -}; diff --git a/apps/site/src/constants/colors.ts b/apps/site/src/constants/colors.ts new file mode 100644 index 00000000..e8c80113 --- /dev/null +++ b/apps/site/src/constants/colors.ts @@ -0,0 +1,20 @@ +export const DAY_COLORS = [ + "#56BF59", + "#E6930D", + "#FFFFFF", + "#FFD93F", + "#322BB7" +]; + +export const CIRCLE_COLORS = [ + "green.400", + "purple.600", + "pink.500", + "red.500", + "orange.500", + "teal.400", + "cyan.400", + "blue.500", + "yellow.400", + "pink.600" +]; diff --git a/apps/site/src/constants/day-colors.ts b/apps/site/src/constants/day-colors.ts deleted file mode 100644 index ca44a81e..00000000 --- a/apps/site/src/constants/day-colors.ts +++ /dev/null @@ -1,7 +0,0 @@ -export const DAY_COLORS = [ - "#56BF59", - "#E6930D", - "#FFFFFF", - "#FFD93F", - "#322BB7" -]; diff --git a/apps/site/src/constants/track-paths.ts b/apps/site/src/constants/track-paths.ts index 450569a7..96842a3e 100644 --- a/apps/site/src/constants/track-paths.ts +++ b/apps/site/src/constants/track-paths.ts @@ -31,11 +31,6 @@ export const TRACK_PATHS: TrackPath[] = [ width: 624, height: 360 }, - { - path: "M36.4907 275.411C36.4907 275.411 125.441 164.031 198.841 68.1813C207.901 56.3513 230.891 54.2913 246.021 57.4513C280.061 64.5713 276.701 149.071 316.571 124.151C354.171 100.651 388.061 79.6313 469.651 34.8513C575.771 -23.3887 612.111 30.4413 614.941 35.8513C637.121 78.2613 630.141 150.131 590.481 176.511C553.391 201.181 518.721 169.001 465.401 193.221C426.501 210.891 435.791 251.141 394.661 259.831C326.831 274.161 290.021 212.161 250.891 277.511C187.201 383.871 413.381 400.801 321.071 512.671C293.971 545.511 203.301 540.531 128.121 540.901C107.671 541.001 43.7107 550.281 39.5107 499.511C34.4507 438.311 35.0507 315.801 36.5007 275.401L36.4907 275.411Z", - width: 629, - height: 427 - }, { path: "M21.3249 95.8168C16.6149 144.267 8.92486 221.187 8.37486 259.647C8.16486 274.377 26.2649 261.817 33.1649 274.417C40.4749 287.767 29.1849 299.607 39.2649 313.757C47.8449 325.817 64.3049 345.777 79.1249 360.517C85.9649 367.317 89.6249 356.377 90.7449 346.397C96.8149 292.147 105.145 169.557 122.185 148.297C137.045 129.767 171.515 176.487 222.625 195.477C233.745 199.607 250.965 192.757 258.145 202.387C265.885 212.757 257.485 248.577 272.145 249.987C305.935 253.247 312.045 254.467 342.985 258.127C359.655 260.097 357.255 227.197 370.635 218.167C385.995 207.797 412.635 211.867 424.905 226.057C435.405 238.197 418.855 259.937 434.775 263.557C462.935 269.957 490.895 275.447 551.215 285.267C558.105 286.387 589.185 228.577 586.855 219.947C561.995 127.947 543.395 65.8968 528.475 13.6768C527.245 9.38678 461.315 29.8768 454.955 27.2568C433.755 18.5268 414.825 18.2068 407.825 28.3768C399.775 40.0968 395.165 60.9468 429.835 86.9268C453.395 104.587 470.845 112.087 468.635 135.717C467.385 149.117 459.995 167.337 424.275 164.587C364.345 159.977 281.745 152.437 269.885 145.907C189.125 101.407 147.915 63.4968 135.275 71.1868C113.345 84.5368 114.385 121.407 97.2849 122.447C78.7749 123.577 69.8449 74.9068 47.9149 75.5768C39.6549 75.8268 23.1549 76.8268 21.3049 95.8068L21.3249 95.8168Z", width: 595, diff --git a/apps/site/src/index.css b/apps/site/src/index.css index 93576687..a6ea513f 100644 --- a/apps/site/src/index.css +++ b/apps/site/src/index.css @@ -5,23 +5,23 @@ @font-face { font-family: "Magistral"; - src: url("/magistral-wide.ttf") format("truetype"); + src: url("/magistral.ttf") format("truetype"); font-weight: 400; font-style: normal; font-display: swap; } @font-face { - font-family: "ProRacingSlant"; - src: url("/pro-racing-slant-narrow.ttf") format("truetype"); + font-family: "ProRacing"; + src: url("/pro-racing.ttf") format("truetype"); font-weight: 400; font-style: normal; font-display: swap; } @font-face { - font-family: "ProRacing"; - src: url("/pro-racing-narrow.ttf") format("truetype"); + font-family: "ProRacingSlant"; + src: url("/pro-racing-slant.ttf") format("truetype"); font-weight: 400; font-style: normal; font-display: swap; diff --git a/apps/site/src/routes/Speakers/Speakers.tsx b/apps/site/src/routes/Speakers/Speakers.tsx deleted file mode 100644 index 7efd6891..00000000 --- a/apps/site/src/routes/Speakers/Speakers.tsx +++ /dev/null @@ -1,231 +0,0 @@ -import { Box, HStack, Text, VStack } from "@chakra-ui/react"; - -type Speaker = { - name: string; - company: string; - description: string; -}; - -type SpeakerRow = { - speakers: Speaker[]; - color: string; -}; - -function SpeakerCard({ row }: { row: SpeakerRow }) { - return ( - - - {row.speakers.map((speaker) => ( - - {speaker.name} - - ))} - - - - - - - - {row.speakers.map((speaker) => ( - - {speaker.company} - - ))} - - - ); -} - -// Now we have six rows (as in your design), each with up to three speakers -// Colors go in the order: blue, red, orange, teal, pink, green -const SPEAKER_DATA: SpeakerRow[] = [ - { - speakers: [ - { - name: "Sundar Pichai", - company: "Google / Alphabet", - description: - "Sundar Pichai is the CEO of Google and Alphabet. He has steered Google’s shift to an AI‑first strategy and overseen the growth of Google Cloud." - }, - { - name: "Satya Nadella", - company: "Microsoft", - description: - "Satya Nadella is the CEO of Microsoft. Under his leadership, Azure has become a top‑three cloud provider and Microsoft acquired LinkedIn and GitHub." - }, - { - name: "Tim Cook", - company: "Apple", - description: - "Tim Cook is the CEO of Apple. He has expanded Apple’s Services business to surpass hardware revenue and championed the company’s environmental initiatives." - } - ], - color: "#007bff" // blue - }, - { - speakers: [ - { - name: "Andy Jassy", - company: "Amazon", - description: - "Andy Jassy is the CEO of Amazon (and former CEO of AWS). He built AWS into the leading cloud platform and now drives Amazon’s e‑commerce and logistics strategy." - }, - { - name: "Mark Zuckerberg", - company: "Meta", - description: - "Mark Zuckerberg is the CEO of Meta. He spearheaded acquisitions of Instagram and WhatsApp and is investing heavily in the metaverse and AR/VR." - }, - { - name: "Elon Musk", - company: "Tesla & SpaceX", - description: - "Elon Musk is the CEO of Tesla and SpaceX. He revolutionized electric vehicles and reusable rocketry, and also founded Neuralink and The Boring Company." - } - ], - color: "#e74c3c" // red - }, - { - speakers: [ - { - name: "Jensen Huang", - company: "NVIDIA", - description: - "Jensen Huang is the CEO of NVIDIA. He pioneered GPU architectures for gaming and AI, making NVIDIA the standard for deep learning." - }, - { - name: "Lisa Su", - company: "AMD", - description: - "Lisa Su is the CEO of AMD. She led AMD’s renaissance with high‑performance Ryzen and EPYC processors, challenging Intel’s dominance." - }, - { - name: "Arvind Krishna", - company: "IBM", - description: - "Arvind Krishna is the CEO of IBM. He spearheaded the acquisition of Red Hat to bolster IBM’s hybrid cloud and AI offerings." - } - ], - color: "#f39c12" // orange - }, - { - speakers: [ - { - name: "Werner Vogels", - company: "Amazon (CTO)", - description: - "Werner Vogels is the CTO of Amazon. He architected AWS into the leading cloud infrastructure platform and advocates best practices in scalable system design." - }, - { - name: "Parisa Tabriz", - company: "Google (CTO, Chrome Security)", - description: - "Parisa Tabriz is the CTO of Chrome Security at Google. Known as Google’s “Security Princess,” she has fortified browser security and privacy features." - }, - { - name: "Mike Schroepfer", - company: "Meta (former CTO)", - description: - "Mike Schroepfer was CTO of Meta from 2013 to 2022. He drove the development of React and advanced Meta’s AI and infrastructure strategy." - } - ], - color: "#1abc9c" // teal - }, - { - speakers: [ - { - name: "Susan Wojcicki", - company: "YouTube", - description: - "Susan Wojcicki is the former CEO of YouTube. She scaled YouTube into the world’s largest video platform and introduced monetization tools for creators." - }, - { - name: "Reed Hastings", - company: "Netflix", - description: - "Reed Hastings is the co‑CEO of Netflix. He transformed the company from DVD rentals to global streaming and pioneered binge‑watching with original content." - }, - { - name: "Evan Spiegel", - company: "Snap Inc.", - description: - "Evan Spiegel is the CEO of Snap Inc. He innovated ephemeral messaging and AR lenses, and took Snap public in 2017." - } - ], - color: "#e84393" // pink - }, - { - speakers: [ - { - name: "Safra Catz", - company: "Oracle", - description: - "Safra Catz is the CEO of Oracle. She managed Oracle’s shift to cloud computing and led major acquisitions like NetSuite." - }, - { - name: "Marc Benioff", - company: "Salesforce", - description: - "Marc Benioff is the CEO of Salesforce. He built it into the leading CRM platform and is a pioneer of corporate philanthropy." - }, - { - name: "Dara Khosrowshahi", - company: "Uber", - description: - "Dara Khosrowshahi is the CEO of Uber. He steered Uber through its IPO and expanded the business into food delivery and freight." - } - ], - color: "#2ecc71" // green - } -]; -export default function Speakers() { - return ( - - - Speakers - - - 2025 - -
- {SPEAKER_DATA.map((row) => ( - - ))} -
- ); -} From 89c1e1f59cabd7a221293642674ba54d01a401a4 Mon Sep 17 00:00:00 2001 From: miguelaenlle Date: Thu, 7 Aug 2025 20:51:22 -0500 Subject: [PATCH 20/20] Updated finish line --- apps/site/public/finish-line.svg | 24 +++++++++---- .../components/Home/Schedule/RaceTrack.tsx | 36 +++++-------------- 2 files changed, 25 insertions(+), 35 deletions(-) diff --git a/apps/site/public/finish-line.svg b/apps/site/public/finish-line.svg index d1afe428..8c18a05b 100644 --- a/apps/site/public/finish-line.svg +++ b/apps/site/public/finish-line.svg @@ -1,8 +1,18 @@ - - - - - - - + + + + + + + + + + + + + + + + + diff --git a/apps/site/src/components/Home/Schedule/RaceTrack.tsx b/apps/site/src/components/Home/Schedule/RaceTrack.tsx index ad9586cb..35b8b217 100644 --- a/apps/site/src/components/Home/Schedule/RaceTrack.tsx +++ b/apps/site/src/components/Home/Schedule/RaceTrack.tsx @@ -30,7 +30,6 @@ export function RaceTrack({ const [finishLineLocation, setFinishLineLocation] = useState(null); - const [finishLineAngle, setFinishLineAngle] = useState(null); useEffect(() => { if (!pathRef?.current) return; @@ -49,16 +48,7 @@ export function RaceTrack({ const { x: finalX, y: finalY } = pathEl.getPointAtLength( t_final * totalLen ); - - const epsilon = 0.5; // a small length offset - const finishPos = t_final * totalLen; - const p1 = pathEl.getPointAtLength(finishPos - epsilon); - const p2 = pathEl.getPointAtLength(finishPos + epsilon); - const dx = p2.x - p1.x; - const dy = p2.y - p1.y; - const angleDeg = (Math.atan2(dy, dx) * 180) / Math.PI; setFinishLineLocation({ x: finalX, y: finalY, order: i }); - setFinishLineAngle(angleDeg); } locations.push({ x, y, order: i }); } @@ -109,32 +99,21 @@ export function RaceTrack({ /> ); })} - {finishLineLocation && finishLineAngle && ( - - )} + {finishLineLocation && }
); } -function FinishLocation({ - location, - angle -}: { - location: TrackLocation; - angle: number; -}) { +function FinishLocation({ location }: { location: TrackLocation }) { return (