Date: Mon, 9 Dec 2024 15:53:43 +0530
Subject: [PATCH 2/4] add website field to data aggregation
---
functions/src/companyDataAggregator.ts | 1 +
1 file changed, 1 insertion(+)
diff --git a/functions/src/companyDataAggregator.ts b/functions/src/companyDataAggregator.ts
index ad78caa..c17852b 100644
--- a/functions/src/companyDataAggregator.ts
+++ b/functions/src/companyDataAggregator.ts
@@ -22,6 +22,7 @@ const SELECTED_FIELDS = [
"preferredFields",
"qualitiesToLook",
"dataConfirmed",
+ "website",
];
From 35e5fcc9c8c7561447adc24f386fec1980b508f5 Mon Sep 17 00:00:00 2001
From: Ishan Sasanka <166486873+dmisasanka2002@users.noreply.github.com>
Date: Tue, 10 Dec 2024 15:16:20 +0530
Subject: [PATCH 3/4] fixed design issu
---
src/app/page.tsx | 343 +++++++++++----------
src/components/blocks/reach-us-section.tsx | 82 +++--
src/components/ui/floating-navbar.tsx | 189 ++++++------
src/components/ui/google-gemini-effect.tsx | 55 ++--
src/components/ui/navbar-menu.tsx | 54 ++--
tailwind.config.ts | 3 +
6 files changed, 378 insertions(+), 348 deletions(-)
diff --git a/src/app/page.tsx b/src/app/page.tsx
index 0796667..4c599de 100644
--- a/src/app/page.tsx
+++ b/src/app/page.tsx
@@ -1,28 +1,28 @@
-"use client"
+"use client";
import ResponsiveHero from "@/components/ui/responsiveHero";
import RootLayout from "./layout";
import { FloatingNav } from "@/components/ui/floating-navbar";
import React, { useEffect, useState } from "react";
-import RUR_IMG1 from "../../public/Images/RUR (1).jpg"
-import RUR_IMG2 from "../../public/Images/RUR (2).jpg"
-import RUR_IMG3 from "../../public/Images/RUR (3).jpg"
-import RUR_IMG4 from "../../public/Images/RUR (4).jpg"
-import RUR_IMG5 from "../../public/Images/RUR (5).jpg"
-import RUR_IMG6 from "../../public/Images/RUR (6).jpg"
-import RUR_IMG7 from "../../public/Images/RUR (7).jpg"
-import RUR_IMG8 from "../../public/Images/RUR (8).jpg"
-import RUR_IMG9 from "../../public/Images/RUR (9).jpg"
-import RUR_IMG10 from "../../public/Images/RUR (10).jpg"
-import RUR_IMG11 from "../../public/Images/RUR (11).jpg"
-import RUR_IMG12 from "../../public/Images/RUR (12).jpg"
-import RUR_IMG13 from "../../public/Images/RUR (13).jpg"
-import RUR_IMG14 from "../../public/Images/RUR (14).jpg"
-import RUR_IMG15 from "../../public/Images/RUR (15).jpg"
-
-import SPONSOR from "../../public/Images/partners/the-ai-team.png"
+import RUR_IMG1 from "../../public/Images/RUR (1).jpg";
+import RUR_IMG2 from "../../public/Images/RUR (2).jpg";
+import RUR_IMG3 from "../../public/Images/RUR (3).jpg";
+import RUR_IMG4 from "../../public/Images/RUR (4).jpg";
+import RUR_IMG5 from "../../public/Images/RUR (5).jpg";
+import RUR_IMG6 from "../../public/Images/RUR (6).jpg";
+import RUR_IMG7 from "../../public/Images/RUR (7).jpg";
+import RUR_IMG8 from "../../public/Images/RUR (8).jpg";
+import RUR_IMG9 from "../../public/Images/RUR (9).jpg";
+import RUR_IMG10 from "../../public/Images/RUR (10).jpg";
+import RUR_IMG11 from "../../public/Images/RUR (11).jpg";
+import RUR_IMG12 from "../../public/Images/RUR (12).jpg";
+import RUR_IMG13 from "../../public/Images/RUR (13).jpg";
+import RUR_IMG14 from "../../public/Images/RUR (14).jpg";
+import RUR_IMG15 from "../../public/Images/RUR (15).jpg";
+
+import SPONSOR from "../../public/Images/partners/the-ai-team.png";
// import LoadingAnimation from "../../public/animations/RUR.json"
-import LoadingAnimation from "../../public/animations/RUR_Loading.json"
+import LoadingAnimation from "../../public/animations/RUR_Loading.json";
import { Timeline } from "@/components/ui/timeline";
import Image from "next/image";
@@ -31,13 +31,18 @@ import ReachUsSection from "@/components/blocks/reach-us-section";
import Footer from "@/components/blocks/footer";
import { GridBackground } from "@/components/ui/backgrounds";
import { ISponsor } from "@/interfaces/ISponsors";
-import {getDataFromAggregatedDoc} from "@/services/aggregatedData.service";
+import { getDataFromAggregatedDoc } from "@/services/aggregatedData.service";
import { ITimelineData } from "@/interfaces/ITimeline";
import { HeroHighlight } from "@/components/ui/hero-highlight";
import { Highlighter } from "@/components/blocks/hilight";
-import { HomeIcon, ClockIcon , MegaphoneIcon , PhoneArrowUpRightIcon } from "@heroicons/react/24/solid";
+import {
+ HomeIcon,
+ ClockIcon,
+ MegaphoneIcon,
+ PhoneArrowUpRightIcon,
+} from "@heroicons/react/24/solid";
import { TextGenerateEffect } from "@/components/ui/text-generate-effect";
-import {CardDesign} from "@/components/ui/card-design";
+import { CardDesign } from "@/components/ui/card-design";
import Lottie from "react-lottie-player";
import { IContact } from "@/interfaces/IContacts";
import RegistrationStatus from "@/components/ui/google-gemini-effect";
@@ -52,146 +57,157 @@ export const products = [
{
title: "Are You Ready?",
link: "#",
- thumbnail:
- RUR_IMG1,
+ thumbnail: RUR_IMG1,
},
{
title: "Are You Ready?",
link: "#",
- thumbnail:
- RUR_IMG2,
+ thumbnail: RUR_IMG2,
},
{
title: "Are You Ready?",
link: "#",
- thumbnail:
- RUR_IMG3,
+ thumbnail: RUR_IMG3,
},
{
title: "Are You Ready?",
link: "#",
- thumbnail:
- RUR_IMG4,
+ thumbnail: RUR_IMG4,
},
{
title: "Are You Ready?",
link: "#",
- thumbnail:
- RUR_IMG5,
+ thumbnail: RUR_IMG5,
},
{
title: "Are You Ready?",
link: "#",
- thumbnail:
- RUR_IMG6,
+ thumbnail: RUR_IMG6,
},
{
title: "Are You Ready?",
link: "#",
- thumbnail:
- RUR_IMG7,
+ thumbnail: RUR_IMG7,
},
{
title: "Are You Ready?",
link: "#",
- thumbnail:
- RUR_IMG8,
+ thumbnail: RUR_IMG8,
},
{
title: "Are You Ready?",
link: "#",
- thumbnail:
- RUR_IMG9,
+ thumbnail: RUR_IMG9,
},
{
title: "Are You Ready?",
link: "#",
- thumbnail:
- RUR_IMG10,
+ thumbnail: RUR_IMG10,
},
{
title: "Are You Ready?",
link: "#",
- thumbnail:
- RUR_IMG11,
+ thumbnail: RUR_IMG11,
},
{
title: "Are You Ready?",
link: "#",
- thumbnail:
- RUR_IMG12,
+ thumbnail: RUR_IMG12,
},
{
title: "Are You Ready?",
link: "#",
- thumbnail:
- RUR_IMG13,
+ thumbnail: RUR_IMG13,
},
{
title: "Are You Ready?",
link: "#",
- thumbnail:
- RUR_IMG14,
+ thumbnail: RUR_IMG14,
},
{
title: "Are You Ready?",
link: "#",
- thumbnail:
- RUR_IMG15,
+ thumbnail: RUR_IMG15,
},
-
];
-
const navItms = [
{
- name: 'Home',
- link: '/',
+ name: "Home",
+ link: "/",
icon:
,
},
{
- name: 'Timeline',
- link: '#timeline',
+ name: "Timeline",
+ link: "#timeline",
icon:
,
},
{
- name: 'Sponsors',
- link: '#sponsors',
+ name: "Sponsors",
+ link: "#sponsors",
icon:
,
},
{
- name: 'Reach Us',
- link: '#reach_us',
+ name: "Reach Us",
+ link: "#reach_us",
icon:
,
},
];
-console.log("Home Page");
-
+console.log("Home Page");
-const Loading =()=> {
+const Loading = () => {
return (
);
-}
+};
+const Para = ({
+ level,
+ name,
+ imgURL,
+ loadCallback,
+}: {
+ level: string;
+ name: string;
+ imgURL: string | undefined;
+ loadCallback?: (count: number) => void;
+}): React.ReactNode => {
+ const color =
+ level === "Gold"
+ ? "custom-color-gold dark:custom-dark-color-gold"
+ : level === "Silver"
+ ? "custom-color-silver dark:custom-dark-color-silver"
+ : "custom-color-bronze dark:custom-dark-color-bronze";
-const Para = ({ level, name, imgURL, loadCallback }: { level: string, name: string, imgURL: string | undefined, loadCallback?: (count: number) => void }): React.ReactNode => {
- const color = level ==="Gold"?"custom-color-gold dark:custom-dark-color-gold":(level ==="Silver"?"custom-color-silver dark:custom-dark-color-silver":"custom-color-bronze dark:custom-dark-color-bronze")
return (
-
- {level} Sponsor
+
+ {level}
+
+ Sponsor
-
+
+ {/* Image Section */}
+
+
+
+
+ {/* Sponsor Name */}
{name}
@@ -221,25 +237,25 @@ export default function Home() {
const [isSponsorsLoading, setSponsorsLoading] = useState(true);
const [isLoading, setIsLoading] = useState(true);
const [error, setError] = useState(null);
- const [isLoadingAnimComplete , setIsLoadingAnimComplete] = useState(false);
+ const [isLoadingAnimComplete, setIsLoadingAnimComplete] = useState(false);
const [reachUsContacts, setReachUsContacts] = useState([] as IContact[]);
const [isReachUsGridLoading, setIsReachUsGridLoading] = useState(true);
- const loadingTimeout = ()=>{
- console.log("Loading animation timeout");
- setTimeout(() => {
- setIsLoadingAnimComplete(true);
- }, 2000);
-}
-
-
- useEffect(() => {
-
- sendGTMEvent({ event: 'page view', page: 'home' , path: window.location.pathname });
+ const loadingTimeout = () => {
+ console.log("Loading animation timeout");
+ setTimeout(() => {
+ setIsLoadingAnimComplete(true);
+ }, 2000);
+ };
+ useEffect(() => {
+ sendGTMEvent({
+ event: "page view",
+ page: "home",
+ path: window.location.pathname,
+ });
const fetchData = async () => {
-
// getReachUs().then((data) => {
// setGrid(data);
// }).catch((err) => {
@@ -250,11 +266,9 @@ export default function Home() {
// setGridLoading(false);
// });
-
-
try {
const data = await getDataFromAggregatedDoc();
-
+
if (!data) {
throw new Error("Failed to fetch data");
}
@@ -266,7 +280,11 @@ export default function Home() {
} catch (err) {
console.error("Error fetching data:", err);
setError("Failed to load data. Please try again later.");
- sendGTMEvent({ event:'JS_Error' , error_name:'AggregatedDocLoadError', error: err });
+ sendGTMEvent({
+ event: "JS_Error",
+ error_name: "AggregatedDocLoadError",
+ error: err,
+ });
} finally {
setTimelineLoading(false);
setSponsorsLoading(false);
@@ -275,27 +293,24 @@ export default function Home() {
console.log("Data fetched end");
}
-
};
fetchData();
}, []);
+ function getEvents() {
+ const events = timeline.map((t) => ({
+ title: t.title,
+ content: ,
+ eventDate: t.eventDate.toDate(),
+ btnLink: t.btnLink,
+ image: t.imgURL,
+ btnText: t.btnText,
+ isBtnDisabled: t.isBtnDisabled,
+ }));
- function getEvents(){
- const events = timeline.map((t) => ({
- title: t.title,
- content: ,
- eventDate: t.eventDate.toDate(),
- btnLink: t.btnLink,
- image: t.imgURL,
- btnText: t.btnText,
- isBtnDisabled: t.isBtnDisabled,
- }));
-
- return events;
-}
-
+ return events;
+ }
const ErrorMessage = ({ message }: { message: string }) => (
@@ -313,41 +328,40 @@ export default function Home() {
);
-
-
-
-
- const content: string = "\"Are You Ready?\" stands as a monumental initiative led by the Rotaract Club of the University of Moratuwa in partnership with the Career Guidance Unit. Our primary focus is 4th year undergraduates from our university, aiming to guide them towards a secure entry into the professional world. The scope of this endeavor knows no bounds, with over 100 companies aligning to provide opportunities for budding professionals. This project promises to be a valuable asset for those aspiring to forge strong connections with companies and their managers, even if the finish line of their degree is still on the horizon. In the initial stages, participants will gain the essential knowledge and training to confidently engage with industry experts.";
+ const content: string =
+ '"Are You Ready?" stands as a monumental initiative led by the Rotaract Club of the University of Moratuwa in partnership with the Career Guidance Unit. Our primary focus is 4th year undergraduates from our university, aiming to guide them towards a secure entry into the professional world. The scope of this endeavor knows no bounds, with over 100 companies aligning to provide opportunities for budding professionals. This project promises to be a valuable asset for those aspiring to forge strong connections with companies and their managers, even if the finish line of their degree is still on the horizon. In the initial stages, participants will gain the essential knowledge and training to confidently engage with industry experts.';
return (
-
-
+
-
-
- { ( !isLoadingAnimComplete ) && (
-
-
-
- )}
+
+ {!isLoadingAnimComplete && (
+
+
+
+ )}
-
{
- setIsLoadingAnimComplete(true);
- }} />
+ {
+ setIsLoadingAnimComplete(true);
+ }}
+ />
@@ -365,7 +379,7 @@ export default function Home() {
{error ? (
@@ -374,52 +388,43 @@ export default function Home() {
) : sponsors.length > 0 ? (
- {/* Gold sponsors (separate row) */}
-
- {sponsors
- .filter((sponsor) => sponsor.level === "Gold")
- .map((sponsor, index) => (
-
-
-
- ))}
-
-
- {/* Silver and Bronze sponsors (same row) */}
-
+ {/* Sponsors Section */}
+
{sponsors
- .filter((sponsor) => ["Silver", "Bronze"].includes(sponsor.level))
.sort((a, b) => {
- const levels: { [key: string]: number } = { Gold: 1, Silver: 2, Bronze: 3 };
- return levels[a.level] - levels[b.level];
+ // Custom sorting: Gold first, then Silver, others later
+ if (a.level === "Gold") return -1;
+ if (b.level === "Gold") return 1;
+ if (a.level === "Silver") return -1;
+ if (b.level === "Silver") return 1;
+ return 0; // No change for other levels
})
.map((sponsor, index) => (
-
+
))}
-
) : (
)}
-
{/*
*/}
-
+
@@ -427,17 +432,15 @@ export default function Home() {
-
-
-
- {!isReachUsGridLoading &&
-
- }
+
+ {!isReachUsGridLoading && (
+
+
+
+ )}
-
-
-);
+
+ );
}
-
diff --git a/src/components/blocks/reach-us-section.tsx b/src/components/blocks/reach-us-section.tsx
index 8a4ad6d..34f2def 100644
--- a/src/components/blocks/reach-us-section.tsx
+++ b/src/components/blocks/reach-us-section.tsx
@@ -3,43 +3,61 @@ import { IContact } from "@/interfaces/IContacts";
import React from "react";
import { useId } from "react";
-export default function ReachUsSection({grid}:{grid:IContact[]}) {
+export default function ReachUsSection({ grid }: { grid: IContact[] }) {
return (
- {grid.map((person,index) => (
-
-
-
-
-
-
{person.name}
-
{person.post}
-
-
-
-
-
-
-
-
{person.contact}
-
-
-
-
-
-
-
{person.email}
-
-
-
+ {grid.map((person, index) => (
+
+
+
+
+
+
+ {person.name}
+
+
{person.post}
+
+
+
+
+
+
+
+
{person.contact}
+
+
+
+
+
+
+
{person.email}
+
+
+
))}
);
}
-
export const Grid = ({
pattern,
size,
@@ -55,8 +73,8 @@ export const Grid = ({
[Math.floor(Math.random() * 4) + 7, Math.floor(Math.random() * 6) + 1],
];
return (
-
-
+
+
{squares && (
- {squares.map(([x, y]: any,index:number) => (
+ {squares.map(([x, y]: any, index: number) => (
);
-}
\ No newline at end of file
+}
diff --git a/src/components/ui/floating-navbar.tsx b/src/components/ui/floating-navbar.tsx
index 6880a1f..f7aa4c5 100644
--- a/src/components/ui/floating-navbar.tsx
+++ b/src/components/ui/floating-navbar.tsx
@@ -1,10 +1,8 @@
'use client';
import React, { useContext, useState } from "react";
-
import { cn } from "@/lib/utils";
import Link from "next/link";
-import { MoonIcon, SunIcon } from "@heroicons/react/24/solid";
import { Bars3Icon, XMarkIcon } from "@heroicons/react/24/outline";
import { ThemeContext } from "@/app/layout";
import Image from "next/image";
@@ -12,17 +10,16 @@ import { IThemeContextType } from "@/interfaces/IThemeContext";
import SMALL_LOGO from "../../../public/Images/logo/RUR20_small.png"
import { AnimatePresence, motion } from "framer-motion";
-
export const FloatingNav = ({
- navItems,
- className,
- }: {
- navItems: {
- name: string;
- link: string;
- icon?: JSX.Element;
- }[];
- className?: string;
+ navItems,
+ className,
+}: {
+ navItems: {
+ name: string;
+ link: string;
+ icon?: JSX.Element;
+ }[];
+ className?: string;
}) => {
const [isMenuOpen, setIsMenuOpen] = useState(false);
@@ -30,111 +27,107 @@ export const FloatingNav = ({
if (!themeContext) {
throw new Error(
- "ThemeToggleButton must be used within a ThemeContext.Provider"
+ "ThemeToggleButton must be used within a ThemeContext.Provider"
);
}
- const { toggleTheme, theme } = themeContext;
+ const { theme } = themeContext;
return (
-
-
-
-
-
-
-
-
- {/* Desktop Navigation */}
-
- {navItems.map((navItem, idx) => (
+ {/* Top Navigation Bar */}
+
+
+
+
+
+
+ {/* Desktop Navigation */}
+
+ {navItems.map((navItem, idx) => (
- {navItem.name}
+ {navItem.name}
- ))}
-
-
-
-
- {/*
- {theme === "dark" ? (
-
- ) : (
-
- )}
- */}
-
- {/* Mobile Menu Button */}
- { setIsMenuOpen(!isMenuOpen)}}
- className="md:hidden border text-sm font-medium relative border-neutral-200 dark:border-white/[0.2] text-black dark:text-white p-2 rounded-full"
- >
- {isMenuOpen ? (
-
- ) : (
-
- )}
-
-
-
- {/* Mobile Navigation Menu */}
-
+ ))}
+
+
+ {/* Mobile Menu Toggle */}
+
setIsMenuOpen(!isMenuOpen)}
+ className="md:hidden rounded-full p-2
+ hover:bg-neutral-100 dark:hover:bg-neutral-800
+ transition-colors duration-200"
+ >
+ {isMenuOpen ? (
+
+ ) : (
+
+ )}
+
-
- {isMenuOpen && (
-
+ {/* Mobile Navigation Overlay */}
+
+ {isMenuOpen && (
+
+
+ {navItems.map((navItem, idx) => (
- {navItems.map((navItem, idx) => (
- setIsMenuOpen(false)}
+ className="block py-4 text-center
+ dark:text-neutral-50
+ text-neutral-600
+ dark:hover:text-neutral-300
+ hover:text-neutral-500"
>
- setIsMenuOpen(false)}
- className="relative dark:text-neutral-50 flex items-center space-x-2 space-y-4 text-neutral-600 dark:hover:text-neutral-300 hover:text-neutral-500"
- style={{transform:"translateX(-50%)"}}
- >
- {navItem.icon && {navItem.icon} }
- {navItem.name}
-
-
-
- ))}
+ {navItem.name}
+
+ ))}
- )}
-
-
-
+
+ )}
+
+
);
};
-export default FloatingNav;
+export default FloatingNav;
\ No newline at end of file
diff --git a/src/components/ui/google-gemini-effect.tsx b/src/components/ui/google-gemini-effect.tsx
index 2ac35c6..bcfa4d8 100644
--- a/src/components/ui/google-gemini-effect.tsx
+++ b/src/components/ui/google-gemini-effect.tsx
@@ -325,15 +325,18 @@ const RegistrationStatus = () => {
try {
const result = await getRegistrationStatus();
if (!result) {
- throw new Error('Failed to fetch registration status');
+ throw new Error("Failed to fetch registration status");
}
setStatus(result);
console.log(result);
} catch (err) {
- setError(err instanceof Error ? err.message : 'An error occurred');
- setLoading(false);
- sendGTMEvent({ event:'JS_Error' , error_name:'CompanyDataLoadError', error: err instanceof Error ? err.message : 'An error occurred'});
- } finally{
+ setError(err instanceof Error ? err.message : "An error occurred");
+ sendGTMEvent({
+ event: "JS_Error",
+ error_name: "CompanyDataLoadError",
+ error: err instanceof Error ? err.message : "An error occurred",
+ });
+ } finally {
setLoading(false);
}
};
@@ -344,10 +347,10 @@ const RegistrationStatus = () => {
if (loading) {
return (
-
);
@@ -356,36 +359,38 @@ const RegistrationStatus = () => {
if (error || !status) {
return (
- {error || 'Error loading registration status'}
+ {error || "Error loading registration status"}
);
}
return (
-
{/* Header Section */}
-
-
+ className="text-4xl md:text-7xl font-bold text-center mb-8 bg-clip-text text-transparent bg-gradient-to-b from-neutral-100 to-neutral-300"
+ >
Registration Status
-
+ className="text-xs md:text-xl font-normal text-center text-neutral-400 mt-4 max-w-lg mx-auto mb-12"
+ >
Check the current registration status for companies and students
@@ -394,24 +399,24 @@ const RegistrationStatus = () => {
{/* Background Waves */}
- {/* Status Cards Section - Now at bottom */}
+ {/* Status Cards Section */}
+ signIn={status.company.signIn}
+ signInUrl="https://rur.uom.lk/company/signIn"
+ signUpUrl="https://rur.uom.lk/signUp"
+ />
+ signIn={status.student.signIn}
+ signInUrl="https://rur.uom.lk/student/signIn"
+ signUpUrl="https://rur.uom.lk/signUp"
+ />
@@ -419,4 +424,4 @@ const RegistrationStatus = () => {
);
};
-export default RegistrationStatus;
\ No newline at end of file
+export default RegistrationStatus;
diff --git a/src/components/ui/navbar-menu.tsx b/src/components/ui/navbar-menu.tsx
index 7760243..41378e3 100644
--- a/src/components/ui/navbar-menu.tsx
+++ b/src/components/ui/navbar-menu.tsx
@@ -27,34 +27,37 @@ export const MenuItem = ({
link: string;
children?: React.ReactNode;
}) => {
-
-
return (
-
-
setActive(item)} className="relative ">
+
+
setActive(item)}
+ className="relative"
+ >
+ className="cursor-pointer text-black hover:opacity-[0.9] dark:text-white text-sm sm:text-base"
+ >
{item}
+
{active !== null && (
{active === item && (
-
+
+ >
+ layout
+ className="w-full h-full p-4"
+ >
{children}
@@ -76,8 +79,8 @@ export const Menu = ({
}) => {
return (
setActive(null)} // resets the state
- className="relative rounded-full border border-transparent dark:bg-black dark:border-white/[0.2] bg-white shadow-input flex justify-center space-x-4 px-8 py-6 "
+ onMouseLeave={() => setActive(null)}
+ className="relative rounded-full border border-transparent dark:bg-black dark:border-white/[0.2] bg-white shadow-input flex justify-center space-x-2 sm:space-x-4 px-4 sm:px-8 py-4 sm:py-6 overflow-x-auto"
>
{children}
@@ -96,19 +99,22 @@ export const ProductItem = ({
src: string;
}) => {
return (
-
+
-
-
+
+
{title}
-
+
{description}
@@ -120,9 +126,11 @@ export const HoveredLink = ({ children, ...rest }: any) => {
return (
{children}
);
};
+
+export default { MenuItem, Menu, ProductItem, HoveredLink };
\ No newline at end of file
diff --git a/tailwind.config.ts b/tailwind.config.ts
index 5429daf..f15c120 100644
--- a/tailwind.config.ts
+++ b/tailwind.config.ts
@@ -36,6 +36,9 @@ module.exports = {
'light-gradient': 'linear-gradient(55deg, rgba(247,254,255,1) 0%, rgba(230,238,238,1) 20%, rgba(255,255,255,1) 45%, rgba(230,238,238,1) 70%, rgba(247,254,255,1) 100%);',
},
+ boxShadow: {
+ input: "0px 4px 6px rgba(0, 0, 0, 0.1)",
+ },
colors:{
'custom-dark-color-950': '#0C0C0C',
'custom-dark-color-900': '#1A1A1A',
From d8d788e7473a563d12499e91321eb09038221b02 Mon Sep 17 00:00:00 2001
From: Sakindu Ransindu
Date: Fri, 13 Dec 2024 03:33:56 +0530
Subject: [PATCH 4/4] update workflows
---
...rge.yml => firebase-hosting-merge-dev.yml} | 2 +-
.../firebase-hosting-merge-production.yml | 53 +++++
package-lock.json | 201 ++++++++++++------
3 files changed, 194 insertions(+), 62 deletions(-)
rename .github/workflows/{firebase-hosting-merge.yml => firebase-hosting-merge-dev.yml} (98%)
create mode 100644 .github/workflows/firebase-hosting-merge-production.yml
diff --git a/.github/workflows/firebase-hosting-merge.yml b/.github/workflows/firebase-hosting-merge-dev.yml
similarity index 98%
rename from .github/workflows/firebase-hosting-merge.yml
rename to .github/workflows/firebase-hosting-merge-dev.yml
index 1c5342a..2f3f7ae 100644
--- a/.github/workflows/firebase-hosting-merge.yml
+++ b/.github/workflows/firebase-hosting-merge-dev.yml
@@ -2,7 +2,7 @@ name: Deploy to Firebase Hosting on merge
on:
push:
branches:
- - main
+ - dev
jobs:
build_and_deploy:
runs-on: ubuntu-latest
diff --git a/.github/workflows/firebase-hosting-merge-production.yml b/.github/workflows/firebase-hosting-merge-production.yml
new file mode 100644
index 0000000..a0a2fe6
--- /dev/null
+++ b/.github/workflows/firebase-hosting-merge-production.yml
@@ -0,0 +1,53 @@
+name: Deploy to Firebase Hosting on merge
+on:
+ push:
+ branches:
+ - main
+jobs:
+ build_and_deploy:
+ runs-on: ubuntu-latest
+ env:
+ NEXT_PUBLIC_API_KEY: ${{ secrets.NEXT_PUBLIC_API_KEY }}
+ NEXT_PUBLIC_AUTH_DOMAIN: ${{ secrets.NEXT_PUBLIC_AUTH_DOMAIN }}
+ NEXT_PUBLIC_PROJECT_ID: ${{ secrets.NEXT_PUBLIC_PROJECT_ID }}
+ NEXT_PUBLIC_STORAGE_BUCKET: ${{ secrets.NEXT_PUBLIC_STORAGE_BUCKET }}
+ NEXT_PUBLIC_MESSAGING_SENDER_ID: ${{ secrets.NEXT_PUBLIC_MESSAGING_SENDER_ID }}
+ NEXT_PUBLIC_APP_ID: ${{ secrets.NEXT_PUBLIC_APP_ID }}
+ NEXT_PUBLIC_STATUS: ${{ secrets.NEXT_PUBLIC_STATUS }}
+
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v4
+
+ - name: Install dependencies and build
+ run: npm ci && npm run build
+
+ - name: Deploy to Firebase Hosting
+ uses: FirebaseExtended/action-hosting-deploy@v0
+ with:
+ repoToken: ${{ secrets.GITHUB_TOKEN }}
+ firebaseServiceAccount: ${{ secrets.FIREBASE_SERVICE_ACCOUNT_FIRETEST_C524F }}
+ channelId: live
+ projectId: firetest-c524f
+
+ - name: Install Firebase CLI
+ run: npm install -g firebase-tools
+
+ - name: Deploy Firebase Functions
+ env:
+ FIREBASE_TOKEN: ${{ secrets.FIREBASE_DEPLOY_TOKEN }}
+ run: |
+ cd functions
+ npm ci
+ firebase deploy --only functions --project firetest-c524f
+
+ - name: Deploy through FTP
+ uses: SamKirkland/FTP-Deploy-Action@v4.3.5
+ with:
+ server: ${{ secrets.FTP_SERVER }}
+ username: ${{ secrets.FTP_USERNAME }}
+ password: ${{ secrets.FTP_PASSWORD }}
+ local-dir: ./out
+ server-dir: /public_html/
+ protocol: ftp
+ port: 21
diff --git a/package-lock.json b/package-lock.json
index 91c77c5..268ed13 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -51,6 +51,7 @@
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz",
"integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==",
+ "dev": true,
"engines": {
"node": ">=10"
},
@@ -1358,6 +1359,7 @@
"version": "0.3.5",
"resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz",
"integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==",
+ "dev": true,
"dependencies": {
"@jridgewell/set-array": "^1.2.1",
"@jridgewell/sourcemap-codec": "^1.4.10",
@@ -1371,6 +1373,7 @@
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
"integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
+ "dev": true,
"engines": {
"node": ">=6.0.0"
}
@@ -1379,6 +1382,7 @@
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
"integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
+ "dev": true,
"engines": {
"node": ">=6.0.0"
}
@@ -1386,12 +1390,14 @@
"node_modules/@jridgewell/sourcemap-codec": {
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz",
- "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ=="
+ "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==",
+ "dev": true
},
"node_modules/@jridgewell/trace-mapping": {
"version": "0.3.25",
"resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
"integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
+ "dev": true,
"dependencies": {
"@jridgewell/resolve-uri": "^3.1.0",
"@jridgewell/sourcemap-codec": "^1.4.14"
@@ -1562,6 +1568,7 @@
"version": "2.1.5",
"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
"integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
+ "dev": true,
"dependencies": {
"@nodelib/fs.stat": "2.0.5",
"run-parallel": "^1.1.9"
@@ -1574,6 +1581,7 @@
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
"integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
+ "dev": true,
"engines": {
"node": ">= 8"
}
@@ -1582,6 +1590,7 @@
"version": "1.2.8",
"resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
"integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
+ "dev": true,
"dependencies": {
"@nodelib/fs.scandir": "2.1.5",
"fastq": "^1.6.0"
@@ -2657,7 +2666,8 @@
"node_modules/arg": {
"version": "5.0.2",
"resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
- "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg=="
+ "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==",
+ "dev": true
},
"node_modules/argparse": {
"version": "2.0.1",
@@ -3397,6 +3407,7 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz",
"integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==",
+ "dev": true,
"engines": {
"node": ">= 6"
}
@@ -4227,6 +4238,7 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
"integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
+ "dev": true,
"bin": {
"cssesc": "bin/cssesc"
},
@@ -4451,7 +4463,8 @@
"node_modules/didyoumean": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz",
- "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw=="
+ "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==",
+ "dev": true
},
"node_modules/discontinuous-range": {
"version": "1.0.0",
@@ -4461,7 +4474,8 @@
"node_modules/dlv": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz",
- "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA=="
+ "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==",
+ "dev": true
},
"node_modules/doctrine": {
"version": "3.0.0",
@@ -5548,6 +5562,7 @@
"version": "3.3.1",
"resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz",
"integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==",
+ "dev": true,
"dependencies": {
"@nodelib/fs.stat": "^2.0.2",
"@nodelib/fs.walk": "^1.2.3",
@@ -5563,6 +5578,7 @@
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
"integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "dev": true,
"dependencies": {
"is-glob": "^4.0.1"
},
@@ -5626,6 +5642,7 @@
"version": "1.17.1",
"resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz",
"integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==",
+ "dev": true,
"dependencies": {
"reusify": "^1.0.4"
}
@@ -6338,6 +6355,7 @@
"version": "6.0.2",
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
"integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
+ "dev": true,
"dependencies": {
"is-glob": "^4.0.3"
},
@@ -7035,6 +7053,7 @@
"version": "2.15.1",
"resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz",
"integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==",
+ "dev": true,
"dependencies": {
"hasown": "^2.0.2"
},
@@ -7504,6 +7523,7 @@
"version": "1.21.6",
"resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.6.tgz",
"integrity": "sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==",
+ "dev": true,
"bin": {
"jiti": "bin/jiti.js"
}
@@ -7829,6 +7849,7 @@
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz",
"integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==",
+ "dev": true,
"engines": {
"node": ">=10"
}
@@ -7841,7 +7862,8 @@
"node_modules/lines-and-columns": {
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
- "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg=="
+ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
+ "dev": true
},
"node_modules/locate-path": {
"version": "6.0.0",
@@ -8185,6 +8207,7 @@
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
"integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
+ "dev": true,
"engines": {
"node": ">= 8"
}
@@ -8207,6 +8230,7 @@
"version": "4.0.8",
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
"integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
+ "dev": true,
"dependencies": {
"braces": "^3.0.3",
"picomatch": "^2.3.1"
@@ -9213,7 +9237,8 @@
"node_modules/path-parse": {
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
- "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="
+ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
+ "dev": true
},
"node_modules/path-scurry": {
"version": "1.11.1",
@@ -9341,6 +9366,7 @@
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
"integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
+ "dev": true,
"engines": {
"node": ">=0.10.0"
}
@@ -9349,6 +9375,7 @@
"version": "4.0.6",
"resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz",
"integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==",
+ "dev": true,
"engines": {
"node": ">= 6"
}
@@ -9395,6 +9422,7 @@
"version": "8.4.47",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz",
"integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==",
+ "dev": true,
"funding": [
{
"type": "opencollective",
@@ -9422,6 +9450,7 @@
"version": "15.1.0",
"resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz",
"integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==",
+ "dev": true,
"dependencies": {
"postcss-value-parser": "^4.0.0",
"read-cache": "^1.0.0",
@@ -9438,6 +9467,7 @@
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz",
"integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==",
+ "dev": true,
"dependencies": {
"camelcase-css": "^2.0.1"
},
@@ -9456,6 +9486,7 @@
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz",
"integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==",
+ "dev": true,
"funding": [
{
"type": "opencollective",
@@ -9490,6 +9521,7 @@
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz",
"integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==",
+ "dev": true,
"engines": {
"node": ">=14"
},
@@ -9501,6 +9533,7 @@
"version": "6.2.0",
"resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz",
"integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==",
+ "dev": true,
"funding": [
{
"type": "opencollective",
@@ -9525,6 +9558,7 @@
"version": "6.1.2",
"resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz",
"integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==",
+ "dev": true,
"dependencies": {
"cssesc": "^3.0.0",
"util-deprecate": "^1.0.2"
@@ -9536,7 +9570,8 @@
"node_modules/postcss-value-parser": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
- "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ=="
+ "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==",
+ "dev": true
},
"node_modules/postgres-array": {
"version": "2.0.0",
@@ -9778,6 +9813,7 @@
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
"integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
+ "dev": true,
"funding": [
{
"type": "github",
@@ -9975,6 +10011,7 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
"integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==",
+ "dev": true,
"dependencies": {
"pify": "^2.3.0"
}
@@ -10118,6 +10155,7 @@
"version": "1.22.8",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
"integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==",
+ "dev": true,
"dependencies": {
"is-core-module": "^2.13.0",
"path-parse": "^1.0.7",
@@ -10198,6 +10236,7 @@
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
"integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
+ "dev": true,
"engines": {
"iojs": ">=1.0.0",
"node": ">=0.10.0"
@@ -10276,6 +10315,7 @@
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
"integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
+ "dev": true,
"funding": [
{
"type": "github",
@@ -11027,6 +11067,7 @@
"version": "3.35.0",
"resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz",
"integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==",
+ "dev": true,
"dependencies": {
"@jridgewell/gen-mapping": "^0.3.2",
"commander": "^4.0.0",
@@ -11048,6 +11089,7 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
"integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "dev": true,
"dependencies": {
"balanced-match": "^1.0.0"
}
@@ -11056,6 +11098,7 @@
"version": "10.4.5",
"resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz",
"integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==",
+ "dev": true,
"dependencies": {
"foreground-child": "^3.1.0",
"jackspeak": "^3.1.2",
@@ -11075,6 +11118,7 @@
"version": "9.0.5",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
"integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
+ "dev": true,
"dependencies": {
"brace-expansion": "^2.0.1"
},
@@ -11192,6 +11236,7 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
"integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
+ "dev": true,
"engines": {
"node": ">= 0.4"
},
@@ -11229,6 +11274,7 @@
"version": "3.4.14",
"resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.14.tgz",
"integrity": "sha512-IcSvOcTRcUtQQ7ILQL5quRDg7Xs93PdJEk1ZLbhhvJc7uj/OAhYOnruEiwnGgBvUtaUAJ8/mhSw1o8L2jCiENA==",
+ "dev": true,
"dependencies": {
"@alloc/quick-lru": "^5.2.0",
"arg": "^5.0.2",
@@ -11593,7 +11639,8 @@
"node_modules/ts-interface-checker": {
"version": "0.1.13",
"resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz",
- "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA=="
+ "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==",
+ "dev": true
},
"node_modules/tsconfig-paths": {
"version": "3.15.0",
@@ -12451,7 +12498,8 @@
"@alloc/quick-lru": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz",
- "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw=="
+ "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==",
+ "dev": true
},
"@apidevtools/json-schema-ref-parser": {
"version": "9.1.2",
@@ -12673,8 +12721,7 @@
"@firebase/auth-types": {
"version": "0.12.2",
"resolved": "https://registry.npmjs.org/@firebase/auth-types/-/auth-types-0.12.2.tgz",
- "integrity": "sha512-qsEBaRMoGvHO10unlDJhaKSuPn4pyoTtlQuP1ghZfzB6rNQPuhp/N/DcFZxm9i4v0SogjCbf9reWupwIvfmH6w==",
- "requires": {}
+ "integrity": "sha512-qsEBaRMoGvHO10unlDJhaKSuPn4pyoTtlQuP1ghZfzB6rNQPuhp/N/DcFZxm9i4v0SogjCbf9reWupwIvfmH6w=="
},
"@firebase/component": {
"version": "0.6.10",
@@ -12773,8 +12820,7 @@
"@firebase/firestore-types": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/@firebase/firestore-types/-/firestore-types-3.0.2.tgz",
- "integrity": "sha512-wp1A+t5rI2Qc/2q7r2ZpjUXkRVPtGMd6zCLsiWurjsQpqPgFin3AhNibKcIzoF2rnToNa/XYtyWXuifjOOwDgg==",
- "requires": {}
+ "integrity": "sha512-wp1A+t5rI2Qc/2q7r2ZpjUXkRVPtGMd6zCLsiWurjsQpqPgFin3AhNibKcIzoF2rnToNa/XYtyWXuifjOOwDgg=="
},
"@firebase/functions": {
"version": "0.11.9",
@@ -12832,8 +12878,7 @@
"@firebase/installations-types": {
"version": "0.5.2",
"resolved": "https://registry.npmjs.org/@firebase/installations-types/-/installations-types-0.5.2.tgz",
- "integrity": "sha512-que84TqGRZJpJKHBlF2pkvc1YcXrtEDOVGiDjovP/a3s6W4nlbohGXEsBJo0JCeeg/UG9A+DEZVDUV9GpklUzA==",
- "requires": {}
+ "integrity": "sha512-que84TqGRZJpJKHBlF2pkvc1YcXrtEDOVGiDjovP/a3s6W4nlbohGXEsBJo0JCeeg/UG9A+DEZVDUV9GpklUzA=="
},
"@firebase/logger": {
"version": "0.4.3",
@@ -12957,8 +13002,7 @@
"@firebase/storage-types": {
"version": "0.8.2",
"resolved": "https://registry.npmjs.org/@firebase/storage-types/-/storage-types-0.8.2.tgz",
- "integrity": "sha512-0vWu99rdey0g53lA7IShoA2Lol1jfnPovzLDUBuon65K7uKG9G+L5uO05brD9pMw+l4HRFw23ah3GwTGpEav6g==",
- "requires": {}
+ "integrity": "sha512-0vWu99rdey0g53lA7IShoA2Lol1jfnPovzLDUBuon65K7uKG9G+L5uO05brD9pMw+l4HRFw23ah3GwTGpEav6g=="
},
"@firebase/util": {
"version": "1.10.1",
@@ -13116,8 +13160,7 @@
"@heroicons/react": {
"version": "2.1.5",
"resolved": "https://registry.npmjs.org/@heroicons/react/-/react-2.1.5.tgz",
- "integrity": "sha512-FuzFN+BsHa+7OxbvAERtgBTNeZpUjgM/MIizfVkSCL2/edriN0Hx/DWRCR//aPYwO5QX/YlgLGXk+E3PcfZwjA==",
- "requires": {}
+ "integrity": "sha512-FuzFN+BsHa+7OxbvAERtgBTNeZpUjgM/MIizfVkSCL2/edriN0Hx/DWRCR//aPYwO5QX/YlgLGXk+E3PcfZwjA=="
},
"@humanwhocodes/config-array": {
"version": "0.13.0",
@@ -13315,6 +13358,7 @@
"version": "0.3.5",
"resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz",
"integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==",
+ "dev": true,
"requires": {
"@jridgewell/set-array": "^1.2.1",
"@jridgewell/sourcemap-codec": "^1.4.10",
@@ -13324,22 +13368,26 @@
"@jridgewell/resolve-uri": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
- "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw=="
+ "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
+ "dev": true
},
"@jridgewell/set-array": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
- "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A=="
+ "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
+ "dev": true
},
"@jridgewell/sourcemap-codec": {
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz",
- "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ=="
+ "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==",
+ "dev": true
},
"@jridgewell/trace-mapping": {
"version": "0.3.25",
"resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
"integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
+ "dev": true,
"requires": {
"@jridgewell/resolve-uri": "^3.1.0",
"@jridgewell/sourcemap-codec": "^1.4.14"
@@ -13429,6 +13477,7 @@
"version": "2.1.5",
"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
"integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
+ "dev": true,
"requires": {
"@nodelib/fs.stat": "2.0.5",
"run-parallel": "^1.1.9"
@@ -13437,12 +13486,14 @@
"@nodelib/fs.stat": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
- "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A=="
+ "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
+ "dev": true
},
"@nodelib/fs.walk": {
"version": "1.2.8",
"resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
"integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
+ "dev": true,
"requires": {
"@nodelib/fs.scandir": "2.1.5",
"fastq": "^1.6.0"
@@ -14071,8 +14122,7 @@
"version": "5.3.2",
"resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
"integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
- "dev": true,
- "requires": {}
+ "dev": true
},
"agent-base": {
"version": "7.1.1",
@@ -14258,7 +14308,8 @@
"arg": {
"version": "5.0.2",
"resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
- "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg=="
+ "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==",
+ "dev": true
},
"argparse": {
"version": "2.0.1",
@@ -14776,7 +14827,8 @@
"camelcase-css": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz",
- "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA=="
+ "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==",
+ "dev": true
},
"caniuse-lite": {
"version": "1.0.30001679",
@@ -15408,7 +15460,8 @@
"cssesc": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
- "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg=="
+ "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
+ "dev": true
},
"csstype": {
"version": "3.1.3",
@@ -15564,7 +15617,8 @@
"didyoumean": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz",
- "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw=="
+ "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==",
+ "dev": true
},
"discontinuous-range": {
"version": "1.0.0",
@@ -15574,7 +15628,8 @@
"dlv": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz",
- "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA=="
+ "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==",
+ "dev": true
},
"doctrine": {
"version": "3.0.0",
@@ -16165,8 +16220,7 @@
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.0.0.tgz",
"integrity": "sha512-hIOwI+5hYGpJEc4uPRmz2ulCjAGD/N13Lukkh8cLV0i2IRk/bdZDYjgLVHj+U9Z704kLIdIO6iueGvxNur0sgw==",
- "dev": true,
- "requires": {}
+ "dev": true
},
"eslint-scope": {
"version": "7.2.2",
@@ -16430,6 +16484,7 @@
"version": "3.3.1",
"resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz",
"integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==",
+ "dev": true,
"requires": {
"@nodelib/fs.stat": "^2.0.2",
"@nodelib/fs.walk": "^1.2.3",
@@ -16442,6 +16497,7 @@
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
"integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "dev": true,
"requires": {
"is-glob": "^4.0.1"
}
@@ -16492,6 +16548,7 @@
"version": "1.17.1",
"resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz",
"integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==",
+ "dev": true,
"requires": {
"reusify": "^1.0.4"
}
@@ -17028,6 +17085,7 @@
"version": "6.0.2",
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
"integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
+ "dev": true,
"requires": {
"is-glob": "^4.0.3"
}
@@ -17519,6 +17577,7 @@
"version": "2.15.1",
"resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz",
"integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==",
+ "dev": true,
"requires": {
"hasown": "^2.0.2"
}
@@ -17828,7 +17887,8 @@
"jiti": {
"version": "1.21.6",
"resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.6.tgz",
- "integrity": "sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w=="
+ "integrity": "sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==",
+ "dev": true
},
"jju": {
"version": "1.4.0",
@@ -18116,7 +18176,8 @@
"lilconfig": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz",
- "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ=="
+ "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==",
+ "dev": true
},
"limiter": {
"version": "1.1.5",
@@ -18126,7 +18187,8 @@
"lines-and-columns": {
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
- "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg=="
+ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
+ "dev": true
},
"locate-path": {
"version": "6.0.0",
@@ -18309,8 +18371,7 @@
"lucide-react": {
"version": "0.456.0",
"resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.456.0.tgz",
- "integrity": "sha512-DIIGJqTT5X05sbAsQ+OhA8OtJYyD4NsEMCA/HQW/Y6ToPQ7gwbtujIoeAaup4HpHzV35SQOarKAWH8LYglB6eA==",
- "requires": {}
+ "integrity": "sha512-DIIGJqTT5X05sbAsQ+OhA8OtJYyD4NsEMCA/HQW/Y6ToPQ7gwbtujIoeAaup4HpHzV35SQOarKAWH8LYglB6eA=="
},
"make-dir": {
"version": "3.1.0",
@@ -18399,7 +18460,8 @@
"merge2": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
- "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg=="
+ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
+ "dev": true
},
"meshoptimizer": {
"version": "0.18.1",
@@ -18416,6 +18478,7 @@
"version": "4.0.8",
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
"integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
+ "dev": true,
"requires": {
"braces": "^3.0.3",
"picomatch": "^2.3.1"
@@ -19122,7 +19185,8 @@
"path-parse": {
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
- "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="
+ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
+ "dev": true
},
"path-scurry": {
"version": "1.11.1",
@@ -19170,8 +19234,7 @@
"pg-pool": {
"version": "3.7.0",
"resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.7.0.tgz",
- "integrity": "sha512-ZOBQForurqh4zZWjrgSwwAtzJ7QiRX0ovFkZr2klsen3Nm0aoh33Ls0fzfv3imeH/nw/O27cjdz5kzYJfeGp/g==",
- "requires": {}
+ "integrity": "sha512-ZOBQForurqh4zZWjrgSwwAtzJ7QiRX0ovFkZr2klsen3Nm0aoh33Ls0fzfv3imeH/nw/O27cjdz5kzYJfeGp/g=="
},
"pg-protocol": {
"version": "1.7.0",
@@ -19216,12 +19279,14 @@
"pify": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
- "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog=="
+ "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
+ "dev": true
},
"pirates": {
"version": "4.0.6",
"resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz",
- "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg=="
+ "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==",
+ "dev": true
},
"portfinder": {
"version": "1.0.32",
@@ -19261,6 +19326,7 @@
"version": "8.4.47",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz",
"integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==",
+ "dev": true,
"requires": {
"nanoid": "^3.3.7",
"picocolors": "^1.1.0",
@@ -19271,6 +19337,7 @@
"version": "15.1.0",
"resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz",
"integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==",
+ "dev": true,
"requires": {
"postcss-value-parser": "^4.0.0",
"read-cache": "^1.0.0",
@@ -19281,6 +19348,7 @@
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz",
"integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==",
+ "dev": true,
"requires": {
"camelcase-css": "^2.0.1"
}
@@ -19289,6 +19357,7 @@
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz",
"integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==",
+ "dev": true,
"requires": {
"lilconfig": "^3.0.0",
"yaml": "^2.3.4"
@@ -19297,7 +19366,8 @@
"lilconfig": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz",
- "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow=="
+ "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==",
+ "dev": true
}
}
},
@@ -19305,6 +19375,7 @@
"version": "6.2.0",
"resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz",
"integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==",
+ "dev": true,
"requires": {
"postcss-selector-parser": "^6.1.1"
}
@@ -19313,6 +19384,7 @@
"version": "6.1.2",
"resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz",
"integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==",
+ "dev": true,
"requires": {
"cssesc": "^3.0.0",
"util-deprecate": "^1.0.2"
@@ -19321,7 +19393,8 @@
"postcss-value-parser": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
- "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ=="
+ "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==",
+ "dev": true
},
"postgres-array": {
"version": "2.0.0",
@@ -19508,7 +19581,8 @@
"queue-microtask": {
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
- "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A=="
+ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
+ "dev": true
},
"queue-tick": {
"version": "1.0.1",
@@ -19616,8 +19690,7 @@
"react-icons": {
"version": "5.3.0",
"resolved": "https://registry.npmjs.org/react-icons/-/react-icons-5.3.0.tgz",
- "integrity": "sha512-DnUk8aFbTyQPSkCfF8dbX6kQjXA9DktMeJqfjrg6cK9vwQVMxmcA3BfP4QoiztVmEHtwlTgLFsPuH2NskKT6eg==",
- "requires": {}
+ "integrity": "sha512-DnUk8aFbTyQPSkCfF8dbX6kQjXA9DktMeJqfjrg6cK9vwQVMxmcA3BfP4QoiztVmEHtwlTgLFsPuH2NskKT6eg=="
},
"react-is": {
"version": "16.13.1",
@@ -19658,6 +19731,7 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
"integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==",
+ "dev": true,
"requires": {
"pify": "^2.3.0"
}
@@ -19770,6 +19844,7 @@
"version": "1.22.8",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
"integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==",
+ "dev": true,
"requires": {
"is-core-module": "^2.13.0",
"path-parse": "^1.0.7",
@@ -19827,7 +19902,8 @@
"reusify": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
- "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw=="
+ "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
+ "dev": true
},
"rfdc": {
"version": "1.4.1",
@@ -19891,6 +19967,7 @@
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
"integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
+ "dev": true,
"requires": {
"queue-microtask": "^1.2.2"
}
@@ -20432,6 +20509,7 @@
"version": "3.35.0",
"resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz",
"integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==",
+ "dev": true,
"requires": {
"@jridgewell/gen-mapping": "^0.3.2",
"commander": "^4.0.0",
@@ -20446,6 +20524,7 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
"integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "dev": true,
"requires": {
"balanced-match": "^1.0.0"
}
@@ -20454,6 +20533,7 @@
"version": "10.4.5",
"resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz",
"integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==",
+ "dev": true,
"requires": {
"foreground-child": "^3.1.0",
"jackspeak": "^3.1.2",
@@ -20467,6 +20547,7 @@
"version": "9.0.5",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
"integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
+ "dev": true,
"requires": {
"brace-expansion": "^2.0.1"
}
@@ -20555,13 +20636,13 @@
"supports-preserve-symlinks-flag": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
- "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w=="
+ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
+ "dev": true
},
"suspend-react": {
"version": "0.1.3",
"resolved": "https://registry.npmjs.org/suspend-react/-/suspend-react-0.1.3.tgz",
- "integrity": "sha512-aqldKgX9aZqpoDp3e8/BZ8Dm7x1pJl+qI3ZKxDN0i/IQTWUwBx/ManmlVJ3wowqbno6c2bmiIfs+Um6LbsjJyQ==",
- "requires": {}
+ "integrity": "sha512-aqldKgX9aZqpoDp3e8/BZ8Dm7x1pJl+qI3ZKxDN0i/IQTWUwBx/ManmlVJ3wowqbno6c2bmiIfs+Um6LbsjJyQ=="
},
"sweetalert2": {
"version": "11.14.5",
@@ -20577,6 +20658,7 @@
"version": "3.4.14",
"resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.14.tgz",
"integrity": "sha512-IcSvOcTRcUtQQ7ILQL5quRDg7Xs93PdJEk1ZLbhhvJc7uj/OAhYOnruEiwnGgBvUtaUAJ8/mhSw1o8L2jCiENA==",
+ "dev": true,
"requires": {
"@alloc/quick-lru": "^5.2.0",
"arg": "^5.0.2",
@@ -20605,8 +20687,7 @@
"tailwindcss-animate": {
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/tailwindcss-animate/-/tailwindcss-animate-1.0.7.tgz",
- "integrity": "sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==",
- "requires": {}
+ "integrity": "sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA=="
},
"tapable": {
"version": "2.2.1",
@@ -20867,13 +20948,13 @@
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.0.tgz",
"integrity": "sha512-032cPxaEKwM+GT3vA5JXNzIaizx388rhsSW79vGRNGXfRRAdEAn2mvk36PvK5HnOchyWZ7afLEXqYCvPCrzuzQ==",
- "dev": true,
- "requires": {}
+ "dev": true
},
"ts-interface-checker": {
"version": "0.1.13",
"resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz",
- "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA=="
+ "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==",
+ "dev": true
},
"tsconfig-paths": {
"version": "3.15.0",
@@ -21408,8 +21489,7 @@
"ws": {
"version": "7.5.10",
"resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz",
- "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==",
- "requires": {}
+ "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ=="
},
"xdg-basedir": {
"version": "4.0.0",
@@ -21490,8 +21570,7 @@
"zustand": {
"version": "3.7.2",
"resolved": "https://registry.npmjs.org/zustand/-/zustand-3.7.2.tgz",
- "integrity": "sha512-PIJDIZKtokhof+9+60cpockVOq05sJzHCriyvaLBmEJixseQ1a5Kdov6fWZfWOu5SK9c+FhH1jU0tntLxRJYMA==",
- "requires": {}
+ "integrity": "sha512-PIJDIZKtokhof+9+60cpockVOq05sJzHCriyvaLBmEJixseQ1a5Kdov6fWZfWOu5SK9c+FhH1jU0tntLxRJYMA=="
}
}
}