├── src ├── app │ ├── favicon.ico │ ├── opengraph-image.png │ ├── layout.tsx │ ├── api │ │ └── proxy │ │ │ └── route.tsx │ ├── page.tsx │ └── globals.css ├── lib │ ├── utils.ts │ └── error.ts ├── components │ ├── loader.tsx │ ├── ui │ │ ├── skeleton.tsx │ │ ├── button.tsx │ │ └── dialog.tsx │ ├── image-shell.tsx │ └── disclaimer.tsx └── hooks │ └── use-virtual-scroll.tsx ├── postcss.config.mjs ├── next.config.mjs ├── README.md ├── components.json ├── .gitignore ├── tsconfig.json ├── package.json ├── tailwind.config.ts └── pnpm-lock.yaml /src/app/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sujjeee/wallpapers/HEAD/src/app/favicon.ico -------------------------------------------------------------------------------- /src/app/opengraph-image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sujjeee/wallpapers/HEAD/src/app/opengraph-image.png -------------------------------------------------------------------------------- /postcss.config.mjs: -------------------------------------------------------------------------------- 1 | /** @type {import('postcss-load-config').Config} */ 2 | const config = { 3 | plugins: { 4 | tailwindcss: {}, 5 | }, 6 | }; 7 | 8 | export default config; 9 | -------------------------------------------------------------------------------- /src/lib/utils.ts: -------------------------------------------------------------------------------- 1 | import { clsx, type ClassValue } from "clsx" 2 | import { twMerge } from "tailwind-merge" 3 | 4 | export function cn(...inputs: ClassValue[]) { 5 | return twMerge(clsx(inputs)) 6 | } 7 | -------------------------------------------------------------------------------- /next.config.mjs: -------------------------------------------------------------------------------- 1 | /** @type {import('next').NextConfig} */ 2 | const nextConfig = { 3 | async rewrites() { 4 | return [ 5 | { 6 | source: "/api/:path*", 7 | destination: `${process.env.NEXT_PUBLIC_SERVER_URL}/:path*`, 8 | }, 9 | ] 10 | }, 11 | } 12 | 13 | export default nextConfig 14 | -------------------------------------------------------------------------------- /src/components/loader.tsx: -------------------------------------------------------------------------------- 1 | import { Skeleton } from "./ui/skeleton" 2 | 3 | export function SkeletonLoader() { 4 | const randomHeight = Math.floor(Math.random() * (450 - 150 + 1)) + 150 5 | 6 | return ( 7 | 11 | ) 12 | } 13 | -------------------------------------------------------------------------------- /src/components/ui/skeleton.tsx: -------------------------------------------------------------------------------- 1 | import { cn } from "@/lib/utils" 2 | 3 | function Skeleton({ 4 | className, 5 | ...props 6 | }: React.HTMLAttributes) { 7 | return ( 8 |
12 | ) 13 | } 14 | 15 | export { Skeleton } 16 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # MKBHD Panels Wallpapers 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | ## Credits/Disclaimer 10 | 11 | This website, created solely for educational purposes, demonstrates web scraping and proxy techniques. The images are accessed through publicly available media using MKBHD's Panels app API. 12 | 13 | API information available [here](https://github.com/panels-app/panels-api). 14 | -------------------------------------------------------------------------------- /components.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://ui.shadcn.com/schema.json", 3 | "style": "default", 4 | "rsc": true, 5 | "tsx": true, 6 | "tailwind": { 7 | "config": "tailwind.config.ts", 8 | "css": "src/app/globals.css", 9 | "baseColor": "neutral", 10 | "cssVariables": true, 11 | "prefix": "" 12 | }, 13 | "aliases": { 14 | "components": "@/components", 15 | "utils": "@/lib/utils", 16 | "ui": "@/components/ui", 17 | "lib": "@/lib", 18 | "hooks": "@/hooks" 19 | } 20 | } -------------------------------------------------------------------------------- /src/lib/error.ts: -------------------------------------------------------------------------------- 1 | import { toast } from "sonner" 2 | 3 | export function getErrorMessage(err: unknown) { 4 | if (err instanceof Error) { 5 | return err.message 6 | } 7 | 8 | return "Something went wrong. Please try again later." 9 | } 10 | 11 | export function showErrorToast(err: unknown) { 12 | const errorMessage = getErrorMessage(err) 13 | return toast.error(errorMessage) 14 | } 15 | 16 | export function catchError(err: unknown) { 17 | return { 18 | data: null, 19 | error: getErrorMessage(err), 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | .yarn/install-state.gz 8 | 9 | # testing 10 | /coverage 11 | 12 | /node 13 | 14 | # next.js 15 | /.next/ 16 | /out/ 17 | 18 | # production 19 | /build 20 | 21 | # misc 22 | .DS_Store 23 | *.pem 24 | 25 | # debug 26 | npm-debug.log* 27 | yarn-debug.log* 28 | yarn-error.log* 29 | 30 | # local env files 31 | .env*.local 32 | .env 33 | 34 | # vercel 35 | .vercel 36 | 37 | # typescript 38 | *.tsbuildinfo 39 | next-env.d.ts 40 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "lib": ["dom", "dom.iterable", "esnext"], 4 | "allowJs": true, 5 | "skipLibCheck": true, 6 | "strict": true, 7 | "noEmit": true, 8 | "esModuleInterop": true, 9 | "module": "esnext", 10 | "moduleResolution": "bundler", 11 | "resolveJsonModule": true, 12 | "isolatedModules": true, 13 | "jsx": "preserve", 14 | "incremental": true, 15 | "plugins": [ 16 | { 17 | "name": "next" 18 | } 19 | ], 20 | "paths": { 21 | "@/*": ["./src/*"] 22 | } 23 | }, 24 | "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], 25 | "exclude": ["node_modules"] 26 | } 27 | -------------------------------------------------------------------------------- /src/app/layout.tsx: -------------------------------------------------------------------------------- 1 | import "./globals.css" 2 | import type { Metadata } from "next" 3 | import { Inter } from "next/font/google" 4 | import { Disclaimer } from "@/components/disclaimer" 5 | 6 | const inter = Inter({ subsets: ["latin"] }) 7 | 8 | export const metadata: Metadata = { 9 | title: "Panels Wallpapers", 10 | } 11 | 12 | export default function RootLayout({ 13 | children, 14 | }: Readonly<{ 15 | children: React.ReactNode 16 | }>) { 17 | return ( 18 | 19 | 20 |
{children}
21 |
22 | 23 |
24 | 25 | 26 | ) 27 | } 28 | -------------------------------------------------------------------------------- /src/app/api/proxy/route.tsx: -------------------------------------------------------------------------------- 1 | import { NextResponse } from "next/server" 2 | 3 | export async function GET() { 4 | try { 5 | const response = await fetch( 6 | "https://storage.googleapis.com/panels-api/data/20240916/media-1a-i-p~s", 7 | { next: { revalidate: 3600 } }, 8 | ) 9 | 10 | if (!response.ok) { 11 | throw new Error(`HTTP error! status: ${response.status}`) 12 | } 13 | 14 | const data = await response.json() 15 | 16 | const images = Object.values(data.data) 17 | .map((item: any) => item.dhd || item.s) 18 | .filter((url): url is string => typeof url === "string") 19 | 20 | return NextResponse.json({ images }) 21 | } catch (error) { 22 | return NextResponse.json({ error: "Error proxying image" }, { status: 500 }) 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "wallpaper", 3 | "version": "0.1.0", 4 | "private": true, 5 | "scripts": { 6 | "dev": "next dev", 7 | "build": "next build", 8 | "start": "next start", 9 | "lint": "next lint" 10 | }, 11 | "dependencies": { 12 | "@radix-ui/react-dialog": "^1.1.1", 13 | "@radix-ui/react-slot": "^1.1.0", 14 | "@tanstack/react-query": "^5.56.2", 15 | "axios": "^1.7.7", 16 | "class-variance-authority": "^0.7.0", 17 | "clsx": "^2.1.1", 18 | "lucide-react": "^0.446.0", 19 | "next": "14.2.13", 20 | "react": "^18", 21 | "react-dom": "^18", 22 | "react-intersection-observer": "^9.13.1", 23 | "sonner": "^1.5.0", 24 | "tailwind-merge": "^2.5.2", 25 | "tailwindcss-animate": "^1.0.7" 26 | }, 27 | "devDependencies": { 28 | "@types/node": "^20", 29 | "@types/react": "^18", 30 | "@types/react-dom": "^18", 31 | "postcss": "^8", 32 | "tailwindcss": "^3.4.1", 33 | "typescript": "^5" 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /src/hooks/use-virtual-scroll.tsx: -------------------------------------------------------------------------------- 1 | import { useState, useEffect, useCallback } from "react" 2 | 3 | interface useInfiniteScrollProps { 4 | images: string[] 5 | perPage?: number 6 | } 7 | 8 | export function useInfiniteScroll({ 9 | images, 10 | perPage = 10, 11 | }: useInfiniteScrollProps) { 12 | const [displayedImages, setDisplayedImages] = useState([]) 13 | const [page, setPage] = useState(1) 14 | 15 | useEffect(() => { 16 | const start = (page - 1) * perPage 17 | const end = page * perPage 18 | 19 | setDisplayedImages((prevDisplayedImages) => { 20 | const newItems = images.slice(start, end) 21 | const uniqueItems = newItems.filter( 22 | (imageUrl) => !prevDisplayedImages.includes(imageUrl), 23 | ) 24 | return [...prevDisplayedImages, ...uniqueItems] 25 | }) 26 | }, [images, page, perPage]) 27 | 28 | const loadMore = useCallback(() => { 29 | setPage((prevPage) => prevPage + 1) 30 | }, []) 31 | 32 | return { displayedImages, loadMore } 33 | } 34 | -------------------------------------------------------------------------------- /src/components/image-shell.tsx: -------------------------------------------------------------------------------- 1 | import React from "react" 2 | import { SkeletonLoader } from "./loader" 3 | 4 | interface ImageShellProps { 5 | imageUrl: string 6 | idx: number 7 | } 8 | 9 | export function ImageShell({ imageUrl, idx }: ImageShellProps) { 10 | const [isLoaded, setIsLoaded] = React.useState(false) 11 | 12 | return ( 13 |
14 | 29 |
30 | ) 31 | } 32 | -------------------------------------------------------------------------------- /src/components/disclaimer.tsx: -------------------------------------------------------------------------------- 1 | import { CircleHelp } from "lucide-react" 2 | import { Button } from "@/components/ui/button" 3 | import { 4 | Dialog, 5 | DialogContent, 6 | DialogHeader, 7 | DialogTitle, 8 | DialogTrigger, 9 | } from "@/components/ui/dialog" 10 | 11 | export function Disclaimer() { 12 | return ( 13 | 14 | 15 | 18 | 19 | 20 | 21 | Disclaimer 22 | 23 |
24 | 25 | This website, created solely for educational purposes, demonstrates 26 | web scraping and proxy techniques. 27 | 28 | 29 | The images are accessed through publicly available media using 30 | MKBHD's Panels app API. 31 | 32 | 33 | Built by{" "} 34 | 40 | Sujjeee 41 | 42 | . {""} 43 | API information available on{" "} 44 | 50 | GitHub 51 | 52 | . 53 | 54 |
55 |
56 |
57 | ) 58 | } 59 | -------------------------------------------------------------------------------- /src/components/ui/button.tsx: -------------------------------------------------------------------------------- 1 | import * as React from "react" 2 | import { Slot } from "@radix-ui/react-slot" 3 | import { cva, type VariantProps } from "class-variance-authority" 4 | 5 | import { cn } from "@/lib/utils" 6 | 7 | const buttonVariants = cva( 8 | "inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50", 9 | { 10 | variants: { 11 | variant: { 12 | default: "bg-primary text-primary-foreground hover:bg-primary/90", 13 | destructive: 14 | "bg-destructive text-destructive-foreground hover:bg-destructive/90", 15 | outline: 16 | "border border-input bg-background hover:bg-accent hover:text-accent-foreground", 17 | secondary: 18 | "bg-secondary text-secondary-foreground hover:bg-secondary/80", 19 | ghost: "hover:bg-accent hover:text-accent-foreground", 20 | link: "text-primary underline-offset-4 hover:underline", 21 | }, 22 | size: { 23 | default: "h-10 px-4 py-2", 24 | sm: "h-9 rounded-md px-3", 25 | lg: "h-11 rounded-md px-8", 26 | icon: "h-10 w-10", 27 | }, 28 | }, 29 | defaultVariants: { 30 | variant: "default", 31 | size: "default", 32 | }, 33 | } 34 | ) 35 | 36 | export interface ButtonProps 37 | extends React.ButtonHTMLAttributes, 38 | VariantProps { 39 | asChild?: boolean 40 | } 41 | 42 | const Button = React.forwardRef( 43 | ({ className, variant, size, asChild = false, ...props }, ref) => { 44 | const Comp = asChild ? Slot : "button" 45 | return ( 46 | 51 | ) 52 | } 53 | ) 54 | Button.displayName = "Button" 55 | 56 | export { Button, buttonVariants } 57 | -------------------------------------------------------------------------------- /tailwind.config.ts: -------------------------------------------------------------------------------- 1 | import type { Config } from "tailwindcss" 2 | 3 | const config: Config = { 4 | darkMode: ["class"], 5 | content: [ 6 | "./src/pages/**/*.{js,ts,jsx,tsx,mdx}", 7 | "./src/components/**/*.{js,ts,jsx,tsx,mdx}", 8 | "./src/app/**/*.{js,ts,jsx,tsx,mdx}", 9 | ], 10 | theme: { 11 | container: { 12 | center: true, 13 | padding: "2rem", 14 | screens: { 15 | "2xl": "1400px", 16 | }, 17 | }, 18 | extend: { 19 | colors: { 20 | background: "hsl(var(--background))", 21 | foreground: "hsl(var(--foreground))", 22 | card: { 23 | DEFAULT: "hsl(var(--card))", 24 | foreground: "hsl(var(--card-foreground))", 25 | }, 26 | popover: { 27 | DEFAULT: "hsl(var(--popover))", 28 | foreground: "hsl(var(--popover-foreground))", 29 | }, 30 | primary: { 31 | DEFAULT: "hsl(var(--primary))", 32 | foreground: "hsl(var(--primary-foreground))", 33 | }, 34 | secondary: { 35 | DEFAULT: "hsl(var(--secondary))", 36 | foreground: "hsl(var(--secondary-foreground))", 37 | }, 38 | muted: { 39 | DEFAULT: "hsl(var(--muted))", 40 | foreground: "hsl(var(--muted-foreground))", 41 | }, 42 | accent: { 43 | DEFAULT: "hsl(var(--accent))", 44 | foreground: "hsl(var(--accent-foreground))", 45 | }, 46 | destructive: { 47 | DEFAULT: "hsl(var(--destructive))", 48 | foreground: "hsl(var(--destructive-foreground))", 49 | }, 50 | border: "hsl(var(--border))", 51 | input: "hsl(var(--input))", 52 | ring: "hsl(var(--ring))", 53 | chart: { 54 | "1": "hsl(var(--chart-1))", 55 | "2": "hsl(var(--chart-2))", 56 | "3": "hsl(var(--chart-3))", 57 | "4": "hsl(var(--chart-4))", 58 | "5": "hsl(var(--chart-5))", 59 | }, 60 | }, 61 | borderRadius: { 62 | lg: "var(--radius)", 63 | md: "calc(var(--radius) - 2px)", 64 | sm: "calc(var(--radius) - 4px)", 65 | }, 66 | }, 67 | }, 68 | plugins: [require("tailwindcss-animate")], 69 | } 70 | export default config 71 | -------------------------------------------------------------------------------- /src/app/page.tsx: -------------------------------------------------------------------------------- 1 | "use client" 2 | 3 | import React from "react" 4 | import { useInfiniteScroll } from "@/hooks/use-virtual-scroll" 5 | import { useInView } from "react-intersection-observer" 6 | import { ImageShell } from "@/components/image-shell" 7 | import { Skeleton } from "@/components/ui/skeleton" 8 | 9 | export default function HomePage() { 10 | const [images, setImages] = React.useState([]) 11 | const [loading, setLoading] = React.useState(true) 12 | const { displayedImages, loadMore } = useInfiniteScroll({ 13 | images: images, 14 | }) 15 | 16 | const { ref, inView } = useInView({ 17 | threshold: 0, 18 | }) 19 | 20 | React.useEffect(() => { 21 | async function fetchImages() { 22 | try { 23 | setLoading(true) 24 | const response = await fetch("/api/proxy") 25 | 26 | if (!response.ok) { 27 | throw new Error("Failed to fetch images") 28 | } 29 | 30 | const data = await response.json() 31 | setImages(data.images) 32 | } catch (error) { 33 | console.error("Error fetching images:", error) 34 | } finally { 35 | setLoading(false) 36 | } 37 | } 38 | 39 | fetchImages() 40 | }, []) 41 | 42 | React.useEffect(() => { 43 | if (inView) { 44 | loadMore() 45 | } 46 | }, [inView, loadMore]) 47 | 48 | return ( 49 |
50 |
51 | {loading 52 | ? [...Array(20)].map((_, idx) => { 53 | const randomHeight = 54 | Math.floor(Math.random() * (450 - 150 + 1)) + 150 55 | return ( 56 |
57 | 61 |
62 | ) 63 | }) 64 | : displayedImages.map((imageUrl, idx) => ( 65 | 66 | ))} 67 |
68 |
69 |
70 | ) 71 | } 72 | -------------------------------------------------------------------------------- /src/app/globals.css: -------------------------------------------------------------------------------- 1 | @tailwind base; 2 | @tailwind components; 3 | @tailwind utilities; 4 | 5 | body { 6 | font-family: Arial, Helvetica, sans-serif; 7 | } 8 | 9 | @layer utilities { 10 | .text-balance { 11 | text-wrap: balance; 12 | } 13 | } 14 | 15 | @layer base { 16 | :root { 17 | --background: 0 0% 100%; 18 | --foreground: 0 0% 3.9%; 19 | --card: 0 0% 100%; 20 | --card-foreground: 0 0% 3.9%; 21 | --popover: 0 0% 100%; 22 | --popover-foreground: 0 0% 3.9%; 23 | --primary: 0 0% 9%; 24 | --primary-foreground: 0 0% 98%; 25 | --secondary: 0 0% 96.1%; 26 | --secondary-foreground: 0 0% 9%; 27 | --muted: 0 0% 96.1%; 28 | --muted-foreground: 0 0% 45.1%; 29 | --accent: 0 0% 96.1%; 30 | --accent-foreground: 0 0% 9%; 31 | --destructive: 0 84.2% 60.2%; 32 | --destructive-foreground: 0 0% 98%; 33 | --border: 0 0% 89.8%; 34 | --input: 0 0% 89.8%; 35 | --ring: 0 0% 3.9%; 36 | --chart-1: 12 76% 61%; 37 | --chart-2: 173 58% 39%; 38 | --chart-3: 197 37% 24%; 39 | --chart-4: 43 74% 66%; 40 | --chart-5: 27 87% 67%; 41 | --radius: 0.5rem; 42 | } 43 | .dark { 44 | --background: 0 0% 3.9%; 45 | --foreground: 0 0% 98%; 46 | --card: 0 0% 3.9%; 47 | --card-foreground: 0 0% 98%; 48 | --popover: 0 0% 3.9%; 49 | --popover-foreground: 0 0% 98%; 50 | --primary: 0 0% 98%; 51 | --primary-foreground: 0 0% 9%; 52 | --secondary: 0 0% 14.9%; 53 | --secondary-foreground: 0 0% 98%; 54 | --muted: 0 0% 14.9%; 55 | --muted-foreground: 0 0% 63.9%; 56 | --accent: 0 0% 14.9%; 57 | --accent-foreground: 0 0% 98%; 58 | --destructive: 0 62.8% 30.6%; 59 | --destructive-foreground: 0 0% 98%; 60 | --border: 0 0% 14.9%; 61 | --input: 0 0% 14.9%; 62 | --ring: 0 0% 83.1%; 63 | --chart-1: 220 70% 50%; 64 | --chart-2: 160 60% 45%; 65 | --chart-3: 30 80% 55%; 66 | --chart-4: 280 65% 60%; 67 | --chart-5: 340 75% 55%; 68 | } 69 | } 70 | 71 | @layer base { 72 | * { 73 | @apply border-border; 74 | } 75 | body { 76 | @apply bg-background text-foreground; 77 | } 78 | } 79 | 80 | body::-webkit-scrollbar { 81 | display: none; 82 | -ms-overflow-style: none; /* IE and Edge */ 83 | scrollbar-width: none; /* Firefox */ 84 | } 85 | 86 | @media (max-width: 640px) { 87 | .container { 88 | padding-left: 8px; 89 | padding-right: 8px; 90 | } 91 | } 92 | -------------------------------------------------------------------------------- /src/components/ui/dialog.tsx: -------------------------------------------------------------------------------- 1 | "use client" 2 | 3 | import * as React from "react" 4 | import * as DialogPrimitive from "@radix-ui/react-dialog" 5 | import { X } from "lucide-react" 6 | 7 | import { cn } from "@/lib/utils" 8 | 9 | const Dialog = DialogPrimitive.Root 10 | 11 | const DialogTrigger = DialogPrimitive.Trigger 12 | 13 | const DialogPortal = DialogPrimitive.Portal 14 | 15 | const DialogClose = DialogPrimitive.Close 16 | 17 | const DialogOverlay = React.forwardRef< 18 | React.ElementRef, 19 | React.ComponentPropsWithoutRef 20 | >(({ className, ...props }, ref) => ( 21 | 29 | )) 30 | DialogOverlay.displayName = DialogPrimitive.Overlay.displayName 31 | 32 | const DialogContent = React.forwardRef< 33 | React.ElementRef, 34 | React.ComponentPropsWithoutRef 35 | >(({ className, children, ...props }, ref) => ( 36 | 37 | 38 | 46 | {children} 47 | 48 | 49 | Close 50 | 51 | 52 | 53 | )) 54 | DialogContent.displayName = DialogPrimitive.Content.displayName 55 | 56 | const DialogHeader = ({ 57 | className, 58 | ...props 59 | }: React.HTMLAttributes) => ( 60 |
67 | ) 68 | DialogHeader.displayName = "DialogHeader" 69 | 70 | const DialogFooter = ({ 71 | className, 72 | ...props 73 | }: React.HTMLAttributes) => ( 74 |
81 | ) 82 | DialogFooter.displayName = "DialogFooter" 83 | 84 | const DialogTitle = React.forwardRef< 85 | React.ElementRef, 86 | React.ComponentPropsWithoutRef 87 | >(({ className, ...props }, ref) => ( 88 | 96 | )) 97 | DialogTitle.displayName = DialogPrimitive.Title.displayName 98 | 99 | const DialogDescription = React.forwardRef< 100 | React.ElementRef, 101 | React.ComponentPropsWithoutRef 102 | >(({ className, ...props }, ref) => ( 103 | 108 | )) 109 | DialogDescription.displayName = DialogPrimitive.Description.displayName 110 | 111 | export { 112 | Dialog, 113 | DialogPortal, 114 | DialogOverlay, 115 | DialogClose, 116 | DialogTrigger, 117 | DialogContent, 118 | DialogHeader, 119 | DialogFooter, 120 | DialogTitle, 121 | DialogDescription, 122 | } 123 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '9.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | importers: 8 | 9 | .: 10 | dependencies: 11 | '@radix-ui/react-dialog': 12 | specifier: ^1.1.1 13 | version: 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 14 | '@radix-ui/react-slot': 15 | specifier: ^1.1.0 16 | version: 1.1.0(@types/react@18.3.9)(react@18.3.1) 17 | '@tanstack/react-query': 18 | specifier: ^5.56.2 19 | version: 5.56.2(react@18.3.1) 20 | axios: 21 | specifier: ^1.7.7 22 | version: 1.7.7 23 | class-variance-authority: 24 | specifier: ^0.7.0 25 | version: 0.7.0 26 | clsx: 27 | specifier: ^2.1.1 28 | version: 2.1.1 29 | lucide-react: 30 | specifier: ^0.446.0 31 | version: 0.446.0(react@18.3.1) 32 | next: 33 | specifier: 14.2.13 34 | version: 14.2.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 35 | react: 36 | specifier: ^18 37 | version: 18.3.1 38 | react-dom: 39 | specifier: ^18 40 | version: 18.3.1(react@18.3.1) 41 | react-intersection-observer: 42 | specifier: ^9.13.1 43 | version: 9.13.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 44 | sonner: 45 | specifier: ^1.5.0 46 | version: 1.5.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 47 | tailwind-merge: 48 | specifier: ^2.5.2 49 | version: 2.5.2 50 | tailwindcss-animate: 51 | specifier: ^1.0.7 52 | version: 1.0.7(tailwindcss@3.4.13) 53 | devDependencies: 54 | '@types/node': 55 | specifier: ^20 56 | version: 20.16.7 57 | '@types/react': 58 | specifier: ^18 59 | version: 18.3.9 60 | '@types/react-dom': 61 | specifier: ^18 62 | version: 18.3.0 63 | postcss: 64 | specifier: ^8 65 | version: 8.4.47 66 | tailwindcss: 67 | specifier: ^3.4.1 68 | version: 3.4.13 69 | typescript: 70 | specifier: ^5 71 | version: 5.6.2 72 | 73 | packages: 74 | 75 | '@alloc/quick-lru@5.2.0': 76 | resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} 77 | engines: {node: '>=10'} 78 | 79 | '@isaacs/cliui@8.0.2': 80 | resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} 81 | engines: {node: '>=12'} 82 | 83 | '@jridgewell/gen-mapping@0.3.5': 84 | resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} 85 | engines: {node: '>=6.0.0'} 86 | 87 | '@jridgewell/resolve-uri@3.1.2': 88 | resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} 89 | engines: {node: '>=6.0.0'} 90 | 91 | '@jridgewell/set-array@1.2.1': 92 | resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} 93 | engines: {node: '>=6.0.0'} 94 | 95 | '@jridgewell/sourcemap-codec@1.5.0': 96 | resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} 97 | 98 | '@jridgewell/trace-mapping@0.3.25': 99 | resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} 100 | 101 | '@next/env@14.2.13': 102 | resolution: {integrity: sha512-s3lh6K8cbW1h5Nga7NNeXrbe0+2jIIYK9YaA9T7IufDWnZpozdFUp6Hf0d5rNWUKu4fEuSX2rCKlGjCrtylfDw==} 103 | 104 | '@next/swc-darwin-arm64@14.2.13': 105 | resolution: {integrity: sha512-IkAmQEa2Htq+wHACBxOsslt+jMoV3msvxCn0WFSfJSkv/scy+i/EukBKNad36grRxywaXUYJc9mxEGkeIs8Bzg==} 106 | engines: {node: '>= 10'} 107 | cpu: [arm64] 108 | os: [darwin] 109 | 110 | '@next/swc-darwin-x64@14.2.13': 111 | resolution: {integrity: sha512-Dv1RBGs2TTjkwEnFMVL5XIfJEavnLqqwYSD6LXgTPdEy/u6FlSrLBSSfe1pcfqhFEXRAgVL3Wpjibe5wXJzWog==} 112 | engines: {node: '>= 10'} 113 | cpu: [x64] 114 | os: [darwin] 115 | 116 | '@next/swc-linux-arm64-gnu@14.2.13': 117 | resolution: {integrity: sha512-yB1tYEFFqo4ZNWkwrJultbsw7NPAAxlPXURXioRl9SdW6aIefOLS+0TEsKrWBtbJ9moTDgU3HRILL6QBQnMevg==} 118 | engines: {node: '>= 10'} 119 | cpu: [arm64] 120 | os: [linux] 121 | 122 | '@next/swc-linux-arm64-musl@14.2.13': 123 | resolution: {integrity: sha512-v5jZ/FV/eHGoWhMKYrsAweQ7CWb8xsWGM/8m1mwwZQ/sutJjoFaXchwK4pX8NqwImILEvQmZWyb8pPTcP7htWg==} 124 | engines: {node: '>= 10'} 125 | cpu: [arm64] 126 | os: [linux] 127 | 128 | '@next/swc-linux-x64-gnu@14.2.13': 129 | resolution: {integrity: sha512-aVc7m4YL7ViiRv7SOXK3RplXzOEe/qQzRA5R2vpXboHABs3w8vtFslGTz+5tKiQzWUmTmBNVW0UQdhkKRORmGA==} 130 | engines: {node: '>= 10'} 131 | cpu: [x64] 132 | os: [linux] 133 | 134 | '@next/swc-linux-x64-musl@14.2.13': 135 | resolution: {integrity: sha512-4wWY7/OsSaJOOKvMsu1Teylku7vKyTuocvDLTZQq0TYv9OjiYYWt63PiE1nTuZnqQ4RPvME7Xai+9enoiN0Wrg==} 136 | engines: {node: '>= 10'} 137 | cpu: [x64] 138 | os: [linux] 139 | 140 | '@next/swc-win32-arm64-msvc@14.2.13': 141 | resolution: {integrity: sha512-uP1XkqCqV2NVH9+g2sC7qIw+w2tRbcMiXFEbMihkQ8B1+V6m28sshBwAB0SDmOe0u44ne1vFU66+gx/28RsBVQ==} 142 | engines: {node: '>= 10'} 143 | cpu: [arm64] 144 | os: [win32] 145 | 146 | '@next/swc-win32-ia32-msvc@14.2.13': 147 | resolution: {integrity: sha512-V26ezyjPqQpDBV4lcWIh8B/QICQ4v+M5Bo9ykLN+sqeKKBxJVDpEc6biDVyluTXTC40f5IqCU0ttth7Es2ZuMw==} 148 | engines: {node: '>= 10'} 149 | cpu: [ia32] 150 | os: [win32] 151 | 152 | '@next/swc-win32-x64-msvc@14.2.13': 153 | resolution: {integrity: sha512-WwzOEAFBGhlDHE5Z73mNU8CO8mqMNLqaG+AO9ETmzdCQlJhVtWZnOl2+rqgVQS+YHunjOWptdFmNfbpwcUuEsw==} 154 | engines: {node: '>= 10'} 155 | cpu: [x64] 156 | os: [win32] 157 | 158 | '@nodelib/fs.scandir@2.1.5': 159 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 160 | engines: {node: '>= 8'} 161 | 162 | '@nodelib/fs.stat@2.0.5': 163 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 164 | engines: {node: '>= 8'} 165 | 166 | '@nodelib/fs.walk@1.2.8': 167 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 168 | engines: {node: '>= 8'} 169 | 170 | '@pkgjs/parseargs@0.11.0': 171 | resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} 172 | engines: {node: '>=14'} 173 | 174 | '@radix-ui/primitive@1.1.0': 175 | resolution: {integrity: sha512-4Z8dn6Upk0qk4P74xBhZ6Hd/w0mPEzOOLxy4xiPXOXqjF7jZS0VAKk7/x/H6FyY2zCkYJqePf1G5KmkmNJ4RBA==} 176 | 177 | '@radix-ui/react-compose-refs@1.1.0': 178 | resolution: {integrity: sha512-b4inOtiaOnYf9KWyO3jAeeCG6FeyfY6ldiEPanbUjWd+xIk5wZeHa8yVwmrJ2vderhu/BQvzCrJI0lHd+wIiqw==} 179 | peerDependencies: 180 | '@types/react': '*' 181 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 182 | peerDependenciesMeta: 183 | '@types/react': 184 | optional: true 185 | 186 | '@radix-ui/react-context@1.1.0': 187 | resolution: {integrity: sha512-OKrckBy+sMEgYM/sMmqmErVn0kZqrHPJze+Ql3DzYsDDp0hl0L62nx/2122/Bvps1qz645jlcu2tD9lrRSdf8A==} 188 | peerDependencies: 189 | '@types/react': '*' 190 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 191 | peerDependenciesMeta: 192 | '@types/react': 193 | optional: true 194 | 195 | '@radix-ui/react-dialog@1.1.1': 196 | resolution: {integrity: sha512-zysS+iU4YP3STKNS6USvFVqI4qqx8EpiwmT5TuCApVEBca+eRCbONi4EgzfNSuVnOXvC5UPHHMjs8RXO6DH9Bg==} 197 | peerDependencies: 198 | '@types/react': '*' 199 | '@types/react-dom': '*' 200 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 201 | react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 202 | peerDependenciesMeta: 203 | '@types/react': 204 | optional: true 205 | '@types/react-dom': 206 | optional: true 207 | 208 | '@radix-ui/react-dismissable-layer@1.1.0': 209 | resolution: {integrity: sha512-/UovfmmXGptwGcBQawLzvn2jOfM0t4z3/uKffoBlj724+n3FvBbZ7M0aaBOmkp6pqFYpO4yx8tSVJjx3Fl2jig==} 210 | peerDependencies: 211 | '@types/react': '*' 212 | '@types/react-dom': '*' 213 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 214 | react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 215 | peerDependenciesMeta: 216 | '@types/react': 217 | optional: true 218 | '@types/react-dom': 219 | optional: true 220 | 221 | '@radix-ui/react-focus-guards@1.1.0': 222 | resolution: {integrity: sha512-w6XZNUPVv6xCpZUqb/yN9DL6auvpGX3C/ee6Hdi16v2UUy25HV2Q5bcflsiDyT/g5RwbPQ/GIT1vLkeRb+ITBw==} 223 | peerDependencies: 224 | '@types/react': '*' 225 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 226 | peerDependenciesMeta: 227 | '@types/react': 228 | optional: true 229 | 230 | '@radix-ui/react-focus-scope@1.1.0': 231 | resolution: {integrity: sha512-200UD8zylvEyL8Bx+z76RJnASR2gRMuxlgFCPAe/Q/679a/r0eK3MBVYMb7vZODZcffZBdob1EGnky78xmVvcA==} 232 | peerDependencies: 233 | '@types/react': '*' 234 | '@types/react-dom': '*' 235 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 236 | react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 237 | peerDependenciesMeta: 238 | '@types/react': 239 | optional: true 240 | '@types/react-dom': 241 | optional: true 242 | 243 | '@radix-ui/react-id@1.1.0': 244 | resolution: {integrity: sha512-EJUrI8yYh7WOjNOqpoJaf1jlFIH2LvtgAl+YcFqNCa+4hj64ZXmPkAKOFs/ukjz3byN6bdb/AVUqHkI8/uWWMA==} 245 | peerDependencies: 246 | '@types/react': '*' 247 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 248 | peerDependenciesMeta: 249 | '@types/react': 250 | optional: true 251 | 252 | '@radix-ui/react-portal@1.1.1': 253 | resolution: {integrity: sha512-A3UtLk85UtqhzFqtoC8Q0KvR2GbXF3mtPgACSazajqq6A41mEQgo53iPzY4i6BwDxlIFqWIhiQ2G729n+2aw/g==} 254 | peerDependencies: 255 | '@types/react': '*' 256 | '@types/react-dom': '*' 257 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 258 | react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 259 | peerDependenciesMeta: 260 | '@types/react': 261 | optional: true 262 | '@types/react-dom': 263 | optional: true 264 | 265 | '@radix-ui/react-presence@1.1.0': 266 | resolution: {integrity: sha512-Gq6wuRN/asf9H/E/VzdKoUtT8GC9PQc9z40/vEr0VCJ4u5XvvhWIrSsCB6vD2/cH7ugTdSfYq9fLJCcM00acrQ==} 267 | peerDependencies: 268 | '@types/react': '*' 269 | '@types/react-dom': '*' 270 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 271 | react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 272 | peerDependenciesMeta: 273 | '@types/react': 274 | optional: true 275 | '@types/react-dom': 276 | optional: true 277 | 278 | '@radix-ui/react-primitive@2.0.0': 279 | resolution: {integrity: sha512-ZSpFm0/uHa8zTvKBDjLFWLo8dkr4MBsiDLz0g3gMUwqgLHz9rTaRRGYDgvZPtBJgYCBKXkS9fzmoySgr8CO6Cw==} 280 | peerDependencies: 281 | '@types/react': '*' 282 | '@types/react-dom': '*' 283 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 284 | react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 285 | peerDependenciesMeta: 286 | '@types/react': 287 | optional: true 288 | '@types/react-dom': 289 | optional: true 290 | 291 | '@radix-ui/react-slot@1.1.0': 292 | resolution: {integrity: sha512-FUCf5XMfmW4dtYl69pdS4DbxKy8nj4M7SafBgPllysxmdachynNflAdp/gCsnYWNDnge6tI9onzMp5ARYc1KNw==} 293 | peerDependencies: 294 | '@types/react': '*' 295 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 296 | peerDependenciesMeta: 297 | '@types/react': 298 | optional: true 299 | 300 | '@radix-ui/react-use-callback-ref@1.1.0': 301 | resolution: {integrity: sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw==} 302 | peerDependencies: 303 | '@types/react': '*' 304 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 305 | peerDependenciesMeta: 306 | '@types/react': 307 | optional: true 308 | 309 | '@radix-ui/react-use-controllable-state@1.1.0': 310 | resolution: {integrity: sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==} 311 | peerDependencies: 312 | '@types/react': '*' 313 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 314 | peerDependenciesMeta: 315 | '@types/react': 316 | optional: true 317 | 318 | '@radix-ui/react-use-escape-keydown@1.1.0': 319 | resolution: {integrity: sha512-L7vwWlR1kTTQ3oh7g1O0CBF3YCyyTj8NmhLR+phShpyA50HCfBFKVJTpshm9PzLiKmehsrQzTYTpX9HvmC9rhw==} 320 | peerDependencies: 321 | '@types/react': '*' 322 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 323 | peerDependenciesMeta: 324 | '@types/react': 325 | optional: true 326 | 327 | '@radix-ui/react-use-layout-effect@1.1.0': 328 | resolution: {integrity: sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w==} 329 | peerDependencies: 330 | '@types/react': '*' 331 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 332 | peerDependenciesMeta: 333 | '@types/react': 334 | optional: true 335 | 336 | '@swc/counter@0.1.3': 337 | resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} 338 | 339 | '@swc/helpers@0.5.5': 340 | resolution: {integrity: sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==} 341 | 342 | '@tanstack/query-core@5.56.2': 343 | resolution: {integrity: sha512-gor0RI3/R5rVV3gXfddh1MM+hgl0Z4G7tj6Xxpq6p2I03NGPaJ8dITY9Gz05zYYb/EJq9vPas/T4wn9EaDPd4Q==} 344 | 345 | '@tanstack/react-query@5.56.2': 346 | resolution: {integrity: sha512-SR0GzHVo6yzhN72pnRhkEFRAHMsUo5ZPzAxfTMvUxFIDVS6W9LYUp6nXW3fcHVdg0ZJl8opSH85jqahvm6DSVg==} 347 | peerDependencies: 348 | react: ^18 || ^19 349 | 350 | '@types/node@20.16.7': 351 | resolution: {integrity: sha512-QkDQjAY3gkvJNcZOWwzy3BN34RweT0OQ9zJyvLCU0kSK22dO2QYh/NHGfbEAYylPYzRB1/iXcojS79wOg5gFSw==} 352 | 353 | '@types/prop-types@15.7.13': 354 | resolution: {integrity: sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==} 355 | 356 | '@types/react-dom@18.3.0': 357 | resolution: {integrity: sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==} 358 | 359 | '@types/react@18.3.9': 360 | resolution: {integrity: sha512-+BpAVyTpJkNWWSSnaLBk6ePpHLOGJKnEQNbINNovPWzvEUyAe3e+/d494QdEh71RekM/qV7lw6jzf1HGrJyAtQ==} 361 | 362 | ansi-regex@5.0.1: 363 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 364 | engines: {node: '>=8'} 365 | 366 | ansi-regex@6.1.0: 367 | resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} 368 | engines: {node: '>=12'} 369 | 370 | ansi-styles@4.3.0: 371 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 372 | engines: {node: '>=8'} 373 | 374 | ansi-styles@6.2.1: 375 | resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} 376 | engines: {node: '>=12'} 377 | 378 | any-promise@1.3.0: 379 | resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} 380 | 381 | anymatch@3.1.3: 382 | resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} 383 | engines: {node: '>= 8'} 384 | 385 | arg@5.0.2: 386 | resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} 387 | 388 | aria-hidden@1.2.4: 389 | resolution: {integrity: sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==} 390 | engines: {node: '>=10'} 391 | 392 | asynckit@0.4.0: 393 | resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} 394 | 395 | axios@1.7.7: 396 | resolution: {integrity: sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==} 397 | 398 | balanced-match@1.0.2: 399 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 400 | 401 | binary-extensions@2.3.0: 402 | resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} 403 | engines: {node: '>=8'} 404 | 405 | brace-expansion@2.0.1: 406 | resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} 407 | 408 | braces@3.0.3: 409 | resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} 410 | engines: {node: '>=8'} 411 | 412 | busboy@1.6.0: 413 | resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} 414 | engines: {node: '>=10.16.0'} 415 | 416 | camelcase-css@2.0.1: 417 | resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} 418 | engines: {node: '>= 6'} 419 | 420 | caniuse-lite@1.0.30001663: 421 | resolution: {integrity: sha512-o9C3X27GLKbLeTYZ6HBOLU1tsAcBZsLis28wrVzddShCS16RujjHp9GDHKZqrB3meE0YjhawvMFsGb/igqiPzA==} 422 | 423 | chokidar@3.6.0: 424 | resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} 425 | engines: {node: '>= 8.10.0'} 426 | 427 | class-variance-authority@0.7.0: 428 | resolution: {integrity: sha512-jFI8IQw4hczaL4ALINxqLEXQbWcNjoSkloa4IaufXCJr6QawJyw7tuRysRsrE8w2p/4gGaxKIt/hX3qz/IbD1A==} 429 | 430 | client-only@0.0.1: 431 | resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} 432 | 433 | clsx@2.0.0: 434 | resolution: {integrity: sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==} 435 | engines: {node: '>=6'} 436 | 437 | clsx@2.1.1: 438 | resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} 439 | engines: {node: '>=6'} 440 | 441 | color-convert@2.0.1: 442 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 443 | engines: {node: '>=7.0.0'} 444 | 445 | color-name@1.1.4: 446 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 447 | 448 | combined-stream@1.0.8: 449 | resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} 450 | engines: {node: '>= 0.8'} 451 | 452 | commander@4.1.1: 453 | resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} 454 | engines: {node: '>= 6'} 455 | 456 | cross-spawn@7.0.3: 457 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} 458 | engines: {node: '>= 8'} 459 | 460 | cssesc@3.0.0: 461 | resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} 462 | engines: {node: '>=4'} 463 | hasBin: true 464 | 465 | csstype@3.1.3: 466 | resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} 467 | 468 | delayed-stream@1.0.0: 469 | resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} 470 | engines: {node: '>=0.4.0'} 471 | 472 | detect-node-es@1.1.0: 473 | resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} 474 | 475 | didyoumean@1.2.2: 476 | resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} 477 | 478 | dlv@1.1.3: 479 | resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} 480 | 481 | eastasianwidth@0.2.0: 482 | resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} 483 | 484 | emoji-regex@8.0.0: 485 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} 486 | 487 | emoji-regex@9.2.2: 488 | resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} 489 | 490 | fast-glob@3.3.2: 491 | resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} 492 | engines: {node: '>=8.6.0'} 493 | 494 | fastq@1.17.1: 495 | resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} 496 | 497 | fill-range@7.1.1: 498 | resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} 499 | engines: {node: '>=8'} 500 | 501 | follow-redirects@1.15.9: 502 | resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==} 503 | engines: {node: '>=4.0'} 504 | peerDependencies: 505 | debug: '*' 506 | peerDependenciesMeta: 507 | debug: 508 | optional: true 509 | 510 | foreground-child@3.3.0: 511 | resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} 512 | engines: {node: '>=14'} 513 | 514 | form-data@4.0.0: 515 | resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} 516 | engines: {node: '>= 6'} 517 | 518 | fsevents@2.3.3: 519 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 520 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 521 | os: [darwin] 522 | 523 | function-bind@1.1.2: 524 | resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} 525 | 526 | get-nonce@1.0.1: 527 | resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==} 528 | engines: {node: '>=6'} 529 | 530 | glob-parent@5.1.2: 531 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 532 | engines: {node: '>= 6'} 533 | 534 | glob-parent@6.0.2: 535 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} 536 | engines: {node: '>=10.13.0'} 537 | 538 | glob@10.4.5: 539 | resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} 540 | hasBin: true 541 | 542 | graceful-fs@4.2.11: 543 | resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} 544 | 545 | hasown@2.0.2: 546 | resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} 547 | engines: {node: '>= 0.4'} 548 | 549 | invariant@2.2.4: 550 | resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} 551 | 552 | is-binary-path@2.1.0: 553 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} 554 | engines: {node: '>=8'} 555 | 556 | is-core-module@2.15.1: 557 | resolution: {integrity: sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==} 558 | engines: {node: '>= 0.4'} 559 | 560 | is-extglob@2.1.1: 561 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 562 | engines: {node: '>=0.10.0'} 563 | 564 | is-fullwidth-code-point@3.0.0: 565 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} 566 | engines: {node: '>=8'} 567 | 568 | is-glob@4.0.3: 569 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 570 | engines: {node: '>=0.10.0'} 571 | 572 | is-number@7.0.0: 573 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 574 | engines: {node: '>=0.12.0'} 575 | 576 | isexe@2.0.0: 577 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 578 | 579 | jackspeak@3.4.3: 580 | resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} 581 | 582 | jiti@1.21.6: 583 | resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==} 584 | hasBin: true 585 | 586 | js-tokens@4.0.0: 587 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 588 | 589 | lilconfig@2.1.0: 590 | resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} 591 | engines: {node: '>=10'} 592 | 593 | lilconfig@3.1.2: 594 | resolution: {integrity: sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==} 595 | engines: {node: '>=14'} 596 | 597 | lines-and-columns@1.2.4: 598 | resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} 599 | 600 | loose-envify@1.4.0: 601 | resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} 602 | hasBin: true 603 | 604 | lru-cache@10.4.3: 605 | resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} 606 | 607 | lucide-react@0.446.0: 608 | resolution: {integrity: sha512-BU7gy8MfBMqvEdDPH79VhOXSEgyG8TSPOKWaExWGCQVqnGH7wGgDngPbofu+KdtVjPQBWbEmnfMTq90CTiiDRg==} 609 | peerDependencies: 610 | react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0-rc 611 | 612 | merge2@1.4.1: 613 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 614 | engines: {node: '>= 8'} 615 | 616 | micromatch@4.0.8: 617 | resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} 618 | engines: {node: '>=8.6'} 619 | 620 | mime-db@1.52.0: 621 | resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} 622 | engines: {node: '>= 0.6'} 623 | 624 | mime-types@2.1.35: 625 | resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} 626 | engines: {node: '>= 0.6'} 627 | 628 | minimatch@9.0.5: 629 | resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} 630 | engines: {node: '>=16 || 14 >=14.17'} 631 | 632 | minipass@7.1.2: 633 | resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} 634 | engines: {node: '>=16 || 14 >=14.17'} 635 | 636 | mz@2.7.0: 637 | resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} 638 | 639 | nanoid@3.3.7: 640 | resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} 641 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 642 | hasBin: true 643 | 644 | next@14.2.13: 645 | resolution: {integrity: sha512-BseY9YNw8QJSwLYD7hlZzl6QVDoSFHL/URN5K64kVEVpCsSOWeyjbIGK+dZUaRViHTaMQX8aqmnn0PHBbGZezg==} 646 | engines: {node: '>=18.17.0'} 647 | hasBin: true 648 | peerDependencies: 649 | '@opentelemetry/api': ^1.1.0 650 | '@playwright/test': ^1.41.2 651 | react: ^18.2.0 652 | react-dom: ^18.2.0 653 | sass: ^1.3.0 654 | peerDependenciesMeta: 655 | '@opentelemetry/api': 656 | optional: true 657 | '@playwright/test': 658 | optional: true 659 | sass: 660 | optional: true 661 | 662 | normalize-path@3.0.0: 663 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 664 | engines: {node: '>=0.10.0'} 665 | 666 | object-assign@4.1.1: 667 | resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} 668 | engines: {node: '>=0.10.0'} 669 | 670 | object-hash@3.0.0: 671 | resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} 672 | engines: {node: '>= 6'} 673 | 674 | package-json-from-dist@1.0.0: 675 | resolution: {integrity: sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==} 676 | 677 | path-key@3.1.1: 678 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 679 | engines: {node: '>=8'} 680 | 681 | path-parse@1.0.7: 682 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 683 | 684 | path-scurry@1.11.1: 685 | resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} 686 | engines: {node: '>=16 || 14 >=14.18'} 687 | 688 | picocolors@1.1.0: 689 | resolution: {integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==} 690 | 691 | picomatch@2.3.1: 692 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 693 | engines: {node: '>=8.6'} 694 | 695 | pify@2.3.0: 696 | resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} 697 | engines: {node: '>=0.10.0'} 698 | 699 | pirates@4.0.6: 700 | resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} 701 | engines: {node: '>= 6'} 702 | 703 | postcss-import@15.1.0: 704 | resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} 705 | engines: {node: '>=14.0.0'} 706 | peerDependencies: 707 | postcss: ^8.0.0 708 | 709 | postcss-js@4.0.1: 710 | resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} 711 | engines: {node: ^12 || ^14 || >= 16} 712 | peerDependencies: 713 | postcss: ^8.4.21 714 | 715 | postcss-load-config@4.0.2: 716 | resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} 717 | engines: {node: '>= 14'} 718 | peerDependencies: 719 | postcss: '>=8.0.9' 720 | ts-node: '>=9.0.0' 721 | peerDependenciesMeta: 722 | postcss: 723 | optional: true 724 | ts-node: 725 | optional: true 726 | 727 | postcss-nested@6.2.0: 728 | resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==} 729 | engines: {node: '>=12.0'} 730 | peerDependencies: 731 | postcss: ^8.2.14 732 | 733 | postcss-selector-parser@6.1.2: 734 | resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} 735 | engines: {node: '>=4'} 736 | 737 | postcss-value-parser@4.2.0: 738 | resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} 739 | 740 | postcss@8.4.31: 741 | resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} 742 | engines: {node: ^10 || ^12 || >=14} 743 | 744 | postcss@8.4.47: 745 | resolution: {integrity: sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==} 746 | engines: {node: ^10 || ^12 || >=14} 747 | 748 | proxy-from-env@1.1.0: 749 | resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} 750 | 751 | queue-microtask@1.2.3: 752 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 753 | 754 | react-dom@18.3.1: 755 | resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} 756 | peerDependencies: 757 | react: ^18.3.1 758 | 759 | react-intersection-observer@9.13.1: 760 | resolution: {integrity: sha512-tSzDaTy0qwNPLJHg8XZhlyHTgGW6drFKTtvjdL+p6um12rcnp8Z5XstE+QNBJ7c64n5o0Lj4ilUleA41bmDoMw==} 761 | peerDependencies: 762 | react: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 763 | react-dom: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 764 | peerDependenciesMeta: 765 | react-dom: 766 | optional: true 767 | 768 | react-remove-scroll-bar@2.3.6: 769 | resolution: {integrity: sha512-DtSYaao4mBmX+HDo5YWYdBWQwYIQQshUV/dVxFxK+KM26Wjwp1gZ6rv6OC3oujI6Bfu6Xyg3TwK533AQutsn/g==} 770 | engines: {node: '>=10'} 771 | peerDependencies: 772 | '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 773 | react: ^16.8.0 || ^17.0.0 || ^18.0.0 774 | peerDependenciesMeta: 775 | '@types/react': 776 | optional: true 777 | 778 | react-remove-scroll@2.5.7: 779 | resolution: {integrity: sha512-FnrTWO4L7/Bhhf3CYBNArEG/yROV0tKmTv7/3h9QCFvH6sndeFf1wPqOcbFVu5VAulS5dV1wGT3GZZ/1GawqiA==} 780 | engines: {node: '>=10'} 781 | peerDependencies: 782 | '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 783 | react: ^16.8.0 || ^17.0.0 || ^18.0.0 784 | peerDependenciesMeta: 785 | '@types/react': 786 | optional: true 787 | 788 | react-style-singleton@2.2.1: 789 | resolution: {integrity: sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==} 790 | engines: {node: '>=10'} 791 | peerDependencies: 792 | '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 793 | react: ^16.8.0 || ^17.0.0 || ^18.0.0 794 | peerDependenciesMeta: 795 | '@types/react': 796 | optional: true 797 | 798 | react@18.3.1: 799 | resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} 800 | engines: {node: '>=0.10.0'} 801 | 802 | read-cache@1.0.0: 803 | resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} 804 | 805 | readdirp@3.6.0: 806 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} 807 | engines: {node: '>=8.10.0'} 808 | 809 | resolve@1.22.8: 810 | resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} 811 | hasBin: true 812 | 813 | reusify@1.0.4: 814 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 815 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 816 | 817 | run-parallel@1.2.0: 818 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 819 | 820 | scheduler@0.23.2: 821 | resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} 822 | 823 | shebang-command@2.0.0: 824 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 825 | engines: {node: '>=8'} 826 | 827 | shebang-regex@3.0.0: 828 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 829 | engines: {node: '>=8'} 830 | 831 | signal-exit@4.1.0: 832 | resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} 833 | engines: {node: '>=14'} 834 | 835 | sonner@1.5.0: 836 | resolution: {integrity: sha512-FBjhG/gnnbN6FY0jaNnqZOMmB73R+5IiyYAw8yBj7L54ER7HB3fOSE5OFiQiE2iXWxeXKvg6fIP4LtVppHEdJA==} 837 | peerDependencies: 838 | react: ^18.0.0 839 | react-dom: ^18.0.0 840 | 841 | source-map-js@1.2.1: 842 | resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} 843 | engines: {node: '>=0.10.0'} 844 | 845 | streamsearch@1.1.0: 846 | resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} 847 | engines: {node: '>=10.0.0'} 848 | 849 | string-width@4.2.3: 850 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} 851 | engines: {node: '>=8'} 852 | 853 | string-width@5.1.2: 854 | resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} 855 | engines: {node: '>=12'} 856 | 857 | strip-ansi@6.0.1: 858 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 859 | engines: {node: '>=8'} 860 | 861 | strip-ansi@7.1.0: 862 | resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} 863 | engines: {node: '>=12'} 864 | 865 | styled-jsx@5.1.1: 866 | resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==} 867 | engines: {node: '>= 12.0.0'} 868 | peerDependencies: 869 | '@babel/core': '*' 870 | babel-plugin-macros: '*' 871 | react: '>= 16.8.0 || 17.x.x || ^18.0.0-0' 872 | peerDependenciesMeta: 873 | '@babel/core': 874 | optional: true 875 | babel-plugin-macros: 876 | optional: true 877 | 878 | sucrase@3.35.0: 879 | resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} 880 | engines: {node: '>=16 || 14 >=14.17'} 881 | hasBin: true 882 | 883 | supports-preserve-symlinks-flag@1.0.0: 884 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 885 | engines: {node: '>= 0.4'} 886 | 887 | tailwind-merge@2.5.2: 888 | resolution: {integrity: sha512-kjEBm+pvD+6eAwzJL2Bi+02/9LFLal1Gs61+QB7HvTfQQ0aXwC5LGT8PEt1gS0CWKktKe6ysPTAy3cBC5MeiIg==} 889 | 890 | tailwindcss-animate@1.0.7: 891 | resolution: {integrity: sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==} 892 | peerDependencies: 893 | tailwindcss: '>=3.0.0 || insiders' 894 | 895 | tailwindcss@3.4.13: 896 | resolution: {integrity: sha512-KqjHOJKogOUt5Bs752ykCeiwvi0fKVkr5oqsFNt/8px/tA8scFPIlkygsf6jXrfCqGHz7VflA6+yytWuM+XhFw==} 897 | engines: {node: '>=14.0.0'} 898 | hasBin: true 899 | 900 | thenify-all@1.6.0: 901 | resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} 902 | engines: {node: '>=0.8'} 903 | 904 | thenify@3.3.1: 905 | resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} 906 | 907 | to-regex-range@5.0.1: 908 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 909 | engines: {node: '>=8.0'} 910 | 911 | ts-interface-checker@0.1.13: 912 | resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} 913 | 914 | tslib@2.7.0: 915 | resolution: {integrity: sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==} 916 | 917 | typescript@5.6.2: 918 | resolution: {integrity: sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==} 919 | engines: {node: '>=14.17'} 920 | hasBin: true 921 | 922 | undici-types@6.19.8: 923 | resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} 924 | 925 | use-callback-ref@1.3.2: 926 | resolution: {integrity: sha512-elOQwe6Q8gqZgDA8mrh44qRTQqpIHDcZ3hXTLjBe1i4ph8XpNJnO+aQf3NaG+lriLopI4HMx9VjQLfPQ6vhnoA==} 927 | engines: {node: '>=10'} 928 | peerDependencies: 929 | '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 930 | react: ^16.8.0 || ^17.0.0 || ^18.0.0 931 | peerDependenciesMeta: 932 | '@types/react': 933 | optional: true 934 | 935 | use-sidecar@1.1.2: 936 | resolution: {integrity: sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==} 937 | engines: {node: '>=10'} 938 | peerDependencies: 939 | '@types/react': ^16.9.0 || ^17.0.0 || ^18.0.0 940 | react: ^16.8.0 || ^17.0.0 || ^18.0.0 941 | peerDependenciesMeta: 942 | '@types/react': 943 | optional: true 944 | 945 | util-deprecate@1.0.2: 946 | resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} 947 | 948 | which@2.0.2: 949 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 950 | engines: {node: '>= 8'} 951 | hasBin: true 952 | 953 | wrap-ansi@7.0.0: 954 | resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} 955 | engines: {node: '>=10'} 956 | 957 | wrap-ansi@8.1.0: 958 | resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} 959 | engines: {node: '>=12'} 960 | 961 | yaml@2.5.1: 962 | resolution: {integrity: sha512-bLQOjaX/ADgQ20isPJRvF0iRUHIxVhYvr53Of7wGcWlO2jvtUlH5m87DsmulFVxRpNLOnI4tB6p/oh8D7kpn9Q==} 963 | engines: {node: '>= 14'} 964 | hasBin: true 965 | 966 | snapshots: 967 | 968 | '@alloc/quick-lru@5.2.0': {} 969 | 970 | '@isaacs/cliui@8.0.2': 971 | dependencies: 972 | string-width: 5.1.2 973 | string-width-cjs: string-width@4.2.3 974 | strip-ansi: 7.1.0 975 | strip-ansi-cjs: strip-ansi@6.0.1 976 | wrap-ansi: 8.1.0 977 | wrap-ansi-cjs: wrap-ansi@7.0.0 978 | 979 | '@jridgewell/gen-mapping@0.3.5': 980 | dependencies: 981 | '@jridgewell/set-array': 1.2.1 982 | '@jridgewell/sourcemap-codec': 1.5.0 983 | '@jridgewell/trace-mapping': 0.3.25 984 | 985 | '@jridgewell/resolve-uri@3.1.2': {} 986 | 987 | '@jridgewell/set-array@1.2.1': {} 988 | 989 | '@jridgewell/sourcemap-codec@1.5.0': {} 990 | 991 | '@jridgewell/trace-mapping@0.3.25': 992 | dependencies: 993 | '@jridgewell/resolve-uri': 3.1.2 994 | '@jridgewell/sourcemap-codec': 1.5.0 995 | 996 | '@next/env@14.2.13': {} 997 | 998 | '@next/swc-darwin-arm64@14.2.13': 999 | optional: true 1000 | 1001 | '@next/swc-darwin-x64@14.2.13': 1002 | optional: true 1003 | 1004 | '@next/swc-linux-arm64-gnu@14.2.13': 1005 | optional: true 1006 | 1007 | '@next/swc-linux-arm64-musl@14.2.13': 1008 | optional: true 1009 | 1010 | '@next/swc-linux-x64-gnu@14.2.13': 1011 | optional: true 1012 | 1013 | '@next/swc-linux-x64-musl@14.2.13': 1014 | optional: true 1015 | 1016 | '@next/swc-win32-arm64-msvc@14.2.13': 1017 | optional: true 1018 | 1019 | '@next/swc-win32-ia32-msvc@14.2.13': 1020 | optional: true 1021 | 1022 | '@next/swc-win32-x64-msvc@14.2.13': 1023 | optional: true 1024 | 1025 | '@nodelib/fs.scandir@2.1.5': 1026 | dependencies: 1027 | '@nodelib/fs.stat': 2.0.5 1028 | run-parallel: 1.2.0 1029 | 1030 | '@nodelib/fs.stat@2.0.5': {} 1031 | 1032 | '@nodelib/fs.walk@1.2.8': 1033 | dependencies: 1034 | '@nodelib/fs.scandir': 2.1.5 1035 | fastq: 1.17.1 1036 | 1037 | '@pkgjs/parseargs@0.11.0': 1038 | optional: true 1039 | 1040 | '@radix-ui/primitive@1.1.0': {} 1041 | 1042 | '@radix-ui/react-compose-refs@1.1.0(@types/react@18.3.9)(react@18.3.1)': 1043 | dependencies: 1044 | react: 18.3.1 1045 | optionalDependencies: 1046 | '@types/react': 18.3.9 1047 | 1048 | '@radix-ui/react-context@1.1.0(@types/react@18.3.9)(react@18.3.1)': 1049 | dependencies: 1050 | react: 18.3.1 1051 | optionalDependencies: 1052 | '@types/react': 18.3.9 1053 | 1054 | '@radix-ui/react-dialog@1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 1055 | dependencies: 1056 | '@radix-ui/primitive': 1.1.0 1057 | '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.9)(react@18.3.1) 1058 | '@radix-ui/react-context': 1.1.0(@types/react@18.3.9)(react@18.3.1) 1059 | '@radix-ui/react-dismissable-layer': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 1060 | '@radix-ui/react-focus-guards': 1.1.0(@types/react@18.3.9)(react@18.3.1) 1061 | '@radix-ui/react-focus-scope': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 1062 | '@radix-ui/react-id': 1.1.0(@types/react@18.3.9)(react@18.3.1) 1063 | '@radix-ui/react-portal': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 1064 | '@radix-ui/react-presence': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 1065 | '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 1066 | '@radix-ui/react-slot': 1.1.0(@types/react@18.3.9)(react@18.3.1) 1067 | '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.9)(react@18.3.1) 1068 | aria-hidden: 1.2.4 1069 | react: 18.3.1 1070 | react-dom: 18.3.1(react@18.3.1) 1071 | react-remove-scroll: 2.5.7(@types/react@18.3.9)(react@18.3.1) 1072 | optionalDependencies: 1073 | '@types/react': 18.3.9 1074 | '@types/react-dom': 18.3.0 1075 | 1076 | '@radix-ui/react-dismissable-layer@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 1077 | dependencies: 1078 | '@radix-ui/primitive': 1.1.0 1079 | '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.9)(react@18.3.1) 1080 | '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 1081 | '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.9)(react@18.3.1) 1082 | '@radix-ui/react-use-escape-keydown': 1.1.0(@types/react@18.3.9)(react@18.3.1) 1083 | react: 18.3.1 1084 | react-dom: 18.3.1(react@18.3.1) 1085 | optionalDependencies: 1086 | '@types/react': 18.3.9 1087 | '@types/react-dom': 18.3.0 1088 | 1089 | '@radix-ui/react-focus-guards@1.1.0(@types/react@18.3.9)(react@18.3.1)': 1090 | dependencies: 1091 | react: 18.3.1 1092 | optionalDependencies: 1093 | '@types/react': 18.3.9 1094 | 1095 | '@radix-ui/react-focus-scope@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 1096 | dependencies: 1097 | '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.9)(react@18.3.1) 1098 | '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 1099 | '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.9)(react@18.3.1) 1100 | react: 18.3.1 1101 | react-dom: 18.3.1(react@18.3.1) 1102 | optionalDependencies: 1103 | '@types/react': 18.3.9 1104 | '@types/react-dom': 18.3.0 1105 | 1106 | '@radix-ui/react-id@1.1.0(@types/react@18.3.9)(react@18.3.1)': 1107 | dependencies: 1108 | '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.9)(react@18.3.1) 1109 | react: 18.3.1 1110 | optionalDependencies: 1111 | '@types/react': 18.3.9 1112 | 1113 | '@radix-ui/react-portal@1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 1114 | dependencies: 1115 | '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 1116 | '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.9)(react@18.3.1) 1117 | react: 18.3.1 1118 | react-dom: 18.3.1(react@18.3.1) 1119 | optionalDependencies: 1120 | '@types/react': 18.3.9 1121 | '@types/react-dom': 18.3.0 1122 | 1123 | '@radix-ui/react-presence@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 1124 | dependencies: 1125 | '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.9)(react@18.3.1) 1126 | '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.9)(react@18.3.1) 1127 | react: 18.3.1 1128 | react-dom: 18.3.1(react@18.3.1) 1129 | optionalDependencies: 1130 | '@types/react': 18.3.9 1131 | '@types/react-dom': 18.3.0 1132 | 1133 | '@radix-ui/react-primitive@2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 1134 | dependencies: 1135 | '@radix-ui/react-slot': 1.1.0(@types/react@18.3.9)(react@18.3.1) 1136 | react: 18.3.1 1137 | react-dom: 18.3.1(react@18.3.1) 1138 | optionalDependencies: 1139 | '@types/react': 18.3.9 1140 | '@types/react-dom': 18.3.0 1141 | 1142 | '@radix-ui/react-slot@1.1.0(@types/react@18.3.9)(react@18.3.1)': 1143 | dependencies: 1144 | '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.9)(react@18.3.1) 1145 | react: 18.3.1 1146 | optionalDependencies: 1147 | '@types/react': 18.3.9 1148 | 1149 | '@radix-ui/react-use-callback-ref@1.1.0(@types/react@18.3.9)(react@18.3.1)': 1150 | dependencies: 1151 | react: 18.3.1 1152 | optionalDependencies: 1153 | '@types/react': 18.3.9 1154 | 1155 | '@radix-ui/react-use-controllable-state@1.1.0(@types/react@18.3.9)(react@18.3.1)': 1156 | dependencies: 1157 | '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.9)(react@18.3.1) 1158 | react: 18.3.1 1159 | optionalDependencies: 1160 | '@types/react': 18.3.9 1161 | 1162 | '@radix-ui/react-use-escape-keydown@1.1.0(@types/react@18.3.9)(react@18.3.1)': 1163 | dependencies: 1164 | '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.9)(react@18.3.1) 1165 | react: 18.3.1 1166 | optionalDependencies: 1167 | '@types/react': 18.3.9 1168 | 1169 | '@radix-ui/react-use-layout-effect@1.1.0(@types/react@18.3.9)(react@18.3.1)': 1170 | dependencies: 1171 | react: 18.3.1 1172 | optionalDependencies: 1173 | '@types/react': 18.3.9 1174 | 1175 | '@swc/counter@0.1.3': {} 1176 | 1177 | '@swc/helpers@0.5.5': 1178 | dependencies: 1179 | '@swc/counter': 0.1.3 1180 | tslib: 2.7.0 1181 | 1182 | '@tanstack/query-core@5.56.2': {} 1183 | 1184 | '@tanstack/react-query@5.56.2(react@18.3.1)': 1185 | dependencies: 1186 | '@tanstack/query-core': 5.56.2 1187 | react: 18.3.1 1188 | 1189 | '@types/node@20.16.7': 1190 | dependencies: 1191 | undici-types: 6.19.8 1192 | 1193 | '@types/prop-types@15.7.13': {} 1194 | 1195 | '@types/react-dom@18.3.0': 1196 | dependencies: 1197 | '@types/react': 18.3.9 1198 | 1199 | '@types/react@18.3.9': 1200 | dependencies: 1201 | '@types/prop-types': 15.7.13 1202 | csstype: 3.1.3 1203 | 1204 | ansi-regex@5.0.1: {} 1205 | 1206 | ansi-regex@6.1.0: {} 1207 | 1208 | ansi-styles@4.3.0: 1209 | dependencies: 1210 | color-convert: 2.0.1 1211 | 1212 | ansi-styles@6.2.1: {} 1213 | 1214 | any-promise@1.3.0: {} 1215 | 1216 | anymatch@3.1.3: 1217 | dependencies: 1218 | normalize-path: 3.0.0 1219 | picomatch: 2.3.1 1220 | 1221 | arg@5.0.2: {} 1222 | 1223 | aria-hidden@1.2.4: 1224 | dependencies: 1225 | tslib: 2.7.0 1226 | 1227 | asynckit@0.4.0: {} 1228 | 1229 | axios@1.7.7: 1230 | dependencies: 1231 | follow-redirects: 1.15.9 1232 | form-data: 4.0.0 1233 | proxy-from-env: 1.1.0 1234 | transitivePeerDependencies: 1235 | - debug 1236 | 1237 | balanced-match@1.0.2: {} 1238 | 1239 | binary-extensions@2.3.0: {} 1240 | 1241 | brace-expansion@2.0.1: 1242 | dependencies: 1243 | balanced-match: 1.0.2 1244 | 1245 | braces@3.0.3: 1246 | dependencies: 1247 | fill-range: 7.1.1 1248 | 1249 | busboy@1.6.0: 1250 | dependencies: 1251 | streamsearch: 1.1.0 1252 | 1253 | camelcase-css@2.0.1: {} 1254 | 1255 | caniuse-lite@1.0.30001663: {} 1256 | 1257 | chokidar@3.6.0: 1258 | dependencies: 1259 | anymatch: 3.1.3 1260 | braces: 3.0.3 1261 | glob-parent: 5.1.2 1262 | is-binary-path: 2.1.0 1263 | is-glob: 4.0.3 1264 | normalize-path: 3.0.0 1265 | readdirp: 3.6.0 1266 | optionalDependencies: 1267 | fsevents: 2.3.3 1268 | 1269 | class-variance-authority@0.7.0: 1270 | dependencies: 1271 | clsx: 2.0.0 1272 | 1273 | client-only@0.0.1: {} 1274 | 1275 | clsx@2.0.0: {} 1276 | 1277 | clsx@2.1.1: {} 1278 | 1279 | color-convert@2.0.1: 1280 | dependencies: 1281 | color-name: 1.1.4 1282 | 1283 | color-name@1.1.4: {} 1284 | 1285 | combined-stream@1.0.8: 1286 | dependencies: 1287 | delayed-stream: 1.0.0 1288 | 1289 | commander@4.1.1: {} 1290 | 1291 | cross-spawn@7.0.3: 1292 | dependencies: 1293 | path-key: 3.1.1 1294 | shebang-command: 2.0.0 1295 | which: 2.0.2 1296 | 1297 | cssesc@3.0.0: {} 1298 | 1299 | csstype@3.1.3: {} 1300 | 1301 | delayed-stream@1.0.0: {} 1302 | 1303 | detect-node-es@1.1.0: {} 1304 | 1305 | didyoumean@1.2.2: {} 1306 | 1307 | dlv@1.1.3: {} 1308 | 1309 | eastasianwidth@0.2.0: {} 1310 | 1311 | emoji-regex@8.0.0: {} 1312 | 1313 | emoji-regex@9.2.2: {} 1314 | 1315 | fast-glob@3.3.2: 1316 | dependencies: 1317 | '@nodelib/fs.stat': 2.0.5 1318 | '@nodelib/fs.walk': 1.2.8 1319 | glob-parent: 5.1.2 1320 | merge2: 1.4.1 1321 | micromatch: 4.0.8 1322 | 1323 | fastq@1.17.1: 1324 | dependencies: 1325 | reusify: 1.0.4 1326 | 1327 | fill-range@7.1.1: 1328 | dependencies: 1329 | to-regex-range: 5.0.1 1330 | 1331 | follow-redirects@1.15.9: {} 1332 | 1333 | foreground-child@3.3.0: 1334 | dependencies: 1335 | cross-spawn: 7.0.3 1336 | signal-exit: 4.1.0 1337 | 1338 | form-data@4.0.0: 1339 | dependencies: 1340 | asynckit: 0.4.0 1341 | combined-stream: 1.0.8 1342 | mime-types: 2.1.35 1343 | 1344 | fsevents@2.3.3: 1345 | optional: true 1346 | 1347 | function-bind@1.1.2: {} 1348 | 1349 | get-nonce@1.0.1: {} 1350 | 1351 | glob-parent@5.1.2: 1352 | dependencies: 1353 | is-glob: 4.0.3 1354 | 1355 | glob-parent@6.0.2: 1356 | dependencies: 1357 | is-glob: 4.0.3 1358 | 1359 | glob@10.4.5: 1360 | dependencies: 1361 | foreground-child: 3.3.0 1362 | jackspeak: 3.4.3 1363 | minimatch: 9.0.5 1364 | minipass: 7.1.2 1365 | package-json-from-dist: 1.0.0 1366 | path-scurry: 1.11.1 1367 | 1368 | graceful-fs@4.2.11: {} 1369 | 1370 | hasown@2.0.2: 1371 | dependencies: 1372 | function-bind: 1.1.2 1373 | 1374 | invariant@2.2.4: 1375 | dependencies: 1376 | loose-envify: 1.4.0 1377 | 1378 | is-binary-path@2.1.0: 1379 | dependencies: 1380 | binary-extensions: 2.3.0 1381 | 1382 | is-core-module@2.15.1: 1383 | dependencies: 1384 | hasown: 2.0.2 1385 | 1386 | is-extglob@2.1.1: {} 1387 | 1388 | is-fullwidth-code-point@3.0.0: {} 1389 | 1390 | is-glob@4.0.3: 1391 | dependencies: 1392 | is-extglob: 2.1.1 1393 | 1394 | is-number@7.0.0: {} 1395 | 1396 | isexe@2.0.0: {} 1397 | 1398 | jackspeak@3.4.3: 1399 | dependencies: 1400 | '@isaacs/cliui': 8.0.2 1401 | optionalDependencies: 1402 | '@pkgjs/parseargs': 0.11.0 1403 | 1404 | jiti@1.21.6: {} 1405 | 1406 | js-tokens@4.0.0: {} 1407 | 1408 | lilconfig@2.1.0: {} 1409 | 1410 | lilconfig@3.1.2: {} 1411 | 1412 | lines-and-columns@1.2.4: {} 1413 | 1414 | loose-envify@1.4.0: 1415 | dependencies: 1416 | js-tokens: 4.0.0 1417 | 1418 | lru-cache@10.4.3: {} 1419 | 1420 | lucide-react@0.446.0(react@18.3.1): 1421 | dependencies: 1422 | react: 18.3.1 1423 | 1424 | merge2@1.4.1: {} 1425 | 1426 | micromatch@4.0.8: 1427 | dependencies: 1428 | braces: 3.0.3 1429 | picomatch: 2.3.1 1430 | 1431 | mime-db@1.52.0: {} 1432 | 1433 | mime-types@2.1.35: 1434 | dependencies: 1435 | mime-db: 1.52.0 1436 | 1437 | minimatch@9.0.5: 1438 | dependencies: 1439 | brace-expansion: 2.0.1 1440 | 1441 | minipass@7.1.2: {} 1442 | 1443 | mz@2.7.0: 1444 | dependencies: 1445 | any-promise: 1.3.0 1446 | object-assign: 4.1.1 1447 | thenify-all: 1.6.0 1448 | 1449 | nanoid@3.3.7: {} 1450 | 1451 | next@14.2.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1): 1452 | dependencies: 1453 | '@next/env': 14.2.13 1454 | '@swc/helpers': 0.5.5 1455 | busboy: 1.6.0 1456 | caniuse-lite: 1.0.30001663 1457 | graceful-fs: 4.2.11 1458 | postcss: 8.4.31 1459 | react: 18.3.1 1460 | react-dom: 18.3.1(react@18.3.1) 1461 | styled-jsx: 5.1.1(react@18.3.1) 1462 | optionalDependencies: 1463 | '@next/swc-darwin-arm64': 14.2.13 1464 | '@next/swc-darwin-x64': 14.2.13 1465 | '@next/swc-linux-arm64-gnu': 14.2.13 1466 | '@next/swc-linux-arm64-musl': 14.2.13 1467 | '@next/swc-linux-x64-gnu': 14.2.13 1468 | '@next/swc-linux-x64-musl': 14.2.13 1469 | '@next/swc-win32-arm64-msvc': 14.2.13 1470 | '@next/swc-win32-ia32-msvc': 14.2.13 1471 | '@next/swc-win32-x64-msvc': 14.2.13 1472 | transitivePeerDependencies: 1473 | - '@babel/core' 1474 | - babel-plugin-macros 1475 | 1476 | normalize-path@3.0.0: {} 1477 | 1478 | object-assign@4.1.1: {} 1479 | 1480 | object-hash@3.0.0: {} 1481 | 1482 | package-json-from-dist@1.0.0: {} 1483 | 1484 | path-key@3.1.1: {} 1485 | 1486 | path-parse@1.0.7: {} 1487 | 1488 | path-scurry@1.11.1: 1489 | dependencies: 1490 | lru-cache: 10.4.3 1491 | minipass: 7.1.2 1492 | 1493 | picocolors@1.1.0: {} 1494 | 1495 | picomatch@2.3.1: {} 1496 | 1497 | pify@2.3.0: {} 1498 | 1499 | pirates@4.0.6: {} 1500 | 1501 | postcss-import@15.1.0(postcss@8.4.47): 1502 | dependencies: 1503 | postcss: 8.4.47 1504 | postcss-value-parser: 4.2.0 1505 | read-cache: 1.0.0 1506 | resolve: 1.22.8 1507 | 1508 | postcss-js@4.0.1(postcss@8.4.47): 1509 | dependencies: 1510 | camelcase-css: 2.0.1 1511 | postcss: 8.4.47 1512 | 1513 | postcss-load-config@4.0.2(postcss@8.4.47): 1514 | dependencies: 1515 | lilconfig: 3.1.2 1516 | yaml: 2.5.1 1517 | optionalDependencies: 1518 | postcss: 8.4.47 1519 | 1520 | postcss-nested@6.2.0(postcss@8.4.47): 1521 | dependencies: 1522 | postcss: 8.4.47 1523 | postcss-selector-parser: 6.1.2 1524 | 1525 | postcss-selector-parser@6.1.2: 1526 | dependencies: 1527 | cssesc: 3.0.0 1528 | util-deprecate: 1.0.2 1529 | 1530 | postcss-value-parser@4.2.0: {} 1531 | 1532 | postcss@8.4.31: 1533 | dependencies: 1534 | nanoid: 3.3.7 1535 | picocolors: 1.1.0 1536 | source-map-js: 1.2.1 1537 | 1538 | postcss@8.4.47: 1539 | dependencies: 1540 | nanoid: 3.3.7 1541 | picocolors: 1.1.0 1542 | source-map-js: 1.2.1 1543 | 1544 | proxy-from-env@1.1.0: {} 1545 | 1546 | queue-microtask@1.2.3: {} 1547 | 1548 | react-dom@18.3.1(react@18.3.1): 1549 | dependencies: 1550 | loose-envify: 1.4.0 1551 | react: 18.3.1 1552 | scheduler: 0.23.2 1553 | 1554 | react-intersection-observer@9.13.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): 1555 | dependencies: 1556 | react: 18.3.1 1557 | optionalDependencies: 1558 | react-dom: 18.3.1(react@18.3.1) 1559 | 1560 | react-remove-scroll-bar@2.3.6(@types/react@18.3.9)(react@18.3.1): 1561 | dependencies: 1562 | react: 18.3.1 1563 | react-style-singleton: 2.2.1(@types/react@18.3.9)(react@18.3.1) 1564 | tslib: 2.7.0 1565 | optionalDependencies: 1566 | '@types/react': 18.3.9 1567 | 1568 | react-remove-scroll@2.5.7(@types/react@18.3.9)(react@18.3.1): 1569 | dependencies: 1570 | react: 18.3.1 1571 | react-remove-scroll-bar: 2.3.6(@types/react@18.3.9)(react@18.3.1) 1572 | react-style-singleton: 2.2.1(@types/react@18.3.9)(react@18.3.1) 1573 | tslib: 2.7.0 1574 | use-callback-ref: 1.3.2(@types/react@18.3.9)(react@18.3.1) 1575 | use-sidecar: 1.1.2(@types/react@18.3.9)(react@18.3.1) 1576 | optionalDependencies: 1577 | '@types/react': 18.3.9 1578 | 1579 | react-style-singleton@2.2.1(@types/react@18.3.9)(react@18.3.1): 1580 | dependencies: 1581 | get-nonce: 1.0.1 1582 | invariant: 2.2.4 1583 | react: 18.3.1 1584 | tslib: 2.7.0 1585 | optionalDependencies: 1586 | '@types/react': 18.3.9 1587 | 1588 | react@18.3.1: 1589 | dependencies: 1590 | loose-envify: 1.4.0 1591 | 1592 | read-cache@1.0.0: 1593 | dependencies: 1594 | pify: 2.3.0 1595 | 1596 | readdirp@3.6.0: 1597 | dependencies: 1598 | picomatch: 2.3.1 1599 | 1600 | resolve@1.22.8: 1601 | dependencies: 1602 | is-core-module: 2.15.1 1603 | path-parse: 1.0.7 1604 | supports-preserve-symlinks-flag: 1.0.0 1605 | 1606 | reusify@1.0.4: {} 1607 | 1608 | run-parallel@1.2.0: 1609 | dependencies: 1610 | queue-microtask: 1.2.3 1611 | 1612 | scheduler@0.23.2: 1613 | dependencies: 1614 | loose-envify: 1.4.0 1615 | 1616 | shebang-command@2.0.0: 1617 | dependencies: 1618 | shebang-regex: 3.0.0 1619 | 1620 | shebang-regex@3.0.0: {} 1621 | 1622 | signal-exit@4.1.0: {} 1623 | 1624 | sonner@1.5.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): 1625 | dependencies: 1626 | react: 18.3.1 1627 | react-dom: 18.3.1(react@18.3.1) 1628 | 1629 | source-map-js@1.2.1: {} 1630 | 1631 | streamsearch@1.1.0: {} 1632 | 1633 | string-width@4.2.3: 1634 | dependencies: 1635 | emoji-regex: 8.0.0 1636 | is-fullwidth-code-point: 3.0.0 1637 | strip-ansi: 6.0.1 1638 | 1639 | string-width@5.1.2: 1640 | dependencies: 1641 | eastasianwidth: 0.2.0 1642 | emoji-regex: 9.2.2 1643 | strip-ansi: 7.1.0 1644 | 1645 | strip-ansi@6.0.1: 1646 | dependencies: 1647 | ansi-regex: 5.0.1 1648 | 1649 | strip-ansi@7.1.0: 1650 | dependencies: 1651 | ansi-regex: 6.1.0 1652 | 1653 | styled-jsx@5.1.1(react@18.3.1): 1654 | dependencies: 1655 | client-only: 0.0.1 1656 | react: 18.3.1 1657 | 1658 | sucrase@3.35.0: 1659 | dependencies: 1660 | '@jridgewell/gen-mapping': 0.3.5 1661 | commander: 4.1.1 1662 | glob: 10.4.5 1663 | lines-and-columns: 1.2.4 1664 | mz: 2.7.0 1665 | pirates: 4.0.6 1666 | ts-interface-checker: 0.1.13 1667 | 1668 | supports-preserve-symlinks-flag@1.0.0: {} 1669 | 1670 | tailwind-merge@2.5.2: {} 1671 | 1672 | tailwindcss-animate@1.0.7(tailwindcss@3.4.13): 1673 | dependencies: 1674 | tailwindcss: 3.4.13 1675 | 1676 | tailwindcss@3.4.13: 1677 | dependencies: 1678 | '@alloc/quick-lru': 5.2.0 1679 | arg: 5.0.2 1680 | chokidar: 3.6.0 1681 | didyoumean: 1.2.2 1682 | dlv: 1.1.3 1683 | fast-glob: 3.3.2 1684 | glob-parent: 6.0.2 1685 | is-glob: 4.0.3 1686 | jiti: 1.21.6 1687 | lilconfig: 2.1.0 1688 | micromatch: 4.0.8 1689 | normalize-path: 3.0.0 1690 | object-hash: 3.0.0 1691 | picocolors: 1.1.0 1692 | postcss: 8.4.47 1693 | postcss-import: 15.1.0(postcss@8.4.47) 1694 | postcss-js: 4.0.1(postcss@8.4.47) 1695 | postcss-load-config: 4.0.2(postcss@8.4.47) 1696 | postcss-nested: 6.2.0(postcss@8.4.47) 1697 | postcss-selector-parser: 6.1.2 1698 | resolve: 1.22.8 1699 | sucrase: 3.35.0 1700 | transitivePeerDependencies: 1701 | - ts-node 1702 | 1703 | thenify-all@1.6.0: 1704 | dependencies: 1705 | thenify: 3.3.1 1706 | 1707 | thenify@3.3.1: 1708 | dependencies: 1709 | any-promise: 1.3.0 1710 | 1711 | to-regex-range@5.0.1: 1712 | dependencies: 1713 | is-number: 7.0.0 1714 | 1715 | ts-interface-checker@0.1.13: {} 1716 | 1717 | tslib@2.7.0: {} 1718 | 1719 | typescript@5.6.2: {} 1720 | 1721 | undici-types@6.19.8: {} 1722 | 1723 | use-callback-ref@1.3.2(@types/react@18.3.9)(react@18.3.1): 1724 | dependencies: 1725 | react: 18.3.1 1726 | tslib: 2.7.0 1727 | optionalDependencies: 1728 | '@types/react': 18.3.9 1729 | 1730 | use-sidecar@1.1.2(@types/react@18.3.9)(react@18.3.1): 1731 | dependencies: 1732 | detect-node-es: 1.1.0 1733 | react: 18.3.1 1734 | tslib: 2.7.0 1735 | optionalDependencies: 1736 | '@types/react': 18.3.9 1737 | 1738 | util-deprecate@1.0.2: {} 1739 | 1740 | which@2.0.2: 1741 | dependencies: 1742 | isexe: 2.0.0 1743 | 1744 | wrap-ansi@7.0.0: 1745 | dependencies: 1746 | ansi-styles: 4.3.0 1747 | string-width: 4.2.3 1748 | strip-ansi: 6.0.1 1749 | 1750 | wrap-ansi@8.1.0: 1751 | dependencies: 1752 | ansi-styles: 6.2.1 1753 | string-width: 5.1.2 1754 | strip-ansi: 7.1.0 1755 | 1756 | yaml@2.5.1: {} 1757 | --------------------------------------------------------------------------------