commit a024e4c506e9bd20d60773f5f7ec12a68723022d Author: Batyr Date: Sun Oct 12 22:42:17 2025 +0500 Sure! Pl diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..341eba7 --- /dev/null +++ b/.gitignore @@ -0,0 +1,35 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js +.yarn/install-state.gz + +# testing +/coverage + +# next.js +/.next/ + +# production +/build + +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# local env files +.env*.local + +# vercel +.vercel + +# typescript +*.tsbuildinfo +next-env.d.ts diff --git a/README.md b/README.md new file mode 100644 index 0000000..2a1e3f0 --- /dev/null +++ b/README.md @@ -0,0 +1,68 @@ +This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app). + +## Getting Started + +First, run the development server: + +```bash +npm run dev +# or +yarn dev +# or +pnpm dev +# or +bun dev +``` + +Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. + +You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file. + +This project uses [`next/font`](https://nextjs.org/docs/basic-features/font-optimization) to automatically optimize and load Inter, a custom Google Font. + +## Learn More + +To learn more about Next.js, take a look at the following resources: + +- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API. +- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial. + +You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome! + +## Deploy on Vercel + +The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js. + +Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details. + +=========================================================== + +## Sending to backend + +git commit + +```bash + +npm run build + +npm run out + +``` + +check build version on http://localhost:3000 + +git commit build + +git push + +======================================= + +## Serve on ubuntu + +```bash + +npm install serve@14.2.1 + +npm run out + +``` diff --git a/app/(root)/(mainMenu)/company/aboutus/loading.tsx b/app/(root)/(mainMenu)/company/aboutus/loading.tsx new file mode 100644 index 0000000..ae6b9e4 --- /dev/null +++ b/app/(root)/(mainMenu)/company/aboutus/loading.tsx @@ -0,0 +1,5 @@ +import Loader from "@/components/ui/Loader"; + +export default function Loading() { + return ; +} diff --git a/app/(root)/(mainMenu)/company/aboutus/page.tsx b/app/(root)/(mainMenu)/company/aboutus/page.tsx new file mode 100644 index 0000000..4364f9b --- /dev/null +++ b/app/(root)/(mainMenu)/company/aboutus/page.tsx @@ -0,0 +1,22 @@ +import { LayoutWithSidebar } from "@/components/page/layout-with-sidebar"; +import { getAbout } from "@/services/about"; +import { cookies } from "next/headers"; + +export default async function AboutPage() { + const lang = cookies().get("lang")?.value ?? "ru"; + + const data = await getAbout(lang); + + const aboutText = lang === "en" ? "About us" : "Коротко о нас"; + + return ( + +
+ + ); +} diff --git a/app/(root)/(mainMenu)/layout.tsx b/app/(root)/(mainMenu)/layout.tsx new file mode 100644 index 0000000..0509bf4 --- /dev/null +++ b/app/(root)/(mainMenu)/layout.tsx @@ -0,0 +1,21 @@ +import { Sidebar } from "@/components/ui/Sidebar"; +import React from "react"; + +const CompanyLayout = ({ children }: { children: React.ReactNode }) => { + return ( +
+
+
+ +
+ {children} +
+
+
+
+ ); +}; + +export default CompanyLayout; diff --git a/app/(root)/(mainMenu)/news/[id]/page.tsx b/app/(root)/(mainMenu)/news/[id]/page.tsx new file mode 100644 index 0000000..33513cb --- /dev/null +++ b/app/(root)/(mainMenu)/news/[id]/page.tsx @@ -0,0 +1,91 @@ +"use client"; + +import React from "react"; +import Image from "next/image"; + +import { GreenBtn } from "@/components/ui/Buttons"; + +import { useAppDispatch, useAppSelector } from "@/redux/hooks"; +import { selectHeader, setShowInput } from "@/redux/slices/headerSlice"; +import { baseAPI } from "@/lib/API"; +import { NewsPageType } from "@/lib/types/NewsPage.type"; +import Link from "next/link"; +import { BreadCrumbs } from "@/components/ui/bread-crumbs"; +import { Title } from "@/components/ui/title"; +import Loader from "@/components/ui/Loader"; + +export default function SingleNewsPage({ params }: { params: { id: string } }) { + const dispatch = useAppDispatch(); + + const { activeLang } = useAppSelector(selectHeader); + const [newsItemData, setNewsItemData] = React.useState(); + + const fetchData = async () => { + try { + const response = await fetch(`${baseAPI}news/${params.id}`, { + headers: { + "Accept-Language": activeLang.localization, + }, + }); + + if (!response.ok) { + throw new Error("error"); + } + + const data = await response.json(); + + setNewsItemData(data); + } catch (error) { + console.error(error); + } + }; + + React.useEffect(() => { + fetchData(); + dispatch(setShowInput(false)); + }, [activeLang.localization]); + + return ( +
+ + {newsItemData ? ( +
+ + </div> + ) : ( + <Loader /> + )} + + <div className="flex items-center justify-between mb-[44px] md:mb-8"> + <p className="text-[#919599]">{newsItemData?.data.published_at}</p> + </div> + + {newsItemData?.data?.featured_images?.[0]?.path && ( + <Image + height={480} + width={833} + src={newsItemData?.data.featured_images[0]?.path || ""} + alt="картинка" + className="mb-6 max-h-[480px] object-cover w-full" + /> + )} + <div className="mb-[50px]"> + {newsItemData && ( + <> + <div + dangerouslySetInnerHTML={{ + __html: newsItemData.data.content_html, + }} + className="text-[16px] flex flex-col gap-6 leading-[150%] seperate-news-html" + /> + <br /> + </> + )} + </div> + + <Link href="/news" className="flex justify-center"> + <GreenBtn text="Все новости" px /> + </Link> + </div> + ); +} diff --git a/app/(root)/(mainMenu)/news/page.tsx b/app/(root)/(mainMenu)/news/page.tsx new file mode 100644 index 0000000..e2fa483 --- /dev/null +++ b/app/(root)/(mainMenu)/news/page.tsx @@ -0,0 +1,137 @@ +"use client"; + +import React, { useEffect, useState } from "react"; + +import { useLang } from "@/utils/useLang"; +import { useAppSelector } from "@/redux/hooks"; +import { selectHeader } from "@/redux/slices/headerSlice"; +import { NewsData } from "@/lib/types/NewsData.type"; +import { baseAPI } from "@/lib/API"; +import Loader from "@/components/ui/Loader"; +import clsx from "clsx"; +import { Card } from "@/components/shared/Card"; +import { BorderBtn } from "@/components/ui/Buttons"; +import { Pagination } from "@/components/ui/Pagination"; +import { LayoutWithSidebar } from "@/components/page/layout-with-sidebar"; + +const News = () => { + const { activeLang } = useAppSelector(selectHeader); + + const menu = ["Новости", "СМИ о нас"]; + const [current, setCurrent] = React.useState<number>(1); + const [perPage, setPerPage] = React.useState<number>(6); + const [totalNews, setTotalNews] = React.useState<number>(0); + const [loading, setLoading] = useState(true); + + useEffect(() => { + window.scrollTo({ behavior: "smooth", top: 0 }); + }, [current]); + + const [newsData, setNewsData] = React.useState<NewsData>(); + + const fetchNews = async () => { + try { + setLoading(true); + const response = await fetch( + `${baseAPI}news?page=${current}&per_page=${perPage}`, + { + headers: { + "Accept-Language": activeLang.localization, + }, + } + ); + + if (!response.ok) { + throw new Error(`Fetch failed with status ${response.status}`); + } + + const data: NewsData = await response.json(); + setNewsData(data); + setTotalNews(data.meta.total); + } catch (error) { + console.error("Fetch error:", error); + } finally { + setLoading(false); + } + }; + + React.useEffect(() => { + fetchNews(); + }, [current, perPage, activeLang.localization]); + + const handleOnClickButton = () => { + setPerPage((prev) => prev + 6); + }; + + if (loading) { + return <Loader className="h-[500px] mx-auto w-full " />; + } + + return ( + <div> + <LayoutWithSidebar + title={useLang("News", "Новости", activeLang.localization)} + second={useLang("News", "Новости", activeLang.localization)} + cursor={false} + > + <div> + <div className="flex flex-col"> + <div className="flex flex-col"> + <div className="hidden sm:flex justify-between items-center pb-[5px] "> + <div className="pointer-events-none opacity-0 flex items-center gap-5"> + {menu.map((item, i) => ( + <p key={i} className="cursor-pointer leading-[130%]"> + {item} + </p> + ))} + </div> + </div> + + <div + className={clsx( + "mb-[48px] lg:mb-[108px]", + "grid grid-cols-1 sm:grid-cols-2 gap-5 sm:gap-8 lg:gap-y-10" + )} + > + {newsData && + newsData.data.map((item, i) => ( + <Card + key={i} + id={item.id} + title={item.title} + date={item.published_at} + img={ + item.featured_images.length > 0 + ? item.featured_images[0].path + : newsData.data[0].featured_images[0].path + } + /> + ))} + </div> + + <div className="hidden sm:flex flex-col gap-6 w-full max-w-[180px] mx-auto justify-center items-center"> + {newsData && totalNews > perPage && perPage >= totalNews && ( + <div onClick={handleOnClickButton}> + <BorderBtn px text={"Показать ещё"} /> + </div> + )} + + {newsData?.meta && ( + <Pagination + current={current} + setCurrent={setCurrent} + totalPage={newsData?.meta.total} + lastPage={newsData?.meta.last_page} + currentPage={newsData?.meta.current_page} + /> + )} + </div> + </div> + </div> + </div> + </LayoutWithSidebar> + </div> + ); +}; + +export default News; diff --git a/app/(root)/(mainMenu)/services/additional/page.tsx b/app/(root)/(mainMenu)/services/additional/page.tsx new file mode 100644 index 0000000..133a775 --- /dev/null +++ b/app/(root)/(mainMenu)/services/additional/page.tsx @@ -0,0 +1,20 @@ +import { LayoutWithSidebar } from "@/components/page/layout-with-sidebar"; +import { getServices } from "@/services/services"; + +export default async function AdvertisingPage() { + const { data } = await getServices(); + + return ( + <LayoutWithSidebar + title={data ? data[8].title : ""} + third={data ? data[8].title : ""} + > + <div + className="select-inner" + dangerouslySetInnerHTML={{ + __html: data ? data[8].content : "", + }} + /> + </LayoutWithSidebar> + ); +} diff --git a/app/(root)/(mainMenu)/services/advertising/page.tsx b/app/(root)/(mainMenu)/services/advertising/page.tsx new file mode 100644 index 0000000..c773694 --- /dev/null +++ b/app/(root)/(mainMenu)/services/advertising/page.tsx @@ -0,0 +1,20 @@ +import { LayoutWithSidebar } from "@/components/page/layout-with-sidebar"; +import { getServices } from "@/services/services"; + +export default async function AdvertisingPage() { + const data = await getServices(); + + return ( + <LayoutWithSidebar + title={data?.data ? data.data[1].title : ""} + third={data?.data ? data.data[1].title : ""} + > + <div + className="select-inner" + dangerouslySetInnerHTML={{ + __html: data ? data.data[1].content : "", + }} + /> + </LayoutWithSidebar> + ); +} diff --git a/app/(root)/(mainMenu)/services/business-tours/page.tsx b/app/(root)/(mainMenu)/services/business-tours/page.tsx new file mode 100644 index 0000000..7d55298 --- /dev/null +++ b/app/(root)/(mainMenu)/services/business-tours/page.tsx @@ -0,0 +1,20 @@ +import { LayoutWithSidebar } from "@/components/page/layout-with-sidebar"; +import { getServices } from "@/services/services"; + +export default async function BusinessTours() { + const { data } = await getServices(); + + return ( + <LayoutWithSidebar + title={data ? data[7].title : ""} + third={data ? data[7].title : ""} + > + <div + className="select-inner" + dangerouslySetInnerHTML={{ + __html: data ? data[7].content : "", + }} + /> + </LayoutWithSidebar> + ); +} diff --git a/app/(root)/(mainMenu)/services/certification/page.tsx b/app/(root)/(mainMenu)/services/certification/page.tsx new file mode 100644 index 0000000..0212ba5 --- /dev/null +++ b/app/(root)/(mainMenu)/services/certification/page.tsx @@ -0,0 +1,20 @@ +import { LayoutWithSidebar } from "@/components/page/layout-with-sidebar"; +import { getServices } from "@/services/services"; + +export default async function CertificationPage() { + const data = await getServices(); + + return ( + <LayoutWithSidebar + title={data?.data ? data.data[3].title : ""} + third={data?.data ? data.data[3].title : ""} + > + <div + className="select-inner" + dangerouslySetInnerHTML={{ + __html: data ? data.data[3].content : "", + }} + /> + </LayoutWithSidebar> + ); +} diff --git a/app/(root)/(mainMenu)/services/forwarding/page.tsx b/app/(root)/(mainMenu)/services/forwarding/page.tsx new file mode 100644 index 0000000..d7906ce --- /dev/null +++ b/app/(root)/(mainMenu)/services/forwarding/page.tsx @@ -0,0 +1,20 @@ +import { LayoutWithSidebar } from "@/components/page/layout-with-sidebar"; +import { getServices } from "@/services/services"; + +export default async function ForwardingPage() { + const data = await getServices(); + + return ( + <LayoutWithSidebar + title={data?.data ? data.data[4].title : ""} + third={data?.data ? data.data[4].title : ""} + > + <div + className="select-inner" + dangerouslySetInnerHTML={{ + __html: data ? data.data[4].content : "", + }} + /> + </LayoutWithSidebar> + ); +} diff --git a/app/(root)/(mainMenu)/services/hybrid-organizations/page.tsx b/app/(root)/(mainMenu)/services/hybrid-organizations/page.tsx new file mode 100644 index 0000000..9fc91b6 --- /dev/null +++ b/app/(root)/(mainMenu)/services/hybrid-organizations/page.tsx @@ -0,0 +1,20 @@ +import { LayoutWithSidebar } from "@/components/page/layout-with-sidebar"; +import { getServices } from "@/services/services"; + +export default async function HybridsPage() { + const data = await getServices(); + + return ( + <LayoutWithSidebar + title={data?.data ? data.data[2].title : ""} + third={data?.data ? data.data[2].title : ""} + > + <div + className="select-inner" + dangerouslySetInnerHTML={{ + __html: data ? data.data[2].content : "", + }} + /> + </LayoutWithSidebar> + ); +} diff --git a/app/(root)/(mainMenu)/services/loading.tsx b/app/(root)/(mainMenu)/services/loading.tsx new file mode 100644 index 0000000..ae6b9e4 --- /dev/null +++ b/app/(root)/(mainMenu)/services/loading.tsx @@ -0,0 +1,5 @@ +import Loader from "@/components/ui/Loader"; + +export default function Loading() { + return <Loader />; +} diff --git a/app/(root)/(mainMenu)/services/meetings/page.tsx b/app/(root)/(mainMenu)/services/meetings/page.tsx new file mode 100644 index 0000000..e7f90d1 --- /dev/null +++ b/app/(root)/(mainMenu)/services/meetings/page.tsx @@ -0,0 +1,20 @@ +import { LayoutWithSidebar } from "@/components/page/layout-with-sidebar"; +import { getServices } from "@/services/services"; + +export default async function MeetingsPage() { + const data = await getServices(); + + return ( + <LayoutWithSidebar + title={data?.data ? data.data[9].title : ""} + third={data?.data ? data.data[9].title : ""} + > + <div + className="select-inner" + dangerouslySetInnerHTML={{ + __html: data ? data.data[9].content : "", + }} + /> + </LayoutWithSidebar> + ); +} diff --git a/app/(root)/(mainMenu)/services/missions/page.tsx b/app/(root)/(mainMenu)/services/missions/page.tsx new file mode 100644 index 0000000..c70f454 --- /dev/null +++ b/app/(root)/(mainMenu)/services/missions/page.tsx @@ -0,0 +1,20 @@ +import { LayoutWithSidebar } from "@/components/page/layout-with-sidebar"; +import { getServices } from "@/services/services"; + +export default async function MissionsPage() { + const data = await getServices(); + + return ( + <LayoutWithSidebar + title={data?.data ? data.data[10].title : ""} + third={data?.data ? data.data[10].title : ""} + > + <div + className="select-inner" + dangerouslySetInnerHTML={{ + __html: data ? data.data[10].content : "", + }} + /> + </LayoutWithSidebar> + ); +} diff --git a/app/(root)/(mainMenu)/services/organization/page.tsx b/app/(root)/(mainMenu)/services/organization/page.tsx new file mode 100644 index 0000000..30f4f35 --- /dev/null +++ b/app/(root)/(mainMenu)/services/organization/page.tsx @@ -0,0 +1,20 @@ +import { LayoutWithSidebar } from "@/components/page/layout-with-sidebar"; +import { getServices } from "@/services/services"; + +export default async function OrganizationPage() { + const data = await getServices(); + + return ( + <LayoutWithSidebar + title={data?.data ? data.data[0].title : ""} + third={data?.data ? data.data[0].title : ""} + > + <div + className="select-inner" + dangerouslySetInnerHTML={{ + __html: data?.data ? data.data[0].content : "", + }} + /> + </LayoutWithSidebar> + ); +} diff --git a/app/(root)/(mainMenu)/services/outsourcing/page.tsx b/app/(root)/(mainMenu)/services/outsourcing/page.tsx new file mode 100644 index 0000000..62ba53c --- /dev/null +++ b/app/(root)/(mainMenu)/services/outsourcing/page.tsx @@ -0,0 +1,20 @@ +import { LayoutWithSidebar } from "@/components/page/layout-with-sidebar"; +import { getServices } from "@/services/services"; + +export default async function OutsourcingPage() { + const data = await getServices(); + + return ( + <LayoutWithSidebar + title={data?.data ? data.data[5].title : ""} + third={data?.data ? data.data[5].title : ""} + > + <div + className="select-inner" + dangerouslySetInnerHTML={{ + __html: data ? data.data[5].content : "", + }} + /> + </LayoutWithSidebar> + ); +} diff --git a/app/(root)/(mainMenu)/services/personnel-training/page.tsx b/app/(root)/(mainMenu)/services/personnel-training/page.tsx new file mode 100644 index 0000000..89011ab --- /dev/null +++ b/app/(root)/(mainMenu)/services/personnel-training/page.tsx @@ -0,0 +1,20 @@ +import { LayoutWithSidebar } from "@/components/page/layout-with-sidebar"; +import { getServices } from "@/services/services"; + +export default async function PersonalTrainingPage() { + const data = await getServices(); + + return ( + <LayoutWithSidebar + title={data?.data ? data.data[6].title : ""} + third={data?.data ? data.data[6].title : ""} + > + <div + className="select-inner" + dangerouslySetInnerHTML={{ + __html: data ? data.data[6].content : "", + }} + /> + </LayoutWithSidebar> + ); +} diff --git a/app/(root)/(mainMenu)/visitors/page.tsx b/app/(root)/(mainMenu)/visitors/page.tsx new file mode 100644 index 0000000..ec941ff --- /dev/null +++ b/app/(root)/(mainMenu)/visitors/page.tsx @@ -0,0 +1,57 @@ +"use client"; + +import { LayoutWithSidebar } from "@/components/page/layout-with-sidebar"; +import { baseAPI } from "@/lib/API"; +import { useAppSelector } from "@/redux/hooks"; +import { selectHeader } from "@/redux/slices/headerSlice"; +import { useLang } from "@/utils/useLang"; +import { useEffect, useState } from "react"; + +const Visitors = () => { + const [visitorsData, setVisitorsData] = useState<string>(); + const { activeLang } = useAppSelector(selectHeader); + + const fetchVisitors = async () => { + try { + const res = await fetch(`${baseAPI}settings/visitors_page`, { + headers: { + "Accept-Language": activeLang.localization, + }, + }); + + if (!res.ok) { + throw new Error("Error"); + } + + const data = await res.json(); + + setVisitorsData(data); + } catch (error) { + console.error(error); + } + }; + + useEffect(() => { + fetchVisitors(); + }, []); + + return ( + <div> + <LayoutWithSidebar + title={useLang( + "Information for visitors", + "Информация для посетителей", + activeLang.localization + )} + second={useLang("For visitors", "Посетителям", activeLang.localization)} + > + <div + dangerouslySetInnerHTML={{ __html: visitorsData ? visitorsData : "" }} + className="flex flex-col gap-1 select-inner" + /> + </LayoutWithSidebar> + </div> + ); +}; + +export default Visitors; diff --git a/app/(root)/(mainMenu)/visitors/rules-for-visitors/page.tsx b/app/(root)/(mainMenu)/visitors/rules-for-visitors/page.tsx new file mode 100644 index 0000000..0a3fddf --- /dev/null +++ b/app/(root)/(mainMenu)/visitors/rules-for-visitors/page.tsx @@ -0,0 +1,63 @@ +"use client"; + +import { LayoutWithSidebar } from "@/components/page/layout-with-sidebar"; +import { baseAPI } from "@/lib/API"; +import { useAppSelector } from "@/redux/hooks"; +import { selectHeader } from "@/redux/slices/headerSlice"; +import { useLang } from "@/utils/useLang"; +import { useEffect, useState } from "react"; + +const RulesForVisitors = () => { + const [visitorsData, setVisitorsData] = useState<string>(); + const { activeLang } = useAppSelector(selectHeader); + + const fetchVisitors = async () => { + try { + const res = await fetch(`${baseAPI}settings/visiting_rules`, { + headers: { + "Accept-Language": activeLang.localization, + }, + }); + + if (!res.ok) { + throw new Error("Error"); + } + + const data = await res.json(); + + setVisitorsData(data); + } catch (error) { + console.error(error); + } + }; + + useEffect(() => { + fetchVisitors(); + }, []); + + return ( + <div> + <LayoutWithSidebar + title={useLang( + "Entrance rules", + "Порядок регистрации посетителей", + activeLang.localization + )} + second={useLang("Visitors", "Посетителям", activeLang.localization)} + path="/visitors" + third={useLang( + "Entrance rules", + "Порядок регистрации посетителей", + activeLang.localization + )} + > + <div + dangerouslySetInnerHTML={{ __html: visitorsData ? visitorsData : "" }} + className="flex flex-col gap-1 select-inner" + /> + </LayoutWithSidebar> + </div> + ); +}; + +export default RulesForVisitors; diff --git a/app/(root)/calendar/[id]/page.tsx b/app/(root)/calendar/[id]/page.tsx new file mode 100644 index 0000000..c8dcb0e --- /dev/null +++ b/app/(root)/calendar/[id]/page.tsx @@ -0,0 +1,107 @@ +import { EventPageButtons } from "@/components/shared/event-page-buttons"; +import { getEventPage } from "@/services/calendar"; +import { cookies } from "next/headers"; +import Image from "next/image"; + +export default async function EventPage({ + params, +}: { + params: { id: string }; +}) { + const { id } = params; + + const lang = cookies().get("lang")?.value ?? "ru"; + + const data = await getEventPage(id, lang); + + return ( + <div className="flex flex-col container gap-20 pt-16 section-mb"> + <h1 className="md:text-[48px] text-[28px] text-ON_SURFACE leading-[115%] font-medium"> + {data?.title ? data?.title : null} + </h1> + + <div className="flex flex-col lg:flex-row justify-between gap-6"> + <div className="flex flex-col gap-20 w-full"> + <div className="flex flex-col gap-8 event-block "> + <div className="flex justify-between items-center"> + <h4>{lang === "en" ? "Date" : "Дата"}</h4> + <h5>{data?.date}</h5> + </div> + + <hr /> + {data?.location && ( + <> + <div className="flex justify-between items-center"> + <h4>{lang === "en" ? "Venue" : "Место"}</h4> + <h5>{data?.location}</h5> + </div> + <hr /> + </> + )} + + {data?.organizers.length > 0 && ( + <> + <div className="flex justify-between items-center"> + <h4>{lang === "en" ? "Organiser" : "Организатор"}</h4> + <h5>{data?.organizers[0]?.name}</h5> + </div> + </> + )} + + {data?.coorganizers.length > 0 && ( + <> + <hr /> + + <div className="flex justify-between items-center"> + <h4>{lang === "en" ? "Co-organiser" : "Со-организатор"}</h4> + + <h5>{data?.coorganizers[0]?.name}</h5> + </div> + </> + )} + </div> + + <EventPageButtons + once={Boolean(data?.our)} + details={data?.url_detailed} + register={data?.url_registration} + visit={data?.url_web} + /> + </div> + + <Image + src={data?.images?.[0]?.path || ""} + width={392} + height={392} + alt="event image" + className="size-[392px] object-cover" + /> + </div> + + <div className="flex flex-col gap-8"> + <div className="flex flex-col lg:flex-row gap-6"> + <h4 className="text_24 lg:flex-[0_0_392px]"> + {lang === "en" ? "Description" : "Описание"} + </h4> + <p className="flex-1 text_16">{data?.description}</p> + </div> + + {data?.event_topic && ( + <> + <hr className="border-OUTLINE_VAR" /> + + <div className="flex flex-col lg:flex-row gap-6"> + <h4 className="text_24 lg:flex-[0_0_392px]"> + {lang === "en" ? "Theme of event" : "Тематика мероприятия"} + </h4> + <div + className="flex-1 text_16" + dangerouslySetInnerHTML={{ __html: data?.event_topic }} + /> + </div> + </> + )} + </div> + </div> + ); +} diff --git a/app/(root)/calendar/page.tsx b/app/(root)/calendar/page.tsx new file mode 100644 index 0000000..84e2a47 --- /dev/null +++ b/app/(root)/calendar/page.tsx @@ -0,0 +1,35 @@ +import { EventCard } from "@/components/shared/event-card"; +import { BreadCrumbs } from "@/components/ui/bread-crumbs"; +import { Title } from "@/components/ui/title"; +import { getCalendar } from "@/services/calendar"; +import { Metadata } from "next"; +import { cookies } from "next/headers"; + +export const metadata: Metadata = { + title: "TurkmenExpo | Calendar", +}; + +export default async function CalendarPage() { + const lang = cookies().get("lang")?.value ?? "ru"; + + const data = await getCalendar(lang); + + const title = lang === "en" ? "Calendar of events" : "Календарь мероприятий"; + return ( + <div className="section-mb"> + <div className="container flex flex-col items-start pt-5 gap-10 md:gap-12"> + <div> + <div className="mb-[24px]"> + <BreadCrumbs second={title} /> + </div> + <Title text={title} /> + </div> + <div className="flex flex-col gap-6 w-full"> + {data.data.map((item, i) => ( + <EventCard dark={true} key={i} {...item} /> + ))} + </div> + </div> + </div> + ); +} diff --git a/app/(root)/contacts/page.tsx b/app/(root)/contacts/page.tsx new file mode 100644 index 0000000..33d33df --- /dev/null +++ b/app/(root)/contacts/page.tsx @@ -0,0 +1,69 @@ +import React from "react"; + +import { BreadCrumbs } from "@/components/ui/bread-crumbs"; +import { ContactsForm } from "@/components/shared/contacts-form"; +import { cookies } from "next/headers"; + +export default async function ContactsPage() { + const lang = cookies().get("lang")?.value; + + return ( + <main className="bg-blueBg h-full w-full"> + <div className="container flex flex-col items-start"> + <div className="mt-5"> + <BreadCrumbs second={lang === "ru" ? "Контакты" : "Contacts"} /> + </div> + + <div className="grid grid-cols-1 lg:grid-cols-2 gap-6 w-full"> + <ContactsForm /> + + <div className="p-6 bg-bg_surface_container rounded-[8px]"> + <h2 className="h2 mb-10 xl:mb-8 text-3xl font-normal">Контакты</h2> + + <div className="flex flex-col gap-20"> + <div className="flex items-center gap-6"> + <img src="/assets/icons/contacts/address.svg" alt="address" /> + + <div> + <h3 className="text-xl mb-2">Адрес:</h3> + <address className="text-base normal not-italic"> + 744000, г. Ашхабад, просп. Битарап Туркменистан, 183 + </address> + </div> + </div> + <div className="flex items-center gap-6"> + <img src="/assets/icons/contacts/phone.svg" alt="phone" /> + + <div> + <h3 className="text-xl mb-2"></h3> + <h4 className="text-base normal"> + +99371871814; 99363719588 + </h4> + </div> + </div> + + <div className="flex items-center gap-6"> + <img src="/assets/icons/contacts/mail.svg" alt="email" /> + + <div> + <h3 className="text-xl mb-2">Email:</h3> + <h4 className="text-base normal">contact@turkmenexpo.com</h4> + </div> + </div> + </div> + </div> + </div> + </div> + + <div className="relative w-full h-[728px] mt-12 google-map"> + <iframe + src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d3148.67827952586!2d58.29659607507902!3d37.8912058554459!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x3f7003944259cb1d%3A0xafc893357e4b0d2!2z0KLQvtGA0LPQvtCy0L4t0L_RgNC-0LzRi9GI0LvQtdC90L3QsNGPINC_0LDQu9Cw0YLQsCDQotGD0YDQutC80LXQvdC40YHRgtCw0L3QsA!5e0!3m2!1sru!2s!4v1713164734635!5m2!1sru!2s" + className="absolute inset-0 w-full h-full" + style={{ border: 0 }} + allowFullScreen + loading="lazy" + /> + </div> + </main> + ); +} diff --git a/app/(root)/layout.tsx b/app/(root)/layout.tsx new file mode 100644 index 0000000..24217fb --- /dev/null +++ b/app/(root)/layout.tsx @@ -0,0 +1,15 @@ +import { Footer } from "@/components/shared/Footer"; +import { Header } from "@/components/shared/Header"; +import { PropsWithChildren } from "react"; + +const layout = ({ children }: PropsWithChildren) => { + return ( + <div className="flex flex-col h-full wrapper w-full overflow-x-hidden relative"> + <Header /> + <main className="flex-auto bg-blueBg">{children}</main> + <Footer /> + </div> + ); +}; + +export default layout; diff --git a/app/(root)/page.tsx b/app/(root)/page.tsx new file mode 100644 index 0000000..c001f39 --- /dev/null +++ b/app/(root)/page.tsx @@ -0,0 +1,25 @@ +import { Events } from "@/components/shared/Events"; +import { News } from "@/components/shared/News"; +import { Partners } from "@/components/shared/Partners"; +import { Slider } from "@/components/shared/Slider"; +import { Video } from "@/components/shared/Video"; +import Loader from "@/components/ui/Loader"; +import { cookies } from "next/headers"; +import { Suspense } from "react"; + +export default async function HomePage() { + const lang = cookies().get("lang")?.value ?? "ru"; + + return ( + <div className="bg-blueBg flex flex-col gap-[60px] md:gap-20 pb-20"> + <Slider lang={lang} /> + + <Suspense fallback={<Loader />}> + <Events lang={lang} /> + </Suspense> + <News /> + {/* <Video /> */} + <Partners /> + </div> + ); +} diff --git a/app/StoreProvider.tsx b/app/StoreProvider.tsx new file mode 100644 index 0000000..183766a --- /dev/null +++ b/app/StoreProvider.tsx @@ -0,0 +1,17 @@ +"use client"; +import { useRef } from "react"; +import { Provider } from "react-redux"; +import { makeStore, AppStore } from "../redux/store"; + +export default function StoreProvider({ + children, +}: { + children: React.ReactNode; +}) { + const storeRef = useRef<AppStore>(); + if (!storeRef.current) { + storeRef.current = makeStore(); + } + + return <Provider store={storeRef.current}>{children}</Provider>; +} diff --git a/app/api/banners/route.ts b/app/api/banners/route.ts new file mode 100644 index 0000000..5b88374 --- /dev/null +++ b/app/api/banners/route.ts @@ -0,0 +1,14 @@ +import { NextResponse, NextRequest } from 'next/server'; +import { getSlider } from '@/services/home'; + +export async function GET(req: NextRequest) { + const { searchParams } = new URL(req.nextUrl); + const bannerType = searchParams.get('bannerType') || 'main-surat'; + + try { + const data = await getSlider(bannerType); + return NextResponse.json(data); + } catch (error) { + return NextResponse.json({ error: 'Ошибка загрузки данных баннера' }, { status: 500 }); + } +} diff --git a/app/globals.css b/app/globals.css new file mode 100644 index 0000000..46d45c6 --- /dev/null +++ b/app/globals.css @@ -0,0 +1,422 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +:root { + font-size: 14px; + font-weight: 400; + line-height: 100%; + color: #393f3e; + height: 100vh; + padding: 0; + margin: 0; + box-sizing: border-box; + background-color: black; +} + +body { + height: 100%; + color: #171c1b; +} + +.main-abs-bg::before { + content: ""; + position: absolute; + left: 100%; + width: 100vw; + top: 0; + height: 100%; + background-color: rgb(52 67 80 / var(--tw-bg-opacity)); +} + +.custom-shadow { + box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.3); +} + +.greenBtnShadow { + box-shadow: 0 3px 4px 0 rgba(0, 0, 0, 0.2); +} + +.service-shadow { + box-shadow: 0 3px 4px 0 rgba(0, 0, 0, 0.2); +} + +.input-check { + position: absolute; + width: 1px; + height: 1px; + overflow: hidden; + clip: rect(0 0 0 0); + padding-left: 20px; +} + +.span-check { + position: relative; + width: 16px; + height: 16px; + border: 1px solid #738799; + border-radius: 2px; +} + +.input-check:checked + .span-check::before { + content: ""; + background-image: url("../public/assets/icons/check.svg"); + background-size: 8px 8px; + position: absolute; + left: 50%; + top: 50%; + transform: translate(-50%, -50%); + width: 8px; + height: 7px; +} + +.radio-input { + position: absolute; + width: 1px; + height: 1px; + overflow: hidden; + clip: rect(0 0 0 0); + padding-left: 20px; +} + +.radio-span { + position: relative; + display: block; + width: 16px; + height: 16px; + border: 1px solid #5d6a77; + border-radius: 100%; +} + +.radio-input:checked + .radio-span::before { + content: ""; + position: absolute; + left: 50%; + top: 50%; + transform: translate(-50%, -50%); + background-color: #059784; + border-radius: 100%; + width: 8px; + height: 8px; +} + +.news-text { + display: -webkit-box; + -webkit-line-clamp: 3; + -webkit-box-orient: vertical; + overflow: hidden; + text-overflow: ellipsis; +} + +.event-text { + display: -webkit-box; + -webkit-line-clamp: 2; + -webkit-box-orient: vertical; + overflow: hidden; + text-overflow: ellipsis; +} + +p img { + height: 480px; + width: 100%; + object-fit: cover; + padding: 24px 0; +} + +.google-map { + aspect-ratio: 12/12; +} + +@media (min-width: 1024px) { + .google-map { + aspect-ratio: 16/9; + } +} + +@layer utilities { + .container { + @apply w-full mx-auto max-w-[1290px] lg:px-10 md:px-6 px-4; + } + + .label { + @apply text-lg text-[#CDEAE6] mb-2; + } + + .input { + @apply h-14 rounded-[2px] p-4 bg-[#E3E8E5] border border-[#758A87] text-[#303E3C]; + } + + .error { + @apply text-rose-200 text-sm absolute -bottom-6; + } + + .text_24 { + @apply text-[24px] leading-[130%] font-medium; + } + + .text_16 { + @apply text-[16px] leading-[140%] text-ON_SURFACE_VAR; + } + + .page-container { + @apply w-full mr-auto ml-5 max-w-[853px] pr-5; + } + + .main-container { + @apply w-full ml-[auto] mr-[120px] max-w-[195px] pl-5; + } + + .btn { + @apply font-medium text-bgWhite rounded-[2px] px-[43px] py-[17px] text-sm; + } + + .border-btn { + @apply font-medium text-bgWhite rounded-[2px] text-sm border-[1px] border-OUTLINE_VAR hover:border-bgWhite hover:bg-bgWhite hover:text-blueBg transition-all; + } + + :disabled { + @apply opacity-50; + } + + .section-mb { + @apply mb-[60px] lg:mb-[160px] md:mb-[100px]; + } + + .text-p { + @apply text-[16px] leading-[1.5]; + } + + .faq-list { + @apply leading-[1.5] before:content-['•'] before:rounded-full before:pr-[5px]; + } + + .bid-input { + @apply focus:outline-none bg-transparent border-[1px] border-OUTLINE rounded-[2px] py-[12px] pl-[15px] pr-10; + } + + .bid-drop { + @apply focus:outline-none bg-transparent border-[1px] border-OUTLINE rounded-[2px] py-[12px] px-[15px]; + } + + .radio { + @apply w-[16px] h-[16px] p-[3px] border-[1px] border-OUTLINE_VAR rounded-full; + } + + .flex-centers { + @apply flex items-center; + } + + .flex-cols { + @apply flex flex-col; + } + + .link-border-bottom { + @apply after:content-[''] after:absolute after:top-5 after:left-0 after:h-[2px] after:bg-green after:w-full hover:text-bgWhite; + } + + .radio-btn:hover + .radio-hover { + @apply text-black; + } + + .event-block hr { + @apply border-OUTLINE_VAR; + } + + .event-block h4 { + @apply text_24 flex-[0_0_50%]; + } + + .event-block h5 { + @apply text_16 flex-[0_0_50%]; + } + + .full-btn { + @apply h-12 w-full flex items-center font-medium justify-center text-[14px] leading-[130%] rounded-[4px]; + } + + .list-decor { + @apply before:content-['•'] before:text-green absolute top-[7px] left-0; + } + + .text-21 { + @apply text-[21px] font-semibold leading-[150%]; + } + + :disabled { + @apply pointer-events-none; + } + + .swiper-horizontal > .swiper-pagination-bullets .swiper-pagination-bullet, + .swiper-pagination-horizontal.swiper-pagination-bullets + .swiper-pagination-bullet { + @apply w-[6px] h-[6px] bg-gray; + } + + .swiper-horizontal + > .swiper-pagination-bullets + .swiper-pagination-bullet-active, + .swiper-pagination-horizontal.swiper-pagination-bullets + .swiper-pagination-bullet-active { + @apply h-3 w-3 bg-green translate-y-[1.7px]; + } + + .aboutus p { + @apply w-full; + } + + .aboutus p img { + @apply w-[1000px] p-0 mb-6 h-full !important; + } + + .select-inner h3:not(:first-child) { + @apply text-[18px] mb-2 mt-5 font-semibold leading-[150%]; + } + + .select-inner h3:first-child { + @apply text-[18px] font-semibold mb-2 leading-[150%]; + } + + .select-inner p { + @apply leading-[150%] mb-6; + } + + .select-inner ul { + @apply ml-8 leading-[150%]; + } + + .select-inner li { + @apply relative list-disc mb-1; + } + + .select-inner ul li em { + @apply my-10; + } + + .select-inner ol { + @apply ml-8; + } + + .select-inner ol li { + @apply my-3 leading-[150%]; + } + + .select-inner strong { + @apply text-[16px] leading-[130%]; + } + + .select-inner u { + @apply block mb-3 mt-5; + } + + .select-inner a { + @apply underline cursor-pointer font-bold; + } + + .event-topic p { + @apply before:content-["•"] before:px-2 before:text-green; + } + + .news-seperate-html { + @apply w-full h-full !important; + } + + .hover-shadow { + box-shadow: 0 4px 40px 0 rgba(0, 0, 0, 0.35); + } + + .search-text b { + color: white; + } + + .loader { + width: 15px; + height: 15px; + border: 2px solid #fff; + border-bottom-color: transparent; + border-radius: 50%; + display: inline-block; + box-sizing: border-box; + animation: rotation 1s linear infinite; + } + + @keyframes rotation { + 0% { + transform: rotate(0deg); + } + 100% { + transform: rotate(360deg); + } + } + + .real-checkbox { + width: 16px; + height: 16px; + opacity: 0; + cursor: pointer; + position: absolute; + z-index: 10; + } + + .fake-checkbox { + position: relative; + cursor: pointer; + display: inline-block; + width: 16px; + height: 16px; + border-radius: 2px; + border: 1px #5d6a77 solid; + } + + .fake-checkbox::before { + content: ""; + display: inline-block; + width: 10px; + height: 10px; + position: absolute; + left: 50%; + top: 50%; + transform: translate(-50%, -50%) scale(0); + transition: all 0.1s ease-in; + background-image: url("/assets/icons/check.svg"); + background-repeat: no-repeat; + background-size: contain; + } + + .real-checkbox:checked + .fake-checkbox::before { + transform: translate(-50%, -50%) scale(1); + } + + .autoplay-progress { + z-index: 10; + width: 63px; + height: 1px; + align-items: center; + justify-content: center; + font-weight: bold; + color: var(--swiper-theme-color); + } + + .autoplay-progress svg { + --progress: 0; + border-radius: 30px; + /* position: absolute; */ + left: 0; + top: 0px; + z-index: 10; + width: 100%; + height: 100%; + stroke-width: 10px; + stroke: #059784; + fill: none; + stroke-dashoffset: calc(65 * (1 - var(--progress))); + stroke-dasharray: 65; + } + + .body-scroll-lock { + overflow: hidden; + } + + .input { + @apply flex h-14 rounded-[2px] p-4 focus:ring-2 border-0 focus:outline-none focus:ring-white transition-all hover:ring-white ring-slate-300 ring-[1px] bg-[#E3E8E5] text-base file:border-0 file:bg-SECONDARY_CONTAINER file:outline-none file:text-sm file:w-fit file:text-ON_SECONDARY_CONTAINER file:font-medium focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50; + } +} diff --git a/app/layout.tsx b/app/layout.tsx new file mode 100644 index 0000000..6a1ed55 --- /dev/null +++ b/app/layout.tsx @@ -0,0 +1,41 @@ +import type { Metadata } from "next"; +import { Roboto } from "next/font/google"; +import StoreProvider from "./StoreProvider"; + +import "./globals.css"; +import clsx from "clsx"; + +const roboto = Roboto({ + subsets: ["latin"], + weight: ["300", "400", "500", "700"], + variable: "--font-roboto", +}); + +export const metadata: Metadata = { + title: "TurkmenExpo", + description: "", + icons: { + icon: [ + { + url: "/assets/icons/logo.svg", + href: "/assets/icons/logo.svg", + }, + ], + }, +}; + +export default function RootLayout({ + children, +}: Readonly<{ + children: React.ReactNode; +}>) { + return ( + <html> + <StoreProvider> + <body className={clsx("antialiased font-roboto", roboto.variable)}> + {children} + </body> + </StoreProvider> + </html> + ); +} diff --git a/app/middleware.ts b/app/middleware.ts new file mode 100644 index 0000000..b446eca --- /dev/null +++ b/app/middleware.ts @@ -0,0 +1,31 @@ +// middleware.ts +import { NextRequest, NextResponse } from "next/server"; + +export function middleware(request: NextRequest) { + // 1. Проверяем существующую куку + let lang = request.cookies.get("lang")?.value; + + // 2. Если куки нет, определяем язык из браузера + if (!lang) { + lang = + request.headers + .get("Accept-Language") + ?.split(",")[0] // Берём первый язык из списка + .split("-")[0] // Убираем регион (en-US → en) + .toLowerCase() || "en"; // Fallback на английский + } + + // 3. Сохраняем язык в куки + const response = NextResponse.next(); + if (!request.cookies.has("lang")) { + response.cookies.set("lang", lang, { + maxAge: 60 * 60 * 24 * 365, // 1 год + httpOnly: true, + }); + } + + // 4. Добавляем язык в заголовки ВСЕХ исходящих запросов + response.headers.set("Accept-Language", lang); + + return response; +} diff --git a/components/home/styles/events.css b/components/home/styles/events.css new file mode 100644 index 0000000..0e595ac --- /dev/null +++ b/components/home/styles/events.css @@ -0,0 +1,7 @@ +.swiper-horizontal > .swiper-pagination-bullets, +.swiper-pagination-bullets.swiper-pagination-horizontal { + bottom: var(--swiper-pagination-bottom, 40px); + top: var(--swiper-pagination-top, auto); + left: 0; + width: 100%; +} diff --git a/components/home/ui/NavBtn.tsx b/components/home/ui/NavBtn.tsx new file mode 100644 index 0000000..da129b6 --- /dev/null +++ b/components/home/ui/NavBtn.tsx @@ -0,0 +1,39 @@ +'use client'; + +import React from 'react'; +import Image from 'next/image'; + +import navBtn from '@/public/assets/icons/home/nav-btn.svg'; + +import 'swiper/css'; +import 'swiper/css/navigation'; +import 'swiper/css/pagination'; +import 'swiper/css/scrollbar'; +import clsx from 'clsx'; + +export const NavBtn = ({ + left = false, + onNext, + onPrev, +}: { + left?: boolean; + onNext?: () => void; + onPrev?: () => void; +}) => { + const btnRef = React.useRef<HTMLButtonElement>(null); + + return ( + <button + ref={btnRef} + className={`${!left ? 'next-btn' : 'prev-btn'} `} + onClick={!left ? onNext : onPrev}> + <Image + src={navBtn} + alt="arrow" + className={clsx('img-auto', { + 'rotate-180': left, + })} + /> + </button> + ); +}; diff --git a/components/page/Pathnames.tsx b/components/page/Pathnames.tsx new file mode 100644 index 0000000..60114f7 --- /dev/null +++ b/components/page/Pathnames.tsx @@ -0,0 +1,19 @@ +"use client"; + +import React from "react"; +import Link from "next/link"; + +import { topMenu } from "@/lib/database/pathnames"; + +export const Pathnames = ({ sort }: { sort: string }) => { + return ( + <div className="text-[12px] text-gray4 flex items-center mob:mb-6 mb-5"> + <Link href={"/"}>{"Главная "}</Link> + {topMenu + .filter((item) => item.path === sort) + .map((obj, i) => + obj.links.map((item) => <p key={i}>{item.default}</p>) + )} + </div> + ); +}; diff --git a/components/page/layout-with-sidebar.tsx b/components/page/layout-with-sidebar.tsx new file mode 100644 index 0000000..7675aa5 --- /dev/null +++ b/components/page/layout-with-sidebar.tsx @@ -0,0 +1,53 @@ +"use client"; + +import React from "react"; +import { BreadCrumbs } from "../ui/bread-crumbs"; +import { usePathname } from "next/navigation"; +import { useAppSelector } from "@/redux/hooks"; +import { Title } from "../ui/title"; + +interface Props { + title: string; + second?: string; + third?: string; + path?: string; + path2?: string; + cursor?: boolean; + children: React.ReactNode; +} + +export const LayoutWithSidebar = ({ + title, + second, + path, + path2, + third, + children, + cursor = false, +}: Props) => { + const pathname = usePathname(); + const lang = useAppSelector( + (state) => state.headerSlice.activeLang.localization + ); + + return ( + <div className="flex bg-white px-6 py-4 rounded-lg flex-col md:gap-6 gap-10 section-mb w-full"> + <div> + <BreadCrumbs + second={ + pathname.includes("/services") + ? lang === "en" + ? "Services" + : "Сервисы" + : second ?? "" + } + path={path} + path2={path2} + third={third ? third : ""} + /> + <Title text={title} /> + </div> + {children} + </div> + ); +}; diff --git a/components/shared/Card.tsx b/components/shared/Card.tsx new file mode 100644 index 0000000..139bc1f --- /dev/null +++ b/components/shared/Card.tsx @@ -0,0 +1,32 @@ +import React from "react"; +import Image from "next/image"; +import Link from "next/link"; + +interface Props { + img: string; + date: string; + id: number; + title: string; +} + +export const Card = ({ img, date, id, title }: Props) => { + return ( + <div className="border border-OUTLINE/20"> + <Image + width={430} + height={210} + src={img} + alt="событие" + className="h-[210px] w-full object-cover" + /> + <Link href={`/news/${id}`} className="cursor-pointer"> + <div className="px-[16px] py-[25px] sm:p-[25px]"> + <p className="text-extraSm text-gray4 mb-[10px]">{date}</p> + <p className="font-bold text-[16px] leading-[125%] w-full max-w-[355px]"> + {title} + </p> + </div> + </Link> + </div> + ); +}; diff --git a/components/shared/Events.tsx b/components/shared/Events.tsx new file mode 100644 index 0000000..7babf23 --- /dev/null +++ b/components/shared/Events.tsx @@ -0,0 +1,99 @@ +import { getEvents } from "@/services/home"; +import { EventsMobile } from "./events-mobile"; + +const events = [ + { + video: + "https://editor.turkmenexpo.com/storage/app/media/video/KidsExpo%202024_%20Turkmenistan.mp4", + logo: "https://kids.turkmenexpo.com/logo.svg", + }, + { + video: + "https://turkmentextile.turkmenexpo.com/app/storage/app/media/video/Textile2025.mp4", + logo: "/assets/icons/turkmen-textile.png", + }, + { + video: + "https://itse.turkmenexpo.com/app/storage/app/media/video/itse2025.mp4", + logo: "https://itse.turkmenexpo.com/logo.svg", + }, +]; + +export const Events = async ({ lang }: { lang: string }) => { + const data = await getEvents(lang); + + const btnText = + lang === "en" ? "Show more" : lang === "ru" ? "Показать еще" : "Show more"; + + const title = lang === "en" ? "Exhibitions" : "Выставки"; + + const linkText = lang === "en" ? "Go to website" : "Перейти на сайт"; + + return ( + <section> + <div className="container md:block"> + <div className="sm:mb-10"> + <h2 className="text-center font-semibold text-3xl mb-8"> + {title} <span className="text-PRIMARY">Turkmen</span> + <span className="text-red">Expo</span> + </h2> + {/* <Title + text={ + lang === "en" + ? "Upcoming exhibitions and events" + : lang === "ru" + ? "Ближайшие выставки и мероприятия" + : "Upcoming exhibitions and events" + } + /> */} + </div> + {/* <div className="w-full flex flex-col items-center gap-8"> */} + <div className="w-full flex flex-col items-center gap-8 lg:flex-row"> + {/* {data.data.slice(0, 2).map((item, i) => ( + <EventCard + coorganizers={item.coorganizers} + dark + key={i} + {...item} + /> + ))} + <LinkButton href="/calendar">{btnText}</LinkButton> */} + {events.map((item, i) => ( + <article + key={i} + className="w-full h-auto bg-white drop-shadow-sm rounded-sm" + > + <div className="w-full h-full"> + <video + src={item.video} + className="size-full object-cover" + autoPlay + muted + loop + /> + </div> + <div className="flex items-center justify-between p-4"> + <img + height={80} + width={100} + src={item.logo} + alt="logo" + className="h-10 w-auto object-cover" + /> + <a + href={events[0].logo.slice(0, -8)} + target="_blank" + className="text-PRIMARY underline" + > + {linkText} + </a> + </div> + </article> + ))} + </div> + </div> + + {/* <EventsMobile data={data.data.slice(0, 5)} /> */} + </section> + ); +}; diff --git a/components/shared/Footer.tsx b/components/shared/Footer.tsx new file mode 100644 index 0000000..52135d7 --- /dev/null +++ b/components/shared/Footer.tsx @@ -0,0 +1,96 @@ +"use client"; + +import React from "react"; +import Link from "next/link"; + +import { footerInfo, headerMenu2 } from "@/lib/database/pathnames"; +import { useAppSelector } from "@/redux/hooks"; +import clsx from "clsx"; + +export const socials = [ + { href: "https://www.linkedin.com/company/turkmen-expo", icon: "linkedin" }, + { + href: "https://www.facebook.com/profile.php?id=61567254728028", + icon: "facebook", + }, + { + href: "https://www.instagram.com/turkmenexpo_tm?igsh=bnhkOWpmNWcwcHBq", + icon: "instagram", + }, + { + href: "https://x.com/turkmenexpo?t=D-XSa8d0AC8GAv5peAzteA&s=09", + icon: "x", + }, +]; + +export const Footer = () => { + const localization = useAppSelector( + (state) => state.headerSlice.activeLang.localization + ); + + return ( + <footer className="bg-PRIMARY text-white pt-6 pb-5 mob:py-[40px]"> + <div className="container"> + <div className=""> + <div className="flex lg:flex-row flex-col w-full justify-between mb-12"> + <img className="h-12" src="/assets/icons/white-logo.svg" /> + + <div className="flex flex-col mt-8 lg:flex-row items-center font-medium gap-12"> + {headerMenu2 + .filter((item) => (localization === "en" ? item.en : !item.en)) + .map((item, i) => ( + <Link key={i} href={item.link} className="cursor-pointer"> + {item.title} + </Link> + ))} + </div> + </div> + + <div className="flex flex-col lg:flex-row lg:justify-between justify-center text-center lg:text-left lg:items-end items-center gap-6"> + <div className="flex flex-col justify-end w-full"> + {localization === "ru" ? ( + <div className="flex flex-col md:gap-y-[10px] gap-2"> + {footerInfo.slice(0, 4).map((item, i) => ( + <p + className={clsx("text-[12px] leading-[130%]", { + "ml-8": i === 2, + })} + key={i} + > + {item} + </p> + ))} + </div> + ) : localization === "en" ? ( + <div className="flex flex-col md:gap-y-[10px] gap-0"> + {footerInfo.slice(3, 7).map((item, i) => ( + <p className="text-[12px] leading-[130%]" key={i}> + {item} + </p> + ))} + </div> + ) : null} + </div> + + <div className="flex items-center gap-6"> + {socials.map((item, i) => ( + <a + key={i} + href={item.href} + target="_blank" + className="size-8 p-1" + > + <img + src={`/assets/icons/${item.icon}.svg`} + alt="social" + className="size-full object-contain" + /> + </a> + ))} + </div> + </div> + </div> + </div> + </footer> + ); +}; diff --git a/components/shared/Header.tsx b/components/shared/Header.tsx new file mode 100644 index 0000000..cefa6fd --- /dev/null +++ b/components/shared/Header.tsx @@ -0,0 +1,167 @@ +"use client"; + +import React, { Suspense, useEffect, useState } from "react"; +import clsx from "clsx"; +import Link from "next/link"; +import Image from "next/image"; +import { AnimatePresence } from "framer-motion"; + +import logo from "@/public/assets/icons/logo.svg"; +import search from "@/public/assets/icons/header/search.svg"; +import searchMob from "@/public/assets/icons/header/mob-search.svg"; + +import { LangMenu } from "../ui/lang-menu"; +import { SearchInput } from "./search-input"; +import { headerMenu2 } from "@/lib/database/pathnames"; +import { BurgerMenu } from "../ui/burger-menu"; +import { useAppDispatch, useAppSelector } from "@/redux/hooks"; +import { selectHeader, setShowInput } from "@/redux/slices/headerSlice"; +import { selectBurger, setBurgerOpen } from "@/redux/slices/burgerSlice"; +import { useStorage } from "@/hooks/useStorage"; +import { usePathname, useRouter } from "next/navigation"; + +export const Header = () => { + const dispatch = useAppDispatch(); + const { showInput } = useAppSelector(selectHeader); + const { burgerOpen } = useAppSelector(selectBurger); + const { activeLang } = useAppSelector(selectHeader); + const [activeLink, setActiveLink] = useState(""); + const pathname = usePathname(); + + const toggleMenu = () => { + dispatch(setBurgerOpen(!burgerOpen)); + dispatch(setShowInput(false)); + }; + + const onSearch = () => { + dispatch(setShowInput(!showInput)); + dispatch(setBurgerOpen(false)); + }; + + const { setItem } = useStorage("language"); + + useEffect(() => { + setItem(activeLang); + }, [activeLang]); + + return ( + <> + <AnimatePresence> + {showInput && ( + <div className="absolute w-full top-0 left-0"> + <SearchInput /> + </div> + )} + </AnimatePresence> + + {/* Mobile */} + + <header + className={clsx( + "bg-[#EEF1F0] border-b border-[#DFE2E1] tab:hidden relative z-[50] flex items-center justify-between px-4 py-6", + { + // 'fixed w-full top-0': burgerOpen, + } + )} + > + <Image + src={searchMob} + height={32} + width={32} + alt="поиск" + className="cursor-pointer" + onClick={onSearch} + /> + + <Link + onClick={() => { + dispatch(setBurgerOpen(false)); + dispatch(setShowInput(false)); + }} + href={"/"} + > + <Image + src={logo} + height={24} + width={160} + alt="лого" + className="cursor-pointer" + /> + </Link> + + <div + onClick={toggleMenu} + className="cursor-pointer h-8 w-8 flex flex-col p-1 justify-between items-center" + > + <span + className={clsx( + "block transition-all rounded-full bg-PRIMARY w-6 h-[2px]", + { + "rotate-[45deg] translate-y-[9px]": burgerOpen, + } + )} + /> + <span + className={clsx( + "block transition-all rounded-full bg-PRIMARY w-6 h-[2px]", + { + "opacity-0 hidden": burgerOpen, + } + )} + /> + <span + className={clsx( + "block transition-all duration-300 rounded-full bg-PRIMARY w-6 h-[2px]", + { + "rotate-[-45deg] translate-y-[-10px]": burgerOpen, + } + )} + /> + </div> + + <AnimatePresence>{burgerOpen && <BurgerMenu />}</AnimatePresence> + </header> + + {/* Desktop */} + + <header className="hidden border-b border-[#DFE2E1] relative z-[3000] tab:flex flex-col"> + <div className="bg-[#EEF1F0] text-black"> + <div className="container py-[17px] flex items-center justify-between"> + <div className="flex items-center"> + <Link href="/"> + <Image src={logo} alt="logo" height={38} width={235} /> + </Link> + <div className="flex gap-[10px]"> + <Suspense> + <LangMenu /> + </Suspense> + <Image + src={search} + alt="поиск" + onClick={() => dispatch(setShowInput(true))} + className="cursor-pointer" + /> + </div> + </div> + + <nav className="flex items-center gap-x-5 font-medium"> + {headerMenu2 + .filter((item) => + activeLang.localization === "en" ? item.en : !item.en + ) + .map((item, i) => ( + <Link + key={i} + href={item.link} + onClick={() => setActiveLink(item.link)} + > + {item.title} + </Link> + ))} + </nav> + </div> + </div> + </header> + </> + ); +}; diff --git a/components/shared/News.tsx b/components/shared/News.tsx new file mode 100644 index 0000000..76214b4 --- /dev/null +++ b/components/shared/News.tsx @@ -0,0 +1,115 @@ +"use client"; + +import { useEffect, useState } from "react"; +import { Swiper, SwiperSlide } from "swiper/react"; +import { Navigation } from "swiper/modules"; + +import { NewsCard } from "./news-card"; +import { NavBtn } from "../home/ui/NavBtn"; + +import { useAppSelector } from "@/redux/hooks"; +import { selectHeader } from "@/redux/slices/headerSlice"; +import { NewsData } from "@/lib/types/NewsData.type"; + +import "swiper/css/bundle"; + +import "swiper/css"; +import "swiper/css/navigation"; +import "swiper/css/pagination"; +import "swiper/css/scrollbar"; +import Link from "next/link"; +import { useLang } from "@/utils/useLang"; +import { GreenBtn } from "../ui/Buttons"; +import { Title } from "../ui/title"; +import Loader from "@/components/ui/Loader"; + +export const News = () => { + const [newsData, setNewsData] = useState<NewsData>(); + const [loading, setLoading] = useState(true); + + const { activeLang } = useAppSelector(selectHeader); + + const fetchNews = async () => { + try { + setLoading(true); + const response = await fetch(`https://turkmenexpo.com/app/api/v1/news`, { + next: { revalidate: 1800 }, + headers: { + "Accept-Language": activeLang.localization, + }, + }); + + if (!response.ok) { + throw new Error(`Fetch failed with status ${response.status}`); + } + + const data = await response.json(); + setNewsData(data); + } catch (error) { + console.error("Fetch error:", error); + } finally { + setLoading(false); + } + }; + + useEffect(() => { + fetchNews(); + }, [activeLang.localization]); + + if (loading) { + <Loader className="h-[300px] w-full mx-auto" />; + } + + return ( + <section> + <div className="container w-full"> + <header className="flex items-center mb-5 sm:mb-[43px] justify-between"> + <Title text={useLang("News", "Новости", activeLang.localization)} /> + <div className="hidden sm:flex items-center gap-5"> + <NavBtn left /> + <NavBtn /> + </div> + </header> + + <div className="sm:mb-[35px]"> + <Swiper + modules={[Navigation]} + spaceBetween={20} + slidesPerView={1} + breakpoints={{ + 1024: { slidesPerView: 3 }, + 768: { slidesPerView: 2.5 }, + 640: { slidesPerView: 2 }, + 440: { slidesPerView: 1.5 }, + }} + navigation={{ + prevEl: ".prev-btn", + nextEl: ".next-btn", + }} + > + {loading ? ( + <Loader className="h-[300px]" /> + ) : ( + newsData?.data.map((item, i) => ( + <SwiperSlide key={i}> + <NewsCard + id={item.id} + title={item.title} + date={item.published_at} + img={item.featured_images[0].path} + /> + </SwiperSlide> + )) + )} + </Swiper> + </div> + + <Link href={"/news"} className="hidden sm:flex justify-center"> + <GreenBtn + text={useLang("All news", "Все новости", activeLang.localization)} + /> + </Link> + </div> + </section> + ); +}; diff --git a/components/shared/Partners.tsx b/components/shared/Partners.tsx new file mode 100644 index 0000000..454c56d --- /dev/null +++ b/components/shared/Partners.tsx @@ -0,0 +1,80 @@ +"use client"; + +import React, { useEffect, useState } from "react"; +import Image from "next/image"; +import { Swiper, SwiperSlide } from "swiper/react"; + +import { Autoplay, Pagination } from "swiper/modules"; +import { useAppSelector } from "@/redux/hooks"; +import { selectHeader } from "@/redux/slices/headerSlice"; +import { PartnersType } from "@/lib/types/PartnersData.type"; +import { baseAPI } from "@/lib/API"; +import { useLang } from "@/utils/useLang"; +import { Title } from "../ui/title"; + +export const Partners = () => { + const { activeLang } = useAppSelector(selectHeader); + const [partnersData, setPartnersData] = useState<PartnersType>(); + + const fetchPartners = async () => { + try { + const res = await fetch(`${baseAPI}partners`, { + headers: { + "Accept-Language": activeLang.localization, + }, + }); + + const data = await res.json(); + + setPartnersData(data); + } catch (error) { + console.error(error); + } + }; + + useEffect(() => { + fetchPartners(); + }, [activeLang.localization]); + + return ( + <section className="container"> + <div className="mb-[40px]"> + <Title + text={useLang("Partners", "Партнёры", activeLang.localization)} + /> + </div> + + <div className="flex items-center"> + <Swiper + modules={[Pagination, Autoplay]} + loop + slidesPerView={5} + autoplay={{ delay: 0 }} + spaceBetween={30} + speed={7000} + breakpoints={{ + 1024: { slidesPerView: 5 }, + 768: { slidesPerView: 4.5 }, + 630: { slidesPerView: 3.5 }, + 300: { slidesPerView: 2 }, + }} + > + {partnersData && + partnersData.data.map((logo, i) => ( + <SwiperSlide key={i} className="h-[63px] w-fit overflow-hidden"> + <a href={logo.link} target="_blank"> + <Image + height={200} + width={200} + src={logo.images[0].path} + alt="logo" + className="h-full w-full object-contain" + /> + </a> + </SwiperSlide> + ))} + </Swiper> + </div> + </section> + ); +}; diff --git a/components/shared/Slider.tsx b/components/shared/Slider.tsx new file mode 100644 index 0000000..f3a573f --- /dev/null +++ b/components/shared/Slider.tsx @@ -0,0 +1,90 @@ +"use client"; + +import "swiper/css"; +import "swiper/css/navigation"; +import "swiper/css/pagination"; +import "swiper/css/scrollbar"; + +import React, { useEffect, useRef, useState } from "react"; +import Image from "next/image"; +import { Swiper, SwiperSlide } from "swiper/react"; +import { SliderType } from "@/lib/types/SliderData.type"; +import { useSliderBanner } from "@/hooks/use-slider"; +import { useMediaQuery } from "usehooks-ts"; +import { Autoplay, Pagination } from "swiper/modules"; +import Loader from "../ui/Loader"; +import { baseAPI } from "@/lib/API"; +import Link from "next/link"; +import clsx from "clsx"; + +export const Slider = ({ lang }: { lang: string }) => { + const isTab = useMediaQuery("(min-width: 1024px)"); + const isMd = useMediaQuery("(min-width: 700px)"); + + const [sliderData, setData] = useState<SliderType>(); + const [loading, setLoading] = useState(true); + const size = useSliderBanner(isTab, isMd); + + const fetchData = async () => { + try { + setLoading(true); + const res = await fetch(`${baseAPI}banners/${size}`, { + headers: { + "Accept-Language": lang, + }, + }); + + if (!res.ok) { + throw new Error("Ошибка при загрузке данных"); + } + + const data: SliderType = await res.json(); + setData(data); + setLoading(false); + } catch (error) { + console.log(error); + } + }; + + const imgRef = useRef<HTMLImageElement>(null); + + useEffect(() => { + fetchData(); + }, [size, lang]); + + if (loading) return <Loader className="bg-white" />; + + return ( + <section className={clsx("h-full bg-white")}> + <Swiper + modules={[Autoplay, Pagination]} + loop + autoplay={{ delay: 3000 }} + speed={5000} + slidesPerView={1} + slidesPerGroup={1} + className="size-full" + > + {sliderData && + sliderData?.data.banner_items.map((item, i) => ( + <SwiperSlide key={i} className="size-full cursor-pointer"> + <Link + href={item.link ? item.link : ""} + target="_blank" + className="size-full" + > + <Image + ref={imgRef} + height={600} + width={1920} + src={item?.image} + alt={item?.title} + className="object-contain size-full" + /> + </Link> + </SwiperSlide> + ))} + </Swiper> + </section> + ); +}; diff --git a/components/shared/Video.tsx b/components/shared/Video.tsx new file mode 100644 index 0000000..37bb9cb --- /dev/null +++ b/components/shared/Video.tsx @@ -0,0 +1,23 @@ +import clsx from "clsx"; + +export const Video = () => { + return ( + <section className="relative"> + <video + className={clsx( + "w-full opacity-100 lg:h-[565px] sm:h-[375px] h-[200px] object-cover mx-auto" + )} + id="vid" + autoPlay + typeof="video/mp4" + loop + muted + src="https://turkmenexpo.com/app/storage/app/media/video/video.mp4" + /> + <div + id="spinner" + className="hidden border-[8px] border-solid border-l-red h-[60px] w-[60px] rounded-full z-[100] absolute top-[100px] left-[100px] " + ></div> + </section> + ); +}; diff --git a/components/shared/contacts-form.tsx b/components/shared/contacts-form.tsx new file mode 100644 index 0000000..c19abc0 --- /dev/null +++ b/components/shared/contacts-form.tsx @@ -0,0 +1,133 @@ +"use client"; + +import { FC, useState } from "react"; +import { Form, useForm } from "react-hook-form"; +import { zodResolver } from "@hookform/resolvers/zod"; +import { z } from "zod"; +import clsx from "clsx"; +import { postContacts } from "@/services/contacts"; + +interface Props { + className?: string; +} + +const formSchema = z.object({ + name: z.string().min(2, "Имя необходимо"), + email: z.string().email("Email необходим"), + phone: z.string().min(8, "Номер телефона необходим"), + company: z.string().optional(), + msg: z.string().min(5, "Сообщение необходимо"), +}); + +export type FormType = z.infer<typeof formSchema>; + +export const ContactsForm: FC<Props> = ({ className }) => { + const [status, setStatus] = useState(false); + + const { register, handleSubmit, formState, reset } = useForm({ + resolver: zodResolver(formSchema), + defaultValues: { + name: "", + email: "", + phone: "", + company: "", + msg: "", + }, + }); + + async function onSubmit(data: FormType) { + try { + const res = await postContacts(data); + + reset(); + setStatus(res); + } catch (error) { + console.error("POST contact", error); + } + } + + return ( + <div className={clsx("bg-PRIMARY rounded-[8px] py-8 px-6", className)}> + <form onSubmit={handleSubmit(onSubmit)}> + <h2 className="h2 !text-white text-3xl font-medium lg:mb-8 mb-6"> + Связаться с нами + </h2> + + <div className="flex flex-col gap-8"> + <div className="flex flex-col relative"> + <label htmlFor="name" className="label"> + Имя + </label> + <input + type="text" + id="name" + className="input" + {...register("name")} + /> + <span className="error">{formState.errors.name?.message}</span> + </div> + + <div className="grid grid-cols-1 lg:grid-cols-2 gap-6 items-center"> + <div className="flex flex-col relative"> + <label htmlFor="email" className="label"> + E-mail + </label> + <input + type="text" + id="email" + className="input" + {...register("email")} + /> + <span className="error">{formState.errors.email?.message}</span> + </div> + + <div className="flex flex-col relative"> + <label htmlFor="phone" className="label"> + Номер + </label> + <input + type="text" + id="phone" + className="input" + {...register("phone")} + /> + <span className="error">{formState.errors.phone?.message}</span> + </div> + </div> + + <div className="flex flex-col relative"> + <label htmlFor="company" className="label"> + Название компании + </label> + <input + type="text" + id="company" + className="input" + {...register("company")} + /> + <span className="error">{formState.errors.company?.message}</span> + </div> + + <div className="flex flex-col relative"> + <label htmlFor="msg" className="label"> + Сообщение + </label> + <textarea + rows={3} + id="msg" + className="input !h-28 resize-none" + {...register("msg")} + /> + <span className="error">{formState.errors.msg?.message}</span> + </div> + <button + disabled={formState.isSubmitting || status} + className="bg-[#A4FFF3] text-sm text-ON_PRIMARY_CONTAINER h-10 rounded-[2px]" + > + {!status ? "Отправить" : "Форма отправлена"} + </button> + </div> + </form> + </div> + ); +}; diff --git a/components/shared/event-card.tsx b/components/shared/event-card.tsx new file mode 100644 index 0000000..fe3c0b9 --- /dev/null +++ b/components/shared/event-card.tsx @@ -0,0 +1,146 @@ +"use client"; + +import React from "react"; +import Image from "next/image"; +import clsx from "clsx"; + +import { + CalendarImage, + Coorganizers, + Organizer, + Timing, +} from "@/lib/types/Calendar.type"; +import { useAppSelector } from "@/redux/hooks"; +import { useLang } from "@/utils/useLang"; +import Link from "next/link"; + +interface Props { + id: number; + description: string; + starts_at: string; + ends_at: string; + date: string; + title: string; + web_site: string | null; + location: string | null; + timing: Timing[]; + event_topic: string | null; + organizers: Organizer[]; + category: string; + images: CalendarImage[]; + dark?: boolean; + coorganizers?: Coorganizers[]; +} + +export const EventCard = ({ + id, + coorganizers, + description, + starts_at, + ends_at, + title, + date, + organizers, + category, + images, + dark = false, +}: Props) => { + const formatDate = (dateString: string) => { + const dateParts = dateString?.split(" "); + const date = dateParts?.[0]; + const parts = date?.split("-"); + const formattedDate = `${parts?.[2]}.${parts?.[1]}.${parts?.[0]}`; + + return formattedDate; + }; + + const lang = useAppSelector( + (state) => state.headerSlice.activeLang.localization + ); + + return ( + <Link className="w-full cursor-default" href={`/calendar/${id}`}> + <div + className={clsx( + "cursor-pointer overflow-hidden transition-all w-full lg:h-[228px] lg:p-0 p-4 rounded-[4px]", + { + "bg-white": dark, + } + )} + > + <div + className={clsx( + "md:hidden flex flex-col gap-8 border-b-[1px] border-opacity-10 mb-5 pb-5 md:gap-y-5 min-w-[200px]", + { + "border-gray3": dark, + "border-lightCyan": !dark, + } + )} + > + <div + className={clsx( + "text-[16px] flex leading-[150%] md:text-[18px] font-semibold", + {} + )} + > + <p className="mr-5">{formatDate(starts_at)}</p>{" "} + <p>{formatDate(ends_at)}</p> + </div> + </div> + + <div className="flex md:flex-nowrap flex-wrap items-start lg:gap-x-[33px] gap-[10px]"> + <Image + src={images?.[0]?.path || ""} + width={228} + height={228} + alt="Event Image" + className="lg:size-[228px] size-[100px] object-cover rounded-l-[4px]" + /> + + {/* CENTER */} + <div className="flex flex-col gap-[10px] md:gap-4 max-w-[683px] py-6 w-full"> + <p className="text-[12px] text-[#6B7674] font-normal leading-none"> + {category} + </p> + <div className="flex flex-col gap-[10px] md:gap-[15px]"> + <h3 + className={clsx( + "text-5 font-medium line leading-[115%] lg:leading-8 md:leading-[100%]" + )} + > + {title} + </h3> + {/* <p className={clsx('text-base line-clamp-2 leading-[130%] md:leading-[150%]', {})}> + {description} + </p> */} + </div> + <div className="flex flex-col gap-[10px]"> + <p className="text-[#6B7674] uppercase font-normal leading-none text-[10px]"> + {useLang("Organiser:", "Организатор:", lang)} + </p> + <p className="text-[#6B7674] font-normal text-[13px] leading-[125%]"> + {organizers ? organizers[0]?.name : null} + </p> + </div> + {coorganizers && coorganizers?.length > 0 && ( + <div className="flex flex-col gap-[10px]"> + <p className="text-[#6B7674] uppercase font-normal leading-none text-[10px]"> + {useLang("Co-organiser:", "Со-организатор:", lang)} + </p> + <p className="text-[#6B7674] font-normal text-[13px] leading-[125%]"> + {coorganizers ? coorganizers[0]?.name : null} + </p> + </div> + )} + </div> + {/* CENTER */} + + <div className="hidden md:flex text-2xl flex-col text-white leading- none h-[228px] min-w-[245px] items-center justify-center bg-[#31A898] px-12 text-center"> + <p className="">{formatDate(starts_at)}</p>{" "} + <p>{formatDate(ends_at)}</p> + </div> + </div> + </div> + </Link> + ); +}; diff --git a/components/shared/event-page-buttons.tsx b/components/shared/event-page-buttons.tsx new file mode 100644 index 0000000..276a667 --- /dev/null +++ b/components/shared/event-page-buttons.tsx @@ -0,0 +1,49 @@ +"use client"; + +import { useAppSelector } from "@/redux/hooks"; +import Link from "next/link"; +import { FC } from "react"; + +interface Props { + className?: string; + once?: boolean; + register?: string; + visit?: string; + details?: string; +} + +export const EventPageButtons: FC<Props> = ({ + once = false, + register, + visit, + details, +}) => { + const lang = useAppSelector( + (state) => state.headerSlice.activeLang.localization + ); + + return ( + <div className="flex items-center gap-6"> + {once ? ( + <> + <Link href={register || ""} className="w-full" target="_blank"> + <button className="full-btn bg-PRIMARY py-2.5 text-white"> + {lang === "en" ? "Registration" : "Зарегистрироваться"} + </button> + </Link> + <Link href={visit || ""} className="w-full" target="_blank"> + <button className="full-btn bg-SECONDARY_CONTAINER py-2.5 text-ON_SECONDARY_CONTAINER"> + {lang === "en" ? "Visit site" : "Посетить сайт"} + </button> + </Link> + </> + ) : ( + <Link href={details || ""} className="w-full" target="_blank"> + <button className="full-btn w-full bg-PRIMARY py-2.5 text-white"> + {lang === "en" ? "More" : "Подробнее"} + </button> + </Link> + )} + </div> + ); +}; diff --git a/components/shared/events-mobile.tsx b/components/shared/events-mobile.tsx new file mode 100644 index 0000000..67f6c35 --- /dev/null +++ b/components/shared/events-mobile.tsx @@ -0,0 +1,46 @@ +"use client"; + +import "swiper/css"; +import "swiper/css/pagination"; +// import "./styles/events.css"; + +import { useLang } from "@/utils/useLang"; +import { FC } from "react"; +import { Swiper, SwiperSlide } from "swiper/react"; +import { EventCard } from "./event-card"; +import { CalendarType } from "@/lib/types/Calendar.type"; +import { useAppSelector } from "@/redux/hooks"; + +interface Props { + data: CalendarType["data"]; + className?: string; +} + +export const EventsMobile: FC<Props> = ({ data }) => { + const lang = useAppSelector( + (state) => state.headerSlice.activeLang.localization + ); + return ( + <div className="md:hidden container"> + <h2 className="text-[26px] mb-5 sm:mb-10 font-semibold leading-[115%]"> + {useLang( + "Upcoming exhibitions and events", + "Ближайшие выставки и мероприятия", + lang + )} + </h2> + <div className="flex flex-col"> + <div className="flex items-center gap-y-[10px]"> + <Swiper slidesPerView={1} spaceBetween={20}> + {data && + data.map((item, i) => ( + <SwiperSlide key={i} className="md:mb-[72px]"> + <EventCard dark {...item} /> + </SwiperSlide> + ))} + </Swiper> + </div> + </div> + </div> + ); +}; diff --git a/components/shared/news-card.tsx b/components/shared/news-card.tsx new file mode 100644 index 0000000..026d9dc --- /dev/null +++ b/components/shared/news-card.tsx @@ -0,0 +1,34 @@ +import React from 'react'; +import Image from 'next/image'; +import Link from 'next/link'; + +interface Props { + img: string; + date: string; + id: number; + title: string; + mobile?: boolean; +} + +export const NewsCard = ({ img, title, date, id, mobile = false }: Props) => { + return ( + <div className="bg-white rounded-[4px] mx-auto w-full transition-all h-[415px]"> + {/* Aspect ration 1.8:1 */} + <Image + src={img} + width={290} + height={221} + alt="photo" + className="mob:h-[221px] h-[160px] w-full object-cover rounded-t-[4px]" + /> + <Link href={`/news/${id}`} className="h-full"> + <div className="p-[25px] h-[160px] sm:h-[140px]"> + <p className="text-extraSm leading-[125%] text-[#787878] mb-[10px]">{date}</p> + <p className="font-medium leading-[135%] sm:text-[22px] text-[21px] line-clamp-4"> + {title} + </p> + </div> + </Link> + </div> + ); +}; diff --git a/components/shared/news-inner.tsx b/components/shared/news-inner.tsx new file mode 100644 index 0000000..e1f6b11 --- /dev/null +++ b/components/shared/news-inner.tsx @@ -0,0 +1,9 @@ +import { FC } from 'react'; + +interface Props { + className?: string; +} + +export const NewsInner: FC<Props> = ({ className }) => { + return <div className={className}></div>; +}; diff --git a/components/shared/search-input.tsx b/components/shared/search-input.tsx new file mode 100644 index 0000000..c6ac046 --- /dev/null +++ b/components/shared/search-input.tsx @@ -0,0 +1,223 @@ +"use client"; +import React, { useEffect, useState } from "react"; +import Image from "next/image"; +import { motion } from "framer-motion"; + +import { useAppDispatch, useAppSelector } from "@/redux/hooks"; +import close from "@/public/assets/icons/home/close-input.svg"; + +import { selectInput, setInputStatus } from "@/redux/slices/inputSlice"; +import { v4 } from "uuid"; +import { selectHeader, setShowInput } from "@/redux/slices/headerSlice"; +import clsx from "clsx"; +import { selectBurger } from "@/redux/slices/burgerSlice"; +import { baseAPI } from "@/lib/API"; +import Link from "next/link"; +import { SearchTypes } from "@/lib/types/Search.type"; +import { useMediaQuery } from "usehooks-ts"; + +export const inputRadio = [ + { name: "Везде", id: "all" }, + { name: "В событиях", id: "events" }, + { name: "В новостях", id: "news" }, +]; + +export const SearchInput = ({ mob = false }: { mob?: boolean }) => { + const localization = useAppSelector( + (state) => state.headerSlice.activeLang.localization + ); + const wrapper = document.querySelector(".wrapper"); + + const tab = useMediaQuery("(min-width: 980px)"); + + const [value, setValue] = useState(""); + const [searchValue, setSearchValue] = useState(""); + const [searchData, setSearchData] = useState<SearchTypes>(); + const [isSearching, setIsSearching] = useState(false); + const [searchIsError, setSearchIsError] = useState(false); + + const { showInput } = useAppSelector(selectHeader); + + useEffect(() => { + wrapper?.classList.remove("overflow-hidden"); + wrapper?.classList.add("overflow-hidden"); + + setStatus(inputRadio[0].id); + inputRadio; + + return () => { + wrapper?.classList.remove("overflow-hidden"); + }; + }, [showInput]); + + const fetchSearchData = async () => { + setIsSearching(true); + setSearchValue(value); + try { + const res = await fetch(`${baseAPI}search?search=${value}`, { + headers: { + "Accept-Language": localization, + "Content-Type": "application/json", + }, + }); + + if (!res.ok) { + return console.error(res.status); + } + + const data = await res.json(); + setSearchData(data); + + setIsSearching(false); + } catch (error) { + console.error(error); + setSearchIsError(true); + } + }; + + const dispatch = useAppDispatch(); + const { inputStatus } = useAppSelector(selectInput); + const { burgerOpen } = useAppSelector(selectBurger); + + const setStatus = (name: string) => { + dispatch(setInputStatus(name)); + }; + + return ( + <motion.div + initial={{ + y: "-100%", + opacity: 0, + }} + animate={{ + y: 0, + opacity: 1, + }} + exit={{ + y: "-100%", + opacity: 0, + }} + transition={{ + duration: 0.5, + ease: [0.55, 0, 0.1, 1], + }} + className={clsx("left-0 w-full h-screen overflow-auto z-20 bg-blueBg", { + "fixed top-[74px] bottom-0": !tab, + "absolute bottom-0 top-0 z-[9999]": tab, + hidden: burgerOpen, + })} + > + <div className="container section-mb"> + <div className="w-full flex justify-end mt-[40px]"> + <svg + className="cursor-pointer" + onClick={() => dispatch(setShowInput(false))} + width="24" + height="24" + viewBox="0 0 24 24" + fill="none" + xmlns="http://www.w3.org/2000/svg" + > + <path + d="M12 13.4L7.09999 18.3C6.91665 18.4834 6.68332 18.575 6.39999 18.575C6.11665 18.575 5.88332 18.4834 5.69999 18.3C5.51665 18.1167 5.42499 17.8834 5.42499 17.6C5.42499 17.3167 5.51665 17.0834 5.69999 16.9L10.6 12L5.69999 7.10005C5.51665 6.91672 5.42499 6.68338 5.42499 6.40005C5.42499 6.11672 5.51665 5.88338 5.69999 5.70005C5.88332 5.51672 6.11665 5.42505 6.39999 5.42505C6.68332 5.42505 6.91665 5.51672 7.09999 5.70005L12 10.6L16.9 5.70005C17.0833 5.51672 17.3167 5.42505 17.6 5.42505C17.8833 5.42505 18.1167 5.51672 18.3 5.70005C18.4833 5.88338 18.575 6.11672 18.575 6.40005C18.575 6.68338 18.4833 6.91672 18.3 7.10005L13.4 12L18.3 16.9C18.4833 17.0834 18.575 17.3167 18.575 17.6C18.575 17.8834 18.4833 18.1167 18.3 18.3C18.1167 18.4834 17.8833 18.575 17.6 18.575C17.3167 18.575 17.0833 18.4834 16.9 18.3L12 13.4Z" + fill="#0f0000" + /> + </svg> + </div> + <div + className={`flex flex-col mt-[10vw] items-center w-full mb-6 max-w-[566px] mx-auto`} + > + <div className="w-full mb-[24px]"> + <input + maxLength={30} + onChange={(e: React.ChangeEvent<HTMLInputElement>) => + setValue(e.target.value) + } + value={value} + type="text" + placeholder="Что найти?" + className="p-3 w-full leading-[150%] placeholder:leading-[150%] placeholder:text-gray focus:outline-none rounded-sm bg-transparent border-[1px] border-[#BCC4CC]" + /> + </div> + <div className="flex items-center text-[12px] sm:text-[14px] gap-[40px] sm:gap-[48px] mb-5 sm:mb-10"> + {inputRadio.map((item) => ( + <div + onClick={() => setStatus(item.id)} + className="flex cursor-pointer items-center gap-[10px]" + key={v4()} + > + <div + className={clsx( + "size-5 border border-primary relative after:absolute transition-all after:transition-all after:size-[9px] after:scale-0 flex items-center justify-center after:bg-primary after:rounded-full rounded-full", + inputStatus === item.id && "after:scale-100" + )} + /> + <p>{item.name}</p> + </div> + ))} + </div> + <button + disabled={isSearching || value.length < 3} + className="mb-6" + onClick={fetchSearchData} + > + {isSearching ? ( + <div className="bg-green w-[180px] h-[48px] py-[17px] rounded-sm"> + <span className="loader"></span> + </div> + ) : ( + <div className="bg-green py-[17px] px-[70px] rounded-sm"> + Найти + </div> + )} + </button> + + {searchData ? ( + searchData.data.expo_events.length && + searchData.data.posts.length ? ( + <> + <div className="mb-12 font-light"> + По запросу « <span className="font-bold">{searchValue}</span>{" "} + » нашлось + {searchData.data.expo_events.length + + searchData.data.posts.length}{" "} + результатов + </div> + <div className="flex flex-col gap-9 w-full tab:mb-0 mb-20"> + {inputStatus === "all" || inputStatus === "events" + ? searchData.data.expo_events.map((item) => ( + <div className="w-full"> + <h3 className="font-bold mb-[18px] text-[16px] leading-[125%]"> + {item.title} + </h3> + <Link href={`/calendar/${item.id}`}> + Перейти на страницу + </Link> + <hr className="mt-9 border-OUTLINE_VAR" /> + </div> + )) + : null} + {inputStatus === "all" || inputStatus === "news" + ? searchData.data.posts.map((item) => ( + <div className="w-full"> + <h3 className="font-bold mb-[18px] text-[16px] leading-[125%]"> + {item.title} + </h3> + <Link href={`/news/${item.id}`}> + Перейти на страницу + </Link> + <hr className="mt-9 border-OUTLINE_VAR" /> + </div> + )) + : null} + </div> + </> + ) : ( + <h3>По вашему запросу ничего не найдено</h3> + ) + ) : null} + </div> + </div> + </motion.div> + ); +}; diff --git a/components/shared/services.tsx b/components/shared/services.tsx new file mode 100644 index 0000000..10b0e2a --- /dev/null +++ b/components/shared/services.tsx @@ -0,0 +1,61 @@ +"use client"; + +import React from "react"; +import Image from "next/image"; + +import { contactCardData, roadCardData } from "@/lib/database/homeInfoData"; +import { useLang } from "@/utils/useLang"; +import { useAppSelector } from "@/redux/hooks"; + +export const Services = () => { + const localization = useAppSelector( + (state) => state.headerSlice.activeLang.localization + ); + + return ( + <div + className={`container flex flex-col md:flex-row md:w-full gap-5 lg:gap-x-[40px] items-center`} + > + <div className="flex flex-col items-start gap-x-5 w-full"> + <h3 className="text-[21px] leading-[100%] font-bold text-bgWhite md:text-[#B0E6A1] uppercase md:mb-10 mb-5"> + {useLang("Routes", "как добраться", localization)} + </h3> + <div className="flex flex-col gap-y-5 w-full"> + {roadCardData.map((item, i) => ( + <div + className="bg-white w-full transition-all hover:hover-shadow cursor-pointer service-shadow px-[40px] py-5 text-black greenBtnShadow rounded-[2px] custom-shadow" + key={i} + > + <div className="flex items-center gap-10 md:gap-5"> + <Image className="img-auto" src={item.icon} alt="icon" /> + <p className="text-[16px] leading-[120%] md:leading-[100%]"> + {localization === "ru" ? item.text : item.enText} + </p> + </div> + </div> + ))} + </div> + </div> + <div className="flex flex-col items-start md:mt-0 mt-10 gap-x-5 w-full"> + <h3 className="text-[21px] leading-[100%] text-bgWhite md:text-[#FFD288] uppercase font-bold md:mb-10 mb-5"> + {useLang("Contacts", "контакты", localization)} + </h3> + <div className="flex flex-col gap-y-5 w-full"> + {contactCardData.map((item, i) => ( + <div + className="bg-white w-full transition-all hover:hover-shadow cursor-pointer service-shadow px-[40px] py-5 text-black greenBtnShadow rounded-[2px]" + key={i} + > + <div className="flex items-center md:gap-5 gap-10"> + <Image src={item.icon} alt="icon" /> + <p className="text-[16px] leading-[120%] md:leading-[100%]"> + {localization === "ru" ? item.text : item.enText} + </p> + </div> + </div> + ))} + </div> + </div> + </div> + ); +}; diff --git a/components/shared/slider-client.tsx b/components/shared/slider-client.tsx new file mode 100644 index 0000000..6e3acb9 --- /dev/null +++ b/components/shared/slider-client.tsx @@ -0,0 +1,52 @@ +"use client"; + +import { useEffect, useState } from "react"; +import Image from "next/image"; +import { useMediaQuery } from "usehooks-ts"; +import { useAppSelector } from "@/redux/hooks"; +import { useSliderBanner } from "@/hooks/use-slider"; +import Loader from "../ui/Loader"; + +export const SliderClient = () => { + const isTab = useMediaQuery("(min-width: 1024px)"); + const isMd = useMediaQuery("(min-width: 700px)"); + + const [data, setData] = useState<any>(null); + const [loading, setLoading] = useState(true); + const bannerType = useSliderBanner(isTab, isMd); + const lang = useAppSelector( + (state) => state.headerSlice.activeLang.localization + ); + + const fetchData = async () => { + try { + setLoading(true); + const res = await fetch(`/api/banners?bannerType=${bannerType}`, { + headers: { + "Accept-Language": lang, + }, + }); + const json = await res.json(); + setData(json); + setLoading(false); + } catch (error) { + console.error(error); + } + }; + + useEffect(() => { + fetchData(); + }, [bannerType, lang]); + + if (loading) return <Loader className="h-[600px] min-h-[320px]" />; + + return ( + <Image + src={data.data.banner_items?.[0]?.image || ""} + alt="Баннер" + width={1920} + height={600} + className="object-cover max-h-[600px] min-h-[320px] size-full object-center" + /> + ); +}; diff --git a/components/ui/Buttons.tsx b/components/ui/Buttons.tsx new file mode 100644 index 0000000..fb05550 --- /dev/null +++ b/components/ui/Buttons.tsx @@ -0,0 +1,78 @@ +"use client"; + +import React from "react"; +import clsx from "clsx"; + +interface GreenBtnProps { + text: string | boolean; + mt?: string; + onEventBtn?: () => void; + border?: boolean; + px?: boolean; +} + +export const GreenBtn = ({ text, mt, onEventBtn, px }: GreenBtnProps) => { + return ( + <button + onClick={onEventBtn} + className={clsx( + `${mt} py-[17px] text-[14px] rounded-[4px] bg-green text-[#346560] hover:bg-opacity-90 font-medium transition-all`, + { + "px-[43px]": !px, + "px-[70px]": px, + } + )} + > + {text} + </button> + ); +}; + +interface BorderProps { + onEventBtn?: () => void; + text: string; + mt?: string; + px?: boolean; + full?: boolean; +} + +export const BorderBtn = ({ onEventBtn, text, mt, px, full }: BorderProps) => { + return ( + <button + className={clsx(`mt-[${mt}] border-btn py-[17px]`, { + "px-[43px]": px, + "px-[17px]": !px, + "w-full sm:w-fit": full, + })} + onClick={onEventBtn} + > + {text} + </button> + ); +}; + +interface MobBtnProps { + text: string; +} + +export const GreenBtnMob = ({ text }: MobBtnProps) => { + return ( + <button + type="button" + className="p-3 rounded-sm bg-green w-[140px] mx-auto cursor-pointer hover:bg-lightGreen transition-all" + > + {text} + </button> + ); +}; + +export const SimpleGreenBtn = ({ text }: MobBtnProps) => { + return ( + <button + type="button" + className="bg-green py-[17px] px-[70px] leading-[100%] rounded-sm hover:bg-lightGreen transition-all" + > + {text} + </button> + ); +}; diff --git a/components/ui/Loader.tsx b/components/ui/Loader.tsx new file mode 100644 index 0000000..848f5cc --- /dev/null +++ b/components/ui/Loader.tsx @@ -0,0 +1,14 @@ +import clsx from "clsx"; +import React from "react"; + +const Loader = ({ className }: { className?: string }) => { + return ( + <div + className={clsx(className, "flex h-[500px] justify-center items-center")} + > + <div className="animate-spin border-4 border-t-transparent size-20 rounded-full border-PRIMARY" /> + </div> + ); +}; + +export default Loader; diff --git a/components/ui/Pagination.tsx b/components/ui/Pagination.tsx new file mode 100644 index 0000000..b0c5528 --- /dev/null +++ b/components/ui/Pagination.tsx @@ -0,0 +1,60 @@ +"use client"; + +import React, { Dispatch, SetStateAction } from "react"; + +interface IProps { + lastPage?: number; + currentPage?: number; + totalPage?: number; + current: number; + setCurrent: Dispatch<SetStateAction<number>>; +} + +export const Pagination = ({ current, setCurrent, lastPage = 3 }: IProps) => { + const onNext = () => { + setCurrent(current + 1); + }; + + const onPrev = () => { + setCurrent(current - 1); + }; + + return ( + <div className="flex items-center gap-[5px] justify-center"> + <button onClick={onPrev} disabled={current === 1} type="button"> + <svg + width="32" + height="32" + viewBox="0 0 32 32" + fill="none" + xmlns="http://www.w3.org/2000/svg" + className="cursor-pointer" + > + <path + d="M18 22L12 16L18 10L19.4 11.4L14.8 16L19.4 20.6L18 22Z" + fill="#059784" + /> + </svg> + </button> + <div className="border-[1px] border-OUTLINE_VAR rounded-sm px-3 py-[9px]"> + {current} + </div> + <p>из {lastPage}</p> + <button onClick={onNext} disabled={current >= lastPage} type="button"> + <svg + width="32" + height="32" + viewBox="0 0 32 32" + fill="none" + xmlns="http://www.w3.org/2000/svg" + className="rotate-180 cursor-pointer" + > + <path + d="M18 22L12 16L18 10L19.4 11.4L14.8 16L19.4 20.6L18 22Z" + fill="#059784" + /> + </svg> + </button> + </div> + ); +}; diff --git a/components/ui/Sidebar.tsx b/components/ui/Sidebar.tsx new file mode 100644 index 0000000..a1866b0 --- /dev/null +++ b/components/ui/Sidebar.tsx @@ -0,0 +1,59 @@ +"use client"; + +import React from "react"; +import Link from "next/link"; +import clsx from "clsx"; +import { usePathname } from "next/navigation"; + +import { sidebarData } from "@/lib/database/pathnames"; +import { useAppSelector } from "@/redux/hooks"; + +export const Sidebar = () => { + const pathname = usePathname(); + + const lang = useAppSelector( + (state) => state.headerSlice.activeLang.localization + ); + + return ( + <div className="flex flex-col bg-white rounded-lg px-6 py-4 items-start gap-y-[12px] pb-5 mt-12 sticky top-0 left-0 overflow-hidden"> + {sidebarData + .filter( + (obj) => + (pathname === "/company/aboutus" && obj.company) || + (pathname.includes("/members") && obj.members) || + (pathname.includes("/news") && obj.news) || + (pathname.includes("/visitors") && obj.visitors) || + (pathname.includes("/services") && obj.services) + ) + .map((item, i) => ( + <div key={i}> + <p + className={clsx("mb-[16px] text-[16px] font-bold leading-[1.5]")} + > + {lang === "ru" ? item.pathname : item.pathnameEn} + </p> + <div className="flex flex-col items-start gap-y-[8px]"> + <div className="flex flex-col gap-[10px] pl-4 pr-10"> + {item.info.map((obj, i) => ( + <Link + href={obj.link} + className={clsx( + "cursor-pointer py-1 leading-[130%] transition-all hover:opacity-80", + { + "hover:text-PRIMARY text-PRIMARY hover:cursor-default": + obj.link === pathname, + } + )} + key={i} + > + {lang === "ru" ? obj.title : obj.titleEn} + </Link> + ))} + </div> + </div> + </div> + ))} + </div> + ); +}; diff --git a/components/ui/bread-crumbs.tsx b/components/ui/bread-crumbs.tsx new file mode 100644 index 0000000..01b28a8 --- /dev/null +++ b/components/ui/bread-crumbs.tsx @@ -0,0 +1,38 @@ +"use client"; + +import { useAppSelector } from "@/redux/hooks"; +import { selectHeader } from "@/redux/slices/headerSlice"; +import { useLang } from "@/utils/useLang"; +import Link from "next/link"; + +export const BreadCrumbs = ({ + second, + third, + path, + path2, + cursor = false, +}: { + second: string; + third?: string; + path?: string; + path2?: string; + cursor?: boolean; +}) => { + const { activeLang } = useAppSelector(selectHeader); + + return ( + <div className="text-[12px] text-[#6B7674] flex items-center mob:mb-6 mb-5"> + <Link href={"/"}> + {useLang("Home", "Главная", activeLang.localization)} + </Link> + + <p className="px-1">/</p> + + {third ? <Link href={path ? path : ""}>{second}</Link> : <p>{second}</p>} + + {third && <p className="px-1">/</p>} + + {third && <p>{third}</p>} + </div> + ); +}; diff --git a/components/ui/burger-drop.tsx b/components/ui/burger-drop.tsx new file mode 100644 index 0000000..de1497e --- /dev/null +++ b/components/ui/burger-drop.tsx @@ -0,0 +1,63 @@ +"use client"; + +import { burgerMenuData } from "@/lib/database/pathnames"; +import { useAppDispatch, useAppSelector } from "@/redux/hooks"; +import Link from "next/link"; +import React from "react"; +import Image from "next/image"; +import { v4 } from "uuid"; + +import arrow from "@/public/assets/icons/header/burger-arrow.svg"; +import { + setBurgerDrop, + setBurgerOpen, + setFooterDrop, +} from "@/redux/slices/burgerSlice"; + +export const BurgerDrop = ({ + filter, + setDrop, +}: { + filter: string; + setDrop: (name: boolean) => void; +}) => { + const dispatch = useAppDispatch(); + + return burgerMenuData + .filter((obj) => !obj.only) + .map( + (item) => + item.pathname === filter && ( + <div key={v4()} className="flex flex-col"> + <div + onClick={() => { + setDrop(false); + dispatch(setBurgerDrop("")); + dispatch(setFooterDrop("")); + }} + className="cursor-pointer flex items-center gap-[10px] mb-[10px]" + > + <Image src={arrow} alt="стрелка" className="rotate-180" /> + <h3 className="leading-[135%] text-[18px]">{item.title}</h3> + </div> + <hr className="border-bgWhite mb-5" /> + + <div className="flex flex-col leading-[150%] gap-5"> + {item.info?.map((subj) => ( + <Link + key={v4()} + href={subj.link} + className="cursor-pointer text-white" + onClick={() => { + dispatch(setBurgerOpen(false)); + setDrop(false); + }} + > + {subj.title} + </Link> + ))} + </div> + </div> + ) + ); +}; diff --git a/components/ui/burger-menu.tsx b/components/ui/burger-menu.tsx new file mode 100644 index 0000000..f0923b5 --- /dev/null +++ b/components/ui/burger-menu.tsx @@ -0,0 +1,265 @@ +"use client"; + +import Link from "next/link"; +import { useEffect, useState } from "react"; +import { v4 } from "uuid"; +import { motion } from "framer-motion"; + +import { useAppDispatch, useAppSelector } from "@/redux/hooks"; +import { setBurgerOpen } from "@/redux/slices/burgerSlice"; +import { activeLangType, setActiveLang } from "@/redux/slices/headerSlice"; +import clsx from "clsx"; +import { burgerMenu, burgerMenu2 } from "@/lib/database/header"; +import { useRouter } from "next/navigation"; +import { lang } from "./lang-menu"; + +interface flagTypes { + // title: 'Ру' | 'En' | 'Tm'; + title: "Ру" | "En"; + localization: "ru" | "en"; + // localization: 'ru' | 'en' | 'tm'; +} + +const burgerLangs: flagTypes[] = [ + // { + // title: 'Tm', + // localization: 'tm', + // }, + { + title: "Ру", + localization: "ru", + }, + { + title: "En", + localization: "en", + }, +]; + +export const BurgerMenu = () => { + const dispatch = useAppDispatch(); + const wrapper = document.querySelector(".wrapper"); + const { refresh } = useRouter(); + + const localization = useAppSelector( + (state) => state.headerSlice.activeLang.localization + ); + + const [activeMenu, setActiveMenu] = useState<string>(""); + const [activeMenu2, setActiveMenu2] = useState<string>(""); + + const setActiveTitle = () => { + if (activeMenu.includes("/ser")) + return ( + (localization === "ru" && "Услуги") || + (localization === "en" && "Services") + ); + }; + + const setActiveTitle2 = () => { + if (activeMenu2.includes("/company")) + return ( + (localization === "ru" && "О компании") || + (localization === "en" && "About company") + ); + }; + + const setLang = (lang: activeLangType) => { + // Устанавливаем cookie через document.cookie + document.cookie = `lang=${lang.localization}; path=/; max-age=31536000`; + dispatch(setActiveLang(lang)); + refresh(); + }; + + useEffect(() => { + const cookieLang = document.cookie + .split("; ") + .find((row) => row.startsWith("lang=")) + ?.split("=")[1]; + + if (cookieLang) { + const foundLang = lang.find((l) => l.localization === cookieLang); + if (foundLang) dispatch(setActiveLang(foundLang)); + } + }, [dispatch]); + + useEffect(() => { + wrapper?.classList.remove("overflow-hidden"); + wrapper?.classList.add("overflow-hidden"); + + return () => { + wrapper?.classList.remove("overflow-hidden"); + }; + }, []); + + return ( + <motion.div + initial={{ x: "100%", opacity: 0 }} + animate={{ x: 0, opacity: 1 }} + transition={{ + duration: 0.5, + ease: [0.55, 0, 0.1, 1], + }} + exit={{ + x: "100%", + opacity: 0, + }} + className="bg-green overflow-auto fixed w-full z-[900] top-[74px] bottom-0 left-0 min-h-[100vh] h-full px-4 py-10 flex flex-col overflow-y-auto" + > + {activeMenu && ( + <div> + <div + onClick={() => setActiveMenu("")} + className="flex cursor-pointer" + > + <svg + className="rotate-180" + width="24" + height="24" + viewBox="0 0 24 24" + fill="none" + xmlns="http://www.w3.org/2000/svg" + > + <path + d="M12.6 12L8 7.4L9.4 6L15.4 12L9.4 18L8 16.6L12.6 12Z" + fill="#303F4D" + /> + </svg> + <h2 className="text-[18px] ml-[10px] leading-[135%]"> + {setActiveTitle()} + </h2> + </div> + + <div className="mt-[10px] opacity-50 mb-5 h-[1px] w-full bg-blueBg" /> + </div> + )} + + {activeMenu && ( + <div className="flex flex-col gap-5 leading-[150%]"> + {activeMenu.includes("/services") && + burgerMenu + .filter((item) => item.services) + .map((item, i) => + item.dropDown?.map((obj) => ( + <Link + key={i} + onClick={() => dispatch(setBurgerOpen(false))} + href={obj.link} + > + {localization === "en" ? obj.titleEn : obj.title} + </Link> + )) + )} + </div> + )} + + <div className="leading-[135%] text-[18px] mb-10 flex flex-col gap-5"> + {!activeMenu && + burgerMenu.map((item, i) => + !item.drop ? ( + <Link + key={i} + onClick={() => { + dispatch(setBurgerOpen(false)); + }} + href={item.link} + > + {(localization === "en" && item.titleEn) || + (localization === "ru" && item.title)} + </Link> + ) : ( + <div + key={i} + className="cursor-pointer flex items-center justify-between" + onClick={() => { + setActiveMenu(item.link); + }} + > + {(localization === "en" && item.titleEn) || + (localization === "ru" && item.title)} + {item.drop && ( + <svg + width="24" + height="24" + viewBox="0 0 24 24" + fill="none" + xmlns="http://www.w3.org/2000/svg" + > + <path + d="M12.6 12L8 7.4L9.4 6L15.4 12L9.4 18L8 16.6L12.6 12Z" + fill="#303F4D" + /> + </svg> + )} + </div> + ) + )} + </div> + + <div className="h-[1px] w-full opacity-50 bg-blueBg" /> + + {activeMenu2 && ( + <div> + <div + onClick={() => setActiveMenu2("")} + className="flex cursor-pointer pt-4" + > + <img + src="/assets/icons/header/burger-arrow.svg" + alt="arrow" + className="rotate-180" + /> + <h2 className="text-[18px] ml-[10px] leading-[135%]"> + {setActiveTitle2()} + </h2> + </div> + + <div className="mt-[10px] opacity-50 mb-5 h-[1px] w-full bg-[#F2F9FF]" /> + </div> + )} + + <div + className={clsx("leading-[135%] text-[14px] flex flex-col gap-5", { + "mt-10": !activeMenu2, + })} + > + {activeMenu2.includes("/company") && + burgerMenu2 + .filter((item) => item.company) + .map((obj) => + obj.dropDown?.map((item) => ( + <Link + key={v4()} + href={item.link} + onClick={() => { + dispatch(setBurgerOpen(false)); + }} + > + {(localization === "en" && item.titleEn) || + (localization === "ru" && item.title)} + </Link> + )) + )} + </div> + + <div className="flex items-center mx-auto gap-10 mt-10"> + {burgerLangs.map((item, i) => ( + <div + key={i} + onClick={() => { + dispatch(setActiveLang(item)); + dispatch(setBurgerOpen(false)); + setLang(item); + }} + className="flex cursor-pointer items-center gap-[10px]" + > + <img + src={`/assets/icons/header/${item.localization}.svg`} + alt="flag" + /> + <p>{item.title}</p> + </div> + ))} + </div> + </motion.div> + ); +}; diff --git a/components/ui/lang-menu.tsx b/components/ui/lang-menu.tsx new file mode 100644 index 0000000..9af3b16 --- /dev/null +++ b/components/ui/lang-menu.tsx @@ -0,0 +1,123 @@ +"use client"; + +import React, { useEffect, useRef, useState } from "react"; +import Image from "next/image"; +import clsx from "clsx"; +import { motion, AnimatePresence } from "framer-motion"; + +import triangle from "@/public/assets/icons/drop-icon.svg"; +import { useAppSelector, useAppDispatch } from "@/redux/hooks"; +import { activeLangType, selectHeader } from "@/redux/slices/headerSlice"; +import { setActiveLang } from "@/redux/slices/headerSlice"; +import { usePathname, useRouter, useSearchParams } from "next/navigation"; + +export const lang = [ + { + title: "Русский", + localization: "ru", + }, + // { + // title: 'Tm', + // localization: 'tm', + // }, + { + title: "English", + localization: "en", + }, +]; + +export const LangMenu = () => { + const { activeLang } = useAppSelector(selectHeader); + const { refresh } = useRouter(); + const [active, setActive] = useState(false); + const dispatch = useAppDispatch(); + const menuRef = useRef<HTMLDivElement>(null); + const setLang = (lang: activeLangType) => { + // Устанавливаем cookie через document.cookie + document.cookie = `lang=${lang.localization}; path=/; max-age=31536000`; + dispatch(setActiveLang(lang)); + refresh(); + }; + + useEffect(() => { + const cookieLang = document.cookie + .split("; ") + .find((row) => row.startsWith("lang=")) + ?.split("=")[1]; + + if (cookieLang) { + const foundLang = lang.find((l) => l.localization === cookieLang); + if (foundLang) dispatch(setActiveLang(foundLang)); + } + }, [dispatch]); + + useEffect(() => { + const handleClick = (e: MouseEvent) => { + if (menuRef.current && !menuRef.current.contains(e.target as Node)) { + setActive(false); + } + }; + + document.addEventListener("click", handleClick); + + return () => document.removeEventListener("click", handleClick); + }, []); + + return ( + <div + ref={menuRef} + className="relative w-[90px] cursor-pointer flex items-center gap-x-5" + onClick={() => { + setActive(!active); + }} + > + <div className="flex items-center px-[12px]"> + <p>{activeLang.title}</p> + <Image + src={triangle} + alt="arrow" + className={clsx("transition-rotate duration-300 img-auto", { + "rotate-180": active, + })} + /> + </div> + <AnimatePresence> + {active && ( + <motion.div + initial={{ + opacity: 0, + }} + animate={{ + opacity: 1, + }} + exit={{ + opacity: 0, + }} + transition={{ + duration: 0.2, + }} + className="absolute rounded-[4px] w-[112px] overflow-hidden custom-shadow z-10 flex flex-col top-[27px] bg-[#EEF1F0] transition-all duration-300" + > + {lang + .filter((item) => item.title !== activeLang.title) + .map((item, i) => ( + <div + key={i} + onClick={() => setLang(item)} + className={clsx( + "p-3 pr-[22px] py-4 text-extraSm transition-all", + { + "hover:bg-ON_SECONDARY_CONTAINER/[8%]": + item.title === item.title, + } + )} + > + {item.title} + </div> + ))} + </motion.div> + )} + </AnimatePresence> + </div> + ); +}; diff --git a/components/ui/link-button.tsx b/components/ui/link-button.tsx new file mode 100644 index 0000000..c95b16a --- /dev/null +++ b/components/ui/link-button.tsx @@ -0,0 +1,28 @@ +'use client'; + +import clsx from 'clsx'; +import Link from 'next/link'; +import { FC, PropsWithChildren } from 'react'; + +interface Props { + href: string; + className?: string; +} + +export const LinkButton: FC<PropsWithChildren<Props>> = ({ + className, + href, + children, +}: PropsWithChildren<Props>) => { + return ( + <Link href={href} className={className}> + <button + className={clsx( + 'px-12 py-[17px] text-[14px] rounded-[4px] bg-green text-[#346560] hover:bg-opacity-90 font-medium transition-all', + className, + )}> + {children} + </button> + </Link> + ); +}; diff --git a/components/ui/primary-button.tsx b/components/ui/primary-button.tsx new file mode 100644 index 0000000..ede0897 --- /dev/null +++ b/components/ui/primary-button.tsx @@ -0,0 +1,18 @@ +import { FC, PropsWithChildren } from 'react'; +import clsx from 'clsx'; + +interface Props { + className?: string; +} + +export const PrimaryButton: FC<PropsWithChildren<Props>> = ({ className, children }) => { + return ( + <button + className={clsx( + 'bg-PRIMARY text-[14px] text-white rounded-[4px] font-medium h-12 hover:bg-PRIMARY/90 transition-all', + className, + )}> + {children} + </button> + ); +}; diff --git a/components/ui/secondary-button.tsx b/components/ui/secondary-button.tsx new file mode 100644 index 0000000..349c927 --- /dev/null +++ b/components/ui/secondary-button.tsx @@ -0,0 +1,18 @@ +import clsx from 'clsx'; +import { FC, PropsWithChildren } from 'react'; + +interface Props { + className?: string; +} + +export const SecondaryButton: FC<PropsWithChildren<Props>> = ({ className, children }) => { + return ( + <button + className={clsx( + 'bg-SECONDARY_CONTAINER rounded-[4px] text-ON_SECONDARY_CONTAINER text-[14px] font-medium h-12', + className, + )}> + {children} + </button> + ); +}; diff --git a/components/ui/title.tsx b/components/ui/title.tsx new file mode 100644 index 0000000..0e8ac0d --- /dev/null +++ b/components/ui/title.tsx @@ -0,0 +1,9 @@ +import React from "react"; + +export const Title = ({ text }: { text: string | boolean }) => { + return ( + <h2 className={`text-[26px] sm:text-[34px] leading-[115%] font-normal`}> + {text} + </h2> + ); +}; diff --git a/desktop.ini b/desktop.ini new file mode 100644 index 0000000..6883ceb --- /dev/null +++ b/desktop.ini @@ -0,0 +1,2 @@ +[.ShellClassInfo] +LocalizedResourceName=@turkmen_expo,0 diff --git a/hooks/use-slider.ts b/hooks/use-slider.ts new file mode 100644 index 0000000..7d7aeb5 --- /dev/null +++ b/hooks/use-slider.ts @@ -0,0 +1,9 @@ +export const useSliderBanner = (isTab: boolean, isMd: boolean): string => { + if (isTab) { + return 'main-surat'; + } else if (isMd) { + return 'medium-surat'; + } else { + return 'small-surat'; + } +}; diff --git a/hooks/useStorage.ts b/hooks/useStorage.ts new file mode 100644 index 0000000..f1d26e6 --- /dev/null +++ b/hooks/useStorage.ts @@ -0,0 +1,28 @@ +export const useStorage = (key: string) => { + const setItem = (value: unknown) => { + try { + window.localStorage.setItem(key, JSON.stringify(value)); + } catch (error) { + console.log(error); + } + }; + + const getItem = () => { + try { + const item = window.localStorage.getItem(key); + return item ? JSON.parse(item) : ""; + } catch (error) { + console.log(error); + } + }; + + const removeItem = () => { + try { + window.localStorage.removeItem(key); + } catch (error) { + console.log(error); + } + }; + + return { setItem, getItem, removeItem }; +}; diff --git a/lib/API.ts b/lib/API.ts new file mode 100644 index 0000000..e84bbee --- /dev/null +++ b/lib/API.ts @@ -0,0 +1 @@ +export const baseAPI = "https://turkmenexpo.com/app/api/v1/"; diff --git a/lib/database/header.ts b/lib/database/header.ts new file mode 100644 index 0000000..8507e6f --- /dev/null +++ b/lib/database/header.ts @@ -0,0 +1,123 @@ +export const burgerMenu = [ + { + title: "Календарь мероприятий", + titleEn: "Calendar of events", + link: "/calendar", + }, + { + services: true, + title: "Услуги", + drop: true, + titleEn: "Services", + link: "/services/organization", + + dropDown: [ + { + title: "Организация выставок", + titleEn: "Organization of exhibitions", + link: "/services/organization", + }, + { + title: "B2B Встречи и Матчмейкинг", + titleEn: "B2B Meetings & Business Matchmaking", + link: "/services/meetings", + }, + { + title: "Бизнес-Миссии", + titleEn: "Business Missions", + link: "/services/missions", + }, + + { + title: "Рекламная деятельность", + titleEn: "Advertising activity", + link: "/services/advertising", + }, + { + title: "Организация гибридных мероприятий", + titleEn: "Organization of hybrid events", + link: "/services/hybrid-organizations", + }, + { + title: "Сертификация", + titleEn: "Certification", + link: "/services/certification", + }, + { + title: "Экспедирование грузов и таможенное оформление", + titleEn: "Freight forwarding and customs clearance", + link: "/services/forwarding", + }, + { + title: "Аутсорсинг бух.учета и аудита", + titleEn: "Outsourcing of accounting and auditing", + link: "/services/outsourcing", + }, + { + title: "Обучения персонала", + titleEn: "Personnel-training", + link: "/services/personnel-training", + }, + { + title: "Бизнес - туры", + titleEn: "Business - tours", + link: "/services/business-tours", + }, + ], + }, + { + title: "О компании", + titleEn: "Calendar of events", + link: "/company/aboutus", + }, + { + title: "Новости", + titleEn: "News", + link: "/news", + }, + { + title: "Контакты", + titleEn: "Contacts", + link: "/contacts", + }, + + // { en: true, title: "Exhibition", link: "/exhibition-about" }, + // { en: true, title: "Participants", link: "/participants-info" }, + // { en: true, title: "For visitors", link: "/visitors-info" }, +]; + +export const burgerMenu2 = [ + { + company: true, + title: "О компании", + + titleEn: "About company", + link: "/company/aboutus", + drop: true, + dropDown: [ + { + title: "О нас", + titleEn: "About us", + link: "/company/aboutus", + }, + ], + }, + { + title: "Новости", + + titleEn: "News", + link: "/news", + }, + { + title: "FAQ", + + titleEn: "FAQ", + link: "/faq", + }, + { + title: "Контакты", + + titleEn: "Контакты", + link: "/contacts", + }, +]; diff --git a/lib/database/homeInfoData.ts b/lib/database/homeInfoData.ts new file mode 100644 index 0000000..b0791fd --- /dev/null +++ b/lib/database/homeInfoData.ts @@ -0,0 +1,56 @@ +import car from '@/public/assets/icons/service/car.svg'; +import bus from '@/public/assets/icons/service/bus.svg'; +import track from '@/public/assets/icons/service/track.svg'; + +import { RoadCardProps } from '../types'; + +export const roadCardData: RoadCardProps[] = [ + { + icon: car, + text: 'На машине', + + enText: 'Car', + }, + { + icon: bus, + text: 'На автобусе', + + enText: 'Public transport', + }, + { + icon: track, + text: 'Freight transport', + + enText: 'Car', + }, +]; + +import call from '@/public/assets/icons/service/call.svg'; +import megaphone from '@/public/assets/icons/service/megaphone.svg'; +import bag from '@/public/assets/icons/service/bag.svg'; + +export const contactCardData: RoadCardProps[] = [ + { + icon: call, + text: 'Справочный центр', + + enText: 'Call centre', + }, + { + icon: bag, + text: 'Услуги', + + enText: 'Servise bureau', + }, + { + icon: megaphone, + text: 'Реклама', + + enText: 'Advertising', + }, +]; + +import partner from '@/public/assets/icons/home/partner.svg'; +import { StaticImageData } from 'next/image'; + +export const partnersData: StaticImageData[] = [partner, partner, partner, partner, partner]; diff --git a/lib/database/pathnames.ts b/lib/database/pathnames.ts new file mode 100644 index 0000000..60a9838 --- /dev/null +++ b/lib/database/pathnames.ts @@ -0,0 +1,432 @@ +interface MenuType { + pathname: string; + pathnameEn: string; + company?: boolean; + members?: boolean; + visitors?: boolean; + news?: boolean; + services?: boolean; + info: { + titleEn: string; + title: string; + link: string; + }[]; +} + +export const sidebarData: MenuType[] = [ + { + company: true, + pathname: 'О компании', + pathnameEn: 'About company', + info: [ + { title: 'Коротко о нас', titleEn: 'About us', link: '/company/aboutus' }, + // { title: 'Выставочная деятельность', link: '' }, + // { title: 'История и награды', link: '' }, + // { title: 'Партнеры', link: '' }, + // { title: 'Работы в компании', link: '' }, + // { title: 'Наши издания', link: '' }, + ], + }, + { + members: true, + pathname: 'Участникам', + pathnameEn: 'Participants', + + info: [ + { + title: 'Информация для участников', + titleEn: 'Information for participants', + link: '/members', + }, + { + title: 'Онлайн заявка для участников', + titleEn: 'Online application', + link: '/members/bid', + }, + { + title: 'Правила для участников', + titleEn: 'Rules for participants', + link: '/members/members-rules', + }, + ], + }, + { + news: true, + pathname: 'Новости', + pathnameEn: 'News', + + info: [ + { title: 'Новости', titleEn: 'News', link: '/news' }, + // { title: 'Пресс-релизы', link: '' }, + ], + }, + { + visitors: true, + pathname: 'Посетителям', + pathnameEn: 'Visitors', + + info: [ + { + title: 'Информация для посетителей', + titleEn: 'Information for visitors', + link: '/visitors', + }, + { + title: 'Порядок регистрации посетителей', + titleEn: 'Entrance rules', + link: '/visitors/rules-for-visitors', + }, + ], + }, + { + services: true, + pathname: 'Услуги', + pathnameEn: 'Services', + + info: [ + { + title: 'Организация выставок', + titleEn: 'Organization of exhibitions', + link: '/services/organization', + }, + { + title: 'B2B Встречи и Матчмейкинг', + titleEn: 'B2B Meetings & Business Matchmaking', + link: '/services/meetings', + }, + { + title: 'Бизнес-Миссии', + titleEn: 'Business Missions', + link: '/services/missions', + }, + { + title: 'Маркетинговые услуги', + titleEn: 'Advertising activity', + link: '/services/advertising', + }, + { + title: 'Организация гибридных мероприятий', + titleEn: 'Organization of hybrid events', + link: '/services/hybrid-organizations', + }, + { + title: 'Сертификация', + titleEn: 'Certification', + link: '/services/certification', + }, + { + title: 'Организация перевозки и таможенное оформление', + titleEn: 'Freight forwarding and customs clearance', + link: '/services/forwarding', + }, + { + title: 'Аутсорсинг бухгалтерского учета и аудита', + titleEn: 'Outsourcing of accounting and auditing', + link: '/services/outsourcing', + }, + { + title: 'Тренинг для персонала', + titleEn: 'Personnel-training', + link: '/services/personnel-training', + }, + { + title: 'Бизнес - туры', + titleEn: 'Business - tours', + link: '/services/business-tours', + }, + { + title: 'Дополнительные услуги', + titleEn: 'Additional servies', + link: '/services/additional', + }, + ], + }, +]; + +interface BurgerDataTypes { + pathname: string; + company?: boolean; + members?: boolean; + calendar?: boolean; + faq?: boolean; + news?: boolean; + only?: boolean; + services?: boolean; + visitors?: boolean; + contacts?: boolean; + first?: boolean; + title: string; + drop?: string; + info?: { + title: string; + link: string; + }[]; +} + +export const burgerMenuData: BurgerDataTypes[] = [ + { + pathname: '/calendar', + calendar: true, + only: true, + title: 'Календарь мероприятий', + first: true, + }, + { + members: true, + title: 'Участникам', + pathname: '/members', + drop: 'members', + first: true, + info: [ + { title: 'Информация для участников', link: '/members' }, + { title: 'Онлайн заявка для участников', link: '/members/bid' }, + ], + }, + { + pathname: '/visitors', + visitors: true, + only: true, + title: 'Посетителям', + first: true, + }, + { + pathname: '/services', + services: true, + only: true, + title: 'Услуги', + first: true, + }, + + { + pathname: '/faq', + faq: true, + only: true, + title: 'FAQ', + }, + { + pathname: '/contacts', + contacts: true, + only: true, + title: 'Контакты', + }, + { + company: true, + title: 'О компании', + pathname: '/company/aboutus', + drop: 'company', + info: [ + { title: 'Коротко о нас', link: '/company/aboutus' }, + // { title: "Выставочная деятельность", link: "" }, + // { title: "История и награды", link: "" }, + // { title: "Партнеры", link: "" }, + // { title: "Работы в компании", link: "" }, + // { title: "Наши издания", link: "" }, + ], + }, + { + news: true, + title: 'Новости', + pathname: '/news', + drop: 'news', + info: [ + { title: 'Новости', link: '/news' }, + // { title: "Пресс-релизы", link: "/news" }, + ], + }, +]; + +interface HeaderType { + title: string; + link: string; + id: number; + one?: boolean; + en?: boolean; +} + +export const headerMenu: HeaderType[] = [ + { title: 'О компании', link: '/company/aboutus', id: 1 }, + { title: 'Новости', link: '/news', id: 2 }, + { title: 'FAQ', link: '/faq', id: 3 }, + { title: 'Контакты', link: '/contacts', id: 4 }, + + { en: true, title: 'About company', link: '/company/aboutus', id: 1 }, + { en: true, title: 'News', link: '/news', id: 2 }, + { en: true, title: 'FAQ', link: '/faq', id: 3 }, + { en: true, title: 'Contacts', link: '/contacts', id: 4 }, +]; + +export const headerMenu2: HeaderType[] = [ + { title: 'Календарь мероприятий', link: '/calendar', id: 1 }, + { title: 'Услуги', link: '/services/organization', id: 2 }, + { title: 'О компании', link: '/company/aboutus', id: 3 }, + { title: 'Новости', link: '/news', id: 4 }, + { title: 'Контакты', link: '/contacts', id: 5 }, + + // { title: 'Участникам', link: '/members', id: 2 }, + // { title: 'Посетителям', link: '/visitors', id: 3 }, + + { en: true, title: 'Calendar of events', link: '/calendar', id: 1 }, + { en: true, title: 'Services', link: '/services/organization', id: 2 }, + { en: true, title: 'About company', link: '/company/aboutus', id: 3 }, + { en: true, title: 'News', link: '/news', id: 4 }, + { en: true, title: 'Contacts', link: '/contacts', id: 5 }, + + // { en: true, title: 'Participants', link: '/members', id: 2 }, + // { en: true, title: 'Visitors', link: '/visitors', id: 3 }, +]; + +interface FooterType { + title: string; + link: string; +} + +export const footerMenu = [ + { title: 'Календарь мероприятий', link: '/calendar', one: true }, + { title: 'Участникам', link: '/members' }, + { title: 'Посетителям', link: '' }, + { title: 'Услуги', link: '/services/organization' }, +]; + +export const footerMenu2: FooterType[] = [ + { title: 'Территория комплекса', link: '' }, + { title: 'О компании', link: '/company/aboutus' }, + { title: 'Пресс-центр', link: '' }, + { title: 'FAQ', link: '/faq' }, + { title: 'Контакты', link: '/contacts' }, + { title: 'Справочный центр', link: '' }, +]; + +export const footerInfo: string[] = [ + 'Адрес: 744000, г. Ашхабад, просп. Битарап Туркменистан, 183', + 'Тел.: +99362006200', + '+99312454111', + 'E-mail: contact@turkmenexpo.com', + 'Address: Ashgabat, 183 Bitarap Turkmenistan', + 'ave.,744000', + 'E-mail: contact@turkmenexpo.com', +]; + +export const topMenu = [ + { + path: 'about', + links: [{ active: 'Главная', default: '/ О компании / Коротко нас' }], + }, + { + path: 'members', + links: [ + { + active: 'Главная', + active2: ' / Участникам', + default: ' / Информация для участников', + }, + ], + }, + { + path: 'members/bid', + links: [ + { + active: 'Главная', + default: ' / Участникам / Онлайн заявка для участников', + }, + ], + }, + { + path: 'events', + links: [ + { + active: 'Главная ', + default: '/ Календарь мероприятий', + }, + ], + }, + { + path: 'faq', + links: [ + { + active: 'Главная', + default: ' / FAQ', + }, + ], + }, + { + path: 'contacts', + links: [ + { + active: 'Главная', + default: ' / Контакты', + }, + ], + }, + { + path: 'calendar', + links: [ + { + active: 'Главная', + default: ' / Календарь мероприятий', + }, + ], + }, + { + path: 'news', + links: [ + { + active: 'Главная', + default: ' / Новости', + }, + ], + }, +]; + +export const burgerLinks = [ + { + title: 'О компании', + about: true, + links: [ + { name: 'Коротко о нас', link: '/about/company' }, + { name: 'Выставочная деятельность', link: '/about/company' }, + { name: 'История и награды', link: '/about/company' }, + { name: 'Партнеры', link: '/about/company' }, + { name: 'Работа в компании', link: '/about/company' }, + { name: 'Наши издания', link: '/about/company' }, + ], + }, + { + title: 'Новости', + news: true, + links: [ + { name: 'Новости', link: '/news' }, + { name: 'Пресс центр', link: '/news' }, + ], + }, + { + title: 'Участникам', + members: true, + links: [ + { name: 'Участникам', link: '/members' }, + { name: 'Онлайн заявка', link: '/members/bid' }, + ], + }, + { + title: 'Контакты', + contacts: true, + links: [ + { name: 'Новости', link: '/news' }, + { name: 'Пресс центр', link: '/news' }, + ], + }, + { + title: 'FAQ', + faq: true, + links: [ + { name: 'faq', link: '/news' }, + { name: 'Пресс центр', link: '/news' }, + ], + }, + { + news: true, + links: [ + { name: 'Новости', link: '/news' }, + { name: 'Пресс центр', link: '/news' }, + ], + }, +]; diff --git a/lib/get-lang.ts b/lib/get-lang.ts new file mode 100644 index 0000000..1cc78a3 --- /dev/null +++ b/lib/get-lang.ts @@ -0,0 +1,12 @@ +import { cookies } from "next/headers"; + +export const getLang = () => { + const cookieStore = cookies(); + const langCookie = cookieStore.get("lang")?.value || "ru"; + + // Возвращаем полный объект языка + return { + title: langCookie === "en" ? "English" : "Русский", + localization: langCookie, + }; +}; diff --git a/lib/types.ts b/lib/types.ts new file mode 100644 index 0000000..78d6caf --- /dev/null +++ b/lib/types.ts @@ -0,0 +1,27 @@ +import { StaticImageData } from 'next/image'; + +export type EventCardProps = { + dark?: boolean; + img: StaticImageData; + title: string; + text: string; + suptitle: string; + footerText: string; + organizer: string; + date: string; + calendar: string; + id: number; +}; + +export type NewsCardProps = { + img: StaticImageData; + date: string; + text: string; + id: number; +}; + +export type RoadCardProps = { + icon: any; + text: string; + enText: string; +}; diff --git a/lib/types/Calendar.type.ts b/lib/types/Calendar.type.ts new file mode 100644 index 0000000..bbf7d89 --- /dev/null +++ b/lib/types/Calendar.type.ts @@ -0,0 +1,102 @@ +export interface CalendarType { + data: EventDatum[]; + links: Links; + meta: Meta; +} + +export interface EventDatum { + id: number; + title: string; + description: string; + category: string; + organizers: Organizer[]; + coorganizers?: Coorganizers[]; + starts_at: string; + ends_at: string; + date: string; + images: CalendarImage[]; + background_images: CalendarImage[]; + web_site: string; + location: string; + timing: Timing[]; + installation_date: string; + dismantling_date: string; + event_topic: string; +} + +export interface Coorganizers { + id: number; + name: string; + address: string; + phones: Phone[]; + fax: string; + email: string; + web_site: string; +} + +export interface Phone { + phone: string; +} + +export interface CalendarImage { + id: number; + disk_name: string; + file_name: string; + path: string; + extension: Extension; +} + +export enum Extension { + ExtensionJPG = "JPG", + Jpg = "jpg", + PNG = "png", +} + +export interface Organizer { + id: number; + name: string; + address: string; + phones: PhoneElement[]; + fax: string; + email: string; + web_site: string; +} + +export interface PhoneElement { + phone: PhoneEnum; +} + +export enum PhoneEnum { + The99312398881 = "(+99312) 39 88 81", + The99312398981 = "(+99312) 39 89 81", + The99362006200 = "+993 62 006200", +} + +export interface Timing { + date: null; + time: null; +} + +export interface Links { + first: string; + last: string; + prev: null; + next: null; +} + +export interface Meta { + current_page: number; + from: number; + last_page: number; + links: Link[]; + path: string; + per_page: number; + to: number; + total: number; +} + +export interface Link { + url: null | string; + label: string; + active: boolean; +} diff --git a/lib/types/Contacts.type.ts b/lib/types/Contacts.type.ts new file mode 100644 index 0000000..73ced3c --- /dev/null +++ b/lib/types/Contacts.type.ts @@ -0,0 +1,15 @@ +export interface ContactsDataType { + data: Datum[]; +} + +export interface Datum { + header: string; + services: Service[]; +} + +export interface Service { + title: string; + phone: string; + email: string; + web_site: string; +} diff --git a/lib/types/EventsType.ts b/lib/types/EventsType.ts new file mode 100644 index 0000000..64c6c3e --- /dev/null +++ b/lib/types/EventsType.ts @@ -0,0 +1,36 @@ +export interface EventType { + data: Data[]; +} + +export interface Data { + id: number; + title: string; + description: string; + category: string; + organizer: Organizer; + coorganizer: Organizer; + starts_at: Date; + ends_at: Date; + images: Image[]; + web_site: null; + location: null; + timing: any[]; + event_topic: null; +} + +export interface Image { + id: number; + disk_name: string; + file_name: string; + path: string; + extension: string; +} + +export interface Organizer { + name: string; + address: null; + phones: null; + fax: null; + email: null; + web_site: null; +} diff --git a/lib/types/FaqData.type.ts b/lib/types/FaqData.type.ts new file mode 100644 index 0000000..7b70a9c --- /dev/null +++ b/lib/types/FaqData.type.ts @@ -0,0 +1,22 @@ +export interface FaqDataType { + data: Datum[]; +} + +export interface Datum { + header: string; + faq_items: FaqItemsType[]; +} + +export interface FaqItemsType { + answer: string; + question: string; +} + +export interface RadioDataType { + data: Datu[]; +} + +export interface Datu { + id: number; + name: string; +} diff --git a/lib/types/NewsData.type.ts b/lib/types/NewsData.type.ts new file mode 100644 index 0000000..1f001bd --- /dev/null +++ b/lib/types/NewsData.type.ts @@ -0,0 +1,45 @@ +export interface NewsData { + data: Datum[]; + links: Links; + meta: Meta; +} + +export interface Datum { + id: number; + title: string; + published_at: string; + featured_images: FeaturedImage[]; + content_html: string; +} + +export interface FeaturedImage { + id: number; + disk_name: string; + file_name: string; + path: string; + extension: string; +} + +export interface Links { + first: string; + last: string; + prev: null; + next: null; +} + +export interface Meta { + current_page: number; + from: number; + last_page: number; + links: Link[]; + path: string; + per_page: number; + to: number; + total: number; +} + +export interface Link { + url: null | string; + label: string; + active: boolean; +} diff --git a/lib/types/NewsItemData.type.ts b/lib/types/NewsItemData.type.ts new file mode 100644 index 0000000..ac0b5e7 --- /dev/null +++ b/lib/types/NewsItemData.type.ts @@ -0,0 +1,19 @@ +export interface NewsItemData { + data: Data; +} + +export interface Data { + id: number; + title: string; + published_at: string; + featured_images: FeaturedImage[]; + content_html: string; +} + +export interface FeaturedImage { + id: number; + disk_name: string; + file_name: string; + path: string; + extension: string; +} diff --git a/lib/types/NewsPage.type.ts b/lib/types/NewsPage.type.ts new file mode 100644 index 0000000..0e8b4c0 --- /dev/null +++ b/lib/types/NewsPage.type.ts @@ -0,0 +1,19 @@ +export interface NewsPageType { + data: Data; +} + +export interface Data { + id: number; + title: string; + published_at: string; + featured_images: FeaturedImage[]; + content_html: string; +} + +export interface FeaturedImage { + id: number; + disk_name: string; + file_name: string; + path: string; + extension: string; +} diff --git a/lib/types/Participants.type.ts b/lib/types/Participants.type.ts new file mode 100644 index 0000000..87c3a8e --- /dev/null +++ b/lib/types/Participants.type.ts @@ -0,0 +1,8 @@ +export interface ParticipantsDataType { + data: Datum[]; +} + +export interface Datum { + title: string; + content: string; +} diff --git a/lib/types/PartnersData.type.ts b/lib/types/PartnersData.type.ts new file mode 100644 index 0000000..9031f8d --- /dev/null +++ b/lib/types/PartnersData.type.ts @@ -0,0 +1,16 @@ +export interface PartnersType { + data: Datum[]; +} + +export interface Datum { + images: Image[]; + link: string; +} + +export interface Image { + id: number; + disk_name: string; + file_name: string; + path: string; + extension: string; +} diff --git a/lib/types/PostParticipantForm.type.ts b/lib/types/PostParticipantForm.type.ts new file mode 100644 index 0000000..6356541 --- /dev/null +++ b/lib/types/PostParticipantForm.type.ts @@ -0,0 +1,9 @@ +export type PostParticipantFormTypes = { + company_name: string; + phone: string; + email: string; + area: number; + contact_person: string; + what_demonstrated: string; + web_site: string; +}; diff --git a/lib/types/Search.type.ts b/lib/types/Search.type.ts new file mode 100644 index 0000000..8a09e53 --- /dev/null +++ b/lib/types/Search.type.ts @@ -0,0 +1,60 @@ +export interface SearchTypes { + status_code: number; + message: string; + data: Data; +} + +export interface Data { + expo_events: ExpoEvent[]; + posts: Post[]; +} + +export interface ExpoEvent { + id: number; + title: string; + description: string; + category: string; + organizer: Organizer; + starts_at: Date; + ends_at: Date; + images: Image[]; + background_images: Image[]; + web_site: string; + location: string; + timing: Timing[]; + event_topic: string; +} + +export interface Image { + id: number; + disk_name: string; + file_name: string; + path: string; + extension: string; +} + +export interface Organizer { + name: string; + address: string; + phones: Phone[]; + fax: string; + email: string; + web_site: string; +} + +export interface Phone { + phone: string; +} + +export interface Timing { + date: string; + time: string; +} + +export interface Post { + id: number; + title: string; + published_at: string; + featured_images: Image[]; + content_html: string; +} diff --git a/lib/types/Services.data.ts b/lib/types/Services.data.ts new file mode 100644 index 0000000..593a0ed --- /dev/null +++ b/lib/types/Services.data.ts @@ -0,0 +1,8 @@ +export interface ServicesType { + data: Datum[]; +} + +export interface Datum { + title: string; + content: string; +} diff --git a/lib/types/SliderData.type.ts b/lib/types/SliderData.type.ts new file mode 100644 index 0000000..febe07d --- /dev/null +++ b/lib/types/SliderData.type.ts @@ -0,0 +1,15 @@ +export interface SliderType { + data: Data; +} + +export interface Data { + code: string; + banner_items: BannerItem[]; +} + +export interface BannerItem { + title: string; + text: string; + image: string; + link: string; +} diff --git a/lib/types/event-page.type.ts b/lib/types/event-page.type.ts new file mode 100644 index 0000000..732b21e --- /dev/null +++ b/lib/types/event-page.type.ts @@ -0,0 +1,54 @@ +export interface EventPageType { + data: Data; +} + +export interface Data { + id: number; + title: string; + description: string; + category: string; + organizers: Organizer[]; + coorganizers: any[]; + starts_at: Date; + ends_at: Date; + date: string; + images: Image[]; + background_images: any[]; + web_site: string; + location: string; + timing: Timing[]; + installation_date: string; + dismantling_date: string; + event_topic: string; + url_registration: string; + url_web: string; + url_detailed: string; + our: number; +} + +export interface Image { + id: number; + disk_name: string; + file_name: string; + path: string; + extension: string; +} + +export interface Organizer { + id: number; + name: string; + address: string; + phones: Phone[]; + fax: string; + email: string; + web_site: string; +} + +export interface Phone { + phone: string; +} + +export interface Timing { + date: null; + time: null; +} diff --git a/next.config.mjs b/next.config.mjs new file mode 100644 index 0000000..a9c1ef1 --- /dev/null +++ b/next.config.mjs @@ -0,0 +1,7 @@ +/** @type {import('next').NextConfig} */ +const nextConfig = { + images: { unoptimized: true }, + distDir: "build", +}; + +export default nextConfig; diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..280fbbb --- /dev/null +++ b/package-lock.json @@ -0,0 +1,5173 @@ +{ + "name": "turkmen_expo_client", + "version": "0.1.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "turkmen_expo_client", + "version": "0.1.0", + "dependencies": { + "@hookform/resolvers": "^3.3.4", + "@react-google-maps/api": "^2.19.3", + "@reduxjs/toolkit": "^2.2.1", + "@types/uuid": "^9.0.8", + "clsx": "^2.1.0", + "framer-motion": "^11.0.25", + "next": "14.1.0", + "pm2": "^5.3.1", + "react": "^18", + "react-dom": "^18", + "react-hook-form": "^7.50.1", + "react-redux": "^9.1.0", + "serve": "^14.2.1", + "sharp": "^0.33.2", + "swiper": "^11.0.6", + "use-debounce": "^10.0.0", + "usehooks-ts": "^3.1.0", + "uuid": "^9.0.1", + "zod": "^3.22.4" + }, + "devDependencies": { + "@types/node": "^20", + "@types/react": "^18", + "@types/react-dom": "^18", + "autoprefixer": "^10.0.1", + "postcss": "^8", + "tailwindcss": "^3.3.0", + "typescript": "^5" + } + }, + "node_modules/@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==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@emnapi/runtime": { + "version": "0.45.0", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-0.45.0.tgz", + "integrity": "sha512-Txumi3td7J4A/xTTwlssKieHKTGl3j4A1tglBx72auZ49YK7ePY6XZricgIg9mnZT4xPfA+UPCUdnhRuEFDL+w==", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@googlemaps/js-api-loader": { + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/@googlemaps/js-api-loader/-/js-api-loader-1.16.2.tgz", + "integrity": "sha512-psGw5u0QM6humao48Hn4lrChOM2/rA43ZCm3tKK9qQsEj1/VzqkCqnvGfEOshDbBQflydfaRovbKwZMF4AyqbA==", + "dependencies": { + "fast-deep-equal": "^3.1.3" + } + }, + "node_modules/@googlemaps/markerclusterer": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/@googlemaps/markerclusterer/-/markerclusterer-2.5.3.tgz", + "integrity": "sha512-x7lX0R5yYOoiNectr10wLgCBasNcXFHiADIBdmn7jQllF2B5ENQw5XtZK+hIw4xnV0Df0xhN4LN98XqA5jaiOw==", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "supercluster": "^8.0.1" + } + }, + "node_modules/@hookform/resolvers": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@hookform/resolvers/-/resolvers-3.3.4.tgz", + "integrity": "sha512-o5cgpGOuJYrd+iMKvkttOclgwRW86EsWJZZRC23prf0uU2i48Htq4PuT73AVb9ionFyZrwYEITuOFGF+BydEtQ==", + "peerDependencies": { + "react-hook-form": "^7.0.0" + } + }, + "node_modules/@img/sharp-darwin-arm64": { + "version": "0.33.2", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.2.tgz", + "integrity": "sha512-itHBs1rPmsmGF9p4qRe++CzCgd+kFYktnsoR1sbIAfsRMrJZau0Tt1AH9KVnufc2/tU02Gf6Ibujx+15qRE03w==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "glibc": ">=2.26", + "node": "^18.17.0 || ^20.3.0 || >=21.0.0", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-arm64": "1.0.1" + } + }, + "node_modules/@img/sharp-darwin-x64": { + "version": "0.33.2", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.33.2.tgz", + "integrity": "sha512-/rK/69Rrp9x5kaWBjVN07KixZanRr+W1OiyKdXcbjQD6KbW+obaTeBBtLUAtbBsnlTTmWthw99xqoOS7SsySDg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "glibc": ">=2.26", + "node": "^18.17.0 || ^20.3.0 || >=21.0.0", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-x64": "1.0.1" + } + }, + "node_modules/@img/sharp-libvips-darwin-arm64": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.0.1.tgz", + "integrity": "sha512-kQyrSNd6lmBV7O0BUiyu/OEw9yeNGFbQhbxswS1i6rMDwBBSX+e+rPzu3S+MwAiGU3HdLze3PanQ4Xkfemgzcw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "macos": ">=11", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-darwin-x64": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.0.1.tgz", + "integrity": "sha512-eVU/JYLPVjhhrd8Tk6gosl5pVlvsqiFlt50wotCvdkFGf+mDNBJxMh+bvav+Wt3EBnNZWq8Sp2I7XfSjm8siog==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "macos": ">=10.13", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.0.1.tgz", + "integrity": "sha512-FtdMvR4R99FTsD53IA3LxYGghQ82t3yt0ZQ93WMZ2xV3dqrb0E8zq4VHaTOuLEAuA83oDawHV3fd+BsAPadHIQ==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "glibc": ">=2.28", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm64": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.0.1.tgz", + "integrity": "sha512-bnGG+MJjdX70mAQcSLxgeJco11G+MxTz+ebxlz8Y3dxyeb3Nkl7LgLI0mXupoO+u1wRNx/iRj5yHtzA4sde1yA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "glibc": ">=2.26", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-s390x": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.0.1.tgz", + "integrity": "sha512-3+rzfAR1YpMOeA2zZNp+aYEzGNWK4zF3+sdMxuCS3ey9HhDbJ66w6hDSHDMoap32DueFwhhs3vwooAB2MaK4XQ==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "glibc": ">=2.28", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-x64": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.1.tgz", + "integrity": "sha512-3NR1mxFsaSgMMzz1bAnnKbSAI+lHXVTqAHgc1bgzjHuXjo4hlscpUxc0vFSAPKI3yuzdzcZOkq7nDPrP2F8Jgw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "glibc": ">=2.26", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-arm64": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.0.1.tgz", + "integrity": "sha512-5aBRcjHDG/T6jwC3Edl3lP8nl9U2Yo8+oTl5drd1dh9Z1EBfzUKAJFUDTDisDjUwc7N4AjnPGfCA3jl3hY8uDg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "musl": ">=1.2.2", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-x64": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.0.1.tgz", + "integrity": "sha512-dcT7inI9DBFK6ovfeWRe3hG30h51cBAP5JXlZfx6pzc/Mnf9HFCQDLtYf4MCBjxaaTfjCCjkBxcy3XzOAo5txw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "musl": ">=1.2.2", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-linux-arm": { + "version": "0.33.2", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.33.2.tgz", + "integrity": "sha512-Fndk/4Zq3vAc4G/qyfXASbS3HBZbKrlnKZLEJzPLrXoJuipFNNwTes71+Ki1hwYW5lch26niRYoZFAtZVf3EGA==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "glibc": ">=2.28", + "node": "^18.17.0 || ^20.3.0 || >=21.0.0", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm": "1.0.1" + } + }, + "node_modules/@img/sharp-linux-arm64": { + "version": "0.33.2", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.33.2.tgz", + "integrity": "sha512-pz0NNo882vVfqJ0yNInuG9YH71smP4gRSdeL09ukC2YLE6ZyZePAlWKEHgAzJGTiOh8Qkaov6mMIMlEhmLdKew==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "glibc": ">=2.26", + "node": "^18.17.0 || ^20.3.0 || >=21.0.0", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm64": "1.0.1" + } + }, + "node_modules/@img/sharp-linux-s390x": { + "version": "0.33.2", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.33.2.tgz", + "integrity": "sha512-MBoInDXDppMfhSzbMmOQtGfloVAflS2rP1qPcUIiITMi36Mm5YR7r0ASND99razjQUpHTzjrU1flO76hKvP5RA==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "glibc": ">=2.28", + "node": "^18.17.0 || ^20.3.0 || >=21.0.0", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-s390x": "1.0.1" + } + }, + "node_modules/@img/sharp-linux-x64": { + "version": "0.33.2", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.33.2.tgz", + "integrity": "sha512-xUT82H5IbXewKkeF5aiooajoO1tQV4PnKfS/OZtb5DDdxS/FCI/uXTVZ35GQ97RZXsycojz/AJ0asoz6p2/H/A==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "glibc": ">=2.26", + "node": "^18.17.0 || ^20.3.0 || >=21.0.0", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-x64": "1.0.1" + } + }, + "node_modules/@img/sharp-linuxmusl-arm64": { + "version": "0.33.2", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.33.2.tgz", + "integrity": "sha512-F+0z8JCu/UnMzg8IYW1TMeiViIWBVg7IWP6nE0p5S5EPQxlLd76c8jYemG21X99UzFwgkRo5yz2DS+zbrnxZeA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "musl": ">=1.2.2", + "node": "^18.17.0 || ^20.3.0 || >=21.0.0", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-arm64": "1.0.1" + } + }, + "node_modules/@img/sharp-linuxmusl-x64": { + "version": "0.33.2", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.33.2.tgz", + "integrity": "sha512-+ZLE3SQmSL+Fn1gmSaM8uFusW5Y3J9VOf+wMGNnTtJUMUxFhv+P4UPaYEYT8tqnyYVaOVGgMN/zsOxn9pSsO2A==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "musl": ">=1.2.2", + "node": "^18.17.0 || ^20.3.0 || >=21.0.0", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-x64": "1.0.1" + } + }, + "node_modules/@img/sharp-wasm32": { + "version": "0.33.2", + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.33.2.tgz", + "integrity": "sha512-fLbTaESVKuQcpm8ffgBD7jLb/CQLcATju/jxtTXR1XCLwbOQt+OL5zPHSDMmp2JZIeq82e18yE0Vv7zh6+6BfQ==", + "cpu": [ + "wasm32" + ], + "optional": true, + "dependencies": { + "@emnapi/runtime": "^0.45.0" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-ia32": { + "version": "0.33.2", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.33.2.tgz", + "integrity": "sha512-okBpql96hIGuZ4lN3+nsAjGeggxKm7hIRu9zyec0lnfB8E7Z6p95BuRZzDDXZOl2e8UmR4RhYt631i7mfmKU8g==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-x64": { + "version": "0.33.2", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.33.2.tgz", + "integrity": "sha512-E4magOks77DK47FwHUIGH0RYWSgRBfGdK56kIHSVeB9uIS4pPFr4N2kIVsXdQQo4LzOsENKV5KAhRlRL7eMAdg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@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==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.22", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.22.tgz", + "integrity": "sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@next/env": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/@next/env/-/env-14.1.0.tgz", + "integrity": "sha512-Py8zIo+02ht82brwwhTg36iogzFqGLPXlRGKQw5s+qP/kMNc4MAyDeEwBKDijk6zTIbegEgu8Qy7C1LboslQAw==" + }, + "node_modules/@next/swc-darwin-arm64": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.1.0.tgz", + "integrity": "sha512-nUDn7TOGcIeyQni6lZHfzNoo9S0euXnu0jhsbMOmMJUBfgsnESdjN97kM7cBqQxZa8L/bM9om/S5/1dzCrW6wQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-darwin-x64": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.1.0.tgz", + "integrity": "sha512-1jgudN5haWxiAl3O1ljUS2GfupPmcftu2RYJqZiMJmmbBT5M1XDffjUtRUzP4W3cBHsrvkfOFdQ71hAreNQP6g==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-gnu": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.1.0.tgz", + "integrity": "sha512-RHo7Tcj+jllXUbK7xk2NyIDod3YcCPDZxj1WLIYxd709BQ7WuRYl3OWUNG+WUfqeQBds6kvZYlc42NJJTNi4tQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-musl": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.1.0.tgz", + "integrity": "sha512-v6kP8sHYxjO8RwHmWMJSq7VZP2nYCkRVQ0qolh2l6xroe9QjbgV8siTbduED4u0hlk0+tjS6/Tuy4n5XCp+l6g==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-gnu": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.1.0.tgz", + "integrity": "sha512-zJ2pnoFYB1F4vmEVlb/eSe+VH679zT1VdXlZKX+pE66grOgjmKJHKacf82g/sWE4MQ4Rk2FMBCRnX+l6/TVYzQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-musl": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.1.0.tgz", + "integrity": "sha512-rbaIYFt2X9YZBSbH/CwGAjbBG2/MrACCVu2X0+kSykHzHnYH5FjHxwXLkcoJ10cX0aWCEynpu+rP76x0914atg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-arm64-msvc": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.1.0.tgz", + "integrity": "sha512-o1N5TsYc8f/HpGt39OUQpQ9AKIGApd3QLueu7hXk//2xq5Z9OxmV6sQfNp8C7qYmiOlHYODOGqNNa0e9jvchGQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-ia32-msvc": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.1.0.tgz", + "integrity": "sha512-XXIuB1DBRCFwNO6EEzCTMHT5pauwaSj4SWs7CYnME57eaReAKBXCnkUE80p/pAZcewm7hs+vGvNqDPacEXHVkw==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-x64-msvc": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.1.0.tgz", + "integrity": "sha512-9WEbVRRAqJ3YFVqEZIxUqkiO8l1nool1LmNxygr5HWF8AcSYsEpneUDhmjUVJEzO2A04+oPtZdombzzPPkTtgg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nodelib/fs.scandir": { + "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" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@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==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@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, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@opencensus/core": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/@opencensus/core/-/core-0.0.9.tgz", + "integrity": "sha512-31Q4VWtbzXpVUd2m9JS6HEaPjlKvNMOiF7lWKNmXF84yUcgfAFL5re7/hjDmdyQbOp32oGc+RFV78jXIldVz6Q==", + "dependencies": { + "continuation-local-storage": "^3.2.1", + "log-driver": "^1.2.7", + "semver": "^5.5.0", + "shimmer": "^1.2.0", + "uuid": "^3.2.1" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/@opencensus/core/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/@opencensus/core/node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/@opencensus/propagation-b3": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/@opencensus/propagation-b3/-/propagation-b3-0.0.8.tgz", + "integrity": "sha512-PffXX2AL8Sh0VHQ52jJC4u3T0H6wDK6N/4bg7xh4ngMYOIi13aR1kzVvX1sVDBgfGwDOkMbl4c54Xm3tlPx/+A==", + "dependencies": { + "@opencensus/core": "^0.0.8", + "uuid": "^3.2.1" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/@opencensus/propagation-b3/node_modules/@opencensus/core": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/@opencensus/core/-/core-0.0.8.tgz", + "integrity": "sha512-yUFT59SFhGMYQgX0PhoTR0LBff2BEhPrD9io1jWfF/VDbakRfs6Pq60rjv0Z7iaTav5gQlttJCX2+VPxFWCuoQ==", + "dependencies": { + "continuation-local-storage": "^3.2.1", + "log-driver": "^1.2.7", + "semver": "^5.5.0", + "shimmer": "^1.2.0", + "uuid": "^3.2.1" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/@opencensus/propagation-b3/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/@opencensus/propagation-b3/node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@pm2/agent": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@pm2/agent/-/agent-2.0.3.tgz", + "integrity": "sha512-xkqqCoTf5VsciMqN0vb9jthW7olVAi4KRFNddCc7ZkeJZ3i8QwZANr4NSH2H5DvseRFHq7MiPspRY/EWAFWWTg==", + "dependencies": { + "async": "~3.2.0", + "chalk": "~3.0.0", + "dayjs": "~1.8.24", + "debug": "~4.3.1", + "eventemitter2": "~5.0.1", + "fast-json-patch": "^3.0.0-1", + "fclone": "~1.0.11", + "nssocket": "0.6.0", + "pm2-axon": "~4.0.1", + "pm2-axon-rpc": "~0.7.0", + "proxy-agent": "~6.3.0", + "semver": "~7.5.0", + "ws": "~7.4.0" + } + }, + "node_modules/@pm2/agent/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@pm2/agent/node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@pm2/agent/node_modules/dayjs": { + "version": "1.8.36", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.8.36.tgz", + "integrity": "sha512-3VmRXEtw7RZKAf+4Tv1Ym9AGeo8r8+CjDi26x+7SYQil1UqtqdaokhzoEJohqlzt0m5kacJSDhJQkG/LWhpRBw==" + }, + "node_modules/@pm2/agent/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@pm2/agent/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@pm2/agent/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/@pm2/agent/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@pm2/io": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@pm2/io/-/io-5.0.2.tgz", + "integrity": "sha512-XAvrNoQPKOyO/jJyCu8jPhLzlyp35MEf7w/carHXmWKddPzeNOFSEpSEqMzPDawsvpxbE+i918cNN+MwgVsStA==", + "dependencies": { + "@opencensus/core": "0.0.9", + "@opencensus/propagation-b3": "0.0.8", + "async": "~2.6.1", + "debug": "~4.3.1", + "eventemitter2": "^6.3.1", + "require-in-the-middle": "^5.0.0", + "semver": "~7.5.4", + "shimmer": "^1.2.0", + "signal-exit": "^3.0.3", + "tslib": "1.9.3" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/@pm2/io/node_modules/async": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", + "dependencies": { + "lodash": "^4.17.14" + } + }, + "node_modules/@pm2/io/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@pm2/io/node_modules/eventemitter2": { + "version": "6.4.9", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.9.tgz", + "integrity": "sha512-JEPTiaOt9f04oa6NOkc4aH+nVp5I3wEjpHbIPqfgCdD5v5bUzy7xQqwcVO2aDQgOWhI28da57HksMrzK9HlRxg==" + }, + "node_modules/@pm2/io/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@pm2/io/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/@pm2/io/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@pm2/io/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + }, + "node_modules/@pm2/io/node_modules/tslib": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", + "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==" + }, + "node_modules/@pm2/js-api": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@pm2/js-api/-/js-api-0.8.0.tgz", + "integrity": "sha512-nmWzrA/BQZik3VBz+npRcNIu01kdBhWL0mxKmP1ciF/gTcujPTQqt027N9fc1pK9ERM8RipFhymw7RcmCyOEYA==", + "dependencies": { + "async": "^2.6.3", + "debug": "~4.3.1", + "eventemitter2": "^6.3.1", + "extrareqp2": "^1.0.0", + "ws": "^7.0.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/@pm2/js-api/node_modules/async": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", + "dependencies": { + "lodash": "^4.17.14" + } + }, + "node_modules/@pm2/js-api/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@pm2/js-api/node_modules/eventemitter2": { + "version": "6.4.9", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.9.tgz", + "integrity": "sha512-JEPTiaOt9f04oa6NOkc4aH+nVp5I3wEjpHbIPqfgCdD5v5bUzy7xQqwcVO2aDQgOWhI28da57HksMrzK9HlRxg==" + }, + "node_modules/@pm2/js-api/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/@pm2/pm2-version-check": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@pm2/pm2-version-check/-/pm2-version-check-1.0.4.tgz", + "integrity": "sha512-SXsM27SGH3yTWKc2fKR4SYNxsmnvuBQ9dd6QHtEWmiZ/VqaOYPAIlS8+vMcn27YLtAEBGvNRSh3TPNvtjZgfqA==", + "dependencies": { + "debug": "^4.3.1" + } + }, + "node_modules/@pm2/pm2-version-check/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@pm2/pm2-version-check/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/@react-google-maps/api": { + "version": "2.19.3", + "resolved": "https://registry.npmjs.org/@react-google-maps/api/-/api-2.19.3.tgz", + "integrity": "sha512-jiLqvuOt5lOowkLeq7d077AByTyJp+s6hZVlLhlq7SBacBD37aUNpXBz2OsazfeR6Aw4a+9RRhAEjEFvrR1f5A==", + "dependencies": { + "@googlemaps/js-api-loader": "1.16.2", + "@googlemaps/markerclusterer": "2.5.3", + "@react-google-maps/infobox": "2.19.2", + "@react-google-maps/marker-clusterer": "2.19.2", + "@types/google.maps": "3.55.2", + "invariant": "2.2.4" + }, + "peerDependencies": { + "react": "^16.8 || ^17 || ^18", + "react-dom": "^16.8 || ^17 || ^18" + } + }, + "node_modules/@react-google-maps/infobox": { + "version": "2.19.2", + "resolved": "https://registry.npmjs.org/@react-google-maps/infobox/-/infobox-2.19.2.tgz", + "integrity": "sha512-6wvBqeJsQ/eFSvoxg+9VoncQvNoVCdmxzxRpLvmjPD+nNC6mHM0vJH1xSqaKijkMrfLJT0nfkTGpovrF896jwg==" + }, + "node_modules/@react-google-maps/marker-clusterer": { + "version": "2.19.2", + "resolved": "https://registry.npmjs.org/@react-google-maps/marker-clusterer/-/marker-clusterer-2.19.2.tgz", + "integrity": "sha512-x9ibmsP0ZVqzyCo1Pitbw+4b6iEXRw/r1TCy3vOUR3eKrzWLnHYZMR325BkZW2r8fnuWE/V3Fp4QZOP9qYORCw==" + }, + "node_modules/@reduxjs/toolkit": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-2.2.1.tgz", + "integrity": "sha512-8CREoqJovQW/5I4yvvijm/emUiCCmcs4Ev4XPWd4mizSO+dD3g5G6w34QK5AGeNrSH7qM8Fl66j4vuV7dpOdkw==", + "dependencies": { + "immer": "^10.0.3", + "redux": "^5.0.1", + "redux-thunk": "^3.1.0", + "reselect": "^5.0.1" + }, + "peerDependencies": { + "react": "^16.9.0 || ^17.0.0 || ^18", + "react-redux": "^7.2.1 || ^8.1.3 || ^9.0.0" + }, + "peerDependenciesMeta": { + "react": { + "optional": true + }, + "react-redux": { + "optional": true + } + } + }, + "node_modules/@swc/helpers": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.2.tgz", + "integrity": "sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@tootallnate/quickjs-emscripten": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz", + "integrity": "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==" + }, + "node_modules/@types/google.maps": { + "version": "3.55.2", + "resolved": "https://registry.npmjs.org/@types/google.maps/-/google.maps-3.55.2.tgz", + "integrity": "sha512-JcTwzkxskR8DN/nnX96Pie3gGN3WHiPpuxzuQ9z3516o1bB243d8w8DHUJ8BohuzoT1o3HUFta2ns/mkZC8KRw==" + }, + "node_modules/@types/node": { + "version": "20.11.19", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.19.tgz", + "integrity": "sha512-7xMnVEcZFu0DikYjWOlRq7NTPETrm7teqUT2WkQjrTIkEgUyyGdWsj/Zg8bEJt5TNklzbPD1X3fqfsHw3SpapQ==", + "dev": true, + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/prop-types": { + "version": "15.7.11", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.11.tgz", + "integrity": "sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==", + "devOptional": true + }, + "node_modules/@types/react": { + "version": "18.2.57", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.57.tgz", + "integrity": "sha512-ZvQsktJgSYrQiMirAN60y4O/LRevIV8hUzSOSNB6gfR3/o3wCBFQx3sPwIYtuDMeiVgsSS3UzCV26tEzgnfvQw==", + "devOptional": true, + "dependencies": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.2.19", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.19.tgz", + "integrity": "sha512-aZvQL6uUbIJpjZk4U8JZGbau9KDeAwMfmhyWorxgBkqDIEf6ROjRozcmPIicqsUwPUjbkDfHKgGee1Lq65APcA==", + "dev": true, + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/scheduler": { + "version": "0.16.8", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz", + "integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==", + "devOptional": true + }, + "node_modules/@types/use-sync-external-store": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.3.tgz", + "integrity": "sha512-EwmlvuaxPNej9+T4v5AuBPJa2x2UOJVdjCtDHgcDqitUeOtjnJKJ+apYjVcAoBEMjKW1VVFGZLUb5+qqa09XFA==" + }, + "node_modules/@types/uuid": { + "version": "9.0.8", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.8.tgz", + "integrity": "sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==" + }, + "node_modules/@zeit/schemas": { + "version": "2.29.0", + "resolved": "https://registry.npmjs.org/@zeit/schemas/-/schemas-2.29.0.tgz", + "integrity": "sha512-g5QiLIfbg3pLuYUJPlisNKY+epQJTcMDsOnVNkscrDP1oi7vmJnzOANYJI/1pZcVJ6umUkBv3aFtlg1UvUHGzA==" + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/agent-base": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", + "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/agent-base/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/agent-base/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/amp": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/amp/-/amp-0.3.1.tgz", + "integrity": "sha512-OwIuC4yZaRogHKiuU5WlMR5Xk/jAcpPtawWL05Gj8Lvm2F6mwoJt4O/bHI+DHwG79vWd+8OFYM4/BzYqyRd3qw==" + }, + "node_modules/amp-message": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/amp-message/-/amp-message-0.1.2.tgz", + "integrity": "sha512-JqutcFwoU1+jhv7ArgW38bqrE+LQdcRv4NxNw0mp0JHQyB6tXesWRjtYKlDgHRY2o3JE5UTaBGUK8kSWUdxWUg==", + "dependencies": { + "amp": "0.3.1" + } + }, + "node_modules/ansi-align": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "dependencies": { + "string-width": "^4.1.0" + } + }, + "node_modules/ansi-align/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-align/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/ansi-align/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-align/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dev": true + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arch": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz", + "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "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==" + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/argparse/node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" + }, + "node_modules/ast-types": { + "version": "0.13.4", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", + "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", + "dependencies": { + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/async": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", + "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==" + }, + "node_modules/async-listener": { + "version": "0.6.10", + "resolved": "https://registry.npmjs.org/async-listener/-/async-listener-0.6.10.tgz", + "integrity": "sha512-gpuo6xOyF4D5DE5WvyqZdPA3NGhiT6Qf07l7DCB0wwDEsLvDIbCr6j9S5aj5Ch96dLace5tXVzWBZkxU/c5ohw==", + "dependencies": { + "semver": "^5.3.0", + "shimmer": "^1.1.0" + }, + "engines": { + "node": "<=0.11.8 || >0.11.10" + } + }, + "node_modules/async-listener/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/autoprefixer": { + "version": "10.4.17", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.17.tgz", + "integrity": "sha512-/cpVNRLSfhOtcGflT13P2794gVSgmPgTR+erw5ifnMLZb0UnSlkK4tquLmkd3BhA+nLo5tX8Cu0upUsGKvKbmg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "browserslist": "^4.22.2", + "caniuse-lite": "^1.0.30001578", + "fraction.js": "^4.3.7", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/basic-ftp": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.5.tgz", + "integrity": "sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/blessed": { + "version": "0.1.81", + "resolved": "https://registry.npmjs.org/blessed/-/blessed-0.1.81.tgz", + "integrity": "sha512-LoF5gae+hlmfORcG1M5+5XZi4LBmvlXTzwJWzUlPryN/SJdSflZvROM2TwkT0GMpq7oqT48NRd4GS7BiVBc5OQ==", + "bin": { + "blessed": "bin/tput.js" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/bodec": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/bodec/-/bodec-0.1.0.tgz", + "integrity": "sha512-Ylo+MAo5BDUq1KA3f3R/MFhh+g8cnHmo8bz3YPGhI1znrMaf77ol1sfvYJzsw3nTE+Y2GryfDxBaR+AqpAkEHQ==" + }, + "node_modules/boxen": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-7.0.0.tgz", + "integrity": "sha512-j//dBVuyacJbvW+tvZ9HuH03fZ46QcaKvvhZickZqtB271DxJ7SNRSNxrV/dZX0085m7hISRZWbzWlJvx/rHSg==", + "dependencies": { + "ansi-align": "^3.0.1", + "camelcase": "^7.0.0", + "chalk": "^5.0.1", + "cli-boxes": "^3.0.0", + "string-width": "^5.1.2", + "type-fest": "^2.13.0", + "widest-line": "^4.0.1", + "wrap-ansi": "^8.0.1" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/brace-expansion": { + "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" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "node_modules/busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "dependencies": { + "streamsearch": "^1.1.0" + }, + "engines": { + "node": ">=10.16.0" + } + }, + "node_modules/bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/camelcase": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-7.0.1.tgz", + "integrity": "sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/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==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001588", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001588.tgz", + "integrity": "sha512-+hVY9jE44uKLkH0SrUTqxjxqNTOWHsbnQDIKjwkZ3lNTzUUVdBLBGXtj/q5Mp5u98r3droaZAewQuEDzjQdZlQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/chalk": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.0.1.tgz", + "integrity": "sha512-Fo07WOYGqMfCWHOzSXOt2CxDbC6skS/jO9ynEcmpANMoPrD+W1r1K6Vx7iNm+AQmETU1Xr2t+n8nzkV9t6xh3w==", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chalk-template": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/chalk-template/-/chalk-template-0.4.0.tgz", + "integrity": "sha512-/ghrgmhfY8RaSdeo43hNXxpoHAtxdbskUHjPpfqUWGttFgycUhYPGx3YZBCnUCvOa7Doivn1IZec3DEGFoMgLg==", + "dependencies": { + "chalk": "^4.1.2" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/chalk-template?sponsor=1" + } + }, + "node_modules/chalk-template/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/chalk-template/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/charm": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/charm/-/charm-0.1.2.tgz", + "integrity": "sha512-syedaZ9cPe7r3hoQA9twWYKu5AIyCswN5+szkmPBe9ccdLrj4bYaCnLVPTLd2kgVRc7+zoX4tyPgRnFKCj5YjQ==" + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/cli-boxes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz", + "integrity": "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-tableau": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/cli-tableau/-/cli-tableau-2.0.1.tgz", + "integrity": "sha512-he+WTicka9cl0Fg/y+YyxcN6/bfQ/1O3QmgxRXDhABKqLzvoOSM4fMzp39uMyLBulAFuywD2N7UaoQE7WaADxQ==", + "dependencies": { + "chalk": "3.0.0" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/cli-tableau/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/cli-tableau/node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/client-only": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", + "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==" + }, + "node_modules/clipboardy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/clipboardy/-/clipboardy-3.0.0.tgz", + "integrity": "sha512-Su+uU5sr1jkUy1sGRpLKjKrvEOVXgSgiSInwa/qeID6aJ07yh+5NWc3h2QfjHjBnfX4LhtFcuAWKUsJ3r+fjbg==", + "dependencies": { + "arch": "^2.2.0", + "execa": "^5.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/clsx": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.0.tgz", + "integrity": "sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/color": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", + "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", + "dependencies": { + "color-convert": "^2.0.1", + "color-string": "^1.9.0" + }, + "engines": { + "node": ">=12.5.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/color-string": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "dependencies": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "node_modules/content-disposition": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", + "integrity": "sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/continuation-local-storage": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/continuation-local-storage/-/continuation-local-storage-3.2.1.tgz", + "integrity": "sha512-jx44cconVqkCEEyLSKWwkvUXwO561jXMa3LPjTPsm5QR22PA0/mhe33FT4Xb5y74JDvt/Cq+5lm8S8rskLv9ZA==", + "dependencies": { + "async-listener": "^0.6.0", + "emitter-listener": "^1.1.1" + } + }, + "node_modules/croner": { + "version": "4.1.97", + "resolved": "https://registry.npmjs.org/croner/-/croner-4.1.97.tgz", + "integrity": "sha512-/f6gpQuxDaqXu+1kwQYSckUglPaOrHdbIlBAu0YuW8/Cdb45XwXYNUBXg3r/9Mo6n540Kn/smKcZWko5x99KrQ==" + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cssesc": { + "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" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "devOptional": true + }, + "node_modules/culvert": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/culvert/-/culvert-0.1.2.tgz", + "integrity": "sha512-yi1x3EAWKjQTreYWeSd98431AV+IEE0qoDyOoaHJ7KJ21gv6HtBXHVLX74opVSGqcR8/AbjJBHAHpcOy2bj5Gg==" + }, + "node_modules/data-uri-to-buffer": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz", + "integrity": "sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==", + "engines": { + "node": ">= 14" + } + }, + "node_modules/dayjs": { + "version": "1.11.10", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz", + "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==" + }, + "node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/degenerator": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-5.0.1.tgz", + "integrity": "sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==", + "dependencies": { + "ast-types": "^0.13.4", + "escodegen": "^2.1.0", + "esprima": "^4.0.1" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/detect-libc": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz", + "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==", + "engines": { + "node": ">=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==", + "dev": true + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "dev": true + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + }, + "node_modules/electron-to-chromium": { + "version": "1.4.677", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.677.tgz", + "integrity": "sha512-erDa3CaDzwJOpyvfKhOiJjBVNnMM0qxHq47RheVVwsSQrgBA9ZSGV9kdaOfZDPXcHzhG7lBxhj6A7KvfLJBd6Q==", + "dev": true + }, + "node_modules/emitter-listener": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/emitter-listener/-/emitter-listener-1.1.2.tgz", + "integrity": "sha512-Bt1sBAGFHY9DKY+4/2cV6izcKJUf5T7/gkdmkxzX/qv9CcGH8xSwVRW5mtX03SWJtRTWSOpzCuWN9rBFYZepZQ==", + "dependencies": { + "shimmer": "^1.2.0" + } + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "node_modules/enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "dependencies": { + "ansi-colors": "^4.1.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/escodegen": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eventemitter2": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-5.0.1.tgz", + "integrity": "sha512-5EM1GHXycJBS6mauYAbVKT1cVs7POKWb2NXD4Vyt8dDqeZa7LaDK1/sjtL+Zb0lzTpSNil4596Dyu97hz37QLg==" + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/execa/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + }, + "node_modules/extrareqp2": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/extrareqp2/-/extrareqp2-1.0.0.tgz", + "integrity": "sha512-Gum0g1QYb6wpPJCVypWP3bbIuaibcFiJcpuPM10YSXp/tzqi84x9PJageob+eN4xVRIOto4wjSGNLyMD54D2xA==", + "dependencies": { + "follow-redirects": "^1.14.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "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" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-patch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/fast-json-patch/-/fast-json-patch-3.1.1.tgz", + "integrity": "sha512-vf6IHUX2SBcA+5/+4883dsIjpBTqmfBjmYiWK1savxQmFk4JfBMLa7ynTYOs1Rolp/T1betJxHiGD3g1Mn8lUQ==" + }, + "node_modules/fast-url-parser": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz", + "integrity": "sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==", + "dependencies": { + "punycode": "^1.3.2" + } + }, + "node_modules/fastq": { + "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" + } + }, + "node_modules/fclone": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/fclone/-/fclone-1.0.11.tgz", + "integrity": "sha512-GDqVQezKzRABdeqflsgMr7ktzgF9CyS+p2oe0jJqUY6izSSbhPIQJDpoU4PtGcD7VPM9xh/dVrTu6z1nwgmEGw==" + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/follow-redirects": { + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "dev": true, + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/framer-motion": { + "version": "11.0.25", + "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-11.0.25.tgz", + "integrity": "sha512-mRt7vQGzA7++wTgb+PW1TrlXXgndqR6hCiJ48fXr2X9alte2hPQiAq556HRwDCt0Q5X98MNvcSe4KUa27Gm5Lg==", + "dependencies": { + "tslib": "^2.4.0" + }, + "peerDependencies": { + "@emotion/is-prop-valid": "*", + "react": "^18.0.0", + "react-dom": "^18.0.0" + }, + "peerDependenciesMeta": { + "@emotion/is-prop-valid": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } + } + }, + "node_modules/fs-extra": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-uri": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.3.tgz", + "integrity": "sha512-BzUrJBS9EcUb4cFol8r4W3v1cPsSyajLSthNkz5BxbpDcHN5tIrM10E2eNvfnvBn3DaT3DUgx0OpsBKkaOpanw==", + "dependencies": { + "basic-ftp": "^5.0.2", + "data-uri-to-buffer": "^6.0.2", + "debug": "^4.3.4", + "fs-extra": "^11.2.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/get-uri/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/get-uri/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/git-node-fs": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/git-node-fs/-/git-node-fs-1.0.0.tgz", + "integrity": "sha512-bLQypt14llVXBg0S0u8q8HmU7g9p3ysH+NvVlae5vILuUvs759665HvmR5+wb04KjHyjFcDRxdYb4kyNnluMUQ==" + }, + "node_modules/git-sha1": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/git-sha1/-/git-sha1-0.1.2.tgz", + "integrity": "sha512-2e/nZezdVlyCopOCYHeW0onkbZg7xP1Ad6pndPy1rCygeRykefUS6r7oA5cJRGEFvseiaz5a/qUHFVX1dd6Isg==" + }, + "node_modules/glob": { + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/hasown": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz", + "integrity": "sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/http-proxy-agent/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/http-proxy-agent/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/https-proxy-agent": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", + "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", + "dependencies": { + "agent-base": "^7.0.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/https-proxy-agent/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/https-proxy-agent/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/immer": { + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/immer/-/immer-10.0.3.tgz", + "integrity": "sha512-pwupu3eWfouuaowscykeckFmVTpqbzW+rXFCX8rQLkZzM9ftBmU/++Ra+o+L27mz03zJTlyV4UUr+fdKNffo4A==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + }, + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/ip-address": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", + "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", + "dependencies": { + "jsbn": "1.1.0", + "sprintf-js": "^1.1.3" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/ip-address/node_modules/sprintf-js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==" + }, + "node_modules/is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dependencies": { + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-port-reachable": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-port-reachable/-/is-port-reachable-4.0.0.tgz", + "integrity": "sha512-9UoipoxYmSk6Xy7QFgRv2HDyaysmgSG75TFQs6S+3pDM7ZhKTF/bskZV+0UlABHzKjNVhPjYCLfeZUEg1wXxig==", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "node_modules/jackspeak": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", + "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "dev": true, + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jiti": { + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", + "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==", + "dev": true, + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/js-git": { + "version": "0.7.8", + "resolved": "https://registry.npmjs.org/js-git/-/js-git-0.7.8.tgz", + "integrity": "sha512-+E5ZH/HeRnoc/LW0AmAyhU+mNcWBzAKE+30+IDMLSLbbK+Tdt02AdkOKq9u15rlJsDEGFqtgckc8ZM59LhhiUA==", + "dependencies": { + "bodec": "^0.1.0", + "culvert": "^0.1.2", + "git-sha1": "^0.1.2", + "pako": "^0.2.5" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/jsbn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", + "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==" + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "optional": true + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/kdbush": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/kdbush/-/kdbush-4.0.2.tgz", + "integrity": "sha512-WbCVYJ27Sz8zi9Q7Q0xHC+05iwkm3Znipc2XTlrnJbsHMYktW4hPhXUE8Ys1engBrvffoSCqbil1JQAa7clRpA==" + }, + "node_modules/lazy": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/lazy/-/lazy-1.0.11.tgz", + "integrity": "sha512-Y+CjUfLmIpoUCCRl0ub4smrYtGGr5AOa2AKOaWelGHOGz33X/Y/KizefGqbkwfz44+cnq/+9habclf8vOmu2LA==", + "engines": { + "node": ">=0.2.0" + } + }, + "node_modules/lilconfig": { + "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" + } + }, + "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==", + "dev": true + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" + }, + "node_modules/log-driver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.7.tgz", + "integrity": "sha512-U7KCmLdqsGHBLeWqYlFA0V0Sl6P08EE1ZrmA9cxjUE0WVqT9qnyVDPz1kzpFEP0jdJuFnasWIfSd7fsaNXkpbg==", + "engines": { + "node": ">=0.8.6" + } + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lru-cache": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", + "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", + "dev": true, + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, + "node_modules/merge2": { + "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" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "dev": true, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/module-details-from-path": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/module-details-from-path/-/module-details-from-path-1.0.3.tgz", + "integrity": "sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A==" + }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/needle": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/needle/-/needle-2.4.0.tgz", + "integrity": "sha512-4Hnwzr3mi5L97hMYeNl8wRW/Onhy4nUKR/lVemJ8gJedxxUyBLm9kkrDColJvoSfwi0jCNhD+xCdOtiGDQiRZg==", + "dependencies": { + "debug": "^3.2.6", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + }, + "bin": { + "needle": "bin/needle" + }, + "engines": { + "node": ">= 4.4.x" + } + }, + "node_modules/needle/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/needle/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/netmask": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", + "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/next": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/next/-/next-14.1.0.tgz", + "integrity": "sha512-wlzrsbfeSU48YQBjZhDzOwhWhGsy+uQycR8bHAOt1LY1bn3zZEcDyHQOEoN3aWzQ8LHCAJ1nqrWCc9XF2+O45Q==", + "dependencies": { + "@next/env": "14.1.0", + "@swc/helpers": "0.5.2", + "busboy": "1.6.0", + "caniuse-lite": "^1.0.30001579", + "graceful-fs": "^4.2.11", + "postcss": "8.4.31", + "styled-jsx": "5.1.1" + }, + "bin": { + "next": "dist/bin/next" + }, + "engines": { + "node": ">=18.17.0" + }, + "optionalDependencies": { + "@next/swc-darwin-arm64": "14.1.0", + "@next/swc-darwin-x64": "14.1.0", + "@next/swc-linux-arm64-gnu": "14.1.0", + "@next/swc-linux-arm64-musl": "14.1.0", + "@next/swc-linux-x64-gnu": "14.1.0", + "@next/swc-linux-x64-musl": "14.1.0", + "@next/swc-win32-arm64-msvc": "14.1.0", + "@next/swc-win32-ia32-msvc": "14.1.0", + "@next/swc-win32-x64-msvc": "14.1.0" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.1.0", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "sass": "^1.3.0" + }, + "peerDependenciesMeta": { + "@opentelemetry/api": { + "optional": true + }, + "sass": { + "optional": true + } + } + }, + "node_modules/next/node_modules/postcss": { + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "dev": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nssocket": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/nssocket/-/nssocket-0.6.0.tgz", + "integrity": "sha512-a9GSOIql5IqgWJR3F/JXG4KpJTA3Z53Cj0MeMvGpglytB1nxE4PdFNC0jINe27CS7cGivoynwc054EzCcT3M3w==", + "dependencies": { + "eventemitter2": "~0.4.14", + "lazy": "~1.0.11" + }, + "engines": { + "node": ">= 0.10.x" + } + }, + "node_modules/nssocket/node_modules/eventemitter2": { + "version": "0.4.14", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz", + "integrity": "sha512-K7J4xq5xAD5jHsGM5ReWXRTFa3JRGofHiMcVgQ8PRwgWxzjHpMWCIzsmyf60+mh8KLsqYPcjUMa0AC4hd6lPyQ==" + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pac-proxy-agent": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.0.1.tgz", + "integrity": "sha512-ASV8yU4LLKBAjqIPMbrgtaKIvxQri/yh2OpI+S6hVa9JRkUI3Y3NPFbfngDtY7oFtSMD3w31Xns89mDa3Feo5A==", + "dependencies": { + "@tootallnate/quickjs-emscripten": "^0.23.0", + "agent-base": "^7.0.2", + "debug": "^4.3.4", + "get-uri": "^6.0.1", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.2", + "pac-resolver": "^7.0.0", + "socks-proxy-agent": "^8.0.2" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/pac-proxy-agent/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/pac-proxy-agent/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/pac-resolver": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.1.tgz", + "integrity": "sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==", + "dependencies": { + "degenerator": "^5.0.0", + "netmask": "^2.0.2" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/pako": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", + "integrity": "sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==" + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==" + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "engines": { + "node": ">=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==" + }, + "node_modules/path-scurry": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", + "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "dev": true, + "dependencies": { + "lru-cache": "^9.1.1 || ^10.0.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-to-regexp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-2.2.1.tgz", + "integrity": "sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==" + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pidusage": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/pidusage/-/pidusage-3.0.2.tgz", + "integrity": "sha512-g0VU+y08pKw5M8EZ2rIGiEBaB8wrQMjYGFfW2QVIfyT8V+fq8YFLkvlz4bz5ljvFDJYNFCWT3PWqcRr2FKO81w==", + "dependencies": { + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/pidusage/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/pify": { + "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" + } + }, + "node_modules/pirates": { + "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" + } + }, + "node_modules/pm2": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/pm2/-/pm2-5.3.1.tgz", + "integrity": "sha512-DLVQHpSR1EegaTaRH3KbRXxpPVaqYwAp3uHSCtCsS++LSErvk07WSxuUnntFblBRqNU/w2KQyqs12mSq5wurkg==", + "dependencies": { + "@pm2/agent": "~2.0.0", + "@pm2/io": "~5.0.0", + "@pm2/js-api": "~0.8.0", + "@pm2/pm2-version-check": "latest", + "async": "~3.2.0", + "blessed": "0.1.81", + "chalk": "3.0.0", + "chokidar": "^3.5.3", + "cli-tableau": "^2.0.0", + "commander": "2.15.1", + "croner": "~4.1.92", + "dayjs": "~1.11.5", + "debug": "^4.3.1", + "enquirer": "2.3.6", + "eventemitter2": "5.0.1", + "fclone": "1.0.11", + "mkdirp": "1.0.4", + "needle": "2.4.0", + "pidusage": "~3.0", + "pm2-axon": "~4.0.1", + "pm2-axon-rpc": "~0.7.1", + "pm2-deploy": "~1.0.2", + "pm2-multimeter": "^0.1.2", + "promptly": "^2", + "semver": "^7.2", + "source-map-support": "0.5.21", + "sprintf-js": "1.1.2", + "vizion": "~2.2.1", + "yamljs": "0.3.0" + }, + "bin": { + "pm2": "bin/pm2", + "pm2-dev": "bin/pm2-dev", + "pm2-docker": "bin/pm2-docker", + "pm2-runtime": "bin/pm2-runtime" + }, + "engines": { + "node": ">=10.0.0" + }, + "optionalDependencies": { + "pm2-sysmonit": "^1.2.8" + } + }, + "node_modules/pm2-axon": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pm2-axon/-/pm2-axon-4.0.1.tgz", + "integrity": "sha512-kES/PeSLS8orT8dR5jMlNl+Yu4Ty3nbvZRmaAtROuVm9nYYGiaoXqqKQqQYzWQzMYWUKHMQTvBlirjE5GIIxqg==", + "dependencies": { + "amp": "~0.3.1", + "amp-message": "~0.1.1", + "debug": "^4.3.1", + "escape-string-regexp": "^4.0.0" + }, + "engines": { + "node": ">=5" + } + }, + "node_modules/pm2-axon-rpc": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/pm2-axon-rpc/-/pm2-axon-rpc-0.7.1.tgz", + "integrity": "sha512-FbLvW60w+vEyvMjP/xom2UPhUN/2bVpdtLfKJeYM3gwzYhoTEEChCOICfFzxkxuoEleOlnpjie+n1nue91bDQw==", + "dependencies": { + "debug": "^4.3.1" + }, + "engines": { + "node": ">=5" + } + }, + "node_modules/pm2-axon-rpc/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/pm2-axon-rpc/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/pm2-axon/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/pm2-axon/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/pm2-deploy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pm2-deploy/-/pm2-deploy-1.0.2.tgz", + "integrity": "sha512-YJx6RXKrVrWaphEYf++EdOOx9EH18vM8RSZN/P1Y+NokTKqYAca/ejXwVLyiEpNju4HPZEk3Y2uZouwMqUlcgg==", + "dependencies": { + "run-series": "^1.1.8", + "tv4": "^1.3.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/pm2-multimeter": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/pm2-multimeter/-/pm2-multimeter-0.1.2.tgz", + "integrity": "sha512-S+wT6XfyKfd7SJIBqRgOctGxaBzUOmVQzTAS+cg04TsEUObJVreha7lvCfX8zzGVr871XwCSnHUU7DQQ5xEsfA==", + "dependencies": { + "charm": "~0.1.1" + } + }, + "node_modules/pm2-sysmonit": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/pm2-sysmonit/-/pm2-sysmonit-1.2.8.tgz", + "integrity": "sha512-ACOhlONEXdCTVwKieBIQLSi2tQZ8eKinhcr9JpZSUAL8Qy0ajIgRtsLxG/lwPOW3JEKqPyw/UaHmTWhUzpP4kA==", + "optional": true, + "dependencies": { + "async": "^3.2.0", + "debug": "^4.3.1", + "pidusage": "^2.0.21", + "systeminformation": "^5.7", + "tx2": "~1.0.4" + } + }, + "node_modules/pm2-sysmonit/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "optional": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/pm2-sysmonit/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "optional": true + }, + "node_modules/pm2-sysmonit/node_modules/pidusage": { + "version": "2.0.21", + "resolved": "https://registry.npmjs.org/pidusage/-/pidusage-2.0.21.tgz", + "integrity": "sha512-cv3xAQos+pugVX+BfXpHsbyz/dLzX+lr44zNMsYiGxUw+kV5sgQCIcLd1z+0vq+KyC7dJ+/ts2PsfgWfSC3WXA==", + "optional": true, + "dependencies": { + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pm2-sysmonit/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "optional": true + }, + "node_modules/pm2/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/pm2/node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pm2/node_modules/commander": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", + "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==" + }, + "node_modules/pm2/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/pm2/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/postcss": { + "version": "8.4.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz", + "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-import": { + "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", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "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" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-load-config": { + "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", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "lilconfig": "^3.0.0", + "yaml": "^2.3.4" + }, + "engines": { + "node": ">= 14" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-load-config/node_modules/lilconfig": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.1.tgz", + "integrity": "sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/postcss-nested": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz", + "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.11" + }, + "engines": { + "node": ">=12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.15", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz", + "integrity": "sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "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==", + "dev": true + }, + "node_modules/promptly": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/promptly/-/promptly-2.2.0.tgz", + "integrity": "sha512-aC9j+BZsRSSzEsXBNBwDnAxujdx19HycZoKgRgzWnS8eOHg1asuf9heuLprfbe739zY3IdUQx+Egv6Jn135WHA==", + "dependencies": { + "read": "^1.0.4" + } + }, + "node_modules/proxy-agent": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.3.1.tgz", + "integrity": "sha512-Rb5RVBy1iyqOtNl15Cw/llpeLH8bsb37gM1FUfKQ+Wck6xHlbAhWGUFiTRHtkjqGTA5pSHz6+0hrPW/oECihPQ==", + "dependencies": { + "agent-base": "^7.0.2", + "debug": "^4.3.4", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.2", + "lru-cache": "^7.14.1", + "pac-proxy-agent": "^7.0.1", + "proxy-from-env": "^1.1.0", + "socks-proxy-agent": "^8.0.2" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/proxy-agent/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/proxy-agent/node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "engines": { + "node": ">=12" + } + }, + "node_modules/proxy-agent/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==" + }, + "node_modules/queue-microtask": { + "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", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/range-parser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", + "integrity": "sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/react": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", + "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", + "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.0" + }, + "peerDependencies": { + "react": "^18.2.0" + } + }, + "node_modules/react-hook-form": { + "version": "7.50.1", + "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.50.1.tgz", + "integrity": "sha512-3PCY82oE0WgeOgUtIr3nYNNtNvqtJ7BZjsbxh6TnYNbXButaD5WpjOmTjdxZfheuHKR68qfeFnEDVYoSSFPMTQ==", + "engines": { + "node": ">=12.22.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/react-hook-form" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17 || ^18" + } + }, + "node_modules/react-redux": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-9.1.0.tgz", + "integrity": "sha512-6qoDzIO+gbrza8h3hjMA9aq4nwVFCKFtY2iLxCtVT38Swyy2C/dJCGBXHeHLtx6qlg/8qzc2MrhOeduf5K32wQ==", + "dependencies": { + "@types/use-sync-external-store": "^0.0.3", + "use-sync-external-store": "^1.0.0" + }, + "peerDependencies": { + "@types/react": "^18.2.25", + "react": "^18.0", + "react-native": ">=0.69", + "redux": "^5.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "react-native": { + "optional": true + }, + "redux": { + "optional": true + } + } + }, + "node_modules/read": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", + "integrity": "sha512-rSOKNYUmaxy0om1BNjMN4ezNT6VKK+2xF4GBhc81mkH7L60i6dp8qPYrkndNLT3QPphoII3maL9PVC9XmhHwVQ==", + "dependencies": { + "mute-stream": "~0.0.4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/read-cache": { + "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" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/redux": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/redux/-/redux-5.0.1.tgz", + "integrity": "sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==" + }, + "node_modules/redux-thunk": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-3.1.0.tgz", + "integrity": "sha512-NW2r5T6ksUKXCabzhL9z+h206HQw/NJkcLm1GPImRQ8IzfXwRGqjVhKJGauHirT0DAuyy6hjdnMZaRoAcy0Klw==", + "peerDependencies": { + "redux": "^5.0.0" + } + }, + "node_modules/registry-auth-token": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.2.tgz", + "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==", + "dependencies": { + "rc": "^1.1.6", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/registry-url": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", + "integrity": "sha512-ZbgR5aZEdf4UKZVBPYIgaglBmSF2Hi94s2PcIHhRGFjKYu+chjJdYfHn4rt3hB6eCKLJ8giVIIfgMa1ehDfZKA==", + "dependencies": { + "rc": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-in-the-middle": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-5.2.0.tgz", + "integrity": "sha512-efCx3b+0Z69/LGJmm9Yvi4cqEdxnoGnxYxGxBghkkTTFeXRtTCmmhO0AnAfHz59k957uTSuy8WaHqOs8wbYUWg==", + "dependencies": { + "debug": "^4.1.1", + "module-details-from-path": "^1.0.3", + "resolve": "^1.22.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/require-in-the-middle/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/require-in-the-middle/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/reselect": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/reselect/-/reselect-5.1.0.tgz", + "integrity": "sha512-aw7jcGLDpSgNDyWBQLv2cedml85qd95/iszJjN988zX1t7AVRJi19d9kto5+W7oCfQ94gyo40dVbT6g2k4/kXg==" + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/reusify": { + "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" + } + }, + "node_modules/run-parallel": { + "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", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/run-series": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/run-series/-/run-series-1.1.9.tgz", + "integrity": "sha512-Arc4hUN896vjkqCYrUXquBFtRZdv1PfLbTYP71efP6butxyQ0kWpiNJyAgsxscmQg1cqvHY32/UCBzXedTpU2g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/sax": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz", + "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==" + }, + "node_modules/scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/serve": { + "version": "14.2.1", + "resolved": "https://registry.npmjs.org/serve/-/serve-14.2.1.tgz", + "integrity": "sha512-48er5fzHh7GCShLnNyPBRPEjs2I6QBozeGr02gaacROiyS/8ARADlj595j39iZXAqBbJHH/ivJJyPRWY9sQWZA==", + "dependencies": { + "@zeit/schemas": "2.29.0", + "ajv": "8.11.0", + "arg": "5.0.2", + "boxen": "7.0.0", + "chalk": "5.0.1", + "chalk-template": "0.4.0", + "clipboardy": "3.0.0", + "compression": "1.7.4", + "is-port-reachable": "4.0.0", + "serve-handler": "6.1.5", + "update-check": "1.5.4" + }, + "bin": { + "serve": "build/main.js" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/serve-handler": { + "version": "6.1.5", + "resolved": "https://registry.npmjs.org/serve-handler/-/serve-handler-6.1.5.tgz", + "integrity": "sha512-ijPFle6Hwe8zfmBxJdE+5fta53fdIY0lHISJvuikXB3VYFafRjMRpOffSPvCYsbKyBA7pvy9oYr/BT1O3EArlg==", + "dependencies": { + "bytes": "3.0.0", + "content-disposition": "0.5.2", + "fast-url-parser": "1.1.3", + "mime-types": "2.1.18", + "minimatch": "3.1.2", + "path-is-inside": "1.0.2", + "path-to-regexp": "2.2.1", + "range-parser": "1.2.0" + } + }, + "node_modules/serve-handler/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/serve-handler/node_modules/mime-db": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", + "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-handler/node_modules/mime-types": { + "version": "2.1.18", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", + "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", + "dependencies": { + "mime-db": "~1.33.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-handler/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/sharp": { + "version": "0.33.2", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.33.2.tgz", + "integrity": "sha512-WlYOPyyPDiiM07j/UO+E720ju6gtNtHjEGg5vovUk1Lgxyjm2LFO+37Nt/UI3MMh2l6hxTWQWi7qk3cXJTutcQ==", + "hasInstallScript": true, + "dependencies": { + "color": "^4.2.3", + "detect-libc": "^2.0.2", + "semver": "^7.5.4" + }, + "engines": { + "libvips": ">=8.15.1", + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-darwin-arm64": "0.33.2", + "@img/sharp-darwin-x64": "0.33.2", + "@img/sharp-libvips-darwin-arm64": "1.0.1", + "@img/sharp-libvips-darwin-x64": "1.0.1", + "@img/sharp-libvips-linux-arm": "1.0.1", + "@img/sharp-libvips-linux-arm64": "1.0.1", + "@img/sharp-libvips-linux-s390x": "1.0.1", + "@img/sharp-libvips-linux-x64": "1.0.1", + "@img/sharp-libvips-linuxmusl-arm64": "1.0.1", + "@img/sharp-libvips-linuxmusl-x64": "1.0.1", + "@img/sharp-linux-arm": "0.33.2", + "@img/sharp-linux-arm64": "0.33.2", + "@img/sharp-linux-s390x": "0.33.2", + "@img/sharp-linux-x64": "0.33.2", + "@img/sharp-linuxmusl-arm64": "0.33.2", + "@img/sharp-linuxmusl-x64": "0.33.2", + "@img/sharp-wasm32": "0.33.2", + "@img/sharp-win32-ia32": "0.33.2", + "@img/sharp-win32-x64": "0.33.2" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "engines": { + "node": ">=8" + } + }, + "node_modules/shimmer": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/shimmer/-/shimmer-1.2.1.tgz", + "integrity": "sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==" + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.3.tgz", + "integrity": "sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==", + "dependencies": { + "ip-address": "^9.0.5", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks-proxy-agent": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.3.tgz", + "integrity": "sha512-VNegTZKhuGq5vSD6XNKlbqWhyt/40CgoEw8XxD6dhnm8Jq9IEa3nIa4HwnM8XOqU0CdB0BwWVXusqiFXfHB3+A==", + "dependencies": { + "agent-base": "^7.1.1", + "debug": "^4.3.4", + "socks": "^2.7.1" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/socks-proxy-agent/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/socks-proxy-agent/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", + "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==" + }, + "node_modules/streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/string-width-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/styled-jsx": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.1.tgz", + "integrity": "sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==", + "dependencies": { + "client-only": "0.0.1" + }, + "engines": { + "node": ">= 12.0.0" + }, + "peerDependencies": { + "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/sucrase": { + "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", + "glob": "^10.3.10", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/supercluster": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/supercluster/-/supercluster-8.0.1.tgz", + "integrity": "sha512-IiOea5kJ9iqzD2t7QJq/cREyLHTtSmUT6gQsweojg9WH2sYJqZK9SswTu6jrscO6D1G5v5vYZ9ru/eq85lXeZQ==", + "dependencies": { + "kdbush": "^4.0.2" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/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==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/swiper": { + "version": "11.0.6", + "resolved": "https://registry.npmjs.org/swiper/-/swiper-11.0.6.tgz", + "integrity": "sha512-W/Me7MQl5rNgdM5x9i3Gll76WsyVpnHn91GhBOyL7RCFUeg62aVnflzlVfIpXzZ/87FtJOfAoDH79ZH2Yq76zA==", + "funding": [ + { + "type": "patreon", + "url": "https://www.patreon.com/swiperjs" + }, + { + "type": "open_collective", + "url": "http://opencollective.com/swiper" + } + ], + "engines": { + "node": ">= 4.7.0" + } + }, + "node_modules/systeminformation": { + "version": "5.22.7", + "resolved": "https://registry.npmjs.org/systeminformation/-/systeminformation-5.22.7.tgz", + "integrity": "sha512-AWxlP05KeHbpGdgvZkcudJpsmChc2Y5Eo/GvxG/iUA/Aws5LZKHAMSeAo+V+nD+nxWZaxrwpWcnx4SH3oxNL3A==", + "optional": true, + "os": [ + "darwin", + "linux", + "win32", + "freebsd", + "openbsd", + "netbsd", + "sunos", + "android" + ], + "bin": { + "systeminformation": "lib/cli.js" + }, + "engines": { + "node": ">=8.0.0" + }, + "funding": { + "type": "Buy me a coffee", + "url": "https://www.buymeacoffee.com/systeminfo" + } + }, + "node_modules/tailwindcss": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.1.tgz", + "integrity": "sha512-qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA==", + "dev": true, + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.5.3", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.0", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.19.1", + "lilconfig": "^2.1.0", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.23", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.1", + "postcss-nested": "^6.0.1", + "postcss-selector-parser": "^6.0.11", + "resolve": "^1.22.2", + "sucrase": "^3.32.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dev": true, + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "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==", + "dev": true + }, + "node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + }, + "node_modules/tv4": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/tv4/-/tv4-1.3.0.tgz", + "integrity": "sha512-afizzfpJgvPr+eDkREK4MxJ/+r8nEEHcmitwgnPUqpaP+FpwQyadnxNoSACbgc/b1LsZYtODGoPiFxQrgJgjvw==", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/tx2": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tx2/-/tx2-1.0.5.tgz", + "integrity": "sha512-sJ24w0y03Md/bxzK4FU8J8JveYYUbSs2FViLJ2D/8bytSiyPRbuE3DyL/9UKYXTZlV3yXq0L8GLlhobTnekCVg==", + "optional": true, + "dependencies": { + "json-stringify-safe": "^5.0.1" + } + }, + "node_modules/type-fest": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typescript": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", + "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "dev": true + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/update-check": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/update-check/-/update-check-1.5.4.tgz", + "integrity": "sha512-5YHsflzHP4t1G+8WGPlvKbJEbAJGCgw+Em+dGR1KmBUbr1J36SJBqlHLjR7oob7sco5hWHGQVcr9B2poIVDDTQ==", + "dependencies": { + "registry-auth-token": "3.3.2", + "registry-url": "3.1.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/uri-js/node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/use-debounce": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/use-debounce/-/use-debounce-10.0.0.tgz", + "integrity": "sha512-XRjvlvCB46bah9IBXVnq/ACP2lxqXyZj0D9hj4K5OzNroMDpTEBg8Anuh1/UfRTRs7pLhQ+RiNxxwZu9+MVl1A==", + "engines": { + "node": ">= 16.0.0" + }, + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "node_modules/use-sync-external-store": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz", + "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/usehooks-ts": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/usehooks-ts/-/usehooks-ts-3.1.0.tgz", + "integrity": "sha512-bBIa7yUyPhE1BCc0GmR96VU/15l/9gP1Ch5mYdLcFBaFGQsdmXkvjV0TtOqW1yUd6VjIwDunm+flSciCQXujiw==", + "dependencies": { + "lodash.debounce": "^4.0.8" + }, + "engines": { + "node": ">=16.15.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17 || ^18" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/vizion": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/vizion/-/vizion-2.2.1.tgz", + "integrity": "sha512-sfAcO2yeSU0CSPFI/DmZp3FsFE9T+8913nv1xWBOyzODv13fwkn6Vl7HqxGpkr9F608M+8SuFId3s+BlZqfXww==", + "dependencies": { + "async": "^2.6.3", + "git-node-fs": "^1.0.0", + "ini": "^1.3.5", + "js-git": "^0.7.8" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/vizion/node_modules/async": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", + "dependencies": { + "lodash": "^4.17.14" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/widest-line": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-4.0.1.tgz", + "integrity": "sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==", + "dependencies": { + "string-width": "^5.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "node_modules/ws": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", + "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/yaml": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.4.tgz", + "integrity": "sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==", + "dev": true, + "engines": { + "node": ">= 14" + } + }, + "node_modules/yamljs": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/yamljs/-/yamljs-0.3.0.tgz", + "integrity": "sha512-C/FsVVhht4iPQYXOInoxUM/1ELSf9EsgKH34FofQOp6hwCPrW4vG4w5++TED3xRUo8gD7l0P1J1dLlDYzODsTQ==", + "dependencies": { + "argparse": "^1.0.7", + "glob": "^7.0.5" + }, + "bin": { + "json2yaml": "bin/json2yaml", + "yaml2json": "bin/yaml2json" + } + }, + "node_modules/yamljs/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/yamljs/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/yamljs/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/zod": { + "version": "3.22.4", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.22.4.tgz", + "integrity": "sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..8b2d0cd --- /dev/null +++ b/package.json @@ -0,0 +1,42 @@ +{ + "name": "turkmen_expo_client", + "version": "0.1.0", + "private": true, + "scripts": { + "dev": "next dev", + "build": "next build", + "start": "next start", + "out": "npx serve@latest out", + "lint": "next lint" + }, + "dependencies": { + "@hookform/resolvers": "^3.3.4", + "@react-google-maps/api": "^2.19.3", + "@reduxjs/toolkit": "^2.2.1", + "@types/uuid": "^9.0.8", + "clsx": "^2.1.0", + "framer-motion": "^11.0.25", + "next": "14.1.0", + "pm2": "^5.3.1", + "react": "^18", + "react-dom": "^18", + "react-hook-form": "^7.50.1", + "react-redux": "^9.1.0", + "serve": "^14.2.1", + "sharp": "^0.33.2", + "swiper": "^11.0.6", + "use-debounce": "^10.0.0", + "usehooks-ts": "^3.1.0", + "uuid": "^9.0.1", + "zod": "^3.22.4" + }, + "devDependencies": { + "@types/node": "^20", + "@types/react": "^18", + "@types/react-dom": "^18", + "autoprefixer": "^10.0.1", + "postcss": "^8", + "tailwindcss": "^3.3.0", + "typescript": "^5" + } +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..c70fe6c --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,3076 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + '@hookform/resolvers': + specifier: ^3.3.4 + version: 3.10.0(react-hook-form@7.65.0(react@18.3.1)) + '@react-google-maps/api': + specifier: ^2.19.3 + version: 2.20.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@reduxjs/toolkit': + specifier: ^2.2.1 + version: 2.9.0(react-redux@9.2.0(@types/react@18.3.26)(react@18.3.1)(redux@5.0.1))(react@18.3.1) + '@types/uuid': + specifier: ^9.0.8 + version: 9.0.8 + clsx: + specifier: ^2.1.0 + version: 2.1.1 + framer-motion: + specifier: ^11.0.25 + version: 11.18.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + next: + specifier: 14.1.0 + version: 14.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + pm2: + specifier: ^5.3.1 + version: 5.4.3 + react: + specifier: ^18 + version: 18.3.1 + react-dom: + specifier: ^18 + version: 18.3.1(react@18.3.1) + react-hook-form: + specifier: ^7.50.1 + version: 7.65.0(react@18.3.1) + react-redux: + specifier: ^9.1.0 + version: 9.2.0(@types/react@18.3.26)(react@18.3.1)(redux@5.0.1) + serve: + specifier: ^14.2.1 + version: 14.2.5 + sharp: + specifier: ^0.33.2 + version: 0.33.5 + swiper: + specifier: ^11.0.6 + version: 11.2.10 + use-debounce: + specifier: ^10.0.0 + version: 10.0.6(react@18.3.1) + usehooks-ts: + specifier: ^3.1.0 + version: 3.1.1(react@18.3.1) + uuid: + specifier: ^9.0.1 + version: 9.0.1 + zod: + specifier: ^3.22.4 + version: 3.25.76 + devDependencies: + '@types/node': + specifier: ^20 + version: 20.19.21 + '@types/react': + specifier: ^18 + version: 18.3.26 + '@types/react-dom': + specifier: ^18 + version: 18.3.7(@types/react@18.3.26) + autoprefixer: + specifier: ^10.0.1 + version: 10.4.21(postcss@8.5.6) + postcss: + specifier: ^8 + version: 8.5.6 + tailwindcss: + specifier: ^3.3.0 + version: 3.4.18 + typescript: + specifier: ^5 + version: 5.9.3 + +packages: + + '@alloc/quick-lru@5.2.0': + resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} + engines: {node: '>=10'} + + '@emnapi/runtime@1.5.0': + resolution: {integrity: sha512-97/BJ3iXHww3djw6hYIfErCZFee7qCtrneuLa20UXFCOTCfBM2cvQHjWJ2EG0s0MtdNwInarqCTz35i4wWXHsQ==} + + '@googlemaps/js-api-loader@1.16.8': + resolution: {integrity: sha512-CROqqwfKotdO6EBjZO/gQGVTbeDps5V7Mt9+8+5Q+jTg5CRMi3Ii/L9PmV3USROrt2uWxtGzJHORmByxyo9pSQ==} + + '@googlemaps/markerclusterer@2.5.3': + resolution: {integrity: sha512-x7lX0R5yYOoiNectr10wLgCBasNcXFHiADIBdmn7jQllF2B5ENQw5XtZK+hIw4xnV0Df0xhN4LN98XqA5jaiOw==} + + '@hookform/resolvers@3.10.0': + resolution: {integrity: sha512-79Dv+3mDF7i+2ajj7SkypSKHhl1cbln1OGavqrsF7p6mbUv11xpqpacPsGDCTRvCSjEEIez2ef1NveSVL3b0Ag==} + peerDependencies: + react-hook-form: ^7.0.0 + + '@img/sharp-darwin-arm64@0.33.5': + resolution: {integrity: sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [darwin] + + '@img/sharp-darwin-x64@0.33.5': + resolution: {integrity: sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [darwin] + + '@img/sharp-libvips-darwin-arm64@1.0.4': + resolution: {integrity: sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==} + cpu: [arm64] + os: [darwin] + + '@img/sharp-libvips-darwin-x64@1.0.4': + resolution: {integrity: sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==} + cpu: [x64] + os: [darwin] + + '@img/sharp-libvips-linux-arm64@1.0.4': + resolution: {integrity: sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==} + cpu: [arm64] + os: [linux] + + '@img/sharp-libvips-linux-arm@1.0.5': + resolution: {integrity: sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==} + cpu: [arm] + os: [linux] + + '@img/sharp-libvips-linux-s390x@1.0.4': + resolution: {integrity: sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==} + cpu: [s390x] + os: [linux] + + '@img/sharp-libvips-linux-x64@1.0.4': + resolution: {integrity: sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==} + cpu: [x64] + os: [linux] + + '@img/sharp-libvips-linuxmusl-arm64@1.0.4': + resolution: {integrity: sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==} + cpu: [arm64] + os: [linux] + + '@img/sharp-libvips-linuxmusl-x64@1.0.4': + resolution: {integrity: sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==} + cpu: [x64] + os: [linux] + + '@img/sharp-linux-arm64@0.33.5': + resolution: {integrity: sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [linux] + + '@img/sharp-linux-arm@0.33.5': + resolution: {integrity: sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm] + os: [linux] + + '@img/sharp-linux-s390x@0.33.5': + resolution: {integrity: sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [s390x] + os: [linux] + + '@img/sharp-linux-x64@0.33.5': + resolution: {integrity: sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [linux] + + '@img/sharp-linuxmusl-arm64@0.33.5': + resolution: {integrity: sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [linux] + + '@img/sharp-linuxmusl-x64@0.33.5': + resolution: {integrity: sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [linux] + + '@img/sharp-wasm32@0.33.5': + resolution: {integrity: sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [wasm32] + + '@img/sharp-win32-ia32@0.33.5': + resolution: {integrity: sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [ia32] + os: [win32] + + '@img/sharp-win32-x64@0.33.5': + resolution: {integrity: sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [win32] + + '@isaacs/cliui@8.0.2': + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} + + '@jridgewell/gen-mapping@0.3.13': + resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} + + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + + '@jridgewell/sourcemap-codec@1.5.5': + resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} + + '@jridgewell/trace-mapping@0.3.31': + resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} + + '@next/env@14.1.0': + resolution: {integrity: sha512-Py8zIo+02ht82brwwhTg36iogzFqGLPXlRGKQw5s+qP/kMNc4MAyDeEwBKDijk6zTIbegEgu8Qy7C1LboslQAw==} + + '@next/swc-darwin-arm64@14.1.0': + resolution: {integrity: sha512-nUDn7TOGcIeyQni6lZHfzNoo9S0euXnu0jhsbMOmMJUBfgsnESdjN97kM7cBqQxZa8L/bM9om/S5/1dzCrW6wQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + + '@next/swc-darwin-x64@14.1.0': + resolution: {integrity: sha512-1jgudN5haWxiAl3O1ljUS2GfupPmcftu2RYJqZiMJmmbBT5M1XDffjUtRUzP4W3cBHsrvkfOFdQ71hAreNQP6g==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + + '@next/swc-linux-arm64-gnu@14.1.0': + resolution: {integrity: sha512-RHo7Tcj+jllXUbK7xk2NyIDod3YcCPDZxj1WLIYxd709BQ7WuRYl3OWUNG+WUfqeQBds6kvZYlc42NJJTNi4tQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@next/swc-linux-arm64-musl@14.1.0': + resolution: {integrity: sha512-v6kP8sHYxjO8RwHmWMJSq7VZP2nYCkRVQ0qolh2l6xroe9QjbgV8siTbduED4u0hlk0+tjS6/Tuy4n5XCp+l6g==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@next/swc-linux-x64-gnu@14.1.0': + resolution: {integrity: sha512-zJ2pnoFYB1F4vmEVlb/eSe+VH679zT1VdXlZKX+pE66grOgjmKJHKacf82g/sWE4MQ4Rk2FMBCRnX+l6/TVYzQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@next/swc-linux-x64-musl@14.1.0': + resolution: {integrity: sha512-rbaIYFt2X9YZBSbH/CwGAjbBG2/MrACCVu2X0+kSykHzHnYH5FjHxwXLkcoJ10cX0aWCEynpu+rP76x0914atg==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@next/swc-win32-arm64-msvc@14.1.0': + resolution: {integrity: sha512-o1N5TsYc8f/HpGt39OUQpQ9AKIGApd3QLueu7hXk//2xq5Z9OxmV6sQfNp8C7qYmiOlHYODOGqNNa0e9jvchGQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + + '@next/swc-win32-ia32-msvc@14.1.0': + resolution: {integrity: sha512-XXIuB1DBRCFwNO6EEzCTMHT5pauwaSj4SWs7CYnME57eaReAKBXCnkUE80p/pAZcewm7hs+vGvNqDPacEXHVkw==} + engines: {node: '>= 10'} + cpu: [ia32] + os: [win32] + + '@next/swc-win32-x64-msvc@14.1.0': + resolution: {integrity: sha512-9WEbVRRAqJ3YFVqEZIxUqkiO8l1nool1LmNxygr5HWF8AcSYsEpneUDhmjUVJEzO2A04+oPtZdombzzPPkTtgg==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + + '@nodelib/fs.scandir@2.1.5': + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + + '@nodelib/fs.stat@2.0.5': + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + + '@nodelib/fs.walk@1.2.8': + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + + '@pkgjs/parseargs@0.11.0': + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} + + '@pm2/agent@2.0.4': + resolution: {integrity: sha512-n7WYvvTJhHLS2oBb1PjOtgLpMhgImOq8sXkPBw6smeg9LJBWZjiEgPKOpR8mn9UJZsB5P3W4V/MyvNnp31LKeA==} + + '@pm2/io@6.0.1': + resolution: {integrity: sha512-KiA+shC6sULQAr9mGZ1pg+6KVW9MF8NpG99x26Lf/082/Qy8qsTCtnJy+HQReW1A9Rdf0C/404cz0RZGZro+IA==} + engines: {node: '>=6.0'} + + '@pm2/js-api@0.8.0': + resolution: {integrity: sha512-nmWzrA/BQZik3VBz+npRcNIu01kdBhWL0mxKmP1ciF/gTcujPTQqt027N9fc1pK9ERM8RipFhymw7RcmCyOEYA==} + engines: {node: '>=4.0'} + + '@pm2/pm2-version-check@1.0.4': + resolution: {integrity: sha512-SXsM27SGH3yTWKc2fKR4SYNxsmnvuBQ9dd6QHtEWmiZ/VqaOYPAIlS8+vMcn27YLtAEBGvNRSh3TPNvtjZgfqA==} + + '@react-google-maps/api@2.20.7': + resolution: {integrity: sha512-ys7uri3V6gjhYZUI43srHzSKDC6/jiKTwHNlwXFTvjeaJE3M3OaYBt9FZKvJs8qnOhL6i6nD1BKJoi1KrnkCkg==} + peerDependencies: + react: ^16.8 || ^17 || ^18 || ^19 + react-dom: ^16.8 || ^17 || ^18 || ^19 + + '@react-google-maps/infobox@2.20.0': + resolution: {integrity: sha512-03PJHjohhaVLkX6+NHhlr8CIlvUxWaXhryqDjyaZ8iIqqix/nV8GFdz9O3m5OsjtxtNho09F/15j14yV0nuyLQ==} + + '@react-google-maps/marker-clusterer@2.20.0': + resolution: {integrity: sha512-tieX9Va5w1yP88vMgfH1pHTacDQ9TgDTjox3tLlisKDXRQWdjw+QeVVghhf5XqqIxXHgPdcGwBvKY6UP+SIvLw==} + + '@reduxjs/toolkit@2.9.0': + resolution: {integrity: sha512-fSfQlSRu9Z5yBkvsNhYF2rPS8cGXn/TZVrlwN1948QyZ8xMZ0JvP50S2acZNaf+o63u6aEeMjipFyksjIcWrog==} + peerDependencies: + react: ^16.9.0 || ^17.0.0 || ^18 || ^19 + react-redux: ^7.2.1 || ^8.1.3 || ^9.0.0 + peerDependenciesMeta: + react: + optional: true + react-redux: + optional: true + + '@standard-schema/spec@1.0.0': + resolution: {integrity: sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA==} + + '@standard-schema/utils@0.3.0': + resolution: {integrity: sha512-e7Mew686owMaPJVNNLs55PUvgz371nKgwsc4vxE49zsODpJEnxgxRo2y/OKrqueavXgZNMDVj3DdHFlaSAeU8g==} + + '@swc/helpers@0.5.2': + resolution: {integrity: sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==} + + '@tootallnate/quickjs-emscripten@0.23.0': + resolution: {integrity: sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==} + + '@types/google.maps@3.58.1': + resolution: {integrity: sha512-X9QTSvGJ0nCfMzYOnaVs/k6/4L+7F5uCS+4iUmkLEls6J9S/Phv+m/i3mDeyc49ZBgwab3EFO1HEoBY7k98EGQ==} + + '@types/node@20.19.21': + resolution: {integrity: sha512-CsGG2P3I5y48RPMfprQGfy4JPRZ6csfC3ltBZSRItG3ngggmNY/qs2uZKp4p9VbrpqNNSMzUZNFZKzgOGnd/VA==} + + '@types/prop-types@15.7.15': + resolution: {integrity: sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==} + + '@types/react-dom@18.3.7': + resolution: {integrity: sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==} + peerDependencies: + '@types/react': ^18.0.0 + + '@types/react@18.3.26': + resolution: {integrity: sha512-RFA/bURkcKzx/X9oumPG9Vp3D3JUgus/d0b67KB0t5S/raciymilkOa66olh78MUI92QLbEJevO7rvqU/kjwKA==} + + '@types/use-sync-external-store@0.0.6': + resolution: {integrity: sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg==} + + '@types/uuid@9.0.8': + resolution: {integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==} + + '@zeit/schemas@2.36.0': + resolution: {integrity: sha512-7kjMwcChYEzMKjeex9ZFXkt1AyNov9R5HZtjBKVsmVpw7pa7ZtlCGvCBC2vnnXctaYN+aRI61HjIqeetZW5ROg==} + + agent-base@7.1.4: + resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} + engines: {node: '>= 14'} + + ajv@8.12.0: + resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} + + amp-message@0.1.2: + resolution: {integrity: sha512-JqutcFwoU1+jhv7ArgW38bqrE+LQdcRv4NxNw0mp0JHQyB6tXesWRjtYKlDgHRY2o3JE5UTaBGUK8kSWUdxWUg==} + + amp@0.3.1: + resolution: {integrity: sha512-OwIuC4yZaRogHKiuU5WlMR5Xk/jAcpPtawWL05Gj8Lvm2F6mwoJt4O/bHI+DHwG79vWd+8OFYM4/BzYqyRd3qw==} + + ansi-align@3.0.1: + resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} + + ansi-colors@4.1.3: + resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} + engines: {node: '>=6'} + + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + ansi-regex@6.2.2: + resolution: {integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==} + engines: {node: '>=12'} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + ansi-styles@6.2.3: + resolution: {integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==} + engines: {node: '>=12'} + + any-promise@1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + + anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + + arch@2.2.0: + resolution: {integrity: sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==} + + arg@5.0.2: + resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + + argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + + ast-types@0.13.4: + resolution: {integrity: sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==} + engines: {node: '>=4'} + + async@2.6.4: + resolution: {integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==} + + async@3.2.6: + resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} + + autoprefixer@10.4.21: + resolution: {integrity: sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==} + engines: {node: ^10 || ^12 || >=14} + hasBin: true + peerDependencies: + postcss: ^8.1.0 + + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + baseline-browser-mapping@2.8.16: + resolution: {integrity: sha512-OMu3BGQ4E7P1ErFsIPpbJh0qvDudM/UuJeHgkAvfWe+0HFJCXh+t/l8L6fVLR55RI/UbKrVLnAXZSVwd9ysWYw==} + hasBin: true + + basic-ftp@5.0.5: + resolution: {integrity: sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==} + engines: {node: '>=10.0.0'} + + binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + engines: {node: '>=8'} + + blessed@0.1.81: + resolution: {integrity: sha512-LoF5gae+hlmfORcG1M5+5XZi4LBmvlXTzwJWzUlPryN/SJdSflZvROM2TwkT0GMpq7oqT48NRd4GS7BiVBc5OQ==} + engines: {node: '>= 0.8.0'} + hasBin: true + + bodec@0.1.0: + resolution: {integrity: sha512-Ylo+MAo5BDUq1KA3f3R/MFhh+g8cnHmo8bz3YPGhI1znrMaf77ol1sfvYJzsw3nTE+Y2GryfDxBaR+AqpAkEHQ==} + + boxen@7.0.0: + resolution: {integrity: sha512-j//dBVuyacJbvW+tvZ9HuH03fZ46QcaKvvhZickZqtB271DxJ7SNRSNxrV/dZX0085m7hISRZWbzWlJvx/rHSg==} + engines: {node: '>=14.16'} + + brace-expansion@1.1.12: + resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} + + brace-expansion@2.0.2: + resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} + + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + + browserslist@4.26.3: + resolution: {integrity: sha512-lAUU+02RFBuCKQPj/P6NgjlbCnLBMp4UtgTx7vNHd3XSIJF87s9a5rA3aH2yw3GS9DqZAUbOtZdCCiZeVRqt0w==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + + buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + + busboy@1.6.0: + resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} + engines: {node: '>=10.16.0'} + + bytes@3.0.0: + resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} + engines: {node: '>= 0.8'} + + bytes@3.1.2: + resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} + engines: {node: '>= 0.8'} + + camelcase-css@2.0.1: + resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} + engines: {node: '>= 6'} + + camelcase@7.0.1: + resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==} + engines: {node: '>=14.16'} + + caniuse-lite@1.0.30001750: + resolution: {integrity: sha512-cuom0g5sdX6rw00qOoLNSFCJ9/mYIsuSOA+yzpDw8eopiFqcVwQvZHqov0vmEighRxX++cfC0Vg1G+1Iy/mSpQ==} + + chalk-template@0.4.0: + resolution: {integrity: sha512-/ghrgmhfY8RaSdeo43hNXxpoHAtxdbskUHjPpfqUWGttFgycUhYPGx3YZBCnUCvOa7Doivn1IZec3DEGFoMgLg==} + engines: {node: '>=12'} + + chalk@3.0.0: + resolution: {integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==} + engines: {node: '>=8'} + + chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + + chalk@5.0.1: + resolution: {integrity: sha512-Fo07WOYGqMfCWHOzSXOt2CxDbC6skS/jO9ynEcmpANMoPrD+W1r1K6Vx7iNm+AQmETU1Xr2t+n8nzkV9t6xh3w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + + charm@0.1.2: + resolution: {integrity: sha512-syedaZ9cPe7r3hoQA9twWYKu5AIyCswN5+szkmPBe9ccdLrj4bYaCnLVPTLd2kgVRc7+zoX4tyPgRnFKCj5YjQ==} + + chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} + + cli-boxes@3.0.0: + resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} + engines: {node: '>=10'} + + cli-tableau@2.0.1: + resolution: {integrity: sha512-he+WTicka9cl0Fg/y+YyxcN6/bfQ/1O3QmgxRXDhABKqLzvoOSM4fMzp39uMyLBulAFuywD2N7UaoQE7WaADxQ==} + engines: {node: '>=8.10.0'} + + client-only@0.0.1: + resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} + + clipboardy@3.0.0: + resolution: {integrity: sha512-Su+uU5sr1jkUy1sGRpLKjKrvEOVXgSgiSInwa/qeID6aJ07yh+5NWc3h2QfjHjBnfX4LhtFcuAWKUsJ3r+fjbg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + clsx@2.1.1: + resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} + engines: {node: '>=6'} + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + color-string@1.9.1: + resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} + + color@4.2.3: + resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} + engines: {node: '>=12.5.0'} + + commander@2.15.1: + resolution: {integrity: sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==} + + commander@4.1.1: + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} + engines: {node: '>= 6'} + + compressible@2.0.18: + resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} + engines: {node: '>= 0.6'} + + compression@1.8.1: + resolution: {integrity: sha512-9mAqGPHLakhCLeNyxPkK4xVo746zQ/czLH1Ky+vkitMnWfWZps8r0qXuwhwizagCRttsL4lfG4pIOvaWLpAP0w==} + engines: {node: '>= 0.8.0'} + + concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + + content-disposition@0.5.2: + resolution: {integrity: sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==} + engines: {node: '>= 0.6'} + + croner@4.1.97: + resolution: {integrity: sha512-/f6gpQuxDaqXu+1kwQYSckUglPaOrHdbIlBAu0YuW8/Cdb45XwXYNUBXg3r/9Mo6n540Kn/smKcZWko5x99KrQ==} + + cross-spawn@7.0.6: + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} + engines: {node: '>= 8'} + + cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + + csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + + culvert@0.1.2: + resolution: {integrity: sha512-yi1x3EAWKjQTreYWeSd98431AV+IEE0qoDyOoaHJ7KJ21gv6HtBXHVLX74opVSGqcR8/AbjJBHAHpcOy2bj5Gg==} + + data-uri-to-buffer@6.0.2: + resolution: {integrity: sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==} + engines: {node: '>= 14'} + + dayjs@1.11.18: + resolution: {integrity: sha512-zFBQ7WFRvVRhKcWoUh+ZA1g2HVgUbsZm9sbddh8EC5iv93sui8DVVz1Npvz+r6meo9VKfa8NyLWBsQK1VvIKPA==} + + dayjs@1.8.36: + resolution: {integrity: sha512-3VmRXEtw7RZKAf+4Tv1Ym9AGeo8r8+CjDi26x+7SYQil1UqtqdaokhzoEJohqlzt0m5kacJSDhJQkG/LWhpRBw==} + + debug@2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@4.3.7: + resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@4.4.3: + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + deep-extend@0.6.0: + resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} + engines: {node: '>=4.0.0'} + + degenerator@5.0.1: + resolution: {integrity: sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==} + engines: {node: '>= 14'} + + detect-libc@2.1.2: + resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} + engines: {node: '>=8'} + + didyoumean@1.2.2: + resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} + + dlv@1.1.3: + resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} + + eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + + electron-to-chromium@1.5.234: + resolution: {integrity: sha512-RXfEp2x+VRYn8jbKfQlRImzoJU01kyDvVPBmG39eU2iuRVhuS6vQNocB8J0/8GrIMLnPzgz4eW6WiRnJkTuNWg==} + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + + enquirer@2.3.6: + resolution: {integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==} + engines: {node: '>=8.6'} + + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} + engines: {node: '>=6'} + + escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + + escodegen@2.1.0: + resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==} + engines: {node: '>=6.0'} + hasBin: true + + esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + + estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + + esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + + eventemitter2@0.4.14: + resolution: {integrity: sha512-K7J4xq5xAD5jHsGM5ReWXRTFa3JRGofHiMcVgQ8PRwgWxzjHpMWCIzsmyf60+mh8KLsqYPcjUMa0AC4hd6lPyQ==} + + eventemitter2@5.0.1: + resolution: {integrity: sha512-5EM1GHXycJBS6mauYAbVKT1cVs7POKWb2NXD4Vyt8dDqeZa7LaDK1/sjtL+Zb0lzTpSNil4596Dyu97hz37QLg==} + + eventemitter2@6.4.9: + resolution: {integrity: sha512-JEPTiaOt9f04oa6NOkc4aH+nVp5I3wEjpHbIPqfgCdD5v5bUzy7xQqwcVO2aDQgOWhI28da57HksMrzK9HlRxg==} + + execa@5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} + + extrareqp2@1.0.0: + resolution: {integrity: sha512-Gum0g1QYb6wpPJCVypWP3bbIuaibcFiJcpuPM10YSXp/tzqi84x9PJageob+eN4xVRIOto4wjSGNLyMD54D2xA==} + + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + fast-glob@3.3.3: + resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} + engines: {node: '>=8.6.0'} + + fast-json-patch@3.1.1: + resolution: {integrity: sha512-vf6IHUX2SBcA+5/+4883dsIjpBTqmfBjmYiWK1savxQmFk4JfBMLa7ynTYOs1Rolp/T1betJxHiGD3g1Mn8lUQ==} + + fastq@1.19.1: + resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} + + fclone@1.0.11: + resolution: {integrity: sha512-GDqVQezKzRABdeqflsgMr7ktzgF9CyS+p2oe0jJqUY6izSSbhPIQJDpoU4PtGcD7VPM9xh/dVrTu6z1nwgmEGw==} + + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + + follow-redirects@1.15.11: + resolution: {integrity: sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + + foreground-child@3.3.1: + resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} + engines: {node: '>=14'} + + fraction.js@4.3.7: + resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} + + framer-motion@11.18.2: + resolution: {integrity: sha512-5F5Och7wrvtLVElIpclDT0CBzMVg3dL22B64aZwHtsIY8RB4mXICLrkajK4G9R+ieSAGcgrLeae2SeUTg2pr6w==} + peerDependencies: + '@emotion/is-prop-valid': '*' + react: ^18.0.0 || ^19.0.0 + react-dom: ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + '@emotion/is-prop-valid': + optional: true + react: + optional: true + react-dom: + optional: true + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} + + get-uri@6.0.5: + resolution: {integrity: sha512-b1O07XYq8eRuVzBNgJLstU6FYc1tS6wnMtF1I1D9lE8LxZSOGZ7LhxN54yPP6mGw5f2CkXY2BQUL9Fx41qvcIg==} + engines: {node: '>= 14'} + + git-node-fs@1.0.0: + resolution: {integrity: sha512-bLQypt14llVXBg0S0u8q8HmU7g9p3ysH+NvVlae5vILuUvs759665HvmR5+wb04KjHyjFcDRxdYb4kyNnluMUQ==} + peerDependencies: + js-git: ^0.7.8 + peerDependenciesMeta: + js-git: + optional: true + + git-sha1@0.1.2: + resolution: {integrity: sha512-2e/nZezdVlyCopOCYHeW0onkbZg7xP1Ad6pndPy1rCygeRykefUS6r7oA5cJRGEFvseiaz5a/qUHFVX1dd6Isg==} + + glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + + glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + + glob@10.4.5: + resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} + hasBin: true + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + + http-proxy-agent@7.0.2: + resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} + engines: {node: '>= 14'} + + https-proxy-agent@7.0.6: + resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} + engines: {node: '>= 14'} + + human-signals@2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} + + iconv-lite@0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} + + immer@10.1.3: + resolution: {integrity: sha512-tmjF/k8QDKydUlm3mZU+tjM6zeq9/fFpPqH9SzWmBnVVKsPBg/V66qsMwb3/Bo90cgUN+ghdVBess+hPsxUyRw==} + + ini@1.3.8: + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + + invariant@2.2.4: + resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} + + ip-address@10.0.1: + resolution: {integrity: sha512-NWv9YLW4PoW2B7xtzaS3NCot75m6nK7Icdv0o3lfMceJVRfSoQwqD4wEH5rLwoKJwUiZ/rfpiVBhnaF0FK4HoA==} + engines: {node: '>= 12'} + + is-arrayish@0.3.4: + resolution: {integrity: sha512-m6UrgzFVUYawGBh1dUsWR5M2Clqic9RVXC/9f8ceNlv2IcO9j9J/z8UoCLPqtsPBFNzEpfR3xftohbfqDx8EQA==} + + is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + + is-core-module@2.16.1: + resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} + engines: {node: '>= 0.4'} + + is-docker@2.2.1: + resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} + engines: {node: '>=8'} + hasBin: true + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + is-port-reachable@4.0.0: + resolution: {integrity: sha512-9UoipoxYmSk6Xy7QFgRv2HDyaysmgSG75TFQs6S+3pDM7ZhKTF/bskZV+0UlABHzKjNVhPjYCLfeZUEg1wXxig==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + + is-wsl@2.2.0: + resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} + engines: {node: '>=8'} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + jackspeak@3.4.3: + resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + + jiti@1.21.7: + resolution: {integrity: sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==} + hasBin: true + + js-git@0.7.8: + resolution: {integrity: sha512-+E5ZH/HeRnoc/LW0AmAyhU+mNcWBzAKE+30+IDMLSLbbK+Tdt02AdkOKq9u15rlJsDEGFqtgckc8ZM59LhhiUA==} + + js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + + json-schema-traverse@1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + + json-stringify-safe@5.0.1: + resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} + + kdbush@4.0.2: + resolution: {integrity: sha512-WbCVYJ27Sz8zi9Q7Q0xHC+05iwkm3Znipc2XTlrnJbsHMYktW4hPhXUE8Ys1engBrvffoSCqbil1JQAa7clRpA==} + + lazy@1.0.11: + resolution: {integrity: sha512-Y+CjUfLmIpoUCCRl0ub4smrYtGGr5AOa2AKOaWelGHOGz33X/Y/KizefGqbkwfz44+cnq/+9habclf8vOmu2LA==} + engines: {node: '>=0.2.0'} + + lilconfig@3.1.3: + resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} + engines: {node: '>=14'} + + lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + + lodash.debounce@4.0.8: + resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} + + lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + + loose-envify@1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true + + lru-cache@10.4.3: + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + + lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + + lru-cache@7.18.3: + resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} + engines: {node: '>=12'} + + merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + + merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} + engines: {node: '>=8.6'} + + mime-db@1.33.0: + resolution: {integrity: sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==} + engines: {node: '>= 0.6'} + + mime-db@1.54.0: + resolution: {integrity: sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==} + engines: {node: '>= 0.6'} + + mime-types@2.1.18: + resolution: {integrity: sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==} + engines: {node: '>= 0.6'} + + mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + + minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + + minimatch@9.0.5: + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} + engines: {node: '>=16 || 14 >=14.17'} + + minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + + minipass@7.1.2: + resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} + engines: {node: '>=16 || 14 >=14.17'} + + mkdirp@1.0.4: + resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} + engines: {node: '>=10'} + hasBin: true + + module-details-from-path@1.0.4: + resolution: {integrity: sha512-EGWKgxALGMgzvxYF1UyGTy0HXX/2vHLkw6+NvDKW2jypWbHpjQuj4UMcqQWXHERJhVGKikolT06G3bcKe4fi7w==} + + motion-dom@11.18.1: + resolution: {integrity: sha512-g76KvA001z+atjfxczdRtw/RXOM3OMSdd1f4DL77qCTF/+avrRJiawSG4yDibEQ215sr9kpinSlX2pCTJ9zbhw==} + + motion-utils@11.18.1: + resolution: {integrity: sha512-49Kt+HKjtbJKLtgO/LKj9Ld+6vw9BjH5d9sc40R/kVyH8GLAXgT42M2NnuPcJNuA3s9ZfZBUcwIgpmZWGEE+hA==} + + ms@2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + mute-stream@0.0.8: + resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} + + mz@2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + + nanoid@3.3.11: + resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + needle@2.4.0: + resolution: {integrity: sha512-4Hnwzr3mi5L97hMYeNl8wRW/Onhy4nUKR/lVemJ8gJedxxUyBLm9kkrDColJvoSfwi0jCNhD+xCdOtiGDQiRZg==} + engines: {node: '>= 4.4.x'} + hasBin: true + + negotiator@0.6.4: + resolution: {integrity: sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==} + engines: {node: '>= 0.6'} + + netmask@2.0.2: + resolution: {integrity: sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==} + engines: {node: '>= 0.4.0'} + + next@14.1.0: + resolution: {integrity: sha512-wlzrsbfeSU48YQBjZhDzOwhWhGsy+uQycR8bHAOt1LY1bn3zZEcDyHQOEoN3aWzQ8LHCAJ1nqrWCc9XF2+O45Q==} + engines: {node: '>=18.17.0'} + hasBin: true + peerDependencies: + '@opentelemetry/api': ^1.1.0 + react: ^18.2.0 + react-dom: ^18.2.0 + sass: ^1.3.0 + peerDependenciesMeta: + '@opentelemetry/api': + optional: true + sass: + optional: true + + node-releases@2.0.23: + resolution: {integrity: sha512-cCmFDMSm26S6tQSDpBCg/NR8NENrVPhAJSf+XbxBG4rPFaaonlEoE9wHQmun+cls499TQGSb7ZyPBRlzgKfpeg==} + + normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + normalize-range@0.1.2: + resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} + engines: {node: '>=0.10.0'} + + npm-run-path@4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} + + nssocket@0.6.0: + resolution: {integrity: sha512-a9GSOIql5IqgWJR3F/JXG4KpJTA3Z53Cj0MeMvGpglytB1nxE4PdFNC0jINe27CS7cGivoynwc054EzCcT3M3w==} + engines: {node: '>= 0.10.x'} + + object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + + object-hash@3.0.0: + resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} + engines: {node: '>= 6'} + + on-headers@1.1.0: + resolution: {integrity: sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==} + engines: {node: '>= 0.8'} + + onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + + pac-proxy-agent@7.2.0: + resolution: {integrity: sha512-TEB8ESquiLMc0lV8vcd5Ql/JAKAoyzHFXaStwjkzpOpC5Yv+pIzLfHvjTSdf3vpa2bMiUQrg9i6276yn8666aA==} + engines: {node: '>= 14'} + + pac-resolver@7.0.1: + resolution: {integrity: sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==} + engines: {node: '>= 14'} + + package-json-from-dist@1.0.1: + resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} + + pako@0.2.9: + resolution: {integrity: sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==} + + path-is-inside@1.0.2: + resolution: {integrity: sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==} + + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + + path-scurry@1.11.1: + resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} + engines: {node: '>=16 || 14 >=14.18'} + + path-to-regexp@3.3.0: + resolution: {integrity: sha512-qyCH421YQPS2WFDxDjftfc1ZR5WKQzVzqsp4n9M2kQhVOo/ByahFoUNJfl58kOcEGfQ//7weFTDhm+ss8Ecxgw==} + + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + + picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + pidusage@2.0.21: + resolution: {integrity: sha512-cv3xAQos+pugVX+BfXpHsbyz/dLzX+lr44zNMsYiGxUw+kV5sgQCIcLd1z+0vq+KyC7dJ+/ts2PsfgWfSC3WXA==} + engines: {node: '>=8'} + + pidusage@3.0.2: + resolution: {integrity: sha512-g0VU+y08pKw5M8EZ2rIGiEBaB8wrQMjYGFfW2QVIfyT8V+fq8YFLkvlz4bz5ljvFDJYNFCWT3PWqcRr2FKO81w==} + engines: {node: '>=10'} + + pify@2.3.0: + resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} + engines: {node: '>=0.10.0'} + + pirates@4.0.7: + resolution: {integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==} + engines: {node: '>= 6'} + + pm2-axon-rpc@0.7.1: + resolution: {integrity: sha512-FbLvW60w+vEyvMjP/xom2UPhUN/2bVpdtLfKJeYM3gwzYhoTEEChCOICfFzxkxuoEleOlnpjie+n1nue91bDQw==} + engines: {node: '>=5'} + + pm2-axon@4.0.1: + resolution: {integrity: sha512-kES/PeSLS8orT8dR5jMlNl+Yu4Ty3nbvZRmaAtROuVm9nYYGiaoXqqKQqQYzWQzMYWUKHMQTvBlirjE5GIIxqg==} + engines: {node: '>=5'} + + pm2-deploy@1.0.2: + resolution: {integrity: sha512-YJx6RXKrVrWaphEYf++EdOOx9EH18vM8RSZN/P1Y+NokTKqYAca/ejXwVLyiEpNju4HPZEk3Y2uZouwMqUlcgg==} + engines: {node: '>=4.0.0'} + + pm2-multimeter@0.1.2: + resolution: {integrity: sha512-S+wT6XfyKfd7SJIBqRgOctGxaBzUOmVQzTAS+cg04TsEUObJVreha7lvCfX8zzGVr871XwCSnHUU7DQQ5xEsfA==} + + pm2-sysmonit@1.2.8: + resolution: {integrity: sha512-ACOhlONEXdCTVwKieBIQLSi2tQZ8eKinhcr9JpZSUAL8Qy0ajIgRtsLxG/lwPOW3JEKqPyw/UaHmTWhUzpP4kA==} + + pm2@5.4.3: + resolution: {integrity: sha512-4/I1htIHzZk1Y67UgOCo4F1cJtas1kSds31N8zN0PybO230id1nigyjGuGFzUnGmUFPmrJ0On22fO1ChFlp7VQ==} + engines: {node: '>=12.0.0'} + hasBin: true + + postcss-import@15.1.0: + resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} + engines: {node: '>=14.0.0'} + peerDependencies: + postcss: ^8.0.0 + + postcss-js@4.1.0: + resolution: {integrity: sha512-oIAOTqgIo7q2EOwbhb8UalYePMvYoIeRY2YKntdpFQXNosSu3vLrniGgmH9OKs/qAkfoj5oB3le/7mINW1LCfw==} + engines: {node: ^12 || ^14 || >= 16} + peerDependencies: + postcss: ^8.4.21 + + postcss-load-config@6.0.1: + resolution: {integrity: sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==} + engines: {node: '>= 18'} + peerDependencies: + jiti: '>=1.21.0' + postcss: '>=8.0.9' + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + jiti: + optional: true + postcss: + optional: true + tsx: + optional: true + yaml: + optional: true + + postcss-nested@6.2.0: + resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.2.14 + + postcss-selector-parser@6.1.2: + resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} + engines: {node: '>=4'} + + postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + + postcss@8.4.31: + resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} + engines: {node: ^10 || ^12 || >=14} + + postcss@8.5.6: + resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} + engines: {node: ^10 || ^12 || >=14} + + promptly@2.2.0: + resolution: {integrity: sha512-aC9j+BZsRSSzEsXBNBwDnAxujdx19HycZoKgRgzWnS8eOHg1asuf9heuLprfbe739zY3IdUQx+Egv6Jn135WHA==} + + proxy-agent@6.3.1: + resolution: {integrity: sha512-Rb5RVBy1iyqOtNl15Cw/llpeLH8bsb37gM1FUfKQ+Wck6xHlbAhWGUFiTRHtkjqGTA5pSHz6+0hrPW/oECihPQ==} + engines: {node: '>= 14'} + + proxy-from-env@1.1.0: + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + range-parser@1.2.0: + resolution: {integrity: sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==} + engines: {node: '>= 0.6'} + + rc@1.2.8: + resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} + hasBin: true + + react-dom@18.3.1: + resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} + peerDependencies: + react: ^18.3.1 + + react-hook-form@7.65.0: + resolution: {integrity: sha512-xtOzDz063WcXvGWaHgLNrNzlsdFgtUWcb32E6WFaGTd7kPZG3EeDusjdZfUsPwKCKVXy1ZlntifaHZ4l8pAsmw==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^16.8.0 || ^17 || ^18 || ^19 + + react-redux@9.2.0: + resolution: {integrity: sha512-ROY9fvHhwOD9ySfrF0wmvu//bKCQ6AeZZq1nJNtbDC+kk5DuSuNX/n6YWYF/SYy7bSba4D4FSz8DJeKY/S/r+g==} + peerDependencies: + '@types/react': ^18.2.25 || ^19 + react: ^18.0 || ^19 + redux: ^5.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + redux: + optional: true + + react@18.3.1: + resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} + engines: {node: '>=0.10.0'} + + read-cache@1.0.0: + resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} + + read@1.0.7: + resolution: {integrity: sha512-rSOKNYUmaxy0om1BNjMN4ezNT6VKK+2xF4GBhc81mkH7L60i6dp8qPYrkndNLT3QPphoII3maL9PVC9XmhHwVQ==} + engines: {node: '>=0.8'} + + readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + + redux-thunk@3.1.0: + resolution: {integrity: sha512-NW2r5T6ksUKXCabzhL9z+h206HQw/NJkcLm1GPImRQ8IzfXwRGqjVhKJGauHirT0DAuyy6hjdnMZaRoAcy0Klw==} + peerDependencies: + redux: ^5.0.0 + + redux@5.0.1: + resolution: {integrity: sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==} + + registry-auth-token@3.3.2: + resolution: {integrity: sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==} + + registry-url@3.1.0: + resolution: {integrity: sha512-ZbgR5aZEdf4UKZVBPYIgaglBmSF2Hi94s2PcIHhRGFjKYu+chjJdYfHn4rt3hB6eCKLJ8giVIIfgMa1ehDfZKA==} + engines: {node: '>=0.10.0'} + + require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + + require-in-the-middle@5.2.0: + resolution: {integrity: sha512-efCx3b+0Z69/LGJmm9Yvi4cqEdxnoGnxYxGxBghkkTTFeXRtTCmmhO0AnAfHz59k957uTSuy8WaHqOs8wbYUWg==} + engines: {node: '>=6'} + + reselect@5.1.1: + resolution: {integrity: sha512-K/BG6eIky/SBpzfHZv/dd+9JBFiS4SWV7FIujVyJRux6e45+73RaUHXLmIR1f7WOMaQ0U1km6qwklRQxpJJY0w==} + + resolve@1.22.10: + resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==} + engines: {node: '>= 0.4'} + hasBin: true + + reusify@1.1.0: + resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + + run-series@1.1.9: + resolution: {integrity: sha512-Arc4hUN896vjkqCYrUXquBFtRZdv1PfLbTYP71efP6butxyQ0kWpiNJyAgsxscmQg1cqvHY32/UCBzXedTpU2g==} + + safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + + safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + + sax@1.4.1: + resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==} + + scheduler@0.23.2: + resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} + + semver@7.5.4: + resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} + engines: {node: '>=10'} + hasBin: true + + semver@7.7.3: + resolution: {integrity: sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==} + engines: {node: '>=10'} + hasBin: true + + serve-handler@6.1.6: + resolution: {integrity: sha512-x5RL9Y2p5+Sh3D38Fh9i/iQ5ZK+e4xuXRd/pGbM4D13tgo/MGwbttUk8emytcr1YYzBYs+apnUngBDFYfpjPuQ==} + + serve@14.2.5: + resolution: {integrity: sha512-Qn/qMkzCcMFVPb60E/hQy+iRLpiU8PamOfOSYoAHmmF+fFFmpPpqa6Oci2iWYpTdOUM3VF+TINud7CfbQnsZbA==} + engines: {node: '>= 14'} + hasBin: true + + sharp@0.33.5: + resolution: {integrity: sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + shimmer@1.2.1: + resolution: {integrity: sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==} + + signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + + signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + + simple-swizzle@0.2.4: + resolution: {integrity: sha512-nAu1WFPQSMNr2Zn9PGSZK9AGn4t/y97lEm+MXTtUDwfP0ksAIX4nO+6ruD9Jwut4C49SB1Ws+fbXsm/yScWOHw==} + + smart-buffer@4.2.0: + resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} + engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} + + socks-proxy-agent@8.0.5: + resolution: {integrity: sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==} + engines: {node: '>= 14'} + + socks@2.8.7: + resolution: {integrity: sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A==} + engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} + + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + engines: {node: '>=0.10.0'} + + source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + + source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + + sprintf-js@1.1.2: + resolution: {integrity: sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==} + + streamsearch@1.1.0: + resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} + engines: {node: '>=10.0.0'} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + strip-ansi@7.1.2: + resolution: {integrity: sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==} + engines: {node: '>=12'} + + strip-final-newline@2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} + + strip-json-comments@2.0.1: + resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} + engines: {node: '>=0.10.0'} + + styled-jsx@5.1.1: + resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==} + engines: {node: '>= 12.0.0'} + peerDependencies: + '@babel/core': '*' + babel-plugin-macros: '*' + react: '>= 16.8.0 || 17.x.x || ^18.0.0-0' + peerDependenciesMeta: + '@babel/core': + optional: true + babel-plugin-macros: + optional: true + + sucrase@3.35.0: + resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true + + supercluster@8.0.1: + resolution: {integrity: sha512-IiOea5kJ9iqzD2t7QJq/cREyLHTtSmUT6gQsweojg9WH2sYJqZK9SswTu6jrscO6D1G5v5vYZ9ru/eq85lXeZQ==} + + supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + + supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + + swiper@11.2.10: + resolution: {integrity: sha512-RMeVUUjTQH+6N3ckimK93oxz6Sn5la4aDlgPzB+rBrG/smPdCTicXyhxa+woIpopz+jewEloiEE3lKo1h9w2YQ==} + engines: {node: '>= 4.7.0'} + + systeminformation@5.27.11: + resolution: {integrity: sha512-K3Lto/2m3K2twmKHdgx5B+0in9qhXK4YnoT9rIlgwN/4v7OV5c8IjbeAUkuky/6VzCQC7iKCAqi8rZathCdjHg==} + engines: {node: '>=8.0.0'} + os: [darwin, linux, win32, freebsd, openbsd, netbsd, sunos, android] + hasBin: true + + tailwindcss@3.4.18: + resolution: {integrity: sha512-6A2rnmW5xZMdw11LYjhcI5846rt9pbLSabY5XPxo+XWdxwZaFEn47Go4NzFiHu9sNNmr/kXivP1vStfvMaK1GQ==} + engines: {node: '>=14.0.0'} + hasBin: true + + thenify-all@1.6.0: + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + engines: {node: '>=0.8'} + + thenify@3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + ts-interface-checker@0.1.13: + resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + + tslib@1.9.3: + resolution: {integrity: sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==} + + tslib@2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + + tv4@1.3.0: + resolution: {integrity: sha512-afizzfpJgvPr+eDkREK4MxJ/+r8nEEHcmitwgnPUqpaP+FpwQyadnxNoSACbgc/b1LsZYtODGoPiFxQrgJgjvw==} + engines: {node: '>= 0.8.0'} + + tx2@1.0.5: + resolution: {integrity: sha512-sJ24w0y03Md/bxzK4FU8J8JveYYUbSs2FViLJ2D/8bytSiyPRbuE3DyL/9UKYXTZlV3yXq0L8GLlhobTnekCVg==} + + type-fest@2.19.0: + resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} + engines: {node: '>=12.20'} + + typescript@5.9.3: + resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} + engines: {node: '>=14.17'} + hasBin: true + + undici-types@6.21.0: + resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} + + update-browserslist-db@1.1.3: + resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + + update-check@1.5.4: + resolution: {integrity: sha512-5YHsflzHP4t1G+8WGPlvKbJEbAJGCgw+Em+dGR1KmBUbr1J36SJBqlHLjR7oob7sco5hWHGQVcr9B2poIVDDTQ==} + + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + + use-debounce@10.0.6: + resolution: {integrity: sha512-C5OtPyhAZgVoteO9heXMTdW7v/IbFI+8bSVKYCJrSmiWWCLsbUxiBSp4t9v0hNBTGY97bT72ydDIDyGSFWfwXg==} + engines: {node: '>= 16.0.0'} + peerDependencies: + react: '*' + + use-sync-external-store@1.6.0: + resolution: {integrity: sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + + usehooks-ts@3.1.1: + resolution: {integrity: sha512-I4diPp9Cq6ieSUH2wu+fDAVQO43xwtulo+fKEidHUwZPnYImbtkTjzIJYcDcJqxgmX31GVqNFURodvcgHcW0pA==} + engines: {node: '>=16.15.0'} + peerDependencies: + react: ^16.8.0 || ^17 || ^18 || ^19 || ^19.0.0-rc + + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + uuid@9.0.1: + resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} + hasBin: true + + vary@1.1.2: + resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} + engines: {node: '>= 0.8'} + + vizion@2.2.1: + resolution: {integrity: sha512-sfAcO2yeSU0CSPFI/DmZp3FsFE9T+8913nv1xWBOyzODv13fwkn6Vl7HqxGpkr9F608M+8SuFId3s+BlZqfXww==} + engines: {node: '>=4.0'} + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + + widest-line@4.0.1: + resolution: {integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==} + engines: {node: '>=12'} + + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + + ws@7.5.10: + resolution: {integrity: sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==} + engines: {node: '>=8.3.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + + zod@3.25.76: + resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} + +snapshots: + + '@alloc/quick-lru@5.2.0': {} + + '@emnapi/runtime@1.5.0': + dependencies: + tslib: 2.8.1 + optional: true + + '@googlemaps/js-api-loader@1.16.8': {} + + '@googlemaps/markerclusterer@2.5.3': + dependencies: + fast-deep-equal: 3.1.3 + supercluster: 8.0.1 + + '@hookform/resolvers@3.10.0(react-hook-form@7.65.0(react@18.3.1))': + dependencies: + react-hook-form: 7.65.0(react@18.3.1) + + '@img/sharp-darwin-arm64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-darwin-arm64': 1.0.4 + optional: true + + '@img/sharp-darwin-x64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-darwin-x64': 1.0.4 + optional: true + + '@img/sharp-libvips-darwin-arm64@1.0.4': + optional: true + + '@img/sharp-libvips-darwin-x64@1.0.4': + optional: true + + '@img/sharp-libvips-linux-arm64@1.0.4': + optional: true + + '@img/sharp-libvips-linux-arm@1.0.5': + optional: true + + '@img/sharp-libvips-linux-s390x@1.0.4': + optional: true + + '@img/sharp-libvips-linux-x64@1.0.4': + optional: true + + '@img/sharp-libvips-linuxmusl-arm64@1.0.4': + optional: true + + '@img/sharp-libvips-linuxmusl-x64@1.0.4': + optional: true + + '@img/sharp-linux-arm64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-arm64': 1.0.4 + optional: true + + '@img/sharp-linux-arm@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-arm': 1.0.5 + optional: true + + '@img/sharp-linux-s390x@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-s390x': 1.0.4 + optional: true + + '@img/sharp-linux-x64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-x64': 1.0.4 + optional: true + + '@img/sharp-linuxmusl-arm64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 + optional: true + + '@img/sharp-linuxmusl-x64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-x64': 1.0.4 + optional: true + + '@img/sharp-wasm32@0.33.5': + dependencies: + '@emnapi/runtime': 1.5.0 + optional: true + + '@img/sharp-win32-ia32@0.33.5': + optional: true + + '@img/sharp-win32-x64@0.33.5': + optional: true + + '@isaacs/cliui@8.0.2': + dependencies: + string-width: 5.1.2 + string-width-cjs: string-width@4.2.3 + strip-ansi: 7.1.2 + strip-ansi-cjs: strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: wrap-ansi@7.0.0 + + '@jridgewell/gen-mapping@0.3.13': + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + '@jridgewell/trace-mapping': 0.3.31 + + '@jridgewell/resolve-uri@3.1.2': {} + + '@jridgewell/sourcemap-codec@1.5.5': {} + + '@jridgewell/trace-mapping@0.3.31': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.5 + + '@next/env@14.1.0': {} + + '@next/swc-darwin-arm64@14.1.0': + optional: true + + '@next/swc-darwin-x64@14.1.0': + optional: true + + '@next/swc-linux-arm64-gnu@14.1.0': + optional: true + + '@next/swc-linux-arm64-musl@14.1.0': + optional: true + + '@next/swc-linux-x64-gnu@14.1.0': + optional: true + + '@next/swc-linux-x64-musl@14.1.0': + optional: true + + '@next/swc-win32-arm64-msvc@14.1.0': + optional: true + + '@next/swc-win32-ia32-msvc@14.1.0': + optional: true + + '@next/swc-win32-x64-msvc@14.1.0': + optional: true + + '@nodelib/fs.scandir@2.1.5': + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + '@nodelib/fs.stat@2.0.5': {} + + '@nodelib/fs.walk@1.2.8': + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.19.1 + + '@pkgjs/parseargs@0.11.0': + optional: true + + '@pm2/agent@2.0.4': + dependencies: + async: 3.2.6 + chalk: 3.0.0 + dayjs: 1.8.36 + debug: 4.3.7 + eventemitter2: 5.0.1 + fast-json-patch: 3.1.1 + fclone: 1.0.11 + nssocket: 0.6.0 + pm2-axon: 4.0.1 + pm2-axon-rpc: 0.7.1 + proxy-agent: 6.3.1 + semver: 7.5.4 + ws: 7.5.10 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + '@pm2/io@6.0.1': + dependencies: + async: 2.6.4 + debug: 4.3.7 + eventemitter2: 6.4.9 + require-in-the-middle: 5.2.0 + semver: 7.5.4 + shimmer: 1.2.1 + signal-exit: 3.0.7 + tslib: 1.9.3 + transitivePeerDependencies: + - supports-color + + '@pm2/js-api@0.8.0': + dependencies: + async: 2.6.4 + debug: 4.3.7 + eventemitter2: 6.4.9 + extrareqp2: 1.0.0(debug@4.3.7) + ws: 7.5.10 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + '@pm2/pm2-version-check@1.0.4': + dependencies: + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + + '@react-google-maps/api@2.20.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@googlemaps/js-api-loader': 1.16.8 + '@googlemaps/markerclusterer': 2.5.3 + '@react-google-maps/infobox': 2.20.0 + '@react-google-maps/marker-clusterer': 2.20.0 + '@types/google.maps': 3.58.1 + invariant: 2.2.4 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + '@react-google-maps/infobox@2.20.0': {} + + '@react-google-maps/marker-clusterer@2.20.0': {} + + '@reduxjs/toolkit@2.9.0(react-redux@9.2.0(@types/react@18.3.26)(react@18.3.1)(redux@5.0.1))(react@18.3.1)': + dependencies: + '@standard-schema/spec': 1.0.0 + '@standard-schema/utils': 0.3.0 + immer: 10.1.3 + redux: 5.0.1 + redux-thunk: 3.1.0(redux@5.0.1) + reselect: 5.1.1 + optionalDependencies: + react: 18.3.1 + react-redux: 9.2.0(@types/react@18.3.26)(react@18.3.1)(redux@5.0.1) + + '@standard-schema/spec@1.0.0': {} + + '@standard-schema/utils@0.3.0': {} + + '@swc/helpers@0.5.2': + dependencies: + tslib: 2.8.1 + + '@tootallnate/quickjs-emscripten@0.23.0': {} + + '@types/google.maps@3.58.1': {} + + '@types/node@20.19.21': + dependencies: + undici-types: 6.21.0 + + '@types/prop-types@15.7.15': {} + + '@types/react-dom@18.3.7(@types/react@18.3.26)': + dependencies: + '@types/react': 18.3.26 + + '@types/react@18.3.26': + dependencies: + '@types/prop-types': 15.7.15 + csstype: 3.1.3 + + '@types/use-sync-external-store@0.0.6': {} + + '@types/uuid@9.0.8': {} + + '@zeit/schemas@2.36.0': {} + + agent-base@7.1.4: {} + + ajv@8.12.0: + dependencies: + fast-deep-equal: 3.1.3 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + uri-js: 4.4.1 + + amp-message@0.1.2: + dependencies: + amp: 0.3.1 + + amp@0.3.1: {} + + ansi-align@3.0.1: + dependencies: + string-width: 4.2.3 + + ansi-colors@4.1.3: {} + + ansi-regex@5.0.1: {} + + ansi-regex@6.2.2: {} + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + ansi-styles@6.2.3: {} + + any-promise@1.3.0: {} + + anymatch@3.1.3: + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + + arch@2.2.0: {} + + arg@5.0.2: {} + + argparse@2.0.1: {} + + ast-types@0.13.4: + dependencies: + tslib: 2.8.1 + + async@2.6.4: + dependencies: + lodash: 4.17.21 + + async@3.2.6: {} + + autoprefixer@10.4.21(postcss@8.5.6): + dependencies: + browserslist: 4.26.3 + caniuse-lite: 1.0.30001750 + fraction.js: 4.3.7 + normalize-range: 0.1.2 + picocolors: 1.1.1 + postcss: 8.5.6 + postcss-value-parser: 4.2.0 + + balanced-match@1.0.2: {} + + baseline-browser-mapping@2.8.16: {} + + basic-ftp@5.0.5: {} + + binary-extensions@2.3.0: {} + + blessed@0.1.81: {} + + bodec@0.1.0: {} + + boxen@7.0.0: + dependencies: + ansi-align: 3.0.1 + camelcase: 7.0.1 + chalk: 5.0.1 + cli-boxes: 3.0.0 + string-width: 5.1.2 + type-fest: 2.19.0 + widest-line: 4.0.1 + wrap-ansi: 8.1.0 + + brace-expansion@1.1.12: + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + + brace-expansion@2.0.2: + dependencies: + balanced-match: 1.0.2 + + braces@3.0.3: + dependencies: + fill-range: 7.1.1 + + browserslist@4.26.3: + dependencies: + baseline-browser-mapping: 2.8.16 + caniuse-lite: 1.0.30001750 + electron-to-chromium: 1.5.234 + node-releases: 2.0.23 + update-browserslist-db: 1.1.3(browserslist@4.26.3) + + buffer-from@1.1.2: {} + + busboy@1.6.0: + dependencies: + streamsearch: 1.1.0 + + bytes@3.0.0: {} + + bytes@3.1.2: {} + + camelcase-css@2.0.1: {} + + camelcase@7.0.1: {} + + caniuse-lite@1.0.30001750: {} + + chalk-template@0.4.0: + dependencies: + chalk: 4.1.2 + + chalk@3.0.0: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + + chalk@4.1.2: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + + chalk@5.0.1: {} + + charm@0.1.2: {} + + chokidar@3.6.0: + dependencies: + anymatch: 3.1.3 + braces: 3.0.3 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + + cli-boxes@3.0.0: {} + + cli-tableau@2.0.1: + dependencies: + chalk: 3.0.0 + + client-only@0.0.1: {} + + clipboardy@3.0.0: + dependencies: + arch: 2.2.0 + execa: 5.1.1 + is-wsl: 2.2.0 + + clsx@2.1.1: {} + + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-name@1.1.4: {} + + color-string@1.9.1: + dependencies: + color-name: 1.1.4 + simple-swizzle: 0.2.4 + + color@4.2.3: + dependencies: + color-convert: 2.0.1 + color-string: 1.9.1 + + commander@2.15.1: {} + + commander@4.1.1: {} + + compressible@2.0.18: + dependencies: + mime-db: 1.54.0 + + compression@1.8.1: + dependencies: + bytes: 3.1.2 + compressible: 2.0.18 + debug: 2.6.9 + negotiator: 0.6.4 + on-headers: 1.1.0 + safe-buffer: 5.2.1 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color + + concat-map@0.0.1: {} + + content-disposition@0.5.2: {} + + croner@4.1.97: {} + + cross-spawn@7.0.6: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + cssesc@3.0.0: {} + + csstype@3.1.3: {} + + culvert@0.1.2: {} + + data-uri-to-buffer@6.0.2: {} + + dayjs@1.11.18: {} + + dayjs@1.8.36: {} + + debug@2.6.9: + dependencies: + ms: 2.0.0 + + debug@3.2.7: + dependencies: + ms: 2.1.3 + + debug@4.3.7: + dependencies: + ms: 2.1.3 + + debug@4.4.3: + dependencies: + ms: 2.1.3 + + deep-extend@0.6.0: {} + + degenerator@5.0.1: + dependencies: + ast-types: 0.13.4 + escodegen: 2.1.0 + esprima: 4.0.1 + + detect-libc@2.1.2: {} + + didyoumean@1.2.2: {} + + dlv@1.1.3: {} + + eastasianwidth@0.2.0: {} + + electron-to-chromium@1.5.234: {} + + emoji-regex@8.0.0: {} + + emoji-regex@9.2.2: {} + + enquirer@2.3.6: + dependencies: + ansi-colors: 4.1.3 + + escalade@3.2.0: {} + + escape-string-regexp@4.0.0: {} + + escodegen@2.1.0: + dependencies: + esprima: 4.0.1 + estraverse: 5.3.0 + esutils: 2.0.3 + optionalDependencies: + source-map: 0.6.1 + + esprima@4.0.1: {} + + estraverse@5.3.0: {} + + esutils@2.0.3: {} + + eventemitter2@0.4.14: {} + + eventemitter2@5.0.1: {} + + eventemitter2@6.4.9: {} + + execa@5.1.1: + dependencies: + cross-spawn: 7.0.6 + get-stream: 6.0.1 + human-signals: 2.1.0 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + + extrareqp2@1.0.0(debug@4.3.7): + dependencies: + follow-redirects: 1.15.11(debug@4.3.7) + transitivePeerDependencies: + - debug + + fast-deep-equal@3.1.3: {} + + fast-glob@3.3.3: + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.8 + + fast-json-patch@3.1.1: {} + + fastq@1.19.1: + dependencies: + reusify: 1.1.0 + + fclone@1.0.11: {} + + fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 + + follow-redirects@1.15.11(debug@4.3.7): + optionalDependencies: + debug: 4.3.7 + + foreground-child@3.3.1: + dependencies: + cross-spawn: 7.0.6 + signal-exit: 4.1.0 + + fraction.js@4.3.7: {} + + framer-motion@11.18.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + motion-dom: 11.18.1 + motion-utils: 11.18.1 + tslib: 2.8.1 + optionalDependencies: + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + fsevents@2.3.3: + optional: true + + function-bind@1.1.2: {} + + get-stream@6.0.1: {} + + get-uri@6.0.5: + dependencies: + basic-ftp: 5.0.5 + data-uri-to-buffer: 6.0.2 + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + + git-node-fs@1.0.0(js-git@0.7.8): + optionalDependencies: + js-git: 0.7.8 + + git-sha1@0.1.2: {} + + glob-parent@5.1.2: + dependencies: + is-glob: 4.0.3 + + glob-parent@6.0.2: + dependencies: + is-glob: 4.0.3 + + glob@10.4.5: + dependencies: + foreground-child: 3.3.1 + jackspeak: 3.4.3 + minimatch: 9.0.5 + minipass: 7.1.2 + package-json-from-dist: 1.0.1 + path-scurry: 1.11.1 + + graceful-fs@4.2.11: {} + + has-flag@4.0.0: {} + + hasown@2.0.2: + dependencies: + function-bind: 1.1.2 + + http-proxy-agent@7.0.2: + dependencies: + agent-base: 7.1.4 + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + + https-proxy-agent@7.0.6: + dependencies: + agent-base: 7.1.4 + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + + human-signals@2.1.0: {} + + iconv-lite@0.4.24: + dependencies: + safer-buffer: 2.1.2 + + immer@10.1.3: {} + + ini@1.3.8: {} + + invariant@2.2.4: + dependencies: + loose-envify: 1.4.0 + + ip-address@10.0.1: {} + + is-arrayish@0.3.4: {} + + is-binary-path@2.1.0: + dependencies: + binary-extensions: 2.3.0 + + is-core-module@2.16.1: + dependencies: + hasown: 2.0.2 + + is-docker@2.2.1: {} + + is-extglob@2.1.1: {} + + is-fullwidth-code-point@3.0.0: {} + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + + is-number@7.0.0: {} + + is-port-reachable@4.0.0: {} + + is-stream@2.0.1: {} + + is-wsl@2.2.0: + dependencies: + is-docker: 2.2.1 + + isexe@2.0.0: {} + + jackspeak@3.4.3: + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + + jiti@1.21.7: {} + + js-git@0.7.8: + dependencies: + bodec: 0.1.0 + culvert: 0.1.2 + git-sha1: 0.1.2 + pako: 0.2.9 + + js-tokens@4.0.0: {} + + js-yaml@4.1.0: + dependencies: + argparse: 2.0.1 + + json-schema-traverse@1.0.0: {} + + json-stringify-safe@5.0.1: + optional: true + + kdbush@4.0.2: {} + + lazy@1.0.11: {} + + lilconfig@3.1.3: {} + + lines-and-columns@1.2.4: {} + + lodash.debounce@4.0.8: {} + + lodash@4.17.21: {} + + loose-envify@1.4.0: + dependencies: + js-tokens: 4.0.0 + + lru-cache@10.4.3: {} + + lru-cache@6.0.0: + dependencies: + yallist: 4.0.0 + + lru-cache@7.18.3: {} + + merge-stream@2.0.0: {} + + merge2@1.4.1: {} + + micromatch@4.0.8: + dependencies: + braces: 3.0.3 + picomatch: 2.3.1 + + mime-db@1.33.0: {} + + mime-db@1.54.0: {} + + mime-types@2.1.18: + dependencies: + mime-db: 1.33.0 + + mimic-fn@2.1.0: {} + + minimatch@3.1.2: + dependencies: + brace-expansion: 1.1.12 + + minimatch@9.0.5: + dependencies: + brace-expansion: 2.0.2 + + minimist@1.2.8: {} + + minipass@7.1.2: {} + + mkdirp@1.0.4: {} + + module-details-from-path@1.0.4: {} + + motion-dom@11.18.1: + dependencies: + motion-utils: 11.18.1 + + motion-utils@11.18.1: {} + + ms@2.0.0: {} + + ms@2.1.3: {} + + mute-stream@0.0.8: {} + + mz@2.7.0: + dependencies: + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 + + nanoid@3.3.11: {} + + needle@2.4.0: + dependencies: + debug: 3.2.7 + iconv-lite: 0.4.24 + sax: 1.4.1 + transitivePeerDependencies: + - supports-color + + negotiator@0.6.4: {} + + netmask@2.0.2: {} + + next@14.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@next/env': 14.1.0 + '@swc/helpers': 0.5.2 + busboy: 1.6.0 + caniuse-lite: 1.0.30001750 + graceful-fs: 4.2.11 + postcss: 8.4.31 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + styled-jsx: 5.1.1(react@18.3.1) + optionalDependencies: + '@next/swc-darwin-arm64': 14.1.0 + '@next/swc-darwin-x64': 14.1.0 + '@next/swc-linux-arm64-gnu': 14.1.0 + '@next/swc-linux-arm64-musl': 14.1.0 + '@next/swc-linux-x64-gnu': 14.1.0 + '@next/swc-linux-x64-musl': 14.1.0 + '@next/swc-win32-arm64-msvc': 14.1.0 + '@next/swc-win32-ia32-msvc': 14.1.0 + '@next/swc-win32-x64-msvc': 14.1.0 + transitivePeerDependencies: + - '@babel/core' + - babel-plugin-macros + + node-releases@2.0.23: {} + + normalize-path@3.0.0: {} + + normalize-range@0.1.2: {} + + npm-run-path@4.0.1: + dependencies: + path-key: 3.1.1 + + nssocket@0.6.0: + dependencies: + eventemitter2: 0.4.14 + lazy: 1.0.11 + + object-assign@4.1.1: {} + + object-hash@3.0.0: {} + + on-headers@1.1.0: {} + + onetime@5.1.2: + dependencies: + mimic-fn: 2.1.0 + + pac-proxy-agent@7.2.0: + dependencies: + '@tootallnate/quickjs-emscripten': 0.23.0 + agent-base: 7.1.4 + debug: 4.4.3 + get-uri: 6.0.5 + http-proxy-agent: 7.0.2 + https-proxy-agent: 7.0.6 + pac-resolver: 7.0.1 + socks-proxy-agent: 8.0.5 + transitivePeerDependencies: + - supports-color + + pac-resolver@7.0.1: + dependencies: + degenerator: 5.0.1 + netmask: 2.0.2 + + package-json-from-dist@1.0.1: {} + + pako@0.2.9: {} + + path-is-inside@1.0.2: {} + + path-key@3.1.1: {} + + path-parse@1.0.7: {} + + path-scurry@1.11.1: + dependencies: + lru-cache: 10.4.3 + minipass: 7.1.2 + + path-to-regexp@3.3.0: {} + + picocolors@1.1.1: {} + + picomatch@2.3.1: {} + + pidusage@2.0.21: + dependencies: + safe-buffer: 5.2.1 + optional: true + + pidusage@3.0.2: + dependencies: + safe-buffer: 5.2.1 + + pify@2.3.0: {} + + pirates@4.0.7: {} + + pm2-axon-rpc@0.7.1: + dependencies: + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + + pm2-axon@4.0.1: + dependencies: + amp: 0.3.1 + amp-message: 0.1.2 + debug: 4.4.3 + escape-string-regexp: 4.0.0 + transitivePeerDependencies: + - supports-color + + pm2-deploy@1.0.2: + dependencies: + run-series: 1.1.9 + tv4: 1.3.0 + + pm2-multimeter@0.1.2: + dependencies: + charm: 0.1.2 + + pm2-sysmonit@1.2.8: + dependencies: + async: 3.2.6 + debug: 4.4.3 + pidusage: 2.0.21 + systeminformation: 5.27.11 + tx2: 1.0.5 + transitivePeerDependencies: + - supports-color + optional: true + + pm2@5.4.3: + dependencies: + '@pm2/agent': 2.0.4 + '@pm2/io': 6.0.1 + '@pm2/js-api': 0.8.0 + '@pm2/pm2-version-check': 1.0.4 + async: 3.2.6 + blessed: 0.1.81 + chalk: 3.0.0 + chokidar: 3.6.0 + cli-tableau: 2.0.1 + commander: 2.15.1 + croner: 4.1.97 + dayjs: 1.11.18 + debug: 4.4.3 + enquirer: 2.3.6 + eventemitter2: 5.0.1 + fclone: 1.0.11 + js-yaml: 4.1.0 + mkdirp: 1.0.4 + needle: 2.4.0 + pidusage: 3.0.2 + pm2-axon: 4.0.1 + pm2-axon-rpc: 0.7.1 + pm2-deploy: 1.0.2 + pm2-multimeter: 0.1.2 + promptly: 2.2.0 + semver: 7.7.3 + source-map-support: 0.5.21 + sprintf-js: 1.1.2 + vizion: 2.2.1 + optionalDependencies: + pm2-sysmonit: 1.2.8 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + postcss-import@15.1.0(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + postcss-value-parser: 4.2.0 + read-cache: 1.0.0 + resolve: 1.22.10 + + postcss-js@4.1.0(postcss@8.5.6): + dependencies: + camelcase-css: 2.0.1 + postcss: 8.5.6 + + postcss-load-config@6.0.1(jiti@1.21.7)(postcss@8.5.6): + dependencies: + lilconfig: 3.1.3 + optionalDependencies: + jiti: 1.21.7 + postcss: 8.5.6 + + postcss-nested@6.2.0(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + postcss-selector-parser: 6.1.2 + + postcss-selector-parser@6.1.2: + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + + postcss-value-parser@4.2.0: {} + + postcss@8.4.31: + dependencies: + nanoid: 3.3.11 + picocolors: 1.1.1 + source-map-js: 1.2.1 + + postcss@8.5.6: + dependencies: + nanoid: 3.3.11 + picocolors: 1.1.1 + source-map-js: 1.2.1 + + promptly@2.2.0: + dependencies: + read: 1.0.7 + + proxy-agent@6.3.1: + dependencies: + agent-base: 7.1.4 + debug: 4.4.3 + http-proxy-agent: 7.0.2 + https-proxy-agent: 7.0.6 + lru-cache: 7.18.3 + pac-proxy-agent: 7.2.0 + proxy-from-env: 1.1.0 + socks-proxy-agent: 8.0.5 + transitivePeerDependencies: + - supports-color + + proxy-from-env@1.1.0: {} + + punycode@2.3.1: {} + + queue-microtask@1.2.3: {} + + range-parser@1.2.0: {} + + rc@1.2.8: + dependencies: + deep-extend: 0.6.0 + ini: 1.3.8 + minimist: 1.2.8 + strip-json-comments: 2.0.1 + + react-dom@18.3.1(react@18.3.1): + dependencies: + loose-envify: 1.4.0 + react: 18.3.1 + scheduler: 0.23.2 + + react-hook-form@7.65.0(react@18.3.1): + dependencies: + react: 18.3.1 + + react-redux@9.2.0(@types/react@18.3.26)(react@18.3.1)(redux@5.0.1): + dependencies: + '@types/use-sync-external-store': 0.0.6 + react: 18.3.1 + use-sync-external-store: 1.6.0(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.26 + redux: 5.0.1 + + react@18.3.1: + dependencies: + loose-envify: 1.4.0 + + read-cache@1.0.0: + dependencies: + pify: 2.3.0 + + read@1.0.7: + dependencies: + mute-stream: 0.0.8 + + readdirp@3.6.0: + dependencies: + picomatch: 2.3.1 + + redux-thunk@3.1.0(redux@5.0.1): + dependencies: + redux: 5.0.1 + + redux@5.0.1: {} + + registry-auth-token@3.3.2: + dependencies: + rc: 1.2.8 + safe-buffer: 5.2.1 + + registry-url@3.1.0: + dependencies: + rc: 1.2.8 + + require-from-string@2.0.2: {} + + require-in-the-middle@5.2.0: + dependencies: + debug: 4.4.3 + module-details-from-path: 1.0.4 + resolve: 1.22.10 + transitivePeerDependencies: + - supports-color + + reselect@5.1.1: {} + + resolve@1.22.10: + dependencies: + is-core-module: 2.16.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + reusify@1.1.0: {} + + run-parallel@1.2.0: + dependencies: + queue-microtask: 1.2.3 + + run-series@1.1.9: {} + + safe-buffer@5.2.1: {} + + safer-buffer@2.1.2: {} + + sax@1.4.1: {} + + scheduler@0.23.2: + dependencies: + loose-envify: 1.4.0 + + semver@7.5.4: + dependencies: + lru-cache: 6.0.0 + + semver@7.7.3: {} + + serve-handler@6.1.6: + dependencies: + bytes: 3.0.0 + content-disposition: 0.5.2 + mime-types: 2.1.18 + minimatch: 3.1.2 + path-is-inside: 1.0.2 + path-to-regexp: 3.3.0 + range-parser: 1.2.0 + + serve@14.2.5: + dependencies: + '@zeit/schemas': 2.36.0 + ajv: 8.12.0 + arg: 5.0.2 + boxen: 7.0.0 + chalk: 5.0.1 + chalk-template: 0.4.0 + clipboardy: 3.0.0 + compression: 1.8.1 + is-port-reachable: 4.0.0 + serve-handler: 6.1.6 + update-check: 1.5.4 + transitivePeerDependencies: + - supports-color + + sharp@0.33.5: + dependencies: + color: 4.2.3 + detect-libc: 2.1.2 + semver: 7.7.3 + optionalDependencies: + '@img/sharp-darwin-arm64': 0.33.5 + '@img/sharp-darwin-x64': 0.33.5 + '@img/sharp-libvips-darwin-arm64': 1.0.4 + '@img/sharp-libvips-darwin-x64': 1.0.4 + '@img/sharp-libvips-linux-arm': 1.0.5 + '@img/sharp-libvips-linux-arm64': 1.0.4 + '@img/sharp-libvips-linux-s390x': 1.0.4 + '@img/sharp-libvips-linux-x64': 1.0.4 + '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 + '@img/sharp-libvips-linuxmusl-x64': 1.0.4 + '@img/sharp-linux-arm': 0.33.5 + '@img/sharp-linux-arm64': 0.33.5 + '@img/sharp-linux-s390x': 0.33.5 + '@img/sharp-linux-x64': 0.33.5 + '@img/sharp-linuxmusl-arm64': 0.33.5 + '@img/sharp-linuxmusl-x64': 0.33.5 + '@img/sharp-wasm32': 0.33.5 + '@img/sharp-win32-ia32': 0.33.5 + '@img/sharp-win32-x64': 0.33.5 + + shebang-command@2.0.0: + dependencies: + shebang-regex: 3.0.0 + + shebang-regex@3.0.0: {} + + shimmer@1.2.1: {} + + signal-exit@3.0.7: {} + + signal-exit@4.1.0: {} + + simple-swizzle@0.2.4: + dependencies: + is-arrayish: 0.3.4 + + smart-buffer@4.2.0: {} + + socks-proxy-agent@8.0.5: + dependencies: + agent-base: 7.1.4 + debug: 4.4.3 + socks: 2.8.7 + transitivePeerDependencies: + - supports-color + + socks@2.8.7: + dependencies: + ip-address: 10.0.1 + smart-buffer: 4.2.0 + + source-map-js@1.2.1: {} + + source-map-support@0.5.21: + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + + source-map@0.6.1: {} + + sprintf-js@1.1.2: {} + + streamsearch@1.1.0: {} + + string-width@4.2.3: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + string-width@5.1.2: + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.1.2 + + strip-ansi@6.0.1: + dependencies: + ansi-regex: 5.0.1 + + strip-ansi@7.1.2: + dependencies: + ansi-regex: 6.2.2 + + strip-final-newline@2.0.0: {} + + strip-json-comments@2.0.1: {} + + styled-jsx@5.1.1(react@18.3.1): + dependencies: + client-only: 0.0.1 + react: 18.3.1 + + sucrase@3.35.0: + dependencies: + '@jridgewell/gen-mapping': 0.3.13 + commander: 4.1.1 + glob: 10.4.5 + lines-and-columns: 1.2.4 + mz: 2.7.0 + pirates: 4.0.7 + ts-interface-checker: 0.1.13 + + supercluster@8.0.1: + dependencies: + kdbush: 4.0.2 + + supports-color@7.2.0: + dependencies: + has-flag: 4.0.0 + + supports-preserve-symlinks-flag@1.0.0: {} + + swiper@11.2.10: {} + + systeminformation@5.27.11: + optional: true + + tailwindcss@3.4.18: + dependencies: + '@alloc/quick-lru': 5.2.0 + arg: 5.0.2 + chokidar: 3.6.0 + didyoumean: 1.2.2 + dlv: 1.1.3 + fast-glob: 3.3.3 + glob-parent: 6.0.2 + is-glob: 4.0.3 + jiti: 1.21.7 + lilconfig: 3.1.3 + micromatch: 4.0.8 + normalize-path: 3.0.0 + object-hash: 3.0.0 + picocolors: 1.1.1 + postcss: 8.5.6 + postcss-import: 15.1.0(postcss@8.5.6) + postcss-js: 4.1.0(postcss@8.5.6) + postcss-load-config: 6.0.1(jiti@1.21.7)(postcss@8.5.6) + postcss-nested: 6.2.0(postcss@8.5.6) + postcss-selector-parser: 6.1.2 + resolve: 1.22.10 + sucrase: 3.35.0 + transitivePeerDependencies: + - tsx + - yaml + + thenify-all@1.6.0: + dependencies: + thenify: 3.3.1 + + thenify@3.3.1: + dependencies: + any-promise: 1.3.0 + + to-regex-range@5.0.1: + dependencies: + is-number: 7.0.0 + + ts-interface-checker@0.1.13: {} + + tslib@1.9.3: {} + + tslib@2.8.1: {} + + tv4@1.3.0: {} + + tx2@1.0.5: + dependencies: + json-stringify-safe: 5.0.1 + optional: true + + type-fest@2.19.0: {} + + typescript@5.9.3: {} + + undici-types@6.21.0: {} + + update-browserslist-db@1.1.3(browserslist@4.26.3): + dependencies: + browserslist: 4.26.3 + escalade: 3.2.0 + picocolors: 1.1.1 + + update-check@1.5.4: + dependencies: + registry-auth-token: 3.3.2 + registry-url: 3.1.0 + + uri-js@4.4.1: + dependencies: + punycode: 2.3.1 + + use-debounce@10.0.6(react@18.3.1): + dependencies: + react: 18.3.1 + + use-sync-external-store@1.6.0(react@18.3.1): + dependencies: + react: 18.3.1 + + usehooks-ts@3.1.1(react@18.3.1): + dependencies: + lodash.debounce: 4.0.8 + react: 18.3.1 + + util-deprecate@1.0.2: {} + + uuid@9.0.1: {} + + vary@1.1.2: {} + + vizion@2.2.1: + dependencies: + async: 2.6.4 + git-node-fs: 1.0.0(js-git@0.7.8) + ini: 1.3.8 + js-git: 0.7.8 + + which@2.0.2: + dependencies: + isexe: 2.0.0 + + widest-line@4.0.1: + dependencies: + string-width: 5.1.2 + + wrap-ansi@7.0.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + wrap-ansi@8.1.0: + dependencies: + ansi-styles: 6.2.3 + string-width: 5.1.2 + strip-ansi: 7.1.2 + + ws@7.5.10: {} + + yallist@4.0.0: {} + + zod@3.25.76: {} diff --git a/postcss.config.js b/postcss.config.js new file mode 100644 index 0000000..12a703d --- /dev/null +++ b/postcss.config.js @@ -0,0 +1,6 @@ +module.exports = { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +}; diff --git a/public/.well-known/pki-validation/D2F512D8EBB31978C4874F24BE06C0C4.txt b/public/.well-known/pki-validation/D2F512D8EBB31978C4874F24BE06C0C4.txt new file mode 100644 index 0000000..02f1b34 --- /dev/null +++ b/public/.well-known/pki-validation/D2F512D8EBB31978C4874F24BE06C0C4.txt @@ -0,0 +1,3 @@ +E39636BA666F04A450B8FC56D9A05A3F2EFC6D3E1ED62E834CE055A20630AB45 +comodoca.com +yWg9G5g4S4 diff --git a/public/assets/icons/calendar.svg b/public/assets/icons/calendar.svg new file mode 100644 index 0000000..548b542 --- /dev/null +++ b/public/assets/icons/calendar.svg @@ -0,0 +1,3 @@ +<svg width="19" height="20" viewBox="0 0 19 20" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M14 20V17H11V15H14V12H16V15H19V17H16V20H14ZM2 18C1.45 18 0.979333 17.8043 0.588 17.413C0.196667 17.0217 0.000666667 16.5507 0 16V4C0 3.45 0.196 2.97933 0.588 2.588C0.98 2.19667 1.45067 2.00067 2 2H3V0H5V2H11V0H13V2H14C14.55 2 15.021 2.196 15.413 2.588C15.805 2.98 16.0007 3.45067 16 4V10.1C15.6667 10.05 15.3333 10.025 15 10.025C14.6667 10.025 14.3333 10.05 14 10.1V8H2V16H9C9 16.3333 9.025 16.6667 9.075 17C9.125 17.3333 9.21667 17.6667 9.35 18H2ZM2 6H14V4H2V6Z" fill="#8D9399"/> +</svg> diff --git a/public/assets/icons/check.svg b/public/assets/icons/check.svg new file mode 100644 index 0000000..4abb373 --- /dev/null +++ b/public/assets/icons/check.svg @@ -0,0 +1,3 @@ +<svg width="10" height="9" viewBox="0 0 10 9" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M1 4L4.5 7.5L9 0.5" stroke="#059784" stroke-width="1.5"/> +</svg> diff --git a/public/assets/icons/contact-arrow.svg b/public/assets/icons/contact-arrow.svg new file mode 100644 index 0000000..4c3dce1 --- /dev/null +++ b/public/assets/icons/contact-arrow.svg @@ -0,0 +1,3 @@ +<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M15.9997 12L10.6663 17.3333L21.333 17.3333L15.9997 12ZM15.9997 2.66665C17.8441 2.66665 19.5774 3.01687 21.1997 3.71731C22.8219 4.41776 24.233 5.36753 25.433 6.56665C26.633 7.76665 27.5828 9.17776 28.2823 10.8C28.9819 12.4222 29.3321 14.1555 29.333 16C29.333 17.8444 28.9828 19.5778 28.2823 21.2C27.5819 22.8222 26.6321 24.2333 25.433 25.4333C24.233 26.6333 22.8219 27.5831 21.1997 28.2826C19.5775 28.9822 17.8441 29.3324 15.9997 29.3333C14.1552 29.3333 12.4219 28.9831 10.7997 28.2826C9.17745 27.5822 7.76634 26.6324 6.56634 25.4333C5.36634 24.2333 4.41612 22.8222 3.71567 21.2C3.01523 19.5778 2.66545 17.8444 2.66634 16C2.66634 14.1555 3.01656 12.4222 3.71701 10.8C4.41745 9.17776 5.36723 7.76665 6.56634 6.56665C7.76634 5.36665 9.17745 4.41643 10.7997 3.71598C12.4219 3.01554 14.1552 2.66576 15.9997 2.66665ZM15.9997 5.33331C13.0219 5.33331 10.4997 6.36665 8.43301 8.43332C6.36634 10.5 5.33301 13.0222 5.33301 16C5.33301 18.9778 6.36634 21.5 8.43301 23.5666C10.4997 25.6333 13.0219 26.6666 15.9997 26.6666C18.9775 26.6666 21.4997 25.6333 23.5663 23.5666C25.633 21.5 26.6663 18.9778 26.6663 16C26.6663 13.0222 25.633 10.5 23.5663 8.43331C21.4997 6.36665 18.9775 5.33331 15.9997 5.33331Z" fill="#059784"/> +</svg> diff --git a/public/assets/icons/contacts/address.svg b/public/assets/icons/contacts/address.svg new file mode 100644 index 0000000..01add87 --- /dev/null +++ b/public/assets/icons/contacts/address.svg @@ -0,0 +1,9 @@ +<svg width="64" height="64" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<rect width="64" height="64" fill="url(#pattern0_2329_13485)"/> +<defs> +<pattern id="pattern0_2329_13485" patternContentUnits="objectBoundingBox" width="1" height="1"> +<use xlink:href="#image0_2329_13485" transform="scale(0.00195312)"/> +</pattern> +<image id="image0_2329_13485" width="512" height="512" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAMAAADDpiTIAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAwBQTFRFAAAABZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeE1uiP/gAAAQB0Uk5TAAMVJzlLXnCCiI2Zn6oMLk1siqjG5v7/5QYrVYDV/buRZjwLBTNrotkUVMT2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"/> +</defs> +</svg> diff --git a/public/assets/icons/contacts/email-phone.svg b/public/assets/icons/contacts/email-phone.svg new file mode 100644 index 0000000..2cdc517 --- /dev/null +++ b/public/assets/icons/contacts/email-phone.svg @@ -0,0 +1,3 @@ +<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path fill-rule="evenodd" clip-rule="evenodd" d="M5 5C4.73478 5 4.48043 5.10536 4.29289 5.29289C4.11141 5.47438 4.00688 5.71844 4.00033 5.97437C4.23032 9.6183 5.78159 13.0537 8.36394 15.6361C10.9463 18.2184 14.3817 19.7697 18.0256 19.9997C18.2816 19.9931 18.5256 19.8886 18.7071 19.7071C18.8946 19.5196 19 19.2652 19 19V15.677L15.4193 14.2448L14.3575 16.0145C14.0897 16.4608 13.5244 16.6271 13.0577 16.3969C10.6887 15.2285 8.77146 13.3113 7.60314 10.9423C7.37294 10.4756 7.53924 9.91027 7.9855 9.64251L9.75523 8.58067L8.32297 5H5ZM2.87868 3.87868C3.44129 3.31607 4.20435 3 5 3H9C9.4089 3 9.77661 3.24895 9.92848 3.62861L11.9285 8.62861C12.1108 9.08432 11.9354 9.60497 11.5145 9.85749L9.8405 10.8619C10.6644 12.2055 11.7945 13.3356 13.1381 14.1595L14.1425 12.4855C14.395 12.0646 14.9157 11.8892 15.3714 12.0715L20.3714 14.0715C20.751 14.2234 21 14.5911 21 15V19C21 19.7957 20.6839 20.5587 20.1213 21.1213C19.5587 21.6839 18.7957 22 18 22C17.9798 22 17.9595 21.9994 17.9393 21.9982C13.7948 21.7463 9.88576 19.9863 6.94972 17.0503C4.01369 14.1142 2.25371 10.2052 2.00184 6.06066C2.00061 6.04046 2 6.02023 2 6C2 5.20435 2.31607 4.44129 2.87868 3.87868Z" fill="#2C57A7"/> +</svg> diff --git a/public/assets/icons/contacts/email.svg b/public/assets/icons/contacts/email.svg new file mode 100644 index 0000000..f07e96f --- /dev/null +++ b/public/assets/icons/contacts/email.svg @@ -0,0 +1,9 @@ +<svg width="64" height="64" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<rect width="64" height="64" fill="url(#pattern0_686_14305)"/> +<defs> +<pattern id="pattern0_686_14305" patternContentUnits="objectBoundingBox" width="1" height="1"> +<use xlink:href="#image0_686_14305" transform="scale(0.00195312)"/> +</pattern> +<image id="image0_686_14305" width="512" height="512" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAMAAADDpiTIAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAwBQTFRFAAAALFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenYvtO5QAAAQB0Uk5TAA2iqhAy2v/fOAFv+PuAAhS0uxhB5elIBPz+kQUew8ojUe7xWQgLKdHXL171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"/> +</defs> +</svg> diff --git a/public/assets/icons/contacts/fax.svg b/public/assets/icons/contacts/fax.svg new file mode 100644 index 0000000..586dfa9 --- /dev/null +++ b/public/assets/icons/contacts/fax.svg @@ -0,0 +1,9 @@ +<svg width="64" height="64" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<rect width="64" height="64" fill="url(#pattern0_686_14300)"/> +<defs> +<pattern id="pattern0_686_14300" patternContentUnits="objectBoundingBox" width="1" height="1"> +<use xlink:href="#image0_686_14300" transform="scale(0.00195312)"/> +</pattern> +<image id="image0_686_14300" width="512" height="512" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAMAAADDpiTIAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAiVQTFRFAAAALFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenLFenrWmyawAAALd0Uk5TADz//F1eX/3+Z2hpamtsbW5veHl6xxFldcNae3x9fn+IiYqLjI3C36Ue3I4djwHblxyYGNaZ1ZoXApvUnBbTnZ7SFZ+nAwTRzKjLqRDKqqvJBQ+syK1V8rQHtbYItyEzpkK76d3xlq6vsLGys7i5unO8vb6/wMFTxMXGzc7P0HbXV5XY2dreWT0pghRGI+Dh4uPk5UR0L1QfZObn6OrrTYQ2JHES7O3u7/BPhzdi8/T19vf4+fr7GWLw/wAADYZJREFUeJzt3WmsHlUZwPEz95YLfHILZXFFDQYlioKGqCVCTBBt2VFKBVHZBAXZBBVwYVNUdkQKBaJStlCURRGiCZGEL4QYiAkJ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"/> +</defs> +</svg> diff --git a/public/assets/icons/contacts/location.svg b/public/assets/icons/contacts/location.svg new file mode 100644 index 0000000..62b6024 --- /dev/null +++ b/public/assets/icons/contacts/location.svg @@ -0,0 +1,4 @@ +<svg width="65" height="64" viewBox="0 0 65 64" fill="none" xmlns="http://www.w3.org/2000/svg"> +<rect x="0.333374" width="64" height="64" rx="2" fill="#C7D0E1"/> +<path fillRule="evenodd" clipRule="evenodd" d="M32.0004 16.0005C29.2315 16.0005 26.5247 16.8216 24.2225 18.3599C21.9202 19.8982 20.1258 22.0846 19.0661 24.6428C18.0065 27.2009 17.7292 30.0158 18.2693 32.7315C18.8094 35.4471 20.1427 37.9416 22.1004 39.8995C22.1004 39.8995 22.1005 39.8996 22.1004 39.8995L30.5879 48.385C30.9629 48.7596 31.4713 48.9701 32.0014 48.9701C32.5315 48.9701 33.0399 48.7596 33.4149 48.385L41.9001 39.8997C41.9001 39.8997 41.9001 39.8997 41.9001 39.8997C43.858 37.9418 45.1913 35.4472 45.7314 32.7315C46.2716 30.0158 45.9943 27.2009 44.9346 24.6428C43.875 22.0846 42.0806 19.8982 39.7783 18.3599C37.476 16.8216 34.7693 16.0005 32.0004 16.0005ZM22.0002 15.034C24.9603 13.0561 28.4403 12.0005 32.0004 12.0005C35.5604 12.0005 39.0405 13.0561 42.0005 15.034C44.9606 17.0118 47.2677 19.823 48.6301 23.112C49.9925 26.401 50.349 30.0201 49.6546 33.5118C48.9601 37.0034 47.2459 40.2107 44.7286 42.7281L36.2426 51.2141C35.1175 52.338 33.5916 52.9701 32.0014 52.9701C30.4111 52.9701 28.8859 52.3387 27.7609 51.2148L19.2723 42.7283C16.7551 40.2109 15.0406 37.0034 14.3462 33.5118C13.6517 30.0201 14.0082 26.401 15.3706 23.112C16.733 19.823 19.0401 17.0118 22.0002 15.034ZM26.3435 24.3431C27.8438 22.8429 29.8786 22 32.0004 22C34.1221 22 36.1569 22.8429 37.6572 24.3431C39.1575 25.8434 40.0004 27.8783 40.0004 30C40.0004 32.1217 39.1575 34.1566 37.6572 35.6569C36.1569 37.1571 34.1221 38 32.0004 38C29.8786 38 27.8438 37.1571 26.3435 35.6569C24.8432 34.1566 24.0004 32.1217 24.0004 30C24.0004 27.8783 24.8432 25.8434 26.3435 24.3431ZM32.0004 26C30.9395 26 29.9221 26.4214 29.1719 27.1716C28.4218 27.9217 28.0004 28.9391 28.0004 30C28.0004 31.0609 28.4218 32.0783 29.1719 32.8284C29.9221 33.5786 30.9395 34 32.0004 34C33.0612 34 34.0786 33.5786 34.8288 32.8284C35.5789 32.0783 36.0004 31.0609 36.0004 30C36.0004 28.9391 35.5789 27.9217 34.8288 27.1716C34.0786 26.4214 33.0612 26 32.0004 26Z" fill="#1D2637"/> +</svg> diff --git a/public/assets/icons/contacts/mail.svg b/public/assets/icons/contacts/mail.svg new file mode 100644 index 0000000..a471b1b --- /dev/null +++ b/public/assets/icons/contacts/mail.svg @@ -0,0 +1,9 @@ +<svg width="64" height="64" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<rect width="64" height="64" fill="url(#pattern0_2329_10886)"/> +<defs> +<pattern id="pattern0_2329_10886" patternContentUnits="objectBoundingBox" width="1" height="1"> +<use xlink:href="#image0_2329_10886" transform="scale(0.00195312)"/> +</pattern> +<image id="image0_2329_10886" width="512" height="512" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAMAAADDpiTIAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAwBQTFRFAAAABZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeE1uiP/gAAAQB0Uk5TAAQZLkVVZnaGlqaxu8bM297u+v/aAxJMaqK90+n+vIVpAR1BZYmt0PTzrIhk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"/> +</defs> +</svg> diff --git a/public/assets/icons/contacts/mobile.svg b/public/assets/icons/contacts/mobile.svg new file mode 100644 index 0000000..f3fbae6 --- /dev/null +++ b/public/assets/icons/contacts/mobile.svg @@ -0,0 +1,4 @@ +<svg width="65" height="64" viewBox="0 0 65 64" fill="none" xmlns="http://www.w3.org/2000/svg"> +<rect x="0.666626" width="64" height="64" rx="2" fill="#C7D0E1"/> +<path fillRule="evenodd" clipRule="evenodd" d="M24.6666 16C24.1362 16 23.6275 16.2107 23.2524 16.5858C22.8773 16.9609 22.6666 17.4696 22.6666 18V46C22.6666 46.5304 22.8773 47.0391 23.2524 47.4142C23.6275 47.7893 24.1362 48 24.6666 48H40.6666C41.1971 48 41.7058 47.7893 42.0808 47.4142C42.4559 47.0391 42.6666 46.5304 42.6666 46V18C42.6666 17.4696 42.4559 16.9609 42.0808 16.5858C41.7058 16.2107 41.1971 16 40.6666 16H36.6666C36.6666 17.1046 35.7712 18 34.6666 18H30.6666C29.5621 18 28.6666 17.1046 28.6666 16H24.6666ZM20.424 13.7574C21.5492 12.6321 23.0753 12 24.6666 12H40.6666C42.2579 12 43.784 12.6321 44.9093 13.7574C46.0345 14.8826 46.6666 16.4087 46.6666 18V46C46.6666 47.5913 46.0345 49.1174 44.9093 50.2426C43.784 51.3679 42.2579 52 40.6666 52H24.6666C23.0753 52 21.5492 51.3679 20.424 50.2426C19.2988 49.1174 18.6666 47.5913 18.6666 46V18C18.6666 16.4087 19.2988 14.8826 20.424 13.7574ZM32.6666 40C33.7712 40 34.6666 40.8954 34.6666 42V42.02C34.6666 43.1246 33.7712 44.02 32.6666 44.02C31.5621 44.02 30.6666 43.1246 30.6666 42.02V42C30.6666 40.8954 31.5621 40 32.6666 40Z" fill="#1D2637"/> +</svg> diff --git a/public/assets/icons/contacts/phone.svg b/public/assets/icons/contacts/phone.svg new file mode 100644 index 0000000..720d3d0 --- /dev/null +++ b/public/assets/icons/contacts/phone.svg @@ -0,0 +1,9 @@ +<svg width="64" height="64" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<rect width="64" height="64" fill="url(#pattern0_2329_7999)"/> +<defs> +<pattern id="pattern0_2329_7999" patternContentUnits="objectBoundingBox" width="1" height="1"> +<use xlink:href="#image0_2329_7999" transform="scale(0.00195312)"/> +</pattern> +<image id="image0_2329_7999" width="512" height="512" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAMAAADDpiTIAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAwBQTFRFAAAABZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeEBZeE1uiP/gAAAQB0Uk5TAAQrW4uvw9fr+u7juZl4VBokcr73/9yfXxEYfPhVCT6o+e2AEzTzjRchp/7w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"/> +</defs> +</svg> diff --git a/public/assets/icons/drop-icon.svg b/public/assets/icons/drop-icon.svg new file mode 100644 index 0000000..14b4852 --- /dev/null +++ b/public/assets/icons/drop-icon.svg @@ -0,0 +1,3 @@ +<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M7.00065 8.74967L4.08398 5.83301H9.91732L7.00065 8.74967Z" fill="#0B0F12"/> +</svg> diff --git a/public/assets/icons/facebook.svg b/public/assets/icons/facebook.svg new file mode 100644 index 0000000..b811e64 --- /dev/null +++ b/public/assets/icons/facebook.svg @@ -0,0 +1,3 @@ +<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M7.66464 17.9167H10.998V11.2417H14.0013L14.3313 7.925H10.998V6.25C10.998 6.02899 11.0858 5.81703 11.242 5.66075C11.3983 5.50446 11.6103 5.41667 11.8313 5.41667H14.3313V2.08333H11.8313C10.7262 2.08333 9.66643 2.52232 8.88502 3.30372C8.10362 4.08512 7.66464 5.14493 7.66464 6.25V7.925H5.99797L5.66797 11.2417H7.66464V17.9167Z" fill="white"/> +</svg> diff --git a/public/assets/icons/faq/add.svg b/public/assets/icons/faq/add.svg new file mode 100644 index 0000000..91ee7bf --- /dev/null +++ b/public/assets/icons/faq/add.svg @@ -0,0 +1,5 @@ +<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M7 13H11H13H17V11H13H11H7V13ZM12 22C10.6167 22 9.31667 21.7373 8.1 21.212C6.88333 20.6867 5.825 19.9743 4.925 19.075C4.025 18.175 3.31267 17.1167 2.788 15.9C2.26333 14.6833 2.00067 13.3833 2 12C2 10.6167 2.26267 9.31667 2.788 8.1C3.31333 6.88333 4.02567 5.825 4.925 4.925C5.825 4.025 6.88333 3.31267 8.1 2.788C9.31667 2.26333 10.6167 2.00067 12 2C13.3833 2 14.6833 2.26267 15.9 2.788C17.1167 3.31333 18.175 4.02567 19.075 4.925C19.975 5.825 20.6877 6.88333 21.213 8.1C21.7383 9.31667 22.0007 10.6167 22 12C22 13.3833 21.7373 14.6833 21.212 15.9C20.6867 17.1167 19.9743 18.175 19.075 19.075C18.175 19.975 17.1167 20.6877 15.9 21.213C14.6833 21.7383 13.3833 22.0007 12 22ZM12 20C14.2333 20 16.125 19.225 17.675 17.675C19.225 16.125 20 14.2333 20 12C20 9.76667 19.225 7.875 17.675 6.325C16.125 4.775 14.2333 4 12 4C9.76667 4 7.875 4.775 6.325 6.325C4.775 7.875 4 9.76667 4 12C4 14.2333 4.775 16.125 6.325 17.675C7.875 19.225 9.76667 20 12 20Z" fill="#059784"/> +<path d="M11 11H13V7H11V11Z" fill="#059784"/> +<path d="M13 13H11V17H13V13Z" fill="#059784"/> +</svg> diff --git a/public/assets/icons/faq/minus.svg b/public/assets/icons/faq/minus.svg new file mode 100644 index 0000000..391169e --- /dev/null +++ b/public/assets/icons/faq/minus.svg @@ -0,0 +1,3 @@ +<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M7 13H17V11H7V13ZM12 22C10.6167 22 9.31667 21.7373 8.1 21.212C6.88333 20.6867 5.825 19.9743 4.925 19.075C4.025 18.175 3.31267 17.1167 2.788 15.9C2.26333 14.6833 2.00067 13.3833 2 12C2 10.6167 2.26267 9.31667 2.788 8.1C3.31333 6.88333 4.02567 5.825 4.925 4.925C5.825 4.025 6.88333 3.31267 8.1 2.788C9.31667 2.26333 10.6167 2.00067 12 2C13.3833 2 14.6833 2.26267 15.9 2.788C17.1167 3.31333 18.175 4.02567 19.075 4.925C19.975 5.825 20.6877 6.88333 21.213 8.1C21.7383 9.31667 22.0007 10.6167 22 12C22 13.3833 21.7373 14.6833 21.212 15.9C20.6867 17.1167 19.9743 18.175 19.075 19.075C18.175 19.975 17.1167 20.6877 15.9 21.213C14.6833 21.7383 13.3833 22.0007 12 22ZM12 20C14.2333 20 16.125 19.225 17.675 17.675C19.225 16.125 20 14.2333 20 12C20 9.76667 19.225 7.875 17.675 6.325C16.125 4.775 14.2333 4 12 4C9.76667 4 7.875 4.775 6.325 6.325C4.775 7.875 4 9.76667 4 12C4 14.2333 4.775 16.125 6.325 17.675C7.875 19.225 9.76667 20 12 20Z" fill="#059784"/> +</svg> diff --git a/public/assets/icons/favicon.ico b/public/assets/icons/favicon.ico new file mode 100644 index 0000000..4343486 --- /dev/null +++ b/public/assets/icons/favicon.ico @@ -0,0 +1,4 @@ +<svg width="197" height="30" viewBox="0 0 197 30" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M16.8 0.599998V4.12H10.496V23H6.816V4.12H0.48V0.599998H16.8ZM27.5188 7H30.9748V23H27.5188V20.952C26.4734 22.5947 24.8201 23.416 22.5588 23.416C20.7241 23.416 19.2414 22.8293 18.1108 21.656C16.9801 20.4827 16.4148 18.872 16.4148 16.824V7H19.8708V16.472C19.8708 17.6667 20.1908 18.584 20.8308 19.224C21.4708 19.864 22.3454 20.184 23.4548 20.184C24.6708 20.184 25.6521 19.8107 26.3988 19.064C27.1454 18.296 27.5188 17.1333 27.5188 15.576V7ZM38.472 9.688C39.3467 7.704 40.9893 6.712 43.4 6.712V10.456C42.0773 10.3707 40.9253 10.6907 39.944 11.416C38.9627 12.12 38.472 13.2933 38.472 14.936V23H35.016V7H38.472V9.688ZM60.0975 23H55.9695L49.4095 15.608V23H45.9535V0.599998H49.4095V14.072L55.6175 7H59.8415L52.8015 14.84L60.0975 23ZM79.8943 6.584C81.7076 6.584 83.1689 7.17067 84.2783 8.344C85.3876 9.51733 85.9423 11.096 85.9423 13.08V23H82.4863V13.304C82.4863 12.1947 82.2089 11.3413 81.6543 10.744C81.0996 10.1253 80.3423 9.816 79.3823 9.816C78.3156 9.816 77.4623 10.168 76.8223 10.872C76.2036 11.576 75.8943 12.632 75.8943 14.04V23H72.4383V13.304C72.4383 12.1947 72.1716 11.3413 71.6383 10.744C71.1263 10.1253 70.3903 9.816 69.4303 9.816C68.3849 9.816 67.5316 10.1787 66.8703 10.904C66.2089 11.608 65.8783 12.6533 65.8783 14.04V23H62.4223V7H65.8783V8.92C66.9023 7.36267 68.4276 6.584 70.4543 6.584C72.5023 6.584 74.0169 7.42667 74.9983 9.112C76.0649 7.42667 77.6969 6.584 79.8943 6.584ZM92.361 16.472C92.617 17.688 93.2037 18.6267 94.121 19.288C95.0383 19.928 96.1583 20.248 97.481 20.248C99.3157 20.248 100.692 19.5867 101.609 18.264L104.457 19.928C102.878 22.2533 100.542 23.416 97.449 23.416C94.8463 23.416 92.745 22.6267 91.145 21.048C89.545 19.448 88.745 17.432 88.745 15C88.745 12.6107 89.5343 10.616 91.113 9.016C92.6917 7.39467 94.7183 6.584 97.193 6.584C99.5397 6.584 101.46 7.40533 102.953 9.048C104.468 10.6907 105.225 12.6853 105.225 15.032C105.225 15.3947 105.182 15.8747 105.097 16.472H92.361ZM92.329 13.656H101.737C101.502 12.3547 100.958 11.3733 100.105 10.712C99.273 10.0507 98.2917 9.72 97.161 9.72C95.881 9.72 94.8143 10.072 93.961 10.776C93.1077 11.48 92.5637 12.44 92.329 13.656ZM116.682 6.584C118.517 6.584 119.999 7.17067 121.13 8.344C122.261 9.51733 122.826 11.128 122.826 13.176V23H119.37V13.528C119.37 12.3333 119.05 11.416 118.41 10.776C117.77 10.136 116.895 9.816 115.786 9.816C114.57 9.816 113.589 10.2 112.842 10.968C112.095 11.7147 111.722 12.8667 111.722 14.424V23H108.266V7H111.722V9.048C112.767 7.40533 114.421 6.584 116.682 6.584Z" fill="#059784"/> +<path d="M130.451 19.48H140.371V23H126.771V0.599998H140.211V4.12H130.451V9.944H139.411V13.432H130.451V19.48ZM157.82 23H153.82L149.852 17.528L145.852 23H141.82L147.836 14.776L142.14 7H146.14L149.82 12.056L153.5 7H157.532L151.836 14.808L157.82 23ZM169.197 6.584C171.394 6.584 173.272 7.40533 174.829 9.048C176.386 10.6693 177.165 12.6533 177.165 15C177.165 17.368 176.386 19.3627 174.829 20.984C173.272 22.6053 171.394 23.416 169.197 23.416C166.765 23.416 164.898 22.52 163.597 20.728V29.4H160.141V7H163.597V9.304C164.898 7.49067 166.765 6.584 169.197 6.584ZM165.037 18.68C165.997 19.64 167.202 20.12 168.653 20.12C170.104 20.12 171.309 19.64 172.269 18.68C173.229 17.6987 173.709 16.472 173.709 15C173.709 13.528 173.229 12.312 172.269 11.352C171.309 10.3707 170.104 9.88 168.653 9.88C167.202 9.88 165.997 10.3707 165.037 11.352C164.077 12.312 163.597 13.528 163.597 15C163.597 16.472 164.077 17.6987 165.037 18.68ZM187.849 23.416C185.503 23.416 183.508 22.6053 181.865 20.984C180.223 19.3627 179.401 17.368 179.401 15C179.401 12.632 180.223 10.6373 181.865 9.016C183.508 7.39467 185.503 6.584 187.849 6.584C190.217 6.584 192.212 7.39467 193.833 9.016C195.476 10.6373 196.297 12.632 196.297 15C196.297 17.368 195.476 19.3627 193.833 20.984C192.212 22.6053 190.217 23.416 187.849 23.416ZM184.297 18.616C185.257 19.576 186.441 20.056 187.849 20.056C189.257 20.056 190.441 19.576 191.401 18.616C192.361 17.656 192.841 16.4507 192.841 15C192.841 13.5493 192.361 12.344 191.401 11.384C190.441 10.424 189.257 9.944 187.849 9.944C186.441 9.944 185.257 10.424 184.297 11.384C183.337 12.344 182.857 13.5493 182.857 15C182.857 16.4507 183.337 17.656 184.297 18.616Z" fill="#BC213A"/> +</svg> diff --git a/public/assets/icons/footer/logo-footer.svg b/public/assets/icons/footer/logo-footer.svg new file mode 100644 index 0000000..50c14cd --- /dev/null +++ b/public/assets/icons/footer/logo-footer.svg @@ -0,0 +1,3 @@ +<svg width="243" height="35" viewBox="0 0 243 35" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M19.95 0.399998V4.58H12.464V27H8.094V4.58H0.57V0.399998H19.95ZM32.6785 8H36.7825V27H32.6785V24.568C31.4372 26.5187 29.4738 27.494 26.7885 27.494C24.6098 27.494 22.8492 26.7973 21.5065 25.404C20.1638 24.0107 19.4925 22.098 19.4925 19.666V8H23.5965V19.248C23.5965 20.6667 23.9765 21.756 24.7365 22.516C25.4965 23.276 26.5352 23.656 27.8525 23.656C29.2965 23.656 30.4618 23.2127 31.3485 22.326C32.2352 21.414 32.6785 20.0333 32.6785 18.184V8ZM45.6855 11.192C46.7242 8.836 48.6748 7.658 51.5375 7.658V12.104C49.9668 12.0027 48.5988 12.3827 47.4335 13.244C46.2682 14.08 45.6855 15.4733 45.6855 17.424V27H41.5815V8H45.6855V11.192ZM71.3658 27H66.4638L58.6738 18.222V27H54.5698V0.399998H58.6738V16.398L66.0458 8H71.0618L62.7018 17.31L71.3658 27ZM94.8744 7.506C97.0278 7.506 98.7631 8.20267 100.08 9.596C101.398 10.9893 102.056 12.864 102.056 15.22V27H97.9524V15.486C97.9524 14.1687 97.6231 13.1553 96.9644 12.446C96.3058 11.7113 95.4064 11.344 94.2664 11.344C92.9998 11.344 91.9864 11.762 91.2264 12.598C90.4918 13.434 90.1244 14.688 90.1244 16.36V27H86.0204V15.486C86.0204 14.1687 85.7038 13.1553 85.0704 12.446C84.4624 11.7113 83.5884 11.344 82.4484 11.344C81.2071 11.344 80.1938 11.7747 79.4084 12.636C78.6231 13.472 78.2304 14.7133 78.2304 16.36V27H74.1264V8H78.2304V10.28C79.4464 8.43067 81.2578 7.506 83.6644 7.506C86.0964 7.506 87.8951 8.50667 89.0604 10.508C90.3271 8.50667 92.2651 7.506 94.8744 7.506ZM109.679 19.248C109.983 20.692 110.679 21.8067 111.769 22.592C112.858 23.352 114.188 23.732 115.759 23.732C117.937 23.732 119.571 22.9467 120.661 21.376L124.043 23.352C122.168 26.1133 119.394 27.494 115.721 27.494C112.63 27.494 110.135 26.5567 108.235 24.682C106.335 22.782 105.385 20.388 105.385 17.5C105.385 14.6627 106.322 12.294 108.197 10.394C110.071 8.46867 112.478 7.506 115.417 7.506C118.203 7.506 120.483 8.48133 122.257 10.432C124.055 12.3827 124.955 14.7513 124.955 17.538C124.955 17.9687 124.904 18.5387 124.803 19.248H109.679ZM109.641 15.904H120.813C120.534 14.3587 119.888 13.1933 118.875 12.408C117.887 11.6227 116.721 11.23 115.379 11.23C113.859 11.23 112.592 11.648 111.579 12.484C110.565 13.32 109.919 14.46 109.641 15.904ZM138.56 7.506C140.739 7.506 142.499 8.20267 143.842 9.596C145.185 10.9893 145.856 12.902 145.856 15.334V27H141.752V15.752C141.752 14.3333 141.372 13.244 140.612 12.484C139.852 11.724 138.813 11.344 137.496 11.344C136.052 11.344 134.887 11.8 134 12.712C133.113 13.5987 132.67 14.9667 132.67 16.816V27H128.566V8H132.67V10.432C133.911 8.48133 135.875 7.506 138.56 7.506ZM164.411 22.82H176.191V27H160.041V0.399998H176.001V4.58H164.411V11.496H175.051V15.638H164.411V22.82ZM196.911 27H192.161L187.449 20.502L182.699 27H177.911L185.055 17.234L178.291 8H183.041L187.411 14.004L191.781 8H196.569L189.805 17.272L196.911 27ZM210.421 7.506C213.031 7.506 215.26 8.48133 217.109 10.432C218.959 12.3573 219.883 14.7133 219.883 17.5C219.883 20.312 218.959 22.6807 217.109 24.606C215.26 26.5313 213.031 27.494 210.421 27.494C207.533 27.494 205.317 26.43 203.771 24.302V34.6H199.667V8H203.771V10.736C205.317 8.58267 207.533 7.506 210.421 7.506ZM205.481 21.87C206.621 23.01 208.053 23.58 209.775 23.58C211.498 23.58 212.929 23.01 214.069 21.87C215.209 20.7047 215.779 19.248 215.779 17.5C215.779 15.752 215.209 14.308 214.069 13.168C212.929 12.0027 211.498 11.42 209.775 11.42C208.053 11.42 206.621 12.0027 205.481 13.168C204.341 14.308 203.771 15.752 203.771 17.5C203.771 19.248 204.341 20.7047 205.481 21.87ZM232.571 27.494C229.784 27.494 227.416 26.5313 225.465 24.606C223.514 22.6807 222.539 20.312 222.539 17.5C222.539 14.688 223.514 12.3193 225.465 10.394C227.416 8.46867 229.784 7.506 232.571 7.506C235.383 7.506 237.752 8.46867 239.677 10.394C241.628 12.3193 242.603 14.688 242.603 17.5C242.603 20.312 241.628 22.6807 239.677 24.606C237.752 26.5313 235.383 27.494 232.571 27.494ZM228.353 21.794C229.493 22.934 230.899 23.504 232.571 23.504C234.243 23.504 235.649 22.934 236.789 21.794C237.929 20.654 238.499 19.2227 238.499 17.5C238.499 15.7773 237.929 14.346 236.789 13.206C235.649 12.066 234.243 11.496 232.571 11.496C230.899 11.496 229.493 12.066 228.353 13.206C227.213 14.346 226.643 15.7773 226.643 17.5C226.643 19.2227 227.213 20.654 228.353 21.794Z" fill="#ECF0F3"/> +</svg> diff --git a/public/assets/icons/footer/rss.svg b/public/assets/icons/footer/rss.svg new file mode 100644 index 0000000..6d5f53b --- /dev/null +++ b/public/assets/icons/footer/rss.svg @@ -0,0 +1,4 @@ +<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> +<rect width="24" height="24" rx="12" fill="#F2F9FF"/> +<path d="M8.12002 14.4266C8.50547 14.4266 8.87513 14.5797 9.14768 14.8523C9.42024 15.1249 9.57335 15.4945 9.57335 15.88C9.57335 16.6666 8.92002 17.3333 8.12002 17.3333C7.33335 17.3333 6.66669 16.6666 6.66669 15.88C6.66669 15.4945 6.81981 15.1249 7.09236 14.8523C7.36491 14.5797 7.73457 14.4266 8.12002 14.4266ZM6.66669 6.95996C9.41787 6.95996 12.0564 8.05286 14.0017 9.99824C15.9471 11.9436 17.04 14.5821 17.04 17.3333H15.1534C15.1534 15.0825 14.2592 12.9239 12.6677 11.3323C11.0761 9.74076 8.91749 8.84663 6.66669 8.84663V6.95996ZM6.66669 10.7333C8.41712 10.7333 10.0959 11.4286 11.3336 12.6664C12.5713 13.9041 13.2667 15.5829 13.2667 17.3333H11.38C11.38 16.0832 10.8834 14.8844 9.99952 14.0005C9.1156 13.1165 7.91674 12.62 6.66669 12.62V10.7333Z" fill="#3C4F61"/> +</svg> diff --git a/public/assets/icons/footer/telegram.svg b/public/assets/icons/footer/telegram.svg new file mode 100644 index 0000000..79e3a20 --- /dev/null +++ b/public/assets/icons/footer/telegram.svg @@ -0,0 +1,11 @@ +<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> +<rect width="24" height="24" rx="12" fill="#F2F9FF"/> +<g clip-path="url(#clip0_645_888)"> +<path fill-rule="evenodd" clip-rule="evenodd" d="M17.1844 6.95331C17.3492 6.88397 17.5295 6.86006 17.7066 6.88405C17.8837 6.90805 18.0512 6.97909 18.1915 7.08977C18.3319 7.20044 18.44 7.34672 18.5047 7.51337C18.5693 7.68001 18.5881 7.86094 18.5591 8.03731L17.0471 17.2086C16.9004 18.0933 15.9297 18.6006 15.1184 18.16C14.4397 17.7913 13.4317 17.2233 12.5251 16.6306C12.0717 16.334 10.6831 15.384 10.8537 14.708C11.0004 14.13 13.3337 11.958 14.6671 10.6666C15.1904 10.1593 14.9517 9.86664 14.3337 10.3333C12.7991 11.492 10.3351 13.254 9.52042 13.75C8.80175 14.1873 8.42708 14.262 7.97908 14.1873C7.16175 14.0513 6.40375 13.8406 5.78508 13.584C4.94908 13.2373 4.98975 12.088 5.78442 11.7533L17.1844 6.95331Z" fill="#3C4F61"/> +</g> +<defs> +<clipPath id="clip0_645_888"> +<rect width="16" height="16" fill="white" transform="translate(4 4)"/> +</clipPath> +</defs> +</svg> diff --git a/public/assets/icons/footer/vk.svg b/public/assets/icons/footer/vk.svg new file mode 100644 index 0000000..902cc16 --- /dev/null +++ b/public/assets/icons/footer/vk.svg @@ -0,0 +1,4 @@ +<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> +<rect width="24" height="24" rx="12" fill="#F2F9FF"/> +<path d="M18.386 8.57005C18.4793 8.26005 18.386 8.03271 17.9446 8.03271H16.4826C16.1106 8.03271 15.9406 8.22938 15.8473 8.44538C15.8473 8.44538 15.104 10.258 14.0506 11.4334C13.7106 11.7754 13.5553 11.8834 13.37 11.8834C13.2773 11.8834 13.1426 11.7754 13.1426 11.4654V8.57005C13.1426 8.19805 13.0353 8.03271 12.7253 8.03271H10.428C10.196 8.03271 10.056 8.20471 10.056 8.36871C10.056 8.72071 10.5826 8.80205 10.6366 9.79405V11.946C10.6366 12.4174 10.552 12.5034 10.3653 12.5034C9.86998 12.5034 8.66465 10.684 7.94931 8.60138C7.80998 8.19671 7.66931 8.03338 7.29598 8.03338H5.83465C5.41665 8.03338 5.33331 8.23005 5.33331 8.44605C5.33331 8.83405 5.82865 10.754 7.64065 13.2934C8.84865 15.0274 10.5493 15.9674 12.0986 15.9674C13.0273 15.9674 13.142 15.7587 13.142 15.3987V14.088C13.142 13.6707 13.2306 13.5867 13.5246 13.5867C13.7406 13.5867 14.1126 13.696 14.98 14.5314C15.9706 15.522 16.1346 15.9667 16.6913 15.9667H18.1526C18.57 15.9667 18.7786 15.758 18.6586 15.346C18.5273 14.936 18.054 14.3394 17.426 13.6334C17.0846 13.2307 16.5746 12.7974 16.4193 12.5807C16.2026 12.3014 16.2653 12.178 16.4193 11.93C16.42 11.9307 18.2006 9.42272 18.386 8.57005Z" fill="#3C4F61"/> +</svg> diff --git a/public/assets/icons/form-drop-icon.svg b/public/assets/icons/form-drop-icon.svg new file mode 100644 index 0000000..eeacc16 --- /dev/null +++ b/public/assets/icons/form-drop-icon.svg @@ -0,0 +1,3 @@ +<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M12 15L7 10H17L12 15Z" fill="#ffffff"/> +</svg> diff --git a/public/assets/icons/header/burger-arrow.svg b/public/assets/icons/header/burger-arrow.svg new file mode 100644 index 0000000..ee971dc --- /dev/null +++ b/public/assets/icons/header/burger-arrow.svg @@ -0,0 +1,3 @@ +<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M12.6 12L8 7.4L9.4 6L15.4 12L9.4 18L8 16.6L12.6 12Z" fill="#F2F9FF"/> +</svg> diff --git a/public/assets/icons/header/burger.svg b/public/assets/icons/header/burger.svg new file mode 100644 index 0000000..94eaa44 --- /dev/null +++ b/public/assets/icons/header/burger.svg @@ -0,0 +1,3 @@ +<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path fill-rule="evenodd" clip-rule="evenodd" d="M27.6667 6.66675C27.6667 6.93196 27.5613 7.18632 27.3738 7.37386C27.1863 7.56139 26.9319 7.66675 26.6667 7.66675H5.33337C5.06816 7.66675 4.8138 7.56139 4.62627 7.37386C4.43873 7.18632 4.33337 6.93196 4.33337 6.66675C4.33337 6.40153 4.43873 6.14718 4.62627 5.95964C4.8138 5.7721 5.06816 5.66675 5.33337 5.66675H26.6667C26.9319 5.66675 27.1863 5.7721 27.3738 5.95964C27.5613 6.14718 27.6667 6.40153 27.6667 6.66675ZM27.6667 16.0001C27.6667 16.2653 27.5613 16.5197 27.3738 16.7072C27.1863 16.8947 26.9319 17.0001 26.6667 17.0001H5.33337C5.06816 17.0001 4.8138 16.8947 4.62627 16.7072C4.43873 16.5197 4.33337 16.2653 4.33337 16.0001C4.33337 15.7349 4.43873 15.4805 4.62627 15.293C4.8138 15.1054 5.06816 15.0001 5.33337 15.0001H26.6667C26.9319 15.0001 27.1863 15.1054 27.3738 15.293C27.5613 15.4805 27.6667 15.7349 27.6667 16.0001ZM27.6667 25.3334C27.6667 25.5986 27.5613 25.853 27.3738 26.0405C27.1863 26.2281 26.9319 26.3334 26.6667 26.3334H5.33337C5.06816 26.3334 4.8138 26.2281 4.62627 26.0405C4.43873 25.853 4.33337 25.5986 4.33337 25.3334C4.33337 25.0682 4.43873 24.8138 4.62627 24.6263C4.8138 24.4388 5.06816 24.3334 5.33337 24.3334H26.6667C26.9319 24.3334 27.1863 24.4388 27.3738 24.6263C27.5613 24.8138 27.6667 25.0682 27.6667 25.3334Z" fill="#059784"/> +</svg> diff --git a/public/assets/icons/header/en.svg b/public/assets/icons/header/en.svg new file mode 100644 index 0000000..1fa68ef --- /dev/null +++ b/public/assets/icons/header/en.svg @@ -0,0 +1,13 @@ +<svg width="32" height="24" viewBox="0 0 32 24" fill="none" xmlns="http://www.w3.org/2000/svg"> +<g clip-path="url(#clip0_3028_3248)"> +<path d="M0 3.74677V7.38462H5.00267L0 3.74677ZM4.14578 24H11.5556V18.612L4.14578 24ZM20.4444 18.6129V24H27.8533L20.4444 18.6129ZM0 16.6154V20.2532L5.00444 16.6154H0ZM27.8551 0H20.4444V5.388L27.8551 0ZM32 20.2542V16.6154H26.9947L32 20.2542ZM32 7.38462V3.74677L26.9964 7.38462H32ZM11.5556 0H4.14578L11.5556 5.388V0Z" fill="#00247D"/> +<path d="M22.3469 16.6154L30.9798 22.8933C31.4014 22.4422 31.7044 21.8863 31.8598 21.2788L25.4464 16.6154H22.3469ZM11.5558 16.6154H9.65266L1.02066 22.8924C1.48377 23.3816 2.07755 23.7314 2.74333 23.8939L11.5558 17.4859V16.6154ZM20.4447 7.38466H22.3478L30.9798 1.10774C30.5087 0.611378 29.9116 0.264072 29.258 0.106201L20.4447 6.5142V7.38466ZM9.65266 7.38466L1.02066 1.10774C0.599284 1.5591 0.29605 2.11486 0.139771 2.7222L6.5531 7.38466H9.65266Z" fill="#CF1B2B"/> +<path d="M32 14.7692H18.6667V24H20.4444V18.6129L27.8533 24H28.4444C28.9167 24.0001 29.3842 23.9022 29.8195 23.7122C30.2548 23.5221 30.6492 23.2437 30.9796 22.8932L22.3467 16.6154H25.4462L31.8596 21.2788C31.9422 20.9677 32 20.6455 32 20.3077V20.2542L26.9947 16.6154H32V14.7692ZM0 14.7692V16.6154H5.00444L0 20.2532V20.3077C0 21.3148 0.390222 22.2258 1.02044 22.8923L9.65244 16.6154H11.5556V17.4858L2.74311 23.8929C3.00444 23.9575 3.27467 24 3.55556 24H4.14578L11.5556 18.612V24H13.3333V14.7692H0ZM32 3.69231C32.0005 2.72491 31.6339 1.79626 30.9796 1.10769L22.3476 7.38462H20.4444V6.51415L29.2578 0.106154C28.9915 0.038333 28.7186 0.00271205 28.4444 3.49272e-07H27.8551L20.4444 5.388V3.49272e-07H18.6667V9.23077H32V7.38462H26.9964L32 3.74677V3.69231ZM11.5556 3.49272e-07V5.388L4.14578 3.49272e-07H3.55556C3.08322 -0.00021339 2.61561 0.097674 2.18025 0.287903C1.74488 0.478133 1.35055 0.756862 1.02044 1.10769L9.65244 7.38462H6.55289L0.139556 2.72215C0.0513602 3.03758 0.00442081 3.36389 0 3.69231L0 3.74677L5.00267 7.38462H0V9.23077H13.3333V3.49272e-07H11.5556Z" fill="#EEEEEE"/> +<path d="M18.6667 9.23077V0H13.3333V9.23077H0V14.7692H13.3333V24H18.6667V14.7692H32V9.23077H18.6667Z" fill="#CF1B2B"/> +</g> +<defs> +<clipPath id="clip0_3028_3248"> +<rect width="32" height="24" rx="4" fill="white"/> +</clipPath> +</defs> +</svg> diff --git a/public/assets/icons/header/logo.svg b/public/assets/icons/header/logo.svg new file mode 100644 index 0000000..0ae8337 --- /dev/null +++ b/public/assets/icons/header/logo.svg @@ -0,0 +1,3 @@ +<svg width="243" height="35" viewBox="0 0 243 35" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M19.95 0.399998V4.58H12.464V27H8.094V4.58H0.57V0.399998H19.95ZM32.6785 8H36.7825V27H32.6785V24.568C31.4372 26.5187 29.4738 27.494 26.7885 27.494C24.6098 27.494 22.8492 26.7973 21.5065 25.404C20.1638 24.0107 19.4925 22.098 19.4925 19.666V8H23.5965V19.248C23.5965 20.6667 23.9765 21.756 24.7365 22.516C25.4965 23.276 26.5352 23.656 27.8525 23.656C29.2965 23.656 30.4618 23.2127 31.3485 22.326C32.2352 21.414 32.6785 20.0333 32.6785 18.184V8ZM45.6855 11.192C46.7242 8.836 48.6748 7.658 51.5375 7.658V12.104C49.9668 12.0027 48.5988 12.3827 47.4335 13.244C46.2682 14.08 45.6855 15.4733 45.6855 17.424V27H41.5815V8H45.6855V11.192ZM71.3658 27H66.4638L58.6738 18.222V27H54.5698V0.399998H58.6738V16.398L66.0458 8H71.0618L62.7018 17.31L71.3658 27ZM94.8744 7.506C97.0278 7.506 98.7631 8.20267 100.08 9.596C101.398 10.9893 102.056 12.864 102.056 15.22V27H97.9524V15.486C97.9524 14.1687 97.6231 13.1553 96.9644 12.446C96.3058 11.7113 95.4064 11.344 94.2664 11.344C92.9998 11.344 91.9864 11.762 91.2264 12.598C90.4918 13.434 90.1244 14.688 90.1244 16.36V27H86.0204V15.486C86.0204 14.1687 85.7038 13.1553 85.0704 12.446C84.4624 11.7113 83.5884 11.344 82.4484 11.344C81.2071 11.344 80.1938 11.7747 79.4084 12.636C78.6231 13.472 78.2304 14.7133 78.2304 16.36V27H74.1264V8H78.2304V10.28C79.4464 8.43067 81.2578 7.506 83.6644 7.506C86.0964 7.506 87.8951 8.50667 89.0604 10.508C90.3271 8.50667 92.2651 7.506 94.8744 7.506ZM109.679 19.248C109.983 20.692 110.679 21.8067 111.769 22.592C112.858 23.352 114.188 23.732 115.759 23.732C117.937 23.732 119.571 22.9467 120.661 21.376L124.043 23.352C122.168 26.1133 119.394 27.494 115.721 27.494C112.63 27.494 110.135 26.5567 108.235 24.682C106.335 22.782 105.385 20.388 105.385 17.5C105.385 14.6627 106.322 12.294 108.197 10.394C110.071 8.46867 112.478 7.506 115.417 7.506C118.203 7.506 120.483 8.48133 122.257 10.432C124.055 12.3827 124.955 14.7513 124.955 17.538C124.955 17.9687 124.904 18.5387 124.803 19.248H109.679ZM109.641 15.904H120.813C120.534 14.3587 119.888 13.1933 118.875 12.408C117.887 11.6227 116.721 11.23 115.379 11.23C113.859 11.23 112.592 11.648 111.579 12.484C110.565 13.32 109.919 14.46 109.641 15.904ZM138.56 7.506C140.739 7.506 142.499 8.20267 143.842 9.596C145.185 10.9893 145.856 12.902 145.856 15.334V27H141.752V15.752C141.752 14.3333 141.372 13.244 140.612 12.484C139.852 11.724 138.813 11.344 137.496 11.344C136.052 11.344 134.887 11.8 134 12.712C133.113 13.5987 132.67 14.9667 132.67 16.816V27H128.566V8H132.67V10.432C133.911 8.48133 135.875 7.506 138.56 7.506ZM164.411 22.82H176.191V27H160.041V0.399998H176.001V4.58H164.411V11.496H175.051V15.638H164.411V22.82ZM196.911 27H192.161L187.449 20.502L182.699 27H177.911L185.055 17.234L178.291 8H183.041L187.411 14.004L191.781 8H196.569L189.805 17.272L196.911 27ZM210.421 7.506C213.031 7.506 215.26 8.48133 217.109 10.432C218.959 12.3573 219.883 14.7133 219.883 17.5C219.883 20.312 218.959 22.6807 217.109 24.606C215.26 26.5313 213.031 27.494 210.421 27.494C207.533 27.494 205.317 26.43 203.771 24.302V34.6H199.667V8H203.771V10.736C205.317 8.58267 207.533 7.506 210.421 7.506ZM205.481 21.87C206.621 23.01 208.053 23.58 209.775 23.58C211.498 23.58 212.929 23.01 214.069 21.87C215.209 20.7047 215.779 19.248 215.779 17.5C215.779 15.752 215.209 14.308 214.069 13.168C212.929 12.0027 211.498 11.42 209.775 11.42C208.053 11.42 206.621 12.0027 205.481 13.168C204.341 14.308 203.771 15.752 203.771 17.5C203.771 19.248 204.341 20.7047 205.481 21.87ZM232.571 27.494C229.784 27.494 227.416 26.5313 225.465 24.606C223.514 22.6807 222.539 20.312 222.539 17.5C222.539 14.688 223.514 12.3193 225.465 10.394C227.416 8.46867 229.784 7.506 232.571 7.506C235.383 7.506 237.752 8.46867 239.677 10.394C241.628 12.3193 242.603 14.688 242.603 17.5C242.603 20.312 241.628 22.6807 239.677 24.606C237.752 26.5313 235.383 27.494 232.571 27.494ZM228.353 21.794C229.493 22.934 230.899 23.504 232.571 23.504C234.243 23.504 235.649 22.934 236.789 21.794C237.929 20.654 238.499 19.2227 238.499 17.5C238.499 15.7773 237.929 14.346 236.789 13.206C235.649 12.066 234.243 11.496 232.571 11.496C230.899 11.496 229.493 12.066 228.353 13.206C227.213 14.346 226.643 15.7773 226.643 17.5C226.643 19.2227 227.213 20.654 228.353 21.794Z" fill="#303F4D"/> +</svg> diff --git a/public/assets/icons/header/mob-search.svg b/public/assets/icons/header/mob-search.svg new file mode 100644 index 0000000..4498f3f --- /dev/null +++ b/public/assets/icons/header/mob-search.svg @@ -0,0 +1,3 @@ +<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path fill-rule="evenodd" clip-rule="evenodd" d="M15.3333 3.66675C13.8012 3.66675 12.2841 3.96852 10.8687 4.55482C9.45319 5.14113 8.16706 6.00049 7.08371 7.08384C6.00036 8.16719 5.141 9.45331 4.5547 10.8688C3.96839 12.2842 3.66663 13.8013 3.66663 15.3334C3.66663 16.8655 3.96839 18.3826 4.5547 19.7981C5.141 21.2135 6.00036 22.4996 7.08371 23.583C8.16706 24.6663 9.45319 25.5257 10.8687 26.112C12.2841 26.6983 13.8012 27.0001 15.3333 27.0001C18.4275 27.0001 21.3949 25.7709 23.5829 23.583C25.7708 21.3951 27 18.4276 27 15.3334C27 12.2392 25.7708 9.27176 23.5829 7.08384C21.3949 4.89591 18.4275 3.66675 15.3333 3.66675ZM1.66663 15.3334C1.66663 7.78675 7.78663 1.66675 15.3333 1.66675C22.88 1.66675 29 7.78675 29 15.3334C29 18.7467 27.748 21.8694 25.6786 24.2641L30.04 28.6267C30.1382 28.7183 30.217 28.8287 30.2717 28.9514C30.3263 29.074 30.3557 29.2064 30.3581 29.3407C30.3605 29.475 30.3358 29.6084 30.2855 29.7329C30.2352 29.8574 30.1603 29.9705 30.0653 30.0655C29.9704 30.1604 29.8573 30.2353 29.7328 30.2856C29.6082 30.3359 29.4749 30.3606 29.3406 30.3582C29.2063 30.3558 29.0739 30.3264 28.9512 30.2718C28.8286 30.2171 28.7182 30.1383 28.6266 30.0401L24.264 25.6787C21.7844 27.8255 18.6131 29.0049 15.3333 29.0001C7.78663 29.0001 1.66663 22.8801 1.66663 15.3334Z" fill="#059784"/> +</svg> diff --git a/public/assets/icons/header/ru.svg b/public/assets/icons/header/ru.svg new file mode 100644 index 0000000..b74ebb1 --- /dev/null +++ b/public/assets/icons/header/ru.svg @@ -0,0 +1,12 @@ +<svg width="32" height="24" viewBox="0 0 32 24" fill="none" xmlns="http://www.w3.org/2000/svg"> +<g clip-path="url(#clip0_3028_2721)"> +<path d="M32 20.3077C32 21.2869 31.6254 22.2261 30.9586 22.9185C30.2918 23.611 29.3874 24 28.4444 24H3.55556C2.61256 24 1.70819 23.611 1.0414 22.9185C0.374602 22.2261 0 21.2869 0 20.3077V16.6154H32V20.3077Z" fill="#CE2028"/> +<path d="M0 7.38464H32V16.6154H0V7.38464Z" fill="#22408C"/> +<path d="M28.4444 0H3.55556C2.61256 0 1.70819 0.38901 1.0414 1.08145C0.374602 1.77389 0 2.71305 0 3.69231L0 7.38462H32V3.69231C32 2.71305 31.6254 1.77389 30.9586 1.08145C30.2918 0.38901 29.3874 0 28.4444 0Z" fill="#EEEEEE"/> +</g> +<defs> +<clipPath id="clip0_3028_2721"> +<rect width="32" height="24" rx="4" fill="white"/> +</clipPath> +</defs> +</svg> diff --git a/public/assets/icons/header/search.svg b/public/assets/icons/header/search.svg new file mode 100644 index 0000000..e856fb2 --- /dev/null +++ b/public/assets/icons/header/search.svg @@ -0,0 +1,3 @@ +<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M11.4333 12.25L7.75833 8.575C7.46667 8.80833 7.13125 8.99305 6.75208 9.12917C6.37292 9.26528 5.96944 9.33333 5.54167 9.33333C4.48194 9.33333 3.58517 8.96622 2.85133 8.232C2.1175 7.49778 1.75039 6.601 1.75 5.54167C1.75 4.48194 2.11711 3.58517 2.85133 2.85133C3.58556 2.1175 4.48233 1.75039 5.54167 1.75C6.60139 1.75 7.49836 2.11711 8.23258 2.85133C8.96681 3.58556 9.33372 4.48233 9.33333 5.54167C9.33333 5.96944 9.26528 6.37292 9.12917 6.75208C8.99305 7.13125 8.80833 7.46667 8.575 7.75833L12.25 11.4333L11.4333 12.25ZM5.54167 8.16667C6.27083 8.16667 6.89072 7.91156 7.40133 7.40133C7.91194 6.89111 8.16706 6.27122 8.16667 5.54167C8.16667 4.8125 7.91156 4.19281 7.40133 3.68258C6.89111 3.17236 6.27122 2.91706 5.54167 2.91667C4.8125 2.91667 4.19281 3.17197 3.68258 3.68258C3.17236 4.19319 2.91706 4.81289 2.91667 5.54167C2.91667 6.27083 3.17197 6.89072 3.68258 7.40133C4.19319 7.91194 4.81289 8.16706 5.54167 8.16667Z" fill="#0B0F12"/> +</svg> diff --git a/public/assets/icons/header/tm.svg b/public/assets/icons/header/tm.svg new file mode 100644 index 0000000..ca215af --- /dev/null +++ b/public/assets/icons/header/tm.svg @@ -0,0 +1,28 @@ +<svg width="32" height="24" viewBox="0 0 32 24" fill="none" xmlns="http://www.w3.org/2000/svg"> +<g clip-path="url(#clip0_3028_3013)"> +<path d="M32 20.3077C32 21.287 31.6254 22.2261 30.9586 22.9185C30.2918 23.611 29.3874 24 28.4444 24H3.55556C2.61256 24 1.70819 23.611 1.0414 22.9185C0.374602 22.2261 0 21.287 0 20.3077V3.69231C0 2.71305 0.374602 1.77389 1.0414 1.08145C1.70819 0.38901 2.61256 0 3.55556 0H28.4444C29.3874 0 30.2918 0.38901 30.9586 1.08145C31.6254 1.77389 32 2.71305 32 3.69231V20.3077Z" fill="#29AE66"/> +<path d="M3.55554 0H9.77776V24H3.55554V0Z" fill="#CA3745"/> +<path d="M3.55554 3.05723L4.2711 3.80031L4.07643 4.00246L4.36088 4.29785L4.54843 4.10308L5.13865 4.716L4.55554 5.32246L4.31288 5.06954L4.0551 5.33631L4.2711 5.55969L3.55554 6.216V5.86985L3.94754 5.484L3.73599 5.30769L4.27643 4.74738L4.58843 5.028L4.87999 4.72523L4.56799 4.40123L4.34932 4.62831L3.77954 4.03662L3.99288 3.81508L3.55554 3.40431V3.05723ZM3.55554 7.32738L4.2711 8.06954L4.07643 8.27169L4.36088 8.56708L4.54843 8.37231L5.13865 8.98523L4.55554 9.59169L4.31288 9.33877L4.0551 9.60554L4.2711 9.82892L3.55554 10.4852V10.1391L3.94754 9.75323L3.73599 9.57692L4.27643 9.01661L4.58843 9.29723L4.87999 8.99446L4.56799 8.67046L4.34932 8.89754L3.77954 8.30585L3.99288 8.08431L3.55554 7.67262V7.32738ZM3.55554 11.6825L4.2711 12.4255L4.07643 12.6277L4.36088 12.9231L4.54843 12.7283L5.13865 13.3412L4.55554 13.9468L4.31288 13.6948L4.0551 13.9615L4.2711 14.1849L3.55554 14.8412V14.4951L3.94754 14.1092L3.73599 13.9329L4.27643 13.3717L4.58843 13.6532L4.87999 13.3505L4.56799 13.0255L4.34932 13.2526L3.77954 12.6618L3.99288 12.4403L3.55554 12.0286V11.6825ZM3.55554 15.9803L4.2711 16.7234L4.07643 16.9255L4.36088 17.2209L4.54843 17.0262L5.13865 17.6391L4.55554 18.2455L4.31288 17.9926L4.0551 18.2594L4.2711 18.4828L3.55554 19.1391V18.7929L3.94754 18.4071L3.73599 18.2308L4.27643 17.6705L4.58843 17.9511L4.87999 17.6483L4.56799 17.3243L4.34932 17.5514L3.77954 16.9597L3.99288 16.7382L3.55554 16.3274V15.9803ZM9.77776 3.05723L9.06221 3.80031L9.25688 4.00246L8.97243 4.29785L8.78488 4.10308L8.19465 4.716L8.77776 5.32246L9.02043 5.06954L9.27821 5.33631L9.06221 5.55969L9.77776 6.216V5.86985L9.38576 5.484L9.59732 5.30769L9.05688 4.74738L8.74488 5.028L8.45332 4.72523L8.76532 4.40123L8.98399 4.62831L9.55376 4.03662L9.34043 3.81508L9.77776 3.40431V3.05723ZM4.0551 0.635077L4.31288 0.367384L4.55554 0.620308L5.13865 0.014769L5.12532 0H4.85776L4.87999 0.023077L4.58843 0.326769L4.27643 0.0452306L3.73599 0.605539L3.94754 0.782769L3.55554 1.16862V1.51477L4.2711 0.858461L4.0551 0.635077ZM9.59732 0.605539L9.05688 0.0452306L8.74488 0.326769L8.45332 0.023077L8.47554 0H8.20799L8.19465 0.014769L8.77776 0.620308L9.02043 0.367384L9.27821 0.635077L9.06221 0.858461L9.77776 1.51477V1.16862L9.38576 0.782769L9.59732 0.605539ZM9.77776 7.32738L9.06221 8.06954L9.25688 8.27169L8.97243 8.56708L8.78488 8.37231L8.19465 8.98523L8.77776 9.59169L9.02043 9.33877L9.27821 9.60554L9.06221 9.82892L9.77776 10.4852V10.1391L9.38576 9.75323L9.59732 9.57692L9.05688 9.01661L8.74488 9.29723L8.45332 8.99446L8.76532 8.67046L8.98399 8.89754L9.55376 8.30585L9.34043 8.08431L9.77776 7.67262V7.32738ZM9.77776 11.6825L9.06221 12.4255L9.25688 12.6277L8.97243 12.9231L8.78488 12.7283L8.19465 13.3412L8.77776 13.9468L9.02043 13.6948L9.27821 13.9615L9.06221 14.1849L9.77776 14.8412V14.4951L9.38576 14.1092L9.59732 13.9329L9.05688 13.3717L8.74488 13.6532L8.45332 13.3505L8.76532 13.0255L8.98399 13.2526L9.55376 12.6618L9.34043 12.4403L9.77776 12.0286V11.6825ZM9.77776 15.9803L9.06221 16.7234L9.25688 16.9255L8.97243 17.2209L8.78488 17.0262L8.19465 17.6391L8.77776 18.2455L9.02043 17.9926L9.27821 18.2594L9.06221 18.4828L9.77776 19.1391V18.7929L9.38576 18.4071L9.59732 18.2308L9.05688 17.6705L8.74488 17.9511L8.45332 17.6483L8.76532 17.3243L8.98399 17.5514L9.55376 16.9597L9.34043 16.7382L9.77776 16.3274V15.9803Z" fill="#FAAE29"/> +<path d="M8.90749 1.78884V1.4233L8.38927 1.09653H7.99994L7.3706 0.756836H5.9626L5.33327 1.09653H4.94393L4.42571 1.4233V1.78884L3.94482 2.09622V2.94268L4.42571 3.25007V3.6156L4.94393 3.94237H5.33327L5.9626 4.28207H7.3706L7.99994 3.94237H8.38927L8.90749 3.6156V3.25007L9.38838 2.94268V2.09622L8.90749 1.78884Z" fill="#29AE66"/> +<path d="M4.38062 2.5181V2.15717L4.79128 1.8941V1.58302L5.23395 1.30333H5.56639L6.10328 1.0144H6.70417V2.5181H4.38062Z" fill="#FAAE29"/> +<path d="M4.34424 2.519V2.88085L4.7549 3.143V3.455L5.19757 3.73377H5.52913L6.0669 4.0227H6.6669V2.519H4.34424ZM8.98957 2.519V2.15808L8.57891 1.89593V1.58393L8.13624 1.30516H7.80468L7.26691 1.01624H6.6669V2.519H8.98957Z" fill="white"/> +<path d="M8.9895 2.51904V2.88089L8.57884 3.14304V3.45504L8.13617 3.73381H7.80462L7.26684 4.02273H6.66684V2.51904H8.9895ZM4.38062 6.0572H4.9815V6.73012H4.38062V6.0572ZM4.9815 5.9612H5.58239V6.63412H4.9815V5.9612ZM5.58328 5.7212H6.18417V6.39412H5.58328V5.7212ZM8.36995 6.0572H8.97084V6.73012H8.36995V6.0572ZM7.76817 5.9612H8.36906V6.63412H7.76817V5.9612ZM7.16639 5.7212H7.76728V6.39412H7.16639V5.7212Z" fill="#FAAE29"/> +<path d="M6.18506 5.38428H7.16728V6.21597H6.18506V5.38428ZM4.38062 6.90828H4.9815V7.5812H4.38062V6.90828ZM4.9815 7.00428H5.58239V7.6772H4.9815V7.00428ZM5.58328 7.2452H6.18417V7.91812H5.58328V7.2452ZM8.36995 6.90828H8.97084V7.5812H8.36995V6.90828ZM7.76817 7.00428H8.36906V7.6772H7.76817V7.00428ZM7.16639 7.2452H7.76728V7.91812H7.16639V7.2452Z" fill="#FAAE29"/> +<path d="M6.18494 7.42334H7.16716V8.25503H6.18494V7.42334Z" fill="#FAAE29"/> +<path d="M7.59926 18.0997H5.76993L4.47571 18.96V20.1748L5.76993 21.0342H7.59926L8.89349 20.1748V18.96L7.59926 18.0997Z" fill="white"/> +<path d="M7.45152 9.82703H5.9173L4.83197 10.6209V11.7443L5.9173 12.5381H7.45241L8.53774 11.7443V10.6209L7.45152 9.82703ZM8.10574 11.6141L7.27286 12.2233H6.09597L5.26308 11.6141V10.752L6.09597 10.1427H7.27286L8.10574 10.752V11.6141ZM7.63819 18.0387H5.73063L4.38219 18.935V20.2006L5.73063 21.096H7.6373L8.98574 20.2006V18.935L7.63819 18.0387ZM8.57952 20.0889L7.46841 20.8264H5.89952L4.78841 20.0889V19.0458L5.89952 18.3083H7.4693L8.58041 19.0458L8.57952 20.0889ZM8.67019 15.1735V14.7646H8.2773V14.3095H5.08352V14.7646H4.64441V15.1735H4.25952V15.7698H4.64441V16.2119H5.08352V16.6929H8.27819V16.2119H8.67019V15.7698H9.12974V15.1735H8.67019ZM8.06841 16.4418H5.29686V14.5181H8.06841V16.4418Z" fill="#29AE66"/> +<path d="M6.66666 14.0769L4.98132 15.1154V15.7883L6.66666 16.9237L8.36977 15.8271V15.1154L6.66666 14.0769Z" fill="#29AE66"/> +<path d="M5.91187 19.1687L6.66653 18.7155L7.42031 19.1687V20.0724L6.66653 20.5238L5.91187 20.0724V19.1687Z" fill="#CA3745"/> +<path d="M7.42055 23.1545L7.20366 23.3077C7.20366 23.3077 7.01877 22.9421 6.51833 22.9034C6.01788 22.8646 5.74055 23.0769 5.31477 23.1055C4.88899 23.1341 3.57699 22.1031 4.25877 20.5237C4.87033 20.9806 4.55299 21.5381 4.8321 21.8077C5.11122 22.0772 5.40544 22.26 5.51833 22.5775C5.63211 22.8951 6.16366 22.632 6.51833 22.6929C7.07388 22.7889 7.42055 23.1545 7.42055 23.1545Z" fill="#FAAE29"/> +<path d="M5.91187 23.1545L6.12875 23.3077C6.12875 23.3077 6.31364 22.9421 6.81409 22.9034C7.31453 22.8646 7.59275 23.0769 8.01853 23.1055C8.44431 23.1341 9.75631 22.1031 9.07364 20.5237C8.46298 20.9806 8.77942 21.5381 8.50031 21.8077C8.2212 22.0772 7.92698 22.26 7.81409 22.5775C7.70031 22.8951 7.16875 22.632 6.81409 22.6929C6.25853 22.7889 5.91187 23.1545 5.91187 23.1545Z" fill="#FAAE29"/> +<path d="M16.16 3.03597C16.4574 3.30019 16.6964 3.628 16.8605 3.99697C17.0247 4.36594 17.1102 4.76737 17.1112 5.17381C17.1112 6.74304 15.8863 8.01504 14.3752 8.01504C13.8755 8.01305 13.3861 7.8677 12.9609 7.59504C13.2191 7.89041 13.5339 8.12656 13.885 8.28837C14.2361 8.45018 14.6159 8.53409 15 8.53474C15.7368 8.53474 16.4433 8.23082 16.9642 7.68985C17.4852 7.14888 17.7778 6.41517 17.7778 5.65012C17.7778 4.48704 17.1129 3.49289 16.16 3.03597ZM14.0854 2.64643L13.8667 3.09227L14.2072 3.44674L13.7316 3.36827L13.512 3.81412L13.4374 3.32027L12.9609 3.24181L13.3903 3.01473L13.3147 2.51904L13.656 2.8735L14.0854 2.64643Z" fill="white"/> +<path d="M15.446 3.50312L15.2274 3.94896L15.5687 4.30342L15.0923 4.22496L14.8727 4.67081L14.798 4.17604L14.3216 4.09758L14.7509 3.8705L14.6763 3.37573L15.0167 3.73019L15.446 3.50312ZM14.0852 4.11696L13.8665 4.56281L14.2069 4.91727L13.7314 4.83881L13.5118 5.28466L13.4372 4.78989L12.9607 4.71143L13.39 4.48435L13.3145 3.98958L13.6558 4.34404L14.0852 4.11696ZM12.6683 4.86373L12.4496 5.30958L12.7909 5.66404L12.3145 5.58558L12.0949 6.03235L12.0203 5.53758L11.5438 5.45912L11.9732 5.23204L11.8985 4.73727L12.2389 5.09173L12.6683 4.86373ZM14.0852 5.69635L13.8665 6.14219L14.2069 6.49666L13.7314 6.41819L13.5118 6.86404L13.4372 6.36927L12.9607 6.29081L13.39 6.06373L13.3145 5.56896L13.6558 5.92342L14.0852 5.69635Z" fill="white"/> +<path d="M6.27734 14.5579H7.09068V15.1256H6.27734V14.5579ZM6.27734 15.8511H7.09068V16.4188H6.27734V15.8511Z" fill="#CA3745"/> +<path d="M4.98132 15.2161H6.0951V15.7838H4.98132V15.2161ZM7.27821 15.2161H8.36977V15.7838H7.27821V15.2161Z" fill="#FAAE29"/> +</g> +<defs> +<clipPath id="clip0_3028_3013"> +<rect width="32" height="24" rx="4" fill="white"/> +</clipPath> +</defs> +</svg> diff --git a/public/assets/icons/home/close-input.svg b/public/assets/icons/home/close-input.svg new file mode 100644 index 0000000..c945b91 --- /dev/null +++ b/public/assets/icons/home/close-input.svg @@ -0,0 +1,3 @@ +<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M12 13.4L7.09999 18.3C6.91665 18.4834 6.68332 18.575 6.39999 18.575C6.11665 18.575 5.88332 18.4834 5.69999 18.3C5.51665 18.1167 5.42499 17.8834 5.42499 17.6C5.42499 17.3167 5.51665 17.0834 5.69999 16.9L10.6 12L5.69999 7.10005C5.51665 6.91672 5.42499 6.68338 5.42499 6.40005C5.42499 6.11672 5.51665 5.88338 5.69999 5.70005C5.88332 5.51672 6.11665 5.42505 6.39999 5.42505C6.68332 5.42505 6.91665 5.51672 7.09999 5.70005L12 10.6L16.9 5.70005C17.0833 5.51672 17.3167 5.42505 17.6 5.42505C17.8833 5.42505 18.1167 5.51672 18.3 5.70005C18.4833 5.88338 18.575 6.11672 18.575 6.40005C18.575 6.68338 18.4833 6.91672 18.3 7.10005L13.4 12L18.3 16.9C18.4833 17.0834 18.575 17.3167 18.575 17.6C18.575 17.8834 18.4833 18.1167 18.3 18.3C18.1167 18.4834 17.8833 18.575 17.6 18.575C17.3167 18.575 17.0833 18.4834 16.9 18.3L12 13.4Z" fill="#F2F9FF"/> +</svg> diff --git a/public/assets/icons/home/flower.svg b/public/assets/icons/home/flower.svg new file mode 100644 index 0000000..0d67016 --- /dev/null +++ b/public/assets/icons/home/flower.svg @@ -0,0 +1,13 @@ +<svg width="70" height="79" viewBox="0 0 70 79" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path fill-rule="evenodd" clip-rule="evenodd" d="M29.5991 33.5839L30.6243 33.1002C31.1451 32.8557 31.7756 33.0731 32.0223 33.5948L52.8989 77.0304C53.1456 77.5466 52.9263 78.1716 52.4 78.4161L51.3748 78.8998C50.854 79.1443 50.2235 78.9269 49.9768 78.4052L29.1002 34.9696C28.8535 34.4534 29.0783 33.8284 29.5991 33.5839Z" fill="#BB9B72"/> +<path fill-rule="evenodd" clip-rule="evenodd" d="M20 69L34.8424 34L52 35.3307L44.4146 54.7493L20 69Z" fill="#EE5417"/> +<path fill-rule="evenodd" clip-rule="evenodd" d="M0 20L35 34.2651L33.7775 51L14.3667 43.7263L0 20Z" fill="#61378A"/> +<path fill-rule="evenodd" clip-rule="evenodd" d="M33.7558 51L14 43.6111L35 34L33.7558 51Z" fill="#783DA5"/> +<path fill-rule="evenodd" clip-rule="evenodd" d="M51 0L36.155 35L19 33.6693L26.5811 14.2507L51 0Z" fill="#8BB23F"/> +<path fill-rule="evenodd" clip-rule="evenodd" d="M19 33.6533L26.5127 14L36 35L19 33.6533Z" fill="#8FC43E"/> +<path fill-rule="evenodd" clip-rule="evenodd" d="M70 49L35 34.7403L36.2225 18L55.6333 25.2791L70 49Z" fill="#EBBF08"/> +<path fill-rule="evenodd" clip-rule="evenodd" d="M36.2442 18L56 25.392L35 35L36.2442 18Z" fill="#F4CC14"/> +<path fill-rule="evenodd" clip-rule="evenodd" d="M52 35.3467L44.4843 55L35 34L52 35.3467Z" fill="#F27216"/> +<path fill-rule="evenodd" clip-rule="evenodd" d="M34.1979 31.2516C35.9907 30.5334 38.0302 31.4051 38.7484 33.1979C39.4666 34.9907 38.5949 37.0302 36.8021 37.7484C35.0093 38.4666 32.9698 37.5949 32.2516 35.8021C31.5334 34.0093 32.4051 31.9698 34.1979 31.2516Z" fill="#FEFEFE"/> +</svg> + \ No newline at end of file diff --git a/public/assets/icons/home/nav-btn.svg b/public/assets/icons/home/nav-btn.svg new file mode 100644 index 0000000..053a4ff --- /dev/null +++ b/public/assets/icons/home/nav-btn.svg @@ -0,0 +1,4 @@ +<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg"> +<rect width="40" height="40" rx="20" fill="#A2AFBB"/> +<path d="M24.175 21H12V19H24.175L18.575 13.4L20 12L28 20L20 28L18.575 26.6L24.175 21Z" fill="#303F4D"/> +</svg> diff --git a/public/assets/icons/home/partner.svg b/public/assets/icons/home/partner.svg new file mode 100644 index 0000000..de06fe9 --- /dev/null +++ b/public/assets/icons/home/partner.svg @@ -0,0 +1,9 @@ +<svg width="212" height="66" viewBox="0 0 212 66" fill="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<rect width="212" height="66" fill="url(#pattern0)"/> +<defs> +<pattern id="pattern0" patternContentUnits="objectBoundingBox" width="1" height="1"> +<use xlink:href="#image0_557_4674" transform="matrix(0.00324292 0 0 0.0104167 -0.00751769 0)"/> +</pattern> +<image id="image0_557_4674" width="313" height="96" xlink:href="data:image/png;base64,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"/> +</defs> +</svg> diff --git a/public/assets/icons/instagram.svg b/public/assets/icons/instagram.svg new file mode 100644 index 0000000..df718dd --- /dev/null +++ b/public/assets/icons/instagram.svg @@ -0,0 +1,3 @@ +<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M6.50033 1.66663H13.5003C16.167 1.66663 18.3337 3.83329 18.3337 6.49996V13.5C18.3337 14.7818 17.8244 16.0112 16.918 16.9176C16.0116 17.8241 14.7822 18.3333 13.5003 18.3333H6.50033C3.83366 18.3333 1.66699 16.1666 1.66699 13.5V6.49996C1.66699 5.21808 2.17622 3.9887 3.08264 3.08228C3.98907 2.17585 5.21845 1.66663 6.50033 1.66663ZM6.33366 3.33329C5.53801 3.33329 4.77495 3.64936 4.21234 4.21197C3.64973 4.77458 3.33366 5.53764 3.33366 6.33329V13.6666C3.33366 15.325 4.67533 16.6666 6.33366 16.6666H13.667C14.4626 16.6666 15.2257 16.3506 15.7883 15.7879C16.3509 15.2253 16.667 14.4623 16.667 13.6666V6.33329C16.667 4.67496 15.3253 3.33329 13.667 3.33329H6.33366ZM14.3753 4.58329C14.6516 4.58329 14.9165 4.69304 15.1119 4.88839C15.3072 5.08374 15.417 5.34869 15.417 5.62496C15.417 5.90123 15.3072 6.16618 15.1119 6.36153C14.9165 6.55688 14.6516 6.66663 14.3753 6.66663C14.0991 6.66663 13.8341 6.55688 13.6388 6.36153C13.4434 6.16618 13.3337 5.90123 13.3337 5.62496C13.3337 5.34869 13.4434 5.08374 13.6388 4.88839C13.8341 4.69304 14.0991 4.58329 14.3753 4.58329ZM10.0003 5.83329C11.1054 5.83329 12.1652 6.27228 12.9466 7.05368C13.728 7.83508 14.167 8.89489 14.167 9.99996C14.167 11.105 13.728 12.1648 12.9466 12.9462C12.1652 13.7276 11.1054 14.1666 10.0003 14.1666C8.89526 14.1666 7.83545 13.7276 7.05405 12.9462C6.27265 12.1648 5.83366 11.105 5.83366 9.99996C5.83366 8.89489 6.27265 7.83508 7.05405 7.05368C7.83545 6.27228 8.89526 5.83329 10.0003 5.83329ZM10.0003 7.49996C9.33728 7.49996 8.7014 7.76335 8.23256 8.23219C7.76372 8.70103 7.50033 9.33692 7.50033 9.99996C7.50033 10.663 7.76372 11.2989 8.23256 11.7677C8.7014 12.2366 9.33728 12.5 10.0003 12.5C10.6634 12.5 11.2993 12.2366 11.7681 11.7677C12.2369 11.2989 12.5003 10.663 12.5003 9.99996C12.5003 9.33692 12.2369 8.70103 11.7681 8.23219C11.2993 7.76335 10.6634 7.49996 10.0003 7.49996Z" fill="white"/> +</svg> diff --git a/public/assets/icons/linkedin.svg b/public/assets/icons/linkedin.svg new file mode 100644 index 0000000..a66b73e --- /dev/null +++ b/public/assets/icons/linkedin.svg @@ -0,0 +1,3 @@ +<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M5.78255 4.16667C5.78233 4.60869 5.60652 5.03253 5.29381 5.34493C4.98109 5.65734 4.55708 5.83272 4.11505 5.8325C3.67302 5.83228 3.24919 5.65647 2.93678 5.34376C2.62438 5.03104 2.449 4.60703 2.44922 4.165C2.44944 3.72297 2.62525 3.29914 2.93796 2.98673C3.25068 2.67433 3.67469 2.49895 4.11672 2.49917C4.55875 2.49939 4.98258 2.67519 5.29499 2.98791C5.60739 3.30063 5.78277 3.72464 5.78255 4.16667ZM5.83255 7.06667H2.49922V17.5H5.83255V7.06667ZM11.0992 7.06667H7.78255V17.5H11.0659V12.025C11.0659 8.975 15.0409 8.69167 15.0409 12.025V17.5H18.3326V10.8917C18.3326 5.75 12.4492 5.94167 11.0659 8.46667L11.0992 7.06667Z" fill="white"/> +</svg> diff --git a/public/assets/icons/logo.png b/public/assets/icons/logo.png new file mode 100644 index 0000000..ee25d6a Binary files /dev/null and b/public/assets/icons/logo.png differ diff --git a/public/assets/icons/logo.svg b/public/assets/icons/logo.svg new file mode 100644 index 0000000..4343486 --- /dev/null +++ b/public/assets/icons/logo.svg @@ -0,0 +1,4 @@ +<svg width="197" height="30" viewBox="0 0 197 30" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M16.8 0.599998V4.12H10.496V23H6.816V4.12H0.48V0.599998H16.8ZM27.5188 7H30.9748V23H27.5188V20.952C26.4734 22.5947 24.8201 23.416 22.5588 23.416C20.7241 23.416 19.2414 22.8293 18.1108 21.656C16.9801 20.4827 16.4148 18.872 16.4148 16.824V7H19.8708V16.472C19.8708 17.6667 20.1908 18.584 20.8308 19.224C21.4708 19.864 22.3454 20.184 23.4548 20.184C24.6708 20.184 25.6521 19.8107 26.3988 19.064C27.1454 18.296 27.5188 17.1333 27.5188 15.576V7ZM38.472 9.688C39.3467 7.704 40.9893 6.712 43.4 6.712V10.456C42.0773 10.3707 40.9253 10.6907 39.944 11.416C38.9627 12.12 38.472 13.2933 38.472 14.936V23H35.016V7H38.472V9.688ZM60.0975 23H55.9695L49.4095 15.608V23H45.9535V0.599998H49.4095V14.072L55.6175 7H59.8415L52.8015 14.84L60.0975 23ZM79.8943 6.584C81.7076 6.584 83.1689 7.17067 84.2783 8.344C85.3876 9.51733 85.9423 11.096 85.9423 13.08V23H82.4863V13.304C82.4863 12.1947 82.2089 11.3413 81.6543 10.744C81.0996 10.1253 80.3423 9.816 79.3823 9.816C78.3156 9.816 77.4623 10.168 76.8223 10.872C76.2036 11.576 75.8943 12.632 75.8943 14.04V23H72.4383V13.304C72.4383 12.1947 72.1716 11.3413 71.6383 10.744C71.1263 10.1253 70.3903 9.816 69.4303 9.816C68.3849 9.816 67.5316 10.1787 66.8703 10.904C66.2089 11.608 65.8783 12.6533 65.8783 14.04V23H62.4223V7H65.8783V8.92C66.9023 7.36267 68.4276 6.584 70.4543 6.584C72.5023 6.584 74.0169 7.42667 74.9983 9.112C76.0649 7.42667 77.6969 6.584 79.8943 6.584ZM92.361 16.472C92.617 17.688 93.2037 18.6267 94.121 19.288C95.0383 19.928 96.1583 20.248 97.481 20.248C99.3157 20.248 100.692 19.5867 101.609 18.264L104.457 19.928C102.878 22.2533 100.542 23.416 97.449 23.416C94.8463 23.416 92.745 22.6267 91.145 21.048C89.545 19.448 88.745 17.432 88.745 15C88.745 12.6107 89.5343 10.616 91.113 9.016C92.6917 7.39467 94.7183 6.584 97.193 6.584C99.5397 6.584 101.46 7.40533 102.953 9.048C104.468 10.6907 105.225 12.6853 105.225 15.032C105.225 15.3947 105.182 15.8747 105.097 16.472H92.361ZM92.329 13.656H101.737C101.502 12.3547 100.958 11.3733 100.105 10.712C99.273 10.0507 98.2917 9.72 97.161 9.72C95.881 9.72 94.8143 10.072 93.961 10.776C93.1077 11.48 92.5637 12.44 92.329 13.656ZM116.682 6.584C118.517 6.584 119.999 7.17067 121.13 8.344C122.261 9.51733 122.826 11.128 122.826 13.176V23H119.37V13.528C119.37 12.3333 119.05 11.416 118.41 10.776C117.77 10.136 116.895 9.816 115.786 9.816C114.57 9.816 113.589 10.2 112.842 10.968C112.095 11.7147 111.722 12.8667 111.722 14.424V23H108.266V7H111.722V9.048C112.767 7.40533 114.421 6.584 116.682 6.584Z" fill="#059784"/> +<path d="M130.451 19.48H140.371V23H126.771V0.599998H140.211V4.12H130.451V9.944H139.411V13.432H130.451V19.48ZM157.82 23H153.82L149.852 17.528L145.852 23H141.82L147.836 14.776L142.14 7H146.14L149.82 12.056L153.5 7H157.532L151.836 14.808L157.82 23ZM169.197 6.584C171.394 6.584 173.272 7.40533 174.829 9.048C176.386 10.6693 177.165 12.6533 177.165 15C177.165 17.368 176.386 19.3627 174.829 20.984C173.272 22.6053 171.394 23.416 169.197 23.416C166.765 23.416 164.898 22.52 163.597 20.728V29.4H160.141V7H163.597V9.304C164.898 7.49067 166.765 6.584 169.197 6.584ZM165.037 18.68C165.997 19.64 167.202 20.12 168.653 20.12C170.104 20.12 171.309 19.64 172.269 18.68C173.229 17.6987 173.709 16.472 173.709 15C173.709 13.528 173.229 12.312 172.269 11.352C171.309 10.3707 170.104 9.88 168.653 9.88C167.202 9.88 165.997 10.3707 165.037 11.352C164.077 12.312 163.597 13.528 163.597 15C163.597 16.472 164.077 17.6987 165.037 18.68ZM187.849 23.416C185.503 23.416 183.508 22.6053 181.865 20.984C180.223 19.3627 179.401 17.368 179.401 15C179.401 12.632 180.223 10.6373 181.865 9.016C183.508 7.39467 185.503 6.584 187.849 6.584C190.217 6.584 192.212 7.39467 193.833 9.016C195.476 10.6373 196.297 12.632 196.297 15C196.297 17.368 195.476 19.3627 193.833 20.984C192.212 22.6053 190.217 23.416 187.849 23.416ZM184.297 18.616C185.257 19.576 186.441 20.056 187.849 20.056C189.257 20.056 190.441 19.576 191.401 18.616C192.361 17.656 192.841 16.4507 192.841 15C192.841 13.5493 192.361 12.344 191.401 11.384C190.441 10.424 189.257 9.944 187.849 9.944C186.441 9.944 185.257 10.424 184.297 11.384C183.337 12.344 182.857 13.5493 182.857 15C182.857 16.4507 183.337 17.656 184.297 18.616Z" fill="#BC213A"/> +</svg> diff --git a/public/assets/icons/news/col.svg b/public/assets/icons/news/col.svg new file mode 100644 index 0000000..acc9d34 --- /dev/null +++ b/public/assets/icons/news/col.svg @@ -0,0 +1,3 @@ +<svg width="20" height="16" viewBox="0 0 20 16" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M0 16V12H4V16H0ZM6 16V12H20V16H6ZM0 10V6H4V10H0ZM6 10V6H20V10H6ZM0 4V0H4V4H0ZM6 4V0H20V4H6Z" fill="#F2F9FF"/> +</svg> diff --git a/public/assets/icons/news/grid.svg b/public/assets/icons/news/grid.svg new file mode 100644 index 0000000..b6b51ca --- /dev/null +++ b/public/assets/icons/news/grid.svg @@ -0,0 +1,3 @@ +<svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M3 8.5V3H8.5V8.5H3ZM3 15V9.5H8.5V15H3ZM9.5 8.5V3H15V8.5H9.5ZM9.5 15V9.5H15V15H9.5ZM2 18C1.45 18 0.979333 17.8043 0.588 17.413C0.196667 17.0217 0.000666667 16.5507 0 16V2C0 1.45 0.196 0.979333 0.588 0.588C0.98 0.196667 1.45067 0.000666667 2 0H16C16.55 0 17.021 0.196 17.413 0.588C17.805 0.98 18.0007 1.45067 18 2V16C18 16.55 17.8043 17.021 17.413 17.413C17.0217 17.805 16.5507 18.0007 16 18H2ZM2 16H16V2H2V16Z" fill="#F2F9FF"/> +</svg> diff --git a/public/assets/icons/news/message.svg b/public/assets/icons/news/message.svg new file mode 100644 index 0000000..edb6807 --- /dev/null +++ b/public/assets/icons/news/message.svg @@ -0,0 +1,3 @@ +<svg width="22" height="18" viewBox="0 0 22 18" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M6 14C5.45 14 4.97933 13.8043 4.588 13.413C4.19667 13.0217 4.00067 12.5507 4 12V2C4 1.45 4.196 0.979333 4.588 0.588C4.98 0.196667 5.45067 0.000666667 6 0H20C20.55 0 21.021 0.196 21.413 0.588C21.805 0.98 22.0007 1.45067 22 2V12C22 12.55 21.8043 13.021 21.413 13.413C21.0217 13.805 20.5507 14.0007 20 14H6ZM13 9.3L6 4.425V12H20V4.425L13 9.3ZM13 6.85L20 2H6L13 6.85ZM2 18C1.45 18 0.979333 17.8043 0.588 17.413C0.196667 17.0217 0.000666667 16.5507 0 16V3.5H2V16H18.5V18H2Z" fill="#F2F9FF"/> +</svg> diff --git a/public/assets/icons/news/search.svg b/public/assets/icons/news/search.svg new file mode 100644 index 0000000..624e2eb --- /dev/null +++ b/public/assets/icons/news/search.svg @@ -0,0 +1,3 @@ +<svg width="33" height="24" viewBox="0 0 33 24" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M19.6 21L13.3 14.7C12.8 15.1 12.225 15.4167 11.575 15.65C10.925 15.8833 10.2333 16 9.5 16C7.68333 16 6.146 15.3707 4.888 14.112C3.63 12.8533 3.00067 11.316 3 9.5C3 7.68333 3.62933 6.146 4.888 4.888C6.14667 3.63 7.684 3.00067 9.5 3C11.3167 3 12.8543 3.62933 14.113 4.888C15.3717 6.14667 16.0007 7.684 16 9.5C16 10.2333 15.8833 10.925 15.65 11.575C15.4167 12.225 15.1 12.8 14.7 13.3L21 19.6L19.6 21ZM9.5 14C10.75 14 11.8127 13.5627 12.688 12.688C13.5633 11.8133 14.0007 10.7507 14 9.5C14 8.25 13.5627 7.18767 12.688 6.313C11.8133 5.43833 10.7507 5.00067 9.5 5C8.25 5 7.18767 5.43767 6.313 6.313C5.43833 7.18833 5.00067 8.25067 5 9.5C5 10.75 5.43767 11.8127 6.313 12.688C7.18833 13.5633 8.25067 14.0007 9.5 14Z" fill="#059784"/> +</svg> diff --git a/public/assets/icons/outward.svg b/public/assets/icons/outward.svg new file mode 100644 index 0000000..6cc9529 --- /dev/null +++ b/public/assets/icons/outward.svg @@ -0,0 +1,3 @@ +<svg width="21" height="20" viewBox="0 0 21 20" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M4.5 16L16.5 4M16.5 4H5.5M16.5 4V15" stroke="#F2F9FF" stroke-width="2"/> +</svg> diff --git a/public/assets/icons/pagination.svg b/public/assets/icons/pagination.svg new file mode 100644 index 0000000..9888ee7 --- /dev/null +++ b/public/assets/icons/pagination.svg @@ -0,0 +1,3 @@ +<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M18 22L12 16L18 10L19.4 11.4L14.8 16L19.4 20.6L18 22Z" fill="#5D6A77"/> +</svg> diff --git a/public/assets/icons/service/bag.svg b/public/assets/icons/service/bag.svg new file mode 100644 index 0000000..4b0908e --- /dev/null +++ b/public/assets/icons/service/bag.svg @@ -0,0 +1,11 @@ +<svg width="44" height="44" viewBox="0 0 44 44" fill="none" xmlns="http://www.w3.org/2000/svg"> +<g clip-path="url(#clip0_2010_3759)"> +<path d="M30.3498 27.6996C30.3837 27.7931 30.4284 27.8823 30.4828 27.9656C30.5394 28.0505 30.6045 28.1294 30.6772 28.2009C30.751 28.2712 30.8296 28.3362 30.9126 28.3954C30.9958 28.4498 31.0851 28.4944 31.1786 28.5284C31.2703 28.5698 31.3665 28.6006 31.4651 28.6205C31.5627 28.6408 31.6622 28.6511 31.7619 28.6512C31.8616 28.6516 31.9611 28.6413 32.0586 28.6205C32.1602 28.5992 32.2596 28.5684 32.3553 28.5284C32.4456 28.4944 32.5315 28.4497 32.6112 28.3954C32.7804 28.2807 32.9263 28.1348 33.0409 27.9656C33.0947 27.8803 33.1426 27.7914 33.1842 27.6996C33.2175 27.6059 33.2449 27.5102 33.266 27.413C33.307 27.2173 33.307 27.0153 33.266 26.8196C33.2449 26.7224 33.2175 26.6267 33.1842 26.533C33.1426 26.4412 33.0947 26.3523 33.0409 26.267C32.9263 26.0977 32.7804 25.9519 32.6112 25.8372C32.5294 25.7835 32.4439 25.7356 32.3553 25.694C32.253 25.6633 32.1609 25.6326 32.0586 25.6121C31.8629 25.5712 31.6608 25.5712 31.4651 25.6121C31.368 25.6333 31.2723 25.6606 31.1786 25.694C31.0867 25.7356 30.9978 25.7834 30.9126 25.8372C30.8296 25.8964 30.751 25.9614 30.6772 26.0316C30.6045 26.1032 30.5394 26.1821 30.4828 26.267C30.4284 26.3503 30.3837 26.4395 30.3498 26.533C30.3084 26.6248 30.2775 26.7209 30.2577 26.8196C30.2168 27.0153 30.2168 27.2173 30.2577 27.413C30.2775 27.5117 30.3084 27.6078 30.3498 27.6996Z" fill="#FFD288"/> +<path d="M42.4651 8.18605H31.7209V1.53488C31.7209 1.12781 31.5592 0.737404 31.2714 0.449557C30.9835 0.16171 30.5931 0 30.186 0L13.814 0C13.4069 0 13.0165 0.16171 12.7286 0.449557C12.4408 0.737404 12.2791 1.12781 12.2791 1.53488V8.18605H1.53488C1.12781 8.18605 0.737404 8.34776 0.449557 8.6356C0.16171 8.92345 0 9.31385 0 9.72093L0 27.1163C0 27.5234 0.16171 27.9138 0.449557 28.2016C0.737404 28.4895 1.12781 28.6512 1.53488 28.6512H3.26112L5.12958 42.6698C5.17914 43.0381 5.36069 43.376 5.64053 43.6207C5.92036 43.8653 6.27947 44.0001 6.65116 44H37.3488C37.7205 44.0001 38.0796 43.8653 38.3595 43.6207C38.6393 43.376 38.8209 43.0381 38.8704 42.6698L40.7389 28.6512H42.4651C42.8722 28.6512 43.2626 28.4895 43.5504 28.2016C43.8383 27.9138 44 27.5234 44 27.1163V9.72093C44 9.31385 43.8383 8.92345 43.5504 8.6356C43.2626 8.34776 42.8722 8.18605 42.4651 8.18605ZM15.3488 3.06977H28.6512V8.18605H15.3488V3.06977ZM40.9302 25.5814H37.2209C36.8139 25.5814 36.4234 25.7431 36.1356 26.031C35.8478 26.3188 35.686 26.7092 35.686 27.1163C35.686 27.5234 35.8478 27.9138 36.1356 28.2016C36.4234 28.4895 36.8139 28.6512 37.2209 28.6512H37.6425L36.0053 40.9302H7.9947L6.35749 28.6512H15.3488V31.2093C15.3488 31.6164 15.5105 32.0068 15.7984 32.2946C16.0862 32.5825 16.4766 32.7442 16.8837 32.7442H27.1163C27.5234 32.7442 27.9138 32.5825 28.2016 32.2946C28.4895 32.0068 28.6512 31.6164 28.6512 31.2093V23.0233C28.6512 22.6162 28.4895 22.2258 28.2016 21.9379C27.9138 21.6501 27.5234 21.4884 27.1163 21.4884H16.8837C16.4766 21.4884 16.0862 21.6501 15.7984 21.9379C15.5105 22.2258 15.3488 22.6162 15.3488 23.0233V25.5814H3.06977V11.2558H40.9302V25.5814ZM18.4186 24.5581H25.5814V29.6744H18.4186V24.5581Z" fill="#FFD288"/> +</g> +<defs> +<clipPath id="clip0_2010_3759"> +<rect width="44" height="44" fill="white"/> +</clipPath> +</defs> +</svg> diff --git a/public/assets/icons/service/bus.svg b/public/assets/icons/service/bus.svg new file mode 100644 index 0000000..15e46df --- /dev/null +++ b/public/assets/icons/service/bus.svg @@ -0,0 +1,10 @@ +<svg width="44" height="44" viewBox="0 0 44 44" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M37 34C36.6022 34 36.2206 33.842 35.9393 33.5607C35.658 33.2794 35.5 32.8978 35.5 32.5C35.5 32.1022 35.658 31.7206 35.9393 31.4393C36.2206 31.158 36.6022 31 37 31C37.9283 31 38.8185 30.6313 39.4749 29.9749C40.1312 29.3185 40.5 28.4283 40.5 27.5V11.5C40.5 10.5717 40.1312 9.6815 39.4749 9.02513C38.8185 8.36875 37.9283 8 37 8H7C6.07174 8 5.1815 8.36875 4.52513 9.02513C3.86875 9.6815 3.5 10.5717 3.5 11.5V14.25C3.5 14.6478 3.34196 15.0294 3.06066 15.3107C2.77936 15.592 2.39782 15.75 2 15.75C1.60218 15.75 1.22064 15.592 0.93934 15.3107C0.658035 15.0294 0.5 14.6478 0.5 14.25L0.5 11.5C0.502117 9.77674 1.18762 8.12467 2.40614 6.90614C3.62467 5.68762 5.27674 5.00212 7 5H37C38.7233 5.00212 40.3753 5.68762 41.5939 6.90614C42.8124 8.12467 43.4979 9.77674 43.5 11.5V27.5C43.4979 29.2233 42.8124 30.8753 41.5939 32.0939C40.3753 33.3124 38.7233 33.9979 37 34Z" fill="#B0E6A1"/> +<path d="M2 21.46C1.80291 21.46 1.60777 21.4211 1.42572 21.3456C1.24366 21.2701 1.07827 21.1595 0.939 21.02C0.870932 20.9477 0.80779 20.8708 0.75 20.79C0.697096 20.7067 0.649984 20.6198 0.609 20.53C0.577212 20.4383 0.550834 20.3448 0.53 20.25C0.510132 20.1546 0.50008 20.0575 0.5 19.96C0.500073 19.8593 0.510122 19.7588 0.53 19.66C0.55 19.57 0.58 19.47 0.609 19.38C0.650007 19.2934 0.697126 19.2099 0.75 19.13C0.914548 18.8829 1.14872 18.6902 1.42286 18.5763C1.697 18.4624 1.99879 18.4323 2.29 18.49C2.38461 18.5107 2.4778 18.5374 2.569 18.57C2.6592 18.6105 2.74642 18.6572 2.83 18.71C2.91105 18.7678 2.98791 18.8313 3.06 18.9C3.13077 18.9702 3.19441 19.0473 3.25 19.13C3.30255 19.2099 3.34933 19.2935 3.39 19.38C3.42 19.47 3.45 19.57 3.47 19.66C3.48988 19.7588 3.49993 19.8593 3.5 19.96C3.49992 20.0575 3.48987 20.1546 3.47 20.25C3.44931 20.345 3.42259 20.4385 3.39 20.53C3.34935 20.6198 3.30258 20.7067 3.25 20.79C3.19187 20.8708 3.12839 20.9477 3.06 21.02C2.77897 21.3014 2.39769 21.4597 2 21.46Z" fill="#B0E6A1"/> +<path d="M7 34C5.27674 33.9979 3.62467 33.3124 2.40614 32.0939C1.18762 30.8753 0.502117 29.2233 0.5 27.5C0.5 27.1022 0.658035 26.7206 0.93934 26.4393C1.22064 26.158 1.60218 26 2 26C2.39782 26 2.77936 26.158 3.06066 26.4393C3.34196 26.7206 3.5 27.1022 3.5 27.5C3.5 28.4283 3.86875 29.3185 4.52513 29.9749C5.1815 30.6313 6.07174 31 7 31C7.39782 31 7.77936 31.158 8.06066 31.4393C8.34196 31.7206 8.5 32.1022 8.5 32.5C8.5 32.8978 8.34196 33.2794 8.06066 33.5607C7.77936 33.842 7.39782 34 7 34Z" fill="#B0E6A1"/> +<path d="M12 39C10.7144 39 9.45772 38.6188 8.3888 37.9046C7.31988 37.1903 6.48676 36.1752 5.99479 34.9874C5.50282 33.7997 5.37409 32.4928 5.6249 31.2319C5.8757 29.971 6.49477 28.8129 7.40381 27.9038C8.31285 26.9948 9.47104 26.3757 10.7319 26.1249C11.9928 25.8741 13.2997 26.0028 14.4874 26.4948C15.6752 26.9868 16.6903 27.8199 17.4046 28.8888C18.1188 29.9577 18.5 31.2144 18.5 32.5C18.4979 34.2233 17.8124 35.8753 16.5939 37.0939C15.3753 38.3124 13.7233 38.9979 12 39ZM12 29C11.3078 29 10.6311 29.2053 10.0555 29.5899C9.47993 29.9744 9.03133 30.5211 8.76642 31.1606C8.50152 31.8002 8.43221 32.5039 8.56725 33.1828C8.7023 33.8618 9.03565 34.4854 9.52513 34.9749C10.0146 35.4644 10.6383 35.7977 11.3172 35.9328C11.9961 36.0678 12.6999 35.9985 13.3394 35.7336C13.9789 35.4687 14.5256 35.0201 14.9101 34.4445C15.2947 33.8689 15.5 33.1922 15.5 32.5C15.5 31.5717 15.1313 30.6815 14.4749 30.0251C13.8185 29.3688 12.9283 29 12 29Z" fill="#B0E6A1"/> +<path d="M32 39C30.7144 39 29.4577 38.6188 28.3888 37.9046C27.3199 37.1903 26.4868 36.1752 25.9948 34.9874C25.5028 33.7997 25.3741 32.4928 25.6249 31.2319C25.8757 29.971 26.4948 28.8129 27.4038 27.9038C28.3129 26.9948 29.471 26.3757 30.7319 26.1249C31.9928 25.8741 33.2997 26.0028 34.4874 26.4948C35.6752 26.9868 36.6903 27.8199 37.4046 28.8888C38.1188 29.9577 38.5 31.2144 38.5 32.5C38.4979 34.2233 37.8124 35.8753 36.5939 37.0939C35.3753 38.3124 33.7233 38.9979 32 39ZM32 29C31.3078 29 30.6311 29.2053 30.0555 29.5899C29.4799 29.9744 29.0313 30.5211 28.7664 31.1606C28.5015 31.8002 28.4322 32.5039 28.5673 33.1828C28.7023 33.8618 29.0356 34.4854 29.5251 34.9749C30.0146 35.4644 30.6383 35.7977 31.3172 35.9328C31.9961 36.0678 32.6999 35.9985 33.3394 35.7336C33.9789 35.4687 34.5256 35.0201 34.9101 34.4445C35.2947 33.8689 35.5 33.1922 35.5 32.5C35.5 31.5717 35.1313 30.6815 34.4749 30.0251C33.8185 29.3688 32.9283 29 32 29Z" fill="#B0E6A1"/> +<path d="M27 34H17C16.6022 34 16.2206 33.842 15.9393 33.5607C15.658 33.2794 15.5 32.8978 15.5 32.5C15.5 32.1022 15.658 31.7206 15.9393 31.4393C16.2206 31.158 16.6022 31 17 31H27C27.3978 31 27.7794 31.158 28.0607 31.4393C28.342 31.7206 28.5 32.1022 28.5 32.5C28.5 32.8978 28.342 33.2794 28.0607 33.5607C27.7794 33.842 27.3978 34 27 34Z" fill="#B0E6A1"/> +<path d="M42 23H36C34.5413 23 33.1424 22.4205 32.1109 21.3891C31.0795 20.3576 30.5 18.9587 30.5 17.5C30.5 16.0413 31.0795 14.6424 32.1109 13.6109C33.1424 12.5795 34.5413 12 36 12H42C42.3978 12 42.7794 12.158 43.0607 12.4393C43.342 12.7206 43.5 13.1022 43.5 13.5V21.5C43.5 21.8978 43.342 22.2794 43.0607 22.5607C42.7794 22.842 42.3978 23 42 23ZM36 15C35.337 15 34.7011 15.2634 34.2322 15.7322C33.7634 16.2011 33.5 16.837 33.5 17.5C33.5 18.163 33.7634 18.7989 34.2322 19.2678C34.7011 19.7366 35.337 20 36 20H40.5V15H36Z" fill="#B0E6A1"/> +<path d="M21 23H15C13.5413 23 12.1424 22.4205 11.1109 21.3891C10.0795 20.3576 9.5 18.9587 9.5 17.5C9.5 16.0413 10.0795 14.6424 11.1109 13.6109C12.1424 12.5795 13.5413 12 15 12H21C22.4587 12 23.8576 12.5795 24.8891 13.6109C25.9205 14.6424 26.5 16.0413 26.5 17.5C26.5 18.9587 25.9205 20.3576 24.8891 21.3891C23.8576 22.4205 22.4587 23 21 23ZM15 15C14.337 15 13.7011 15.2634 13.2322 15.7322C12.7634 16.2011 12.5 16.837 12.5 17.5C12.5 18.163 12.7634 18.7989 13.2322 19.2678C13.7011 19.7366 14.337 20 15 20H21C21.663 20 22.2989 19.7366 22.7678 19.2678C23.2366 18.7989 23.5 18.163 23.5 17.5C23.5 16.837 23.2366 16.2011 22.7678 15.7322C22.2989 15.2634 21.663 15 21 15H15Z" fill="#B0E6A1"/> +</svg> diff --git a/public/assets/icons/service/call.svg b/public/assets/icons/service/call.svg new file mode 100644 index 0000000..6fea9d8 --- /dev/null +++ b/public/assets/icons/service/call.svg @@ -0,0 +1,16 @@ +<svg width="44" height="44" viewBox="0 0 44 44" fill="none" xmlns="http://www.w3.org/2000/svg"> +<g clip-path="url(#clip0_2010_3477)"> +<path d="M39 31.5002H36C35.6022 31.5002 35.2206 31.3422 34.9393 31.0609C34.658 30.7796 34.5 30.3981 34.5 30.0002V16.0002C34.5 15.6024 34.658 15.2209 34.9393 14.9396C35.2206 14.6583 35.6022 14.5002 36 14.5002C36.3978 14.5002 36.7794 14.6583 37.0607 14.9396C37.342 15.2209 37.5 15.6024 37.5 16.0002V17.5002H39C40.1931 17.5016 41.3369 17.9761 42.1805 18.8197C43.0241 19.6634 43.4987 20.8072 43.5 22.0002V27.0002C43.4987 28.1933 43.0241 29.3371 42.1805 30.1808C41.3369 31.0244 40.1931 31.4989 39 31.5002ZM37.5 28.5002H39C39.3978 28.5002 39.7794 28.3422 40.0607 28.0609C40.342 27.7796 40.5 27.3981 40.5 27.0002V22.0002C40.5 21.6024 40.342 21.2209 40.0607 20.9396C39.7794 20.6583 39.3978 20.5002 39 20.5002H37.5V28.5002Z" fill="#FFD288"/> +<path d="M34.79 11.7902C34.6929 11.7939 34.5957 11.7872 34.5 11.7702C34.4007 11.7494 34.3036 11.7193 34.21 11.6802C34.1215 11.6435 34.0376 11.5965 33.96 11.5402C33.8773 11.4883 33.8002 11.428 33.73 11.3602C33.6613 11.2881 33.5978 11.2113 33.54 11.1302C33.4874 11.0469 33.4406 10.96 33.4 10.8702C33.37 10.7802 33.34 10.6802 33.32 10.5902C33.3006 10.4948 33.2906 10.3976 33.29 10.3002C33.2901 9.89954 33.4482 9.51506 33.73 9.23022C33.8002 9.16242 33.8773 9.1021 33.96 9.05022C34.0376 8.99396 34.1215 8.94698 34.21 8.91022C34.3036 8.87116 34.4007 8.84103 34.5 8.82022C34.7414 8.77777 34.9894 8.79277 35.224 8.864C35.4585 8.93523 35.673 9.06069 35.85 9.23022C36.1318 9.51506 36.2899 9.89954 36.29 10.3002C36.2901 10.4965 36.2492 10.6906 36.17 10.8702C36.1368 10.9616 36.0932 11.0488 36.04 11.1302C35.9822 11.2113 35.9187 11.2881 35.85 11.3602C35.5654 11.635 35.1856 11.7891 34.79 11.7902Z" fill="#FFD288"/> +<path d="M8 31.5002H5C3.80693 31.4989 2.66311 31.0244 1.81948 30.1808C0.975854 29.3371 0.501323 28.1933 0.5 27.0002L0.5 22.0002C0.501323 20.8072 0.975854 19.6633 1.81948 18.8197C2.66311 17.9761 3.80693 17.5016 5 17.5002H6.5V16.0002C6.4999 12.9699 7.38807 10.006 9.05468 7.4751C10.7213 4.94422 13.0932 2.95737 15.8771 1.76031C18.661 0.563252 21.7347 0.208484 24.7181 0.739889C27.7015 1.27129 30.4637 2.66556 32.663 4.75024C32.9412 5.02623 33.1004 5.40014 33.1064 5.79198C33.1125 6.18382 32.965 6.56247 32.6954 6.84693C32.4258 7.13138 32.0557 7.29905 31.6641 7.31406C31.2725 7.32906 30.8905 7.19023 30.6 6.92724C28.8263 5.24575 26.5987 4.12111 24.1925 3.69242C21.7864 3.26373 19.3074 3.5498 17.0622 4.51526C14.8169 5.48071 12.9039 7.08319 11.5599 9.12446C10.2158 11.1657 9.49968 13.5562 9.5 16.0002V30.0002C9.5 30.3981 9.34196 30.7796 9.06066 31.0609C8.77936 31.3422 8.39782 31.5002 8 31.5002ZM5 20.5002C4.60218 20.5002 4.22064 20.6583 3.93934 20.9396C3.65804 21.2209 3.5 21.6024 3.5 22.0002V27.0002C3.5 27.3981 3.65804 27.7796 3.93934 28.0609C4.22064 28.3422 4.60218 28.5002 5 28.5002H6.5V20.5002H5Z" fill="#FFD288"/> +<path d="M24 43.5002H22C21.0717 43.5002 20.1815 43.1315 19.5251 42.4751C18.8687 41.8187 18.5 40.9285 18.5 40.0002C18.5 39.072 18.8687 38.1817 19.5251 37.5254C20.1815 36.869 21.0717 36.5002 22 36.5002H24C24.9283 36.5002 25.8185 36.869 26.4749 37.5254C27.1313 38.1817 27.5 39.072 27.5 40.0002C27.5 40.9285 27.1313 41.8187 26.4749 42.4751C25.8185 43.1315 24.9283 43.5002 24 43.5002ZM22 39.5002C21.8674 39.5002 21.7402 39.5529 21.6464 39.6467C21.5527 39.7405 21.5 39.8676 21.5 40.0002C21.5 40.1329 21.5527 40.26 21.6464 40.3538C21.7402 40.4476 21.8674 40.5002 22 40.5002H24C24.1326 40.5002 24.2598 40.4476 24.3536 40.3538C24.4473 40.26 24.5 40.1329 24.5 40.0002C24.5 39.8676 24.4473 39.7405 24.3536 39.6467C24.2598 39.5529 24.1326 39.5002 24 39.5002H22Z" fill="#FFD288"/> +<path d="M30 41.5002H26C25.6022 41.5002 25.2206 41.3422 24.9393 41.0609C24.658 40.7796 24.5 40.3981 24.5 40.0002C24.5 39.6024 24.658 39.2209 24.9393 38.9396C25.2206 38.6583 25.6022 38.5002 26 38.5002H30C31.1931 38.4989 32.3369 38.0244 33.1805 37.1808C34.0241 36.3371 34.4987 35.1933 34.5 34.0002V30.0002C34.5 29.6024 34.658 29.2209 34.9393 28.9396C35.2206 28.6583 35.6022 28.5002 36 28.5002C36.3978 28.5002 36.7794 28.6583 37.0607 28.9396C37.342 29.2209 37.5 29.6024 37.5 30.0002V34.0002C37.4979 35.9887 36.707 37.8951 35.301 39.3012C33.8949 40.7073 31.9885 41.4981 30 41.5002Z" fill="#FFD288"/> +<path d="M17 25.5002C16.6022 25.5002 16.2206 25.3422 15.9393 25.0609C15.658 24.7796 15.5 24.3981 15.5 24.0002V23.0002C15.5 22.6024 15.658 22.2209 15.9393 21.9396C16.2206 21.6583 16.6022 21.5002 17 21.5002C17.3978 21.5002 17.7794 21.6583 18.0607 21.9396C18.342 22.2209 18.5 22.6024 18.5 23.0002V24.0002C18.5 24.3981 18.342 24.7796 18.0607 25.0609C17.7794 25.3422 17.3978 25.5002 17 25.5002Z" fill="#FFD288"/> +<path d="M27 25.5002C26.6022 25.5002 26.2206 25.3422 25.9393 25.0609C25.658 24.7796 25.5 24.3981 25.5 24.0002V23.0002C25.5 22.6024 25.658 22.2209 25.9393 21.9396C26.2206 21.6583 26.6022 21.5002 27 21.5002C27.3978 21.5002 27.7794 21.6583 28.0607 21.9396C28.342 22.2209 28.5 22.6024 28.5 23.0002V24.0002C28.5 24.3981 28.342 24.7796 28.0607 25.0609C27.7794 25.3422 27.3978 25.5002 27 25.5002Z" fill="#FFD288"/> +</g> +<defs> +<clipPath id="clip0_2010_3477"> +<rect width="44" height="44" fill="white"/> +</clipPath> +</defs> +</svg> diff --git a/public/assets/icons/service/car.svg b/public/assets/icons/service/car.svg new file mode 100644 index 0000000..f504a8f --- /dev/null +++ b/public/assets/icons/service/car.svg @@ -0,0 +1,9 @@ +<svg width="44" height="44" viewBox="0 0 44 44" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M42 31.5H37C36.6022 31.5 36.2206 31.342 35.9393 31.0607C35.658 30.7794 35.5 30.3978 35.5 30C35.5 29.6022 35.658 29.2207 35.9393 28.9393C36.2206 28.658 36.6022 28.5 37 28.5H40.5V24.154C40.4987 22.9201 40.0079 21.7371 39.1354 20.8646C38.2629 19.9921 37.0799 19.5013 35.846 19.5H33C32.7531 19.5 32.51 19.439 32.2922 19.3225C32.0745 19.2059 31.889 19.0375 31.752 18.832L28.035 13.258C27.4705 12.4088 26.7047 11.7126 25.8057 11.2313C24.9068 10.7501 23.9027 10.4989 22.883 10.5H12.77C10.3123 10.5027 7.95593 11.4802 6.21804 13.218C4.48015 14.9559 3.50265 17.3123 3.5 19.77V28.5H7C7.39782 28.5 7.77936 28.658 8.06066 28.9393C8.34196 29.2207 8.5 29.6022 8.5 30C8.5 30.3978 8.34196 30.7794 8.06066 31.0607C7.77936 31.342 7.39782 31.5 7 31.5H2C1.60218 31.5 1.22064 31.342 0.93934 31.0607C0.658035 30.7794 0.5 30.3978 0.5 30L0.5 19.77C0.503441 16.5169 1.79727 13.3979 4.0976 11.0976C6.39793 8.79728 9.51685 7.50345 12.77 7.5H22.883C24.3965 7.49843 25.8869 7.87133 27.2213 8.58548C28.5557 9.29963 29.6927 10.3328 30.531 11.593L33.8 16.5H35.843C37.8728 16.5013 39.8192 17.3081 41.2548 18.7431C42.6904 20.1781 43.4979 22.1242 43.5 24.154V30C43.5 30.3978 43.342 30.7794 43.0607 31.0607C42.7794 31.342 42.3978 31.5 42 31.5Z" fill="#B0E6A1"/> +<path d="M8.41003 19.5C8.18684 19.5028 7.96585 19.4557 7.76317 19.3622C7.56049 19.2687 7.38122 19.1312 7.23845 18.9596C7.09567 18.7881 6.99298 18.5868 6.93787 18.3705C6.88275 18.1542 6.8766 17.9284 6.91986 17.7094C6.96313 17.4904 7.05471 17.2839 7.18794 17.1048C7.32116 16.9257 7.49268 16.7786 7.68997 16.6742C7.88726 16.5699 8.10536 16.5108 8.32837 16.5014C8.55137 16.4921 8.77366 16.5326 8.97903 16.62C9.07093 16.6531 9.15855 16.6971 9.24003 16.751C9.32093 16.809 9.39777 16.8725 9.47003 16.941C9.75093 17.2223 9.90871 17.6035 9.90871 18.001C9.90871 18.3985 9.75093 18.7798 9.47003 19.061C9.39726 19.1289 9.32045 19.1924 9.24003 19.251C9.15609 19.3029 9.06891 19.3493 8.97903 19.39C8.88745 19.4214 8.79433 19.4481 8.70003 19.47C8.60455 19.4894 8.50743 19.4994 8.41003 19.5Z" fill="#B0E6A1"/> +<path d="M33.0005 19.5H13.1885C12.7907 19.5 12.4091 19.342 12.1278 19.0607C11.8465 18.7794 11.6885 18.3978 11.6885 18C11.6885 17.6022 11.8465 17.2206 12.1278 16.9393C12.4091 16.658 12.7907 16.5 13.1885 16.5H33.0005C33.3983 16.5 33.7798 16.658 34.0611 16.9393C34.3424 17.2206 34.5005 17.6022 34.5005 18C34.5005 18.3978 34.3424 18.7794 34.0611 19.0607C33.7798 19.342 33.3983 19.5 33.0005 19.5Z" fill="#B0E6A1"/> +<path d="M18.9234 19.4239C18.6075 19.4233 18.2999 19.323 18.0444 19.1373C17.7889 18.9517 17.5985 18.6901 17.5004 18.3899L14.5744 9.46687C14.4506 9.08867 14.4822 8.67681 14.6622 8.3219C14.8421 7.96699 15.1557 7.69809 15.5339 7.57437C15.9121 7.45064 16.3239 7.48223 16.6788 7.66217C17.0337 7.84211 17.3026 8.15567 17.4264 8.53387L20.3494 17.4569C20.4731 17.8349 20.4415 18.2467 20.2617 18.6015C20.0818 18.9563 19.7684 19.2251 19.3904 19.3489C19.2395 19.3979 19.082 19.4232 18.9234 19.4239Z" fill="#B0E6A1"/> +<path d="M12 36.5C10.7144 36.5 9.45772 36.1188 8.3888 35.4046C7.31988 34.6903 6.48676 33.6752 5.99479 32.4874C5.50282 31.2997 5.37409 29.9928 5.6249 28.7319C5.8757 27.471 6.49477 26.3129 7.40381 25.4038C8.31285 24.4948 9.47104 23.8757 10.7319 23.6249C11.9928 23.3741 13.2997 23.5028 14.4874 23.9948C15.6752 24.4868 16.6903 25.3199 17.4046 26.3888C18.1188 27.4577 18.5 28.7144 18.5 30C18.4979 31.7233 17.8124 33.3753 16.5939 34.5939C15.3753 35.8124 13.7233 36.4979 12 36.5ZM12 26.5C11.3078 26.5 10.6311 26.7053 10.0555 27.0899C9.47993 27.4744 9.03133 28.0211 8.76642 28.6606C8.50152 29.3002 8.43221 30.0039 8.56725 30.6828C8.7023 31.3618 9.03565 31.9854 9.52513 32.4749C10.0146 32.9644 10.6383 33.2977 11.3172 33.4328C11.9961 33.5678 12.6999 33.4985 13.3394 33.2336C13.9789 32.9687 14.5256 32.5201 14.9101 31.9445C15.2947 31.3689 15.5 30.6922 15.5 30C15.5 29.0717 15.1313 28.1815 14.4749 27.5251C13.8185 26.8688 12.9283 26.5 12 26.5Z" fill="#B0E6A1"/> +<path d="M32 36.5C30.7144 36.5 29.4577 36.1188 28.3888 35.4046C27.3199 34.6903 26.4868 33.6752 25.9948 32.4874C25.5028 31.2997 25.3741 29.9928 25.6249 28.7319C25.8757 27.471 26.4948 26.3129 27.4038 25.4038C28.3129 24.4948 29.471 23.8757 30.7319 23.6249C31.9928 23.3741 33.2997 23.5028 34.4874 23.9948C35.6752 24.4868 36.6903 25.3199 37.4046 26.3888C38.1188 27.4577 38.5 28.7144 38.5 30C38.4979 31.7233 37.8124 33.3753 36.5939 34.5939C35.3753 35.8124 33.7233 36.4979 32 36.5ZM32 26.5C31.3078 26.5 30.6311 26.7053 30.0555 27.0899C29.4799 27.4744 29.0313 28.0211 28.7664 28.6606C28.5015 29.3002 28.4322 30.0039 28.5673 30.6828C28.7023 31.3618 29.0356 31.9854 29.5251 32.4749C30.0146 32.9644 30.6383 33.2977 31.3172 33.4328C31.9961 33.5678 32.6999 33.4985 33.3394 33.2336C33.9789 32.9687 34.5256 32.5201 34.9101 31.9445C35.2947 31.3689 35.5 30.6922 35.5 30C35.5 29.0717 35.1313 28.1815 34.4749 27.5251C33.8185 26.8688 32.9283 26.5 32 26.5Z" fill="#B0E6A1"/> +<path d="M27 31.5H17C16.6022 31.5 16.2206 31.342 15.9393 31.0607C15.658 30.7794 15.5 30.3978 15.5 30C15.5 29.6022 15.658 29.2206 15.9393 28.9393C16.2206 28.658 16.6022 28.5 17 28.5H27C27.3978 28.5 27.7794 28.658 28.0607 28.9393C28.342 29.2206 28.5 29.6022 28.5 30C28.5 30.3978 28.342 30.7794 28.0607 31.0607C27.7794 31.342 27.3978 31.5 27 31.5Z" fill="#B0E6A1"/> +</svg> diff --git a/public/assets/icons/service/megaphone.svg b/public/assets/icons/service/megaphone.svg new file mode 100644 index 0000000..04e1d27 --- /dev/null +++ b/public/assets/icons/service/megaphone.svg @@ -0,0 +1,4 @@ +<svg width="44" height="44" viewBox="0 0 44 44" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M43.5197 16.9998C43.5171 15.5381 43.0225 14.1199 42.1154 12.9737C41.2083 11.8275 39.9417 11.0202 38.5197 10.6818V3.99981C38.5196 3.76767 38.4657 3.53872 38.3621 3.33096C38.2586 3.1232 38.1082 2.94231 37.9229 2.80253C37.7375 2.66275 37.5223 2.5679 37.2941 2.52543C37.0658 2.48297 36.8309 2.49405 36.6077 2.55781L15.8097 8.49981H9.01967C6.86879 8.48834 4.79366 9.29328 3.21314 10.7522C1.63262 12.2111 0.66443 14.2153 0.504005 16.3602C0.34358 18.5051 1.00287 20.631 2.34879 22.3088C3.69471 23.9865 5.62702 25.0912 7.75567 25.3998L10.5457 40.2808C10.6111 40.6238 10.7941 40.9332 11.0632 41.1557C11.3322 41.3783 11.6705 41.4999 12.0197 41.4998H21.0197C21.2416 41.4998 21.4608 41.4506 21.6614 41.3557C21.8619 41.2608 22.039 41.1225 22.1797 40.9509C22.3204 40.7793 22.4213 40.5786 22.4751 40.3633C22.5288 40.148 22.5342 39.9234 22.4907 39.7058L19.8817 26.6638L36.6077 31.4428C36.831 31.5066 37.066 31.5177 37.2943 31.4751C37.5226 31.4326 37.7379 31.3377 37.9233 31.1978C38.1086 31.0579 38.259 30.8769 38.3625 30.669C38.466 30.4611 38.5198 30.232 38.5197 29.9998V23.3188C39.9418 22.9804 41.2086 22.1729 42.1157 21.0265C43.0228 19.8802 43.5174 18.4617 43.5197 16.9998ZM3.51967 16.9998C3.52126 15.5416 4.10123 14.1436 5.13234 13.1125C6.16344 12.0814 7.56147 11.5014 9.01967 11.4998H14.5197V15.4998H13.2387C12.8408 15.4998 12.4593 15.6578 12.178 15.9392C11.8967 16.2205 11.7387 16.602 11.7387 16.9998C11.7387 17.3976 11.8967 17.7792 12.178 18.0605C12.4593 18.3418 12.8408 18.4998 13.2387 18.4998H14.5197V22.4998H9.01967C7.56147 22.4982 6.16344 21.9183 5.13234 20.8871C4.10123 19.856 3.52126 18.458 3.51967 16.9998ZM19.1897 38.4998H13.2647L10.8267 25.4998H15.8097L16.6377 25.7358L19.1897 38.4998ZM35.5197 28.0128L17.5197 22.8688V11.1318L35.5197 5.98881V28.0128ZM38.5197 20.1498V13.8498C39.1182 14.1304 39.6244 14.5757 39.979 15.1336C40.3335 15.6914 40.5219 16.3388 40.5219 16.9998C40.5219 17.6608 40.3335 18.3082 39.979 18.866C39.6244 19.4239 39.1182 19.8692 38.5197 20.1498Z" fill="#FFD288"/> +<path d="M9.70967 18.0598C9.99106 17.7787 10.1493 17.3975 10.1497 16.9998C10.1449 16.6027 9.98733 16.2227 9.70967 15.9388C9.42052 15.6693 9.03995 15.5194 8.64467 15.5194C8.2494 15.5194 7.86882 15.6693 7.57967 15.9388C7.30488 16.2238 7.15082 16.6039 7.14967 16.9998C7.14541 17.1951 7.18291 17.3891 7.25967 17.5688C7.32857 17.7539 7.4379 17.9213 7.57967 18.0588C7.86243 18.3377 8.24251 18.4958 8.63967 18.4998C8.83812 18.499 9.03473 18.4617 9.21967 18.3898C9.40039 18.3081 9.56604 18.1965 9.70967 18.0598Z" fill="#FFD288"/> +</svg> diff --git a/public/assets/icons/service/track.svg b/public/assets/icons/service/track.svg new file mode 100644 index 0000000..4d3a80e --- /dev/null +++ b/public/assets/icons/service/track.svg @@ -0,0 +1,10 @@ +<svg width="44" height="44" viewBox="0 0 44 44" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M41.999 36.5H37.999C37.6011 36.5 37.2196 36.342 36.9383 36.0607C36.657 35.7794 36.499 35.3978 36.499 35C36.499 34.6022 36.657 34.2206 36.9383 33.9393C37.2196 33.658 37.6011 33.5 37.999 33.5H40.499V25.5H25.999C25.6011 25.5 25.2196 25.342 24.9383 25.0607C24.657 24.7794 24.499 24.3978 24.499 24V5.5H3.49896V23.719C3.49896 24.1168 3.34093 24.4984 3.05962 24.7797C2.77832 25.061 2.39679 25.219 1.99896 25.219C1.60114 25.219 1.21961 25.061 0.938302 24.7797C0.656998 24.4984 0.498962 24.1168 0.498962 23.719L0.498962 4C0.498962 3.60218 0.656998 3.22064 0.938302 2.93934C1.21961 2.65804 1.60114 2.5 1.99896 2.5H25.999C26.3968 2.5 26.7783 2.65804 27.0596 2.93934C27.3409 3.22064 27.499 3.60218 27.499 4V22.5H41.999C42.3968 22.5 42.7783 22.658 43.0596 22.9393C43.3409 23.2206 43.499 23.6022 43.499 24V35C43.499 35.3978 43.3409 35.7794 43.0596 36.0607C42.7783 36.342 42.3968 36.5 41.999 36.5Z" fill="#B0E6A1"/> +<path d="M1.99898 29.6899C1.90151 29.6904 1.80429 29.6803 1.70898 29.6599C1.61256 29.6406 1.51863 29.6104 1.42898 29.5699C1.33727 29.5333 1.25005 29.4863 1.16898 29.4299C1.08579 29.3788 1.00864 29.3184 0.938977 29.2499C0.870296 29.1779 0.806804 29.101 0.748977 29.0199C0.695789 28.9386 0.652167 28.8513 0.618977 28.7599C0.578554 28.6703 0.548363 28.5764 0.528977 28.4799C0.509109 28.3846 0.499057 28.2874 0.498977 28.1899C0.498102 27.9929 0.536569 27.7976 0.612123 27.6156C0.687677 27.4336 0.798799 27.2685 0.938977 27.1299C1.22603 26.8602 1.6051 26.7101 1.99898 26.7101C2.39286 26.7101 2.77193 26.8602 3.05898 27.1299C3.34036 27.411 3.49863 27.7923 3.49898 28.1899C3.4989 28.2874 3.48884 28.3846 3.46898 28.4799C3.44828 28.5749 3.42156 28.6684 3.38898 28.7599C3.34833 28.8497 3.30155 28.9366 3.24898 29.0199C3.19115 29.101 3.12766 29.1779 3.05898 29.2499C2.77696 29.5299 2.39632 29.6879 1.99898 29.6899Z" fill="#B0E6A1"/> +<path d="M6.99896 36.5H1.99896C1.60114 36.5 1.21961 36.342 0.938302 36.0607C0.656998 35.7794 0.498962 35.3978 0.498962 35C0.498962 34.6022 0.656998 34.2206 0.938302 33.9393C1.21961 33.658 1.60114 33.5 1.99896 33.5H6.99896C7.39679 33.5 7.77832 33.658 8.05962 33.9393C8.34093 34.2206 8.49896 34.6022 8.49896 35C8.49896 35.3978 8.34093 35.7794 8.05962 36.0607C7.77832 36.342 7.39679 36.5 6.99896 36.5Z" fill="#B0E6A1"/> +<path d="M41.999 25.5001C41.7449 25.5008 41.4947 25.4369 41.2721 25.3144C41.0494 25.192 40.8615 25.015 40.726 24.8001L37.918 20.3001C37.3845 19.4408 36.6401 18.7324 35.7554 18.2423C34.8707 17.7521 33.8753 17.4966 32.864 17.5001H25.999C25.6011 17.5001 25.2196 17.342 24.9383 17.0607C24.657 16.7794 24.499 16.3979 24.499 16.0001C24.499 15.6022 24.657 15.2207 24.9383 14.9394C25.2196 14.6581 25.6011 14.5001 25.999 14.5001H32.864C34.3849 14.4948 35.8818 14.879 37.2122 15.6161C38.5425 16.3533 39.662 17.4187 40.464 18.7111L43.273 23.2051C43.415 23.4323 43.4935 23.6933 43.5005 23.9612C43.5074 24.229 43.4425 24.4938 43.3124 24.7281C43.1824 24.9623 42.992 25.1575 42.761 25.2932C42.53 25.429 42.2669 25.5004 41.999 25.5001Z" fill="#B0E6A1"/> +<path d="M11.999 41.5C10.7134 41.5 9.45668 41.1188 8.38776 40.4046C7.31884 39.6903 6.48572 38.6752 5.99375 37.4874C5.50178 36.2997 5.37306 34.9928 5.62386 33.7319C5.87466 32.471 6.49373 31.3129 7.40277 30.4038C8.31181 29.4948 9.47 28.8757 10.7309 28.6249C11.9918 28.3741 13.2987 28.5028 14.4864 28.9948C15.6741 29.4868 16.6893 30.3199 17.4035 31.3888C18.1177 32.4577 18.499 33.7144 18.499 35C18.4968 36.7233 17.8113 38.3753 16.5928 39.5939C15.3743 40.8124 13.7222 41.4979 11.999 41.5ZM11.999 31.5C11.3067 31.5 10.63 31.7053 10.0545 32.0899C9.4789 32.4744 9.03029 33.0211 8.76539 33.6606C8.50048 34.3002 8.43117 35.0039 8.56622 35.6828C8.70126 36.3618 9.03461 36.9854 9.52409 37.4749C10.0136 37.9644 10.6372 38.2977 11.3161 38.4327C11.9951 38.5678 12.6988 38.4985 13.3384 38.2336C13.9779 37.9687 14.5245 37.5201 14.9091 36.9445C15.2937 36.3689 15.499 35.6922 15.499 35C15.499 34.0717 15.1302 33.1815 14.4738 32.5251C13.8175 31.8688 12.9272 31.5 11.999 31.5Z" fill="#B0E6A1"/> +<path d="M32.999 41.5C31.7134 41.5 30.4567 41.1188 29.3878 40.4046C28.3188 39.6903 27.4857 38.6752 26.9937 37.4874C26.5018 36.2997 26.3731 34.9928 26.6239 33.7319C26.8747 32.471 27.4937 31.3129 28.4028 30.4038C29.3118 29.4948 30.47 28.8757 31.7309 28.6249C32.9918 28.3741 34.2987 28.5028 35.4864 28.9948C36.6741 29.4868 37.6893 30.3199 38.4035 31.3888C39.1177 32.4577 39.499 33.7144 39.499 35C39.4968 36.7233 38.8113 38.3753 37.5928 39.5939C36.3743 40.8124 34.7222 41.4979 32.999 41.5ZM32.999 31.5C32.3067 31.5 31.63 31.7053 31.0545 32.0899C30.4789 32.4744 30.0303 33.0211 29.7654 33.6606C29.5005 34.3002 29.4312 35.0039 29.5662 35.6828C29.7013 36.3618 30.0346 36.9854 30.5241 37.4749C31.0136 37.9644 31.6372 38.2977 32.3162 38.4327C32.9951 38.5678 33.6988 38.4985 34.3384 38.2336C34.9779 37.9687 35.5245 37.5201 35.9091 36.9445C36.2937 36.3689 36.499 35.6922 36.499 35C36.499 34.0717 36.1302 33.1815 35.4738 32.5251C34.8175 31.8688 33.9272 31.5 32.999 31.5Z" fill="#B0E6A1"/> +<path d="M27.999 36.5H16.999C16.6011 36.5 16.2196 36.342 15.9383 36.0607C15.657 35.7794 15.499 35.3978 15.499 35C15.499 34.6022 15.657 34.2206 15.9383 33.9393C16.2196 33.658 16.6011 33.5 16.999 33.5H27.999C28.3968 33.5 28.7783 33.658 29.0596 33.9393C29.3409 34.2206 29.499 34.6022 29.499 35C29.499 35.3978 29.3409 35.7794 29.0596 36.0607C28.7783 36.342 28.3968 36.5 27.999 36.5Z" fill="#B0E6A1"/> +<path d="M31.999 17.5C31.6011 17.5 31.2196 17.342 30.9383 17.0607C30.657 16.7794 30.499 16.3978 30.499 16V13C30.499 12.6022 30.657 12.2206 30.9383 11.9393C31.2196 11.658 31.6011 11.5 31.999 11.5C32.3968 11.5 32.7783 11.658 33.0596 11.9393C33.3409 12.2206 33.499 12.6022 33.499 13V16C33.499 16.3978 33.3409 16.7794 33.0596 17.0607C32.7783 17.342 32.3968 17.5 31.999 17.5Z" fill="#B0E6A1"/> +</svg> diff --git a/public/assets/icons/slider-logo.svg b/public/assets/icons/slider-logo.svg new file mode 100644 index 0000000..e81074e --- /dev/null +++ b/public/assets/icons/slider-logo.svg @@ -0,0 +1,3 @@ +<svg width="143" height="22" viewBox="0 0 143 22" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M12.48 0.199999V1.784H7.32V17H5.64V1.784H0.48V0.199999H12.48ZM20.9271 5H22.5111V17H20.9271V15.128C20.0311 16.568 18.6871 17.288 16.8951 17.288C15.4391 17.288 14.2871 16.848 13.4391 15.968C12.6071 15.072 12.1911 13.872 12.1911 12.368V5H13.7751V12.368C13.7751 13.44 14.0551 14.272 14.6151 14.864C15.1911 15.456 15.9991 15.752 17.0391 15.752C18.1911 15.752 19.1271 15.392 19.8471 14.672C20.5671 13.936 20.9271 12.808 20.9271 11.288V5ZM27.2059 6.992C27.9419 5.536 29.2059 4.808 30.9979 4.808V6.344C29.9099 6.344 29.0059 6.664 28.2859 7.304C27.5659 7.944 27.2059 8.952 27.2059 10.328V17H25.6219V5H27.2059V6.992ZM42.6248 17H40.5128L34.5128 11.216V17H32.9288V0.199999H34.5128V10.304L40.2248 5H42.3848L36.1928 10.76L42.6248 17ZM57.3401 4.712C58.6841 4.712 59.7641 5.144 60.5801 6.008C61.4121 6.872 61.8281 8.04 61.8281 9.512V17H60.2441V9.512C60.2441 8.472 59.9721 7.672 59.4281 7.112C58.9001 6.536 58.1961 6.248 57.3161 6.248C56.3241 6.248 55.5161 6.584 54.8921 7.256C54.2841 7.912 53.9801 8.944 53.9801 10.352V17H52.3961V9.512C52.3961 8.456 52.1401 7.648 51.6281 7.088C51.1321 6.528 50.4521 6.248 49.5881 6.248C48.6281 6.248 47.8121 6.584 47.1401 7.256C46.4681 7.928 46.1321 8.96 46.1321 10.352V17H44.5481V5H46.1321V6.752C46.9961 5.392 48.2201 4.712 49.8041 4.712C51.5321 4.712 52.7481 5.44 53.4521 6.896C54.3161 5.44 55.6121 4.712 57.3401 4.712ZM70.1959 4.712C71.9719 4.712 73.4039 5.344 74.4919 6.608C75.5959 7.856 76.1479 9.336 76.1479 11.048C76.1479 11.224 76.1319 11.472 76.0999 11.792H65.5639C65.7239 13.008 66.2359 13.976 67.0999 14.696C67.9799 15.4 69.0599 15.752 70.3399 15.752C71.2519 15.752 72.0359 15.568 72.6919 15.2C73.3639 14.816 73.8679 14.32 74.2039 13.712L75.5959 14.528C75.0679 15.376 74.3479 16.048 73.4359 16.544C72.5239 17.04 71.4839 17.288 70.3159 17.288C68.4279 17.288 66.8919 16.696 65.7079 15.512C64.5239 14.328 63.9319 12.824 63.9319 11C63.9319 9.208 64.5159 7.712 65.6839 6.512C66.8519 5.312 68.3559 4.712 70.1959 4.712ZM70.1959 6.248C68.9479 6.248 67.8999 6.624 67.0519 7.376C66.2199 8.112 65.7239 9.072 65.5639 10.256H74.5159C74.3559 8.992 73.8679 8.008 73.0519 7.304C72.2359 6.6 71.2839 6.248 70.1959 6.248ZM84.0435 4.712C85.4995 4.712 86.6435 5.16 87.4755 6.056C88.3235 6.936 88.7475 8.128 88.7475 9.632V17H87.1635V9.632C87.1635 8.56 86.8755 7.728 86.2995 7.136C85.7395 6.544 84.9395 6.248 83.8995 6.248C82.7475 6.248 81.8115 6.616 81.0915 7.352C80.3715 8.072 80.0115 9.192 80.0115 10.712V17H78.4275V5H80.0115V6.872C80.9075 5.432 82.2515 4.712 84.0435 4.712ZM93.4903 15.416H101.65V17H91.8103V0.199999H101.53V1.784H93.4903V7.736H100.93V9.32H93.4903V15.416ZM114.137 17H112.241L108.497 12.056L104.753 17H102.857L107.561 10.784L103.169 5H105.065L108.497 9.536L111.929 5H113.825L109.457 10.784L114.137 17ZM122.483 4.712C124.195 4.712 125.651 5.32 126.851 6.536C128.067 7.752 128.675 9.24 128.675 11C128.675 12.76 128.067 14.248 126.851 15.464C125.651 16.68 124.195 17.288 122.483 17.288C120.355 17.288 118.739 16.408 117.635 14.648V21.8H116.051V5H117.635V7.352C118.739 5.592 120.355 4.712 122.483 4.712ZM119.003 14.384C119.915 15.296 121.035 15.752 122.363 15.752C123.691 15.752 124.811 15.296 125.723 14.384C126.635 13.456 127.091 12.328 127.091 11C127.091 9.672 126.635 8.552 125.723 7.64C124.811 6.712 123.691 6.248 122.363 6.248C121.035 6.248 119.915 6.712 119.003 7.64C118.091 8.552 117.635 9.672 117.635 11C117.635 12.328 118.091 13.456 119.003 14.384ZM141.125 15.488C139.909 16.688 138.421 17.288 136.661 17.288C134.901 17.288 133.405 16.688 132.173 15.488C130.957 14.272 130.349 12.776 130.349 11C130.349 9.224 130.957 7.736 132.173 6.536C133.405 5.32 134.901 4.712 136.661 4.712C138.421 4.712 139.909 5.32 141.125 6.536C142.357 7.736 142.973 9.224 142.973 11C142.973 12.776 142.357 14.272 141.125 15.488ZM133.301 14.384C134.213 15.296 135.333 15.752 136.661 15.752C137.989 15.752 139.109 15.296 140.021 14.384C140.933 13.456 141.389 12.328 141.389 11C141.389 9.672 140.933 8.552 140.021 7.64C139.109 6.712 137.989 6.248 136.661 6.248C135.333 6.248 134.213 6.712 133.301 7.64C132.389 8.552 131.933 9.672 131.933 11C131.933 12.328 132.389 13.456 133.301 14.384Z" fill="white"/> +</svg> diff --git a/public/assets/icons/turkmen-textile.png b/public/assets/icons/turkmen-textile.png new file mode 100644 index 0000000..f5dfdad Binary files /dev/null and b/public/assets/icons/turkmen-textile.png differ diff --git a/public/assets/icons/white-logo.svg b/public/assets/icons/white-logo.svg new file mode 100644 index 0000000..21d346a --- /dev/null +++ b/public/assets/icons/white-logo.svg @@ -0,0 +1,3 @@ +<svg width="234" height="35" viewBox="0 0 234 35" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M19.95 0.399998V4.58H12.464V27H8.094V4.58H0.57V0.399998H19.95ZM32.6785 8H36.7825V27H32.6785V24.568C31.4372 26.5187 29.4738 27.494 26.7885 27.494C24.6098 27.494 22.8492 26.7973 21.5065 25.404C20.1638 24.0107 19.4925 22.098 19.4925 19.666V8H23.5965V19.248C23.5965 20.6667 23.9765 21.756 24.7365 22.516C25.4965 23.276 26.5352 23.656 27.8525 23.656C29.2965 23.656 30.4618 23.2127 31.3485 22.326C32.2352 21.414 32.6785 20.0333 32.6785 18.184V8ZM45.6855 11.192C46.7242 8.836 48.6748 7.658 51.5375 7.658V12.104C49.9668 12.0027 48.5988 12.3827 47.4335 13.244C46.2682 14.08 45.6855 15.4733 45.6855 17.424V27H41.5815V8H45.6855V11.192ZM71.3658 27H66.4638L58.6738 18.222V27H54.5698V0.399998H58.6738V16.398L66.0458 8H71.0618L62.7018 17.31L71.3658 27ZM94.8744 7.506C97.0278 7.506 98.7631 8.20267 100.08 9.596C101.398 10.9893 102.056 12.864 102.056 15.22V27H97.9524V15.486C97.9524 14.1687 97.6231 13.1553 96.9644 12.446C96.3058 11.7113 95.4064 11.344 94.2664 11.344C92.9998 11.344 91.9864 11.762 91.2264 12.598C90.4918 13.434 90.1244 14.688 90.1244 16.36V27H86.0204V15.486C86.0204 14.1687 85.7038 13.1553 85.0704 12.446C84.4624 11.7113 83.5884 11.344 82.4484 11.344C81.2071 11.344 80.1938 11.7747 79.4084 12.636C78.6231 13.472 78.2304 14.7133 78.2304 16.36V27H74.1264V8H78.2304V10.28C79.4464 8.43067 81.2578 7.506 83.6644 7.506C86.0964 7.506 87.8951 8.50667 89.0604 10.508C90.3271 8.50667 92.2651 7.506 94.8744 7.506ZM109.679 19.248C109.983 20.692 110.679 21.8067 111.769 22.592C112.858 23.352 114.188 23.732 115.759 23.732C117.937 23.732 119.571 22.9467 120.661 21.376L124.043 23.352C122.168 26.1133 119.394 27.494 115.721 27.494C112.63 27.494 110.135 26.5567 108.235 24.682C106.335 22.782 105.385 20.388 105.385 17.5C105.385 14.6627 106.322 12.294 108.197 10.394C110.071 8.46867 112.478 7.506 115.417 7.506C118.203 7.506 120.483 8.48133 122.257 10.432C124.055 12.3827 124.955 14.7513 124.955 17.538C124.955 17.9687 124.904 18.5387 124.803 19.248H109.679ZM109.641 15.904H120.813C120.534 14.3587 119.888 13.1933 118.875 12.408C117.887 11.6227 116.721 11.23 115.379 11.23C113.859 11.23 112.592 11.648 111.579 12.484C110.565 13.32 109.919 14.46 109.641 15.904ZM138.56 7.506C140.739 7.506 142.499 8.20267 143.842 9.596C145.185 10.9893 145.856 12.902 145.856 15.334V27H141.752V15.752C141.752 14.3333 141.372 13.244 140.612 12.484C139.852 11.724 138.813 11.344 137.496 11.344C136.052 11.344 134.887 11.8 134 12.712C133.113 13.5987 132.67 14.9667 132.67 16.816V27H128.566V8H132.67V10.432C133.911 8.48133 135.875 7.506 138.56 7.506ZM154.911 22.82H166.691V27H150.541V0.399998H166.501V4.58H154.911V11.496H165.551V15.638H154.911V22.82ZM187.411 27H182.661L177.949 20.502L173.199 27H168.411L175.555 17.234L168.791 8H173.541L177.911 14.004L182.281 8H187.069L180.305 17.272L187.411 27ZM200.921 7.506C203.531 7.506 205.76 8.48133 207.609 10.432C209.459 12.3573 210.383 14.7133 210.383 17.5C210.383 20.312 209.459 22.6807 207.609 24.606C205.76 26.5313 203.531 27.494 200.921 27.494C198.033 27.494 195.817 26.43 194.271 24.302V34.6H190.167V8H194.271V10.736C195.817 8.58267 198.033 7.506 200.921 7.506ZM195.981 21.87C197.121 23.01 198.553 23.58 200.275 23.58C201.998 23.58 203.429 23.01 204.569 21.87C205.709 20.7047 206.279 19.248 206.279 17.5C206.279 15.752 205.709 14.308 204.569 13.168C203.429 12.0027 201.998 11.42 200.275 11.42C198.553 11.42 197.121 12.0027 195.981 13.168C194.841 14.308 194.271 15.752 194.271 17.5C194.271 19.248 194.841 20.7047 195.981 21.87ZM223.071 27.494C220.284 27.494 217.916 26.5313 215.965 24.606C214.014 22.6807 213.039 20.312 213.039 17.5C213.039 14.688 214.014 12.3193 215.965 10.394C217.916 8.46867 220.284 7.506 223.071 7.506C225.883 7.506 228.252 8.46867 230.177 10.394C232.128 12.3193 233.103 14.688 233.103 17.5C233.103 20.312 232.128 22.6807 230.177 24.606C228.252 26.5313 225.883 27.494 223.071 27.494ZM218.853 21.794C219.993 22.934 221.399 23.504 223.071 23.504C224.743 23.504 226.149 22.934 227.289 21.794C228.429 20.654 228.999 19.2227 228.999 17.5C228.999 15.7773 228.429 14.346 227.289 13.206C226.149 12.066 224.743 11.496 223.071 11.496C221.399 11.496 219.993 12.066 218.853 13.206C217.713 14.346 217.143 15.7773 217.143 17.5C217.143 19.2227 217.713 20.654 218.853 21.794Z" fill="white"/> +</svg> diff --git a/public/assets/icons/x.svg b/public/assets/icons/x.svg new file mode 100644 index 0000000..37df873 --- /dev/null +++ b/public/assets/icons/x.svg @@ -0,0 +1,3 @@ +<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M15.2031 1.875H17.9609L11.9375 8.75781L19.0234 18.125H13.4766L9.12891 12.4453L4.16016 18.125H1.39844L7.83984 10.7617L1.04688 1.875H6.73438L10.6602 7.06641L15.2031 1.875ZM14.2344 16.4766H15.7617L5.90234 3.4375H4.26172L14.2344 16.4766Z" fill="white"/> +</svg> diff --git a/public/assets/images/about.png b/public/assets/images/about.png new file mode 100644 index 0000000..ce540f7 Binary files /dev/null and b/public/assets/images/about.png differ diff --git a/public/assets/images/events/CardFullImg.png b/public/assets/images/events/CardFullImg.png new file mode 100644 index 0000000..84fa300 Binary files /dev/null and b/public/assets/images/events/CardFullImg.png differ diff --git a/public/assets/images/map.png b/public/assets/images/map.png new file mode 100644 index 0000000..7d49359 Binary files /dev/null and b/public/assets/images/map.png differ diff --git a/public/assets/images/members.png b/public/assets/images/members.png new file mode 100644 index 0000000..b58e9bd Binary files /dev/null and b/public/assets/images/members.png differ diff --git a/public/assets/images/video.png b/public/assets/images/video.png new file mode 100644 index 0000000..af39039 Binary files /dev/null and b/public/assets/images/video.png differ diff --git a/redux/hooks.ts b/redux/hooks.ts new file mode 100644 index 0000000..073bae3 --- /dev/null +++ b/redux/hooks.ts @@ -0,0 +1,8 @@ +import { useDispatch, useSelector, useStore } from "react-redux"; +import type { TypedUseSelectorHook } from "react-redux"; +import type { RootState, AppDispatch, AppStore } from "./store"; + +// Use throughout your app instead of plain `useDispatch` and `useSelector` +export const useAppDispatch: () => AppDispatch = useDispatch; +export const useAppSelector: TypedUseSelectorHook<RootState> = useSelector; +export const useAppStore: () => AppStore = useStore; diff --git a/redux/slices/aboutus.ts b/redux/slices/aboutus.ts new file mode 100644 index 0000000..bfdc3da --- /dev/null +++ b/redux/slices/aboutus.ts @@ -0,0 +1,55 @@ +import { baseAPI } from "@/lib/API"; +import { createAsyncThunk, createSlice } from "@reduxjs/toolkit"; +import { activeLangType } from "./headerSlice"; + +export const fetchAbout = createAsyncThunk( + "about/fetchAbout", + async ({ activeLang }: { activeLang: activeLangType }) => { + const res = await fetch(`${baseAPI}settings/about_us`, { + headers: { + "Accept-Language": activeLang.localization, + }, + }); + + const data = await res.json(); + + return data; + } +); + +interface AboutType { + aboutData: string; +} + +const initialState: AboutType = { + aboutData: "", +}; + +const aboutSlice = createSlice({ + name: "aboutUs", + initialState, + reducers: { + setAboutUsData(state, action) { + state.aboutData = action.payload; + }, + }, + + extraReducers: (builder) => { + builder.addCase(fetchAbout.pending, (state) => { + // console.log('pending'); + }); + + builder.addCase(fetchAbout.fulfilled, (state, action) => { + // console.log('success', action.payload); + state.aboutData = action.payload; + }); + + builder.addCase(fetchAbout.rejected, (state) => { + console.log("error"); + }); + }, +}); + +export const { setAboutUsData } = aboutSlice.actions; + +export default aboutSlice.reducer; diff --git a/redux/slices/bidSlice.ts b/redux/slices/bidSlice.ts new file mode 100644 index 0000000..9c6a082 --- /dev/null +++ b/redux/slices/bidSlice.ts @@ -0,0 +1,36 @@ +import { createSlice, PayloadAction } from "@reduxjs/toolkit"; +import { RootState } from "../store"; + +interface Props { + radioStatus: string; + bidStatus: boolean; + submited: boolean; +} + +const initialState: Props = { + radioStatus: "equipped", + bidStatus: false, + submited: false, +}; + +const bidSlice = createSlice({ + name: "bid", + initialState, + reducers: { + setRadioStatus(state, action) { + state.radioStatus = action.payload; + }, + setBidStatus(state, action) { + state.bidStatus = action.payload; + }, + setSumbited(state, action) { + state.submited = action.payload; + }, + }, +}); + +export const selectBid = (state: RootState) => state.bidSlice; + +export const { setRadioStatus, setBidStatus, setSumbited } = bidSlice.actions; + +export default bidSlice.reducer; diff --git a/redux/slices/burgerSlice.ts b/redux/slices/burgerSlice.ts new file mode 100644 index 0000000..9c91ef7 --- /dev/null +++ b/redux/slices/burgerSlice.ts @@ -0,0 +1,37 @@ +import { createSlice, PayloadAction } from "@reduxjs/toolkit"; +import { RootState } from "../store"; + +interface BurgerTypes { + footerDrop: string; + burgerOpen: boolean; + burgerDrop: string; +} + +const initialState: BurgerTypes = { + burgerDrop: "", + footerDrop: "", + burgerOpen: false, +}; + +const burgerSlice = createSlice({ + name: "burger", + initialState, + reducers: { + setFooterDrop(state, action: PayloadAction<string>) { + state.footerDrop = action.payload; + }, + setBurgerOpen(state, action: PayloadAction<boolean>) { + state.burgerOpen = action.payload; + }, + setBurgerDrop(state, action: PayloadAction<string>) { + state.burgerDrop = action.payload; + }, + }, +}); + +export const selectBurger = (state: RootState) => state.burgerSlice; + +export const { setFooterDrop, setBurgerOpen, setBurgerDrop } = + burgerSlice.actions; + +export default burgerSlice.reducer; diff --git a/redux/slices/contactsSlice.ts b/redux/slices/contactsSlice.ts new file mode 100644 index 0000000..7f8a3df --- /dev/null +++ b/redux/slices/contactsSlice.ts @@ -0,0 +1,31 @@ +import { createSlice, PayloadAction } from "@reduxjs/toolkit"; +import { RootState } from "../store"; + +interface Props { + contactTitle: string; + activeMenu: string; +} + +const initialState: Props = { + contactTitle: "", + activeMenu: "", +}; + +const contactsSlice = createSlice({ + name: "contacts", + initialState, + reducers: { + setActiveMenu(state, action: PayloadAction<string>) { + state.activeMenu = action.payload; + }, + setContactTitle(state, action: PayloadAction<string>) { + state.contactTitle = action.payload; + }, + }, +}); + +export const selectContacts = (state: RootState) => state.contactsSlice; + +export const { setActiveMenu, setContactTitle } = contactsSlice.actions; + +export default contactsSlice.reducer; diff --git a/redux/slices/faqSlice.ts b/redux/slices/faqSlice.ts new file mode 100644 index 0000000..f670cd4 --- /dev/null +++ b/redux/slices/faqSlice.ts @@ -0,0 +1,26 @@ +import { createSlice, PayloadAction } from "@reduxjs/toolkit"; +import { RootState } from "../store"; + +interface Props { + faqStatus: string; +} + +const initialState: Props = { + faqStatus: "all", +}; + +const faqSlice = createSlice({ + name: "faq", + initialState, + reducers: { + setFaqStatus(state, action: PayloadAction<string>) { + state.faqStatus = action.payload; + }, + }, +}); + +export const selectFaq = (state: RootState) => state.faqSlice; + +export const { setFaqStatus } = faqSlice.actions; + +export default faqSlice.reducer; diff --git a/redux/slices/headerSlice.ts b/redux/slices/headerSlice.ts new file mode 100644 index 0000000..a27570f --- /dev/null +++ b/redux/slices/headerSlice.ts @@ -0,0 +1,39 @@ +import { createSlice, PayloadAction } from '@reduxjs/toolkit'; +import { RootState } from '../store'; + +export type activeLangType = { + title: 'Ру' | 'En' | 'Tm' | string; + localization: 'ru' | 'en' | 'tm' | string; +}; + +interface HeaderState { + activeLang: activeLangType; + showInput: boolean; +} + +const initialState: HeaderState = { + activeLang: { + title: 'Русский', + localization: 'ru', + }, + showInput: false, +}; + +const headerSlice = createSlice({ + name: 'header', + initialState, + reducers: { + setActiveLang(state, action: PayloadAction<activeLangType>) { + state.activeLang = action.payload; + }, + setShowInput(state, action: PayloadAction<boolean>) { + state.showInput = action.payload; + }, + }, +}); + +export const selectHeader = (state: RootState) => state.headerSlice; + +export const { setActiveLang, setShowInput } = headerSlice.actions; + +export default headerSlice.reducer; diff --git a/redux/slices/homeSlice.ts b/redux/slices/homeSlice.ts new file mode 100644 index 0000000..bb56f7e --- /dev/null +++ b/redux/slices/homeSlice.ts @@ -0,0 +1,31 @@ +import { createSlice, PayloadAction } from "@reduxjs/toolkit"; +import { RootState } from "../store"; + +interface homeTypes { + eventBtn: boolean; + activeTitle: string; +} + +const initialState: homeTypes = { + eventBtn: false, + activeTitle: "О компании", +}; + +const homeSlice = createSlice({ + name: "home", + initialState, + reducers: { + setEventBtn(state, action: PayloadAction<boolean>) { + state.eventBtn = action.payload; + }, + setActiveTitle(state, action: PayloadAction<string>) { + state.activeTitle = action.payload; + }, + }, +}); + +export const selectHome = (state: RootState) => state.homeSlice; + +export const { setEventBtn, setActiveTitle } = homeSlice.actions; + +export default homeSlice.reducer; diff --git a/redux/slices/inputSlice.ts b/redux/slices/inputSlice.ts new file mode 100644 index 0000000..19b60fc --- /dev/null +++ b/redux/slices/inputSlice.ts @@ -0,0 +1,26 @@ +import { createSlice } from '@reduxjs/toolkit'; +import { RootState } from '../store'; + +interface Types { + inputStatus: 'all' | 'events' | 'news'; +} + +const initialState: Types = { + inputStatus: 'all', +}; + +const inputSlice = createSlice({ + name: 'input', + initialState, + reducers: { + setInputStatus(state, action) { + state.inputStatus = action.payload; + }, + }, +}); + +export const selectInput = (state: RootState) => state.inputSlice; + +export const { setInputStatus } = inputSlice.actions; + +export default inputSlice.reducer; diff --git a/redux/slices/newsSlice.ts b/redux/slices/newsSlice.ts new file mode 100644 index 0000000..e69de29 diff --git a/redux/store.ts b/redux/store.ts new file mode 100644 index 0000000..2a56ecd --- /dev/null +++ b/redux/store.ts @@ -0,0 +1,31 @@ +import { configureStore } from "@reduxjs/toolkit"; + +import headerSlice from "./slices/headerSlice"; +import homeSlice from "./slices/homeSlice"; +import contactsSlice from "./slices/contactsSlice"; +import faqSlice from "./slices/faqSlice"; +import bidSlice from "./slices/bidSlice"; +import inputSlice from "./slices/inputSlice"; +import burgerSlice from "./slices/burgerSlice"; +import aboutSlice from "./slices/aboutus"; + +export const makeStore = () => { + return configureStore({ + reducer: { + headerSlice, + homeSlice, + contactsSlice, + faqSlice, + bidSlice, + inputSlice, + burgerSlice, + aboutSlice, + }, + }); +}; + +// Infer the type of makeStore +export type AppStore = ReturnType<typeof makeStore>; +// Infer the `RootState` and `AppDispatch` types from the store itself +export type RootState = ReturnType<AppStore["getState"]>; +export type AppDispatch = AppStore["dispatch"]; diff --git a/services/about.ts b/services/about.ts new file mode 100644 index 0000000..ed9853c --- /dev/null +++ b/services/about.ts @@ -0,0 +1,20 @@ +import { baseAPI } from "@/lib/API"; + +export const getAbout = async (lang: string) => { + const res = await fetch(`${baseAPI}settings/about_us`, { + headers: { + "Accept-Language": lang, + }, + next: { + revalidate: 3600, + }, + }); + + if (!res.ok) { + throw new Error("Ошибка при загрузке данных о нас"); + } + + const data: string = await res.json(); + + return data; +}; diff --git a/services/calendar.ts b/services/calendar.ts new file mode 100644 index 0000000..3a5271f --- /dev/null +++ b/services/calendar.ts @@ -0,0 +1,37 @@ +import { baseAPI } from '@/lib/API'; +import { CalendarType } from '@/lib/types/Calendar.type'; +import { EventPageType } from '@/lib/types/event-page.type'; + +export const getCalendar = async (lang: string) => { + const res = await fetch(`${baseAPI}expoevents?per_page=100`, { + headers: { + 'Accept-Language': lang, + }, + next: { + revalidate: 1800, + }, + }); + + if (!res.ok) throw new Error('Calendar error'); + + const data: CalendarType = await res.json(); + + return data; +}; + +export const getEventPage = async (id: string, lang: string) => { + const res = await fetch(`${baseAPI}expoevents/${id}`, { + headers: { + 'Accept-Language': lang, + }, + next: { + revalidate: 1800, + }, + }); + + if (!res.ok) throw new Error('Event page error'); + + const data: EventPageType = await res.json(); + + return data.data; +}; diff --git a/services/contacts.ts b/services/contacts.ts new file mode 100644 index 0000000..94a3424 --- /dev/null +++ b/services/contacts.ts @@ -0,0 +1,31 @@ +import { FormType } from "@/components/shared/contacts-form"; +import { baseAPI } from "@/lib/API"; +import { ContactsDataType } from "@/lib/types/Contacts.type"; + +export const getContacts = async (lang: string) => { + const res = await fetch(`${baseAPI}contacts`, { + headers: { + "Accept-Language": lang, + }, + }); + + if (!res.ok) { + throw new Error("Contacts error"); + } + + const data: ContactsDataType = await res.json(); + + return data; +}; + +export const postContacts = async (data: FormType) => { + const res = fetch(`${baseAPI}contact_form`, { + method: "POST", + body: JSON.stringify(data), + headers: { + "Content-Type": "application/json", + }, + }); + + return (await res).status === 201; +}; diff --git a/services/home.ts b/services/home.ts new file mode 100644 index 0000000..8525568 --- /dev/null +++ b/services/home.ts @@ -0,0 +1,55 @@ +import { baseAPI } from '@/lib/API'; +import { CalendarType } from '@/lib/types/Calendar.type'; +import { NewsData } from '@/lib/types/NewsData.type'; +import { SliderType } from '@/lib/types/SliderData.type'; + +export const getSlider = async (bannerType: string): Promise<SliderType> => { + const res = await fetch(`${baseAPI}banners/${bannerType}`, { + next: { revalidate: 1800 }, + headers: { + 'Accept-Language': 'ru', + }, + }); + + if (!res.ok) { + throw new Error('Ошибка при загрузке данных'); + } + + const data: SliderType = await res.json(); + + return data; +}; + +export const getEvents = async (lang: string) => { + const res = await fetch(`${baseAPI}expoevents?per_page=2`, { + next: { revalidate: 1800 }, + headers: { + 'Accept-Language': lang, + }, + }); + + if (!res.ok) { + throw new Error('Ошибка при загрузке данных'); + } + + const data: CalendarType = await res.json(); + + return data; +}; + +export const getNews = async (lang: string) => { + const res = await fetch(`${baseAPI}news`, { + next: { revalidate: 1800 }, + headers: { + 'Accept-Language': lang, + }, + }); + + if (!res.ok) { + throw new Error('Ошибка при загрузке данных'); + } + + const data: NewsData = await res.json(); + + return data; +}; diff --git a/services/services.ts b/services/services.ts new file mode 100644 index 0000000..90c3ef4 --- /dev/null +++ b/services/services.ts @@ -0,0 +1,21 @@ +import { baseAPI } from "@/lib/API"; +import { ServicesType } from "@/lib/types/Services.data"; +import { cookies } from "next/headers"; + +export const getServices = async () => { + const lang = cookies().get("lang")?.value || "en"; + + const res = await fetch(`${baseAPI}services`, { + headers: { + "Accept-Language": lang, // Передаём язык в заголовке + }, + next: { + revalidate: 1000, + tags: [`services-${lang}`], // Кешируем отдельно для каждого языка + }, + }); + + if (!res.ok) throw new Error("Ошибка при загрузке данных"); + + return (await res.json()) as ServicesType; +}; diff --git a/setup-proxy-install.ps1 b/setup-proxy-install.ps1 new file mode 100644 index 0000000..b288406 --- /dev/null +++ b/setup-proxy-install.ps1 @@ -0,0 +1,42 @@ +# setup-proxy-install.ps1 +# ----------------------- +# Этот скрипт временно включает прокси для Git, npm и pnpm +# (через V2rayN на 127.0.0.1:10808), выполняет установку зависимостей, +# а затем отключает прокси обратно. + +$proxy = "http://127.0.0.1:10808" + +Write-Host "🔧 Настраиваю прокси для Git, npm и pnpm..." -ForegroundColor Cyan + +# Git proxy +git config --global http.proxy $proxy +git config --global https.proxy $proxy + +# npm proxy +npm config set proxy $proxy +npm config set https-proxy $proxy +npm config set strict-ssl false + +# pnpm proxy +pnpm config set proxy $proxy +pnpm config set https-proxy $proxy +pnpm config set strict-ssl false + +Write-Host "✅ Прокси настроен. Запускаю pnpm install..." -ForegroundColor Green + +# Установка зависимостей +pnpm install + +Write-Host "♻️ Отключаю прокси после завершения..." -ForegroundColor Yellow + +# Сброс Git proxy +git config --global --unset http.proxy +git config --global --unset https.proxy + +# Сброс npm/pnpm proxy +npm config delete proxy +npm config delete https-proxy +pnpm config delete proxy +pnpm config delete https-proxy + +Write-Host "✅ Прокси отключён. Всё готово!" -ForegroundColor Green diff --git a/tailwind.config.ts b/tailwind.config.ts new file mode 100644 index 0000000..accc244 --- /dev/null +++ b/tailwind.config.ts @@ -0,0 +1,57 @@ +import type { Config } from "tailwindcss"; + +const config: Config = { + content: [ + "./pages/**/*.{js,ts,jsx,tsx,mdx}", + "./components/**/*.{js,ts,jsx,tsx,mdx}", + "./app/**/*.{js,ts,jsx,tsx,mdx}", + ], + theme: { + extend: { + colors: { + PRIMARY: "#059784", + SECONDARY_CONTAINER: "#B5C7C5", + ON_SECONDARY_CONTAINER: "#2A4441", + ON_PRIMARY_CONTAINER: "#006E60", + ON_SURFACE: "#171C1B", + ON_SURFACE_VAR: "#5E6E6C", + OUTLINE: "#758A87", + OUTLINE_VAR: "#C8D0CF", + navyBlueBg: "#344350", + green: "#BCDCD8", + greenHover: "#A3CCC7", + red: "#BC213A", + black: "#0C0C0D", + gray: "#8D9399", + gray2: "#474A4D", + gray3: "#8E9499", + gray4: "#C2C7CC", + grayGreen: "#50978E", + lightGreen: "#06B29C", + hoverGreen: "#B0E6A1", + lightRed: "#F06C74", + lightYellow: "#FFD288", + lightCyan: "#DFE9F2", + darkBlue: "#202A33", + primary: "#202A33", + blueBg: "#F4F6F6", + whiteFont: "#F2F9FF", + blackFont: "#0C0C0D", + redFont: "#BC213A", + purpleFont: "#61378A", + bgWhite: "#F2F9FF", + }, + fontSize: { + extraSm: "13px", + extra: "34px", + }, + screens: { + mob: "440px", + tab: "980px", + px850: "850px", + }, + }, + }, + plugins: [], +}; +export default config; diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..c672fee --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,40 @@ +{ + "compilerOptions": { + "lib": [ + "dom", + "dom.iterable", + "esnext" + ], + "allowJs": true, + "skipLibCheck": true, + "strict": true, + "noEmit": true, + "esModuleInterop": true, + "module": "esnext", + "moduleResolution": "bundler", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "preserve", + "incremental": true, + "plugins": [ + { + "name": "next" + } + ], + "paths": { + "@/*": [ + "./*" + ] + } + }, + "include": [ + "next-env.d.ts", + "**/*.ts", + "**/*.tsx", + ".next/types/**/*.ts", + "build/types/**/*.ts" + ], + "exclude": [ + "node_modules" + ] +} diff --git a/utils/useLang.ts b/utils/useLang.ts new file mode 100644 index 0000000..f12081f --- /dev/null +++ b/utils/useLang.ts @@ -0,0 +1,9 @@ +"use client"; + +export const useLang = (en: string, ru: string, localization: string) => { + if (localization === "en") { + return en; + } else { + return ru; + } +}; diff --git a/vercel.json b/vercel.json new file mode 100644 index 0000000..ad62c27 --- /dev/null +++ b/vercel.json @@ -0,0 +1,22 @@ +{ + "headers": [ + { + "source": "/.well-known/(.*)", + "headers": [ + { + "key": "Cache-Control", + "value": "public, max-age=3600" + } + ] + } + ], + "routes": [ + { + "handle": "filesystem" + }, + { + "src": "/.well-known/(.*)", + "dest": "/.well-known/$1" + } + ] +}