├── .eslintrc.cjs ├── .gitignore ├── Data ├── execom │ ├── 2023.jpg │ └── 2024.jpg └── images │ └── AeroCET-logo.png ├── README.md ├── index.html ├── package-lock.json ├── package.json ├── postcss.config.cjs ├── src ├── Components │ ├── About.tsx │ ├── Achievements.tsx │ ├── Animtion.css │ ├── Announcements.tsx │ ├── Contact.tsx │ ├── Gallery.css │ ├── Gallery.tsx │ ├── Intro.css │ ├── Intro.tsx │ ├── Navbar.css │ ├── Navbar.tsx │ ├── Projects.tsx │ ├── Team.tsx │ ├── Teams.css │ └── Workshop.tsx ├── Loader.css ├── Loader.tsx ├── Pages │ ├── 404Error.tsx │ ├── FullPic.tsx │ ├── Gallery.css │ ├── Gallery.tsx │ ├── Home.css │ ├── Home.tsx │ ├── Teams.css │ └── Teams.tsx ├── app │ ├── App.css │ └── App.tsx ├── assets │ ├── AeroCET-logo.png │ ├── fonts │ │ ├── Avenger.ttf │ │ ├── NeutronsDemoRegular.ttf │ │ ├── NoSurrender.ttf │ │ └── hypik.otf │ └── images │ │ ├── commingSoon.png │ │ ├── downloadButton.png │ │ ├── drone.png │ │ ├── introBG.png │ │ ├── introText.png │ │ ├── jet.png │ │ ├── plane.png │ │ ├── sample.jpeg │ │ ├── vectorDrone.png │ │ └── vectorPlane.png ├── index.css ├── main.tsx └── vite-env.d.ts ├── tailwind.config.js ├── tsconfig.app.json ├── tsconfig.json ├── tsconfig.node.json ├── vercel.json ├── vite.config.ts └── yarn.lock /.eslintrc.cjs: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | env: { browser: true, es2020: true }, 4 | extends: [ 5 | 'eslint:recommended', 6 | 'plugin:@typescript-eslint/recommended', 7 | 'plugin:react-hooks/recommended', 8 | ], 9 | ignorePatterns: ['dist', '.eslintrc.cjs'], 10 | parser: '@typescript-eslint/parser', 11 | plugins: ['react-refresh'], 12 | rules: { 13 | 'react-refresh/only-export-components': [ 14 | 'warn', 15 | { allowConstantExport: true }, 16 | ], 17 | }, 18 | } 19 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Dependencies 2 | node_modules/ 3 | npm-debug.log* 4 | yarn-debug.log* 5 | yarn-error.log* 6 | 7 | # Build files 8 | dist/ 9 | build/ 10 | 11 | # Environment variables 12 | .env 13 | .env.local 14 | .env.development.local 15 | .env.test.local 16 | .env.production.local 17 | 18 | # Editor & OS files 19 | .vscode/ 20 | .idea/ 21 | *.swp 22 | *.swo 23 | .DS_Store 24 | Thumbs.db 25 | 26 | # Logs 27 | logs/ 28 | *.log 29 | yarn.lock 30 | package-lock.json 31 | -------------------------------------------------------------------------------- /Data/execom/2023.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmesidhu/React-AeroCET-client/c0770c53f2757aa3a852908462a2e0843d9423cd/Data/execom/2023.jpg -------------------------------------------------------------------------------- /Data/execom/2024.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmesidhu/React-AeroCET-client/c0770c53f2757aa3a852908462a2e0843d9423cd/Data/execom/2024.jpg -------------------------------------------------------------------------------- /Data/images/AeroCET-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmesidhu/React-AeroCET-client/c0770c53f2757aa3a852908462a2e0843d9423cd/Data/images/AeroCET-logo.png -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # React (TypeScript) 2 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | AeroCET 11 | 12 | 13 |
14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vite-project", 3 | "private": true, 4 | "version": "0.0.0", 5 | "type": "module", 6 | "scripts": { 7 | "dev": "vite", 8 | "build": "tsc -b && vite build", 9 | "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0", 10 | "preview": "vite preview" 11 | }, 12 | "dependencies": { 13 | "@fortawesome/free-solid-svg-icons": "^6.6.0", 14 | "@fortawesome/react-fontawesome": "^0.2.2", 15 | "@headlessui/react": "^2.1.2", 16 | "@heroicons/react": "^2.1.5", 17 | "axios": "^1.7.9", 18 | "clsx": "^2.1.1", 19 | "cors": "^2.8.5", 20 | "dotenv": "^16.4.7", 21 | "react": "^18.3.1", 22 | "react-dom": "^18.3.1", 23 | "react-icons": "^5.3.0", 24 | "react-router-dom": "^6.25.1", 25 | "react-use": "^17.5.1", 26 | "yarn": "^1.22.22" 27 | }, 28 | "devDependencies": { 29 | "@types/node": "^22.10.2", 30 | "@types/react": "^18.3.3", 31 | "@types/react-dom": "^18.3.0", 32 | "@typescript-eslint/eslint-plugin": "^7.15.0", 33 | "@typescript-eslint/parser": "^7.15.0", 34 | "@vitejs/plugin-react-swc": "^3.5.0", 35 | "autoprefixer": "^10.4.19", 36 | "eslint": "^8.57.0", 37 | "eslint-plugin-react-hooks": "^4.6.2", 38 | "eslint-plugin-react-refresh": "^0.4.7", 39 | "postcss": "^8.4.39", 40 | "tailwindcss": "^3.4.6", 41 | "typescript": "^5.2.2", 42 | "vite": "^5.3.4" 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /postcss.config.cjs: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: [ 3 | require('tailwindcss'), 4 | require('autoprefixer'), 5 | ], 6 | } 7 | -------------------------------------------------------------------------------- /src/Components/About.tsx: -------------------------------------------------------------------------------- 1 | import { useEffect, useRef, useState } from 'react'; 2 | import clsx from 'clsx'; 3 | 4 | export default function About() { 5 | const [isActive, setIsActive] = useState(false); 6 | const aboutRef = useRef(null); 7 | 8 | // Intersection Observer logic 9 | useEffect(() => { 10 | const observer = new IntersectionObserver( 11 | ([entry]) => { 12 | setIsActive(entry.isIntersecting); 13 | }, 14 | { threshold: 0.1 } // Trigger when 10% of the component is visible 15 | ); 16 | 17 | if (aboutRef.current) { 18 | observer.observe(aboutRef.current); 19 | } 20 | 21 | return () => { 22 | if (aboutRef.current) { 23 | observer.unobserve(aboutRef.current); 24 | } 25 | }; 26 | }, []); 27 | 28 | return ( 29 | 66 | ); 67 | } 68 | -------------------------------------------------------------------------------- /src/Components/Achievements.tsx: -------------------------------------------------------------------------------- 1 | import { useEffect, useRef, useState } from 'react'; 2 | import axios from 'axios'; 3 | import clsx from 'clsx'; 4 | import { useNavigate } from 'react-router-dom'; 5 | 6 | export default function Achievements() { 7 | const [isActive, setIsActive] = useState(false); 8 | const [achievements, setAchievements] = useState([]); 9 | const teamRef = useRef(null); 10 | const navigate = useNavigate(); 11 | 12 | useEffect(() => { 13 | axios.get(`${import.meta.env.VITE_API_BASE_URL}/api/achievements`) 14 | .then((response) => { 15 | console.log("Achievements Data:", response.data); 16 | setAchievements(response.data); 17 | 18 | setTimeout(() => { 19 | setIsActive(true); 20 | }, 1000); 21 | }) 22 | .catch((error) => { 23 | console.error("Error fetching achievements:", error); 24 | }); 25 | 26 | const observer = new IntersectionObserver( 27 | ([entry]) => { 28 | setIsActive(entry.isIntersecting); 29 | }, 30 | { threshold: 0.2 } 31 | ); 32 | 33 | if (teamRef.current) { 34 | observer.observe(teamRef.current); 35 | } 36 | 37 | return () => { 38 | if (teamRef.current) { 39 | observer.unobserve(teamRef.current); 40 | } 41 | }; 42 | }, []); 43 | 44 | const goTo = () => { 45 | navigate('/'); 46 | }; 47 | 48 | return ( 49 |
58 |

66 | Achievements 67 |

68 | 69 |
70 | {[...achievements].reverse().map((image, index) => ( 71 |
80 |
81 | 82 | Achievement (e.currentTarget.src = '/fallback.jpg')} 87 | /> 88 |
89 |
90 | ))} 91 |
92 |
93 | ); 94 | } 95 | -------------------------------------------------------------------------------- /src/Components/Animtion.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmesidhu/React-AeroCET-client/c0770c53f2757aa3a852908462a2e0843d9423cd/src/Components/Animtion.css -------------------------------------------------------------------------------- /src/Components/Announcements.tsx: -------------------------------------------------------------------------------- 1 | import { useEffect, useRef, useState } from 'react'; 2 | import axios from 'axios'; 3 | import clsx from 'clsx'; 4 | import { useNavigate } from 'react-router-dom'; 5 | 6 | export default function Announcements() { 7 | const [isActive, setIsActive] = useState(false); 8 | 9 | // Define the Announcement type 10 | interface Announcement { 11 | id: number; 12 | heading: string; 13 | message: string; 14 | link: string; 15 | excel?: string; 16 | } 17 | 18 | const [announcements, setAnnouncements] = useState([]); 19 | const teamRef = useRef(null); 20 | const navigate = useNavigate(); 21 | 22 | useEffect(() => { 23 | axios 24 | .get(`${import.meta.env.VITE_API_BASE_URL}/api/announcements`) 25 | .then((response) => { 26 | console.log(response.data); 27 | setAnnouncements(response.data); 28 | 29 | setTimeout(() => { 30 | setIsActive(true); 31 | }, 1000); 32 | }) 33 | .catch((error) => { 34 | console.error('Error fetching announcements:', error); 35 | }); 36 | 37 | const observer = new IntersectionObserver( 38 | ([entry]) => { 39 | setIsActive(entry.isIntersecting); 40 | }, 41 | { threshold: 0.2 } 42 | ); 43 | 44 | if (teamRef.current) { 45 | observer.observe(teamRef.current); 46 | } 47 | 48 | return () => { 49 | if (teamRef.current) { 50 | observer.unobserve(teamRef.current); 51 | } 52 | }; 53 | }, []); 54 | 55 | const goTo = () => { 56 | navigate('/'); 57 | }; 58 | 59 | const handleClick = (item: Announcement) => { 60 | if (item.excel) { 61 | // Prepend the backend base URL to form an absolute URL 62 | const fileUrl = `${import.meta.env.VITE_API_BASE_URL}${item.excel}`; 63 | 64 | // Fetch the file as a blob to ensure it's downloaded as binary data 65 | fetch(fileUrl) 66 | .then(response => { 67 | if (!response.ok) { 68 | throw new Error(`HTTP error! status: ${response.status}`); 69 | } 70 | return response.blob(); 71 | }) 72 | .then(blob => { 73 | const url = window.URL.createObjectURL(blob); 74 | const a = document.createElement('a'); 75 | a.style.display = 'none'; 76 | a.href = url; 77 | // Use the file name from the URL 78 | a.download = item.excel?.split('/').pop() || 'downloaded_file'; 79 | document.body.appendChild(a); 80 | a.click(); 81 | window.URL.revokeObjectURL(url); 82 | document.body.removeChild(a); 83 | }) 84 | .catch(error => { 85 | console.error('Error downloading file:', error); 86 | }); 87 | } else { 88 | window.open(item.link, '_blank'); 89 | } 90 | }; 91 | 92 | return ( 93 |
102 |

110 | Announcements 111 |

112 | 113 |
114 | {[...announcements].reverse().map((item, index) => ( 115 |
124 |
125 |

{item.heading}

126 |

{item.message}

127 |
128 | 137 |
138 | ))} 139 |
140 |
141 | ); 142 | } 143 | -------------------------------------------------------------------------------- /src/Components/Contact.tsx: -------------------------------------------------------------------------------- 1 | import { FaLinkedinIn, FaWhatsapp, FaYoutube, FaInstagram, FaPhoneAlt } from 'react-icons/fa'; 2 | import { SiGmail } from 'react-icons/si'; 3 | import drone from '../assets/images/drone.png'; 4 | import download from '../assets/images/downloadButton.png'; 5 | import { useEffect, useRef, useState } from 'react'; 6 | import clsx from 'clsx'; 7 | 8 | export default function Contact() { 9 | const [isActive, setIsActive] = useState(false); 10 | const contactRef = useRef(null); 11 | 12 | // Intersection Observer logic 13 | useEffect(() => { 14 | const observer = new IntersectionObserver( 15 | ([entry]) => { 16 | setIsActive(entry.isIntersecting); 17 | }, 18 | { threshold: 0.1 } // Trigger animation when 10% of the component is visible 19 | ); 20 | 21 | if (contactRef.current) { 22 | observer.observe(contactRef.current); 23 | } 24 | 25 | return () => { 26 | if (contactRef.current) { 27 | observer.unobserve(contactRef.current); 28 | } 29 | }; 30 | }, []); 31 | 32 | return ( 33 | 93 | ); 94 | } 95 | -------------------------------------------------------------------------------- /src/Components/Gallery.css: -------------------------------------------------------------------------------- 1 | @import "https://unpkg.com/open-props/open-props.min.css"; 2 | @import "https://unpkg.com/open-props/normalize.min.css"; 3 | 4 | /* Container for each scrollable column */ 5 | div.scroll-container { 6 | overflow: hidden; 7 | /* Hide scrollbars */ 8 | position: relative; 9 | height: 100%; 10 | } 11 | 12 | /* Keyframes for infinite scroll */ 13 | @keyframes scroll-up { 14 | 0% { 15 | transform: translateY(0%); 16 | } 17 | 18 | 100% { 19 | transform: translateY(-50%); 20 | } 21 | } 22 | 23 | @keyframes scroll-down { 24 | 0% { 25 | transform: translateY(-50%); 26 | } 27 | 28 | 100% { 29 | transform: translateY(0%); 30 | } 31 | } 32 | 33 | /* Apply infinite scroll animations */ 34 | .scroll-track-up { 35 | display: flex; 36 | flex-direction: column; 37 | animation: scroll-up 80s linear infinite; 38 | /* Adjust speed if needed */ 39 | } 40 | 41 | .scroll-track-down { 42 | display: flex; 43 | flex-direction: column; 44 | animation: scroll-down 80s linear infinite; 45 | /* Adjust speed if needed */ 46 | } 47 | 48 | /* Pause scroll on hover (optional) */ 49 | .scroll-track-up:hover, 50 | .scroll-track-down:hover { 51 | animation-play-state: paused; 52 | } 53 | 54 | /* Images styling */ 55 | .scroll-container img { 56 | width: 100%; 57 | /* Full width of column */ 58 | height: auto; 59 | /* Maintain aspect ratio */ 60 | object-fit: cover; 61 | /* Covers the container neatly */ 62 | margin-bottom: 10px; 63 | /* Space between images */ 64 | flex-shrink: 0; 65 | /* Prevent shrinking */ 66 | border-radius: 1rem; 67 | /* Rounded corners */ 68 | transition: transform 0.3s ease; 69 | } 70 | 71 | /* Hover effect on images */ 72 | .scroll-container img:hover { 73 | transform: scale(1.05); 74 | } 75 | 76 | /* General padding */ 77 | .p-24 { 78 | padding: 24px; 79 | } 80 | 81 | .m { 82 | margin: 0; 83 | } 84 | 85 | /* Loader styling (in case you add it later) */ 86 | .loader { 87 | display: flex; 88 | justify-content: center; 89 | align-items: center; 90 | height: 200px; 91 | font-size: 18px; 92 | color: #666; 93 | } -------------------------------------------------------------------------------- /src/Components/Gallery.tsx: -------------------------------------------------------------------------------- 1 | import './Gallery.css'; 2 | import { useEffect, useRef, useState } from 'react'; 3 | import clsx from 'clsx'; 4 | import axios from 'axios'; 5 | import { useNavigate } from 'react-router-dom'; 6 | 7 | export default function Gallery() { 8 | const [isActive, setIsActive] = useState(false); 9 | const [images, setImages] = useState([]); 10 | const [loading, setLoading] = useState(true); 11 | const galleryRef = useRef(null); 12 | const navigate = useNavigate(); 13 | 14 | const goTo = () => { 15 | navigate('/'); 16 | }; 17 | 18 | // Fetch images from backend 19 | useEffect(() => { 20 | axios.get(`${import.meta.env.VITE_API_BASE_URL}/api/gallery`) 21 | .then((response) => { 22 | setImages(response.data.images); 23 | setLoading(false); 24 | }) 25 | .catch(() => setLoading(false)); 26 | 27 | // Intersection Observer for fade-in animation 28 | const observer = new IntersectionObserver( 29 | ([entry]) => setIsActive(entry.isIntersecting), 30 | { threshold: 0.1 } 31 | ); 32 | 33 | if (galleryRef.current) observer.observe(galleryRef.current); 34 | return () => { 35 | if (galleryRef.current) observer.unobserve(galleryRef.current); 36 | }; 37 | }, []); 38 | 39 | // Split images into 3 columns 40 | const firstColumnImages = images.slice(0, Math.ceil(images.length / 3)); 41 | const secondColumnImages = images.slice(Math.ceil(images.length / 3), 2 * Math.ceil(images.length / 3)); 42 | const thirdColumnImages = images.slice(2 * Math.ceil(images.length / 3)); 43 | 44 | // Duplicate for infinite scroll 45 | const duplicatedFirstColumn = [...firstColumnImages, ...firstColumnImages]; 46 | const duplicatedSecondColumn = [...secondColumnImages, ...secondColumnImages]; 47 | const duplicatedThirdColumn = [...thirdColumnImages, ...thirdColumnImages]; 48 | 49 | return ( 50 |
59 | {/* First Column - Scroll Up */} 60 |
65 | {!loading && ( 66 |
67 | {duplicatedFirstColumn.map((imageUrl, index) => ( 68 | Gallery 69 | ))} 70 |
71 | )} 72 |
73 | 74 | {/* Second Column - Scroll Down */} 75 |
80 | {!loading && ( 81 |
82 | {duplicatedSecondColumn.map((imageUrl, index) => ( 83 | Gallery 84 | ))} 85 |
86 | )} 87 |
88 | 89 | {/* Third Column - Scroll Up */} 90 |
95 | {!loading && ( 96 |
97 | {duplicatedThirdColumn.map((imageUrl, index) => ( 98 | Gallery 99 | ))} 100 |
101 | )} 102 |
103 |
104 | ); 105 | } 106 | -------------------------------------------------------------------------------- /src/Components/Intro.css: -------------------------------------------------------------------------------- 1 | @import url('https://fonts.googleapis.com/css2?family=La+Belle+Aurore&family=Sancreek&display=swapz'); 2 | body{ 3 | margin: 0; 4 | padding: 0; 5 | overflow-x: hidden; 6 | overflow-y: hidden; 7 | 8 | } 9 | 10 | .parallax-image, 11 | .parallax-text { 12 | transition: transform 1.5s ease-out; 13 | 14 | } 15 | .la-belle-aurore-regular { 16 | font-family: "La Belle Aurore", cursive; 17 | font-weight: 400; 18 | font-style: normal; 19 | } 20 | 21 | -------------------------------------------------------------------------------- /src/Components/Intro.tsx: -------------------------------------------------------------------------------- 1 | import { useEffect, useRef, useState } from 'react'; 2 | import './Intro.css'; 3 | import text from '../assets/images/introText.png'; 4 | import plane from '../assets/images/plane.png'; 5 | import clsx from 'clsx'; 6 | 7 | export default function Intro() { 8 | // Define the state type for the offset 9 | const [offset, setOffset] = useState<{ x: number; y: number }>({ x: 0, y: 0 }); 10 | 11 | // MouseMove event handler with correct type 12 | const handleMouseMove = (e: React.MouseEvent) => { 13 | const { innerWidth, innerHeight } = window; 14 | const x = (e.clientX - innerWidth / 2) / 2; 15 | const y = (e.clientY - innerHeight / 2) / .9; 16 | setOffset({ x, y }); 17 | }; 18 | 19 | const [isActive, setIsActive] = useState(false); 20 | const introRef = useRef(null); 21 | 22 | // Intersection Observer logic 23 | useEffect(() => { 24 | const observer = new IntersectionObserver( 25 | ([entry]) => { 26 | setIsActive(entry.isIntersecting); 27 | }, 28 | { threshold: 0.1 } // Trigger when 10% of the component is visible 29 | ); 30 | 31 | if (introRef.current) { 32 | observer.observe(introRef.current); 33 | } 34 | 35 | return () => { 36 | if (introRef.current) { 37 | observer.unobserve(introRef.current); 38 | } 39 | }; 40 | }, []); 41 | 42 | return ( 43 |
48 | {/* Plane Image with Parallax Effect */} 49 | Plane 57 | 58 | {/* Intro Text Image */} 59 | Intro Text 67 | 72 |
73 | ); 74 | } 75 | -------------------------------------------------------------------------------- /src/Components/Navbar.css: -------------------------------------------------------------------------------- 1 | .nav { 2 | -webkit-backdrop-filter: blur(4px); 3 | backdrop-filter: blur(4px); 4 | width: 250px; /* Default width */ 5 | transition: width 0.3s ease, backdrop-filter 0.3s ease; 6 | } 7 | 8 | .nav.closed { 9 | width: 0; 10 | overflow: hidden; 11 | } 12 | 13 | .nav.no-blur { 14 | backdrop-filter: none; 15 | } 16 | 17 | .menu-items { 18 | transition: opacity 0.3s ease, transform 0.3s ease; 19 | opacity: 0; 20 | transform: translateX(-10%); 21 | } 22 | 23 | .menu-items.open { 24 | opacity: 1; 25 | transform: translateX(0); 26 | } 27 | 28 | .menu-items.closed { 29 | opacity: 0; 30 | transform: translateX(-10%); 31 | } 32 | 33 | /* Ensure smooth transition for the mobile view */ 34 | @media (min-width: 768px) { 35 | .menu-items { 36 | opacity: 1; 37 | transform: translateX(0); 38 | transition: none; /* No animation on larger screens */ 39 | } 40 | } 41 | 42 | /* Hide the toggle button when the menu is open */ 43 | .md:hidden { 44 | display: none; 45 | } 46 | 47 | /* Navbar.css */ 48 | .load-image { 49 | opacity: 1; 50 | transform: scale(0); 51 | transition: opacity 0.3s ease, transform 0.3s ease; 52 | } 53 | 54 | .load-image.show { 55 | transform: scale(1); 56 | } 57 | 58 | @media (max-width: 500px) { 59 | .load-image { 60 | opacity: 0; /* Hide the image on mobile screens */ 61 | } 62 | } 63 | 64 | 65 | 66 | -------------------------------------------------------------------------------- /src/Components/Navbar.tsx: -------------------------------------------------------------------------------- 1 | import { useState, useEffect } from 'react'; 2 | import logo from '../assets/AeroCET-logo.png'; 3 | import './Navbar.css'; 4 | 5 | function Navbar() { 6 | const [isOpen, setIsOpen] = useState(true); 7 | const [visibleSection, setVisibleSection] = useState(null); 8 | 9 | const toggleMenu = () => { 10 | setIsOpen((prevIsOpen) => !prevIsOpen); 11 | }; 12 | 13 | const handleScroll = (sectionId: string) => { 14 | const section = document.getElementById(sectionId); 15 | if (section) { 16 | section.scrollIntoView({ behavior: 'smooth' }); 17 | } 18 | if (window.innerWidth < 768) { 19 | setIsOpen(false); 20 | } 21 | }; 22 | 23 | useEffect(() => { 24 | const sectionIds = [ 25 | 'projects', 26 | 'achievements', 27 | 'team', 28 | 'announcements', 29 | 'intro', 30 | 'contact', 31 | 'about', 32 | 'gallery', 33 | 'workshop', 34 | ]; 35 | let currentVisibleSection: string | null = null; 36 | 37 | const observer = new IntersectionObserver( 38 | (entries) => { 39 | const visibleEntries = entries.filter((entry) => entry.isIntersecting); 40 | if (visibleEntries.length > 0) { 41 | visibleEntries.sort((a, b) => b.intersectionRatio - a.intersectionRatio); 42 | const mostVisibleEntry = visibleEntries[0]; 43 | if (mostVisibleEntry.target.id !== currentVisibleSection) { 44 | currentVisibleSection = mostVisibleEntry.target.id; 45 | setVisibleSection(currentVisibleSection); 46 | } 47 | } 48 | }, 49 | { 50 | root: null, 51 | rootMargin: '0px', 52 | threshold: Array.from(Array(101).keys(), (i) => i / 100), 53 | } 54 | ); 55 | 56 | sectionIds.forEach((id) => { 57 | const section = document.getElementById(id); 58 | if (section) { 59 | observer.observe(section); 60 | } 61 | }); 62 | 63 | return () => { 64 | sectionIds.forEach((id) => { 65 | const section = document.getElementById(id); 66 | if (section) { 67 | observer.unobserve(section); 68 | } 69 | }); 70 | }; 71 | }, []); 72 | 73 | return ( 74 |
75 | {/* Mobile Toggle Button */} 76 |
77 | 110 |
111 | 112 |
113 | {/* Menu Items */} 114 |
115 |
handleScroll('projects')}> 118 | Projects Logo 119 |

Projects

120 |
121 |
handleScroll('achievements')}> 124 | Achievements Logo 125 |

Achieve.

126 |
127 |
handleScroll('team')}> 130 | Teams Logo 131 |

Team

132 |
133 |
handleScroll('announcements')}> 136 | Announcements Logo 137 |

Announc.

138 |
139 |
handleScroll('intro')}> 142 | Home Logo 143 |

Home

144 |
145 |
handleScroll('contact')}> 148 | Contact Logo 149 |

Contact

150 |
151 |
handleScroll('about')}> 154 | About Logo 155 |

About

156 |
157 |
handleScroll('gallery')}> 160 | Gallery Logo 161 |

Gallery

162 |
163 |
handleScroll('workshop')}> 166 | Workshop Logo 167 |

Workshop

168 |
169 |
170 |
171 |
172 | ); 173 | } 174 | 175 | export default Navbar; 176 | -------------------------------------------------------------------------------- /src/Components/Projects.tsx: -------------------------------------------------------------------------------- 1 | import { useEffect, useRef, useState } from 'react'; 2 | import clsx from 'clsx'; 3 | import { useNavigate } from 'react-router-dom'; 4 | import commingSoon from '../assets/images/commingSoon.png'; 5 | 6 | export default function Projects() { 7 | const [isActive, setIsActive] = useState(false); 8 | const teamRef = useRef(null); 9 | const navigate = useNavigate(); 10 | 11 | const goTo = () => { 12 | navigate('/'); 13 | }; 14 | 15 | // Intersection Observer logic 16 | useEffect(() => { 17 | const observer = new IntersectionObserver( 18 | ([entry]) => { 19 | setIsActive(entry.isIntersecting); 20 | }, 21 | { threshold: 0.2 } 22 | ); 23 | 24 | if (teamRef.current) { 25 | observer.observe(teamRef.current); 26 | } 27 | 28 | return () => { 29 | if (teamRef.current) { 30 | observer.unobserve(teamRef.current); 31 | } 32 | }; 33 | }, []); 34 | 35 | return ( 36 |
45 | {/* Heading */} 46 |

54 | Projects 55 |

56 | 57 | {/* Image */} 58 |
66 | Coming Soon 71 |
72 |
73 | ); 74 | } 75 | -------------------------------------------------------------------------------- /src/Components/Team.tsx: -------------------------------------------------------------------------------- 1 | import { useEffect, useRef, useState } from 'react'; 2 | import clsx from 'clsx'; 3 | import { useNavigate } from 'react-router-dom'; 4 | import './Teams.css' 5 | 6 | export default function Team() { 7 | const [isActive, setIsActive] = useState(false); 8 | const teamRef = useRef(null); 9 | const navigate = useNavigate(); 10 | 11 | const goTo2023 = () => { 12 | navigate('/teams/2023'); 13 | }; 14 | const goTo2024 = () => { 15 | navigate('/teams/2024'); 16 | }; 17 | const goTo2025 = () => { 18 | navigate('/teams/2025'); 19 | }; 20 | 21 | // Intersection Observer logic 22 | useEffect(() => { 23 | const observer = new IntersectionObserver( 24 | ([entry]) => { 25 | setIsActive(entry.isIntersecting); 26 | }, 27 | { threshold: 0.2 } // You can adjust this value depending on when you want the effect to trigger 28 | ); 29 | 30 | if (teamRef.current) { 31 | observer.observe(teamRef.current); 32 | } 33 | 34 | return () => { 35 | if (teamRef.current) { 36 | observer.unobserve(teamRef.current); 37 | } 38 | }; 39 | }, []); 40 | 41 | return ( 42 | 96 | ); 97 | } 98 | -------------------------------------------------------------------------------- /src/Components/Teams.css: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: 'Avenger'; 3 | src: url('../assets/fonts/Avenger.ttf') format('truetype'); 4 | font-weight: 1000; 5 | font-style: normal; 6 | } 7 | 8 | .aven { 9 | font-family: 'Avenger', sans-serif; 10 | text-shadow: 0px 0px 20px #FF6A00; 11 | } -------------------------------------------------------------------------------- /src/Components/Workshop.tsx: -------------------------------------------------------------------------------- 1 | import { useEffect, useRef, useState } from 'react'; 2 | import clsx from 'clsx'; 3 | import { useNavigate } from 'react-router-dom'; 4 | import commingSoon from '../assets/images/commingSoon.png'; 5 | 6 | export default function Workshop() { 7 | const [isActive, setIsActive] = useState(false); 8 | const teamRef = useRef(null); 9 | const navigate = useNavigate(); 10 | 11 | const goTo = () => { 12 | navigate('/'); 13 | }; 14 | 15 | // Intersection Observer logic 16 | useEffect(() => { 17 | const observer = new IntersectionObserver( 18 | ([entry]) => { 19 | setIsActive(entry.isIntersecting); 20 | }, 21 | { threshold: 0.2 } 22 | ); 23 | 24 | if (teamRef.current) { 25 | observer.observe(teamRef.current); 26 | } 27 | 28 | return () => { 29 | if (teamRef.current) { 30 | observer.unobserve(teamRef.current); 31 | } 32 | }; 33 | }, []); 34 | 35 | return ( 36 |
45 | {/* Heading */} 46 |

54 | Workshop 55 |

56 | 57 | {/* Image */} 58 |
66 | Coming Soon 71 |
72 |
73 | ); 74 | } 75 | -------------------------------------------------------------------------------- /src/Loader.css: -------------------------------------------------------------------------------- 1 | .main{ 2 | height: 95vh; 3 | padding: 0% 5% 0% 5%; 4 | 5 | } 6 | .loader { 7 | height: 4px; 8 | margin: 2rem; 9 | width: 250px; 10 | --c:no-repeat linear-gradient(#FB5109 0 0); 11 | background: var(--c),var(--c),#fcf5b8; 12 | background-size: 60% 100%; 13 | animation: l16 3s infinite; 14 | } 15 | @keyframes l16 { 16 | 0% {background-position:-150% 0,-150% 0} 17 | 66% {background-position: 250% 0,-150% 0} 18 | 100% {background-position: 250% 0, 250% 0} 19 | } -------------------------------------------------------------------------------- /src/Loader.tsx: -------------------------------------------------------------------------------- 1 | import { useEffect, useState } from 'react'; 2 | import {App} from './app/App' 3 | import loaderImage from './assets/AeroCET-logo.png'; 4 | import './Loader.css'; 5 | 6 | export default function Loader() { 7 | const [showApp, setShowApp] = useState(false); 8 | 9 | useEffect(() => { 10 | const timeoutId = setTimeout(() => { 11 | setShowApp(true); 12 | }, 2500); 13 | 14 | return () => { 15 | clearTimeout(timeoutId); 16 | }; 17 | }, []); 18 | 19 | if (showApp) { 20 | return ; 21 | } 22 | 23 | return ( 24 |
25 |
Loader-image
26 |
27 |
28 | ); 29 | } 30 | -------------------------------------------------------------------------------- /src/Pages/404Error.tsx: -------------------------------------------------------------------------------- 1 | import logo from '../assets/AeroCET-logo.png' 2 | export const NotFound = () =>{ 3 | return( 4 | <> 5 |
6 | 7 |

8 | 404 Error Page not found! 9 |

10 |
11 | 12 | ) 13 | } -------------------------------------------------------------------------------- /src/Pages/FullPic.tsx: -------------------------------------------------------------------------------- 1 | 2 | import { useLocation, useNavigate } from 'react-router-dom'; 3 | import img2023 from '../../Data/execom/2023.jpg'; 4 | import img2024 from '../../Data/execom/2024.jpg'; 5 | 6 | function FullPic() { 7 | const location = useLocation(); // Access the current URL path 8 | const navigate = useNavigate(); // Hook for navigation 9 | 10 | // Handler for navigating to the Home page 11 | const goHome = () => { 12 | navigate('/'); // Navigates to the home page 13 | }; 14 | 15 | if (location.pathname === '/teams/2024') { 16 | return ( 17 | 18 |
19 | 26 | 2024 Team 27 |
28 | ); 29 | } 30 | if (location.pathname === '/teams/2023') { 31 | return ( 32 |
33 | 40 | 2023 Team 41 |
42 | ); 43 | } 44 | 45 | } 46 | 47 | export default FullPic; 48 | -------------------------------------------------------------------------------- /src/Pages/Gallery.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmesidhu/React-AeroCET-client/c0770c53f2757aa3a852908462a2e0843d9423cd/src/Pages/Gallery.css -------------------------------------------------------------------------------- /src/Pages/Gallery.tsx: -------------------------------------------------------------------------------- 1 | // Gallery.tsx (Frontend) 2 | import { useEffect, useRef, useState } from "react"; 3 | import { useNavigate } from "react-router-dom"; 4 | import logo from '../assets/AeroCET-logo.png'; 5 | import clsx from 'clsx'; 6 | import axios from 'axios'; 7 | 8 | export default function Gallery() { 9 | const [isActive, setIsActive] = useState(false); 10 | const [images, setImages] = useState([]); // Ensure this is an array of strings (image URLs) 11 | const [loading, setLoading] = useState(true); 12 | const [error, setError] = useState(null); 13 | const galleryRef = useRef(null); 14 | const navigate = useNavigate(); 15 | 16 | const goTo = () => { 17 | navigate('/'); 18 | }; 19 | console.log("API URL:", process.env.REACT_APP_API_URL); 20 | useEffect(() => { 21 | axios.get(`${process.env.REACT_APP_API_URL}/api/data`) 22 | 23 | .then((response) => { 24 | console.log(response.data.images); // Check if URLs are correct 25 | 26 | 27 | setImages(response.data.images); // Store the fetched image URLs 28 | setLoading(false); 29 | }) 30 | .catch((err) => { 31 | setError(err); 32 | setLoading(false); 33 | }); 34 | 35 | const observer = new IntersectionObserver( 36 | ([entry]) => { 37 | setIsActive(entry.isIntersecting); 38 | }, 39 | { threshold: 0.1 } 40 | ); 41 | 42 | if (galleryRef.current) { 43 | observer.observe(galleryRef.current); 44 | } 45 | 46 | return () => { 47 | if (galleryRef.current) { 48 | observer.unobserve(galleryRef.current); 49 | } 50 | }; 51 | }, []); 52 | 53 | if (loading) { 54 | return
Loading...
; 55 | } 56 | 57 | if (error) { 58 | return
Error fetching images: {error.message}
; 59 | } 60 | 61 | return ( 62 |
70 | 80 | 81 |

88 | Gallery 89 |

90 |

97 | Every picture has a story to tell..! 98 |

99 | 100 |
105 | {images.map((imageUrl, index) => ( 106 | {`Gallery 117 | ))} 118 |
119 |
120 | ); 121 | } 122 | -------------------------------------------------------------------------------- /src/Pages/Home.css: -------------------------------------------------------------------------------- 1 | body{ 2 | margin: 0; 3 | padding: 0; 4 | } 5 | .main{ 6 | display: flex; 7 | justify-content: center; 8 | align-items: center; 9 | min-height: 100vh; 10 | text-align: center; 11 | width: 100vw; 12 | min-width: 100vw; 13 | overflow-y: hidden; 14 | overflow-x: hidden; 15 | color: white; /* This will make the text stand out on the background colors */ 16 | 17 | } 18 | 19 | .home{ 20 | display: flex; 21 | overflow-x: hidden; 22 | 23 | 24 | } 25 | 26 | 27 | 28 | 29 | ::-webkit-scrollbar { 30 | width: 2px; 31 | 32 | 33 | } 34 | 35 | ::-webkit-scrollbar-track { 36 | box-shadow: inset 0 0 3px rgba(0, 0, 0, 0); 37 | border-radius: 20px; 38 | 39 | 40 | } 41 | 42 | ::-webkit-scrollbar-thumb { 43 | background: #ff7300 ; 44 | border-radius: 20px; 45 | cursor: grab; 46 | 47 | 48 | } 49 | 50 | ::-webkit-scrollbar-thumb:hover { 51 | background: #d45500 ; 52 | transition-duration: 10s; 53 | 54 | } 55 | .divbg{ 56 | 57 | 58 | background-repeat: no-repeat; 59 | background-size: cover; 60 | background-image: url(../assets/images/introBG.png); 61 | 62 | position: relative; 63 | min-width: 100vw; 64 | overflow-y: hidden; 65 | overflow-x: hidden; 66 | 67 | } -------------------------------------------------------------------------------- /src/Pages/Home.tsx: -------------------------------------------------------------------------------- 1 | import React, { useEffect, useRef } from 'react'; 2 | import './Home.css'; 3 | import Navbar from '../Components/Navbar'; 4 | import Intro from '../Components/Intro'; 5 | import Gallery from '../Components/Gallery'; 6 | import Team from '../Components/Team'; 7 | import About from '../Components/About'; 8 | import Contact from '../Components/Contact' 9 | import Announcements from '../Components/Announcements'; 10 | import Achievements from '../Components/Achievements'; 11 | import Projects from '../Components/Projects'; 12 | import Workshop from '../Components/Workshop'; 13 | 14 | 15 | 16 | 17 | const Home: React.FC = () => { 18 | 19 | 20 | const scrollContainerRef = useRef(null); 21 | 22 | useEffect(() => { 23 | const element = scrollContainerRef.current; 24 | 25 | if (element) { 26 | const handleScroll = (event: WheelEvent) => { 27 | event.preventDefault(); 28 | const scrollSpeed = 5; // Increase this value to scroll faster 29 | element.scrollBy({ 30 | left: event.deltaY * scrollSpeed, 31 | behavior: 'smooth', 32 | }); 33 | }; 34 | 35 | element.addEventListener('wheel', handleScroll); 36 | 37 | return () => { 38 | element.removeEventListener('wheel', handleScroll); 39 | }; 40 | } 41 | }, []); 42 | 43 | return ( 44 |
45 | 46 |
47 | 48 |
49 |
50 | 51 |
52 |
53 | 54 |
55 |
56 | 57 |
58 |
59 | 60 |
61 |
62 | 63 |
64 | 67 |
68 | 69 |
70 |
71 | 72 |
73 | 74 |
75 | 76 | ) 77 | 78 | }; 79 | 80 | export default Home; 81 | -------------------------------------------------------------------------------- /src/Pages/Teams.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmesidhu/React-AeroCET-client/c0770c53f2757aa3a852908462a2e0843d9423cd/src/Pages/Teams.css -------------------------------------------------------------------------------- /src/Pages/Teams.tsx: -------------------------------------------------------------------------------- 1 | import { useNavigate, useParams } from "react-router-dom"; 2 | import { useState, useEffect, useRef } from "react"; 3 | import axios from "axios"; 4 | import clsx from "clsx"; 5 | import logo from "../assets/AeroCET-logo.png"; 6 | 7 | export default function Teams() { 8 | const { year } = useParams(); // Extracts year from URL like "/teams/2025" 9 | const selectedYear = year ? parseInt(year, 10) : new Date().getFullYear(); // Convert to number or use current year 10 | const [isActive, setIsActive] = useState(false); 11 | const [people, setPeople] = useState<{ id: number; imgURL: string; name: string; role: string }[]>([]); 12 | const teamsRef = useRef(null); 13 | const navigate = useNavigate(); 14 | 15 | const goTo = () => { 16 | navigate("/"); 17 | }; 18 | 19 | useEffect(() => { 20 | axios 21 | .get(`${import.meta.env.VITE_API_BASE_URL}/api/execom`) 22 | .then((response) => { 23 | console.log("API Response:", response.data); // Debug API response 24 | 25 | if (response.data[selectedYear]) { 26 | setPeople(response.data[selectedYear]); // Set people based on the year 27 | } else { 28 | setPeople([]); // Set empty if year data not found 29 | } 30 | }) 31 | .catch((error) => { 32 | console.error("Error fetching team data:", error); 33 | }); 34 | 35 | const observer = new IntersectionObserver( 36 | ([entry]) => { 37 | setIsActive(entry.isIntersecting); 38 | }, 39 | { threshold: 0.2 } 40 | ); 41 | 42 | if (teamsRef.current) { 43 | observer.observe(teamsRef.current); 44 | } 45 | 46 | return () => { 47 | if (teamsRef.current) { 48 | observer.unobserve(teamsRef.current); 49 | } 50 | }; 51 | }, [selectedYear]); // Re-run effect when year changes 52 | 53 | return ( 54 |
55 | {/* Centered Logo Button */} 56 | 66 | 67 | {/* Content */} 68 |

69 | Our Team 70 |

71 | 72 | 73 | {/* Team Members */} 74 |
75 | {people.length > 0 ? ( 76 | people.map((member) => ( 77 |
78 | (e.currentTarget.src = logo)} // Fallback if image fails 81 | className="rounded-lg w-full max-w-[100px] sm:max-w-[150px] object-cover" 82 | alt={member.name} 83 | /> 84 |

{member.name}

85 |

{member.role}

86 |
87 | )) 88 | ) : ( 89 |

No team data available for {selectedYear}.

90 | )} 91 |
92 |
93 | ); 94 | } 95 | -------------------------------------------------------------------------------- /src/app/App.css: -------------------------------------------------------------------------------- 1 | @import url('https://fonts.googleapis.com/css2?family=Audiowide&family=Instrument+Sans:ital,wght@0,400..700;1,400..700&family=Teko:wght@300..700&display=swap'); 2 | 3 | /* For WebKit browsers */ 4 | ::-webkit-scrollbar { 5 | width: 4px; /* Width of the vertical scrollbar */ 6 | height: 4px; /* Height of the horizontal scrollbar */ 7 | } 8 | 9 | ::-webkit-scrollbar-track { 10 | background: #eaeaea00; /* Background of the scrollbar track */ 11 | } 12 | 13 | ::-webkit-scrollbar-thumb { 14 | background-color: rgb(241, 109, 0); /* Color of the scrollbar thumb */ 15 | border-radius: 10px; /* Rounded corners for the thumb */ 16 | } 17 | 18 | /* App and body styles */ 19 | App { 20 | width: 100vw; 21 | height: 100vh; 22 | margin: 0; 23 | padding: 0; 24 | } 25 | 26 | body { 27 | background-color: #110011; 28 | color: white; 29 | scrollbar-width: 4px; /* Firefox scrollbar width */ 30 | scrollbar-color: rgb(241, 109, 0) #eaeaea00; /* Firefox scrollbar color */ 31 | } 32 | 33 | @font-face { 34 | font-family: 'custom'; 35 | src: url('../assets/fonts/NoSurrender.ttf') format('truetype'); 36 | font-weight: 1000; 37 | font-style: normal; 38 | } 39 | 40 | h1 { 41 | font-family: "custom", serif; 42 | } 43 | 44 | .shad{ 45 | border: 0px solid; 46 | padding: 10px; 47 | box-shadow: 0px 0px 35px #FF6A00; 48 | border-radius: 50px; 49 | } 50 | -------------------------------------------------------------------------------- /src/app/App.tsx: -------------------------------------------------------------------------------- 1 | import { NotFound } from '../Pages/404Error'; 2 | import FullPic from '../Pages/FullPic'; 3 | import Gallery from '../Pages/Gallery'; 4 | import Home from '../Pages/Home' 5 | import Teams from '../Pages/Teams'; 6 | import './App.css' 7 | import { BrowserRouter as Router, Routes, Route } from 'react-router-dom'; 8 | 9 | 10 | export function App(){ 11 | 12 | return ( 13 |
14 | 15 | 16 | 17 | } /> 18 | } /> 19 | } /> 20 | } /> 21 | } /> 22 | } /> 23 | 24 | 25 |
26 | ) 27 | } 28 | 29 | 30 | -------------------------------------------------------------------------------- /src/assets/AeroCET-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmesidhu/React-AeroCET-client/c0770c53f2757aa3a852908462a2e0843d9423cd/src/assets/AeroCET-logo.png -------------------------------------------------------------------------------- /src/assets/fonts/Avenger.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmesidhu/React-AeroCET-client/c0770c53f2757aa3a852908462a2e0843d9423cd/src/assets/fonts/Avenger.ttf -------------------------------------------------------------------------------- /src/assets/fonts/NeutronsDemoRegular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmesidhu/React-AeroCET-client/c0770c53f2757aa3a852908462a2e0843d9423cd/src/assets/fonts/NeutronsDemoRegular.ttf -------------------------------------------------------------------------------- /src/assets/fonts/NoSurrender.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmesidhu/React-AeroCET-client/c0770c53f2757aa3a852908462a2e0843d9423cd/src/assets/fonts/NoSurrender.ttf -------------------------------------------------------------------------------- /src/assets/fonts/hypik.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmesidhu/React-AeroCET-client/c0770c53f2757aa3a852908462a2e0843d9423cd/src/assets/fonts/hypik.otf -------------------------------------------------------------------------------- /src/assets/images/commingSoon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmesidhu/React-AeroCET-client/c0770c53f2757aa3a852908462a2e0843d9423cd/src/assets/images/commingSoon.png -------------------------------------------------------------------------------- /src/assets/images/downloadButton.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmesidhu/React-AeroCET-client/c0770c53f2757aa3a852908462a2e0843d9423cd/src/assets/images/downloadButton.png -------------------------------------------------------------------------------- /src/assets/images/drone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmesidhu/React-AeroCET-client/c0770c53f2757aa3a852908462a2e0843d9423cd/src/assets/images/drone.png -------------------------------------------------------------------------------- /src/assets/images/introBG.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmesidhu/React-AeroCET-client/c0770c53f2757aa3a852908462a2e0843d9423cd/src/assets/images/introBG.png -------------------------------------------------------------------------------- /src/assets/images/introText.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmesidhu/React-AeroCET-client/c0770c53f2757aa3a852908462a2e0843d9423cd/src/assets/images/introText.png -------------------------------------------------------------------------------- /src/assets/images/jet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmesidhu/React-AeroCET-client/c0770c53f2757aa3a852908462a2e0843d9423cd/src/assets/images/jet.png -------------------------------------------------------------------------------- /src/assets/images/plane.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmesidhu/React-AeroCET-client/c0770c53f2757aa3a852908462a2e0843d9423cd/src/assets/images/plane.png -------------------------------------------------------------------------------- /src/assets/images/sample.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmesidhu/React-AeroCET-client/c0770c53f2757aa3a852908462a2e0843d9423cd/src/assets/images/sample.jpeg -------------------------------------------------------------------------------- /src/assets/images/vectorDrone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmesidhu/React-AeroCET-client/c0770c53f2757aa3a852908462a2e0843d9423cd/src/assets/images/vectorDrone.png -------------------------------------------------------------------------------- /src/assets/images/vectorPlane.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/callmesidhu/React-AeroCET-client/c0770c53f2757aa3a852908462a2e0843d9423cd/src/assets/images/vectorPlane.png -------------------------------------------------------------------------------- /src/index.css: -------------------------------------------------------------------------------- 1 | @tailwind base; 2 | @tailwind components; 3 | @tailwind utilities; 4 | 5 | 6 | body{ 7 | background-color: black; 8 | color: white; 9 | -ms-overflow-style: none; /* IE and Edge */ 10 | scrollbar-width: none; /* Firefox */ 11 | 12 | } 13 | ::-webkit-scrollbar { 14 | display: none; 15 | } 16 | -------------------------------------------------------------------------------- /src/main.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import ReactDOM from 'react-dom/client' 3 | import './index.css' 4 | import Loader from './Loader' 5 | 6 | 7 | ReactDOM.createRoot(document.getElementById('root')!).render( 8 | 9 | 10 | , 11 | ) 12 | -------------------------------------------------------------------------------- /src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /tailwind.config.js: -------------------------------------------------------------------------------- 1 | 2 | module.exports = { 3 | content: [ 4 | './src/components/**/*.{js,jsx,ts,tsx}', 5 | './src/pages/**/*.{js,jsx,ts,tsx}', 6 | './src/app/**/*.{js,jsx,ts,tsx}', 7 | './src/**/*.{js,jsx,ts,tsx}' 8 | ], 9 | theme: { 10 | screens: { 11 | 'sm': '280px', 12 | // => @media (min-width: 640px) { ... } 13 | 14 | 'md': '640px', 15 | // => @media (min-width: 768px) { ... } 16 | 17 | 'lg': '1024px', 18 | // => @media (min-width: 1024px) { ... } 19 | 20 | 'xl': '1280px', 21 | // => @media (min-width: 1280px) { ... } 22 | 23 | '2xl': '1536px', 24 | // => @media (min-width: 1536px) { ... } 25 | } 26 | }, 27 | plugins: [], 28 | }; 29 | 30 | -------------------------------------------------------------------------------- /tsconfig.app.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "composite": true, 4 | "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo", 5 | "target": "ES2020", 6 | "useDefineForClassFields": true, 7 | "lib": ["ES2020", "DOM", "DOM.Iterable"], 8 | "module": "ESNext", 9 | "skipLibCheck": true, 10 | 11 | /* Bundler mode */ 12 | "moduleResolution": "bundler", 13 | "allowImportingTsExtensions": true, 14 | "resolveJsonModule": true, 15 | "isolatedModules": true, 16 | "moduleDetection": "force", 17 | "noEmit": true, 18 | "jsx": "react-jsx", 19 | 20 | /* Linting */ 21 | "strict": true, 22 | "noUnusedLocals": true, 23 | "noUnusedParameters": true, 24 | "noFallthroughCasesInSwitch": true 25 | }, 26 | "include": ["src"] 27 | } 28 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "files": [], 3 | "references": [ 4 | { 5 | "path": "./tsconfig.app.json" 6 | }, 7 | { 8 | "path": "./tsconfig.node.json" 9 | } 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /tsconfig.node.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "composite": true, 4 | "tsBuildInfoFile": "node_modules/.tmp/tsconfig.node.tsbuildinfo", 5 | "skipLibCheck": true, 6 | "module": "ESNext", 7 | "moduleResolution": "bundler", 8 | "allowSyntheticDefaultImports": true, 9 | "strict": true, 10 | "noEmit": true 11 | }, 12 | "include": ["vite.config.ts"] 13 | } 14 | -------------------------------------------------------------------------------- /vercel.json: -------------------------------------------------------------------------------- 1 | { 2 | "rewrites": [ 3 | { "source": "/(.*)", "destination": "/" } 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite'; 2 | import react from '@vitejs/plugin-react-swc'; 3 | 4 | export default defineConfig({ 5 | server: { 6 | host: true, 7 | port: 3000, 8 | proxy: { 9 | '/api': { 10 | target: 'http://14.139.171.170:3001', 11 | changeOrigin: true, 12 | secure: false, 13 | rewrite: (path) => path.replace(/^\/api/, ''), 14 | }, 15 | }, 16 | }, 17 | plugins: [react()], 18 | define: { 19 | 'process.env': process.env, 20 | }, 21 | build: { 22 | outDir: 'dist', 23 | sourcemap: true, 24 | }, 25 | resolve: { 26 | alias: { 27 | '@': '/src', 28 | }, 29 | }, 30 | }); 31 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@alloc/quick-lru@^5.2.0": 6 | version "5.2.0" 7 | resolved "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz" 8 | integrity sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw== 9 | 10 | "@babel/runtime@^7.1.2": 11 | version "7.25.6" 12 | resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.6.tgz" 13 | integrity sha512-VBj9MYyDb9tuLq7yzqjgzt6Q+IBQLrGZfdjOekyEirZPHxXWoTSGUTMrpsfi58Up73d13NfYLv8HT9vmznjzhQ== 14 | dependencies: 15 | regenerator-runtime "^0.14.0" 16 | 17 | "@esbuild/win32-x64@0.21.5": 18 | version "0.21.5" 19 | resolved "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz" 20 | integrity sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw== 21 | 22 | "@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": 23 | version "4.4.0" 24 | resolved "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz" 25 | integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== 26 | dependencies: 27 | eslint-visitor-keys "^3.3.0" 28 | 29 | "@eslint-community/regexpp@^4.10.0", "@eslint-community/regexpp@^4.6.1": 30 | version "4.11.0" 31 | resolved "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.0.tgz" 32 | integrity sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A== 33 | 34 | "@eslint/eslintrc@^2.1.4": 35 | version "2.1.4" 36 | resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz" 37 | integrity sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ== 38 | dependencies: 39 | ajv "^6.12.4" 40 | debug "^4.3.2" 41 | espree "^9.6.0" 42 | globals "^13.19.0" 43 | ignore "^5.2.0" 44 | import-fresh "^3.2.1" 45 | js-yaml "^4.1.0" 46 | minimatch "^3.1.2" 47 | strip-json-comments "^3.1.1" 48 | 49 | "@eslint/js@8.57.0": 50 | version "8.57.0" 51 | resolved "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz" 52 | integrity sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g== 53 | 54 | "@floating-ui/core@^1.6.0": 55 | version "1.6.5" 56 | resolved "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.5.tgz" 57 | integrity sha512-8GrTWmoFhm5BsMZOTHeGD2/0FLKLQQHvO/ZmQga4tKempYRLz8aqJGqXVuQgisnMObq2YZ2SgkwctN1LOOxcqA== 58 | dependencies: 59 | "@floating-ui/utils" "^0.2.5" 60 | 61 | "@floating-ui/dom@^1.0.0": 62 | version "1.6.8" 63 | resolved "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.8.tgz" 64 | integrity sha512-kx62rP19VZ767Q653wsP1XZCGIirkE09E0QUGNYTM/ttbbQHqcGPdSfWFxUyyNLc/W6aoJRBajOSXhP6GXjC0Q== 65 | dependencies: 66 | "@floating-ui/core" "^1.6.0" 67 | "@floating-ui/utils" "^0.2.5" 68 | 69 | "@floating-ui/react-dom@^2.1.1": 70 | version "2.1.1" 71 | resolved "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.1.tgz" 72 | integrity sha512-4h84MJt3CHrtG18mGsXuLCHMrug49d7DFkU0RMIyshRveBeyV2hmV/pDaF2Uxtu8kgq5r46llp5E5FQiR0K2Yg== 73 | dependencies: 74 | "@floating-ui/dom" "^1.0.0" 75 | 76 | "@floating-ui/react@^0.26.16": 77 | version "0.26.20" 78 | resolved "https://registry.npmjs.org/@floating-ui/react/-/react-0.26.20.tgz" 79 | integrity sha512-RixKJJG92fcIsVoqrFr4Onpzh7hlOx4U7NV4aLhMLmtvjZ5oTB/WzXaANYUZATKqXvvW7t9sCxtzejip26N5Ag== 80 | dependencies: 81 | "@floating-ui/react-dom" "^2.1.1" 82 | "@floating-ui/utils" "^0.2.5" 83 | tabbable "^6.0.0" 84 | 85 | "@floating-ui/utils@^0.2.5": 86 | version "0.2.5" 87 | resolved "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.5.tgz" 88 | integrity sha512-sTcG+QZ6fdEUObICavU+aB3Mp8HY4n14wYHdxK4fXjPmv3PXZZeY5RaguJmGyeH/CJQhX3fqKUtS4qc1LoHwhQ== 89 | 90 | "@fortawesome/fontawesome-common-types@6.6.0": 91 | version "6.6.0" 92 | resolved "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.6.0.tgz" 93 | integrity sha512-xyX0X9mc0kyz9plIyryrRbl7ngsA9jz77mCZJsUkLl+ZKs0KWObgaEBoSgQiYWAsSmjz/yjl0F++Got0Mdp4Rw== 94 | 95 | "@fortawesome/fontawesome-svg-core@~1 || ~6": 96 | version "6.6.0" 97 | resolved "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.6.0.tgz" 98 | integrity sha512-KHwPkCk6oRT4HADE7smhfsKudt9N/9lm6EJ5BVg0tD1yPA5hht837fB87F8pn15D8JfTqQOjhKTktwmLMiD7Kg== 99 | dependencies: 100 | "@fortawesome/fontawesome-common-types" "6.6.0" 101 | 102 | "@fortawesome/free-solid-svg-icons@^6.6.0": 103 | version "6.6.0" 104 | resolved "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-6.6.0.tgz" 105 | integrity sha512-IYv/2skhEDFc2WGUcqvFJkeK39Q+HyPf5GHUrT/l2pKbtgEIv1al1TKd6qStR5OIwQdN1GZP54ci3y4mroJWjA== 106 | dependencies: 107 | "@fortawesome/fontawesome-common-types" "6.6.0" 108 | 109 | "@fortawesome/react-fontawesome@^0.2.2": 110 | version "0.2.2" 111 | resolved "https://registry.npmjs.org/@fortawesome/react-fontawesome/-/react-fontawesome-0.2.2.tgz" 112 | integrity sha512-EnkrprPNqI6SXJl//m29hpaNzOp1bruISWaOiRtkMi/xSvHJlzc2j2JAYS7egxt/EbjSNV/k6Xy0AQI6vB2+1g== 113 | dependencies: 114 | prop-types "^15.8.1" 115 | 116 | "@headlessui/react@^2.1.2": 117 | version "2.1.2" 118 | resolved "https://registry.npmjs.org/@headlessui/react/-/react-2.1.2.tgz" 119 | integrity sha512-Kb3hgk9gRNRcTZktBrKdHhF3xFhYkca1Rk6e1/im2ENf83dgN54orMW0uSKTXFnUpZOUFZ+wcY05LlipwgZIFQ== 120 | dependencies: 121 | "@floating-ui/react" "^0.26.16" 122 | "@react-aria/focus" "^3.17.1" 123 | "@react-aria/interactions" "^3.21.3" 124 | "@tanstack/react-virtual" "^3.8.1" 125 | 126 | "@heroicons/react@^2.1.5": 127 | version "2.1.5" 128 | resolved "https://registry.npmjs.org/@heroicons/react/-/react-2.1.5.tgz" 129 | integrity sha512-FuzFN+BsHa+7OxbvAERtgBTNeZpUjgM/MIizfVkSCL2/edriN0Hx/DWRCR//aPYwO5QX/YlgLGXk+E3PcfZwjA== 130 | 131 | "@humanwhocodes/config-array@^0.11.14": 132 | version "0.11.14" 133 | resolved "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz" 134 | integrity sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg== 135 | dependencies: 136 | "@humanwhocodes/object-schema" "^2.0.2" 137 | debug "^4.3.1" 138 | minimatch "^3.0.5" 139 | 140 | "@humanwhocodes/module-importer@^1.0.1": 141 | version "1.0.1" 142 | resolved "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz" 143 | integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== 144 | 145 | "@humanwhocodes/object-schema@^2.0.2": 146 | version "2.0.3" 147 | resolved "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz" 148 | integrity sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA== 149 | 150 | "@isaacs/cliui@^8.0.2": 151 | version "8.0.2" 152 | resolved "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz" 153 | integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== 154 | dependencies: 155 | string-width "^5.1.2" 156 | string-width-cjs "npm:string-width@^4.2.0" 157 | strip-ansi "^7.0.1" 158 | strip-ansi-cjs "npm:strip-ansi@^6.0.1" 159 | wrap-ansi "^8.1.0" 160 | wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" 161 | 162 | "@jridgewell/gen-mapping@^0.3.2": 163 | version "0.3.5" 164 | resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz" 165 | integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg== 166 | dependencies: 167 | "@jridgewell/set-array" "^1.2.1" 168 | "@jridgewell/sourcemap-codec" "^1.4.10" 169 | "@jridgewell/trace-mapping" "^0.3.24" 170 | 171 | "@jridgewell/resolve-uri@^3.1.0": 172 | version "3.1.2" 173 | resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz" 174 | integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== 175 | 176 | "@jridgewell/set-array@^1.2.1": 177 | version "1.2.1" 178 | resolved "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz" 179 | integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== 180 | 181 | "@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.4.15": 182 | version "1.5.0" 183 | resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz" 184 | integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== 185 | 186 | "@jridgewell/trace-mapping@^0.3.24": 187 | version "0.3.25" 188 | resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz" 189 | integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== 190 | dependencies: 191 | "@jridgewell/resolve-uri" "^3.1.0" 192 | "@jridgewell/sourcemap-codec" "^1.4.14" 193 | 194 | "@nodelib/fs.scandir@2.1.5": 195 | version "2.1.5" 196 | resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz" 197 | integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== 198 | dependencies: 199 | "@nodelib/fs.stat" "2.0.5" 200 | run-parallel "^1.1.9" 201 | 202 | "@nodelib/fs.stat@^2.0.2", "@nodelib/fs.stat@2.0.5": 203 | version "2.0.5" 204 | resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" 205 | integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== 206 | 207 | "@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": 208 | version "1.2.8" 209 | resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz" 210 | integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== 211 | dependencies: 212 | "@nodelib/fs.scandir" "2.1.5" 213 | fastq "^1.6.0" 214 | 215 | "@pkgjs/parseargs@^0.11.0": 216 | version "0.11.0" 217 | resolved "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz" 218 | integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== 219 | 220 | "@react-aria/focus@^3.17.1": 221 | version "3.18.1" 222 | resolved "https://registry.npmjs.org/@react-aria/focus/-/focus-3.18.1.tgz" 223 | integrity sha512-N0Cy61WCIv+57mbqC7hiZAsB+3rF5n4JKabxUmg/2RTJL6lq7hJ5N4gx75ymKxkN8GnVDwt4pKZah48Wopa5jw== 224 | dependencies: 225 | "@react-aria/interactions" "^3.22.1" 226 | "@react-aria/utils" "^3.25.1" 227 | "@react-types/shared" "^3.24.1" 228 | "@swc/helpers" "^0.5.0" 229 | clsx "^2.0.0" 230 | 231 | "@react-aria/interactions@^3.21.3", "@react-aria/interactions@^3.22.1": 232 | version "3.22.1" 233 | resolved "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.22.1.tgz" 234 | integrity sha512-5TLzQaDAQQ5C70yG8GInbO4wIylKY67RfTIIwQPGR/4n5OIjbUD8BOj3NuSsuZ/frUPaBXo1VEBBmSO23fxkjw== 235 | dependencies: 236 | "@react-aria/ssr" "^3.9.5" 237 | "@react-aria/utils" "^3.25.1" 238 | "@react-types/shared" "^3.24.1" 239 | "@swc/helpers" "^0.5.0" 240 | 241 | "@react-aria/ssr@^3.9.5": 242 | version "3.9.5" 243 | resolved "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.9.5.tgz" 244 | integrity sha512-xEwGKoysu+oXulibNUSkXf8itW0npHHTa6c4AyYeZIJyRoegeteYuFpZUBPtIDE8RfHdNsSmE1ssOkxRnwbkuQ== 245 | dependencies: 246 | "@swc/helpers" "^0.5.0" 247 | 248 | "@react-aria/utils@^3.25.1": 249 | version "3.25.1" 250 | resolved "https://registry.npmjs.org/@react-aria/utils/-/utils-3.25.1.tgz" 251 | integrity sha512-5Uj864e7T5+yj78ZfLnfHqmypLiqW2mN+nsdslog2z5ssunTqjolVeM15ootXskjISlZ7MojLpq97kIC4nlnAw== 252 | dependencies: 253 | "@react-aria/ssr" "^3.9.5" 254 | "@react-stately/utils" "^3.10.2" 255 | "@react-types/shared" "^3.24.1" 256 | "@swc/helpers" "^0.5.0" 257 | clsx "^2.0.0" 258 | 259 | "@react-stately/utils@^3.10.2": 260 | version "3.10.2" 261 | resolved "https://registry.npmjs.org/@react-stately/utils/-/utils-3.10.2.tgz" 262 | integrity sha512-fh6OTQtbeQC0ywp6LJuuKs6tKIgFvt/DlIZEcIpGho6/oZG229UnIk6TUekwxnDbumuYyan6D9EgUtEMmT8UIg== 263 | dependencies: 264 | "@swc/helpers" "^0.5.0" 265 | 266 | "@react-types/shared@^3.24.1": 267 | version "3.24.1" 268 | resolved "https://registry.npmjs.org/@react-types/shared/-/shared-3.24.1.tgz" 269 | integrity sha512-AUQeGYEm/zDTN6zLzdXolDxz3Jk5dDL7f506F07U8tBwxNNI3WRdhU84G0/AaFikOZzDXhOZDr3MhQMzyE7Ydw== 270 | 271 | "@remix-run/router@1.18.0": 272 | version "1.18.0" 273 | resolved "https://registry.npmjs.org/@remix-run/router/-/router-1.18.0.tgz" 274 | integrity sha512-L3jkqmqoSVBVKHfpGZmLrex0lxR5SucGA0sUfFzGctehw+S/ggL9L/0NnC5mw6P8HUWpFZ3nQw3cRApjjWx9Sw== 275 | 276 | "@rollup/rollup-win32-x64-msvc@4.19.0": 277 | version "4.19.0" 278 | resolved "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.19.0.tgz" 279 | integrity sha512-xNo5fV5ycvCCKqiZcpB65VMR11NJB+StnxHz20jdqRAktfdfzhgjTiJ2doTDQE/7dqGaV5I7ZGqKpgph6lCIag== 280 | 281 | "@swc/core-win32-x64-msvc@1.7.0": 282 | version "1.7.0" 283 | resolved "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.7.0.tgz" 284 | integrity sha512-b5Fd1xEOw9uqBpj2lqsaR4Iq9UhiL84hNDcEsi6DQA7Y1l85waQAslTbS0E4/pJ1PISAs0jW0zIGLco1eaWBOg== 285 | 286 | "@swc/core@^1.5.7": 287 | version "1.7.0" 288 | resolved "https://registry.npmjs.org/@swc/core/-/core-1.7.0.tgz" 289 | integrity sha512-d4vMzH6ICllDwlPuhset2h8gu/USHdbyfJim+2hQEdxC0UONtfpmu38XBgNqRjStrji1Q5M10jfeUZL3cu1i8g== 290 | dependencies: 291 | "@swc/counter" "^0.1.3" 292 | "@swc/types" "^0.1.9" 293 | optionalDependencies: 294 | "@swc/core-darwin-arm64" "1.7.0" 295 | "@swc/core-darwin-x64" "1.7.0" 296 | "@swc/core-linux-arm-gnueabihf" "1.7.0" 297 | "@swc/core-linux-arm64-gnu" "1.7.0" 298 | "@swc/core-linux-arm64-musl" "1.7.0" 299 | "@swc/core-linux-x64-gnu" "1.7.0" 300 | "@swc/core-linux-x64-musl" "1.7.0" 301 | "@swc/core-win32-arm64-msvc" "1.7.0" 302 | "@swc/core-win32-ia32-msvc" "1.7.0" 303 | "@swc/core-win32-x64-msvc" "1.7.0" 304 | 305 | "@swc/counter@^0.1.3": 306 | version "0.1.3" 307 | resolved "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz" 308 | integrity sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ== 309 | 310 | "@swc/helpers@*", "@swc/helpers@^0.5.0": 311 | version "0.5.12" 312 | resolved "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.12.tgz" 313 | integrity sha512-KMZNXiGibsW9kvZAO1Pam2JPTDBm+KSHMMHWdsyI/1DbIZjT2A6Gy3hblVXUMEDvUAKq+e0vL0X0o54owWji7g== 314 | dependencies: 315 | tslib "^2.4.0" 316 | 317 | "@swc/types@^0.1.9": 318 | version "0.1.9" 319 | resolved "https://registry.npmjs.org/@swc/types/-/types-0.1.9.tgz" 320 | integrity sha512-qKnCno++jzcJ4lM4NTfYifm1EFSCeIfKiAHAfkENZAV5Kl9PjJIyd2yeeVv6c/2CckuLyv2NmRC5pv6pm2WQBg== 321 | dependencies: 322 | "@swc/counter" "^0.1.3" 323 | 324 | "@tanstack/react-virtual@^3.8.1": 325 | version "3.8.3" 326 | resolved "https://registry.npmjs.org/@tanstack/react-virtual/-/react-virtual-3.8.3.tgz" 327 | integrity sha512-9ICwbDUUzN99CJIGc373i8NLoj6zFTKI2Hlcmo0+lCSAhPQ5mxq4dGOMKmLYoEFyHcGQ64Bd6ZVbnPpM6lNK5w== 328 | dependencies: 329 | "@tanstack/virtual-core" "3.8.3" 330 | 331 | "@tanstack/virtual-core@3.8.3": 332 | version "3.8.3" 333 | resolved "https://registry.npmjs.org/@tanstack/virtual-core/-/virtual-core-3.8.3.tgz" 334 | integrity sha512-vd2A2TnM5lbnWZnHi9B+L2gPtkSeOtJOAw358JqokIH1+v2J7vUAzFVPwB/wrye12RFOurffXu33plm4uQ+JBQ== 335 | 336 | "@types/estree@1.0.5": 337 | version "1.0.5" 338 | resolved "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz" 339 | integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== 340 | 341 | "@types/js-cookie@^2.2.6": 342 | version "2.2.7" 343 | resolved "https://registry.npmjs.org/@types/js-cookie/-/js-cookie-2.2.7.tgz" 344 | integrity sha512-aLkWa0C0vO5b4Sr798E26QgOkss68Un0bLjs7u9qxzPT5CG+8DuNTffWES58YzJs3hrVAOs1wonycqEBqNJubA== 345 | 346 | "@types/node@^18.0.0 || >=20.0.0", "@types/node@^22.10.2": 347 | version "22.10.2" 348 | resolved "https://registry.npmjs.org/@types/node/-/node-22.10.2.tgz" 349 | integrity sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ== 350 | dependencies: 351 | undici-types "~6.20.0" 352 | 353 | "@types/prop-types@*": 354 | version "15.7.12" 355 | resolved "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.12.tgz" 356 | integrity sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q== 357 | 358 | "@types/react-dom@^18.3.0": 359 | version "18.3.0" 360 | resolved "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.0.tgz" 361 | integrity sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg== 362 | dependencies: 363 | "@types/react" "*" 364 | 365 | "@types/react@*", "@types/react@^18.3.3": 366 | version "18.3.3" 367 | resolved "https://registry.npmjs.org/@types/react/-/react-18.3.3.tgz" 368 | integrity sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw== 369 | dependencies: 370 | "@types/prop-types" "*" 371 | csstype "^3.0.2" 372 | 373 | "@typescript-eslint/eslint-plugin@^7.15.0": 374 | version "7.16.1" 375 | resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.16.1.tgz" 376 | integrity sha512-SxdPak/5bO0EnGktV05+Hq8oatjAYVY3Zh2bye9pGZy6+jwyR3LG3YKkV4YatlsgqXP28BTeVm9pqwJM96vf2A== 377 | dependencies: 378 | "@eslint-community/regexpp" "^4.10.0" 379 | "@typescript-eslint/scope-manager" "7.16.1" 380 | "@typescript-eslint/type-utils" "7.16.1" 381 | "@typescript-eslint/utils" "7.16.1" 382 | "@typescript-eslint/visitor-keys" "7.16.1" 383 | graphemer "^1.4.0" 384 | ignore "^5.3.1" 385 | natural-compare "^1.4.0" 386 | ts-api-utils "^1.3.0" 387 | 388 | "@typescript-eslint/parser@^7.0.0", "@typescript-eslint/parser@^7.15.0": 389 | version "7.16.1" 390 | resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.16.1.tgz" 391 | integrity sha512-u+1Qx86jfGQ5i4JjK33/FnawZRpsLxRnKzGE6EABZ40KxVT/vWsiZFEBBHjFOljmmV3MBYOHEKi0Jm9hbAOClA== 392 | dependencies: 393 | "@typescript-eslint/scope-manager" "7.16.1" 394 | "@typescript-eslint/types" "7.16.1" 395 | "@typescript-eslint/typescript-estree" "7.16.1" 396 | "@typescript-eslint/visitor-keys" "7.16.1" 397 | debug "^4.3.4" 398 | 399 | "@typescript-eslint/scope-manager@7.16.1": 400 | version "7.16.1" 401 | resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.16.1.tgz" 402 | integrity sha512-nYpyv6ALte18gbMz323RM+vpFpTjfNdyakbf3nsLvF43uF9KeNC289SUEW3QLZ1xPtyINJ1dIsZOuWuSRIWygw== 403 | dependencies: 404 | "@typescript-eslint/types" "7.16.1" 405 | "@typescript-eslint/visitor-keys" "7.16.1" 406 | 407 | "@typescript-eslint/type-utils@7.16.1": 408 | version "7.16.1" 409 | resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.16.1.tgz" 410 | integrity sha512-rbu/H2MWXN4SkjIIyWcmYBjlp55VT+1G3duFOIukTNFxr9PI35pLc2ydwAfejCEitCv4uztA07q0QWanOHC7dA== 411 | dependencies: 412 | "@typescript-eslint/typescript-estree" "7.16.1" 413 | "@typescript-eslint/utils" "7.16.1" 414 | debug "^4.3.4" 415 | ts-api-utils "^1.3.0" 416 | 417 | "@typescript-eslint/types@7.16.1": 418 | version "7.16.1" 419 | resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.16.1.tgz" 420 | integrity sha512-AQn9XqCzUXd4bAVEsAXM/Izk11Wx2u4H3BAfQVhSfzfDOm/wAON9nP7J5rpkCxts7E5TELmN845xTUCQrD1xIQ== 421 | 422 | "@typescript-eslint/typescript-estree@7.16.1": 423 | version "7.16.1" 424 | resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.16.1.tgz" 425 | integrity sha512-0vFPk8tMjj6apaAZ1HlwM8w7jbghC8jc1aRNJG5vN8Ym5miyhTQGMqU++kuBFDNKe9NcPeZ6x0zfSzV8xC1UlQ== 426 | dependencies: 427 | "@typescript-eslint/types" "7.16.1" 428 | "@typescript-eslint/visitor-keys" "7.16.1" 429 | debug "^4.3.4" 430 | globby "^11.1.0" 431 | is-glob "^4.0.3" 432 | minimatch "^9.0.4" 433 | semver "^7.6.0" 434 | ts-api-utils "^1.3.0" 435 | 436 | "@typescript-eslint/utils@7.16.1": 437 | version "7.16.1" 438 | resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.16.1.tgz" 439 | integrity sha512-WrFM8nzCowV0he0RlkotGDujx78xudsxnGMBHI88l5J8wEhED6yBwaSLP99ygfrzAjsQvcYQ94quDwI0d7E1fA== 440 | dependencies: 441 | "@eslint-community/eslint-utils" "^4.4.0" 442 | "@typescript-eslint/scope-manager" "7.16.1" 443 | "@typescript-eslint/types" "7.16.1" 444 | "@typescript-eslint/typescript-estree" "7.16.1" 445 | 446 | "@typescript-eslint/visitor-keys@7.16.1": 447 | version "7.16.1" 448 | resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.16.1.tgz" 449 | integrity sha512-Qlzzx4sE4u3FsHTPQAAQFJFNOuqtuY0LFrZHwQ8IHK705XxBiWOFkfKRWu6niB7hwfgnwIpO4jTC75ozW1PHWg== 450 | dependencies: 451 | "@typescript-eslint/types" "7.16.1" 452 | eslint-visitor-keys "^3.4.3" 453 | 454 | "@ungap/structured-clone@^1.2.0": 455 | version "1.2.0" 456 | resolved "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz" 457 | integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== 458 | 459 | "@vitejs/plugin-react-swc@^3.5.0": 460 | version "3.7.0" 461 | resolved "https://registry.npmjs.org/@vitejs/plugin-react-swc/-/plugin-react-swc-3.7.0.tgz" 462 | integrity sha512-yrknSb3Dci6svCd/qhHqhFPDSw0QtjumcqdKMoNNzmOl5lMXTTiqzjWtG4Qask2HdvvzaNgSunbQGet8/GrKdA== 463 | dependencies: 464 | "@swc/core" "^1.5.7" 465 | 466 | "@xobotyi/scrollbar-width@^1.9.5": 467 | version "1.9.5" 468 | resolved "https://registry.npmjs.org/@xobotyi/scrollbar-width/-/scrollbar-width-1.9.5.tgz" 469 | integrity sha512-N8tkAACJx2ww8vFMneJmaAgmjAG1tnVBZJRLRcx061tmsLRZHSEZSLuGWnwPtunsSLvSqXQ2wfp7Mgqg1I+2dQ== 470 | 471 | acorn-jsx@^5.3.2: 472 | version "5.3.2" 473 | resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz" 474 | integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== 475 | 476 | "acorn@^6.0.0 || ^7.0.0 || ^8.0.0", acorn@^8.9.0: 477 | version "8.12.1" 478 | resolved "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz" 479 | integrity sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg== 480 | 481 | ajv@^6.12.4: 482 | version "6.12.6" 483 | resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" 484 | integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== 485 | dependencies: 486 | fast-deep-equal "^3.1.1" 487 | fast-json-stable-stringify "^2.0.0" 488 | json-schema-traverse "^0.4.1" 489 | uri-js "^4.2.2" 490 | 491 | ansi-regex@^5.0.1: 492 | version "5.0.1" 493 | resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" 494 | integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== 495 | 496 | ansi-regex@^6.0.1: 497 | version "6.0.1" 498 | resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz" 499 | integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== 500 | 501 | ansi-styles@^4.0.0, ansi-styles@^4.1.0: 502 | version "4.3.0" 503 | resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" 504 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== 505 | dependencies: 506 | color-convert "^2.0.1" 507 | 508 | ansi-styles@^6.1.0: 509 | version "6.2.1" 510 | resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz" 511 | integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== 512 | 513 | any-promise@^1.0.0: 514 | version "1.3.0" 515 | resolved "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz" 516 | integrity sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A== 517 | 518 | anymatch@~3.1.2: 519 | version "3.1.3" 520 | resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz" 521 | integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== 522 | dependencies: 523 | normalize-path "^3.0.0" 524 | picomatch "^2.0.4" 525 | 526 | arg@^5.0.2: 527 | version "5.0.2" 528 | resolved "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz" 529 | integrity sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg== 530 | 531 | argparse@^2.0.1: 532 | version "2.0.1" 533 | resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" 534 | integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== 535 | 536 | array-union@^2.1.0: 537 | version "2.1.0" 538 | resolved "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz" 539 | integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== 540 | 541 | asynckit@^0.4.0: 542 | version "0.4.0" 543 | resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" 544 | integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== 545 | 546 | autoprefixer@^10.4.19: 547 | version "10.4.19" 548 | resolved "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.19.tgz" 549 | integrity sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew== 550 | dependencies: 551 | browserslist "^4.23.0" 552 | caniuse-lite "^1.0.30001599" 553 | fraction.js "^4.3.7" 554 | normalize-range "^0.1.2" 555 | picocolors "^1.0.0" 556 | postcss-value-parser "^4.2.0" 557 | 558 | axios@^1.7.9: 559 | version "1.7.9" 560 | resolved "https://registry.npmjs.org/axios/-/axios-1.7.9.tgz" 561 | integrity sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw== 562 | dependencies: 563 | follow-redirects "^1.15.6" 564 | form-data "^4.0.0" 565 | proxy-from-env "^1.1.0" 566 | 567 | balanced-match@^1.0.0: 568 | version "1.0.2" 569 | resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" 570 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== 571 | 572 | binary-extensions@^2.0.0: 573 | version "2.3.0" 574 | resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz" 575 | integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== 576 | 577 | brace-expansion@^1.1.7: 578 | version "1.1.11" 579 | resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" 580 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== 581 | dependencies: 582 | balanced-match "^1.0.0" 583 | concat-map "0.0.1" 584 | 585 | brace-expansion@^2.0.1: 586 | version "2.0.1" 587 | resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz" 588 | integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== 589 | dependencies: 590 | balanced-match "^1.0.0" 591 | 592 | braces@^3.0.3, braces@~3.0.2: 593 | version "3.0.3" 594 | resolved "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz" 595 | integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== 596 | dependencies: 597 | fill-range "^7.1.1" 598 | 599 | browserslist@^4.23.0, "browserslist@>= 4.21.0": 600 | version "4.23.3" 601 | resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.23.3.tgz" 602 | integrity sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA== 603 | dependencies: 604 | caniuse-lite "^1.0.30001646" 605 | electron-to-chromium "^1.5.4" 606 | node-releases "^2.0.18" 607 | update-browserslist-db "^1.1.0" 608 | 609 | callsites@^3.0.0: 610 | version "3.1.0" 611 | resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" 612 | integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== 613 | 614 | camelcase-css@^2.0.1: 615 | version "2.0.1" 616 | resolved "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz" 617 | integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA== 618 | 619 | caniuse-lite@^1.0.30001599, caniuse-lite@^1.0.30001646: 620 | version "1.0.30001651" 621 | resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001651.tgz" 622 | integrity sha512-9Cf+Xv1jJNe1xPZLGuUXLNkE1BoDkqRqYyFJ9TDYSqhduqA4hu4oR9HluGoWYQC/aj8WHjsGVV+bwkh0+tegRg== 623 | 624 | chalk@^4.0.0: 625 | version "4.1.2" 626 | resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" 627 | integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== 628 | dependencies: 629 | ansi-styles "^4.1.0" 630 | supports-color "^7.1.0" 631 | 632 | chokidar@^3.5.3: 633 | version "3.6.0" 634 | resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz" 635 | integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== 636 | dependencies: 637 | anymatch "~3.1.2" 638 | braces "~3.0.2" 639 | glob-parent "~5.1.2" 640 | is-binary-path "~2.1.0" 641 | is-glob "~4.0.1" 642 | normalize-path "~3.0.0" 643 | readdirp "~3.6.0" 644 | optionalDependencies: 645 | fsevents "~2.3.2" 646 | 647 | clsx@^2.0.0, clsx@^2.1.1: 648 | version "2.1.1" 649 | resolved "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz" 650 | integrity sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA== 651 | 652 | color-convert@^2.0.1: 653 | version "2.0.1" 654 | resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" 655 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== 656 | dependencies: 657 | color-name "~1.1.4" 658 | 659 | color-name@~1.1.4: 660 | version "1.1.4" 661 | resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" 662 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== 663 | 664 | combined-stream@^1.0.8: 665 | version "1.0.8" 666 | resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz" 667 | integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== 668 | dependencies: 669 | delayed-stream "~1.0.0" 670 | 671 | commander@^4.0.0: 672 | version "4.1.1" 673 | resolved "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz" 674 | integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== 675 | 676 | concat-map@0.0.1: 677 | version "0.0.1" 678 | resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" 679 | integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== 680 | 681 | copy-to-clipboard@^3.3.1: 682 | version "3.3.3" 683 | resolved "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz" 684 | integrity sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA== 685 | dependencies: 686 | toggle-selection "^1.0.6" 687 | 688 | cors@^2.8.5: 689 | version "2.8.5" 690 | resolved "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz" 691 | integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== 692 | dependencies: 693 | object-assign "^4" 694 | vary "^1" 695 | 696 | cross-spawn@^7.0.0, cross-spawn@^7.0.2: 697 | version "7.0.3" 698 | resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" 699 | integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== 700 | dependencies: 701 | path-key "^3.1.0" 702 | shebang-command "^2.0.0" 703 | which "^2.0.1" 704 | 705 | css-in-js-utils@^3.1.0: 706 | version "3.1.0" 707 | resolved "https://registry.npmjs.org/css-in-js-utils/-/css-in-js-utils-3.1.0.tgz" 708 | integrity sha512-fJAcud6B3rRu+KHYk+Bwf+WFL2MDCJJ1XG9x137tJQ0xYxor7XziQtuGFbWNdqrvF4Tk26O3H73nfVqXt/fW1A== 709 | dependencies: 710 | hyphenate-style-name "^1.0.3" 711 | 712 | css-tree@^1.1.2: 713 | version "1.1.3" 714 | resolved "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz" 715 | integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q== 716 | dependencies: 717 | mdn-data "2.0.14" 718 | source-map "^0.6.1" 719 | 720 | cssesc@^3.0.0: 721 | version "3.0.0" 722 | resolved "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz" 723 | integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== 724 | 725 | csstype@^3.0.2, csstype@^3.1.2: 726 | version "3.1.3" 727 | resolved "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz" 728 | integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== 729 | 730 | debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: 731 | version "4.3.5" 732 | resolved "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz" 733 | integrity sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg== 734 | dependencies: 735 | ms "2.1.2" 736 | 737 | deep-is@^0.1.3: 738 | version "0.1.4" 739 | resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz" 740 | integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== 741 | 742 | delayed-stream@~1.0.0: 743 | version "1.0.0" 744 | resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" 745 | integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== 746 | 747 | didyoumean@^1.2.2: 748 | version "1.2.2" 749 | resolved "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz" 750 | integrity sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw== 751 | 752 | dir-glob@^3.0.1: 753 | version "3.0.1" 754 | resolved "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz" 755 | integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== 756 | dependencies: 757 | path-type "^4.0.0" 758 | 759 | dlv@^1.1.3: 760 | version "1.1.3" 761 | resolved "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz" 762 | integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA== 763 | 764 | doctrine@^3.0.0: 765 | version "3.0.0" 766 | resolved "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz" 767 | integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== 768 | dependencies: 769 | esutils "^2.0.2" 770 | 771 | dotenv@^16.4.7: 772 | version "16.4.7" 773 | resolved "https://registry.npmjs.org/dotenv/-/dotenv-16.4.7.tgz" 774 | integrity sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ== 775 | 776 | eastasianwidth@^0.2.0: 777 | version "0.2.0" 778 | resolved "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz" 779 | integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== 780 | 781 | electron-to-chromium@^1.5.4: 782 | version "1.5.6" 783 | resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.6.tgz" 784 | integrity sha512-jwXWsM5RPf6j9dPYzaorcBSUg6AiqocPEyMpkchkvntaH9HGfOOMZwxMJjDY/XEs3T5dM7uyH1VhRMkqUU9qVw== 785 | 786 | emoji-regex@^8.0.0: 787 | version "8.0.0" 788 | resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" 789 | integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== 790 | 791 | emoji-regex@^9.2.2: 792 | version "9.2.2" 793 | resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz" 794 | integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== 795 | 796 | error-stack-parser@^2.0.6: 797 | version "2.1.4" 798 | resolved "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz" 799 | integrity sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ== 800 | dependencies: 801 | stackframe "^1.3.4" 802 | 803 | esbuild@^0.21.3: 804 | version "0.21.5" 805 | resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz" 806 | integrity sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw== 807 | optionalDependencies: 808 | "@esbuild/aix-ppc64" "0.21.5" 809 | "@esbuild/android-arm" "0.21.5" 810 | "@esbuild/android-arm64" "0.21.5" 811 | "@esbuild/android-x64" "0.21.5" 812 | "@esbuild/darwin-arm64" "0.21.5" 813 | "@esbuild/darwin-x64" "0.21.5" 814 | "@esbuild/freebsd-arm64" "0.21.5" 815 | "@esbuild/freebsd-x64" "0.21.5" 816 | "@esbuild/linux-arm" "0.21.5" 817 | "@esbuild/linux-arm64" "0.21.5" 818 | "@esbuild/linux-ia32" "0.21.5" 819 | "@esbuild/linux-loong64" "0.21.5" 820 | "@esbuild/linux-mips64el" "0.21.5" 821 | "@esbuild/linux-ppc64" "0.21.5" 822 | "@esbuild/linux-riscv64" "0.21.5" 823 | "@esbuild/linux-s390x" "0.21.5" 824 | "@esbuild/linux-x64" "0.21.5" 825 | "@esbuild/netbsd-x64" "0.21.5" 826 | "@esbuild/openbsd-x64" "0.21.5" 827 | "@esbuild/sunos-x64" "0.21.5" 828 | "@esbuild/win32-arm64" "0.21.5" 829 | "@esbuild/win32-ia32" "0.21.5" 830 | "@esbuild/win32-x64" "0.21.5" 831 | 832 | escalade@^3.1.2: 833 | version "3.1.2" 834 | resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz" 835 | integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA== 836 | 837 | escape-string-regexp@^4.0.0: 838 | version "4.0.0" 839 | resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" 840 | integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== 841 | 842 | eslint-plugin-react-hooks@^4.6.2: 843 | version "4.6.2" 844 | resolved "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz" 845 | integrity sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ== 846 | 847 | eslint-plugin-react-refresh@^0.4.7: 848 | version "0.4.8" 849 | resolved "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.8.tgz" 850 | integrity sha512-MIKAclwaDFIiYtVBLzDdm16E+Ty4GwhB6wZlCAG1R3Ur+F9Qbo6PRxpA5DK7XtDgm+WlCoAY2WxAwqhmIDHg6Q== 851 | 852 | eslint-scope@^7.2.2: 853 | version "7.2.2" 854 | resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz" 855 | integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== 856 | dependencies: 857 | esrecurse "^4.3.0" 858 | estraverse "^5.2.0" 859 | 860 | eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: 861 | version "3.4.3" 862 | resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz" 863 | integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== 864 | 865 | "eslint@^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0", "eslint@^6.0.0 || ^7.0.0 || >=8.0.0", eslint@^8.56.0, eslint@^8.57.0, eslint@>=7: 866 | version "8.57.0" 867 | resolved "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz" 868 | integrity sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ== 869 | dependencies: 870 | "@eslint-community/eslint-utils" "^4.2.0" 871 | "@eslint-community/regexpp" "^4.6.1" 872 | "@eslint/eslintrc" "^2.1.4" 873 | "@eslint/js" "8.57.0" 874 | "@humanwhocodes/config-array" "^0.11.14" 875 | "@humanwhocodes/module-importer" "^1.0.1" 876 | "@nodelib/fs.walk" "^1.2.8" 877 | "@ungap/structured-clone" "^1.2.0" 878 | ajv "^6.12.4" 879 | chalk "^4.0.0" 880 | cross-spawn "^7.0.2" 881 | debug "^4.3.2" 882 | doctrine "^3.0.0" 883 | escape-string-regexp "^4.0.0" 884 | eslint-scope "^7.2.2" 885 | eslint-visitor-keys "^3.4.3" 886 | espree "^9.6.1" 887 | esquery "^1.4.2" 888 | esutils "^2.0.2" 889 | fast-deep-equal "^3.1.3" 890 | file-entry-cache "^6.0.1" 891 | find-up "^5.0.0" 892 | glob-parent "^6.0.2" 893 | globals "^13.19.0" 894 | graphemer "^1.4.0" 895 | ignore "^5.2.0" 896 | imurmurhash "^0.1.4" 897 | is-glob "^4.0.0" 898 | is-path-inside "^3.0.3" 899 | js-yaml "^4.1.0" 900 | json-stable-stringify-without-jsonify "^1.0.1" 901 | levn "^0.4.1" 902 | lodash.merge "^4.6.2" 903 | minimatch "^3.1.2" 904 | natural-compare "^1.4.0" 905 | optionator "^0.9.3" 906 | strip-ansi "^6.0.1" 907 | text-table "^0.2.0" 908 | 909 | espree@^9.6.0, espree@^9.6.1: 910 | version "9.6.1" 911 | resolved "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz" 912 | integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== 913 | dependencies: 914 | acorn "^8.9.0" 915 | acorn-jsx "^5.3.2" 916 | eslint-visitor-keys "^3.4.1" 917 | 918 | esquery@^1.4.2: 919 | version "1.6.0" 920 | resolved "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz" 921 | integrity sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg== 922 | dependencies: 923 | estraverse "^5.1.0" 924 | 925 | esrecurse@^4.3.0: 926 | version "4.3.0" 927 | resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz" 928 | integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== 929 | dependencies: 930 | estraverse "^5.2.0" 931 | 932 | estraverse@^5.1.0, estraverse@^5.2.0: 933 | version "5.3.0" 934 | resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz" 935 | integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== 936 | 937 | esutils@^2.0.2: 938 | version "2.0.3" 939 | resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" 940 | integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== 941 | 942 | fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: 943 | version "3.1.3" 944 | resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" 945 | integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== 946 | 947 | fast-glob@^3.2.9, fast-glob@^3.3.0: 948 | version "3.3.2" 949 | resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz" 950 | integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== 951 | dependencies: 952 | "@nodelib/fs.stat" "^2.0.2" 953 | "@nodelib/fs.walk" "^1.2.3" 954 | glob-parent "^5.1.2" 955 | merge2 "^1.3.0" 956 | micromatch "^4.0.4" 957 | 958 | fast-json-stable-stringify@^2.0.0: 959 | version "2.1.0" 960 | resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" 961 | integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== 962 | 963 | fast-levenshtein@^2.0.6: 964 | version "2.0.6" 965 | resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz" 966 | integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== 967 | 968 | fast-shallow-equal@^1.0.0: 969 | version "1.0.0" 970 | resolved "https://registry.npmjs.org/fast-shallow-equal/-/fast-shallow-equal-1.0.0.tgz" 971 | integrity sha512-HPtaa38cPgWvaCFmRNhlc6NG7pv6NUHqjPgVAkWGoB9mQMwYB27/K0CvOM5Czy+qpT3e8XJ6Q4aPAnzpNpzNaw== 972 | 973 | fastest-stable-stringify@^2.0.2: 974 | version "2.0.2" 975 | resolved "https://registry.npmjs.org/fastest-stable-stringify/-/fastest-stable-stringify-2.0.2.tgz" 976 | integrity sha512-bijHueCGd0LqqNK9b5oCMHc0MluJAx0cwqASgbWMvkO01lCYgIhacVRLcaDz3QnyYIRNJRDwMb41VuT6pHJ91Q== 977 | 978 | fastq@^1.6.0: 979 | version "1.17.1" 980 | resolved "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz" 981 | integrity sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w== 982 | dependencies: 983 | reusify "^1.0.4" 984 | 985 | file-entry-cache@^6.0.1: 986 | version "6.0.1" 987 | resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz" 988 | integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== 989 | dependencies: 990 | flat-cache "^3.0.4" 991 | 992 | fill-range@^7.1.1: 993 | version "7.1.1" 994 | resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz" 995 | integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== 996 | dependencies: 997 | to-regex-range "^5.0.1" 998 | 999 | find-up@^5.0.0: 1000 | version "5.0.0" 1001 | resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz" 1002 | integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== 1003 | dependencies: 1004 | locate-path "^6.0.0" 1005 | path-exists "^4.0.0" 1006 | 1007 | flat-cache@^3.0.4: 1008 | version "3.2.0" 1009 | resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz" 1010 | integrity sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw== 1011 | dependencies: 1012 | flatted "^3.2.9" 1013 | keyv "^4.5.3" 1014 | rimraf "^3.0.2" 1015 | 1016 | flatted@^3.2.9: 1017 | version "3.3.1" 1018 | resolved "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz" 1019 | integrity sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw== 1020 | 1021 | follow-redirects@^1.15.6: 1022 | version "1.15.9" 1023 | resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz" 1024 | integrity sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ== 1025 | 1026 | foreground-child@^3.1.0: 1027 | version "3.2.1" 1028 | resolved "https://registry.npmjs.org/foreground-child/-/foreground-child-3.2.1.tgz" 1029 | integrity sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA== 1030 | dependencies: 1031 | cross-spawn "^7.0.0" 1032 | signal-exit "^4.0.1" 1033 | 1034 | form-data@^4.0.0: 1035 | version "4.0.1" 1036 | resolved "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz" 1037 | integrity sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw== 1038 | dependencies: 1039 | asynckit "^0.4.0" 1040 | combined-stream "^1.0.8" 1041 | mime-types "^2.1.12" 1042 | 1043 | fraction.js@^4.3.7: 1044 | version "4.3.7" 1045 | resolved "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz" 1046 | integrity sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew== 1047 | 1048 | fs.realpath@^1.0.0: 1049 | version "1.0.0" 1050 | resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" 1051 | integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== 1052 | 1053 | function-bind@^1.1.2: 1054 | version "1.1.2" 1055 | resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz" 1056 | integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== 1057 | 1058 | glob-parent@^5.1.2: 1059 | version "5.1.2" 1060 | resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" 1061 | integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== 1062 | dependencies: 1063 | is-glob "^4.0.1" 1064 | 1065 | glob-parent@^6.0.2: 1066 | version "6.0.2" 1067 | resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz" 1068 | integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== 1069 | dependencies: 1070 | is-glob "^4.0.3" 1071 | 1072 | glob-parent@~5.1.2: 1073 | version "5.1.2" 1074 | resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" 1075 | integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== 1076 | dependencies: 1077 | is-glob "^4.0.1" 1078 | 1079 | glob@^10.3.10: 1080 | version "10.4.5" 1081 | resolved "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz" 1082 | integrity sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg== 1083 | dependencies: 1084 | foreground-child "^3.1.0" 1085 | jackspeak "^3.1.2" 1086 | minimatch "^9.0.4" 1087 | minipass "^7.1.2" 1088 | package-json-from-dist "^1.0.0" 1089 | path-scurry "^1.11.1" 1090 | 1091 | glob@^7.1.3: 1092 | version "7.2.3" 1093 | resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" 1094 | integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== 1095 | dependencies: 1096 | fs.realpath "^1.0.0" 1097 | inflight "^1.0.4" 1098 | inherits "2" 1099 | minimatch "^3.1.1" 1100 | once "^1.3.0" 1101 | path-is-absolute "^1.0.0" 1102 | 1103 | globals@^13.19.0: 1104 | version "13.24.0" 1105 | resolved "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz" 1106 | integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== 1107 | dependencies: 1108 | type-fest "^0.20.2" 1109 | 1110 | globby@^11.1.0: 1111 | version "11.1.0" 1112 | resolved "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz" 1113 | integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== 1114 | dependencies: 1115 | array-union "^2.1.0" 1116 | dir-glob "^3.0.1" 1117 | fast-glob "^3.2.9" 1118 | ignore "^5.2.0" 1119 | merge2 "^1.4.1" 1120 | slash "^3.0.0" 1121 | 1122 | graphemer@^1.4.0: 1123 | version "1.4.0" 1124 | resolved "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz" 1125 | integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== 1126 | 1127 | has-flag@^4.0.0: 1128 | version "4.0.0" 1129 | resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" 1130 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== 1131 | 1132 | hasown@^2.0.2: 1133 | version "2.0.2" 1134 | resolved "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz" 1135 | integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== 1136 | dependencies: 1137 | function-bind "^1.1.2" 1138 | 1139 | hyphenate-style-name@^1.0.3: 1140 | version "1.1.0" 1141 | resolved "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.1.0.tgz" 1142 | integrity sha512-WDC/ui2VVRrz3jOVi+XtjqkDjiVjTtFaAGiW37k6b+ohyQ5wYDOGkvCZa8+H0nx3gyvv0+BST9xuOgIyGQ00gw== 1143 | 1144 | ignore@^5.2.0, ignore@^5.3.1: 1145 | version "5.3.1" 1146 | resolved "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz" 1147 | integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw== 1148 | 1149 | import-fresh@^3.2.1: 1150 | version "3.3.0" 1151 | resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz" 1152 | integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== 1153 | dependencies: 1154 | parent-module "^1.0.0" 1155 | resolve-from "^4.0.0" 1156 | 1157 | imurmurhash@^0.1.4: 1158 | version "0.1.4" 1159 | resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" 1160 | integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== 1161 | 1162 | inflight@^1.0.4: 1163 | version "1.0.6" 1164 | resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" 1165 | integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== 1166 | dependencies: 1167 | once "^1.3.0" 1168 | wrappy "1" 1169 | 1170 | inherits@2: 1171 | version "2.0.4" 1172 | resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" 1173 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 1174 | 1175 | inline-style-prefixer@^7.0.1: 1176 | version "7.0.1" 1177 | resolved "https://registry.npmjs.org/inline-style-prefixer/-/inline-style-prefixer-7.0.1.tgz" 1178 | integrity sha512-lhYo5qNTQp3EvSSp3sRvXMbVQTLrvGV6DycRMJ5dm2BLMiJ30wpXKdDdgX+GmJZ5uQMucwRKHamXSst3Sj/Giw== 1179 | dependencies: 1180 | css-in-js-utils "^3.1.0" 1181 | 1182 | is-binary-path@~2.1.0: 1183 | version "2.1.0" 1184 | resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" 1185 | integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== 1186 | dependencies: 1187 | binary-extensions "^2.0.0" 1188 | 1189 | is-core-module@^2.13.0: 1190 | version "2.15.0" 1191 | resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.0.tgz" 1192 | integrity sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA== 1193 | dependencies: 1194 | hasown "^2.0.2" 1195 | 1196 | is-extglob@^2.1.1: 1197 | version "2.1.1" 1198 | resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" 1199 | integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== 1200 | 1201 | is-fullwidth-code-point@^3.0.0: 1202 | version "3.0.0" 1203 | resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" 1204 | integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== 1205 | 1206 | is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: 1207 | version "4.0.3" 1208 | resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" 1209 | integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== 1210 | dependencies: 1211 | is-extglob "^2.1.1" 1212 | 1213 | is-number@^7.0.0: 1214 | version "7.0.0" 1215 | resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" 1216 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== 1217 | 1218 | is-path-inside@^3.0.3: 1219 | version "3.0.3" 1220 | resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz" 1221 | integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== 1222 | 1223 | isexe@^2.0.0: 1224 | version "2.0.0" 1225 | resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" 1226 | integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== 1227 | 1228 | jackspeak@^3.1.2: 1229 | version "3.4.3" 1230 | resolved "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz" 1231 | integrity sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw== 1232 | dependencies: 1233 | "@isaacs/cliui" "^8.0.2" 1234 | optionalDependencies: 1235 | "@pkgjs/parseargs" "^0.11.0" 1236 | 1237 | jiti@^1.21.0: 1238 | version "1.21.6" 1239 | resolved "https://registry.npmjs.org/jiti/-/jiti-1.21.6.tgz" 1240 | integrity sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w== 1241 | 1242 | js-cookie@^2.2.1: 1243 | version "2.2.1" 1244 | resolved "https://registry.npmjs.org/js-cookie/-/js-cookie-2.2.1.tgz" 1245 | integrity sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ== 1246 | 1247 | "js-tokens@^3.0.0 || ^4.0.0": 1248 | version "4.0.0" 1249 | resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" 1250 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== 1251 | 1252 | js-yaml@^4.1.0: 1253 | version "4.1.0" 1254 | resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" 1255 | integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== 1256 | dependencies: 1257 | argparse "^2.0.1" 1258 | 1259 | json-buffer@3.0.1: 1260 | version "3.0.1" 1261 | resolved "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz" 1262 | integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== 1263 | 1264 | json-schema-traverse@^0.4.1: 1265 | version "0.4.1" 1266 | resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" 1267 | integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== 1268 | 1269 | json-stable-stringify-without-jsonify@^1.0.1: 1270 | version "1.0.1" 1271 | resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz" 1272 | integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== 1273 | 1274 | keyv@^4.5.3: 1275 | version "4.5.4" 1276 | resolved "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz" 1277 | integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== 1278 | dependencies: 1279 | json-buffer "3.0.1" 1280 | 1281 | levn@^0.4.1: 1282 | version "0.4.1" 1283 | resolved "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz" 1284 | integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== 1285 | dependencies: 1286 | prelude-ls "^1.2.1" 1287 | type-check "~0.4.0" 1288 | 1289 | lilconfig@^2.1.0: 1290 | version "2.1.0" 1291 | resolved "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz" 1292 | integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ== 1293 | 1294 | lilconfig@^3.0.0: 1295 | version "3.1.2" 1296 | resolved "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz" 1297 | integrity sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow== 1298 | 1299 | lines-and-columns@^1.1.6: 1300 | version "1.2.4" 1301 | resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz" 1302 | integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== 1303 | 1304 | locate-path@^6.0.0: 1305 | version "6.0.0" 1306 | resolved "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz" 1307 | integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== 1308 | dependencies: 1309 | p-locate "^5.0.0" 1310 | 1311 | lodash.merge@^4.6.2: 1312 | version "4.6.2" 1313 | resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz" 1314 | integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== 1315 | 1316 | loose-envify@^1.1.0, loose-envify@^1.4.0: 1317 | version "1.4.0" 1318 | resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz" 1319 | integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== 1320 | dependencies: 1321 | js-tokens "^3.0.0 || ^4.0.0" 1322 | 1323 | lru-cache@^10.2.0: 1324 | version "10.4.3" 1325 | resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz" 1326 | integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ== 1327 | 1328 | mdn-data@2.0.14: 1329 | version "2.0.14" 1330 | resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz" 1331 | integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== 1332 | 1333 | merge2@^1.3.0, merge2@^1.4.1: 1334 | version "1.4.1" 1335 | resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz" 1336 | integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== 1337 | 1338 | micromatch@^4.0.4, micromatch@^4.0.5: 1339 | version "4.0.7" 1340 | resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz" 1341 | integrity sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q== 1342 | dependencies: 1343 | braces "^3.0.3" 1344 | picomatch "^2.3.1" 1345 | 1346 | mime-db@1.52.0: 1347 | version "1.52.0" 1348 | resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" 1349 | integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== 1350 | 1351 | mime-types@^2.1.12: 1352 | version "2.1.35" 1353 | resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz" 1354 | integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== 1355 | dependencies: 1356 | mime-db "1.52.0" 1357 | 1358 | minimatch@^3.0.5: 1359 | version "3.1.2" 1360 | resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" 1361 | integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== 1362 | dependencies: 1363 | brace-expansion "^1.1.7" 1364 | 1365 | minimatch@^3.1.1: 1366 | version "3.1.2" 1367 | resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" 1368 | integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== 1369 | dependencies: 1370 | brace-expansion "^1.1.7" 1371 | 1372 | minimatch@^3.1.2: 1373 | version "3.1.2" 1374 | resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" 1375 | integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== 1376 | dependencies: 1377 | brace-expansion "^1.1.7" 1378 | 1379 | minimatch@^9.0.4: 1380 | version "9.0.5" 1381 | resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz" 1382 | integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== 1383 | dependencies: 1384 | brace-expansion "^2.0.1" 1385 | 1386 | "minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.1.2: 1387 | version "7.1.2" 1388 | resolved "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz" 1389 | integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== 1390 | 1391 | ms@2.1.2: 1392 | version "2.1.2" 1393 | resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" 1394 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== 1395 | 1396 | mz@^2.7.0: 1397 | version "2.7.0" 1398 | resolved "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz" 1399 | integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q== 1400 | dependencies: 1401 | any-promise "^1.0.0" 1402 | object-assign "^4.0.1" 1403 | thenify-all "^1.0.0" 1404 | 1405 | nano-css@^5.6.2: 1406 | version "5.6.2" 1407 | resolved "https://registry.npmjs.org/nano-css/-/nano-css-5.6.2.tgz" 1408 | integrity sha512-+6bHaC8dSDGALM1HJjOHVXpuastdu2xFoZlC77Jh4cg+33Zcgm+Gxd+1xsnpZK14eyHObSp82+ll5y3SX75liw== 1409 | dependencies: 1410 | "@jridgewell/sourcemap-codec" "^1.4.15" 1411 | css-tree "^1.1.2" 1412 | csstype "^3.1.2" 1413 | fastest-stable-stringify "^2.0.2" 1414 | inline-style-prefixer "^7.0.1" 1415 | rtl-css-js "^1.16.1" 1416 | stacktrace-js "^2.0.2" 1417 | stylis "^4.3.0" 1418 | 1419 | nanoid@^3.3.7: 1420 | version "3.3.7" 1421 | resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz" 1422 | integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== 1423 | 1424 | natural-compare@^1.4.0: 1425 | version "1.4.0" 1426 | resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" 1427 | integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== 1428 | 1429 | node-releases@^2.0.18: 1430 | version "2.0.18" 1431 | resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz" 1432 | integrity sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g== 1433 | 1434 | normalize-path@^3.0.0, normalize-path@~3.0.0: 1435 | version "3.0.0" 1436 | resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" 1437 | integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== 1438 | 1439 | normalize-range@^0.1.2: 1440 | version "0.1.2" 1441 | resolved "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz" 1442 | integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== 1443 | 1444 | object-assign@^4, object-assign@^4.0.1, object-assign@^4.1.1: 1445 | version "4.1.1" 1446 | resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" 1447 | integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== 1448 | 1449 | object-hash@^3.0.0: 1450 | version "3.0.0" 1451 | resolved "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz" 1452 | integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw== 1453 | 1454 | once@^1.3.0: 1455 | version "1.4.0" 1456 | resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" 1457 | integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== 1458 | dependencies: 1459 | wrappy "1" 1460 | 1461 | optionator@^0.9.3: 1462 | version "0.9.4" 1463 | resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz" 1464 | integrity sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g== 1465 | dependencies: 1466 | deep-is "^0.1.3" 1467 | fast-levenshtein "^2.0.6" 1468 | levn "^0.4.1" 1469 | prelude-ls "^1.2.1" 1470 | type-check "^0.4.0" 1471 | word-wrap "^1.2.5" 1472 | 1473 | p-limit@^3.0.2: 1474 | version "3.1.0" 1475 | resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" 1476 | integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== 1477 | dependencies: 1478 | yocto-queue "^0.1.0" 1479 | 1480 | p-locate@^5.0.0: 1481 | version "5.0.0" 1482 | resolved "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz" 1483 | integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== 1484 | dependencies: 1485 | p-limit "^3.0.2" 1486 | 1487 | package-json-from-dist@^1.0.0: 1488 | version "1.0.0" 1489 | resolved "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz" 1490 | integrity sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw== 1491 | 1492 | parent-module@^1.0.0: 1493 | version "1.0.1" 1494 | resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz" 1495 | integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== 1496 | dependencies: 1497 | callsites "^3.0.0" 1498 | 1499 | path-exists@^4.0.0: 1500 | version "4.0.0" 1501 | resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" 1502 | integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== 1503 | 1504 | path-is-absolute@^1.0.0: 1505 | version "1.0.1" 1506 | resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" 1507 | integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== 1508 | 1509 | path-key@^3.1.0: 1510 | version "3.1.1" 1511 | resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" 1512 | integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== 1513 | 1514 | path-parse@^1.0.7: 1515 | version "1.0.7" 1516 | resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" 1517 | integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== 1518 | 1519 | path-scurry@^1.11.1: 1520 | version "1.11.1" 1521 | resolved "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz" 1522 | integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA== 1523 | dependencies: 1524 | lru-cache "^10.2.0" 1525 | minipass "^5.0.0 || ^6.0.2 || ^7.0.0" 1526 | 1527 | path-type@^4.0.0: 1528 | version "4.0.0" 1529 | resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz" 1530 | integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== 1531 | 1532 | picocolors@^1.0.0, picocolors@^1.0.1: 1533 | version "1.0.1" 1534 | resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz" 1535 | integrity sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew== 1536 | 1537 | picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: 1538 | version "2.3.1" 1539 | resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" 1540 | integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== 1541 | 1542 | pify@^2.3.0: 1543 | version "2.3.0" 1544 | resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz" 1545 | integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== 1546 | 1547 | pirates@^4.0.1: 1548 | version "4.0.6" 1549 | resolved "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz" 1550 | integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg== 1551 | 1552 | postcss-import@^15.1.0: 1553 | version "15.1.0" 1554 | resolved "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz" 1555 | integrity sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew== 1556 | dependencies: 1557 | postcss-value-parser "^4.0.0" 1558 | read-cache "^1.0.0" 1559 | resolve "^1.1.7" 1560 | 1561 | postcss-js@^4.0.1: 1562 | version "4.0.1" 1563 | resolved "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz" 1564 | integrity sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw== 1565 | dependencies: 1566 | camelcase-css "^2.0.1" 1567 | 1568 | postcss-load-config@^4.0.1: 1569 | version "4.0.2" 1570 | resolved "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz" 1571 | integrity sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ== 1572 | dependencies: 1573 | lilconfig "^3.0.0" 1574 | yaml "^2.3.4" 1575 | 1576 | postcss-nested@^6.0.1: 1577 | version "6.2.0" 1578 | resolved "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz" 1579 | integrity sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ== 1580 | dependencies: 1581 | postcss-selector-parser "^6.1.1" 1582 | 1583 | postcss-selector-parser@^6.0.11, postcss-selector-parser@^6.1.1: 1584 | version "6.1.1" 1585 | resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.1.tgz" 1586 | integrity sha512-b4dlw/9V8A71rLIDsSwVmak9z2DuBUB7CA1/wSdelNEzqsjoSPeADTWNO09lpH49Diy3/JIZ2bSPB1dI3LJCHg== 1587 | dependencies: 1588 | cssesc "^3.0.0" 1589 | util-deprecate "^1.0.2" 1590 | 1591 | postcss-value-parser@^4.0.0, postcss-value-parser@^4.2.0: 1592 | version "4.2.0" 1593 | resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz" 1594 | integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== 1595 | 1596 | postcss@^8.0.0, postcss@^8.1.0, postcss@^8.2.14, postcss@^8.4.21, postcss@^8.4.23, postcss@^8.4.39, postcss@>=8.0.9: 1597 | version "8.4.39" 1598 | resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.39.tgz" 1599 | integrity sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw== 1600 | dependencies: 1601 | nanoid "^3.3.7" 1602 | picocolors "^1.0.1" 1603 | source-map-js "^1.2.0" 1604 | 1605 | prelude-ls@^1.2.1: 1606 | version "1.2.1" 1607 | resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz" 1608 | integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== 1609 | 1610 | prop-types@^15.8.1: 1611 | version "15.8.1" 1612 | resolved "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz" 1613 | integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== 1614 | dependencies: 1615 | loose-envify "^1.4.0" 1616 | object-assign "^4.1.1" 1617 | react-is "^16.13.1" 1618 | 1619 | proxy-from-env@^1.1.0: 1620 | version "1.1.0" 1621 | resolved "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz" 1622 | integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== 1623 | 1624 | punycode@^2.1.0: 1625 | version "2.3.1" 1626 | resolved "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz" 1627 | integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== 1628 | 1629 | queue-microtask@^1.2.2: 1630 | version "1.2.3" 1631 | resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz" 1632 | integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== 1633 | 1634 | react-dom@*, "react-dom@^16.8.0 || ^17.0.0 || ^18.0.0", react-dom@^18, react-dom@^18.3.1, react-dom@>=16.8, react-dom@>=16.8.0: 1635 | version "18.3.1" 1636 | resolved "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz" 1637 | integrity sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw== 1638 | dependencies: 1639 | loose-envify "^1.1.0" 1640 | scheduler "^0.23.2" 1641 | 1642 | react-icons@^5.3.0: 1643 | version "5.3.0" 1644 | resolved "https://registry.npmjs.org/react-icons/-/react-icons-5.3.0.tgz" 1645 | integrity sha512-DnUk8aFbTyQPSkCfF8dbX6kQjXA9DktMeJqfjrg6cK9vwQVMxmcA3BfP4QoiztVmEHtwlTgLFsPuH2NskKT6eg== 1646 | 1647 | react-is@^16.13.1: 1648 | version "16.13.1" 1649 | resolved "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz" 1650 | integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== 1651 | 1652 | react-router-dom@^6.25.1: 1653 | version "6.25.1" 1654 | resolved "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.25.1.tgz" 1655 | integrity sha512-0tUDpbFvk35iv+N89dWNrJp+afLgd+y4VtorJZuOCXK0kkCWjEvb3vTJM++SYvMEpbVwXKf3FjeVveVEb6JpDQ== 1656 | dependencies: 1657 | "@remix-run/router" "1.18.0" 1658 | react-router "6.25.1" 1659 | 1660 | react-router@6.25.1: 1661 | version "6.25.1" 1662 | resolved "https://registry.npmjs.org/react-router/-/react-router-6.25.1.tgz" 1663 | integrity sha512-u8ELFr5Z6g02nUtpPAggP73Jigj1mRePSwhS/2nkTrlPU5yEkH1vYzWNyvSnSzeeE2DNqWdH+P8OhIh9wuXhTw== 1664 | dependencies: 1665 | "@remix-run/router" "1.18.0" 1666 | 1667 | react-universal-interface@^0.6.2: 1668 | version "0.6.2" 1669 | resolved "https://registry.npmjs.org/react-universal-interface/-/react-universal-interface-0.6.2.tgz" 1670 | integrity sha512-dg8yXdcQmvgR13RIlZbTRQOoUrDciFVoSBZILwjE2LFISxZZ8loVJKAkuzswl5js8BHda79bIb2b84ehU8IjXw== 1671 | 1672 | react-use@^17.5.1: 1673 | version "17.5.1" 1674 | resolved "https://registry.npmjs.org/react-use/-/react-use-17.5.1.tgz" 1675 | integrity sha512-LG/uPEVRflLWMwi3j/sZqR00nF6JGqTTDblkXK2nzXsIvij06hXl1V/MZIlwj1OKIQUtlh1l9jK8gLsRyCQxMg== 1676 | dependencies: 1677 | "@types/js-cookie" "^2.2.6" 1678 | "@xobotyi/scrollbar-width" "^1.9.5" 1679 | copy-to-clipboard "^3.3.1" 1680 | fast-deep-equal "^3.1.3" 1681 | fast-shallow-equal "^1.0.0" 1682 | js-cookie "^2.2.1" 1683 | nano-css "^5.6.2" 1684 | react-universal-interface "^0.6.2" 1685 | resize-observer-polyfill "^1.5.1" 1686 | screenfull "^5.1.0" 1687 | set-harmonic-interval "^1.0.1" 1688 | throttle-debounce "^3.0.1" 1689 | ts-easing "^0.2.0" 1690 | tslib "^2.1.0" 1691 | 1692 | react@*, "react@^16.8.0 || ^17.0.0 || ^18.0.0", "react@^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0", react@^18, react@^18.3.1, "react@>= 16", react@>=16.3, react@>=16.8, react@>=16.8.0: 1693 | version "18.3.1" 1694 | resolved "https://registry.npmjs.org/react/-/react-18.3.1.tgz" 1695 | integrity sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ== 1696 | dependencies: 1697 | loose-envify "^1.1.0" 1698 | 1699 | read-cache@^1.0.0: 1700 | version "1.0.0" 1701 | resolved "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz" 1702 | integrity sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA== 1703 | dependencies: 1704 | pify "^2.3.0" 1705 | 1706 | readdirp@~3.6.0: 1707 | version "3.6.0" 1708 | resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" 1709 | integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== 1710 | dependencies: 1711 | picomatch "^2.2.1" 1712 | 1713 | regenerator-runtime@^0.14.0: 1714 | version "0.14.1" 1715 | resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz" 1716 | integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== 1717 | 1718 | resize-observer-polyfill@^1.5.1: 1719 | version "1.5.1" 1720 | resolved "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz" 1721 | integrity sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg== 1722 | 1723 | resolve-from@^4.0.0: 1724 | version "4.0.0" 1725 | resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" 1726 | integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== 1727 | 1728 | resolve@^1.1.7, resolve@^1.22.2: 1729 | version "1.22.8" 1730 | resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz" 1731 | integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== 1732 | dependencies: 1733 | is-core-module "^2.13.0" 1734 | path-parse "^1.0.7" 1735 | supports-preserve-symlinks-flag "^1.0.0" 1736 | 1737 | reusify@^1.0.4: 1738 | version "1.0.4" 1739 | resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz" 1740 | integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== 1741 | 1742 | rimraf@^3.0.2: 1743 | version "3.0.2" 1744 | resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" 1745 | integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== 1746 | dependencies: 1747 | glob "^7.1.3" 1748 | 1749 | rollup@^4.13.0: 1750 | version "4.19.0" 1751 | resolved "https://registry.npmjs.org/rollup/-/rollup-4.19.0.tgz" 1752 | integrity sha512-5r7EYSQIowHsK4eTZ0Y81qpZuJz+MUuYeqmmYmRMl1nwhdmbiYqt5jwzf6u7wyOzJgYqtCRMtVRKOtHANBz7rA== 1753 | dependencies: 1754 | "@types/estree" "1.0.5" 1755 | optionalDependencies: 1756 | "@rollup/rollup-android-arm-eabi" "4.19.0" 1757 | "@rollup/rollup-android-arm64" "4.19.0" 1758 | "@rollup/rollup-darwin-arm64" "4.19.0" 1759 | "@rollup/rollup-darwin-x64" "4.19.0" 1760 | "@rollup/rollup-linux-arm-gnueabihf" "4.19.0" 1761 | "@rollup/rollup-linux-arm-musleabihf" "4.19.0" 1762 | "@rollup/rollup-linux-arm64-gnu" "4.19.0" 1763 | "@rollup/rollup-linux-arm64-musl" "4.19.0" 1764 | "@rollup/rollup-linux-powerpc64le-gnu" "4.19.0" 1765 | "@rollup/rollup-linux-riscv64-gnu" "4.19.0" 1766 | "@rollup/rollup-linux-s390x-gnu" "4.19.0" 1767 | "@rollup/rollup-linux-x64-gnu" "4.19.0" 1768 | "@rollup/rollup-linux-x64-musl" "4.19.0" 1769 | "@rollup/rollup-win32-arm64-msvc" "4.19.0" 1770 | "@rollup/rollup-win32-ia32-msvc" "4.19.0" 1771 | "@rollup/rollup-win32-x64-msvc" "4.19.0" 1772 | fsevents "~2.3.2" 1773 | 1774 | rtl-css-js@^1.16.1: 1775 | version "1.16.1" 1776 | resolved "https://registry.npmjs.org/rtl-css-js/-/rtl-css-js-1.16.1.tgz" 1777 | integrity sha512-lRQgou1mu19e+Ya0LsTvKrVJ5TYUbqCVPAiImX3UfLTenarvPUl1QFdvu5Z3PYmHT9RCcwIfbjRQBntExyj3Zg== 1778 | dependencies: 1779 | "@babel/runtime" "^7.1.2" 1780 | 1781 | run-parallel@^1.1.9: 1782 | version "1.2.0" 1783 | resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz" 1784 | integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== 1785 | dependencies: 1786 | queue-microtask "^1.2.2" 1787 | 1788 | scheduler@^0.23.2: 1789 | version "0.23.2" 1790 | resolved "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz" 1791 | integrity sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ== 1792 | dependencies: 1793 | loose-envify "^1.1.0" 1794 | 1795 | screenfull@^5.1.0: 1796 | version "5.2.0" 1797 | resolved "https://registry.npmjs.org/screenfull/-/screenfull-5.2.0.tgz" 1798 | integrity sha512-9BakfsO2aUQN2K9Fdbj87RJIEZ82Q9IGim7FqM5OsebfoFC6ZHXgDq/KvniuLTPdeM8wY2o6Dj3WQ7KeQCj3cA== 1799 | 1800 | semver@^7.6.0: 1801 | version "7.6.3" 1802 | resolved "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz" 1803 | integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== 1804 | 1805 | set-harmonic-interval@^1.0.1: 1806 | version "1.0.1" 1807 | resolved "https://registry.npmjs.org/set-harmonic-interval/-/set-harmonic-interval-1.0.1.tgz" 1808 | integrity sha512-AhICkFV84tBP1aWqPwLZqFvAwqEoVA9kxNMniGEUvzOlm4vLmOFLiTT3UZ6bziJTy4bOVpzWGTfSCbmaayGx8g== 1809 | 1810 | shebang-command@^2.0.0: 1811 | version "2.0.0" 1812 | resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" 1813 | integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== 1814 | dependencies: 1815 | shebang-regex "^3.0.0" 1816 | 1817 | shebang-regex@^3.0.0: 1818 | version "3.0.0" 1819 | resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" 1820 | integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== 1821 | 1822 | signal-exit@^4.0.1: 1823 | version "4.1.0" 1824 | resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz" 1825 | integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== 1826 | 1827 | slash@^3.0.0: 1828 | version "3.0.0" 1829 | resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz" 1830 | integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== 1831 | 1832 | source-map-js@^1.2.0: 1833 | version "1.2.0" 1834 | resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz" 1835 | integrity sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg== 1836 | 1837 | source-map@^0.6.1: 1838 | version "0.6.1" 1839 | resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" 1840 | integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== 1841 | 1842 | source-map@0.5.6: 1843 | version "0.5.6" 1844 | resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz" 1845 | integrity sha512-MjZkVp0NHr5+TPihLcadqnlVoGIoWo4IBHptutGh9wI3ttUYvCG26HkSuDi+K6lsZ25syXJXcctwgyVCt//xqA== 1846 | 1847 | stack-generator@^2.0.5: 1848 | version "2.0.10" 1849 | resolved "https://registry.npmjs.org/stack-generator/-/stack-generator-2.0.10.tgz" 1850 | integrity sha512-mwnua/hkqM6pF4k8SnmZ2zfETsRUpWXREfA/goT8SLCV4iOFa4bzOX2nDipWAZFPTjLvQB82f5yaodMVhK0yJQ== 1851 | dependencies: 1852 | stackframe "^1.3.4" 1853 | 1854 | stackframe@^1.3.4: 1855 | version "1.3.4" 1856 | resolved "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz" 1857 | integrity sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw== 1858 | 1859 | stacktrace-gps@^3.0.4: 1860 | version "3.1.2" 1861 | resolved "https://registry.npmjs.org/stacktrace-gps/-/stacktrace-gps-3.1.2.tgz" 1862 | integrity sha512-GcUgbO4Jsqqg6RxfyTHFiPxdPqF+3LFmQhm7MgCuYQOYuWyqxo5pwRPz5d/u6/WYJdEnWfK4r+jGbyD8TSggXQ== 1863 | dependencies: 1864 | source-map "0.5.6" 1865 | stackframe "^1.3.4" 1866 | 1867 | stacktrace-js@^2.0.2: 1868 | version "2.0.2" 1869 | resolved "https://registry.npmjs.org/stacktrace-js/-/stacktrace-js-2.0.2.tgz" 1870 | integrity sha512-Je5vBeY4S1r/RnLydLl0TBTi3F2qdfWmYsGvtfZgEI+SCprPppaIhQf5nGcal4gI4cGpCV/duLcAzT1np6sQqg== 1871 | dependencies: 1872 | error-stack-parser "^2.0.6" 1873 | stack-generator "^2.0.5" 1874 | stacktrace-gps "^3.0.4" 1875 | 1876 | "string-width-cjs@npm:string-width@^4.2.0": 1877 | version "4.2.3" 1878 | resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" 1879 | integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== 1880 | dependencies: 1881 | emoji-regex "^8.0.0" 1882 | is-fullwidth-code-point "^3.0.0" 1883 | strip-ansi "^6.0.1" 1884 | 1885 | string-width@^4.1.0: 1886 | version "4.2.3" 1887 | resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" 1888 | integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== 1889 | dependencies: 1890 | emoji-regex "^8.0.0" 1891 | is-fullwidth-code-point "^3.0.0" 1892 | strip-ansi "^6.0.1" 1893 | 1894 | string-width@^5.0.1, string-width@^5.1.2: 1895 | version "5.1.2" 1896 | resolved "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz" 1897 | integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== 1898 | dependencies: 1899 | eastasianwidth "^0.2.0" 1900 | emoji-regex "^9.2.2" 1901 | strip-ansi "^7.0.1" 1902 | 1903 | "strip-ansi-cjs@npm:strip-ansi@^6.0.1": 1904 | version "6.0.1" 1905 | resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" 1906 | integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== 1907 | dependencies: 1908 | ansi-regex "^5.0.1" 1909 | 1910 | strip-ansi@^6.0.0, strip-ansi@^6.0.1: 1911 | version "6.0.1" 1912 | resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" 1913 | integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== 1914 | dependencies: 1915 | ansi-regex "^5.0.1" 1916 | 1917 | strip-ansi@^7.0.1: 1918 | version "7.1.0" 1919 | resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz" 1920 | integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== 1921 | dependencies: 1922 | ansi-regex "^6.0.1" 1923 | 1924 | strip-json-comments@^3.1.1: 1925 | version "3.1.1" 1926 | resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" 1927 | integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== 1928 | 1929 | stylis@^4.3.0: 1930 | version "4.3.4" 1931 | resolved "https://registry.npmjs.org/stylis/-/stylis-4.3.4.tgz" 1932 | integrity sha512-osIBl6BGUmSfDkyH2mB7EFvCJntXDrLhKjHTRj/rK6xLH0yuPrHULDRQzKokSOD4VoorhtKpfcfW1GAntu8now== 1933 | 1934 | sucrase@^3.32.0: 1935 | version "3.35.0" 1936 | resolved "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz" 1937 | integrity sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA== 1938 | dependencies: 1939 | "@jridgewell/gen-mapping" "^0.3.2" 1940 | commander "^4.0.0" 1941 | glob "^10.3.10" 1942 | lines-and-columns "^1.1.6" 1943 | mz "^2.7.0" 1944 | pirates "^4.0.1" 1945 | ts-interface-checker "^0.1.9" 1946 | 1947 | supports-color@^7.1.0: 1948 | version "7.2.0" 1949 | resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" 1950 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== 1951 | dependencies: 1952 | has-flag "^4.0.0" 1953 | 1954 | supports-preserve-symlinks-flag@^1.0.0: 1955 | version "1.0.0" 1956 | resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" 1957 | integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== 1958 | 1959 | tabbable@^6.0.0: 1960 | version "6.2.0" 1961 | resolved "https://registry.npmjs.org/tabbable/-/tabbable-6.2.0.tgz" 1962 | integrity sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew== 1963 | 1964 | tailwindcss@^3.4.6: 1965 | version "3.4.6" 1966 | resolved "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.6.tgz" 1967 | integrity sha512-1uRHzPB+Vzu57ocybfZ4jh5Q3SdlH7XW23J5sQoM9LhE9eIOlzxer/3XPSsycvih3rboRsvt0QCmzSrqyOYUIA== 1968 | dependencies: 1969 | "@alloc/quick-lru" "^5.2.0" 1970 | arg "^5.0.2" 1971 | chokidar "^3.5.3" 1972 | didyoumean "^1.2.2" 1973 | dlv "^1.1.3" 1974 | fast-glob "^3.3.0" 1975 | glob-parent "^6.0.2" 1976 | is-glob "^4.0.3" 1977 | jiti "^1.21.0" 1978 | lilconfig "^2.1.0" 1979 | micromatch "^4.0.5" 1980 | normalize-path "^3.0.0" 1981 | object-hash "^3.0.0" 1982 | picocolors "^1.0.0" 1983 | postcss "^8.4.23" 1984 | postcss-import "^15.1.0" 1985 | postcss-js "^4.0.1" 1986 | postcss-load-config "^4.0.1" 1987 | postcss-nested "^6.0.1" 1988 | postcss-selector-parser "^6.0.11" 1989 | resolve "^1.22.2" 1990 | sucrase "^3.32.0" 1991 | 1992 | text-table@^0.2.0: 1993 | version "0.2.0" 1994 | resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" 1995 | integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== 1996 | 1997 | thenify-all@^1.0.0: 1998 | version "1.6.0" 1999 | resolved "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz" 2000 | integrity sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA== 2001 | dependencies: 2002 | thenify ">= 3.1.0 < 4" 2003 | 2004 | "thenify@>= 3.1.0 < 4": 2005 | version "3.3.1" 2006 | resolved "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz" 2007 | integrity sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw== 2008 | dependencies: 2009 | any-promise "^1.0.0" 2010 | 2011 | throttle-debounce@^3.0.1: 2012 | version "3.0.1" 2013 | resolved "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-3.0.1.tgz" 2014 | integrity sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg== 2015 | 2016 | to-regex-range@^5.0.1: 2017 | version "5.0.1" 2018 | resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" 2019 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== 2020 | dependencies: 2021 | is-number "^7.0.0" 2022 | 2023 | toggle-selection@^1.0.6: 2024 | version "1.0.6" 2025 | resolved "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz" 2026 | integrity sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ== 2027 | 2028 | ts-api-utils@^1.3.0: 2029 | version "1.3.0" 2030 | resolved "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz" 2031 | integrity sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ== 2032 | 2033 | ts-easing@^0.2.0: 2034 | version "0.2.0" 2035 | resolved "https://registry.npmjs.org/ts-easing/-/ts-easing-0.2.0.tgz" 2036 | integrity sha512-Z86EW+fFFh/IFB1fqQ3/+7Zpf9t2ebOAxNI/V6Wo7r5gqiqtxmgTlQ1qbqQcjLKYeSHPTsEmvlJUDg/EuL0uHQ== 2037 | 2038 | ts-interface-checker@^0.1.9: 2039 | version "0.1.13" 2040 | resolved "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz" 2041 | integrity sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA== 2042 | 2043 | tslib@*, tslib@^2.1.0, tslib@^2.4.0: 2044 | version "2.6.3" 2045 | resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz" 2046 | integrity sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ== 2047 | 2048 | type-check@^0.4.0, type-check@~0.4.0: 2049 | version "0.4.0" 2050 | resolved "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz" 2051 | integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== 2052 | dependencies: 2053 | prelude-ls "^1.2.1" 2054 | 2055 | type-fest@^0.20.2: 2056 | version "0.20.2" 2057 | resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz" 2058 | integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== 2059 | 2060 | typescript@^5.2.2, typescript@>=4.2.0: 2061 | version "5.5.3" 2062 | resolved "https://registry.npmjs.org/typescript/-/typescript-5.5.3.tgz" 2063 | integrity sha512-/hreyEujaB0w76zKo6717l3L0o/qEUtRgdvUBvlkhoWeOVMjMuHNHk0BRBzikzuGDqNmPQbg5ifMEqsHLiIUcQ== 2064 | 2065 | undici-types@~6.20.0: 2066 | version "6.20.0" 2067 | resolved "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz" 2068 | integrity sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg== 2069 | 2070 | update-browserslist-db@^1.1.0: 2071 | version "1.1.0" 2072 | resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz" 2073 | integrity sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ== 2074 | dependencies: 2075 | escalade "^3.1.2" 2076 | picocolors "^1.0.1" 2077 | 2078 | uri-js@^4.2.2: 2079 | version "4.4.1" 2080 | resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz" 2081 | integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== 2082 | dependencies: 2083 | punycode "^2.1.0" 2084 | 2085 | util-deprecate@^1.0.2: 2086 | version "1.0.2" 2087 | resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" 2088 | integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== 2089 | 2090 | vary@^1: 2091 | version "1.1.2" 2092 | resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz" 2093 | integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== 2094 | 2095 | "vite@^4 || ^5", vite@^5.3.4: 2096 | version "5.3.4" 2097 | resolved "https://registry.npmjs.org/vite/-/vite-5.3.4.tgz" 2098 | integrity sha512-Cw+7zL3ZG9/NZBB8C+8QbQZmR54GwqIz+WMI4b3JgdYJvX+ny9AjJXqkGQlDXSXRP9rP0B4tbciRMOVEKulVOA== 2099 | dependencies: 2100 | esbuild "^0.21.3" 2101 | postcss "^8.4.39" 2102 | rollup "^4.13.0" 2103 | optionalDependencies: 2104 | fsevents "~2.3.3" 2105 | 2106 | which@^2.0.1: 2107 | version "2.0.2" 2108 | resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" 2109 | integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== 2110 | dependencies: 2111 | isexe "^2.0.0" 2112 | 2113 | word-wrap@^1.2.5: 2114 | version "1.2.5" 2115 | resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz" 2116 | integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== 2117 | 2118 | "wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": 2119 | version "7.0.0" 2120 | resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" 2121 | integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== 2122 | dependencies: 2123 | ansi-styles "^4.0.0" 2124 | string-width "^4.1.0" 2125 | strip-ansi "^6.0.0" 2126 | 2127 | wrap-ansi@^8.1.0: 2128 | version "8.1.0" 2129 | resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz" 2130 | integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== 2131 | dependencies: 2132 | ansi-styles "^6.1.0" 2133 | string-width "^5.0.1" 2134 | strip-ansi "^7.0.1" 2135 | 2136 | wrappy@1: 2137 | version "1.0.2" 2138 | resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" 2139 | integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== 2140 | 2141 | yaml@^2.3.4: 2142 | version "2.4.5" 2143 | resolved "https://registry.npmjs.org/yaml/-/yaml-2.4.5.tgz" 2144 | integrity sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg== 2145 | 2146 | yarn@^1.22.22: 2147 | version "1.22.22" 2148 | resolved "https://registry.npmjs.org/yarn/-/yarn-1.22.22.tgz" 2149 | integrity sha512-prL3kGtyG7o9Z9Sv8IPfBNrWTDmXB4Qbes8A9rEzt6wkJV8mUvoirjU0Mp3GGAU06Y0XQyA3/2/RQFVuK7MTfg== 2150 | 2151 | yocto-queue@^0.1.0: 2152 | version "0.1.0" 2153 | resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" 2154 | integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== 2155 | --------------------------------------------------------------------------------