From c890a72b7a1bb7d280c5f81d53bcec2d16bc3a73 Mon Sep 17 00:00:00 2001 From: Divyansh Gusain Date: Fri, 11 Oct 2024 17:41:59 +0530 Subject: [PATCH 1/3] feat(blog): This commit implements the add and remove cart function --- app/dashboard/page.tsx | 243 +---------------------------- app/layout.tsx | 3 + app/services/apple/page.tsx | 127 +++++++++++---- app/services/instantbook/page.tsx | 138 ++++++++++++----- app/services/others/page.tsx | 116 +++++++++++--- app/services/themeProvider.tsx | 37 +++++ app/services/windows/page.tsx | 113 ++++++++++---- components/Cart/index.tsx | 121 +++++++++++++++ components/Navbar/index.tsx | 250 ++++++++++++++++++++++++++++++ components/Search/index.tsx | 93 +++++++++++ components/Toast/index.tsx | 19 +++ next-env.d.ts | 1 - package.json | 8 + 13 files changed, 915 insertions(+), 354 deletions(-) create mode 100644 app/services/themeProvider.tsx create mode 100644 components/Cart/index.tsx create mode 100644 components/Navbar/index.tsx create mode 100644 components/Search/index.tsx create mode 100644 components/Toast/index.tsx diff --git a/app/dashboard/page.tsx b/app/dashboard/page.tsx index c31a9e6..fe6d3c3 100644 --- a/app/dashboard/page.tsx +++ b/app/dashboard/page.tsx @@ -1,17 +1,16 @@ "use client"; -import React, { useEffect, useState } from "react"; +import React, { useEffect, useLayoutEffect, useState } from "react"; import Link from "next/link"; import { CCard, CCardImage, CCardBody } from "@coreui/react"; -import { signOut, useSession } from "next-auth/react"; +import { useSession } from "next-auth/react"; import { useRouter } from "next/navigation"; import FAQPage from "@/components/Faq/Faqs"; -import Image from "next/image"; const Dashboard = () => { const { data: session, status } = useSession(); const router = useRouter(); - useEffect(() => { + useLayoutEffect(() => { if (status === "loading") return; if (!session) { router.push("/"); @@ -38,234 +37,8 @@ const Dashboard = () => { return (
- {/* Navbar Section */} - - {/* Cards Section */} -
+
{/* Cards Row */}
@@ -274,7 +47,7 @@ const Dashboard = () => { src="https://img.freepik.com/premium-vector/online-reservation-booking-icon-black-vector-graphics_1178600-116.jpg" /> -
+
{" "} {/* Adjust the margin as needed */} { src="https://cdn.pixabay.com/photo/2018/05/08/21/29/windows-3384024_1280.png" /> -
+
{" "} {/* Adjust the margin as needed */} { src="https://cdn.pixabay.com/photo/2018/05/08/21/28/apple-3384010_1280.png" /> -
+
{" "} {/* Adjust the margin as needed */} { src="https://cdn.pixabay.com/photo/2021/08/23/22/40/refresh-6568981_1280.png" /> -
+
{" "} {/* Adjust the margin as needed */} + {isHomepage &&
} {/* Render Header only on homepage */} @@ -71,10 +72,12 @@ export default function RootLayout({ {isHomepage &&} + ); } import { Providers } from "./providers"; +import ServiceProvider from "./services/themeProvider"; diff --git a/app/services/apple/page.tsx b/app/services/apple/page.tsx index e1902dd..3e77454 100644 --- a/app/services/apple/page.tsx +++ b/app/services/apple/page.tsx @@ -1,45 +1,112 @@ -// app/apple-issues/page.tsx - "use client"; -import React, { useState } from "react"; +import React, { useState } from 'react'; import Link from "next/link"; -const appleIssues = [ - { title: "Screen Issue", rating: 4.9, reviews: "4K reviews", price: "₹199", time: "50 mins" }, - { title: "Battery Drain Issue", rating: 4.85, reviews: "3K reviews", price: "₹199", time: "55 mins" }, - { title: "Software Issue", rating: 4.75, reviews: "2K reviews", price: "₹149", time: "40 mins" }, +import DownloadDoneIcon from '@mui/icons-material/DownloadDone'; +import ShoppingCartCheckoutIcon from '@mui/icons-material/ShoppingCartCheckout'; +import RemoveShoppingCartIcon from '@mui/icons-material/RemoveShoppingCart'; + +import Snackbar from '@mui/material/Snackbar'; +import Search from "@/components/Search" +import { useServiceContext} from '../themeProvider'; +import Toastr from '@/components/Toast'; + +const appleIssue = [ + { id : 1, title: "Screen Issue", rating: 4.9, reviews: "4K reviews", price: "₹199", time: "50 mins" }, + { id : 2, title: "Battery Drain Issue", rating: 4.85, reviews: "3K reviews", price: "₹199", time: "55 mins" }, + { id : 3, title: "Software Issue", rating: 4.75, reviews: "2K reviews", price: "₹149", time: "40 mins" }, ]; const AppleIssuesPage = () => { - const [cart, setCart] = useState([]); + const [appleIssues, setappleIssues] = useState(appleIssue) + const [cart, setCart] = useState(() => { + return appleIssue.reduce((acc, item) => { + acc[item.id] = false; + return acc; + }, {}); + }); + + + const {products, setProducts} = useServiceContext() + const [added, setAdded] = useState(null); -// const addToCart = (issue) => { -// setCart([...cart, issue]); -// alert(${issue.title} has been added to your cart!); -// }; + const addToCart = (id) => { + + setProducts([...products, appleIssue.find(item => item.id === id)]); + setCart(prev => ({...prev, [id]: true })); + setAdded(true) + }; + + const removeFromCart = (id: number) => { // Specify the type for id + setProducts(products.filter(item=> item.id !== id)); // Ensure prev is an array of Product + setCart(prev => ({...prev, [id]: false})); + setAdded(false) + }; + + console.log(products); + + return ( -
-

Apple Laptop Issues

-
- {appleIssues.map((issue, index) => ( -
-
-

{issue.title}

-

⭐ {issue.rating} ({issue.reviews})

-

{issue.price} • {issue.time}

+ <> + { + added === true && + + } + { + added === false && + + } +
+
+

Apple Laptop Issues

+ +
+
+ {appleIssues.map((issue, index) => ( +
+
+

{issue.title}

+

⭐ {issue.rating} ({issue.reviews})

+

{issue.price} • {issue.time}

+
+
+ { + if(cart[issue.id]) + removeFromCart(issue.id); + else + addToCart(issue.id); + }} + > + { cart[issue.id] ? + : + + } + + + { cart[issue.id] && + + } +
- -
- ))} + ))} +
+ + Go to Cart +
- - Go to Cart - -
+ ); }; diff --git a/app/services/instantbook/page.tsx b/app/services/instantbook/page.tsx index 4b659ce..bc8fba0 100644 --- a/app/services/instantbook/page.tsx +++ b/app/services/instantbook/page.tsx @@ -1,48 +1,106 @@ -import React from 'react'; +"use client"; + +import React, { useState } from 'react'; +import Link from "next/link"; + +import DownloadDoneIcon from '@mui/icons-material/DownloadDone'; +import ShoppingCartCheckoutIcon from '@mui/icons-material/ShoppingCartCheckout'; +import RemoveShoppingCartIcon from '@mui/icons-material/RemoveShoppingCart'; + +import Search from "@/components/Search"; +import { useServiceContext } from '../themeProvider'; +import Toastr from '@/components/Toast'; + + +const instantIssuesData = [ + { id: 7, title: "Instant Book for Desktop", rating: 4.8, reviews: "2K reviews", price: "₹159", time: "45 mins" }, + { id: 8, title: "Instant Book for Windows Laptop", rating: 4.84, reviews: "19K reviews", price: "₹159", time: "45 mins" }, + { id: 9, title: "Instant Book for MacBook/Apple Laptop", rating: 4.69, reviews: "224 reviews", price: "₹159", time: "45 mins" }, +]; const InstantIssuesPage = () => { - return ( -
-

Instant Issues

-
- - - -
-
- ); -}; + const [instantIssues, setInstantIssues] = useState(instantIssuesData); + const [cart, setCart] = useState(() => { + return instantIssuesData.reduce((acc, item) => { + acc[item.id] = false; + return acc; + }, {}); + }); + + const { products, setProducts } = useServiceContext(); + const [added, setAdded] = useState(null); + + const addToCart = (id) => { + setProducts([...products, instantIssuesData.find(item => item.id === id)]); + setCart(prev => ({ ...prev, [id]: true })); + setAdded(true) + }; + + const removeFromCart = (id) => { + setProducts(products.filter(item => item.id !== id)); + setCart(prev => ({ ...prev, [id]: false })); + setAdded(false) + }; -const ServiceCard = ({ title, rating, reviews, price, time }) => { return ( -
-
-

{title}

-

⭐ {rating} ({reviews} reviews)

-

₹{price} • {time}

+ <> + { + added === true && + + } + { + added === false && + + } +
+
+

Instant Issues

+ +
+
+ {instantIssues.map((issue) => ( +
+
+

{issue.title}

+

⭐ {issue.rating} ({issue.reviews})

+

{issue.price} • {issue.time}

+
+
+ { + if (cart[issue.id]) + removeFromCart(issue.id); + else + addToCart(issue.id); + }} + > + {cart[issue.id] ? + : + + } + + + {cart[issue.id] && + + } +
+
+ ))} +
+ + Go to Cart +
- -
+ ); }; diff --git a/app/services/others/page.tsx b/app/services/others/page.tsx index c604efe..0c152f7 100644 --- a/app/services/others/page.tsx +++ b/app/services/others/page.tsx @@ -1,30 +1,104 @@ -import React from 'react'; +"use client"; + +import React, { useState } from 'react'; import Link from 'next/link'; +import RemoveShoppingCartIcon from '@mui/icons-material/RemoveShoppingCart'; +import ShoppingCartCheckoutIcon from '@mui/icons-material/ShoppingCartCheckout'; +import DownloadDoneIcon from '@mui/icons-material/DownloadDone'; +import Search from "@/components/Search"; +import { useServiceContext } from '../themeProvider'; +import Toastr from '@/components/Toast'; + +const othersIssue = [ + { id: 4, title: "Regular Cleaning", rating: 4.75, reviews: 1200, price: "₹159", time: "30 mins" }, + { id: 5, title: "Regular Check-Up", rating: 4.82, reviews: 3100, price: "₹159", time: "30 mins" }, + { id: 6, title: "Upgrading Components", rating: 4.90, reviews: 1800, price: "₹159", time: "60 mins" } +]; const OthersIssuesPage = () => { - return ( -
-

Others Issues

-
- - - -
-
- ); -}; + const [othersIssues, setOthersIssues] = useState(othersIssue); + const [cart, setCart] = useState(() => { + return othersIssue.reduce((acc, item) => { + acc[item.id] = false; + return acc; + }, {}); + }); + const { products, setProducts } = useServiceContext(); + + const [added, setAdded] = useState(null); + + const addToCart = (id) => { + setProducts([...products, othersIssue.find(item => item.id === id)]); + setCart(prev => ({ ...prev, [id]: true })); + setAdded(true) + }; + + const removeFromCart = (id) => { + setProducts(products.filter(item => item.id !== id)); + setCart(prev => ({ ...prev, [id]: false })); + setAdded(false) + }; -const ServiceCard = ({ title, rating, reviews, price, time }) => { return ( -
-
-

{title}

-

⭐ {rating} ({reviews} reviews)

-

₹{price} • {time}

+
+ { + added === true && + + } + { + added === false && + + } +
+
+

Others Issues

+ +
+
+ {othersIssues.map((issue) => ( +
+
+

{issue.title}

+

⭐ {issue.rating} ({issue.reviews} reviews)

+

{issue.price} • {issue.time}

+
+
+ { + if (cart[issue.id]) + removeFromCart(issue.id); + else + addToCart(issue.id); + }} + > + {cart[issue.id] ? + : + + } + + + {cart[issue.id] && + + } +
+
+ ))} +
+ + Go to Cart +
-
); }; diff --git a/app/services/themeProvider.tsx b/app/services/themeProvider.tsx new file mode 100644 index 0000000..30e8e06 --- /dev/null +++ b/app/services/themeProvider.tsx @@ -0,0 +1,37 @@ +"use client" + +import Navbar from '@/components/Navbar'; +// context/ServiceContext.tsx +import { createContext, ReactNode, useContext, useState } from 'react'; + +// Define a type for the context value +interface ServiceContextType { + products: any[]; // Replace `any` with the specific type of your product if possible + setProducts: (products: any[]) => void; +} + +// Create the context with a default value +export const ServiceContext = createContext(undefined); + +export default function ServiceProvider({ children }: { children: ReactNode }) { + const [products, setProducts] = useState([]); // Initialize with an empty array + + return ( +
+ + + {children} + + +
+ ); +} + +// Custom hook to use the ServiceContext +export const useServiceContext = () => { + const context = useContext(ServiceContext); + if (!context) { + throw new Error('useServiceContext must be used within a ServiceProvider'); + } + return context; +}; diff --git a/app/services/windows/page.tsx b/app/services/windows/page.tsx index 9e24235..f15aa7c 100644 --- a/app/services/windows/page.tsx +++ b/app/services/windows/page.tsx @@ -4,42 +4,101 @@ import React, { useState } from "react"; import Link from "next/link"; +import DownloadDoneIcon from '@mui/icons-material/DownloadDone'; +import ShoppingCartCheckoutIcon from '@mui/icons-material/ShoppingCartCheckout'; +import RemoveShoppingCartIcon from '@mui/icons-material/RemoveShoppingCart'; +import Search from "@/components/Search"; +import { useServiceContext } from '../themeProvider'; +import Toastr from '@/components/Toast'; -const windowsIssues = [ - { title: "Display Issue", rating: 4.8, reviews: "6K reviews", price: "₹159", time: "45 mins" }, - { title: "Keyboard Issue", rating: 4.81, reviews: "6K reviews", price: "₹159", time: "30 mins" }, - { title: "Battery Issue", rating: 4.7, reviews: "5K reviews", price: "₹199", time: "60 mins" }, +const windowsIssue = [ + { id: 10, title: "Display Issue", rating: 4.8, reviews: "6K reviews", price: "₹159", time: "45 mins" }, + { id: 11, title: "Keyboard Issue", rating: 4.81, reviews: "6K reviews", price: "₹159", time: "30 mins" }, + { id: 12, title: "Battery Issue", rating: 4.7, reviews: "5K reviews", price: "₹199", time: "60 mins" }, ]; const WindowsIssuesPage = () => { - const [cart, setCart] = useState([]); + const [windowsIssues, setWindowsIssues] = useState(windowsIssue); + const [cart, setCart] = useState(() => { + return windowsIssue.reduce((acc, item) => { + acc[item.id] = false; + return acc; + }, {}); + }); + const { products, setProducts } = useServiceContext(); + const [added, setAdded] = useState(null); -// const addToCart = (issue) => { -// setCart([...cart, issue]); -// alert(${issue.title} has been added to your cart!); -// }; + const addToCart = (id) => { + setProducts([...products, windowsIssue.find(item => item.id === id)]); + setCart(prev => ({ ...prev, [id]: true })); + setAdded(true) + }; + + const removeFromCart = (id) => { + setProducts(products.filter(item => item.id !== id)); + setCart(prev => ({ ...prev, [id]: false })); + setAdded(false) + }; return ( -
-

Windows Laptop Issues

-
- {windowsIssues.map((issue, index) => ( -
-
-

{issue.title}

-

⭐ {issue.rating} ({issue.reviews})

-

{issue.price} • {issue.time}

+ <> + { + added === true && + + } + { + added === false && + + } +
+
+

Windows Laptop Issues

+ +
+
+ {windowsIssues.map((issue, index) => ( +
+
+

{issue.title}

+

⭐ {issue.rating} ({issue.reviews})

+

{issue.price} • {issue.time}

+
+
+ { + if (cart[issue.id]) + removeFromCart(issue.id); + else + addToCart(issue.id); + }} + > + {cart[issue.id] ? + : + + } + + + {cart[issue.id] && + + } +
- -
- ))} + ))} +
+ + Go to Cart +
- - Go to Cart - -
+ ); }; diff --git a/components/Cart/index.tsx b/components/Cart/index.tsx new file mode 100644 index 0000000..44aace2 --- /dev/null +++ b/components/Cart/index.tsx @@ -0,0 +1,121 @@ +'use client' + +import { Dialog, DialogBackdrop, DialogPanel, DialogTitle } from '@headlessui/react' +import { XMarkIcon } from '@heroicons/react/24/outline' +import { useServiceContext } from '@/app/services/themeProvider' + + +export default function Cart({open, setOpen}) { + const { products } = useServiceContext() + const total = products.reduce( + (accumulator, currentValue) => accumulator + parseInt(currentValue.price.slice(1)), + 0, + ); + + return ( + + + +
+
+
+ +
+
+
+ Cart +
+ +
+
+ +
+
+
    + {products.map((product) => ( +
  • + {/*
    + {product.imageAlt} +
    */} + +
    +
    +
    +

    + {product.title} +

    +

    {product.price}

    +
    + {/*

    {product.color}

    */} +
    +
    + {/*

    Qty {product.quantity}

    */} + +
    + +
    +
    +
    +
  • + ))} +
+
+
+
+ +
+
+

Subtotal

+

Rs{total}

+
+

Shipping and taxes calculated at checkout.

+ +
+

+ or{' '} + +

+
+
+
+
+
+
+
+
+ ) +} diff --git a/components/Navbar/index.tsx b/components/Navbar/index.tsx new file mode 100644 index 0000000..6ffacd4 --- /dev/null +++ b/components/Navbar/index.tsx @@ -0,0 +1,250 @@ +"use client" +import Image from 'next/image'; +import React, { useState } from 'react' +import Link from "next/link"; +import { signOut } from 'next-auth/react'; +import Cart from "@/components/Cart" + +const Navbar = () => { + const [dropdownVisible, setDropdownVisible] = useState(false); + const [open, setOpen] = useState(false); + + const toggleDropdown = (): void => { + setDropdownVisible((prev) => !prev); + }; + return ( + + ) +} + +export default Navbar diff --git a/components/Search/index.tsx b/components/Search/index.tsx new file mode 100644 index 0000000..1fe1338 --- /dev/null +++ b/components/Search/index.tsx @@ -0,0 +1,93 @@ +import * as React from 'react'; +import { styled, alpha } from '@mui/material/styles'; +import AppBar from '@mui/material/AppBar'; +import Box from '@mui/material/Box'; +import Toolbar from '@mui/material/Toolbar'; +import IconButton from '@mui/material/IconButton'; +import Typography from '@mui/material/Typography'; +import InputBase from '@mui/material/InputBase'; +import Badge from '@mui/material/Badge'; +import MenuItem from '@mui/material/MenuItem'; +import Menu from '@mui/material/Menu'; +import MenuIcon from '@mui/icons-material/Menu'; +import SearchIcon from '@mui/icons-material/Search'; +import AccountCircle from '@mui/icons-material/AccountCircle'; +import MailIcon from '@mui/icons-material/Mail'; +import NotificationsIcon from '@mui/icons-material/Notifications'; +import MoreIcon from '@mui/icons-material/MoreVert'; + +const Search = styled('div')(({ theme }) => ({ + position: 'relative', + borderRadius: theme.shape.borderRadius, + backgroundColor: alpha(theme.palette.common.white, 0.15), + '&:hover': { + backgroundColor: alpha(theme.palette.common.white, 0.25), + }, + marginRight: theme.spacing(2), + marginLeft: 0, + width: '100%', + [theme.breakpoints.up('sm')]: { + marginLeft: theme.spacing(3), + width: 'auto', + }, +})); + +const SearchIconWrapper = styled('div')(({ theme }) => ({ + padding: theme.spacing(0, 2), + height: '100%', + position: 'absolute', + pointerEvents: 'none', + display: 'flex', + alignItems: 'center', + justifyContent: 'center', +})); + +const StyledInputBase = styled(InputBase)(({ theme }) => ({ + color: 'inherit', + '& .MuiInputBase-input': { + padding: theme.spacing(1, 1, 1, 0), + // vertical padding + font size from searchIcon + paddingLeft: `calc(1em + ${theme.spacing(4)})`, + transition: theme.transitions.create('width'), + width: '100%', + [theme.breakpoints.up('md')]: { + width: '20ch', + }, + }, +})); + +export default function Index({ issue, setIssue, originalIssues }) { + const [text, setText] = React.useState(""); + + const handleTextChange = (e) => { + const searchText = e.target.value.toLowerCase(); + setText(searchText); + + // If search text is empty, show all original issues + if (searchText === "") { + setIssue(originalIssues); // Reset to the original list of issues + } else { + // Filter the issues based on the search text matching the initial characters + const filteredIssues = originalIssues.filter((item) => + item.title.toLowerCase().startsWith(searchText) // Filter issues whose title starts with searchText + ); + setIssue(filteredIssues); + } + }; + + return ( +
+ + + + + + +
+ ); +} diff --git a/components/Toast/index.tsx b/components/Toast/index.tsx new file mode 100644 index 0000000..9831d41 --- /dev/null +++ b/components/Toast/index.tsx @@ -0,0 +1,19 @@ +import React from 'react' +import { Toast } from "flowbite-react"; +import { HiFire } from "react-icons/hi"; + +const index = ({text}) => { + return ( +
+ +
+ +
+
{text}
+ +
+
+ ) +} + +export default index diff --git a/next-env.d.ts b/next-env.d.ts index fd36f94..4f11a03 100644 --- a/next-env.d.ts +++ b/next-env.d.ts @@ -1,6 +1,5 @@ /// /// -/// // NOTE: This file should not be edited // see https://nextjs.org/docs/basic-features/typescript for more information. diff --git a/package.json b/package.json index dbc37c3..28ced92 100644 --- a/package.json +++ b/package.json @@ -13,8 +13,15 @@ }, "dependencies": { "@coreui/react": "^5.4.0", + "@emotion/react": "^11.13.3", + "@emotion/styled": "^11.13.0", + "@headlessui/react": "^2.1.10", + "@heroicons/react": "^2.1.5", + "@mui/icons-material": "^6.1.3", + "@mui/material": "^6.1.3", "axios": "^1.7.7", "bcrypt": "^5.1.1", + "flowbite-react": "^0.10.2", "jsonwebtoken": "^9.0.2", "mdb-react-ui-kit": "^9.0.0", "mongodb": "^6.9.0", @@ -24,6 +31,7 @@ "next-themes": "^0.2.1", "react": "^18.2.0", "react-dom": "^18.2.0", + "react-icons": "^5.3.0", "react-modal-video": "^2.0.0", "react-router-dom": "^6.26.2" }, From aecd9bcfe5d7ca8c0b89fcfc93e0c2310378436d Mon Sep 17 00:00:00 2001 From: Divyansh Gusain Date: Sat, 12 Oct 2024 23:48:51 +0530 Subject: [PATCH 2/3] feat(blog): Enchancing service pages #29 --- app/dashboard/page.tsx | 2 ++ app/layout.tsx | 1 + app/services/apple/page.tsx | 1 - app/services/layout.tsx | 14 ++++++++++++++ app/services/themeProvider.tsx | 2 -- components/Navbar/index.tsx | 9 ++++++++- 6 files changed, 25 insertions(+), 4 deletions(-) create mode 100644 app/services/layout.tsx diff --git a/app/dashboard/page.tsx b/app/dashboard/page.tsx index fe6d3c3..ac34713 100644 --- a/app/dashboard/page.tsx +++ b/app/dashboard/page.tsx @@ -5,6 +5,7 @@ import { CCard, CCardImage, CCardBody } from "@coreui/react"; import { useSession } from "next-auth/react"; import { useRouter } from "next/navigation"; import FAQPage from "@/components/Faq/Faqs"; +import Navbar from "@/components/Navbar"; const Dashboard = () => { const { data: session, status } = useSession(); @@ -37,6 +38,7 @@ const Dashboard = () => { return (
+ {/* Cards Section */}
{/* Cards Row */} diff --git a/app/layout.tsx b/app/layout.tsx index cd60830..ccbdb4d 100644 --- a/app/layout.tsx +++ b/app/layout.tsx @@ -80,4 +80,5 @@ export default function RootLayout({ import { Providers } from "./providers"; import ServiceProvider from "./services/themeProvider"; +import Navbar from "@/components/Navbar"; diff --git a/app/services/apple/page.tsx b/app/services/apple/page.tsx index 3e77454..eceaaea 100644 --- a/app/services/apple/page.tsx +++ b/app/services/apple/page.tsx @@ -7,7 +7,6 @@ import DownloadDoneIcon from '@mui/icons-material/DownloadDone'; import ShoppingCartCheckoutIcon from '@mui/icons-material/ShoppingCartCheckout'; import RemoveShoppingCartIcon from '@mui/icons-material/RemoveShoppingCart'; -import Snackbar from '@mui/material/Snackbar'; import Search from "@/components/Search" import { useServiceContext} from '../themeProvider'; import Toastr from '@/components/Toast'; diff --git a/app/services/layout.tsx b/app/services/layout.tsx new file mode 100644 index 0000000..f7bb131 --- /dev/null +++ b/app/services/layout.tsx @@ -0,0 +1,14 @@ +import Navbar from "@/components/Navbar" + +export default function ServiceLayout({ + children, + }: { + children: React.ReactNode + }) { + return ( +
+ + {children} +
+ ) +} \ No newline at end of file diff --git a/app/services/themeProvider.tsx b/app/services/themeProvider.tsx index 30e8e06..b3a0faf 100644 --- a/app/services/themeProvider.tsx +++ b/app/services/themeProvider.tsx @@ -19,9 +19,7 @@ export default function ServiceProvider({ children }: { children: ReactNode }) { return (
- {children} -
); diff --git a/components/Navbar/index.tsx b/components/Navbar/index.tsx index 6ffacd4..31cd7d8 100644 --- a/components/Navbar/index.tsx +++ b/components/Navbar/index.tsx @@ -1,6 +1,6 @@ "use client" import Image from 'next/image'; -import React, { useState } from 'react' +import React, { useEffect, useState } from 'react' import Link from "next/link"; import { signOut } from 'next-auth/react'; import Cart from "@/components/Cart" @@ -9,6 +9,13 @@ const Navbar = () => { const [dropdownVisible, setDropdownVisible] = useState(false); const [open, setOpen] = useState(false); + useEffect(() => { + setOpen(false); + }, []) + + console.log(open); + + const toggleDropdown = (): void => { setDropdownVisible((prev) => !prev); }; From f31f935764bd2aec6fd1474c40a64efdb1dd8877 Mon Sep 17 00:00:00 2001 From: Divyansh Gusain Date: Sun, 13 Oct 2024 21:19:32 +0530 Subject: [PATCH 3/3] feat(blog): pnmp install --- pnpm-lock.yaml | 840 ++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 837 insertions(+), 3 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7efa6a6..cde5005 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -11,12 +11,33 @@ importers: '@coreui/react': specifier: ^5.4.0 version: 5.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@emotion/react': + specifier: ^11.13.3 + version: 11.13.3(@types/react@18.3.11)(react@18.3.1) + '@emotion/styled': + specifier: ^11.13.0 + version: 11.13.0(@emotion/react@11.13.3(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react@18.3.1) + '@headlessui/react': + specifier: ^2.1.10 + version: 2.1.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@heroicons/react': + specifier: ^2.1.5 + version: 2.1.5(react@18.3.1) + '@mui/icons-material': + specifier: ^6.1.3 + version: 6.1.3(@mui/material@6.1.3(@emotion/react@11.13.3(@types/react@18.3.11)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.11)(react@18.3.1) + '@mui/material': + specifier: ^6.1.3 + version: 6.1.3(@emotion/react@11.13.3(@types/react@18.3.11)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) axios: specifier: ^1.7.7 version: 1.7.7 bcrypt: specifier: ^5.1.1 version: 5.1.1 + flowbite-react: + specifier: ^0.10.2 + version: 0.10.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(tailwindcss@3.4.13) jsonwebtoken: specifier: ^9.0.2 version: 9.0.2 @@ -44,6 +65,9 @@ importers: react-dom: specifier: ^18.2.0 version: 18.3.1(react@18.3.1) + react-icons: + specifier: ^5.3.0 + version: 5.3.0(react@18.3.1) react-modal-video: specifier: ^2.0.0 version: 2.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -104,6 +128,18 @@ packages: resolution: {integrity: sha512-0xZJFNE5XMpENsgfHYTw8FbX4kv53mFLn2i3XPoq69LyhYSCBJtitaHx9QnsVTrsogI4Z3+HtEfZ2/GFPOtf5g==} engines: {node: '>=6.9.0'} + '@babel/generator@7.25.7': + resolution: {integrity: sha512-5Dqpl5fyV9pIAD62yK9P7fcA768uVPUyrQmqpqstHWgMma4feF1x/oFysBCVZLY5wJ2GkMUCdsNDnGZrPoR6rA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-imports@7.25.7': + resolution: {integrity: sha512-o0xCgpNmRohmnoWKQ0Ij8IdddjyBFE4T2kagL/x6M3+4zUgc+4qTOUBoNe4XxDskt1HPKO007ZPiMgLDq2s7Kw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-string-parser@7.25.7': + resolution: {integrity: sha512-CbkjYdsJNHFk8uqpEkpCvRs3YRp9tY6FmFY7wLMSYuGYkrdUi7r2lc4/wqsvlHoMznX3WJ9IP8giGPq68T/Y6g==} + engines: {node: '>=6.9.0'} + '@babel/helper-validator-identifier@7.25.7': resolution: {integrity: sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg==} engines: {node: '>=6.9.0'} @@ -112,10 +148,27 @@ packages: resolution: {integrity: sha512-iYyACpW3iW8Fw+ZybQK+drQre+ns/tKpXbNESfrhNnPLIklLbXr7MYJ6gPEd0iETGLOK+SxMjVvKb/ffmk+FEw==} engines: {node: '>=6.9.0'} + '@babel/parser@7.25.8': + resolution: {integrity: sha512-HcttkxzdPucv3nNFmfOOMfFf64KgdJVqm1KaCm25dPGMLElo9nsLvXeJECQg8UzPuBGLyTSA0ZzqCtDSzKTEoQ==} + engines: {node: '>=6.0.0'} + hasBin: true + '@babel/runtime@7.25.7': resolution: {integrity: sha512-FjoyLe754PMiYsFaN5C94ttGiOmBNYTf6pLr4xXHAT5uctHb092PBszndLDR5XA/jghQvn4n7JMHl7dmTgbm9w==} engines: {node: '>=6.9.0'} + '@babel/template@7.25.7': + resolution: {integrity: sha512-wRwtAgI3bAS+JGU2upWNL9lSlDcRCqD05BZ1n3X2ONLH1WilFP6O1otQjeMK/1g0pvYcXC7b/qVUB1keofjtZA==} + engines: {node: '>=6.9.0'} + + '@babel/traverse@7.25.7': + resolution: {integrity: sha512-jatJPT1Zjqvh/1FyJs6qAHL+Dzb7sTb+xr7Q+gM1b+1oBsMsQQ4FkVKb6dFlJvLlVssqkRzV05Jzervt9yhnzg==} + engines: {node: '>=6.9.0'} + + '@babel/types@7.25.8': + resolution: {integrity: sha512-JWtuCu8VQsMladxVz/P4HzHUGCAwpuqacmowgXFs5XjxIgKuNjnLokQzuVjlTvIzODaDmpjT3oxcC48vyk9EWg==} + engines: {node: '>=6.9.0'} + '@commitlint/cli@19.5.0': resolution: {integrity: sha512-gaGqSliGwB86MDmAAKAtV9SV1SHdmN8pnGq4EJU4+hLisQ7IFfx4jvU4s+pk6tl0+9bv6yT+CaZkufOinkSJIQ==} engines: {node: '>=v18'} @@ -196,12 +249,66 @@ packages: react: '>=17' react-dom: '>=17' + '@emotion/babel-plugin@11.12.0': + resolution: {integrity: sha512-y2WQb+oP8Jqvvclh8Q55gLUyb7UFvgv7eJfsj7td5TToBrIUtPay2kMrZi4xjq9qw2vD0ZR5fSho0yqoFgX7Rw==} + + '@emotion/cache@11.13.1': + resolution: {integrity: sha512-iqouYkuEblRcXmylXIwwOodiEK5Ifl7JcX7o6V4jI3iW4mLXX3dmt5xwBtIkJiQEXFAI+pC8X0i67yiPkH9Ucw==} + + '@emotion/hash@0.9.2': + resolution: {integrity: sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==} + '@emotion/is-prop-valid@0.8.8': resolution: {integrity: sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==} + '@emotion/is-prop-valid@1.3.1': + resolution: {integrity: sha512-/ACwoqx7XQi9knQs/G0qKvv5teDMhD7bXYns9N/wM8ah8iNb8jZ2uNO0YOgiq2o2poIvVtJS2YALasQuMSQ7Kw==} + '@emotion/memoize@0.7.4': resolution: {integrity: sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==} + '@emotion/memoize@0.9.0': + resolution: {integrity: sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==} + + '@emotion/react@11.13.3': + resolution: {integrity: sha512-lIsdU6JNrmYfJ5EbUCf4xW1ovy5wKQ2CkPRM4xogziOxH1nXxBSjpC9YqbFAP7circxMfYp+6x676BqWcEiixg==} + peerDependencies: + '@types/react': '*' + react: '>=16.8.0' + peerDependenciesMeta: + '@types/react': + optional: true + + '@emotion/serialize@1.3.2': + resolution: {integrity: sha512-grVnMvVPK9yUVE6rkKfAJlYZgo0cu3l9iMC77V7DW6E1DUIrU68pSEXRmFZFOFB1QFo57TncmOcvcbMDWsL4yA==} + + '@emotion/sheet@1.4.0': + resolution: {integrity: sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg==} + + '@emotion/styled@11.13.0': + resolution: {integrity: sha512-tkzkY7nQhW/zC4hztlwucpT8QEZ6eUzpXDRhww/Eej4tFfO0FxQYWRyg/c5CCXa4d/f174kqeXYjuQRnhzf6dA==} + peerDependencies: + '@emotion/react': ^11.0.0-rc.0 + '@types/react': '*' + react: '>=16.8.0' + peerDependenciesMeta: + '@types/react': + optional: true + + '@emotion/unitless@0.10.0': + resolution: {integrity: sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg==} + + '@emotion/use-insertion-effect-with-fallbacks@1.1.0': + resolution: {integrity: sha512-+wBOcIV5snwGgI2ya3u99D7/FJquOIniQT1IKyDsBmEgwvpxMNeS65Oib7OnE2d2aY+3BU4OiH+0Wchf8yk3Hw==} + peerDependencies: + react: '>=16.8.0' + + '@emotion/utils@1.4.1': + resolution: {integrity: sha512-BymCXzCG3r72VKJxaYVwOXATqXIZ85cuvg0YOUDxMGNrKc1DJRZk8MgV5wyXRyEayIMd4FuXJIUgTBXvDNW5cA==} + + '@emotion/weak-memoize@0.4.0': + resolution: {integrity: sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==} + '@eslint-community/eslint-utils@4.4.0': resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -220,6 +327,48 @@ packages: resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@floating-ui/core@1.6.6': + resolution: {integrity: sha512-Vkvsw6EcpMHjvZZdMkSY+djMGFbt7CRssW99Ne8tar2WLnZ/l3dbxeTShbLQj+/s35h+Qb4cmnob+EzwtjrXGQ==} + + '@floating-ui/core@1.6.8': + resolution: {integrity: sha512-7XJ9cPU+yI2QeLS+FCSlqNFZJq8arvswefkZrYI1yQBbftw6FyrZOxYSh+9S7z7TpeWlRt9zJ5IhM1WIL334jA==} + + '@floating-ui/dom@1.6.11': + resolution: {integrity: sha512-qkMCxSR24v2vGkhYDo/UzxfJN3D4syqSjyuTFz6C7XcpU1pASPRieNI0Kj5VP3/503mOfYiGY891ugBX1GlABQ==} + + '@floating-ui/react-dom@2.1.2': + resolution: {integrity: sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A==} + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + + '@floating-ui/react@0.26.21': + resolution: {integrity: sha512-7P5ncDIiYd6RrwpCDbKyFzvabM014QlzlumtDbK3Bck0UueC+Rp8BLS34qcGBcN1pZCTodl4QNnCVmKv4tSxfQ==} + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + + '@floating-ui/react@0.26.24': + resolution: {integrity: sha512-2ly0pCkZIGEQUq5H8bBK0XJmc1xIK/RM3tvVzY3GBER7IOD1UgmC2Y2tjj4AuS+TC+vTE1KJv2053290jua0Sw==} + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + + '@floating-ui/utils@0.2.8': + resolution: {integrity: sha512-kym7SodPp8/wloecOpcmSnWJsK7M0E5Wg8UcFA+uO4B9s5d0ywXOEro/8HM9x0rW+TljRzul/14UYz3TleT3ig==} + + '@headlessui/react@2.1.10': + resolution: {integrity: sha512-6mLa2fjMDAFQi+/R10B+zU3edsUk/MDtENB2zHho0lqKU1uzhAfJLUduWds4nCo8wbl3vULtC5rJfZAQ1yqIng==} + engines: {node: '>=10'} + peerDependencies: + react: ^18 + react-dom: ^18 + + '@heroicons/react@2.1.5': + resolution: {integrity: sha512-FuzFN+BsHa+7OxbvAERtgBTNeZpUjgM/MIizfVkSCL2/edriN0Hx/DWRCR//aPYwO5QX/YlgLGXk+E3PcfZwjA==} + peerDependencies: + react: '>= 16' + '@humanwhocodes/config-array@0.11.14': resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} engines: {node: '>=10.10.0'} @@ -262,6 +411,97 @@ packages: '@mongodb-js/saslprep@1.1.9': resolution: {integrity: sha512-tVkljjeEaAhCqTzajSdgbQ6gE6f3oneVwa3iXR6csiEwXXOFsiC6Uh9iAjAhXPtqa/XMDHWjjeNH/77m/Yq2dw==} + '@mui/core-downloads-tracker@6.1.3': + resolution: {integrity: sha512-ajMUgdfhTb++rwqj134Cq9f4SRN8oXUqMRnY72YBnXiXai3olJLLqETheRlq3MM8wCKrbq7g6j7iWL1VvP44VQ==} + + '@mui/icons-material@6.1.3': + resolution: {integrity: sha512-QBQCCIMSAv6IkArTg4Hg8q2sJRhHOci8oPAlkHWFlt2ghBdy3EqyLbIELLE/bhpqhX+E/ZkPYGIUQCd5/L0owA==} + engines: {node: '>=14.0.0'} + peerDependencies: + '@mui/material': ^6.1.3 + '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 + react: ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + + '@mui/material@6.1.3': + resolution: {integrity: sha512-loV5MBoMKLrK80JeWINmQ1A4eWoLv51O2dBPLJ260IAhupkB3Wol8lEQTEvvR2vO3o6xRHuXe1WaQEP6N3riqg==} + engines: {node: '>=14.0.0'} + peerDependencies: + '@emotion/react': ^11.5.0 + '@emotion/styled': ^11.3.0 + '@mui/material-pigment-css': ^6.1.3 + '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 + react: ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + '@emotion/react': + optional: true + '@emotion/styled': + optional: true + '@mui/material-pigment-css': + optional: true + '@types/react': + optional: true + + '@mui/private-theming@6.1.3': + resolution: {integrity: sha512-XK5OYCM0x7gxWb/WBEySstBmn+dE3YKX7U7jeBRLm6vHU5fGUd7GiJWRirpivHjOK9mRH6E1MPIVd+ze5vguKQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 + react: ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + + '@mui/styled-engine@6.1.3': + resolution: {integrity: sha512-i4yh9m+eMZE3cNERpDhVr6Wn73Yz6C7MH0eE2zZvw8d7EFkIJlCQNZd1xxGZqarD2DDq2qWHcjIOucWGhxACtA==} + engines: {node: '>=14.0.0'} + peerDependencies: + '@emotion/react': ^11.4.1 + '@emotion/styled': ^11.3.0 + react: ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + '@emotion/react': + optional: true + '@emotion/styled': + optional: true + + '@mui/system@6.1.3': + resolution: {integrity: sha512-ILaD9UsLTBLjMcep3OumJMXh1PYr7aqnkHm/L47bH46+YmSL1zWAX6tWG8swEQROzW2GvYluEMp5FreoxOOC6w==} + engines: {node: '>=14.0.0'} + peerDependencies: + '@emotion/react': ^11.5.0 + '@emotion/styled': ^11.3.0 + '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 + react: ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + '@emotion/react': + optional: true + '@emotion/styled': + optional: true + '@types/react': + optional: true + + '@mui/types@7.2.18': + resolution: {integrity: sha512-uvK9dWeyCJl/3ocVnTOS6nlji/Knj8/tVqVX03UVTpdmTJYu/s4jtDd9Kvv0nRGE0CUSNW1UYAci7PYypjealg==} + peerDependencies: + '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + + '@mui/utils@6.1.3': + resolution: {integrity: sha512-4JBpLkjprlKjN10DGb1aiy/ii9TKbQ601uSHtAmYFAS879QZgAD7vRnv/YBE4iBbc7NXzFgbQMCOFrupXWekIA==} + engines: {node: '>=14.0.0'} + peerDependencies: + '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 + react: ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@next/env@13.5.7': resolution: {integrity: sha512-uVuRqoj28Ys/AI/5gVEgRAISd0KWI0HRjOO1CTpNgmX3ZsHb5mdn14Y59yk0IxizXdo7ZjsI2S7qbWnO+GNBcA==} @@ -351,10 +591,59 @@ packages: '@popperjs/core@2.11.8': resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==} + '@react-aria/focus@3.18.3': + resolution: {integrity: sha512-WKUElg+5zS0D3xlVn8MntNnkzJql2J6MuzAMP8Sv5WTgFDse/XGR842dsxPTIyKKdrWVCRegCuwa4m3n/GzgJw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + + '@react-aria/interactions@3.22.3': + resolution: {integrity: sha512-RRUb/aG+P0IKTIWikY/SylB6bIbLZeztnZY2vbe7RAG5MgVaCgn5HQ45SI15GlTmhsFG8CnF6slJsUFJiNHpbQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + + '@react-aria/ssr@3.9.6': + resolution: {integrity: sha512-iLo82l82ilMiVGy342SELjshuWottlb5+VefO3jOQqQRNYnJBFpUSadswDPbRimSgJUZuFwIEYs6AabkP038fA==} + engines: {node: '>= 12'} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + + '@react-aria/utils@3.25.3': + resolution: {integrity: sha512-PR5H/2vaD8fSq0H/UB9inNbc8KDcVmW6fYAfSWkkn+OAdhTTMVKqXXrZuZBWyFfSD5Ze7VN6acr4hrOQm2bmrA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + + '@react-stately/utils@3.10.4': + resolution: {integrity: sha512-gBEQEIMRh5f60KCm7QKQ2WfvhB2gLUr9b72sqUdIZ2EG+xuPgaIlCBeSicvjmjBvYZwOjoOEnmIkcx2GHp/HWw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + + '@react-types/shared@3.25.0': + resolution: {integrity: sha512-OZSyhzU6vTdW3eV/mz5i6hQwQUhkRs7xwY2d1aqPvTdMe0+2cY7Fwp45PAiwYLEj73i9ro2FxF9qC4DvHGSCgQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + '@remix-run/router@1.19.2': resolution: {integrity: sha512-baiMx18+IMuD1yyvOGaHM9QrVUPGGG0jC+z+IPHnRJWUAUvaKuWKyE8gjDj2rzv3sz9zOGoRSPgeBVHRhZnBlA==} engines: {node: '>=14.0.0'} + '@rollup/plugin-node-resolve@15.3.0': + resolution: {integrity: sha512-9eO5McEICxMzJpDW9OnMYSv4Sta3hmt7VtBFz5zR9273suNOydOyq/FrGeGy+KsTRFm8w0SLVhzig2ILFT63Ag==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^2.78.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/pluginutils@5.1.2': + resolution: {integrity: sha512-/FIdS3PyZ39bjZlwqFnWqCOVnW7o963LtKMwQOD0NhQqw22gSr2YY1afu3FxRip4ZCZNsD5jq6Aaz6QV3D/Njw==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + '@rtsao/scc@1.1.0': resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} @@ -364,24 +653,45 @@ packages: '@swc/helpers@0.5.2': resolution: {integrity: sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==} + '@tanstack/react-virtual@3.10.8': + resolution: {integrity: sha512-VbzbVGSsZlQktyLrP5nxE+vE1ZR+U0NFAWPbJLoG2+DKPwd2D7dVICTVIIaYlJqX1ZCEnYDbaOpmMwbsyhBoIA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + + '@tanstack/virtual-core@3.10.8': + resolution: {integrity: sha512-PBu00mtt95jbKFi6Llk9aik8bnR3tR/oQP1o3TSi+iG//+Q2RTIzCEgKkHG8BB86kxMNW6O8wku+Lmi+QFR6jA==} + '@types/conventional-commits-parser@5.0.0': resolution: {integrity: sha512-loB369iXNmAZglwWATL+WRe+CRMmmBPtpolYzIebFaX4YA3x+BEfLqhUAV9WanycKI3TG1IMr5bMJDajDKLlUQ==} + '@types/estree@1.0.6': + resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} + '@types/json5@0.0.29': resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} '@types/node@20.16.11': resolution: {integrity: sha512-y+cTCACu92FyA5fgQSAI8A1H429g7aSK2HsO7K4XYUWc4dY5IUz55JSDIYT6/VsOLfGy8vmvQYC2hfb0iF16Uw==} + '@types/parse-json@4.0.2': + resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} + '@types/prop-types@15.7.13': resolution: {integrity: sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==} '@types/react-dom@18.3.0': resolution: {integrity: sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==} + '@types/react-transition-group@4.4.11': + resolution: {integrity: sha512-RM05tAniPZ5DZPzzNFP+DmrcOdD0efDUxMy3145oljWSl3x9ZV5vhme98gTxFrj2lhXvmGNnUiuDyJgY9IKkNA==} + '@types/react@18.3.11': resolution: {integrity: sha512-r6QZ069rFTjrEYgFdOck1gK7FLVsgJE7tTz0pQBczlBNUhBNk0MQH4UbnFSwjpQLMkLzgqvBBa+qGpLje16eTQ==} + '@types/resolve@1.20.2': + resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} + '@types/webidl-conversions@7.0.3': resolution: {integrity: sha512-CiJJvcRtIgzadHCYXw7dqEnMNRjhGZlYK05Mj9OyktqV8uVT8fD2BFOB7S1uwBE3Kj2Z+4UyPmFw/Ixgw/LAlA==} @@ -564,6 +874,10 @@ packages: resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} engines: {node: '>= 0.4'} + babel-plugin-macros@3.1.0: + resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==} + engines: {node: '>=10', npm: '>=6'} + balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} @@ -636,6 +950,9 @@ packages: resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} engines: {node: '>=10'} + classnames@2.5.1: + resolution: {integrity: sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==} + cli-cursor@5.0.0: resolution: {integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==} engines: {node: '>=18'} @@ -655,6 +972,10 @@ packages: resolution: {integrity: sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA==} engines: {node: '>=6'} + clsx@2.1.1: + resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} + engines: {node: '>=6'} + color-convert@1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} @@ -709,6 +1030,9 @@ packages: engines: {node: '>=16'} hasBin: true + convert-source-map@1.9.0: + resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} + cookie@0.5.0: resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} engines: {node: '>= 0.6'} @@ -724,6 +1048,10 @@ packages: cosmiconfig: '>=8.2' typescript: '>=4' + cosmiconfig@7.1.0: + resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} + engines: {node: '>=10'} + cosmiconfig@9.0.0: resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} engines: {node: '>=14'} @@ -764,6 +1092,10 @@ packages: resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} engines: {node: '>= 0.4'} + debounce@2.1.0: + resolution: {integrity: sha512-OkL3+0pPWCqoBc/nhO9u6TIQNTK44fnBnzuVtJAbp13Naxw9R6u21x+8tVTka87AhDZ3htqZ2pSSsZl9fqL2Wg==} + engines: {node: '>=18'} + debug@3.2.7: resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} peerDependencies: @@ -788,6 +1120,10 @@ packages: deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + deepmerge@4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} + engines: {node: '>=0.10.0'} + define-data-property@1.1.4: resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} engines: {node: '>= 0.4'} @@ -1015,6 +1351,9 @@ packages: resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} engines: {node: '>=4.0'} + estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + esutils@2.0.3: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} @@ -1053,6 +1392,9 @@ packages: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} + find-root@1.1.0: + resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==} + find-up@5.0.0: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} engines: {node: '>=10'} @@ -1068,6 +1410,19 @@ packages: flatted@3.3.1: resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} + flowbite-datepicker@1.3.0: + resolution: {integrity: sha512-CLVqzuoE2vkUvWYK/lJ6GzT0be5dlTbH3uuhVwyB67+PjqJWABm2wv68xhBf5BqjpBxvTSQ3mrmLHpPJ2tvrSQ==} + + flowbite-react@0.10.2: + resolution: {integrity: sha512-qkayK6IFmfH7zuuDnHmS0hJxLtL0KpW4vo4i/VQfZ6ZfaNlUsNLQxCGcmXwbZZtUm2WVw8x71aaDOAxftG9tmg==} + peerDependencies: + react: '>=18' + react-dom: '>=18' + tailwindcss: ^3 + + flowbite@2.5.1: + resolution: {integrity: sha512-7jP1jy9c3QP7y+KU9lc8ueMkTyUdMDvRP+lteSWgY5TigSZjf9K1kqZxmqjhbx2gBnFQxMl1GAjVThCa8cEpKA==} + follow-redirects@1.15.9: resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==} engines: {node: '>=4.0'} @@ -1184,6 +1539,10 @@ packages: resolution: {integrity: sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==} engines: {node: '>=18'} + globals@11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} + globals@13.24.0: resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} engines: {node: '>=8'} @@ -1238,6 +1597,9 @@ packages: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} + hoist-non-react-statics@3.3.2: + resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} + https-proxy-agent@5.0.1: resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} engines: {node: '>= 6'} @@ -1357,6 +1719,9 @@ packages: resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} engines: {node: '>= 0.4'} + is-module@1.0.0: + resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} + is-negative-zero@2.0.3: resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} engines: {node: '>= 0.4'} @@ -1447,6 +1812,11 @@ packages: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true + jsesc@3.0.2: + resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} + engines: {node: '>=6'} + hasBin: true + json-buffer@3.0.1: resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} @@ -1636,6 +2006,10 @@ packages: resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==} engines: {node: '>=18'} + mini-svg-data-uri@1.4.4: + resolution: {integrity: sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==} + hasBin: true + minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} @@ -2084,9 +2458,22 @@ packages: react-fast-compare@3.2.2: resolution: {integrity: sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==} + react-icons@5.2.1: + resolution: {integrity: sha512-zdbW5GstTzXaVKvGSyTaBalt7HSfuK5ovrzlpyiWHAFXndXTdd/1hdDHI4xBM1Mn7YriT6aqESucFl9kEXzrdw==} + peerDependencies: + react: '*' + + react-icons@5.3.0: + resolution: {integrity: sha512-DnUk8aFbTyQPSkCfF8dbX6kQjXA9DktMeJqfjrg6cK9vwQVMxmcA3BfP4QoiztVmEHtwlTgLFsPuH2NskKT6eg==} + peerDependencies: + react: '*' + react-is@16.13.1: resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + react-is@18.3.1: + resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} + react-modal-video@2.0.2: resolution: {integrity: sha512-Cfo3rEsxU5BL+Et/nRK7l2ajW/TLZOKTMPgpD8FDlhIxRR3yqo3Xdo1ufNxONApN0XL6iXqmMkqyEKmGOmcEiw==} peerDependencies: @@ -2263,6 +2650,10 @@ packages: resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} + source-map@0.5.7: + resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} + engines: {node: '>=0.10.0'} + sparse-bitfield@3.0.3: resolution: {integrity: sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==} @@ -2351,6 +2742,9 @@ packages: babel-plugin-macros: optional: true + stylis@4.2.0: + resolution: {integrity: sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==} + sucrase@3.35.0: resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} engines: {node: '>=16 || 14 >=14.17'} @@ -2368,6 +2762,12 @@ packages: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} + tabbable@6.2.0: + resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==} + + tailwind-merge@2.4.0: + resolution: {integrity: sha512-49AwoOQNKdqKPd9CViyH5wJoSKsCDjUlzL8DxuGp3P1FsGY36NJDAa18jLZcaHAUUuTj+JB8IAo8zWgBNvBF7A==} + tailwindcss@3.4.13: resolution: {integrity: sha512-KqjHOJKogOUt5Bs752ykCeiwvi0fKVkr5oqsFNt/8px/tA8scFPIlkygsf6jXrfCqGHz7VflA6+yytWuM+XhFw==} engines: {node: '>=14.0.0'} @@ -2401,6 +2801,10 @@ packages: tinyexec@0.3.0: resolution: {integrity: sha512-tVGE0mVJPGb0chKhqmsoosjsS+qUnJVGJpZgsHYQcGoPlG3B51R3PouqTgEGH2Dc9jjFyOqOpix6ZHNMXp1FZg==} + to-fast-properties@2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} + engines: {node: '>=4'} + to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} @@ -2555,6 +2959,10 @@ packages: yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + yaml@1.10.2: + resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} + engines: {node: '>= 6'} + yaml@2.5.1: resolution: {integrity: sha512-bLQOjaX/ADgQ20isPJRvF0iRUHIxVhYvr53Of7wGcWlO2jvtUlH5m87DsmulFVxRpNLOnI4tB6p/oh8D7kpn9Q==} engines: {node: '>= 14'} @@ -2585,6 +2993,22 @@ snapshots: '@babel/highlight': 7.25.7 picocolors: 1.1.0 + '@babel/generator@7.25.7': + dependencies: + '@babel/types': 7.25.8 + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + jsesc: 3.0.2 + + '@babel/helper-module-imports@7.25.7': + dependencies: + '@babel/traverse': 7.25.7 + '@babel/types': 7.25.8 + transitivePeerDependencies: + - supports-color + + '@babel/helper-string-parser@7.25.7': {} + '@babel/helper-validator-identifier@7.25.7': {} '@babel/highlight@7.25.7': @@ -2594,10 +3018,38 @@ snapshots: js-tokens: 4.0.0 picocolors: 1.1.0 + '@babel/parser@7.25.8': + dependencies: + '@babel/types': 7.25.8 + '@babel/runtime@7.25.7': dependencies: regenerator-runtime: 0.14.1 + '@babel/template@7.25.7': + dependencies: + '@babel/code-frame': 7.25.7 + '@babel/parser': 7.25.8 + '@babel/types': 7.25.8 + + '@babel/traverse@7.25.7': + dependencies: + '@babel/code-frame': 7.25.7 + '@babel/generator': 7.25.7 + '@babel/parser': 7.25.8 + '@babel/template': 7.25.7 + '@babel/types': 7.25.8 + debug: 4.3.7 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + + '@babel/types@7.25.8': + dependencies: + '@babel/helper-string-parser': 7.25.7 + '@babel/helper-validator-identifier': 7.25.7 + to-fast-properties: 2.0.0 + '@commitlint/cli@19.5.0(@types/node@20.16.11)(typescript@5.5.4)': dependencies: '@commitlint/format': 19.5.0 @@ -2720,14 +3172,97 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) + '@emotion/babel-plugin@11.12.0': + dependencies: + '@babel/helper-module-imports': 7.25.7 + '@babel/runtime': 7.25.7 + '@emotion/hash': 0.9.2 + '@emotion/memoize': 0.9.0 + '@emotion/serialize': 1.3.2 + babel-plugin-macros: 3.1.0 + convert-source-map: 1.9.0 + escape-string-regexp: 4.0.0 + find-root: 1.1.0 + source-map: 0.5.7 + stylis: 4.2.0 + transitivePeerDependencies: + - supports-color + + '@emotion/cache@11.13.1': + dependencies: + '@emotion/memoize': 0.9.0 + '@emotion/sheet': 1.4.0 + '@emotion/utils': 1.4.1 + '@emotion/weak-memoize': 0.4.0 + stylis: 4.2.0 + + '@emotion/hash@0.9.2': {} + '@emotion/is-prop-valid@0.8.8': dependencies: '@emotion/memoize': 0.7.4 optional: true + '@emotion/is-prop-valid@1.3.1': + dependencies: + '@emotion/memoize': 0.9.0 + '@emotion/memoize@0.7.4': optional: true + '@emotion/memoize@0.9.0': {} + + '@emotion/react@11.13.3(@types/react@18.3.11)(react@18.3.1)': + dependencies: + '@babel/runtime': 7.25.7 + '@emotion/babel-plugin': 11.12.0 + '@emotion/cache': 11.13.1 + '@emotion/serialize': 1.3.2 + '@emotion/use-insertion-effect-with-fallbacks': 1.1.0(react@18.3.1) + '@emotion/utils': 1.4.1 + '@emotion/weak-memoize': 0.4.0 + hoist-non-react-statics: 3.3.2 + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.11 + transitivePeerDependencies: + - supports-color + + '@emotion/serialize@1.3.2': + dependencies: + '@emotion/hash': 0.9.2 + '@emotion/memoize': 0.9.0 + '@emotion/unitless': 0.10.0 + '@emotion/utils': 1.4.1 + csstype: 3.1.3 + + '@emotion/sheet@1.4.0': {} + + '@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react@18.3.1)': + dependencies: + '@babel/runtime': 7.25.7 + '@emotion/babel-plugin': 11.12.0 + '@emotion/is-prop-valid': 1.3.1 + '@emotion/react': 11.13.3(@types/react@18.3.11)(react@18.3.1) + '@emotion/serialize': 1.3.2 + '@emotion/use-insertion-effect-with-fallbacks': 1.1.0(react@18.3.1) + '@emotion/utils': 1.4.1 + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.11 + transitivePeerDependencies: + - supports-color + + '@emotion/unitless@0.10.0': {} + + '@emotion/use-insertion-effect-with-fallbacks@1.1.0(react@18.3.1)': + dependencies: + react: 18.3.1 + + '@emotion/utils@1.4.1': {} + + '@emotion/weak-memoize@0.4.0': {} + '@eslint-community/eslint-utils@4.4.0(eslint@8.57.0)': dependencies: eslint: 8.57.0 @@ -2751,6 +3286,56 @@ snapshots: '@eslint/js@8.57.0': {} + '@floating-ui/core@1.6.6': + dependencies: + '@floating-ui/utils': 0.2.8 + + '@floating-ui/core@1.6.8': + dependencies: + '@floating-ui/utils': 0.2.8 + + '@floating-ui/dom@1.6.11': + dependencies: + '@floating-ui/core': 1.6.8 + '@floating-ui/utils': 0.2.8 + + '@floating-ui/react-dom@2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@floating-ui/dom': 1.6.11 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + '@floating-ui/react@0.26.21(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@floating-ui/react-dom': 2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@floating-ui/utils': 0.2.8 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + tabbable: 6.2.0 + + '@floating-ui/react@0.26.24(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@floating-ui/react-dom': 2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@floating-ui/utils': 0.2.8 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + tabbable: 6.2.0 + + '@floating-ui/utils@0.2.8': {} + + '@headlessui/react@2.1.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@floating-ui/react': 0.26.24(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/focus': 3.18.3(react@18.3.1) + '@react-aria/interactions': 3.22.3(react@18.3.1) + '@tanstack/react-virtual': 3.10.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + '@heroicons/react@2.1.5(react@18.3.1)': + dependencies: + react: 18.3.1 + '@humanwhocodes/config-array@0.11.14': dependencies: '@humanwhocodes/object-schema': 2.0.3 @@ -2808,6 +3393,91 @@ snapshots: dependencies: sparse-bitfield: 3.0.3 + '@mui/core-downloads-tracker@6.1.3': {} + + '@mui/icons-material@6.1.3(@mui/material@6.1.3(@emotion/react@11.13.3(@types/react@18.3.11)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.11)(react@18.3.1)': + dependencies: + '@babel/runtime': 7.25.7 + '@mui/material': 6.1.3(@emotion/react@11.13.3(@types/react@18.3.11)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.11 + + '@mui/material@6.1.3(@emotion/react@11.13.3(@types/react@18.3.11)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@babel/runtime': 7.25.7 + '@mui/core-downloads-tracker': 6.1.3 + '@mui/system': 6.1.3(@emotion/react@11.13.3(@types/react@18.3.11)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react@18.3.1) + '@mui/types': 7.2.18(@types/react@18.3.11) + '@mui/utils': 6.1.3(@types/react@18.3.11)(react@18.3.1) + '@popperjs/core': 2.11.8 + '@types/react-transition-group': 4.4.11 + clsx: 2.1.1 + csstype: 3.1.3 + prop-types: 15.8.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-is: 18.3.1 + react-transition-group: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + optionalDependencies: + '@emotion/react': 11.13.3(@types/react@18.3.11)(react@18.3.1) + '@emotion/styled': 11.13.0(@emotion/react@11.13.3(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react@18.3.1) + '@types/react': 18.3.11 + + '@mui/private-theming@6.1.3(@types/react@18.3.11)(react@18.3.1)': + dependencies: + '@babel/runtime': 7.25.7 + '@mui/utils': 6.1.3(@types/react@18.3.11)(react@18.3.1) + prop-types: 15.8.1 + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.11 + + '@mui/styled-engine@6.1.3(@emotion/react@11.13.3(@types/react@18.3.11)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react@18.3.1))(react@18.3.1)': + dependencies: + '@babel/runtime': 7.25.7 + '@emotion/cache': 11.13.1 + '@emotion/serialize': 1.3.2 + '@emotion/sheet': 1.4.0 + csstype: 3.1.3 + prop-types: 15.8.1 + react: 18.3.1 + optionalDependencies: + '@emotion/react': 11.13.3(@types/react@18.3.11)(react@18.3.1) + '@emotion/styled': 11.13.0(@emotion/react@11.13.3(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react@18.3.1) + + '@mui/system@6.1.3(@emotion/react@11.13.3(@types/react@18.3.11)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react@18.3.1)': + dependencies: + '@babel/runtime': 7.25.7 + '@mui/private-theming': 6.1.3(@types/react@18.3.11)(react@18.3.1) + '@mui/styled-engine': 6.1.3(@emotion/react@11.13.3(@types/react@18.3.11)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react@18.3.1))(react@18.3.1) + '@mui/types': 7.2.18(@types/react@18.3.11) + '@mui/utils': 6.1.3(@types/react@18.3.11)(react@18.3.1) + clsx: 2.1.1 + csstype: 3.1.3 + prop-types: 15.8.1 + react: 18.3.1 + optionalDependencies: + '@emotion/react': 11.13.3(@types/react@18.3.11)(react@18.3.1) + '@emotion/styled': 11.13.0(@emotion/react@11.13.3(@types/react@18.3.11)(react@18.3.1))(@types/react@18.3.11)(react@18.3.1) + '@types/react': 18.3.11 + + '@mui/types@7.2.18(@types/react@18.3.11)': + optionalDependencies: + '@types/react': 18.3.11 + + '@mui/utils@6.1.3(@types/react@18.3.11)(react@18.3.1)': + dependencies: + '@babel/runtime': 7.25.7 + '@mui/types': 7.2.18(@types/react@18.3.11) + '@types/prop-types': 15.7.13 + clsx: 2.1.1 + prop-types: 15.8.1 + react: 18.3.1 + react-is: 18.3.1 + optionalDependencies: + '@types/react': 18.3.11 + '@next/env@13.5.7': {} '@next/eslint-plugin-next@13.5.7': @@ -2864,8 +3534,62 @@ snapshots: '@popperjs/core@2.11.8': {} + '@react-aria/focus@3.18.3(react@18.3.1)': + dependencies: + '@react-aria/interactions': 3.22.3(react@18.3.1) + '@react-aria/utils': 3.25.3(react@18.3.1) + '@react-types/shared': 3.25.0(react@18.3.1) + '@swc/helpers': 0.5.2 + clsx: 2.1.1 + react: 18.3.1 + + '@react-aria/interactions@3.22.3(react@18.3.1)': + dependencies: + '@react-aria/ssr': 3.9.6(react@18.3.1) + '@react-aria/utils': 3.25.3(react@18.3.1) + '@react-types/shared': 3.25.0(react@18.3.1) + '@swc/helpers': 0.5.2 + react: 18.3.1 + + '@react-aria/ssr@3.9.6(react@18.3.1)': + dependencies: + '@swc/helpers': 0.5.2 + react: 18.3.1 + + '@react-aria/utils@3.25.3(react@18.3.1)': + dependencies: + '@react-aria/ssr': 3.9.6(react@18.3.1) + '@react-stately/utils': 3.10.4(react@18.3.1) + '@react-types/shared': 3.25.0(react@18.3.1) + '@swc/helpers': 0.5.2 + clsx: 2.1.1 + react: 18.3.1 + + '@react-stately/utils@3.10.4(react@18.3.1)': + dependencies: + '@swc/helpers': 0.5.2 + react: 18.3.1 + + '@react-types/shared@3.25.0(react@18.3.1)': + dependencies: + react: 18.3.1 + '@remix-run/router@1.19.2': {} + '@rollup/plugin-node-resolve@15.3.0': + dependencies: + '@rollup/pluginutils': 5.1.2 + '@types/resolve': 1.20.2 + deepmerge: 4.3.1 + is-module: 1.0.0 + resolve: 1.22.8 + + '@rollup/pluginutils@5.1.2': + dependencies: + '@types/estree': 1.0.6 + estree-walker: 2.0.2 + picomatch: 2.3.1 + '@rtsao/scc@1.1.0': {} '@rushstack/eslint-patch@1.10.4': {} @@ -2874,27 +3598,45 @@ snapshots: dependencies: tslib: 2.7.0 + '@tanstack/react-virtual@3.10.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@tanstack/virtual-core': 3.10.8 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + '@tanstack/virtual-core@3.10.8': {} + '@types/conventional-commits-parser@5.0.0': dependencies: '@types/node': 20.16.11 + '@types/estree@1.0.6': {} + '@types/json5@0.0.29': {} '@types/node@20.16.11': dependencies: undici-types: 6.19.8 + '@types/parse-json@4.0.2': {} + '@types/prop-types@15.7.13': {} '@types/react-dom@18.3.0': dependencies: '@types/react': 18.3.11 + '@types/react-transition-group@4.4.11': + dependencies: + '@types/react': 18.3.11 + '@types/react@18.3.11': dependencies: '@types/prop-types': 15.7.13 csstype: 3.1.3 + '@types/resolve@1.20.2': {} + '@types/webidl-conversions@7.0.3': {} '@types/whatwg-url@11.0.5': @@ -3113,6 +3855,12 @@ snapshots: axobject-query@4.1.0: {} + babel-plugin-macros@3.1.0: + dependencies: + '@babel/runtime': 7.25.7 + cosmiconfig: 7.1.0 + resolve: 1.22.8 + balanced-match@1.0.2: {} bcrypt@5.1.1: @@ -3194,6 +3942,8 @@ snapshots: chownr@2.0.0: {} + classnames@2.5.1: {} + cli-cursor@5.0.0: dependencies: restore-cursor: 5.1.0 @@ -3213,6 +3963,8 @@ snapshots: clsx@1.1.1: {} + clsx@2.1.1: {} + color-convert@1.9.3: dependencies: color-name: 1.1.3 @@ -3261,6 +4013,8 @@ snapshots: meow: 12.1.1 split2: 4.2.0 + convert-source-map@1.9.0: {} + cookie@0.5.0: {} core-js@3.38.1: {} @@ -3272,6 +4026,14 @@ snapshots: jiti: 1.21.6 typescript: 5.5.4 + cosmiconfig@7.1.0: + dependencies: + '@types/parse-json': 4.0.2 + import-fresh: 3.3.0 + parse-json: 5.2.0 + path-type: 4.0.0 + yaml: 1.10.2 + cosmiconfig@9.0.0(typescript@5.5.4): dependencies: env-paths: 2.2.1 @@ -3313,6 +4075,8 @@ snapshots: es-errors: 1.3.0 is-data-view: 1.0.1 + debounce@2.1.0: {} + debug@3.2.7: dependencies: ms: 2.1.3 @@ -3344,6 +4108,8 @@ snapshots: deep-is@0.1.4: {} + deepmerge@4.3.1: {} + define-data-property@1.1.4: dependencies: es-define-property: 1.0.0 @@ -3532,7 +4298,7 @@ snapshots: eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0(eslint@8.57.0))(eslint@8.57.0) - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0(eslint@8.57.0))(eslint@8.57.0))(eslint@8.57.0) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.0) eslint-plugin-jsx-a11y: 6.10.0(eslint@8.57.0) eslint-plugin-react: 7.37.1(eslint@8.57.0) eslint-plugin-react-hooks: 4.6.2(eslint@8.57.0) @@ -3563,7 +4329,7 @@ snapshots: is-bun-module: 1.2.1 is-glob: 4.0.3 optionalDependencies: - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0(eslint@8.57.0))(eslint@8.57.0))(eslint@8.57.0) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.0) transitivePeerDependencies: - '@typescript-eslint/parser' - eslint-import-resolver-node @@ -3581,7 +4347,7 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-import@2.31.0(@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0(eslint@8.57.0))(eslint@8.57.0))(eslint@8.57.0): + eslint-plugin-import@2.31.0(@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.0): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.8 @@ -3722,6 +4488,8 @@ snapshots: estraverse@5.3.0: {} + estree-walker@2.0.2: {} + esutils@2.0.3: {} eventemitter3@5.0.1: {} @@ -3766,6 +4534,8 @@ snapshots: dependencies: to-regex-range: 5.0.1 + find-root@1.1.0: {} + find-up@5.0.0: dependencies: locate-path: 6.0.0 @@ -3785,6 +4555,36 @@ snapshots: flatted@3.3.1: {} + flowbite-datepicker@1.3.0: + dependencies: + '@rollup/plugin-node-resolve': 15.3.0 + flowbite: 2.5.1 + transitivePeerDependencies: + - rollup + + flowbite-react@0.10.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(tailwindcss@3.4.13): + dependencies: + '@floating-ui/core': 1.6.6 + '@floating-ui/react': 0.26.21(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + classnames: 2.5.1 + debounce: 2.1.0 + flowbite: 2.5.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-icons: 5.2.1(react@18.3.1) + tailwind-merge: 2.4.0 + tailwindcss: 3.4.13 + transitivePeerDependencies: + - rollup + + flowbite@2.5.1: + dependencies: + '@popperjs/core': 2.11.8 + flowbite-datepicker: 1.3.0 + mini-svg-data-uri: 1.4.4 + transitivePeerDependencies: + - rollup + follow-redirects@1.15.9: {} for-each@0.3.3: @@ -3915,6 +4715,8 @@ snapshots: dependencies: ini: 4.1.1 + globals@11.12.0: {} + globals@13.24.0: dependencies: type-fest: 0.20.2 @@ -3965,6 +4767,10 @@ snapshots: dependencies: function-bind: 1.1.2 + hoist-non-react-statics@3.3.2: + dependencies: + react-is: 16.13.1 + https-proxy-agent@5.0.1: dependencies: agent-base: 6.0.2 @@ -4073,6 +4879,8 @@ snapshots: is-map@2.0.3: {} + is-module@1.0.0: {} + is-negative-zero@2.0.3: {} is-number-object@1.0.7: @@ -4153,6 +4961,8 @@ snapshots: dependencies: argparse: 2.0.1 + jsesc@3.0.2: {} + json-buffer@3.0.1: {} json-parse-even-better-errors@2.3.1: {} @@ -4341,6 +5151,8 @@ snapshots: mimic-function@5.0.1: {} + mini-svg-data-uri@1.4.4: {} + minimatch@3.1.2: dependencies: brace-expansion: 1.1.11 @@ -4708,8 +5520,18 @@ snapshots: react-fast-compare@3.2.2: {} + react-icons@5.2.1(react@18.3.1): + dependencies: + react: 18.3.1 + + react-icons@5.3.0(react@18.3.1): + dependencies: + react: 18.3.1 + react-is@16.13.1: {} + react-is@18.3.1: {} + react-modal-video@2.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: core-js: 3.38.1 @@ -4896,6 +5718,8 @@ snapshots: source-map-js@1.2.1: {} + source-map@0.5.7: {} + sparse-bitfield@3.0.3: dependencies: memory-pager: 1.5.0 @@ -4995,6 +5819,8 @@ snapshots: client-only: 0.0.1 react: 18.3.1 + stylis@4.2.0: {} + sucrase@3.35.0: dependencies: '@jridgewell/gen-mapping': 0.3.5 @@ -5015,6 +5841,10 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} + tabbable@6.2.0: {} + + tailwind-merge@2.4.0: {} + tailwindcss@3.4.13: dependencies: '@alloc/quick-lru': 5.2.0 @@ -5069,6 +5899,8 @@ snapshots: tinyexec@0.3.0: {} + to-fast-properties@2.0.0: {} + to-regex-range@5.0.1: dependencies: is-number: 7.0.0 @@ -5257,6 +6089,8 @@ snapshots: yallist@4.0.0: {} + yaml@1.10.2: {} + yaml@2.5.1: {} yargs-parser@21.1.1: {}